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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/README.md +45 -1
  2. package/UPGRADING.md +9 -9
  3. package/browsers.js +19 -24
  4. package/dist/annotation/annotation.types.js +7 -0
  5. package/dist/annotation/annotation.types.js.map +1 -0
  6. package/dist/annotation/constants.js +48 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.js +355 -0
  9. package/dist/annotation/index.js.map +1 -0
  10. package/dist/breakouts/breakout.js +193 -0
  11. package/dist/breakouts/breakout.js.map +1 -0
  12. package/dist/breakouts/collection.js +23 -0
  13. package/dist/breakouts/collection.js.map +1 -0
  14. package/dist/breakouts/edit-lock-error.js +52 -0
  15. package/dist/breakouts/edit-lock-error.js.map +1 -0
  16. package/dist/breakouts/events.js +43 -0
  17. package/dist/breakouts/events.js.map +1 -0
  18. package/dist/breakouts/index.js +994 -0
  19. package/dist/breakouts/index.js.map +1 -0
  20. package/dist/breakouts/request.js +78 -0
  21. package/dist/breakouts/request.js.map +1 -0
  22. package/dist/breakouts/utils.js +67 -0
  23. package/dist/breakouts/utils.js.map +1 -0
  24. package/dist/common/browser-detection.js +1 -20
  25. package/dist/common/browser-detection.js.map +1 -1
  26. package/dist/common/collection.js +5 -20
  27. package/dist/common/collection.js.map +1 -1
  28. package/dist/common/config.js +0 -7
  29. package/dist/common/config.js.map +1 -1
  30. package/dist/common/errors/captcha-error.js +5 -26
  31. package/dist/common/errors/captcha-error.js.map +1 -1
  32. package/dist/common/errors/intent-to-join.js +5 -26
  33. package/dist/common/errors/intent-to-join.js.map +1 -1
  34. package/dist/common/errors/join-meeting.js +6 -27
  35. package/dist/common/errors/join-meeting.js.map +1 -1
  36. package/dist/common/errors/media.js +5 -26
  37. package/dist/common/errors/media.js.map +1 -1
  38. package/dist/common/errors/parameter.js +5 -33
  39. package/dist/common/errors/parameter.js.map +1 -1
  40. package/dist/common/errors/password-error.js +5 -26
  41. package/dist/common/errors/password-error.js.map +1 -1
  42. package/dist/common/errors/permission.js +4 -25
  43. package/dist/common/errors/permission.js.map +1 -1
  44. package/dist/common/errors/reconnection-in-progress.js +0 -17
  45. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  46. package/dist/common/errors/reconnection.js +5 -26
  47. package/dist/common/errors/reconnection.js.map +1 -1
  48. package/dist/common/errors/stats.js +5 -26
  49. package/dist/common/errors/stats.js.map +1 -1
  50. package/dist/common/errors/webex-errors.js +6 -41
  51. package/dist/common/errors/webex-errors.js.map +1 -1
  52. package/dist/common/errors/webex-meetings-error.js +1 -24
  53. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  54. package/dist/common/events/events-scope.js +0 -22
  55. package/dist/common/events/events-scope.js.map +1 -1
  56. package/dist/common/events/events.js +0 -23
  57. package/dist/common/events/events.js.map +1 -1
  58. package/dist/common/events/trigger-proxy.js +0 -12
  59. package/dist/common/events/trigger-proxy.js.map +1 -1
  60. package/dist/common/events/util.js +0 -15
  61. package/dist/common/events/util.js.map +1 -1
  62. package/dist/common/logs/logger-config.js +0 -4
  63. package/dist/common/logs/logger-config.js.map +1 -1
  64. package/dist/common/logs/logger-proxy.js +1 -8
  65. package/dist/common/logs/logger-proxy.js.map +1 -1
  66. package/dist/common/logs/request.js +35 -61
  67. package/dist/common/logs/request.js.map +1 -1
  68. package/dist/common/queue.js +4 -14
  69. package/dist/common/queue.js.map +1 -1
  70. package/dist/config.js +6 -6
  71. package/dist/config.js.map +1 -1
  72. package/dist/constants.js +203 -53
  73. package/dist/constants.js.map +1 -1
  74. package/dist/controls-options-manager/constants.js +14 -0
  75. package/dist/controls-options-manager/constants.js.map +1 -0
  76. package/dist/controls-options-manager/enums.js +27 -0
  77. package/dist/controls-options-manager/enums.js.map +1 -0
  78. package/dist/controls-options-manager/index.js +297 -0
  79. package/dist/controls-options-manager/index.js.map +1 -0
  80. package/dist/controls-options-manager/types.js +7 -0
  81. package/dist/controls-options-manager/types.js.map +1 -0
  82. package/dist/controls-options-manager/util.js +294 -0
  83. package/dist/controls-options-manager/util.js.map +1 -0
  84. package/dist/index.js +72 -17
  85. package/dist/index.js.map +1 -1
  86. package/dist/locus-info/controlsUtils.js +100 -29
  87. package/dist/locus-info/controlsUtils.js.map +1 -1
  88. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  89. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  90. package/dist/locus-info/fullState.js +0 -15
  91. package/dist/locus-info/fullState.js.map +1 -1
  92. package/dist/locus-info/hostUtils.js +4 -12
  93. package/dist/locus-info/hostUtils.js.map +1 -1
  94. package/dist/locus-info/index.js +406 -216
  95. package/dist/locus-info/index.js.map +1 -1
  96. package/dist/locus-info/infoUtils.js +0 -38
  97. package/dist/locus-info/infoUtils.js.map +1 -1
  98. package/dist/locus-info/mediaSharesUtils.js +54 -38
  99. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  100. package/dist/locus-info/parser.js +88 -123
  101. package/dist/locus-info/parser.js.map +1 -1
  102. package/dist/locus-info/selfUtils.js +105 -91
  103. package/dist/locus-info/selfUtils.js.map +1 -1
  104. package/dist/media/index.js +55 -165
  105. package/dist/media/index.js.map +1 -1
  106. package/dist/media/properties.js +71 -117
  107. package/dist/media/properties.js.map +1 -1
  108. package/dist/media/util.js +2 -9
  109. package/dist/media/util.js.map +1 -1
  110. package/dist/mediaQualityMetrics/config.js +505 -495
  111. package/dist/mediaQualityMetrics/config.js.map +1 -1
  112. package/dist/meeting/in-meeting-actions.js +77 -14
  113. package/dist/meeting/in-meeting-actions.js.map +1 -1
  114. package/dist/meeting/index.js +2603 -2462
  115. package/dist/meeting/index.js.map +1 -1
  116. package/dist/meeting/locusMediaRequest.js +291 -0
  117. package/dist/meeting/locusMediaRequest.js.map +1 -0
  118. package/dist/meeting/muteState.js +292 -138
  119. package/dist/meeting/muteState.js.map +1 -1
  120. package/dist/meeting/request.js +315 -336
  121. package/dist/meeting/request.js.map +1 -1
  122. package/dist/meeting/request.type.js +7 -0
  123. package/dist/meeting/request.type.js.map +1 -0
  124. package/dist/meeting/state.js +21 -31
  125. package/dist/meeting/state.js.map +1 -1
  126. package/dist/meeting/util.js +463 -583
  127. package/dist/meeting/util.js.map +1 -1
  128. package/dist/meeting-info/collection.js +3 -25
  129. package/dist/meeting-info/collection.js.map +1 -1
  130. package/dist/meeting-info/index.js +10 -33
  131. package/dist/meeting-info/index.js.map +1 -1
  132. package/dist/meeting-info/meeting-info-v2.js +305 -286
  133. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  134. package/dist/meeting-info/request.js +1 -16
  135. package/dist/meeting-info/request.js.map +1 -1
  136. package/dist/meeting-info/util.js +98 -183
  137. package/dist/meeting-info/util.js.map +1 -1
  138. package/dist/meeting-info/utilv2.js +156 -232
  139. package/dist/meeting-info/utilv2.js.map +1 -1
  140. package/dist/meetings/collection.js +24 -20
  141. package/dist/meetings/collection.js.map +1 -1
  142. package/dist/meetings/index.js +692 -593
  143. package/dist/meetings/index.js.map +1 -1
  144. package/dist/meetings/request.js +23 -42
  145. package/dist/meetings/request.js.map +1 -1
  146. package/dist/meetings/util.js +186 -155
  147. package/dist/meetings/util.js.map +1 -1
  148. package/dist/member/index.js +89 -88
  149. package/dist/member/index.js.map +1 -1
  150. package/dist/member/types.js +15 -0
  151. package/dist/member/types.js.map +1 -0
  152. package/dist/member/util.js +101 -69
  153. package/dist/member/util.js.map +1 -1
  154. package/dist/members/collection.js +12 -12
  155. package/dist/members/collection.js.map +1 -1
  156. package/dist/members/index.js +166 -205
  157. package/dist/members/index.js.map +1 -1
  158. package/dist/members/request.js +120 -85
  159. package/dist/members/request.js.map +1 -1
  160. package/dist/members/types.js +15 -0
  161. package/dist/members/types.js.map +1 -0
  162. package/dist/members/util.js +314 -260
  163. package/dist/members/util.js.map +1 -1
  164. package/dist/metrics/config.js +50 -16
  165. package/dist/metrics/config.js.map +1 -1
  166. package/dist/metrics/constants.js +4 -7
  167. package/dist/metrics/constants.js.map +1 -1
  168. package/dist/metrics/index.js +93 -162
  169. package/dist/metrics/index.js.map +1 -1
  170. package/dist/multistream/mediaRequestManager.js +167 -50
  171. package/dist/multistream/mediaRequestManager.js.map +1 -1
  172. package/dist/multistream/receiveSlot.js +58 -65
  173. package/dist/multistream/receiveSlot.js.map +1 -1
  174. package/dist/multistream/receiveSlotManager.js +74 -93
  175. package/dist/multistream/receiveSlotManager.js.map +1 -1
  176. package/dist/multistream/remoteMedia.js +55 -74
  177. package/dist/multistream/remoteMedia.js.map +1 -1
  178. package/dist/multistream/remoteMediaGroup.js +6 -40
  179. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  180. package/dist/multistream/remoteMediaManager.js +466 -442
  181. package/dist/multistream/remoteMediaManager.js.map +1 -1
  182. package/dist/networkQualityMonitor/index.js +32 -59
  183. package/dist/networkQualityMonitor/index.js.map +1 -1
  184. package/dist/personal-meeting-room/index.js +10 -45
  185. package/dist/personal-meeting-room/index.js.map +1 -1
  186. package/dist/personal-meeting-room/request.js +2 -33
  187. package/dist/personal-meeting-room/request.js.map +1 -1
  188. package/dist/personal-meeting-room/util.js +0 -13
  189. package/dist/personal-meeting-room/util.js.map +1 -1
  190. package/dist/reachability/index.js +190 -199
  191. package/dist/reachability/index.js.map +1 -1
  192. package/dist/reachability/request.js +14 -23
  193. package/dist/reachability/request.js.map +1 -1
  194. package/dist/reactions/constants.js +13 -0
  195. package/dist/reactions/constants.js.map +1 -0
  196. package/dist/reactions/reactions.js +2 -4
  197. package/dist/reactions/reactions.js.map +1 -1
  198. package/dist/reactions/reactions.type.js +19 -23
  199. package/dist/reactions/reactions.type.js.map +1 -1
  200. package/dist/reconnection-manager/index.js +326 -465
  201. package/dist/reconnection-manager/index.js.map +1 -1
  202. package/dist/recording-controller/enums.js +17 -0
  203. package/dist/recording-controller/enums.js.map +1 -0
  204. package/dist/recording-controller/index.js +343 -0
  205. package/dist/recording-controller/index.js.map +1 -0
  206. package/dist/recording-controller/util.js +63 -0
  207. package/dist/recording-controller/util.js.map +1 -0
  208. package/dist/roap/index.js +31 -75
  209. package/dist/roap/index.js.map +1 -1
  210. package/dist/roap/request.js +129 -136
  211. package/dist/roap/request.js.map +1 -1
  212. package/dist/roap/turnDiscovery.js +143 -103
  213. package/dist/roap/turnDiscovery.js.map +1 -1
  214. package/dist/statsAnalyzer/global.js +1 -95
  215. package/dist/statsAnalyzer/global.js.map +1 -1
  216. package/dist/statsAnalyzer/index.js +369 -461
  217. package/dist/statsAnalyzer/index.js.map +1 -1
  218. package/dist/statsAnalyzer/mqaUtil.js +144 -94
  219. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  220. package/dist/transcription/index.js +13 -45
  221. package/dist/transcription/index.js.map +1 -1
  222. package/dist/types/annotation/annotation.types.d.ts +35 -0
  223. package/dist/types/annotation/constants.d.ts +31 -0
  224. package/dist/types/annotation/index.d.ts +124 -0
  225. package/dist/types/breakouts/breakout.d.ts +8 -0
  226. package/dist/types/breakouts/collection.d.ts +5 -0
  227. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  228. package/dist/types/breakouts/events.d.ts +2 -0
  229. package/dist/types/breakouts/index.d.ts +5 -0
  230. package/dist/types/breakouts/request.d.ts +22 -0
  231. package/dist/types/breakouts/utils.d.ts +15 -0
  232. package/dist/types/common/browser-detection.d.ts +9 -0
  233. package/dist/types/common/collection.d.ts +48 -0
  234. package/dist/types/common/config.d.ts +2 -0
  235. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  236. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  237. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  238. package/dist/types/common/errors/media.d.ts +15 -0
  239. package/dist/types/common/errors/parameter.d.ts +15 -0
  240. package/dist/types/common/errors/password-error.d.ts +15 -0
  241. package/dist/types/common/errors/permission.d.ts +14 -0
  242. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  243. package/dist/types/common/errors/reconnection.d.ts +15 -0
  244. package/dist/types/common/errors/stats.d.ts +15 -0
  245. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  246. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  247. package/dist/types/common/events/events-scope.d.ts +17 -0
  248. package/dist/types/common/events/events.d.ts +12 -0
  249. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  250. package/dist/types/common/events/util.d.ts +2 -0
  251. package/dist/types/common/logs/logger-config.d.ts +2 -0
  252. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  253. package/dist/types/common/logs/request.d.ts +34 -0
  254. package/dist/types/common/queue.d.ts +32 -0
  255. package/dist/types/config.d.ts +78 -0
  256. package/dist/types/constants.d.ts +993 -0
  257. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  258. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  259. package/dist/types/controls-options-manager/index.d.ts +136 -0
  260. package/dist/types/controls-options-manager/types.d.ts +43 -0
  261. package/dist/types/controls-options-manager/util.d.ts +1 -0
  262. package/dist/types/index.d.ts +7 -0
  263. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  264. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  265. package/dist/types/locus-info/fullState.d.ts +2 -0
  266. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  267. package/dist/types/locus-info/index.d.ts +315 -0
  268. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  269. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  270. package/dist/types/locus-info/parser.d.ts +212 -0
  271. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  272. package/dist/types/media/index.d.ts +34 -0
  273. package/dist/types/media/properties.d.ts +108 -0
  274. package/dist/types/media/util.d.ts +2 -0
  275. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  276. package/dist/types/meeting/in-meeting-actions.d.ts +147 -0
  277. package/dist/types/meeting/index.d.ts +1762 -0
  278. package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
  279. package/dist/types/meeting/muteState.d.ts +186 -0
  280. package/dist/types/meeting/request.d.ts +269 -0
  281. package/dist/types/meeting/request.type.d.ts +11 -0
  282. package/dist/types/meeting/state.d.ts +9 -0
  283. package/dist/types/meeting/util.d.ts +76 -0
  284. package/dist/types/meeting-info/collection.d.ts +20 -0
  285. package/dist/types/meeting-info/index.d.ts +57 -0
  286. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  287. package/dist/types/meeting-info/request.d.ts +22 -0
  288. package/dist/types/meeting-info/util.d.ts +2 -0
  289. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  290. package/dist/types/meetings/collection.d.ts +31 -0
  291. package/dist/types/meetings/index.d.ts +345 -0
  292. package/dist/types/meetings/request.d.ts +27 -0
  293. package/dist/types/meetings/util.d.ts +18 -0
  294. package/dist/types/member/index.d.ts +157 -0
  295. package/dist/types/member/types.d.ts +21 -0
  296. package/dist/types/member/util.d.ts +2 -0
  297. package/dist/types/members/collection.d.ts +29 -0
  298. package/dist/types/members/index.d.ts +353 -0
  299. package/dist/types/members/request.d.ts +114 -0
  300. package/dist/types/members/types.d.ts +24 -0
  301. package/dist/types/members/util.d.ts +210 -0
  302. package/dist/types/metrics/config.d.ts +195 -0
  303. package/dist/types/metrics/constants.d.ts +55 -0
  304. package/dist/types/metrics/index.d.ts +169 -0
  305. package/dist/types/multistream/mediaRequestManager.d.ts +101 -0
  306. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  307. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  308. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  309. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  310. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  311. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  312. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  313. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  314. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  315. package/dist/types/reachability/index.d.ts +152 -0
  316. package/dist/types/reachability/request.d.ts +37 -0
  317. package/dist/types/reactions/constants.d.ts +3 -0
  318. package/dist/types/reactions/reactions.d.ts +4 -0
  319. package/dist/types/reactions/reactions.type.d.ts +52 -0
  320. package/dist/types/reconnection-manager/index.d.ts +126 -0
  321. package/dist/types/recording-controller/enums.d.ts +7 -0
  322. package/dist/types/recording-controller/index.d.ts +193 -0
  323. package/dist/types/recording-controller/util.d.ts +13 -0
  324. package/dist/types/roap/index.d.ts +77 -0
  325. package/dist/types/roap/request.d.ts +36 -0
  326. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  327. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  328. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  329. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  330. package/dist/types/transcription/index.d.ts +64 -0
  331. package/internal-README.md +7 -6
  332. package/package.json +28 -21
  333. package/src/annotation/annotation.types.ts +42 -0
  334. package/src/annotation/constants.ts +36 -0
  335. package/src/annotation/index.ts +339 -0
  336. package/src/breakouts/README.md +220 -0
  337. package/src/breakouts/breakout.ts +163 -0
  338. package/src/breakouts/collection.ts +19 -0
  339. package/src/breakouts/edit-lock-error.ts +25 -0
  340. package/src/breakouts/events.ts +37 -0
  341. package/src/breakouts/index.ts +860 -0
  342. package/src/breakouts/request.ts +55 -0
  343. package/src/breakouts/utils.ts +57 -0
  344. package/src/common/browser-detection.ts +9 -6
  345. package/src/common/collection.ts +3 -1
  346. package/src/common/errors/captcha-error.ts +6 -6
  347. package/src/common/errors/intent-to-join.ts +6 -6
  348. package/src/common/errors/join-meeting.ts +12 -8
  349. package/src/common/errors/media.ts +6 -6
  350. package/src/common/errors/parameter.ts +9 -6
  351. package/src/common/errors/password-error.ts +6 -6
  352. package/src/common/errors/permission.ts +5 -5
  353. package/src/common/errors/reconnection.ts +6 -6
  354. package/src/common/errors/stats.ts +6 -6
  355. package/src/common/errors/webex-errors.ts +7 -5
  356. package/src/common/errors/webex-meetings-error.ts +1 -1
  357. package/src/common/events/events-scope.ts +5 -1
  358. package/src/common/events/events.ts +5 -1
  359. package/src/common/events/trigger-proxy.ts +8 -3
  360. package/src/common/events/util.ts +1 -2
  361. package/src/common/logs/logger-proxy.ts +21 -10
  362. package/src/common/logs/request.ts +11 -8
  363. package/src/config.ts +16 -12
  364. package/src/constants.ts +153 -7
  365. package/src/controls-options-manager/constants.ts +5 -0
  366. package/src/controls-options-manager/enums.ts +18 -0
  367. package/src/controls-options-manager/index.ts +278 -0
  368. package/src/controls-options-manager/types.ts +59 -0
  369. package/src/controls-options-manager/util.ts +281 -0
  370. package/src/index.ts +33 -0
  371. package/src/locus-info/controlsUtils.ts +142 -24
  372. package/src/locus-info/fullState.ts +15 -11
  373. package/src/locus-info/hostUtils.ts +4 -3
  374. package/src/locus-info/index.ts +346 -55
  375. package/src/locus-info/infoUtils.ts +12 -4
  376. package/src/locus-info/mediaSharesUtils.ts +52 -4
  377. package/src/locus-info/parser.ts +46 -68
  378. package/src/locus-info/selfUtils.ts +195 -56
  379. package/src/media/index.ts +139 -196
  380. package/src/media/properties.ts +43 -36
  381. package/src/media/util.ts +1 -1
  382. package/src/mediaQualityMetrics/config.ts +380 -378
  383. package/src/meeting/in-meeting-actions.ts +159 -3
  384. package/src/meeting/index.ts +2803 -1584
  385. package/src/meeting/locusMediaRequest.ts +309 -0
  386. package/src/meeting/muteState.ts +290 -72
  387. package/src/meeting/request.ts +247 -178
  388. package/src/meeting/request.type.ts +13 -0
  389. package/src/meeting/state.ts +45 -30
  390. package/src/meeting/util.ts +445 -395
  391. package/src/meeting-info/collection.ts +2 -1
  392. package/src/meeting-info/index.ts +32 -30
  393. package/src/meeting-info/meeting-info-v2.ts +235 -116
  394. package/src/meeting-info/request.ts +9 -3
  395. package/src/meeting-info/util.ts +54 -46
  396. package/src/meeting-info/utilv2.ts +71 -55
  397. package/src/meetings/collection.ts +21 -1
  398. package/src/meetings/index.ts +772 -437
  399. package/src/meetings/request.ts +29 -25
  400. package/src/meetings/util.ts +132 -33
  401. package/src/member/index.ts +95 -49
  402. package/src/member/types.ts +24 -0
  403. package/src/member/util.ts +106 -13
  404. package/src/members/collection.ts +8 -1
  405. package/src/members/index.ts +288 -130
  406. package/src/members/request.ts +144 -31
  407. package/src/members/types.ts +28 -0
  408. package/src/members/util.ts +316 -235
  409. package/src/metrics/config.ts +302 -90
  410. package/src/metrics/constants.ts +2 -6
  411. package/src/metrics/index.ts +124 -95
  412. package/src/multistream/mediaRequestManager.ts +203 -45
  413. package/src/multistream/receiveSlot.ts +69 -26
  414. package/src/multistream/receiveSlotManager.ts +62 -38
  415. package/src/multistream/remoteMedia.ts +30 -4
  416. package/src/multistream/remoteMediaGroup.ts +4 -3
  417. package/src/multistream/remoteMediaManager.ts +230 -66
  418. package/src/networkQualityMonitor/index.ts +24 -27
  419. package/src/personal-meeting-room/index.ts +12 -16
  420. package/src/personal-meeting-room/request.ts +10 -3
  421. package/src/personal-meeting-room/util.ts +3 -3
  422. package/src/reachability/index.ts +131 -79
  423. package/src/reachability/request.ts +43 -34
  424. package/src/reactions/constants.ts +4 -0
  425. package/src/reactions/reactions.ts +8 -8
  426. package/src/reactions/reactions.type.ts +31 -5
  427. package/src/reconnection-manager/index.ts +193 -111
  428. package/src/recording-controller/enums.ts +8 -0
  429. package/src/recording-controller/index.ts +315 -0
  430. package/src/recording-controller/util.ts +58 -0
  431. package/src/roap/index.ts +53 -53
  432. package/src/roap/request.ts +77 -64
  433. package/src/roap/turnDiscovery.ts +101 -48
  434. package/src/statsAnalyzer/global.ts +8 -104
  435. package/src/statsAnalyzer/index.ts +624 -376
  436. package/src/statsAnalyzer/mqaUtil.ts +203 -90
  437. package/src/transcription/index.ts +34 -32
  438. package/test/integration/spec/converged-space-meetings.js +177 -0
  439. package/test/integration/spec/journey.js +670 -466
  440. package/test/integration/spec/space-meeting.js +320 -204
  441. package/test/integration/spec/transcription.js +7 -8
  442. package/test/unit/spec/annotation/index.ts +433 -0
  443. package/test/unit/spec/breakouts/breakout.ts +203 -0
  444. package/test/unit/spec/breakouts/collection.ts +15 -0
  445. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  446. package/test/unit/spec/breakouts/events.ts +77 -0
  447. package/test/unit/spec/breakouts/index.ts +1609 -0
  448. package/test/unit/spec/breakouts/request.ts +104 -0
  449. package/test/unit/spec/breakouts/utils.js +72 -0
  450. package/test/unit/spec/common/browser-detection.js +9 -28
  451. package/test/unit/spec/controls-options-manager/index.js +287 -0
  452. package/test/unit/spec/controls-options-manager/util.js +504 -0
  453. package/test/unit/spec/fixture/locus.js +93 -90
  454. package/test/unit/spec/locus-info/controlsUtils.js +305 -32
  455. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  456. package/test/unit/spec/locus-info/index.js +636 -5
  457. package/test/unit/spec/locus-info/infoUtils.js +26 -33
  458. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  459. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  460. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  461. package/test/unit/spec/locus-info/parser.js +3 -9
  462. package/test/unit/spec/locus-info/selfConstant.js +110 -103
  463. package/test/unit/spec/locus-info/selfUtils.js +252 -12
  464. package/test/unit/spec/media/index.ts +104 -8
  465. package/test/unit/spec/media/properties.ts +9 -9
  466. package/test/unit/spec/meeting/in-meeting-actions.ts +76 -3
  467. package/test/unit/spec/meeting/index.js +3112 -921
  468. package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
  469. package/test/unit/spec/meeting/muteState.js +421 -94
  470. package/test/unit/spec/meeting/request.js +421 -79
  471. package/test/unit/spec/meeting/utils.js +326 -189
  472. package/test/unit/spec/meeting-info/meetinginfov2.js +481 -76
  473. package/test/unit/spec/meeting-info/request.js +7 -9
  474. package/test/unit/spec/meeting-info/util.js +11 -12
  475. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  476. package/test/unit/spec/meetings/collection.js +15 -1
  477. package/test/unit/spec/meetings/index.js +1126 -328
  478. package/test/unit/spec/meetings/utils.js +220 -14
  479. package/test/unit/spec/member/index.js +24 -1
  480. package/test/unit/spec/member/util.js +383 -32
  481. package/test/unit/spec/members/index.js +424 -55
  482. package/test/unit/spec/members/request.js +228 -40
  483. package/test/unit/spec/members/utils.js +191 -4
  484. package/test/unit/spec/metrics/index.js +113 -20
  485. package/test/unit/spec/multistream/mediaRequestManager.ts +650 -105
  486. package/test/unit/spec/multistream/receiveSlot.ts +76 -17
  487. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  488. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  489. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  490. package/test/unit/spec/multistream/remoteMediaManager.ts +549 -65
  491. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  492. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  493. package/test/unit/spec/reachability/index.ts +176 -27
  494. package/test/unit/spec/reachability/request.js +66 -0
  495. package/test/unit/spec/reconnection-manager/index.js +62 -31
  496. package/test/unit/spec/recording-controller/index.js +231 -0
  497. package/test/unit/spec/recording-controller/util.js +102 -0
  498. package/test/unit/spec/roap/index.ts +19 -49
  499. package/test/unit/spec/roap/request.ts +187 -0
  500. package/test/unit/spec/roap/turnDiscovery.ts +92 -50
  501. package/test/unit/spec/stats-analyzer/index.js +116 -60
  502. package/test/utils/cmr.js +44 -42
  503. package/test/utils/constants.js +9 -0
  504. package/test/utils/integrationTestUtils.js +64 -0
  505. package/test/utils/testUtils.js +63 -99
  506. package/test/utils/webex-config.js +22 -18
  507. package/test/utils/webex-test-users.js +57 -50
  508. package/tsconfig.json +6 -0
  509. package/dist/media/internal-media-core-wrapper.js +0 -22
  510. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  511. package/dist/meeting/effectsState.js +0 -334
  512. package/dist/meeting/effectsState.js.map +0 -1
  513. package/dist/multistream/multistreamMedia.js +0 -116
  514. package/dist/multistream/multistreamMedia.js.map +0 -1
  515. package/src/index.js +0 -15
  516. package/src/media/internal-media-core-wrapper.ts +0 -9
  517. package/src/meeting/effectsState.ts +0 -211
  518. package/src/multistream/multistreamMedia.ts +0 -92
  519. package/test/unit/spec/meeting/effectsState.js +0 -291
package/dist/index.js CHANGED
@@ -1,47 +1,102 @@
1
1
  "use strict";
2
2
 
3
3
  var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
4
-
5
4
  var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
6
-
7
5
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
8
-
9
6
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
10
-
11
7
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
12
-
13
8
  _Object$defineProperty(exports, "__esModule", {
14
9
  value: true
15
10
  });
16
-
17
11
  exports.CONSTANTS = void 0;
18
-
12
+ _Object$defineProperty(exports, "LocalCameraTrack", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _mediaHelpers.LocalCameraTrack;
16
+ }
17
+ });
18
+ _Object$defineProperty(exports, "LocalCameraTrackEvents", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _mediaHelpers.LocalCameraTrackEvents;
22
+ }
23
+ });
24
+ _Object$defineProperty(exports, "LocalDisplayTrack", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _mediaHelpers.LocalDisplayTrack;
28
+ }
29
+ });
30
+ _Object$defineProperty(exports, "LocalMicrophoneTrack", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _mediaHelpers.LocalMicrophoneTrack;
34
+ }
35
+ });
36
+ _Object$defineProperty(exports, "LocalMicrophoneTrackEvents", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _mediaHelpers.LocalMicrophoneTrackEvents;
40
+ }
41
+ });
42
+ _Object$defineProperty(exports, "LocalTrack", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _mediaHelpers.LocalTrack;
46
+ }
47
+ });
48
+ _Object$defineProperty(exports, "LocalTrackEvents", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _mediaHelpers.LocalTrackEvents;
52
+ }
53
+ });
54
+ exports.REACTIONS = void 0;
55
+ _Object$defineProperty(exports, "RemoteMedia", {
56
+ enumerable: true,
57
+ get: function get() {
58
+ return _remoteMedia.RemoteMedia;
59
+ }
60
+ });
19
61
  _Object$defineProperty(exports, "TriggerProxy", {
20
62
  enumerable: true,
21
63
  get: function get() {
22
64
  return _triggerProxy.default;
23
65
  }
24
66
  });
25
-
67
+ _Object$defineProperty(exports, "createCameraTrack", {
68
+ enumerable: true,
69
+ get: function get() {
70
+ return _mediaHelpers.createCameraTrack;
71
+ }
72
+ });
73
+ _Object$defineProperty(exports, "createDisplayTrack", {
74
+ enumerable: true,
75
+ get: function get() {
76
+ return _mediaHelpers.createDisplayTrack;
77
+ }
78
+ });
79
+ _Object$defineProperty(exports, "createMicrophoneTrack", {
80
+ enumerable: true,
81
+ get: function get() {
82
+ return _mediaHelpers.createMicrophoneTrack;
83
+ }
84
+ });
26
85
  exports.default = void 0;
27
-
28
86
  var _webexCore = require("@webex/webex-core");
29
-
30
87
  var _meetings = _interopRequireDefault(require("./meetings"));
31
-
32
88
  var _config = _interopRequireDefault(require("./config"));
33
-
89
+ var _mediaHelpers = require("@webex/media-helpers");
34
90
  var _CONSTANTS = _interopRequireWildcard(require("./constants"));
35
-
36
91
  exports.CONSTANTS = _CONSTANTS;
37
-
92
+ var _REACTIONS = _interopRequireWildcard(require("./reactions/reactions"));
93
+ exports.REACTIONS = _REACTIONS;
94
+ var _remoteMedia = require("./multistream/remoteMedia");
38
95
  var _triggerProxy = _interopRequireDefault(require("./common/events/trigger-proxy"));
39
-
40
96
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
41
-
42
97
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
-
44
98
  /* eslint-env browser */
99
+
45
100
  (0, _webexCore.registerPlugin)('meetings', _meetings.default, {
46
101
  config: _config.default
47
102
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["registerPlugin","Meetings","config"],"sources":["index.js"],"sourcesContent":["/* eslint-env browser */\nimport {registerPlugin} from '@webex/webex-core';\n\nimport Meetings from './meetings';\nimport config from './config';\n\nregisterPlugin('meetings', Meetings, {\n config\n});\n\nexport default Meetings;\n\nexport * as CONSTANTS from './constants';\n\nexport {default as TriggerProxy} from './common/events/trigger-proxy';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;AACA;;;;;;AAUA;;;;;;AAdA;AAMA,IAAAA,yBAAA,EAAe,UAAf,EAA2BC,iBAA3B,EAAqC;EACnCC,MAAM,EAANA;AADmC,CAArC;eAIeD,iB"}
1
+ {"version":3,"names":["registerPlugin","Meetings","config"],"sources":["index.ts"],"sourcesContent":["/* eslint-env browser */\nimport {registerPlugin} from '@webex/webex-core';\n\nimport Meetings from './meetings';\nimport config from './config';\n\nregisterPlugin('meetings', Meetings, {\n config,\n});\n\nexport {\n LocalTrack,\n LocalDisplayTrack,\n LocalTrackEvents,\n type TrackMuteEvent,\n type ServerMuteReason,\n LocalMicrophoneTrackEvents,\n LocalCameraTrackEvents,\n LocalMicrophoneTrack,\n LocalCameraTrack,\n createMicrophoneTrack,\n createCameraTrack,\n createDisplayTrack,\n} from '@webex/media-helpers';\n\nexport default Meetings;\n\nexport * as CONSTANTS from './constants';\nexport * as REACTIONS from './reactions/reactions';\n\nexport {RemoteMedia} from './multistream/remoteMedia';\n\nexport {default as TriggerProxy} from './common/events/trigger-proxy';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AAEA;AACA;AAMA;AAa8B;AAAA;AAAA;AAAA;AAO9B;AAEA;AAAsE;AAAA;AAhCtE;;AAMA,IAAAA,yBAAc,EAAC,UAAU,EAAEC,iBAAQ,EAAE;EACnCC,MAAM,EAANA;AACF,CAAC,CAAC;AAAC,eAiBYD,iBAAQ;AAAA"}
@@ -1,34 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
-
5
4
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
-
7
5
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
8
-
9
6
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
10
-
11
7
  var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
12
-
13
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
14
-
15
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
16
-
17
10
  _Object$defineProperty(exports, "__esModule", {
18
11
  value: true
19
12
  });
20
-
21
13
  exports.default = void 0;
22
-
23
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
24
-
25
15
  var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
26
-
16
+ var _constants = require("../constants");
27
17
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
28
-
29
18
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
30
-
31
19
  var ControlsUtils = {};
20
+
32
21
  /**
33
22
  * Controls
34
23
  * @typedef {Object} LocusControls
@@ -44,10 +33,8 @@ var ControlsUtils = {};
44
33
  * @returns {Object} parsedObject - parsed host or null if host was undefined
45
34
  * @returns {String} parsedObject.recordingId
46
35
  */
47
-
48
36
  ControlsUtils.parse = function (controls) {
49
37
  var parsedControls = _objectSpread({}, controls);
50
-
51
38
  if (controls && controls.record) {
52
39
  parsedControls.record = {
53
40
  modifiedBy: ControlsUtils.getId(controls),
@@ -56,71 +43,155 @@ ControlsUtils.parse = function (controls) {
56
43
  lastModified: controls.record.meta.lastModified
57
44
  };
58
45
  }
59
-
60
46
  if (controls && controls.meetingContainer) {
61
47
  parsedControls.meetingContainer = {
62
48
  meetingContainerUrl: controls.meetingContainer.meetingContainerUrl
63
49
  };
64
50
  }
65
-
66
51
  if (controls && controls.transcribe) {
67
52
  parsedControls.transcribe = {
68
53
  transcribing: controls.transcribe.transcribing,
69
54
  caption: controls.transcribe.caption
70
55
  };
71
56
  }
72
-
73
57
  if (controls && controls.entryExitTone) {
74
58
  parsedControls.entryExitTone = controls.entryExitTone.enabled ? controls.entryExitTone.mode : null;
75
59
  }
76
-
60
+ if (controls && controls.video) {
61
+ parsedControls.videoEnabled = controls.video.enabled;
62
+ }
63
+ if (controls !== null && controls !== void 0 && controls.muteOnEntry) {
64
+ parsedControls.muteOnEntry = {
65
+ enabled: controls.muteOnEntry.enabled
66
+ };
67
+ }
68
+ if (controls !== null && controls !== void 0 && controls.shareControl) {
69
+ parsedControls.shareControl = {
70
+ control: controls.shareControl.control
71
+ };
72
+ }
73
+ if (controls !== null && controls !== void 0 && controls.disallowUnmute) {
74
+ parsedControls.disallowUnmute = {
75
+ enabled: controls.disallowUnmute.enabled
76
+ };
77
+ }
78
+ if (controls !== null && controls !== void 0 && controls.reactions) {
79
+ parsedControls.reactions = {
80
+ enabled: controls.reactions.enabled,
81
+ showDisplayNameWithReactions: controls.reactions.showDisplayNameWithReactions
82
+ };
83
+ }
84
+ if (controls !== null && controls !== void 0 && controls.viewTheParticipantList) {
85
+ parsedControls.viewTheParticipantList = {
86
+ enabled: controls.viewTheParticipantList.enabled
87
+ };
88
+ }
89
+ if (controls !== null && controls !== void 0 && controls.raiseHand) {
90
+ parsedControls.raiseHand = {
91
+ enabled: controls.raiseHand.enabled
92
+ };
93
+ }
94
+ if (controls !== null && controls !== void 0 && controls.video) {
95
+ parsedControls.video = {
96
+ enabled: controls.video.enabled
97
+ };
98
+ }
77
99
  return parsedControls;
78
100
  };
101
+
79
102
  /**
80
103
  * parses and returns previous state vs current state and triggers the changes.
81
104
  * @param {LocusControls} oldControls previous state
82
105
  * @param {LocusControls} newControls current state
83
106
  * @returns {Object} combination of state plus the changes
84
107
  */
85
-
86
-
87
108
  ControlsUtils.getControls = function (oldControls, newControls) {
88
- var _previous$record, _previous$record2, _current$record, _previous$record3, _current$record2, _previous$record4, _current$record3, _previous$meetingCont, _current$meetingConta, _previous$transcribe, _current$transcribe, _previous$transcribe2, _current$transcribe2;
89
-
109
+ var _current$muteOnEntry, _previous$muteOnEntry, _current$shareControl, _previous$shareContro, _current$disallowUnmu, _previous$disallowUnm, _current$reactions, _previous$reactions, _current$reactions2, _previous$reactions2, _current$viewTheParti, _previous$viewThePart, _current$raiseHand, _previous$raiseHand, _current$video, _previous$video, _previous$record, _previous$record2, _current$record, _previous$record3, _current$record2, _previous$record4, _current$record3, _previous$meetingCont, _current$meetingConta, _previous$transcribe, _current$transcribe, _previous$transcribe2, _current$transcribe2, _newControls$video;
90
110
  var previous = ControlsUtils.parse(oldControls);
91
111
  var current = ControlsUtils.parse(newControls);
92
112
  return {
93
113
  previous: previous,
94
114
  current: current,
95
115
  updates: {
116
+ hasMuteOnEntryChanged: (current === null || current === void 0 ? void 0 : (_current$muteOnEntry = current.muteOnEntry) === null || _current$muteOnEntry === void 0 ? void 0 : _current$muteOnEntry.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$muteOnEntry = previous.muteOnEntry) === null || _previous$muteOnEntry === void 0 ? void 0 : _previous$muteOnEntry.enabled),
117
+ hasShareControlChanged: (current === null || current === void 0 ? void 0 : (_current$shareControl = current.shareControl) === null || _current$shareControl === void 0 ? void 0 : _current$shareControl.control) !== (previous === null || previous === void 0 ? void 0 : (_previous$shareContro = previous.shareControl) === null || _previous$shareContro === void 0 ? void 0 : _previous$shareContro.control),
118
+ hasDisallowUnmuteChanged: (current === null || current === void 0 ? void 0 : (_current$disallowUnmu = current.disallowUnmute) === null || _current$disallowUnmu === void 0 ? void 0 : _current$disallowUnmu.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$disallowUnm = previous.disallowUnmute) === null || _previous$disallowUnm === void 0 ? void 0 : _previous$disallowUnm.enabled),
119
+ hasReactionsChanged: (current === null || current === void 0 ? void 0 : (_current$reactions = current.reactions) === null || _current$reactions === void 0 ? void 0 : _current$reactions.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$reactions = previous.reactions) === null || _previous$reactions === void 0 ? void 0 : _previous$reactions.enabled),
120
+ hasReactionDisplayNamesChanged: (current === null || current === void 0 ? void 0 : (_current$reactions2 = current.reactions) === null || _current$reactions2 === void 0 ? void 0 : _current$reactions2.showDisplayNameWithReactions) !== (previous === null || previous === void 0 ? void 0 : (_previous$reactions2 = previous.reactions) === null || _previous$reactions2 === void 0 ? void 0 : _previous$reactions2.showDisplayNameWithReactions),
121
+ hasViewTheParticipantListChanged: (current === null || current === void 0 ? void 0 : (_current$viewTheParti = current.viewTheParticipantList) === null || _current$viewTheParti === void 0 ? void 0 : _current$viewTheParti.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$viewThePart = previous.viewTheParticipantList) === null || _previous$viewThePart === void 0 ? void 0 : _previous$viewThePart.enabled),
122
+ hasRaiseHandChanged: (current === null || current === void 0 ? void 0 : (_current$raiseHand = current.raiseHand) === null || _current$raiseHand === void 0 ? void 0 : _current$raiseHand.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$raiseHand = previous.raiseHand) === null || _previous$raiseHand === void 0 ? void 0 : _previous$raiseHand.enabled),
123
+ hasVideoChanged: (current === null || current === void 0 ? void 0 : (_current$video = current.video) === null || _current$video === void 0 ? void 0 : _current$video.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$video = previous.video) === null || _previous$video === void 0 ? void 0 : _previous$video.enabled),
96
124
  hasRecordingPausedChanged: (current === null || current === void 0 ? void 0 : current.record) && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : (_previous$record = previous.record) === null || _previous$record === void 0 ? void 0 : _previous$record.paused, current.record.paused) && ((previous === null || previous === void 0 ? void 0 : (_previous$record2 = previous.record) === null || _previous$record2 === void 0 ? void 0 : _previous$record2.recording) || (current === null || current === void 0 ? void 0 : (_current$record = current.record) === null || _current$record === void 0 ? void 0 : _current$record.recording)),
97
125
  // see comments directly below
98
- hasRecordingChanged: (current === null || current === void 0 ? void 0 : current.record) && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : (_previous$record3 = previous.record) === null || _previous$record3 === void 0 ? void 0 : _previous$record3.recording, current === null || current === void 0 ? void 0 : (_current$record2 = current.record) === null || _current$record2 === void 0 ? void 0 : _current$record2.recording) && ( // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
126
+
127
+ hasRecordingChanged: (current === null || current === void 0 ? void 0 : current.record) && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : (_previous$record3 = previous.record) === null || _previous$record3 === void 0 ? void 0 : _previous$record3.recording, current === null || current === void 0 ? void 0 : (_current$record2 = current.record) === null || _current$record2 === void 0 ? void 0 : _current$record2.recording) && (
128
+ // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
99
129
  (previous === null || previous === void 0 ? void 0 : (_previous$record4 = previous.record) === null || _previous$record4 === void 0 ? void 0 : _previous$record4.recording) || (current === null || current === void 0 ? void 0 : (_current$record3 = current.record) === null || _current$record3 === void 0 ? void 0 : _current$record3.recording)),
100
130
  // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting
131
+
101
132
  hasMeetingContainerChanged: (current === null || current === void 0 ? void 0 : current.meetingContainer) && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : (_previous$meetingCont = previous.meetingContainer) === null || _previous$meetingCont === void 0 ? void 0 : _previous$meetingCont.meetingContainerUrl, current === null || current === void 0 ? void 0 : (_current$meetingConta = current.meetingContainer) === null || _current$meetingConta === void 0 ? void 0 : _current$meetingConta.meetingContainerUrl),
102
- hasTranscribeChanged: (current === null || current === void 0 ? void 0 : current.transcribe) && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : (_previous$transcribe = previous.transcribe) === null || _previous$transcribe === void 0 ? void 0 : _previous$transcribe.transcribing, current === null || current === void 0 ? void 0 : (_current$transcribe = current.transcribe) === null || _current$transcribe === void 0 ? void 0 : _current$transcribe.transcribing) && ( // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
133
+ hasTranscribeChanged: (current === null || current === void 0 ? void 0 : current.transcribe) && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : (_previous$transcribe = previous.transcribe) === null || _previous$transcribe === void 0 ? void 0 : _previous$transcribe.transcribing, current === null || current === void 0 ? void 0 : (_current$transcribe = current.transcribe) === null || _current$transcribe === void 0 ? void 0 : _current$transcribe.transcribing) && (
134
+ // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
103
135
  (previous === null || previous === void 0 ? void 0 : (_previous$transcribe2 = previous.transcribe) === null || _previous$transcribe2 === void 0 ? void 0 : _previous$transcribe2.transcribing) || (current === null || current === void 0 ? void 0 : (_current$transcribe2 = current.transcribe) === null || _current$transcribe2 === void 0 ? void 0 : _current$transcribe2.transcribing)),
104
136
  // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting
105
- hasEntryExitToneChanged: !!(newControls.entryExitTone && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : previous.entryExitTone, current === null || current === void 0 ? void 0 : current.entryExitTone) && (previous !== null && previous !== void 0 && previous.entryExitTone || current !== null && current !== void 0 && current.entryExitTone))
137
+
138
+ hasEntryExitToneChanged: !!(newControls.entryExitTone && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : previous.entryExitTone, current === null || current === void 0 ? void 0 : current.entryExitTone) && (previous !== null && previous !== void 0 && previous.entryExitTone || current !== null && current !== void 0 && current.entryExitTone)),
139
+ hasBreakoutChanged: !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : previous.breakout, current === null || current === void 0 ? void 0 : current.breakout),
140
+ hasVideoEnabledChanged: ((_newControls$video = newControls.video) === null || _newControls$video === void 0 ? void 0 : _newControls$video.enabled) !== undefined && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : previous.videoEnabled, current === null || current === void 0 ? void 0 : current.videoEnabled)
106
141
  }
107
142
  };
108
143
  };
144
+
109
145
  /**
110
146
  * Extract the id from the record controls object
111
147
  * @param {LocusControls} controls
112
148
  * @returns {String|null}
113
149
  */
114
-
115
-
116
150
  ControlsUtils.getId = function (controls) {
117
151
  if (controls.record.meta) {
118
152
  return controls.record.meta.modifiedBy;
119
153
  }
120
-
121
154
  return null;
122
155
  };
123
156
 
157
+ /**
158
+ * check whether to replace the meeting's members or not.
159
+ * For case joined breakout session, need replace meeting's members
160
+ * @param {LocusControls} oldControls
161
+ * @param {LocusControls} controls
162
+ * @returns {Boolean}
163
+ */
164
+ ControlsUtils.isNeedReplaceMembers = function (oldControls, controls) {
165
+ // no breakout case
166
+ if (!(oldControls !== null && oldControls !== void 0 && oldControls.breakout) || !(controls !== null && controls !== void 0 && controls.breakout)) {
167
+ return false;
168
+ }
169
+ return oldControls.breakout.groupId !== controls.breakout.groupId || oldControls.breakout.sessionId !== controls.breakout.sessionId;
170
+ };
171
+
172
+ /**
173
+ * determine the switch status between breakout session and main session.
174
+ * @param {LocusControls} oldControls
175
+ * @param {LocusControls} controls
176
+ * @returns {Object}
177
+ */
178
+ ControlsUtils.getSessionSwitchStatus = function (oldControls, controls) {
179
+ var status = {
180
+ isReturnToMain: false,
181
+ isJoinToBreakout: false
182
+ };
183
+ // no breakout case
184
+ if (!(oldControls !== null && oldControls !== void 0 && oldControls.breakout) || !(controls !== null && controls !== void 0 && controls.breakout)) {
185
+ return status;
186
+ }
187
+ status.isReturnToMain = oldControls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT && controls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN;
188
+ status.isJoinToBreakout = oldControls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN && controls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT;
189
+ return status;
190
+ };
191
+ ControlsUtils.isMainSessionDTO = function (locus) {
192
+ var _locus$controls, _locus$controls$break;
193
+ return (locus === null || locus === void 0 ? void 0 : (_locus$controls = locus.controls) === null || _locus$controls === void 0 ? void 0 : (_locus$controls$break = _locus$controls.breakout) === null || _locus$controls$break === void 0 ? void 0 : _locus$controls$break.sessionType) !== _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT;
194
+ };
124
195
  var _default = ControlsUtils;
125
196
  exports.default = _default;
126
197
  //# sourceMappingURL=controlsUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ControlsUtils","parse","controls","parsedControls","record","modifiedBy","getId","paused","recording","lastModified","meta","meetingContainer","meetingContainerUrl","transcribe","transcribing","caption","entryExitTone","enabled","mode","getControls","oldControls","newControls","previous","current","updates","hasRecordingPausedChanged","hasRecordingChanged","hasMeetingContainerChanged","hasTranscribeChanged","hasEntryExitToneChanged"],"sources":["controlsUtils.ts"],"sourcesContent":["import {isEqual} from 'lodash';\n\nconst ControlsUtils: any = {};\n\n/**\n * Controls\n * @typedef {Object} LocusControls\n * @property {Object} record\n * @property {Boolean} record.recording\n * @property {Object} record.meta\n * @property {String} record.meta.modifiedBy\n */\n\n/**\n * parse the relevant host values that we care about: id\n * @param {LocusControls} controls\n * @returns {Object} parsedObject - parsed host or null if host was undefined\n * @returns {String} parsedObject.recordingId\n */\nControlsUtils.parse = (controls: any) => {\n const parsedControls = {...controls};\n\n if (controls && controls.record) {\n parsedControls.record = {\n modifiedBy: ControlsUtils.getId(controls),\n paused: controls.record.paused ? controls.record.paused : false,\n recording: controls.record.recording,\n lastModified: controls.record.meta.lastModified\n };\n }\n\n if (controls && controls.meetingContainer) {\n parsedControls.meetingContainer = {\n meetingContainerUrl: controls.meetingContainer.meetingContainerUrl\n };\n }\n\n if (controls && controls.transcribe) {\n parsedControls.transcribe = {\n transcribing: controls.transcribe.transcribing,\n caption: controls.transcribe.caption\n };\n }\n\n if (controls && controls.entryExitTone) {\n parsedControls.entryExitTone = controls.entryExitTone.enabled ? controls.entryExitTone.mode : null;\n }\n\n return parsedControls;\n};\n\n/**\n * parses and returns previous state vs current state and triggers the changes.\n * @param {LocusControls} oldControls previous state\n * @param {LocusControls} newControls current state\n * @returns {Object} combination of state plus the changes\n */\nControlsUtils.getControls = (oldControls: any, newControls: any) => {\n const previous = ControlsUtils.parse(oldControls);\n const current = ControlsUtils.parse(newControls);\n\n return {\n previous,\n current,\n updates: {\n hasRecordingPausedChanged: current?.record &&\n !isEqual(previous?.record?.paused, current.record.paused) &&\n (previous?.record?.recording || current?.record?.recording), // see comments directly below\n\n hasRecordingChanged: current?.record &&\n !isEqual(previous?.record?.recording, current?.record?.recording) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.record?.recording || current?.record?.recording), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasMeetingContainerChanged: current?.meetingContainer &&\n !isEqual(previous?.meetingContainer?.meetingContainerUrl,\n current?.meetingContainer?.meetingContainerUrl),\n\n hasTranscribeChanged: current?.transcribe &&\n !isEqual(previous?.transcribe?.transcribing, current?.transcribe?.transcribing) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.transcribe?.transcribing || current?.transcribe?.transcribing), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasEntryExitToneChanged: !!(newControls.entryExitTone &&\n !isEqual(previous?.entryExitTone, current?.entryExitTone) &&\n (previous?.entryExitTone || current?.entryExitTone)),\n }\n };\n};\n\n/**\n * Extract the id from the record controls object\n * @param {LocusControls} controls\n * @returns {String|null}\n */\nControlsUtils.getId = (controls: any) => {\n if (controls.record.meta) {\n return controls.record.meta.modifiedBy;\n }\n\n return null;\n};\n\nexport default ControlsUtils;\n"],"mappings":"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"}
1
+ {"version":3,"names":["ControlsUtils","parse","controls","parsedControls","record","modifiedBy","getId","paused","recording","lastModified","meta","meetingContainer","meetingContainerUrl","transcribe","transcribing","caption","entryExitTone","enabled","mode","video","videoEnabled","muteOnEntry","shareControl","control","disallowUnmute","reactions","showDisplayNameWithReactions","viewTheParticipantList","raiseHand","getControls","oldControls","newControls","previous","current","updates","hasMuteOnEntryChanged","hasShareControlChanged","hasDisallowUnmuteChanged","hasReactionsChanged","hasReactionDisplayNamesChanged","hasViewTheParticipantListChanged","hasRaiseHandChanged","hasVideoChanged","hasRecordingPausedChanged","hasRecordingChanged","hasMeetingContainerChanged","hasTranscribeChanged","hasEntryExitToneChanged","hasBreakoutChanged","breakout","hasVideoEnabledChanged","undefined","isNeedReplaceMembers","groupId","sessionId","getSessionSwitchStatus","status","isReturnToMain","isJoinToBreakout","sessionType","BREAKOUTS","SESSION_TYPES","BREAKOUT","MAIN","isMainSessionDTO","locus"],"sources":["controlsUtils.ts"],"sourcesContent":["import {isEqual} from 'lodash';\nimport {BREAKOUTS} from '../constants';\n\nconst ControlsUtils: any = {};\n\n/**\n * Controls\n * @typedef {Object} LocusControls\n * @property {Object} record\n * @property {Boolean} record.recording\n * @property {Object} record.meta\n * @property {String} record.meta.modifiedBy\n */\n\n/**\n * parse the relevant host values that we care about: id\n * @param {LocusControls} controls\n * @returns {Object} parsedObject - parsed host or null if host was undefined\n * @returns {String} parsedObject.recordingId\n */\nControlsUtils.parse = (controls: any) => {\n const parsedControls = {...controls};\n\n if (controls && controls.record) {\n parsedControls.record = {\n modifiedBy: ControlsUtils.getId(controls),\n paused: controls.record.paused ? controls.record.paused : false,\n recording: controls.record.recording,\n lastModified: controls.record.meta.lastModified,\n };\n }\n\n if (controls && controls.meetingContainer) {\n parsedControls.meetingContainer = {\n meetingContainerUrl: controls.meetingContainer.meetingContainerUrl,\n };\n }\n\n if (controls && controls.transcribe) {\n parsedControls.transcribe = {\n transcribing: controls.transcribe.transcribing,\n caption: controls.transcribe.caption,\n };\n }\n\n if (controls && controls.entryExitTone) {\n parsedControls.entryExitTone = controls.entryExitTone.enabled\n ? controls.entryExitTone.mode\n : null;\n }\n\n if (controls && controls.video) {\n parsedControls.videoEnabled = controls.video.enabled;\n }\n\n if (controls?.muteOnEntry) {\n parsedControls.muteOnEntry = {enabled: controls.muteOnEntry.enabled};\n }\n\n if (controls?.shareControl) {\n parsedControls.shareControl = {control: controls.shareControl.control};\n }\n\n if (controls?.disallowUnmute) {\n parsedControls.disallowUnmute = {enabled: controls.disallowUnmute.enabled};\n }\n\n if (controls?.reactions) {\n parsedControls.reactions = {\n enabled: controls.reactions.enabled,\n showDisplayNameWithReactions: controls.reactions.showDisplayNameWithReactions,\n };\n }\n\n if (controls?.viewTheParticipantList) {\n parsedControls.viewTheParticipantList = {enabled: controls.viewTheParticipantList.enabled};\n }\n\n if (controls?.raiseHand) {\n parsedControls.raiseHand = {enabled: controls.raiseHand.enabled};\n }\n\n if (controls?.video) {\n parsedControls.video = {enabled: controls.video.enabled};\n }\n\n return parsedControls;\n};\n\n/**\n * parses and returns previous state vs current state and triggers the changes.\n * @param {LocusControls} oldControls previous state\n * @param {LocusControls} newControls current state\n * @returns {Object} combination of state plus the changes\n */\nControlsUtils.getControls = (oldControls: any, newControls: any) => {\n const previous = ControlsUtils.parse(oldControls);\n const current = ControlsUtils.parse(newControls);\n\n return {\n previous,\n current,\n updates: {\n hasMuteOnEntryChanged: current?.muteOnEntry?.enabled !== previous?.muteOnEntry?.enabled,\n\n hasShareControlChanged: current?.shareControl?.control !== previous?.shareControl?.control,\n\n hasDisallowUnmuteChanged:\n current?.disallowUnmute?.enabled !== previous?.disallowUnmute?.enabled,\n\n hasReactionsChanged: current?.reactions?.enabled !== previous?.reactions?.enabled,\n\n hasReactionDisplayNamesChanged:\n current?.reactions?.showDisplayNameWithReactions !==\n previous?.reactions?.showDisplayNameWithReactions,\n\n hasViewTheParticipantListChanged:\n current?.viewTheParticipantList?.enabled !== previous?.viewTheParticipantList?.enabled,\n\n hasRaiseHandChanged: current?.raiseHand?.enabled !== previous?.raiseHand?.enabled,\n\n hasVideoChanged: current?.video?.enabled !== previous?.video?.enabled,\n\n hasRecordingPausedChanged:\n current?.record &&\n !isEqual(previous?.record?.paused, current.record.paused) &&\n (previous?.record?.recording || current?.record?.recording), // see comments directly below\n\n hasRecordingChanged:\n current?.record &&\n !isEqual(previous?.record?.recording, current?.record?.recording) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.record?.recording || current?.record?.recording), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasMeetingContainerChanged:\n current?.meetingContainer &&\n !isEqual(\n previous?.meetingContainer?.meetingContainerUrl,\n current?.meetingContainer?.meetingContainerUrl\n ),\n\n hasTranscribeChanged:\n current?.transcribe &&\n !isEqual(previous?.transcribe?.transcribing, current?.transcribe?.transcribing) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.transcribe?.transcribing || current?.transcribe?.transcribing), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasEntryExitToneChanged: !!(\n newControls.entryExitTone &&\n !isEqual(previous?.entryExitTone, current?.entryExitTone) &&\n (previous?.entryExitTone || current?.entryExitTone)\n ),\n\n hasBreakoutChanged: !isEqual(previous?.breakout, current?.breakout),\n\n hasVideoEnabledChanged:\n newControls.video?.enabled !== undefined &&\n !isEqual(previous?.videoEnabled, current?.videoEnabled),\n },\n };\n};\n\n/**\n * Extract the id from the record controls object\n * @param {LocusControls} controls\n * @returns {String|null}\n */\nControlsUtils.getId = (controls: any) => {\n if (controls.record.meta) {\n return controls.record.meta.modifiedBy;\n }\n\n return null;\n};\n\n/**\n * check whether to replace the meeting's members or not.\n * For case joined breakout session, need replace meeting's members\n * @param {LocusControls} oldControls\n * @param {LocusControls} controls\n * @returns {Boolean}\n */\nControlsUtils.isNeedReplaceMembers = (oldControls: any, controls: any) => {\n // no breakout case\n if (!oldControls?.breakout || !controls?.breakout) {\n return false;\n }\n\n return (\n oldControls.breakout.groupId !== controls.breakout.groupId ||\n oldControls.breakout.sessionId !== controls.breakout.sessionId\n );\n};\n\n/**\n * determine the switch status between breakout session and main session.\n * @param {LocusControls} oldControls\n * @param {LocusControls} controls\n * @returns {Object}\n */\nControlsUtils.getSessionSwitchStatus = (oldControls: any, controls: any) => {\n const status = {isReturnToMain: false, isJoinToBreakout: false};\n // no breakout case\n if (!oldControls?.breakout || !controls?.breakout) {\n return status;\n }\n\n status.isReturnToMain =\n oldControls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n status.isJoinToBreakout =\n oldControls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN &&\n controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT;\n\n return status;\n};\n\nControlsUtils.isMainSessionDTO = (locus: any) => {\n return locus?.controls?.breakout?.sessionType !== BREAKOUTS.SESSION_TYPES.BREAKOUT;\n};\n\nexport default ControlsUtils;\n"],"mappings":";;;;;;;;;;;;;;;AACA;AAAuC;AAAA;AAEvC,IAAMA,aAAkB,GAAG,CAAC,CAAC;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACAA,aAAa,CAACC,KAAK,GAAG,UAACC,QAAa,EAAK;EACvC,IAAMC,cAAc,qBAAOD,QAAQ,CAAC;EAEpC,IAAIA,QAAQ,IAAIA,QAAQ,CAACE,MAAM,EAAE;IAC/BD,cAAc,CAACC,MAAM,GAAG;MACtBC,UAAU,EAAEL,aAAa,CAACM,KAAK,CAACJ,QAAQ,CAAC;MACzCK,MAAM,EAAEL,QAAQ,CAACE,MAAM,CAACG,MAAM,GAAGL,QAAQ,CAACE,MAAM,CAACG,MAAM,GAAG,KAAK;MAC/DC,SAAS,EAAEN,QAAQ,CAACE,MAAM,CAACI,SAAS;MACpCC,YAAY,EAAEP,QAAQ,CAACE,MAAM,CAACM,IAAI,CAACD;IACrC,CAAC;EACH;EAEA,IAAIP,QAAQ,IAAIA,QAAQ,CAACS,gBAAgB,EAAE;IACzCR,cAAc,CAACQ,gBAAgB,GAAG;MAChCC,mBAAmB,EAAEV,QAAQ,CAACS,gBAAgB,CAACC;IACjD,CAAC;EACH;EAEA,IAAIV,QAAQ,IAAIA,QAAQ,CAACW,UAAU,EAAE;IACnCV,cAAc,CAACU,UAAU,GAAG;MAC1BC,YAAY,EAAEZ,QAAQ,CAACW,UAAU,CAACC,YAAY;MAC9CC,OAAO,EAAEb,QAAQ,CAACW,UAAU,CAACE;IAC/B,CAAC;EACH;EAEA,IAAIb,QAAQ,IAAIA,QAAQ,CAACc,aAAa,EAAE;IACtCb,cAAc,CAACa,aAAa,GAAGd,QAAQ,CAACc,aAAa,CAACC,OAAO,GACzDf,QAAQ,CAACc,aAAa,CAACE,IAAI,GAC3B,IAAI;EACV;EAEA,IAAIhB,QAAQ,IAAIA,QAAQ,CAACiB,KAAK,EAAE;IAC9BhB,cAAc,CAACiB,YAAY,GAAGlB,QAAQ,CAACiB,KAAK,CAACF,OAAO;EACtD;EAEA,IAAIf,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEmB,WAAW,EAAE;IACzBlB,cAAc,CAACkB,WAAW,GAAG;MAACJ,OAAO,EAAEf,QAAQ,CAACmB,WAAW,CAACJ;IAAO,CAAC;EACtE;EAEA,IAAIf,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEoB,YAAY,EAAE;IAC1BnB,cAAc,CAACmB,YAAY,GAAG;MAACC,OAAO,EAAErB,QAAQ,CAACoB,YAAY,CAACC;IAAO,CAAC;EACxE;EAEA,IAAIrB,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEsB,cAAc,EAAE;IAC5BrB,cAAc,CAACqB,cAAc,GAAG;MAACP,OAAO,EAAEf,QAAQ,CAACsB,cAAc,CAACP;IAAO,CAAC;EAC5E;EAEA,IAAIf,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEuB,SAAS,EAAE;IACvBtB,cAAc,CAACsB,SAAS,GAAG;MACzBR,OAAO,EAAEf,QAAQ,CAACuB,SAAS,CAACR,OAAO;MACnCS,4BAA4B,EAAExB,QAAQ,CAACuB,SAAS,CAACC;IACnD,CAAC;EACH;EAEA,IAAIxB,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEyB,sBAAsB,EAAE;IACpCxB,cAAc,CAACwB,sBAAsB,GAAG;MAACV,OAAO,EAAEf,QAAQ,CAACyB,sBAAsB,CAACV;IAAO,CAAC;EAC5F;EAEA,IAAIf,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAE0B,SAAS,EAAE;IACvBzB,cAAc,CAACyB,SAAS,GAAG;MAACX,OAAO,EAAEf,QAAQ,CAAC0B,SAAS,CAACX;IAAO,CAAC;EAClE;EAEA,IAAIf,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEiB,KAAK,EAAE;IACnBhB,cAAc,CAACgB,KAAK,GAAG;MAACF,OAAO,EAAEf,QAAQ,CAACiB,KAAK,CAACF;IAAO,CAAC;EAC1D;EAEA,OAAOd,cAAc;AACvB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACAH,aAAa,CAAC6B,WAAW,GAAG,UAACC,WAAgB,EAAEC,WAAgB,EAAK;EAAA;EAClE,IAAMC,QAAQ,GAAGhC,aAAa,CAACC,KAAK,CAAC6B,WAAW,CAAC;EACjD,IAAMG,OAAO,GAAGjC,aAAa,CAACC,KAAK,CAAC8B,WAAW,CAAC;EAEhD,OAAO;IACLC,QAAQ,EAARA,QAAQ;IACRC,OAAO,EAAPA,OAAO;IACPC,OAAO,EAAE;MACPC,qBAAqB,EAAE,CAAAF,OAAO,aAAPA,OAAO,+CAAPA,OAAO,CAAEZ,WAAW,yDAApB,qBAAsBJ,OAAO,OAAKe,QAAQ,aAARA,QAAQ,gDAARA,QAAQ,CAAEX,WAAW,0DAArB,sBAAuBJ,OAAO;MAEvFmB,sBAAsB,EAAE,CAAAH,OAAO,aAAPA,OAAO,gDAAPA,OAAO,CAAEX,YAAY,0DAArB,sBAAuBC,OAAO,OAAKS,QAAQ,aAARA,QAAQ,gDAARA,QAAQ,CAAEV,YAAY,0DAAtB,sBAAwBC,OAAO;MAE1Fc,wBAAwB,EACtB,CAAAJ,OAAO,aAAPA,OAAO,gDAAPA,OAAO,CAAET,cAAc,0DAAvB,sBAAyBP,OAAO,OAAKe,QAAQ,aAARA,QAAQ,gDAARA,QAAQ,CAAER,cAAc,0DAAxB,sBAA0BP,OAAO;MAExEqB,mBAAmB,EAAE,CAAAL,OAAO,aAAPA,OAAO,6CAAPA,OAAO,CAAER,SAAS,uDAAlB,mBAAoBR,OAAO,OAAKe,QAAQ,aAARA,QAAQ,8CAARA,QAAQ,CAAEP,SAAS,wDAAnB,oBAAqBR,OAAO;MAEjFsB,8BAA8B,EAC5B,CAAAN,OAAO,aAAPA,OAAO,8CAAPA,OAAO,CAAER,SAAS,wDAAlB,oBAAoBC,4BAA4B,OAChDM,QAAQ,aAARA,QAAQ,+CAARA,QAAQ,CAAEP,SAAS,yDAAnB,qBAAqBC,4BAA4B;MAEnDc,gCAAgC,EAC9B,CAAAP,OAAO,aAAPA,OAAO,gDAAPA,OAAO,CAAEN,sBAAsB,0DAA/B,sBAAiCV,OAAO,OAAKe,QAAQ,aAARA,QAAQ,gDAARA,QAAQ,CAAEL,sBAAsB,0DAAhC,sBAAkCV,OAAO;MAExFwB,mBAAmB,EAAE,CAAAR,OAAO,aAAPA,OAAO,6CAAPA,OAAO,CAAEL,SAAS,uDAAlB,mBAAoBX,OAAO,OAAKe,QAAQ,aAARA,QAAQ,8CAARA,QAAQ,CAAEJ,SAAS,wDAAnB,oBAAqBX,OAAO;MAEjFyB,eAAe,EAAE,CAAAT,OAAO,aAAPA,OAAO,yCAAPA,OAAO,CAAEd,KAAK,mDAAd,eAAgBF,OAAO,OAAKe,QAAQ,aAARA,QAAQ,0CAARA,QAAQ,CAAEb,KAAK,oDAAf,gBAAiBF,OAAO;MAErE0B,yBAAyB,EACvB,CAAAV,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE7B,MAAM,KACf,CAAC,uBAAQ4B,QAAQ,aAARA,QAAQ,2CAARA,QAAQ,CAAE5B,MAAM,qDAAhB,iBAAkBG,MAAM,EAAE0B,OAAO,CAAC7B,MAAM,CAACG,MAAM,CAAC,KACxD,CAAAyB,QAAQ,aAARA,QAAQ,4CAARA,QAAQ,CAAE5B,MAAM,sDAAhB,kBAAkBI,SAAS,MAAIyB,OAAO,aAAPA,OAAO,0CAAPA,OAAO,CAAE7B,MAAM,oDAAf,gBAAiBI,SAAS,EAAC;MAAE;;MAE/DoC,mBAAmB,EACjB,CAAAX,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE7B,MAAM,KACf,CAAC,uBAAQ4B,QAAQ,aAARA,QAAQ,4CAARA,QAAQ,CAAE5B,MAAM,sDAAhB,kBAAkBI,SAAS,EAAEyB,OAAO,aAAPA,OAAO,2CAAPA,OAAO,CAAE7B,MAAM,qDAAf,iBAAiBI,SAAS,CAAC;MAAI;MACpE,CAAAwB,QAAQ,aAARA,QAAQ,4CAARA,QAAQ,CAAE5B,MAAM,sDAAhB,kBAAkBI,SAAS,MAAIyB,OAAO,aAAPA,OAAO,2CAAPA,OAAO,CAAE7B,MAAM,qDAAf,iBAAiBI,SAAS,EAAC;MAAE;;MAE/DqC,0BAA0B,EACxB,CAAAZ,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEtB,gBAAgB,KACzB,CAAC,uBACCqB,QAAQ,aAARA,QAAQ,gDAARA,QAAQ,CAAErB,gBAAgB,0DAA1B,sBAA4BC,mBAAmB,EAC/CqB,OAAO,aAAPA,OAAO,gDAAPA,OAAO,CAAEtB,gBAAgB,0DAAzB,sBAA2BC,mBAAmB,CAC/C;MAEHkC,oBAAoB,EAClB,CAAAb,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEpB,UAAU,KACnB,CAAC,uBAAQmB,QAAQ,aAARA,QAAQ,+CAARA,QAAQ,CAAEnB,UAAU,yDAApB,qBAAsBC,YAAY,EAAEmB,OAAO,aAAPA,OAAO,8CAAPA,OAAO,CAAEpB,UAAU,wDAAnB,oBAAqBC,YAAY,CAAC;MAAI;MAClF,CAAAkB,QAAQ,aAARA,QAAQ,gDAARA,QAAQ,CAAEnB,UAAU,0DAApB,sBAAsBC,YAAY,MAAImB,OAAO,aAAPA,OAAO,+CAAPA,OAAO,CAAEpB,UAAU,yDAAnB,qBAAqBC,YAAY,EAAC;MAAE;;MAE7EiC,uBAAuB,EAAE,CAAC,EACxBhB,WAAW,CAACf,aAAa,IACzB,CAAC,uBAAQgB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEhB,aAAa,EAAEiB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEjB,aAAa,CAAC,KACxDgB,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEhB,aAAa,IAAIiB,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEjB,aAAa,CAAC,CACpD;MAEDgC,kBAAkB,EAAE,CAAC,uBAAQhB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEiB,QAAQ,EAAEhB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEgB,QAAQ,CAAC;MAEnEC,sBAAsB,EACpB,uBAAAnB,WAAW,CAACZ,KAAK,uDAAjB,mBAAmBF,OAAO,MAAKkC,SAAS,IACxC,CAAC,uBAAQnB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEZ,YAAY,EAAEa,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEb,YAAY;IAC1D;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACApB,aAAa,CAACM,KAAK,GAAG,UAACJ,QAAa,EAAK;EACvC,IAAIA,QAAQ,CAACE,MAAM,CAACM,IAAI,EAAE;IACxB,OAAOR,QAAQ,CAACE,MAAM,CAACM,IAAI,CAACL,UAAU;EACxC;EAEA,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACAL,aAAa,CAACoD,oBAAoB,GAAG,UAACtB,WAAgB,EAAE5B,QAAa,EAAK;EACxE;EACA,IAAI,EAAC4B,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEmB,QAAQ,KAAI,EAAC/C,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAE+C,QAAQ,GAAE;IACjD,OAAO,KAAK;EACd;EAEA,OACEnB,WAAW,CAACmB,QAAQ,CAACI,OAAO,KAAKnD,QAAQ,CAAC+C,QAAQ,CAACI,OAAO,IAC1DvB,WAAW,CAACmB,QAAQ,CAACK,SAAS,KAAKpD,QAAQ,CAAC+C,QAAQ,CAACK,SAAS;AAElE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACAtD,aAAa,CAACuD,sBAAsB,GAAG,UAACzB,WAAgB,EAAE5B,QAAa,EAAK;EAC1E,IAAMsD,MAAM,GAAG;IAACC,cAAc,EAAE,KAAK;IAAEC,gBAAgB,EAAE;EAAK,CAAC;EAC/D;EACA,IAAI,EAAC5B,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEmB,QAAQ,KAAI,EAAC/C,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAE+C,QAAQ,GAAE;IACjD,OAAOO,MAAM;EACf;EAEAA,MAAM,CAACC,cAAc,GACnB3B,WAAW,CAACmB,QAAQ,CAACU,WAAW,KAAKC,oBAAS,CAACC,aAAa,CAACC,QAAQ,IACrE5D,QAAQ,CAAC+C,QAAQ,CAACU,WAAW,KAAKC,oBAAS,CAACC,aAAa,CAACE,IAAI;EAChEP,MAAM,CAACE,gBAAgB,GACrB5B,WAAW,CAACmB,QAAQ,CAACU,WAAW,KAAKC,oBAAS,CAACC,aAAa,CAACE,IAAI,IACjE7D,QAAQ,CAAC+C,QAAQ,CAACU,WAAW,KAAKC,oBAAS,CAACC,aAAa,CAACC,QAAQ;EAEpE,OAAON,MAAM;AACf,CAAC;AAEDxD,aAAa,CAACgE,gBAAgB,GAAG,UAACC,KAAU,EAAK;EAAA;EAC/C,OAAO,CAAAA,KAAK,aAALA,KAAK,0CAALA,KAAK,CAAE/D,QAAQ,6EAAf,gBAAiB+C,QAAQ,0DAAzB,sBAA2BU,WAAW,MAAKC,oBAAS,CAACC,aAAa,CAACC,QAAQ;AACpF,CAAC;AAAC,eAEa9D,aAAa;AAAA"}
@@ -1,55 +1,39 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
-
5
4
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
-
7
5
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
8
-
9
6
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
10
-
11
7
  var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
12
-
13
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
14
-
15
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
16
-
17
10
  _Object$defineProperty(exports, "__esModule", {
18
11
  value: true
19
12
  });
20
-
21
13
  exports.default = void 0;
22
-
23
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
24
-
25
15
  var _constants = require("../constants");
26
-
27
16
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
28
-
29
17
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
30
-
31
18
  var EmbeddedAppsUtils = {};
32
19
  var SLIDO_REGEX = /.sli.do\//;
20
+
33
21
  /**
34
22
  * Parse the relevant values that we care about
35
23
  * @param {Object} embeddedApp - raw embedded app object
36
24
  * @returns {Object} parsedObject - parsed embedded app object
37
25
  */
38
-
39
26
  EmbeddedAppsUtils.parseApp = function (embeddedApp) {
40
27
  var _parsedApp$instanceIn;
41
-
42
28
  var parsedApp = _objectSpread({}, embeddedApp);
43
-
44
29
  parsedApp.type = _constants.EMBEDDED_APP_TYPES.OTHER;
45
30
  var url = (_parsedApp$instanceIn = parsedApp.instanceInfo) === null || _parsedApp$instanceIn === void 0 ? void 0 : _parsedApp$instanceIn.appInstanceUrl;
46
-
47
31
  if (url && url.match(SLIDO_REGEX)) {
48
32
  parsedApp.type = _constants.EMBEDDED_APP_TYPES.SLIDO;
49
33
  }
50
-
51
34
  return parsedApp;
52
35
  };
36
+
53
37
  /**
54
38
  * Determines if two embedded apps arrays are similar.
55
39
  * NOTE: This is a simple test for performance reasons.
@@ -57,36 +41,29 @@ EmbeddedAppsUtils.parseApp = function (embeddedApp) {
57
41
  * @param {any[]} apps2 - an array of apps
58
42
  * @returns {boolean} true if the arrays are different
59
43
  */
60
-
61
-
62
44
  EmbeddedAppsUtils.areSimilar = function (apps1, apps2) {
63
45
  if (!apps1 || !apps2) {
64
46
  return apps1 === apps2;
65
47
  }
66
-
67
48
  if ((apps1 === null || apps1 === void 0 ? void 0 : apps1.length) !== (apps2 === null || apps2 === void 0 ? void 0 : apps2.length)) {
68
49
  return false;
69
50
  }
70
-
71
51
  for (var i = 0; i < apps1.length; i += 1) {
72
52
  if (apps1[i].state !== apps2[i].state) {
73
53
  return false;
74
54
  }
75
55
  }
76
-
77
56
  return true;
78
57
  };
58
+
79
59
  /**
80
60
  * Parse the array of embedded apps
81
61
  * @param {array} embeddedApps
82
62
  * @returns {array} result - new array of parsed embedded app objects
83
63
  */
84
-
85
-
86
64
  EmbeddedAppsUtils.parse = function (embeddedApps) {
87
65
  return embeddedApps && embeddedApps.map(EmbeddedAppsUtils.parseApp);
88
66
  };
89
-
90
67
  var _default = EmbeddedAppsUtils;
91
68
  exports.default = _default;
92
69
  //# sourceMappingURL=embeddedAppsUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["EmbeddedAppsUtils","SLIDO_REGEX","parseApp","embeddedApp","parsedApp","type","EMBEDDED_APP_TYPES","OTHER","url","instanceInfo","appInstanceUrl","match","SLIDO","areSimilar","apps1","apps2","length","i","state","parse","embeddedApps","map"],"sources":["embeddedAppsUtils.ts"],"sourcesContent":["import {EMBEDDED_APP_TYPES} from '../constants';\n\nconst EmbeddedAppsUtils: any = {};\nconst SLIDO_REGEX = /.sli.do\\//;\n\n/**\n * Parse the relevant values that we care about\n * @param {Object} embeddedApp - raw embedded app object\n * @returns {Object} parsedObject - parsed embedded app object\n */\nEmbeddedAppsUtils.parseApp = (embeddedApp: object) => {\n const parsedApp: any = {...embeddedApp};\n\n parsedApp.type = EMBEDDED_APP_TYPES.OTHER;\n const url = parsedApp.instanceInfo?.appInstanceUrl;\n\n if (url && url.match(SLIDO_REGEX)) {\n parsedApp.type = EMBEDDED_APP_TYPES.SLIDO;\n }\n\n return parsedApp;\n};\n\n/**\n * Determines if two embedded apps arrays are similar.\n * NOTE: This is a simple test for performance reasons.\n * @param {any[]} apps1 - an array of apps\n * @param {any[]} apps2 - an array of apps\n * @returns {boolean} true if the arrays are different\n */\nEmbeddedAppsUtils.areSimilar = (apps1: any[], apps2: any[]) => {\n if (!apps1 || !apps2) {\n return apps1 === apps2;\n }\n\n if (apps1?.length !== apps2?.length) {\n return false;\n }\n\n for (let i = 0; i < apps1.length; i += 1) {\n if (apps1[i].state !== apps2[i].state) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * Parse the array of embedded apps\n * @param {array} embeddedApps\n * @returns {array} result - new array of parsed embedded app objects\n */\nEmbeddedAppsUtils.parse = (embeddedApps: Array<any>) =>\n embeddedApps && embeddedApps.map(EmbeddedAppsUtils.parseApp);\n\nexport default EmbeddedAppsUtils;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAEA,IAAMA,iBAAsB,GAAG,EAA/B;AACA,IAAMC,WAAW,GAAG,WAApB;AAEA;AACA;AACA;AACA;AACA;;AACAD,iBAAiB,CAACE,QAAlB,GAA6B,UAACC,WAAD,EAAyB;EAAA;;EACpD,IAAMC,SAAc,qBAAOD,WAAP,CAApB;;EAEAC,SAAS,CAACC,IAAV,GAAiBC,6BAAA,CAAmBC,KAApC;EACA,IAAMC,GAAG,4BAAGJ,SAAS,CAACK,YAAb,0DAAG,sBAAwBC,cAApC;;EAEA,IAAIF,GAAG,IAAIA,GAAG,CAACG,KAAJ,CAAUV,WAAV,CAAX,EAAmC;IACjCG,SAAS,CAACC,IAAV,GAAiBC,6BAAA,CAAmBM,KAApC;EACD;;EAED,OAAOR,SAAP;AACD,CAXD;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACAJ,iBAAiB,CAACa,UAAlB,GAA+B,UAACC,KAAD,EAAeC,KAAf,EAAgC;EAC7D,IAAI,CAACD,KAAD,IAAU,CAACC,KAAf,EAAsB;IACpB,OAAOD,KAAK,KAAKC,KAAjB;EACD;;EAED,IAAI,CAAAD,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEE,MAAP,OAAkBD,KAAlB,aAAkBA,KAAlB,uBAAkBA,KAAK,CAAEC,MAAzB,CAAJ,EAAqC;IACnC,OAAO,KAAP;EACD;;EAED,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,KAAK,CAACE,MAA1B,EAAkCC,CAAC,IAAI,CAAvC,EAA0C;IACxC,IAAIH,KAAK,CAACG,CAAD,CAAL,CAASC,KAAT,KAAmBH,KAAK,CAACE,CAAD,CAAL,CAASC,KAAhC,EAAuC;MACrC,OAAO,KAAP;IACD;EACF;;EAED,OAAO,IAAP;AACD,CAhBD;AAkBA;AACA;AACA;AACA;AACA;;;AACAlB,iBAAiB,CAACmB,KAAlB,GAA0B,UAACC,YAAD;EAAA,OACxBA,YAAY,IAAIA,YAAY,CAACC,GAAb,CAAiBrB,iBAAiB,CAACE,QAAnC,CADQ;AAAA,CAA1B;;eAGeF,iB"}
1
+ {"version":3,"names":["EmbeddedAppsUtils","SLIDO_REGEX","parseApp","embeddedApp","parsedApp","type","EMBEDDED_APP_TYPES","OTHER","url","instanceInfo","appInstanceUrl","match","SLIDO","areSimilar","apps1","apps2","length","i","state","parse","embeddedApps","map"],"sources":["embeddedAppsUtils.ts"],"sourcesContent":["import {EMBEDDED_APP_TYPES} from '../constants';\n\nconst EmbeddedAppsUtils: any = {};\nconst SLIDO_REGEX = /.sli.do\\//;\n\n/**\n * Parse the relevant values that we care about\n * @param {Object} embeddedApp - raw embedded app object\n * @returns {Object} parsedObject - parsed embedded app object\n */\nEmbeddedAppsUtils.parseApp = (embeddedApp: object) => {\n const parsedApp: any = {...embeddedApp};\n\n parsedApp.type = EMBEDDED_APP_TYPES.OTHER;\n const url = parsedApp.instanceInfo?.appInstanceUrl;\n\n if (url && url.match(SLIDO_REGEX)) {\n parsedApp.type = EMBEDDED_APP_TYPES.SLIDO;\n }\n\n return parsedApp;\n};\n\n/**\n * Determines if two embedded apps arrays are similar.\n * NOTE: This is a simple test for performance reasons.\n * @param {any[]} apps1 - an array of apps\n * @param {any[]} apps2 - an array of apps\n * @returns {boolean} true if the arrays are different\n */\nEmbeddedAppsUtils.areSimilar = (apps1: any[], apps2: any[]) => {\n if (!apps1 || !apps2) {\n return apps1 === apps2;\n }\n\n if (apps1?.length !== apps2?.length) {\n return false;\n }\n\n for (let i = 0; i < apps1.length; i += 1) {\n if (apps1[i].state !== apps2[i].state) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * Parse the array of embedded apps\n * @param {array} embeddedApps\n * @returns {array} result - new array of parsed embedded app objects\n */\nEmbeddedAppsUtils.parse = (embeddedApps: Array<any>) =>\n embeddedApps && embeddedApps.map(EmbeddedAppsUtils.parseApp);\n\nexport default EmbeddedAppsUtils;\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAgD;AAAA;AAEhD,IAAMA,iBAAsB,GAAG,CAAC,CAAC;AACjC,IAAMC,WAAW,GAAG,WAAW;;AAE/B;AACA;AACA;AACA;AACA;AACAD,iBAAiB,CAACE,QAAQ,GAAG,UAACC,WAAmB,EAAK;EAAA;EACpD,IAAMC,SAAc,qBAAOD,WAAW,CAAC;EAEvCC,SAAS,CAACC,IAAI,GAAGC,6BAAkB,CAACC,KAAK;EACzC,IAAMC,GAAG,4BAAGJ,SAAS,CAACK,YAAY,0DAAtB,sBAAwBC,cAAc;EAElD,IAAIF,GAAG,IAAIA,GAAG,CAACG,KAAK,CAACV,WAAW,CAAC,EAAE;IACjCG,SAAS,CAACC,IAAI,GAAGC,6BAAkB,CAACM,KAAK;EAC3C;EAEA,OAAOR,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACAJ,iBAAiB,CAACa,UAAU,GAAG,UAACC,KAAY,EAAEC,KAAY,EAAK;EAC7D,IAAI,CAACD,KAAK,IAAI,CAACC,KAAK,EAAE;IACpB,OAAOD,KAAK,KAAKC,KAAK;EACxB;EAEA,IAAI,CAAAD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEE,MAAM,OAAKD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,MAAM,GAAE;IACnC,OAAO,KAAK;EACd;EAEA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,CAACE,MAAM,EAAEC,CAAC,IAAI,CAAC,EAAE;IACxC,IAAIH,KAAK,CAACG,CAAC,CAAC,CAACC,KAAK,KAAKH,KAAK,CAACE,CAAC,CAAC,CAACC,KAAK,EAAE;MACrC,OAAO,KAAK;IACd;EACF;EAEA,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAlB,iBAAiB,CAACmB,KAAK,GAAG,UAACC,YAAwB;EAAA,OACjDA,YAAY,IAAIA,YAAY,CAACC,GAAG,CAACrB,iBAAiB,CAACE,QAAQ,CAAC;AAAA;AAAC,eAEhDF,iBAAiB;AAAA"}
@@ -1,17 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  _Object$defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
-
9
7
  exports.default = void 0;
10
-
11
8
  var _constants = require("../constants");
12
-
13
9
  var FullState = {};
14
-
15
10
  FullState.parse = function (fullState) {
16
11
  return {
17
12
  type: fullState.type || _constants.FULL_STATE.UNKNOWN,
@@ -19,7 +14,6 @@ FullState.parse = function (fullState) {
19
14
  locked: fullState.locked
20
15
  };
21
16
  };
22
-
23
17
  FullState.getFullState = function (oldFullState, newFullState) {
24
18
  var previous = oldFullState && FullState.parse(oldFullState);
25
19
  var current = newFullState && FullState.parse(newFullState);
@@ -34,39 +28,30 @@ FullState.getFullState = function (oldFullState, newFullState) {
34
28
  }
35
29
  };
36
30
  };
37
-
38
31
  FullState.isMeetingEnded = function (previous, current) {
39
32
  if (current.state === _constants.FULL_STATE.INACTIVE && previous && (previous.state === _constants.FULL_STATE.ACTIVE || previous.state === _constants.FULL_STATE.INITIALIZING || previous.state === _constants.FULL_STATE.TERMINATING)) {
40
33
  return true;
41
34
  }
42
-
43
35
  return false;
44
36
  };
45
-
46
37
  FullState.isMeetingTerminating = function (previous, current) {
47
38
  if (current.state === _constants.FULL_STATE.TERMINATING && previous && (previous.state === _constants.FULL_STATE.ACTIVE || previous.state === _constants.FULL_STATE.INITIALIZING)) {
48
39
  return true;
49
40
  }
50
-
51
41
  return false;
52
42
  };
53
-
54
43
  FullState.isTypeChanged = function (previous, current) {
55
44
  if (!previous || current.type !== previous.type) {
56
45
  return current && current.type;
57
46
  }
58
-
59
47
  return null;
60
48
  };
61
-
62
49
  FullState.meetingStateChange = function (previous, current) {
63
50
  if (!previous || current.meetingState !== previous.meetingState) {
64
51
  return current && current.meetingState;
65
52
  }
66
-
67
53
  return null;
68
54
  };
69
-
70
55
  var _default = FullState;
71
56
  exports.default = _default;
72
57
  //# sourceMappingURL=fullState.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["FullState","parse","fullState","type","FULL_STATE","UNKNOWN","meetingState","state","locked","getFullState","oldFullState","newFullState","previous","current","updates","isMeetingEnded","isMeetingTerminating","meetingTypeChangedTo","isTypeChanged","meetingStateChangedTo","meetingStateChange","INACTIVE","ACTIVE","INITIALIZING","TERMINATING"],"sources":["fullState.ts"],"sourcesContent":["import {FULL_STATE} from '../constants';\n\nconst FullState: any = {};\n\nFullState.parse = (fullState) => ({\n type: fullState.type || FULL_STATE.UNKNOWN,\n meetingState: fullState.state,\n locked: fullState.locked\n});\n\n\nFullState.getFullState = (oldFullState, newFullState) => {\n const previous = oldFullState && FullState.parse(oldFullState);\n const current = newFullState && FullState.parse(newFullState);\n\n return {\n previous,\n current,\n updates: {\n isMeetingEnded: FullState.isMeetingEnded(previous, current),\n isMeetingTerminating: FullState.isMeetingTerminating(previous, current),\n meetingTypeChangedTo: FullState.isTypeChanged(previous, current),\n meetingStateChangedTo: FullState.meetingStateChange(previous, current)\n }\n };\n};\n\nFullState.isMeetingEnded = (previous, current) => {\n if (current.state === FULL_STATE.INACTIVE && previous &&\n (previous.state === FULL_STATE.ACTIVE ||\n previous.state === FULL_STATE.INITIALIZING ||\n previous.state === FULL_STATE.TERMINATING)) {\n return true;\n }\n\n return false;\n};\n\nFullState.isMeetingTerminating = (previous, current) => {\n if (current.state === FULL_STATE.TERMINATING && previous &&\n (previous.state === FULL_STATE.ACTIVE ||\n previous.state === FULL_STATE.INITIALIZING)) {\n return true;\n }\n\n return false;\n};\n\nFullState.isTypeChanged = (previous, current) => {\n if (!previous || current.type !== previous.type) {\n return current && current.type;\n }\n\n return null;\n};\n\nFullState.meetingStateChange = (previous, current) => {\n if (!previous || current.meetingState !== previous.meetingState) {\n return current && current.meetingState;\n }\n\n return null;\n};\n\nexport default FullState;\n"],"mappings":";;;;;;;;;;AAAA;;AAEA,IAAMA,SAAc,GAAG,EAAvB;;AAEAA,SAAS,CAACC,KAAV,GAAkB,UAACC,SAAD;EAAA,OAAgB;IAChCC,IAAI,EAAED,SAAS,CAACC,IAAV,IAAkBC,qBAAA,CAAWC,OADH;IAEhCC,YAAY,EAAEJ,SAAS,CAACK,KAFQ;IAGhCC,MAAM,EAAEN,SAAS,CAACM;EAHc,CAAhB;AAAA,CAAlB;;AAOAR,SAAS,CAACS,YAAV,GAAyB,UAACC,YAAD,EAAeC,YAAf,EAAgC;EACvD,IAAMC,QAAQ,GAAGF,YAAY,IAAIV,SAAS,CAACC,KAAV,CAAgBS,YAAhB,CAAjC;EACA,IAAMG,OAAO,GAAGF,YAAY,IAAIX,SAAS,CAACC,KAAV,CAAgBU,YAAhB,CAAhC;EAEA,OAAO;IACLC,QAAQ,EAARA,QADK;IAELC,OAAO,EAAPA,OAFK;IAGLC,OAAO,EAAE;MACPC,cAAc,EAAEf,SAAS,CAACe,cAAV,CAAyBH,QAAzB,EAAmCC,OAAnC,CADT;MAEPG,oBAAoB,EAAEhB,SAAS,CAACgB,oBAAV,CAA+BJ,QAA/B,EAAyCC,OAAzC,CAFf;MAGPI,oBAAoB,EAAEjB,SAAS,CAACkB,aAAV,CAAwBN,QAAxB,EAAkCC,OAAlC,CAHf;MAIPM,qBAAqB,EAAEnB,SAAS,CAACoB,kBAAV,CAA6BR,QAA7B,EAAuCC,OAAvC;IAJhB;EAHJ,CAAP;AAUD,CAdD;;AAgBAb,SAAS,CAACe,cAAV,GAA2B,UAACH,QAAD,EAAWC,OAAX,EAAuB;EAChD,IAAIA,OAAO,CAACN,KAAR,KAAkBH,qBAAA,CAAWiB,QAA7B,IAAyCT,QAAzC,KACFA,QAAQ,CAACL,KAAT,KAAmBH,qBAAA,CAAWkB,MAA9B,IACAV,QAAQ,CAACL,KAAT,KAAmBH,qBAAA,CAAWmB,YAD9B,IAEAX,QAAQ,CAACL,KAAT,KAAmBH,qBAAA,CAAWoB,WAH5B,CAAJ,EAG8C;IAC5C,OAAO,IAAP;EACD;;EAED,OAAO,KAAP;AACD,CATD;;AAWAxB,SAAS,CAACgB,oBAAV,GAAiC,UAACJ,QAAD,EAAWC,OAAX,EAAuB;EACtD,IAAIA,OAAO,CAACN,KAAR,KAAkBH,qBAAA,CAAWoB,WAA7B,IAA4CZ,QAA5C,KACHA,QAAQ,CAACL,KAAT,KAAmBH,qBAAA,CAAWkB,MAA9B,IACCV,QAAQ,CAACL,KAAT,KAAmBH,qBAAA,CAAWmB,YAF5B,CAAJ,EAE+C;IAC7C,OAAO,IAAP;EACD;;EAED,OAAO,KAAP;AACD,CARD;;AAUAvB,SAAS,CAACkB,aAAV,GAA0B,UAACN,QAAD,EAAWC,OAAX,EAAuB;EAC/C,IAAI,CAACD,QAAD,IAAaC,OAAO,CAACV,IAAR,KAAiBS,QAAQ,CAACT,IAA3C,EAAiD;IAC/C,OAAOU,OAAO,IAAIA,OAAO,CAACV,IAA1B;EACD;;EAED,OAAO,IAAP;AACD,CAND;;AAQAH,SAAS,CAACoB,kBAAV,GAA+B,UAACR,QAAD,EAAWC,OAAX,EAAuB;EACpD,IAAI,CAACD,QAAD,IAAaC,OAAO,CAACP,YAAR,KAAyBM,QAAQ,CAACN,YAAnD,EAAiE;IAC/D,OAAOO,OAAO,IAAIA,OAAO,CAACP,YAA1B;EACD;;EAED,OAAO,IAAP;AACD,CAND;;eAQeN,S"}
1
+ {"version":3,"names":["FullState","parse","fullState","type","FULL_STATE","UNKNOWN","meetingState","state","locked","getFullState","oldFullState","newFullState","previous","current","updates","isMeetingEnded","isMeetingTerminating","meetingTypeChangedTo","isTypeChanged","meetingStateChangedTo","meetingStateChange","INACTIVE","ACTIVE","INITIALIZING","TERMINATING"],"sources":["fullState.ts"],"sourcesContent":["import {FULL_STATE} from '../constants';\n\nconst FullState: any = {};\n\nFullState.parse = (fullState) => ({\n type: fullState.type || FULL_STATE.UNKNOWN,\n meetingState: fullState.state,\n locked: fullState.locked,\n});\n\nFullState.getFullState = (oldFullState, newFullState) => {\n const previous = oldFullState && FullState.parse(oldFullState);\n const current = newFullState && FullState.parse(newFullState);\n\n return {\n previous,\n current,\n updates: {\n isMeetingEnded: FullState.isMeetingEnded(previous, current),\n isMeetingTerminating: FullState.isMeetingTerminating(previous, current),\n meetingTypeChangedTo: FullState.isTypeChanged(previous, current),\n meetingStateChangedTo: FullState.meetingStateChange(previous, current),\n },\n };\n};\n\nFullState.isMeetingEnded = (previous, current) => {\n if (\n current.state === FULL_STATE.INACTIVE &&\n previous &&\n (previous.state === FULL_STATE.ACTIVE ||\n previous.state === FULL_STATE.INITIALIZING ||\n previous.state === FULL_STATE.TERMINATING)\n ) {\n return true;\n }\n\n return false;\n};\n\nFullState.isMeetingTerminating = (previous, current) => {\n if (\n current.state === FULL_STATE.TERMINATING &&\n previous &&\n (previous.state === FULL_STATE.ACTIVE || previous.state === FULL_STATE.INITIALIZING)\n ) {\n return true;\n }\n\n return false;\n};\n\nFullState.isTypeChanged = (previous, current) => {\n if (!previous || current.type !== previous.type) {\n return current && current.type;\n }\n\n return null;\n};\n\nFullState.meetingStateChange = (previous, current) => {\n if (!previous || current.meetingState !== previous.meetingState) {\n return current && current.meetingState;\n }\n\n return null;\n};\n\nexport default FullState;\n"],"mappings":";;;;;;;AAAA;AAEA,IAAMA,SAAc,GAAG,CAAC,CAAC;AAEzBA,SAAS,CAACC,KAAK,GAAG,UAACC,SAAS;EAAA,OAAM;IAChCC,IAAI,EAAED,SAAS,CAACC,IAAI,IAAIC,qBAAU,CAACC,OAAO;IAC1CC,YAAY,EAAEJ,SAAS,CAACK,KAAK;IAC7BC,MAAM,EAAEN,SAAS,CAACM;EACpB,CAAC;AAAA,CAAC;AAEFR,SAAS,CAACS,YAAY,GAAG,UAACC,YAAY,EAAEC,YAAY,EAAK;EACvD,IAAMC,QAAQ,GAAGF,YAAY,IAAIV,SAAS,CAACC,KAAK,CAACS,YAAY,CAAC;EAC9D,IAAMG,OAAO,GAAGF,YAAY,IAAIX,SAAS,CAACC,KAAK,CAACU,YAAY,CAAC;EAE7D,OAAO;IACLC,QAAQ,EAARA,QAAQ;IACRC,OAAO,EAAPA,OAAO;IACPC,OAAO,EAAE;MACPC,cAAc,EAAEf,SAAS,CAACe,cAAc,CAACH,QAAQ,EAAEC,OAAO,CAAC;MAC3DG,oBAAoB,EAAEhB,SAAS,CAACgB,oBAAoB,CAACJ,QAAQ,EAAEC,OAAO,CAAC;MACvEI,oBAAoB,EAAEjB,SAAS,CAACkB,aAAa,CAACN,QAAQ,EAAEC,OAAO,CAAC;MAChEM,qBAAqB,EAAEnB,SAAS,CAACoB,kBAAkB,CAACR,QAAQ,EAAEC,OAAO;IACvE;EACF,CAAC;AACH,CAAC;AAEDb,SAAS,CAACe,cAAc,GAAG,UAACH,QAAQ,EAAEC,OAAO,EAAK;EAChD,IACEA,OAAO,CAACN,KAAK,KAAKH,qBAAU,CAACiB,QAAQ,IACrCT,QAAQ,KACPA,QAAQ,CAACL,KAAK,KAAKH,qBAAU,CAACkB,MAAM,IACnCV,QAAQ,CAACL,KAAK,KAAKH,qBAAU,CAACmB,YAAY,IAC1CX,QAAQ,CAACL,KAAK,KAAKH,qBAAU,CAACoB,WAAW,CAAC,EAC5C;IACA,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd,CAAC;AAEDxB,SAAS,CAACgB,oBAAoB,GAAG,UAACJ,QAAQ,EAAEC,OAAO,EAAK;EACtD,IACEA,OAAO,CAACN,KAAK,KAAKH,qBAAU,CAACoB,WAAW,IACxCZ,QAAQ,KACPA,QAAQ,CAACL,KAAK,KAAKH,qBAAU,CAACkB,MAAM,IAAIV,QAAQ,CAACL,KAAK,KAAKH,qBAAU,CAACmB,YAAY,CAAC,EACpF;IACA,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd,CAAC;AAEDvB,SAAS,CAACkB,aAAa,GAAG,UAACN,QAAQ,EAAEC,OAAO,EAAK;EAC/C,IAAI,CAACD,QAAQ,IAAIC,OAAO,CAACV,IAAI,KAAKS,QAAQ,CAACT,IAAI,EAAE;IAC/C,OAAOU,OAAO,IAAIA,OAAO,CAACV,IAAI;EAChC;EAEA,OAAO,IAAI;AACb,CAAC;AAEDH,SAAS,CAACoB,kBAAkB,GAAG,UAACR,QAAQ,EAAEC,OAAO,EAAK;EACpD,IAAI,CAACD,QAAQ,IAAIC,OAAO,CAACP,YAAY,KAAKM,QAAQ,CAACN,YAAY,EAAE;IAC/D,OAAOO,OAAO,IAAIA,OAAO,CAACP,YAAY;EACxC;EAEA,OAAO,IAAI;AACb,CAAC;AAAC,eAEaN,SAAS;AAAA"}