@tuki-io/tuki-widgets 0.0.219-dev.54 → 0.0.219-dev.56
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/contact-center/cc-import/cc-import.module.d.ts +13 -0
- package/contact-center/cc-import/cc-import.service.d.ts +85 -0
- package/contact-center/cc-import/components/import-contact-center-panel/import-contact-center-panel.component.d.ts +56 -0
- package/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.component.d.ts +77 -0
- package/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.types.d.ts +3 -0
- package/contact-center/cc-import/constants/cc-import.constants.d.ts +37 -0
- package/contact-center/cc-import/mock/cc-import.mock.d.ts +4 -0
- package/contact-center/cc-import/types/cc-import.d.ts +73 -0
- package/contact-center/cc-import/types/uccx.d.ts +109 -0
- package/contact-center/cc-readiness/cc-readiness.module.d.ts +3 -3
- package/contact-center/public-api.d.ts +8 -0
- package/contact-center/shared/api.endpoints.d.ts +25 -0
- package/contact-center/shared/api.service.d.ts +3 -1
- package/contact-center/shared/components/card/card.component.d.ts +13 -0
- package/contact-center/shared/dcp-api.service.d.ts +15 -0
- package/contact-center/shared/shared.module.d.ts +11 -5
- package/esm2020/contact-center/cc-import/cc-import.module.mjs +45 -0
- package/esm2020/contact-center/cc-import/cc-import.service.mjs +228 -0
- package/esm2020/contact-center/cc-import/components/import-contact-center-panel/import-contact-center-panel.component.mjs +144 -0
- package/esm2020/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.component.mjs +243 -0
- package/esm2020/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.types.mjs +3 -0
- package/esm2020/contact-center/cc-import/constants/cc-import.constants.mjs +62 -0
- package/esm2020/contact-center/cc-import/mock/cc-import.mock.mjs +78 -0
- package/esm2020/contact-center/cc-import/types/cc-import.mjs +2 -0
- package/esm2020/contact-center/cc-import/types/uccx.mjs +24 -0
- package/esm2020/contact-center/cc-readiness/cc-readiness.module.mjs +7 -6
- package/esm2020/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.mjs +5 -5
- package/esm2020/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.mjs +2 -2
- package/esm2020/contact-center/public-api.mjs +9 -1
- package/esm2020/contact-center/shared/api.endpoints.mjs +26 -1
- package/esm2020/contact-center/shared/api.service.mjs +8 -3
- package/esm2020/contact-center/shared/components/card/card.component.mjs +24 -0
- package/esm2020/contact-center/shared/dcp-api.service.mjs +26 -0
- package/esm2020/contact-center/shared/shared.module.mjs +15 -5
- package/esm2020/user-device-manage/public-api.mjs +4 -1
- package/esm2020/user-device-manage/src/app.constants.mjs +9 -3
- package/esm2020/user-device-manage/src/associate-lines/associate-lines.component.mjs +311 -0
- package/esm2020/user-device-manage/src/classes/device.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/deviceProfile.mjs +1 -1
- package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +2 -2
- package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +34 -17
- package/esm2020/user-device-manage/src/device-settings/device-settings.component.mjs +207 -0
- package/esm2020/user-device-manage/src/line-key-config/line-key-config.component.mjs +401 -0
- package/esm2020/user-device-manage/src/services/device.service.mjs +32 -2
- package/esm2020/user-device-manage/src/services/user.service.mjs +34 -6
- package/esm2020/user-device-manage/src/user-device-manage.module.mjs +19 -4
- package/esm2020/workspaces/src/components/workspace-detail/workspace-detail.component.mjs +17 -4
- package/esm2020/workspaces/src/components/workspace-device-detail/workspace-device-detail.component.mjs +66 -0
- package/esm2020/workspaces/src/components/workspaces-table/workspaces-table.component.mjs +6 -3
- package/esm2020/workspaces/src/services/workspace-detail.service.mjs +43 -1
- package/esm2020/workspaces/src/services/workspaces.service.mjs +2 -1
- package/esm2020/workspaces/src/types/workspace.mjs +1 -1
- package/esm2020/workspaces/src/workspaces.module.mjs +4 -1
- package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +998 -127
- package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +1018 -40
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs +142 -16
- package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +989 -127
- package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +1001 -39
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs +133 -16
- package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs.map +1 -1
- package/package.json +1 -1
- package/user-device-manage/public-api.d.ts +3 -0
- package/user-device-manage/src/app.constants.d.ts +6 -0
- package/user-device-manage/src/associate-lines/associate-lines.component.d.ts +95 -0
- package/user-device-manage/src/classes/device.d.ts +15 -0
- package/user-device-manage/src/classes/deviceProfile.d.ts +5 -0
- package/user-device-manage/src/device-associated-line/device-associated-line.component.d.ts +1 -0
- package/user-device-manage/src/device-manage-widget.component.d.ts +6 -1
- package/user-device-manage/src/device-settings/device-settings.component.d.ts +53 -0
- package/user-device-manage/src/line-key-config/line-key-config.component.d.ts +84 -0
- package/user-device-manage/src/services/device.service.d.ts +6 -1
- package/user-device-manage/src/services/user.service.d.ts +2 -1
- package/user-device-manage/src/user-device-manage.module.d.ts +10 -7
- package/workspaces/src/components/workspace-detail/workspace-detail.component.d.ts +6 -1
- package/workspaces/src/components/workspace-device-detail/workspace-device-detail.component.d.ts +25 -0
- package/workspaces/src/components/workspaces-table/workspaces-table.component.d.ts +1 -0
- package/workspaces/src/services/workspace-detail.service.d.ts +2 -0
- package/workspaces/src/types/workspace.d.ts +19 -0
- package/workspaces/src/workspaces.module.d.ts +8 -7
- package/contact-center/cc-readiness/components/card/card.component.d.ts +0 -6
- package/esm2020/contact-center/cc-readiness/components/card/card.component.mjs +0 -13
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewEncapsulation, inject } from '@angular/core';
|
|
2
|
+
import { Subscription, catchError, finalize, of } from 'rxjs';
|
|
3
|
+
import { CcImportService } from '../../cc-import.service';
|
|
4
|
+
import { CUSTOMER_ASSIST_MARKER_TOOLTIP, CUSTOMER_ASSIST_NOTICE, IMPORT_WIZARD_TITLE } from '../../constants/cc-import.constants';
|
|
5
|
+
import { IMPORT_WIZARD_STEPS } from './import-contact-center-wizard.types';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
import * as i2 from "@angular/material/stepper";
|
|
9
|
+
import * as i3 from "@angular/material/tooltip";
|
|
10
|
+
import * as i4 from "@angular/material/button";
|
|
11
|
+
import * as i5 from "@angular/material/form-field";
|
|
12
|
+
import * as i6 from "@angular/material/select";
|
|
13
|
+
import * as i7 from "@angular/material/core";
|
|
14
|
+
/**
|
|
15
|
+
* Full-page "Import contact center" wizard: pick a UCCX contact center, review the
|
|
16
|
+
* entities Tuki will create for it, then start the import.
|
|
17
|
+
*
|
|
18
|
+
* Rendered as a page by the host app (like `tk-user-creation-wizard`), not as a dialog -
|
|
19
|
+
* the host swaps it in when the panel's Import button is pressed and swaps it back out
|
|
20
|
+
* on `cancel` / `imported`.
|
|
21
|
+
*/
|
|
22
|
+
export class ImportContactCenterWizardComponent {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.title = IMPORT_WIZARD_TITLE;
|
|
25
|
+
/** Serve mock data instead of calling the UCCX migration API. */
|
|
26
|
+
this.useMockData = true;
|
|
27
|
+
/**
|
|
28
|
+
* Contact centers the caller has already loaded (the panel has them), so the wizard
|
|
29
|
+
* opens without a second round trip. Left unset, the wizard fetches them itself.
|
|
30
|
+
*/
|
|
31
|
+
this.contactCenters = null;
|
|
32
|
+
this.cancel = new EventEmitter();
|
|
33
|
+
this.imported = new EventEmitter();
|
|
34
|
+
this.ccImportService = inject(CcImportService);
|
|
35
|
+
this.subscriptions = new Subscription();
|
|
36
|
+
this.customerAssistNotice = CUSTOMER_ASSIST_NOTICE;
|
|
37
|
+
this.customerAssistMarkerTooltip = CUSTOMER_ASSIST_MARKER_TOOLTIP;
|
|
38
|
+
this.selectedIndex = 0;
|
|
39
|
+
/** Contact centers awaiting review - the ones there is something to import. */
|
|
40
|
+
this.options = [];
|
|
41
|
+
/** `options` narrowed by the picker's search box. */
|
|
42
|
+
this.filteredOptions = [];
|
|
43
|
+
this.searchTerm = '';
|
|
44
|
+
this.selected = null;
|
|
45
|
+
this.noticeDismissed = false;
|
|
46
|
+
this.loading = false;
|
|
47
|
+
this.error = false;
|
|
48
|
+
this.entityGroups = [];
|
|
49
|
+
/** Which entity group the Overview step's tab bar is showing. */
|
|
50
|
+
this.activeGroupIndex = 0;
|
|
51
|
+
this.entitiesLoading = false;
|
|
52
|
+
this.entitiesError = false;
|
|
53
|
+
this.importing = false;
|
|
54
|
+
this.importError = false;
|
|
55
|
+
}
|
|
56
|
+
ngOnInit() {
|
|
57
|
+
this.load();
|
|
58
|
+
}
|
|
59
|
+
ngOnChanges(changes) {
|
|
60
|
+
const reloadTriggers = ['customerId', 'host', 'dcpHost', 'token', 'useMockData', 'contactCenters'];
|
|
61
|
+
if (reloadTriggers.some(input => changes[input] && !changes[input].firstChange)) {
|
|
62
|
+
this.load();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
ngOnDestroy() {
|
|
66
|
+
this.subscriptions.unsubscribe();
|
|
67
|
+
}
|
|
68
|
+
get canGoNext() {
|
|
69
|
+
return !!this.selected;
|
|
70
|
+
}
|
|
71
|
+
/** The Customer Assist advisory, until the user dismisses it or picks something else. */
|
|
72
|
+
get showCustomerAssistNotice() {
|
|
73
|
+
return !!this.selected?.customerAssistCapable && !this.noticeDismissed;
|
|
74
|
+
}
|
|
75
|
+
get canImport() {
|
|
76
|
+
return !!this.selected && !this.importing && !this.entitiesLoading && !this.entitiesError;
|
|
77
|
+
}
|
|
78
|
+
onCancel() {
|
|
79
|
+
this.cancel.emit();
|
|
80
|
+
}
|
|
81
|
+
onSelect(applicationId) {
|
|
82
|
+
const selected = this.options.find(option => option.applicationId === applicationId) ?? null;
|
|
83
|
+
if (selected === this.selected) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
this.selected = selected;
|
|
87
|
+
this.noticeDismissed = false;
|
|
88
|
+
// Entities belong to the previously selected contact center - drop them so the
|
|
89
|
+
// overview step refetches for the new one.
|
|
90
|
+
this.entityGroups = [];
|
|
91
|
+
this.activeGroupIndex = 0;
|
|
92
|
+
this.entitiesError = false;
|
|
93
|
+
}
|
|
94
|
+
get activeGroup() {
|
|
95
|
+
return this.entityGroups[this.activeGroupIndex];
|
|
96
|
+
}
|
|
97
|
+
selectGroup(index) {
|
|
98
|
+
this.activeGroupIndex = index;
|
|
99
|
+
}
|
|
100
|
+
dismissNotice() {
|
|
101
|
+
this.noticeDismissed = true;
|
|
102
|
+
}
|
|
103
|
+
onSearch(event) {
|
|
104
|
+
this.searchTerm = event.target.value;
|
|
105
|
+
this.filter();
|
|
106
|
+
}
|
|
107
|
+
/** Resets the search box each time the picker's panel is closed. */
|
|
108
|
+
onPanelToggle(opened) {
|
|
109
|
+
if (!opened && this.searchTerm) {
|
|
110
|
+
this.searchTerm = '';
|
|
111
|
+
this.filter();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
onStepSelectionChange(event) {
|
|
115
|
+
this.selectedIndex = event.selectedIndex;
|
|
116
|
+
if (this.stepIdAt(event.selectedIndex) === 'overview') {
|
|
117
|
+
this.loadEntities();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
onNext(stepper) {
|
|
121
|
+
if (this.canGoNext) {
|
|
122
|
+
stepper.next();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
onPrevious(stepper) {
|
|
126
|
+
stepper.previous();
|
|
127
|
+
}
|
|
128
|
+
runImport() {
|
|
129
|
+
if (!this.selected || this.importing) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
this.importing = true;
|
|
133
|
+
this.importError = false;
|
|
134
|
+
this.subscriptions.add(this.ccImportService.importContactCenter(Number(this.customerId), this.selected.applicationId)
|
|
135
|
+
.pipe(catchError(error => {
|
|
136
|
+
console.error('Unable to start the contact-center import', error);
|
|
137
|
+
this.importError = true;
|
|
138
|
+
return of(null);
|
|
139
|
+
}), finalize(() => this.importing = false))
|
|
140
|
+
.subscribe(result => {
|
|
141
|
+
if (result) {
|
|
142
|
+
this.imported.emit(result);
|
|
143
|
+
}
|
|
144
|
+
}));
|
|
145
|
+
}
|
|
146
|
+
stepIdAt(index) {
|
|
147
|
+
return IMPORT_WIZARD_STEPS[index];
|
|
148
|
+
}
|
|
149
|
+
load() {
|
|
150
|
+
this.ccImportService.useMockData = this.useMockData;
|
|
151
|
+
if (this.host) {
|
|
152
|
+
this.ccImportService.setHost(this.host);
|
|
153
|
+
}
|
|
154
|
+
if (this.dcpHost) {
|
|
155
|
+
this.ccImportService.setDcpHost(this.dcpHost);
|
|
156
|
+
}
|
|
157
|
+
if (this.token) {
|
|
158
|
+
this.ccImportService.setToken(this.token);
|
|
159
|
+
}
|
|
160
|
+
if (this.contactCenters) {
|
|
161
|
+
this.setOptions(this.contactCenters);
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
const customerId = Number(this.customerId);
|
|
165
|
+
if (!this.useMockData && (!customerId || !this.token)) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
this.loading = true;
|
|
169
|
+
this.error = false;
|
|
170
|
+
this.subscriptions.add(this.ccImportService.fetchContactCenters(customerId)
|
|
171
|
+
.pipe(catchError(error => {
|
|
172
|
+
console.error('Unable to load the contact centers', error);
|
|
173
|
+
this.error = true;
|
|
174
|
+
return of([]);
|
|
175
|
+
}), finalize(() => this.loading = false))
|
|
176
|
+
.subscribe(contactCenters => this.setOptions(contactCenters)));
|
|
177
|
+
}
|
|
178
|
+
setOptions(contactCenters) {
|
|
179
|
+
// Left in source order on purpose - the picker shows them the way the backend
|
|
180
|
+
// (and the mock) hands them over, not alphabetically.
|
|
181
|
+
//
|
|
182
|
+
// Eligible for a Webex Contact Center import: not imported yet, and either
|
|
183
|
+
// unsupported on Customer Assist or reviewable for full feature coverage.
|
|
184
|
+
this.options = contactCenters.filter(contactCenter => contactCenter.migrationState !== 'migrated'
|
|
185
|
+
&& (contactCenter.compatibilityStatus === 'unsupported'
|
|
186
|
+
|| contactCenter.compatibilityStatus === 'requires-review'));
|
|
187
|
+
// A contact center selected before a reload may no longer be importable.
|
|
188
|
+
if (this.selected && !this.options.some(option => option.applicationId === this.selected?.applicationId)) {
|
|
189
|
+
this.selected = null;
|
|
190
|
+
this.entityGroups = [];
|
|
191
|
+
this.activeGroupIndex = 0;
|
|
192
|
+
}
|
|
193
|
+
this.filter();
|
|
194
|
+
}
|
|
195
|
+
filter() {
|
|
196
|
+
const needle = this.searchTerm.trim().toLowerCase();
|
|
197
|
+
this.filteredOptions = needle
|
|
198
|
+
? this.options.filter(option => option.applicationName.toLowerCase().includes(needle))
|
|
199
|
+
: this.options;
|
|
200
|
+
}
|
|
201
|
+
loadEntities() {
|
|
202
|
+
if (!this.selected || this.entityGroups.length || this.entitiesLoading) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
this.entitiesLoading = true;
|
|
206
|
+
this.entitiesError = false;
|
|
207
|
+
this.subscriptions.add(this.ccImportService.fetchContactCenterEntities(Number(this.customerId), this.selected)
|
|
208
|
+
.pipe(catchError(error => {
|
|
209
|
+
console.error('Unable to load the contact-center entities', error);
|
|
210
|
+
this.entitiesError = true;
|
|
211
|
+
return of(null);
|
|
212
|
+
}), finalize(() => this.entitiesLoading = false))
|
|
213
|
+
.subscribe(entities => {
|
|
214
|
+
this.entityGroups = entities ? entities.groups : [];
|
|
215
|
+
this.activeGroupIndex = 0;
|
|
216
|
+
}));
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
ImportContactCenterWizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImportContactCenterWizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
220
|
+
ImportContactCenterWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ImportContactCenterWizardComponent, selector: "cc-import-contact-center-wizard", inputs: { title: "title", customerId: "customerId", host: "host", dcpHost: "dcpHost", token: "token", useMockData: "useMockData", contactCenters: "contactCenters" }, outputs: { cancel: "cancel", imported: "imported" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"move-user-stepper-container\" [attr.aria-busy]=\"importing\">\n <header class=\"move-user-header\">\n <div class=\"move-user-header__title\">{{ title }}</div>\n <div class=\"move-user-header__close\">\n <span class=\"app-icon cc-import-close-icon\" (click)=\"onCancel()\" role=\"button\" aria-label=\"Close\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M5 5L19 19M19 5L5 19\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" />\n </svg>\n </span>\n </div>\n </header>\n\n <div id=\"cc-import-stepper\">\n <mat-stepper\n #stepper\n [linear]=\"true\"\n labelPosition=\"bottom\"\n [selectedIndex]=\"selectedIndex\"\n (selectionChange)=\"onStepSelectionChange($event)\"\n >\n\n <!-- Step 1: pick the UCCX contact center -->\n <mat-step [completed]=\"canGoNext\">\n <ng-template matStepLabel>Select</ng-template>\n\n <div class=\"cc-import-notice\" *ngIf=\"showCustomerAssistNotice\" role=\"status\">\n <span class=\"cc-import-notice__icon\" aria-hidden=\"true\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" fill=\"currentColor\" />\n <path d=\"M8 7.1v4.2\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n <circle cx=\"8\" cy=\"4.8\" r=\"0.9\" fill=\"#fff\" />\n </svg>\n </span>\n <span class=\"cc-import-notice__text\">{{ customerAssistNotice }}</span>\n <button type=\"button\" class=\"cc-import-notice__close\" aria-label=\"Dismiss\" (click)=\"dismissNotice()\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M5 5L19 19M19 5L5 19\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" />\n </svg>\n </button>\n </div>\n\n <div class=\"step-title\">Step 1: Select contact center</div>\n\n <div class=\"move-user-tab-content-box\">\n <div class=\"cc-import-state\" *ngIf=\"loading\">Loading contact centers…</div>\n <div class=\"cc-import-state cc-import-state--error\" *ngIf=\"!loading && error\">\n Unable to load contact centers.\n </div>\n\n <section class=\"cc-import-step-content\" *ngIf=\"!loading && !error\">\n <div class=\"cc-import-field\">\n <label class=\"cc-import-label\" for=\"cc-import-contact-center\">Contact center</label>\n\n <mat-form-field class=\"cc-import-select\" appearance=\"outline\">\n <mat-select\n id=\"cc-import-contact-center\"\n panelClass=\"cc-import-select-panel\"\n placeholder=\"Select contact center\"\n [disableOptionCentering]=\"true\"\n [value]=\"selected?.applicationId ?? null\"\n (selectionChange)=\"onSelect($event.value)\"\n (openedChange)=\"onPanelToggle($event)\"\n >\n <mat-select-trigger>{{ selected?.applicationName }}</mat-select-trigger>\n\n <!-- Search box pinned above the options. Keystrokes are stopped here so\n mat-select's own typeahead does not steal them. -->\n <div class=\"cc-import-select-search\" (click)=\"$event.stopPropagation()\">\n <span class=\"cc-import-select-search__icon\" aria-hidden=\"true\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\">\n <circle cx=\"7\" cy=\"7\" r=\"4.6\" stroke=\"currentColor\" stroke-width=\"1.4\" />\n <path d=\"M10.6 10.6L14 14\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" />\n </svg>\n </span>\n <input\n class=\"cc-import-select-search__input\"\n type=\"text\"\n autocomplete=\"off\"\n placeholder=\"Search\"\n aria-label=\"Search contact centers\"\n [value]=\"searchTerm\"\n (input)=\"onSearch($event)\"\n (keydown)=\"$event.stopPropagation()\"\n />\n </div>\n\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option.applicationId\">\n <div class=\"option-row\">\n <span class=\"name\">{{ option.applicationName }}</span>\n <span\n class=\"cc-import-option-marker\"\n *ngIf=\"option.customerAssistCapable\"\n [matTooltip]=\"customerAssistMarkerTooltip\"\n aria-hidden=\"true\"\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M8 2.2 14.6 13.4H1.4L8 2.2Z\" stroke=\"currentColor\" stroke-width=\"1.2\" stroke-linejoin=\"round\" />\n <path d=\"M8 6.5v3\" stroke=\"currentColor\" stroke-width=\"1.2\" stroke-linecap=\"round\" />\n <circle cx=\"8\" cy=\"11.3\" r=\"0.7\" fill=\"currentColor\" />\n </svg>\n </span>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <p class=\"cc-import-empty\" *ngIf=\"!options.length\">\n Every detected contact center has already been imported.\n </p>\n </div>\n </section>\n </div>\n </mat-step>\n\n <!-- Step 2: the entities Tuki will create for it -->\n <mat-step>\n <ng-template matStepLabel>Overview</ng-template>\n\n <div class=\"step-title\">Overview</div>\n\n <div class=\"move-user-tab-content-box\">\n <h3 class=\"cc-import-card-title\">Review Contact Center Settings</h3>\n <p class=\"cc-import-card-text\">\n Review the settings for your new Contact center to make sure everything is correct.<br />\n You can make changes at any time by clicking on the name of the contact center on the dedicated page.\n </p>\n\n <div class=\"cc-import-state\" *ngIf=\"entitiesLoading\">Loading entities…</div>\n <div class=\"cc-import-state cc-import-state--error\" *ngIf=\"entitiesError\">\n Unable to load the related entities.\n </div>\n\n <ng-container *ngIf=\"!entitiesLoading && !entitiesError && entityGroups.length\">\n <div class=\"cc-import-tabs\" role=\"tablist\">\n <button\n type=\"button\"\n class=\"cc-import-tab\"\n *ngFor=\"let group of entityGroups; index as i\"\n role=\"tab\"\n [attr.aria-selected]=\"i === activeGroupIndex\"\n [class.cc-import-tab--active]=\"i === activeGroupIndex\"\n (click)=\"selectGroup(i)\"\n >\n {{ group.label }}\n </button>\n </div>\n\n <ul class=\"cc-import-items\" role=\"tabpanel\">\n <li class=\"cc-import-item\" *ngFor=\"let item of activeGroup?.items\">{{ item }}</li>\n <li class=\"cc-import-item cc-import-item--empty\" *ngIf=\"!activeGroup?.items?.length\">\n Nothing to create for {{ activeGroup?.label }}.\n </li>\n </ul>\n </ng-container>\n\n <div class=\"cc-import-state cc-import-state--error\" *ngIf=\"importError\">\n Unable to start the import. Please try again.\n </div>\n </div>\n </mat-step>\n </mat-stepper>\n\n <div class=\"wizard-actions\">\n <ng-container [ngSwitch]=\"stepper.selectedIndex\">\n <ng-container *ngSwitchCase=\"0\">\n <button\n mat-button\n class=\"uc-btn uc-btn-primary\"\n type=\"button\"\n [disabled]=\"!canGoNext\"\n (click)=\"onNext(stepper)\"\n >\n Next\n </button>\n <button mat-button class=\"uc-btn uc-btn-secondary\" type=\"button\" (click)=\"onCancel()\">\n Cancel\n </button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"1\">\n <button\n mat-button\n class=\"uc-btn uc-btn-primary\"\n type=\"button\"\n [disabled]=\"!canImport\"\n (click)=\"runImport()\"\n >\n <span class=\"uc-btn__inline-content\">\n <span class=\"uc-btn__spinner\" *ngIf=\"importing\" aria-hidden=\"true\"></span>\n <span>{{ importing ? 'Importing...' : 'Import' }}</span>\n </span>\n </button>\n <button\n mat-button\n class=\"uc-btn uc-btn-secondary\"\n type=\"button\"\n [disabled]=\"importing\"\n (click)=\"onPrevious(stepper)\"\n >\n Previous\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <div class=\"wizard-loading-overlay\" [class.wizard-loading-overlay--visible]=\"importing\" aria-hidden=\"true\"></div>\n</div>\n", styles: ["cc-import-contact-center-wizard{display:block;width:100%;min-height:100vh}.move-user-stepper-container{background-color:#f3f3f3;padding:0 0 16px;position:relative;overflow:hidden;box-sizing:border-box;min-height:100vh;display:flex;flex-direction:column}.move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:0}.app-icon{height:20px;width:20px;display:block;cursor:pointer}.cc-import-close-icon{color:#fffffff2}#cc-import-stepper{display:flex;flex-direction:column;width:100%;flex:1 1 auto;min-height:0}#cc-import-stepper .mat-stepper-horizontal{margin:0 auto;width:100%;background-color:transparent;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}#cc-import-stepper .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}#cc-import-stepper .mat-step-icon{width:28px;height:28px;border:3px solid hsl(0,0%,50.2%)}#cc-import-stepper .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}#cc-import-stepper .mat-step-icon-state-number{background-color:#fff}#cc-import-stepper .mat-step-icon-state-edit,#cc-import-stepper .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}#cc-import-stepper .mat-step-icon-content{display:none}#cc-import-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,#cc-import-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,#cc-import-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,#cc-import-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}#cc-import-stepper .mat-horizontal-stepper-header:before,#cc-import-stepper .mat-horizontal-stepper-header:after,#cc-import-stepper .mat-stepper-horizontal-line{border-top-color:#1170cf!important;border-top-width:3px!important;border-top-style:solid!important}#cc-import-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-stepper-horizontal-line,#cc-import-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:before,#cc-import-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:after{border-top-width:3px!important;background-color:#7b7b7b!important;border-top-color:#7b7b7b!important}#cc-import-stepper .mat-horizontal-content-container{padding:0!important;margin-top:3rem}#cc-import-stepper .mat-horizontal-stepper-content[aria-expanded=true]{padding-bottom:0}.step-title{font-size:26px;font-weight:500;width:70%;margin:0 auto 1rem;min-height:32px;display:flex;align-items:center}.wizard-actions{display:flex;flex-flow:row-reverse;justify-content:flex-start;align-items:center;margin:16px 16px 0 0;align-self:flex-end;gap:1rem;position:relative;z-index:30}.uc-btn{border-radius:50px!important;padding:8px 16px!important;min-width:80px!important;line-height:normal!important;cursor:pointer}.uc-btn__inline-content{display:inline-flex;align-items:center;gap:8px}.uc-btn__spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:uc-btn-spin .7s linear infinite}@keyframes uc-btn-spin{to{transform:rotate(360deg)}}.uc-btn-primary{background-color:#000!important;color:#fff!important;border:1px solid black!important}.uc-btn-secondary{background-color:#fff!important;color:#000!important;border:1px solid black!important}.wizard-actions .uc-btn-primary.mat-button-disabled{background-color:#bbb;color:#fff;border:1px solid grey;cursor:default!important;opacity:.3}.move-user-tab-content-box{width:70%;margin:0 auto;background-color:#fff;min-height:350px;border:1px solid #c3c1c1;border-radius:8px;box-sizing:border-box;padding:25px}.wizard-loading-overlay{position:absolute;inset:0;background:rgba(243,243,243,.72);backdrop-filter:blur(1px);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:20}.wizard-loading-overlay--visible{opacity:1;pointer-events:auto}.cc-import-notice{width:70%;margin:0 auto 1rem;box-sizing:border-box;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:4px;background-color:#e8f2fc;color:#2a2f3b;font-size:13px;line-height:1.4}.cc-import-notice__icon{display:flex;color:#1170cf;line-height:0}.cc-import-notice__text{flex:1}.cc-import-notice__close{background:none;border:none;padding:0;cursor:pointer;display:flex;color:#5a6172;line-height:0}.cc-import-step-content{display:flex;flex-direction:column;gap:20px;max-width:420px}.cc-import-field{display:flex;flex-direction:column;gap:10px}.cc-import-label{font-size:14px;font-weight:400;line-height:100%;letter-spacing:.1px;color:#2a2f3b}.cc-import-select{width:100%;max-width:333px}.cc-import-empty{margin:0;font-size:13px;color:#5a6172}.cc-import-state{font-size:14px;color:#5a6172}.cc-import-state--error{color:#c0392b}.cc-import-card-title{margin:0 0 8px;font-size:15px;font-weight:700;color:#2a2f3b}.cc-import-card-text{margin:0 0 22px;font-size:14px;line-height:1.6;color:#2a2f3b}.cc-import-tabs{display:flex;flex-wrap:wrap;gap:20px}.cc-import-tab{background:none;border:none;border-bottom:2px solid transparent;padding:0 0 8px;font:inherit;font-size:14px;color:#5a6172;cursor:pointer}.cc-import-tab--active{color:#000;font-weight:600;border-bottom-color:#000}.cc-import-items{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.cc-import-item{font-size:14px;color:#2a2f3b}.cc-import-item--empty{color:#5a6172;font-style:italic}.cc-import-select .mat-form-field-wrapper{padding-bottom:0}.cc-import-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}.cc-import-select .mat-form-field-outline,.cc-import-select .mat-form-field-outline-start,.cc-import-select .mat-form-field-outline-end,.cc-import-select .mat-form-field-outline-gap{display:none}.cc-import-select .mat-form-field-infix{width:100%;border-top:0;padding:0}.cc-import-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}.cc-import-select-panel .option-row{display:flex;justify-content:space-between;align-items:center;width:100%;gap:12px}.cc-import-select-panel .cc-import-option-marker{display:flex;color:#b26a00;line-height:0}.cc-import-select-search{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:8px;margin:4px 8px 8px;padding:0 10px;height:30px;border:1px solid #c3c1c1;border-radius:50px;background-color:#fff}.cc-import-select-search__icon{display:flex;color:#5a6172;line-height:0}.cc-import-select-search__input{flex:1;border:none;outline:none;font:inherit;font-size:13px;color:#2a2f3b;background:transparent}\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: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i2.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i2.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i6.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImportContactCenterWizardComponent, decorators: [{
|
|
222
|
+
type: Component,
|
|
223
|
+
args: [{ selector: 'cc-import-contact-center-wizard', encapsulation: ViewEncapsulation.None, template: "<div class=\"move-user-stepper-container\" [attr.aria-busy]=\"importing\">\n <header class=\"move-user-header\">\n <div class=\"move-user-header__title\">{{ title }}</div>\n <div class=\"move-user-header__close\">\n <span class=\"app-icon cc-import-close-icon\" (click)=\"onCancel()\" role=\"button\" aria-label=\"Close\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M5 5L19 19M19 5L5 19\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" />\n </svg>\n </span>\n </div>\n </header>\n\n <div id=\"cc-import-stepper\">\n <mat-stepper\n #stepper\n [linear]=\"true\"\n labelPosition=\"bottom\"\n [selectedIndex]=\"selectedIndex\"\n (selectionChange)=\"onStepSelectionChange($event)\"\n >\n\n <!-- Step 1: pick the UCCX contact center -->\n <mat-step [completed]=\"canGoNext\">\n <ng-template matStepLabel>Select</ng-template>\n\n <div class=\"cc-import-notice\" *ngIf=\"showCustomerAssistNotice\" role=\"status\">\n <span class=\"cc-import-notice__icon\" aria-hidden=\"true\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" fill=\"currentColor\" />\n <path d=\"M8 7.1v4.2\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n <circle cx=\"8\" cy=\"4.8\" r=\"0.9\" fill=\"#fff\" />\n </svg>\n </span>\n <span class=\"cc-import-notice__text\">{{ customerAssistNotice }}</span>\n <button type=\"button\" class=\"cc-import-notice__close\" aria-label=\"Dismiss\" (click)=\"dismissNotice()\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M5 5L19 19M19 5L5 19\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" />\n </svg>\n </button>\n </div>\n\n <div class=\"step-title\">Step 1: Select contact center</div>\n\n <div class=\"move-user-tab-content-box\">\n <div class=\"cc-import-state\" *ngIf=\"loading\">Loading contact centers…</div>\n <div class=\"cc-import-state cc-import-state--error\" *ngIf=\"!loading && error\">\n Unable to load contact centers.\n </div>\n\n <section class=\"cc-import-step-content\" *ngIf=\"!loading && !error\">\n <div class=\"cc-import-field\">\n <label class=\"cc-import-label\" for=\"cc-import-contact-center\">Contact center</label>\n\n <mat-form-field class=\"cc-import-select\" appearance=\"outline\">\n <mat-select\n id=\"cc-import-contact-center\"\n panelClass=\"cc-import-select-panel\"\n placeholder=\"Select contact center\"\n [disableOptionCentering]=\"true\"\n [value]=\"selected?.applicationId ?? null\"\n (selectionChange)=\"onSelect($event.value)\"\n (openedChange)=\"onPanelToggle($event)\"\n >\n <mat-select-trigger>{{ selected?.applicationName }}</mat-select-trigger>\n\n <!-- Search box pinned above the options. Keystrokes are stopped here so\n mat-select's own typeahead does not steal them. -->\n <div class=\"cc-import-select-search\" (click)=\"$event.stopPropagation()\">\n <span class=\"cc-import-select-search__icon\" aria-hidden=\"true\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\">\n <circle cx=\"7\" cy=\"7\" r=\"4.6\" stroke=\"currentColor\" stroke-width=\"1.4\" />\n <path d=\"M10.6 10.6L14 14\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" />\n </svg>\n </span>\n <input\n class=\"cc-import-select-search__input\"\n type=\"text\"\n autocomplete=\"off\"\n placeholder=\"Search\"\n aria-label=\"Search contact centers\"\n [value]=\"searchTerm\"\n (input)=\"onSearch($event)\"\n (keydown)=\"$event.stopPropagation()\"\n />\n </div>\n\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option.applicationId\">\n <div class=\"option-row\">\n <span class=\"name\">{{ option.applicationName }}</span>\n <span\n class=\"cc-import-option-marker\"\n *ngIf=\"option.customerAssistCapable\"\n [matTooltip]=\"customerAssistMarkerTooltip\"\n aria-hidden=\"true\"\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M8 2.2 14.6 13.4H1.4L8 2.2Z\" stroke=\"currentColor\" stroke-width=\"1.2\" stroke-linejoin=\"round\" />\n <path d=\"M8 6.5v3\" stroke=\"currentColor\" stroke-width=\"1.2\" stroke-linecap=\"round\" />\n <circle cx=\"8\" cy=\"11.3\" r=\"0.7\" fill=\"currentColor\" />\n </svg>\n </span>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <p class=\"cc-import-empty\" *ngIf=\"!options.length\">\n Every detected contact center has already been imported.\n </p>\n </div>\n </section>\n </div>\n </mat-step>\n\n <!-- Step 2: the entities Tuki will create for it -->\n <mat-step>\n <ng-template matStepLabel>Overview</ng-template>\n\n <div class=\"step-title\">Overview</div>\n\n <div class=\"move-user-tab-content-box\">\n <h3 class=\"cc-import-card-title\">Review Contact Center Settings</h3>\n <p class=\"cc-import-card-text\">\n Review the settings for your new Contact center to make sure everything is correct.<br />\n You can make changes at any time by clicking on the name of the contact center on the dedicated page.\n </p>\n\n <div class=\"cc-import-state\" *ngIf=\"entitiesLoading\">Loading entities…</div>\n <div class=\"cc-import-state cc-import-state--error\" *ngIf=\"entitiesError\">\n Unable to load the related entities.\n </div>\n\n <ng-container *ngIf=\"!entitiesLoading && !entitiesError && entityGroups.length\">\n <div class=\"cc-import-tabs\" role=\"tablist\">\n <button\n type=\"button\"\n class=\"cc-import-tab\"\n *ngFor=\"let group of entityGroups; index as i\"\n role=\"tab\"\n [attr.aria-selected]=\"i === activeGroupIndex\"\n [class.cc-import-tab--active]=\"i === activeGroupIndex\"\n (click)=\"selectGroup(i)\"\n >\n {{ group.label }}\n </button>\n </div>\n\n <ul class=\"cc-import-items\" role=\"tabpanel\">\n <li class=\"cc-import-item\" *ngFor=\"let item of activeGroup?.items\">{{ item }}</li>\n <li class=\"cc-import-item cc-import-item--empty\" *ngIf=\"!activeGroup?.items?.length\">\n Nothing to create for {{ activeGroup?.label }}.\n </li>\n </ul>\n </ng-container>\n\n <div class=\"cc-import-state cc-import-state--error\" *ngIf=\"importError\">\n Unable to start the import. Please try again.\n </div>\n </div>\n </mat-step>\n </mat-stepper>\n\n <div class=\"wizard-actions\">\n <ng-container [ngSwitch]=\"stepper.selectedIndex\">\n <ng-container *ngSwitchCase=\"0\">\n <button\n mat-button\n class=\"uc-btn uc-btn-primary\"\n type=\"button\"\n [disabled]=\"!canGoNext\"\n (click)=\"onNext(stepper)\"\n >\n Next\n </button>\n <button mat-button class=\"uc-btn uc-btn-secondary\" type=\"button\" (click)=\"onCancel()\">\n Cancel\n </button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"1\">\n <button\n mat-button\n class=\"uc-btn uc-btn-primary\"\n type=\"button\"\n [disabled]=\"!canImport\"\n (click)=\"runImport()\"\n >\n <span class=\"uc-btn__inline-content\">\n <span class=\"uc-btn__spinner\" *ngIf=\"importing\" aria-hidden=\"true\"></span>\n <span>{{ importing ? 'Importing...' : 'Import' }}</span>\n </span>\n </button>\n <button\n mat-button\n class=\"uc-btn uc-btn-secondary\"\n type=\"button\"\n [disabled]=\"importing\"\n (click)=\"onPrevious(stepper)\"\n >\n Previous\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <div class=\"wizard-loading-overlay\" [class.wizard-loading-overlay--visible]=\"importing\" aria-hidden=\"true\"></div>\n</div>\n", styles: ["cc-import-contact-center-wizard{display:block;width:100%;min-height:100vh}.move-user-stepper-container{background-color:#f3f3f3;padding:0 0 16px;position:relative;overflow:hidden;box-sizing:border-box;min-height:100vh;display:flex;flex-direction:column}.move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:0}.app-icon{height:20px;width:20px;display:block;cursor:pointer}.cc-import-close-icon{color:#fffffff2}#cc-import-stepper{display:flex;flex-direction:column;width:100%;flex:1 1 auto;min-height:0}#cc-import-stepper .mat-stepper-horizontal{margin:0 auto;width:100%;background-color:transparent;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}#cc-import-stepper .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}#cc-import-stepper .mat-step-icon{width:28px;height:28px;border:3px solid hsl(0,0%,50.2%)}#cc-import-stepper .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}#cc-import-stepper .mat-step-icon-state-number{background-color:#fff}#cc-import-stepper .mat-step-icon-state-edit,#cc-import-stepper .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}#cc-import-stepper .mat-step-icon-content{display:none}#cc-import-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,#cc-import-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,#cc-import-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,#cc-import-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}#cc-import-stepper .mat-horizontal-stepper-header:before,#cc-import-stepper .mat-horizontal-stepper-header:after,#cc-import-stepper .mat-stepper-horizontal-line{border-top-color:#1170cf!important;border-top-width:3px!important;border-top-style:solid!important}#cc-import-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-stepper-horizontal-line,#cc-import-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:before,#cc-import-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:after{border-top-width:3px!important;background-color:#7b7b7b!important;border-top-color:#7b7b7b!important}#cc-import-stepper .mat-horizontal-content-container{padding:0!important;margin-top:3rem}#cc-import-stepper .mat-horizontal-stepper-content[aria-expanded=true]{padding-bottom:0}.step-title{font-size:26px;font-weight:500;width:70%;margin:0 auto 1rem;min-height:32px;display:flex;align-items:center}.wizard-actions{display:flex;flex-flow:row-reverse;justify-content:flex-start;align-items:center;margin:16px 16px 0 0;align-self:flex-end;gap:1rem;position:relative;z-index:30}.uc-btn{border-radius:50px!important;padding:8px 16px!important;min-width:80px!important;line-height:normal!important;cursor:pointer}.uc-btn__inline-content{display:inline-flex;align-items:center;gap:8px}.uc-btn__spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:uc-btn-spin .7s linear infinite}@keyframes uc-btn-spin{to{transform:rotate(360deg)}}.uc-btn-primary{background-color:#000!important;color:#fff!important;border:1px solid black!important}.uc-btn-secondary{background-color:#fff!important;color:#000!important;border:1px solid black!important}.wizard-actions .uc-btn-primary.mat-button-disabled{background-color:#bbb;color:#fff;border:1px solid grey;cursor:default!important;opacity:.3}.move-user-tab-content-box{width:70%;margin:0 auto;background-color:#fff;min-height:350px;border:1px solid #c3c1c1;border-radius:8px;box-sizing:border-box;padding:25px}.wizard-loading-overlay{position:absolute;inset:0;background:rgba(243,243,243,.72);backdrop-filter:blur(1px);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:20}.wizard-loading-overlay--visible{opacity:1;pointer-events:auto}.cc-import-notice{width:70%;margin:0 auto 1rem;box-sizing:border-box;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:4px;background-color:#e8f2fc;color:#2a2f3b;font-size:13px;line-height:1.4}.cc-import-notice__icon{display:flex;color:#1170cf;line-height:0}.cc-import-notice__text{flex:1}.cc-import-notice__close{background:none;border:none;padding:0;cursor:pointer;display:flex;color:#5a6172;line-height:0}.cc-import-step-content{display:flex;flex-direction:column;gap:20px;max-width:420px}.cc-import-field{display:flex;flex-direction:column;gap:10px}.cc-import-label{font-size:14px;font-weight:400;line-height:100%;letter-spacing:.1px;color:#2a2f3b}.cc-import-select{width:100%;max-width:333px}.cc-import-empty{margin:0;font-size:13px;color:#5a6172}.cc-import-state{font-size:14px;color:#5a6172}.cc-import-state--error{color:#c0392b}.cc-import-card-title{margin:0 0 8px;font-size:15px;font-weight:700;color:#2a2f3b}.cc-import-card-text{margin:0 0 22px;font-size:14px;line-height:1.6;color:#2a2f3b}.cc-import-tabs{display:flex;flex-wrap:wrap;gap:20px}.cc-import-tab{background:none;border:none;border-bottom:2px solid transparent;padding:0 0 8px;font:inherit;font-size:14px;color:#5a6172;cursor:pointer}.cc-import-tab--active{color:#000;font-weight:600;border-bottom-color:#000}.cc-import-items{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.cc-import-item{font-size:14px;color:#2a2f3b}.cc-import-item--empty{color:#5a6172;font-style:italic}.cc-import-select .mat-form-field-wrapper{padding-bottom:0}.cc-import-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}.cc-import-select .mat-form-field-outline,.cc-import-select .mat-form-field-outline-start,.cc-import-select .mat-form-field-outline-end,.cc-import-select .mat-form-field-outline-gap{display:none}.cc-import-select .mat-form-field-infix{width:100%;border-top:0;padding:0}.cc-import-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}.cc-import-select-panel .option-row{display:flex;justify-content:space-between;align-items:center;width:100%;gap:12px}.cc-import-select-panel .cc-import-option-marker{display:flex;color:#b26a00;line-height:0}.cc-import-select-search{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:8px;margin:4px 8px 8px;padding:0 10px;height:30px;border:1px solid #c3c1c1;border-radius:50px;background-color:#fff}.cc-import-select-search__icon{display:flex;color:#5a6172;line-height:0}.cc-import-select-search__input{flex:1;border:none;outline:none;font:inherit;font-size:13px;color:#2a2f3b;background:transparent}\n"] }]
|
|
224
|
+
}], propDecorators: { title: [{
|
|
225
|
+
type: Input
|
|
226
|
+
}], customerId: [{
|
|
227
|
+
type: Input
|
|
228
|
+
}], host: [{
|
|
229
|
+
type: Input
|
|
230
|
+
}], dcpHost: [{
|
|
231
|
+
type: Input
|
|
232
|
+
}], token: [{
|
|
233
|
+
type: Input
|
|
234
|
+
}], useMockData: [{
|
|
235
|
+
type: Input
|
|
236
|
+
}], contactCenters: [{
|
|
237
|
+
type: Input
|
|
238
|
+
}], cancel: [{
|
|
239
|
+
type: Output
|
|
240
|
+
}], imported: [{
|
|
241
|
+
type: Output
|
|
242
|
+
}] } });
|
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWNvbnRhY3QtY2VudGVyLXdpemFyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvY29udGFjdC1jZW50ZXIvY2MtaW1wb3J0L2NvbXBvbmVudHMvaW1wb3J0LWNvbnRhY3QtY2VudGVyLXdpemFyZC9pbXBvcnQtY29udGFjdC1jZW50ZXItd2l6YXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9jb250YWN0LWNlbnRlci9jYy1pbXBvcnQvY29tcG9uZW50cy9pbXBvcnQtY29udGFjdC1jZW50ZXItd2l6YXJkL2ltcG9ydC1jb250YWN0LWNlbnRlci13aXphcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvSSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVsSSxPQUFPLEVBQUUsbUJBQW1CLEVBQXNCLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7OztBQUUvRjs7Ozs7OztHQU9HO0FBT0gsTUFBTSxPQUFPLGtDQUFrQztJQU4vQztRQU9hLFVBQUssR0FBRyxtQkFBbUIsQ0FBQztRQU1yQyxpRUFBaUU7UUFDeEQsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDNUI7OztXQUdHO1FBQ00sbUJBQWMsR0FBMkIs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QU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0ZXBwZXJTZWxlY3Rpb25FdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zdGVwcGVyJztcbmltcG9ydCB7IE1hdFN0ZXBwZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgY2F0Y2hFcnJvciwgZmluYWxpemUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDY0ltcG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jYy1pbXBvcnQuc2VydmljZSc7XG5pbXBvcnQgeyBDVVNUT01FUl9BU1NJU1RfTUFSS0VSX1RPT0xUSVAsIENVU1RPTUVSX0FTU0lTVF9OT1RJQ0UsIElNUE9SVF9XSVpBUkRfVElUTEUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY2MtaW1wb3J0LmNvbnN0YW50cyc7XG5pbXBvcnQgeyBDb250YWN0Q2VudGVyLCBDb250YWN0Q2VudGVyRW50aXR5R3JvdXAsIEltcG9ydFJlc3VsdCB9IGZyb20gJy4uLy4uL3R5cGVzL2NjLWltcG9ydCc7XG5pbXBvcnQgeyBJTVBPUlRfV0laQVJEX1NURVBTLCBJbXBvcnRXaXphcmRTdGVwSWQgfSBmcm9tICcuL2ltcG9ydC1jb250YWN0LWNlbnRlci13aXphcmQudHlwZXMnO1xuXG4vKipcbiAqIEZ1bGwtcGFnZSBcIkltcG9ydCBjb250YWN0IGNlbnRlclwiIHdpemFyZDogcGljayBhIFVDQ1ggY29udGFjdCBjZW50ZXIsIHJldmlldyB0aGVcbiAqIGVudGl0aWVzIFR1a2kgd2lsbCBjcmVhdGUgZm9yIGl0LCB0aGVuIHN0YXJ0IHRoZSBpbXBvcnQuXG4gKlxuICogUmVuZGVyZWQgYXMgYSBwYWdlIGJ5IHRoZSBob3N0IGFwcCAobGlrZSBgdGstdXNlci1jcmVhdGlvbi13aXphcmRgKSwgbm90IGFzIGEgZGlhbG9nIC1cbiAqIHRoZSBob3N0IHN3YXBzIGl0IGluIHdoZW4gdGhlIHBhbmVsJ3MgSW1wb3J0IGJ1dHRvbiBpcyBwcmVzc2VkIGFuZCBzd2FwcyBpdCBiYWNrIG91dFxuICogb24gYGNhbmNlbGAgLyBgaW1wb3J0ZWRgLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NjLWltcG9ydC1jb250YWN0LWNlbnRlci13aXphcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbXBvcnQtY29udGFjdC1jZW50ZXItd2l6YXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbXBvcnQtY29udGFjdC1jZW50ZXItd2l6YXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBJbXBvcnRDb250YWN0Q2VudGVyV2l6YXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgdGl0bGUgPSBJTVBPUlRfV0laQVJEX1RJVExFO1xuICAgIEBJbnB1dCgpIGN1c3RvbWVySWQhOiBudW1iZXI7XG4gICAgQElucHV0KCkgaG9zdCE6IHN0cmluZztcbiAgICAvKiogQmFzZSBVUkwgb2YgdGhlIGRjcCBob3N0LCB3aGljaCBzZXJ2ZXMgdGhlIFVDQ1ggYXBwbGljYXRpb24gbGlzdC4gKi9cbiAgICBASW5wdXQoKSBkY3BIb3N0ITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRva2VuITogc3RyaW5nO1xuICAgIC8qKiBTZXJ2ZSBtb2NrIGRhdGEgaW5zdGVhZCBvZiBjYWxsaW5nIHRoZSBVQ0NYIG1pZ3JhdGlvbiBBUEkuICovXG4gICAgQElucHV0KCkgdXNlTW9ja0RhdGEgPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIENvbnRhY3QgY2VudGVycyB0aGUgY2FsbGVyIGhhcyBhbHJlYWR5IGxvYWRlZCAodGhlIHBhbmVsIGhhcyB0aGVtKSwgc28gdGhlIHdpemFyZFxuICAgICAqIG9wZW5zIHdpdGhvdXQgYSBzZWNvbmQgcm91bmQgdHJpcC4gTGVmdCB1bnNldCwgdGhlIHdpemFyZCBmZXRjaGVzIHRoZW0gaXRzZWxmLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIGNvbnRhY3RDZW50ZXJzOiBDb250YWN0Q2VudGVyW10gfCBudWxsID0gbnVsbDtcblxuICAgIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIGltcG9ydGVkID0gbmV3IEV2ZW50RW1pdHRlcjxJbXBvcnRSZXN1bHQ+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNjSW1wb3J0U2VydmljZSA9IGluamVjdChDY0ltcG9ydFNlcnZpY2UpO1xuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIHJlYWRvbmx5IGN1c3RvbWVyQXNzaXN0Tm90aWNlID0gQ1VTVE9NRVJfQVNTSVNUX05PVElDRTtcbiAgICByZWFkb25seSBjdXN0b21lckFzc2lzdE1hcmtlclRvb2x0aXAgPSBDVVNUT01FUl9BU1NJU1RfTUFSS0VSX1RPT0xUSVA7XG5cbiAgICBzZWxlY3RlZEluZGV4ID0gMDtcblxuICAgIC8qKiBDb250YWN0IGNlbnRlcnMgYXdhaXRpbmcgcmV2aWV3IC0gdGhlIG9uZXMgdGhlcmUgaXMgc29tZXRoaW5nIHRvIGltcG9ydC4gKi9cbiAgICBvcHRpb25zOiBDb250YWN0Q2VudGVyW10gPSBbXTtcbiAgICAvKiogYG9wdGlvbnNgIG5hcnJvd2VkIGJ5IHRoZSBwaWNrZXIncyBzZWFyY2ggYm94LiAqL1xuICAgIGZpbHRlcmVkT3B0aW9uczogQ29udGFjdENlbnRlcltdID0gW107XG4gICAgc2VhcmNoVGVybSA9ICcnO1xuICAgIHNlbGVjdGVkOiBDb250YWN0Q2VudGVyIHwgbnVsbCA9IG51bGw7XG4gICAgbm90aWNlRGlzbWlzc2VkID0gZmFsc2U7XG4gICAgbG9hZGluZyA9IGZhbHNlO1xuICAgIGVycm9yID0gZmFsc2U7XG5cbiAgICBlbnRpdHlHcm91cHM6IENvbnRhY3RDZW50ZXJFbnRpdHlHcm91cFtdID0gW107XG4gICAgLyoqIFdoaWNoIGVudGl0eSBncm91cCB0aGUgT3ZlcnZpZXcgc3RlcCdzIHRhYiBiYXIgaXMgc2hvd2luZy4gKi9cbiAgICBhY3RpdmVHcm91cEluZGV4ID0gMDtcbiAgICBlbnRpdGllc0xvYWRpbmcgPSBmYWxzZTtcbiAgICBlbnRpdGllc0Vycm9yID0gZmFsc2U7XG5cbiAgICBpbXBvcnRpbmcgPSBmYWxzZTtcbiAgICBpbXBvcnRFcnJvciA9IGZhbHNlO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZCgpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVsb2FkVHJpZ2dlcnMgPSBbJ2N1c3RvbWVySWQnLCAnaG9zdCcsICdkY3BIb3N0JywgJ3Rva2VuJywgJ3VzZU1vY2tEYXRhJywgJ2NvbnRhY3RDZW50ZXJzJ107XG4gICAgICAgIGlmIChyZWxvYWRUcmlnZ2Vycy5zb21lKGlucHV0ID0+IGNoYW5nZXNbaW5wdXRdICYmICFjaGFuZ2VzW2lucHV0XS5maXJzdENoYW5nZSkpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGdldCBjYW5Hb05leHQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgLyoqIFRoZSBDdXN0b21lciBBc3Npc3QgYWR2aXNvcnksIHVudGlsIHRoZSB1c2VyIGRpc21pc3NlcyBpdCBvciBwaWNrcyBzb21ldGhpbmcgZWxzZS4gKi9cbiAgICBnZXQgc2hvd0N1c3RvbWVyQXNzaXN0Tm90aWNlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnNlbGVjdGVkPy5jdXN0b21lckFzc2lzdENhcGFibGUgJiYgIXRoaXMubm90aWNlRGlzbWlzc2VkO1xuICAgIH1cblxuICAgIGdldCBjYW5JbXBvcnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc2VsZWN0ZWQgJiYgIXRoaXMuaW1wb3J0aW5nICYmICF0aGlzLmVudGl0aWVzTG9hZGluZyAmJiAhdGhpcy5lbnRpdGllc0Vycm9yO1xuICAgIH1cblxuICAgIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25TZWxlY3QoYXBwbGljYXRpb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5vcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi5hcHBsaWNhdGlvbklkID09PSBhcHBsaWNhdGlvbklkKSA/PyBudWxsO1xuICAgICAgICBpZiAoc2VsZWN0ZWQgPT09IHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgICAgdGhpcy5ub3RpY2VEaXNtaXNzZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gRW50aXRpZXMgYmVsb25nIHRvIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIGNvbnRhY3QgY2VudGVyIC0gZHJvcCB0aGVtIHNvIHRoZVxuICAgICAgICAvLyBvdmVydmlldyBzdGVwIHJlZmV0Y2hlcyBmb3IgdGhlIG5ldyBvbmUuXG4gICAgICAgIHRoaXMuZW50aXR5R3JvdXBzID0gW107XG4gICAgICAgIHRoaXMuYWN0aXZlR3JvdXBJbmRleCA9IDA7XG4gICAgICAgIHRoaXMuZW50aXRpZXNFcnJvciA9IGZhbHNlO1xuICAgIH1cblxuICAgIGdldCBhY3RpdmVHcm91cCgpOiBDb250YWN0Q2VudGVyRW50aXR5R3JvdXAgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnRpdHlHcm91cHNbdGhpcy5hY3RpdmVHcm91cEluZGV4XTtcbiAgICB9XG5cbiAgICBzZWxlY3RHcm91cChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlR3JvdXBJbmRleCA9IGluZGV4O1xuICAgIH1cblxuICAgIGRpc21pc3NOb3RpY2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubm90aWNlRGlzbWlzc2VkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvblNlYXJjaChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2hUZXJtID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICAgICAgdGhpcy5maWx0ZXIoKTtcbiAgICB9XG5cbiAgICAvKiogUmVzZXRzIHRoZSBzZWFyY2ggYm94IGVhY2ggdGltZSB0aGUgcGlja2VyJ3MgcGFuZWwgaXMgY2xvc2VkLiAqL1xuICAgIG9uUGFuZWxUb2dnbGUob3BlbmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghb3BlbmVkICYmIHRoaXMuc2VhcmNoVGVybSkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtID0gJyc7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TdGVwU2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiBTdGVwcGVyU2VsZWN0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gZXZlbnQuc2VsZWN0ZWRJbmRleDtcblxuICAgICAgICBpZiAodGhpcy5zdGVwSWRBdChldmVudC5zZWxlY3RlZEluZGV4KSA9PT0gJ292ZXJ2aWV3Jykge1xuICAgICAgICAgICAgdGhpcy5sb2FkRW50aXRpZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTmV4dChzdGVwcGVyOiBNYXRTdGVwcGVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNhbkdvTmV4dCkge1xuICAgICAgICAgICAgc3RlcHBlci5uZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblByZXZpb3VzKHN0ZXBwZXI6IE1hdFN0ZXBwZXIpOiB2b2lkIHtcbiAgICAgICAgc3RlcHBlci5wcmV2aW91cygpO1xuICAgIH1cblxuICAgIHJ1bkltcG9ydCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkIHx8IHRoaXMuaW1wb3J0aW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmltcG9ydGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuaW1wb3J0RXJyb3IgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgdGhpcy5jY0ltcG9ydFNlcnZpY2UuaW1wb3J0Q29udGFjdENlbnRlcihOdW1iZXIodGhpcy5jdXN0b21lcklkKSwgdGhpcy5zZWxlY3RlZC5hcHBsaWNhdGlvbklkKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1VuYWJsZSB0byBzdGFydCB0aGUgY29udGFjdC1jZW50ZXIgaW1wb3J0JywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbXBvcnRFcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2Y8SW1wb3J0UmVzdWx0IHwgbnVsbD4obnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmltcG9ydGluZyA9IGZhbHNlKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW1wb3J0ZWQuZW1pdChyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0ZXBJZEF0KGluZGV4OiBudW1iZXIpOiBJbXBvcnRXaXphcmRTdGVwSWQgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gSU1QT1JUX1dJWkFSRF9TVEVQU1tpbmRleF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNjSW1wb3J0U2VydmljZS51c2VNb2NrRGF0YSA9IHRoaXMudXNlTW9ja0RhdGE7XG5cbiAgICAgICAgaWYgKHRoaXMuaG9zdCkge1xuICAgICAgICAgICAgdGhpcy5jY0ltcG9ydFNlcnZpY2Uuc2V0SG9zdCh0aGlzLmhvc3QpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRjcEhvc3QpIHtcbiAgICAgICAgICAgIHRoaXMuY2NJbXBvcnRTZXJ2aWNlLnNldERjcEhvc3QodGhpcy5kY3BIb3N0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50b2tlbikge1xuICAgICAgICAgICAgdGhpcy5jY0ltcG9ydFNlcnZpY2Uuc2V0VG9rZW4odGhpcy50b2tlbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb250YWN0Q2VudGVycykge1xuICAgICAgICAgICAgdGhpcy5zZXRPcHRpb25zKHRoaXMuY29udGFjdENlbnRlcnMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VzdG9tZXJJZCA9IE51bWJlcih0aGlzLmN1c3RvbWVySWQpO1xuICAgICAgICBpZiAoIXRoaXMudXNlTW9ja0RhdGEgJiYgKCFjdXN0b21lcklkIHx8ICF0aGlzLnRva2VuKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lcnJvciA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLmNjSW1wb3J0U2VydmljZS5mZXRjaENvbnRhY3RDZW50ZXJzKGN1c3RvbWVySWQpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignVW5hYmxlIHRvIGxvYWQgdGhlIGNvbnRhY3QgY2VudGVycycsIGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mPENvbnRhY3RDZW50ZXJbXT4oW10pO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoY29udGFjdENlbnRlcnMgPT4gdGhpcy5zZXRPcHRpb25zKGNvbnRhY3RDZW50ZXJzKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE9wdGlvbnMoY29udGFjdENlbnRlcnM6IENvbnRhY3RDZW50ZXJbXSk6IHZvaWQge1xuICAgICAgICAvLyBMZWZ0IGluIHNvdXJjZSBvcmRlciBvbiBwdXJwb3NlIC0gdGhlIHBpY2tlciBzaG93cyB0aGVtIHRoZSB3YXkgdGhlIGJhY2tlbmRcbiAgICAgICAgLy8gKGFuZCB0aGUgbW9jaykgaGFuZHMgdGhlbSBvdmVyLCBub3QgYWxwaGFiZXRpY2FsbHkuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIEVsaWdpYmxlIGZvciBhIFdlYmV4IENvbnRhY3QgQ2VudGVyIGltcG9ydDogbm90IGltcG9ydGVkIHlldCwgYW5kIGVpdGhlclxuICAgICAgICAvLyB1bnN1cHBvcnRlZCBvbiBDdXN0b21lciBBc3Npc3Qgb3IgcmV2aWV3YWJsZSBmb3IgZnVsbCBmZWF0dXJlIGNvdmVyYWdlLlxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBjb250YWN0Q2VudGVycy5maWx0ZXIoY29udGFjdENlbnRlciA9PlxuICAgICAgICAgICAgY29udGFjdENlbnRlci5taWdyYXRpb25TdGF0ZSAhPT0gJ21pZ3JhdGVkJ1xuICAgICAgICAgICAgJiYgKGNvbnRhY3RDZW50ZXIuY29tcGF0aWJpbGl0eVN0YXR1cyA9PT0gJ3Vuc3VwcG9ydGVkJ1xuICAgICAgICAgICAgICAgIHx8IGNvbnRhY3RDZW50ZXIuY29tcGF0aWJpbGl0eVN0YXR1cyA9PT0gJ3JlcXVpcmVzLXJldmlldycpKTtcblxuICAgICAgICAvLyBBIGNvbnRhY3QgY2VudGVyIHNlbGVjdGVkIGJlZm9yZSBhIHJlbG9hZCBtYXkgbm8gbG9uZ2VyIGJlIGltcG9ydGFibGUuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkICYmICF0aGlzLm9wdGlvbnMuc29tZShvcHRpb24gPT4gb3B0aW9uLmFwcGxpY2F0aW9uSWQgPT09IHRoaXMuc2VsZWN0ZWQ/LmFwcGxpY2F0aW9uSWQpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZW50aXR5R3JvdXBzID0gW107XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUdyb3VwSW5kZXggPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5maWx0ZXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbHRlcigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmVlZGxlID0gdGhpcy5zZWFyY2hUZXJtLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IG5lZWRsZVxuICAgICAgICAgICAgPyB0aGlzLm9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiBvcHRpb24uYXBwbGljYXRpb25OYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobmVlZGxlKSlcbiAgICAgICAgICAgIDogdGhpcy5vcHRpb25zO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZEVudGl0aWVzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWQgfHwgdGhpcy5lbnRpdHlHcm91cHMubGVuZ3RoIHx8IHRoaXMuZW50aXRpZXNMb2FkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVudGl0aWVzTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZW50aXRpZXNFcnJvciA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLmNjSW1wb3J0U2VydmljZS5mZXRjaENvbnRhY3RDZW50ZXJFbnRpdGllcyhOdW1iZXIodGhpcy5jdXN0b21lcklkKSwgdGhpcy5zZWxlY3RlZClcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdVbmFibGUgdG8gbG9hZCB0aGUgY29udGFjdC1jZW50ZXIgZW50aXRpZXMnLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVudGl0aWVzRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5lbnRpdGllc0xvYWRpbmcgPSBmYWxzZSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShlbnRpdGllcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW50aXR5R3JvdXBzID0gZW50aXRpZXMgPyBlbnRpdGllcy5ncm91cHMgOiBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVHcm91cEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtb3ZlLXVzZXItc3RlcHBlci1jb250YWluZXJcIiBbYXR0ci5hcmlhLWJ1c3ldPVwiaW1wb3J0aW5nXCI+XG4gIDxoZWFkZXIgY2xhc3M9XCJtb3ZlLXVzZXItaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1vdmUtdXNlci1oZWFkZXJfX3RpdGxlXCI+e3sgdGl0bGUgfX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibW92ZS11c2VyLWhlYWRlcl9fY2xvc2VcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLWljb24gY2MtaW1wb3J0LWNsb3NlLWljb25cIiAoY2xpY2spPVwib25DYW5jZWwoKVwiIHJvbGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj5cbiAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTUgNUwxOSAxOU0xOSA1TDUgMTlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvaGVhZGVyPlxuXG4gIDxkaXYgaWQ9XCJjYy1pbXBvcnQtc3RlcHBlclwiPlxuICAgIDxtYXQtc3RlcHBlclxuICAgICAgI3N0ZXBwZXJcbiAgICAgIFtsaW5lYXJdPVwidHJ1ZVwiXG4gICAgICBsYWJlbFBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkSW5kZXhcIlxuICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblN0ZXBTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgPlxuXG4gICAgICA8IS0tIFN0ZXAgMTogcGljayB0aGUgVUNDWCBjb250YWN0IGNlbnRlciAtLT5cbiAgICAgIDxtYXQtc3RlcCBbY29tcGxldGVkXT1cImNhbkdvTmV4dFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlNlbGVjdDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNjLWltcG9ydC1ub3RpY2VcIiAqbmdJZj1cInNob3dDdXN0b21lckFzc2lzdE5vdGljZVwiIHJvbGU9XCJzdGF0dXNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNjLWltcG9ydC1ub3RpY2VfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCI4XCIgcj1cIjdcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgLz5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk04IDcuMXY0LjJcIiBzdHJva2U9XCIjZmZmXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCI0LjhcIiByPVwiMC45XCIgZmlsbD1cIiNmZmZcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2MtaW1wb3J0LW5vdGljZV9fdGV4dFwiPnt7IGN1c3RvbWVyQXNzaXN0Tm90aWNlIH19PC9zcGFuPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2MtaW1wb3J0LW5vdGljZV9fY2xvc2VcIiBhcmlhLWxhYmVsPVwiRGlzbWlzc1wiIChjbGljayk9XCJkaXNtaXNzTm90aWNlKClcIj5cbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA1TDE5IDE5TTE5IDVMNSAxOVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZVwiPlN0ZXAgMTogU2VsZWN0IGNvbnRhY3QgY2VudGVyPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vdmUtdXNlci10YWItY29udGVudC1ib3hcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtaW1wb3J0LXN0YXRlXCIgKm5nSWY9XCJsb2FkaW5nXCI+TG9hZGluZyBjb250YWN0IGNlbnRlcnMmaGVsbGlwOzwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYy1pbXBvcnQtc3RhdGUgY2MtaW1wb3J0LXN0YXRlLS1lcnJvclwiICpuZ0lmPVwiIWxvYWRpbmcgJiYgZXJyb3JcIj5cbiAgICAgICAgICAgIFVuYWJsZSB0byBsb2FkIGNvbnRhY3QgY2VudGVycy5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2MtaW1wb3J0LXN0ZXAtY29udGVudFwiICpuZ0lmPVwiIWxvYWRpbmcgJiYgIWVycm9yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtaW1wb3J0LWZpZWxkXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNjLWltcG9ydC1sYWJlbFwiIGZvcj1cImNjLWltcG9ydC1jb250YWN0LWNlbnRlclwiPkNvbnRhY3QgY2VudGVyPC9sYWJlbD5cblxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJjYy1pbXBvcnQtc2VsZWN0XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgaWQ9XCJjYy1pbXBvcnQtY29udGFjdC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgcGFuZWxDbGFzcz1cImNjLWltcG9ydC1zZWxlY3QtcGFuZWxcIlxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgY29udGFjdCBjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVPcHRpb25DZW50ZXJpbmddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0ZWQ/LmFwcGxpY2F0aW9uSWQgPz8gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0KCRldmVudC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgKG9wZW5lZENoYW5nZSk9XCJvblBhbmVsVG9nZ2xlKCRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0LXRyaWdnZXI+e3sgc2VsZWN0ZWQ/LmFwcGxpY2F0aW9uTmFtZSB9fTwvbWF0LXNlbGVjdC10cmlnZ2VyPlxuXG4gICAgICAgICAgICAgICAgICA8IS0tIFNlYXJjaCBib3ggcGlubmVkIGFib3ZlIHRoZSBvcHRpb25zLiBLZXlzdHJva2VzIGFyZSBzdG9wcGVkIGhlcmUgc29cbiAgICAgICAgICAgICAgICAgICAgICAgbWF0LXNlbGVjdCdzIG93biB0eXBlYWhlYWQgZG9lcyBub3Qgc3RlYWwgdGhlbS4gLS0+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtaW1wb3J0LXNlbGVjdC1zZWFyY2hcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2MtaW1wb3J0LXNlbGVjdC1zZWFyY2hfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjdcIiBjeT1cIjdcIiByPVwiNC42XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuNiAxMC42TDE0IDE0XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYy1pbXBvcnQtc2VsZWN0LXNlYXJjaF9faW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoIGNvbnRhY3QgY2VudGVyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvbi5hcHBsaWNhdGlvbklkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb24tcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYW1lXCI+e3sgb3B0aW9uLmFwcGxpY2F0aW9uTmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYy1pbXBvcnQtb3B0aW9uLW1hcmtlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbi5jdXN0b21lckFzc2lzdENhcGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiY3VzdG9tZXJBc3Npc3RNYXJrZXJUb29sdGlwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk04IDIuMiAxNC42IDEzLjRIMS40TDggMi4yWlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuMlwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk04IDYuNXYzXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4yXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCIxMS4zXCIgcj1cIjAuN1wiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJjYy1pbXBvcnQtZW1wdHlcIiAqbmdJZj1cIiFvcHRpb25zLmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgIEV2ZXJ5IGRldGVjdGVkIGNvbnRhY3QgY2VudGVyIGhhcyBhbHJlYWR5IGJlZW4gaW1wb3J0ZWQuXG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC1zdGVwPlxuXG4gICAgICA8IS0tIFN0ZXAgMjogdGhlIGVudGl0aWVzIFR1a2kgd2lsbCBjcmVhdGUgZm9yIGl0IC0tPlxuICAgICAgPG1hdC1zdGVwPlxuICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPk92ZXJ2aWV3PC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZVwiPk92ZXJ2aWV3PC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vdmUtdXNlci10YWItY29udGVudC1ib3hcIj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJjYy1pbXBvcnQtY2FyZC10aXRsZVwiPlJldmlldyBDb250YWN0IENlbnRlciBTZXR0aW5nczwvaDM+XG4gICAgICAgICAgPHAgY2xhc3M9XCJjYy1pbXBvcnQtY2FyZC10ZXh0XCI+XG4gICAgICAgICAgICBSZXZpZXcgdGhlIHNldHRpbmdzIGZvciB5b3VyIG5ldyBDb250YWN0IGNlbnRlciB0byBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyBjb3JyZWN0LjxiciAvPlxuICAgICAgICAgICAgWW91IGNhbiBtYWtlIGNoYW5nZXMgYXQgYW55IHRpbWUgYnkgY2xpY2tpbmcgb24gdGhlIG5hbWUgb2YgdGhlIGNvbnRhY3QgY2VudGVyIG9uIHRoZSBkZWRpY2F0ZWQgcGFnZS5cbiAgICAgICAgICA8L3A+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtaW1wb3J0LXN0YXRlXCIgKm5nSWY9XCJlbnRpdGllc0xvYWRpbmdcIj5Mb2FkaW5nIGVudGl0aWVzJmhlbGxpcDs8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2MtaW1wb3J0LXN0YXRlIGNjLWltcG9ydC1zdGF0ZS0tZXJyb3JcIiAqbmdJZj1cImVudGl0aWVzRXJyb3JcIj5cbiAgICAgICAgICAgIFVuYWJsZSB0byBsb2FkIHRoZSByZWxhdGVkIGVudGl0aWVzLlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFlbnRpdGllc0xvYWRpbmcgJiYgIWVudGl0aWVzRXJyb3IgJiYgZW50aXR5R3JvdXBzLmxlbmd0aFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNjLWltcG9ydC10YWJzXCIgcm9sZT1cInRhYmxpc3RcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2MtaW1wb3J0LXRhYlwiXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGdyb3VwIG9mIGVudGl0eUdyb3VwczsgaW5kZXggYXMgaVwiXG4gICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpID09PSBhY3RpdmVHcm91cEluZGV4XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuY2MtaW1wb3J0LXRhYi0tYWN0aXZlXT1cImkgPT09IGFjdGl2ZUdyb3VwSW5kZXhcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RHcm91cChpKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBncm91cC5sYWJlbCB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJjYy1pbXBvcnQtaXRlbXNcIiByb2xlPVwidGFicGFuZWxcIj5cbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiY2MtaW1wb3J0LWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhY3RpdmVHcm91cD8uaXRlbXNcIj57eyBpdGVtIH19PC9saT5cbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiY2MtaW1wb3J0LWl0ZW0gY2MtaW1wb3J0LWl0ZW0tLWVtcHR5XCIgKm5nSWY9XCIhYWN0aXZlR3JvdXA/Lml0ZW1zPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICBOb3RoaW5nIHRvIGNyZWF0ZSBmb3Ige3sgYWN0aXZlR3JvdXA/LmxhYmVsIH19LlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYy1pbXBvcnQtc3RhdGUgY2MtaW1wb3J0LXN0YXRlLS1lcnJvclwiICpuZ0lmPVwiaW1wb3J0RXJyb3JcIj5cbiAgICAgICAgICAgIFVuYWJsZSB0byBzdGFydCB0aGUgaW1wb3J0LiBQbGVhc2UgdHJ5IGFnYWluLlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXN0ZXA+XG4gICAgPC9tYXQtc3RlcHBlcj5cblxuICAgIDxkaXYgY2xhc3M9XCJ3aXphcmQtYWN0aW9uc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic3RlcHBlci5zZWxlY3RlZEluZGV4XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIjBcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInVjLWJ0biB1Yy1idG4tcHJpbWFyeVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY2FuR29OZXh0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbk5leHQoc3RlcHBlcilcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIE5leHRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ1Yy1idG4gdWMtYnRuLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPlxuICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIjFcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInVjLWJ0biB1Yy1idG4tcHJpbWFyeVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY2FuSW1wb3J0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJydW5JbXBvcnQoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1Yy1idG5fX2lubGluZS1jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWMtYnRuX19zcGlubmVyXCIgKm5nSWY9XCJpbXBvcnRpbmdcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGltcG9ydGluZyA/ICdJbXBvcnRpbmcuLi4nIDogJ0ltcG9ydCcgfX08L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJ1Yy1idG4gdWMtYnRuLXNlY29uZGFyeVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpbXBvcnRpbmdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUHJldmlvdXMoc3RlcHBlcilcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIFByZXZpb3VzXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ3aXphcmQtbG9hZGluZy1vdmVybGF5XCIgW2NsYXNzLndpemFyZC1sb2FkaW5nLW92ZXJsYXktLXZpc2libGVdPVwiaW1wb3J0aW5nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** The wizard's steps, in order. Index-aligned with the `mat-stepper` steps. */
|
|
2
|
+
export const IMPORT_WIZARD_STEPS = ['select', 'overview'];
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWNvbnRhY3QtY2VudGVyLXdpemFyZC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9jb250YWN0LWNlbnRlci9jYy1pbXBvcnQvY29tcG9uZW50cy9pbXBvcnQtY29udGFjdC1jZW50ZXItd2l6YXJkL2ltcG9ydC1jb250YWN0LWNlbnRlci13aXphcmQudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0ZBQWdGO0FBQ2hGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFRoZSB3aXphcmQncyBzdGVwcywgaW4gb3JkZXIuIEluZGV4LWFsaWduZWQgd2l0aCB0aGUgYG1hdC1zdGVwcGVyYCBzdGVwcy4gKi9cbmV4cG9ydCBjb25zdCBJTVBPUlRfV0laQVJEX1NURVBTID0gWydzZWxlY3QnLCAnb3ZlcnZpZXcnXSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgSW1wb3J0V2l6YXJkU3RlcElkID0gdHlwZW9mIElNUE9SVF9XSVpBUkRfU1RFUFNbbnVtYmVyXTtcbiJdfQ==
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { UCCX_ITEM_TYPE } from '../types/uccx';
|
|
2
|
+
export const CHART_COLORS = {
|
|
3
|
+
customerAssist: '#177A5C',
|
|
4
|
+
webexContactCenter: '#D0D0D0',
|
|
5
|
+
requiresReview: '#1268E3'
|
|
6
|
+
};
|
|
7
|
+
/** Compatibility score thresholds, per the ticket's scoring table. */
|
|
8
|
+
export const COMPATIBILITY_THRESHOLDS = {
|
|
9
|
+
/** 80-100 - migrates to Customer Assist with no functional loss. */
|
|
10
|
+
migratable: 80,
|
|
11
|
+
/** 60-79 - migrates to Customer Assist, minor unsupported steps dropped. */
|
|
12
|
+
requiresReview: 60
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Slices of the panel's pie chart, in order: the recommended destination for every
|
|
16
|
+
* contact center detected in the connected UCCX environment.
|
|
17
|
+
*
|
|
18
|
+
* The panel is slice-driven, so re-cutting the chart when the design changes means
|
|
19
|
+
* editing this array - no component change.
|
|
20
|
+
*/
|
|
21
|
+
export const IMPORT_PANEL_SLICES = [
|
|
22
|
+
{
|
|
23
|
+
label: 'To Customer Assist',
|
|
24
|
+
color: CHART_COLORS.customerAssist,
|
|
25
|
+
tooltip: 'Fully supported by Customer Assist.',
|
|
26
|
+
match: contactCenter => contactCenter.compatibilityStatus === 'migratable'
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
label: 'Requires Review',
|
|
30
|
+
color: CHART_COLORS.requiresReview,
|
|
31
|
+
tooltip: 'Supported by Customer Assist, but a few unsupported steps would change. '
|
|
32
|
+
+ 'Can also go to Webex Contact Center for full feature coverage.',
|
|
33
|
+
match: contactCenter => contactCenter.compatibilityStatus === 'requires-review'
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
label: 'To Webex Contact Center',
|
|
37
|
+
color: CHART_COLORS.webexContactCenter,
|
|
38
|
+
tooltip: 'Not supported by Customer Assist - migrate to Webex Contact Center.',
|
|
39
|
+
match: contactCenter => contactCenter.compatibilityStatus === 'unsupported'
|
|
40
|
+
}
|
|
41
|
+
];
|
|
42
|
+
/**
|
|
43
|
+
* How UCCX entity types roll up into the groups the Overview step shows, in display
|
|
44
|
+
* order. Types not listed here get a group of their own under their raw type name,
|
|
45
|
+
* so nothing the backend returns is silently dropped.
|
|
46
|
+
*/
|
|
47
|
+
export const OVERVIEW_ENTITY_GROUPS = [
|
|
48
|
+
{ label: 'Channel', types: [UCCX_ITEM_TYPE.TRIGGER] },
|
|
49
|
+
{ label: 'Queues', types: [UCCX_ITEM_TYPE.CSQ] },
|
|
50
|
+
{ label: 'Audio files', types: [UCCX_ITEM_TYPE.PROMPT, UCCX_ITEM_TYPE.DOCUMENT] },
|
|
51
|
+
{ label: 'Flows', types: [UCCX_ITEM_TYPE.SCRIPT] },
|
|
52
|
+
{ label: 'Skill', types: [UCCX_ITEM_TYPE.SKILL] },
|
|
53
|
+
{ label: 'Contact center users', types: [UCCX_ITEM_TYPE.RESOURCE] }
|
|
54
|
+
];
|
|
55
|
+
export const IMPORT_PANEL_TITLE = 'Import Contact center';
|
|
56
|
+
export const IMPORT_PANEL_TOOLTIP = 'Contact centers detected in the connected UCCX environment, and where each one can migrate to.';
|
|
57
|
+
export const IMPORT_WIZARD_TITLE = 'Contact Center';
|
|
58
|
+
/** Shown once a "requires review" contact center is picked. Dismissible. */
|
|
59
|
+
export const CUSTOMER_ASSIST_NOTICE = 'This contact center may also be supported by Customer Assist. Check compatibility before continuing.';
|
|
60
|
+
/** Tooltip on the marker the picker puts next to those same contact centers. */
|
|
61
|
+
export const CUSTOMER_ASSIST_MARKER_TOOLTIP = 'May also be supported by Customer Assist.';
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2MtaW1wb3J0LmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9jb250YWN0LWNlbnRlci9jYy1pbXBvcnQvY29uc3RhbnRzL2NjLWltcG9ydC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7SUFDeEIsY0FBYyxFQUFFLFNBQVM7SUFDekIsa0JBQWtCLEVBQUUsU0FBUztJQUM3QixjQUFjLEVBQUUsU0FBUztDQUNuQixDQUFDO0FBRVgsc0VBQXNFO0FBQ3RFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHO0lBQ3BDLG9FQUFvRTtJQUNwRSxVQUFVLEVBQUUsRUFBRTtJQUNkLDRFQUE0RTtJQUM1RSxjQUFjLEVBQUUsRUFBRTtDQUNaLENBQUM7QUFFWDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBdUI7SUFDbkQ7UUFDSSxLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLEtBQUssRUFBRSxZQUFZLENBQUMsY0FBYztRQUNsQyxPQUFPLEVBQUUscUNBQXFDO1FBQzlDLEtBQUssRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsS0FBSyxZQUFZO0tBQzdFO0lBQ0Q7UUFDSSxLQUFLLEVBQUUsaUJBQWlCO1FBQ3hCLEtBQUssRUFBRSxZQUFZLENBQUMsY0FBYztRQUNsQyxPQUFPLEVBQUUsMEVBQTBFO2NBQzdFLGdFQUFnRTtRQUN0RSxLQUFLLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLEtBQUssaUJBQWlCO0tBQ2xGO0lBQ0Q7UUFDSSxLQUFLLEVBQUUseUJBQXlCO1FBQ2hDLEtBQUssRUFBRSxZQUFZLENBQUMsa0JBQWtCO1FBQ3RDLE9BQU8sRUFBRSxxRUFBcUU7UUFDOUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLG1CQUFtQixLQUFLLGFBQWE7S0FDOUU7Q0FDSixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUF5QztJQUN4RSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFO0lBQ3JELEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDaEQsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO0lBQ2pGLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUU7SUFDbEQsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtJQUNqRCxFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7Q0FDdEUsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLHVCQUF1QixDQUFDO0FBRTFELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUM3QixnR0FBZ0csQ0FBQztBQUVyRyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQztBQUVwRCw0RUFBNEU7QUFDNUUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQy9CLHNHQUFzRyxDQUFDO0FBRTNHLGdGQUFnRjtBQUNoRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRywyQ0FBMkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEltcG9ydFBhbmVsU2xpY2UgfSBmcm9tICcuLi90eXBlcy9jYy1pbXBvcnQnO1xuaW1wb3J0IHsgVUNDWF9JVEVNX1RZUEUgfSBmcm9tICcuLi90eXBlcy91Y2N4JztcblxuZXhwb3J0IGNvbnN0IENIQVJUX0NPTE9SUyA9IHtcbiAgICBjdXN0b21lckFzc2lzdDogJyMxNzdBNUMnLFxuICAgIHdlYmV4Q29udGFjdENlbnRlcjogJyNEMEQwRDAnLFxuICAgIHJlcXVpcmVzUmV2aWV3OiAnIzEyNjhFMydcbn0gYXMgY29uc3Q7XG5cbi8qKiBDb21wYXRpYmlsaXR5IHNjb3JlIHRocmVzaG9sZHMsIHBlciB0aGUgdGlja2V0J3Mgc2NvcmluZyB0YWJsZS4gKi9cbmV4cG9ydCBjb25zdCBDT01QQVRJQklMSVRZX1RIUkVTSE9MRFMgPSB7XG4gICAgLyoqIDgwLTEwMCAtIG1pZ3JhdGVzIHRvIEN1c3RvbWVyIEFzc2lzdCB3aXRoIG5vIGZ1bmN0aW9uYWwgbG9zcy4gKi9cbiAgICBtaWdyYXRhYmxlOiA4MCxcbiAgICAvKiogNjAtNzkgLSBtaWdyYXRlcyB0byBDdXN0b21lciBBc3Npc3QsIG1pbm9yIHVuc3VwcG9ydGVkIHN0ZXBzIGRyb3BwZWQuICovXG4gICAgcmVxdWlyZXNSZXZpZXc6IDYwXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIFNsaWNlcyBvZiB0aGUgcGFuZWwncyBwaWUgY2hhcnQsIGluIG9yZGVyOiB0aGUgcmVjb21tZW5kZWQgZGVzdGluYXRpb24gZm9yIGV2ZXJ5XG4gKiBjb250YWN0IGNlbnRlciBkZXRlY3RlZCBpbiB0aGUgY29ubmVjdGVkIFVDQ1ggZW52aXJvbm1lbnQuXG4gKlxuICogVGhlIHBhbmVsIGlzIHNsaWNlLWRyaXZlbiwgc28gcmUtY3V0dGluZyB0aGUgY2hhcnQgd2hlbiB0aGUgZGVzaWduIGNoYW5nZXMgbWVhbnNcbiAqIGVkaXRpbmcgdGhpcyBhcnJheSAtIG5vIGNvbXBvbmVudCBjaGFuZ2UuXG4gKi9cbmV4cG9ydCBjb25zdCBJTVBPUlRfUEFORUxfU0xJQ0VTOiBJbXBvcnRQYW5lbFNsaWNlW10gPSBbXG4gICAge1xuICAgICAgICBsYWJlbDogJ1RvIEN1c3RvbWVyIEFzc2lzdCcsXG4gICAgICAgIGNvbG9yOiBDSEFSVF9DT0xPUlMuY3VzdG9tZXJBc3Npc3QsXG4gICAgICAgIHRvb2x0aXA6ICdGdWxseSBzdXBwb3J0ZWQgYnkgQ3VzdG9tZXIgQXNzaXN0LicsXG4gICAgICAgIG1hdGNoOiBjb250YWN0Q2VudGVyID0+IGNvbnRhY3RDZW50ZXIuY29tcGF0aWJpbGl0eVN0YXR1cyA9PT0gJ21pZ3JhdGFibGUnXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGxhYmVsOiAnUmVxdWlyZXMgUmV2aWV3JyxcbiAgICAgICAgY29sb3I6IENIQVJUX0NPTE9SUy5yZXF1aXJlc1JldmlldyxcbiAgICAgICAgdG9vbHRpcDogJ1N1cHBvcnRlZCBieSBDdXN0b21lciBBc3Npc3QsIGJ1dCBhIGZldyB1bnN1cHBvcnRlZCBzdGVwcyB3b3VsZCBjaGFuZ2UuICdcbiAgICAgICAgICAgICsgJ0NhbiBhbHNvIGdvIHRvIFdlYmV4IENvbnRhY3QgQ2VudGVyIGZvciBmdWxsIGZlYXR1cmUgY292ZXJhZ2UuJyxcbiAgICAgICAgbWF0Y2g6IGNvbnRhY3RDZW50ZXIgPT4gY29udGFjdENlbnRlci5jb21wYXRpYmlsaXR5U3RhdHVzID09PSAncmVxdWlyZXMtcmV2aWV3J1xuICAgIH0sXG4gICAge1xuICAgICAgICBsYWJlbDogJ1RvIFdlYmV4IENvbnRhY3QgQ2VudGVyJyxcbiAgICAgICAgY29sb3I6IENIQVJUX0NPTE9SUy53ZWJleENvbnRhY3RDZW50ZXIsXG4gICAgICAgIHRvb2x0aXA6ICdOb3Qgc3VwcG9ydGVkIGJ5IEN1c3RvbWVyIEFzc2lzdCAtIG1pZ3JhdGUgdG8gV2ViZXggQ29udGFjdCBDZW50ZXIuJyxcbiAgICAgICAgbWF0Y2g6IGNvbnRhY3RDZW50ZXIgPT4gY29udGFjdENlbnRlci5jb21wYXRpYmlsaXR5U3RhdHVzID09PSAndW5zdXBwb3J0ZWQnXG4gICAgfVxuXTtcblxuLyoqXG4gKiBIb3cgVUNDWCBlbnRpdHkgdHlwZXMgcm9sbCB1cCBpbnRvIHRoZSBncm91cHMgdGhlIE92ZXJ2aWV3IHN0ZXAgc2hvd3MsIGluIGRpc3BsYXlcbiAqIG9yZGVyLiBUeXBlcyBub3QgbGlzdGVkIGhlcmUgZ2V0IGEgZ3JvdXAgb2YgdGhlaXIgb3duIHVuZGVyIHRoZWlyIHJhdyB0eXBlIG5hbWUsXG4gKiBzbyBub3RoaW5nIHRoZSBiYWNrZW5kIHJldHVybnMgaXMgc2lsZW50bHkgZHJvcHBlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IE9WRVJWSUVXX0VOVElUWV9HUk9VUFM6IHsgbGFiZWw6IHN0cmluZzsgdHlwZXM6IHN0cmluZ1tdIH1bXSA9IFtcbiAgICB7IGxhYmVsOiAnQ2hhbm5lbCcsIHR5cGVzOiBbVUNDWF9JVEVNX1RZUEUuVFJJR0dFUl0gfSxcbiAgICB7IGxhYmVsOiAnUXVldWVzJywgdHlwZXM6IFtVQ0NYX0lURU1fVFlQRS5DU1FdIH0sXG4gICAgeyBsYWJlbDogJ0F1ZGlvIGZpbGVzJywgdHlwZXM6IFtVQ0NYX0lURU1fVFlQRS5QUk9NUFQsIFVDQ1hfSVRFTV9UWVBFLkRPQ1VNRU5UXSB9LFxuICAgIHsgbGFiZWw6ICdGbG93cycsIHR5cGVzOiBbVUNDWF9JVEVNX1RZUEUuU0NSSVBUXSB9LFxuICAgIHsgbGFiZWw6ICdTa2lsbCcsIHR5cGVzOiBbVUNDWF9JVEVNX1RZUEUuU0tJTExdIH0sXG4gICAgeyBsYWJlbDogJ0NvbnRhY3QgY2VudGVyIHVzZXJzJywgdHlwZXM6IFtVQ0NYX0lURU1fVFlQRS5SRVNPVVJDRV0gfVxuXTtcblxuZXhwb3J0IGNvbnN0IElNUE9SVF9QQU5FTF9USVRMRSA9ICdJbXBvcnQgQ29udGFjdCBjZW50ZXInO1xuXG5leHBvcnQgY29uc3QgSU1QT1JUX1BBTkVMX1RPT0xUSVAgPVxuICAgICdDb250YWN0IGNlbnRlcnMgZGV0ZWN0ZWQgaW4gdGhlIGNvbm5lY3RlZCBVQ0NYIGVudmlyb25tZW50LCBhbmQgd2hlcmUgZWFjaCBvbmUgY2FuIG1pZ3JhdGUgdG8uJztcblxuZXhwb3J0IGNvbnN0IElNUE9SVF9XSVpBUkRfVElUTEUgPSAnQ29udGFjdCBDZW50ZXInO1xuXG4vKiogU2hvd24gb25jZSBhIFwicmVxdWlyZXMgcmV2aWV3XCIgY29udGFjdCBjZW50ZXIgaXMgcGlja2VkLiBEaXNtaXNzaWJsZS4gKi9cbmV4cG9ydCBjb25zdCBDVVNUT01FUl9BU1NJU1RfTk9USUNFID1cbiAgICAnVGhpcyBjb250YWN0IGNlbnRlciBtYXkgYWxzbyBiZSBzdXBwb3J0ZWQgYnkgQ3VzdG9tZXIgQXNzaXN0LiBDaGVjayBjb21wYXRpYmlsaXR5IGJlZm9yZSBjb250aW51aW5nLic7XG5cbi8qKiBUb29sdGlwIG9uIHRoZSBtYXJrZXIgdGhlIHBpY2tlciBwdXRzIG5leHQgdG8gdGhvc2Ugc2FtZSBjb250YWN0IGNlbnRlcnMuICovXG5leHBvcnQgY29uc3QgQ1VTVE9NRVJfQVNTSVNUX01BUktFUl9UT09MVElQID0gJ01heSBhbHNvIGJlIHN1cHBvcnRlZCBieSBDdXN0b21lciBBc3Npc3QuJztcbiJdfQ==
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stand-in data used when `CcImportService.useMockData` is on.
|
|
3
|
+
*
|
|
4
|
+
* Shapes here mirror exactly what `CcImportService` produces from the real backend,
|
|
5
|
+
* so switching over is a matter of flipping `useMockData` to false.
|
|
6
|
+
*/
|
|
7
|
+
const APPLICATION_NAMES = [
|
|
8
|
+
'Operations', 'Sales', 'Support', 'Billing', 'Reception', 'Helpdesk', 'Retention',
|
|
9
|
+
'Onboarding', 'Escalations', 'Emergency', 'Pharmacy', 'Appointments', 'Claims',
|
|
10
|
+
'Collections', 'Dispatch', 'Front Desk', 'IT Service Desk', 'Loyalty', 'Orders', 'Returns'
|
|
11
|
+
];
|
|
12
|
+
/** One tab per group on the wizard's Overview step, in the order they are shown. */
|
|
13
|
+
const ENTITY_GROUP_TEMPLATE = [
|
|
14
|
+
{ label: 'Channel', suffixes: ['_CC'] },
|
|
15
|
+
{ label: 'Queues', suffixes: ['_Queue'] },
|
|
16
|
+
{ label: 'Audio files', suffixes: [' Welcome', ' Music On Hold', ' Closed Message'] },
|
|
17
|
+
{ label: 'Flows', suffixes: ['_Flow'] },
|
|
18
|
+
{ label: 'Skill', suffixes: ['_Skill'] },
|
|
19
|
+
{ label: 'Contact center users', suffixes: [' Supervisor', ' Agent 1', ' Agent 2'] }
|
|
20
|
+
];
|
|
21
|
+
/**
|
|
22
|
+
* The ten contact centers that still need a decision - the only ones the wizard
|
|
23
|
+
* offers, so these are exactly the rows the picker shows, in this order. The flagged
|
|
24
|
+
* three are "requires review" and carry the marker plus the advisory notice.
|
|
25
|
+
*/
|
|
26
|
+
const REVIEW_CONTACT_CENTERS = [
|
|
27
|
+
{ name: 'Operations', requiresReview: true },
|
|
28
|
+
{ name: 'Sales_inquiry' },
|
|
29
|
+
{ name: 'Tech Support' },
|
|
30
|
+
{ name: 'Tech_Info' },
|
|
31
|
+
{ name: 'Finance', requiresReview: true },
|
|
32
|
+
{ name: 'Innovation', requiresReview: true },
|
|
33
|
+
{ name: 'Marketing' },
|
|
34
|
+
{ name: 'Gen_Support' },
|
|
35
|
+
{ name: 'Legal' },
|
|
36
|
+
{ name: 'Sales Support' }
|
|
37
|
+
];
|
|
38
|
+
/** 100 contact centers: 70 migratable, 20 unsupported, 10 still to be imported. */
|
|
39
|
+
export function mockContactCenters() {
|
|
40
|
+
const contactCenters = [];
|
|
41
|
+
// 90 already-imported ones, split across the two destinations.
|
|
42
|
+
for (let i = 0; i < 90; i++) {
|
|
43
|
+
const name = `${APPLICATION_NAMES[i % APPLICATION_NAMES.length]}_${Math.floor(i / APPLICATION_NAMES.length) + 1}`;
|
|
44
|
+
const compatibilityStatus = i < 70 ? 'migratable' : 'unsupported';
|
|
45
|
+
contactCenters.push({
|
|
46
|
+
applicationId: `app-${i + 1}`,
|
|
47
|
+
applicationName: name,
|
|
48
|
+
scriptName: `${name}_AA_Queue.aef`,
|
|
49
|
+
compatibilityStatus,
|
|
50
|
+
compatibilityScore: compatibilityStatus === 'migratable' ? 92 : 41,
|
|
51
|
+
migrationState: 'migrated'
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
REVIEW_CONTACT_CENTERS.forEach((contactCenter, i) => {
|
|
55
|
+
const compatibilityStatus = contactCenter.requiresReview ? 'requires-review' : 'unsupported';
|
|
56
|
+
contactCenters.push({
|
|
57
|
+
applicationId: `app-${91 + i}`,
|
|
58
|
+
applicationName: contactCenter.name,
|
|
59
|
+
scriptName: `${contactCenter.name}_AA_Queue.aef`,
|
|
60
|
+
compatibilityStatus,
|
|
61
|
+
compatibilityScore: contactCenter.requiresReview ? 68 : 44,
|
|
62
|
+
migrationState: 'not-migrated',
|
|
63
|
+
customerAssistCapable: compatibilityStatus === 'requires-review'
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
return contactCenters;
|
|
67
|
+
}
|
|
68
|
+
export function mockContactCenterEntities(contactCenter) {
|
|
69
|
+
const base = contactCenter.applicationName;
|
|
70
|
+
return {
|
|
71
|
+
applicationId: contactCenter.applicationId,
|
|
72
|
+
groups: ENTITY_GROUP_TEMPLATE.map(group => ({
|
|
73
|
+
label: group.label,
|
|
74
|
+
items: group.suffixes.map(suffix => `${base}${suffix}`)
|
|
75
|
+
}))
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2MtaW1wb3J0Lm1vY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvY29udGFjdC1jZW50ZXIvY2MtaW1wb3J0L21vY2svY2MtaW1wb3J0Lm1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7O0dBS0c7QUFFSCxNQUFNLGlCQUFpQixHQUFHO0lBQ3RCLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVc7SUFDakYsWUFBWSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRO0lBQzlFLGFBQWEsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUztDQUM3RixDQUFDO0FBRUYsb0ZBQW9GO0FBQ3BGLE1BQU0scUJBQXFCLEdBQTRDO0lBQ25FLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRTtJQUN2QyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUU7SUFDekMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO0lBQ3JGLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRTtJQUN2QyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUU7SUFDeEMsRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRTtDQUN2RixDQUFDO0FBRUY7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LEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQztTQUMxRCxDQUFDLENBQUM7S0FDTixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRhY3RDZW50ZXIsIENvbnRhY3RDZW50ZXJDb21wYXRpYmlsaXR5U3RhdHVzLCBDb250YWN0Q2VudGVyRW50aXRpZXMgfSBmcm9tICcuLi90eXBlcy9jYy1pbXBvcnQnO1xuXG4vKipcbiAqIFN0YW5kLWluIGRhdGEgdXNlZCB3aGVuIGBDY0ltcG9ydFNlcnZpY2UudXNlTW9ja0RhdGFgIGlzIG9uLlxuICpcbiAqIFNoYXBlcyBoZXJlIG1pcnJvciBleGFjdGx5IHdoYXQgYENjSW1wb3J0U2VydmljZWAgcHJvZHVjZXMgZnJvbSB0aGUgcmVhbCBiYWNrZW5kLFxuICogc28gc3dpdGNoaW5nIG92ZXIgaXMgYSBtYXR0ZXIgb2YgZmxpcHBpbmcgYHVzZU1vY2tEYXRhYCB0byBmYWxzZS5cbiAqL1xuXG5jb25zdCBBUFBMSUNBVElPTl9OQU1FUyA9IFtcbiAgICAnT3BlcmF0aW9ucycsICdTYWxlcycsICdTdXBwb3J0JywgJ0JpbGxpbmcnLCAnUmVjZXB0aW9uJywgJ0hlbHBkZXNrJywgJ1JldGVudGlvbicsXG4gICAgJ09uYm9hcmRpbmcnLCAnRXNjYWxhdGlvbnMnLCAnRW1lcmdlbmN5JywgJ1BoYXJtYWN5JywgJ0FwcG9pbnRtZW50cycsICdDbGFpbXMnLFxuICAgICdDb2xsZWN0aW9ucycsICdEaXNwYXRjaCcsICdGcm9udCBEZXNrJywgJ0lUIFNlcnZpY2UgRGVzaycsICdMb3lhbHR5JywgJ09yZGVycycsICdSZXR1cm5zJ1xuXTtcblxuLyoqIE9uZSB0YWIgcGVyIGdyb3VwIG9uIHRoZSB3aXphcmQncyBPdmVydmlldyBzdGVwLCBpbiB0aGUgb3JkZXIgdGhleSBhcmUgc2hvd24uICovXG5jb25zdCBFTlRJVFlfR1JPVVBfVEVNUExBVEU6IHsgbGFiZWw6IHN0cmluZzsgc3VmZml4ZXM6IHN0cmluZ1tdIH1bXSA9IFtcbiAgICB7IGxhYmVsOiAnQ2hhbm5lbCcsIHN1ZmZpeGVzOiBbJ19DQyddIH0sXG4gICAgeyBsYWJlbDogJ1F1ZXVlcycsIHN1ZmZpeGVzOiBbJ19RdWV1ZSddIH0sXG4gICAgeyBsYWJlbDogJ0F1ZGlvIGZpbGVzJywgc3VmZml4ZXM6IFsnIFdlbGNvbWUnLCAnIE11c2ljIE9uIEhvbGQnLCAnIENsb3NlZCBNZXNzYWdlJ10gfSxcbiAgICB7IGxhYmVsOiAnRmxvd3MnLCBzdWZmaXhlczogWydfRmxvdyddIH0sXG4gICAgeyBsYWJlbDogJ1NraWxsJywgc3VmZml4ZXM6IFsnX1NraWxsJ10gfSxcbiAgICB7IGxhYmVsOiAnQ29udGFjdCBjZW50ZXIgdXNlcnMnLCBzdWZmaXhlczogWycgU3VwZXJ2aXNvcicsICcgQWdlbnQgMScsICcgQWdlbnQgMiddIH1cbl07XG5cbi8qKlxuICogVGhlIHRlbiBjb250YWN0IGNlbnRlcnMgdGhhdCBzdGlsbCBuZWVkIGEgZGVjaXNpb24gLSB0aGUgb25seSBvbmVzIHRoZSB3aXphcmRcbiAqIG9mZmVycywgc28gdGhlc2UgYXJlIGV4YWN0bHkgdGhlIHJvd3MgdGhlIHBpY2tlciBzaG93cywgaW4gdGhpcyBvcmRlci4gVGhlIGZsYWdnZWRcbiAqIHRocmVlIGFyZSBcInJlcXVpcmVzIHJldmlld1wiIGFuZCBjYXJyeSB0aGUgbWFya2VyIHBsdXMgdGhlIGFkdmlzb3J5IG5vdGljZS5cbiAqL1xuY29uc3QgUkVWSUVXX0NPTlRBQ1RfQ0VOVEVSUzogeyBuYW1lOiBzdHJpbmc7IHJlcXVpcmVzUmV2aWV3PzogYm9vbGVhbiB9W10gPSBbXG4gICAgeyBuYW1lOiAnT3BlcmF0aW9ucycsIHJlcXVpcmVzUmV2aWV3OiB0cnVlIH0sXG4gICAgeyBuYW1lOiAnU2FsZXNfaW5xdWlyeScgfSxcbiAgICB7IG5hbWU6ICdUZWNoIFN1cHBvcnQnIH0sXG4gICAgeyBuYW1lOiAnVGVjaF9JbmZvJyB9LFxuICAgIHsgbmFtZTogJ0ZpbmFuY2UnLCByZXF1aXJlc1JldmlldzogdHJ1ZSB9LFxuICAgIHsgbmFtZTogJ0lubm92YXRpb24nLCByZXF1aXJlc1JldmlldzogdHJ1ZSB9LFxuICAgIHsgbmFtZTogJ01hcmtldGluZycgfSxcbiAgICB7IG5hbWU6ICdHZW5fU3VwcG9ydCcgfSxcbiAgICB7IG5hbWU6ICdMZWdhbCcgfSxcbiAgICB7IG5hbWU6ICdTYWxlcyBTdXBwb3J0JyB9XG5dO1xuXG4vKiogMTAwIGNvbnRhY3QgY2VudGVyczogNzAgbWlncmF0YWJsZSwgMjAgdW5zdXBwb3J0ZWQsIDEwIHN0aWxsIHRvIGJlIGltcG9ydGVkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vY2tDb250YWN0Q2VudGVycygpOiBDb250YWN0Q2VudGVyW10ge1xuICAgIGNvbnN0IGNvbnRhY3RDZW50ZXJzOiBDb250YWN0Q2VudGVyW10gPSBbXTtcblxuICAgIC8vIDkwIGFscmVhZHktaW1wb3J0ZWQgb25lcywgc3BsaXQgYWNyb3NzIHRoZSB0d28gZGVzdGluYXRpb25zLlxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgOTA7IGkrKykge1xuICAgICAgICBjb25zdCBuYW1lID0gYCR7QVBQTElDQVRJT05fTkFNRVNbaSAlIEFQUExJQ0FUSU9OX05BTUVTLmxlbmd0aF19XyR7TWF0aC5mbG9vcihpIC8gQVBQTElDQVRJT05fTkFNRVMubGVuZ3RoKSArIDF9YDtcbiAgICAgICAgY29uc3QgY29tcGF0aWJpbGl0eVN0YXR1czogQ29udGFjdENlbnRlckNvbXBhdGliaWxpdHlTdGF0dXMgPSBpIDwgNzAgPyAnbWlncmF0YWJsZScgOiAndW5zdXBwb3J0ZWQnO1xuXG4gICAgICAgIGNvbnRhY3RDZW50ZXJzLnB1c2goe1xuICAgICAgICAgICAgYXBwbGljYXRpb25JZDogYGFwcC0ke2kgKyAxfWAsXG4gICAgICAgICAgICBhcHBsaWNhdGlvbk5hbWU6IG5hbWUsXG4gICAgICAgICAgICBzY3JpcHROYW1lOiBgJHtuYW1lfV9BQV9RdWV1ZS5hZWZgLFxuICAgICAgICAgICAgY29tcGF0aWJpbGl0eVN0YXR1cyxcbiAgICAgICAgICAgIGNvbXBhdGliaWxpdHlTY29yZTogY29tcGF0aWJpbGl0eVN0YXR1cyA9PT0gJ21pZ3JhdGFibGUnID8gOTIgOiA0MSxcbiAgICAgICAgICAgIG1pZ3JhdGlvblN0YXRlOiAnbWlncmF0ZWQnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIFJFVklFV19DT05UQUNUX0NFTlRFUlMuZm9yRWFjaCgoY29udGFjdENlbnRlciwgaSkgPT4ge1xuICAgICAgICBjb25zdCBjb21wYXRpYmlsaXR5U3RhdHVzOiBDb250YWN0Q2VudGVyQ29tcGF0aWJpbGl0eVN0YXR1cyA9XG4gICAgICAgICAgICBjb250YWN0Q2VudGVyLnJlcXVpcmVzUmV2aWV3ID8gJ3JlcXVpcmVzLXJldmlldycgOiAndW5zdXBwb3J0ZWQnO1xuXG4gICAgICAgIGNvbnRhY3RDZW50ZXJzLnB1c2goe1xuICAgICAgICAgICAgYXBwbGljYXRpb25JZDogYGFwcC0kezkxICsgaX1gLFxuICAgICAgICAgICAgYXBwbGljYXRpb25OYW1lOiBjb250YWN0Q2VudGVyLm5hbWUsXG4gICAgICAgICAgICBzY3JpcHROYW1lOiBgJHtjb250YWN0Q2VudGVyLm5hbWV9X0FBX1F1ZXVlLmFlZmAsXG4gICAgICAgICAgICBjb21wYXRpYmlsaXR5U3RhdHVzLFxuICAgICAgICAgICAgY29tcGF0aWJpbGl0eVNjb3JlOiBjb250YWN0Q2VudGVyLnJlcXVpcmVzUmV2aWV3ID8gNjggOiA0NCxcbiAgICAgICAgICAgIG1pZ3JhdGlvblN0YXRlOiAnbm90LW1pZ3JhdGVkJyxcbiAgICAgICAgICAgIGN1c3RvbWVyQXNzaXN0Q2FwYWJsZTogY29tcGF0aWJpbGl0eVN0YXR1cyA9PT0gJ3JlcXVpcmVzLXJldmlldydcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29udGFjdENlbnRlcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrQ29udGFjdENlbnRlckVudGl0aWVzKGNvbnRhY3RDZW50ZXI6IENvbnRhY3RDZW50ZXIpOiBDb250YWN0Q2VudGVyRW50aXRpZXMge1xuICAgIGNvbnN0IGJhc2UgPSBjb250YWN0Q2VudGVyLmFwcGxpY2F0aW9uTmFtZTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGFwcGxpY2F0aW9uSWQ6IGNvbnRhY3RDZW50ZXIuYXBwbGljYXRpb25JZCxcbiAgICAgICAgZ3JvdXBzOiBFTlRJVFlfR1JPVVBfVEVNUExBVEUubWFwKGdyb3VwID0+ICh7XG4gICAgICAgICAgICBsYWJlbDogZ3JvdXAubGFiZWwsXG4gICAgICAgICAgICBpdGVtczogZ3JvdXAuc3VmZml4ZXMubWFwKHN1ZmZpeCA9PiBgJHtiYXNlfSR7c3VmZml4fWApXG4gICAgICAgIH0pKVxuICAgIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2MtaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL2NvbnRhY3QtY2VudGVyL2NjLWltcG9ydC90eXBlcy9jYy1pbXBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSG93IHdlbGwgYSBjb250YWN0IGNlbnRlcidzIEFFRiBzY3JpcHQgbWFwcyBvbnRvIEN1c3RvbWVyIEFzc2lzdCwgZnJvbSB0aGVcbiAqIGNvbXBhdGliaWxpdHkgc2NvcmU6IDw2MCB1bnN1cHBvcnRlZCwgNjAtNzkgcmVxdWlyZXMgcmV2aWV3LCA4MC0xMDAgbWlncmF0YWJsZS5cbiAqXG4gKiBgbnVsbGAgbWVhbnMgdGhlIGJhY2tlbmQgZGlkIG5vdCBzdXBwbHkgYSBzY29yZS4gVGhlIEFFRiBzY29yaW5nIEFQSSBkb2VzIG5vdFxuICogZXhpc3QgeWV0ICh0aGUgc2NvcmluZyBtYXBwaW5nIGRvY3VtZW50IGlzIHN0aWxsIGEgcGVuZGluZyBpbnB1dCBvbiB0aGUgdGlja2V0KSxcbiAqIHNvIHRvZGF5IHRoaXMgaXMgYWx3YXlzIGZpbGxlZCBpbiBsb2NhbGx5IC0gc2VlIGBDY0ltcG9ydFNlcnZpY2VgLlxuICovXG5leHBvcnQgdHlwZSBDb250YWN0Q2VudGVyQ29tcGF0aWJpbGl0eVN0YXR1cyA9ICdtaWdyYXRhYmxlJyB8ICdyZXF1aXJlcy1yZXZpZXcnIHwgJ3Vuc3VwcG9ydGVkJztcblxuLyoqIFdoZXRoZXIgVHVraSBoYXMgYWxyZWFkeSBpbXBvcnRlZCB0aGlzIGNvbnRhY3QgY2VudGVyLiBEZXJpdmVkIGZyb20gcmVhbCBkYXRhLiAqL1xuZXhwb3J0IHR5cGUgQ29udGFjdENlbnRlck1pZ3JhdGlvblN0YXRlID0gJ21pZ3JhdGVkJyB8ICdub3QtbWlncmF0ZWQnO1xuXG4vKiogT25lIFVDQ1ggYXBwbGljYXRpb24gKGNvbnRhY3QgY2VudGVyKSB0aGF0IFR1a2kgY2FuIGltcG9ydC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdENlbnRlciB7XG4gICAgLyoqXG4gICAgICogSWRlbnRpdHkgb2YgdGhlIGNvbnRhY3QgY2VudGVyLiBVQ0NYIGhhcyBubyBhcHBsaWNhdGlvbiBpZCBvZiBpdHMgb3duIC0gdGhlXG4gICAgICogYXBwbGljYXRpb24gKm5hbWUqIGlzIHRoZSBrZXkgZXZlcnkgYmFja2VuZCBlbmRwb2ludCBmaWx0ZXJzIG9uIC0gc28gdGhpc1xuICAgICAqIGNhcnJpZXMgdGhlIG5hbWUgZm9yIHJlYWwgZGF0YS5cbiAgICAgKi9cbiAgICBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG4gICAgYXBwbGljYXRpb25OYW1lOiBzdHJpbmc7XG4gICAgLyoqIEFFRiBmaWxlIGJhY2tpbmcgdGhlIGFwcGxpY2F0aW9uLCBlLmcuIFwiT3BlcmF0aW9uc19BQV9RdWV1ZV9GaXhlZC5hZWZcIi4gKi9cbiAgICBzY3JpcHROYW1lOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBVQ0NYIHNlcnZlciBpdCB3YXMgY29sbGVjdGVkIGZyb20sIG5lZWRlZCBieSB0aGUgcGVyLWFwcGxpY2F0aW9uIGVuZHBvaW50cy4gKi9cbiAgICB1Y2N4SXA/OiBzdHJpbmc7XG4gICAgY29tcGF0aWJpbGl0eVN0YXR1czogQ29udGFjdENlbnRlckNvbXBhdGliaWxpdHlTdGF0dXM7XG4gICAgLyoqIFRoZSAwLTEwMCBzY29yZSBiZWhpbmQgYGNvbXBhdGliaWxpdHlTdGF0dXNgLCB3aGVuIHRoZSBiYWNrZW5kIHN1cHBsaWVkIG9uZS4gKi9cbiAgICBjb21wYXRpYmlsaXR5U2NvcmU/OiBudW1iZXI7XG4gICAgbWlncmF0aW9uU3RhdGU6IENvbnRhY3RDZW50ZXJNaWdyYXRpb25TdGF0ZTtcbiAgICAvKipcbiAgICAgKiBBZHZpc29yeSBmbGFnOiBhIFwicmVxdWlyZXMgcmV2aWV3XCIgY29udGFjdCBjZW50ZXIgY2FuIGdvIHRvIEN1c3RvbWVyIEFzc2lzdCBhc1xuICAgICAqIHdlbGwgYXMgdG8gV2ViZXggQ29udGFjdCBDZW50ZXIuIFN1cmZhY2VkIGFzIGEgbWFya2VyIGluIHRoZSBwaWNrZXIgYW5kIGEgbm90aWNlXG4gICAgICogb25jZSBzZWxlY3RlZCAtIGl0IGRvZXMgbm90IGJsb2NrIHRoZSBpbXBvcnQuXG4gICAgICovXG4gICAgY3VzdG9tZXJBc3Npc3RDYXBhYmxlPzogYm9vbGVhbjtcbn1cblxuLyoqIE9uZSByb3cgb2YgdGhlIGltcG9ydCBcIk92ZXJ2aWV3XCIgc3RlcCwgZS5nLiB7IGxhYmVsOiAnUXVldWVzJywgaXRlbXM6IFsnU2FsZXNfUXVldWUnXSB9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250YWN0Q2VudGVyRW50aXR5R3JvdXAge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgaXRlbXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEFwcGxpY2F0aW9uLWNlbnRyaWMgZW50aXR5IGJyZWFrZG93bjogZXZlcnl0aGluZyBUdWtpIHdpbGwgY3JlYXRlIGZvciB0aGlzXG4gKiBjb250YWN0IGNlbnRlciwgcGFja2FnZWQgYXMgYSBzaW5nbGUgbWlncmF0aW9uIHVuaXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdENlbnRlckVudGl0aWVzIHtcbiAgICBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG4gICAgZ3JvdXBzOiBDb250YWN0Q2VudGVyRW50aXR5R3JvdXBbXTtcbn1cblxuLyoqIERlY2xhcmF0aXZlIGRlc2NyaXB0aW9uIG9mIG9uZSBwaWUgc2xpY2UgLyBsZWdlbmQgcm93IG9mIHRoZSBwYW5lbC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0UGFuZWxTbGljZSB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBjb2xvcjogc3RyaW5nO1xuICAgIHRvb2x0aXA6IHN0cmluZztcbiAgICAvKiogV2hpY2ggY29udGFjdCBjZW50ZXJzIGZhbGwgaW50byB0aGlzIHNsaWNlLiAqL1xuICAgIG1hdGNoOiAoY29udGFjdENlbnRlcjogQ29udGFjdENlbnRlcikgPT4gYm9vbGVhbjtcbn1cblxuLyoqIEEgc2xpY2Ugb25jZSBpdCBoYXMgYmVlbiByZXNvbHZlZCBhZ2FpbnN0IHJlYWwgZGF0YS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0UGFuZWxTZWdtZW50IHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGNvbG9yOiBzdHJpbmc7XG4gICAgdG9vbHRpcDogc3RyaW5nO1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgcGVyY2VudGFnZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydFJlc3VsdCB7XG4gICAgYXBwbGljYXRpb25JZDogc3RyaW5nO1xuICAgIGFjY2VwdGVkOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSBYTFNYIG1pZ3JhdGlvbiB0cmFja2VyIHRoZSBiYWNrZW5kIGFuc3dlcnMgd2l0aC4gRXhlY3V0aW9uIGFuZCBwcm9ncmVzc1xuICAgICAqIHRyYWNraW5nIGFyZSBkZWZpbmVkIGluIGEgc2VwYXJhdGUgdGlja2V0OyB0aGlzIGlzIHNpbXBseSB3aGF0IGNhbWUgYmFjay5cbiAgICAgKi9cbiAgICByZXBvcnQ/OiBCbG9iO1xufVxuIl19
|