@webex/plugin-meetings 3.6.0 → 3.7.0
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 +2 -1
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/common/errors/webinar-registration-error.js +50 -0
- package/dist/common/errors/webinar-registration-error.js.map +1 -0
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +31 -2
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +1 -0
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +10 -3
- 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 +12 -0
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +28 -4
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +2 -1
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/index.js +61 -3
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/parser.js +5 -1
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +19 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +664 -490
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +5 -2
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/util.js +3 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +68 -17
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +25 -1
- package/dist/meetings/index.js.map +1 -1
- package/dist/members/index.js +3 -2
- package/dist/members/index.js.map +1 -1
- package/dist/members/util.js +9 -5
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +2 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/remoteMedia.js +4 -0
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +19 -13
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/reachability/index.js +3 -3
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +2 -1
- package/dist/reachability/request.js.map +1 -1
- package/dist/roap/request.js +1 -1
- package/dist/roap/request.js.map +1 -1
- package/dist/{common/errors/parameter.d.ts → types/common/errors/webinar-registration-error.d.ts} +4 -5
- package/dist/types/config.d.ts +2 -0
- package/dist/types/constants.d.ts +25 -0
- package/dist/types/controls-options-manager/enums.d.ts +2 -1
- package/dist/types/controls-options-manager/index.d.ts +2 -1
- package/dist/types/controls-options-manager/types.d.ts +2 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/locus-info/index.d.ts +9 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +18 -0
- package/dist/types/meeting/index.d.ts +12 -1
- package/dist/types/meeting/muteState.d.ts +2 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +23 -0
- package/dist/types/meetings/index.d.ts +9 -0
- package/dist/types/members/index.d.ts +2 -1
- package/dist/types/members/util.d.ts +3 -1
- package/dist/types/metrics/constants.d.ts +1 -0
- package/dist/types/multistream/remoteMedia.d.ts +1 -0
- package/dist/webinar/index.js +32 -19
- package/dist/webinar/index.js.map +1 -1
- package/package.json +22 -22
- package/src/common/errors/webinar-registration-error.ts +27 -0
- package/src/config.ts +2 -0
- package/src/constants.ts +31 -0
- package/src/controls-options-manager/enums.ts +1 -0
- package/src/controls-options-manager/index.ts +19 -2
- package/src/controls-options-manager/types.ts +2 -0
- package/src/controls-options-manager/util.ts +12 -0
- package/src/index.ts +2 -0
- package/src/locus-info/controlsUtils.ts +46 -2
- package/src/locus-info/fullState.ts +1 -0
- package/src/locus-info/index.ts +60 -0
- package/src/locus-info/parser.ts +8 -1
- package/src/meeting/in-meeting-actions.ts +37 -0
- package/src/meeting/index.ts +154 -20
- package/src/meeting/muteState.ts +6 -2
- package/src/meeting/util.ts +6 -2
- package/src/meeting-info/meeting-info-v2.ts +51 -0
- package/src/meetings/index.ts +68 -40
- package/src/members/index.ts +4 -2
- package/src/members/util.ts +3 -1
- package/src/metrics/constants.ts +1 -0
- package/src/multistream/remoteMedia.ts +5 -0
- package/src/reachability/index.ts +3 -3
- package/src/reachability/request.ts +1 -0
- package/src/roap/request.ts +3 -1
- package/src/webinar/index.ts +31 -17
- package/test/unit/spec/controls-options-manager/index.js +56 -32
- package/test/unit/spec/controls-options-manager/util.js +44 -0
- package/test/unit/spec/locus-info/controlsUtils.js +80 -4
- package/test/unit/spec/locus-info/index.js +88 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +18 -0
- package/test/unit/spec/meeting/index.js +263 -64
- package/test/unit/spec/meeting/muteState.js +8 -4
- package/test/unit/spec/meeting/utils.js +16 -1
- package/test/unit/spec/meeting-info/meetinginfov2.js +37 -0
- package/test/unit/spec/meetings/index.js +32 -1
- package/test/unit/spec/members/index.js +25 -2
- package/test/unit/spec/members/request.js +37 -3
- package/test/unit/spec/members/utils.js +15 -1
- package/test/unit/spec/multistream/remoteMedia.ts +16 -2
- package/test/unit/spec/reachability/index.ts +1 -1
- package/test/unit/spec/reachability/request.js +13 -8
- package/test/unit/spec/webinar/index.ts +82 -16
- package/dist/annotation/annotation.types.d.ts +0 -42
- package/dist/annotation/constants.d.ts +0 -31
- package/dist/annotation/index.d.ts +0 -117
- package/dist/breakouts/breakout.d.ts +0 -8
- package/dist/breakouts/collection.d.ts +0 -5
- package/dist/breakouts/edit-lock-error.d.ts +0 -15
- package/dist/breakouts/events.d.ts +0 -8
- package/dist/breakouts/index.d.ts +0 -5
- package/dist/breakouts/request.d.ts +0 -22
- package/dist/breakouts/utils.d.ts +0 -15
- package/dist/common/browser-detection.d.ts +0 -9
- package/dist/common/collection.d.ts +0 -48
- package/dist/common/config.d.ts +0 -2
- package/dist/common/errors/captcha-error.d.ts +0 -15
- package/dist/common/errors/intent-to-join.d.ts +0 -16
- package/dist/common/errors/join-meeting.d.ts +0 -17
- package/dist/common/errors/media.d.ts +0 -15
- package/dist/common/errors/no-meeting-info.d.ts +0 -14
- package/dist/common/errors/password-error.d.ts +0 -15
- package/dist/common/errors/permission.d.ts +0 -14
- package/dist/common/errors/reclaim-host-role-error.js +0 -149
- package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
- package/dist/common/errors/reclaim-host-role-errors.d.ts +0 -60
- package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
- package/dist/common/errors/reconnection-in-progress.js +0 -33
- package/dist/common/errors/reconnection-in-progress.js.map +0 -1
- package/dist/common/errors/reconnection.d.ts +0 -15
- package/dist/common/errors/stats.d.ts +0 -15
- package/dist/common/errors/webex-errors.d.ts +0 -93
- package/dist/common/errors/webex-meetings-error.d.ts +0 -20
- package/dist/common/events/events-scope.d.ts +0 -17
- package/dist/common/events/events.d.ts +0 -12
- package/dist/common/events/trigger-proxy.d.ts +0 -2
- package/dist/common/events/util.d.ts +0 -2
- package/dist/common/logs/logger-config.d.ts +0 -2
- package/dist/common/logs/logger-proxy.d.ts +0 -2
- package/dist/common/logs/request.d.ts +0 -36
- package/dist/common/queue.d.ts +0 -34
- package/dist/config.d.ts +0 -72
- package/dist/constants.d.ts +0 -1088
- package/dist/controls-options-manager/constants.d.ts +0 -4
- package/dist/controls-options-manager/enums.d.ts +0 -15
- package/dist/controls-options-manager/index.d.ts +0 -136
- package/dist/controls-options-manager/types.d.ts +0 -43
- package/dist/controls-options-manager/util.d.ts +0 -1
- package/dist/index.d.ts +0 -7
- package/dist/interceptors/index.d.ts +0 -2
- package/dist/interceptors/locusRetry.d.ts +0 -27
- package/dist/interpretation/collection.d.ts +0 -5
- package/dist/interpretation/index.d.ts +0 -5
- package/dist/interpretation/siLanguage.d.ts +0 -5
- package/dist/locus-info/controlsUtils.d.ts +0 -2
- package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
- package/dist/locus-info/fullState.d.ts +0 -2
- package/dist/locus-info/hostUtils.d.ts +0 -2
- package/dist/locus-info/index.d.ts +0 -322
- package/dist/locus-info/infoUtils.d.ts +0 -2
- package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
- package/dist/locus-info/parser.d.ts +0 -272
- package/dist/locus-info/selfUtils.d.ts +0 -2
- package/dist/media/index.d.ts +0 -34
- package/dist/media/properties.d.ts +0 -93
- package/dist/media/util.d.ts +0 -2
- package/dist/mediaQualityMetrics/config.d.ts +0 -241
- package/dist/mediaQualityMetrics/config.js +0 -502
- package/dist/mediaQualityMetrics/config.js.map +0 -1
- package/dist/meeting/effectsState.js +0 -260
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/meeting/in-meeting-actions.d.ts +0 -167
- package/dist/meeting/index.d.ts +0 -1825
- package/dist/meeting/locusMediaRequest.d.ts +0 -74
- package/dist/meeting/muteState.d.ts +0 -178
- package/dist/meeting/request.d.ts +0 -295
- package/dist/meeting/request.type.d.ts +0 -11
- package/dist/meeting/state.d.ts +0 -9
- package/dist/meeting/util.d.ts +0 -119
- package/dist/meeting/voicea-meeting.d.ts +0 -16
- package/dist/meeting-info/collection.d.ts +0 -20
- package/dist/meeting-info/index.d.ts +0 -69
- package/dist/meeting-info/meeting-info-v2.d.ts +0 -123
- package/dist/meeting-info/request.d.ts +0 -22
- package/dist/meeting-info/util.d.ts +0 -2
- package/dist/meeting-info/utilv2.d.ts +0 -2
- package/dist/meetings/collection.d.ts +0 -40
- package/dist/meetings/index.d.ts +0 -390
- package/dist/meetings/meetings.types.d.ts +0 -4
- package/dist/meetings/request.d.ts +0 -27
- package/dist/meetings/util.d.ts +0 -18
- package/dist/member/index.d.ts +0 -160
- package/dist/member/member.types.js +0 -17
- package/dist/member/member.types.js.map +0 -1
- package/dist/member/types.d.ts +0 -32
- package/dist/member/util.d.ts +0 -2
- package/dist/members/collection.d.ts +0 -29
- package/dist/members/index.d.ts +0 -353
- package/dist/members/request.d.ts +0 -114
- package/dist/members/types.d.ts +0 -25
- package/dist/members/util.d.ts +0 -215
- package/dist/metrics/config.js +0 -276
- package/dist/metrics/config.js.map +0 -1
- package/dist/metrics/constants.d.ts +0 -70
- package/dist/metrics/index.d.ts +0 -45
- package/dist/multistream/mediaRequestManager.d.ts +0 -119
- package/dist/multistream/receiveSlot.d.ts +0 -68
- package/dist/multistream/receiveSlotManager.d.ts +0 -56
- package/dist/multistream/remoteMedia.d.ts +0 -72
- package/dist/multistream/remoteMediaGroup.d.ts +0 -49
- package/dist/multistream/remoteMediaManager.d.ts +0 -300
- package/dist/multistream/sendSlotManager.d.ts +0 -69
- package/dist/networkQualityMonitor/index.d.ts +0 -70
- package/dist/peer-connection-manager/index.js +0 -671
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.js +0 -109
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/personal-meeting-room/index.d.ts +0 -47
- package/dist/personal-meeting-room/request.d.ts +0 -14
- package/dist/personal-meeting-room/util.d.ts +0 -2
- package/dist/reachability/clusterReachability.d.ts +0 -109
- package/dist/reachability/index.d.ts +0 -105
- package/dist/reachability/request.d.ts +0 -39
- package/dist/reachability/util.d.ts +0 -8
- package/dist/reactions/constants.d.ts +0 -3
- package/dist/reactions/reactions.d.ts +0 -4
- package/dist/reactions/reactions.type.d.ts +0 -52
- package/dist/reconnection-manager/index.d.ts +0 -136
- package/dist/recording-controller/enums.d.ts +0 -7
- package/dist/recording-controller/index.d.ts +0 -207
- package/dist/recording-controller/util.d.ts +0 -14
- package/dist/roap/collection.js +0 -62
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.js +0 -275
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/index.d.ts +0 -86
- package/dist/roap/request.d.ts +0 -39
- package/dist/roap/state.js +0 -126
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/turnDiscovery.d.ts +0 -155
- package/dist/roap/util.js +0 -75
- package/dist/roap/util.js.map +0 -1
- package/dist/rtcMetrics/constants.d.ts +0 -4
- package/dist/rtcMetrics/index.d.ts +0 -61
- package/dist/statsAnalyzer/global.d.ts +0 -36
- package/dist/statsAnalyzer/global.js +0 -126
- package/dist/statsAnalyzer/global.js.map +0 -1
- package/dist/statsAnalyzer/index.d.ts +0 -217
- package/dist/statsAnalyzer/index.js +0 -1013
- package/dist/statsAnalyzer/index.js.map +0 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +0 -48
- package/dist/statsAnalyzer/mqaUtil.js +0 -179
- package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
- package/dist/transcription/index.d.ts +0 -64
- package/dist/types/common/errors/reconnection-in-progress.d.ts +0 -9
- package/dist/types/mediaQualityMetrics/config.d.ts +0 -241
- package/dist/types/statsAnalyzer/global.d.ts +0 -36
- package/dist/types/statsAnalyzer/index.d.ts +0 -217
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
- package/dist/webinar/collection.d.ts +0 -16
- package/dist/webinar/index.d.ts +0 -5
|
@@ -177,7 +177,12 @@ export default class ControlsOptionsManager {
|
|
|
177
177
|
* @memberof ControlsOptionsManager
|
|
178
178
|
* @returns {Promise}
|
|
179
179
|
*/
|
|
180
|
-
private setControls(setting: {
|
|
180
|
+
private setControls(setting: {
|
|
181
|
+
[Setting.muted]?: boolean;
|
|
182
|
+
[Setting.disallowUnmute]?: boolean;
|
|
183
|
+
[Setting.muteOnEntry]?: boolean;
|
|
184
|
+
[Setting.roles]?: Array<string>;
|
|
185
|
+
}): Promise<any> {
|
|
181
186
|
LoggerProxy.logger.log(
|
|
182
187
|
`ControlsOptionsManager:index#setControls --> ${JSON.stringify(setting)}`
|
|
183
188
|
);
|
|
@@ -190,6 +195,7 @@ export default class ControlsOptionsManager {
|
|
|
190
195
|
Object.entries(setting).forEach(([key, value]) => {
|
|
191
196
|
if (
|
|
192
197
|
!shouldSkipCheckToMergeBody &&
|
|
198
|
+
value !== undefined &&
|
|
193
199
|
!Util?.[`${value ? CAN_SET : CAN_UNSET}${key}`](this.displayHints)
|
|
194
200
|
) {
|
|
195
201
|
error = new PermissionError(`${key} [${value}] not allowed, due to moderator property.`);
|
|
@@ -219,6 +225,14 @@ export default class ControlsOptionsManager {
|
|
|
219
225
|
}
|
|
220
226
|
break;
|
|
221
227
|
|
|
228
|
+
case Setting.roles:
|
|
229
|
+
if (Array.isArray(value)) {
|
|
230
|
+
body.audio = body.audio
|
|
231
|
+
? {...body.audio, [camelCase(key)]: value}
|
|
232
|
+
: {[camelCase(key)]: value};
|
|
233
|
+
}
|
|
234
|
+
break;
|
|
235
|
+
|
|
222
236
|
default:
|
|
223
237
|
error = new PermissionError(`${key} [${value}] not allowed, due to moderator property.`);
|
|
224
238
|
}
|
|
@@ -261,18 +275,21 @@ export default class ControlsOptionsManager {
|
|
|
261
275
|
* @param {boolean} mutedEnabled
|
|
262
276
|
* @param {boolean} disallowUnmuteEnabled
|
|
263
277
|
* @param {boolean} muteOnEntryEnabled
|
|
278
|
+
* @param {array} roles which should be muted
|
|
264
279
|
* @memberof ControlsOptionsManager
|
|
265
280
|
* @returns {Promise}
|
|
266
281
|
*/
|
|
267
282
|
public setMuteAll(
|
|
268
283
|
mutedEnabled: boolean,
|
|
269
284
|
disallowUnmuteEnabled: boolean,
|
|
270
|
-
muteOnEntryEnabled: boolean
|
|
285
|
+
muteOnEntryEnabled: boolean,
|
|
286
|
+
roles: Array<string>
|
|
271
287
|
): Promise<any> {
|
|
272
288
|
return this.setControls({
|
|
273
289
|
[Setting.muted]: mutedEnabled,
|
|
274
290
|
[Setting.disallowUnmute]: disallowUnmuteEnabled,
|
|
275
291
|
[Setting.muteOnEntry]: muteOnEntryEnabled,
|
|
292
|
+
[Setting.roles]: roles,
|
|
276
293
|
});
|
|
277
294
|
}
|
|
278
295
|
}
|
|
@@ -217,6 +217,18 @@ class Utils {
|
|
|
217
217
|
if (control.properties.enabled === false) {
|
|
218
218
|
requiredHints.push(DISPLAY_HINTS.DISABLE_VIEW_THE_PARTICIPANT_LIST);
|
|
219
219
|
}
|
|
220
|
+
if (control.properties.panelistEnabled === true) {
|
|
221
|
+
requiredHints.push(DISPLAY_HINTS.ENABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST);
|
|
222
|
+
}
|
|
223
|
+
if (control.properties.panelistEnabled === false) {
|
|
224
|
+
requiredHints.push(DISPLAY_HINTS.DISABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST);
|
|
225
|
+
}
|
|
226
|
+
if (control.properties.attendeeCount === true) {
|
|
227
|
+
requiredHints.push(DISPLAY_HINTS.ENABLE_SHOW_ATTENDEE_COUNT);
|
|
228
|
+
}
|
|
229
|
+
if (control.properties.attendeeCount === false) {
|
|
230
|
+
requiredHints.push(DISPLAY_HINTS.DISABLE_SHOW_ATTENDEE_COUNT);
|
|
231
|
+
}
|
|
220
232
|
|
|
221
233
|
return Utils.hasHints({requiredHints, displayHints});
|
|
222
234
|
}
|
package/src/index.ts
CHANGED
|
@@ -8,6 +8,7 @@ import CaptchaError from './common/errors/captcha-error';
|
|
|
8
8
|
import IntentToJoinError from './common/errors/intent-to-join';
|
|
9
9
|
import PasswordError from './common/errors/password-error';
|
|
10
10
|
import PermissionError from './common/errors/permission';
|
|
11
|
+
import WebinarRegistrationError from './common/errors/webinar-registration-error';
|
|
11
12
|
import {
|
|
12
13
|
ReclaimHostEmptyWrongKeyError,
|
|
13
14
|
ReclaimHostIsHostAlreadyError,
|
|
@@ -68,6 +69,7 @@ export {
|
|
|
68
69
|
ReclaimHostEmptyWrongKeyError,
|
|
69
70
|
Meeting,
|
|
70
71
|
MeetingInfoUtil,
|
|
72
|
+
WebinarRegistrationError,
|
|
71
73
|
};
|
|
72
74
|
|
|
73
75
|
export {RemoteMedia} from './multistream/remoteMedia';
|
|
@@ -79,7 +79,11 @@ ControlsUtils.parse = (controls: any) => {
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
if (controls?.viewTheParticipantList) {
|
|
82
|
-
parsedControls.viewTheParticipantList = {
|
|
82
|
+
parsedControls.viewTheParticipantList = {
|
|
83
|
+
enabled: controls.viewTheParticipantList?.enabled ?? false,
|
|
84
|
+
panelistEnabled: controls.viewTheParticipantList?.panelistEnabled ?? false,
|
|
85
|
+
attendeeCount: controls.viewTheParticipantList?.attendeeCount ?? 0,
|
|
86
|
+
};
|
|
83
87
|
}
|
|
84
88
|
|
|
85
89
|
if (controls?.raiseHand) {
|
|
@@ -90,6 +94,23 @@ ControlsUtils.parse = (controls: any) => {
|
|
|
90
94
|
parsedControls.video = {enabled: controls.video.enabled};
|
|
91
95
|
}
|
|
92
96
|
|
|
97
|
+
if (controls?.webcastControl) {
|
|
98
|
+
parsedControls.webcastControl = {streaming: controls.webcastControl.streaming};
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (controls?.meetingFull) {
|
|
102
|
+
parsedControls.meetingFull = {
|
|
103
|
+
meetingFull: controls.meetingFull?.meetingFull ?? false,
|
|
104
|
+
meetingPanelistFull: controls.meetingFull?.meetingPanelistFull ?? false,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (controls?.practiceSession) {
|
|
109
|
+
parsedControls.practiceSession = {
|
|
110
|
+
enabled: controls.practiceSession.enabled,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
|
|
93
114
|
return parsedControls;
|
|
94
115
|
};
|
|
95
116
|
|
|
@@ -121,7 +142,11 @@ ControlsUtils.getControls = (oldControls: any, newControls: any) => {
|
|
|
121
142
|
previous?.reactions?.showDisplayNameWithReactions,
|
|
122
143
|
|
|
123
144
|
hasViewTheParticipantListChanged:
|
|
124
|
-
current?.viewTheParticipantList?.enabled !== previous?.viewTheParticipantList?.enabled
|
|
145
|
+
current?.viewTheParticipantList?.enabled !== previous?.viewTheParticipantList?.enabled ||
|
|
146
|
+
current?.viewTheParticipantList?.panelistEnabled !==
|
|
147
|
+
previous?.viewTheParticipantList?.panelistEnabled ||
|
|
148
|
+
current?.viewTheParticipantList?.attendeeCount !==
|
|
149
|
+
previous?.viewTheParticipantList?.attendeeCount,
|
|
125
150
|
|
|
126
151
|
hasRaiseHandChanged: current?.raiseHand?.enabled !== previous?.raiseHand?.enabled,
|
|
127
152
|
|
|
@@ -167,6 +192,25 @@ ControlsUtils.getControls = (oldControls: any, newControls: any) => {
|
|
|
167
192
|
hasVideoEnabledChanged:
|
|
168
193
|
newControls.video?.enabled !== undefined &&
|
|
169
194
|
!isEqual(previous?.videoEnabled, current?.videoEnabled),
|
|
195
|
+
|
|
196
|
+
hasWebcastChanged: !isEqual(
|
|
197
|
+
previous?.webcastControl?.streaming,
|
|
198
|
+
current?.webcastControl?.streaming
|
|
199
|
+
),
|
|
200
|
+
|
|
201
|
+
hasMeetingFullChanged:
|
|
202
|
+
!isEqual(previous?.meetingFull?.meetingFull, current?.meetingFull?.meetingFull) ||
|
|
203
|
+
!isEqual(
|
|
204
|
+
previous?.meetingFull?.meetingPanelistFull,
|
|
205
|
+
current?.meetingFull?.meetingPanelistFull
|
|
206
|
+
),
|
|
207
|
+
|
|
208
|
+
hasPracticeSessionEnabledChanged: !isEqual(
|
|
209
|
+
previous?.practiceSession?.enabled,
|
|
210
|
+
current?.practiceSession?.enabled
|
|
211
|
+
),
|
|
212
|
+
|
|
213
|
+
hasStageViewChanged: !isEqual(previous?.videoLayout, current?.videoLayout),
|
|
170
214
|
},
|
|
171
215
|
};
|
|
172
216
|
};
|
|
@@ -6,6 +6,7 @@ FullState.parse = (fullState) => ({
|
|
|
6
6
|
type: fullState.type || FULL_STATE.UNKNOWN,
|
|
7
7
|
meetingState: fullState.state,
|
|
8
8
|
locked: fullState.locked,
|
|
9
|
+
attendeeCount: typeof fullState.attendeeCount === 'number' ? fullState.attendeeCount : 0,
|
|
9
10
|
});
|
|
10
11
|
|
|
11
12
|
FullState.getFullState = (oldFullState, newFullState) => {
|
package/src/locus-info/index.ts
CHANGED
|
@@ -64,6 +64,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
64
64
|
replace: any;
|
|
65
65
|
url: any;
|
|
66
66
|
services: any;
|
|
67
|
+
resources: any;
|
|
67
68
|
mainSessionLocusCache: any;
|
|
68
69
|
/**
|
|
69
70
|
* Constructor
|
|
@@ -263,6 +264,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
263
264
|
this.updateHostInfo(locus.host);
|
|
264
265
|
this.updateMediaShares(locus.mediaShares);
|
|
265
266
|
this.updateServices(locus.links?.services);
|
|
267
|
+
this.updateResources(locus.links?.resources);
|
|
266
268
|
}
|
|
267
269
|
|
|
268
270
|
/**
|
|
@@ -452,6 +454,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
452
454
|
this.updateIdentifiers(locus.identities);
|
|
453
455
|
this.updateEmbeddedApps(locus.embeddedApps);
|
|
454
456
|
this.updateServices(locus.links?.services);
|
|
457
|
+
this.updateResources(locus.links?.resources);
|
|
455
458
|
this.compareAndUpdate();
|
|
456
459
|
// update which required to compare different objects from locus
|
|
457
460
|
}
|
|
@@ -805,6 +808,10 @@ export default class LocusInfo extends EventsScope {
|
|
|
805
808
|
hasRaiseHandChanged,
|
|
806
809
|
hasVideoChanged,
|
|
807
810
|
hasInterpretationChanged,
|
|
811
|
+
hasWebcastChanged,
|
|
812
|
+
hasMeetingFullChanged,
|
|
813
|
+
hasPracticeSessionEnabledChanged,
|
|
814
|
+
hasStageViewChanged,
|
|
808
815
|
},
|
|
809
816
|
current,
|
|
810
817
|
} = ControlsUtils.getControls(this.controls, controls);
|
|
@@ -1008,6 +1015,38 @@ export default class LocusInfo extends EventsScope {
|
|
|
1008
1015
|
);
|
|
1009
1016
|
}
|
|
1010
1017
|
|
|
1018
|
+
if (hasWebcastChanged) {
|
|
1019
|
+
this.emitScoped(
|
|
1020
|
+
{file: 'locus-info', function: 'updateControls'},
|
|
1021
|
+
LOCUSINFO.EVENTS.CONTROLS_WEBCAST_CHANGED,
|
|
1022
|
+
{state: current.webcastControl}
|
|
1023
|
+
);
|
|
1024
|
+
}
|
|
1025
|
+
|
|
1026
|
+
if (hasMeetingFullChanged) {
|
|
1027
|
+
this.emitScoped(
|
|
1028
|
+
{file: 'locus-info', function: 'updateControls'},
|
|
1029
|
+
LOCUSINFO.EVENTS.CONTROLS_MEETING_FULL_CHANGED,
|
|
1030
|
+
{state: current.meetingFull}
|
|
1031
|
+
);
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
if (hasPracticeSessionEnabledChanged) {
|
|
1035
|
+
this.emitScoped(
|
|
1036
|
+
{file: 'locus-info', function: 'updateControls'},
|
|
1037
|
+
LOCUSINFO.EVENTS.CONTROLS_PRACTICE_SESSION_STATUS_UPDATED,
|
|
1038
|
+
{state: current.practiceSession}
|
|
1039
|
+
);
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
if (hasStageViewChanged) {
|
|
1043
|
+
this.emitScoped(
|
|
1044
|
+
{file: 'locus-info', function: 'updateControls'},
|
|
1045
|
+
LOCUSINFO.EVENTS.CONTROLS_STAGE_VIEW_UPDATED,
|
|
1046
|
+
{state: current.videoLayout}
|
|
1047
|
+
);
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1011
1050
|
this.controls = controls;
|
|
1012
1051
|
}
|
|
1013
1052
|
}
|
|
@@ -1064,6 +1103,27 @@ export default class LocusInfo extends EventsScope {
|
|
|
1064
1103
|
}
|
|
1065
1104
|
}
|
|
1066
1105
|
|
|
1106
|
+
/**
|
|
1107
|
+
* @param {Object} resources
|
|
1108
|
+
* @returns {undefined}
|
|
1109
|
+
* @memberof LocusInfo
|
|
1110
|
+
*/
|
|
1111
|
+
updateResources(resources: Record<'webcastInstance', {url: string}>) {
|
|
1112
|
+
if (resources && !isEqual(this.resources, resources)) {
|
|
1113
|
+
this.resources = resources;
|
|
1114
|
+
this.emitScoped(
|
|
1115
|
+
{
|
|
1116
|
+
file: 'locus-info',
|
|
1117
|
+
function: 'updateResources',
|
|
1118
|
+
},
|
|
1119
|
+
LOCUSINFO.EVENTS.LINKS_RESOURCES,
|
|
1120
|
+
{
|
|
1121
|
+
resources,
|
|
1122
|
+
}
|
|
1123
|
+
);
|
|
1124
|
+
}
|
|
1125
|
+
}
|
|
1126
|
+
|
|
1067
1127
|
/**
|
|
1068
1128
|
* @param {Object} fullState
|
|
1069
1129
|
* @returns {undefined}
|
package/src/locus-info/parser.ts
CHANGED
|
@@ -771,7 +771,14 @@ export default class Parser {
|
|
|
771
771
|
)}, Action: ${lociComparison}`
|
|
772
772
|
);
|
|
773
773
|
|
|
774
|
-
|
|
774
|
+
try {
|
|
775
|
+
this.onDeltaAction(lociComparison, newLoci);
|
|
776
|
+
} catch (error) {
|
|
777
|
+
LoggerProxy.logger.error(
|
|
778
|
+
'Locus-info:parser#processDeltaEvent --> Error in onDeltaAction',
|
|
779
|
+
error
|
|
780
|
+
);
|
|
781
|
+
}
|
|
775
782
|
}
|
|
776
783
|
|
|
777
784
|
this.nextEvent();
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import {MEETINGS} from '../constants';
|
|
6
|
+
import ControlsOptionsUtil from '../controls-options-manager/util';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* IInMeetingActions
|
|
@@ -64,6 +65,10 @@ interface IInMeetingActions {
|
|
|
64
65
|
canUpdateShareControl?: boolean;
|
|
65
66
|
canEnableViewTheParticipantsList?: boolean;
|
|
66
67
|
canDisableViewTheParticipantsList?: boolean;
|
|
68
|
+
canEnableViewTheParticipantsListPanelist?: boolean;
|
|
69
|
+
canDisableViewTheParticipantsListPanelist?: boolean;
|
|
70
|
+
canEnableShowAttendeeCount?: boolean;
|
|
71
|
+
canDisableShowAttendeeCount?: boolean;
|
|
67
72
|
canEnableRaiseHand?: boolean;
|
|
68
73
|
canDisableRaiseHand?: boolean;
|
|
69
74
|
canEnableVideo?: boolean;
|
|
@@ -83,6 +88,11 @@ interface IInMeetingActions {
|
|
|
83
88
|
canShareWhiteBoard?: boolean;
|
|
84
89
|
enforceVirtualBackground?: boolean;
|
|
85
90
|
canPollingAndQA?: boolean;
|
|
91
|
+
canStartWebcast?: boolean;
|
|
92
|
+
canStopWebcast?: boolean;
|
|
93
|
+
canShowStageView?: boolean;
|
|
94
|
+
canEnableStageView?: boolean;
|
|
95
|
+
canDisableStageView?: boolean;
|
|
86
96
|
}
|
|
87
97
|
|
|
88
98
|
/**
|
|
@@ -201,6 +211,14 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
|
201
211
|
|
|
202
212
|
canDisableViewTheParticipantsList = null;
|
|
203
213
|
|
|
214
|
+
canEnableViewTheParticipantsListPanelist = null;
|
|
215
|
+
|
|
216
|
+
canDisableViewTheParticipantsListPanelist = null;
|
|
217
|
+
|
|
218
|
+
canEnableShowAttendeeCount = null;
|
|
219
|
+
|
|
220
|
+
canDisableShowAttendeeCount = null;
|
|
221
|
+
|
|
204
222
|
canEnableRaiseHand = null;
|
|
205
223
|
|
|
206
224
|
canDisableRaiseHand = null;
|
|
@@ -238,6 +256,16 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
|
238
256
|
canShareWhiteBoard = null;
|
|
239
257
|
|
|
240
258
|
canPollingAndQA = null;
|
|
259
|
+
|
|
260
|
+
canStartWebcast = null;
|
|
261
|
+
|
|
262
|
+
canStopWebcast = null;
|
|
263
|
+
|
|
264
|
+
canShowStageView = null;
|
|
265
|
+
|
|
266
|
+
canEnableStageView = null;
|
|
267
|
+
|
|
268
|
+
canDisableStageView = null;
|
|
241
269
|
/**
|
|
242
270
|
* Returns all meeting action options
|
|
243
271
|
* @returns {Object}
|
|
@@ -298,6 +326,10 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
|
298
326
|
canUpdateShareControl: this.canUpdateShareControl,
|
|
299
327
|
canEnableViewTheParticipantsList: this.canEnableViewTheParticipantsList,
|
|
300
328
|
canDisableViewTheParticipantsList: this.canDisableViewTheParticipantsList,
|
|
329
|
+
canEnableViewTheParticipantsListPanelist: this.canEnableViewTheParticipantsListPanelist,
|
|
330
|
+
canDisableViewTheParticipantsListPanelist: this.canDisableViewTheParticipantsListPanelist,
|
|
331
|
+
canEnableShowAttendeeCount: this.canEnableShowAttendeeCount,
|
|
332
|
+
canDisableShowAttendeeCount: this.canDisableShowAttendeeCount,
|
|
301
333
|
canEnableRaiseHand: this.canEnableRaiseHand,
|
|
302
334
|
canDisableRaiseHand: this.canDisableRaiseHand,
|
|
303
335
|
canEnableVideo: this.canEnableVideo,
|
|
@@ -317,6 +349,11 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
|
317
349
|
supportHDV: this.supportHDV,
|
|
318
350
|
canShareWhiteBoard: this.canShareWhiteBoard,
|
|
319
351
|
canPollingAndQA: this.canPollingAndQA,
|
|
352
|
+
canStartWebcast: this.canStartWebcast,
|
|
353
|
+
canStopWebcast: this.canStopWebcast,
|
|
354
|
+
canShowStageView: this.canShowStageView,
|
|
355
|
+
canEnableStageView: this.canEnableStageView,
|
|
356
|
+
canDisableStageView: this.canDisableStageView,
|
|
320
357
|
});
|
|
321
358
|
|
|
322
359
|
/**
|