@webex/plugin-meetings 3.7.0 → 3.8.0

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 (351) hide show
  1. package/dist/annotation/annotation.types.d.ts +42 -0
  2. package/dist/annotation/constants.d.ts +31 -0
  3. package/dist/annotation/index.d.ts +117 -0
  4. package/dist/annotation/index.js +17 -0
  5. package/dist/annotation/index.js.map +1 -1
  6. package/dist/breakouts/breakout.d.ts +8 -0
  7. package/dist/breakouts/breakout.js +1 -1
  8. package/dist/breakouts/collection.d.ts +5 -0
  9. package/dist/breakouts/edit-lock-error.d.ts +15 -0
  10. package/dist/breakouts/events.d.ts +8 -0
  11. package/dist/breakouts/index.d.ts +5 -0
  12. package/dist/breakouts/index.js +1 -1
  13. package/dist/breakouts/request.d.ts +22 -0
  14. package/dist/breakouts/utils.d.ts +15 -0
  15. package/dist/common/browser-detection.d.ts +9 -0
  16. package/dist/common/collection.d.ts +48 -0
  17. package/dist/common/config.d.ts +2 -0
  18. package/dist/common/errors/captcha-error.d.ts +15 -0
  19. package/dist/common/errors/intent-to-join.d.ts +16 -0
  20. package/dist/common/errors/join-forbidden-error.js +52 -0
  21. package/dist/common/errors/join-forbidden-error.js.map +1 -0
  22. package/dist/common/errors/join-meeting.d.ts +17 -0
  23. package/dist/common/errors/{webinar-registration-error.js → join-webinar-error.js} +12 -12
  24. package/dist/common/errors/join-webinar-error.js.map +1 -0
  25. package/dist/common/errors/media.d.ts +15 -0
  26. package/dist/common/errors/multistream-not-supported-error.js +53 -0
  27. package/dist/common/errors/multistream-not-supported-error.js.map +1 -0
  28. package/dist/common/errors/no-meeting-info.d.ts +14 -0
  29. package/dist/common/errors/parameter.d.ts +15 -0
  30. package/dist/common/errors/password-error.d.ts +15 -0
  31. package/dist/common/errors/permission.d.ts +14 -0
  32. package/dist/common/errors/reclaim-host-role-error.js +149 -0
  33. package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
  34. package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
  35. package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
  36. package/dist/common/errors/reconnection-in-progress.js +33 -0
  37. package/dist/common/errors/reconnection-in-progress.js.map +1 -0
  38. package/dist/common/errors/reconnection.d.ts +15 -0
  39. package/dist/common/errors/stats.d.ts +15 -0
  40. package/dist/common/errors/webex-errors.d.ts +93 -0
  41. package/dist/common/errors/webex-meetings-error.d.ts +20 -0
  42. package/dist/common/events/events-scope.d.ts +17 -0
  43. package/dist/common/events/events.d.ts +12 -0
  44. package/dist/common/events/trigger-proxy.d.ts +2 -0
  45. package/dist/common/events/util.d.ts +2 -0
  46. package/dist/common/logs/logger-config.d.ts +2 -0
  47. package/dist/common/logs/logger-proxy.d.ts +2 -0
  48. package/dist/common/logs/request.d.ts +36 -0
  49. package/dist/common/queue.d.ts +34 -0
  50. package/dist/config.d.ts +72 -0
  51. package/dist/config.js +2 -1
  52. package/dist/config.js.map +1 -1
  53. package/dist/constants.d.ts +1088 -0
  54. package/dist/constants.js +68 -6
  55. package/dist/constants.js.map +1 -1
  56. package/dist/controls-options-manager/constants.d.ts +4 -0
  57. package/dist/controls-options-manager/enums.d.ts +15 -0
  58. package/dist/controls-options-manager/index.d.ts +136 -0
  59. package/dist/controls-options-manager/types.d.ts +43 -0
  60. package/dist/controls-options-manager/util.d.ts +1 -0
  61. package/dist/index.d.ts +7 -0
  62. package/dist/index.js +16 -11
  63. package/dist/index.js.map +1 -1
  64. package/dist/interceptors/index.d.ts +2 -0
  65. package/dist/interceptors/locusRetry.d.ts +27 -0
  66. package/dist/interpretation/collection.d.ts +5 -0
  67. package/dist/interpretation/index.d.ts +5 -0
  68. package/dist/interpretation/index.js +1 -1
  69. package/dist/interpretation/siLanguage.d.ts +5 -0
  70. package/dist/interpretation/siLanguage.js +1 -1
  71. package/dist/locus-info/controlsUtils.d.ts +2 -0
  72. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
  73. package/dist/locus-info/fullState.d.ts +2 -0
  74. package/dist/locus-info/hostUtils.d.ts +2 -0
  75. package/dist/locus-info/index.d.ts +322 -0
  76. package/dist/locus-info/index.js +14 -3
  77. package/dist/locus-info/index.js.map +1 -1
  78. package/dist/locus-info/infoUtils.d.ts +2 -0
  79. package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
  80. package/dist/locus-info/parser.d.ts +272 -0
  81. package/dist/locus-info/selfUtils.d.ts +2 -0
  82. package/dist/locus-info/selfUtils.js +35 -17
  83. package/dist/locus-info/selfUtils.js.map +1 -1
  84. package/dist/media/MediaConnectionAwaiter.js +1 -0
  85. package/dist/media/MediaConnectionAwaiter.js.map +1 -1
  86. package/dist/media/index.d.ts +34 -0
  87. package/dist/media/properties.d.ts +93 -0
  88. package/dist/media/properties.js +30 -16
  89. package/dist/media/properties.js.map +1 -1
  90. package/dist/media/util.d.ts +2 -0
  91. package/dist/mediaQualityMetrics/config.d.ts +241 -0
  92. package/dist/mediaQualityMetrics/config.js +502 -0
  93. package/dist/mediaQualityMetrics/config.js.map +1 -0
  94. package/dist/meeting/brbState.js +167 -0
  95. package/dist/meeting/brbState.js.map +1 -0
  96. package/dist/meeting/effectsState.js +260 -0
  97. package/dist/meeting/effectsState.js.map +1 -0
  98. package/dist/meeting/in-meeting-actions.d.ts +167 -0
  99. package/dist/meeting/in-meeting-actions.js +13 -1
  100. package/dist/meeting/in-meeting-actions.js.map +1 -1
  101. package/dist/meeting/index.d.ts +1825 -0
  102. package/dist/meeting/index.js +1331 -1051
  103. package/dist/meeting/index.js.map +1 -1
  104. package/dist/meeting/locusMediaRequest.d.ts +74 -0
  105. package/dist/meeting/locusMediaRequest.js +11 -6
  106. package/dist/meeting/locusMediaRequest.js.map +1 -1
  107. package/dist/meeting/muteState.d.ts +178 -0
  108. package/dist/meeting/muteState.js +1 -6
  109. package/dist/meeting/muteState.js.map +1 -1
  110. package/dist/meeting/request.d.ts +295 -0
  111. package/dist/meeting/request.js +51 -29
  112. package/dist/meeting/request.js.map +1 -1
  113. package/dist/meeting/request.type.d.ts +11 -0
  114. package/dist/meeting/request.type.js.map +1 -1
  115. package/dist/meeting/state.d.ts +9 -0
  116. package/dist/meeting/util.d.ts +119 -0
  117. package/dist/meeting/util.js +103 -67
  118. package/dist/meeting/util.js.map +1 -1
  119. package/dist/meeting/voicea-meeting.d.ts +16 -0
  120. package/dist/meeting-info/collection.d.ts +20 -0
  121. package/dist/meeting-info/index.d.ts +69 -0
  122. package/dist/meeting-info/meeting-info-v2.d.ts +123 -0
  123. package/dist/meeting-info/meeting-info-v2.js +115 -45
  124. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  125. package/dist/meeting-info/request.d.ts +22 -0
  126. package/dist/meeting-info/util.d.ts +2 -0
  127. package/dist/meeting-info/utilv2.d.ts +2 -0
  128. package/dist/meeting-info/utilv2.js +6 -2
  129. package/dist/meeting-info/utilv2.js.map +1 -1
  130. package/dist/meetings/collection.d.ts +40 -0
  131. package/dist/meetings/index.d.ts +390 -0
  132. package/dist/meetings/index.js +107 -55
  133. package/dist/meetings/index.js.map +1 -1
  134. package/dist/meetings/meetings.types.d.ts +4 -0
  135. package/dist/meetings/meetings.types.js +2 -0
  136. package/dist/meetings/meetings.types.js.map +1 -1
  137. package/dist/meetings/request.d.ts +27 -0
  138. package/dist/meetings/util.d.ts +18 -0
  139. package/dist/meetings/util.js +1 -1
  140. package/dist/meetings/util.js.map +1 -1
  141. package/dist/member/index.d.ts +160 -0
  142. package/dist/member/index.js +9 -0
  143. package/dist/member/index.js.map +1 -1
  144. package/dist/member/member.types.js +17 -0
  145. package/dist/member/member.types.js.map +1 -0
  146. package/dist/member/types.d.ts +32 -0
  147. package/dist/member/types.js.map +1 -1
  148. package/dist/member/util.d.ts +2 -0
  149. package/dist/member/util.js +39 -28
  150. package/dist/member/util.js.map +1 -1
  151. package/dist/members/collection.d.ts +29 -0
  152. package/dist/members/index.d.ts +353 -0
  153. package/dist/members/request.d.ts +114 -0
  154. package/dist/members/types.d.ts +25 -0
  155. package/dist/members/util.d.ts +215 -0
  156. package/dist/members/util.js +4 -2
  157. package/dist/members/util.js.map +1 -1
  158. package/dist/metrics/config.js +276 -0
  159. package/dist/metrics/config.js.map +1 -0
  160. package/dist/metrics/constants.d.ts +70 -0
  161. package/dist/metrics/constants.js +6 -1
  162. package/dist/metrics/constants.js.map +1 -1
  163. package/dist/metrics/index.d.ts +45 -0
  164. package/dist/multistream/mediaRequestManager.d.ts +119 -0
  165. package/dist/multistream/receiveSlot.d.ts +68 -0
  166. package/dist/multistream/receiveSlotManager.d.ts +56 -0
  167. package/dist/multistream/remoteMedia.d.ts +72 -0
  168. package/dist/multistream/remoteMedia.js +30 -15
  169. package/dist/multistream/remoteMedia.js.map +1 -1
  170. package/dist/multistream/remoteMediaGroup.d.ts +49 -0
  171. package/dist/multistream/remoteMediaManager.d.ts +300 -0
  172. package/dist/multistream/sendSlotManager.d.ts +69 -0
  173. package/dist/multistream/sendSlotManager.js +24 -0
  174. package/dist/multistream/sendSlotManager.js.map +1 -1
  175. package/dist/networkQualityMonitor/index.d.ts +70 -0
  176. package/dist/networkQualityMonitor/index.js +13 -19
  177. package/dist/networkQualityMonitor/index.js.map +1 -1
  178. package/dist/peer-connection-manager/index.js +671 -0
  179. package/dist/peer-connection-manager/index.js.map +1 -0
  180. package/dist/peer-connection-manager/util.js +109 -0
  181. package/dist/peer-connection-manager/util.js.map +1 -0
  182. package/dist/personal-meeting-room/index.d.ts +47 -0
  183. package/dist/personal-meeting-room/request.d.ts +14 -0
  184. package/dist/personal-meeting-room/util.d.ts +2 -0
  185. package/dist/reachability/clusterReachability.d.ts +109 -0
  186. package/dist/reachability/clusterReachability.js +12 -15
  187. package/dist/reachability/clusterReachability.js.map +1 -1
  188. package/dist/reachability/index.d.ts +105 -0
  189. package/dist/reachability/index.js +461 -136
  190. package/dist/reachability/index.js.map +1 -1
  191. package/dist/reachability/reachability.types.js +7 -0
  192. package/dist/reachability/reachability.types.js.map +1 -0
  193. package/dist/reachability/request.d.ts +39 -0
  194. package/dist/reachability/request.js +21 -8
  195. package/dist/reachability/request.js.map +1 -1
  196. package/dist/reachability/util.d.ts +8 -0
  197. package/dist/reactions/constants.d.ts +3 -0
  198. package/dist/reactions/reactions.d.ts +4 -0
  199. package/dist/reactions/reactions.type.d.ts +52 -0
  200. package/dist/reconnection-manager/index.d.ts +136 -0
  201. package/dist/recording-controller/enums.d.ts +7 -0
  202. package/dist/recording-controller/enums.js +8 -4
  203. package/dist/recording-controller/enums.js.map +1 -1
  204. package/dist/recording-controller/index.d.ts +207 -0
  205. package/dist/recording-controller/index.js +18 -9
  206. package/dist/recording-controller/index.js.map +1 -1
  207. package/dist/recording-controller/util.d.ts +14 -0
  208. package/dist/recording-controller/util.js +13 -9
  209. package/dist/recording-controller/util.js.map +1 -1
  210. package/dist/roap/collection.js +62 -0
  211. package/dist/roap/collection.js.map +1 -0
  212. package/dist/roap/handler.js +275 -0
  213. package/dist/roap/handler.js.map +1 -0
  214. package/dist/roap/index.d.ts +86 -0
  215. package/dist/roap/index.js +15 -15
  216. package/dist/roap/index.js.map +1 -1
  217. package/dist/roap/request.d.ts +39 -0
  218. package/dist/roap/request.js +45 -79
  219. package/dist/roap/request.js.map +1 -1
  220. package/dist/roap/state.js +126 -0
  221. package/dist/roap/state.js.map +1 -0
  222. package/dist/roap/turnDiscovery.d.ts +155 -0
  223. package/dist/roap/turnDiscovery.js +3 -6
  224. package/dist/roap/turnDiscovery.js.map +1 -1
  225. package/dist/roap/util.js +75 -0
  226. package/dist/roap/util.js.map +1 -0
  227. package/dist/rtcMetrics/constants.d.ts +4 -0
  228. package/dist/rtcMetrics/index.d.ts +61 -0
  229. package/dist/statsAnalyzer/global.d.ts +36 -0
  230. package/dist/statsAnalyzer/global.js +126 -0
  231. package/dist/statsAnalyzer/global.js.map +1 -0
  232. package/dist/statsAnalyzer/index.d.ts +217 -0
  233. package/dist/statsAnalyzer/index.js +1013 -0
  234. package/dist/statsAnalyzer/index.js.map +1 -0
  235. package/dist/statsAnalyzer/mqaUtil.d.ts +48 -0
  236. package/dist/statsAnalyzer/mqaUtil.js +179 -0
  237. package/dist/statsAnalyzer/mqaUtil.js.map +1 -0
  238. package/dist/transcription/index.d.ts +64 -0
  239. package/dist/types/annotation/index.d.ts +5 -0
  240. package/dist/types/common/errors/join-forbidden-error.d.ts +15 -0
  241. package/dist/types/common/errors/{webinar-registration-error.d.ts → join-webinar-error.d.ts} +2 -2
  242. package/dist/types/common/errors/multistream-not-supported-error.d.ts +17 -0
  243. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  244. package/dist/types/config.d.ts +1 -0
  245. package/dist/types/constants.d.ts +53 -1
  246. package/dist/types/index.d.ts +3 -3
  247. package/dist/types/locus-info/index.d.ts +2 -1
  248. package/dist/types/mediaQualityMetrics/config.d.ts +241 -0
  249. package/dist/types/meeting/brbState.d.ts +54 -0
  250. package/dist/types/meeting/in-meeting-actions.d.ts +12 -0
  251. package/dist/types/meeting/index.d.ts +64 -14
  252. package/dist/types/meeting/locusMediaRequest.d.ts +6 -3
  253. package/dist/types/meeting/request.d.ts +14 -3
  254. package/dist/types/meeting/request.type.d.ts +6 -0
  255. package/dist/types/meeting/util.d.ts +3 -3
  256. package/dist/types/meeting-info/meeting-info-v2.d.ts +30 -5
  257. package/dist/types/meetings/index.d.ts +20 -2
  258. package/dist/types/meetings/meetings.types.d.ts +8 -0
  259. package/dist/types/member/index.d.ts +1 -0
  260. package/dist/types/member/types.d.ts +7 -0
  261. package/dist/types/members/util.d.ts +2 -0
  262. package/dist/types/metrics/constants.d.ts +6 -1
  263. package/dist/types/multistream/sendSlotManager.d.ts +8 -1
  264. package/dist/types/reachability/clusterReachability.d.ts +1 -10
  265. package/dist/types/reachability/index.d.ts +83 -36
  266. package/dist/types/reachability/reachability.types.d.ts +64 -0
  267. package/dist/types/reachability/request.d.ts +5 -1
  268. package/dist/types/recording-controller/enums.d.ts +5 -2
  269. package/dist/types/recording-controller/index.d.ts +1 -0
  270. package/dist/types/recording-controller/util.d.ts +2 -1
  271. package/dist/types/roap/request.d.ts +1 -13
  272. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  273. package/dist/types/statsAnalyzer/index.d.ts +217 -0
  274. package/dist/types/statsAnalyzer/mqaUtil.d.ts +48 -0
  275. package/dist/webinar/collection.d.ts +16 -0
  276. package/dist/webinar/index.d.ts +5 -0
  277. package/dist/webinar/index.js +390 -7
  278. package/dist/webinar/index.js.map +1 -1
  279. package/package.json +23 -22
  280. package/src/annotation/index.ts +16 -0
  281. package/src/common/errors/join-forbidden-error.ts +26 -0
  282. package/src/common/errors/join-webinar-error.ts +24 -0
  283. package/src/common/errors/multistream-not-supported-error.ts +30 -0
  284. package/src/config.ts +1 -0
  285. package/src/constants.ts +61 -3
  286. package/src/index.ts +5 -3
  287. package/src/locus-info/index.ts +20 -3
  288. package/src/locus-info/selfUtils.ts +24 -6
  289. package/src/media/MediaConnectionAwaiter.ts +2 -0
  290. package/src/media/properties.ts +34 -13
  291. package/src/meeting/brbState.ts +169 -0
  292. package/src/meeting/in-meeting-actions.ts +25 -0
  293. package/src/meeting/index.ts +443 -87
  294. package/src/meeting/locusMediaRequest.ts +11 -8
  295. package/src/meeting/muteState.ts +1 -6
  296. package/src/meeting/request.ts +30 -12
  297. package/src/meeting/request.type.ts +7 -0
  298. package/src/meeting/util.ts +32 -13
  299. package/src/meeting-info/meeting-info-v2.ts +83 -12
  300. package/src/meeting-info/utilv2.ts +17 -3
  301. package/src/meetings/index.ts +79 -20
  302. package/src/meetings/meetings.types.ts +10 -0
  303. package/src/meetings/util.ts +2 -1
  304. package/src/member/index.ts +9 -0
  305. package/src/member/types.ts +8 -0
  306. package/src/member/util.ts +34 -24
  307. package/src/members/util.ts +1 -0
  308. package/src/metrics/constants.ts +6 -1
  309. package/src/multistream/remoteMedia.ts +28 -15
  310. package/src/multistream/sendSlotManager.ts +31 -0
  311. package/src/reachability/clusterReachability.ts +5 -15
  312. package/src/reachability/index.ts +311 -75
  313. package/src/reachability/reachability.types.ts +85 -0
  314. package/src/reachability/request.ts +55 -31
  315. package/src/recording-controller/enums.ts +5 -2
  316. package/src/recording-controller/index.ts +17 -4
  317. package/src/recording-controller/util.ts +20 -5
  318. package/src/roap/index.ts +14 -13
  319. package/src/roap/request.ts +30 -44
  320. package/src/roap/turnDiscovery.ts +2 -4
  321. package/src/webinar/index.ts +235 -9
  322. package/test/unit/spec/annotation/index.ts +46 -1
  323. package/test/unit/spec/locus-info/index.js +292 -60
  324. package/test/unit/spec/locus-info/selfConstant.js +7 -0
  325. package/test/unit/spec/locus-info/selfUtils.js +101 -1
  326. package/test/unit/spec/media/properties.ts +15 -0
  327. package/test/unit/spec/meeting/brbState.ts +114 -0
  328. package/test/unit/spec/meeting/in-meeting-actions.ts +15 -1
  329. package/test/unit/spec/meeting/index.js +851 -107
  330. package/test/unit/spec/meeting/locusMediaRequest.ts +18 -11
  331. package/test/unit/spec/meeting/muteState.js +0 -24
  332. package/test/unit/spec/meeting/request.js +3 -26
  333. package/test/unit/spec/meeting/utils.js +73 -28
  334. package/test/unit/spec/meeting-info/meetinginfov2.js +46 -4
  335. package/test/unit/spec/meeting-info/utilv2.js +26 -0
  336. package/test/unit/spec/meetings/index.js +159 -18
  337. package/test/unit/spec/meetings/utils.js +10 -0
  338. package/test/unit/spec/member/util.js +52 -11
  339. package/test/unit/spec/members/utils.js +95 -0
  340. package/test/unit/spec/multistream/remoteMedia.ts +11 -7
  341. package/test/unit/spec/reachability/clusterReachability.ts +7 -0
  342. package/test/unit/spec/reachability/index.ts +383 -9
  343. package/test/unit/spec/reachability/request.js +48 -12
  344. package/test/unit/spec/recording-controller/index.js +61 -5
  345. package/test/unit/spec/recording-controller/util.js +39 -3
  346. package/test/unit/spec/roap/index.ts +48 -1
  347. package/test/unit/spec/roap/request.ts +51 -109
  348. package/test/unit/spec/roap/turnDiscovery.ts +202 -147
  349. package/test/unit/spec/webinar/index.ts +504 -0
  350. package/dist/common/errors/webinar-registration-error.js.map +0 -1
  351. package/src/common/errors/webinar-registration-error.ts +0 -27
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Meetings Media Codec Missing Event
3
+ * Emitted when H.264 codec is not
4
+ * found in the browser.
5
+ * @event media:codec:missing
6
+ * @instance
7
+ * @memberof MeetingsUtil
8
+ */
9
+ /**
10
+ * Meetings Media Codec Loaded Event
11
+ * Emitted when H.264 codec has been
12
+ * loaded in the browser.
13
+ * @event media:codec:loaded
14
+ * @instance
15
+ * @memberof MeetingsUtil
16
+ */
17
+ declare const MeetingsUtil: any;
18
+ export default MeetingsUtil;
@@ -82,7 +82,7 @@ MeetingsUtil.getMediaServer = function (sdp) {
82
82
  try {
83
83
  mediaServer = sdp.split('\r\n').find(function (line) {
84
84
  return line.startsWith('o=');
85
- }).split(' ').shift().replace('o=', '');
85
+ }).split(' ').shift().replace('o=', '').toLowerCase();
86
86
  } catch (_unused) {
87
87
  mediaServer = undefined;
88
88
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_loggerProxy","_interopRequireDefault","_triggerProxy","_constants2","_metrics","_meetings","MeetingsUtil","getMeetingAddedType","type","DESTINATION_TYPE","LOCUS_ID","_INCOMING_","_CREATED_","handleRoapMercury","envelope","meetingCollection","data","eventType","LOCUSEVENT","MESSAGE_ROAP","meeting","getByKey","MEETING_KEY","CORRELATION_ID","correlationId","_data$message","message","seq","messageType","tieBreaker","errorType","errorCause","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","ROAP_MERCURY_EVENT_RECEIVED","correlation_id","message_type","error_type","error_cause","ROAP","ROAP_TYPES","TURN_DISCOVERY_RESPONSE","roap","turnDiscovery","handleTurnDiscoveryResponse","_data$message$sdps","roapMessage","sdp","sdps","length","undefined","roapMessageReceived","getMediaServer","mediaServer","split","find","line","startsWith","shift","replace","_unused","checkForCorrelationId","deviceUrl","locus","devices","self","foundDevice","device","url","parseDefaultSiteFromMeetingPreferences","userPreferences","_userPreferences$site","result","sites","defaultSite","site","default","siteUrl","hasH264Codec","_asyncToGenerator2","_regenerator","mark","_callee","hasCodec","pc","offer","wrap","_callee$","_context","prev","next","window","RTCPeerConnection","createOffer","offerToReceiveVideo","sent","match","close","t0","LoggerProxy","logger","warn","abrupt","stop","checkH264Support","_checkH264Support","_callee2","options","_this","_ref2","firstChecked","disableNotifications","delay","maxDuration","shouldTrigger","shouldStopChecking","_callee2$","_context2","_now","Trigger","trigger","file","function","EVENT_TRIGGERS","MEDIA_CODEC_LOADED","log","error","MEDIA_CODEC_MISSING","setTimeout","timestamp","call","_x","apply","arguments","getThisDevice","newLocus","_newLocus$self","_newLocus$self$device","joinedOnThisDevice","thisDevice","state","_JOINED_","_LEFT_","reason","_MOVED_","isBreakoutLocusDTO","_newLocus$controls","_newLocus$controls$br","controls","breakout","sessionType","BREAKOUTS","SESSION_TYPES","BREAKOUT","isValidBreakoutLocus","_locus$fullState","_locus$self","inActiveStatus","fullState","LOCUS","STATE","INACTIVE","isLocusAsBreakout","selfJoined","_default","exports"],"sources":["util.ts"],"sourcesContent":["/* globals window */\n\nimport {\n _CREATED_,\n _INCOMING_,\n _JOINED_,\n _LEFT_,\n DESTINATION_TYPE,\n _MOVED_,\n BREAKOUTS,\n EVENT_TRIGGERS,\n LOCUS,\n LOCUSEVENT,\n ROAP,\n} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport Trigger from '../common/events/trigger-proxy';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\nimport Metrics from '../metrics';\nimport {MEETING_KEY} from './meetings.types';\n\n/**\n * Meetings Media Codec Missing Event\n * Emitted when H.264 codec is not\n * found in the browser.\n * @event media:codec:missing\n * @instance\n * @memberof MeetingsUtil\n */\n\n/**\n * Meetings Media Codec Loaded Event\n * Emitted when H.264 codec has been\n * loaded in the browser.\n * @event media:codec:loaded\n * @instance\n * @memberof MeetingsUtil\n */\n\nconst MeetingsUtil: any = {};\n\nMeetingsUtil.getMeetingAddedType = (type: DESTINATION_TYPE) =>\n type === DESTINATION_TYPE.LOCUS_ID ? _INCOMING_ : _CREATED_;\n\nMeetingsUtil.handleRoapMercury = (envelope, meetingCollection) => {\n const {data} = envelope;\n const {eventType} = data;\n\n if (eventType === LOCUSEVENT.MESSAGE_ROAP) {\n const meeting = meetingCollection.getByKey(MEETING_KEY.CORRELATION_ID, data.correlationId);\n\n if (meeting) {\n const {seq, messageType, tieBreaker, errorType, errorCause} = data.message;\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ROAP_MERCURY_EVENT_RECEIVED, {\n correlation_id: data.correlationId,\n seq,\n message_type: messageType,\n error_type: errorType,\n error_cause: errorCause,\n });\n\n if (messageType === ROAP.ROAP_TYPES.TURN_DISCOVERY_RESPONSE) {\n // turn discovery is not part of normal roap protocol and so we are not handling it\n // through the usual roap state machine\n meeting.roap.turnDiscovery.handleTurnDiscoveryResponse(data.message, 'from mercury');\n } else {\n const roapMessage = {\n seq,\n messageType,\n sdp: data.message.sdps?.length > 0 ? data.message.sdps[0] : undefined,\n tieBreaker,\n errorType,\n errorCause,\n };\n\n meeting.roapMessageReceived(roapMessage);\n }\n }\n }\n};\n\nMeetingsUtil.getMediaServer = (sdp) => {\n let mediaServer;\n\n // Attempt to collect the media server from the roap message.\n try {\n mediaServer = sdp\n .split('\\r\\n')\n .find((line) => line.startsWith('o='))\n .split(' ')\n .shift()\n .replace('o=', '');\n } catch {\n mediaServer = undefined;\n }\n\n return mediaServer;\n};\n\nMeetingsUtil.checkForCorrelationId = (deviceUrl, locus) => {\n let devices = [];\n\n if (locus) {\n if (locus && locus.self && locus.self.devices) {\n devices = locus.self.devices;\n }\n\n const foundDevice = devices.find((device) => device.url === deviceUrl);\n\n if (foundDevice && foundDevice.correlationId) {\n return foundDevice.correlationId;\n }\n }\n\n return false;\n};\n\nMeetingsUtil.parseDefaultSiteFromMeetingPreferences = (userPreferences) => {\n let result = '';\n\n if (userPreferences?.sites?.length) {\n const defaultSite = userPreferences.sites.find((site) => site.default);\n\n if (defaultSite) {\n result = defaultSite.siteUrl;\n } else {\n result = userPreferences.sites[0].siteUrl;\n }\n }\n\n return result;\n};\n\n/**\n * Will check to see if the H.264 media codec is supported.\n * @async\n * @private\n * @returns {Promise<boolean>}\n */\nMeetingsUtil.hasH264Codec = async () => {\n let hasCodec = false;\n\n try {\n const pc = new window.RTCPeerConnection();\n const offer = await pc.createOffer({offerToReceiveVideo: true});\n\n if (offer.sdp.match(/^a=rtpmap:\\d+\\s+H264\\/\\d+/m)) {\n hasCodec = true;\n }\n pc.close();\n } catch (error) {\n LoggerProxy.logger.warn(\n 'Meetings:util#hasH264Codec --> Error creating peerConnection for H.264 test.'\n );\n }\n\n return hasCodec;\n};\n\n/**\n * Notifies the user whether or not the H.264\n * codec is present. Will continuously check\n * until max duration.\n * @async\n * @private\n * @param {object} options\n * @param {Number} options.firstChecked Timestamp in milliseconds\n * @param {boolean} options.disableNotifications Default is false. Boolean to enable/disable notification and events\n * @returns {undefined}\n */\nMeetingsUtil.checkH264Support = async function checkH264Support(options: {\n firstChecked: number;\n disableNotifications: boolean;\n}) {\n const {hasH264Codec} = MeetingsUtil;\n const {firstChecked, disableNotifications} = options || {};\n const delay = 5e3; // ms\n const maxDuration = 3e5; // ms\n const shouldTrigger = firstChecked === undefined;\n const shouldStopChecking = firstChecked && Date.now() - firstChecked >= maxDuration;\n\n // Disable notifications and start H.264 download only\n if (disableNotifications) {\n hasH264Codec();\n\n return;\n }\n\n // Codec loaded trigger event notification\n if (await hasH264Codec()) {\n Trigger.trigger(\n this,\n {\n file: 'meetings/util',\n function: 'checkH264Support',\n },\n EVENT_TRIGGERS.MEDIA_CODEC_LOADED\n );\n LoggerProxy.logger.log('Meetings:util#checkH264Support --> H264 codec loaded successfully.');\n\n return;\n }\n\n // Stop checking if past the timelimit\n if (shouldStopChecking) {\n LoggerProxy.logger.error(\n 'Meetings:util#checkH264Support --> Timed out waiting for H264 codec to load.'\n );\n\n return;\n }\n\n // Trigger only once\n if (shouldTrigger) {\n Trigger.trigger(\n this,\n {\n file: 'meetings/util',\n function: 'checkH264Support',\n },\n EVENT_TRIGGERS.MEDIA_CODEC_MISSING\n );\n LoggerProxy.logger.log('Meetings:util#checkH264Support --> H264 codec is missing.');\n }\n\n // Keep checking in intervals to see if codec loaded\n window.setTimeout(() => {\n const timestamp = firstChecked || Date.now();\n\n MeetingsUtil.checkH264Support.call(this, {firstChecked: timestamp});\n }, delay);\n};\n\n/**\n * get device from locus data\n * @param {Object} newLocus new locus data\n * @param {String} deviceUrl current device url\n * @returns {Object}\n */\nMeetingsUtil.getThisDevice = (newLocus: any, deviceUrl: string) => {\n if (newLocus?.self?.devices?.length > 0) {\n return newLocus.self.devices.find((device) => device.url === deviceUrl);\n }\n\n return null;\n};\n\n/**\n * get self device joined status from locus data\n * @param {Object} meeting current meeting data\n * @param {Object} newLocus new locus data\n * @param {String} deviceUrl current device url\n * @returns {Object}\n */\nMeetingsUtil.joinedOnThisDevice = (meeting: any, newLocus: any, deviceUrl: string) => {\n const thisDevice = MeetingsUtil.getThisDevice(newLocus, deviceUrl);\n if (thisDevice) {\n if (!thisDevice.correlationId || meeting?.correlationId === thisDevice.correlationId) {\n return (\n thisDevice.state === _JOINED_ ||\n (thisDevice.state === _LEFT_ && thisDevice.reason === _MOVED_)\n );\n }\n }\n\n return false;\n};\n\n/**\n * check the new locus is breakout session's one or not\n * @param {Object} newLocus new locus data\n * @returns {boolean}\n * @private\n */\nMeetingsUtil.isBreakoutLocusDTO = (newLocus: any) => {\n return newLocus?.controls?.breakout?.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT;\n};\n\n/**\n * check the locus is valid breakout locus or not\n * @param {Object} locus\n * @returns {boolean}\n * @private\n */\nMeetingsUtil.isValidBreakoutLocus = (locus: any) => {\n const inActiveStatus = locus?.fullState?.state === LOCUS.STATE.INACTIVE;\n const isLocusAsBreakout = MeetingsUtil.isBreakoutLocusDTO(locus);\n const selfJoined = locus.self?.state === _JOINED_;\n\n return isLocusAsBreakout && !inActiveStatus && selfJoined;\n};\nexport default MeetingsUtil;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_constants","require","_loggerProxy","_interopRequireDefault","_triggerProxy","_constants2","_metrics","_meetings","MeetingsUtil","getMeetingAddedType","type","DESTINATION_TYPE","LOCUS_ID","_INCOMING_","_CREATED_","handleRoapMercury","envelope","meetingCollection","data","eventType","LOCUSEVENT","MESSAGE_ROAP","meeting","getByKey","MEETING_KEY","CORRELATION_ID","correlationId","_data$message","message","seq","messageType","tieBreaker","errorType","errorCause","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","ROAP_MERCURY_EVENT_RECEIVED","correlation_id","message_type","error_type","error_cause","ROAP","ROAP_TYPES","TURN_DISCOVERY_RESPONSE","roap","turnDiscovery","handleTurnDiscoveryResponse","_data$message$sdps","roapMessage","sdp","sdps","length","undefined","roapMessageReceived","getMediaServer","mediaServer","split","find","line","startsWith","shift","replace","toLowerCase","_unused","checkForCorrelationId","deviceUrl","locus","devices","self","foundDevice","device","url","parseDefaultSiteFromMeetingPreferences","userPreferences","_userPreferences$site","result","sites","defaultSite","site","default","siteUrl","hasH264Codec","_asyncToGenerator2","_regenerator","mark","_callee","hasCodec","pc","offer","wrap","_callee$","_context","prev","next","window","RTCPeerConnection","createOffer","offerToReceiveVideo","sent","match","close","t0","LoggerProxy","logger","warn","abrupt","stop","checkH264Support","_checkH264Support","_callee2","options","_this","_ref2","firstChecked","disableNotifications","delay","maxDuration","shouldTrigger","shouldStopChecking","_callee2$","_context2","_now","Trigger","trigger","file","function","EVENT_TRIGGERS","MEDIA_CODEC_LOADED","log","error","MEDIA_CODEC_MISSING","setTimeout","timestamp","call","_x","apply","arguments","getThisDevice","newLocus","_newLocus$self","_newLocus$self$device","joinedOnThisDevice","thisDevice","state","_JOINED_","_LEFT_","reason","_MOVED_","isBreakoutLocusDTO","_newLocus$controls","_newLocus$controls$br","controls","breakout","sessionType","BREAKOUTS","SESSION_TYPES","BREAKOUT","isValidBreakoutLocus","_locus$fullState","_locus$self","inActiveStatus","fullState","LOCUS","STATE","INACTIVE","isLocusAsBreakout","selfJoined","_default","exports"],"sources":["util.ts"],"sourcesContent":["/* globals window */\n\nimport {\n _CREATED_,\n _INCOMING_,\n _JOINED_,\n _LEFT_,\n DESTINATION_TYPE,\n _MOVED_,\n BREAKOUTS,\n EVENT_TRIGGERS,\n LOCUS,\n LOCUSEVENT,\n ROAP,\n} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport Trigger from '../common/events/trigger-proxy';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\nimport Metrics from '../metrics';\nimport {MEETING_KEY} from './meetings.types';\n\n/**\n * Meetings Media Codec Missing Event\n * Emitted when H.264 codec is not\n * found in the browser.\n * @event media:codec:missing\n * @instance\n * @memberof MeetingsUtil\n */\n\n/**\n * Meetings Media Codec Loaded Event\n * Emitted when H.264 codec has been\n * loaded in the browser.\n * @event media:codec:loaded\n * @instance\n * @memberof MeetingsUtil\n */\n\nconst MeetingsUtil: any = {};\n\nMeetingsUtil.getMeetingAddedType = (type: DESTINATION_TYPE) =>\n type === DESTINATION_TYPE.LOCUS_ID ? _INCOMING_ : _CREATED_;\n\nMeetingsUtil.handleRoapMercury = (envelope, meetingCollection) => {\n const {data} = envelope;\n const {eventType} = data;\n\n if (eventType === LOCUSEVENT.MESSAGE_ROAP) {\n const meeting = meetingCollection.getByKey(MEETING_KEY.CORRELATION_ID, data.correlationId);\n\n if (meeting) {\n const {seq, messageType, tieBreaker, errorType, errorCause} = data.message;\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ROAP_MERCURY_EVENT_RECEIVED, {\n correlation_id: data.correlationId,\n seq,\n message_type: messageType,\n error_type: errorType,\n error_cause: errorCause,\n });\n\n if (messageType === ROAP.ROAP_TYPES.TURN_DISCOVERY_RESPONSE) {\n // turn discovery is not part of normal roap protocol and so we are not handling it\n // through the usual roap state machine\n meeting.roap.turnDiscovery.handleTurnDiscoveryResponse(data.message, 'from mercury');\n } else {\n const roapMessage = {\n seq,\n messageType,\n sdp: data.message.sdps?.length > 0 ? data.message.sdps[0] : undefined,\n tieBreaker,\n errorType,\n errorCause,\n };\n\n meeting.roapMessageReceived(roapMessage);\n }\n }\n }\n};\n\nMeetingsUtil.getMediaServer = (sdp) => {\n let mediaServer;\n\n // Attempt to collect the media server from the roap message.\n try {\n mediaServer = sdp\n .split('\\r\\n')\n .find((line) => line.startsWith('o='))\n .split(' ')\n .shift()\n .replace('o=', '')\n .toLowerCase();\n } catch {\n mediaServer = undefined;\n }\n\n return mediaServer;\n};\n\nMeetingsUtil.checkForCorrelationId = (deviceUrl, locus) => {\n let devices = [];\n\n if (locus) {\n if (locus && locus.self && locus.self.devices) {\n devices = locus.self.devices;\n }\n\n const foundDevice = devices.find((device) => device.url === deviceUrl);\n\n if (foundDevice && foundDevice.correlationId) {\n return foundDevice.correlationId;\n }\n }\n\n return false;\n};\n\nMeetingsUtil.parseDefaultSiteFromMeetingPreferences = (userPreferences) => {\n let result = '';\n\n if (userPreferences?.sites?.length) {\n const defaultSite = userPreferences.sites.find((site) => site.default);\n\n if (defaultSite) {\n result = defaultSite.siteUrl;\n } else {\n result = userPreferences.sites[0].siteUrl;\n }\n }\n\n return result;\n};\n\n/**\n * Will check to see if the H.264 media codec is supported.\n * @async\n * @private\n * @returns {Promise<boolean>}\n */\nMeetingsUtil.hasH264Codec = async () => {\n let hasCodec = false;\n\n try {\n const pc = new window.RTCPeerConnection();\n const offer = await pc.createOffer({offerToReceiveVideo: true});\n\n if (offer.sdp.match(/^a=rtpmap:\\d+\\s+H264\\/\\d+/m)) {\n hasCodec = true;\n }\n pc.close();\n } catch (error) {\n LoggerProxy.logger.warn(\n 'Meetings:util#hasH264Codec --> Error creating peerConnection for H.264 test.'\n );\n }\n\n return hasCodec;\n};\n\n/**\n * Notifies the user whether or not the H.264\n * codec is present. Will continuously check\n * until max duration.\n * @async\n * @private\n * @param {object} options\n * @param {Number} options.firstChecked Timestamp in milliseconds\n * @param {boolean} options.disableNotifications Default is false. Boolean to enable/disable notification and events\n * @returns {undefined}\n */\nMeetingsUtil.checkH264Support = async function checkH264Support(options: {\n firstChecked: number;\n disableNotifications: boolean;\n}) {\n const {hasH264Codec} = MeetingsUtil;\n const {firstChecked, disableNotifications} = options || {};\n const delay = 5e3; // ms\n const maxDuration = 3e5; // ms\n const shouldTrigger = firstChecked === undefined;\n const shouldStopChecking = firstChecked && Date.now() - firstChecked >= maxDuration;\n\n // Disable notifications and start H.264 download only\n if (disableNotifications) {\n hasH264Codec();\n\n return;\n }\n\n // Codec loaded trigger event notification\n if (await hasH264Codec()) {\n Trigger.trigger(\n this,\n {\n file: 'meetings/util',\n function: 'checkH264Support',\n },\n EVENT_TRIGGERS.MEDIA_CODEC_LOADED\n );\n LoggerProxy.logger.log('Meetings:util#checkH264Support --> H264 codec loaded successfully.');\n\n return;\n }\n\n // Stop checking if past the timelimit\n if (shouldStopChecking) {\n LoggerProxy.logger.error(\n 'Meetings:util#checkH264Support --> Timed out waiting for H264 codec to load.'\n );\n\n return;\n }\n\n // Trigger only once\n if (shouldTrigger) {\n Trigger.trigger(\n this,\n {\n file: 'meetings/util',\n function: 'checkH264Support',\n },\n EVENT_TRIGGERS.MEDIA_CODEC_MISSING\n );\n LoggerProxy.logger.log('Meetings:util#checkH264Support --> H264 codec is missing.');\n }\n\n // Keep checking in intervals to see if codec loaded\n window.setTimeout(() => {\n const timestamp = firstChecked || Date.now();\n\n MeetingsUtil.checkH264Support.call(this, {firstChecked: timestamp});\n }, delay);\n};\n\n/**\n * get device from locus data\n * @param {Object} newLocus new locus data\n * @param {String} deviceUrl current device url\n * @returns {Object}\n */\nMeetingsUtil.getThisDevice = (newLocus: any, deviceUrl: string) => {\n if (newLocus?.self?.devices?.length > 0) {\n return newLocus.self.devices.find((device) => device.url === deviceUrl);\n }\n\n return null;\n};\n\n/**\n * get self device joined status from locus data\n * @param {Object} meeting current meeting data\n * @param {Object} newLocus new locus data\n * @param {String} deviceUrl current device url\n * @returns {Object}\n */\nMeetingsUtil.joinedOnThisDevice = (meeting: any, newLocus: any, deviceUrl: string) => {\n const thisDevice = MeetingsUtil.getThisDevice(newLocus, deviceUrl);\n if (thisDevice) {\n if (!thisDevice.correlationId || meeting?.correlationId === thisDevice.correlationId) {\n return (\n thisDevice.state === _JOINED_ ||\n (thisDevice.state === _LEFT_ && thisDevice.reason === _MOVED_)\n );\n }\n }\n\n return false;\n};\n\n/**\n * check the new locus is breakout session's one or not\n * @param {Object} newLocus new locus data\n * @returns {boolean}\n * @private\n */\nMeetingsUtil.isBreakoutLocusDTO = (newLocus: any) => {\n return newLocus?.controls?.breakout?.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT;\n};\n\n/**\n * check the locus is valid breakout locus or not\n * @param {Object} locus\n * @returns {boolean}\n * @private\n */\nMeetingsUtil.isValidBreakoutLocus = (locus: any) => {\n const inActiveStatus = locus?.fullState?.state === LOCUS.STATE.INACTIVE;\n const isLocusAsBreakout = MeetingsUtil.isBreakoutLocusDTO(locus);\n const selfJoined = locus.self?.state === _JOINED_;\n\n return isLocusAsBreakout && !inActiveStatus && selfJoined;\n};\nexport default MeetingsUtil;\n"],"mappings":"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"}
@@ -0,0 +1,160 @@
1
+ import { IExternalRoles, IMediaStatus } from './types';
2
+ /**
3
+ * @class Member
4
+ */
5
+ export default class Member {
6
+ associatedUser: any;
7
+ canReclaimHost: boolean;
8
+ id: any;
9
+ isAudioMuted: any;
10
+ isContentSharing: any;
11
+ isDevice: any;
12
+ isGuest: any;
13
+ isHandRaised: any;
14
+ isHost: any;
15
+ isInLobby: any;
16
+ isInMeeting: any;
17
+ isModerator: any;
18
+ isModeratorAssignmentProhibited: any;
19
+ isMutable: any;
20
+ isNotAdmitted: any;
21
+ isRecording: any;
22
+ isRemovable: any;
23
+ isSelf: any;
24
+ isUser: any;
25
+ isVideoMuted: any;
26
+ roles: IExternalRoles;
27
+ mediaStatus: IMediaStatus;
28
+ name: any;
29
+ participant: any;
30
+ status: any;
31
+ supportsBreakouts: boolean;
32
+ supportsInterpretation: boolean;
33
+ supportLiveAnnotation: boolean;
34
+ type: any;
35
+ namespace: string;
36
+ /**
37
+ * @param {Object} participant - the locus participant
38
+ * @param {Object} [options] - constructor params
39
+ * @param {String} options.selfId
40
+ * @param {String} options.hostId
41
+ * @param {String} options.contentSharingId
42
+ * @param {String} options.type
43
+ * @returns {Member}
44
+ * @memberof Member
45
+ */
46
+ constructor(participant: object, options?: {
47
+ selfId: string;
48
+ hostId: string;
49
+ contentSharingId: string;
50
+ type: string;
51
+ } | any);
52
+ /**
53
+ * set all the participant values extracted directly from locus participant
54
+ * @param {Object} participant the locus participant object
55
+ * @returns {undefined}
56
+ * @private
57
+ * @memberof Member
58
+ */
59
+ private processParticipant;
60
+ /**
61
+ * Use the members options and participant values to set on the member
62
+ * @param {Object} participant the locus participant object
63
+ * @param {Object} options the passed in options, what was set on members
64
+ * @returns {undefined}
65
+ * @private
66
+ * @memberof Member
67
+ */
68
+ private processParticipantOptions;
69
+ /**
70
+ * processes what already exists on the member to determine other info about the member
71
+ * @returns {undefined}
72
+ * @private
73
+ * @memberof Member
74
+ */
75
+ private processMember;
76
+ /**
77
+ * set the status on member object
78
+ * @param {Object} participant the locus participant object
79
+ * @returns {undefined}
80
+ * @private
81
+ * @memberof Member
82
+ */
83
+ private processStatus;
84
+ /**
85
+ * set the isContentSharing on member
86
+ * @param {Boolean} flag
87
+ * @returns {undefined}
88
+ * @public
89
+ * @memberof Member
90
+ */
91
+ setIsContentSharing(flag: boolean): void;
92
+ /**
93
+ * set the isHost on member
94
+ * @param {Boolean} flag
95
+ * @returns {undefined}
96
+ * @public
97
+ * @memberof Member
98
+ */
99
+ setIsHost(flag: boolean): void;
100
+ /**
101
+ * set the isSelf on member
102
+ * @param {Boolean} flag
103
+ * @returns {undefined}
104
+ * @public
105
+ * @memberof Member
106
+ */
107
+ setIsSelf(flag: boolean): void;
108
+ /**
109
+ * determine if this member is content sharing
110
+ * @param {Object} participant
111
+ * @param {String} sharingId
112
+ * @returns {undefined}
113
+ * @public
114
+ * @memberof Member
115
+ */
116
+ processIsContentSharing(participant: object, sharingId: string): void;
117
+ /**
118
+ * Determine if this member is recording
119
+ * @param {Object} participant
120
+ * @param {String} recordingId
121
+ * @returns {undefined}
122
+ * @public
123
+ * @memberof Member
124
+ */
125
+ processIsRecording(participant: object, recordingId: string): void;
126
+ /**
127
+ * determine if this member is the self
128
+ * @param {Object} participant
129
+ * @param {String} selfId
130
+ * @returns {undefined}
131
+ * @private
132
+ * @memberof Member
133
+ */
134
+ private processIsSelf;
135
+ /**
136
+ * determine if this member is the host
137
+ * @param {Object} participant
138
+ * @param {String} hostId
139
+ * @returns {undefined}
140
+ * @private
141
+ * @memberof Member
142
+ */
143
+ private processIsHost;
144
+ /**
145
+ * process the roles that have been applied to this member
146
+ * @param {Object} participant
147
+ * @returns {undefined}
148
+ * @private
149
+ * @memberof Member
150
+ */
151
+ private processRoles;
152
+ /**
153
+ * set the type for the member, could be MEETING or CALL
154
+ * @param {String} type
155
+ * @returns {undefined}
156
+ * @private
157
+ * @memberof Member
158
+ */
159
+ private processType;
160
+ }
@@ -49,6 +49,7 @@ var Member = exports.default = /*#__PURE__*/function () {
49
49
  (0, _defineProperty2.default)(this, "isRecording", void 0);
50
50
  (0, _defineProperty2.default)(this, "isRemovable", void 0);
51
51
  (0, _defineProperty2.default)(this, "isSelf", void 0);
52
+ (0, _defineProperty2.default)(this, "isBrb", void 0);
52
53
  (0, _defineProperty2.default)(this, "isUser", void 0);
53
54
  (0, _defineProperty2.default)(this, "isVideoMuted", void 0);
54
55
  (0, _defineProperty2.default)(this, "roles", void 0);
@@ -226,6 +227,13 @@ var Member = exports.default = /*#__PURE__*/function () {
226
227
  * @memberof Member
227
228
  */
228
229
  this.isRemovable = null;
230
+ /**
231
+ * @instance
232
+ * @type {Boolean}
233
+ * @public
234
+ * @memberof Member
235
+ */
236
+ this.isBrb = false;
229
237
  /**
230
238
  * @instance
231
239
  * @type {String}
@@ -296,6 +304,7 @@ var Member = exports.default = /*#__PURE__*/function () {
296
304
  this.supportsInterpretation = _util.default.isInterpretationSupported(participant);
297
305
  this.supportLiveAnnotation = _util.default.isLiveAnnotationSupported(participant);
298
306
  this.isGuest = _util.default.isGuest(participant);
307
+ this.isBrb = _util.default.isBrb(participant);
299
308
  this.isUser = _util.default.isUser(participant);
300
309
  this.isDevice = _util.default.isDevice(participant);
301
310
  this.isModerator = _util.default.isModerator(participant);
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_util","_interopRequireDefault","Member","exports","default","participant","options","arguments","length","undefined","_classCallCheck2","_defineProperty2","MEETINGS","canReclaimHost","id","name","isAudioMuted","isVideoMuted","isHandRaised","supportsBreakouts","supportLiveAnnotation","isSelf","isHost","isGuest","isInLobby","isInMeeting","isNotAdmitted","isContentSharing","status","isDevice","isUser","associatedUser","isRecording","isMutable","isRemovable","type","isModerator","isModeratorAssignmentProhibited","roles","mediaStatus","audio","video","processParticipant","processParticipantOptions","processMember","_createClass2","key","value","MemberUtil","extractId","extractName","isBreakoutsSupported","supportsInterpretation","isInterpretationSupported","isLiveAnnotationSupported","processStatus","processRoles","processIsSelf","selfId","processIsHost","hostId","processIsContentSharing","contentSharingId","processType","processIsRecording","recordingId","extractMediaStatus","extractStatus","_IN_LOBBY_","_IN_MEETING_","_NOT_IN_MEETING_","setIsContentSharing","flag","setIsHost","setIsSelf","sharingId","isSame","isAssociatedSame","extractControlRoles"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport {MEETINGS, _IN_LOBBY_, _NOT_IN_MEETING_, _IN_MEETING_} from '../constants';\nimport {IExternalRoles, IMediaStatus, ParticipantWithRoles} from './types';\n\nimport MemberUtil from './util';\n\n/**\n * @class Member\n */\nexport default class Member {\n associatedUser: any;\n canReclaimHost: boolean;\n id: any;\n isAudioMuted: any;\n isContentSharing: any;\n isDevice: any;\n isGuest: any;\n isHandRaised: any;\n isHost: any;\n isInLobby: any;\n isInMeeting: any;\n isModerator: any;\n isModeratorAssignmentProhibited: any;\n isMutable: any;\n isNotAdmitted: any;\n isRecording: any;\n isRemovable: any;\n isSelf: any;\n isUser: any;\n isVideoMuted: any;\n roles: IExternalRoles;\n mediaStatus: IMediaStatus;\n name: any;\n participant: any;\n status: any;\n supportsBreakouts: boolean;\n supportsInterpretation: boolean;\n supportLiveAnnotation: boolean;\n type: any;\n namespace = MEETINGS;\n\n /**\n * @param {Object} participant - the locus participant\n * @param {Object} [options] - constructor params\n * @param {String} options.selfId\n * @param {String} options.hostId\n * @param {String} options.contentSharingId\n * @param {String} options.type\n * @returns {Member}\n * @memberof Member\n */\n constructor(\n participant: object,\n options:\n | {\n selfId: string;\n hostId: string;\n contentSharingId: string;\n type: string;\n }\n | any = {}\n ) {\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.canReclaimHost = false;\n /**\n * The server participant object\n * @instance\n * @type {Object}\n * @private\n * @memberof Member\n */\n this.participant = null;\n /**\n * The member id\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.id = null;\n /**\n * The member name\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.name = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isAudioMuted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isVideoMuted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isHandRaised = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.supportsBreakouts = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.supportLiveAnnotation = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isSelf = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isHost = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isGuest = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isInLobby = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isInMeeting = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isNotAdmitted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isContentSharing = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.status = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isDevice = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isUser = null;\n /**\n * Is this member associated to another user by way of pairing (typical of devices)\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.associatedUser = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isRecording = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isMutable = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isRemovable = null;\n /**\n * @instance\n * @type {String}\n * @private\n * @memberof Member\n */\n this.type = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isModerator = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isModeratorAssignmentProhibited = null;\n\n /**\n * @instance\n * @type {IExternalRoles}\n * @public\n * @memberof Member\n */\n this.roles = null;\n\n /**\n * @instance\n * @type {IMediaStatus}\n * @public\n * @memberof Member\n * @example {audio: MediaStatus.RECVONLY, video: MediaStatus.SENDRECV}\n */\n this.mediaStatus = {\n audio: null,\n video: null,\n };\n // TODO: more participant types\n // such as native client, web client, is a device, what type of phone, etc\n this.processParticipant(participant);\n this.processParticipantOptions(participant, options);\n this.processMember();\n }\n\n /**\n * set all the participant values extracted directly from locus participant\n * @param {Object} participant the locus participant object\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processParticipant(participant: object) {\n this.participant = participant;\n if (participant) {\n this.canReclaimHost = MemberUtil.canReclaimHost(participant);\n this.id = MemberUtil.extractId(participant);\n this.name = MemberUtil.extractName(participant);\n this.isAudioMuted = MemberUtil.isAudioMuted(participant);\n this.isVideoMuted = MemberUtil.isVideoMuted(participant);\n this.isHandRaised = MemberUtil.isHandRaised(participant);\n this.supportsBreakouts = MemberUtil.isBreakoutsSupported(participant);\n this.supportsInterpretation = MemberUtil.isInterpretationSupported(participant);\n this.supportLiveAnnotation = MemberUtil.isLiveAnnotationSupported(participant);\n this.isGuest = MemberUtil.isGuest(participant);\n this.isUser = MemberUtil.isUser(participant);\n this.isDevice = MemberUtil.isDevice(participant);\n this.isModerator = MemberUtil.isModerator(participant);\n this.isModeratorAssignmentProhibited =\n MemberUtil.isModeratorAssignmentProhibited(participant);\n this.processStatus(participant);\n this.processRoles(participant as ParticipantWithRoles);\n // must be done last\n this.isNotAdmitted = MemberUtil.isNotAdmitted(participant, this.isGuest, this.status);\n }\n }\n\n /**\n * Use the members options and participant values to set on the member\n * @param {Object} participant the locus participant object\n * @param {Object} options the passed in options, what was set on members\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processParticipantOptions(participant: object, options: any) {\n if (participant && options) {\n this.processIsSelf(participant, options.selfId);\n this.processIsHost(participant, options.hostId);\n this.processIsContentSharing(participant, options.contentSharingId);\n this.processType(options.type);\n this.processIsRecording(participant, options.recordingId);\n }\n }\n\n /**\n * processes what already exists on the member to determine other info about the member\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processMember() {\n // must occur after self, guest, meeting, and type properties are calculated\n this.isRemovable = MemberUtil.isRemovable(\n this.isSelf,\n this.isGuest,\n this.isInMeeting,\n this.type\n );\n // must occur after self, device, meeting, mute status, and type properties are calculated\n this.isMutable = MemberUtil.isMutable(\n this.isSelf,\n this.isDevice,\n this.isInMeeting,\n this.isAudioMuted,\n this.type\n );\n\n this.mediaStatus = MemberUtil.extractMediaStatus(this.participant);\n }\n\n /**\n * set the status on member object\n * @param {Object} participant the locus participant object\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processStatus(participant: object) {\n this.status = MemberUtil.extractStatus(participant);\n switch (this.status) {\n case _IN_LOBBY_:\n this.isInLobby = true;\n this.isInMeeting = false;\n break;\n case _IN_MEETING_:\n this.isInLobby = false;\n this.isInMeeting = true;\n break;\n case _NOT_IN_MEETING_:\n this.isInLobby = false;\n this.isInMeeting = false;\n break;\n default:\n this.isInLobby = false;\n this.isInMeeting = false;\n }\n }\n\n /**\n * set the isContentSharing on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsContentSharing(flag: boolean) {\n this.isContentSharing = flag;\n }\n\n /**\n * set the isHost on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsHost(flag: boolean) {\n this.isHost = flag;\n }\n\n /**\n * set the isSelf on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsSelf(flag: boolean) {\n this.isSelf = flag;\n }\n\n /**\n * determine if this member is content sharing\n * @param {Object} participant\n * @param {String} sharingId\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public processIsContentSharing(participant: object, sharingId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isContentSharing = MemberUtil.isSame(participant, sharingId);\n } else if (MemberUtil.isDevice(participant)) {\n this.isContentSharing = MemberUtil.isAssociatedSame(participant, sharingId);\n }\n }\n\n /**\n * Determine if this member is recording\n * @param {Object} participant\n * @param {String} recordingId\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public processIsRecording(participant: object, recordingId: string) {\n this.isRecording = MemberUtil.isSame(participant, recordingId);\n }\n\n /**\n * determine if this member is the self\n * @param {Object} participant\n * @param {String} selfId\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processIsSelf(participant: object, selfId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isSelf = MemberUtil.isSame(participant, selfId);\n } else if (MemberUtil.isDevice(participant)) {\n this.isSelf = MemberUtil.isAssociatedSame(participant, selfId);\n this.associatedUser = selfId;\n }\n }\n\n /**\n * determine if this member is the host\n * @param {Object} participant\n * @param {String} hostId\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processIsHost(participant: object, hostId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isHost = MemberUtil.isSame(participant, hostId);\n } else if (MemberUtil.isDevice(participant)) {\n this.isHost = MemberUtil.isAssociatedSame(participant, hostId);\n }\n }\n\n /**\n * process the roles that have been applied to this member\n * @param {Object} participant\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processRoles(participant: ParticipantWithRoles) {\n this.roles = MemberUtil.extractControlRoles(participant);\n }\n\n /**\n * set the type for the member, could be MEETING or CALL\n * @param {String} type\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processType(type: string) {\n this.type = type;\n }\n}\n"],"mappings":";;;;;;;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AAGA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AANA;AACA;AACA;AAMA;AACA;AACA;AAFA,IAGqBG,MAAM,GAAAC,OAAA,CAAAC,OAAA;EAgCzB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,SAAAF,OACEG,WAAmB,EASnB;IAAA,IARAC,OAOO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,IAAAG,gBAAA,CAAAN,OAAA,QAAAF,MAAA;IAAA,IAAAS,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA,qBArBFQ,mBAAQ;IAuBlB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,cAAc,GAAG,KAAK;IAC3B;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACR,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACS,EAAE,GAAG,IAAI;IACd;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,IAAI,GAAG,IAAI;IAChB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,iBAAiB,GAAG,IAAI;IAC7B;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,qBAAqB,GAAG,IAAI;IACjC;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,OAAO,GAAG,IAAI;IACnB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,SAAS,GAAG,IAAI;IACrB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,aAAa,GAAG,IAAI;IACzB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,gBAAgB,GAAG,IAAI;IAC5B;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,QAAQ,GAAG,IAAI;IACpB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,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"}
1
+ {"version":3,"names":["_constants","require","_util","_interopRequireDefault","Member","exports","default","participant","options","arguments","length","undefined","_classCallCheck2","_defineProperty2","MEETINGS","canReclaimHost","id","name","isAudioMuted","isVideoMuted","isHandRaised","supportsBreakouts","supportLiveAnnotation","isSelf","isHost","isGuest","isInLobby","isInMeeting","isNotAdmitted","isContentSharing","status","isDevice","isUser","associatedUser","isRecording","isMutable","isRemovable","isBrb","type","isModerator","isModeratorAssignmentProhibited","roles","mediaStatus","audio","video","processParticipant","processParticipantOptions","processMember","_createClass2","key","value","MemberUtil","extractId","extractName","isBreakoutsSupported","supportsInterpretation","isInterpretationSupported","isLiveAnnotationSupported","processStatus","processRoles","processIsSelf","selfId","processIsHost","hostId","processIsContentSharing","contentSharingId","processType","processIsRecording","recordingId","extractMediaStatus","extractStatus","_IN_LOBBY_","_IN_MEETING_","_NOT_IN_MEETING_","setIsContentSharing","flag","setIsHost","setIsSelf","sharingId","isSame","isAssociatedSame","extractControlRoles"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport {MEETINGS, _IN_LOBBY_, _NOT_IN_MEETING_, _IN_MEETING_} from '../constants';\nimport {IExternalRoles, IMediaStatus, ParticipantWithRoles} from './types';\n\nimport MemberUtil from './util';\n\n/**\n * @class Member\n */\nexport default class Member {\n associatedUser: any;\n canReclaimHost: boolean;\n id: any;\n isAudioMuted: any;\n isContentSharing: any;\n isDevice: any;\n isGuest: any;\n isHandRaised: any;\n isHost: any;\n isInLobby: any;\n isInMeeting: any;\n isModerator: any;\n isModeratorAssignmentProhibited: any;\n isMutable: any;\n isNotAdmitted: any;\n isRecording: any;\n isRemovable: any;\n isSelf: any;\n isBrb: boolean;\n isUser: any;\n isVideoMuted: any;\n roles: IExternalRoles;\n mediaStatus: IMediaStatus;\n name: any;\n participant: any;\n status: any;\n supportsBreakouts: boolean;\n supportsInterpretation: boolean;\n supportLiveAnnotation: boolean;\n type: any;\n namespace = MEETINGS;\n\n /**\n * @param {Object} participant - the locus participant\n * @param {Object} [options] - constructor params\n * @param {String} options.selfId\n * @param {String} options.hostId\n * @param {String} options.contentSharingId\n * @param {String} options.type\n * @returns {Member}\n * @memberof Member\n */\n constructor(\n participant: object,\n options:\n | {\n selfId: string;\n hostId: string;\n contentSharingId: string;\n type: string;\n }\n | any = {}\n ) {\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.canReclaimHost = false;\n /**\n * The server participant object\n * @instance\n * @type {Object}\n * @private\n * @memberof Member\n */\n this.participant = null;\n /**\n * The member id\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.id = null;\n /**\n * The member name\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.name = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isAudioMuted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isVideoMuted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isHandRaised = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.supportsBreakouts = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.supportLiveAnnotation = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isSelf = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isHost = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isGuest = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isInLobby = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isInMeeting = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isNotAdmitted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isContentSharing = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.status = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isDevice = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isUser = null;\n /**\n * Is this member associated to another user by way of pairing (typical of devices)\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.associatedUser = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isRecording = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isMutable = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isRemovable = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isBrb = false;\n /**\n * @instance\n * @type {String}\n * @private\n * @memberof Member\n */\n this.type = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isModerator = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isModeratorAssignmentProhibited = null;\n\n /**\n * @instance\n * @type {IExternalRoles}\n * @public\n * @memberof Member\n */\n this.roles = null;\n\n /**\n * @instance\n * @type {IMediaStatus}\n * @public\n * @memberof Member\n * @example {audio: MediaStatus.RECVONLY, video: MediaStatus.SENDRECV}\n */\n this.mediaStatus = {\n audio: null,\n video: null,\n };\n // TODO: more participant types\n // such as native client, web client, is a device, what type of phone, etc\n this.processParticipant(participant);\n this.processParticipantOptions(participant, options);\n this.processMember();\n }\n\n /**\n * set all the participant values extracted directly from locus participant\n * @param {Object} participant the locus participant object\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processParticipant(participant: object) {\n this.participant = participant;\n if (participant) {\n this.canReclaimHost = MemberUtil.canReclaimHost(participant);\n this.id = MemberUtil.extractId(participant);\n this.name = MemberUtil.extractName(participant);\n this.isAudioMuted = MemberUtil.isAudioMuted(participant);\n this.isVideoMuted = MemberUtil.isVideoMuted(participant);\n this.isHandRaised = MemberUtil.isHandRaised(participant);\n this.supportsBreakouts = MemberUtil.isBreakoutsSupported(participant);\n this.supportsInterpretation = MemberUtil.isInterpretationSupported(participant);\n this.supportLiveAnnotation = MemberUtil.isLiveAnnotationSupported(participant);\n this.isGuest = MemberUtil.isGuest(participant);\n this.isBrb = MemberUtil.isBrb(participant);\n this.isUser = MemberUtil.isUser(participant);\n this.isDevice = MemberUtil.isDevice(participant);\n this.isModerator = MemberUtil.isModerator(participant);\n this.isModeratorAssignmentProhibited =\n MemberUtil.isModeratorAssignmentProhibited(participant);\n this.processStatus(participant);\n this.processRoles(participant as ParticipantWithRoles);\n // must be done last\n this.isNotAdmitted = MemberUtil.isNotAdmitted(participant, this.isGuest, this.status);\n }\n }\n\n /**\n * Use the members options and participant values to set on the member\n * @param {Object} participant the locus participant object\n * @param {Object} options the passed in options, what was set on members\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processParticipantOptions(participant: object, options: any) {\n if (participant && options) {\n this.processIsSelf(participant, options.selfId);\n this.processIsHost(participant, options.hostId);\n this.processIsContentSharing(participant, options.contentSharingId);\n this.processType(options.type);\n this.processIsRecording(participant, options.recordingId);\n }\n }\n\n /**\n * processes what already exists on the member to determine other info about the member\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processMember() {\n // must occur after self, guest, meeting, and type properties are calculated\n this.isRemovable = MemberUtil.isRemovable(\n this.isSelf,\n this.isGuest,\n this.isInMeeting,\n this.type\n );\n // must occur after self, device, meeting, mute status, and type properties are calculated\n this.isMutable = MemberUtil.isMutable(\n this.isSelf,\n this.isDevice,\n this.isInMeeting,\n this.isAudioMuted,\n this.type\n );\n\n this.mediaStatus = MemberUtil.extractMediaStatus(this.participant);\n }\n\n /**\n * set the status on member object\n * @param {Object} participant the locus participant object\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processStatus(participant: object) {\n this.status = MemberUtil.extractStatus(participant);\n switch (this.status) {\n case _IN_LOBBY_:\n this.isInLobby = true;\n this.isInMeeting = false;\n break;\n case _IN_MEETING_:\n this.isInLobby = false;\n this.isInMeeting = true;\n break;\n case _NOT_IN_MEETING_:\n this.isInLobby = false;\n this.isInMeeting = false;\n break;\n default:\n this.isInLobby = false;\n this.isInMeeting = false;\n }\n }\n\n /**\n * set the isContentSharing on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsContentSharing(flag: boolean) {\n this.isContentSharing = flag;\n }\n\n /**\n * set the isHost on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsHost(flag: boolean) {\n this.isHost = flag;\n }\n\n /**\n * set the isSelf on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsSelf(flag: boolean) {\n this.isSelf = flag;\n }\n\n /**\n * determine if this member is content sharing\n * @param {Object} participant\n * @param {String} sharingId\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public processIsContentSharing(participant: object, sharingId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isContentSharing = MemberUtil.isSame(participant, sharingId);\n } else if (MemberUtil.isDevice(participant)) {\n this.isContentSharing = MemberUtil.isAssociatedSame(participant, sharingId);\n }\n }\n\n /**\n * Determine if this member is recording\n * @param {Object} participant\n * @param {String} recordingId\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public processIsRecording(participant: object, recordingId: string) {\n this.isRecording = MemberUtil.isSame(participant, recordingId);\n }\n\n /**\n * determine if this member is the self\n * @param {Object} participant\n * @param {String} selfId\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processIsSelf(participant: object, selfId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isSelf = MemberUtil.isSame(participant, selfId);\n } else if (MemberUtil.isDevice(participant)) {\n this.isSelf = MemberUtil.isAssociatedSame(participant, selfId);\n this.associatedUser = selfId;\n }\n }\n\n /**\n * determine if this member is the host\n * @param {Object} participant\n * @param {String} hostId\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processIsHost(participant: object, hostId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isHost = MemberUtil.isSame(participant, hostId);\n } else if (MemberUtil.isDevice(participant)) {\n this.isHost = MemberUtil.isAssociatedSame(participant, hostId);\n }\n }\n\n /**\n * process the roles that have been applied to this member\n * @param {Object} participant\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processRoles(participant: ParticipantWithRoles) {\n this.roles = MemberUtil.extractControlRoles(participant);\n }\n\n /**\n * set the type for the member, could be MEETING or CALL\n * @param {String} type\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processType(type: string) {\n this.type = type;\n }\n}\n"],"mappings":";;;;;;;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AAGA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AANA;AACA;AACA;AAMA;AACA;AACA;AAFA,IAGqBG,MAAM,GAAAC,OAAA,CAAAC,OAAA;EAiCzB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,SAAAF,OACEG,WAAmB,EASnB;IAAA,IARAC,OAOO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,IAAAG,gBAAA,CAAAN,OAAA,QAAAF,MAAA;IAAA,IAAAS,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA,qBArBFQ,mBAAQ;IAuBlB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,cAAc,GAAG,KAAK;IAC3B;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACR,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACS,EAAE,GAAG,IAAI;IACd;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,IAAI,GAAG,IAAI;IAChB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,iBAAiB,GAAG,IAAI;IAC7B;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,qBAAqB,GAAG,IAAI;IACjC;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,OAAO,GAAG,IAAI;IACnB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,SAAS,GAAG,IAAI;IACrB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,aAAa,GAAG,IAAI;IACzB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,gBAAgB,GAAG,IAAI;IAC5B;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,QAAQ,GAAG,IAAI;IACpB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,cAAc,GAAG,IAAI;IAC1B;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,SAAS,GAAG,IAAI;IACrB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,KAAK,GAAG,KAAK;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,IAAI,GAAG,IAAI;IAChB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,+BAA+B,GAAG,IAAI;;IAE3C;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,KAAK,GAAG,IAAI;;IAEjB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG;MACjBC,KAAK,EAAE,IAAI;MACXC,KAAK,EAAE;IACT,CAAC;IACD;IACA;IACA,IAAI,CAACC,kBAAkB,CAACtC,WAAW,CAAC;IACpC,IAAI,CAACuC,yBAAyB,CAACvC,WAAW,EAAEC,OAAO,CAAC;IACpD,IAAI,CAACuC,aAAa,CAAC,CAAC;EACtB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE,IAAAC,aAAA,CAAA1C,OAAA,EAAAF,MAAA;IAAA6C,GAAA;IAAAC,KAAA,EAOA,SAAAL,mBAA2BtC,WAAmB,EAAE;MAC9C,IAAI,CAACA,WAAW,GAAGA,WAAW;MAC9B,IAAIA,WAAW,EAAE;QACf,IAAI,CAACQ,cAAc,GAAGoC,aAAU,CAACpC,cAAc,CAACR,WAAW,CAAC;QAC5D,IAAI,CAACS,EAAE,GAAGmC,aAAU,CAACC,SAAS,CAAC7C,WAAW,CAAC;QAC3C,IAAI,CAACU,IAAI,GAAGkC,aAAU,CAACE,WAAW,CAAC9C,WAAW,CAAC;QAC/C,IAAI,CAACW,YAAY,GAAGiC,aAAU,CAACjC,YAAY,CAACX,WAAW,CAAC;QACxD,IAAI,CAACY,YAAY,GAAGgC,aAAU,CAAChC,YAAY,CAACZ,WAAW,CAAC;QACxD,IAAI,CAACa,YAAY,GAAG+B,aAAU,CAAC/B,YAAY,CAACb,WAAW,CAAC;QACxD,IAAI,CAACc,iBAAiB,GAAG8B,aAAU,CAACG,oBAAoB,CAAC/C,WAAW,CAAC;QACrE,IAAI,CAACgD,sBAAsB,GAAGJ,aAAU,CAACK,yBAAyB,CAACjD,WAAW,CAAC;QAC/E,IAAI,CAACe,qBAAqB,GAAG6B,aAAU,CAACM,yBAAyB,CAAClD,WAAW,CAAC;QAC9E,IAAI,CAACkB,OAAO,GAAG0B,aAAU,CAAC1B,OAAO,CAAClB,WAAW,CAAC;QAC9C,IAAI,CAAC8B,KAAK,GAAGc,aAAU,CAACd,KAAK,CAAC9B,WAAW,CAAC;QAC1C,IAAI,CAACyB,MAAM,GAAGmB,aAAU,CAACnB,MAAM,CAACzB,WAAW,CAAC;QAC5C,IAAI,CAACwB,QAAQ,GAAGoB,aAAU,CAACpB,QAAQ,CAACxB,WAAW,CAAC;QAChD,IAAI,CAACgC,WAAW,GAAGY,aAAU,CAACZ,WAAW,CAAChC,WAAW,CAAC;QACtD,IAAI,CAACiC,+BAA+B,GAClCW,aAAU,CAACX,+BAA+B,CAACjC,WAAW,CAAC;QACzD,IAAI,CAACmD,aAAa,CAACnD,WAAW,CAAC;QAC/B,IAAI,CAACoD,YAAY,CAACpD,WAAmC,CAAC;QACtD;QACA,IAAI,CAACqB,aAAa,GAAGuB,aAAU,CAACvB,aAAa,CAACrB,WAAW,EAAE,IAAI,CAACkB,OAAO,EAAE,IAAI,CAACK,MAAM,CAAC;MACvF;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAAmB,GAAA;IAAAC,KAAA,EAQA,SAAAJ,0BAAkCvC,WAAmB,EAAEC,OAAY,EAAE;MACnE,IAAID,WAAW,IAAIC,OAAO,EAAE;QAC1B,IAAI,CAACoD,aAAa,CAACrD,WAAW,EAAEC,OAAO,CAACqD,MAAM,CAAC;QAC/C,IAAI,CAACC,aAAa,CAACvD,WAAW,EAAEC,OAAO,CAACuD,MAAM,CAAC;QAC/C,IAAI,CAACC,uBAAuB,CAACzD,WAAW,EAAEC,OAAO,CAACyD,gBAAgB,CAAC;QACnE,IAAI,CAACC,WAAW,CAAC1D,OAAO,CAAC8B,IAAI,CAAC;QAC9B,IAAI,CAAC6B,kBAAkB,CAAC5D,WAAW,EAAEC,OAAO,CAAC4D,WAAW,CAAC;MAC3D;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAnB,GAAA;IAAAC,KAAA,EAMA,SAAAH,cAAA,EAAwB;MACtB;MACA,IAAI,CAACX,WAAW,GAAGe,aAAU,CAACf,WAAW,CACvC,IAAI,CAACb,MAAM,EACX,IAAI,CAACE,OAAO,EACZ,IAAI,CAACE,WAAW,EAChB,IAAI,CAACW,IACP,CAAC;MACD;MACA,IAAI,CAACH,SAAS,GAAGgB,aAAU,CAAChB,SAAS,CACnC,IAAI,CAACZ,MAAM,EACX,IAAI,CAACQ,QAAQ,EACb,IAAI,CAACJ,WAAW,EAChB,IAAI,CAACT,YAAY,EACjB,IAAI,CAACoB,IACP,CAAC;MAED,IAAI,CAACI,WAAW,GAAGS,aAAU,CAACkB,kBAAkB,CAAC,IAAI,CAAC9D,WAAW,CAAC;IACpE;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA0C,GAAA;IAAAC,KAAA,EAOA,SAAAQ,cAAsBnD,WAAmB,EAAE;MACzC,IAAI,CAACuB,MAAM,GAAGqB,aAAU,CAACmB,aAAa,CAAC/D,WAAW,CAAC;MACnD,QAAQ,IAAI,CAACuB,MAAM;QACjB,KAAKyC,qBAAU;UACb,IAAI,CAAC7C,SAAS,GAAG,IAAI;UACrB,IAAI,CAACC,WAAW,GAAG,KAAK;UACxB;QACF,KAAK6C,uBAAY;UACf,IAAI,CAAC9C,SAAS,GAAG,KAAK;UACtB,IAAI,CAACC,WAAW,GAAG,IAAI;UACvB;QACF,KAAK8C,2BAAgB;UACnB,IAAI,CAAC/C,SAAS,GAAG,KAAK;UACtB,IAAI,CAACC,WAAW,GAAG,KAAK;UACxB;QACF;UACE,IAAI,CAACD,SAAS,GAAG,KAAK;UACtB,IAAI,CAACC,WAAW,GAAG,KAAK;MAC5B;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAsB,GAAA;IAAAC,KAAA,EAOA,SAAAwB,oBAA2BC,IAAa,EAAE;MACxC,IAAI,CAAC9C,gBAAgB,GAAG8C,IAAI;IAC9B;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA1B,GAAA;IAAAC,KAAA,EAOA,SAAA0B,UAAiBD,IAAa,EAAE;MAC9B,IAAI,CAACnD,MAAM,GAAGmD,IAAI;IACpB;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA1B,GAAA;IAAAC,KAAA,EAOA,SAAA2B,UAAiBF,IAAa,EAAE;MAC9B,IAAI,CAACpD,MAAM,GAAGoD,IAAI;IACpB;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA1B,GAAA;IAAAC,KAAA,EAQA,SAAAc,wBAA+BzD,WAAmB,EAAEuE,SAAiB,EAAE;MACrE,IAAI3B,aAAU,CAACnB,MAAM,CAACzB,WAAW,CAAC,EAAE;QAClC,IAAI,CAACsB,gBAAgB,GAAGsB,aAAU,CAAC4B,MAAM,CAACxE,WAAW,EAAEuE,SAAS,CAAC;MACnE,CAAC,MAAM,IAAI3B,aAAU,CAACpB,QAAQ,CAACxB,WAAW,CAAC,EAAE;QAC3C,IAAI,CAACsB,gBAAgB,GAAGsB,aAAU,CAAC6B,gBAAgB,CAACzE,WAAW,EAAEuE,SAAS,CAAC;MAC7E;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA7B,GAAA;IAAAC,KAAA,EAQA,SAAAiB,mBAA0B5D,WAAmB,EAAE6D,WAAmB,EAAE;MAClE,IAAI,CAAClC,WAAW,GAAGiB,aAAU,CAAC4B,MAAM,CAACxE,WAAW,EAAE6D,WAAW,CAAC;IAChE;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAAnB,GAAA;IAAAC,KAAA,EAQA,SAAAU,cAAsBrD,WAAmB,EAAEsD,MAAc,EAAE;MACzD,IAAIV,aAAU,CAACnB,MAAM,CAACzB,WAAW,CAAC,EAAE;QAClC,IAAI,CAACgB,MAAM,GAAG4B,aAAU,CAAC4B,MAAM,CAACxE,WAAW,EAAEsD,MAAM,CAAC;MACtD,CAAC,MAAM,IAAIV,aAAU,CAACpB,QAAQ,CAACxB,WAAW,CAAC,EAAE;QAC3C,IAAI,CAACgB,MAAM,GAAG4B,aAAU,CAAC6B,gBAAgB,CAACzE,WAAW,EAAEsD,MAAM,CAAC;QAC9D,IAAI,CAAC5B,cAAc,GAAG4B,MAAM;MAC9B;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAAZ,GAAA;IAAAC,KAAA,EAQA,SAAAY,cAAsBvD,WAAmB,EAAEwD,MAAc,EAAE;MACzD,IAAIZ,aAAU,CAACnB,MAAM,CAACzB,WAAW,CAAC,EAAE;QAClC,IAAI,CAACiB,MAAM,GAAG2B,aAAU,CAAC4B,MAAM,CAACxE,WAAW,EAAEwD,MAAM,CAAC;MACtD,CAAC,MAAM,IAAIZ,aAAU,CAACpB,QAAQ,CAACxB,WAAW,CAAC,EAAE;QAC3C,IAAI,CAACiB,MAAM,GAAG2B,aAAU,CAAC6B,gBAAgB,CAACzE,WAAW,EAAEwD,MAAM,CAAC;MAChE;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAd,GAAA;IAAAC,KAAA,EAOA,SAAAS,aAAqBpD,WAAiC,EAAE;MACtD,IAAI,CAACkC,KAAK,GAAGU,aAAU,CAAC8B,mBAAmB,CAAC1E,WAAW,CAAC;IAC1D;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA0C,GAAA;IAAAC,KAAA,EAOA,SAAAgB,YAAoB5B,IAAY,EAAE;MAChC,IAAI,CAACA,IAAI,GAAGA,IAAI;IAClB;EAAC;EAAA,OAAAlC,MAAA;AAAA"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.MediaStatus = void 0;
8
+ // values are inherited from locus so don't update these
9
+ var MediaStatus = exports.MediaStatus = /*#__PURE__*/function (MediaStatus) {
10
+ MediaStatus["RECVONLY"] = "RECVONLY";
11
+ MediaStatus["SENDONLY"] = "SENDONLY";
12
+ MediaStatus["SENDRECV"] = "SENDRECV";
13
+ MediaStatus["INACTIVE"] = "INACTIVE";
14
+ MediaStatus["UNKNOWN"] = "UNKNOWN";
15
+ return MediaStatus;
16
+ }({}); // participant has not added media in the meeting
17
+ //# sourceMappingURL=member.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MediaStatus","exports"],"sources":["member.types.ts"],"sourcesContent":["// values are inherited from locus so don't update these\nexport enum MediaStatus {\n RECVONLY = 'RECVONLY', // participant only receiving and not sending\n SENDONLY = 'SENDONLY', // participant only sending and not receiving\n SENDRECV = 'SENDRECV', // participant both sending and receiving\n INACTIVE = 'INACTIVE', // participant is not connected to media source\n UNKNOWN = 'UNKNOWN', // participant has not added media in the meeting\n}\n\nexport interface IMediaStatus {\n audio: MediaStatus;\n video: MediaStatus;\n}\n"],"mappings":";;;;;;;AAAA;AAAA,IACYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA,OAKA","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ export interface IExternalRoles {
2
+ cohost: boolean;
3
+ moderator: boolean;
4
+ presenter: boolean;
5
+ }
6
+ export declare enum ServerRoles {
7
+ Cohost = "COHOST",
8
+ Moderator = "MODERATOR",
9
+ Presenter = "PRESENTER"
10
+ }
11
+ export type ServerRoleShape = {
12
+ type: ServerRoles;
13
+ hasRole: boolean;
14
+ };
15
+ export type ParticipantWithRoles = {
16
+ controls: {
17
+ role: {
18
+ roles: Array<ServerRoleShape>;
19
+ };
20
+ };
21
+ };
22
+ export declare enum MediaStatus {
23
+ RECVONLY = "RECVONLY",
24
+ SENDONLY = "SENDONLY",
25
+ SENDRECV = "SENDRECV",
26
+ INACTIVE = "INACTIVE",
27
+ UNKNOWN = "UNKNOWN"
28
+ }
29
+ export interface IMediaStatus {
30
+ audio: MediaStatus;
31
+ video: MediaStatus;
32
+ }
@@ -1 +1 @@
1
- {"version":3,"names":["ServerRoles","exports","MediaStatus"],"sources":["types.ts"],"sourcesContent":["export interface IExternalRoles {\n cohost: boolean;\n moderator: boolean;\n presenter: boolean;\n}\n\nexport enum ServerRoles {\n Cohost = 'COHOST',\n Moderator = 'MODERATOR',\n Presenter = 'PRESENTER',\n}\n\nexport type ServerRoleShape = {\n type: ServerRoles;\n hasRole: boolean;\n};\n\nexport type ParticipantWithRoles = {\n controls: {\n role: {\n roles: Array<ServerRoleShape>;\n };\n };\n};\n\n// values are inherited from locus so don't update these\nexport enum MediaStatus {\n RECVONLY = 'RECVONLY', // participant only receiving and not sending\n SENDONLY = 'SENDONLY', // participant only sending and not receiving\n SENDRECV = 'SENDRECV', // participant both sending and receiving\n INACTIVE = 'INACTIVE', // participant is not connected to media source\n UNKNOWN = 'UNKNOWN', // participant has not added media in the meeting\n}\n\nexport interface IMediaStatus {\n audio: MediaStatus;\n video: MediaStatus;\n}\n"],"mappings":";;;;;;;IAMYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAmBvB;AAAA,IACYE,WAAW,GAAAD,OAAA,CAAAC,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA,OAKA"}
1
+ {"version":3,"names":["ServerRoles","exports","MediaStatus"],"sources":["types.ts"],"sourcesContent":["export interface IExternalRoles {\n cohost: boolean;\n moderator: boolean;\n presenter: boolean;\n}\n\nexport enum ServerRoles {\n Cohost = 'COHOST',\n Moderator = 'MODERATOR',\n Presenter = 'PRESENTER',\n}\n\nexport type ServerRoleShape = {\n type: ServerRoles;\n hasRole: boolean;\n};\n\nexport type ParticipantWithRoles = {\n controls: {\n role: {\n roles: Array<ServerRoleShape>;\n };\n };\n};\n\nexport type ParticipantWithBrb = {\n controls: {\n brb?: {\n enabled: boolean;\n };\n };\n};\n\n// values are inherited from locus so don't update these\nexport enum MediaStatus {\n RECVONLY = 'RECVONLY', // participant only receiving and not sending\n SENDONLY = 'SENDONLY', // participant only sending and not receiving\n SENDRECV = 'SENDRECV', // participant both sending and receiving\n INACTIVE = 'INACTIVE', // participant is not connected to media source\n UNKNOWN = 'UNKNOWN', // participant has not added media in the meeting\n}\n\nexport interface IMediaStatus {\n audio: MediaStatus;\n video: MediaStatus;\n}\n"],"mappings":";;;;;;;IAMYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AA2BvB;AAAA,IACYE,WAAW,GAAAD,OAAA,CAAAC,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA,OAKA"}
@@ -0,0 +1,2 @@
1
+ declare const MemberUtil: any;
2
+ export default MemberUtil;