@webex/plugin-meetings 3.0.0-beta.15 → 3.0.0-beta.151

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 (480) hide show
  1. package/README.md +45 -1
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +359 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +193 -0
  9. package/dist/breakouts/breakout.js.map +1 -0
  10. package/dist/breakouts/collection.js +23 -0
  11. package/dist/breakouts/collection.js.map +1 -0
  12. package/dist/breakouts/edit-lock-error.js +52 -0
  13. package/dist/breakouts/edit-lock-error.js.map +1 -0
  14. package/dist/breakouts/events.js +43 -0
  15. package/dist/breakouts/events.js.map +1 -0
  16. package/dist/breakouts/index.js +1046 -0
  17. package/dist/breakouts/index.js.map +1 -0
  18. package/dist/breakouts/request.js +78 -0
  19. package/dist/breakouts/request.js.map +1 -0
  20. package/dist/breakouts/utils.js +67 -0
  21. package/dist/breakouts/utils.js.map +1 -0
  22. package/dist/common/browser-detection.js +1 -21
  23. package/dist/common/browser-detection.js.map +1 -1
  24. package/dist/common/collection.js +5 -20
  25. package/dist/common/collection.js.map +1 -1
  26. package/dist/common/config.js +0 -7
  27. package/dist/common/config.js.map +1 -1
  28. package/dist/common/errors/captcha-error.js +0 -21
  29. package/dist/common/errors/captcha-error.js.map +1 -1
  30. package/dist/common/errors/intent-to-join.js +0 -21
  31. package/dist/common/errors/intent-to-join.js.map +1 -1
  32. package/dist/common/errors/join-meeting.js +0 -21
  33. package/dist/common/errors/join-meeting.js.map +1 -1
  34. package/dist/common/errors/media.js +0 -21
  35. package/dist/common/errors/media.js.map +1 -1
  36. package/dist/common/errors/parameter.js +0 -28
  37. package/dist/common/errors/parameter.js.map +1 -1
  38. package/dist/common/errors/password-error.js +0 -21
  39. package/dist/common/errors/password-error.js.map +1 -1
  40. package/dist/common/errors/permission.js +0 -21
  41. package/dist/common/errors/permission.js.map +1 -1
  42. package/dist/common/errors/reconnection-in-progress.js +0 -17
  43. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  44. package/dist/common/errors/reconnection.js +0 -21
  45. package/dist/common/errors/reconnection.js.map +1 -1
  46. package/dist/common/errors/stats.js +0 -21
  47. package/dist/common/errors/stats.js.map +1 -1
  48. package/dist/common/errors/webex-errors.js +9 -43
  49. package/dist/common/errors/webex-errors.js.map +1 -1
  50. package/dist/common/errors/webex-meetings-error.js +1 -24
  51. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  52. package/dist/common/events/events-scope.js +0 -22
  53. package/dist/common/events/events-scope.js.map +1 -1
  54. package/dist/common/events/events.js +0 -23
  55. package/dist/common/events/events.js.map +1 -1
  56. package/dist/common/events/trigger-proxy.js +0 -12
  57. package/dist/common/events/trigger-proxy.js.map +1 -1
  58. package/dist/common/events/util.js +0 -15
  59. package/dist/common/events/util.js.map +1 -1
  60. package/dist/common/logs/logger-config.js +0 -4
  61. package/dist/common/logs/logger-config.js.map +1 -1
  62. package/dist/common/logs/logger-proxy.js +1 -8
  63. package/dist/common/logs/logger-proxy.js.map +1 -1
  64. package/dist/common/logs/request.js +35 -61
  65. package/dist/common/logs/request.js.map +1 -1
  66. package/dist/common/queue.js +4 -14
  67. package/dist/common/queue.js.map +1 -1
  68. package/dist/config.js +7 -13
  69. package/dist/config.js.map +1 -1
  70. package/dist/constants.js +208 -64
  71. package/dist/constants.js.map +1 -1
  72. package/dist/controls-options-manager/constants.js +14 -0
  73. package/dist/controls-options-manager/constants.js.map +1 -0
  74. package/dist/controls-options-manager/enums.js +27 -0
  75. package/dist/controls-options-manager/enums.js.map +1 -0
  76. package/dist/controls-options-manager/index.js +297 -0
  77. package/dist/controls-options-manager/index.js.map +1 -0
  78. package/dist/controls-options-manager/types.js +7 -0
  79. package/dist/controls-options-manager/types.js.map +1 -0
  80. package/dist/controls-options-manager/util.js +300 -0
  81. package/dist/controls-options-manager/util.js.map +1 -0
  82. package/dist/index.js +78 -17
  83. package/dist/index.js.map +1 -1
  84. package/dist/locus-info/controlsUtils.js +100 -29
  85. package/dist/locus-info/controlsUtils.js.map +1 -1
  86. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  87. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  88. package/dist/locus-info/fullState.js +0 -15
  89. package/dist/locus-info/fullState.js.map +1 -1
  90. package/dist/locus-info/hostUtils.js +4 -12
  91. package/dist/locus-info/hostUtils.js.map +1 -1
  92. package/dist/locus-info/index.js +387 -208
  93. package/dist/locus-info/index.js.map +1 -1
  94. package/dist/locus-info/infoUtils.js +0 -38
  95. package/dist/locus-info/infoUtils.js.map +1 -1
  96. package/dist/locus-info/mediaSharesUtils.js +54 -38
  97. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  98. package/dist/locus-info/parser.js +90 -126
  99. package/dist/locus-info/parser.js.map +1 -1
  100. package/dist/locus-info/selfUtils.js +93 -92
  101. package/dist/locus-info/selfUtils.js.map +1 -1
  102. package/dist/media/index.js +70 -219
  103. package/dist/media/index.js.map +1 -1
  104. package/dist/media/properties.js +74 -198
  105. package/dist/media/properties.js.map +1 -1
  106. package/dist/media/util.js +1 -8
  107. package/dist/media/util.js.map +1 -1
  108. package/dist/mediaQualityMetrics/config.js +505 -495
  109. package/dist/mediaQualityMetrics/config.js.map +1 -1
  110. package/dist/meeting/in-meeting-actions.js +79 -14
  111. package/dist/meeting/in-meeting-actions.js.map +1 -1
  112. package/dist/meeting/index.js +2685 -3324
  113. package/dist/meeting/index.js.map +1 -1
  114. package/dist/meeting/locusMediaRequest.js +291 -0
  115. package/dist/meeting/locusMediaRequest.js.map +1 -0
  116. package/dist/meeting/muteState.js +243 -185
  117. package/dist/meeting/muteState.js.map +1 -1
  118. package/dist/meeting/request.js +296 -342
  119. package/dist/meeting/request.js.map +1 -1
  120. package/dist/meeting/request.type.js +0 -1
  121. package/dist/meeting/request.type.js.map +1 -1
  122. package/dist/meeting/state.js +16 -26
  123. package/dist/meeting/state.js.map +1 -1
  124. package/dist/meeting/util.js +446 -585
  125. package/dist/meeting/util.js.map +1 -1
  126. package/dist/meeting-info/collection.js +3 -25
  127. package/dist/meeting-info/collection.js.map +1 -1
  128. package/dist/meeting-info/index.js +8 -31
  129. package/dist/meeting-info/index.js.map +1 -1
  130. package/dist/meeting-info/meeting-info-v2.js +261 -242
  131. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  132. package/dist/meeting-info/request.js +1 -16
  133. package/dist/meeting-info/request.js.map +1 -1
  134. package/dist/meeting-info/util.js +98 -183
  135. package/dist/meeting-info/util.js.map +1 -1
  136. package/dist/meeting-info/utilv2.js +156 -232
  137. package/dist/meeting-info/utilv2.js.map +1 -1
  138. package/dist/meetings/collection.js +24 -20
  139. package/dist/meetings/collection.js.map +1 -1
  140. package/dist/meetings/index.js +526 -372
  141. package/dist/meetings/index.js.map +1 -1
  142. package/dist/meetings/meetings.types.js +7 -0
  143. package/dist/meetings/meetings.types.js.map +1 -0
  144. package/dist/meetings/request.js +21 -40
  145. package/dist/meetings/request.js.map +1 -1
  146. package/dist/meetings/util.js +172 -141
  147. package/dist/meetings/util.js.map +1 -1
  148. package/dist/member/index.js +58 -57
  149. package/dist/member/index.js.map +1 -1
  150. package/dist/member/types.js +15 -0
  151. package/dist/member/types.js.map +1 -0
  152. package/dist/member/util.js +101 -69
  153. package/dist/member/util.js.map +1 -1
  154. package/dist/members/collection.js +12 -12
  155. package/dist/members/collection.js.map +1 -1
  156. package/dist/members/index.js +123 -162
  157. package/dist/members/index.js.map +1 -1
  158. package/dist/members/request.js +120 -85
  159. package/dist/members/request.js.map +1 -1
  160. package/dist/members/types.js +15 -0
  161. package/dist/members/types.js.map +1 -0
  162. package/dist/members/util.js +314 -260
  163. package/dist/members/util.js.map +1 -1
  164. package/dist/metrics/config.js +50 -16
  165. package/dist/metrics/config.js.map +1 -1
  166. package/dist/metrics/constants.js +4 -7
  167. package/dist/metrics/constants.js.map +1 -1
  168. package/dist/metrics/index.js +75 -147
  169. package/dist/metrics/index.js.map +1 -1
  170. package/dist/multistream/mediaRequestManager.js +170 -50
  171. package/dist/multistream/mediaRequestManager.js.map +1 -1
  172. package/dist/multistream/receiveSlot.js +58 -65
  173. package/dist/multistream/receiveSlot.js.map +1 -1
  174. package/dist/multistream/receiveSlotManager.js +73 -94
  175. package/dist/multistream/receiveSlotManager.js.map +1 -1
  176. package/dist/multistream/remoteMedia.js +55 -74
  177. package/dist/multistream/remoteMedia.js.map +1 -1
  178. package/dist/multistream/remoteMediaGroup.js +66 -43
  179. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  180. package/dist/multistream/remoteMediaManager.js +502 -442
  181. package/dist/multistream/remoteMediaManager.js.map +1 -1
  182. package/dist/networkQualityMonitor/index.js +24 -51
  183. package/dist/networkQualityMonitor/index.js.map +1 -1
  184. package/dist/personal-meeting-room/index.js +3 -38
  185. package/dist/personal-meeting-room/index.js.map +1 -1
  186. package/dist/personal-meeting-room/request.js +2 -33
  187. package/dist/personal-meeting-room/request.js.map +1 -1
  188. package/dist/personal-meeting-room/util.js +0 -13
  189. package/dist/personal-meeting-room/util.js.map +1 -1
  190. package/dist/reachability/index.js +190 -199
  191. package/dist/reachability/index.js.map +1 -1
  192. package/dist/reachability/request.js +14 -23
  193. package/dist/reachability/request.js.map +1 -1
  194. package/dist/reactions/constants.js +13 -0
  195. package/dist/reactions/constants.js.map +1 -0
  196. package/dist/reactions/reactions.js +2 -4
  197. package/dist/reactions/reactions.js.map +1 -1
  198. package/dist/reactions/reactions.type.js +18 -24
  199. package/dist/reactions/reactions.type.js.map +1 -1
  200. package/dist/reconnection-manager/index.js +356 -476
  201. package/dist/reconnection-manager/index.js.map +1 -1
  202. package/dist/recording-controller/enums.js +17 -0
  203. package/dist/recording-controller/enums.js.map +1 -0
  204. package/dist/recording-controller/index.js +343 -0
  205. package/dist/recording-controller/index.js.map +1 -0
  206. package/dist/recording-controller/util.js +63 -0
  207. package/dist/recording-controller/util.js.map +1 -0
  208. package/dist/roap/index.js +32 -75
  209. package/dist/roap/index.js.map +1 -1
  210. package/dist/roap/request.js +129 -136
  211. package/dist/roap/request.js.map +1 -1
  212. package/dist/roap/turnDiscovery.js +143 -103
  213. package/dist/roap/turnDiscovery.js.map +1 -1
  214. package/dist/statsAnalyzer/global.js +1 -95
  215. package/dist/statsAnalyzer/global.js.map +1 -1
  216. package/dist/statsAnalyzer/index.js +369 -462
  217. package/dist/statsAnalyzer/index.js.map +1 -1
  218. package/dist/statsAnalyzer/mqaUtil.js +144 -94
  219. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  220. package/dist/transcription/index.js +9 -44
  221. package/dist/transcription/index.js.map +1 -1
  222. package/dist/types/annotation/annotation.types.d.ts +43 -0
  223. package/dist/types/annotation/constants.d.ts +31 -0
  224. package/dist/types/annotation/index.d.ts +124 -0
  225. package/dist/types/breakouts/breakout.d.ts +8 -0
  226. package/dist/types/breakouts/collection.d.ts +5 -0
  227. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  228. package/dist/types/breakouts/events.d.ts +2 -0
  229. package/dist/types/breakouts/index.d.ts +5 -0
  230. package/dist/types/breakouts/request.d.ts +22 -0
  231. package/dist/types/breakouts/utils.d.ts +15 -0
  232. package/dist/types/common/browser-detection.d.ts +9 -0
  233. package/dist/types/common/collection.d.ts +48 -0
  234. package/dist/types/common/config.d.ts +2 -0
  235. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  236. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  237. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  238. package/dist/types/common/errors/media.d.ts +15 -0
  239. package/dist/types/common/errors/parameter.d.ts +15 -0
  240. package/dist/types/common/errors/password-error.d.ts +15 -0
  241. package/dist/types/common/errors/permission.d.ts +14 -0
  242. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  243. package/dist/types/common/errors/reconnection.d.ts +15 -0
  244. package/dist/types/common/errors/stats.d.ts +15 -0
  245. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  246. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  247. package/dist/types/common/events/events-scope.d.ts +17 -0
  248. package/dist/types/common/events/events.d.ts +12 -0
  249. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  250. package/dist/types/common/events/util.d.ts +2 -0
  251. package/dist/types/common/logs/logger-config.d.ts +2 -0
  252. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  253. package/dist/types/common/logs/request.d.ts +34 -0
  254. package/dist/types/common/queue.d.ts +32 -0
  255. package/dist/types/config.d.ts +72 -0
  256. package/dist/types/constants.d.ts +978 -0
  257. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  258. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  259. package/dist/types/controls-options-manager/index.d.ts +136 -0
  260. package/dist/types/controls-options-manager/types.d.ts +43 -0
  261. package/dist/types/controls-options-manager/util.d.ts +1 -0
  262. package/dist/types/index.d.ts +7 -0
  263. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  264. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  265. package/dist/types/locus-info/fullState.d.ts +2 -0
  266. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  267. package/dist/types/locus-info/index.d.ts +315 -0
  268. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  269. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  270. package/dist/types/locus-info/parser.d.ts +212 -0
  271. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  272. package/dist/types/media/index.d.ts +34 -0
  273. package/dist/types/media/properties.d.ts +86 -0
  274. package/dist/types/media/util.d.ts +2 -0
  275. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  276. package/dist/types/meeting/in-meeting-actions.d.ts +149 -0
  277. package/dist/types/meeting/index.d.ts +1509 -0
  278. package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
  279. package/dist/types/meeting/muteState.d.ts +184 -0
  280. package/dist/types/meeting/request.d.ts +270 -0
  281. package/dist/types/meeting/request.type.d.ts +11 -0
  282. package/dist/types/meeting/state.d.ts +9 -0
  283. package/dist/types/meeting/util.d.ts +75 -0
  284. package/dist/types/meeting-info/collection.d.ts +20 -0
  285. package/dist/types/meeting-info/index.d.ts +57 -0
  286. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  287. package/dist/types/meeting-info/request.d.ts +22 -0
  288. package/dist/types/meeting-info/util.d.ts +2 -0
  289. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  290. package/dist/types/meetings/collection.d.ts +31 -0
  291. package/dist/types/meetings/index.d.ts +364 -0
  292. package/dist/types/meetings/meetings.types.d.ts +4 -0
  293. package/dist/types/meetings/request.d.ts +27 -0
  294. package/dist/types/meetings/util.d.ts +18 -0
  295. package/dist/types/member/index.d.ts +157 -0
  296. package/dist/types/member/types.d.ts +21 -0
  297. package/dist/types/member/util.d.ts +2 -0
  298. package/dist/types/members/collection.d.ts +29 -0
  299. package/dist/types/members/index.d.ts +353 -0
  300. package/dist/types/members/request.d.ts +114 -0
  301. package/dist/types/members/types.d.ts +24 -0
  302. package/dist/types/members/util.d.ts +210 -0
  303. package/dist/types/metrics/config.d.ts +195 -0
  304. package/dist/types/metrics/constants.d.ts +55 -0
  305. package/dist/types/metrics/index.d.ts +169 -0
  306. package/dist/types/multistream/mediaRequestManager.d.ts +104 -0
  307. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  308. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  309. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  310. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  311. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  312. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  313. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  314. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  315. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  316. package/dist/types/reachability/index.d.ts +152 -0
  317. package/dist/types/reachability/request.d.ts +37 -0
  318. package/dist/types/reactions/constants.d.ts +3 -0
  319. package/dist/types/reactions/reactions.d.ts +4 -0
  320. package/dist/types/reactions/reactions.type.d.ts +52 -0
  321. package/dist/types/reconnection-manager/index.d.ts +126 -0
  322. package/dist/types/recording-controller/enums.d.ts +7 -0
  323. package/dist/types/recording-controller/index.d.ts +193 -0
  324. package/dist/types/recording-controller/util.d.ts +13 -0
  325. package/dist/types/roap/index.d.ts +77 -0
  326. package/dist/types/roap/request.d.ts +36 -0
  327. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  328. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  329. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  330. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  331. package/dist/types/transcription/index.d.ts +64 -0
  332. package/package.json +28 -21
  333. package/src/annotation/annotation.types.ts +52 -0
  334. package/src/annotation/constants.ts +36 -0
  335. package/src/annotation/index.ts +343 -0
  336. package/src/breakouts/README.md +220 -0
  337. package/src/breakouts/breakout.ts +163 -0
  338. package/src/breakouts/collection.ts +19 -0
  339. package/src/breakouts/edit-lock-error.ts +25 -0
  340. package/src/breakouts/events.ts +37 -0
  341. package/src/breakouts/index.ts +921 -0
  342. package/src/breakouts/request.ts +55 -0
  343. package/src/breakouts/utils.ts +57 -0
  344. package/src/common/errors/webex-errors.ts +6 -2
  345. package/src/common/logs/logger-proxy.ts +1 -1
  346. package/src/config.ts +5 -7
  347. package/src/constants.ts +155 -20
  348. package/src/controls-options-manager/constants.ts +5 -0
  349. package/src/controls-options-manager/enums.ts +18 -0
  350. package/src/controls-options-manager/index.ts +278 -0
  351. package/src/controls-options-manager/types.ts +59 -0
  352. package/src/controls-options-manager/util.ts +286 -0
  353. package/src/index.ts +34 -0
  354. package/src/locus-info/controlsUtils.ts +108 -0
  355. package/src/locus-info/index.ts +310 -21
  356. package/src/locus-info/mediaSharesUtils.ts +48 -0
  357. package/src/locus-info/parser.ts +2 -1
  358. package/src/locus-info/selfUtils.ts +71 -1
  359. package/src/media/index.ts +70 -142
  360. package/src/media/properties.ts +41 -104
  361. package/src/mediaQualityMetrics/config.ts +379 -377
  362. package/src/meeting/in-meeting-actions.ts +156 -0
  363. package/src/meeting/index.ts +1730 -1768
  364. package/src/meeting/locusMediaRequest.ts +309 -0
  365. package/src/meeting/muteState.ts +228 -132
  366. package/src/meeting/request.ts +100 -91
  367. package/src/meeting/request.type.ts +2 -0
  368. package/src/meeting/util.ts +421 -421
  369. package/src/meeting-info/meeting-info-v2.ts +134 -13
  370. package/src/meeting-info/utilv2.ts +13 -3
  371. package/src/meetings/collection.ts +20 -0
  372. package/src/meetings/index.ts +375 -83
  373. package/src/meetings/meetings.types.ts +9 -0
  374. package/src/meetings/request.ts +3 -1
  375. package/src/meetings/util.ts +103 -4
  376. package/src/member/index.ts +40 -0
  377. package/src/member/types.ts +24 -0
  378. package/src/member/util.ts +81 -1
  379. package/src/members/collection.ts +8 -0
  380. package/src/members/index.ts +108 -6
  381. package/src/members/request.ts +98 -17
  382. package/src/members/types.ts +28 -0
  383. package/src/members/util.ts +319 -240
  384. package/src/metrics/config.ts +49 -10
  385. package/src/metrics/constants.ts +2 -4
  386. package/src/metrics/index.ts +43 -27
  387. package/src/multistream/mediaRequestManager.ts +210 -45
  388. package/src/multistream/receiveSlot.ts +68 -26
  389. package/src/multistream/receiveSlotManager.ts +61 -38
  390. package/src/multistream/remoteMedia.ts +29 -3
  391. package/src/multistream/remoteMediaGroup.ts +61 -2
  392. package/src/multistream/remoteMediaManager.ts +260 -66
  393. package/src/networkQualityMonitor/index.ts +6 -6
  394. package/src/reachability/index.ts +75 -25
  395. package/src/reachability/request.ts +10 -5
  396. package/src/reactions/constants.ts +4 -0
  397. package/src/reactions/reactions.ts +4 -4
  398. package/src/reactions/reactions.type.ts +28 -3
  399. package/src/reconnection-manager/index.ts +53 -32
  400. package/src/recording-controller/enums.ts +8 -0
  401. package/src/recording-controller/index.ts +315 -0
  402. package/src/recording-controller/util.ts +58 -0
  403. package/src/roap/index.ts +21 -30
  404. package/src/roap/request.ts +51 -52
  405. package/src/roap/turnDiscovery.ts +51 -27
  406. package/src/statsAnalyzer/global.ts +1 -94
  407. package/src/statsAnalyzer/index.ts +380 -390
  408. package/src/statsAnalyzer/mqaUtil.ts +106 -99
  409. package/test/integration/spec/converged-space-meetings.js +233 -0
  410. package/test/integration/spec/journey.js +332 -255
  411. package/test/integration/spec/space-meeting.js +78 -5
  412. package/test/integration/spec/transcription.js +1 -1
  413. package/test/unit/spec/annotation/index.ts +436 -0
  414. package/test/unit/spec/breakouts/breakout.ts +203 -0
  415. package/test/unit/spec/breakouts/collection.ts +15 -0
  416. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  417. package/test/unit/spec/breakouts/events.ts +77 -0
  418. package/test/unit/spec/breakouts/index.ts +1790 -0
  419. package/test/unit/spec/breakouts/request.ts +104 -0
  420. package/test/unit/spec/breakouts/utils.js +72 -0
  421. package/test/unit/spec/controls-options-manager/index.js +287 -0
  422. package/test/unit/spec/controls-options-manager/util.js +518 -0
  423. package/test/unit/spec/fixture/locus.js +1 -0
  424. package/test/unit/spec/locus-info/controlsUtils.js +303 -30
  425. package/test/unit/spec/locus-info/index.js +615 -4
  426. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  427. package/test/unit/spec/locus-info/selfConstant.js +38 -0
  428. package/test/unit/spec/locus-info/selfUtils.js +200 -0
  429. package/test/unit/spec/media/index.ts +118 -22
  430. package/test/unit/spec/media/properties.ts +9 -9
  431. package/test/unit/spec/meeting/in-meeting-actions.ts +76 -0
  432. package/test/unit/spec/meeting/index.js +2394 -1381
  433. package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
  434. package/test/unit/spec/meeting/muteState.js +370 -208
  435. package/test/unit/spec/meeting/request.js +354 -42
  436. package/test/unit/spec/meeting/utils.js +268 -156
  437. package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
  438. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  439. package/test/unit/spec/meetings/collection.js +14 -0
  440. package/test/unit/spec/meetings/index.js +842 -128
  441. package/test/unit/spec/meetings/utils.js +206 -2
  442. package/test/unit/spec/member/index.js +24 -0
  443. package/test/unit/spec/member/util.js +384 -32
  444. package/test/unit/spec/members/index.js +320 -1
  445. package/test/unit/spec/members/request.js +206 -27
  446. package/test/unit/spec/members/utils.js +184 -0
  447. package/test/unit/spec/metrics/index.js +98 -0
  448. package/test/unit/spec/multistream/mediaRequestManager.ts +676 -105
  449. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  450. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  451. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  452. package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
  453. package/test/unit/spec/multistream/remoteMediaManager.ts +672 -65
  454. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  455. package/test/unit/spec/reachability/index.ts +176 -25
  456. package/test/unit/spec/reachability/request.js +66 -0
  457. package/test/unit/spec/reconnection-manager/index.js +46 -13
  458. package/test/unit/spec/recording-controller/index.js +231 -0
  459. package/test/unit/spec/recording-controller/util.js +102 -0
  460. package/test/unit/spec/roap/index.ts +21 -51
  461. package/test/unit/spec/roap/request.ts +187 -0
  462. package/test/unit/spec/roap/turnDiscovery.ts +73 -34
  463. package/test/unit/spec/stats-analyzer/index.js +94 -43
  464. package/test/utils/constants.js +9 -0
  465. package/test/utils/integrationTestUtils.js +46 -0
  466. package/test/utils/testUtils.js +0 -45
  467. package/test/utils/webex-config.js +4 -0
  468. package/test/utils/webex-test-users.js +7 -3
  469. package/tsconfig.json +6 -0
  470. package/dist/media/internal-media-core-wrapper.js +0 -22
  471. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  472. package/dist/meeting/effectsState.js +0 -334
  473. package/dist/meeting/effectsState.js.map +0 -1
  474. package/dist/multistream/multistreamMedia.js +0 -117
  475. package/dist/multistream/multistreamMedia.js.map +0 -1
  476. package/src/index.js +0 -15
  477. package/src/media/internal-media-core-wrapper.ts +0 -9
  478. package/src/meeting/effectsState.ts +0 -211
  479. package/src/multistream/multistreamMedia.ts +0 -93
  480. package/test/unit/spec/meeting/effectsState.js +0 -281
@@ -0,0 +1,1046 @@
1
+ "use strict";
2
+
3
+ var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
6
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
7
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
8
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
9
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
10
+ _Object$defineProperty(exports, "__esModule", {
11
+ value: true
12
+ });
13
+ exports.default = void 0;
14
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
15
+ var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
16
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
17
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
18
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
19
+ var _forEach2 = _interopRequireDefault(require("lodash/forEach"));
20
+ var _debounce2 = _interopRequireDefault(require("lodash/debounce"));
21
+ var _webexCore = require("@webex/webex-core");
22
+ var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
23
+ var _constants = require("../constants");
24
+ var _breakout = _interopRequireDefault(require("./breakout"));
25
+ var _collection = _interopRequireDefault(require("./collection"));
26
+ var _request = _interopRequireDefault(require("./request"));
27
+ var _events = _interopRequireDefault(require("./events"));
28
+ var _utils = require("./utils");
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; }
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; }
31
+ /**
32
+ * @class Breakouts
33
+ */
34
+ var Breakouts = _webexCore.WebexPlugin.extend({
35
+ namespace: _constants.MEETINGS,
36
+ breakoutRequest: _request.default,
37
+ collections: {
38
+ breakouts: _collection.default
39
+ },
40
+ props: {
41
+ allowBackToMain: 'boolean',
42
+ // only present when in a breakout session
43
+ delayCloseTime: 'number',
44
+ // appears once breakouts start
45
+ enableBreakoutSession: 'boolean',
46
+ // appears from the moment you enable breakouts
47
+ hasBreakoutPreAssignments: 'boolean',
48
+ // appears from the moment you enable breakouts
49
+ groupId: 'string',
50
+ // appears from the moment you enable breakouts
51
+ name: 'string',
52
+ // only present when in a breakout session
53
+ sessionId: 'string',
54
+ // appears from the moment you enable breakouts
55
+ sessionType: 'string',
56
+ // appears from the moment you enable breakouts
57
+ startTime: 'string',
58
+ // appears once breakouts start
59
+ status: 'string',
60
+ // only present when in a breakout session
61
+ url: 'string',
62
+ // appears from the moment you enable breakouts
63
+ locusUrl: 'string',
64
+ // the current locus url
65
+ breakoutServiceUrl: 'string',
66
+ // the current breakout resource url
67
+ mainLocusUrl: 'string',
68
+ // the locus url of the main session
69
+ groups: 'array',
70
+ // appears when create breakouts
71
+ manageGroups: 'array',
72
+ // appears when manage breakouts
73
+ preAssignments: 'array',
74
+ // appears when getPreAssignments info hasBreakoutPreAssignments = true
75
+ editLock: 'object',
76
+ // appears when getBreakout info editlock = true
77
+ intervalID: 'number',
78
+ meetingId: 'string',
79
+ canManageBreakouts: 'boolean' // appear the ability to manage breakouts
80
+ },
81
+
82
+ children: {
83
+ currentBreakoutSession: _breakout.default
84
+ },
85
+ derived: {
86
+ isInMainSession: {
87
+ cache: false,
88
+ deps: ['sessionType'],
89
+ /**
90
+ * Returns true if the user is in the main session
91
+ * @returns {boolean}
92
+ */
93
+ fn: function fn() {
94
+ return this.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN;
95
+ }
96
+ },
97
+ isActiveBreakout: {
98
+ cache: false,
99
+ // fix issue: sometimes the derived will not change even if the deps changed
100
+ deps: ['sessionType', 'status'],
101
+ /**
102
+ * Returns true if the breakout status is active
103
+ * @returns {boolean}
104
+ */
105
+ fn: function fn() {
106
+ return this.sessionType === _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT && (this.status === _constants.BREAKOUTS.STATUS.OPEN || this.status === _constants.BREAKOUTS.STATUS.CLOSING);
107
+ }
108
+ },
109
+ breakoutGroupId: {
110
+ cache: false,
111
+ deps: ['manageGroups'],
112
+ /**
113
+ * Returns the active group id
114
+ * @returns {boolean}
115
+ */
116
+ fn: function fn() {
117
+ var _this$manageGroups;
118
+ if ((_this$manageGroups = this.manageGroups) !== null && _this$manageGroups !== void 0 && _this$manageGroups.length) {
119
+ return this.manageGroups[0].status !== _constants.BREAKOUTS.STATUS.CLOSED ? this.manageGroups[0].id : '';
120
+ }
121
+ return '';
122
+ }
123
+ },
124
+ breakoutStatus: {
125
+ cache: true,
126
+ deps: ['isInMainSession', 'status', 'groups'],
127
+ /**
128
+ * Returns the breakout status
129
+ * @returns {boolean}
130
+ */
131
+ fn: function fn() {
132
+ var _this$groups, _this$groups$;
133
+ return this.isInMainSession ? (_this$groups = this.groups) === null || _this$groups === void 0 ? void 0 : (_this$groups$ = _this$groups[0]) === null || _this$groups$ === void 0 ? void 0 : _this$groups$.status : this.status;
134
+ }
135
+ },
136
+ shouldQueryPreAssignments: {
137
+ cache: false,
138
+ deps: ['canManageBreakouts', 'enableBreakoutSession', 'hasBreakoutPreAssignments'],
139
+ /**
140
+ * Returns should query preAssignments or not
141
+ * @returns {boolean}
142
+ */
143
+ fn: function fn() {
144
+ return !!(this.canManageBreakouts && this.enableBreakoutSession && this.hasBreakoutPreAssignments);
145
+ }
146
+ }
147
+ },
148
+ /**
149
+ * initialize for the breakouts
150
+ * @returns {void}
151
+ */
152
+ initialize: function initialize() {
153
+ var _this = this;
154
+ this.listenTo(this, 'change:breakoutStatus', function () {
155
+ if (_this.breakoutStatus === _constants.BREAKOUTS.STATUS.CLOSING) {
156
+ _this.trigger(_constants.BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);
157
+ }
158
+ });
159
+ this.listenTo(this, 'change:shouldQueryPreAssignments', function () {
160
+ if (_this.shouldQueryPreAssignments && !_this.preAssignments) {
161
+ _this.queryPreAssignments();
162
+ }
163
+ });
164
+ this.debouncedQueryRosters = (0, _debounce2.default)(this.queryRosters, 10, {
165
+ leading: true,
166
+ trailing: false
167
+ });
168
+ this.listenTo(this.breakouts, 'add', function (breakout) {
169
+ _this.debouncedQueryRosters();
170
+ _this.triggerReturnToMainEvent(breakout);
171
+ });
172
+ this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', function (breakout) {
173
+ _this.triggerReturnToMainEvent(breakout);
174
+ });
175
+ this.listenToCurrentSessionTypeChange();
176
+ this.listenToBroadcastMessages();
177
+ this.listenToBreakoutRosters();
178
+ this.listenToBreakoutHelp();
179
+ // @ts-ignore
180
+ this.breakoutRequest = new _request.default({
181
+ webex: this.webex
182
+ });
183
+ },
184
+ /**
185
+ * Calls this to clean up listeners
186
+ * @returns {void}
187
+ */
188
+ cleanUp: function cleanUp() {
189
+ this.stopListening();
190
+ },
191
+ /**
192
+ * Update the current locus url of the meeting
193
+ * @param {string} locusUrl // locus url
194
+ * @returns {void}
195
+ */
196
+ locusUrlUpdate: function locusUrlUpdate(locusUrl) {
197
+ this.set('locusUrl', locusUrl);
198
+ var isInMainSession = this.isInMainSession,
199
+ mainLocusUrl = this.mainLocusUrl;
200
+ if (isInMainSession || !mainLocusUrl) {
201
+ this.set('mainLocusUrl', locusUrl);
202
+ }
203
+ },
204
+ /**
205
+ * Update whether self is moderator/cohost or not
206
+ * @param {boolean} canManageBreakouts
207
+ * @returns {void}
208
+ */
209
+ updateCanManageBreakouts: function updateCanManageBreakouts(canManageBreakouts) {
210
+ this.set('canManageBreakouts', canManageBreakouts);
211
+ },
212
+ /**
213
+ * Update the current breakout resource url
214
+ * @param {string} breakoutServiceUrl
215
+ * @returns {void}
216
+ */
217
+ breakoutServiceUrlUpdate: function breakoutServiceUrlUpdate(breakoutServiceUrl) {
218
+ this.set('breakoutServiceUrl', "".concat(breakoutServiceUrl, "/breakout/"));
219
+ },
220
+ /**
221
+ * The initial roster lists need to be queried because you don't
222
+ * get a breakout.roster event when you join the meeting
223
+ * @returns {void}
224
+ */
225
+ queryRosters: function queryRosters() {
226
+ var _this2 = this;
227
+ this.webex.request({
228
+ uri: "".concat(this.url, "/roster"),
229
+ qs: {
230
+ locusUrl: btoa(this.locusUrl)
231
+ }
232
+ }).then(function (result) {
233
+ var rosters = result.body.rosters;
234
+ rosters === null || rosters === void 0 ? void 0 : rosters.forEach(function (_ref) {
235
+ var locus = _ref.locus;
236
+ _this2.handleRosterUpdate(locus);
237
+ });
238
+ _this2.trigger(_constants.BREAKOUTS.EVENTS.MEMBERS_UPDATE);
239
+ }).catch(function (error) {
240
+ _loggerProxy.default.logger.error('Meeting:breakouts#queryRosters failed', error);
241
+ });
242
+ },
243
+ /**
244
+ *
245
+ * @param {Object} locus // locus object
246
+ * @returns {void}
247
+ */
248
+ handleRosterUpdate: function handleRosterUpdate(locus) {
249
+ var _locus$controls, _locus$controls$break;
250
+ var sessionId = (_locus$controls = locus.controls) === null || _locus$controls === void 0 ? void 0 : (_locus$controls$break = _locus$controls.breakout) === null || _locus$controls$break === void 0 ? void 0 : _locus$controls$break.sessionId;
251
+ var session = this.breakouts.get(sessionId);
252
+ if (!session) {
253
+ return;
254
+ }
255
+ session.parseRoster(locus);
256
+ },
257
+ /**
258
+ *Sets up listener for currentBreakoutSession sessionType changed
259
+ * @returns {void}
260
+ */
261
+ listenToCurrentSessionTypeChange: function listenToCurrentSessionTypeChange() {
262
+ var _this3 = this;
263
+ this.listenTo(this.currentBreakoutSession, 'change:sessionType', function (currentBreakoutSession, sessionType) {
264
+ if ((0, _utils.isSessionTypeChangedFromSessionToMain)(currentBreakoutSession, sessionType)) {
265
+ _this3.trigger(_constants.BREAKOUTS.EVENTS.LEAVE_BREAKOUT);
266
+ }
267
+ });
268
+ },
269
+ /**
270
+ * Sets up listener for broadcast messages sent to the breakout session
271
+ * @returns {void}
272
+ */
273
+ listenToBroadcastMessages: function listenToBroadcastMessages() {
274
+ var _this4 = this;
275
+ this.listenTo(this.webex.internal.llm, 'event:breakout.message', function (event) {
276
+ var _event$data = event.data,
277
+ senderUserId = _event$data.senderUserId,
278
+ sentTime = _event$data.sentTime,
279
+ message = _event$data.message;
280
+ _this4.trigger(_constants.BREAKOUTS.EVENTS.MESSAGE, {
281
+ senderUserId: senderUserId,
282
+ sentTime: sentTime,
283
+ message: message,
284
+ // FIXME: This is only the current sessionId
285
+ // We'd need to check that the dataChannelUrl is still the same
286
+ // to guarantee that this message was sent to this session
287
+ sessionId: _this4.currentBreakoutSession.sessionId
288
+ });
289
+ });
290
+ },
291
+ /**
292
+ * Sets up a listener for roster messags from mecury
293
+ * @returns {void}
294
+ */
295
+ listenToBreakoutRosters: function listenToBreakoutRosters() {
296
+ var _this5 = this;
297
+ this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', function (event) {
298
+ _this5.handleRosterUpdate(event.data.locus);
299
+ _this5.trigger(_constants.BREAKOUTS.EVENTS.MEMBERS_UPDATE);
300
+ });
301
+ },
302
+ /**
303
+ * Sets up a listener for ask help notify from mecury
304
+ * @returns {void}
305
+ */
306
+ listenToBreakoutHelp: function listenToBreakoutHelp() {
307
+ var _this6 = this;
308
+ this.listenTo(this.webex.internal.mercury, 'event:breakout.help', function (event) {
309
+ var _event$data2 = event.data,
310
+ participant = _event$data2.participant,
311
+ sessionId = _event$data2.sessionId;
312
+ _this6.trigger(_constants.BREAKOUTS.EVENTS.ASK_FOR_HELP, {
313
+ participant: participant,
314
+ sessionId: sessionId
315
+ });
316
+ });
317
+ },
318
+ /**
319
+ * get current breakout is in progress or not
320
+ * @returns {boolean}
321
+ */
322
+ isBreakoutInProgress: function isBreakoutInProgress() {
323
+ var _this$groups2, _this$groups2$;
324
+ var currentStatus = ((_this$groups2 = this.groups) === null || _this$groups2 === void 0 ? void 0 : (_this$groups2$ = _this$groups2[0]) === null || _this$groups2$ === void 0 ? void 0 : _this$groups2$.status) || this.status;
325
+ return currentStatus === _constants.BREAKOUTS.STATUS.OPEN || currentStatus === _constants.BREAKOUTS.STATUS.CLOSING;
326
+ },
327
+ /**
328
+ * get current breakout is in closing or not
329
+ * @returns {boolean}
330
+ */
331
+ isBreakoutIClosing: function isBreakoutIClosing() {
332
+ var _this$groups3, _this$groups3$;
333
+ return (((_this$groups3 = this.groups) === null || _this$groups3 === void 0 ? void 0 : (_this$groups3$ = _this$groups3[0]) === null || _this$groups3$ === void 0 ? void 0 : _this$groups3$.status) || this.status) === _constants.BREAKOUTS.STATUS.CLOSING;
334
+ },
335
+ /**
336
+ * Updates the information about the current breakout
337
+ * @param {Object} params
338
+ * @returns {void}
339
+ */
340
+ updateBreakout: function updateBreakout(params) {
341
+ var _this$set;
342
+ this.set(params);
343
+ // These values are set manually so they are unset when they are not included in params
344
+ this.set('groups', params.groups);
345
+ this.set('startTime', params.startTime);
346
+ this.set('status', params.status);
347
+ this.set('currentBreakoutSession', (_this$set = {
348
+ sessionId: params.sessionId,
349
+ groupId: params.groupId,
350
+ name: params.name,
351
+ current: true,
352
+ sessionType: params.sessionType,
353
+ url: params.url
354
+ }, (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));
355
+ if (!this.isBreakoutInProgress()) {
356
+ this.clearBreakouts();
357
+ }
358
+ if (this.currentBreakoutSession.previous('sessionId') !== this.currentBreakoutSession.sessionId || this.currentBreakoutSession.previous('groupId') !== this.currentBreakoutSession.groupId) {
359
+ // should report joined session changed
360
+ var meeting = this.webex.meetings.getMeetingByType(_constants._ID_, this.meetingId);
361
+ _events.default.onBreakoutJoinResponse({
362
+ currentSession: this.currentBreakoutSession,
363
+ meeting: meeting,
364
+ breakoutMoveId: params.breakoutMoveId
365
+ });
366
+ }
367
+ },
368
+ /**
369
+ * Updates the information about available breakouts
370
+ * @param {Object} payload
371
+ * @returns {void}
372
+ */
373
+ updateBreakoutSessions: function updateBreakoutSessions(payload) {
374
+ var _this7 = this;
375
+ var breakouts = {};
376
+ if (this.isBreakoutIClosing()) {
377
+ // fix issue: don't clear/update breakouts collection when in closing since locus DTO will send undefined or
378
+ // only the MAIN session info here, if just update it, will miss the breakout roster info during
379
+ // count down to end breakouts
380
+ return;
381
+ }
382
+ if (payload.breakoutSessions) {
383
+ (0, _forEach2.default)(_constants.BREAKOUTS.SESSION_STATES, function (state) {
384
+ (0, _forEach2.default)(payload.breakoutSessions[state], function (breakout) {
385
+ var sessionId = breakout.sessionId;
386
+ if (!breakouts[sessionId]) {
387
+ breakouts[sessionId] = breakout;
388
+ breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ACTIVE] = false;
389
+ breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ASSIGNED] = false;
390
+ breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ALLOWED] = false;
391
+ breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;
392
+ breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.REQUESTED] = false;
393
+ }
394
+ breakouts[sessionId][state] = true;
395
+ if (state === _constants.BREAKOUTS.SESSION_STATES.REQUESTED) {
396
+ breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;
397
+ }
398
+ });
399
+ });
400
+ }
401
+ (0, _forEach2.default)(breakouts, function (breakout) {
402
+ // eslint-disable-next-line no-param-reassign
403
+ breakout.url = _this7.url;
404
+ });
405
+ this.breakouts.set((0, _values.default)(breakouts));
406
+ },
407
+ /**
408
+ * clear breakouts collection
409
+ * @returns {void}
410
+ */
411
+ clearBreakouts: function clearBreakouts() {
412
+ if (this.breakouts.length > 0) {
413
+ this.breakouts.reset();
414
+ }
415
+ },
416
+ /**
417
+ * get main session
418
+ * @returns {Breakout}
419
+ */
420
+ getMainSession: function getMainSession() {
421
+ if (this.isInMainSession) {
422
+ return this.currentBreakoutSession;
423
+ }
424
+ var mainSession = this.breakouts.filter(function (breakout) {
425
+ return breakout.isMain;
426
+ })[0];
427
+ if (!mainSession) {
428
+ throw new Error('no main session found');
429
+ }
430
+ return mainSession;
431
+ },
432
+ /**
433
+ * Host/CoHost ask all participants return to main session
434
+ * @returns {Promise}
435
+ */
436
+ askAllToReturn: function askAllToReturn() {
437
+ var mainSession = this.getMainSession();
438
+ return this.webex.request({
439
+ method: _constants.HTTP_VERBS.POST,
440
+ uri: "".concat(this.url, "/requestMove"),
441
+ body: {
442
+ groupId: mainSession.groupId,
443
+ sessionId: mainSession.sessionId
444
+ }
445
+ });
446
+ },
447
+ /**
448
+ * Broadcast message to all breakout session's participants
449
+ * @param {String} message
450
+ * @param {Object} options
451
+ * @returns {Promise}
452
+ */
453
+ broadcast: function broadcast(message, options) {
454
+ var breakoutGroupId = this.breakoutGroupId;
455
+ if (!breakoutGroupId) {
456
+ throw new Error('Cannot broadcast, no breakout session found');
457
+ }
458
+ return this.breakoutRequest.broadcast({
459
+ url: this.url,
460
+ message: message,
461
+ options: options,
462
+ groupId: breakoutGroupId
463
+ });
464
+ },
465
+ /**
466
+ * Make enable breakout resource
467
+ * @returns {Promise}
468
+ */
469
+ enableBreakouts: function enableBreakouts() {
470
+ if (this.breakoutServiceUrl) {
471
+ // @ts-ignore
472
+ return this.webex.request({
473
+ method: _constants.HTTP_VERBS.POST,
474
+ uri: this.breakoutServiceUrl,
475
+ body: {
476
+ locusUrl: this.locusUrl
477
+ }
478
+ }).catch(function (err) {
479
+ _loggerProxy.default.logger.error("Meeting:request#touchBreakout --> Error provisioning error ".concat(err));
480
+ throw err;
481
+ });
482
+ }
483
+ return _promise.default.reject(new Error("enableBreakouts: the breakoutServiceUrl is empty"));
484
+ },
485
+ /**
486
+ * Make the meeting enable or disable breakout session
487
+ * @param {boolean} enable
488
+ * @returns {Promise}
489
+ */
490
+ toggleBreakout: function toggleBreakout(enable) {
491
+ var _this8 = this;
492
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
493
+ var info;
494
+ return _regenerator.default.wrap(function _callee$(_context) {
495
+ while (1) switch (_context.prev = _context.next) {
496
+ case 0:
497
+ if (!(_this8.enableBreakoutSession === undefined)) {
498
+ _context.next = 10;
499
+ break;
500
+ }
501
+ _context.next = 3;
502
+ return _this8.enableBreakouts();
503
+ case 3:
504
+ info = _context.sent;
505
+ // first time enable, set the initial data
506
+ _this8.updateBreakout(info === null || info === void 0 ? void 0 : info.body);
507
+ if (enable) {
508
+ _context.next = 8;
509
+ break;
510
+ }
511
+ _context.next = 8;
512
+ return _this8.doToggleBreakout(enable);
513
+ case 8:
514
+ _context.next = 12;
515
+ break;
516
+ case 10:
517
+ _context.next = 12;
518
+ return _this8.doToggleBreakout(enable);
519
+ case 12:
520
+ case "end":
521
+ return _context.stop();
522
+ }
523
+ }, _callee);
524
+ }))();
525
+ },
526
+ /**
527
+ * do toggle meeting breakout session enable or disable
528
+ * @param {boolean} enable
529
+ * @returns {Promise}
530
+ */
531
+ doToggleBreakout: function doToggleBreakout(enable) {
532
+ var body = _objectSpread(_objectSpread({}, this.editLock && !!this.editLock.token ? {
533
+ editlock: {
534
+ token: this.editLock.token
535
+ }
536
+ } : {}), {
537
+ enableBreakoutSession: enable
538
+ });
539
+
540
+ // @ts-ignore
541
+ return this.webex.request({
542
+ method: _constants.HTTP_VERBS.PUT,
543
+ uri: this.url,
544
+ body: body
545
+ });
546
+ },
547
+ /**
548
+ * set groups to manageGroups prop
549
+ * @param {Object} breakoutInfo -- breakout groups
550
+ * @returns {void}
551
+ */
552
+ _setManageGroups: function _setManageGroups(breakoutInfo) {
553
+ var _breakoutInfo$body;
554
+ if (breakoutInfo !== null && breakoutInfo !== void 0 && (_breakoutInfo$body = breakoutInfo.body) !== null && _breakoutInfo$body !== void 0 && _breakoutInfo$body.groups) {
555
+ this.set('manageGroups', breakoutInfo.body.groups);
556
+ }
557
+ },
558
+ /**
559
+ * Create new breakout sessions
560
+ * @param {object} params -- breakout session group
561
+ * @returns {Promise}
562
+ */
563
+ create: function create(params) {
564
+ var _this9 = this;
565
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
566
+ var payload, body, breakoutInfo;
567
+ return _regenerator.default.wrap(function _callee2$(_context2) {
568
+ while (1) switch (_context2.prev = _context2.next) {
569
+ case 0:
570
+ payload = _objectSpread({}, params);
571
+ body = _objectSpread(_objectSpread({}, _this9.editLock && !!_this9.editLock.token ? {
572
+ editlock: {
573
+ token: _this9.editLock.token
574
+ }
575
+ } : {}), {
576
+ groups: [payload]
577
+ }); // @ts-ignore
578
+ _context2.next = 4;
579
+ return _this9.webex.request({
580
+ method: _constants.HTTP_VERBS.PUT,
581
+ uri: _this9.url,
582
+ body: body
583
+ }).catch(function (error) {
584
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#create'));
585
+ });
586
+ case 4:
587
+ breakoutInfo = _context2.sent;
588
+ _this9._setManageGroups(breakoutInfo);
589
+
590
+ // clear edit lock info after save breakout session info
591
+ _this9._clearEditLockInfo();
592
+ return _context2.abrupt("return", breakoutInfo);
593
+ case 8:
594
+ case "end":
595
+ return _context2.stop();
596
+ }
597
+ }, _callee2);
598
+ }))();
599
+ },
600
+ /**
601
+ * Delete all breakout sessions
602
+ * @returns {Promise}
603
+ */
604
+ clearSessions: function clearSessions() {
605
+ var _this10 = this;
606
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
607
+ var body, breakoutInfo;
608
+ return _regenerator.default.wrap(function _callee3$(_context3) {
609
+ while (1) switch (_context3.prev = _context3.next) {
610
+ case 0:
611
+ body = _objectSpread(_objectSpread({}, _this10.editLock && !!_this10.editLock.token ? {
612
+ editlock: {
613
+ token: _this10.editLock.token
614
+ }
615
+ } : {}), {
616
+ groups: [{
617
+ action: _constants.BREAKOUTS.ACTION.DELETE
618
+ }]
619
+ }); // @ts-ignore
620
+ _context3.next = 3;
621
+ return _this10.webex.request({
622
+ method: _constants.HTTP_VERBS.PUT,
623
+ uri: _this10.url,
624
+ body: body
625
+ }).catch(function (error) {
626
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#clearSessions'));
627
+ });
628
+ case 3:
629
+ breakoutInfo = _context3.sent;
630
+ _this10._setManageGroups(breakoutInfo);
631
+ return _context3.abrupt("return", breakoutInfo);
632
+ case 6:
633
+ case "end":
634
+ return _context3.stop();
635
+ }
636
+ }, _callee3);
637
+ }))();
638
+ },
639
+ /**
640
+ * Host or cohost starts breakout sessions
641
+ * @param {object} params
642
+ * @returns {Promise}
643
+ */
644
+ start: function start() {
645
+ var _arguments = arguments,
646
+ _this11 = this;
647
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
648
+ var params, action, payload, body, breakoutInfo;
649
+ return _regenerator.default.wrap(function _callee4$(_context4) {
650
+ while (1) switch (_context4.prev = _context4.next) {
651
+ case 0:
652
+ params = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : {};
653
+ action = _constants.BREAKOUTS.ACTION.START;
654
+ payload = _objectSpread({
655
+ id: _this11.breakoutGroupId,
656
+ action: action,
657
+ allowBackToMain: false,
658
+ allowToJoinLater: false
659
+ }, params);
660
+ body = _objectSpread(_objectSpread({}, _this11.editLock && !!_this11.editLock.token ? {
661
+ editlock: {
662
+ token: _this11.editLock.token,
663
+ refresh: true
664
+ }
665
+ } : {}), {
666
+ groups: [payload]
667
+ });
668
+ _context4.next = 6;
669
+ return _this11.request({
670
+ method: _constants.HTTP_VERBS.PUT,
671
+ uri: _this11.url,
672
+ body: body
673
+ }).catch(function (error) {
674
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#start'));
675
+ });
676
+ case 6:
677
+ breakoutInfo = _context4.sent;
678
+ _this11._setManageGroups(breakoutInfo);
679
+ return _context4.abrupt("return", breakoutInfo);
680
+ case 9:
681
+ case "end":
682
+ return _context4.stop();
683
+ }
684
+ }, _callee4);
685
+ }))();
686
+ },
687
+ /**
688
+ * Host or cohost ends breakout sessions
689
+ * @param {object} params
690
+ * @returns {Promise}
691
+ */
692
+ end: function end() {
693
+ var _arguments2 = arguments,
694
+ _this12 = this;
695
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
696
+ var params, delayCloseTime, id, action, payload, body, breakoutInfo;
697
+ return _regenerator.default.wrap(function _callee5$(_context5) {
698
+ while (1) switch (_context5.prev = _context5.next) {
699
+ case 0:
700
+ params = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};
701
+ delayCloseTime = _this12.delayCloseTime, id = _this12.breakoutGroupId;
702
+ action = _constants.BREAKOUTS.ACTION.CLOSE;
703
+ payload = _objectSpread({
704
+ id: id,
705
+ action: action,
706
+ delayCloseTime: delayCloseTime
707
+ }, params);
708
+ body = _objectSpread(_objectSpread({}, _this12.editLock && !!_this12.editLock.token ? {
709
+ editlock: {
710
+ token: _this12.editLock.token,
711
+ refresh: true
712
+ }
713
+ } : {}), {
714
+ groups: [payload]
715
+ });
716
+ _context5.next = 7;
717
+ return _this12.request({
718
+ method: _constants.HTTP_VERBS.PUT,
719
+ uri: _this12.url,
720
+ body: body
721
+ }).catch(function (error) {
722
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#end'));
723
+ });
724
+ case 7:
725
+ breakoutInfo = _context5.sent;
726
+ _this12._setManageGroups(breakoutInfo);
727
+ return _context5.abrupt("return", breakoutInfo);
728
+ case 10:
729
+ case "end":
730
+ return _context5.stop();
731
+ }
732
+ }, _callee5);
733
+ }))();
734
+ },
735
+ /**
736
+ * Host or cohost update breakout sessions
737
+ * @param {Object} params
738
+ * @param {String} params.id
739
+ * @param {Boolean} unlockEdit
740
+ * @returns {Promise}
741
+ */
742
+ update: function update(params, unlockEdit) {
743
+ var _this13 = this;
744
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
745
+ var _this13$editLock;
746
+ var payload, body, breakoutInfo;
747
+ return _regenerator.default.wrap(function _callee6$(_context6) {
748
+ while (1) switch (_context6.prev = _context6.next) {
749
+ case 0:
750
+ if (params.id) {
751
+ _context6.next = 2;
752
+ break;
753
+ }
754
+ return _context6.abrupt("return", _promise.default.reject(new Error('Missing breakout group id')));
755
+ case 2:
756
+ payload = _objectSpread({}, params);
757
+ body = _objectSpread(_objectSpread({}, (_this13$editLock = _this13.editLock) !== null && _this13$editLock !== void 0 && _this13$editLock.token ? {
758
+ editlock: {
759
+ token: _this13.editLock.token,
760
+ refresh: !unlockEdit
761
+ }
762
+ } : {}), {
763
+ groups: [payload]
764
+ });
765
+ _context6.next = 6;
766
+ return _this13.request({
767
+ method: _constants.HTTP_VERBS.PUT,
768
+ uri: _this13.url,
769
+ body: body
770
+ }).catch(function (error) {
771
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#update'));
772
+ });
773
+ case 6:
774
+ breakoutInfo = _context6.sent;
775
+ if (unlockEdit) {
776
+ _this13._clearEditLockInfo();
777
+ }
778
+ _this13._setManageGroups(breakoutInfo);
779
+ return _context6.abrupt("return", breakoutInfo);
780
+ case 10:
781
+ case "end":
782
+ return _context6.stop();
783
+ }
784
+ }, _callee6);
785
+ }))();
786
+ },
787
+ /**
788
+ * get existed breakout sessions
789
+ * @param {boolean} editlock -- lock operations of the breakout sessions
790
+ * @returns {Promise}
791
+ */
792
+ getBreakout: function getBreakout(editlock) {
793
+ var _this14 = this;
794
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
795
+ var _breakout$body, _breakout$body$editlo;
796
+ var breakout;
797
+ return _regenerator.default.wrap(function _callee7$(_context7) {
798
+ while (1) switch (_context7.prev = _context7.next) {
799
+ case 0:
800
+ _context7.next = 2;
801
+ return _this14.request({
802
+ method: _constants.HTTP_VERBS.GET,
803
+ uri: _this14.url + (editlock ? "?editlock=".concat(editlock) : '')
804
+ });
805
+ case 2:
806
+ breakout = _context7.sent;
807
+ _this14._setManageGroups(breakout);
808
+ if (editlock && (_breakout$body = breakout.body) !== null && _breakout$body !== void 0 && (_breakout$body$editlo = _breakout$body.editlock) !== null && _breakout$body$editlo !== void 0 && _breakout$body$editlo.token) {
809
+ _this14.set('editLock', breakout.body.editlock);
810
+ _this14.keepEditLockAlive();
811
+ }
812
+ return _context7.abrupt("return", breakout);
813
+ case 6:
814
+ case "end":
815
+ return _context7.stop();
816
+ }
817
+ }, _callee7);
818
+ }))();
819
+ },
820
+ /**
821
+ * enable and edit lock breakout
822
+ * @returns {void}
823
+ */
824
+ enableAndLockBreakout: function enableAndLockBreakout() {
825
+ var _this15 = this;
826
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
827
+ var info;
828
+ return _regenerator.default.wrap(function _callee8$(_context8) {
829
+ while (1) switch (_context8.prev = _context8.next) {
830
+ case 0:
831
+ if (!_this15.enableBreakoutSession) {
832
+ _context8.next = 4;
833
+ break;
834
+ }
835
+ _this15.lockBreakout();
836
+ _context8.next = 8;
837
+ break;
838
+ case 4:
839
+ _context8.next = 6;
840
+ return _this15.enableBreakouts();
841
+ case 6:
842
+ info = _context8.sent;
843
+ if (info.body) {
844
+ _this15.lockBreakout();
845
+ }
846
+ case 8:
847
+ case "end":
848
+ return _context8.stop();
849
+ }
850
+ }, _callee8);
851
+ }))();
852
+ },
853
+ /**
854
+ * breakout edit locked by yourself or not
855
+ * @returns {boolean}
856
+ */
857
+ hasBreakoutLocked: function hasBreakoutLocked() {
858
+ return this.editLock && this.editLock.token && this.editLock.state === _constants.BREAKOUTS.EDIT_LOCK_STATUS.LOCKED;
859
+ },
860
+ /**
861
+ * send breakout edit lock
862
+ * @returns {void}
863
+ */
864
+ lockBreakout: function lockBreakout() {
865
+ var _this16 = this;
866
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
867
+ var _breakout$body2, breakout;
868
+ return _regenerator.default.wrap(function _callee9$(_context9) {
869
+ while (1) switch (_context9.prev = _context9.next) {
870
+ case 0:
871
+ if (!(_this16.editLock && !!_this16.editLock.token)) {
872
+ _context9.next = 8;
873
+ break;
874
+ }
875
+ if (!(_this16.editLock.state === _constants.BREAKOUTS.EDIT_LOCK_STATUS.LOCKED)) {
876
+ _context9.next = 5;
877
+ break;
878
+ }
879
+ throw new Error('Breakout already locked');
880
+ case 5:
881
+ _this16.keepEditLockAlive();
882
+ case 6:
883
+ _context9.next = 12;
884
+ break;
885
+ case 8:
886
+ _context9.next = 10;
887
+ return _this16.getBreakout(true);
888
+ case 10:
889
+ breakout = _context9.sent;
890
+ if ((_breakout$body2 = breakout.body) !== null && _breakout$body2 !== void 0 && _breakout$body2.editlock) {
891
+ _this16.keepEditLockAlive();
892
+ }
893
+ case 12:
894
+ case "end":
895
+ return _context9.stop();
896
+ }
897
+ }, _callee9);
898
+ }))();
899
+ },
900
+ /**
901
+ * keep edit lock alive
902
+ * @returns {void}
903
+ */
904
+ keepEditLockAlive: function keepEditLockAlive() {
905
+ var _this17 = this;
906
+ if (this.editLock && !!this.editLock.token) {
907
+ var ttl = this.editLock.ttl < 30 ? _constants.BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;
908
+ if (this.intervalID) {
909
+ window.clearInterval(this.intervalID);
910
+ }
911
+ this.intervalID = window.setInterval(function () {
912
+ _this17.request({
913
+ method: _constants.HTTP_VERBS.PUT,
914
+ uri: "".concat(_this17.url, "/editlock/").concat(_this17.editLock.token)
915
+ }).catch(function (error) {
916
+ _this17._clearEditLockInfo();
917
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#keepEditLockAlive'));
918
+ });
919
+ }, ttl / 2 * 1000);
920
+ }
921
+ },
922
+ /**
923
+ * unlock edit breakout
924
+ * @returns {void}
925
+ */
926
+ unLockEditBreakout: function unLockEditBreakout() {
927
+ var _this18 = this;
928
+ if (this.editLock && !!this.editLock.token) {
929
+ this.request({
930
+ method: _constants.HTTP_VERBS.DELETE,
931
+ uri: "".concat(this.url, "/editlock/").concat(this.editLock.token)
932
+ }).then(function () {
933
+ _this18._clearEditLockInfo();
934
+ }).catch(function (error) {
935
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#unLockEditBreakout'));
936
+ });
937
+ }
938
+ },
939
+ /**
940
+ * clear interval and edit lock info
941
+ * @private
942
+ * @returns {void}
943
+ */
944
+ _clearEditLockInfo: function _clearEditLockInfo() {
945
+ if (this.intervalID) {
946
+ clearInterval(this.intervalID);
947
+ }
948
+ this.set('editLock', {});
949
+ },
950
+ /**
951
+ * assign participants to breakout session
952
+ * @param {Array} sessions
953
+ * @returns {void}
954
+ */
955
+ assign: function assign(sessions) {
956
+ var internalSessions = sessions.map(function (item) {
957
+ return {
958
+ id: item.id,
959
+ assigned: item.memberIds,
960
+ assignedEmails: item.emails,
961
+ anyoneCanJoin: !!item.anyone
962
+ };
963
+ });
964
+ var body = _objectSpread(_objectSpread({}, this.editLock && !!this.editLock.token ? {
965
+ editlock: {
966
+ token: this.editLock.token,
967
+ refresh: true
968
+ }
969
+ } : {}), {
970
+ groups: [{
971
+ id: this.breakoutGroupId,
972
+ sessions: internalSessions
973
+ }]
974
+ });
975
+ return this.request({
976
+ method: _constants.HTTP_VERBS.PUT,
977
+ uri: this.url,
978
+ body: body
979
+ });
980
+ },
981
+ /**
982
+ * query preAssignments
983
+ * @returns {void}
984
+ */
985
+ queryPreAssignments: function queryPreAssignments() {
986
+ var _this19 = this;
987
+ this.webex.request({
988
+ uri: "".concat(this.url, "/preassignments"),
989
+ qs: {
990
+ locusUrl: btoa(this.locusUrl)
991
+ }
992
+ }).then(function (result) {
993
+ var _result$body;
994
+ if ((_result$body = result.body) !== null && _result$body !== void 0 && _result$body.groups) {
995
+ _this19.set('preAssignments', result.body.groups);
996
+ _this19.trigger(_constants.BREAKOUTS.EVENTS.PRE_ASSIGNMENTS_UPDATE);
997
+ }
998
+ }).catch(function (error) {
999
+ _loggerProxy.default.logger.error('Meeting:breakouts#queryPreAssignments failed', error);
1000
+ });
1001
+ },
1002
+ /**
1003
+ * assign participants dynamically after breakout sessions started,
1004
+ * but currently it only used for admitting participants from lobby into breakout directly
1005
+ * @param {Array} sessions
1006
+ * @returns {void}
1007
+ */
1008
+ dynamicAssign: function dynamicAssign(sessions) {
1009
+ var updatedSessions = sessions.map(function (item) {
1010
+ return {
1011
+ id: item.id,
1012
+ participants: item.participants,
1013
+ targetState: item.targetState
1014
+ };
1015
+ });
1016
+ var body = {
1017
+ groups: [{
1018
+ id: this.breakoutGroupId,
1019
+ sessions: updatedSessions
1020
+ }],
1021
+ editlock: null
1022
+ };
1023
+ if (this.editLock && this.editLock.token) {
1024
+ body.editlock = this.editLock;
1025
+ }
1026
+ return this.request({
1027
+ method: _constants.HTTP_VERBS.PUT,
1028
+ uri: "".concat(this.url, "/dynamicAssign"),
1029
+ body: body
1030
+ });
1031
+ },
1032
+ /**
1033
+ * trigger ASK_RETURN_TO_MAIN event when main session requested
1034
+ * @param {Object} breakout
1035
+ * @returns {void}
1036
+ */
1037
+ triggerReturnToMainEvent: function triggerReturnToMainEvent(breakout) {
1038
+ if (breakout.isMain && breakout.requested) {
1039
+ this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
1040
+ }
1041
+ },
1042
+ version: "3.0.0-beta.151"
1043
+ });
1044
+ var _default = Breakouts;
1045
+ exports.default = _default;
1046
+ //# sourceMappingURL=index.js.map