@webex/plugin-meetings 3.0.0-beta.174 → 3.0.0-beta.175
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/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.js +11 -2
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +143 -5
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/meeting/index.js +10 -1
- package/dist/meeting/index.js.map +1 -1
- package/dist/types/constants.d.ts +9 -0
- package/package.json +19 -19
- package/src/constants.ts +9 -0
- package/src/interpretation/README.md +11 -2
- package/src/interpretation/index.ts +140 -4
- package/src/meeting/index.ts +19 -0
- package/test/unit/spec/interpretation/index.ts +250 -9
- package/test/unit/spec/interpretation/siLanguage.ts +2 -0
- package/test/unit/spec/meeting/index.js +43 -2
|
@@ -26,6 +26,8 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
|
|
|
26
26
|
props: {
|
|
27
27
|
locusUrl: 'string',
|
|
28
28
|
// appears current meeting's locus url
|
|
29
|
+
approvalUrl: 'string',
|
|
30
|
+
// appears current meeting's approval url for handoff between interpreters
|
|
29
31
|
originalLanguage: 'string',
|
|
30
32
|
// appears current meeting's original language
|
|
31
33
|
sourceLanguage: 'string',
|
|
@@ -44,19 +46,19 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
|
|
|
44
46
|
// appears the ability to manage interpreters
|
|
45
47
|
supportLanguages: 'array',
|
|
46
48
|
// appears the support languages
|
|
47
|
-
|
|
49
|
+
hostSIEnabled: 'boolean' // appears the meeting host feature of SI enabled
|
|
48
50
|
},
|
|
49
51
|
|
|
50
52
|
derived: {
|
|
51
53
|
shouldQuerySupportLanguages: {
|
|
52
54
|
cache: false,
|
|
53
|
-
deps: ['canManageInterpreters', '
|
|
55
|
+
deps: ['canManageInterpreters', 'hostSIEnabled'],
|
|
54
56
|
/**
|
|
55
57
|
* Returns should query support languages or not
|
|
56
58
|
* @returns {boolean}
|
|
57
59
|
*/
|
|
58
60
|
fn: function fn() {
|
|
59
|
-
return !!(this.canManageInterpreters && this.
|
|
61
|
+
return !!(this.canManageInterpreters && this.hostSIEnabled);
|
|
60
62
|
}
|
|
61
63
|
}
|
|
62
64
|
},
|
|
@@ -71,6 +73,7 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
|
|
|
71
73
|
_this.querySupportLanguages();
|
|
72
74
|
}
|
|
73
75
|
});
|
|
76
|
+
this.listenToHandoffRequests();
|
|
74
77
|
},
|
|
75
78
|
/**
|
|
76
79
|
* Calls this to clean up listeners
|
|
@@ -87,6 +90,14 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
|
|
|
87
90
|
locusUrlUpdate: function locusUrlUpdate(locusUrl) {
|
|
88
91
|
this.set('locusUrl', locusUrl);
|
|
89
92
|
},
|
|
93
|
+
/**
|
|
94
|
+
* Update the approval url for handoff
|
|
95
|
+
* @param {string} approvalUrl // approval url
|
|
96
|
+
* @returns {void}
|
|
97
|
+
*/
|
|
98
|
+
approvalUrlUpdate: function approvalUrlUpdate(approvalUrl) {
|
|
99
|
+
this.set('approvalUrl', approvalUrl);
|
|
100
|
+
},
|
|
90
101
|
/**
|
|
91
102
|
* Update whether self has capability to manage interpreters (only host can manage it)
|
|
92
103
|
* @param {boolean} canManageInterpreters
|
|
@@ -95,13 +106,20 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
|
|
|
95
106
|
updateCanManageInterpreters: function updateCanManageInterpreters(canManageInterpreters) {
|
|
96
107
|
this.set('canManageInterpreters', canManageInterpreters);
|
|
97
108
|
},
|
|
109
|
+
/**
|
|
110
|
+
* Update whether the meeting's host si is enabled or not
|
|
111
|
+
* @param {boolean} hostSIEnabled
|
|
112
|
+
* @returns {void}
|
|
113
|
+
*/
|
|
114
|
+
updateHostSIEnabled: function updateHostSIEnabled(hostSIEnabled) {
|
|
115
|
+
this.set('hostSIEnabled', hostSIEnabled);
|
|
116
|
+
},
|
|
98
117
|
/**
|
|
99
118
|
* Update the interpretation languages channels which user can choose to subscribe
|
|
100
119
|
* @param {Object} interpretation
|
|
101
120
|
* @returns {void}
|
|
102
121
|
*/
|
|
103
122
|
updateInterpretation: function updateInterpretation(interpretation) {
|
|
104
|
-
this.set('siEnabled', !!interpretation);
|
|
105
123
|
this.siLanguages.set((interpretation === null || interpretation === void 0 ? void 0 : interpretation.siLanguages) || []);
|
|
106
124
|
},
|
|
107
125
|
/**
|
|
@@ -207,7 +225,127 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
|
|
|
207
225
|
throw error;
|
|
208
226
|
});
|
|
209
227
|
},
|
|
210
|
-
|
|
228
|
+
/**
|
|
229
|
+
* Sets up a listener for handoff requests from mercury
|
|
230
|
+
* @returns {void}
|
|
231
|
+
*/
|
|
232
|
+
listenToHandoffRequests: function listenToHandoffRequests() {
|
|
233
|
+
var _this3 = this;
|
|
234
|
+
this.listenTo(this.webex.internal.mercury, 'event:locus.approval_request', function (event) {
|
|
235
|
+
var _event$data, _event$data$approval;
|
|
236
|
+
if ((event === null || event === void 0 ? void 0 : (_event$data = event.data) === null || _event$data === void 0 ? void 0 : (_event$data$approval = _event$data.approval) === null || _event$data$approval === void 0 ? void 0 : _event$data$approval.resourceType) === _constants.INTERPRETATION.RESOURCE_TYPE) {
|
|
237
|
+
var _receivers$;
|
|
238
|
+
var _event$data$approval2 = event.data.approval,
|
|
239
|
+
receivers = _event$data$approval2.receivers,
|
|
240
|
+
initiator = _event$data$approval2.initiator,
|
|
241
|
+
actionType = _event$data$approval2.actionType,
|
|
242
|
+
url = _event$data$approval2.url;
|
|
243
|
+
var receiverId = receivers === null || receivers === void 0 ? void 0 : (_receivers$ = receivers[0]) === null || _receivers$ === void 0 ? void 0 : _receivers$.participantId;
|
|
244
|
+
var isReceiver = !!receiverId && receiverId === _this3.selfParticipantId;
|
|
245
|
+
var senderId = initiator === null || initiator === void 0 ? void 0 : initiator.participantId;
|
|
246
|
+
var isSender = !!senderId && senderId === _this3.selfParticipantId;
|
|
247
|
+
if (!isReceiver && !isSender) {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
_this3.trigger(_constants.INTERPRETATION.EVENTS.HANDOFF_REQUESTS_ARRIVED, {
|
|
251
|
+
actionType: actionType,
|
|
252
|
+
isReceiver: isReceiver,
|
|
253
|
+
isSender: isSender,
|
|
254
|
+
senderId: senderId,
|
|
255
|
+
receiverId: receiverId,
|
|
256
|
+
url: url
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
},
|
|
261
|
+
/**
|
|
262
|
+
* handoff the active interpreter role to another interpreter in same group, only the interpreter is allowed to call this api
|
|
263
|
+
* @param {string} participantId the participant id you want to hand off
|
|
264
|
+
* @returns {Promise}
|
|
265
|
+
*/
|
|
266
|
+
handoffInterpreter: function handoffInterpreter(participantId) {
|
|
267
|
+
if (!participantId) {
|
|
268
|
+
return _promise.default.reject(new Error('Missing target participant id'));
|
|
269
|
+
}
|
|
270
|
+
if (!this.approvalUrl) {
|
|
271
|
+
return _promise.default.reject(new Error('Missing approval url'));
|
|
272
|
+
}
|
|
273
|
+
return this.request({
|
|
274
|
+
method: _constants.HTTP_VERBS.POST,
|
|
275
|
+
uri: this.approvalUrl,
|
|
276
|
+
body: {
|
|
277
|
+
actionType: _constants.INTERPRETATION.ACTION_TYPE.OFFERED,
|
|
278
|
+
resourceType: _constants.INTERPRETATION.RESOURCE_TYPE,
|
|
279
|
+
receivers: [{
|
|
280
|
+
participantId: participantId
|
|
281
|
+
}]
|
|
282
|
+
}
|
|
283
|
+
}).catch(function (error) {
|
|
284
|
+
_loggerProxy.default.logger.error('Meeting:interpretation#handoffInterpreter failed', error);
|
|
285
|
+
throw error;
|
|
286
|
+
});
|
|
287
|
+
},
|
|
288
|
+
/**
|
|
289
|
+
* the in-active interpreter request to hand off the active role to self
|
|
290
|
+
* @returns {Promise}
|
|
291
|
+
*/
|
|
292
|
+
requestHandoff: function requestHandoff() {
|
|
293
|
+
if (!this.approvalUrl) {
|
|
294
|
+
return _promise.default.reject(new Error('Missing approval url'));
|
|
295
|
+
}
|
|
296
|
+
return this.request({
|
|
297
|
+
method: _constants.HTTP_VERBS.POST,
|
|
298
|
+
uri: this.approvalUrl,
|
|
299
|
+
body: {
|
|
300
|
+
actionType: _constants.INTERPRETATION.ACTION_TYPE.REQUESTED,
|
|
301
|
+
resourceType: _constants.INTERPRETATION.RESOURCE_TYPE
|
|
302
|
+
}
|
|
303
|
+
}).catch(function (error) {
|
|
304
|
+
_loggerProxy.default.logger.error('Meeting:interpretation#requestHandoff failed', error);
|
|
305
|
+
throw error;
|
|
306
|
+
});
|
|
307
|
+
},
|
|
308
|
+
/**
|
|
309
|
+
* accept the request of handoff
|
|
310
|
+
* @param {String} url the url get from last approval event
|
|
311
|
+
* @returns {Promise}
|
|
312
|
+
*/
|
|
313
|
+
acceptRequest: function acceptRequest(url) {
|
|
314
|
+
if (!url) {
|
|
315
|
+
return _promise.default.reject(new Error('Missing the url to accept'));
|
|
316
|
+
}
|
|
317
|
+
return this.request({
|
|
318
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
319
|
+
uri: url,
|
|
320
|
+
body: {
|
|
321
|
+
actionType: _constants.INTERPRETATION.ACTION_TYPE.ACCEPTED
|
|
322
|
+
}
|
|
323
|
+
}).catch(function (error) {
|
|
324
|
+
_loggerProxy.default.logger.error('Meeting:interpretation#acceptRequest failed', error);
|
|
325
|
+
throw error;
|
|
326
|
+
});
|
|
327
|
+
},
|
|
328
|
+
/**
|
|
329
|
+
* decline the request of handoff
|
|
330
|
+
* @param {String} url the url get from last approval event
|
|
331
|
+
* @returns {Promise}
|
|
332
|
+
*/
|
|
333
|
+
declineRequest: function declineRequest(url) {
|
|
334
|
+
if (!url) {
|
|
335
|
+
return _promise.default.reject(new Error('Missing the url to decline'));
|
|
336
|
+
}
|
|
337
|
+
return this.request({
|
|
338
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
339
|
+
uri: url,
|
|
340
|
+
body: {
|
|
341
|
+
actionType: _constants.INTERPRETATION.ACTION_TYPE.DECLINED
|
|
342
|
+
}
|
|
343
|
+
}).catch(function (error) {
|
|
344
|
+
_loggerProxy.default.logger.error('Meeting:interpretation#declineRequest failed', error);
|
|
345
|
+
throw error;
|
|
346
|
+
});
|
|
347
|
+
},
|
|
348
|
+
version: "3.0.0-beta.175"
|
|
211
349
|
});
|
|
212
350
|
var _default = SimultaneousInterpretation;
|
|
213
351
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SimultaneousInterpretation","WebexPlugin","extend","namespace","MEETINGS","collections","siLanguages","SILanguageCollection","props","locusUrl","originalLanguage","sourceLanguage","targetLanguage","receiveLanguage","order","isActive","selfParticipantId","canManageInterpreters","supportLanguages","siEnabled","derived","shouldQuerySupportLanguages","cache","deps","fn","initialize","listenTo","querySupportLanguages","cleanUp","stopListening","locusUrlUpdate","set","updateCanManageInterpreters","updateInterpretation","interpretation","updateSelfInterpretation","request","method","HTTP_VERBS","GET","uri","then","result","body","trigger","INTERPRETATION","EVENTS","SUPPORT_LANGUAGES_UPDATE","catch","error","LoggerProxy","logger","getInterpreters","updateInterpreters","interpreters","PATCH","changeDirection","reject","Error"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {HTTP_VERBS, INTERPRETATION, MEETINGS} from '../constants';\n\nimport SILanguageCollection from './collection';\n\n/**\n * @class SimultaneousInterpretation\n */\nconst SimultaneousInterpretation = WebexPlugin.extend({\n namespace: MEETINGS,\n collections: {\n siLanguages: SILanguageCollection,\n },\n\n props: {\n locusUrl: 'string', // appears current meeting's locus url\n originalLanguage: 'string', // appears current meeting's original language\n sourceLanguage: 'string', // appears self interpreter's source language\n targetLanguage: 'string', // appears self interpreter's target language\n receiveLanguage: 'string', // appears self's receive language\n order: 'number', // appears the order of self as interpreter\n isActive: 'boolean', // appears self is interpreter and is active\n selfParticipantId: 'string', // appears the self participant id\n canManageInterpreters: 'boolean', // appears the ability to manage interpreters\n supportLanguages: 'array', // appears the support languages\n siEnabled: 'boolean', // appears the meeting enabled SI\n },\n derived: {\n shouldQuerySupportLanguages: {\n cache: false,\n deps: ['canManageInterpreters', 'siEnabled'],\n /**\n * Returns should query support languages or not\n * @returns {boolean}\n */\n fn() {\n return !!(this.canManageInterpreters && this.siEnabled);\n },\n },\n },\n /**\n * initialize for interpretation\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:shouldQuerySupportLanguages', () => {\n if (this.canManageInterpreters && !this.supportLanguages) {\n this.querySupportLanguages();\n }\n });\n },\n\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp() {\n this.stopListening();\n },\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n /**\n * Update whether self has capability to manage interpreters (only host can manage it)\n * @param {boolean} canManageInterpreters\n * @returns {void}\n */\n updateCanManageInterpreters(canManageInterpreters) {\n this.set('canManageInterpreters', canManageInterpreters);\n },\n /**\n * Update the interpretation languages channels which user can choose to subscribe\n * @param {Object} interpretation\n * @returns {void}\n */\n updateInterpretation(interpretation) {\n this.set('siEnabled', !!interpretation);\n this.siLanguages.set(interpretation?.siLanguages || []);\n },\n /**\n * Update self's interpretation information (self is interpreter)\n * @param {Object} interpretation\n * @param {String} selfParticipantId\n * @returns {void}\n */\n updateSelfInterpretation({interpretation, selfParticipantId}) {\n const {originalLanguage, sourceLanguage, order, isActive, targetLanguage, receiveLanguage} =\n interpretation || {};\n this.set({originalLanguage, sourceLanguage, order, isActive, targetLanguage, receiveLanguage});\n this.set('selfParticipantId', selfParticipantId);\n },\n /**\n * query interpretation languages\n * @returns {Promise}\n */\n querySupportLanguages() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.locusUrl}/languages/interpretation`,\n })\n .then((result) => {\n this.set('supportLanguages', result.body?.siLanguages);\n this.trigger(INTERPRETATION.EVENTS.SUPPORT_LANGUAGES_UPDATE);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#querySupportLanguages failed', error);\n throw error;\n });\n },\n /**\n * get interpreters of the meeting\n * @returns {Promise}\n */\n getInterpreters() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.locusUrl}/interpretation/interpreters`,\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#getInterpreters failed', error);\n throw error;\n });\n },\n /**\n * update interpreters of the meeting\n * @param {Array} interpreters\n * @returns {Promise}\n */\n updateInterpreters(interpreters) {\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri: `${this.locusUrl}/controls`,\n body: {\n interpretation: {\n interpreters,\n },\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#updateInterpreters failed', error);\n throw error;\n });\n },\n /**\n * Change direction of interpretation for an interpreter participant\n * @returns {Promise}\n */\n changeDirection() {\n if (!this.sourceLanguage || !this.targetLanguage) {\n return Promise.reject(new Error('Missing sourceLanguage or targetLanguage'));\n }\n\n if (!this.selfParticipantId) {\n return Promise.reject(new Error('Missing self participant id'));\n }\n\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri: `${this.locusUrl}/participant/${this.selfParticipantId}/controls`,\n body: {\n interpretation: {\n sourceLanguage: this.targetLanguage,\n targetLanguage: this.sourceLanguage,\n isActive: this.isActive,\n order: this.order,\n },\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#changeDirection failed', error);\n throw error;\n });\n },\n});\n\nexport default SimultaneousInterpretation;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["SimultaneousInterpretation","WebexPlugin","extend","namespace","MEETINGS","collections","siLanguages","SILanguageCollection","props","locusUrl","approvalUrl","originalLanguage","sourceLanguage","targetLanguage","receiveLanguage","order","isActive","selfParticipantId","canManageInterpreters","supportLanguages","hostSIEnabled","derived","shouldQuerySupportLanguages","cache","deps","fn","initialize","listenTo","querySupportLanguages","listenToHandoffRequests","cleanUp","stopListening","locusUrlUpdate","set","approvalUrlUpdate","updateCanManageInterpreters","updateHostSIEnabled","updateInterpretation","interpretation","updateSelfInterpretation","request","method","HTTP_VERBS","GET","uri","then","result","body","trigger","INTERPRETATION","EVENTS","SUPPORT_LANGUAGES_UPDATE","catch","error","LoggerProxy","logger","getInterpreters","updateInterpreters","interpreters","PATCH","changeDirection","reject","Error","webex","internal","mercury","event","data","approval","resourceType","RESOURCE_TYPE","receivers","initiator","actionType","url","receiverId","participantId","isReceiver","senderId","isSender","HANDOFF_REQUESTS_ARRIVED","handoffInterpreter","POST","ACTION_TYPE","OFFERED","requestHandoff","REQUESTED","acceptRequest","PUT","ACCEPTED","declineRequest","DECLINED"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {HTTP_VERBS, INTERPRETATION, MEETINGS} from '../constants';\n\nimport SILanguageCollection from './collection';\n\n/**\n * @class SimultaneousInterpretation\n */\nconst SimultaneousInterpretation = WebexPlugin.extend({\n namespace: MEETINGS,\n collections: {\n siLanguages: SILanguageCollection,\n },\n\n props: {\n locusUrl: 'string', // appears current meeting's locus url\n approvalUrl: 'string', // appears current meeting's approval url for handoff between interpreters\n originalLanguage: 'string', // appears current meeting's original language\n sourceLanguage: 'string', // appears self interpreter's source language\n targetLanguage: 'string', // appears self interpreter's target language\n receiveLanguage: 'string', // appears self's receive language\n order: 'number', // appears the order of self as interpreter\n isActive: 'boolean', // appears self is interpreter and is active\n selfParticipantId: 'string', // appears the self participant id\n canManageInterpreters: 'boolean', // appears the ability to manage interpreters\n supportLanguages: 'array', // appears the support languages\n hostSIEnabled: 'boolean', // appears the meeting host feature of SI enabled\n },\n derived: {\n shouldQuerySupportLanguages: {\n cache: false,\n deps: ['canManageInterpreters', 'hostSIEnabled'],\n /**\n * Returns should query support languages or not\n * @returns {boolean}\n */\n fn() {\n return !!(this.canManageInterpreters && this.hostSIEnabled);\n },\n },\n },\n /**\n * initialize for interpretation\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:shouldQuerySupportLanguages', () => {\n if (this.canManageInterpreters && !this.supportLanguages) {\n this.querySupportLanguages();\n }\n });\n this.listenToHandoffRequests();\n },\n\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp() {\n this.stopListening();\n },\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n /**\n * Update the approval url for handoff\n * @param {string} approvalUrl // approval url\n * @returns {void}\n */\n approvalUrlUpdate(approvalUrl) {\n this.set('approvalUrl', approvalUrl);\n },\n /**\n * Update whether self has capability to manage interpreters (only host can manage it)\n * @param {boolean} canManageInterpreters\n * @returns {void}\n */\n updateCanManageInterpreters(canManageInterpreters) {\n this.set('canManageInterpreters', canManageInterpreters);\n },\n /**\n * Update whether the meeting's host si is enabled or not\n * @param {boolean} hostSIEnabled\n * @returns {void}\n */\n updateHostSIEnabled(hostSIEnabled) {\n this.set('hostSIEnabled', hostSIEnabled);\n },\n /**\n * Update the interpretation languages channels which user can choose to subscribe\n * @param {Object} interpretation\n * @returns {void}\n */\n updateInterpretation(interpretation) {\n this.siLanguages.set(interpretation?.siLanguages || []);\n },\n /**\n * Update self's interpretation information (self is interpreter)\n * @param {Object} interpretation\n * @param {String} selfParticipantId\n * @returns {void}\n */\n updateSelfInterpretation({interpretation, selfParticipantId}) {\n const {originalLanguage, sourceLanguage, order, isActive, targetLanguage, receiveLanguage} =\n interpretation || {};\n this.set({originalLanguage, sourceLanguage, order, isActive, targetLanguage, receiveLanguage});\n this.set('selfParticipantId', selfParticipantId);\n },\n /**\n * query interpretation languages\n * @returns {Promise}\n */\n querySupportLanguages() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.locusUrl}/languages/interpretation`,\n })\n .then((result) => {\n this.set('supportLanguages', result.body?.siLanguages);\n this.trigger(INTERPRETATION.EVENTS.SUPPORT_LANGUAGES_UPDATE);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#querySupportLanguages failed', error);\n throw error;\n });\n },\n /**\n * get interpreters of the meeting\n * @returns {Promise}\n */\n getInterpreters() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.locusUrl}/interpretation/interpreters`,\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#getInterpreters failed', error);\n throw error;\n });\n },\n /**\n * update interpreters of the meeting\n * @param {Array} interpreters\n * @returns {Promise}\n */\n updateInterpreters(interpreters) {\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri: `${this.locusUrl}/controls`,\n body: {\n interpretation: {\n interpreters,\n },\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#updateInterpreters failed', error);\n throw error;\n });\n },\n /**\n * Change direction of interpretation for an interpreter participant\n * @returns {Promise}\n */\n changeDirection() {\n if (!this.sourceLanguage || !this.targetLanguage) {\n return Promise.reject(new Error('Missing sourceLanguage or targetLanguage'));\n }\n\n if (!this.selfParticipantId) {\n return Promise.reject(new Error('Missing self participant id'));\n }\n\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri: `${this.locusUrl}/participant/${this.selfParticipantId}/controls`,\n body: {\n interpretation: {\n sourceLanguage: this.targetLanguage,\n targetLanguage: this.sourceLanguage,\n isActive: this.isActive,\n order: this.order,\n },\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#changeDirection failed', error);\n throw error;\n });\n },\n /**\n * Sets up a listener for handoff requests from mercury\n * @returns {void}\n */\n listenToHandoffRequests() {\n this.listenTo(this.webex.internal.mercury, 'event:locus.approval_request', (event) => {\n if (event?.data?.approval?.resourceType === INTERPRETATION.RESOURCE_TYPE) {\n const {receivers, initiator, actionType, url} = event.data.approval;\n const receiverId = receivers?.[0]?.participantId;\n const isReceiver = !!receiverId && receiverId === this.selfParticipantId;\n const senderId = initiator?.participantId;\n const isSender = !!senderId && senderId === this.selfParticipantId;\n if (!isReceiver && !isSender) {\n return;\n }\n this.trigger(INTERPRETATION.EVENTS.HANDOFF_REQUESTS_ARRIVED, {\n actionType,\n isReceiver,\n isSender,\n senderId,\n receiverId,\n url,\n });\n }\n });\n },\n /**\n * handoff the active interpreter role to another interpreter in same group, only the interpreter is allowed to call this api\n * @param {string} participantId the participant id you want to hand off\n * @returns {Promise}\n */\n handoffInterpreter(participantId) {\n if (!participantId) {\n return Promise.reject(new Error('Missing target participant id'));\n }\n if (!this.approvalUrl) {\n return Promise.reject(new Error('Missing approval url'));\n }\n\n return this.request({\n method: HTTP_VERBS.POST,\n uri: this.approvalUrl,\n body: {\n actionType: INTERPRETATION.ACTION_TYPE.OFFERED,\n resourceType: INTERPRETATION.RESOURCE_TYPE,\n receivers: [\n {\n participantId,\n },\n ],\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#handoffInterpreter failed', error);\n throw error;\n });\n },\n /**\n * the in-active interpreter request to hand off the active role to self\n * @returns {Promise}\n */\n requestHandoff() {\n if (!this.approvalUrl) {\n return Promise.reject(new Error('Missing approval url'));\n }\n\n return this.request({\n method: HTTP_VERBS.POST,\n uri: this.approvalUrl,\n body: {\n actionType: INTERPRETATION.ACTION_TYPE.REQUESTED,\n resourceType: INTERPRETATION.RESOURCE_TYPE,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#requestHandoff failed', error);\n throw error;\n });\n },\n /**\n * accept the request of handoff\n * @param {String} url the url get from last approval event\n * @returns {Promise}\n */\n acceptRequest(url) {\n if (!url) {\n return Promise.reject(new Error('Missing the url to accept'));\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: url,\n body: {\n actionType: INTERPRETATION.ACTION_TYPE.ACCEPTED,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#acceptRequest failed', error);\n throw error;\n });\n },\n /**\n * decline the request of handoff\n * @param {String} url the url get from last approval event\n * @returns {Promise}\n */\n declineRequest(url) {\n if (!url) {\n return Promise.reject(new Error('Missing the url to decline'));\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: url,\n body: {\n actionType: INTERPRETATION.ACTION_TYPE.DECLINED,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#declineRequest failed', error);\n throw error;\n });\n },\n});\n\nexport default SimultaneousInterpretation;\n"],"mappings":";;;;;;;;;AAGA;AACA;AACA;AAEA;AAPA;AACA;AACA;;AAOA;AACA;AACA;AACA,IAAMA,0BAA0B,GAAGC,sBAAW,CAACC,MAAM,CAAC;EACpDC,SAAS,EAAEC,mBAAQ;EACnBC,WAAW,EAAE;IACXC,WAAW,EAAEC;EACf,CAAC;EAEDC,KAAK,EAAE;IACLC,QAAQ,EAAE,QAAQ;IAAE;IACpBC,WAAW,EAAE,QAAQ;IAAE;IACvBC,gBAAgB,EAAE,QAAQ;IAAE;IAC5BC,cAAc,EAAE,QAAQ;IAAE;IAC1BC,cAAc,EAAE,QAAQ;IAAE;IAC1BC,eAAe,EAAE,QAAQ;IAAE;IAC3BC,KAAK,EAAE,QAAQ;IAAE;IACjBC,QAAQ,EAAE,SAAS;IAAE;IACrBC,iBAAiB,EAAE,QAAQ;IAAE;IAC7BC,qBAAqB,EAAE,SAAS;IAAE;IAClCC,gBAAgB,EAAE,OAAO;IAAE;IAC3BC,aAAa,EAAE,SAAS,CAAE;EAC5B,CAAC;;EACDC,OAAO,EAAE;IACPC,2BAA2B,EAAE;MAC3BC,KAAK,EAAE,KAAK;MACZC,IAAI,EAAE,CAAC,uBAAuB,EAAE,eAAe,CAAC;MAChD;AACN;AACA;AACA;MACMC,EAAE,gBAAG;QACH,OAAO,CAAC,EAAE,IAAI,CAACP,qBAAqB,IAAI,IAAI,CAACE,aAAa,CAAC;MAC7D;IACF;EACF,CAAC;EACD;AACF;AACA;AACA;EACEM,UAAU,wBAAG;IAAA;IACX,IAAI,CAACC,QAAQ,CAAC,IAAI,EAAE,oCAAoC,EAAE,YAAM;MAC9D,IAAI,KAAI,CAACT,qBAAqB,IAAI,CAAC,KAAI,CAACC,gBAAgB,EAAE;QACxD,KAAI,CAACS,qBAAqB,EAAE;MAC9B;IACF,CAAC,CAAC;IACF,IAAI,CAACC,uBAAuB,EAAE;EAChC,CAAC;EAED;AACF;AACA;AACA;EACEC,OAAO,qBAAG;IACR,IAAI,CAACC,aAAa,EAAE;EACtB,CAAC;EACD;AACF;AACA;AACA;AACA;EACEC,cAAc,0BAACvB,QAAQ,EAAE;IACvB,IAAI,CAACwB,GAAG,CAAC,UAAU,EAAExB,QAAQ,CAAC;EAChC,CAAC;EACD;AACF;AACA;AACA;AACA;EACEyB,iBAAiB,6BAACxB,WAAW,EAAE;IAC7B,IAAI,CAACuB,GAAG,CAAC,aAAa,EAAEvB,WAAW,CAAC;EACtC,CAAC;EACD;AACF;AACA;AACA;AACA;EACEyB,2BAA2B,uCAACjB,qBAAqB,EAAE;IACjD,IAAI,CAACe,GAAG,CAAC,uBAAuB,EAAEf,qBAAqB,CAAC;EAC1D,CAAC;EACD;AACF;AACA;AACA;AACA;EACEkB,mBAAmB,+BAAChB,aAAa,EAAE;IACjC,IAAI,CAACa,GAAG,CAAC,eAAe,EAAEb,aAAa,CAAC;EAC1C,CAAC;EACD;AACF;AACA;AACA;AACA;EACEiB,oBAAoB,gCAACC,cAAc,EAAE;IACnC,IAAI,CAAChC,WAAW,CAAC2B,GAAG,CAAC,CAAAK,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEhC,WAAW,KAAI,EAAE,CAAC;EACzD,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;EACEiC,wBAAwB,0CAAsC;IAAA,IAApCD,cAAc,QAAdA,cAAc;MAAErB,iBAAiB,QAAjBA,iBAAiB;IACzD,YACEqB,cAAc,IAAI,CAAC,CAAC;MADf3B,gBAAgB,SAAhBA,gBAAgB;MAAEC,cAAc,SAAdA,cAAc;MAAEG,KAAK,SAALA,KAAK;MAAEC,QAAQ,SAARA,QAAQ;MAAEH,cAAc,SAAdA,cAAc;MAAEC,eAAe,SAAfA,eAAe;IAEzF,IAAI,CAACmB,GAAG,CAAC;MAACtB,gBAAgB,EAAhBA,gBAAgB;MAAEC,cAAc,EAAdA,cAAc;MAAEG,KAAK,EAALA,KAAK;MAAEC,QAAQ,EAARA,QAAQ;MAAEH,cAAc,EAAdA,cAAc;MAAEC,eAAe,EAAfA;IAAe,CAAC,CAAC;IAC9F,IAAI,CAACmB,GAAG,CAAC,mBAAmB,EAAEhB,iBAAiB,CAAC;EAClD,CAAC;EACD;AACF;AACA;AACA;EACEW,qBAAqB,mCAAG;IAAA;IACtB,OAAO,IAAI,CAACY,OAAO,CAAC;MAClBC,MAAM,EAAEC,qBAAU,CAACC,GAAG;MACtBC,GAAG,YAAK,IAAI,CAACnC,QAAQ;IACvB,CAAC,CAAC,CACCoC,IAAI,CAAC,UAACC,MAAM,EAAK;MAAA;MAChB,MAAI,CAACb,GAAG,CAAC,kBAAkB,kBAAEa,MAAM,CAACC,IAAI,iDAAX,aAAazC,WAAW,CAAC;MACtD,MAAI,CAAC0C,OAAO,CAACC,yBAAc,CAACC,MAAM,CAACC,wBAAwB,CAAC;IAC9D,CAAC,CAAC,CACDC,KAAK,CAAC,UAACC,KAAK,EAAK;MAChBC,oBAAW,CAACC,MAAM,CAACF,KAAK,CAAC,qDAAqD,EAAEA,KAAK,CAAC;MACtF,MAAMA,KAAK;IACb,CAAC,CAAC;EACN,CAAC;EACD;AACF;AACA;AACA;EACEG,eAAe,6BAAG;IAChB,OAAO,IAAI,CAAChB,OAAO,CAAC;MAClBC,MAAM,EAAEC,qBAAU,CAACC,GAAG;MACtBC,GAAG,YAAK,IAAI,CAACnC,QAAQ;IACvB,CAAC,CAAC,CAAC2C,KAAK,CAAC,UAACC,KAAK,EAAK;MAClBC,oBAAW,CAACC,MAAM,CAACF,KAAK,CAAC,+CAA+C,EAAEA,KAAK,CAAC;MAChF,MAAMA,KAAK;IACb,CAAC,CAAC;EACJ,CAAC;EACD;AACF;AACA;AACA;AACA;EACEI,kBAAkB,8BAACC,YAAY,EAAE;IAC/B,OAAO,IAAI,CAAClB,OAAO,CAAC;MAClBC,MAAM,EAAEC,qBAAU,CAACiB,KAAK;MACxBf,GAAG,YAAK,IAAI,CAACnC,QAAQ,cAAW;MAChCsC,IAAI,EAAE;QACJT,cAAc,EAAE;UACdoB,YAAY,EAAZA;QACF;MACF;IACF,CAAC,CAAC,CAACN,KAAK,CAAC,UAACC,KAAK,EAAK;MAClBC,oBAAW,CAACC,MAAM,CAACF,KAAK,CAAC,kDAAkD,EAAEA,KAAK,CAAC;MACnF,MAAMA,KAAK;IACb,CAAC,CAAC;EACJ,CAAC;EACD;AACF;AACA;AACA;EACEO,eAAe,6BAAG;IAChB,IAAI,CAAC,IAAI,CAAChD,cAAc,IAAI,CAAC,IAAI,CAACC,cAAc,EAAE;MAChD,OAAO,iBAAQgD,MAAM,CAAC,IAAIC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9E;IAEA,IAAI,CAAC,IAAI,CAAC7C,iBAAiB,EAAE;MAC3B,OAAO,iBAAQ4C,MAAM,CAAC,IAAIC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjE;IAEA,OAAO,IAAI,CAACtB,OAAO,CAAC;MAClBC,MAAM,EAAEC,qBAAU,CAACiB,KAAK;MACxBf,GAAG,YAAK,IAAI,CAACnC,QAAQ,0BAAgB,IAAI,CAACQ,iBAAiB,cAAW;MACtE8B,IAAI,EAAE;QACJT,cAAc,EAAE;UACd1B,cAAc,EAAE,IAAI,CAACC,cAAc;UACnCA,cAAc,EAAE,IAAI,CAACD,cAAc;UACnCI,QAAQ,EAAE,IAAI,CAACA,QAAQ;UACvBD,KAAK,EAAE,IAAI,CAACA;QACd;MACF;IACF,CAAC,CAAC,CAACqC,KAAK,CAAC,UAACC,KAAK,EAAK;MAClBC,oBAAW,CAACC,MAAM,CAACF,KAAK,CAAC,+CAA+C,EAAEA,KAAK,CAAC;MAChF,MAAMA,KAAK;IACb,CAAC,CAAC;EACJ,CAAC;EACD;AACF;AACA;AACA;EACExB,uBAAuB,qCAAG;IAAA;IACxB,IAAI,CAACF,QAAQ,CAAC,IAAI,CAACoC,KAAK,CAACC,QAAQ,CAACC,OAAO,EAAE,8BAA8B,EAAE,UAACC,KAAK,EAAK;MAAA;MACpF,IAAI,CAAAA,KAAK,aAALA,KAAK,sCAALA,KAAK,CAAEC,IAAI,wEAAX,YAAaC,QAAQ,yDAArB,qBAAuBC,YAAY,MAAKpB,yBAAc,CAACqB,aAAa,EAAE;QAAA;QACxE,4BAAgDJ,KAAK,CAACC,IAAI,CAACC,QAAQ;UAA5DG,SAAS,yBAATA,SAAS;UAAEC,SAAS,yBAATA,SAAS;UAAEC,UAAU,yBAAVA,UAAU;UAAEC,GAAG,yBAAHA,GAAG;QAC5C,IAAMC,UAAU,GAAGJ,SAAS,aAATA,SAAS,sCAATA,SAAS,CAAG,CAAC,CAAC,gDAAd,YAAgBK,aAAa;QAChD,IAAMC,UAAU,GAAG,CAAC,CAACF,UAAU,IAAIA,UAAU,KAAK,MAAI,CAAC1D,iBAAiB;QACxE,IAAM6D,QAAQ,GAAGN,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEI,aAAa;QACzC,IAAMG,QAAQ,GAAG,CAAC,CAACD,QAAQ,IAAIA,QAAQ,KAAK,MAAI,CAAC7D,iBAAiB;QAClE,IAAI,CAAC4D,UAAU,IAAI,CAACE,QAAQ,EAAE;UAC5B;QACF;QACA,MAAI,CAAC/B,OAAO,CAACC,yBAAc,CAACC,MAAM,CAAC8B,wBAAwB,EAAE;UAC3DP,UAAU,EAAVA,UAAU;UACVI,UAAU,EAAVA,UAAU;UACVE,QAAQ,EAARA,QAAQ;UACRD,QAAQ,EAARA,QAAQ;UACRH,UAAU,EAAVA,UAAU;UACVD,GAAG,EAAHA;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ,CAAC;EACD;AACF;AACA;AACA;AACA;EACEO,kBAAkB,8BAACL,aAAa,EAAE;IAChC,IAAI,CAACA,aAAa,EAAE;MAClB,OAAO,iBAAQf,MAAM,CAAC,IAAIC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnE;IACA,IAAI,CAAC,IAAI,CAACpD,WAAW,EAAE;MACrB,OAAO,iBAAQmD,MAAM,CAAC,IAAIC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1D;IAEA,OAAO,IAAI,CAACtB,OAAO,CAAC;MAClBC,MAAM,EAAEC,qBAAU,CAACwC,IAAI;MACvBtC,GAAG,EAAE,IAAI,CAAClC,WAAW;MACrBqC,IAAI,EAAE;QACJ0B,UAAU,EAAExB,yBAAc,CAACkC,WAAW,CAACC,OAAO;QAC9Cf,YAAY,EAAEpB,yBAAc,CAACqB,aAAa;QAC1CC,SAAS,EAAE,CACT;UACEK,aAAa,EAAbA;QACF,CAAC;MAEL;IACF,CAAC,CAAC,CAACxB,KAAK,CAAC,UAACC,KAAK,EAAK;MAClBC,oBAAW,CAACC,MAAM,CAACF,KAAK,CAAC,kDAAkD,EAAEA,KAAK,CAAC;MACnF,MAAMA,KAAK;IACb,CAAC,CAAC;EACJ,CAAC;EACD;AACF;AACA;AACA;EACEgC,cAAc,4BAAG;IACf,IAAI,CAAC,IAAI,CAAC3E,WAAW,EAAE;MACrB,OAAO,iBAAQmD,MAAM,CAAC,IAAIC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1D;IAEA,OAAO,IAAI,CAACtB,OAAO,CAAC;MAClBC,MAAM,EAAEC,qBAAU,CAACwC,IAAI;MACvBtC,GAAG,EAAE,IAAI,CAAClC,WAAW;MACrBqC,IAAI,EAAE;QACJ0B,UAAU,EAAExB,yBAAc,CAACkC,WAAW,CAACG,SAAS;QAChDjB,YAAY,EAAEpB,yBAAc,CAACqB;MAC/B;IACF,CAAC,CAAC,CAAClB,KAAK,CAAC,UAACC,KAAK,EAAK;MAClBC,oBAAW,CAACC,MAAM,CAACF,KAAK,CAAC,8CAA8C,EAAEA,KAAK,CAAC;MAC/E,MAAMA,KAAK;IACb,CAAC,CAAC;EACJ,CAAC;EACD;AACF;AACA;AACA;AACA;EACEkC,aAAa,yBAACb,GAAG,EAAE;IACjB,IAAI,CAACA,GAAG,EAAE;MACR,OAAO,iBAAQb,MAAM,CAAC,IAAIC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/D;IAEA,OAAO,IAAI,CAACtB,OAAO,CAAC;MAClBC,MAAM,EAAEC,qBAAU,CAAC8C,GAAG;MACtB5C,GAAG,EAAE8B,GAAG;MACR3B,IAAI,EAAE;QACJ0B,UAAU,EAAExB,yBAAc,CAACkC,WAAW,CAACM;MACzC;IACF,CAAC,CAAC,CAACrC,KAAK,CAAC,UAACC,KAAK,EAAK;MAClBC,oBAAW,CAACC,MAAM,CAACF,KAAK,CAAC,6CAA6C,EAAEA,KAAK,CAAC;MAC9E,MAAMA,KAAK;IACb,CAAC,CAAC;EACJ,CAAC;EACD;AACF;AACA;AACA;AACA;EACEqC,cAAc,0BAAChB,GAAG,EAAE;IAClB,IAAI,CAACA,GAAG,EAAE;MACR,OAAO,iBAAQb,MAAM,CAAC,IAAIC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChE;IAEA,OAAO,IAAI,CAACtB,OAAO,CAAC;MAClBC,MAAM,EAAEC,qBAAU,CAAC8C,GAAG;MACtB5C,GAAG,EAAE8B,GAAG;MACR3B,IAAI,EAAE;QACJ0B,UAAU,EAAExB,yBAAc,CAACkC,WAAW,CAACQ;MACzC;IACF,CAAC,CAAC,CAACvC,KAAK,CAAC,UAACC,KAAK,EAAK;MAClBC,oBAAW,CAACC,MAAM,CAACF,KAAK,CAAC,8CAA8C,EAAEA,KAAK,CAAC;MAC/E,MAAMA,KAAK;IACb,CAAC,CAAC;EACJ,CAAC;EAAA;AACH,CAAC,CAAC;AAAC,eAEYrD,0BAA0B;AAAA"}
|
package/dist/meeting/index.js
CHANGED
|
@@ -2041,6 +2041,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2041
2041
|
function: 'setUpInterpretationListener'
|
|
2042
2042
|
}, _constants.EVENT_TRIGGERS.MEETING_INTERPRETATION_SUPPORT_LANGUAGES_UPDATE);
|
|
2043
2043
|
});
|
|
2044
|
+
this.simultaneousInterpretation.on(_constants.INTERPRETATION.EVENTS.HANDOFF_REQUESTS_ARRIVED, function (payload) {
|
|
2045
|
+
_triggerProxy.default.trigger(_this5, {
|
|
2046
|
+
file: 'meeting/index',
|
|
2047
|
+
function: 'setUpInterpretationListener'
|
|
2048
|
+
}, _constants.EVENT_TRIGGERS.MEETING_INTERPRETATION_HANDOFF_REQUESTS_ARRIVED, payload);
|
|
2049
|
+
});
|
|
2044
2050
|
}
|
|
2045
2051
|
|
|
2046
2052
|
/**
|
|
@@ -2708,11 +2714,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2708
2714
|
value: function setUpLocusServicesListener() {
|
|
2709
2715
|
var _this16 = this;
|
|
2710
2716
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LINKS_SERVICES, function (payload) {
|
|
2711
|
-
var _payload$services, _payload$services$rec, _this16$locusInfo, _this16$locusInfo$ful, _payload$services2, _payload$services2$br, _payload$services3, _payload$services3$ap;
|
|
2717
|
+
var _payload$services, _payload$services$rec, _this16$locusInfo, _this16$locusInfo$ful, _payload$services2, _payload$services2$br, _payload$services3, _payload$services3$ap, _payload$services4, _payload$services4$ap;
|
|
2712
2718
|
_this16.recordingController.setServiceUrl(payload === null || payload === void 0 ? void 0 : (_payload$services = payload.services) === null || _payload$services === void 0 ? void 0 : (_payload$services$rec = _payload$services.record) === null || _payload$services$rec === void 0 ? void 0 : _payload$services$rec.url);
|
|
2713
2719
|
_this16.recordingController.setSessionId((_this16$locusInfo = _this16.locusInfo) === null || _this16$locusInfo === void 0 ? void 0 : (_this16$locusInfo$ful = _this16$locusInfo.fullState) === null || _this16$locusInfo$ful === void 0 ? void 0 : _this16$locusInfo$ful.sessionId);
|
|
2714
2720
|
_this16.breakouts.breakoutServiceUrlUpdate(payload === null || payload === void 0 ? void 0 : (_payload$services2 = payload.services) === null || _payload$services2 === void 0 ? void 0 : (_payload$services2$br = _payload$services2.breakout) === null || _payload$services2$br === void 0 ? void 0 : _payload$services2$br.url);
|
|
2715
2721
|
_this16.annotation.approvalUrlUpdate(payload === null || payload === void 0 ? void 0 : (_payload$services3 = payload.services) === null || _payload$services3 === void 0 ? void 0 : (_payload$services3$ap = _payload$services3.approval) === null || _payload$services3$ap === void 0 ? void 0 : _payload$services3$ap.url);
|
|
2722
|
+
_this16.simultaneousInterpretation.approvalUrlUpdate(payload === null || payload === void 0 ? void 0 : (_payload$services4 = payload.services) === null || _payload$services4 === void 0 ? void 0 : (_payload$services4$ap = _payload$services4.approval) === null || _payload$services4$ap === void 0 ? void 0 : _payload$services4$ap.url);
|
|
2716
2723
|
});
|
|
2717
2724
|
}
|
|
2718
2725
|
|
|
@@ -3349,6 +3356,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3349
3356
|
}, {
|
|
3350
3357
|
key: "parseMeetingInfo",
|
|
3351
3358
|
value: function parseMeetingInfo(meetingInfo) {
|
|
3359
|
+
var _webexMeetingInfo$mee;
|
|
3352
3360
|
var destination = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
3353
3361
|
var webexMeetingInfo = meetingInfo === null || meetingInfo === void 0 ? void 0 : meetingInfo.body;
|
|
3354
3362
|
// We try to use as much info from Locus meeting object, stored in destination
|
|
@@ -3379,6 +3387,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3379
3387
|
// Need to populate environment when sending CA event
|
|
3380
3388
|
this.environment = ((_locusMeetingObject7 = locusMeetingObject) === null || _locusMeetingObject7 === void 0 ? void 0 : _locusMeetingObject7.info.channel) || (webexMeetingInfo === null || webexMeetingInfo === void 0 ? void 0 : webexMeetingInfo.channel);
|
|
3381
3389
|
}
|
|
3390
|
+
this.simultaneousInterpretation.updateHostSIEnabled(!!(webexMeetingInfo !== null && webexMeetingInfo !== void 0 && (_webexMeetingInfo$mee = webexMeetingInfo.meetingSiteSetting) !== null && _webexMeetingInfo$mee !== void 0 && _webexMeetingInfo$mee.enableHostInterpreterControlSI));
|
|
3382
3391
|
}
|
|
3383
3392
|
|
|
3384
3393
|
/**
|