@webex/plugin-meetings 3.0.0-bnr.1 → 3.0.0-bnr.2

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 (144) hide show
  1. package/dist/breakouts/breakout.js +50 -9
  2. package/dist/breakouts/breakout.js.map +1 -1
  3. package/dist/breakouts/index.js +164 -45
  4. package/dist/breakouts/index.js.map +1 -1
  5. package/dist/breakouts/utils.js +11 -7
  6. package/dist/breakouts/utils.js.map +1 -1
  7. package/dist/constants.js +15 -5
  8. package/dist/constants.js.map +1 -1
  9. package/dist/controls-options-manager/index.js +43 -22
  10. package/dist/controls-options-manager/index.js.map +1 -1
  11. package/dist/index.js +63 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/locus-info/controlsUtils.js +15 -0
  14. package/dist/locus-info/controlsUtils.js.map +1 -1
  15. package/dist/locus-info/index.js +17 -6
  16. package/dist/locus-info/index.js.map +1 -1
  17. package/dist/locus-info/selfUtils.js +20 -0
  18. package/dist/locus-info/selfUtils.js.map +1 -1
  19. package/dist/media/index.js.map +1 -1
  20. package/dist/media/properties.js.map +1 -1
  21. package/dist/meeting/in-meeting-actions.js +6 -0
  22. package/dist/meeting/in-meeting-actions.js.map +1 -1
  23. package/dist/meeting/index.js +167 -129
  24. package/dist/meeting/index.js.map +1 -1
  25. package/dist/meeting/muteState.js +169 -26
  26. package/dist/meeting/muteState.js.map +1 -1
  27. package/dist/meeting/util.js +3 -0
  28. package/dist/meeting/util.js.map +1 -1
  29. package/dist/meetings/collection.js +22 -0
  30. package/dist/meetings/collection.js.map +1 -1
  31. package/dist/meetings/index.js +114 -13
  32. package/dist/meetings/index.js.map +1 -1
  33. package/dist/meetings/request.js +2 -0
  34. package/dist/meetings/request.js.map +1 -1
  35. package/dist/meetings/util.js +36 -1
  36. package/dist/meetings/util.js.map +1 -1
  37. package/dist/member/index.js +23 -0
  38. package/dist/member/index.js.map +1 -1
  39. package/dist/member/util.js +61 -2
  40. package/dist/member/util.js.map +1 -1
  41. package/dist/members/collection.js +10 -0
  42. package/dist/members/collection.js.map +1 -1
  43. package/dist/members/index.js +42 -1
  44. package/dist/members/index.js.map +1 -1
  45. package/dist/members/request.js +19 -0
  46. package/dist/members/request.js.map +1 -1
  47. package/dist/members/util.js +38 -0
  48. package/dist/members/util.js.map +1 -1
  49. package/dist/metrics/config.js +3 -1
  50. package/dist/metrics/config.js.map +1 -1
  51. package/dist/metrics/index.js +5 -0
  52. package/dist/metrics/index.js.map +1 -1
  53. package/dist/multistream/mediaRequestManager.js +48 -6
  54. package/dist/multistream/mediaRequestManager.js.map +1 -1
  55. package/dist/multistream/receiveSlot.js +10 -0
  56. package/dist/multistream/receiveSlot.js.map +1 -1
  57. package/dist/multistream/remoteMedia.js +3 -1
  58. package/dist/multistream/remoteMedia.js.map +1 -1
  59. package/dist/multistream/remoteMediaManager.js +21 -1
  60. package/dist/multistream/remoteMediaManager.js.map +1 -1
  61. package/dist/reconnection-manager/index.js +63 -47
  62. package/dist/reconnection-manager/index.js.map +1 -1
  63. package/dist/types/breakouts/utils.d.ts +2 -2
  64. package/dist/types/constants.d.ts +8 -0
  65. package/dist/types/index.d.ts +6 -5
  66. package/dist/types/locus-info/index.d.ts +3 -3
  67. package/dist/types/media/properties.d.ts +1 -1
  68. package/dist/types/meeting/in-meeting-actions.d.ts +6 -0
  69. package/dist/types/meeting/index.d.ts +9 -5
  70. package/dist/types/meeting/muteState.d.ts +58 -5
  71. package/dist/types/meetings/collection.d.ts +8 -0
  72. package/dist/types/meetings/index.d.ts +19 -0
  73. package/dist/types/member/index.d.ts +10 -0
  74. package/dist/types/member/types.d.ts +21 -0
  75. package/dist/types/members/collection.d.ts +5 -0
  76. package/dist/types/members/index.d.ts +18 -0
  77. package/dist/types/members/request.d.ts +8 -0
  78. package/dist/types/members/types.d.ts +24 -0
  79. package/dist/types/metrics/config.d.ts +2 -0
  80. package/dist/types/multistream/mediaRequestManager.d.ts +17 -0
  81. package/dist/types/multistream/receiveSlot.d.ts +4 -0
  82. package/dist/types/multistream/remoteMedia.d.ts +1 -29
  83. package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
  84. package/dist/types/multistream/remoteMediaManager.d.ts +4 -0
  85. package/dist/types/reconnection-manager/index.d.ts +9 -0
  86. package/package.json +20 -19
  87. package/src/breakouts/README.md +12 -1
  88. package/src/breakouts/breakout.ts +27 -3
  89. package/src/breakouts/index.ts +160 -73
  90. package/src/breakouts/utils.ts +11 -6
  91. package/src/constants.ts +8 -0
  92. package/src/controls-options-manager/index.ts +47 -25
  93. package/src/{index.js → index.ts} +15 -0
  94. package/src/locus-info/controlsUtils.ts +19 -0
  95. package/src/locus-info/index.ts +20 -5
  96. package/src/locus-info/selfUtils.ts +27 -0
  97. package/src/media/index.ts +2 -7
  98. package/src/media/properties.ts +3 -7
  99. package/src/meeting/in-meeting-actions.ts +12 -0
  100. package/src/meeting/index.ts +134 -91
  101. package/src/meeting/muteState.ts +158 -15
  102. package/src/meeting/util.ts +4 -1
  103. package/src/meetings/collection.ts +20 -0
  104. package/src/meetings/index.ts +155 -25
  105. package/src/meetings/request.ts +2 -0
  106. package/src/meetings/util.ts +41 -1
  107. package/src/member/index.ts +22 -0
  108. package/src/member/types.ts +24 -0
  109. package/src/member/util.ts +53 -0
  110. package/src/members/collection.ts +8 -0
  111. package/src/members/index.ts +51 -1
  112. package/src/members/request.ts +20 -0
  113. package/src/members/types.ts +28 -0
  114. package/src/members/util.ts +39 -1
  115. package/src/metrics/config.ts +2 -0
  116. package/src/metrics/index.ts +5 -0
  117. package/src/multistream/mediaRequestManager.ts +45 -3
  118. package/src/multistream/receiveSlot.ts +7 -0
  119. package/src/multistream/remoteMedia.ts +3 -1
  120. package/src/multistream/remoteMediaManager.ts +21 -4
  121. package/src/reconnection-manager/index.ts +37 -22
  122. package/test/unit/spec/breakouts/breakout.ts +36 -4
  123. package/test/unit/spec/breakouts/index.ts +320 -33
  124. package/test/unit/spec/breakouts/utils.js +8 -1
  125. package/test/unit/spec/controls-options-manager/index.js +24 -0
  126. package/test/unit/spec/locus-info/controlsUtils.js +21 -0
  127. package/test/unit/spec/locus-info/index.js +84 -0
  128. package/test/unit/spec/locus-info/selfUtils.js +37 -0
  129. package/test/unit/spec/meeting/in-meeting-actions.ts +6 -0
  130. package/test/unit/spec/meeting/index.js +37 -28
  131. package/test/unit/spec/meeting/muteState.js +22 -13
  132. package/test/unit/spec/meeting/utils.js +1 -0
  133. package/test/unit/spec/meetings/collection.js +14 -0
  134. package/test/unit/spec/meetings/index.js +183 -6
  135. package/test/unit/spec/meetings/utils.js +51 -2
  136. package/test/unit/spec/member/index.js +24 -0
  137. package/test/unit/spec/member/util.js +336 -33
  138. package/test/unit/spec/members/index.js +115 -0
  139. package/test/unit/spec/members/request.js +21 -0
  140. package/test/unit/spec/members/utils.js +28 -0
  141. package/test/unit/spec/multistream/mediaRequestManager.ts +55 -8
  142. package/test/unit/spec/multistream/receiveSlot.ts +8 -0
  143. package/test/unit/spec/multistream/remoteMedia.ts +2 -0
  144. package/test/unit/spec/multistream/remoteMediaManager.ts +68 -0
@@ -6,10 +6,15 @@ _Object$defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
9
11
  var _webexCore = require("@webex/webex-core");
12
+ var _uuid = _interopRequireDefault(require("uuid"));
10
13
  var _constants = require("../constants");
11
14
  var _members = _interopRequireDefault(require("../members"));
12
15
  var _request = _interopRequireDefault(require("./request"));
16
+ var _metrics = _interopRequireDefault(require("../metrics"));
17
+ var _config = require("../metrics/config");
13
18
  /*!
14
19
  * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
15
20
  */
@@ -67,14 +72,50 @@ var Breakout = _webexCore.WebexPlugin.extend({
67
72
  * @returns {Promise}
68
73
  */
69
74
  join: function join() {
70
- return this.request({
71
- method: _constants.HTTP_VERBS.POST,
72
- uri: "".concat(this.url, "/move"),
73
- body: {
74
- groupId: this.groupId,
75
- sessionId: this.sessionId
76
- }
77
- });
75
+ var _this = this;
76
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
77
+ var breakoutMoveId, meetingId, result;
78
+ return _regenerator.default.wrap(function _callee$(_context) {
79
+ while (1) switch (_context.prev = _context.next) {
80
+ case 0:
81
+ breakoutMoveId = _uuid.default.v4();
82
+ meetingId = _this.collection.parent.meetingId;
83
+ _metrics.default.postEvent({
84
+ event: _config.eventType.MOVE_TO_BREAKOUT,
85
+ meetingId: meetingId,
86
+ data: {
87
+ breakoutMoveId: breakoutMoveId,
88
+ breakoutSessionId: _this.sessionId,
89
+ breakoutGroupId: _this.groupId
90
+ }
91
+ });
92
+ _context.next = 5;
93
+ return _this.request({
94
+ method: _constants.HTTP_VERBS.POST,
95
+ uri: "".concat(_this.url, "/move"),
96
+ body: {
97
+ groupId: _this.groupId,
98
+ sessionId: _this.sessionId
99
+ }
100
+ });
101
+ case 5:
102
+ result = _context.sent;
103
+ _metrics.default.postEvent({
104
+ event: _config.eventType.JOIN_BREAKOUT_RESPONSE,
105
+ meetingId: meetingId,
106
+ data: {
107
+ breakoutMoveId: breakoutMoveId,
108
+ breakoutSessionId: _this.sessionId,
109
+ breakoutGroupId: _this.groupId
110
+ }
111
+ });
112
+ return _context.abrupt("return", result);
113
+ case 8:
114
+ case "end":
115
+ return _context.stop();
116
+ }
117
+ }, _callee);
118
+ }))();
78
119
  },
79
120
  /**
80
121
  * Leaves the breakout session to return to the main session
@@ -130,7 +171,7 @@ var Breakout = _webexCore.WebexPlugin.extend({
130
171
  sessionId: this.sessionId
131
172
  });
132
173
  },
133
- version: "3.0.0-bnr.1"
174
+ version: "3.0.0-bnr.2"
134
175
  });
135
176
  var _default = Breakout;
136
177
  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","deps","fn","initialize","members","Members","parent","webex","join","request","method","HTTP_VERBS","POST","uri","body","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 {HTTP_VERBS, MEETINGS} from '../constants';\nimport LocusInfo from '../locus-info';\nimport Members from '../members';\nimport BreakoutRequest from './request';\n\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 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 join() {\n return 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 },\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","derived","isMain","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 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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"}
@@ -43,6 +43,8 @@ var Breakouts = _webexCore.WebexPlugin.extend({
43
43
  // appears once breakouts start
44
44
  enableBreakoutSession: 'boolean',
45
45
  // appears from the moment you enable breakouts
46
+ hasBreakoutPreAssignments: 'boolean',
47
+ // appears from the moment you enable breakouts
46
48
  groupId: 'string',
47
49
  // appears from the moment you enable breakouts
48
50
  name: 'string',
@@ -65,9 +67,12 @@ var Breakouts = _webexCore.WebexPlugin.extend({
65
67
  // the locus url of the main session
66
68
  groups: 'array',
67
69
  // appears when create breakouts
70
+ shouldFetchPreassignments: 'boolean',
71
+ // Controlling the lifecycle of the pre-assign API
68
72
  editLock: 'object',
69
73
  // appears when getBreakout info editlock = true
70
- intervalID: 'number'
74
+ intervalID: 'number',
75
+ meetingId: 'string'
71
76
  },
72
77
  children: {
73
78
  currentBreakoutSession: _breakout.default
@@ -83,6 +88,16 @@ var Breakouts = _webexCore.WebexPlugin.extend({
83
88
  return this.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN;
84
89
  }
85
90
  },
91
+ isActiveBreakout: {
92
+ deps: ['sessionType', 'status'],
93
+ /**
94
+ * Returns true if the breakout status is active
95
+ * @returns {boolean}
96
+ */
97
+ fn: function fn() {
98
+ return this.sessionType === _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT && (this.status === _constants.BREAKOUTS.STATUS.OPEN || this.status === _constants.BREAKOUTS.STATUS.CLOSING);
99
+ }
100
+ },
86
101
  breakoutGroupId: {
87
102
  deps: ['groups'],
88
103
  /**
@@ -228,6 +243,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
228
243
  */
229
244
  updateBreakout: function updateBreakout(params) {
230
245
  var _this$set;
246
+ var preEnableBreakoutSession = this.get('enableBreakoutSession');
231
247
  this.set(params);
232
248
  this.set('groups', params.groups);
233
249
  this.set('currentBreakoutSession', (_this$set = {
@@ -238,7 +254,11 @@ var Breakouts = _webexCore.WebexPlugin.extend({
238
254
  sessionType: params.sessionType,
239
255
  url: params.url
240
256
  }, (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));
241
- this.set('enableBreakoutSession', params.enableBreakoutSession);
257
+
258
+ // We need to call queryPreAssignments when enableBreakoutSession become true
259
+ if (params.enableBreakoutSession && params.hasBreakoutPreAssignments && preEnableBreakoutSession !== params.enableBreakoutSession) {
260
+ this.queryPreAssignments();
261
+ }
242
262
  },
243
263
  /**
244
264
  * Updates the information about available breakouts
@@ -386,13 +406,19 @@ var Breakouts = _webexCore.WebexPlugin.extend({
386
406
  * @returns {Promise}
387
407
  */
388
408
  doToggleBreakout: function doToggleBreakout(enable) {
409
+ var body = _objectSpread(_objectSpread({}, this.editLock && !!this.editLock.token ? {
410
+ editlock: {
411
+ token: this.editLock.token
412
+ }
413
+ } : {}), {
414
+ enableBreakoutSession: enable
415
+ });
416
+
389
417
  // @ts-ignore
390
418
  return this.webex.request({
391
419
  method: _constants.HTTP_VERBS.PUT,
392
420
  uri: this.url,
393
- body: {
394
- enableBreakoutSession: enable
395
- }
421
+ body: body
396
422
  });
397
423
  },
398
424
  /**
@@ -404,30 +430,26 @@ var Breakouts = _webexCore.WebexPlugin.extend({
404
430
  var _this7 = this;
405
431
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
406
432
  var _breakInfo$body;
407
- var bodyInfo, breakInfo;
433
+ var body, breakInfo;
408
434
  return _regenerator.default.wrap(function _callee2$(_context2) {
409
435
  while (1) switch (_context2.prev = _context2.next) {
410
436
  case 0:
411
- // @ts-ignore
412
- bodyInfo = _this7.editLock && !!_this7.editLock.token ? {
413
- groups: [{
414
- sessions: sessions
415
- }],
437
+ body = _objectSpread(_objectSpread({}, _this7.editLock && !!_this7.editLock.token ? {
416
438
  editlock: {
417
439
  token: _this7.editLock.token
418
440
  }
419
- } : {
441
+ } : {}), {
420
442
  groups: [{
421
443
  sessions: sessions
422
444
  }]
423
- };
445
+ }); // @ts-ignore
424
446
  _context2.next = 3;
425
447
  return _this7.webex.request({
426
448
  method: _constants.HTTP_VERBS.PUT,
427
449
  uri: _this7.url,
428
- body: bodyInfo
450
+ body: body
429
451
  }).catch(function (error) {
430
- return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#create --> Edit lock token mismatch'));
452
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#create'));
431
453
  });
432
454
  case 3:
433
455
  breakInfo = _context2.sent;
@@ -453,38 +475,35 @@ var Breakouts = _webexCore.WebexPlugin.extend({
453
475
  var _this8 = this;
454
476
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
455
477
  var _breakInfo$body2;
456
- var bodyInfo, breakInfo;
478
+ var body, breakInfo;
457
479
  return _regenerator.default.wrap(function _callee3$(_context3) {
458
480
  while (1) switch (_context3.prev = _context3.next) {
459
481
  case 0:
460
- // @ts-ignore
461
- bodyInfo = _this8.editLock && !!_this8.editLock.token ? {
462
- groups: [{
463
- action: _constants.BREAKOUTS.ACTION.DELETE
464
- }],
482
+ body = _objectSpread(_objectSpread({}, _this8.editLock && !!_this8.editLock.token ? {
465
483
  editlock: {
466
484
  token: _this8.editLock.token
467
485
  }
468
- } : {
486
+ } : {}), {
469
487
  groups: [{
470
488
  action: _constants.BREAKOUTS.ACTION.DELETE
471
489
  }]
472
- };
490
+ }); // @ts-ignore
473
491
  _context3.next = 3;
474
492
  return _this8.webex.request({
475
493
  method: _constants.HTTP_VERBS.PUT,
476
494
  uri: _this8.url,
477
- body: bodyInfo
495
+ body: body
478
496
  }).catch(function (error) {
479
- return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#clearSessions --> Edit lock token mismatch'));
497
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#clearSessions'));
480
498
  });
481
499
  case 3:
482
500
  breakInfo = _context3.sent;
483
501
  if ((_breakInfo$body2 = breakInfo.body) !== null && _breakInfo$body2 !== void 0 && _breakInfo$body2.groups) {
484
502
  _this8.set('groups', breakInfo.body.groups);
485
503
  }
504
+ _this8.shouldFetchPreassignments = false;
486
505
  return _context3.abrupt("return", _promise.default.resolve(breakInfo));
487
- case 6:
506
+ case 7:
488
507
  case "end":
489
508
  return _context3.stop();
490
509
  }
@@ -506,14 +525,20 @@ var Breakouts = _webexCore.WebexPlugin.extend({
506
525
  allowToJoinLater: false,
507
526
  duration: _constants.BREAKOUTS.DEFAULT_DURATION
508
527
  }, params);
528
+ var body = _objectSpread(_objectSpread({}, this.editLock && !!this.editLock.token ? {
529
+ editlock: {
530
+ token: this.editLock.token,
531
+ refresh: true
532
+ }
533
+ } : {}), {
534
+ groups: [payload]
535
+ });
509
536
  return this.request({
510
537
  method: _constants.HTTP_VERBS.PUT,
511
538
  uri: this.url,
512
- body: {
513
- groups: [payload]
514
- }
539
+ body: body
515
540
  }).catch(function (error) {
516
- return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#start --> Edit lock token mismatch'));
541
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#start'));
517
542
  });
518
543
  },
519
544
  /**
@@ -531,14 +556,48 @@ var Breakouts = _webexCore.WebexPlugin.extend({
531
556
  action: action,
532
557
  delayCloseTime: delayCloseTime
533
558
  }, params);
559
+ var body = _objectSpread(_objectSpread({}, this.editLock && !!this.editLock.token ? {
560
+ editlock: {
561
+ token: this.editLock.token,
562
+ refresh: true
563
+ }
564
+ } : {}), {
565
+ groups: [payload]
566
+ });
534
567
  return this.request({
535
568
  method: _constants.HTTP_VERBS.PUT,
536
569
  uri: this.url,
537
- body: {
538
- groups: [payload]
570
+ body: body
571
+ }).catch(function (error) {
572
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#end'));
573
+ });
574
+ },
575
+ /**
576
+ * Host or cohost update breakout sessions
577
+ * @param {Object} params
578
+ * @param {String} params.id
579
+ * @returns {Promise}
580
+ */
581
+ update: function update(params) {
582
+ var _this$editLock;
583
+ if (!params.id) {
584
+ return _promise.default.reject(new Error('Missing breakout group id'));
585
+ }
586
+ var payload = _objectSpread({}, params);
587
+ var body = _objectSpread(_objectSpread({}, (_this$editLock = this.editLock) !== null && _this$editLock !== void 0 && _this$editLock.token ? {
588
+ editlock: {
589
+ token: this.editLock.token,
590
+ refresh: true
539
591
  }
592
+ } : {}), {
593
+ groups: [payload]
594
+ });
595
+ return this.request({
596
+ method: _constants.HTTP_VERBS.PUT,
597
+ uri: this.url,
598
+ body: body
540
599
  }).catch(function (error) {
541
- return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#end --> Edit lock token mismatch'));
600
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#update'));
542
601
  });
543
602
  },
544
603
  /**
@@ -549,7 +608,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
549
608
  getBreakout: function getBreakout(editlock) {
550
609
  var _this9 = this;
551
610
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
552
- var _breakout$body, _breakout$body2;
611
+ var _breakout$body, _breakout$body2, _breakout$body2$editl;
553
612
  var breakout;
554
613
  return _regenerator.default.wrap(function _callee4$(_context4) {
555
614
  while (1) switch (_context4.prev = _context4.next) {
@@ -564,8 +623,9 @@ var Breakouts = _webexCore.WebexPlugin.extend({
564
623
  if ((_breakout$body = breakout.body) !== null && _breakout$body !== void 0 && _breakout$body.groups) {
565
624
  _this9.set('groups', breakout.body.groups);
566
625
  }
567
- if ((_breakout$body2 = breakout.body) !== null && _breakout$body2 !== void 0 && _breakout$body2.editlock && editlock) {
626
+ 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) {
568
627
  _this9.set('editLock', breakout.body.editlock);
628
+ _this9.keepEditLockAlive();
569
629
  }
570
630
  return _context4.abrupt("return", breakout);
571
631
  case 6:
@@ -656,6 +716,9 @@ var Breakouts = _webexCore.WebexPlugin.extend({
656
716
  var _this12 = this;
657
717
  if (this.editLock && !!this.editLock.token) {
658
718
  var ttl = this.editLock.ttl < 30 ? _constants.BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;
719
+ if (this.intervalID) {
720
+ window.clearInterval(this.intervalID);
721
+ }
659
722
  this.intervalID = window.setInterval(function () {
660
723
  _this12.request({
661
724
  method: _constants.HTTP_VERBS.PUT,
@@ -673,14 +736,16 @@ var Breakouts = _webexCore.WebexPlugin.extend({
673
736
  */
674
737
  unLockEditBreakout: function unLockEditBreakout() {
675
738
  var _this13 = this;
676
- this.request({
677
- method: _constants.HTTP_VERBS.DELETE,
678
- uri: "".concat(this.url, "/editlock/").concat(this.editLock.token)
679
- }).then(function () {
680
- _this13._clearEditLockInfo();
681
- }).catch(function (error) {
682
- return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#unLockEditBreakout'));
683
- });
739
+ if (this.editLock && !!this.editLock.token) {
740
+ this.request({
741
+ method: _constants.HTTP_VERBS.DELETE,
742
+ uri: "".concat(this.url, "/editlock/").concat(this.editLock.token)
743
+ }).then(function () {
744
+ _this13._clearEditLockInfo();
745
+ }).catch(function (error) {
746
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#unLockEditBreakout'));
747
+ });
748
+ }
684
749
  },
685
750
  /**
686
751
  * clear interval and edit lock info
@@ -703,7 +768,8 @@ var Breakouts = _webexCore.WebexPlugin.extend({
703
768
  return {
704
769
  id: item.id,
705
770
  assigned: item.memberIds,
706
- assignedEmails: item.emails
771
+ assignedEmails: item.emails,
772
+ anyoneCanJoin: !!item.anyone
707
773
  };
708
774
  });
709
775
  return this.request({
@@ -717,7 +783,60 @@ var Breakouts = _webexCore.WebexPlugin.extend({
717
783
  }
718
784
  });
719
785
  },
720
- version: "3.0.0-bnr.1"
786
+ /**
787
+ * The pre-assignments need to be queried when "hasBreakoutPreAssignments" is true
788
+ * @returns {void}
789
+ */
790
+ queryPreAssignments: function queryPreAssignments() {
791
+ var _this14 = this;
792
+ if (!this.shouldFetchPreassignments) {
793
+ this.webex.request({
794
+ uri: "".concat(this.url, "/preassignments"),
795
+ qs: {
796
+ locusUrl: btoa(this.locusUrl)
797
+ }
798
+ }).then(function (result) {
799
+ var _result$body;
800
+ if ((_result$body = result.body) !== null && _result$body !== void 0 && _result$body.groups) {
801
+ _this14.set('groups', result.body.groups);
802
+ }
803
+ }).catch(function (error) {
804
+ _loggerProxy.default.logger.error('Meeting:breakouts#queryPreAssignments failed', error);
805
+ });
806
+ this.shouldFetchPreassignments = true;
807
+ }
808
+ },
809
+ /**
810
+ * assign participants dynamically after breakout sessions started,
811
+ * but currently it only used for admitting participants from lobby into breakout directly
812
+ * @param {Array} sessions
813
+ * @returns {void}
814
+ */
815
+ dynamicAssign: function dynamicAssign(sessions) {
816
+ var updatedSessions = sessions.map(function (item) {
817
+ return {
818
+ id: item.id,
819
+ participants: item.participants,
820
+ targetState: item.targetState
821
+ };
822
+ });
823
+ var body = {
824
+ groups: [{
825
+ id: this.breakoutGroupId,
826
+ sessions: updatedSessions
827
+ }],
828
+ editlock: null
829
+ };
830
+ if (this.editLock && this.editLock.token) {
831
+ body.editlock = this.editLock;
832
+ }
833
+ return this.request({
834
+ method: _constants.HTTP_VERBS.PUT,
835
+ uri: "".concat(this.url, "/dynamicAssign"),
836
+ body: body
837
+ });
838
+ },
839
+ version: "3.0.0-bnr.2"
721
840
  });
722
841
  var _default = Breakouts;
723
842
  exports.default = _default;