@webex/plugin-meetings 3.0.0-beta.14 → 3.0.0-beta.140

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