@wxcc-desktop/sdk 1.2.6 → 1.2.10
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/README.md +18 -391
- package/dist/index.js +1 -0
- package/dist/types/index.d.ts +21 -0
- package/dist/types/jsapi/actions-jsapi.d.ts +33 -0
- package/dist/types/jsapi/agent-contact-jsapi.d.ts +430 -0
- package/dist/types/jsapi/agent-state-info-jsapi.d.ts +88 -0
- package/dist/types/jsapi/common/_logger.d.ts +4 -0
- package/dist/types/jsapi/common/_service-checker.d.ts +12 -0
- package/dist/types/jsapi/common/_service-events.d.ts +31 -0
- package/dist/types/jsapi/config-jsapi.d.ts +26 -0
- package/dist/types/jsapi/dialer-jsapi.d.ts +73 -0
- package/dist/types/jsapi/i18n-jsapi.d.ts +23 -0
- package/dist/types/jsapi/logger-jsapi.d.ts +19 -0
- package/dist/types/jsapi/screenpop-jsapi.d.ts +29 -0
- package/dist/types/jsapi/shortcut-key-jsapi.d.ts +67 -0
- package/dist/types/sdk.d.ts +1 -0
- package/package.json +5 -60
- package/.eslintignore +0 -5
- package/.eslintrc.js +0 -22
- package/.prettierignore +0 -5
- package/.prettierrc +0 -5
- package/README_PUBLISH.md +0 -36
- package/jenkins-automation/MergePipeline.groovy +0 -143
- package/jest.config.js +0 -15
- package/sonar-project.properties +0 -17
- package/src/[sandbox]/README.md +0 -55
- package/src/[sandbox]/assets/i18n/de/app.json +0 -6
- package/src/[sandbox]/assets/i18n/en/app.json +0 -6
- package/src/[sandbox]/assets/i18n/widget-using-js-api/de/widget-using-js-api.json +0 -5
- package/src/[sandbox]/assets/i18n/widget-using-js-api/en/widget-using-js-api.json +0 -5
- package/src/[sandbox]/favicon.ico +0 -0
- package/src/[sandbox]/index.html +0 -9
- package/src/[sandbox]/sandbox-config.ts +0 -23
- package/src/[sandbox]/sandbox-mock.ts +0 -218
- package/src/[sandbox]/sandbox.ts +0 -164
- package/src/[sandbox]/widget-using-js-api.ts +0 -658
- package/src/global.d.ts +0 -5
- package/src/index.ts +0 -101
- package/src/jsapi/actions-jsapi.test.ts +0 -155
- package/src/jsapi/actions-jsapi.ts +0 -410
- package/src/jsapi/agent-contact-jsapi.test.ts +0 -217
- package/src/jsapi/agent-contact-jsapi.ts +0 -275
- package/src/jsapi/agent-state-info-jsapi.test.ts +0 -176
- package/src/jsapi/agent-state-info-jsapi.ts +0 -288
- package/src/jsapi/common/_logger.test.ts +0 -16
- package/src/jsapi/common/_logger.ts +0 -9
- package/src/jsapi/common/_service-checker.test.ts +0 -44
- package/src/jsapi/common/_service-checker.ts +0 -28
- package/src/jsapi/common/_service-events.test.ts +0 -122
- package/src/jsapi/common/_service-events.ts +0 -156
- package/src/jsapi/config-jsapi.test.ts +0 -78
- package/src/jsapi/config-jsapi.ts +0 -106
- package/src/jsapi/dialer-jsapi.test.ts +0 -101
- package/src/jsapi/dialer-jsapi.ts +0 -116
- package/src/jsapi/i18n-jsapi.test.ts +0 -62
- package/src/jsapi/i18n-jsapi.ts +0 -77
- package/src/jsapi/logger-jsapi.test.ts +0 -45
- package/src/jsapi/logger-jsapi.ts +0 -62
- package/src/jsapi/screenpop-jsapi.test.ts +0 -80
- package/src/jsapi/screenpop-jsapi.ts +0 -100
- package/src/jsapi/shortcut-key-jsapi.test.ts +0 -88
- package/src/jsapi/shortcut-key-jsapi.ts +0 -112
- package/src/sdk.ts +0 -3
- package/src/tsconfig.json +0 -18
- package/tsconfig.json +0 -13
- package/webpack.config.dev.server.ts +0 -12
- package/webpack.config.ts +0 -134
@@ -1,658 +0,0 @@
|
|
1
|
-
import { Decorator, Notifications } from "@uuip/unified-ui-platform-sdk";
|
2
|
-
import { customElement, internalProperty, LitElement, property, PropertyValues } from "lit-element";
|
3
|
-
import { html, nothing } from "lit-html";
|
4
|
-
import { Desktop } from "../index";
|
5
|
-
import {
|
6
|
-
blindTransferMockPayLoad,
|
7
|
-
buddyAgentPayload,
|
8
|
-
consultAgent,
|
9
|
-
consultDN,
|
10
|
-
consultQueue,
|
11
|
-
consultTransferMockPayLoad,
|
12
|
-
contactPayload,
|
13
|
-
mocksShortcutKeys,
|
14
|
-
vTeamListpayload,
|
15
|
-
vteamTransferMockPayLoad
|
16
|
-
} from "./sandbox-mock";
|
17
|
-
|
18
|
-
const i18n = Desktop.i18n.createInstance();
|
19
|
-
const i18nMixin = Desktop.i18n.createMixin({ i18n });
|
20
|
-
|
21
|
-
function t(...args: Parameters<typeof i18n.t>) {
|
22
|
-
return i18n.t(...args);
|
23
|
-
}
|
24
|
-
|
25
|
-
/**
|
26
|
-
* WARNING!!!!
|
27
|
-
* This widget could built with "yarn dist:dev" and copied from /dist to AgentX dynamic widgets
|
28
|
-
*/
|
29
|
-
@customElement("widget-using-js-api")
|
30
|
-
export class WidgetUsingJsApi extends i18nMixin(LitElement) {
|
31
|
-
@property({ type: String }) accessToken?: string;
|
32
|
-
|
33
|
-
// Widget AUX
|
34
|
-
@internalProperty() private isConfigInited = false;
|
35
|
-
@internalProperty() private isGettingAgentInfo = false;
|
36
|
-
@internalProperty() private isGettingAgentStateBooks = false;
|
37
|
-
@internalProperty() private isChangingAgentState = false;
|
38
|
-
@internalProperty() private isOutdialingDialer = false;
|
39
|
-
|
40
|
-
@internalProperty() private contacts: string[] = [];
|
41
|
-
@internalProperty() private contactsText = "";
|
42
|
-
|
43
|
-
private readonly logger = Desktop.logger.createLogger("[Widget-Using-JSAPI]");
|
44
|
-
|
45
|
-
protected async firstUpdated(changedProperties: PropertyValues) {
|
46
|
-
super.firstUpdated(changedProperties);
|
47
|
-
|
48
|
-
// Like user click initing
|
49
|
-
await this.onInitConfigClick();
|
50
|
-
}
|
51
|
-
|
52
|
-
////// Config JSAPI
|
53
|
-
async onInitConfigClick() {
|
54
|
-
if (!this.isConfigInited) {
|
55
|
-
// Init Config
|
56
|
-
await Desktop.config.init();
|
57
|
-
|
58
|
-
this.subscribeAgentxJsApiServiceEvents();
|
59
|
-
|
60
|
-
this.isConfigInited = true;
|
61
|
-
}
|
62
|
-
}
|
63
|
-
|
64
|
-
subscribeAgentxJsApiServiceEvents() {
|
65
|
-
// Like user init jsApi
|
66
|
-
this.subscribeAgentStateInfoEvents();
|
67
|
-
|
68
|
-
this.subscribeAgentContactDataEvents();
|
69
|
-
|
70
|
-
this.subscribeDialerDataEvents();
|
71
|
-
|
72
|
-
this.subscribeScreenPopDataEvents();
|
73
|
-
|
74
|
-
this.subscribeShortcutKeyEvents();
|
75
|
-
}
|
76
|
-
|
77
|
-
onGetClientLocaleClick() {
|
78
|
-
this.logger.info("Client locale: ", Desktop.config.clientLocale);
|
79
|
-
}
|
80
|
-
|
81
|
-
////// Logger JSAPI
|
82
|
-
onGetLoggerClick() {
|
83
|
-
const logger = Desktop.logger.createLogger(`test-logger-${Date.now()}`);
|
84
|
-
logger.info("Info test");
|
85
|
-
logger.warn("Warn test");
|
86
|
-
logger.error("Error test");
|
87
|
-
}
|
88
|
-
|
89
|
-
////// ShortcutKey JSAPI
|
90
|
-
onGetShortcutKeyDefaultShortcutKeyClick() {
|
91
|
-
console.log("ShortcutKey DEFAULT_SHORTCUT_KEYS: ", Desktop.shortcutKey.DEFAULT_SHORTCUT_KEYS);
|
92
|
-
}
|
93
|
-
|
94
|
-
onGetShortcutKeyModifiersClick() {
|
95
|
-
console.log("ShortcutKey MODIFIERS: ", Desktop.shortcutKey.MODIFIERS);
|
96
|
-
}
|
97
|
-
|
98
|
-
onGetShortcutKeyRegisteredKeysClick() {
|
99
|
-
console.log("ShortcutKey REGISTERED_KEYS: ", Desktop.shortcutKey.REGISTERED_KEYS);
|
100
|
-
}
|
101
|
-
|
102
|
-
onShortcutKeyGetRegisteredKeysClick() {
|
103
|
-
console.log("ShortcutKey getRegisteredKeys: ", Desktop.shortcutKey.getRegisteredKeys());
|
104
|
-
}
|
105
|
-
|
106
|
-
onShortcutKeyRegisterClick() {
|
107
|
-
Desktop.shortcutKey.register(mocksShortcutKeys);
|
108
|
-
}
|
109
|
-
|
110
|
-
////// AgentInfo JSAPI
|
111
|
-
@Decorator.Exec<WidgetUsingJsApi>(({ ctx, isExec }) => (ctx.isGettingAgentInfo = isExec))
|
112
|
-
async onGetAgentInfoClick() {
|
113
|
-
const latestData = Desktop.agentStateInfo.latestData;
|
114
|
-
this.logger.info("AgentStateInfo latestData: ", latestData);
|
115
|
-
}
|
116
|
-
|
117
|
-
// AgentInfo events
|
118
|
-
subscribeAgentStateInfoEvents() {
|
119
|
-
Desktop.agentStateInfo.addEventListener("updated", updatedList =>
|
120
|
-
this.logger.info("AgentStateInfo updated: ", updatedList)
|
121
|
-
);
|
122
|
-
}
|
123
|
-
|
124
|
-
////// AgentState JSAPI
|
125
|
-
@Decorator.Exec<WidgetUsingJsApi>(({ ctx, isExec }) => (ctx.isGettingAgentStateBooks = isExec))
|
126
|
-
async onGetAgentStateBooksClick() {
|
127
|
-
const books = await Desktop.agentStateInfo.fetchAddressBooks();
|
128
|
-
this.logger.info("AgentStateInfo books: ", books);
|
129
|
-
}
|
130
|
-
|
131
|
-
@Decorator.Exec<WidgetUsingJsApi>(({ ctx, isExec }) => (ctx.isChangingAgentState = isExec))
|
132
|
-
async onChangeAgentStateClick(s: "Available" | "Idle") {
|
133
|
-
const state = await Desktop.agentStateInfo.stateChange({ state: s, auxCodeIdArray: "0" });
|
134
|
-
this.logger.info("AgentStateInfo state: ", state);
|
135
|
-
}
|
136
|
-
|
137
|
-
////// AgentContact JSAPI
|
138
|
-
@Decorator.Handle(({ ctx }) => ctx.logger.error("Consult error"))
|
139
|
-
async consultConference() {
|
140
|
-
const p = {
|
141
|
-
interactionId: "a26d035d-b547-11ea-984b-d3128111ce6b",
|
142
|
-
data: {
|
143
|
-
agentId: "43bfcdef-5551-45b1-a8f9-a0b33e66e3fe",
|
144
|
-
destAgentId: "f795f41f-3782-44fa-97a4-c8b4dc029477",
|
145
|
-
mediaType: "chat"
|
146
|
-
},
|
147
|
-
url: "consult"
|
148
|
-
};
|
149
|
-
await Desktop.agentContact.consult(p);
|
150
|
-
this.logger.info("AgentContact Consult Success");
|
151
|
-
|
152
|
-
await new Promise(resolve => setTimeout(resolve, 5000));
|
153
|
-
|
154
|
-
await Desktop.agentContact.consultConference(p);
|
155
|
-
this.logger.info("AgentContact Consult Conference Success");
|
156
|
-
}
|
157
|
-
|
158
|
-
async consultConferenceEnd() {
|
159
|
-
await Desktop.agentContact.consultEnd({
|
160
|
-
interactionId: "a26d035d-b547-11ea-984b-d3128111ce6b",
|
161
|
-
isConsult: false
|
162
|
-
});
|
163
|
-
}
|
164
|
-
|
165
|
-
async buddyAgents() {
|
166
|
-
this.contactsText = "Loading....";
|
167
|
-
const res = await Desktop.agentContact.buddyAgents({ data: buddyAgentPayload });
|
168
|
-
this.logger.info("AgentContact buddyagent", res);
|
169
|
-
this.contactsText = `Response: ${JSON.stringify(res)} `;
|
170
|
-
}
|
171
|
-
|
172
|
-
async vteamList() {
|
173
|
-
this.contactsText = "Loading....";
|
174
|
-
const res = await Desktop.agentContact.vteamList({ data: vTeamListpayload });
|
175
|
-
this.logger.info("AgentContact vteam list", res);
|
176
|
-
this.contactsText = `Response: ${JSON.stringify(res)} `;
|
177
|
-
}
|
178
|
-
|
179
|
-
async hold() {
|
180
|
-
await Desktop.agentContact.hold({
|
181
|
-
interactionId: "c837e6f7-699a-4736-bb82-03a6d58bb7f3",
|
182
|
-
data: { mediaResourceId: "c837e6f7-699a-4736-bb82-03a6d58bb7f3" }
|
183
|
-
});
|
184
|
-
}
|
185
|
-
|
186
|
-
async unhold() {
|
187
|
-
await Desktop.agentContact.unHold({
|
188
|
-
interactionId: "c837e6f7-699a-4736-bb82-03a6d58bb7f3",
|
189
|
-
data: { mediaResourceId: "c837e6f7-699a-4736-bb82-03a6d58bb7f3" }
|
190
|
-
});
|
191
|
-
}
|
192
|
-
|
193
|
-
async pauseRecording() {
|
194
|
-
await Desktop.agentContact.pauseRecording({
|
195
|
-
interactionId: "c837e6f7-699a-4736-bb82-03a6d58bb7f3"
|
196
|
-
});
|
197
|
-
}
|
198
|
-
|
199
|
-
async resumeRecording() {
|
200
|
-
await Desktop.agentContact.resumeRecording({
|
201
|
-
interactionId: "c837e6f7-699a-4736-bb82-03a6d58bb7f3",
|
202
|
-
data: { autoResumed: true }
|
203
|
-
});
|
204
|
-
}
|
205
|
-
|
206
|
-
async consult() {
|
207
|
-
await Desktop.agentContact.consult({
|
208
|
-
interactionId: "08259a2b-bacf-11ea-bdd9-abbd16eaf1d5",
|
209
|
-
data: consultQueue,
|
210
|
-
url: "ctq"
|
211
|
-
});
|
212
|
-
this.logger.info("AgentContact ConsultToqueue: success");
|
213
|
-
}
|
214
|
-
|
215
|
-
async consultEnd() {
|
216
|
-
await Desktop.agentContact.consultEnd({
|
217
|
-
interactionId: "08259a2b-bacf-11ea-bdd9-abbd16eaf1d5",
|
218
|
-
isConsult: true
|
219
|
-
});
|
220
|
-
this.logger.info("AgentContact End ConsultToqueue: success");
|
221
|
-
}
|
222
|
-
|
223
|
-
async startConsultAgent() {
|
224
|
-
await Desktop.agentContact.consult({
|
225
|
-
interactionId: "08259a2b-bacf-11ea-bdd9-abbd16eaf1d5",
|
226
|
-
data: consultAgent,
|
227
|
-
url: "consult"
|
228
|
-
});
|
229
|
-
this.logger.info("AgentContact ConsultToAgent: success");
|
230
|
-
}
|
231
|
-
|
232
|
-
async endConsultAgent() {
|
233
|
-
await Desktop.agentContact.consultEnd({
|
234
|
-
interactionId: "08259a2b-bacf-11ea-bdd9-abbd16eaf1d5",
|
235
|
-
isConsult: true
|
236
|
-
});
|
237
|
-
this.logger.info("AgentContact End ConsultToAgent: success");
|
238
|
-
}
|
239
|
-
|
240
|
-
async startConsultDN() {
|
241
|
-
await Desktop.agentContact.consult({
|
242
|
-
interactionId: "08259a2b-bacf-11ea-bdd9-abbd16eaf1d5",
|
243
|
-
data: consultDN,
|
244
|
-
url: "consult"
|
245
|
-
});
|
246
|
-
this.logger.info("AgentContact ConsultToDN: success");
|
247
|
-
}
|
248
|
-
|
249
|
-
async endConsultDN() {
|
250
|
-
await Desktop.agentContact.consultEnd({
|
251
|
-
interactionId: "08259a2b-bacf-11ea-bdd9-abbd16eaf1d5",
|
252
|
-
isConsult: true
|
253
|
-
});
|
254
|
-
this.logger.info("AgentContact End ConsultToDN: success");
|
255
|
-
}
|
256
|
-
|
257
|
-
async vteamTransfer() {
|
258
|
-
await Desktop.agentContact.vteamTransfer({
|
259
|
-
interactionId: "dab1a2f0-bad0-11ea-8e7c-0d99ede2535a",
|
260
|
-
data: vteamTransferMockPayLoad
|
261
|
-
});
|
262
|
-
this.logger.info("AgentContact vteamTransfer: success");
|
263
|
-
}
|
264
|
-
|
265
|
-
async blindTransfer() {
|
266
|
-
await Desktop.agentContact.blindTransfer({
|
267
|
-
interactionId: "08259a2b-bacf-11ea-bdd9-abbd16eaf1d5",
|
268
|
-
data: blindTransferMockPayLoad
|
269
|
-
});
|
270
|
-
this.logger.info("AgentContact blindTransfer: success");
|
271
|
-
}
|
272
|
-
|
273
|
-
async consultTransfer() {
|
274
|
-
await Desktop.agentContact.consultTransfer({
|
275
|
-
interactionId: "5c3d487a-874b-447d-b5f2-ce1f626301f5",
|
276
|
-
data: consultTransferMockPayLoad
|
277
|
-
});
|
278
|
-
this.logger.info("AgentContact consultTransfer: success");
|
279
|
-
}
|
280
|
-
|
281
|
-
async onAcceptContactClick(interactionId: string) {
|
282
|
-
const res = await Desktop.agentContact.accept({ interactionId });
|
283
|
-
this.contacts.slice(this.contacts.indexOf(interactionId), 1);
|
284
|
-
this.logger.info("AgentContact ACCEPTED", res!.data, "");
|
285
|
-
}
|
286
|
-
|
287
|
-
// Subscribe AgentCONTACT
|
288
|
-
subscribeAgentContactDataEvents() {
|
289
|
-
Desktop.agentContact.addEventListener("eAgentContact", msg =>
|
290
|
-
this.logger.info("AgentContact eAgentContact: ", msg)
|
291
|
-
);
|
292
|
-
Desktop.agentContact.addEventListener("eAgentContactAssigned", msg =>
|
293
|
-
this.logger.info("AgentContact eAgentContactAssigned: ", msg)
|
294
|
-
);
|
295
|
-
Desktop.agentContact.addEventListener("eAgentContactEnded", msg =>
|
296
|
-
this.logger.info("AgentContact eAgentContactEnded: ", msg)
|
297
|
-
);
|
298
|
-
Desktop.agentContact.addEventListener("eAgentContactWrappedUp", msg =>
|
299
|
-
this.logger.info("AgentContact eAgentContactWrappedUp: ", msg)
|
300
|
-
);
|
301
|
-
Desktop.agentContact.addEventListener("eAgentOfferContact", msg => {
|
302
|
-
this.logger.info("AgentContact eAgentOfferContact: ", msg);
|
303
|
-
// AUX Sandbox Contact
|
304
|
-
this.contacts.push(msg.data.interactionId);
|
305
|
-
});
|
306
|
-
Desktop.agentContact.addEventListener("eAgentOfferContactRona", msg => {
|
307
|
-
this.logger.info("AgentContact eAgentOfferContactRona: ", msg);
|
308
|
-
// AUX Sandbox Contact
|
309
|
-
const idx = this.contacts.indexOf(msg.data.interactionId);
|
310
|
-
if (idx != -1) {
|
311
|
-
this.contacts.slice(idx, 1);
|
312
|
-
}
|
313
|
-
});
|
314
|
-
Desktop.agentContact.addEventListener("eAgentOfferConsult", msg =>
|
315
|
-
this.logger.info("AgentContact eAgentOfferConsult: ", msg)
|
316
|
-
);
|
317
|
-
Desktop.agentContact.addEventListener("eAgentWrapup", msg =>
|
318
|
-
this.logger.info("AgentContact eAgentWrapup: ", msg)
|
319
|
-
);
|
320
|
-
Desktop.agentContact.addEventListener("eAgentContactHeld", msg =>
|
321
|
-
this.logger.info("AgentContact eAgentContactHeld: ", msg)
|
322
|
-
);
|
323
|
-
Desktop.agentContact.addEventListener("eAgentContactUnHeld", msg =>
|
324
|
-
this.logger.info("AgentContact eAgentContactUnHeld: ", msg)
|
325
|
-
);
|
326
|
-
Desktop.agentContact.addEventListener("eCallRecordingStarted", msg =>
|
327
|
-
this.logger.info("AgentContact eCallRecordingStarted: ", msg)
|
328
|
-
);
|
329
|
-
Desktop.agentContact.addEventListener("eAgentConsultCreated", msg =>
|
330
|
-
this.logger.info("AgentContact eAgentConsultCreated: ", msg)
|
331
|
-
);
|
332
|
-
Desktop.agentContact.addEventListener("eAgentConsultConferenced", msg =>
|
333
|
-
this.logger.info("AgentContact eAgentConsultConferenced: ", msg)
|
334
|
-
);
|
335
|
-
Desktop.agentContact.addEventListener("eAgentConsultEnded", msg =>
|
336
|
-
this.logger.info("AgentContact eAgentConsultEnded: ", msg)
|
337
|
-
);
|
338
|
-
Desktop.agentContact.addEventListener("eAgentCtqCancelled", msg =>
|
339
|
-
this.logger.info("AgentContact eAgentCtqCancelled: ", msg)
|
340
|
-
);
|
341
|
-
Desktop.agentContact.addEventListener("eAgentConsulting", msg =>
|
342
|
-
this.logger.info("AgentContact eAgentConsulting: ", msg)
|
343
|
-
);
|
344
|
-
Desktop.agentContact.addEventListener("eAgentConsultFailed", msg =>
|
345
|
-
this.logger.info("AgentContact eAgentConsultFailed: ", msg)
|
346
|
-
);
|
347
|
-
Desktop.agentContact.addEventListener("eAgentConsultEndFailed", msg =>
|
348
|
-
this.logger.info("AgentContact eAgentConsultEndFailed: ", msg)
|
349
|
-
);
|
350
|
-
Desktop.agentContact.addEventListener("eAgentCtqFailed", msg =>
|
351
|
-
this.logger.info("AgentContact eAgentCtqFailed: ", msg)
|
352
|
-
);
|
353
|
-
Desktop.agentContact.addEventListener("eAgentCtqCancelFailed", msg =>
|
354
|
-
this.logger.info("AgentContact eAgentCtqCancelFailed: ", msg)
|
355
|
-
);
|
356
|
-
Desktop.agentContact.addEventListener("eAgentConsultConferenceEndFailed", msg =>
|
357
|
-
this.logger.info("AgentContact eAgentConsultConferenceEndFailed: ", msg)
|
358
|
-
);
|
359
|
-
}
|
360
|
-
|
361
|
-
////// Dialer JSAPI
|
362
|
-
@Decorator.Exec<WidgetUsingJsApi>(({ ctx, isExec }) => (ctx.isOutdialingDialer = isExec))
|
363
|
-
async onAgentDialerStartOutdialClick() {
|
364
|
-
const outdial = await Desktop.dialer.startOutdial({
|
365
|
-
data: {
|
366
|
-
entryPointId: "1212312",
|
367
|
-
destination: "asdaad",
|
368
|
-
direction: "OUTBOUND",
|
369
|
-
attributes: {},
|
370
|
-
mediaType: "chat",
|
371
|
-
outboundType: "CourtesyCallback"
|
372
|
-
}
|
373
|
-
});
|
374
|
-
this.logger.info("Dialer outdial: ", outdial);
|
375
|
-
}
|
376
|
-
|
377
|
-
// Subscribe DIALER
|
378
|
-
subscribeDialerDataEvents() {
|
379
|
-
Desktop.dialer.addEventListener("eOutdialFailed", msg => this.logger.info("Dialer eOutdialFailed: ", msg));
|
380
|
-
}
|
381
|
-
|
382
|
-
////// ScreenPop JSAPI
|
383
|
-
// Subscribe SCREENPOP
|
384
|
-
subscribeScreenPopDataEvents() {
|
385
|
-
Desktop.screenpop.addEventListener("eScreenPop", msg => this.logger.info("ScreenPop eScreenPop: ", msg));
|
386
|
-
}
|
387
|
-
|
388
|
-
////// I18N JSAPI
|
389
|
-
initI18N() {
|
390
|
-
if (!i18n.isInitialized) {
|
391
|
-
const initOptions = Desktop.i18n.getMergedInitOptions(Desktop.i18n.DEFAULT_INIT_OPTIONS || {}, {
|
392
|
-
defaultNS: "widget-using-js-api",
|
393
|
-
ns: ["widget-using-js-api"],
|
394
|
-
fallbackLng: "en",
|
395
|
-
backend: {
|
396
|
-
loadPath: "/i18n/widget-using-js-api/{{lng}}/{{ns}}.json"
|
397
|
-
}
|
398
|
-
});
|
399
|
-
|
400
|
-
i18n.init(initOptions).catch(err => console.log(err));
|
401
|
-
}
|
402
|
-
}
|
403
|
-
|
404
|
-
////// ACTIONS JSAPI
|
405
|
-
actionsFireRandomGeneralNotification() {
|
406
|
-
const types = Notifications.ItemMeta.TYPES;
|
407
|
-
const modes = Notifications.ItemMeta.MODES;
|
408
|
-
|
409
|
-
const raw = {
|
410
|
-
data: {
|
411
|
-
type: types[Math.floor(Math.random() * types.length)],
|
412
|
-
mode: modes[Math.floor(Math.random() * modes.length)],
|
413
|
-
title: "Info - Acknowledge",
|
414
|
-
data: "Lorem Ipsum Dolor"
|
415
|
-
}
|
416
|
-
};
|
417
|
-
|
418
|
-
if (raw.data.mode === Notifications.ItemMeta.Mode.Silent) {
|
419
|
-
Desktop.actions.fireGeneralSilentNotification(raw as any);
|
420
|
-
}
|
421
|
-
if (raw.data.mode === Notifications.ItemMeta.Mode.AutoDismiss) {
|
422
|
-
Desktop.actions.fireGeneralAutoDismissNotification(raw as any);
|
423
|
-
}
|
424
|
-
if (raw.data.mode === Notifications.ItemMeta.Mode.Acknowledge) {
|
425
|
-
Desktop.actions.fireGeneralAcknowledgeNotification(raw as any);
|
426
|
-
}
|
427
|
-
}
|
428
|
-
|
429
|
-
actionsAddCustomTask() {
|
430
|
-
Desktop.actions.addCustomTask(contactPayload);
|
431
|
-
}
|
432
|
-
|
433
|
-
async actionsGetTaskMap() {
|
434
|
-
const taskMap = await Desktop.actions.getTaskMap();
|
435
|
-
console.log("AgentX Store TaskMap: ", taskMap);
|
436
|
-
}
|
437
|
-
|
438
|
-
async actionsGetMediaTypeQueues() {
|
439
|
-
const [telephonyTaskMapQueue, socialTaskMapQueue, emailTaskMapQueue, chatTaskMapQueue] = await Promise.all([
|
440
|
-
Desktop.actions.getMediaTypeQueue("telephony"),
|
441
|
-
Desktop.actions.getMediaTypeQueue("social"),
|
442
|
-
Desktop.actions.getMediaTypeQueue("email"),
|
443
|
-
Desktop.actions.getMediaTypeQueue("chat")
|
444
|
-
]);
|
445
|
-
|
446
|
-
console.log(
|
447
|
-
"AgentX Store Task Queues: ",
|
448
|
-
telephonyTaskMapQueue,
|
449
|
-
socialTaskMapQueue,
|
450
|
-
emailTaskMapQueue,
|
451
|
-
chatTaskMapQueue
|
452
|
-
);
|
453
|
-
}
|
454
|
-
|
455
|
-
async actionsGetToken() {
|
456
|
-
const accessToken = await Desktop.actions.getToken();
|
457
|
-
console.log("AgentX Store AccessToken: ", accessToken);
|
458
|
-
}
|
459
|
-
|
460
|
-
async actionsGetIdleCodes() {
|
461
|
-
const idleCodes = await Desktop.actions.getIdleCodes();
|
462
|
-
console.log("AgentX Store IdleCodes: ", idleCodes);
|
463
|
-
}
|
464
|
-
|
465
|
-
async actionsGetWrapUpCodes() {
|
466
|
-
const wrapUpCodes = await Desktop.actions.getWrapUpCodes();
|
467
|
-
console.log("AgentX Store IdleCodes: ", wrapUpCodes);
|
468
|
-
}
|
469
|
-
|
470
|
-
// Subscribe ShortcutKey
|
471
|
-
subscribeShortcutKeyEvents() {
|
472
|
-
Desktop.shortcutKey.listenKeyPress(event => {
|
473
|
-
console.log("JSAPI ShortcutKey listenKeyPress: ", event);
|
474
|
-
});
|
475
|
-
|
476
|
-
Desktop.shortcutKey.listenKeyConflict(event => {
|
477
|
-
console.log("JSAPI ShortcutKey listenKeyConflict: ", event);
|
478
|
-
});
|
479
|
-
}
|
480
|
-
|
481
|
-
render() {
|
482
|
-
return html`
|
483
|
-
<div style="overflow-y: auto; max-height: 100%">
|
484
|
-
<button @click="${() => this.onInitConfigClick()}">JSAPI [ config ] init</button>
|
485
|
-
${!this.isConfigInited
|
486
|
-
? html`
|
487
|
-
<span>
|
488
|
-
[ NOT INITED]
|
489
|
-
</span>
|
490
|
-
`
|
491
|
-
: html`
|
492
|
-
<span>
|
493
|
-
[ INITED]
|
494
|
-
</span>
|
495
|
-
`}
|
496
|
-
<br /><br />
|
497
|
-
<button @click="${() => this.onGetClientLocaleClick()}">JSAPI [ config ] clientLocale</button>
|
498
|
-
<hr />
|
499
|
-
<br />
|
500
|
-
<button @click="${() => this.onGetLoggerClick()}">JSAPI [ logger ] getLogger</button>
|
501
|
-
<hr />
|
502
|
-
<br />
|
503
|
-
<button @click="${() => this.onGetShortcutKeyDefaultShortcutKeyClick()}">
|
504
|
-
JSAPI [ shortcutKey ] DEFAULT_SHORTCUT_KEY
|
505
|
-
</button>
|
506
|
-
<br /><br />
|
507
|
-
<button @click="${() => this.onGetShortcutKeyModifiersClick()}">
|
508
|
-
JSAPI [ shortcutKey ] MODIFIERS
|
509
|
-
</button>
|
510
|
-
<br /><br />
|
511
|
-
<button @click="${() => this.onGetShortcutKeyRegisteredKeysClick()}">
|
512
|
-
JSAPI [ shortcutKey ] REGISTERED_KEYS
|
513
|
-
</button>
|
514
|
-
<br /><br />
|
515
|
-
<button @click="${() => this.onShortcutKeyGetRegisteredKeysClick()}">
|
516
|
-
JSAPI [ shortcutKey ] getRegisteredKeys
|
517
|
-
</button>
|
518
|
-
<br /><br />
|
519
|
-
<button @click="${() => this.onShortcutKeyRegisterClick()}">
|
520
|
-
JSAPI [ shortcutKey ] register
|
521
|
-
</button>
|
522
|
-
<hr />
|
523
|
-
<br />
|
524
|
-
<button @click="${() => this.onGetAgentInfoClick()}">JSAPI [ agentInfo ] getAgentInfo</button>
|
525
|
-
${this.isGettingAgentInfo
|
526
|
-
? html`
|
527
|
-
<span>
|
528
|
-
=> Loading...
|
529
|
-
</span>
|
530
|
-
`
|
531
|
-
: nothing}
|
532
|
-
<hr />
|
533
|
-
<br />
|
534
|
-
<button @click="${() => this.onGetAgentStateBooksClick()}">
|
535
|
-
JSAPI [ agentData ] getAgentBooks
|
536
|
-
</button>
|
537
|
-
${this.isGettingAgentStateBooks
|
538
|
-
? html`
|
539
|
-
<span>
|
540
|
-
=> Loading...
|
541
|
-
</span>
|
542
|
-
`
|
543
|
-
: nothing}
|
544
|
-
<br />
|
545
|
-
<br />
|
546
|
-
<button @click="${() => this.onChangeAgentStateClick("Available")}">
|
547
|
-
JSAPI [ agentData ] changeAgentState => Available
|
548
|
-
</button>
|
549
|
-
${this.isChangingAgentState
|
550
|
-
? html`
|
551
|
-
<span>
|
552
|
-
=> Changing state...
|
553
|
-
</span>
|
554
|
-
`
|
555
|
-
: nothing}
|
556
|
-
<br />
|
557
|
-
<br />
|
558
|
-
<button @click="${() => this.onChangeAgentStateClick("Idle")}">
|
559
|
-
JSAPI [ agentData ] changeAgentState => Idle
|
560
|
-
</button>
|
561
|
-
${this.isChangingAgentState
|
562
|
-
? html`
|
563
|
-
<span>
|
564
|
-
=> Changing state...
|
565
|
-
</span>
|
566
|
-
`
|
567
|
-
: nothing}
|
568
|
-
<hr />
|
569
|
-
<br />
|
570
|
-
<button @click=${this.buddyAgents}>JSAPI [ agentContact ] fetch buddy agent</button>
|
571
|
-
<button @click=${this.vteamList}>JSAPI [ agentContact ] fetch Vteam List</button>
|
572
|
-
<br /><br />
|
573
|
-
<button @click=${this.consult}>JSAPI [ agentContact ] Start Consult To Queue</button>
|
574
|
-
<button @click=${this.consultEnd}>JSAPI [ agentContact ] End Consult To Queue</button>
|
575
|
-
<button @click=${this.startConsultAgent}>JSAPI [ agentContact ] Start Consult To Agent</button>
|
576
|
-
<button @click=${this.endConsultAgent}>JSAPI [ agentContact ] End Consult To Agent</button>
|
577
|
-
<button @click=${this.startConsultDN}>JSAPI [ agentContact ] Start Consult To DN</button>
|
578
|
-
<button @click=${this.endConsultDN}>JSAPI [ agentContact ] End Consult To DN</button>
|
579
|
-
<br /><br />
|
580
|
-
<button @click=${this.pauseRecording}>JSAPI [ agentContact ] Pause Recording</button>
|
581
|
-
<button @click=${this.resumeRecording}>JSAPI [ agentContact ] Resume Recording</button>
|
582
|
-
<br /><br />
|
583
|
-
<button @click=${this.hold}>JSAPI [ agentContact ] Hold</button>
|
584
|
-
<button @click=${this.unhold}>JSAPI [ agentContact ] Unhold</button>
|
585
|
-
<br /><br />
|
586
|
-
<button @click=${this.consultConference}>JSAPI [ agentContact ] Start Chat Conference</button>
|
587
|
-
<button @click=${this.consultConferenceEnd}>JSAPI [ agentContact ] End Conference</button>
|
588
|
-
<br /><br />
|
589
|
-
<button @click=${this.vteamTransfer}>JSAPI [ agentContact ] Vteam Tranfer</button>
|
590
|
-
<button @click=${this.blindTransfer}>JSAPI [ agentContact ] Blind Transfer</button>
|
591
|
-
<button @click=${this.consultTransfer}>
|
592
|
-
JSAPI [ agentContact ] Consult/Conference Transfer
|
593
|
-
</button>
|
594
|
-
<br />
|
595
|
-
<br />
|
596
|
-
<div>Contacts</div>
|
597
|
-
<div>${this.contactsText}</div>
|
598
|
-
<br />
|
599
|
-
${this.contacts.map(
|
600
|
-
id =>
|
601
|
-
html`
|
602
|
-
<button @click=${() => this.onAcceptContactClick(id)}>Accept Contact: ${id}</button>
|
603
|
-
`
|
604
|
-
)}
|
605
|
-
<hr />
|
606
|
-
<br />
|
607
|
-
<button @click="${() => this.onAgentDialerStartOutdialClick()}">
|
608
|
-
JSAPI [ dialer ] getAgentOutdial
|
609
|
-
</button>
|
610
|
-
${this.isOutdialingDialer
|
611
|
-
? html`
|
612
|
-
<span>
|
613
|
-
=> Loading...
|
614
|
-
</span>
|
615
|
-
`
|
616
|
-
: nothing}
|
617
|
-
<hr />
|
618
|
-
<br />
|
619
|
-
<button @click="${() => this.initI18N()}">
|
620
|
-
JSAPI [ i18n ] init widget service instance
|
621
|
-
</button>
|
622
|
-
<br />
|
623
|
-
<div>
|
624
|
-
<span>i18n result: </span>
|
625
|
-
<span>${t("widget-using-js-api:a")}</span>
|
626
|
-
<span>${t("widget-using-js-api:b")}</span>
|
627
|
-
<span>${t("widget-using-js-api:c")}</span>
|
628
|
-
</div>
|
629
|
-
<hr />
|
630
|
-
<br />
|
631
|
-
<button @click="${() => this.actionsFireRandomGeneralNotification()}">
|
632
|
-
JSAPI [ actions ] fire random general notification
|
633
|
-
</button>
|
634
|
-
<br /><br />
|
635
|
-
<button @click="${() => this.actionsAddCustomTask()}">
|
636
|
-
JSAPI [ actions ] add custom mock task
|
637
|
-
</button>
|
638
|
-
<button @click="${() => this.actionsGetTaskMap()}">
|
639
|
-
JSAPI [ actions ] get task map
|
640
|
-
</button>
|
641
|
-
<button @click="${() => this.actionsGetMediaTypeQueues()}">
|
642
|
-
JSAPI [ actions ] get tasks queues
|
643
|
-
</button>
|
644
|
-
<br /><br />
|
645
|
-
<button @click="${() => this.actionsGetToken()}">
|
646
|
-
JSAPI [ actions ] get access token
|
647
|
-
</button>
|
648
|
-
<br /><br />
|
649
|
-
<button @click="${() => this.actionsGetIdleCodes()}">
|
650
|
-
JSAPI [ actions ] get idle codes
|
651
|
-
</button>
|
652
|
-
<button @click="${() => this.actionsGetWrapUpCodes()}">
|
653
|
-
JSAPI [ actions ] get wrappup codes
|
654
|
-
</button>
|
655
|
-
</div>
|
656
|
-
`;
|
657
|
-
}
|
658
|
-
}
|