@webex/plugin-meetings 3.0.0-beta.93 → 3.0.0-beta.95

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.
Files changed (50) hide show
  1. package/dist/breakouts/breakout.js +21 -25
  2. package/dist/breakouts/breakout.js.map +1 -1
  3. package/dist/breakouts/events.js +43 -0
  4. package/dist/breakouts/events.js.map +1 -0
  5. package/dist/breakouts/index.js +100 -55
  6. package/dist/breakouts/index.js.map +1 -1
  7. package/dist/constants.js +3 -1
  8. package/dist/constants.js.map +1 -1
  9. package/dist/controls-options-manager/index.js +19 -14
  10. package/dist/controls-options-manager/index.js.map +1 -1
  11. package/dist/locus-info/index.js +5 -3
  12. package/dist/locus-info/index.js.map +1 -1
  13. package/dist/locus-info/selfUtils.js +12 -0
  14. package/dist/locus-info/selfUtils.js.map +1 -1
  15. package/dist/meeting/in-meeting-actions.js +27 -3
  16. package/dist/meeting/in-meeting-actions.js.map +1 -1
  17. package/dist/meeting/index.js +59 -2
  18. package/dist/meeting/index.js.map +1 -1
  19. package/dist/meeting/util.js +0 -9
  20. package/dist/meeting/util.js.map +1 -1
  21. package/dist/metrics/config.js +3 -2
  22. package/dist/metrics/config.js.map +1 -1
  23. package/dist/types/breakouts/events.d.ts +2 -0
  24. package/dist/types/constants.d.ts +2 -0
  25. package/dist/types/controls-options-manager/index.d.ts +1 -1
  26. package/dist/types/locus-info/index.d.ts +2 -1
  27. package/dist/types/meeting/in-meeting-actions.d.ts +26 -2
  28. package/dist/types/metrics/config.d.ts +3 -2
  29. package/package.json +19 -19
  30. package/src/breakouts/breakout.ts +9 -22
  31. package/src/breakouts/events.ts +37 -0
  32. package/src/breakouts/index.ts +53 -11
  33. package/src/constants.ts +2 -0
  34. package/src/controls-options-manager/index.ts +13 -10
  35. package/src/locus-info/index.ts +8 -4
  36. package/src/locus-info/selfUtils.ts +10 -0
  37. package/src/meeting/in-meeting-actions.ts +52 -4
  38. package/src/meeting/index.ts +65 -4
  39. package/src/meeting/util.ts +0 -11
  40. package/src/metrics/config.ts +3 -2
  41. package/test/unit/spec/breakouts/breakout.ts +27 -21
  42. package/test/unit/spec/breakouts/events.ts +77 -0
  43. package/test/unit/spec/breakouts/index.ts +161 -106
  44. package/test/unit/spec/controls-options-manager/index.js +8 -1
  45. package/test/unit/spec/locus-info/index.js +7 -3
  46. package/test/unit/spec/locus-info/selfConstant.js +9 -0
  47. package/test/unit/spec/locus-info/selfUtils.js +45 -0
  48. package/test/unit/spec/meeting/in-meeting-actions.ts +26 -2
  49. package/test/unit/spec/meeting/index.js +74 -3
  50. package/test/unit/spec/meeting/utils.js +0 -21
@@ -13,8 +13,7 @@ var _uuid = _interopRequireDefault(require("uuid"));
13
13
  var _constants = require("../constants");
14
14
  var _members = _interopRequireDefault(require("../members"));
15
15
  var _request = _interopRequireDefault(require("./request"));
16
- var _metrics = _interopRequireDefault(require("../metrics"));
17
- var _config = require("../metrics/config");
16
+ var _events = _interopRequireDefault(require("./events"));
18
17
  /*!
19
18
  * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
20
19
  */
@@ -43,9 +42,10 @@ var Breakout = _webexCore.WebexPlugin.extend({
43
42
  sessionId: 'string',
44
43
  sessionType: 'string',
45
44
  groupId: 'string',
46
- url: 'string' // where to send requests to
45
+ url: 'string',
46
+ // where to send requests to
47
+ requestedLastModifiedTime: 'string'
47
48
  },
48
-
49
49
  derived: {
50
50
  isMain: {
51
51
  cache: false,
@@ -76,43 +76,39 @@ var Breakout = _webexCore.WebexPlugin.extend({
76
76
  join: function join() {
77
77
  var _this = this;
78
78
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
79
- var breakoutMoveId, meetingId, result;
79
+ var breakoutMoveId, deviceUrl, meetingId, meeting, result;
80
80
  return _regenerator.default.wrap(function _callee$(_context) {
81
81
  while (1) switch (_context.prev = _context.next) {
82
82
  case 0:
83
83
  breakoutMoveId = _uuid.default.v4();
84
+ deviceUrl = _this.webex.internal.device.url;
84
85
  meetingId = _this.collection.parent.meetingId;
85
- _metrics.default.postEvent({
86
- event: _config.eventType.MOVE_TO_BREAKOUT,
87
- meetingId: meetingId,
88
- data: {
89
- breakoutMoveId: breakoutMoveId,
90
- breakoutSessionId: _this.sessionId,
91
- breakoutGroupId: _this.groupId
92
- }
86
+ meeting = _this.webex.meetings.getMeetingByType(_constants._ID_, meetingId);
87
+ _events.default.onBreakoutMoveRequest({
88
+ currentSession: _this,
89
+ meeting: meeting,
90
+ breakoutMoveId: breakoutMoveId
93
91
  });
94
- _context.next = 5;
92
+ _context.next = 7;
95
93
  return _this.request({
96
94
  method: _constants.HTTP_VERBS.POST,
97
95
  uri: "".concat(_this.url, "/move"),
98
96
  body: {
97
+ breakoutMoveId: breakoutMoveId,
98
+ deviceUrl: deviceUrl,
99
99
  groupId: _this.groupId,
100
100
  sessionId: _this.sessionId
101
101
  }
102
102
  });
103
- case 5:
103
+ case 7:
104
104
  result = _context.sent;
105
- _metrics.default.postEvent({
106
- event: _config.eventType.JOIN_BREAKOUT_RESPONSE,
107
- meetingId: meetingId,
108
- data: {
109
- breakoutMoveId: breakoutMoveId,
110
- breakoutSessionId: _this.sessionId,
111
- breakoutGroupId: _this.groupId
112
- }
105
+ _events.default.onBreakoutMoveResponse({
106
+ currentSession: _this,
107
+ meeting: meeting,
108
+ breakoutMoveId: breakoutMoveId
113
109
  });
114
110
  return _context.abrupt("return", result);
115
- case 8:
111
+ case 10:
116
112
  case "end":
117
113
  return _context.stop();
118
114
  }
@@ -173,7 +169,7 @@ var Breakout = _webexCore.WebexPlugin.extend({
173
169
  sessionId: this.sessionId
174
170
  });
175
171
  },
176
- version: "3.0.0-beta.93"
172
+ version: "3.0.0-beta.95"
177
173
  });
178
174
  var _default = Breakout;
179
175
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["Breakout","WebexPlugin","extend","idAttribute","namespace","MEETINGS","breakoutRequest","BreakoutRequest","props","active","allowed","assigned","assignedCurrent","requested","current","name","sessionId","sessionType","groupId","url","derived","isMain","cache","deps","fn","initialize","members","Members","parent","webex","join","breakoutMoveId","uuid","v4","meetingId","collection","Metrics","postEvent","event","eventType","MOVE_TO_BREAKOUT","data","breakoutSessionId","breakoutGroupId","request","method","HTTP_VERBS","POST","uri","body","result","JOIN_BREAKOUT_RESPONSE","leave","Error","mainSession","breakouts","filter","breakout","askForHelp","parseRoster","locus","locusParticipantsUpdate","broadcast","message","options"],"sources":["breakout.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport uuid from 'uuid';\nimport {HTTP_VERBS, MEETINGS} from '../constants';\nimport LocusInfo from '../locus-info';\nimport Members from '../members';\nimport BreakoutRequest from './request';\nimport Metrics from '../metrics';\nimport {eventType} from '../metrics/config';\n/**\n * @class\n */\nconst Breakout = WebexPlugin.extend({\n idAttribute: 'sessionId',\n\n namespace: MEETINGS,\n\n breakoutRequest: BreakoutRequest,\n props: {\n active: ['boolean', false, false], // this session is active\n allowed: ['boolean', false, false], // allowed to join this session\n assigned: ['boolean', false, false], // assigned to this session, but not necessarily joined yet\n assignedCurrent: ['boolean', false, false], // assigned AND current session\n requested: ['boolean', false, false], // requested by the host to join this session\n current: ['boolean', false, false], // the current joined session\n name: 'string',\n sessionId: 'string',\n sessionType: 'string',\n groupId: 'string',\n url: 'string', // where to send requests to\n },\n\n derived: {\n isMain: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType'],\n /**\n * If the breakout has no name, assume it is the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === 'MAIN';\n },\n },\n },\n\n initialize() {\n this.members = new Members({}, {parent: this.webex});\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Joins the breakout session\n * @returns {Promise}\n */\n async join() {\n const breakoutMoveId = uuid.v4();\n const {meetingId} = this.collection.parent;\n Metrics.postEvent({\n event: eventType.MOVE_TO_BREAKOUT,\n meetingId,\n data: {\n breakoutMoveId,\n breakoutSessionId: this.sessionId,\n breakoutGroupId: this.groupId,\n },\n });\n const result = await this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/move`,\n body: {\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n Metrics.postEvent({\n event: eventType.JOIN_BREAKOUT_RESPONSE,\n meetingId,\n data: {\n breakoutMoveId,\n breakoutSessionId: this.sessionId,\n breakoutGroupId: this.groupId,\n },\n });\n\n return result;\n },\n\n /**\n * Leaves the breakout session to return to the main session\n * @returns {Promise}\n * @throws {Error} if an attempt is made to leave the main session or if the main session cannot be found\n */\n leave() {\n if (this.isMain) {\n throw new Error('Cannot leave the main session');\n }\n\n const mainSession = this.parent.breakouts.filter((breakout) => breakout.isMain)[0];\n\n if (!mainSession) {\n throw new Error('Cannot leave, no main session found');\n }\n\n return mainSession.join();\n },\n\n /**\n * Sends a help request for the current breakout\n * @returns {Promise}\n */\n askForHelp() {\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/help`,\n body: {\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n },\n\n /**\n * Parses the participants from the locus object\n * @param locus Locus object\n * @returns {void}\n */\n\n parseRoster(locus) {\n this.members.locusParticipantsUpdate(locus);\n },\n /*\n * Broadcast message to this breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: this.groupId,\n sessionId: this.sessionId,\n });\n },\n});\n\nexport default Breakout;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Breakout","WebexPlugin","extend","idAttribute","namespace","MEETINGS","breakoutRequest","BreakoutRequest","props","active","allowed","assigned","assignedCurrent","requested","current","name","sessionId","sessionType","groupId","url","requestedLastModifiedTime","derived","isMain","cache","deps","fn","initialize","members","Members","parent","webex","join","breakoutMoveId","uuid","v4","deviceUrl","internal","device","meetingId","collection","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutMoveRequest","currentSession","request","method","HTTP_VERBS","POST","uri","body","result","onBreakoutMoveResponse","leave","Error","mainSession","breakouts","filter","breakout","askForHelp","parseRoster","locus","locusParticipantsUpdate","broadcast","message","options"],"sources":["breakout.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport uuid from 'uuid';\nimport {_ID_, HTTP_VERBS, MEETINGS} from '../constants';\nimport Members from '../members';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\n/**\n * @class\n */\nconst Breakout = WebexPlugin.extend({\n idAttribute: 'sessionId',\n\n namespace: MEETINGS,\n\n breakoutRequest: BreakoutRequest,\n props: {\n active: ['boolean', false, false], // this session is active\n allowed: ['boolean', false, false], // allowed to join this session\n assigned: ['boolean', false, false], // assigned to this session, but not necessarily joined yet\n assignedCurrent: ['boolean', false, false], // assigned AND current session\n requested: ['boolean', false, false], // requested by the host to join this session\n current: ['boolean', false, false], // the current joined session\n name: 'string',\n sessionId: 'string',\n sessionType: 'string',\n groupId: 'string',\n url: 'string', // where to send requests to\n requestedLastModifiedTime: 'string',\n },\n\n derived: {\n isMain: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType'],\n /**\n * If the breakout has no name, assume it is the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === 'MAIN';\n },\n },\n },\n\n initialize() {\n this.members = new Members({}, {parent: this.webex});\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Joins the breakout session\n * @returns {Promise}\n */\n async join() {\n const breakoutMoveId = uuid.v4();\n const deviceUrl = this.webex.internal.device.url;\n const {meetingId} = this.collection.parent;\n const meeting = this.webex.meetings.getMeetingByType(_ID_, meetingId);\n breakoutEvent.onBreakoutMoveRequest({currentSession: this, meeting, breakoutMoveId});\n const result = await this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/move`,\n body: {\n breakoutMoveId,\n deviceUrl,\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n breakoutEvent.onBreakoutMoveResponse({currentSession: this, meeting, breakoutMoveId});\n\n return result;\n },\n\n /**\n * Leaves the breakout session to return to the main session\n * @returns {Promise}\n * @throws {Error} if an attempt is made to leave the main session or if the main session cannot be found\n */\n leave() {\n if (this.isMain) {\n throw new Error('Cannot leave the main session');\n }\n\n const mainSession = this.parent.breakouts.filter((breakout) => breakout.isMain)[0];\n\n if (!mainSession) {\n throw new Error('Cannot leave, no main session found');\n }\n\n return mainSession.join();\n },\n\n /**\n * Sends a help request for the current breakout\n * @returns {Promise}\n */\n askForHelp() {\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/help`,\n body: {\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n },\n\n /**\n * Parses the participants from the locus object\n * @param locus Locus object\n * @returns {void}\n */\n\n parseRoster(locus) {\n this.members.locusParticipantsUpdate(locus);\n },\n /*\n * Broadcast message to this breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: this.groupId,\n sessionId: this.sessionId,\n });\n },\n});\n\nexport default Breakout;\n"],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _metrics = _interopRequireDefault(require("../metrics"));
10
+ var _config = require("../metrics/config");
11
+ // eslint-disable-next-line import/prefer-default-export
12
+
13
+ var breakoutEvent = {};
14
+ breakoutEvent.onBreakoutMoveRequest = function (eventInfo) {
15
+ breakoutEvent.postMoveCallAnalyzer(_config.eventType.BREAKOUT_MOVE_REQUEST, eventInfo);
16
+ };
17
+ breakoutEvent.onBreakoutMoveResponse = function (eventInfo) {
18
+ breakoutEvent.postMoveCallAnalyzer(_config.eventType.BREAKOUT_MOVE_RESPONSE, eventInfo);
19
+ };
20
+ breakoutEvent.onBreakoutJoinResponse = function (eventInfo) {
21
+ breakoutEvent.postMoveCallAnalyzer(_config.eventType.BREAKOUT_JOIN_RESPONSE, eventInfo);
22
+ };
23
+ breakoutEvent.postMoveCallAnalyzer = function (events, eventInfo) {
24
+ var _eventInfo$meeting$me, _eventInfo$currentSes, _eventInfo$currentSes2;
25
+ if (!(eventInfo !== null && eventInfo !== void 0 && eventInfo.breakoutMoveId) || !(eventInfo !== null && eventInfo !== void 0 && eventInfo.meeting)) {
26
+ return;
27
+ }
28
+ if (!((_eventInfo$meeting$me = eventInfo.meeting.meetingInfo) !== null && _eventInfo$meeting$me !== void 0 && _eventInfo$meeting$me.enableConvergedArchitecture)) {
29
+ return;
30
+ }
31
+ _metrics.default.postEvent({
32
+ event: events,
33
+ meetingId: eventInfo.meeting.id,
34
+ data: {
35
+ breakoutMoveId: eventInfo.breakoutMoveId,
36
+ breakoutSessionId: eventInfo === null || eventInfo === void 0 ? void 0 : (_eventInfo$currentSes = eventInfo.currentSession) === null || _eventInfo$currentSes === void 0 ? void 0 : _eventInfo$currentSes.sessionId,
37
+ breakoutGroupId: eventInfo === null || eventInfo === void 0 ? void 0 : (_eventInfo$currentSes2 = eventInfo.currentSession) === null || _eventInfo$currentSes2 === void 0 ? void 0 : _eventInfo$currentSes2.groupId
38
+ }
39
+ });
40
+ };
41
+ var _default = breakoutEvent;
42
+ exports.default = _default;
43
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["breakoutEvent","onBreakoutMoveRequest","eventInfo","postMoveCallAnalyzer","eventType","BREAKOUT_MOVE_REQUEST","onBreakoutMoveResponse","BREAKOUT_MOVE_RESPONSE","onBreakoutJoinResponse","BREAKOUT_JOIN_RESPONSE","events","breakoutMoveId","meeting","meetingInfo","enableConvergedArchitecture","Metrics","postEvent","event","meetingId","id","data","breakoutSessionId","currentSession","sessionId","breakoutGroupId","groupId"],"sources":["events.ts"],"sourcesContent":["// eslint-disable-next-line import/prefer-default-export\nimport Metrics from '../metrics';\nimport {eventType} from '../metrics/config';\n\nconst breakoutEvent: any = {};\n\nbreakoutEvent.onBreakoutMoveRequest = (eventInfo) => {\n breakoutEvent.postMoveCallAnalyzer(eventType.BREAKOUT_MOVE_REQUEST, eventInfo);\n};\n\nbreakoutEvent.onBreakoutMoveResponse = (eventInfo) => {\n breakoutEvent.postMoveCallAnalyzer(eventType.BREAKOUT_MOVE_RESPONSE, eventInfo);\n};\n\nbreakoutEvent.onBreakoutJoinResponse = (eventInfo) => {\n breakoutEvent.postMoveCallAnalyzer(eventType.BREAKOUT_JOIN_RESPONSE, eventInfo);\n};\n\nbreakoutEvent.postMoveCallAnalyzer = (events: string, eventInfo: any) => {\n if (!eventInfo?.breakoutMoveId || !eventInfo?.meeting) {\n return;\n }\n if (!eventInfo.meeting.meetingInfo?.enableConvergedArchitecture) {\n return;\n }\n Metrics.postEvent({\n event: events,\n meetingId: eventInfo.meeting.id,\n data: {\n breakoutMoveId: eventInfo.breakoutMoveId,\n breakoutSessionId: eventInfo?.currentSession?.sessionId,\n breakoutGroupId: eventInfo?.currentSession?.groupId,\n },\n });\n};\n\nexport default breakoutEvent;\n"],"mappings":";;;;;;;;AACA;AACA;AAFA;;AAIA,IAAMA,aAAkB,GAAG,CAAC,CAAC;AAE7BA,aAAa,CAACC,qBAAqB,GAAG,UAACC,SAAS,EAAK;EACnDF,aAAa,CAACG,oBAAoB,CAACC,iBAAS,CAACC,qBAAqB,EAAEH,SAAS,CAAC;AAChF,CAAC;AAEDF,aAAa,CAACM,sBAAsB,GAAG,UAACJ,SAAS,EAAK;EACpDF,aAAa,CAACG,oBAAoB,CAACC,iBAAS,CAACG,sBAAsB,EAAEL,SAAS,CAAC;AACjF,CAAC;AAEDF,aAAa,CAACQ,sBAAsB,GAAG,UAACN,SAAS,EAAK;EACpDF,aAAa,CAACG,oBAAoB,CAACC,iBAAS,CAACK,sBAAsB,EAAEP,SAAS,CAAC;AACjF,CAAC;AAEDF,aAAa,CAACG,oBAAoB,GAAG,UAACO,MAAc,EAAER,SAAc,EAAK;EAAA;EACvE,IAAI,EAACA,SAAS,aAATA,SAAS,eAATA,SAAS,CAAES,cAAc,KAAI,EAACT,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEU,OAAO,GAAE;IACrD;EACF;EACA,IAAI,2BAACV,SAAS,CAACU,OAAO,CAACC,WAAW,kDAA7B,sBAA+BC,2BAA2B,GAAE;IAC/D;EACF;EACAC,gBAAO,CAACC,SAAS,CAAC;IAChBC,KAAK,EAAEP,MAAM;IACbQ,SAAS,EAAEhB,SAAS,CAACU,OAAO,CAACO,EAAE;IAC/BC,IAAI,EAAE;MACJT,cAAc,EAAET,SAAS,CAACS,cAAc;MACxCU,iBAAiB,EAAEnB,SAAS,aAATA,SAAS,gDAATA,SAAS,CAAEoB,cAAc,0DAAzB,sBAA2BC,SAAS;MACvDC,eAAe,EAAEtB,SAAS,aAATA,SAAS,iDAATA,SAAS,CAAEoB,cAAc,2DAAzB,uBAA2BG;IAC9C;EACF,CAAC,CAAC;AACJ,CAAC;AAAC,eAEazB,aAAa;AAAA"}
@@ -24,6 +24,7 @@ var _constants = require("../constants");
24
24
  var _breakout = _interopRequireDefault(require("./breakout"));
25
25
  var _collection = _interopRequireDefault(require("./collection"));
26
26
  var _request = _interopRequireDefault(require("./request"));
27
+ var _events = _interopRequireDefault(require("./events"));
27
28
  var _utils = require("./utils");
28
29
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
29
30
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -132,12 +133,17 @@ var Breakouts = _webexCore.WebexPlugin.extend({
132
133
  leading: true,
133
134
  trailing: false
134
135
  });
135
- this.listenTo(this.breakouts, 'add', function () {
136
+ this.listenTo(this.breakouts, 'add', function (breakout) {
136
137
  _this.debouncedQueryRosters();
138
+ _this.triggerReturnToMainEvent(breakout);
139
+ });
140
+ this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', function (breakout) {
141
+ _this.triggerReturnToMainEvent(breakout);
137
142
  });
138
143
  this.listenToCurrentSessionTypeChange();
139
144
  this.listenToBroadcastMessages();
140
145
  this.listenToBreakoutRosters();
146
+ this.listenToBreakoutHelp();
141
147
  // @ts-ignore
142
148
  this.breakoutRequest = new _request.default({
143
149
  webex: this.webex
@@ -253,6 +259,22 @@ var Breakouts = _webexCore.WebexPlugin.extend({
253
259
  _this5.trigger(_constants.BREAKOUTS.EVENTS.MEMBERS_UPDATE);
254
260
  });
255
261
  },
262
+ /**
263
+ * Sets up a listener for ask help notify from mecury
264
+ * @returns {void}
265
+ */
266
+ listenToBreakoutHelp: function listenToBreakoutHelp() {
267
+ var _this6 = this;
268
+ this.listenTo(this.webex.internal.mercury, 'event:breakout.help', function (event) {
269
+ var _event$data2 = event.data,
270
+ participant = _event$data2.participant,
271
+ sessionId = _event$data2.sessionId;
272
+ _this6.trigger(_constants.BREAKOUTS.EVENTS.ASK_FOR_HELP, {
273
+ participant: participant,
274
+ sessionId: sessionId
275
+ });
276
+ });
277
+ },
256
278
  /**
257
279
  * Updates the information about the current breakout
258
280
  * @param {Object} params
@@ -274,8 +296,17 @@ var Breakouts = _webexCore.WebexPlugin.extend({
274
296
  }, (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ACTIVE, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ALLOWED, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ALLOWED, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.REQUESTED, false), _this$set));
275
297
 
276
298
  // We need to call queryPreAssignments when enableBreakoutSession become true
277
- if (params.enableBreakoutSession && params.hasBreakoutPreAssignments && preEnableBreakoutSession !== params.enableBreakoutSession) {
278
- this.queryPreAssignments();
299
+ if (preEnableBreakoutSession !== params.enableBreakoutSession) {
300
+ this.queryPreAssignments(params);
301
+ }
302
+ if (this.currentBreakoutSession.previous('sessionId') !== this.currentBreakoutSession.sessionId || this.currentBreakoutSession.previous('groupId') !== this.currentBreakoutSession.groupId) {
303
+ // should report joined session changed
304
+ var meeting = this.webex.meetings.getMeetingByType(_constants._ID_, this.meetingId);
305
+ _events.default.onBreakoutJoinResponse({
306
+ currentSession: this.currentBreakoutSession,
307
+ meeting: meeting,
308
+ breakoutMoveId: params.breakoutMoveId
309
+ });
279
310
  }
280
311
  },
281
312
  /**
@@ -284,7 +315,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
284
315
  * @returns {void}
285
316
  */
286
317
  updateBreakoutSessions: function updateBreakoutSessions(payload) {
287
- var _this6 = this;
318
+ var _this7 = this;
288
319
  var breakouts = {};
289
320
  if (payload.breakoutSessions) {
290
321
  (0, _forEach2.default)(_constants.BREAKOUTS.SESSION_STATES, function (state) {
@@ -299,17 +330,17 @@ var Breakouts = _webexCore.WebexPlugin.extend({
299
330
  breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.REQUESTED] = false;
300
331
  }
301
332
  breakouts[sessionId][state] = true;
333
+ if (state === _constants.BREAKOUTS.SESSION_STATES.REQUESTED) {
334
+ breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;
335
+ }
302
336
  });
303
337
  });
304
338
  }
305
339
  (0, _forEach2.default)(breakouts, function (breakout) {
306
340
  // eslint-disable-next-line no-param-reassign
307
- breakout.url = _this6.url;
341
+ breakout.url = _this7.url;
308
342
  });
309
343
  this.breakouts.set((0, _values.default)(breakouts));
310
- if (this.allowBackToMain && this.getMainSession().requested) {
311
- this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
312
- }
313
344
  },
314
345
  /**
315
346
  * get main session
@@ -386,18 +417,18 @@ var Breakouts = _webexCore.WebexPlugin.extend({
386
417
  * @returns {Promise}
387
418
  */
388
419
  toggleBreakout: function toggleBreakout(enable) {
389
- var _this7 = this;
420
+ var _this8 = this;
390
421
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
391
422
  var info;
392
423
  return _regenerator.default.wrap(function _callee$(_context) {
393
424
  while (1) switch (_context.prev = _context.next) {
394
425
  case 0:
395
- if (!(_this7.enableBreakoutSession === undefined)) {
426
+ if (!(_this8.enableBreakoutSession === undefined)) {
396
427
  _context.next = 10;
397
428
  break;
398
429
  }
399
430
  _context.next = 3;
400
- return _this7.enableBreakouts();
431
+ return _this8.enableBreakouts();
401
432
  case 3:
402
433
  info = _context.sent;
403
434
  if (enable) {
@@ -405,15 +436,15 @@ var Breakouts = _webexCore.WebexPlugin.extend({
405
436
  break;
406
437
  }
407
438
  // if enable is false, updateBreakout set the param then set enableBreakoutSession as false
408
- _this7.updateBreakout(info.body);
439
+ _this8.updateBreakout(info.body);
409
440
  _context.next = 8;
410
- return _this7.doToggleBreakout(enable);
441
+ return _this8.doToggleBreakout(enable);
411
442
  case 8:
412
443
  _context.next = 12;
413
444
  break;
414
445
  case 10:
415
446
  _context.next = 12;
416
- return _this7.doToggleBreakout(enable);
447
+ return _this8.doToggleBreakout(enable);
417
448
  case 12:
418
449
  case "end":
419
450
  return _context.stop();
@@ -448,7 +479,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
448
479
  * @returns {Promise}
449
480
  */
450
481
  create: function create(params) {
451
- var _this8 = this;
482
+ var _this9 = this;
452
483
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
453
484
  var _breakInfo$body;
454
485
  var payload, body, breakInfo;
@@ -456,17 +487,17 @@ var Breakouts = _webexCore.WebexPlugin.extend({
456
487
  while (1) switch (_context2.prev = _context2.next) {
457
488
  case 0:
458
489
  payload = _objectSpread({}, params);
459
- body = _objectSpread(_objectSpread({}, _this8.editLock && !!_this8.editLock.token ? {
490
+ body = _objectSpread(_objectSpread({}, _this9.editLock && !!_this9.editLock.token ? {
460
491
  editlock: {
461
- token: _this8.editLock.token
492
+ token: _this9.editLock.token
462
493
  }
463
494
  } : {}), {
464
495
  groups: [payload]
465
496
  }); // @ts-ignore
466
497
  _context2.next = 4;
467
- return _this8.webex.request({
498
+ return _this9.webex.request({
468
499
  method: _constants.HTTP_VERBS.PUT,
469
- uri: _this8.url,
500
+ uri: _this9.url,
470
501
  body: body
471
502
  }).catch(function (error) {
472
503
  return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#create'));
@@ -474,11 +505,11 @@ var Breakouts = _webexCore.WebexPlugin.extend({
474
505
  case 4:
475
506
  breakInfo = _context2.sent;
476
507
  if ((_breakInfo$body = breakInfo.body) !== null && _breakInfo$body !== void 0 && _breakInfo$body.groups) {
477
- _this8.set('groups', breakInfo.body.groups);
508
+ _this9.set('groups', breakInfo.body.groups);
478
509
  }
479
510
 
480
511
  // clear edit lock info after save breakout session info
481
- _this8._clearEditLockInfo();
512
+ _this9._clearEditLockInfo();
482
513
  return _context2.abrupt("return", _promise.default.resolve(breakInfo));
483
514
  case 8:
484
515
  case "end":
@@ -492,16 +523,16 @@ var Breakouts = _webexCore.WebexPlugin.extend({
492
523
  * @returns {Promise}
493
524
  */
494
525
  clearSessions: function clearSessions() {
495
- var _this9 = this;
526
+ var _this10 = this;
496
527
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
497
528
  var _breakInfo$body2;
498
529
  var body, breakInfo;
499
530
  return _regenerator.default.wrap(function _callee3$(_context3) {
500
531
  while (1) switch (_context3.prev = _context3.next) {
501
532
  case 0:
502
- body = _objectSpread(_objectSpread({}, _this9.editLock && !!_this9.editLock.token ? {
533
+ body = _objectSpread(_objectSpread({}, _this10.editLock && !!_this10.editLock.token ? {
503
534
  editlock: {
504
- token: _this9.editLock.token
535
+ token: _this10.editLock.token
505
536
  }
506
537
  } : {}), {
507
538
  groups: [{
@@ -509,9 +540,9 @@ var Breakouts = _webexCore.WebexPlugin.extend({
509
540
  }]
510
541
  }); // @ts-ignore
511
542
  _context3.next = 3;
512
- return _this9.webex.request({
543
+ return _this10.webex.request({
513
544
  method: _constants.HTTP_VERBS.PUT,
514
- uri: _this9.url,
545
+ uri: _this10.url,
515
546
  body: body
516
547
  }).catch(function (error) {
517
548
  return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#clearSessions'));
@@ -519,9 +550,9 @@ var Breakouts = _webexCore.WebexPlugin.extend({
519
550
  case 3:
520
551
  breakInfo = _context3.sent;
521
552
  if ((_breakInfo$body2 = breakInfo.body) !== null && _breakInfo$body2 !== void 0 && _breakInfo$body2.groups) {
522
- _this9.set('groups', breakInfo.body.groups);
553
+ _this10.set('groups', breakInfo.body.groups);
523
554
  }
524
- _this9.shouldFetchPreassignments = false;
555
+ _this10.shouldFetchPreassignments = false;
525
556
  return _context3.abrupt("return", _promise.default.resolve(breakInfo));
526
557
  case 7:
527
558
  case "end":
@@ -626,7 +657,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
626
657
  * @returns {Promise}
627
658
  */
628
659
  getBreakout: function getBreakout(editlock) {
629
- var _this10 = this;
660
+ var _this11 = this;
630
661
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
631
662
  var _breakout$body, _breakout$body2, _breakout$body2$editl;
632
663
  var breakout;
@@ -634,18 +665,18 @@ var Breakouts = _webexCore.WebexPlugin.extend({
634
665
  while (1) switch (_context4.prev = _context4.next) {
635
666
  case 0:
636
667
  _context4.next = 2;
637
- return _this10.request({
668
+ return _this11.request({
638
669
  method: _constants.HTTP_VERBS.GET,
639
- uri: _this10.url + (editlock ? "?editlock=".concat(editlock) : '')
670
+ uri: _this11.url + (editlock ? "?editlock=".concat(editlock) : '')
640
671
  });
641
672
  case 2:
642
673
  breakout = _context4.sent;
643
674
  if ((_breakout$body = breakout.body) !== null && _breakout$body !== void 0 && _breakout$body.groups) {
644
- _this10.set('groups', breakout.body.groups);
675
+ _this11.set('groups', breakout.body.groups);
645
676
  }
646
677
  if (editlock && (_breakout$body2 = breakout.body) !== null && _breakout$body2 !== void 0 && (_breakout$body2$editl = _breakout$body2.editlock) !== null && _breakout$body2$editl !== void 0 && _breakout$body2$editl.token) {
647
- _this10.set('editLock', breakout.body.editlock);
648
- _this10.keepEditLockAlive();
678
+ _this11.set('editLock', breakout.body.editlock);
679
+ _this11.keepEditLockAlive();
649
680
  }
650
681
  return _context4.abrupt("return", breakout);
651
682
  case 6:
@@ -660,26 +691,26 @@ var Breakouts = _webexCore.WebexPlugin.extend({
660
691
  * @returns {void}
661
692
  */
662
693
  enableAndLockBreakout: function enableAndLockBreakout() {
663
- var _this11 = this;
694
+ var _this12 = this;
664
695
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
665
696
  var info;
666
697
  return _regenerator.default.wrap(function _callee5$(_context5) {
667
698
  while (1) switch (_context5.prev = _context5.next) {
668
699
  case 0:
669
- if (!_this11.enableBreakoutSession) {
700
+ if (!_this12.enableBreakoutSession) {
670
701
  _context5.next = 4;
671
702
  break;
672
703
  }
673
- _this11.lockBreakout();
704
+ _this12.lockBreakout();
674
705
  _context5.next = 8;
675
706
  break;
676
707
  case 4:
677
708
  _context5.next = 6;
678
- return _this11.enableBreakouts();
709
+ return _this12.enableBreakouts();
679
710
  case 6:
680
711
  info = _context5.sent;
681
712
  if (info.body) {
682
- _this11.lockBreakout();
713
+ _this12.lockBreakout();
683
714
  }
684
715
  case 8:
685
716
  case "end":
@@ -693,33 +724,33 @@ var Breakouts = _webexCore.WebexPlugin.extend({
693
724
  * @returns {void}
694
725
  */
695
726
  lockBreakout: function lockBreakout() {
696
- var _this12 = this;
727
+ var _this13 = this;
697
728
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
698
729
  var _breakout$body3, breakout;
699
730
  return _regenerator.default.wrap(function _callee6$(_context6) {
700
731
  while (1) switch (_context6.prev = _context6.next) {
701
732
  case 0:
702
- if (!(_this12.editLock && !!_this12.editLock.token)) {
733
+ if (!(_this13.editLock && !!_this13.editLock.token)) {
703
734
  _context6.next = 8;
704
735
  break;
705
736
  }
706
- if (!(_this12.editLock.state === _constants.BREAKOUTS.EDIT_LOCK_STATUS.LOCKED)) {
737
+ if (!(_this13.editLock.state === _constants.BREAKOUTS.EDIT_LOCK_STATUS.LOCKED)) {
707
738
  _context6.next = 5;
708
739
  break;
709
740
  }
710
741
  throw new Error('Breakout already locked');
711
742
  case 5:
712
- _this12.keepEditLockAlive();
743
+ _this13.keepEditLockAlive();
713
744
  case 6:
714
745
  _context6.next = 12;
715
746
  break;
716
747
  case 8:
717
748
  _context6.next = 10;
718
- return _this12.getBreakout(true);
749
+ return _this13.getBreakout(true);
719
750
  case 10:
720
751
  breakout = _context6.sent;
721
752
  if ((_breakout$body3 = breakout.body) !== null && _breakout$body3 !== void 0 && _breakout$body3.editlock) {
722
- _this12.keepEditLockAlive();
753
+ _this13.keepEditLockAlive();
723
754
  }
724
755
  case 12:
725
756
  case "end":
@@ -733,18 +764,18 @@ var Breakouts = _webexCore.WebexPlugin.extend({
733
764
  * @returns {void}
734
765
  */
735
766
  keepEditLockAlive: function keepEditLockAlive() {
736
- var _this13 = this;
767
+ var _this14 = this;
737
768
  if (this.editLock && !!this.editLock.token) {
738
769
  var ttl = this.editLock.ttl < 30 ? _constants.BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;
739
770
  if (this.intervalID) {
740
771
  window.clearInterval(this.intervalID);
741
772
  }
742
773
  this.intervalID = window.setInterval(function () {
743
- _this13.request({
774
+ _this14.request({
744
775
  method: _constants.HTTP_VERBS.PUT,
745
- uri: "".concat(_this13.url, "/editlock/").concat(_this13.editLock.token)
776
+ uri: "".concat(_this14.url, "/editlock/").concat(_this14.editLock.token)
746
777
  }).catch(function (error) {
747
- _this13._clearEditLockInfo();
778
+ _this14._clearEditLockInfo();
748
779
  return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#keepEditLockAlive'));
749
780
  });
750
781
  }, ttl / 2 * 1000);
@@ -755,13 +786,13 @@ var Breakouts = _webexCore.WebexPlugin.extend({
755
786
  * @returns {void}
756
787
  */
757
788
  unLockEditBreakout: function unLockEditBreakout() {
758
- var _this14 = this;
789
+ var _this15 = this;
759
790
  if (this.editLock && !!this.editLock.token) {
760
791
  this.request({
761
792
  method: _constants.HTTP_VERBS.DELETE,
762
793
  uri: "".concat(this.url, "/editlock/").concat(this.editLock.token)
763
794
  }).then(function () {
764
- _this14._clearEditLockInfo();
795
+ _this15._clearEditLockInfo();
765
796
  }).catch(function (error) {
766
797
  return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#unLockEditBreakout'));
767
798
  });
@@ -811,10 +842,14 @@ var Breakouts = _webexCore.WebexPlugin.extend({
811
842
  },
812
843
  /**
813
844
  * The pre-assignments need to be queried when "hasBreakoutPreAssignments" is true
845
+ * @param {Object} params
814
846
  * @returns {void}
815
847
  */
816
- queryPreAssignments: function queryPreAssignments() {
817
- var _this15 = this;
848
+ queryPreAssignments: function queryPreAssignments(params) {
849
+ var _this16 = this;
850
+ if (!params || !params.enableBreakoutSession || !params.hasBreakoutPreAssignments) {
851
+ return;
852
+ }
818
853
  if (!this.shouldFetchPreassignments) {
819
854
  this.webex.request({
820
855
  uri: "".concat(this.url, "/preassignments"),
@@ -824,7 +859,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
824
859
  }).then(function (result) {
825
860
  var _result$body;
826
861
  if ((_result$body = result.body) !== null && _result$body !== void 0 && _result$body.groups) {
827
- _this15.set('groups', result.body.groups);
862
+ _this16.set('groups', result.body.groups);
828
863
  }
829
864
  }).catch(function (error) {
830
865
  _loggerProxy.default.logger.error('Meeting:breakouts#queryPreAssignments failed', error);
@@ -862,7 +897,17 @@ var Breakouts = _webexCore.WebexPlugin.extend({
862
897
  body: body
863
898
  });
864
899
  },
865
- version: "3.0.0-beta.93"
900
+ /**
901
+ * trigger ASK_RETURN_TO_MAIN event when main session requested
902
+ * @param {Object} breakout
903
+ * @returns {void}
904
+ */
905
+ triggerReturnToMainEvent: function triggerReturnToMainEvent(breakout) {
906
+ if (breakout.isMain && breakout.requested) {
907
+ this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
908
+ }
909
+ },
910
+ version: "3.0.0-beta.95"
866
911
  });
867
912
  var _default = Breakouts;
868
913
  exports.default = _default;