@webex/plugin-meetings 3.0.0-bnr.4 → 3.0.0-stream-classes.1
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 +46 -8
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +70 -32
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +422 -217
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/utils.js +12 -1
- package/dist/breakouts/utils.js.map +1 -1
- package/dist/common/errors/webex-errors.js +3 -2
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.d.ts +1 -1
- package/dist/common/queue.js +24 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +1 -7
- package/dist/config.js.map +1 -1
- package/dist/constants.js +118 -24
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +2 -0
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +19 -14
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.js.map +1 -1
- package/dist/controls-options-manager/util.js +80 -11
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +62 -20
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +366 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +71 -1
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +305 -57
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +7 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +43 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +219 -63
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +44 -22
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +57 -104
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +60 -121
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +61 -3
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2530 -2534
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +292 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +125 -205
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +150 -150
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +568 -438
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +48 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +94 -38
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +4 -2
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/index.d.ts +0 -2
- package/dist/meetings/index.js +260 -85
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/util.js +42 -7
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +2 -0
- package/dist/member/index.js +26 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.d.ts +11 -0
- package/dist/member/member.types.js +18 -0
- package/dist/member/member.types.js.map +1 -0
- package/dist/member/types.js +11 -1
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.js +60 -23
- package/dist/member/util.js.map +1 -1
- package/dist/members/index.js +4 -1
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +75 -45
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +308 -317
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +1 -3
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js +1 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +1 -1
- package/dist/metrics/index.js +1 -451
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +136 -40
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +4 -4
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +60 -3
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +36 -0
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +233 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/reachability/index.js +18 -3
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +5 -3
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +181 -153
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/index.js +21 -2
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +9 -8
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +25 -32
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +42 -51
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +97 -38
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +117 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/index.js +0 -1
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +43 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +124 -0
- package/dist/types/breakouts/events.d.ts +2 -0
- package/dist/types/breakouts/utils.d.ts +7 -0
- package/dist/types/common/errors/webex-errors.d.ts +1 -1
- package/dist/types/config.d.ts +0 -6
- package/dist/types/constants.d.ts +51 -21
- package/dist/types/controls-options-manager/enums.d.ts +2 -0
- package/dist/types/controls-options-manager/index.d.ts +1 -1
- package/dist/types/controls-options-manager/types.d.ts +7 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/index.d.ts +39 -1
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +16 -38
- package/dist/types/meeting/in-meeting-actions.d.ts +46 -2
- package/dist/types/meeting/index.d.ts +179 -379
- package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
- package/dist/types/meeting/muteState.d.ts +39 -40
- package/dist/types/meeting/request.d.ts +25 -26
- package/dist/types/meeting/util.d.ts +74 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +14 -3
- package/dist/types/meetings/index.d.ts +49 -1
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/member/index.d.ts +2 -0
- package/dist/types/members/request.d.ts +56 -11
- package/dist/types/members/util.d.ts +209 -1
- package/dist/types/metrics/config.d.ts +26 -2
- package/dist/types/metrics/constants.d.ts +1 -0
- package/dist/types/metrics/index.d.ts +17 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +27 -10
- package/dist/types/multistream/receiveSlot.d.ts +3 -3
- package/dist/types/multistream/remoteMedia.d.ts +2 -2
- package/dist/types/multistream/remoteMediaManager.d.ts +14 -0
- package/dist/types/roap/request.d.ts +6 -8
- package/dist/types/roap/turnDiscovery.d.ts +18 -1
- package/package.json +3 -2
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +3 -2
- package/src/breakouts/breakout.ts +62 -27
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +244 -64
- package/src/breakouts/utils.ts +13 -0
- package/src/common/errors/webex-errors.ts +6 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +0 -6
- package/src/constants.ts +111 -19
- package/src/controls-options-manager/enums.ts +2 -0
- package/src/controls-options-manager/index.ts +13 -10
- package/src/controls-options-manager/types.ts +10 -0
- package/src/controls-options-manager/util.ts +82 -11
- package/src/index.ts +18 -11
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +81 -0
- package/src/locus-info/index.ts +318 -57
- package/src/locus-info/infoUtils.ts +10 -2
- package/src/locus-info/mediaSharesUtils.ts +48 -0
- package/src/locus-info/parser.ts +224 -39
- package/src/locus-info/selfUtils.ts +32 -20
- package/src/media/index.ts +94 -108
- package/src/media/properties.ts +69 -109
- package/src/meeting/in-meeting-actions.ts +120 -4
- package/src/meeting/index.ts +1967 -2120
- package/src/meeting/locusMediaRequest.ts +314 -0
- package/src/meeting/muteState.ts +119 -194
- package/src/meeting/request.ts +122 -115
- package/src/meeting/util.ts +549 -413
- package/src/meeting-info/index.ts +54 -8
- package/src/meeting-info/meeting-info-v2.ts +89 -24
- package/src/meeting-info/utilv2.ts +6 -2
- package/src/meetings/index.ts +247 -87
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/util.ts +47 -12
- package/src/member/index.ts +28 -1
- package/src/member/types.ts +14 -0
- package/src/member/util.ts +75 -26
- package/src/members/index.ts +7 -1
- package/src/members/request.ts +61 -21
- package/src/members/util.ts +316 -326
- package/src/metrics/constants.ts +1 -0
- package/src/metrics/index.ts +1 -474
- package/src/multistream/mediaRequestManager.ts +183 -67
- package/src/multistream/receiveSlot.ts +4 -4
- package/src/multistream/receiveSlotManager.ts +4 -4
- package/src/multistream/remoteMedia.ts +2 -2
- package/src/multistream/remoteMediaGroup.ts +59 -0
- package/src/multistream/remoteMediaManager.ts +33 -0
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/reachability/index.ts +15 -4
- package/src/reachability/request.ts +7 -3
- package/src/reconnection-manager/index.ts +36 -29
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +25 -30
- package/src/roap/request.ts +44 -51
- package/src/roap/turnDiscovery.ts +51 -25
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +100 -0
- package/src/statsAnalyzer/index.ts +0 -1
- package/test/integration/spec/converged-space-meetings.js +60 -3
- package/test/integration/spec/journey.js +336 -259
- package/test/integration/spec/space-meeting.js +76 -3
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +85 -26
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +636 -98
- package/test/unit/spec/breakouts/utils.js +19 -1
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +8 -1
- package/test/unit/spec/controls-options-manager/util.js +576 -397
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +195 -1
- package/test/unit/spec/locus-info/index.js +950 -45
- package/test/unit/spec/locus-info/infoUtils.js +37 -15
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
- package/test/unit/spec/locus-info/parser.js +62 -22
- package/test/unit/spec/locus-info/selfConstant.js +19 -0
- package/test/unit/spec/locus-info/selfUtils.js +131 -26
- package/test/unit/spec/media/index.ts +82 -79
- package/test/unit/spec/meeting/in-meeting-actions.ts +60 -2
- package/test/unit/spec/meeting/index.js +3208 -1734
- package/test/unit/spec/meeting/locusMediaRequest.ts +443 -0
- package/test/unit/spec/meeting/muteState.js +328 -417
- package/test/unit/spec/meeting/request.js +393 -48
- package/test/unit/spec/meeting/utils.js +552 -76
- package/test/unit/spec/meeting-info/index.js +181 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +258 -20
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/index.js +631 -145
- package/test/unit/spec/meetings/utils.js +164 -9
- package/test/unit/spec/member/index.js +44 -14
- package/test/unit/spec/member/util.js +296 -155
- package/test/unit/spec/members/index.js +23 -3
- package/test/unit/spec/members/request.js +167 -35
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +366 -8
- package/test/unit/spec/multistream/receiveSlot.ts +1 -1
- package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +123 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/reachability/index.ts +66 -5
- package/test/unit/spec/reachability/request.js +3 -1
- package/test/unit/spec/reconnection-manager/index.js +55 -5
- package/test/unit/spec/recording-controller/index.js +294 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +21 -48
- package/test/unit/spec/roap/request.ts +74 -60
- package/test/unit/spec/roap/turnDiscovery.ts +30 -6
- package/test/unit/spec/rtcMetrics/index.ts +68 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -60
- package/src/metrics/config.ts +0 -487
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
10
|
+
var _webexCore = require("@webex/webex-core");
|
|
11
|
+
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
12
|
+
var _constants = require("../constants");
|
|
13
|
+
var _collection = _interopRequireDefault(require("./collection"));
|
|
14
|
+
/*!
|
|
15
|
+
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @class SimultaneousInterpretation
|
|
20
|
+
*/
|
|
21
|
+
var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
|
|
22
|
+
namespace: _constants.MEETINGS,
|
|
23
|
+
collections: {
|
|
24
|
+
siLanguages: _collection.default
|
|
25
|
+
},
|
|
26
|
+
props: {
|
|
27
|
+
locusUrl: 'string',
|
|
28
|
+
// appears current meeting's locus url
|
|
29
|
+
approvalUrl: 'string',
|
|
30
|
+
// appears current meeting's approval url for handoff between interpreters
|
|
31
|
+
originalLanguage: 'string',
|
|
32
|
+
// appears current meeting's original language
|
|
33
|
+
sourceLanguage: 'string',
|
|
34
|
+
// appears self interpreter's source language
|
|
35
|
+
targetLanguage: 'string',
|
|
36
|
+
// appears self interpreter's target language
|
|
37
|
+
receiveLanguage: 'string',
|
|
38
|
+
// appears self's receive language
|
|
39
|
+
order: 'number',
|
|
40
|
+
// appears the order of self as interpreter
|
|
41
|
+
isActive: 'boolean',
|
|
42
|
+
// appears self is interpreter and is active
|
|
43
|
+
selfParticipantId: 'string',
|
|
44
|
+
// appears the self participant id
|
|
45
|
+
canManageInterpreters: 'boolean',
|
|
46
|
+
// appears the ability to manage interpreters
|
|
47
|
+
supportLanguages: 'array',
|
|
48
|
+
// appears the support languages
|
|
49
|
+
meetingSIEnabled: 'boolean',
|
|
50
|
+
// appears the meeting support SI feature
|
|
51
|
+
hostSIEnabled: 'boolean',
|
|
52
|
+
// appears the meeting host/interpreter feature of SI enabled
|
|
53
|
+
selfIsInterpreter: 'boolean' // current user is interpreter or not
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
derived: {
|
|
57
|
+
shouldQuerySupportLanguages: {
|
|
58
|
+
cache: false,
|
|
59
|
+
deps: ['canManageInterpreters', 'hostSIEnabled'],
|
|
60
|
+
/**
|
|
61
|
+
* Returns should query support languages or not
|
|
62
|
+
* @returns {boolean}
|
|
63
|
+
*/
|
|
64
|
+
fn: function fn() {
|
|
65
|
+
return !!(this.canManageInterpreters && this.hostSIEnabled);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
/**
|
|
70
|
+
* initialize for interpretation
|
|
71
|
+
* @returns {void}
|
|
72
|
+
*/
|
|
73
|
+
initialize: function initialize() {
|
|
74
|
+
var _this = this;
|
|
75
|
+
this.listenTo(this, 'change:shouldQuerySupportLanguages', function () {
|
|
76
|
+
if (_this.canManageInterpreters && !_this.supportLanguages) {
|
|
77
|
+
_this.querySupportLanguages();
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
this.listenToHandoffRequests();
|
|
81
|
+
},
|
|
82
|
+
/**
|
|
83
|
+
* Calls this to clean up listeners
|
|
84
|
+
* @returns {void}
|
|
85
|
+
*/
|
|
86
|
+
cleanUp: function cleanUp() {
|
|
87
|
+
this.stopListening();
|
|
88
|
+
},
|
|
89
|
+
/**
|
|
90
|
+
* Update the current locus url of the meeting
|
|
91
|
+
* @param {string} locusUrl // locus url
|
|
92
|
+
* @returns {void}
|
|
93
|
+
*/
|
|
94
|
+
locusUrlUpdate: function locusUrlUpdate(locusUrl) {
|
|
95
|
+
this.set('locusUrl', locusUrl);
|
|
96
|
+
},
|
|
97
|
+
/**
|
|
98
|
+
* Update the approval url for handoff
|
|
99
|
+
* @param {string} approvalUrl // approval url
|
|
100
|
+
* @returns {void}
|
|
101
|
+
*/
|
|
102
|
+
approvalUrlUpdate: function approvalUrlUpdate(approvalUrl) {
|
|
103
|
+
this.set('approvalUrl', approvalUrl);
|
|
104
|
+
},
|
|
105
|
+
/**
|
|
106
|
+
* Update whether self has capability to manage interpreters (only host can manage it)
|
|
107
|
+
* @param {boolean} canManageInterpreters
|
|
108
|
+
* @returns {void}
|
|
109
|
+
*/
|
|
110
|
+
updateCanManageInterpreters: function updateCanManageInterpreters(canManageInterpreters) {
|
|
111
|
+
this.set('canManageInterpreters', canManageInterpreters);
|
|
112
|
+
},
|
|
113
|
+
/**
|
|
114
|
+
* Update whether the meeting's host si is enabled or not
|
|
115
|
+
* @param {boolean} hostSIEnabled
|
|
116
|
+
* @returns {void}
|
|
117
|
+
*/
|
|
118
|
+
updateHostSIEnabled: function updateHostSIEnabled(hostSIEnabled) {
|
|
119
|
+
this.set('hostSIEnabled', hostSIEnabled);
|
|
120
|
+
},
|
|
121
|
+
/**
|
|
122
|
+
* Update whether the meeting support SI feature or not from meeting info
|
|
123
|
+
* @param {boolean} meetingSIEnabled
|
|
124
|
+
* @param {boolean} selfIsInterpreter
|
|
125
|
+
* @returns {void}
|
|
126
|
+
*/
|
|
127
|
+
updateMeetingSIEnabled: function updateMeetingSIEnabled(meetingSIEnabled, selfIsInterpreter) {
|
|
128
|
+
this.set('meetingSIEnabled', meetingSIEnabled);
|
|
129
|
+
this.set('selfIsInterpreter', selfIsInterpreter);
|
|
130
|
+
},
|
|
131
|
+
/**
|
|
132
|
+
* Update the interpretation languages channels which user can choose to subscribe
|
|
133
|
+
* @param {Object} interpretation
|
|
134
|
+
* @returns {void}
|
|
135
|
+
*/
|
|
136
|
+
updateInterpretation: function updateInterpretation(interpretation) {
|
|
137
|
+
this.siLanguages.set((interpretation === null || interpretation === void 0 ? void 0 : interpretation.siLanguages) || []);
|
|
138
|
+
},
|
|
139
|
+
/**
|
|
140
|
+
* Update self's interpretation information (self is interpreter)
|
|
141
|
+
* @param {Object} interpretation
|
|
142
|
+
* @param {String} selfParticipantId
|
|
143
|
+
* @returns {void}
|
|
144
|
+
*/
|
|
145
|
+
updateSelfInterpretation: function updateSelfInterpretation(_ref) {
|
|
146
|
+
var interpretation = _ref.interpretation,
|
|
147
|
+
selfParticipantId = _ref.selfParticipantId;
|
|
148
|
+
var _ref2 = interpretation || {},
|
|
149
|
+
originalLanguage = _ref2.originalLanguage,
|
|
150
|
+
sourceLanguage = _ref2.sourceLanguage,
|
|
151
|
+
order = _ref2.order,
|
|
152
|
+
isActive = _ref2.isActive,
|
|
153
|
+
targetLanguage = _ref2.targetLanguage,
|
|
154
|
+
receiveLanguage = _ref2.receiveLanguage;
|
|
155
|
+
this.set({
|
|
156
|
+
originalLanguage: originalLanguage,
|
|
157
|
+
sourceLanguage: sourceLanguage,
|
|
158
|
+
order: order,
|
|
159
|
+
isActive: isActive,
|
|
160
|
+
targetLanguage: targetLanguage,
|
|
161
|
+
receiveLanguage: receiveLanguage
|
|
162
|
+
});
|
|
163
|
+
this.set('selfParticipantId', selfParticipantId);
|
|
164
|
+
},
|
|
165
|
+
/**
|
|
166
|
+
* query interpretation languages
|
|
167
|
+
* @returns {Promise}
|
|
168
|
+
*/
|
|
169
|
+
querySupportLanguages: function querySupportLanguages() {
|
|
170
|
+
var _this2 = this;
|
|
171
|
+
return this.request({
|
|
172
|
+
method: _constants.HTTP_VERBS.GET,
|
|
173
|
+
uri: "".concat(this.locusUrl, "/languages/interpretation")
|
|
174
|
+
}).then(function (result) {
|
|
175
|
+
var _result$body;
|
|
176
|
+
_this2.set('supportLanguages', (_result$body = result.body) === null || _result$body === void 0 ? void 0 : _result$body.siLanguages);
|
|
177
|
+
_this2.trigger(_constants.INTERPRETATION.EVENTS.SUPPORT_LANGUAGES_UPDATE);
|
|
178
|
+
}).catch(function (error) {
|
|
179
|
+
_loggerProxy.default.logger.error('Meeting:interpretation#querySupportLanguages failed', error);
|
|
180
|
+
throw error;
|
|
181
|
+
});
|
|
182
|
+
},
|
|
183
|
+
/**
|
|
184
|
+
* get interpreters of the meeting
|
|
185
|
+
* @returns {Promise}
|
|
186
|
+
*/
|
|
187
|
+
getInterpreters: function getInterpreters() {
|
|
188
|
+
return this.request({
|
|
189
|
+
method: _constants.HTTP_VERBS.GET,
|
|
190
|
+
uri: "".concat(this.locusUrl, "/interpretation/interpreters")
|
|
191
|
+
}).catch(function (error) {
|
|
192
|
+
_loggerProxy.default.logger.error('Meeting:interpretation#getInterpreters failed', error);
|
|
193
|
+
throw error;
|
|
194
|
+
});
|
|
195
|
+
},
|
|
196
|
+
/**
|
|
197
|
+
* update interpreters of the meeting
|
|
198
|
+
* @param {Array} interpreters
|
|
199
|
+
* @returns {Promise}
|
|
200
|
+
*/
|
|
201
|
+
updateInterpreters: function updateInterpreters(interpreters) {
|
|
202
|
+
return this.request({
|
|
203
|
+
method: _constants.HTTP_VERBS.PATCH,
|
|
204
|
+
uri: "".concat(this.locusUrl, "/controls"),
|
|
205
|
+
body: {
|
|
206
|
+
interpretation: {
|
|
207
|
+
interpreters: interpreters
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}).catch(function (error) {
|
|
211
|
+
_loggerProxy.default.logger.error('Meeting:interpretation#updateInterpreters failed', error);
|
|
212
|
+
throw error;
|
|
213
|
+
});
|
|
214
|
+
},
|
|
215
|
+
/**
|
|
216
|
+
* Change direction of interpretation for an interpreter participant
|
|
217
|
+
* @returns {Promise}
|
|
218
|
+
*/
|
|
219
|
+
changeDirection: function changeDirection() {
|
|
220
|
+
if (!this.sourceLanguage || !this.targetLanguage) {
|
|
221
|
+
return _promise.default.reject(new Error('Missing sourceLanguage or targetLanguage'));
|
|
222
|
+
}
|
|
223
|
+
if (!this.selfParticipantId) {
|
|
224
|
+
return _promise.default.reject(new Error('Missing self participant id'));
|
|
225
|
+
}
|
|
226
|
+
return this.request({
|
|
227
|
+
method: _constants.HTTP_VERBS.PATCH,
|
|
228
|
+
uri: "".concat(this.locusUrl, "/participant/").concat(this.selfParticipantId, "/controls"),
|
|
229
|
+
body: {
|
|
230
|
+
interpretation: {
|
|
231
|
+
sourceLanguage: this.targetLanguage,
|
|
232
|
+
targetLanguage: this.sourceLanguage,
|
|
233
|
+
isActive: this.isActive,
|
|
234
|
+
order: this.order
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}).catch(function (error) {
|
|
238
|
+
_loggerProxy.default.logger.error('Meeting:interpretation#changeDirection failed', error);
|
|
239
|
+
throw error;
|
|
240
|
+
});
|
|
241
|
+
},
|
|
242
|
+
/**
|
|
243
|
+
* Sets up a listener for handoff requests from mercury
|
|
244
|
+
* @returns {void}
|
|
245
|
+
*/
|
|
246
|
+
listenToHandoffRequests: function listenToHandoffRequests() {
|
|
247
|
+
var _this3 = this;
|
|
248
|
+
this.listenTo(this.webex.internal.mercury, 'event:locus.approval_request', function (event) {
|
|
249
|
+
var _event$data, _event$data$approval;
|
|
250
|
+
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) {
|
|
251
|
+
var _receivers$;
|
|
252
|
+
var _event$data$approval2 = event.data.approval,
|
|
253
|
+
receivers = _event$data$approval2.receivers,
|
|
254
|
+
initiator = _event$data$approval2.initiator,
|
|
255
|
+
actionType = _event$data$approval2.actionType,
|
|
256
|
+
url = _event$data$approval2.url;
|
|
257
|
+
var receiverId = receivers === null || receivers === void 0 ? void 0 : (_receivers$ = receivers[0]) === null || _receivers$ === void 0 ? void 0 : _receivers$.participantId;
|
|
258
|
+
var isReceiver = !!receiverId && receiverId === _this3.selfParticipantId;
|
|
259
|
+
var senderId = initiator === null || initiator === void 0 ? void 0 : initiator.participantId;
|
|
260
|
+
var isSender = !!senderId && senderId === _this3.selfParticipantId;
|
|
261
|
+
if (!isReceiver && !isSender) {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
_this3.trigger(_constants.INTERPRETATION.EVENTS.HANDOFF_REQUESTS_ARRIVED, {
|
|
265
|
+
actionType: actionType,
|
|
266
|
+
isReceiver: isReceiver,
|
|
267
|
+
isSender: isSender,
|
|
268
|
+
senderId: senderId,
|
|
269
|
+
receiverId: receiverId,
|
|
270
|
+
url: url
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
},
|
|
275
|
+
/**
|
|
276
|
+
* handoff the active interpreter role to another interpreter in same group, only the interpreter is allowed to call this api
|
|
277
|
+
* @param {string} participantId the participant id you want to hand off
|
|
278
|
+
* @returns {Promise}
|
|
279
|
+
*/
|
|
280
|
+
handoffInterpreter: function handoffInterpreter(participantId) {
|
|
281
|
+
if (!participantId) {
|
|
282
|
+
return _promise.default.reject(new Error('Missing target participant id'));
|
|
283
|
+
}
|
|
284
|
+
if (!this.approvalUrl) {
|
|
285
|
+
return _promise.default.reject(new Error('Missing approval url'));
|
|
286
|
+
}
|
|
287
|
+
return this.request({
|
|
288
|
+
method: _constants.HTTP_VERBS.POST,
|
|
289
|
+
uri: this.approvalUrl,
|
|
290
|
+
body: {
|
|
291
|
+
actionType: _constants.INTERPRETATION.ACTION_TYPE.OFFERED,
|
|
292
|
+
resourceType: _constants.INTERPRETATION.RESOURCE_TYPE,
|
|
293
|
+
receivers: [{
|
|
294
|
+
participantId: participantId
|
|
295
|
+
}]
|
|
296
|
+
}
|
|
297
|
+
}).catch(function (error) {
|
|
298
|
+
_loggerProxy.default.logger.error('Meeting:interpretation#handoffInterpreter failed', error);
|
|
299
|
+
throw error;
|
|
300
|
+
});
|
|
301
|
+
},
|
|
302
|
+
/**
|
|
303
|
+
* the in-active interpreter request to hand off the active role to self
|
|
304
|
+
* @returns {Promise}
|
|
305
|
+
*/
|
|
306
|
+
requestHandoff: function requestHandoff() {
|
|
307
|
+
if (!this.approvalUrl) {
|
|
308
|
+
return _promise.default.reject(new Error('Missing approval url'));
|
|
309
|
+
}
|
|
310
|
+
return this.request({
|
|
311
|
+
method: _constants.HTTP_VERBS.POST,
|
|
312
|
+
uri: this.approvalUrl,
|
|
313
|
+
body: {
|
|
314
|
+
actionType: _constants.INTERPRETATION.ACTION_TYPE.REQUESTED,
|
|
315
|
+
resourceType: _constants.INTERPRETATION.RESOURCE_TYPE
|
|
316
|
+
}
|
|
317
|
+
}).catch(function (error) {
|
|
318
|
+
_loggerProxy.default.logger.error('Meeting:interpretation#requestHandoff failed', error);
|
|
319
|
+
throw error;
|
|
320
|
+
});
|
|
321
|
+
},
|
|
322
|
+
/**
|
|
323
|
+
* accept the request of handoff
|
|
324
|
+
* @param {String} url the url get from last approval event
|
|
325
|
+
* @returns {Promise}
|
|
326
|
+
*/
|
|
327
|
+
acceptRequest: function acceptRequest(url) {
|
|
328
|
+
if (!url) {
|
|
329
|
+
return _promise.default.reject(new Error('Missing the url to accept'));
|
|
330
|
+
}
|
|
331
|
+
return this.request({
|
|
332
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
333
|
+
uri: url,
|
|
334
|
+
body: {
|
|
335
|
+
actionType: _constants.INTERPRETATION.ACTION_TYPE.ACCEPTED
|
|
336
|
+
}
|
|
337
|
+
}).catch(function (error) {
|
|
338
|
+
_loggerProxy.default.logger.error('Meeting:interpretation#acceptRequest failed', error);
|
|
339
|
+
throw error;
|
|
340
|
+
});
|
|
341
|
+
},
|
|
342
|
+
/**
|
|
343
|
+
* decline the request of handoff
|
|
344
|
+
* @param {String} url the url get from last approval event
|
|
345
|
+
* @returns {Promise}
|
|
346
|
+
*/
|
|
347
|
+
declineRequest: function declineRequest(url) {
|
|
348
|
+
if (!url) {
|
|
349
|
+
return _promise.default.reject(new Error('Missing the url to decline'));
|
|
350
|
+
}
|
|
351
|
+
return this.request({
|
|
352
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
353
|
+
uri: url,
|
|
354
|
+
body: {
|
|
355
|
+
actionType: _constants.INTERPRETATION.ACTION_TYPE.DECLINED
|
|
356
|
+
}
|
|
357
|
+
}).catch(function (error) {
|
|
358
|
+
_loggerProxy.default.logger.error('Meeting:interpretation#declineRequest failed', error);
|
|
359
|
+
throw error;
|
|
360
|
+
});
|
|
361
|
+
},
|
|
362
|
+
version: "3.0.0-beta.222"
|
|
363
|
+
});
|
|
364
|
+
var _default = SimultaneousInterpretation;
|
|
365
|
+
exports.default = _default;
|
|
366
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SimultaneousInterpretation","WebexPlugin","extend","namespace","MEETINGS","collections","siLanguages","SILanguageCollection","props","locusUrl","approvalUrl","originalLanguage","sourceLanguage","targetLanguage","receiveLanguage","order","isActive","selfParticipantId","canManageInterpreters","supportLanguages","meetingSIEnabled","hostSIEnabled","selfIsInterpreter","derived","shouldQuerySupportLanguages","cache","deps","fn","initialize","listenTo","querySupportLanguages","listenToHandoffRequests","cleanUp","stopListening","locusUrlUpdate","set","approvalUrlUpdate","updateCanManageInterpreters","updateHostSIEnabled","updateMeetingSIEnabled","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 meetingSIEnabled: 'boolean', // appears the meeting support SI feature\n hostSIEnabled: 'boolean', // appears the meeting host/interpreter feature of SI enabled\n selfIsInterpreter: 'boolean', // current user is interpreter or not\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 /**\n * Update whether the meeting support SI feature or not from meeting info\n * @param {boolean} meetingSIEnabled\n * @param {boolean} selfIsInterpreter\n * @returns {void}\n */\n updateMeetingSIEnabled(meetingSIEnabled: boolean, selfIsInterpreter): void {\n this.set('meetingSIEnabled', meetingSIEnabled);\n this.set('selfIsInterpreter', selfIsInterpreter);\n },\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":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _webexCore = require("@webex/webex-core");
|
|
9
|
+
var _constants = require("../constants");
|
|
10
|
+
/*!
|
|
11
|
+
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
var SILanguage = _webexCore.WebexPlugin.extend({
|
|
15
|
+
idAttribute: 'languageName',
|
|
16
|
+
namespace: _constants.MEETINGS,
|
|
17
|
+
props: {
|
|
18
|
+
languageCode: 'number',
|
|
19
|
+
languageName: 'string'
|
|
20
|
+
},
|
|
21
|
+
version: "3.0.0-beta.222"
|
|
22
|
+
});
|
|
23
|
+
var _default = SILanguage;
|
|
24
|
+
exports.default = _default;
|
|
25
|
+
//# sourceMappingURL=siLanguage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SILanguage","WebexPlugin","extend","idAttribute","namespace","MEETINGS","props","languageCode","languageName"],"sources":["siLanguage.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\nimport {MEETINGS} from '../constants';\n\nconst SILanguage = WebexPlugin.extend({\n idAttribute: 'languageName',\n\n namespace: MEETINGS,\n props: {\n languageCode: 'number',\n languageName: 'string',\n },\n});\n\nexport default SILanguage;\n"],"mappings":";;;;;;;AAIA;AACA;AALA;AACA;AACA;;AAKA,IAAMA,UAAU,GAAGC,sBAAW,CAACC,MAAM,CAAC;EACpCC,WAAW,EAAE,cAAc;EAE3BC,SAAS,EAAEC,mBAAQ;EACnBC,KAAK,EAAE;IACLC,YAAY,EAAE,QAAQ;IACtBC,YAAY,EAAE;EAChB,CAAC;EAAA;AACH,CAAC,CAAC;AAAC,eAEYR,UAAU;AAAA"}
|
|
@@ -13,6 +13,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
13
13
|
exports.default = void 0;
|
|
14
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
15
15
|
var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
|
|
16
|
+
var _constants = require("../constants");
|
|
16
17
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
17
18
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
18
19
|
var ControlsUtils = {};
|
|
@@ -59,6 +60,42 @@ ControlsUtils.parse = function (controls) {
|
|
|
59
60
|
if (controls && controls.video) {
|
|
60
61
|
parsedControls.videoEnabled = controls.video.enabled;
|
|
61
62
|
}
|
|
63
|
+
if (controls !== null && controls !== void 0 && controls.muteOnEntry) {
|
|
64
|
+
parsedControls.muteOnEntry = {
|
|
65
|
+
enabled: controls.muteOnEntry.enabled
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
if (controls !== null && controls !== void 0 && controls.shareControl) {
|
|
69
|
+
parsedControls.shareControl = {
|
|
70
|
+
control: controls.shareControl.control
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
if (controls !== null && controls !== void 0 && controls.disallowUnmute) {
|
|
74
|
+
parsedControls.disallowUnmute = {
|
|
75
|
+
enabled: controls.disallowUnmute.enabled
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
if (controls !== null && controls !== void 0 && controls.reactions) {
|
|
79
|
+
parsedControls.reactions = {
|
|
80
|
+
enabled: controls.reactions.enabled,
|
|
81
|
+
showDisplayNameWithReactions: controls.reactions.showDisplayNameWithReactions
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
if (controls !== null && controls !== void 0 && controls.viewTheParticipantList) {
|
|
85
|
+
parsedControls.viewTheParticipantList = {
|
|
86
|
+
enabled: controls.viewTheParticipantList.enabled
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
if (controls !== null && controls !== void 0 && controls.raiseHand) {
|
|
90
|
+
parsedControls.raiseHand = {
|
|
91
|
+
enabled: controls.raiseHand.enabled
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
if (controls !== null && controls !== void 0 && controls.video) {
|
|
95
|
+
parsedControls.video = {
|
|
96
|
+
enabled: controls.video.enabled
|
|
97
|
+
};
|
|
98
|
+
}
|
|
62
99
|
return parsedControls;
|
|
63
100
|
};
|
|
64
101
|
|
|
@@ -69,13 +106,21 @@ ControlsUtils.parse = function (controls) {
|
|
|
69
106
|
* @returns {Object} combination of state plus the changes
|
|
70
107
|
*/
|
|
71
108
|
ControlsUtils.getControls = function (oldControls, newControls) {
|
|
72
|
-
var _previous$record, _previous$record2, _current$record, _previous$record3, _current$record2, _previous$record4, _current$record3, _previous$meetingCont, _current$meetingConta, _previous$transcribe, _current$transcribe, _previous$transcribe2, _current$transcribe2, _newControls$video;
|
|
109
|
+
var _current$muteOnEntry, _previous$muteOnEntry, _current$shareControl, _previous$shareContro, _current$disallowUnmu, _previous$disallowUnm, _current$reactions, _previous$reactions, _current$reactions2, _previous$reactions2, _current$viewTheParti, _previous$viewThePart, _current$raiseHand, _previous$raiseHand, _current$video, _previous$video, _previous$record, _previous$record2, _current$record, _previous$record3, _current$record2, _previous$record4, _current$record3, _previous$meetingCont, _current$meetingConta, _previous$transcribe, _current$transcribe, _previous$transcribe2, _current$transcribe2, _newControls$video;
|
|
73
110
|
var previous = ControlsUtils.parse(oldControls);
|
|
74
111
|
var current = ControlsUtils.parse(newControls);
|
|
75
112
|
return {
|
|
76
113
|
previous: previous,
|
|
77
114
|
current: current,
|
|
78
115
|
updates: {
|
|
116
|
+
hasMuteOnEntryChanged: (current === null || current === void 0 ? void 0 : (_current$muteOnEntry = current.muteOnEntry) === null || _current$muteOnEntry === void 0 ? void 0 : _current$muteOnEntry.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$muteOnEntry = previous.muteOnEntry) === null || _previous$muteOnEntry === void 0 ? void 0 : _previous$muteOnEntry.enabled),
|
|
117
|
+
hasShareControlChanged: (current === null || current === void 0 ? void 0 : (_current$shareControl = current.shareControl) === null || _current$shareControl === void 0 ? void 0 : _current$shareControl.control) !== (previous === null || previous === void 0 ? void 0 : (_previous$shareContro = previous.shareControl) === null || _previous$shareContro === void 0 ? void 0 : _previous$shareContro.control),
|
|
118
|
+
hasDisallowUnmuteChanged: (current === null || current === void 0 ? void 0 : (_current$disallowUnmu = current.disallowUnmute) === null || _current$disallowUnmu === void 0 ? void 0 : _current$disallowUnmu.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$disallowUnm = previous.disallowUnmute) === null || _previous$disallowUnm === void 0 ? void 0 : _previous$disallowUnm.enabled),
|
|
119
|
+
hasReactionsChanged: (current === null || current === void 0 ? void 0 : (_current$reactions = current.reactions) === null || _current$reactions === void 0 ? void 0 : _current$reactions.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$reactions = previous.reactions) === null || _previous$reactions === void 0 ? void 0 : _previous$reactions.enabled),
|
|
120
|
+
hasReactionDisplayNamesChanged: (current === null || current === void 0 ? void 0 : (_current$reactions2 = current.reactions) === null || _current$reactions2 === void 0 ? void 0 : _current$reactions2.showDisplayNameWithReactions) !== (previous === null || previous === void 0 ? void 0 : (_previous$reactions2 = previous.reactions) === null || _previous$reactions2 === void 0 ? void 0 : _previous$reactions2.showDisplayNameWithReactions),
|
|
121
|
+
hasViewTheParticipantListChanged: (current === null || current === void 0 ? void 0 : (_current$viewTheParti = current.viewTheParticipantList) === null || _current$viewTheParti === void 0 ? void 0 : _current$viewTheParti.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$viewThePart = previous.viewTheParticipantList) === null || _previous$viewThePart === void 0 ? void 0 : _previous$viewThePart.enabled),
|
|
122
|
+
hasRaiseHandChanged: (current === null || current === void 0 ? void 0 : (_current$raiseHand = current.raiseHand) === null || _current$raiseHand === void 0 ? void 0 : _current$raiseHand.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$raiseHand = previous.raiseHand) === null || _previous$raiseHand === void 0 ? void 0 : _previous$raiseHand.enabled),
|
|
123
|
+
hasVideoChanged: (current === null || current === void 0 ? void 0 : (_current$video = current.video) === null || _current$video === void 0 ? void 0 : _current$video.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$video = previous.video) === null || _previous$video === void 0 ? void 0 : _previous$video.enabled),
|
|
79
124
|
hasRecordingPausedChanged: (current === null || current === void 0 ? void 0 : current.record) && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : (_previous$record = previous.record) === null || _previous$record === void 0 ? void 0 : _previous$record.paused, current.record.paused) && ((previous === null || previous === void 0 ? void 0 : (_previous$record2 = previous.record) === null || _previous$record2 === void 0 ? void 0 : _previous$record2.recording) || (current === null || current === void 0 ? void 0 : (_current$record = current.record) === null || _current$record === void 0 ? void 0 : _current$record.recording)),
|
|
80
125
|
// see comments directly below
|
|
81
126
|
|
|
@@ -92,6 +137,7 @@ ControlsUtils.getControls = function (oldControls, newControls) {
|
|
|
92
137
|
|
|
93
138
|
hasEntryExitToneChanged: !!(newControls.entryExitTone && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : previous.entryExitTone, current === null || current === void 0 ? void 0 : current.entryExitTone) && (previous !== null && previous !== void 0 && previous.entryExitTone || current !== null && current !== void 0 && current.entryExitTone)),
|
|
94
139
|
hasBreakoutChanged: !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : previous.breakout, current === null || current === void 0 ? void 0 : current.breakout),
|
|
140
|
+
hasInterpretationChanged: !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : previous.interpretation, current === null || current === void 0 ? void 0 : current.interpretation),
|
|
95
141
|
hasVideoEnabledChanged: ((_newControls$video = newControls.video) === null || _newControls$video === void 0 ? void 0 : _newControls$video.enabled) !== undefined && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : previous.videoEnabled, current === null || current === void 0 ? void 0 : current.videoEnabled)
|
|
96
142
|
}
|
|
97
143
|
};
|
|
@@ -123,6 +169,30 @@ ControlsUtils.isNeedReplaceMembers = function (oldControls, controls) {
|
|
|
123
169
|
}
|
|
124
170
|
return oldControls.breakout.groupId !== controls.breakout.groupId || oldControls.breakout.sessionId !== controls.breakout.sessionId;
|
|
125
171
|
};
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* determine the switch status between breakout session and main session.
|
|
175
|
+
* @param {LocusControls} oldControls
|
|
176
|
+
* @param {LocusControls} controls
|
|
177
|
+
* @returns {Object}
|
|
178
|
+
*/
|
|
179
|
+
ControlsUtils.getSessionSwitchStatus = function (oldControls, controls) {
|
|
180
|
+
var status = {
|
|
181
|
+
isReturnToMain: false,
|
|
182
|
+
isJoinToBreakout: false
|
|
183
|
+
};
|
|
184
|
+
// no breakout case
|
|
185
|
+
if (!(oldControls !== null && oldControls !== void 0 && oldControls.breakout) || !(controls !== null && controls !== void 0 && controls.breakout)) {
|
|
186
|
+
return status;
|
|
187
|
+
}
|
|
188
|
+
status.isReturnToMain = oldControls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT && controls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN;
|
|
189
|
+
status.isJoinToBreakout = oldControls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN && controls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT;
|
|
190
|
+
return status;
|
|
191
|
+
};
|
|
192
|
+
ControlsUtils.isMainSessionDTO = function (locus) {
|
|
193
|
+
var _locus$controls, _locus$controls$break;
|
|
194
|
+
return (locus === null || locus === void 0 ? void 0 : (_locus$controls = locus.controls) === null || _locus$controls === void 0 ? void 0 : (_locus$controls$break = _locus$controls.breakout) === null || _locus$controls$break === void 0 ? void 0 : _locus$controls$break.sessionType) !== _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT;
|
|
195
|
+
};
|
|
126
196
|
var _default = ControlsUtils;
|
|
127
197
|
exports.default = _default;
|
|
128
198
|
//# sourceMappingURL=controlsUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ControlsUtils","parse","controls","parsedControls","record","modifiedBy","getId","paused","recording","lastModified","meta","meetingContainer","meetingContainerUrl","transcribe","transcribing","caption","entryExitTone","enabled","mode","video","videoEnabled","getControls","oldControls","newControls","previous","current","updates","hasRecordingPausedChanged","hasRecordingChanged","hasMeetingContainerChanged","hasTranscribeChanged","hasEntryExitToneChanged","hasBreakoutChanged","breakout","hasVideoEnabledChanged","undefined","isNeedReplaceMembers","groupId","sessionId"],"sources":["controlsUtils.ts"],"sourcesContent":["import {isEqual} from 'lodash';\n\nconst ControlsUtils: any = {};\n\n/**\n * Controls\n * @typedef {Object} LocusControls\n * @property {Object} record\n * @property {Boolean} record.recording\n * @property {Object} record.meta\n * @property {String} record.meta.modifiedBy\n */\n\n/**\n * parse the relevant host values that we care about: id\n * @param {LocusControls} controls\n * @returns {Object} parsedObject - parsed host or null if host was undefined\n * @returns {String} parsedObject.recordingId\n */\nControlsUtils.parse = (controls: any) => {\n const parsedControls = {...controls};\n\n if (controls && controls.record) {\n parsedControls.record = {\n modifiedBy: ControlsUtils.getId(controls),\n paused: controls.record.paused ? controls.record.paused : false,\n recording: controls.record.recording,\n lastModified: controls.record.meta.lastModified,\n };\n }\n\n if (controls && controls.meetingContainer) {\n parsedControls.meetingContainer = {\n meetingContainerUrl: controls.meetingContainer.meetingContainerUrl,\n };\n }\n\n if (controls && controls.transcribe) {\n parsedControls.transcribe = {\n transcribing: controls.transcribe.transcribing,\n caption: controls.transcribe.caption,\n };\n }\n\n if (controls && controls.entryExitTone) {\n parsedControls.entryExitTone = controls.entryExitTone.enabled\n ? controls.entryExitTone.mode\n : null;\n }\n\n if (controls && controls.video) {\n parsedControls.videoEnabled = controls.video.enabled;\n }\n\n return parsedControls;\n};\n\n/**\n * parses and returns previous state vs current state and triggers the changes.\n * @param {LocusControls} oldControls previous state\n * @param {LocusControls} newControls current state\n * @returns {Object} combination of state plus the changes\n */\nControlsUtils.getControls = (oldControls: any, newControls: any) => {\n const previous = ControlsUtils.parse(oldControls);\n const current = ControlsUtils.parse(newControls);\n\n return {\n previous,\n current,\n updates: {\n hasRecordingPausedChanged:\n current?.record &&\n !isEqual(previous?.record?.paused, current.record.paused) &&\n (previous?.record?.recording || current?.record?.recording), // see comments directly below\n\n hasRecordingChanged:\n current?.record &&\n !isEqual(previous?.record?.recording, current?.record?.recording) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.record?.recording || current?.record?.recording), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasMeetingContainerChanged:\n current?.meetingContainer &&\n !isEqual(\n previous?.meetingContainer?.meetingContainerUrl,\n current?.meetingContainer?.meetingContainerUrl\n ),\n\n hasTranscribeChanged:\n current?.transcribe &&\n !isEqual(previous?.transcribe?.transcribing, current?.transcribe?.transcribing) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.transcribe?.transcribing || current?.transcribe?.transcribing), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasEntryExitToneChanged: !!(\n newControls.entryExitTone &&\n !isEqual(previous?.entryExitTone, current?.entryExitTone) &&\n (previous?.entryExitTone || current?.entryExitTone)\n ),\n\n hasBreakoutChanged: !isEqual(previous?.breakout, current?.breakout),\n\n hasVideoEnabledChanged:\n newControls.video?.enabled !== undefined &&\n !isEqual(previous?.videoEnabled, current?.videoEnabled),\n },\n };\n};\n\n/**\n * Extract the id from the record controls object\n * @param {LocusControls} controls\n * @returns {String|null}\n */\nControlsUtils.getId = (controls: any) => {\n if (controls.record.meta) {\n return controls.record.meta.modifiedBy;\n }\n\n return null;\n};\n\n/**\n * check whether to replace the meeting's members or not.\n * For case joined breakout session, need replace meeting's members\n * @param {LocusControls} oldControls\n * @param {LocusControls} controls\n * @returns {Boolean}\n */\nControlsUtils.isNeedReplaceMembers = (oldControls: any, controls: any) => {\n // no breakout case\n if (!oldControls?.breakout || !controls?.breakout) {\n return false;\n }\n\n return (\n oldControls.breakout.groupId !== controls.breakout.groupId ||\n oldControls.breakout.sessionId !== controls.breakout.sessionId\n );\n};\n\nexport default ControlsUtils;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["ControlsUtils","parse","controls","parsedControls","record","modifiedBy","getId","paused","recording","lastModified","meta","meetingContainer","meetingContainerUrl","transcribe","transcribing","caption","entryExitTone","enabled","mode","video","videoEnabled","muteOnEntry","shareControl","control","disallowUnmute","reactions","showDisplayNameWithReactions","viewTheParticipantList","raiseHand","getControls","oldControls","newControls","previous","current","updates","hasMuteOnEntryChanged","hasShareControlChanged","hasDisallowUnmuteChanged","hasReactionsChanged","hasReactionDisplayNamesChanged","hasViewTheParticipantListChanged","hasRaiseHandChanged","hasVideoChanged","hasRecordingPausedChanged","hasRecordingChanged","hasMeetingContainerChanged","hasTranscribeChanged","hasEntryExitToneChanged","hasBreakoutChanged","breakout","hasInterpretationChanged","interpretation","hasVideoEnabledChanged","undefined","isNeedReplaceMembers","groupId","sessionId","getSessionSwitchStatus","status","isReturnToMain","isJoinToBreakout","sessionType","BREAKOUTS","SESSION_TYPES","BREAKOUT","MAIN","isMainSessionDTO","locus"],"sources":["controlsUtils.ts"],"sourcesContent":["import {isEqual} from 'lodash';\nimport {BREAKOUTS} from '../constants';\n\nconst ControlsUtils: any = {};\n\n/**\n * Controls\n * @typedef {Object} LocusControls\n * @property {Object} record\n * @property {Boolean} record.recording\n * @property {Object} record.meta\n * @property {String} record.meta.modifiedBy\n */\n\n/**\n * parse the relevant host values that we care about: id\n * @param {LocusControls} controls\n * @returns {Object} parsedObject - parsed host or null if host was undefined\n * @returns {String} parsedObject.recordingId\n */\nControlsUtils.parse = (controls: any) => {\n const parsedControls = {...controls};\n\n if (controls && controls.record) {\n parsedControls.record = {\n modifiedBy: ControlsUtils.getId(controls),\n paused: controls.record.paused ? controls.record.paused : false,\n recording: controls.record.recording,\n lastModified: controls.record.meta.lastModified,\n };\n }\n\n if (controls && controls.meetingContainer) {\n parsedControls.meetingContainer = {\n meetingContainerUrl: controls.meetingContainer.meetingContainerUrl,\n };\n }\n\n if (controls && controls.transcribe) {\n parsedControls.transcribe = {\n transcribing: controls.transcribe.transcribing,\n caption: controls.transcribe.caption,\n };\n }\n\n if (controls && controls.entryExitTone) {\n parsedControls.entryExitTone = controls.entryExitTone.enabled\n ? controls.entryExitTone.mode\n : null;\n }\n\n if (controls && controls.video) {\n parsedControls.videoEnabled = controls.video.enabled;\n }\n\n if (controls?.muteOnEntry) {\n parsedControls.muteOnEntry = {enabled: controls.muteOnEntry.enabled};\n }\n\n if (controls?.shareControl) {\n parsedControls.shareControl = {control: controls.shareControl.control};\n }\n\n if (controls?.disallowUnmute) {\n parsedControls.disallowUnmute = {enabled: controls.disallowUnmute.enabled};\n }\n\n if (controls?.reactions) {\n parsedControls.reactions = {\n enabled: controls.reactions.enabled,\n showDisplayNameWithReactions: controls.reactions.showDisplayNameWithReactions,\n };\n }\n\n if (controls?.viewTheParticipantList) {\n parsedControls.viewTheParticipantList = {enabled: controls.viewTheParticipantList.enabled};\n }\n\n if (controls?.raiseHand) {\n parsedControls.raiseHand = {enabled: controls.raiseHand.enabled};\n }\n\n if (controls?.video) {\n parsedControls.video = {enabled: controls.video.enabled};\n }\n\n return parsedControls;\n};\n\n/**\n * parses and returns previous state vs current state and triggers the changes.\n * @param {LocusControls} oldControls previous state\n * @param {LocusControls} newControls current state\n * @returns {Object} combination of state plus the changes\n */\nControlsUtils.getControls = (oldControls: any, newControls: any) => {\n const previous = ControlsUtils.parse(oldControls);\n const current = ControlsUtils.parse(newControls);\n\n return {\n previous,\n current,\n updates: {\n hasMuteOnEntryChanged: current?.muteOnEntry?.enabled !== previous?.muteOnEntry?.enabled,\n\n hasShareControlChanged: current?.shareControl?.control !== previous?.shareControl?.control,\n\n hasDisallowUnmuteChanged:\n current?.disallowUnmute?.enabled !== previous?.disallowUnmute?.enabled,\n\n hasReactionsChanged: current?.reactions?.enabled !== previous?.reactions?.enabled,\n\n hasReactionDisplayNamesChanged:\n current?.reactions?.showDisplayNameWithReactions !==\n previous?.reactions?.showDisplayNameWithReactions,\n\n hasViewTheParticipantListChanged:\n current?.viewTheParticipantList?.enabled !== previous?.viewTheParticipantList?.enabled,\n\n hasRaiseHandChanged: current?.raiseHand?.enabled !== previous?.raiseHand?.enabled,\n\n hasVideoChanged: current?.video?.enabled !== previous?.video?.enabled,\n\n hasRecordingPausedChanged:\n current?.record &&\n !isEqual(previous?.record?.paused, current.record.paused) &&\n (previous?.record?.recording || current?.record?.recording), // see comments directly below\n\n hasRecordingChanged:\n current?.record &&\n !isEqual(previous?.record?.recording, current?.record?.recording) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.record?.recording || current?.record?.recording), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasMeetingContainerChanged:\n current?.meetingContainer &&\n !isEqual(\n previous?.meetingContainer?.meetingContainerUrl,\n current?.meetingContainer?.meetingContainerUrl\n ),\n\n hasTranscribeChanged:\n current?.transcribe &&\n !isEqual(previous?.transcribe?.transcribing, current?.transcribe?.transcribing) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.transcribe?.transcribing || current?.transcribe?.transcribing), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasEntryExitToneChanged: !!(\n newControls.entryExitTone &&\n !isEqual(previous?.entryExitTone, current?.entryExitTone) &&\n (previous?.entryExitTone || current?.entryExitTone)\n ),\n\n hasBreakoutChanged: !isEqual(previous?.breakout, current?.breakout),\n\n hasInterpretationChanged: !isEqual(previous?.interpretation, current?.interpretation),\n\n hasVideoEnabledChanged:\n newControls.video?.enabled !== undefined &&\n !isEqual(previous?.videoEnabled, current?.videoEnabled),\n },\n };\n};\n\n/**\n * Extract the id from the record controls object\n * @param {LocusControls} controls\n * @returns {String|null}\n */\nControlsUtils.getId = (controls: any) => {\n if (controls.record.meta) {\n return controls.record.meta.modifiedBy;\n }\n\n return null;\n};\n\n/**\n * check whether to replace the meeting's members or not.\n * For case joined breakout session, need replace meeting's members\n * @param {LocusControls} oldControls\n * @param {LocusControls} controls\n * @returns {Boolean}\n */\nControlsUtils.isNeedReplaceMembers = (oldControls: any, controls: any) => {\n // no breakout case\n if (!oldControls?.breakout || !controls?.breakout) {\n return false;\n }\n\n return (\n oldControls.breakout.groupId !== controls.breakout.groupId ||\n oldControls.breakout.sessionId !== controls.breakout.sessionId\n );\n};\n\n/**\n * determine the switch status between breakout session and main session.\n * @param {LocusControls} oldControls\n * @param {LocusControls} controls\n * @returns {Object}\n */\nControlsUtils.getSessionSwitchStatus = (oldControls: any, controls: any) => {\n const status = {isReturnToMain: false, isJoinToBreakout: false};\n // no breakout case\n if (!oldControls?.breakout || !controls?.breakout) {\n return status;\n }\n\n status.isReturnToMain =\n oldControls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n status.isJoinToBreakout =\n oldControls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN &&\n controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT;\n\n return status;\n};\n\nControlsUtils.isMainSessionDTO = (locus: any) => {\n return locus?.controls?.breakout?.sessionType !== BREAKOUTS.SESSION_TYPES.BREAKOUT;\n};\n\nexport default ControlsUtils;\n"],"mappings":"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"}
|