@webex/plugin-meetings 3.12.0-next.56 → 3.12.0-next.58
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/aiEnableRequest/index.js +1 -1
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +24 -1
- package/dist/breakouts/index.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/meeting/index.js +1 -1
- package/dist/meeting/index.js.map +1 -1
- package/dist/meetings/index.js +3 -1
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/util.js +14 -2
- package/dist/meetings/util.js.map +1 -1
- package/dist/webinar/index.js +1 -1
- package/package.json +1 -1
- package/src/breakouts/index.ts +30 -0
- package/src/meeting/index.ts +2 -1
- package/src/meetings/index.ts +4 -1
- package/src/meetings/util.ts +17 -0
- package/test/unit/spec/breakouts/index.ts +47 -0
- package/test/unit/spec/meeting/index.js +16 -0
- package/test/unit/spec/meetings/index.js +24 -0
- package/test/unit/spec/meetings/utils.js +28 -0
|
@@ -191,7 +191,7 @@ var AIEnableRequest = _webexCore.WebexPlugin.extend({
|
|
|
191
191
|
method: _constants.HTTP_VERBS.PUT
|
|
192
192
|
});
|
|
193
193
|
},
|
|
194
|
-
version: "3.12.0-next.
|
|
194
|
+
version: "3.12.0-next.58"
|
|
195
195
|
});
|
|
196
196
|
var _default = exports.default = AIEnableRequest;
|
|
197
197
|
//# sourceMappingURL=index.js.map
|
package/dist/breakouts/index.js
CHANGED
|
@@ -1100,6 +1100,29 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
1100
1100
|
body: body
|
|
1101
1101
|
});
|
|
1102
1102
|
},
|
|
1103
|
+
/**
|
|
1104
|
+
* Remove participants from their current breakout session back to the main session
|
|
1105
|
+
* @param {string[]} participants - participant IDs to remove from breakout
|
|
1106
|
+
* @returns {Promise}
|
|
1107
|
+
*/
|
|
1108
|
+
removeFromBreakout: function removeFromBreakout(participants) {
|
|
1109
|
+
if (!this.mainGroupId || !this.mainSessionId) {
|
|
1110
|
+
throw new Error('Main group ID and session ID must be available to remove participants from breakout');
|
|
1111
|
+
}
|
|
1112
|
+
return this.request({
|
|
1113
|
+
method: _constants.HTTP_VERBS.POST,
|
|
1114
|
+
uri: "".concat(this.url, "/move"),
|
|
1115
|
+
body: {
|
|
1116
|
+
groups: [{
|
|
1117
|
+
id: this.mainGroupId,
|
|
1118
|
+
sessions: [{
|
|
1119
|
+
id: this.mainSessionId,
|
|
1120
|
+
participants: participants
|
|
1121
|
+
}]
|
|
1122
|
+
}]
|
|
1123
|
+
}
|
|
1124
|
+
});
|
|
1125
|
+
},
|
|
1103
1126
|
/**
|
|
1104
1127
|
* trigger ASK_RETURN_TO_MAIN event when main session requested
|
|
1105
1128
|
* @param {Object} breakout
|
|
@@ -1110,7 +1133,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
1110
1133
|
this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
|
|
1111
1134
|
}
|
|
1112
1135
|
},
|
|
1113
|
-
version: "3.12.0-next.
|
|
1136
|
+
version: "3.12.0-next.58"
|
|
1114
1137
|
});
|
|
1115
1138
|
var _default = exports.default = Breakouts;
|
|
1116
1139
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_webexCore","require","_lodash","_loggerProxy","_interopRequireDefault","_constants","_breakout","_collection","_request","_events","_utils","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Breakouts","WebexPlugin","extend","namespace","MEETINGS","breakoutRequest","BreakoutRequest","collections","breakouts","BreakoutCollection","props","allowBackToMain","delayCloseTime","enableBreakoutSession","hasBreakoutPreAssignments","groupId","name","sessionId","sessionType","startTime","status","url","locusUrl","breakoutServiceUrl","mainLocusUrl","groups","manageGroups","preAssignments","editLock","intervalID","meetingId","canManageBreakouts","mainGroupId","mainSessionId","children","currentBreakoutSession","Breakout","derived","isInMainSession","cache","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","isActiveBreakout","BREAKOUT","STATUS","OPEN","CLOSING","breakoutGroupId","_this$manageGroups","CLOSED","id","breakoutStatus","_this$groups","_this$groups$","shouldQueryPreAssignments","initialize","_this","listenTo","trigger","EVENTS","BREAKOUTS_CLOSING","queryPreAssignments","debouncedQueryRosters","debounce","queryRosters","leading","trailing","breakout","triggerReturnToMainEvent","listenToCurrentSessionTypeChange","listenToBreakoutRosters","listenToBreakoutHelp","webex","cleanUp","stopListening","hasSubscribedToMessage","undefined","locusUrlUpdate","set","listenToBroadcastMessages","updateCanManageBreakouts","breakoutServiceUrlUpdate","concat","_this2","request","uri","qs","btoa","then","result","rosters","body","_ref","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","_locus$controls","_locus$controls$break","controls","session","get","parseRoster","_this3","isSessionTypeChangedFromSessionToMain","LEAVE_BREAKOUT","_this4","internal","llm","isConnected","event","_event$data","data","senderUserId","sentTime","message","MESSAGE","_this5","mercury","_this6","_event$data2","participant","ASK_FOR_HELP","isBreakoutInProgress","_this$groups2","_this$groups2$","currentStatus","isBreakoutIClosing","_this$groups3","_this$groups3$","updateBreakout","params","current","resourceLink","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED","ASSIGNED_CURRENT","REQUESTED","clearBreakouts","previous","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutJoinResponse","currentSession","breakoutMoveId","newMetrics","submitClientEvent","bind","updateBreakoutSessions","payload","_this7","breakoutSessions","state","requestedLastModifiedTime","modifiedAt","_values","reset","getMainSession","mainSession","isMain","Error","askAllToReturn","method","HTTP_VERBS","POST","broadcast","options","enableBreakouts","err","_promise","reject","toggleBreakout","enable","_this8","_asyncToGenerator2","_regenerator","mark","_callee","info","wrap","_context","prev","next","sent","doToggleBreakout","stop","token","editlock","PUT","_setManageGroups","breakoutInfo","_breakoutInfo$body","_setMainGroupId","_breakoutInfo$body2","_setMainSessionId","_breakoutInfo$body3","create","_this9","_callee2","_context2","boServiceErrorHandler","_clearEditLockInfo","abrupt","clearSessions","_this0","_callee3","_context3","action","ACTION","DELETE","start","_arguments","_this1","_callee4","_context4","START","allowToJoinLater","refresh","end","_arguments2","_this10","_callee5","_context5","CLOSE","update","unlockEdit","_this11","_callee6","_this11$editLock","_context6","getBreakout","_this12","_callee7","_breakout$body","_breakout$body$editlo","_context7","GET","keepEditLockAlive","enableAndLockBreakout","_this13","_callee8","_context8","lockBreakout","hasBreakoutLocked","EDIT_LOCK_STATUS","LOCKED","_this14","_callee9","_breakout$body2","_context9","_this15","ttl","DEFAULT_TTL","window","clearInterval","setInterval","unLockEditBreakout","_this16","assign","sessions","internalSessions","map","item","assigned","memberIds","assignedEmails","emails","anyoneCanJoin","anyone","_this17","_result$body","PRE_ASSIGNMENTS_UPDATE","dynamicAssign","updatedSessions","participants","targetState","moveToLobby","_this18","requested","ASK_RETURN_TO_MAIN","version","_default","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {debounce, forEach} from 'lodash';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {BREAKOUTS, MEETINGS, HTTP_VERBS, _ID_} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\nimport {boServiceErrorHandler, isSessionTypeChangedFromSessionToMain} from './utils';\n\n/**\n * @class Breakouts\n */\nconst Breakouts = WebexPlugin.extend({\n namespace: MEETINGS,\n breakoutRequest: BreakoutRequest,\n collections: {\n breakouts: BreakoutCollection,\n },\n\n props: {\n allowBackToMain: 'boolean', // only present when in a breakout session\n delayCloseTime: 'number', // appears once breakouts start\n enableBreakoutSession: 'boolean', // appears from the moment you enable breakouts\n hasBreakoutPreAssignments: 'boolean', // appears from the moment you enable breakouts\n groupId: 'string', // appears from the moment you enable breakouts\n name: 'string', // only present when in a breakout session\n sessionId: 'string', // appears from the moment you enable breakouts\n sessionType: 'string', // appears from the moment you enable breakouts\n startTime: 'string', // appears once breakouts start\n status: 'string', // only present when in a breakout session\n url: 'string', // appears from the moment you enable breakouts\n locusUrl: 'string', // the current locus url\n breakoutServiceUrl: 'string', // the current breakout resource url\n mainLocusUrl: 'string', // the locus url of the main session\n groups: 'array', // appears when create breakouts\n manageGroups: 'array', // appears when manage breakouts\n preAssignments: 'array', // appears when getPreAssignments info hasBreakoutPreAssignments = true\n editLock: 'object', // appears when getBreakout info editlock = true\n intervalID: 'number',\n meetingId: 'string',\n canManageBreakouts: 'boolean', // appear the ability to manage breakouts\n mainGroupId: 'string', // appears from the moment you enable breakouts\n mainSessionId: 'string', // appears from the moment you enable breakouts\n },\n children: {\n currentBreakoutSession: Breakout,\n },\n\n derived: {\n isInMainSession: {\n cache: false,\n deps: ['sessionType'],\n /**\n * Returns true if the user is in the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n },\n },\n isActiveBreakout: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType', 'status'],\n /**\n * Returns true if the breakout status is active\n * @returns {boolean}\n */\n fn() {\n return (\n this.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n (this.status === BREAKOUTS.STATUS.OPEN || this.status === BREAKOUTS.STATUS.CLOSING)\n );\n },\n },\n breakoutGroupId: {\n cache: false,\n deps: ['manageGroups'],\n /**\n * Returns the active group id\n * @returns {boolean}\n */\n fn() {\n if (this.manageGroups?.length) {\n return this.manageGroups[0].status !== BREAKOUTS.STATUS.CLOSED\n ? this.manageGroups[0].id\n : '';\n }\n\n return '';\n },\n },\n breakoutStatus: {\n cache: true,\n deps: ['isInMainSession', 'status', 'groups'],\n /**\n * Returns the breakout status\n * @returns {boolean}\n */\n fn() {\n return this.isInMainSession ? this.groups?.[0]?.status : this.status;\n },\n },\n shouldQueryPreAssignments: {\n cache: false,\n deps: ['canManageBreakouts', 'enableBreakoutSession', 'hasBreakoutPreAssignments'],\n /**\n * Returns should query preAssignments or not\n * @returns {boolean}\n */\n fn() {\n return !!(\n this.canManageBreakouts &&\n this.enableBreakoutSession &&\n this.hasBreakoutPreAssignments\n );\n },\n },\n },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:breakoutStatus', () => {\n if (this.breakoutStatus === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\n }\n });\n this.listenTo(this, 'change:shouldQueryPreAssignments', () => {\n if (this.shouldQueryPreAssignments && !this.preAssignments) {\n this.queryPreAssignments();\n }\n });\n this.debouncedQueryRosters = debounce(this.queryRosters, 10, {\n leading: true,\n trailing: false,\n });\n this.listenTo(this.breakouts, 'add', (breakout) => {\n this.debouncedQueryRosters();\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', (breakout) => {\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenToCurrentSessionTypeChange();\n this.listenToBreakoutRosters();\n this.listenToBreakoutHelp();\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp() {\n this.stopListening();\n this.hasSubscribedToMessage = undefined;\n },\n\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n this.listenToBroadcastMessages();\n const {isInMainSession, mainLocusUrl} = this;\n if (isInMainSession || !mainLocusUrl) {\n this.set('mainLocusUrl', locusUrl);\n }\n },\n\n /**\n * Update whether self is moderator/cohost or not\n * @param {boolean} canManageBreakouts\n * @returns {void}\n */\n updateCanManageBreakouts(canManageBreakouts) {\n this.set('canManageBreakouts', canManageBreakouts);\n },\n\n /**\n * Update the current breakout resource url\n * @param {string} breakoutServiceUrl\n * @returns {void}\n */\n breakoutServiceUrlUpdate(breakoutServiceUrl) {\n this.set('breakoutServiceUrl', `${breakoutServiceUrl}/breakout/`);\n },\n\n /**\n * The initial roster lists need to be queried because you don't\n * get a breakout.roster event when you join the meeting\n * @returns {void}\n */\n queryRosters() {\n this.webex\n .request({uri: `${this.url}/roster`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n const {\n body: {rosters},\n } = result;\n\n rosters?.forEach(({locus}) => {\n this.handleRosterUpdate(locus);\n });\n\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryRosters failed', error);\n });\n },\n\n /**\n *\n * @param {Object} locus // locus object\n * @returns {void}\n */\n handleRosterUpdate(locus) {\n const sessionId = locus.controls?.breakout?.sessionId;\n\n const session = this.breakouts.get(sessionId);\n\n if (!session) {\n return;\n }\n\n session.parseRoster(locus);\n },\n /**\n *Sets up listener for currentBreakoutSession sessionType changed\n * @returns {void}\n */\n listenToCurrentSessionTypeChange(): void {\n this.listenTo(\n this.currentBreakoutSession,\n 'change:sessionType',\n (currentBreakoutSession, sessionType) => {\n if (isSessionTypeChangedFromSessionToMain(currentBreakoutSession, sessionType)) {\n this.trigger(BREAKOUTS.EVENTS.LEAVE_BREAKOUT);\n }\n }\n );\n },\n\n /**\n * Sets up listener for broadcast messages sent to the breakout session\n * @returns {void}\n */\n listenToBroadcastMessages() {\n if (!this.webex.internal.llm.isConnected() || this.hasSubscribedToMessage) {\n return;\n }\n\n this.listenTo(this.webex.internal.llm, 'event:breakout.message', (event) => {\n const {\n data: {senderUserId, sentTime, message},\n } = event;\n\n this.trigger(BREAKOUTS.EVENTS.MESSAGE, {\n senderUserId,\n sentTime,\n message,\n // FIXME: This is only the current sessionId\n // We'd need to check that the dataChannelUrl is still the same\n // to guarantee that this message was sent to this session\n sessionId: this.currentBreakoutSession.sessionId,\n });\n });\n this.hasSubscribedToMessage = true;\n },\n\n /**\n * Sets up a listener for roster messags from mecury\n * @returns {void}\n */\n listenToBreakoutRosters() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', (event) => {\n this.handleRosterUpdate(event.data.locus);\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n });\n },\n\n /**\n * Sets up a listener for ask help notify from mecury\n * @returns {void}\n */\n listenToBreakoutHelp() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.help', (event) => {\n const {\n data: {participant, sessionId},\n } = event;\n this.trigger(BREAKOUTS.EVENTS.ASK_FOR_HELP, {participant, sessionId});\n });\n },\n\n /**\n * get current breakout is in progress or not\n * @returns {boolean}\n */\n isBreakoutInProgress() {\n const currentStatus = this.groups?.[0]?.status || this.status;\n\n return currentStatus === BREAKOUTS.STATUS.OPEN || currentStatus === BREAKOUTS.STATUS.CLOSING;\n },\n\n /**\n * get current breakout is in closing or not\n * @returns {boolean}\n */\n isBreakoutIClosing() {\n return (this.groups?.[0]?.status || this.status) === BREAKOUTS.STATUS.CLOSING;\n },\n /**\n * Updates the information about the current breakout\n * @param {Object} params\n * @returns {void}\n */\n updateBreakout(params) {\n this.set(params);\n // These values are set manually so they are unset when they are not included in params\n this.set('groups', params.groups);\n this.set('startTime', params.startTime);\n this.set('status', params.status);\n\n this.set('currentBreakoutSession', {\n sessionId: params.sessionId,\n groupId: params.groupId,\n name: params.name,\n current: true,\n sessionType: params.sessionType,\n url: params.url,\n resourceLink: params.resourceLink,\n [BREAKOUTS.SESSION_STATES.ACTIVE]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n\n if (!this.isBreakoutInProgress()) {\n this.clearBreakouts();\n }\n\n if (\n this.currentBreakoutSession.previous('sessionId') !== this.currentBreakoutSession.sessionId ||\n this.currentBreakoutSession.previous('groupId') !== this.currentBreakoutSession.groupId\n ) {\n // should report joined session changed\n const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);\n breakoutEvent.onBreakoutJoinResponse(\n {\n currentSession: this.currentBreakoutSession,\n meeting,\n breakoutMoveId: params.breakoutMoveId,\n },\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n }\n },\n\n /**\n * Updates the information about available breakouts\n * @param {Object} payload\n * @returns {void}\n */\n updateBreakoutSessions(payload) {\n const breakouts = {};\n if (this.isBreakoutIClosing()) {\n // fix issue: don't clear/update breakouts collection when in closing since locus DTO will send undefined or\n // only the MAIN session info here, if just update it, will miss the breakout roster info during\n // count down to end breakouts\n return;\n }\n if (payload.breakoutSessions) {\n forEach(BREAKOUTS.SESSION_STATES, (state) => {\n forEach(payload.breakoutSessions[state], (breakout) => {\n const {sessionId} = breakout;\n\n if (!breakouts[sessionId]) {\n breakouts[sessionId] = breakout;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ACTIVE] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ALLOWED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.REQUESTED] = false;\n }\n\n breakouts[sessionId][state] = true;\n\n if (state === BREAKOUTS.SESSION_STATES.REQUESTED) {\n breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;\n }\n });\n });\n }\n forEach(breakouts, (breakout: typeof Breakout) => {\n // eslint-disable-next-line no-param-reassign\n breakout.url = this.url;\n });\n\n this.breakouts.set(Object.values(breakouts));\n },\n /**\n * clear breakouts collection\n * @returns {void}\n */\n clearBreakouts() {\n if (this.breakouts.length > 0) {\n this.breakouts.reset();\n }\n },\n /**\n * get main session\n * @returns {Breakout}\n */\n getMainSession() {\n if (this.isInMainSession) {\n return this.currentBreakoutSession;\n }\n\n const mainSession = this.breakouts.filter((breakout) => breakout.isMain)[0];\n if (!mainSession) {\n throw new Error('no main session found');\n }\n\n return mainSession;\n },\n /**\n * Host/CoHost ask all participants return to main session\n * @returns {Promise}\n */\n askAllToReturn() {\n const mainSession = this.getMainSession();\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/requestMove`,\n body: {\n groupId: mainSession.groupId,\n sessionId: mainSession.sessionId,\n },\n });\n },\n\n /**\n * Broadcast message to all breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n const {breakoutGroupId} = this;\n if (!breakoutGroupId) {\n throw new Error('Cannot broadcast, no breakout session found');\n }\n\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: breakoutGroupId,\n });\n },\n /**\n * Make enable breakout resource\n * @returns {Promise}\n */\n enableBreakouts() {\n if (this.breakoutServiceUrl) {\n // @ts-ignore\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri: this.breakoutServiceUrl,\n body: {\n locusUrl: this.locusUrl,\n },\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#touchBreakout --> Error provisioning error ${err}`\n );\n throw err;\n });\n }\n\n return Promise.reject(new Error(`enableBreakouts: the breakoutServiceUrl is empty`));\n },\n\n /**\n * Make the meeting enable or disable breakout session\n * @param {boolean} enable\n * @returns {Promise}\n */\n async toggleBreakout(enable) {\n if (this.enableBreakoutSession === undefined) {\n const info = await this.enableBreakouts();\n // first time enable, set the initial data\n this.updateBreakout(info?.body);\n if (!enable) {\n await this.doToggleBreakout(enable);\n }\n } else {\n await this.doToggleBreakout(enable);\n }\n },\n\n /**\n * do toggle meeting breakout session enable or disable\n * @param {boolean} enable\n * @returns {Promise}\n */\n doToggleBreakout(enable) {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{enableBreakoutSession: enable},\n };\n\n // @ts-ignore\n return this.webex.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * set groups to manageGroups prop\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setManageGroups(breakoutInfo) {\n if (breakoutInfo?.body?.groups) {\n this.set('manageGroups', breakoutInfo.body.groups);\n }\n },\n\n /**\n * set main group id\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setMainGroupId(breakoutInfo) {\n if (breakoutInfo?.body?.mainGroupId) {\n this.set('mainGroupId', breakoutInfo.body.mainGroupId);\n }\n },\n\n /**\n * set main session id\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setMainSessionId(breakoutInfo) {\n if (breakoutInfo?.body?.mainSessionId) {\n this.set('mainSessionId', breakoutInfo.body.mainSessionId);\n }\n },\n\n /**\n * Create new breakout sessions\n * @param {object} params -- breakout session group\n * @returns {Promise}\n */\n async create(params) {\n const payload = {...params};\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [payload]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#create'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n // clear edit lock info after save breakout session info\n this._clearEditLockInfo();\n\n return breakoutInfo;\n },\n\n /**\n * Delete all breakout sessions\n * @returns {Promise}\n */\n async clearSessions() {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [{action: BREAKOUTS.ACTION.DELETE}]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#clearSessions'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost starts breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async start(params = {}) {\n const action = BREAKOUTS.ACTION.START;\n const payload = {\n id: this.breakoutGroupId,\n action,\n allowBackToMain: false,\n allowToJoinLater: false,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#start'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost ends breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async end(params = {}) {\n const {delayCloseTime, breakoutGroupId: id} = this;\n const action = BREAKOUTS.ACTION.CLOSE;\n const payload = {\n id,\n action,\n delayCloseTime,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#end'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost update breakout sessions\n * @param {Object} params\n * @param {String} params.id\n * @param {Boolean} unlockEdit\n * @returns {Promise}\n */\n async update(params: {id: string}, unlockEdit?: boolean) {\n if (!params.id) {\n return Promise.reject(new Error('Missing breakout group id'));\n }\n const payload = {...params};\n\n const body = {\n ...(this.editLock?.token\n ? {editlock: {token: this.editLock.token, refresh: !unlockEdit}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#update'));\n });\n\n if (unlockEdit) {\n this._clearEditLockInfo();\n }\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * get existed breakout sessions\n * @param {boolean} editlock -- lock operations of the breakout sessions\n * @returns {Promise}\n */\n async getBreakout(editlock) {\n const breakout = await this.request({\n method: HTTP_VERBS.GET,\n uri: this.url + (editlock ? `?editlock=${editlock}` : ''),\n });\n\n this._setManageGroups(breakout);\n this._setMainGroupId(breakout);\n this._setMainSessionId(breakout);\n\n if (editlock && breakout.body?.editlock?.token) {\n this.set('editLock', breakout.body.editlock);\n this.keepEditLockAlive();\n }\n\n return breakout;\n },\n\n /**\n * enable and edit lock breakout\n * @returns {void}\n */\n async enableAndLockBreakout() {\n if (this.enableBreakoutSession) {\n this.lockBreakout();\n } else {\n const info = await this.enableBreakouts();\n\n if (info.body) {\n this.lockBreakout();\n }\n }\n },\n\n /**\n * breakout edit locked by yourself or not\n * @returns {boolean}\n */\n hasBreakoutLocked() {\n return (\n this.editLock &&\n this.editLock.token &&\n this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED\n );\n },\n\n /**\n * send breakout edit lock\n * @returns {void}\n */\n async lockBreakout() {\n if (this.editLock && !!this.editLock.token) {\n if (this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED) {\n throw new Error('Breakout already locked');\n } else {\n this.keepEditLockAlive();\n }\n } else {\n const breakout = await this.getBreakout(true);\n if (breakout.body?.editlock) {\n this.keepEditLockAlive();\n }\n }\n },\n\n /**\n * keep edit lock alive\n * @returns {void}\n */\n keepEditLockAlive() {\n if (this.editLock && !!this.editLock.token) {\n const ttl = this.editLock.ttl < 30 ? BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;\n if (this.intervalID) {\n window.clearInterval(this.intervalID);\n }\n\n this.intervalID = window.setInterval(() => {\n this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n }).catch((error) => {\n this._clearEditLockInfo();\n\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#keepEditLockAlive'));\n });\n }, (ttl / 2) * 1000);\n }\n },\n\n /**\n * unlock edit breakout\n * @returns {void}\n */\n unLockEditBreakout() {\n if (this.editLock && !!this.editLock.token) {\n this.request({\n method: HTTP_VERBS.DELETE,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n })\n .then(() => {\n this._clearEditLockInfo();\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#unLockEditBreakout'));\n });\n }\n },\n\n /**\n * clear interval and edit lock info\n * @private\n * @returns {void}\n */\n _clearEditLockInfo() {\n if (this.intervalID) {\n clearInterval(this.intervalID);\n }\n this.set('editLock', {});\n },\n\n /**\n * assign participants to breakout session\n * @param {Array} sessions\n * @returns {void}\n */\n assign(sessions: any[]) {\n const internalSessions = sessions.map((item) => {\n return {\n id: item.id,\n assigned: item.memberIds,\n assignedEmails: item.emails,\n anyoneCanJoin: !!item.anyone,\n };\n });\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: internalSessions,\n },\n ],\n },\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * query preAssignments\n * @returns {void}\n */\n queryPreAssignments() {\n this.webex\n .request({uri: `${this.url}/preassignments`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n if (result.body?.groups) {\n this.set('preAssignments', result.body.groups);\n this.trigger(BREAKOUTS.EVENTS.PRE_ASSIGNMENTS_UPDATE);\n }\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryPreAssignments failed', error);\n });\n },\n /**\n * assign participants dynamically after breakout sessions started,\n * but currently it only used for admitting participants from lobby into breakout directly\n * @param {Array} sessions\n * @returns {void}\n */\n dynamicAssign(sessions: any[]) {\n const updatedSessions = sessions.map((item) => {\n return {\n id: item.id,\n participants: item.participants,\n targetState: item.targetState,\n };\n });\n\n const body = {\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: updatedSessions,\n },\n ],\n editlock: null,\n };\n\n if (this.editLock && this.editLock.token) {\n body.editlock = this.editLock;\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * Move participants to main session lobby\n * @param {Array} sessions\n * @param {string} sessions[].participants - Participant IDs to move\n * @returns {void}\n */\n moveToLobby(sessions: Array<{participants: string[]}>) {\n if (!this.mainGroupId || !this.mainSessionId) {\n throw new Error(\n 'Main group ID and session ID must be available to move participants to lobby'\n );\n }\n\n const updatedSessions = sessions.map((item) => {\n return {\n id: this.mainSessionId,\n participants: item.participants,\n targetState: 'LOBBY',\n };\n });\n\n const body = {\n groups: [\n {\n id: this.mainGroupId,\n sessions: updatedSessions,\n },\n ],\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * trigger ASK_RETURN_TO_MAIN event when main session requested\n * @param {Object} breakout\n * @returns {void}\n */\n triggerReturnToMainEvent(breakout) {\n if (breakout.isMain && breakout.requested) {\n this.trigger(BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);\n }\n },\n});\n\nexport default Breakouts;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_webexCore","require","_lodash","_loggerProxy","_interopRequireDefault","_constants","_breakout","_collection","_request","_events","_utils","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Breakouts","WebexPlugin","extend","namespace","MEETINGS","breakoutRequest","BreakoutRequest","collections","breakouts","BreakoutCollection","props","allowBackToMain","delayCloseTime","enableBreakoutSession","hasBreakoutPreAssignments","groupId","name","sessionId","sessionType","startTime","status","url","locusUrl","breakoutServiceUrl","mainLocusUrl","groups","manageGroups","preAssignments","editLock","intervalID","meetingId","canManageBreakouts","mainGroupId","mainSessionId","children","currentBreakoutSession","Breakout","derived","isInMainSession","cache","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","isActiveBreakout","BREAKOUT","STATUS","OPEN","CLOSING","breakoutGroupId","_this$manageGroups","CLOSED","id","breakoutStatus","_this$groups","_this$groups$","shouldQueryPreAssignments","initialize","_this","listenTo","trigger","EVENTS","BREAKOUTS_CLOSING","queryPreAssignments","debouncedQueryRosters","debounce","queryRosters","leading","trailing","breakout","triggerReturnToMainEvent","listenToCurrentSessionTypeChange","listenToBreakoutRosters","listenToBreakoutHelp","webex","cleanUp","stopListening","hasSubscribedToMessage","undefined","locusUrlUpdate","set","listenToBroadcastMessages","updateCanManageBreakouts","breakoutServiceUrlUpdate","concat","_this2","request","uri","qs","btoa","then","result","rosters","body","_ref","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","_locus$controls","_locus$controls$break","controls","session","get","parseRoster","_this3","isSessionTypeChangedFromSessionToMain","LEAVE_BREAKOUT","_this4","internal","llm","isConnected","event","_event$data","data","senderUserId","sentTime","message","MESSAGE","_this5","mercury","_this6","_event$data2","participant","ASK_FOR_HELP","isBreakoutInProgress","_this$groups2","_this$groups2$","currentStatus","isBreakoutIClosing","_this$groups3","_this$groups3$","updateBreakout","params","current","resourceLink","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED","ASSIGNED_CURRENT","REQUESTED","clearBreakouts","previous","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutJoinResponse","currentSession","breakoutMoveId","newMetrics","submitClientEvent","bind","updateBreakoutSessions","payload","_this7","breakoutSessions","state","requestedLastModifiedTime","modifiedAt","_values","reset","getMainSession","mainSession","isMain","Error","askAllToReturn","method","HTTP_VERBS","POST","broadcast","options","enableBreakouts","err","_promise","reject","toggleBreakout","enable","_this8","_asyncToGenerator2","_regenerator","mark","_callee","info","wrap","_context","prev","next","sent","doToggleBreakout","stop","token","editlock","PUT","_setManageGroups","breakoutInfo","_breakoutInfo$body","_setMainGroupId","_breakoutInfo$body2","_setMainSessionId","_breakoutInfo$body3","create","_this9","_callee2","_context2","boServiceErrorHandler","_clearEditLockInfo","abrupt","clearSessions","_this0","_callee3","_context3","action","ACTION","DELETE","start","_arguments","_this1","_callee4","_context4","START","allowToJoinLater","refresh","end","_arguments2","_this10","_callee5","_context5","CLOSE","update","unlockEdit","_this11","_callee6","_this11$editLock","_context6","getBreakout","_this12","_callee7","_breakout$body","_breakout$body$editlo","_context7","GET","keepEditLockAlive","enableAndLockBreakout","_this13","_callee8","_context8","lockBreakout","hasBreakoutLocked","EDIT_LOCK_STATUS","LOCKED","_this14","_callee9","_breakout$body2","_context9","_this15","ttl","DEFAULT_TTL","window","clearInterval","setInterval","unLockEditBreakout","_this16","assign","sessions","internalSessions","map","item","assigned","memberIds","assignedEmails","emails","anyoneCanJoin","anyone","_this17","_result$body","PRE_ASSIGNMENTS_UPDATE","dynamicAssign","updatedSessions","participants","targetState","moveToLobby","_this18","removeFromBreakout","requested","ASK_RETURN_TO_MAIN","version","_default","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {debounce, forEach} from 'lodash';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {BREAKOUTS, MEETINGS, HTTP_VERBS, _ID_} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\nimport {boServiceErrorHandler, isSessionTypeChangedFromSessionToMain} from './utils';\n\n/**\n * @class Breakouts\n */\nconst Breakouts = WebexPlugin.extend({\n namespace: MEETINGS,\n breakoutRequest: BreakoutRequest,\n collections: {\n breakouts: BreakoutCollection,\n },\n\n props: {\n allowBackToMain: 'boolean', // only present when in a breakout session\n delayCloseTime: 'number', // appears once breakouts start\n enableBreakoutSession: 'boolean', // appears from the moment you enable breakouts\n hasBreakoutPreAssignments: 'boolean', // appears from the moment you enable breakouts\n groupId: 'string', // appears from the moment you enable breakouts\n name: 'string', // only present when in a breakout session\n sessionId: 'string', // appears from the moment you enable breakouts\n sessionType: 'string', // appears from the moment you enable breakouts\n startTime: 'string', // appears once breakouts start\n status: 'string', // only present when in a breakout session\n url: 'string', // appears from the moment you enable breakouts\n locusUrl: 'string', // the current locus url\n breakoutServiceUrl: 'string', // the current breakout resource url\n mainLocusUrl: 'string', // the locus url of the main session\n groups: 'array', // appears when create breakouts\n manageGroups: 'array', // appears when manage breakouts\n preAssignments: 'array', // appears when getPreAssignments info hasBreakoutPreAssignments = true\n editLock: 'object', // appears when getBreakout info editlock = true\n intervalID: 'number',\n meetingId: 'string',\n canManageBreakouts: 'boolean', // appear the ability to manage breakouts\n mainGroupId: 'string', // appears from the moment you enable breakouts\n mainSessionId: 'string', // appears from the moment you enable breakouts\n },\n children: {\n currentBreakoutSession: Breakout,\n },\n\n derived: {\n isInMainSession: {\n cache: false,\n deps: ['sessionType'],\n /**\n * Returns true if the user is in the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n },\n },\n isActiveBreakout: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType', 'status'],\n /**\n * Returns true if the breakout status is active\n * @returns {boolean}\n */\n fn() {\n return (\n this.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n (this.status === BREAKOUTS.STATUS.OPEN || this.status === BREAKOUTS.STATUS.CLOSING)\n );\n },\n },\n breakoutGroupId: {\n cache: false,\n deps: ['manageGroups'],\n /**\n * Returns the active group id\n * @returns {boolean}\n */\n fn() {\n if (this.manageGroups?.length) {\n return this.manageGroups[0].status !== BREAKOUTS.STATUS.CLOSED\n ? this.manageGroups[0].id\n : '';\n }\n\n return '';\n },\n },\n breakoutStatus: {\n cache: true,\n deps: ['isInMainSession', 'status', 'groups'],\n /**\n * Returns the breakout status\n * @returns {boolean}\n */\n fn() {\n return this.isInMainSession ? this.groups?.[0]?.status : this.status;\n },\n },\n shouldQueryPreAssignments: {\n cache: false,\n deps: ['canManageBreakouts', 'enableBreakoutSession', 'hasBreakoutPreAssignments'],\n /**\n * Returns should query preAssignments or not\n * @returns {boolean}\n */\n fn() {\n return !!(\n this.canManageBreakouts &&\n this.enableBreakoutSession &&\n this.hasBreakoutPreAssignments\n );\n },\n },\n },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:breakoutStatus', () => {\n if (this.breakoutStatus === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\n }\n });\n this.listenTo(this, 'change:shouldQueryPreAssignments', () => {\n if (this.shouldQueryPreAssignments && !this.preAssignments) {\n this.queryPreAssignments();\n }\n });\n this.debouncedQueryRosters = debounce(this.queryRosters, 10, {\n leading: true,\n trailing: false,\n });\n this.listenTo(this.breakouts, 'add', (breakout) => {\n this.debouncedQueryRosters();\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', (breakout) => {\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenToCurrentSessionTypeChange();\n this.listenToBreakoutRosters();\n this.listenToBreakoutHelp();\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp() {\n this.stopListening();\n this.hasSubscribedToMessage = undefined;\n },\n\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n this.listenToBroadcastMessages();\n const {isInMainSession, mainLocusUrl} = this;\n if (isInMainSession || !mainLocusUrl) {\n this.set('mainLocusUrl', locusUrl);\n }\n },\n\n /**\n * Update whether self is moderator/cohost or not\n * @param {boolean} canManageBreakouts\n * @returns {void}\n */\n updateCanManageBreakouts(canManageBreakouts) {\n this.set('canManageBreakouts', canManageBreakouts);\n },\n\n /**\n * Update the current breakout resource url\n * @param {string} breakoutServiceUrl\n * @returns {void}\n */\n breakoutServiceUrlUpdate(breakoutServiceUrl) {\n this.set('breakoutServiceUrl', `${breakoutServiceUrl}/breakout/`);\n },\n\n /**\n * The initial roster lists need to be queried because you don't\n * get a breakout.roster event when you join the meeting\n * @returns {void}\n */\n queryRosters() {\n this.webex\n .request({uri: `${this.url}/roster`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n const {\n body: {rosters},\n } = result;\n\n rosters?.forEach(({locus}) => {\n this.handleRosterUpdate(locus);\n });\n\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryRosters failed', error);\n });\n },\n\n /**\n *\n * @param {Object} locus // locus object\n * @returns {void}\n */\n handleRosterUpdate(locus) {\n const sessionId = locus.controls?.breakout?.sessionId;\n\n const session = this.breakouts.get(sessionId);\n\n if (!session) {\n return;\n }\n\n session.parseRoster(locus);\n },\n /**\n *Sets up listener for currentBreakoutSession sessionType changed\n * @returns {void}\n */\n listenToCurrentSessionTypeChange(): void {\n this.listenTo(\n this.currentBreakoutSession,\n 'change:sessionType',\n (currentBreakoutSession, sessionType) => {\n if (isSessionTypeChangedFromSessionToMain(currentBreakoutSession, sessionType)) {\n this.trigger(BREAKOUTS.EVENTS.LEAVE_BREAKOUT);\n }\n }\n );\n },\n\n /**\n * Sets up listener for broadcast messages sent to the breakout session\n * @returns {void}\n */\n listenToBroadcastMessages() {\n if (!this.webex.internal.llm.isConnected() || this.hasSubscribedToMessage) {\n return;\n }\n\n this.listenTo(this.webex.internal.llm, 'event:breakout.message', (event) => {\n const {\n data: {senderUserId, sentTime, message},\n } = event;\n\n this.trigger(BREAKOUTS.EVENTS.MESSAGE, {\n senderUserId,\n sentTime,\n message,\n // FIXME: This is only the current sessionId\n // We'd need to check that the dataChannelUrl is still the same\n // to guarantee that this message was sent to this session\n sessionId: this.currentBreakoutSession.sessionId,\n });\n });\n this.hasSubscribedToMessage = true;\n },\n\n /**\n * Sets up a listener for roster messags from mecury\n * @returns {void}\n */\n listenToBreakoutRosters() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', (event) => {\n this.handleRosterUpdate(event.data.locus);\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n });\n },\n\n /**\n * Sets up a listener for ask help notify from mecury\n * @returns {void}\n */\n listenToBreakoutHelp() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.help', (event) => {\n const {\n data: {participant, sessionId},\n } = event;\n this.trigger(BREAKOUTS.EVENTS.ASK_FOR_HELP, {participant, sessionId});\n });\n },\n\n /**\n * get current breakout is in progress or not\n * @returns {boolean}\n */\n isBreakoutInProgress() {\n const currentStatus = this.groups?.[0]?.status || this.status;\n\n return currentStatus === BREAKOUTS.STATUS.OPEN || currentStatus === BREAKOUTS.STATUS.CLOSING;\n },\n\n /**\n * get current breakout is in closing or not\n * @returns {boolean}\n */\n isBreakoutIClosing() {\n return (this.groups?.[0]?.status || this.status) === BREAKOUTS.STATUS.CLOSING;\n },\n /**\n * Updates the information about the current breakout\n * @param {Object} params\n * @returns {void}\n */\n updateBreakout(params) {\n this.set(params);\n // These values are set manually so they are unset when they are not included in params\n this.set('groups', params.groups);\n this.set('startTime', params.startTime);\n this.set('status', params.status);\n\n this.set('currentBreakoutSession', {\n sessionId: params.sessionId,\n groupId: params.groupId,\n name: params.name,\n current: true,\n sessionType: params.sessionType,\n url: params.url,\n resourceLink: params.resourceLink,\n [BREAKOUTS.SESSION_STATES.ACTIVE]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n\n if (!this.isBreakoutInProgress()) {\n this.clearBreakouts();\n }\n\n if (\n this.currentBreakoutSession.previous('sessionId') !== this.currentBreakoutSession.sessionId ||\n this.currentBreakoutSession.previous('groupId') !== this.currentBreakoutSession.groupId\n ) {\n // should report joined session changed\n const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);\n breakoutEvent.onBreakoutJoinResponse(\n {\n currentSession: this.currentBreakoutSession,\n meeting,\n breakoutMoveId: params.breakoutMoveId,\n },\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n }\n },\n\n /**\n * Updates the information about available breakouts\n * @param {Object} payload\n * @returns {void}\n */\n updateBreakoutSessions(payload) {\n const breakouts = {};\n if (this.isBreakoutIClosing()) {\n // fix issue: don't clear/update breakouts collection when in closing since locus DTO will send undefined or\n // only the MAIN session info here, if just update it, will miss the breakout roster info during\n // count down to end breakouts\n return;\n }\n if (payload.breakoutSessions) {\n forEach(BREAKOUTS.SESSION_STATES, (state) => {\n forEach(payload.breakoutSessions[state], (breakout) => {\n const {sessionId} = breakout;\n\n if (!breakouts[sessionId]) {\n breakouts[sessionId] = breakout;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ACTIVE] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ALLOWED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.REQUESTED] = false;\n }\n\n breakouts[sessionId][state] = true;\n\n if (state === BREAKOUTS.SESSION_STATES.REQUESTED) {\n breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;\n }\n });\n });\n }\n forEach(breakouts, (breakout: typeof Breakout) => {\n // eslint-disable-next-line no-param-reassign\n breakout.url = this.url;\n });\n\n this.breakouts.set(Object.values(breakouts));\n },\n /**\n * clear breakouts collection\n * @returns {void}\n */\n clearBreakouts() {\n if (this.breakouts.length > 0) {\n this.breakouts.reset();\n }\n },\n /**\n * get main session\n * @returns {Breakout}\n */\n getMainSession() {\n if (this.isInMainSession) {\n return this.currentBreakoutSession;\n }\n\n const mainSession = this.breakouts.filter((breakout) => breakout.isMain)[0];\n if (!mainSession) {\n throw new Error('no main session found');\n }\n\n return mainSession;\n },\n /**\n * Host/CoHost ask all participants return to main session\n * @returns {Promise}\n */\n askAllToReturn() {\n const mainSession = this.getMainSession();\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/requestMove`,\n body: {\n groupId: mainSession.groupId,\n sessionId: mainSession.sessionId,\n },\n });\n },\n\n /**\n * Broadcast message to all breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n const {breakoutGroupId} = this;\n if (!breakoutGroupId) {\n throw new Error('Cannot broadcast, no breakout session found');\n }\n\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: breakoutGroupId,\n });\n },\n /**\n * Make enable breakout resource\n * @returns {Promise}\n */\n enableBreakouts() {\n if (this.breakoutServiceUrl) {\n // @ts-ignore\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri: this.breakoutServiceUrl,\n body: {\n locusUrl: this.locusUrl,\n },\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#touchBreakout --> Error provisioning error ${err}`\n );\n throw err;\n });\n }\n\n return Promise.reject(new Error(`enableBreakouts: the breakoutServiceUrl is empty`));\n },\n\n /**\n * Make the meeting enable or disable breakout session\n * @param {boolean} enable\n * @returns {Promise}\n */\n async toggleBreakout(enable) {\n if (this.enableBreakoutSession === undefined) {\n const info = await this.enableBreakouts();\n // first time enable, set the initial data\n this.updateBreakout(info?.body);\n if (!enable) {\n await this.doToggleBreakout(enable);\n }\n } else {\n await this.doToggleBreakout(enable);\n }\n },\n\n /**\n * do toggle meeting breakout session enable or disable\n * @param {boolean} enable\n * @returns {Promise}\n */\n doToggleBreakout(enable) {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{enableBreakoutSession: enable},\n };\n\n // @ts-ignore\n return this.webex.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * set groups to manageGroups prop\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setManageGroups(breakoutInfo) {\n if (breakoutInfo?.body?.groups) {\n this.set('manageGroups', breakoutInfo.body.groups);\n }\n },\n\n /**\n * set main group id\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setMainGroupId(breakoutInfo) {\n if (breakoutInfo?.body?.mainGroupId) {\n this.set('mainGroupId', breakoutInfo.body.mainGroupId);\n }\n },\n\n /**\n * set main session id\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setMainSessionId(breakoutInfo) {\n if (breakoutInfo?.body?.mainSessionId) {\n this.set('mainSessionId', breakoutInfo.body.mainSessionId);\n }\n },\n\n /**\n * Create new breakout sessions\n * @param {object} params -- breakout session group\n * @returns {Promise}\n */\n async create(params) {\n const payload = {...params};\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [payload]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#create'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n // clear edit lock info after save breakout session info\n this._clearEditLockInfo();\n\n return breakoutInfo;\n },\n\n /**\n * Delete all breakout sessions\n * @returns {Promise}\n */\n async clearSessions() {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [{action: BREAKOUTS.ACTION.DELETE}]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#clearSessions'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost starts breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async start(params = {}) {\n const action = BREAKOUTS.ACTION.START;\n const payload = {\n id: this.breakoutGroupId,\n action,\n allowBackToMain: false,\n allowToJoinLater: false,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#start'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost ends breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async end(params = {}) {\n const {delayCloseTime, breakoutGroupId: id} = this;\n const action = BREAKOUTS.ACTION.CLOSE;\n const payload = {\n id,\n action,\n delayCloseTime,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#end'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost update breakout sessions\n * @param {Object} params\n * @param {String} params.id\n * @param {Boolean} unlockEdit\n * @returns {Promise}\n */\n async update(params: {id: string}, unlockEdit?: boolean) {\n if (!params.id) {\n return Promise.reject(new Error('Missing breakout group id'));\n }\n const payload = {...params};\n\n const body = {\n ...(this.editLock?.token\n ? {editlock: {token: this.editLock.token, refresh: !unlockEdit}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#update'));\n });\n\n if (unlockEdit) {\n this._clearEditLockInfo();\n }\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * get existed breakout sessions\n * @param {boolean} editlock -- lock operations of the breakout sessions\n * @returns {Promise}\n */\n async getBreakout(editlock) {\n const breakout = await this.request({\n method: HTTP_VERBS.GET,\n uri: this.url + (editlock ? `?editlock=${editlock}` : ''),\n });\n\n this._setManageGroups(breakout);\n this._setMainGroupId(breakout);\n this._setMainSessionId(breakout);\n\n if (editlock && breakout.body?.editlock?.token) {\n this.set('editLock', breakout.body.editlock);\n this.keepEditLockAlive();\n }\n\n return breakout;\n },\n\n /**\n * enable and edit lock breakout\n * @returns {void}\n */\n async enableAndLockBreakout() {\n if (this.enableBreakoutSession) {\n this.lockBreakout();\n } else {\n const info = await this.enableBreakouts();\n\n if (info.body) {\n this.lockBreakout();\n }\n }\n },\n\n /**\n * breakout edit locked by yourself or not\n * @returns {boolean}\n */\n hasBreakoutLocked() {\n return (\n this.editLock &&\n this.editLock.token &&\n this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED\n );\n },\n\n /**\n * send breakout edit lock\n * @returns {void}\n */\n async lockBreakout() {\n if (this.editLock && !!this.editLock.token) {\n if (this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED) {\n throw new Error('Breakout already locked');\n } else {\n this.keepEditLockAlive();\n }\n } else {\n const breakout = await this.getBreakout(true);\n if (breakout.body?.editlock) {\n this.keepEditLockAlive();\n }\n }\n },\n\n /**\n * keep edit lock alive\n * @returns {void}\n */\n keepEditLockAlive() {\n if (this.editLock && !!this.editLock.token) {\n const ttl = this.editLock.ttl < 30 ? BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;\n if (this.intervalID) {\n window.clearInterval(this.intervalID);\n }\n\n this.intervalID = window.setInterval(() => {\n this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n }).catch((error) => {\n this._clearEditLockInfo();\n\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#keepEditLockAlive'));\n });\n }, (ttl / 2) * 1000);\n }\n },\n\n /**\n * unlock edit breakout\n * @returns {void}\n */\n unLockEditBreakout() {\n if (this.editLock && !!this.editLock.token) {\n this.request({\n method: HTTP_VERBS.DELETE,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n })\n .then(() => {\n this._clearEditLockInfo();\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#unLockEditBreakout'));\n });\n }\n },\n\n /**\n * clear interval and edit lock info\n * @private\n * @returns {void}\n */\n _clearEditLockInfo() {\n if (this.intervalID) {\n clearInterval(this.intervalID);\n }\n this.set('editLock', {});\n },\n\n /**\n * assign participants to breakout session\n * @param {Array} sessions\n * @returns {void}\n */\n assign(sessions: any[]) {\n const internalSessions = sessions.map((item) => {\n return {\n id: item.id,\n assigned: item.memberIds,\n assignedEmails: item.emails,\n anyoneCanJoin: !!item.anyone,\n };\n });\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: internalSessions,\n },\n ],\n },\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * query preAssignments\n * @returns {void}\n */\n queryPreAssignments() {\n this.webex\n .request({uri: `${this.url}/preassignments`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n if (result.body?.groups) {\n this.set('preAssignments', result.body.groups);\n this.trigger(BREAKOUTS.EVENTS.PRE_ASSIGNMENTS_UPDATE);\n }\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryPreAssignments failed', error);\n });\n },\n /**\n * assign participants dynamically after breakout sessions started,\n * but currently it only used for admitting participants from lobby into breakout directly\n * @param {Array} sessions\n * @returns {void}\n */\n dynamicAssign(sessions: any[]) {\n const updatedSessions = sessions.map((item) => {\n return {\n id: item.id,\n participants: item.participants,\n targetState: item.targetState,\n };\n });\n\n const body = {\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: updatedSessions,\n },\n ],\n editlock: null,\n };\n\n if (this.editLock && this.editLock.token) {\n body.editlock = this.editLock;\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * Move participants to main session lobby\n * @param {Array} sessions\n * @param {string} sessions[].participants - Participant IDs to move\n * @returns {void}\n */\n moveToLobby(sessions: Array<{participants: string[]}>) {\n if (!this.mainGroupId || !this.mainSessionId) {\n throw new Error(\n 'Main group ID and session ID must be available to move participants to lobby'\n );\n }\n\n const updatedSessions = sessions.map((item) => {\n return {\n id: this.mainSessionId,\n participants: item.participants,\n targetState: 'LOBBY',\n };\n });\n\n const body = {\n groups: [\n {\n id: this.mainGroupId,\n sessions: updatedSessions,\n },\n ],\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * Remove participants from their current breakout session back to the main session\n * @param {string[]} participants - participant IDs to remove from breakout\n * @returns {Promise}\n */\n removeFromBreakout(participants: string[]) {\n if (!this.mainGroupId || !this.mainSessionId) {\n throw new Error(\n 'Main group ID and session ID must be available to remove participants from breakout'\n );\n }\n\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/move`,\n body: {\n groups: [\n {\n id: this.mainGroupId,\n sessions: [\n {\n id: this.mainSessionId,\n participants,\n },\n ],\n },\n ],\n },\n });\n },\n /**\n * trigger ASK_RETURN_TO_MAIN event when main session requested\n * @param {Object} breakout\n * @returns {void}\n */\n triggerReturnToMainEvent(breakout) {\n if (breakout.isMain && breakout.requested) {\n this.trigger(BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);\n }\n },\n});\n\nexport default Breakouts;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -381,7 +381,7 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
|
|
|
381
381
|
throw error;
|
|
382
382
|
});
|
|
383
383
|
},
|
|
384
|
-
version: "3.12.0-next.
|
|
384
|
+
version: "3.12.0-next.58"
|
|
385
385
|
});
|
|
386
386
|
var _default = exports.default = SimultaneousInterpretation;
|
|
387
387
|
//# 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.12.0-next.
|
|
21
|
+
version: "3.12.0-next.58"
|
|
22
22
|
});
|
|
23
23
|
var _default = exports.default = SILanguage;
|
|
24
24
|
//# sourceMappingURL=siLanguage.js.map
|
package/dist/meeting/index.js
CHANGED
|
@@ -5277,7 +5277,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5277
5277
|
// so refresh it after locus sync to avoid stale partial hash-tree data.
|
|
5278
5278
|
this.destination = locus;
|
|
5279
5279
|
}
|
|
5280
|
-
if (!((!this.meetingInfo || (0, _lodash.isEmpty)(this.meetingInfo)) && (_this$destination = this.destination) !== null && _this$destination !== void 0 && _this$destination.info && !this.fetchMeetingInfoTimeoutId)) {
|
|
5280
|
+
if (!((!this.meetingInfo || (0, _lodash.isEmpty)(this.meetingInfo)) && (_this$destination = this.destination) !== null && _this$destination !== void 0 && _this$destination.info && !this.fetchMeetingInfoTimeoutId && !_util3.default.isOneOnOneCall(locus))) {
|
|
5281
5281
|
_context11.next = 4;
|
|
5282
5282
|
break;
|
|
5283
5283
|
}
|