@webex/plugin-meetings 3.8.0-next.8 → 3.8.0-next.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +70 -6
- package/dist/breakouts/index.js.map +1 -1
- package/dist/common/errors/webex-errors.js +12 -2
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/config.js +5 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +20 -123
- 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/types.js.map +1 -1
- package/dist/controls-options-manager/util.js +52 -0
- package/dist/controls-options-manager/util.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 -10
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +62 -12
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +432 -418
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +17 -17
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +94 -6
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/brbState.js +6 -0
- package/dist/meeting/brbState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +17 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +570 -302
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +0 -17
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.js +0 -2
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +30 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +13 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +373 -68
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +5 -1
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/index.js +136 -1
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/util.js +14 -0
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +10 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +330 -353
- package/dist/member/util.js.map +1 -1
- package/dist/members/index.js +42 -0
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +38 -0
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +36 -1
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +9 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/reachability/clusterReachability.js +63 -27
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.js +112 -47
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/reachability.types.js +14 -0
- package/dist/reachability/reachability.types.js.map +1 -1
- package/dist/reachability/request.js +19 -3
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +2 -2
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/turnDiscovery.js +45 -27
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/types.js +17 -0
- package/dist/roap/types.js.map +1 -0
- package/dist/types/common/errors/webex-errors.d.ts +7 -1
- package/dist/types/config.d.ts +3 -0
- package/dist/types/constants.d.ts +13 -85
- package/dist/types/controls-options-manager/enums.d.ts +3 -1
- package/dist/types/controls-options-manager/types.d.ts +7 -1
- package/dist/types/locus-info/index.d.ts +3 -3
- package/dist/types/locus-info/selfUtils.d.ts +216 -1
- package/dist/types/media/properties.d.ts +15 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +16 -0
- package/dist/types/meeting/index.d.ts +43 -1
- package/dist/types/meeting/muteState.d.ts +0 -1
- package/dist/types/meeting/request.d.ts +12 -1
- package/dist/types/meeting/request.type.d.ts +6 -0
- package/dist/types/meeting/util.d.ts +3 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +82 -1
- package/dist/types/meetings/index.d.ts +57 -0
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/util.d.ts +159 -1
- package/dist/types/members/index.d.ts +15 -0
- package/dist/types/members/request.d.ts +26 -0
- package/dist/types/members/util.d.ts +27 -0
- package/dist/types/metrics/constants.d.ts +9 -0
- package/dist/types/reachability/clusterReachability.d.ts +15 -7
- package/dist/types/reachability/index.d.ts +10 -1
- package/dist/types/reachability/reachability.types.d.ts +5 -0
- package/dist/types/roap/index.d.ts +3 -2
- package/dist/types/roap/turnDiscovery.d.ts +5 -17
- package/dist/types/roap/types.d.ts +16 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +24 -23
- package/src/breakouts/index.ts +69 -0
- package/src/common/errors/webex-errors.ts +8 -1
- package/src/config.ts +3 -0
- package/src/constants.ts +20 -90
- package/src/controls-options-manager/enums.ts +2 -0
- package/src/controls-options-manager/types.ts +11 -1
- package/src/controls-options-manager/util.ts +62 -0
- package/src/locus-info/controlsUtils.ts +44 -14
- package/src/locus-info/index.ts +56 -13
- package/src/locus-info/selfUtils.ts +496 -442
- package/src/media/index.ts +23 -21
- package/src/media/properties.ts +96 -0
- package/src/meeting/brbState.ts +7 -0
- package/src/meeting/in-meeting-actions.ts +32 -0
- package/src/meeting/index.ts +382 -93
- package/src/meeting/locusMediaRequest.ts +0 -18
- package/src/meeting/muteState.ts +0 -2
- package/src/meeting/request.ts +36 -1
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +11 -2
- package/src/meeting-info/meeting-info-v2.ts +254 -8
- package/src/meeting-info/utilv2.ts +5 -0
- package/src/meetings/index.ts +148 -1
- package/src/meetings/util.ts +18 -0
- package/src/member/index.ts +13 -2
- package/src/member/util.ts +351 -348
- package/src/members/index.ts +47 -0
- package/src/members/request.ts +44 -0
- package/src/members/util.ts +43 -1
- package/src/metrics/constants.ts +9 -0
- package/src/reachability/clusterReachability.ts +73 -26
- package/src/reachability/index.ts +70 -1
- package/src/reachability/reachability.types.ts +6 -0
- package/src/reachability/request.ts +7 -0
- package/src/reconnection-manager/index.ts +2 -2
- package/src/roap/index.ts +3 -7
- package/src/roap/turnDiscovery.ts +34 -39
- package/src/roap/types.ts +23 -0
- package/test/unit/spec/breakouts/index.ts +167 -95
- package/test/unit/spec/controls-options-manager/util.js +120 -0
- package/test/unit/spec/locus-info/controlsUtils.js +103 -9
- package/test/unit/spec/locus-info/index.js +167 -73
- package/test/unit/spec/locus-info/selfUtils.js +98 -24
- package/test/unit/spec/media/index.ts +150 -18
- package/test/unit/spec/media/properties.ts +130 -0
- package/test/unit/spec/meeting/brbState.ts +19 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +19 -4
- package/test/unit/spec/meeting/index.js +557 -35
- package/test/unit/spec/meeting/locusMediaRequest.ts +0 -30
- package/test/unit/spec/meeting/muteState.js +0 -2
- package/test/unit/spec/meeting/request.js +32 -1
- package/test/unit/spec/meeting/utils.js +119 -18
- package/test/unit/spec/meeting-info/meetinginfov2.js +484 -114
- package/test/unit/spec/meeting-info/utilv2.js +19 -0
- package/test/unit/spec/meetings/index.js +146 -2
- package/test/unit/spec/member/index.js +7 -0
- package/test/unit/spec/member/util.js +24 -0
- package/test/unit/spec/members/index.js +140 -26
- package/test/unit/spec/members/request.js +68 -22
- package/test/unit/spec/members/utils.js +75 -0
- package/test/unit/spec/reachability/clusterReachability.ts +88 -56
- package/test/unit/spec/reachability/index.ts +101 -0
- package/test/unit/spec/reachability/request.js +47 -2
- package/test/unit/spec/reconnection-manager/index.js +4 -4
- package/test/unit/spec/roap/turnDiscovery.ts +110 -28
@@ -7,6 +7,8 @@ import {
|
|
7
7
|
ReactionsProperties,
|
8
8
|
ViewTheParticipantListProperties,
|
9
9
|
VideoProperties,
|
10
|
+
type RemoteDesktopControlProperties,
|
11
|
+
type AnnotationProperties,
|
10
12
|
} from './types';
|
11
13
|
|
12
14
|
/**
|
@@ -256,6 +258,52 @@ class Utils {
|
|
256
258
|
return Utils.hasHints({requiredHints, displayHints});
|
257
259
|
}
|
258
260
|
|
261
|
+
/**
|
262
|
+
* Validate if a annotation-scoped control is allowed to be sent to the service.
|
263
|
+
*
|
264
|
+
* @param {ControlConfig<AnnotationProperties>} control - Annotation control config to validate
|
265
|
+
* @param {Array<string>} displayHints - All available hints
|
266
|
+
* @returns {boolean} - True if all of the actions are allowed.
|
267
|
+
*/
|
268
|
+
public static canUpdateAnnotation(
|
269
|
+
control: ControlConfig<AnnotationProperties>,
|
270
|
+
displayHints: Array<string>
|
271
|
+
): boolean {
|
272
|
+
const requiredHints = [];
|
273
|
+
|
274
|
+
if (control.properties.enabled === true) {
|
275
|
+
requiredHints.push(DISPLAY_HINTS.ENABLE_ANNOTATION_MEETING_OPTION);
|
276
|
+
}
|
277
|
+
if (control.properties.enabled === false) {
|
278
|
+
requiredHints.push(DISPLAY_HINTS.DISABLE_ANNOTATION_MEETING_OPTION);
|
279
|
+
}
|
280
|
+
|
281
|
+
return Utils.hasHints({requiredHints, displayHints});
|
282
|
+
}
|
283
|
+
|
284
|
+
/**
|
285
|
+
* Validate if a rdc-scoped control is allowed to be sent to the service.
|
286
|
+
*
|
287
|
+
* @param {ControlConfig<RemoteDesktopControlProperties>} control - Remote Desktop Control config to validate
|
288
|
+
* @param {Array<string>} displayHints - All available hints
|
289
|
+
* @returns {boolean} - True if all of the actions are allowed.
|
290
|
+
*/
|
291
|
+
public static canUpdateRemoteDesktopControl(
|
292
|
+
control: ControlConfig<RemoteDesktopControlProperties>,
|
293
|
+
displayHints: Array<string>
|
294
|
+
): boolean {
|
295
|
+
const requiredHints = [];
|
296
|
+
|
297
|
+
if (control.properties.enabled === true) {
|
298
|
+
requiredHints.push(DISPLAY_HINTS.ENABLE_RDC_MEETING_OPTION);
|
299
|
+
}
|
300
|
+
if (control.properties.enabled === false) {
|
301
|
+
requiredHints.push(DISPLAY_HINTS.DISABLE_RDC_MEETING_OPTION);
|
302
|
+
}
|
303
|
+
|
304
|
+
return Utils.hasHints({requiredHints, displayHints});
|
305
|
+
}
|
306
|
+
|
259
307
|
/**
|
260
308
|
* Validate that a control can be sent to the service based on the provided
|
261
309
|
* display hints.
|
@@ -301,6 +349,20 @@ class Utils {
|
|
301
349
|
);
|
302
350
|
break;
|
303
351
|
|
352
|
+
case Control.annotation:
|
353
|
+
determinant = Utils.canUpdateAnnotation(
|
354
|
+
control as ControlConfig<AnnotationProperties>,
|
355
|
+
displayHints
|
356
|
+
);
|
357
|
+
break;
|
358
|
+
|
359
|
+
case Control.rdc:
|
360
|
+
determinant = Utils.canUpdateRemoteDesktopControl(
|
361
|
+
control as ControlConfig<RemoteDesktopControlProperties>,
|
362
|
+
displayHints
|
363
|
+
);
|
364
|
+
break;
|
365
|
+
|
304
366
|
default:
|
305
367
|
determinant = false;
|
306
368
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import {isEqual} from 'lodash';
|
2
|
-
import {BREAKOUTS} from '../constants';
|
2
|
+
import {BREAKOUTS, MEETING_STATE} from '../constants';
|
3
3
|
|
4
4
|
const ControlsUtils: any = {};
|
5
5
|
|
@@ -111,6 +111,18 @@ ControlsUtils.parse = (controls: any) => {
|
|
111
111
|
};
|
112
112
|
}
|
113
113
|
|
114
|
+
if (controls?.annotationControl) {
|
115
|
+
parsedControls.annotationControl = {
|
116
|
+
enabled: controls.annotationControl.enabled,
|
117
|
+
};
|
118
|
+
}
|
119
|
+
|
120
|
+
if (controls?.rdcControl) {
|
121
|
+
parsedControls.rdcControl = {
|
122
|
+
enabled: controls.rdcControl.enabled,
|
123
|
+
};
|
124
|
+
}
|
125
|
+
|
114
126
|
return parsedControls;
|
115
127
|
};
|
116
128
|
|
@@ -206,11 +218,17 @@ ControlsUtils.getControls = (oldControls: any, newControls: any) => {
|
|
206
218
|
),
|
207
219
|
|
208
220
|
hasPracticeSessionEnabledChanged: !isEqual(
|
209
|
-
previous?.practiceSession?.enabled,
|
210
|
-
current?.practiceSession?.enabled
|
221
|
+
!!previous?.practiceSession?.enabled,
|
222
|
+
!!current?.practiceSession?.enabled
|
211
223
|
),
|
212
224
|
|
213
225
|
hasStageViewChanged: !isEqual(previous?.videoLayout, current?.videoLayout),
|
226
|
+
|
227
|
+
hasAnnotationControlChanged:
|
228
|
+
current?.annotationControl?.enabled !== previous?.annotationControl?.enabled,
|
229
|
+
|
230
|
+
hasRemoteDesktopControlChanged:
|
231
|
+
current?.rdcControl?.enabled !== previous?.rdcControl?.enabled,
|
214
232
|
},
|
215
233
|
};
|
216
234
|
};
|
@@ -242,30 +260,42 @@ ControlsUtils.isNeedReplaceMembers = (oldControls: any, controls: any) => {
|
|
242
260
|
}
|
243
261
|
|
244
262
|
return (
|
245
|
-
oldControls
|
246
|
-
oldControls
|
263
|
+
oldControls?.breakout?.groupId !== controls?.breakout?.groupId ||
|
264
|
+
oldControls?.breakout?.sessionId !== controls?.breakout?.sessionId
|
247
265
|
);
|
248
266
|
};
|
249
267
|
|
250
268
|
/**
|
251
269
|
* determine the switch status between breakout session and main session.
|
252
|
-
* @param {
|
253
|
-
* @param {
|
270
|
+
* @param {LocusInfo} oldLocus
|
271
|
+
* @param {LocusInfo} newLocus
|
254
272
|
* @returns {Object}
|
255
273
|
*/
|
256
|
-
ControlsUtils.getSessionSwitchStatus = (
|
274
|
+
ControlsUtils.getSessionSwitchStatus = (oldLocus: any, newLocus: any) => {
|
257
275
|
const status = {isReturnToMain: false, isJoinToBreakout: false};
|
258
276
|
// no breakout case
|
259
|
-
if (!
|
277
|
+
if (!oldLocus.controls?.breakout || !newLocus.controls?.breakout) {
|
260
278
|
return status;
|
261
279
|
}
|
262
280
|
|
263
|
-
|
264
|
-
|
265
|
-
|
281
|
+
// It is used to fix the timing issue triggered when the creator leaves session to ensure that the member list is complete
|
282
|
+
const needUseCache = !!(
|
283
|
+
oldLocus.self?.isCreator &&
|
284
|
+
newLocus.participants?.length === 1 &&
|
285
|
+
newLocus.participants?.[0].isCreator &&
|
286
|
+
newLocus.participants?.[0].state === MEETING_STATE.STATES.JOINED &&
|
287
|
+
newLocus.controls?.breakout?.sessionType === BREAKOUTS.SESSION_TYPES.MAIN &&
|
288
|
+
newLocus.controls?.breakout?.groups?.length
|
289
|
+
);
|
290
|
+
|
291
|
+
const isReturnToMain =
|
292
|
+
oldLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&
|
293
|
+
newLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;
|
294
|
+
|
295
|
+
status.isReturnToMain = needUseCache || isReturnToMain;
|
266
296
|
status.isJoinToBreakout =
|
267
|
-
|
268
|
-
controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT;
|
297
|
+
oldLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN &&
|
298
|
+
newLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT;
|
269
299
|
|
270
300
|
return status;
|
271
301
|
};
|
package/src/locus-info/index.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import {isEqual, assignWith, cloneDeep, isEmpty} from 'lodash';
|
1
|
+
import {isEqual, assignWith, cloneDeep, isEmpty, forEach} from 'lodash';
|
2
2
|
|
3
3
|
import LoggerProxy from '../common/logs/logger-proxy';
|
4
4
|
import EventsScope from '../common/events/events-scope';
|
@@ -17,7 +17,9 @@ import {
|
|
17
17
|
MEETING_REMOVED_REASON,
|
18
18
|
CALL_REMOVED_REASON,
|
19
19
|
RECORDING_STATE,
|
20
|
+
BREAKOUTS,
|
20
21
|
} from '../constants';
|
22
|
+
|
21
23
|
import InfoUtils from './infoUtils';
|
22
24
|
import FullState from './fullState';
|
23
25
|
import SelfUtils from './selfUtils';
|
@@ -67,6 +69,7 @@ export default class LocusInfo extends EventsScope {
|
|
67
69
|
services: any;
|
68
70
|
resources: any;
|
69
71
|
mainSessionLocusCache: any;
|
72
|
+
self: any;
|
70
73
|
/**
|
71
74
|
* Constructor
|
72
75
|
* @param {function} updateMeeting callback to update the meeting object from an object
|
@@ -261,7 +264,7 @@ export default class LocusInfo extends EventsScope {
|
|
261
264
|
this.updateMeetingInfo(locus.info);
|
262
265
|
this.updateEmbeddedApps(locus.embeddedApps);
|
263
266
|
// self and participants generate sipUrl for 1:1 meeting
|
264
|
-
this.updateSelf(locus.self
|
267
|
+
this.updateSelf(locus.self);
|
265
268
|
this.updateHostInfo(locus.host);
|
266
269
|
this.updateMediaShares(locus.mediaShares);
|
267
270
|
this.updateServices(locus.links?.services);
|
@@ -419,6 +422,7 @@ export default class LocusInfo extends EventsScope {
|
|
419
422
|
*/
|
420
423
|
onDeltaLocus(locus: any) {
|
421
424
|
const isReplaceMembers = ControlsUtils.isNeedReplaceMembers(this.controls, locus.controls);
|
425
|
+
this.mergeParticipants(this.participants, locus.participants);
|
422
426
|
this.updateLocusInfo(locus);
|
423
427
|
this.updateParticipants(locus.participants, isReplaceMembers);
|
424
428
|
this.isMeetingActive();
|
@@ -446,7 +450,7 @@ export default class LocusInfo extends EventsScope {
|
|
446
450
|
this.updateMediaShares(locus.mediaShares);
|
447
451
|
this.updateParticipantsUrl(locus.participantsUrl);
|
448
452
|
this.updateReplace(locus.replace);
|
449
|
-
this.updateSelf(locus.self
|
453
|
+
this.updateSelf(locus.self);
|
450
454
|
this.updateLocusUrl(locus.url);
|
451
455
|
this.updateAclUrl(locus.aclUrl);
|
452
456
|
this.updateBasequence(locus.baseSequence);
|
@@ -780,6 +784,23 @@ export default class LocusInfo extends EventsScope {
|
|
780
784
|
isReplace,
|
781
785
|
}
|
782
786
|
);
|
787
|
+
|
788
|
+
if (participants && Array.isArray(participants) && participants.length > 0) {
|
789
|
+
for (const participant of participants) {
|
790
|
+
if (participant && participant?.reason === 'FAILURE') {
|
791
|
+
this.emitScoped(
|
792
|
+
{
|
793
|
+
file: 'locus-info',
|
794
|
+
function: 'updateParticipants',
|
795
|
+
},
|
796
|
+
LOCUSINFO.EVENTS.PARTICIPANT_REASON_CHANGED,
|
797
|
+
{
|
798
|
+
displayName: participant?.person?.primaryDisplayString,
|
799
|
+
}
|
800
|
+
);
|
801
|
+
}
|
802
|
+
}
|
803
|
+
}
|
783
804
|
}
|
784
805
|
|
785
806
|
/**
|
@@ -814,6 +835,8 @@ export default class LocusInfo extends EventsScope {
|
|
814
835
|
hasMeetingFullChanged,
|
815
836
|
hasPracticeSessionEnabledChanged,
|
816
837
|
hasStageViewChanged,
|
838
|
+
hasAnnotationControlChanged,
|
839
|
+
hasRemoteDesktopControlChanged,
|
817
840
|
},
|
818
841
|
current,
|
819
842
|
} = ControlsUtils.getControls(this.controls, controls);
|
@@ -1049,6 +1072,22 @@ export default class LocusInfo extends EventsScope {
|
|
1049
1072
|
);
|
1050
1073
|
}
|
1051
1074
|
|
1075
|
+
if (hasAnnotationControlChanged) {
|
1076
|
+
this.emitScoped(
|
1077
|
+
{file: 'locus-info', function: 'updateControls'},
|
1078
|
+
LOCUSINFO.EVENTS.CONTROLS_ANNOTATION_CHANGED,
|
1079
|
+
{state: current.annotationControl}
|
1080
|
+
);
|
1081
|
+
}
|
1082
|
+
|
1083
|
+
if (hasRemoteDesktopControlChanged) {
|
1084
|
+
this.emitScoped(
|
1085
|
+
{file: 'locus-info', function: 'updateControls'},
|
1086
|
+
LOCUSINFO.EVENTS.CONTROLS_REMOTE_DESKTOP_CONTROL_CHANGED,
|
1087
|
+
{state: current.rdcControl}
|
1088
|
+
);
|
1089
|
+
}
|
1090
|
+
|
1052
1091
|
this.controls = controls;
|
1053
1092
|
}
|
1054
1093
|
}
|
@@ -1336,17 +1375,20 @@ export default class LocusInfo extends EventsScope {
|
|
1336
1375
|
|
1337
1376
|
/**
|
1338
1377
|
* handles when the locus.self is updated
|
1339
|
-
* @param {Object} self the locus.
|
1340
|
-
* @param {Array} participants the locus.participants property
|
1378
|
+
* @param {Object} self the new locus.self
|
1341
1379
|
* @returns {undefined}
|
1342
1380
|
* @memberof LocusInfo
|
1343
1381
|
* emits internal events self_admitted_guest, self_unadmitted_guest, locus_info_update_self
|
1344
1382
|
*/
|
1345
|
-
updateSelf(self: any
|
1346
|
-
|
1347
|
-
if (self && !isEqual(this.self, self)) {
|
1383
|
+
updateSelf(self: any) {
|
1384
|
+
if (self) {
|
1348
1385
|
// @ts-ignore
|
1349
|
-
const parsedSelves = SelfUtils.getSelves(
|
1386
|
+
const parsedSelves = SelfUtils.getSelves(
|
1387
|
+
this.parsedLocus.self,
|
1388
|
+
self,
|
1389
|
+
this.webex.internal.device.url,
|
1390
|
+
this.participants // using this.participants instead of locus.participants here, because with delta DTOs locus.participants will only contain a small subset of participants
|
1391
|
+
);
|
1350
1392
|
|
1351
1393
|
this.updateMeeting(parsedSelves.current);
|
1352
1394
|
this.parsedLocus.self = parsedSelves.current;
|
@@ -1360,7 +1402,7 @@ export default class LocusInfo extends EventsScope {
|
|
1360
1402
|
// TODO: check if we need to save the sipUri here as well
|
1361
1403
|
// this.emit(LOCUSINFO.EVENTS.MEETING_UPDATE, SelfUtils.getSipUrl(this.getLocusPartner(participants, self), this.parsedLocus.fullState.type, this.parsedLocus.info.sipUri));
|
1362
1404
|
const result = SelfUtils.getSipUrl(
|
1363
|
-
this.getLocusPartner(participants, self),
|
1405
|
+
this.getLocusPartner(this.participants, self),
|
1364
1406
|
this.parsedLocus.fullState.type,
|
1365
1407
|
this.parsedLocus.info.sipUri
|
1366
1408
|
);
|
@@ -1506,7 +1548,7 @@ export default class LocusInfo extends EventsScope {
|
|
1506
1548
|
{}
|
1507
1549
|
);
|
1508
1550
|
}
|
1509
|
-
if (parsedSelves.updates.
|
1551
|
+
if (parsedSelves.updates.hasUserEnteredLobby) {
|
1510
1552
|
this.emitScoped(
|
1511
1553
|
{
|
1512
1554
|
file: 'locus-info',
|
@@ -1516,7 +1558,7 @@ export default class LocusInfo extends EventsScope {
|
|
1516
1558
|
self
|
1517
1559
|
);
|
1518
1560
|
}
|
1519
|
-
if (parsedSelves.updates.
|
1561
|
+
if (parsedSelves.updates.hasUserBeenAdmitted) {
|
1520
1562
|
this.emitScoped(
|
1521
1563
|
{
|
1522
1564
|
file: 'locus-info',
|
@@ -1706,7 +1748,8 @@ export default class LocusInfo extends EventsScope {
|
|
1706
1748
|
* @memberof LocusInfo
|
1707
1749
|
*/
|
1708
1750
|
getTheLocusToUpdate(newLocus: any) {
|
1709
|
-
const switchStatus = ControlsUtils.getSessionSwitchStatus(this
|
1751
|
+
const switchStatus = ControlsUtils.getSessionSwitchStatus(this, newLocus);
|
1752
|
+
|
1710
1753
|
if (switchStatus.isReturnToMain && this.mainSessionLocusCache) {
|
1711
1754
|
return cloneDeep(this.mainSessionLocusCache);
|
1712
1755
|
}
|