@webex/plugin-meetings 3.0.0-next.29 → 3.0.0-next.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/selfUtils.js +5 -0
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/webinar/index.js +1 -1
- package/package.json +3 -3
- package/src/locus-info/selfUtils.ts +5 -0
- package/test/unit/spec/locus-info/selfUtils.js +35 -0
package/dist/breakouts/index.js
CHANGED
|
@@ -1041,7 +1041,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
1041
1041
|
this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
|
|
1042
1042
|
}
|
|
1043
1043
|
},
|
|
1044
|
-
version: "3.0.0-next.
|
|
1044
|
+
version: "3.0.0-next.30"
|
|
1045
1045
|
});
|
|
1046
1046
|
var _default = exports.default = Breakouts;
|
|
1047
1047
|
//# sourceMappingURL=index.js.map
|
|
@@ -373,7 +373,7 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
|
|
|
373
373
|
throw error;
|
|
374
374
|
});
|
|
375
375
|
},
|
|
376
|
-
version: "3.0.0-next.
|
|
376
|
+
version: "3.0.0-next.30"
|
|
377
377
|
});
|
|
378
378
|
var _default = exports.default = SimultaneousInterpretation;
|
|
379
379
|
//# sourceMappingURL=index.js.map
|
|
@@ -18,7 +18,7 @@ var SILanguage = _webexCore.WebexPlugin.extend({
|
|
|
18
18
|
languageCode: 'number',
|
|
19
19
|
languageName: 'string'
|
|
20
20
|
},
|
|
21
|
-
version: "3.0.0-next.
|
|
21
|
+
version: "3.0.0-next.30"
|
|
22
22
|
});
|
|
23
23
|
var _default = exports.default = SILanguage;
|
|
24
24
|
//# sourceMappingURL=siLanguage.js.map
|
|
@@ -365,6 +365,11 @@ SelfUtils.mutedByOthersChanged = function (oldSelf, changedSelf) {
|
|
|
365
365
|
// we don't want to be sending the 'meeting:self:unmutedByOthers' notification on meeting join
|
|
366
366
|
return false;
|
|
367
367
|
}
|
|
368
|
+
|
|
369
|
+
// there is no need to trigger user update if no one muted user
|
|
370
|
+
if (changedSelf.selfIdentity === changedSelf.modifiedBy) {
|
|
371
|
+
return false;
|
|
372
|
+
}
|
|
368
373
|
return changedSelf.remoteMuted !== null && (oldSelf.remoteMuted !== changedSelf.remoteMuted || changedSelf.remoteMuted && oldSelf.unmuteAllowed !== changedSelf.unmuteAllowed);
|
|
369
374
|
};
|
|
370
375
|
SelfUtils.localAudioUnmuteRequestedByServer = function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","require","_constants","_parameter","_interopRequireDefault","SelfUtils","PSTN_DEVICE_TYPE","parse","self","deviceId","_joinedWith$intent","joinedWith","devices","find","device","url","pstnDevices","filter","deviceType","remoteVideoMuted","getRemoteVideoMuted","remoteMuted","getRemoteMuted","unmuteAllowed","getUnmuteAllowed","localAudioUnmuteRequested","getLocalAudioUnmuteRequested","localAudioUnmuteRequestedTimeStamp","getLocalAudioUnmuteRequestedTimeStamp","localAudioUnmuteRequired","getLocalAudioUnmuteRequired","lastModified","getLastModified","modifiedBy","getModifiedBy","guest","moderator","mediaStatus","getStatus","status","state","currentMediaStatus","getMediaStatus","mediaSessions","creator","isCreator","selfId","id","selfIdentity","getSelfIdentity","selfUrl","removed","roles","getRoles","isUserUnadmitted","_IDLE_","intent","type","_WAIT_","layout","getLayout","canNotViewTheParticipantList","isSharingBlocked","breakoutSessions","getBreakoutSessions","breakout","getBreakout","interpretation","getInterpretation","_self$controls","_self$controls$breako","controls","sessions","_self$controls2","_self$controls3","_self$controls4","_isArray","default","layouts","undefined","_self$controls5","_self$controls5$role","role","reduce","hasRole","push","getSelves","oldSelf","newSelf","previous","current","updates","isUserAdmitted","isVideoMutedByOthersChanged","videoMutedByOthersChanged","isMutedByOthersChanged","mutedByOthersChanged","localAudioUnmuteRequestedByServer","localAudioUnmuteRequiredByServer","moderatorChanged","isRolesChanged","isMediaInactiveOrReleased","wasMediaInactiveOrReleased","isUserObserving","isDeviceObserving","layoutChanged","isMediaInactive","audioStateChange","audio","videoStateChange","video","shareStateChange","share","canNotViewTheParticipantListChanged","isSharingBlockedChanged","breakoutsChanged","interpretationChanged","isJoined","_JOINED_","isEqual","previousMediaStatus","MEDIA_STATE","inactive","direction","meta","person","muted","_self$controls6","_self$controls6$audio","requestedToUnmute","_self$controls7","_self$controls7$audio","Date","lastModifiedRequestedToUnmute","disallowUnmute","_self$controls8","_self$controls8$audio","audioStatus","videoStatus","slides","videoSlidesStatus","arguments","length","changedSelf","_LEFT_","reason","MEETING_END_REASON","INACTIVE","MEDIA_RELEASED","isLocusUserUnadmitted","check","_check$joinedWith","_check$joinedWith$int","isLocusUserAdmitted","_check$joinedWith2","_check$joinedWith2$in","ParameterError","_oldSelf$joinedWith","_oldSelf$joinedWith$i","_changedSelf$joinedWi","_changedSelf$joinedWi2","_MOVE_MEDIA_","_OBSERVE_","getSipUrl","partner","sipUri","_CALL_","sipUrl","media","mediaType","AUDIO","mediaContent","MediaContent","main","VIDEO","getReplacedBreakoutMoveId","joinedDevice","replaces","_joinedDevice$replace","breakoutMoveId","_default","exports"],"sources":["selfUtils.ts"],"sourcesContent":["/* eslint-disable default-param-last */\n\nimport {isEqual} from 'lodash';\nimport {\n _IDLE_,\n _JOINED_,\n _CALL_,\n _WAIT_,\n _MOVE_MEDIA_,\n _OBSERVE_,\n _LEFT_,\n MEETING_END_REASON,\n MEDIA_STATE,\n AUDIO,\n VIDEO,\n MediaContent,\n} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\nconst SelfUtils: any = {};\nconst PSTN_DEVICE_TYPE = 'PROVISIONAL';\n\n/**\n * parses the relevant values for self: muted, guest, moderator, mediaStatus, state, joinedWith, pstnDevices, creator, id\n * @param {Object} self\n * @param {String} deviceId\n * @returns {undefined}\n */\nSelfUtils.parse = (self: any, deviceId: string) => {\n if (self) {\n const joinedWith = self.devices.find((device) => deviceId === device.url);\n const pstnDevices = self.devices.filter((device) => PSTN_DEVICE_TYPE === device.deviceType);\n\n return {\n remoteVideoMuted: SelfUtils.getRemoteVideoMuted(self),\n remoteMuted: SelfUtils.getRemoteMuted(self),\n unmuteAllowed: SelfUtils.getUnmuteAllowed(self),\n localAudioUnmuteRequested: SelfUtils.getLocalAudioUnmuteRequested(self),\n localAudioUnmuteRequestedTimeStamp: SelfUtils.getLocalAudioUnmuteRequestedTimeStamp(self),\n localAudioUnmuteRequired: SelfUtils.getLocalAudioUnmuteRequired(self),\n lastModified: SelfUtils.getLastModified(self),\n modifiedBy: SelfUtils.getModifiedBy(self),\n guest: self.guest,\n moderator: self.moderator,\n // cumulative media stats\n mediaStatus: SelfUtils.getStatus(self.status),\n // TODO: what should be the status if user has refreshed the page,\n // check the joinedWith parameter and communicate to the user\n state: self.state,\n // TODO: give a proper name . With same device as login or different login`\n // Some times we might have joined with both mobile and web\n joinedWith,\n pstnDevices,\n // current media stats is for the current device who has joined\n currentMediaStatus: SelfUtils.getMediaStatus(joinedWith?.mediaSessions),\n creator: self.isCreator, // check if its used,\n selfId: self.id,\n selfIdentity: SelfUtils.getSelfIdentity(self),\n selfUrl: self.url,\n removed: self.removed,\n roles: SelfUtils.getRoles(self),\n isUserUnadmitted: self.state === _IDLE_ && joinedWith?.intent?.type === _WAIT_,\n layout: SelfUtils.getLayout(self),\n canNotViewTheParticipantList: SelfUtils.canNotViewTheParticipantList(self),\n isSharingBlocked: SelfUtils.isSharingBlocked(self),\n breakoutSessions: SelfUtils.getBreakoutSessions(self),\n breakout: SelfUtils.getBreakout(self),\n interpretation: SelfUtils.getInterpretation(self),\n };\n }\n\n return null;\n};\n\nSelfUtils.getBreakoutSessions = (self) => self?.controls?.breakout?.sessions;\nSelfUtils.getBreakout = (self) => self?.controls?.breakout;\nSelfUtils.getInterpretation = (self) => self?.controls?.interpretation;\n\nSelfUtils.getLayout = (self) =>\n Array.isArray(self?.controls?.layouts) ? self.controls.layouts[0].type : undefined;\n\nSelfUtils.getRoles = (self) =>\n (self?.controls?.role?.roles || []).reduce((roles, role) => {\n if (role.hasRole) {\n roles.push(role.type);\n }\n\n return roles;\n }, []);\n\nSelfUtils.canNotViewTheParticipantList = (self) => !!self?.canNotViewTheParticipantList;\n\nSelfUtils.isSharingBlocked = (self) => !!self?.isSharingBlocked;\n\nSelfUtils.getSelves = (oldSelf, newSelf, deviceId) => {\n const previous = oldSelf && SelfUtils.parse(oldSelf, deviceId);\n const current = newSelf && SelfUtils.parse(newSelf, deviceId);\n const updates: any = {};\n\n updates.isUserUnadmitted = SelfUtils.isUserUnadmitted(current);\n updates.isUserAdmitted = SelfUtils.isUserAdmitted(previous, current);\n updates.isVideoMutedByOthersChanged = SelfUtils.videoMutedByOthersChanged(previous, current);\n updates.isMutedByOthersChanged = SelfUtils.mutedByOthersChanged(previous, current);\n updates.localAudioUnmuteRequestedByServer = SelfUtils.localAudioUnmuteRequestedByServer(\n previous,\n current\n );\n updates.localAudioUnmuteRequiredByServer = SelfUtils.localAudioUnmuteRequiredByServer(\n previous,\n current\n );\n updates.moderatorChanged = SelfUtils.moderatorChanged(previous, current);\n updates.isRolesChanged = SelfUtils.isRolesChanged(previous, current);\n updates.isMediaInactiveOrReleased = SelfUtils.wasMediaInactiveOrReleased(previous, current);\n updates.isUserObserving = SelfUtils.isDeviceObserving(previous, current);\n updates.layoutChanged = SelfUtils.layoutChanged(previous, current);\n\n updates.isMediaInactive = SelfUtils.isMediaInactive(previous, current);\n updates.audioStateChange =\n previous?.currentMediaStatus.audio !== current.currentMediaStatus.audio;\n updates.videoStateChange =\n previous?.currentMediaStatus.video !== current.currentMediaStatus.video;\n updates.shareStateChange =\n previous?.currentMediaStatus.share !== current.currentMediaStatus.share;\n\n updates.canNotViewTheParticipantListChanged =\n previous?.canNotViewTheParticipantList !== current.canNotViewTheParticipantList;\n updates.isSharingBlockedChanged = previous?.isSharingBlocked !== current.isSharingBlocked;\n updates.breakoutsChanged = SelfUtils.breakoutsChanged(previous, current);\n updates.interpretationChanged = SelfUtils.interpretationChanged(previous, current);\n\n return {\n previous,\n current,\n updates,\n };\n};\n\n/**\n * Checks if user has joined the meeting\n * @param {Object} self\n * @returns {boolean} isJoined\n */\nSelfUtils.isJoined = (self: any) => self?.state === _JOINED_;\n\n/**\n * Validate if the Meeting Layout Controls Layout has changed.\n *\n * @param {Self} previous - Previous self state\n * @param {Self} current - Current self state [per event]\n * @returns {boolean} - If the Meeting Layout Controls Layout has changed.\n */\nSelfUtils.layoutChanged = (previous: any, current: any) =>\n current?.layout && previous?.layout !== current?.layout;\n\nSelfUtils.breakoutsChanged = (previous, current) =>\n !isEqual(previous?.breakoutSessions, current?.breakoutSessions) && !!current?.breakout;\n\nSelfUtils.interpretationChanged = (previous, current) =>\n !isEqual(previous?.interpretation, current?.interpretation) && !!current?.interpretation;\n\nSelfUtils.isMediaInactive = (previous, current) => {\n if (\n previous &&\n previous.joinedWith &&\n previous.joinedWith.mediaSessions &&\n current &&\n current.joinedWith &&\n current.joinedWith.mediaSessions\n ) {\n const previousMediaStatus = SelfUtils.getMediaStatus(previous.joinedWith.mediaSessions);\n const currentMediaStatus = SelfUtils.getMediaStatus(current.joinedWith.mediaSessions);\n\n if (\n previousMediaStatus.audio &&\n currentMediaStatus.audio &&\n previousMediaStatus.audio.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.audio.state === MEDIA_STATE.inactive &&\n currentMediaStatus.audio.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n if (\n previousMediaStatus.video &&\n currentMediaStatus.video &&\n previousMediaStatus.video.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.video.state === MEDIA_STATE.inactive &&\n currentMediaStatus.video.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n if (\n previousMediaStatus.share &&\n currentMediaStatus.share &&\n previousMediaStatus.share.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.share.state === MEDIA_STATE.inactive &&\n currentMediaStatus.share.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n return false;\n }\n\n return false;\n};\n\nSelfUtils.getLastModified = (self) => {\n if (\n !self ||\n !self.controls ||\n !self.controls.audio ||\n !self.controls.audio.meta ||\n !self.controls.audio.meta.lastModified\n ) {\n return null;\n }\n\n return self.controls.audio.meta.lastModified;\n};\n\nSelfUtils.getModifiedBy = (self) => {\n if (\n !self ||\n !self.controls ||\n !self.controls.audio ||\n !self.controls.audio.meta ||\n !self.controls.audio.meta.modifiedBy\n ) {\n return null;\n }\n\n return self.controls.audio.meta.modifiedBy;\n};\n\n/**\n * get the id from the self object\n * @param {Object} self\n * @returns {String}\n */\nSelfUtils.getSelfIdentity = (self: any) => {\n if (!self && !self.person) {\n return null;\n }\n\n return self.person.id;\n};\n\n/**\n * get the \"remote video mute\" property from the self object\n * @param {Object} self\n * @returns {Boolean}\n */\nSelfUtils.getRemoteVideoMuted = (self: any) => {\n if (!self || !self.controls || !self.controls.video) {\n return null;\n }\n\n return self.controls.video.muted;\n};\n\n/**\n * get the \"remote mute\" property from the self object\n * @param {Object} self\n * @returns {Boolean}\n */\nSelfUtils.getRemoteMuted = (self: any) => {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n\n return self.controls.audio.muted;\n};\n\nSelfUtils.getLocalAudioUnmuteRequested = (self) => !!self?.controls?.audio?.requestedToUnmute;\n\n// requestedToUnmute timestamp\nSelfUtils.getLocalAudioUnmuteRequestedTimeStamp = (self) =>\n Date.parse(self?.controls?.audio?.lastModifiedRequestedToUnmute) || 0;\n\nSelfUtils.getUnmuteAllowed = (self) => {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n\n return !self.controls.audio.disallowUnmute;\n};\n\nSelfUtils.getLocalAudioUnmuteRequired = (self) => !!self?.controls?.audio?.localAudioUnmuteRequired;\n\nSelfUtils.getStatus = (status) => ({\n audio: status.audioStatus,\n video: status.videoStatus,\n slides: status.videoSlidesStatus,\n});\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n */\nSelfUtils.wasMediaInactiveOrReleased = (oldSelf: any = {}, changedSelf: any) =>\n oldSelf.joinedWith &&\n oldSelf.joinedWith.state === _JOINED_ &&\n changedSelf.joinedWith &&\n changedSelf.joinedWith.state === _LEFT_ &&\n (changedSelf.joinedWith.reason === MEETING_END_REASON.INACTIVE ||\n changedSelf.joinedWith.reason === MEETING_END_REASON.MEDIA_RELEASED);\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserUnadmitted = (check: any) =>\n check && check.joinedWith?.intent?.type === _WAIT_ && check.state === _IDLE_;\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserAdmitted = (check: any) =>\n check && check.joinedWith?.intent?.type !== _WAIT_ && check.state === _JOINED_;\n\n/**\n * @param {Object} self\n * @returns {Boolean}\n * @throws {Error} when self is undefined\n */\nSelfUtils.isUserUnadmitted = (self: object) => {\n if (!self) {\n throw new ParameterError('self must be defined to determine if self is unadmitted as guest.');\n }\n\n return SelfUtils.isLocusUserUnadmitted(self);\n};\n\nSelfUtils.moderatorChanged = (oldSelf, changedSelf) => {\n if (!oldSelf) {\n return true;\n }\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self transitioned moderator status.'\n );\n }\n\n return oldSelf.moderator !== changedSelf.moderator;\n};\n\n/**\n * determine whether the roles of self is changed or not\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n */\nSelfUtils.isRolesChanged = (oldSelf, changedSelf) => {\n if (!changedSelf) {\n // no new self means no change\n return false;\n }\n\n return !isEqual(oldSelf?.roles, changedSelf?.roles);\n};\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isDeviceObserving = (oldSelf: any, changedSelf: any) =>\n oldSelf &&\n oldSelf.joinedWith?.intent?.type === _MOVE_MEDIA_ &&\n changedSelf &&\n changedSelf.joinedWith?.intent?.type === _OBSERVE_;\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isUserAdmitted = (oldSelf: object, changedSelf: object) => {\n if (!oldSelf) {\n // if there was no previous locus, it couldn't have been admitted yet\n return false;\n }\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self transitioned to admitted as guest.'\n );\n }\n\n return SelfUtils.isLocusUserUnadmitted(oldSelf) && SelfUtils.isLocusUserAdmitted(changedSelf);\n};\n\nSelfUtils.videoMutedByOthersChanged = (oldSelf, changedSelf) => {\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self was video muted by others.'\n );\n }\n\n if (!oldSelf || oldSelf.remoteVideoMuted === null) {\n if (changedSelf.remoteVideoMuted) {\n return true; // this happens when host disables \"Allow start video\"\n }\n\n // we don't want to be sending the 'meeting:self:videoUnmutedByOthers' notification on meeting join\n return false;\n }\n\n return oldSelf.remoteVideoMuted !== changedSelf.remoteVideoMuted;\n};\n\nSelfUtils.mutedByOthersChanged = (oldSelf, changedSelf) => {\n if (!changedSelf) {\n throw new ParameterError('New self must be defined to determine if self was muted by others.');\n }\n\n if (!oldSelf || oldSelf.remoteMuted === null) {\n if (changedSelf.remoteMuted) {\n return true; // this happens when mute on-entry is enabled\n }\n\n // we don't want to be sending the 'meeting:self:unmutedByOthers' notification on meeting join\n return false;\n }\n\n return (\n changedSelf.remoteMuted !== null &&\n (oldSelf.remoteMuted !== changedSelf.remoteMuted ||\n (changedSelf.remoteMuted && oldSelf.unmuteAllowed !== changedSelf.unmuteAllowed))\n );\n};\n\nSelfUtils.localAudioUnmuteRequestedByServer = (oldSelf: any = {}, changedSelf: any) => {\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self received request to unmute.'\n );\n }\n\n return (\n changedSelf.localAudioUnmuteRequested &&\n changedSelf.localAudioUnmuteRequestedTimeStamp > oldSelf.localAudioUnmuteRequestedTimeStamp\n );\n};\n\nSelfUtils.localAudioUnmuteRequiredByServer = (oldSelf: any = {}, changedSelf: any) => {\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if localAudioUnmuteRequired changed.'\n );\n }\n\n return (\n !changedSelf.remoteMuted &&\n changedSelf.localAudioUnmuteRequired &&\n oldSelf.localAudioUnmuteRequired !== changedSelf.localAudioUnmuteRequired\n );\n};\n\n/**\n * extract the sipUrl from the partner\n * @param {Object} partner\n * @param {Object} info\n * @returns {Object}\n */\n\nSelfUtils.getSipUrl = (partner: any, type, sipUri) => {\n // For webex meeting the sipUrl gets updated in info parser\n if (partner && type === _CALL_) {\n return {sipUri: partner.person.sipUrl || partner.person.id};\n }\n\n return {sipUri};\n};\n\nSelfUtils.getMediaStatus = (mediaSessions = []) => {\n const mediaStatus = {\n audio: {},\n video: {},\n share: {},\n };\n\n mediaStatus.audio = mediaSessions.find(\n (media) => media.mediaType === AUDIO && media.mediaContent === MediaContent.main\n );\n mediaStatus.video = mediaSessions.find(\n (media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.main\n );\n mediaStatus.share = mediaSessions.find(\n (media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.slides\n );\n\n return mediaStatus;\n};\n\nSelfUtils.getReplacedBreakoutMoveId = (self: any, deviceId: string) => {\n if (self && Array.isArray(self.devices)) {\n const joinedDevice = self.devices.find((device) => deviceId === device.url);\n if (Array.isArray(joinedDevice?.replaces)) {\n return joinedDevice.replaces[0]?.breakoutMoveId;\n }\n }\n\n return null;\n};\nexport default SelfUtils;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_lodash","require","_constants","_parameter","_interopRequireDefault","SelfUtils","PSTN_DEVICE_TYPE","parse","self","deviceId","_joinedWith$intent","joinedWith","devices","find","device","url","pstnDevices","filter","deviceType","remoteVideoMuted","getRemoteVideoMuted","remoteMuted","getRemoteMuted","unmuteAllowed","getUnmuteAllowed","localAudioUnmuteRequested","getLocalAudioUnmuteRequested","localAudioUnmuteRequestedTimeStamp","getLocalAudioUnmuteRequestedTimeStamp","localAudioUnmuteRequired","getLocalAudioUnmuteRequired","lastModified","getLastModified","modifiedBy","getModifiedBy","guest","moderator","mediaStatus","getStatus","status","state","currentMediaStatus","getMediaStatus","mediaSessions","creator","isCreator","selfId","id","selfIdentity","getSelfIdentity","selfUrl","removed","roles","getRoles","isUserUnadmitted","_IDLE_","intent","type","_WAIT_","layout","getLayout","canNotViewTheParticipantList","isSharingBlocked","breakoutSessions","getBreakoutSessions","breakout","getBreakout","interpretation","getInterpretation","_self$controls","_self$controls$breako","controls","sessions","_self$controls2","_self$controls3","_self$controls4","_isArray","default","layouts","undefined","_self$controls5","_self$controls5$role","role","reduce","hasRole","push","getSelves","oldSelf","newSelf","previous","current","updates","isUserAdmitted","isVideoMutedByOthersChanged","videoMutedByOthersChanged","isMutedByOthersChanged","mutedByOthersChanged","localAudioUnmuteRequestedByServer","localAudioUnmuteRequiredByServer","moderatorChanged","isRolesChanged","isMediaInactiveOrReleased","wasMediaInactiveOrReleased","isUserObserving","isDeviceObserving","layoutChanged","isMediaInactive","audioStateChange","audio","videoStateChange","video","shareStateChange","share","canNotViewTheParticipantListChanged","isSharingBlockedChanged","breakoutsChanged","interpretationChanged","isJoined","_JOINED_","isEqual","previousMediaStatus","MEDIA_STATE","inactive","direction","meta","person","muted","_self$controls6","_self$controls6$audio","requestedToUnmute","_self$controls7","_self$controls7$audio","Date","lastModifiedRequestedToUnmute","disallowUnmute","_self$controls8","_self$controls8$audio","audioStatus","videoStatus","slides","videoSlidesStatus","arguments","length","changedSelf","_LEFT_","reason","MEETING_END_REASON","INACTIVE","MEDIA_RELEASED","isLocusUserUnadmitted","check","_check$joinedWith","_check$joinedWith$int","isLocusUserAdmitted","_check$joinedWith2","_check$joinedWith2$in","ParameterError","_oldSelf$joinedWith","_oldSelf$joinedWith$i","_changedSelf$joinedWi","_changedSelf$joinedWi2","_MOVE_MEDIA_","_OBSERVE_","getSipUrl","partner","sipUri","_CALL_","sipUrl","media","mediaType","AUDIO","mediaContent","MediaContent","main","VIDEO","getReplacedBreakoutMoveId","joinedDevice","replaces","_joinedDevice$replace","breakoutMoveId","_default","exports"],"sources":["selfUtils.ts"],"sourcesContent":["/* eslint-disable default-param-last */\n\nimport {isEqual} from 'lodash';\nimport {\n _IDLE_,\n _JOINED_,\n _CALL_,\n _WAIT_,\n _MOVE_MEDIA_,\n _OBSERVE_,\n _LEFT_,\n MEETING_END_REASON,\n MEDIA_STATE,\n AUDIO,\n VIDEO,\n MediaContent,\n} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\nconst SelfUtils: any = {};\nconst PSTN_DEVICE_TYPE = 'PROVISIONAL';\n\n/**\n * parses the relevant values for self: muted, guest, moderator, mediaStatus, state, joinedWith, pstnDevices, creator, id\n * @param {Object} self\n * @param {String} deviceId\n * @returns {undefined}\n */\nSelfUtils.parse = (self: any, deviceId: string) => {\n if (self) {\n const joinedWith = self.devices.find((device) => deviceId === device.url);\n const pstnDevices = self.devices.filter((device) => PSTN_DEVICE_TYPE === device.deviceType);\n\n return {\n remoteVideoMuted: SelfUtils.getRemoteVideoMuted(self),\n remoteMuted: SelfUtils.getRemoteMuted(self),\n unmuteAllowed: SelfUtils.getUnmuteAllowed(self),\n localAudioUnmuteRequested: SelfUtils.getLocalAudioUnmuteRequested(self),\n localAudioUnmuteRequestedTimeStamp: SelfUtils.getLocalAudioUnmuteRequestedTimeStamp(self),\n localAudioUnmuteRequired: SelfUtils.getLocalAudioUnmuteRequired(self),\n lastModified: SelfUtils.getLastModified(self),\n modifiedBy: SelfUtils.getModifiedBy(self),\n guest: self.guest,\n moderator: self.moderator,\n // cumulative media stats\n mediaStatus: SelfUtils.getStatus(self.status),\n // TODO: what should be the status if user has refreshed the page,\n // check the joinedWith parameter and communicate to the user\n state: self.state,\n // TODO: give a proper name . With same device as login or different login`\n // Some times we might have joined with both mobile and web\n joinedWith,\n pstnDevices,\n // current media stats is for the current device who has joined\n currentMediaStatus: SelfUtils.getMediaStatus(joinedWith?.mediaSessions),\n creator: self.isCreator, // check if its used,\n selfId: self.id,\n selfIdentity: SelfUtils.getSelfIdentity(self),\n selfUrl: self.url,\n removed: self.removed,\n roles: SelfUtils.getRoles(self),\n isUserUnadmitted: self.state === _IDLE_ && joinedWith?.intent?.type === _WAIT_,\n layout: SelfUtils.getLayout(self),\n canNotViewTheParticipantList: SelfUtils.canNotViewTheParticipantList(self),\n isSharingBlocked: SelfUtils.isSharingBlocked(self),\n breakoutSessions: SelfUtils.getBreakoutSessions(self),\n breakout: SelfUtils.getBreakout(self),\n interpretation: SelfUtils.getInterpretation(self),\n };\n }\n\n return null;\n};\n\nSelfUtils.getBreakoutSessions = (self) => self?.controls?.breakout?.sessions;\nSelfUtils.getBreakout = (self) => self?.controls?.breakout;\nSelfUtils.getInterpretation = (self) => self?.controls?.interpretation;\n\nSelfUtils.getLayout = (self) =>\n Array.isArray(self?.controls?.layouts) ? self.controls.layouts[0].type : undefined;\n\nSelfUtils.getRoles = (self) =>\n (self?.controls?.role?.roles || []).reduce((roles, role) => {\n if (role.hasRole) {\n roles.push(role.type);\n }\n\n return roles;\n }, []);\n\nSelfUtils.canNotViewTheParticipantList = (self) => !!self?.canNotViewTheParticipantList;\n\nSelfUtils.isSharingBlocked = (self) => !!self?.isSharingBlocked;\n\nSelfUtils.getSelves = (oldSelf, newSelf, deviceId) => {\n const previous = oldSelf && SelfUtils.parse(oldSelf, deviceId);\n const current = newSelf && SelfUtils.parse(newSelf, deviceId);\n const updates: any = {};\n\n updates.isUserUnadmitted = SelfUtils.isUserUnadmitted(current);\n updates.isUserAdmitted = SelfUtils.isUserAdmitted(previous, current);\n updates.isVideoMutedByOthersChanged = SelfUtils.videoMutedByOthersChanged(previous, current);\n updates.isMutedByOthersChanged = SelfUtils.mutedByOthersChanged(previous, current);\n updates.localAudioUnmuteRequestedByServer = SelfUtils.localAudioUnmuteRequestedByServer(\n previous,\n current\n );\n updates.localAudioUnmuteRequiredByServer = SelfUtils.localAudioUnmuteRequiredByServer(\n previous,\n current\n );\n updates.moderatorChanged = SelfUtils.moderatorChanged(previous, current);\n updates.isRolesChanged = SelfUtils.isRolesChanged(previous, current);\n updates.isMediaInactiveOrReleased = SelfUtils.wasMediaInactiveOrReleased(previous, current);\n updates.isUserObserving = SelfUtils.isDeviceObserving(previous, current);\n updates.layoutChanged = SelfUtils.layoutChanged(previous, current);\n\n updates.isMediaInactive = SelfUtils.isMediaInactive(previous, current);\n updates.audioStateChange =\n previous?.currentMediaStatus.audio !== current.currentMediaStatus.audio;\n updates.videoStateChange =\n previous?.currentMediaStatus.video !== current.currentMediaStatus.video;\n updates.shareStateChange =\n previous?.currentMediaStatus.share !== current.currentMediaStatus.share;\n\n updates.canNotViewTheParticipantListChanged =\n previous?.canNotViewTheParticipantList !== current.canNotViewTheParticipantList;\n updates.isSharingBlockedChanged = previous?.isSharingBlocked !== current.isSharingBlocked;\n updates.breakoutsChanged = SelfUtils.breakoutsChanged(previous, current);\n updates.interpretationChanged = SelfUtils.interpretationChanged(previous, current);\n\n return {\n previous,\n current,\n updates,\n };\n};\n\n/**\n * Checks if user has joined the meeting\n * @param {Object} self\n * @returns {boolean} isJoined\n */\nSelfUtils.isJoined = (self: any) => self?.state === _JOINED_;\n\n/**\n * Validate if the Meeting Layout Controls Layout has changed.\n *\n * @param {Self} previous - Previous self state\n * @param {Self} current - Current self state [per event]\n * @returns {boolean} - If the Meeting Layout Controls Layout has changed.\n */\nSelfUtils.layoutChanged = (previous: any, current: any) =>\n current?.layout && previous?.layout !== current?.layout;\n\nSelfUtils.breakoutsChanged = (previous, current) =>\n !isEqual(previous?.breakoutSessions, current?.breakoutSessions) && !!current?.breakout;\n\nSelfUtils.interpretationChanged = (previous, current) =>\n !isEqual(previous?.interpretation, current?.interpretation) && !!current?.interpretation;\n\nSelfUtils.isMediaInactive = (previous, current) => {\n if (\n previous &&\n previous.joinedWith &&\n previous.joinedWith.mediaSessions &&\n current &&\n current.joinedWith &&\n current.joinedWith.mediaSessions\n ) {\n const previousMediaStatus = SelfUtils.getMediaStatus(previous.joinedWith.mediaSessions);\n const currentMediaStatus = SelfUtils.getMediaStatus(current.joinedWith.mediaSessions);\n\n if (\n previousMediaStatus.audio &&\n currentMediaStatus.audio &&\n previousMediaStatus.audio.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.audio.state === MEDIA_STATE.inactive &&\n currentMediaStatus.audio.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n if (\n previousMediaStatus.video &&\n currentMediaStatus.video &&\n previousMediaStatus.video.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.video.state === MEDIA_STATE.inactive &&\n currentMediaStatus.video.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n if (\n previousMediaStatus.share &&\n currentMediaStatus.share &&\n previousMediaStatus.share.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.share.state === MEDIA_STATE.inactive &&\n currentMediaStatus.share.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n return false;\n }\n\n return false;\n};\n\nSelfUtils.getLastModified = (self) => {\n if (\n !self ||\n !self.controls ||\n !self.controls.audio ||\n !self.controls.audio.meta ||\n !self.controls.audio.meta.lastModified\n ) {\n return null;\n }\n\n return self.controls.audio.meta.lastModified;\n};\n\nSelfUtils.getModifiedBy = (self) => {\n if (\n !self ||\n !self.controls ||\n !self.controls.audio ||\n !self.controls.audio.meta ||\n !self.controls.audio.meta.modifiedBy\n ) {\n return null;\n }\n\n return self.controls.audio.meta.modifiedBy;\n};\n\n/**\n * get the id from the self object\n * @param {Object} self\n * @returns {String}\n */\nSelfUtils.getSelfIdentity = (self: any) => {\n if (!self && !self.person) {\n return null;\n }\n\n return self.person.id;\n};\n\n/**\n * get the \"remote video mute\" property from the self object\n * @param {Object} self\n * @returns {Boolean}\n */\nSelfUtils.getRemoteVideoMuted = (self: any) => {\n if (!self || !self.controls || !self.controls.video) {\n return null;\n }\n\n return self.controls.video.muted;\n};\n\n/**\n * get the \"remote mute\" property from the self object\n * @param {Object} self\n * @returns {Boolean}\n */\nSelfUtils.getRemoteMuted = (self: any) => {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n\n return self.controls.audio.muted;\n};\n\nSelfUtils.getLocalAudioUnmuteRequested = (self) => !!self?.controls?.audio?.requestedToUnmute;\n\n// requestedToUnmute timestamp\nSelfUtils.getLocalAudioUnmuteRequestedTimeStamp = (self) =>\n Date.parse(self?.controls?.audio?.lastModifiedRequestedToUnmute) || 0;\n\nSelfUtils.getUnmuteAllowed = (self) => {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n\n return !self.controls.audio.disallowUnmute;\n};\n\nSelfUtils.getLocalAudioUnmuteRequired = (self) => !!self?.controls?.audio?.localAudioUnmuteRequired;\n\nSelfUtils.getStatus = (status) => ({\n audio: status.audioStatus,\n video: status.videoStatus,\n slides: status.videoSlidesStatus,\n});\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n */\nSelfUtils.wasMediaInactiveOrReleased = (oldSelf: any = {}, changedSelf: any) =>\n oldSelf.joinedWith &&\n oldSelf.joinedWith.state === _JOINED_ &&\n changedSelf.joinedWith &&\n changedSelf.joinedWith.state === _LEFT_ &&\n (changedSelf.joinedWith.reason === MEETING_END_REASON.INACTIVE ||\n changedSelf.joinedWith.reason === MEETING_END_REASON.MEDIA_RELEASED);\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserUnadmitted = (check: any) =>\n check && check.joinedWith?.intent?.type === _WAIT_ && check.state === _IDLE_;\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserAdmitted = (check: any) =>\n check && check.joinedWith?.intent?.type !== _WAIT_ && check.state === _JOINED_;\n\n/**\n * @param {Object} self\n * @returns {Boolean}\n * @throws {Error} when self is undefined\n */\nSelfUtils.isUserUnadmitted = (self: object) => {\n if (!self) {\n throw new ParameterError('self must be defined to determine if self is unadmitted as guest.');\n }\n\n return SelfUtils.isLocusUserUnadmitted(self);\n};\n\nSelfUtils.moderatorChanged = (oldSelf, changedSelf) => {\n if (!oldSelf) {\n return true;\n }\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self transitioned moderator status.'\n );\n }\n\n return oldSelf.moderator !== changedSelf.moderator;\n};\n\n/**\n * determine whether the roles of self is changed or not\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n */\nSelfUtils.isRolesChanged = (oldSelf, changedSelf) => {\n if (!changedSelf) {\n // no new self means no change\n return false;\n }\n\n return !isEqual(oldSelf?.roles, changedSelf?.roles);\n};\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isDeviceObserving = (oldSelf: any, changedSelf: any) =>\n oldSelf &&\n oldSelf.joinedWith?.intent?.type === _MOVE_MEDIA_ &&\n changedSelf &&\n changedSelf.joinedWith?.intent?.type === _OBSERVE_;\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isUserAdmitted = (oldSelf: object, changedSelf: object) => {\n if (!oldSelf) {\n // if there was no previous locus, it couldn't have been admitted yet\n return false;\n }\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self transitioned to admitted as guest.'\n );\n }\n\n return SelfUtils.isLocusUserUnadmitted(oldSelf) && SelfUtils.isLocusUserAdmitted(changedSelf);\n};\n\nSelfUtils.videoMutedByOthersChanged = (oldSelf, changedSelf) => {\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self was video muted by others.'\n );\n }\n\n if (!oldSelf || oldSelf.remoteVideoMuted === null) {\n if (changedSelf.remoteVideoMuted) {\n return true; // this happens when host disables \"Allow start video\"\n }\n\n // we don't want to be sending the 'meeting:self:videoUnmutedByOthers' notification on meeting join\n return false;\n }\n\n return oldSelf.remoteVideoMuted !== changedSelf.remoteVideoMuted;\n};\n\nSelfUtils.mutedByOthersChanged = (oldSelf, changedSelf) => {\n if (!changedSelf) {\n throw new ParameterError('New self must be defined to determine if self was muted by others.');\n }\n\n if (!oldSelf || oldSelf.remoteMuted === null) {\n if (changedSelf.remoteMuted) {\n return true; // this happens when mute on-entry is enabled\n }\n\n // we don't want to be sending the 'meeting:self:unmutedByOthers' notification on meeting join\n return false;\n }\n\n // there is no need to trigger user update if no one muted user\n if (changedSelf.selfIdentity === changedSelf.modifiedBy) {\n return false;\n }\n\n return (\n changedSelf.remoteMuted !== null &&\n (oldSelf.remoteMuted !== changedSelf.remoteMuted ||\n (changedSelf.remoteMuted && oldSelf.unmuteAllowed !== changedSelf.unmuteAllowed))\n );\n};\n\nSelfUtils.localAudioUnmuteRequestedByServer = (oldSelf: any = {}, changedSelf: any) => {\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self received request to unmute.'\n );\n }\n\n return (\n changedSelf.localAudioUnmuteRequested &&\n changedSelf.localAudioUnmuteRequestedTimeStamp > oldSelf.localAudioUnmuteRequestedTimeStamp\n );\n};\n\nSelfUtils.localAudioUnmuteRequiredByServer = (oldSelf: any = {}, changedSelf: any) => {\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if localAudioUnmuteRequired changed.'\n );\n }\n\n return (\n !changedSelf.remoteMuted &&\n changedSelf.localAudioUnmuteRequired &&\n oldSelf.localAudioUnmuteRequired !== changedSelf.localAudioUnmuteRequired\n );\n};\n\n/**\n * extract the sipUrl from the partner\n * @param {Object} partner\n * @param {Object} info\n * @returns {Object}\n */\n\nSelfUtils.getSipUrl = (partner: any, type, sipUri) => {\n // For webex meeting the sipUrl gets updated in info parser\n if (partner && type === _CALL_) {\n return {sipUri: partner.person.sipUrl || partner.person.id};\n }\n\n return {sipUri};\n};\n\nSelfUtils.getMediaStatus = (mediaSessions = []) => {\n const mediaStatus = {\n audio: {},\n video: {},\n share: {},\n };\n\n mediaStatus.audio = mediaSessions.find(\n (media) => media.mediaType === AUDIO && media.mediaContent === MediaContent.main\n );\n mediaStatus.video = mediaSessions.find(\n (media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.main\n );\n mediaStatus.share = mediaSessions.find(\n (media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.slides\n );\n\n return mediaStatus;\n};\n\nSelfUtils.getReplacedBreakoutMoveId = (self: any, deviceId: string) => {\n if (self && Array.isArray(self.devices)) {\n const joinedDevice = self.devices.find((device) => deviceId === device.url);\n if (Array.isArray(joinedDevice?.replaces)) {\n return joinedDevice.replaces[0]?.breakoutMoveId;\n }\n }\n\n return null;\n};\nexport default SelfUtils;\n"],"mappings":"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"}
|
package/dist/webinar/index.js
CHANGED
|
@@ -62,7 +62,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
62
62
|
updateCanManageWebcast: function updateCanManageWebcast(canManageWebcast) {
|
|
63
63
|
this.set('canManageWebcast', canManageWebcast);
|
|
64
64
|
},
|
|
65
|
-
version: "3.0.0-next.
|
|
65
|
+
version: "3.0.0-next.30"
|
|
66
66
|
});
|
|
67
67
|
var _default = exports.default = Webinar;
|
|
68
68
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@webex/eslint-config-legacy": "0.0.0",
|
|
44
44
|
"@webex/jest-config-legacy": "0.0.0",
|
|
45
45
|
"@webex/legacy-tools": "0.0.0",
|
|
46
|
-
"@webex/plugin-meetings": "3.0.0-next.
|
|
46
|
+
"@webex/plugin-meetings": "3.0.0-next.30",
|
|
47
47
|
"@webex/plugin-rooms": "3.0.0-next.16",
|
|
48
48
|
"@webex/test-helper-chai": "3.0.0-next.14",
|
|
49
49
|
"@webex/test-helper-mocha": "3.0.0-next.14",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"@webex/internal-plugin-metrics": "3.0.0-next.14",
|
|
71
71
|
"@webex/internal-plugin-support": "3.0.0-next.16",
|
|
72
72
|
"@webex/internal-plugin-user": "3.0.0-next.14",
|
|
73
|
-
"@webex/internal-plugin-voicea": "3.0.0-next.
|
|
73
|
+
"@webex/internal-plugin-voicea": "3.0.0-next.30",
|
|
74
74
|
"@webex/media-helpers": "3.0.1-next.17",
|
|
75
75
|
"@webex/plugin-people": "3.0.0-next.16",
|
|
76
76
|
"@webex/plugin-rooms": "3.0.0-next.16",
|
|
@@ -91,5 +91,5 @@
|
|
|
91
91
|
"//": [
|
|
92
92
|
"TODO: upgrade jwt-decode when moving to node 18"
|
|
93
93
|
],
|
|
94
|
-
"version": "3.0.0-next.
|
|
94
|
+
"version": "3.0.0-next.30"
|
|
95
95
|
}
|
|
@@ -428,6 +428,11 @@ SelfUtils.mutedByOthersChanged = (oldSelf, changedSelf) => {
|
|
|
428
428
|
return false;
|
|
429
429
|
}
|
|
430
430
|
|
|
431
|
+
// there is no need to trigger user update if no one muted user
|
|
432
|
+
if (changedSelf.selfIdentity === changedSelf.modifiedBy) {
|
|
433
|
+
return false;
|
|
434
|
+
}
|
|
435
|
+
|
|
431
436
|
return (
|
|
432
437
|
changedSelf.remoteMuted !== null &&
|
|
433
438
|
(oldSelf.remoteMuted !== changedSelf.remoteMuted ||
|
|
@@ -344,6 +344,41 @@ describe('plugin-meetings', () => {
|
|
|
344
344
|
});
|
|
345
345
|
});
|
|
346
346
|
|
|
347
|
+
describe('mutedByOthersChanged', () => {
|
|
348
|
+
it('throws an error if changedSelf is not provided', function() {
|
|
349
|
+
assert.throws(() => SelfUtils.mutedByOthersChanged({}, null), 'New self must be defined to determine if self was muted by others.');
|
|
350
|
+
});
|
|
351
|
+
|
|
352
|
+
it('return false when oldSelf is not defined', function() {
|
|
353
|
+
assert.equal(SelfUtils.mutedByOthersChanged(null, { remoteMuted: false }), false);
|
|
354
|
+
});
|
|
355
|
+
|
|
356
|
+
it('should return true when remoteMuted is true on entry', function() {
|
|
357
|
+
assert.equal(SelfUtils.mutedByOthersChanged(null, { remoteMuted: true }), true);
|
|
358
|
+
});
|
|
359
|
+
|
|
360
|
+
it('should return false when selfIdentity and modifiedBy are the same', function() {
|
|
361
|
+
assert.equal(SelfUtils.mutedByOthersChanged(
|
|
362
|
+
{ remoteMuted: false },
|
|
363
|
+
{ remoteMuted: true, selfIdentity: 'user1', modifiedBy: 'user1' }
|
|
364
|
+
), false);
|
|
365
|
+
});
|
|
366
|
+
|
|
367
|
+
it('should return true when remoteMuted values are different', function() {
|
|
368
|
+
assert.equal(SelfUtils.mutedByOthersChanged(
|
|
369
|
+
{ remoteMuted: false },
|
|
370
|
+
{ remoteMuted: true, selfIdentity: 'user1', modifiedBy: 'user2' }
|
|
371
|
+
), true);
|
|
372
|
+
});
|
|
373
|
+
|
|
374
|
+
it('should return true when remoteMuted is true and unmuteAllowed has changed', function() {
|
|
375
|
+
assert.equal(SelfUtils.mutedByOthersChanged(
|
|
376
|
+
{ remoteMuted: true, unmuteAllowed: false },
|
|
377
|
+
{ remoteMuted: true, unmuteAllowed: true, selfIdentity: 'user1', modifiedBy: 'user2' }
|
|
378
|
+
), true);
|
|
379
|
+
});
|
|
380
|
+
});
|
|
381
|
+
|
|
347
382
|
describe('videoMutedByOthersChanged', () => {
|
|
348
383
|
it('returns true if changed', () => {
|
|
349
384
|
assert.equal(
|