@webex/plugin-meetings 3.0.0-beta.13 → 3.0.0-beta.131

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