@webex/plugin-meetings 2.2.2 → 2.3.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.
@@ -1 +1 @@
1
- {"version":3,"names":["SelfUtils","PSTN_DEVICE_TYPE","parse","self","deviceId","joinedWith","devices","find","device","url","pstnDevices","filter","deviceType","remoteMuted","getRemoteMuted","unmuteAllowed","getUnmuteAllowed","localAudioUnmuteRequested","getLocalAudioUnmuteRequested","localAudioUnmuteRequired","getLocalAudioUnmuteRequired","lastModified","getLastModified","modifiedBy","getModifiedBy","guest","moderator","mediaStatus","getStatus","status","state","currentMediaStatus","getMediaStatus","mediaSessions","creator","isCreator","selfId","id","selfIdentity","getSelfIdentity","selfUrl","removed","getSelves","oldSelf","newSelf","previous","current","updates","isUnadmittedGuest","isAdmittedGuest","isMutedByOthersChanged","mutedByOthersChanged","localAudioUnmuteRequestedByServer","localAudioUnmuteRequiredByServer","moderatorChanged","isMediaInactiveOrReleased","wasMediaInactiveOrReleased","isMediaInactive","audioStateChange","audio","videoStateChange","video","shareStateChange","share","previousMediaStatus","MEDIA_STATE","inactive","direction","controls","meta","person","muted","requestedToUnmute","disallowUnmute","audioStatus","videoStatus","slides","videoSlidesStatus","changedSelf","_JOINED_","_LEFT_","reason","MEETING_END_REASON","INACTIVE","MEDIA_RELEASED","isLocusGuestUnadmitted","check","intent","type","_WAIT_","_IDLE_","isLocusGuestAdmitted","ParameterError","getSipUrl","partner","sipUri","_CALL_","sipUrl","media","mediaType","AUDIO","mediaContent","MediaContent","main","VIDEO"],"sources":["selfUtils.js"],"sourcesContent":["\nimport {\n _IDLE_,\n _JOINED_,\n _CALL_,\n _WAIT_,\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 = {};\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, deviceId) => {\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 remoteMuted: SelfUtils.getRemoteMuted(self),\n unmuteAllowed: SelfUtils.getUnmuteAllowed(self),\n localAudioUnmuteRequested: SelfUtils.getLocalAudioUnmuteRequested(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(\n joinedWith?.mediaSessions\n ),\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 };\n }\n\n return null;\n};\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 = {};\n\n updates.isUnadmittedGuest = SelfUtils.isUnadmittedGuest(current);\n updates.isAdmittedGuest = SelfUtils.isAdmittedGuest(previous, current);\n updates.isMutedByOthersChanged = SelfUtils.mutedByOthersChanged(previous, current);\n updates.localAudioUnmuteRequestedByServer = SelfUtils.localAudioUnmuteRequestedByServer(previous, current);\n updates.localAudioUnmuteRequiredByServer = SelfUtils.localAudioUnmuteRequiredByServer(previous, current);\n updates.moderatorChanged = SelfUtils.moderatorChanged(previous, current);\n updates.isMediaInactiveOrReleased = SelfUtils.wasMediaInactiveOrReleased(previous, current);\n\n updates.isMediaInactive = SelfUtils.isMediaInactive(previous, current);\n updates.audioStateChange = previous?.currentMediaStatus.audio !== current.currentMediaStatus.audio;\n updates.videoStateChange = previous?.currentMediaStatus.video !== current.currentMediaStatus.video;\n updates.shareStateChange = previous?.currentMediaStatus.share !== current.currentMediaStatus.share;\n\n return {\n previous,\n current,\n updates\n };\n};\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(\n previous.joinedWith.mediaSessions\n );\n const currentMediaStatus = SelfUtils.getMediaStatus(\n current.joinedWith.mediaSessions\n );\n\n if (\n previousMediaStatus.audio && 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 && 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 && 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 (!self || !self.controls || !self.controls.audio || !self.controls.audio.meta || !self.controls.audio.meta.lastModified) {\n return null;\n }\n\n return self.controls.audio.meta.lastModified;\n};\n\nSelfUtils.getModifiedBy = (self) => {\n if (!self || !self.controls || !self.controls.audio || !self.controls.audio.meta || !self.controls.audio.meta.modifiedBy) {\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) => {\n if (!self && !self.person) {\n return null;\n }\n\n return self.person.id;\n};\n\n/**\n * get the \"remote mute\" property from the self object\n * @param {Object} self\n * @returns {Boolean}\n */\nSelfUtils.getRemoteMuted = (self) => {\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\nSelfUtils.getUnmuteAllowed = (self) => {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n\n return !self.controls.audio.disallowUnmute;\n};\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/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n */\nSelfUtils.wasMediaInactiveOrReleased = (oldSelf = {}, changedSelf) => oldSelf.joinedWith && oldSelf.joinedWith.state === _JOINED_ && changedSelf.joinedWith.state === _LEFT_ &&\n (changedSelf.joinedWith.reason === MEETING_END_REASON.INACTIVE || changedSelf.joinedWith.reason === MEETING_END_REASON.MEDIA_RELEASED);\n\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusGuestUnadmitted = (check) => check && check.joinedWith?.intent?.type === _WAIT_ && check.state === _IDLE_;\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusGuestAdmitted = (check) => 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.isUnadmittedGuest = (self) => {\n if (!self) {\n throw new ParameterError('self must be defined to determine if self is unadmitted as guest.');\n }\n\n return SelfUtils.isLocusGuestUnadmitted(self);\n};\n\nSelfUtils.moderatorChanged = (oldSelf, changedSelf) => {\n if (!oldSelf) {\n return true;\n }\n if (!changedSelf) {\n throw new ParameterError('New self must be defined to determine if self transitioned moderator status.');\n }\n\n return oldSelf.moderator !== changedSelf.moderator;\n};\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isAdmittedGuest = (oldSelf, changedSelf) => {\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('New self must be defined to determine if self transitioned to admitted as guest.');\n }\n\n return SelfUtils.isLocusGuestUnadmitted(oldSelf) && SelfUtils.isLocusGuestAdmitted(changedSelf);\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 (changedSelf.remoteMuted !== null) &&\n ((oldSelf.remoteMuted !== changedSelf.remoteMuted) || (changedSelf.remoteMuted && (oldSelf.unmuteAllowed !== changedSelf.unmuteAllowed)));\n};\n\nSelfUtils.localAudioUnmuteRequestedByServer = (oldSelf = {}, changedSelf) => {\n if (!changedSelf) {\n throw new ParameterError('New self must be defined to determine if self received request to unmute.');\n }\n\n return changedSelf.localAudioUnmuteRequested && !oldSelf.localAudioUnmuteRequested;\n};\n\n\nSelfUtils.localAudioUnmuteRequiredByServer = (oldSelf = {}, changedSelf) => {\n if (!changedSelf) {\n throw new ParameterError('New self must be defined to determine if localAudioUnmuteRequired changed.');\n }\n\n return !changedSelf.remoteMuted && changedSelf.localAudioUnmuteRequired && (oldSelf.localAudioUnmuteRequired !== changedSelf.localAudioUnmuteRequired);\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, 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((media) => media.mediaType === AUDIO && media.mediaContent === MediaContent.main);\n mediaStatus.video = mediaSessions.find((media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.main);\n mediaStatus.share = mediaSessions.find((media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.slides);\n\n return mediaStatus;\n};\n\n\nexport default SelfUtils;\n"],"mappings":"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"}
1
+ {"version":3,"names":["SelfUtils","PSTN_DEVICE_TYPE","parse","self","deviceId","joinedWith","devices","find","device","url","pstnDevices","filter","deviceType","remoteMuted","getRemoteMuted","unmuteAllowed","getUnmuteAllowed","localAudioUnmuteRequested","getLocalAudioUnmuteRequested","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","controls","role","reduce","hasRole","push","type","getSelves","oldSelf","newSelf","previous","current","updates","isUnadmittedGuest","isAdmittedGuest","isMutedByOthersChanged","mutedByOthersChanged","localAudioUnmuteRequestedByServer","localAudioUnmuteRequiredByServer","moderatorChanged","isMediaInactiveOrReleased","wasMediaInactiveOrReleased","isMediaInactive","audioStateChange","audio","videoStateChange","video","shareStateChange","share","previousMediaStatus","MEDIA_STATE","inactive","direction","meta","person","muted","requestedToUnmute","disallowUnmute","audioStatus","videoStatus","slides","videoSlidesStatus","changedSelf","_JOINED_","_LEFT_","reason","MEETING_END_REASON","INACTIVE","MEDIA_RELEASED","isLocusGuestUnadmitted","check","intent","_WAIT_","_IDLE_","isLocusGuestAdmitted","ParameterError","getSipUrl","partner","sipUri","_CALL_","sipUrl","media","mediaType","AUDIO","mediaContent","MediaContent","main","VIDEO"],"sources":["selfUtils.js"],"sourcesContent":["\nimport {\n _IDLE_,\n _JOINED_,\n _CALL_,\n _WAIT_,\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 = {};\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, deviceId) => {\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 remoteMuted: SelfUtils.getRemoteMuted(self),\n unmuteAllowed: SelfUtils.getUnmuteAllowed(self),\n localAudioUnmuteRequested: SelfUtils.getLocalAudioUnmuteRequested(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(\n joinedWith?.mediaSessions\n ),\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 };\n }\n\n return null;\n};\n\nSelfUtils.getRoles = (self) => (self?.controls?.role?.roles || []).reduce((roles, role) => {\n if (role.hasRole) {\n roles.push(role.type);\n }\n\n return roles;\n}, []);\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 = {};\n\n updates.isUnadmittedGuest = SelfUtils.isUnadmittedGuest(current);\n updates.isAdmittedGuest = SelfUtils.isAdmittedGuest(previous, current);\n updates.isMutedByOthersChanged = SelfUtils.mutedByOthersChanged(previous, current);\n updates.localAudioUnmuteRequestedByServer = SelfUtils.localAudioUnmuteRequestedByServer(previous, current);\n updates.localAudioUnmuteRequiredByServer = SelfUtils.localAudioUnmuteRequiredByServer(previous, current);\n updates.moderatorChanged = SelfUtils.moderatorChanged(previous, current);\n updates.isMediaInactiveOrReleased = SelfUtils.wasMediaInactiveOrReleased(previous, current);\n\n updates.isMediaInactive = SelfUtils.isMediaInactive(previous, current);\n updates.audioStateChange = previous?.currentMediaStatus.audio !== current.currentMediaStatus.audio;\n updates.videoStateChange = previous?.currentMediaStatus.video !== current.currentMediaStatus.video;\n updates.shareStateChange = previous?.currentMediaStatus.share !== current.currentMediaStatus.share;\n\n return {\n previous,\n current,\n updates\n };\n};\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(\n previous.joinedWith.mediaSessions\n );\n const currentMediaStatus = SelfUtils.getMediaStatus(\n current.joinedWith.mediaSessions\n );\n\n if (\n previousMediaStatus.audio && 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 && 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 && 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 (!self || !self.controls || !self.controls.audio || !self.controls.audio.meta || !self.controls.audio.meta.lastModified) {\n return null;\n }\n\n return self.controls.audio.meta.lastModified;\n};\n\nSelfUtils.getModifiedBy = (self) => {\n if (!self || !self.controls || !self.controls.audio || !self.controls.audio.meta || !self.controls.audio.meta.modifiedBy) {\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) => {\n if (!self && !self.person) {\n return null;\n }\n\n return self.person.id;\n};\n\n/**\n * get the \"remote mute\" property from the self object\n * @param {Object} self\n * @returns {Boolean}\n */\nSelfUtils.getRemoteMuted = (self) => {\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\nSelfUtils.getUnmuteAllowed = (self) => {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n\n return !self.controls.audio.disallowUnmute;\n};\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/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n */\nSelfUtils.wasMediaInactiveOrReleased = (oldSelf = {}, changedSelf) => oldSelf.joinedWith && oldSelf.joinedWith.state === _JOINED_ && changedSelf.joinedWith.state === _LEFT_ &&\n (changedSelf.joinedWith.reason === MEETING_END_REASON.INACTIVE || changedSelf.joinedWith.reason === MEETING_END_REASON.MEDIA_RELEASED);\n\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusGuestUnadmitted = (check) => check && check.joinedWith?.intent?.type === _WAIT_ && check.state === _IDLE_;\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusGuestAdmitted = (check) => 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.isUnadmittedGuest = (self) => {\n if (!self) {\n throw new ParameterError('self must be defined to determine if self is unadmitted as guest.');\n }\n\n return SelfUtils.isLocusGuestUnadmitted(self);\n};\n\nSelfUtils.moderatorChanged = (oldSelf, changedSelf) => {\n if (!oldSelf) {\n return true;\n }\n if (!changedSelf) {\n throw new ParameterError('New self must be defined to determine if self transitioned moderator status.');\n }\n\n return oldSelf.moderator !== changedSelf.moderator;\n};\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isAdmittedGuest = (oldSelf, changedSelf) => {\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('New self must be defined to determine if self transitioned to admitted as guest.');\n }\n\n return SelfUtils.isLocusGuestUnadmitted(oldSelf) && SelfUtils.isLocusGuestAdmitted(changedSelf);\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 (changedSelf.remoteMuted !== null) &&\n ((oldSelf.remoteMuted !== changedSelf.remoteMuted) || (changedSelf.remoteMuted && (oldSelf.unmuteAllowed !== changedSelf.unmuteAllowed)));\n};\n\nSelfUtils.localAudioUnmuteRequestedByServer = (oldSelf = {}, changedSelf) => {\n if (!changedSelf) {\n throw new ParameterError('New self must be defined to determine if self received request to unmute.');\n }\n\n return changedSelf.localAudioUnmuteRequested && !oldSelf.localAudioUnmuteRequested;\n};\n\n\nSelfUtils.localAudioUnmuteRequiredByServer = (oldSelf = {}, changedSelf) => {\n if (!changedSelf) {\n throw new ParameterError('New self must be defined to determine if localAudioUnmuteRequired changed.');\n }\n\n return !changedSelf.remoteMuted && changedSelf.localAudioUnmuteRequired && (oldSelf.localAudioUnmuteRequired !== changedSelf.localAudioUnmuteRequired);\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, 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((media) => media.mediaType === AUDIO && media.mediaContent === MediaContent.main);\n mediaStatus.video = mediaSessions.find((media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.main);\n mediaStatus.share = mediaSessions.find((media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.slides);\n\n return mediaStatus;\n};\n\n\nexport default SelfUtils;\n"],"mappings":"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"}
@@ -10,6 +10,8 @@ _Object$defineProperty(exports, "__esModule", {
10
10
 
11
11
  exports.default = void 0;
12
12
 
13
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
14
+
13
15
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
14
16
 
15
17
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
@@ -32,37 +34,41 @@ var InMeetingActions = /*#__PURE__*/function () {
32
34
  this.canLock = null;
33
35
  this.canUnlock = null;
34
36
  this.canAssignHost = null;
37
+ this.canStartRecording = null;
38
+ this.canPauseRecording = null;
39
+ this.canResumeRecording = null;
40
+ this.canStopRecording = null;
35
41
  }
36
42
 
37
43
  (0, _createClass2.default)(InMeetingActions, [{
38
- key: "setCanLock",
39
- value: function setCanLock(lock) {
40
- this.canLock = lock;
41
- }
42
- }, {
43
- key: "setCanUnlock",
44
- value: function setCanUnlock(unlock) {
45
- this.canUnlock = unlock;
44
+ key: "get",
45
+ value: function get() {
46
+ return {
47
+ canLock: this.canLock,
48
+ canUnlock: this.canUnlock,
49
+ canAssignHost: this.canAssignHost,
50
+ canStartRecording: this.canStartRecording,
51
+ canPauseRecording: this.canPauseRecording,
52
+ canResumeRecording: this.canResumeRecording,
53
+ canStopRecording: this.canStopRecording
54
+ };
46
55
  }
47
56
  }, {
48
- key: "setCanAssignHost",
49
- value: function setCanAssignHost(host) {
50
- this.canAssignHost = host;
51
- }
52
- }, {
53
- key: "getCanLock",
54
- value: function getCanLock() {
55
- return this.canLock;
56
- }
57
- }, {
58
- key: "getCanUnlock",
59
- value: function getCanUnlock() {
60
- return this.canUnlock;
61
- }
62
- }, {
63
- key: "getCanAssignHost",
64
- value: function getCanAssignHost() {
65
- return this.canAssignHost;
57
+ key: "set",
58
+ value: function set(actions) {
59
+ var _this = this;
60
+
61
+ var old = this.get();
62
+ var changed = false;
63
+ (0, _keys.default)(old).forEach(function (actionKey) {
64
+ var actionValue = actions[actionKey];
65
+
66
+ if (actionValue !== undefined && actionValue !== old[actionKey]) {
67
+ changed = true;
68
+ _this[actionKey] = actionValue;
69
+ }
70
+ });
71
+ return changed;
66
72
  }
67
73
  }]);
68
74
  return InMeetingActions;
@@ -1 +1 @@
1
- {"version":3,"names":["InMeetingActions","MEETINGS","canLock","canUnlock","canAssignHost","lock","unlock","host"],"sources":["in-meeting-actions.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {\n MEETINGS\n} from '../constants';\n\n/**\n * @class InMeetingActions\n */\nexport default class InMeetingActions {\n namespace = MEETINGS;\n\n constructor() {\n this.canLock = null;\n this.canUnlock = null;\n this.canAssignHost = null;\n }\n\n setCanLock(lock) {\n this.canLock = lock;\n }\n\n setCanUnlock(unlock) {\n this.canUnlock = unlock;\n }\n\n setCanAssignHost(host) {\n this.canAssignHost = host;\n }\n\n getCanLock() {\n return this.canLock;\n }\n\n getCanUnlock() {\n return this.canUnlock;\n }\n\n getCanAssignHost() {\n return this.canAssignHost;\n }\n}\n\n"],"mappings":";;;;;;;;;;;;;;;;;;AAIA;;AAJA;AACA;AACA;;AAMA;AACA;AACA;IACqBA,gB;EAGnB,4BAAc;IAAA;IAAA,iDAFFC,mBAEE;IACZ,KAAKC,OAAL,GAAe,IAAf;IACA,KAAKC,SAAL,GAAiB,IAAjB;IACA,KAAKC,aAAL,GAAqB,IAArB;EACD;;;;WAED,oBAAWC,IAAX,EAAiB;MACf,KAAKH,OAAL,GAAeG,IAAf;IACD;;;WAED,sBAAaC,MAAb,EAAqB;MACnB,KAAKH,SAAL,GAAiBG,MAAjB;IACD;;;WAED,0BAAiBC,IAAjB,EAAuB;MACrB,KAAKH,aAAL,GAAqBG,IAArB;IACD;;;WAED,sBAAa;MACX,OAAO,KAAKL,OAAZ;IACD;;;WAED,wBAAe;MACb,OAAO,KAAKC,SAAZ;IACD;;;WAED,4BAAmB;MACjB,OAAO,KAAKC,aAAZ;IACD"}
1
+ {"version":3,"names":["InMeetingActions","MEETINGS","canLock","canUnlock","canAssignHost","canStartRecording","canPauseRecording","canResumeRecording","canStopRecording","actions","old","get","changed","forEach","actionKey","actionValue","undefined"],"sources":["in-meeting-actions.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {\n MEETINGS\n} from '../constants';\n\n/**\n * @class InMeetingActions\n */\nexport default class InMeetingActions {\n namespace = MEETINGS;\n\n constructor() {\n this.canLock = null;\n this.canUnlock = null;\n this.canAssignHost = null;\n this.canStartRecording = null;\n this.canPauseRecording = null;\n this.canResumeRecording = null;\n this.canStopRecording = null;\n }\n\n get() {\n return {\n canLock: this.canLock,\n canUnlock: this.canUnlock,\n canAssignHost: this.canAssignHost,\n canStartRecording: this.canStartRecording,\n canPauseRecording: this.canPauseRecording,\n canResumeRecording: this.canResumeRecording,\n canStopRecording: this.canStopRecording\n };\n }\n\n set(actions) {\n const old = this.get();\n\n let changed = false;\n\n Object.keys(old).forEach((actionKey) => {\n const actionValue = actions[actionKey];\n\n if (actionValue !== undefined && actionValue !== old[actionKey]) {\n changed = true;\n this[actionKey] = actionValue;\n }\n });\n\n return changed;\n }\n}\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAIA;;AAJA;AACA;AACA;;AAMA;AACA;AACA;IACqBA,gB;EAGnB,4BAAc;IAAA;IAAA,iDAFFC,mBAEE;IACZ,KAAKC,OAAL,GAAe,IAAf;IACA,KAAKC,SAAL,GAAiB,IAAjB;IACA,KAAKC,aAAL,GAAqB,IAArB;IACA,KAAKC,iBAAL,GAAyB,IAAzB;IACA,KAAKC,iBAAL,GAAyB,IAAzB;IACA,KAAKC,kBAAL,GAA0B,IAA1B;IACA,KAAKC,gBAAL,GAAwB,IAAxB;EACD;;;;WAED,eAAM;MACJ,OAAO;QACLN,OAAO,EAAE,KAAKA,OADT;QAELC,SAAS,EAAE,KAAKA,SAFX;QAGLC,aAAa,EAAE,KAAKA,aAHf;QAILC,iBAAiB,EAAE,KAAKA,iBAJnB;QAKLC,iBAAiB,EAAE,KAAKA,iBALnB;QAMLC,kBAAkB,EAAE,KAAKA,kBANpB;QAOLC,gBAAgB,EAAE,KAAKA;MAPlB,CAAP;IASD;;;WAED,aAAIC,OAAJ,EAAa;MAAA;;MACX,IAAMC,GAAG,GAAG,KAAKC,GAAL,EAAZ;MAEA,IAAIC,OAAO,GAAG,KAAd;MAEA,mBAAYF,GAAZ,EAAiBG,OAAjB,CAAyB,UAACC,SAAD,EAAe;QACtC,IAAMC,WAAW,GAAGN,OAAO,CAACK,SAAD,CAA3B;;QAEA,IAAIC,WAAW,KAAKC,SAAhB,IAA6BD,WAAW,KAAKL,GAAG,CAACI,SAAD,CAApD,EAAiE;UAC/DF,OAAO,GAAG,IAAV;UACA,KAAI,CAACE,SAAD,CAAJ,GAAkBC,WAAlB;QACD;MACF,CAPD;MASA,OAAOH,OAAP;IACD"}
@@ -1494,16 +1494,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1494
1494
  var _this5 = this;
1495
1495
 
1496
1496
  this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_CAN_ASSIGN_HOST, function (payload) {
1497
- _triggerProxy.default.trigger(_this5, {
1498
- file: 'meeting/index',
1499
- function: 'setUpLocusInfoAssignHostListener'
1500
- }, _constants.EVENT_TRIGGERS.MEETING_ACTIONS_UPDATE, {
1501
- canAssignHost: payload.canAssignHost,
1502
- canLock: _this5.inMeetingActions.getCanLock(),
1503
- canUnlock: _this5.inMeetingActions.getCanUnlock()
1497
+ var changed = _this5.inMeetingActions.set({
1498
+ canAssignHost: payload.canAssignHost
1504
1499
  });
1505
1500
 
1506
- _this5.inMeetingActions.setCanAssignHost(payload.canAssignHost);
1501
+ if (changed) {
1502
+ _triggerProxy.default.trigger(_this5, {
1503
+ file: 'meeting/index',
1504
+ function: 'setUpLocusInfoAssignHostListener'
1505
+ }, _constants.EVENT_TRIGGERS.MEETING_ACTIONS_UPDATE, _this5.inMeetingActions.get());
1506
+ }
1507
1507
  });
1508
1508
  }
1509
1509
  /**
@@ -2181,42 +2181,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2181
2181
  });
2182
2182
  this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (payload) {
2183
2183
  if (payload && payload.info) {
2184
- var newCanLock;
2185
- var newCanUnlock;
2186
-
2187
- if (payload.self && !payload.self.moderator) {
2188
- newCanLock = false;
2189
- newCanUnlock = false;
2190
- } else {
2191
- newCanLock = _util.default.canUserLock(payload.info.moderator, payload.info.policy);
2192
- newCanUnlock = _util.default.canUserUnlock(payload.info.moderator, payload.info.policy);
2193
- }
2194
-
2195
- if (newCanLock && !_this14.inMeetingActions.canLock) {
2196
- _triggerProxy.default.trigger(_this14, {
2197
- file: 'meeting/index',
2198
- function: 'setUpLocusInfoMeetingInfoListener'
2199
- }, _constants.EVENT_TRIGGERS.MEETING_ACTIONS_UPDATE, {
2200
- canLock: true,
2201
- canUnlock: false,
2202
- canAssignHost: _this14.inMeetingActions.getCanAssignHost()
2203
- });
2204
- }
2184
+ var changed = _this14.inMeetingActions.set({
2185
+ canLock: _util.default.canUserLock(payload.info.userDisplayHints),
2186
+ canUnlock: _util.default.canUserUnlock(payload.info.userDisplayHints),
2187
+ canStartRecording: _util.default.canUserRecord(payload.info.userDisplayHints),
2188
+ canStopRecording: _util.default.canUserStop(payload.info.userDisplayHints),
2189
+ canPauseRecording: _util.default.canUserPause(payload.info.userDisplayHints),
2190
+ canResumeRecording: _util.default.canUserResume(payload.info.userDisplayHints)
2191
+ });
2205
2192
 
2206
- if (newCanUnlock && !_this14.inMeetingActions.canUnlock || !newCanLock) {
2193
+ if (changed) {
2207
2194
  _triggerProxy.default.trigger(_this14, {
2208
2195
  file: 'meeting/index',
2209
2196
  function: 'setUpLocusInfoMeetingInfoListener'
2210
- }, _constants.EVENT_TRIGGERS.MEETING_ACTIONS_UPDATE, {
2211
- canLock: false,
2212
- canUnlock: true,
2213
- canAssignHost: _this14.inMeetingActions.getCanAssignHost()
2214
- });
2197
+ }, _constants.EVENT_TRIGGERS.MEETING_ACTIONS_UPDATE, _this14.inMeetingActions.get());
2215
2198
  }
2216
-
2217
- _this14.inMeetingActions.setCanLock(newCanLock || false);
2218
-
2219
- _this14.inMeetingActions.setCanUnlock(newCanUnlock || false);
2220
2199
  }
2221
2200
  });
2222
2201
  }