@webex/plugin-meetings 3.0.0-beta.24 → 3.0.0-beta.241

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 (360) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +114 -14
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/edit-lock-error.js +52 -0
  11. package/dist/breakouts/edit-lock-error.js.map +1 -0
  12. package/dist/breakouts/events.js +45 -0
  13. package/dist/breakouts/events.js.map +1 -0
  14. package/dist/breakouts/index.js +841 -19
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/request.js +78 -0
  17. package/dist/breakouts/request.js.map +1 -0
  18. package/dist/breakouts/utils.js +67 -0
  19. package/dist/breakouts/utils.js.map +1 -0
  20. package/dist/common/errors/webex-errors.js +28 -7
  21. package/dist/common/errors/webex-errors.js.map +1 -1
  22. package/dist/common/logs/logger-proxy.js +1 -1
  23. package/dist/common/logs/logger-proxy.js.map +1 -1
  24. package/dist/common/queue.js +24 -9
  25. package/dist/common/queue.js.map +1 -1
  26. package/dist/config.js +5 -10
  27. package/dist/config.js.map +1 -1
  28. package/dist/constants.js +190 -27
  29. package/dist/constants.js.map +1 -1
  30. package/dist/controls-options-manager/constants.js +14 -0
  31. package/dist/controls-options-manager/constants.js.map +1 -0
  32. package/dist/controls-options-manager/enums.js +27 -0
  33. package/dist/controls-options-manager/enums.js.map +1 -0
  34. package/dist/controls-options-manager/index.js +297 -0
  35. package/dist/controls-options-manager/index.js.map +1 -0
  36. package/dist/controls-options-manager/types.js +7 -0
  37. package/dist/controls-options-manager/types.js.map +1 -0
  38. package/dist/controls-options-manager/util.js +319 -0
  39. package/dist/controls-options-manager/util.js.map +1 -0
  40. package/dist/index.js +106 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/interpretation/collection.js +23 -0
  43. package/dist/interpretation/collection.js.map +1 -0
  44. package/dist/interpretation/index.js +366 -0
  45. package/dist/interpretation/index.js.map +1 -0
  46. package/dist/interpretation/siLanguage.js +25 -0
  47. package/dist/interpretation/siLanguage.js.map +1 -0
  48. package/dist/locus-info/controlsUtils.js +91 -2
  49. package/dist/locus-info/controlsUtils.js.map +1 -1
  50. package/dist/locus-info/index.js +357 -62
  51. package/dist/locus-info/index.js.map +1 -1
  52. package/dist/locus-info/infoUtils.js +7 -1
  53. package/dist/locus-info/infoUtils.js.map +1 -1
  54. package/dist/locus-info/mediaSharesUtils.js +43 -1
  55. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  56. package/dist/locus-info/parser.js +219 -63
  57. package/dist/locus-info/parser.js.map +1 -1
  58. package/dist/locus-info/selfUtils.js +89 -14
  59. package/dist/locus-info/selfUtils.js.map +1 -1
  60. package/dist/media/index.js +49 -106
  61. package/dist/media/index.js.map +1 -1
  62. package/dist/media/properties.js +29 -90
  63. package/dist/media/properties.js.map +1 -1
  64. package/dist/meeting/in-meeting-actions.js +90 -2
  65. package/dist/meeting/in-meeting-actions.js.map +1 -1
  66. package/dist/meeting/index.js +2593 -2558
  67. package/dist/meeting/index.js.map +1 -1
  68. package/dist/meeting/locusMediaRequest.js +292 -0
  69. package/dist/meeting/locusMediaRequest.js.map +1 -0
  70. package/dist/meeting/muteState.js +228 -123
  71. package/dist/meeting/muteState.js.map +1 -1
  72. package/dist/meeting/request.js +255 -195
  73. package/dist/meeting/request.js.map +1 -1
  74. package/dist/meeting/util.js +601 -417
  75. package/dist/meeting/util.js.map +1 -1
  76. package/dist/meeting-info/index.js +48 -7
  77. package/dist/meeting-info/index.js.map +1 -1
  78. package/dist/meeting-info/meeting-info-v2.js +171 -51
  79. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  80. package/dist/meeting-info/util.js +1 -1
  81. package/dist/meeting-info/util.js.map +1 -1
  82. package/dist/meeting-info/utilv2.js +36 -36
  83. package/dist/meeting-info/utilv2.js.map +1 -1
  84. package/dist/meetings/collection.js +22 -0
  85. package/dist/meetings/collection.js.map +1 -1
  86. package/dist/meetings/index.js +370 -90
  87. package/dist/meetings/index.js.map +1 -1
  88. package/dist/meetings/meetings.types.js +7 -0
  89. package/dist/meetings/meetings.types.js.map +1 -0
  90. package/dist/meetings/request.js +2 -0
  91. package/dist/meetings/request.js.map +1 -1
  92. package/dist/meetings/util.js +88 -1
  93. package/dist/meetings/util.js.map +1 -1
  94. package/dist/member/index.js +49 -0
  95. package/dist/member/index.js.map +1 -1
  96. package/dist/member/types.js +25 -0
  97. package/dist/member/types.js.map +1 -0
  98. package/dist/member/util.js +121 -25
  99. package/dist/member/util.js.map +1 -1
  100. package/dist/members/collection.js +10 -0
  101. package/dist/members/collection.js.map +1 -1
  102. package/dist/members/index.js +86 -5
  103. package/dist/members/index.js.map +1 -1
  104. package/dist/members/request.js +106 -38
  105. package/dist/members/request.js.map +1 -1
  106. package/dist/members/types.js +15 -0
  107. package/dist/members/types.js.map +1 -0
  108. package/dist/members/util.js +316 -233
  109. package/dist/members/util.js.map +1 -1
  110. package/dist/metrics/constants.js +4 -5
  111. package/dist/metrics/constants.js.map +1 -1
  112. package/dist/metrics/index.js +1 -468
  113. package/dist/metrics/index.js.map +1 -1
  114. package/dist/multistream/mediaRequestManager.js +238 -49
  115. package/dist/multistream/mediaRequestManager.js.map +1 -1
  116. package/dist/multistream/receiveSlot.js +49 -16
  117. package/dist/multistream/receiveSlot.js.map +1 -1
  118. package/dist/multistream/receiveSlotManager.js +52 -34
  119. package/dist/multistream/receiveSlotManager.js.map +1 -1
  120. package/dist/multistream/remoteMedia.js +44 -18
  121. package/dist/multistream/remoteMedia.js.map +1 -1
  122. package/dist/multistream/remoteMediaGroup.js +60 -3
  123. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  124. package/dist/multistream/remoteMediaManager.js +213 -62
  125. package/dist/multistream/remoteMediaManager.js.map +1 -1
  126. package/dist/reachability/index.js +81 -30
  127. package/dist/reachability/index.js.map +1 -1
  128. package/dist/reachability/request.js +16 -7
  129. package/dist/reachability/request.js.map +1 -1
  130. package/dist/reconnection-manager/index.js +199 -154
  131. package/dist/reconnection-manager/index.js.map +1 -1
  132. package/dist/recording-controller/index.js +21 -2
  133. package/dist/recording-controller/index.js.map +1 -1
  134. package/dist/recording-controller/util.js +9 -8
  135. package/dist/recording-controller/util.js.map +1 -1
  136. package/dist/roap/index.js +23 -29
  137. package/dist/roap/index.js.map +1 -1
  138. package/dist/roap/request.js +112 -89
  139. package/dist/roap/request.js.map +1 -1
  140. package/dist/roap/turnDiscovery.js +96 -36
  141. package/dist/roap/turnDiscovery.js.map +1 -1
  142. package/dist/rtcMetrics/constants.js +12 -0
  143. package/dist/rtcMetrics/constants.js.map +1 -0
  144. package/dist/rtcMetrics/index.js +117 -0
  145. package/dist/rtcMetrics/index.js.map +1 -0
  146. package/dist/statsAnalyzer/index.js +51 -34
  147. package/dist/statsAnalyzer/index.js.map +1 -1
  148. package/dist/statsAnalyzer/mqaUtil.js +6 -6
  149. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  150. package/dist/types/annotation/annotation.types.d.ts +42 -0
  151. package/dist/types/annotation/constants.d.ts +31 -0
  152. package/dist/types/annotation/index.d.ts +117 -0
  153. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  154. package/dist/types/breakouts/events.d.ts +8 -0
  155. package/dist/types/breakouts/request.d.ts +22 -0
  156. package/dist/types/breakouts/utils.d.ts +15 -0
  157. package/dist/types/common/errors/webex-errors.d.ts +13 -1
  158. package/dist/types/common/queue.d.ts +9 -7
  159. package/dist/types/config.d.ts +1 -6
  160. package/dist/types/constants.d.ts +154 -21
  161. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  162. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  163. package/dist/types/controls-options-manager/index.d.ts +136 -0
  164. package/dist/types/controls-options-manager/types.d.ts +43 -0
  165. package/dist/types/controls-options-manager/util.d.ts +1 -0
  166. package/dist/types/index.d.ts +6 -4
  167. package/dist/types/interpretation/collection.d.ts +5 -0
  168. package/dist/types/interpretation/index.d.ts +5 -0
  169. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  170. package/dist/types/locus-info/index.d.ts +57 -4
  171. package/dist/types/locus-info/parser.d.ts +65 -6
  172. package/dist/types/media/index.d.ts +2 -0
  173. package/dist/types/media/properties.d.ts +22 -36
  174. package/dist/types/meeting/in-meeting-actions.d.ts +90 -2
  175. package/dist/types/meeting/index.d.ts +297 -491
  176. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  177. package/dist/types/meeting/muteState.d.ts +98 -22
  178. package/dist/types/meeting/request.d.ts +72 -43
  179. package/dist/types/meeting/util.d.ts +101 -1
  180. package/dist/types/meeting-info/index.d.ts +6 -1
  181. package/dist/types/meeting-info/meeting-info-v2.d.ts +30 -1
  182. package/dist/types/meetings/collection.d.ts +8 -0
  183. package/dist/types/meetings/index.d.ts +76 -12
  184. package/dist/types/meetings/meetings.types.d.ts +4 -0
  185. package/dist/types/member/index.d.ts +13 -0
  186. package/dist/types/member/types.d.ts +32 -0
  187. package/dist/types/members/collection.d.ts +5 -0
  188. package/dist/types/members/index.d.ts +35 -2
  189. package/dist/types/members/request.d.ts +73 -9
  190. package/dist/types/members/types.d.ts +24 -0
  191. package/dist/types/members/util.d.ts +209 -1
  192. package/dist/types/metrics/constants.d.ts +3 -4
  193. package/dist/types/metrics/index.d.ts +4 -119
  194. package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
  195. package/dist/types/multistream/receiveSlot.d.ts +16 -12
  196. package/dist/types/multistream/receiveSlotManager.d.ts +19 -4
  197. package/dist/types/multistream/remoteMedia.d.ts +8 -29
  198. package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
  199. package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
  200. package/dist/types/reachability/index.d.ts +15 -3
  201. package/dist/types/reachability/request.d.ts +7 -3
  202. package/dist/types/reconnection-manager/index.d.ts +9 -0
  203. package/dist/types/recording-controller/index.d.ts +15 -1
  204. package/dist/types/recording-controller/util.d.ts +5 -4
  205. package/dist/types/roap/request.d.ts +15 -11
  206. package/dist/types/roap/turnDiscovery.d.ts +18 -1
  207. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  208. package/dist/types/rtcMetrics/index.d.ts +47 -0
  209. package/dist/types/statsAnalyzer/index.d.ts +6 -1
  210. package/package.json +23 -20
  211. package/src/annotation/annotation.types.ts +50 -0
  212. package/src/annotation/constants.ts +36 -0
  213. package/src/annotation/index.ts +328 -0
  214. package/src/breakouts/README.md +44 -14
  215. package/src/breakouts/breakout.ts +87 -9
  216. package/src/breakouts/edit-lock-error.ts +25 -0
  217. package/src/breakouts/events.ts +56 -0
  218. package/src/breakouts/index.ts +710 -10
  219. package/src/breakouts/request.ts +55 -0
  220. package/src/breakouts/utils.ts +57 -0
  221. package/src/common/errors/webex-errors.ts +27 -2
  222. package/src/common/logs/logger-proxy.ts +1 -1
  223. package/src/common/queue.ts +22 -8
  224. package/src/config.ts +4 -9
  225. package/src/constants.ts +175 -18
  226. package/src/controls-options-manager/constants.ts +5 -0
  227. package/src/controls-options-manager/enums.ts +18 -0
  228. package/src/controls-options-manager/index.ts +278 -0
  229. package/src/controls-options-manager/types.ts +59 -0
  230. package/src/controls-options-manager/util.ts +300 -0
  231. package/src/index.ts +39 -0
  232. package/src/interpretation/README.md +60 -0
  233. package/src/interpretation/collection.ts +19 -0
  234. package/src/interpretation/index.ts +332 -0
  235. package/src/interpretation/siLanguage.ts +18 -0
  236. package/src/locus-info/controlsUtils.ts +108 -0
  237. package/src/locus-info/index.ts +381 -59
  238. package/src/locus-info/infoUtils.ts +10 -2
  239. package/src/locus-info/mediaSharesUtils.ts +48 -0
  240. package/src/locus-info/parser.ts +224 -39
  241. package/src/locus-info/selfUtils.ts +81 -5
  242. package/src/media/index.ts +89 -109
  243. package/src/media/properties.ts +48 -87
  244. package/src/meeting/in-meeting-actions.ts +179 -3
  245. package/src/meeting/index.ts +2086 -2151
  246. package/src/meeting/locusMediaRequest.ts +313 -0
  247. package/src/meeting/muteState.ts +227 -130
  248. package/src/meeting/request.ts +171 -120
  249. package/src/meeting/util.ts +588 -395
  250. package/src/meeting-info/index.ts +54 -8
  251. package/src/meeting-info/meeting-info-v2.ts +148 -14
  252. package/src/meeting-info/util.ts +1 -1
  253. package/src/meeting-info/utilv2.ts +23 -23
  254. package/src/meetings/collection.ts +20 -0
  255. package/src/meetings/index.ts +407 -108
  256. package/src/meetings/meetings.types.ts +12 -0
  257. package/src/meetings/request.ts +2 -0
  258. package/src/meetings/util.ts +103 -4
  259. package/src/member/index.ts +49 -0
  260. package/src/member/types.ts +38 -0
  261. package/src/member/util.ts +127 -25
  262. package/src/members/collection.ts +8 -0
  263. package/src/members/index.ts +107 -6
  264. package/src/members/request.ts +97 -17
  265. package/src/members/types.ts +28 -0
  266. package/src/members/util.ts +319 -240
  267. package/src/metrics/constants.ts +3 -4
  268. package/src/metrics/index.ts +1 -490
  269. package/src/multistream/mediaRequestManager.ts +289 -79
  270. package/src/multistream/receiveSlot.ts +55 -18
  271. package/src/multistream/receiveSlotManager.ts +46 -24
  272. package/src/multistream/remoteMedia.ts +27 -2
  273. package/src/multistream/remoteMediaGroup.ts +59 -0
  274. package/src/multistream/remoteMediaManager.ts +150 -32
  275. package/src/reachability/index.ts +69 -17
  276. package/src/reachability/request.ts +16 -7
  277. package/src/reconnection-manager/index.ts +81 -54
  278. package/src/recording-controller/index.ts +20 -3
  279. package/src/recording-controller/util.ts +26 -9
  280. package/src/roap/index.ts +23 -30
  281. package/src/roap/request.ts +104 -95
  282. package/src/roap/turnDiscovery.ts +50 -25
  283. package/src/rtcMetrics/constants.ts +3 -0
  284. package/src/rtcMetrics/index.ts +100 -0
  285. package/src/statsAnalyzer/index.ts +73 -35
  286. package/src/statsAnalyzer/mqaUtil.ts +8 -10
  287. package/test/integration/spec/converged-space-meetings.js +233 -0
  288. package/test/integration/spec/journey.js +336 -259
  289. package/test/integration/spec/space-meeting.js +76 -3
  290. package/test/unit/spec/annotation/index.ts +418 -0
  291. package/test/unit/spec/breakouts/breakout.ts +142 -24
  292. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  293. package/test/unit/spec/breakouts/events.ts +89 -0
  294. package/test/unit/spec/breakouts/index.ts +1545 -48
  295. package/test/unit/spec/breakouts/request.ts +104 -0
  296. package/test/unit/spec/breakouts/utils.js +72 -0
  297. package/test/unit/spec/common/queue.js +31 -2
  298. package/test/unit/spec/controls-options-manager/index.js +287 -0
  299. package/test/unit/spec/controls-options-manager/util.js +582 -0
  300. package/test/unit/spec/fixture/locus.js +1 -0
  301. package/test/unit/spec/interpretation/collection.ts +15 -0
  302. package/test/unit/spec/interpretation/index.ts +589 -0
  303. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  304. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  305. package/test/unit/spec/locus-info/index.js +1169 -36
  306. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  307. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  308. package/test/unit/spec/locus-info/parser.js +62 -22
  309. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  310. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  311. package/test/unit/spec/media/index.ts +138 -28
  312. package/test/unit/spec/meeting/in-meeting-actions.ts +89 -3
  313. package/test/unit/spec/meeting/index.js +3514 -1746
  314. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  315. package/test/unit/spec/meeting/muteState.js +370 -208
  316. package/test/unit/spec/meeting/request.js +440 -45
  317. package/test/unit/spec/meeting/utils.js +671 -54
  318. package/test/unit/spec/meeting-info/index.js +181 -0
  319. package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
  320. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  321. package/test/unit/spec/meetings/collection.js +14 -0
  322. package/test/unit/spec/meetings/index.js +939 -150
  323. package/test/unit/spec/meetings/utils.js +206 -2
  324. package/test/unit/spec/member/index.js +58 -4
  325. package/test/unit/spec/member/util.js +479 -35
  326. package/test/unit/spec/members/index.js +319 -1
  327. package/test/unit/spec/members/request.js +206 -27
  328. package/test/unit/spec/members/utils.js +184 -0
  329. package/test/unit/spec/metrics/index.js +1 -50
  330. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  331. package/test/unit/spec/multistream/receiveSlot.ts +72 -13
  332. package/test/unit/spec/multistream/receiveSlotManager.ts +58 -28
  333. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  334. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  335. package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
  336. package/test/unit/spec/reachability/index.ts +185 -7
  337. package/test/unit/spec/reachability/request.js +68 -0
  338. package/test/unit/spec/reconnection-manager/index.js +80 -6
  339. package/test/unit/spec/recording-controller/index.js +294 -218
  340. package/test/unit/spec/recording-controller/util.js +223 -96
  341. package/test/unit/spec/roap/index.ts +31 -51
  342. package/test/unit/spec/roap/request.ts +202 -85
  343. package/test/unit/spec/roap/turnDiscovery.ts +45 -10
  344. package/test/unit/spec/rtcMetrics/index.ts +68 -0
  345. package/test/unit/spec/stats-analyzer/index.js +29 -2
  346. package/test/utils/constants.js +9 -0
  347. package/test/utils/integrationTestUtils.js +46 -0
  348. package/test/utils/testUtils.js +0 -45
  349. package/test/utils/webex-config.js +4 -0
  350. package/test/utils/webex-test-users.js +6 -3
  351. package/dist/meeting/effectsState.js +0 -262
  352. package/dist/meeting/effectsState.js.map +0 -1
  353. package/dist/metrics/config.js +0 -299
  354. package/dist/metrics/config.js.map +0 -1
  355. package/dist/types/meeting/effectsState.d.ts +0 -42
  356. package/dist/types/metrics/config.d.ts +0 -178
  357. package/src/index.js +0 -16
  358. package/src/meeting/effectsState.ts +0 -211
  359. package/src/metrics/config.ts +0 -495
  360. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -23,6 +23,7 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
23
23
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
24
24
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
25
25
  var _remove2 = _interopRequireDefault(require("lodash/remove"));
26
+ var _forEach2 = _interopRequireDefault(require("lodash/forEach"));
26
27
  var _cloneDeep2 = _interopRequireDefault(require("lodash/cloneDeep"));
27
28
  var _internalMediaCore = require("@webex/internal-media-core");
28
29
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
@@ -69,6 +70,7 @@ var OnePlusFiveLayout = {
69
70
  };
70
71
 
71
72
  // A layout with 2 big panes for 2 main active speakers and a strip of 6 small panes for other active speakers:
73
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
72
74
  var TwoMainPlusSixSmallLayout = {
73
75
  activeSpeakerVideoPaneGroups: [{
74
76
  id: 'mainGroupWith2BigPanes',
@@ -85,7 +87,9 @@ var TwoMainPlusSixSmallLayout = {
85
87
 
86
88
  // A strip of 8 small video panes (thumbnails) displayed at the top of a remote screenshare:
87
89
  var RemoteScreenShareWithSmallThumbnailsLayout = {
88
- // screenShareVideo: {size: 'best'}, // todo: SPARK-393485: uncomment this once backend supports screen sharing
90
+ screenShareVideo: {
91
+ size: 'best'
92
+ },
89
93
  activeSpeakerVideoPaneGroups: [{
90
94
  id: 'thumbnails',
91
95
  numPanes: 8,
@@ -130,9 +134,8 @@ var Stage2x2With6ThumbnailsLayout = {
130
134
  var DefaultConfiguration = {
131
135
  audio: {
132
136
  numOfActiveSpeakerStreams: 3,
133
- numOfScreenShareStreams: 0 // todo: SPARK-393485: change to 1 once backend supports screen sharing
137
+ numOfScreenShareStreams: 1
134
138
  },
135
-
136
139
  video: {
137
140
  preferLiveVideo: true,
138
141
  initialLayoutId: 'AllEqual',
@@ -434,15 +437,16 @@ var RemoteMediaManager = /*#__PURE__*/function (_EventsScope) {
434
437
  }
435
438
  throw new Error('setLayout() called before start()');
436
439
  case 4:
440
+ _loggerProxy.default.logger.log("RemoteMediaManager#setLayout --> new layout selected: ".concat(layoutId));
437
441
  this.currentLayoutId = layoutId;
438
442
  this.currentLayout = (0, _cloneDeep2.default)(this.config.video.layouts[this.currentLayoutId]);
439
- _context3.next = 8;
443
+ _context3.next = 9;
440
444
  return this.updateVideoReceiveSlots();
441
- case 8:
445
+ case 9:
442
446
  this.updateVideoRemoteMediaObjects();
443
447
  this.updateScreenShareVideoRemoteMediaObject();
444
448
  this.emitVideoLayoutChangedEvent();
445
- case 11:
449
+ case 12:
446
450
  case "end":
447
451
  return _context3.stop();
448
452
  }
@@ -464,6 +468,41 @@ var RemoteMediaManager = /*#__PURE__*/function (_EventsScope) {
464
468
  return this.currentLayoutId;
465
469
  }
466
470
 
471
+ /**
472
+ * sets the preferLiveVideo
473
+ */
474
+ }, {
475
+ key: "setPreferLiveVideo",
476
+ value: function setPreferLiveVideo(preferLiveVideo) {
477
+ _loggerProxy.default.logger.log("RemoteMediaManager#setPreferLiveVideo --> setPreferLiveVideo is called to set preferLiveVideo to ".concat(preferLiveVideo));
478
+ this.config.video.preferLiveVideo = preferLiveVideo;
479
+ (0, _values.default)(this.media.video.activeSpeakerGroups).forEach(function (activeSpeakerGroup) {
480
+ activeSpeakerGroup.setPreferLiveVideo(preferLiveVideo, false);
481
+ });
482
+ this.mediaRequestManagers.video.commit();
483
+ }
484
+
485
+ /**
486
+ * Sets CSIs for multiple RemoteMedia instances belonging to RemoteMediaGroup.
487
+ * For each entry in the remoteMediaCsis array:
488
+ * - if csi is specified, the RemoteMedia instance is pinned to that CSI
489
+ * - if csi is undefined, the RemoteMedia instance is unpinned
490
+ */
491
+ }, {
492
+ key: "setActiveSpeakerCsis",
493
+ value: function setActiveSpeakerCsis(remoteMediaCsis) {
494
+ (0, _values.default)(this.media.video.activeSpeakerGroups).forEach(function (remoteMediaGroup) {
495
+ var groupRemoteMediaCsis = remoteMediaCsis.filter(function (_ref) {
496
+ var remoteMedia = _ref.remoteMedia;
497
+ return remoteMediaGroup.includes(remoteMedia);
498
+ });
499
+ if (groupRemoteMediaCsis.length > 0) {
500
+ remoteMediaGroup.setActiveSpeakerCsis(groupRemoteMediaCsis, false);
501
+ }
502
+ });
503
+ this.mediaRequestManagers.video.commit();
504
+ }
505
+
467
506
  /**
468
507
  * Creates the audio slots
469
508
  */
@@ -617,70 +656,82 @@ var RemoteMediaManager = /*#__PURE__*/function (_EventsScope) {
617
656
  }
618
657
 
619
658
  /**
620
- * Allocates receive slots to all video panes in the current selected layout
659
+ * Allocates receive slots to all active speaker video panes
660
+ * in the current selected layout.
661
+ *
662
+ * Allocation tries to keep the same order of the slots between the previous
663
+ * layout and the new one. Sorting helps making sure that highest priority slots
664
+ * go in the same order in the new layout.
621
665
  */
622
666
  }, {
623
- key: "allocateSlotsToVideoPaneGroups",
624
- value: function allocateSlotsToVideoPaneGroups() {
667
+ key: "allocateSlotsToActiveSpeakerPaneGroups",
668
+ value: function allocateSlotsToActiveSpeakerPaneGroups() {
625
669
  var _this$currentLayout2,
626
670
  _this$currentLayout2$,
627
- _this5 = this,
628
- _this$currentLayout3,
629
- _this$currentLayout3$;
630
- this.receiveSlotAllocations = {
631
- activeSpeaker: {},
632
- receiverSelected: {}
633
- };
634
- (_this$currentLayout2 = this.currentLayout) === null || _this$currentLayout2 === void 0 ? void 0 : (_this$currentLayout2$ = _this$currentLayout2.activeSpeakerVideoPaneGroups) === null || _this$currentLayout2$ === void 0 ? void 0 : _this$currentLayout2$.forEach(function (group) {
671
+ _this$currentLayout2$2,
672
+ _this5 = this;
673
+ (_this$currentLayout2 = this.currentLayout) === null || _this$currentLayout2 === void 0 ? void 0 : (_this$currentLayout2$ = _this$currentLayout2.activeSpeakerVideoPaneGroups
674
+ // sorting in descending order based on group priority
675
+ ) === null || _this$currentLayout2$ === void 0 ? void 0 : (_this$currentLayout2$2 = _this$currentLayout2$.sort(function (a, b) {
676
+ return a.priority < b.priority ? 1 : -1;
677
+ })) === null || _this$currentLayout2$2 === void 0 ? void 0 : _this$currentLayout2$2.forEach(function (group) {
635
678
  _this5.receiveSlotAllocations.activeSpeaker[group.id] = {
636
679
  slots: []
637
680
  };
638
681
  for (var paneIndex = 0; paneIndex < group.numPanes; paneIndex += 1) {
639
- // allocate a slot from the "unused" list
640
- var freeSlot = _this5.slots.video.unused.pop();
682
+ // allocate a slot from the "unused" list, by grabbing in same order (shift) as previous layout
683
+ var freeSlot = _this5.slots.video.unused.shift();
641
684
  if (freeSlot) {
642
685
  _this5.slots.video.activeSpeaker.push(freeSlot);
643
686
  _this5.receiveSlotAllocations.activeSpeaker[group.id].slots.push(freeSlot);
644
687
  }
645
688
  }
646
689
  });
690
+ }
691
+
692
+ /**
693
+ * Allocates receive slots to all receiver selected video panes
694
+ * in the current selected layout
695
+ */
696
+ }, {
697
+ key: "allocateSlotsToReceiverSelectedVideoPaneGroups",
698
+ value: function allocateSlotsToReceiverSelectedVideoPaneGroups() {
699
+ var _this$currentLayout3,
700
+ _this$currentLayout3$,
701
+ _this6 = this;
647
702
  (_this$currentLayout3 = this.currentLayout) === null || _this$currentLayout3 === void 0 ? void 0 : (_this$currentLayout3$ = _this$currentLayout3.memberVideoPanes) === null || _this$currentLayout3$ === void 0 ? void 0 : _this$currentLayout3$.forEach(function (memberPane) {
648
703
  // check if there is existing slot for this csi
649
- var existingSlot = _this5.slots.video.receiverSelected.find(function (slot) {
704
+ var existingSlot = _this6.slots.video.receiverSelected.find(function (slot) {
650
705
  return slot.csi === memberPane.csi;
651
706
  });
652
- var isExistingSlotAlreadyAllocated = (0, _values.default)(_this5.receiveSlotAllocations.receiverSelected).includes(existingSlot);
707
+ var isExistingSlotAlreadyAllocated = (0, _values.default)(_this6.receiveSlotAllocations.receiverSelected).includes(existingSlot);
653
708
  if (memberPane.csi !== undefined && existingSlot && !isExistingSlotAlreadyAllocated) {
654
709
  // found it, so use it
655
- _this5.receiveSlotAllocations.receiverSelected[memberPane.id] = existingSlot;
710
+ _this6.receiveSlotAllocations.receiverSelected[memberPane.id] = existingSlot;
656
711
  } else {
657
712
  // allocate a slot from the "unused" list
658
- var freeSlot = _this5.slots.video.unused.pop();
713
+ var freeSlot = _this6.slots.video.unused.pop();
659
714
  if (freeSlot) {
660
- _this5.slots.video.receiverSelected.push(freeSlot);
661
- _this5.receiveSlotAllocations.receiverSelected[memberPane.id] = freeSlot;
715
+ _this6.slots.video.receiverSelected.push(freeSlot);
716
+ _this6.receiveSlotAllocations.receiverSelected[memberPane.id] = freeSlot;
662
717
  }
663
718
  }
664
719
  });
665
720
  }
666
721
 
667
722
  /**
668
- * Makes sure we have the right number of receive slots created for the current layout
669
- * and allocates them to the right video panes / pane groups
670
- *
671
- * @returns {Promise}
723
+ * Ensures that we have enough slots for the current layout.
672
724
  */
673
725
  }, {
674
- key: "updateVideoReceiveSlots",
726
+ key: "refillRequiredSlotsIfNeeded",
675
727
  value: function () {
676
- var _updateVideoReceiveSlots = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
677
- var _this$slots$video$unu4;
728
+ var _refillRequiredSlotsIfNeeded = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
678
729
  var requiredNumSlots, totalNumSlots, numSlotsToCreate;
679
730
  return _regenerator.default.wrap(function _callee6$(_context6) {
680
731
  while (1) switch (_context6.prev = _context6.next) {
681
732
  case 0:
682
733
  requiredNumSlots = this.getRequiredNumVideoSlotsForLayout(this.currentLayout);
683
- totalNumSlots = this.slots.video.unused.length + this.slots.video.activeSpeaker.length + this.slots.video.receiverSelected.length; // ensure we have enough total slots for current layout
734
+ totalNumSlots = this.slots.video.unused.length + this.slots.video.activeSpeaker.length + this.slots.video.receiverSelected.length;
684
735
  if (!(totalNumSlots < requiredNumSlots)) {
685
736
  _context6.next = 13;
686
737
  break;
@@ -701,25 +752,125 @@ var RemoteMediaManager = /*#__PURE__*/function (_EventsScope) {
701
752
  _context6.next = 4;
702
753
  break;
703
754
  case 13:
704
- // move all no longer needed receiver-selected slots to "unused"
705
- this.trimReceiverSelectedSlots();
755
+ case "end":
756
+ return _context6.stop();
757
+ }
758
+ }, _callee6, this);
759
+ }));
760
+ function refillRequiredSlotsIfNeeded() {
761
+ return _refillRequiredSlotsIfNeeded.apply(this, arguments);
762
+ }
763
+ return refillRequiredSlotsIfNeeded;
764
+ }()
765
+ /**
766
+ * Move all active speaker slots to "unused"
767
+ */
768
+ }, {
769
+ key: "trimActiveSpeakerSlots",
770
+ value: function trimActiveSpeakerSlots() {
771
+ var _this$slots$video$unu4;
772
+ (_this$slots$video$unu4 = this.slots.video.unused).push.apply(_this$slots$video$unu4, (0, _toConsumableArray2.default)(this.slots.video.activeSpeaker));
773
+ this.slots.video.activeSpeaker.length = 0;
774
+ }
775
+
776
+ /**
777
+ * Logs the state of the receive slots
778
+ */
779
+ }, {
780
+ key: "logMainVideoReceiveSlots",
781
+ value: function logMainVideoReceiveSlots() {
782
+ var logMessage = '';
783
+ (0, _forEach2.default)(this.receiveSlotAllocations.activeSpeaker, function (group, groupName) {
784
+ logMessage += "\ngroup: ".concat(groupName, "\n").concat(group.slots.map(function (slot) {
785
+ return slot.logString;
786
+ }).join(', '));
787
+ });
788
+ logMessage += '\nreceiverSelected:\n';
789
+ (0, _forEach2.default)(this.receiveSlotAllocations.receiverSelected, function (slot, key) {
790
+ logMessage += " ".concat(key, ": ").concat(slot.logString, "\n");
791
+ });
792
+ _loggerProxy.default.logger.log("RemoteMediaManager#logMainVideoReceiveSlots --> MAIN VIDEO receive slots: unused=".concat(this.slots.video.unused.length, ", activeSpeaker=").concat(this.slots.video.activeSpeaker.length, ", receiverSelected=").concat(this.slots.video.receiverSelected.length).concat(logMessage));
793
+ }
794
+
795
+ /** logs main audio slots */
796
+ }, {
797
+ key: "logMainAudioReceiveSlots",
798
+ value: function logMainAudioReceiveSlots() {
799
+ _loggerProxy.default.logger.log("RemoteMediaManager#logMainAudioReceiveSlots --> MAIN AUDIO receive slots: ".concat(this.slots.audio.map(function (slot) {
800
+ return slot.logString;
801
+ }).join(', ')));
802
+ }
803
+
804
+ /** logs slides video slots */
805
+ }, {
806
+ key: "logSlidesVideoReceiveSlots",
807
+ value: function logSlidesVideoReceiveSlots() {
808
+ var _this$slots$screenSha;
809
+ _loggerProxy.default.logger.log("RemoteMediaManager#logSlidesVideoReceiveSlots --> SLIDES VIDEO receive slot: ".concat((_this$slots$screenSha = this.slots.screenShare.video) === null || _this$slots$screenSha === void 0 ? void 0 : _this$slots$screenSha.logString));
810
+ }
811
+
812
+ /** logs slides audio slots */
813
+ }, {
814
+ key: "logSlidesAudioReceiveSlots",
815
+ value: function logSlidesAudioReceiveSlots() {
816
+ _loggerProxy.default.logger.log("RemoteMediaManager#logSlidesAudioReceiveSlots --> SLIDES AUDIO receive slots: ".concat(this.slots.screenShare.audio.map(function (slot) {
817
+ return slot.logString;
818
+ }).join(', ')));
819
+ }
820
+
821
+ /** Logs all current receive slots */
822
+ }, {
823
+ key: "logAllReceiveSlots",
824
+ value: function logAllReceiveSlots() {
825
+ this.logMainVideoReceiveSlots();
826
+ this.logMainAudioReceiveSlots();
827
+ this.logSlidesVideoReceiveSlots();
828
+ this.logSlidesAudioReceiveSlots();
829
+ }
706
830
 
831
+ /**
832
+ * Makes sure we have the right number of receive slots created for the current layout
833
+ * and allocates them to the right video panes / pane groups
834
+ *
835
+ * @returns {Promise}
836
+ */
837
+ }, {
838
+ key: "updateVideoReceiveSlots",
839
+ value: function () {
840
+ var _updateVideoReceiveSlots = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
841
+ return _regenerator.default.wrap(function _callee7$(_context7) {
842
+ while (1) switch (_context7.prev = _context7.next) {
843
+ case 0:
707
844
  // move all active speaker slots to "unused"
708
- (_this$slots$video$unu4 = this.slots.video.unused).push.apply(_this$slots$video$unu4, (0, _toConsumableArray2.default)(this.slots.video.activeSpeaker));
709
- this.slots.video.activeSpeaker.length = 0;
845
+ this.trimActiveSpeakerSlots();
846
+
847
+ // move all no longer needed receiver-selected slots to "unused"
848
+ this.trimReceiverSelectedSlots();
710
849
 
850
+ // ensure we have enough total slots for current layout
851
+ _context7.next = 4;
852
+ return this.refillRequiredSlotsIfNeeded();
853
+ case 4:
711
854
  // allocate the slots to the right panes / pane groups
712
- this.allocateSlotsToVideoPaneGroups();
713
- _loggerProxy.default.logger.log("RemoteMediaManager#updateVideoReceiveSlots --> receive slots updated: unused=".concat(this.slots.video.unused.length, ", activeSpeaker=").concat(this.slots.video.activeSpeaker.length, ", receiverSelected=").concat(this.slots.video.receiverSelected.length));
855
+ // reset allocations
856
+ this.receiveSlotAllocations = {
857
+ activeSpeaker: {},
858
+ receiverSelected: {}
859
+ };
860
+ // allocate active speaker
861
+ this.allocateSlotsToActiveSpeakerPaneGroups();
862
+ // allocate receiver selected
863
+ this.allocateSlotsToReceiverSelectedVideoPaneGroups();
864
+ this.logMainVideoReceiveSlots();
714
865
 
715
866
  // If this is the initial layout, there may be some "unused" slots left because of the preallocation
716
867
  // done in this.preallocateVideoReceiveSlots(), so release them now
717
868
  this.releaseUnusedVideoSlots();
718
- case 19:
869
+ case 9:
719
870
  case "end":
720
- return _context6.stop();
871
+ return _context7.stop();
721
872
  }
722
- }, _callee6, this);
873
+ }, _callee7, this);
723
874
  }));
724
875
  function updateVideoReceiveSlots() {
725
876
  return _updateVideoReceiveSlots.apply(this, arguments);
@@ -733,7 +884,7 @@ var RemoteMediaManager = /*#__PURE__*/function (_EventsScope) {
733
884
  }, {
734
885
  key: "updateVideoRemoteMediaObjects",
735
886
  value: function updateVideoRemoteMediaObjects() {
736
- var _this6 = this;
887
+ var _this7 = this;
737
888
  // invalidate all the previous remote media objects and cancel their media requests
738
889
  this.invalidateCurrentRemoteMedia({
739
890
  audio: false,
@@ -747,19 +898,19 @@ var RemoteMediaManager = /*#__PURE__*/function (_EventsScope) {
747
898
  this.media.video.activeSpeakerGroups = {};
748
899
  this.media.video.memberPanes = {};
749
900
  var _loop = function _loop() {
750
- var _this6$currentLayout, _this6$currentLayout$;
901
+ var _this7$currentLayout, _this7$currentLayout$;
751
902
  var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
752
903
  groupId = _Object$entries$_i[0],
753
904
  group = _Object$entries$_i[1];
754
- var paneGroupInCurrentLayout = (_this6$currentLayout = _this6.currentLayout) === null || _this6$currentLayout === void 0 ? void 0 : (_this6$currentLayout$ = _this6$currentLayout.activeSpeakerVideoPaneGroups) === null || _this6$currentLayout$ === void 0 ? void 0 : _this6$currentLayout$.find(function (groupInLayout) {
905
+ var paneGroupInCurrentLayout = (_this7$currentLayout = _this7.currentLayout) === null || _this7$currentLayout === void 0 ? void 0 : (_this7$currentLayout$ = _this7$currentLayout.activeSpeakerVideoPaneGroups) === null || _this7$currentLayout$ === void 0 ? void 0 : _this7$currentLayout$.find(function (groupInLayout) {
755
906
  return groupInLayout.id === groupId;
756
907
  });
757
908
  if (paneGroupInCurrentLayout) {
758
- var mediaGroup = new _remoteMediaGroup.RemoteMediaGroup(_this6.mediaRequestManagers.video, group.slots, paneGroupInCurrentLayout.priority, false, {
759
- preferLiveVideo: _this6.config.video.preferLiveVideo,
909
+ var mediaGroup = new _remoteMediaGroup.RemoteMediaGroup(_this7.mediaRequestManagers.video, group.slots, paneGroupInCurrentLayout.priority, false, {
910
+ preferLiveVideo: _this7.config.video.preferLiveVideo,
760
911
  resolution: paneGroupInCurrentLayout.size
761
912
  });
762
- _this6.media.video.activeSpeakerGroups[groupId] = mediaGroup;
913
+ _this7.media.video.activeSpeakerGroups[groupId] = mediaGroup;
763
914
  } else {
764
915
  // this should never happen, because this.receiveSlotAllocations are created based on current layout configuration
765
916
  _loggerProxy.default.logger.warn("a group id ".concat(groupId, " from this.receiveSlotAllocations.activeSpeaker cannot be found in the current layout configuration"));
@@ -771,21 +922,21 @@ var RemoteMediaManager = /*#__PURE__*/function (_EventsScope) {
771
922
 
772
923
  // create new remoteMedia objects
773
924
  var _loop2 = function _loop2() {
774
- var _this6$currentLayout2, _this6$currentLayout3;
925
+ var _this7$currentLayout2, _this7$currentLayout3;
775
926
  var _Object$entries3$_i = (0, _slicedToArray2.default)(_Object$entries3[_i2], 2),
776
927
  paneId = _Object$entries3$_i[0],
777
928
  slot = _Object$entries3$_i[1];
778
- var paneInCurrentLayout = (_this6$currentLayout2 = _this6.currentLayout) === null || _this6$currentLayout2 === void 0 ? void 0 : (_this6$currentLayout3 = _this6$currentLayout2.memberVideoPanes) === null || _this6$currentLayout3 === void 0 ? void 0 : _this6$currentLayout3.find(function (paneInLayout) {
929
+ var paneInCurrentLayout = (_this7$currentLayout2 = _this7.currentLayout) === null || _this7$currentLayout2 === void 0 ? void 0 : (_this7$currentLayout3 = _this7$currentLayout2.memberVideoPanes) === null || _this7$currentLayout3 === void 0 ? void 0 : _this7$currentLayout3.find(function (paneInLayout) {
779
930
  return paneInLayout.id === paneId;
780
931
  });
781
932
  if (paneInCurrentLayout) {
782
- var remoteMedia = new _remoteMedia.RemoteMedia(slot, _this6.mediaRequestManagers.video, {
933
+ var remoteMedia = new _remoteMedia.RemoteMedia(slot, _this7.mediaRequestManagers.video, {
783
934
  resolution: paneInCurrentLayout.size
784
935
  });
785
936
  if (paneInCurrentLayout.csi) {
786
937
  remoteMedia.sendMediaRequest(paneInCurrentLayout.csi, false);
787
938
  }
788
- _this6.media.video.memberPanes[paneId] = remoteMedia;
939
+ _this7.media.video.memberPanes[paneId] = remoteMedia;
789
940
  } else {
790
941
  // this should never happen, because this.receiveSlotAllocations are created based on current layout configuration
791
942
  _loggerProxy.default.logger.warn("a pane id ".concat(paneId, " from this.receiveSlotAllocations.receiverSelected cannot be found in the current layout configuration"));
@@ -909,14 +1060,14 @@ var RemoteMediaManager = /*#__PURE__*/function (_EventsScope) {
909
1060
  }, {
910
1061
  key: "addMemberVideoPane",
911
1062
  value: function () {
912
- var _addMemberVideoPane = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(newPane) {
1063
+ var _addMemberVideoPane = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(newPane) {
913
1064
  var _this$currentLayout5;
914
1065
  var receiveSlot, remoteMedia;
915
- return _regenerator.default.wrap(function _callee7$(_context7) {
916
- while (1) switch (_context7.prev = _context7.next) {
1066
+ return _regenerator.default.wrap(function _callee8$(_context8) {
1067
+ while (1) switch (_context8.prev = _context8.next) {
917
1068
  case 0:
918
1069
  if (this.currentLayout) {
919
- _context7.next = 2;
1070
+ _context8.next = 2;
920
1071
  break;
921
1072
  }
922
1073
  throw new Error('There is no current layout selected, call start() first');
@@ -925,16 +1076,16 @@ var RemoteMediaManager = /*#__PURE__*/function (_EventsScope) {
925
1076
  this.currentLayout.memberVideoPanes = [];
926
1077
  }
927
1078
  if (!(newPane.id in this.currentLayout.memberVideoPanes)) {
928
- _context7.next = 5;
1079
+ _context8.next = 5;
929
1080
  break;
930
1081
  }
931
1082
  throw new Error("duplicate pane id ".concat(newPane.id, " - this pane already exists in current layout's memberVideoPanes"));
932
1083
  case 5:
933
1084
  this.currentLayout.memberVideoPanes.push(newPane);
934
- _context7.next = 8;
1085
+ _context8.next = 8;
935
1086
  return this.receiveSlotManager.allocateSlot(_internalMediaCore.MediaType.VideoMain);
936
1087
  case 8:
937
- receiveSlot = _context7.sent;
1088
+ receiveSlot = _context8.sent;
938
1089
  this.slots.video.receiverSelected.push(receiveSlot);
939
1090
  remoteMedia = new _remoteMedia.RemoteMedia(receiveSlot, this.mediaRequestManagers.video, {
940
1091
  resolution: newPane.size
@@ -943,12 +1094,12 @@ var RemoteMediaManager = /*#__PURE__*/function (_EventsScope) {
943
1094
  remoteMedia.sendMediaRequest(newPane.csi, true);
944
1095
  }
945
1096
  this.media.video.memberPanes[newPane.id] = remoteMedia;
946
- return _context7.abrupt("return", remoteMedia);
1097
+ return _context8.abrupt("return", remoteMedia);
947
1098
  case 14:
948
1099
  case "end":
949
- return _context7.stop();
1100
+ return _context8.stop();
950
1101
  }
951
- }, _callee7, this);
1102
+ }, _callee8, this);
952
1103
  }));
953
1104
  function addMemberVideoPane(_x2) {
954
1105
  return _addMemberVideoPane.apply(this, arguments);