fcr-ui-scene 3.4.5 → 3.5.1

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 (421) hide show
  1. package/lib/base.js +4 -1
  2. package/lib/creator.d.ts +4 -1
  3. package/lib/creator.js +66 -3
  4. package/lib/electron/app.js +0 -3
  5. package/lib/electron/bootstrap-dev.js +2 -0
  6. package/lib/electron/bootstrap-sdk.js +2 -0
  7. package/lib/electron/main.js +14 -3
  8. package/lib/electron/plugins/devtool-shortcut.js +5 -0
  9. package/lib/electron/plugins/screenshot.js +4 -1
  10. package/lib/modules/action-bar/components/apps/app-item/index.css +3 -3
  11. package/lib/modules/action-bar/components/apps/app-item/index.js +35 -24
  12. package/lib/modules/action-bar/components/apps/app-list.d.ts +3 -0
  13. package/lib/modules/action-bar/components/apps/app-list.js +45 -0
  14. package/lib/modules/action-bar/components/apps/index.css +1 -0
  15. package/lib/modules/action-bar/components/apps/index.js +7 -4
  16. package/lib/modules/action-bar/components/apps/useAppItemOptions.d.ts +10 -2
  17. package/lib/modules/action-bar/components/apps/useAppItemOptions.js +10 -6
  18. package/lib/modules/action-bar/components/apps/useBeautyBackground.d.ts +1 -1
  19. package/lib/modules/action-bar/components/apps/useBeautyBackground.js +2 -2
  20. package/lib/modules/action-bar/components/apps/useInterpreter.d.ts +1 -1
  21. package/lib/modules/action-bar/components/apps/useInterpreter.js +6 -6
  22. package/lib/modules/action-bar/components/apps/useLiveStreaming.d.ts +1 -1
  23. package/lib/modules/action-bar/components/apps/useLiveStreaming.js +2 -2
  24. package/lib/modules/action-bar/components/apps/useWidgetList.d.ts +10 -0
  25. package/lib/modules/action-bar/components/apps/useWidgetList.js +38 -0
  26. package/lib/modules/action-bar/components/chat/index.css +8 -0
  27. package/lib/modules/action-bar/components/chat/index.js +2 -1
  28. package/lib/modules/action-bar/components/collapse/index.d.ts +8 -6
  29. package/lib/modules/action-bar/components/collapse/index.js +60 -74
  30. package/lib/modules/action-bar/components/interpreter/index.js +3 -3
  31. package/lib/modules/action-bar/components/item/index.js +1 -1
  32. package/lib/modules/action-bar/components/more/index.js +13 -7
  33. package/lib/modules/action-bar/components/notification-bar/index.d.ts +1 -1
  34. package/lib/modules/action-bar/components/notification-bar/index.js +13 -6
  35. package/lib/modules/action-bar/components/participants/index.js +1 -1
  36. package/lib/modules/action-bar/components/screen-share/index.js +1 -1
  37. package/lib/modules/action-bar/components/screen-share/submenu.js +55 -18
  38. package/lib/modules/action-bar/components/security/index.js +8 -2
  39. package/lib/modules/action-bar/components/trigger-output-language/index.js +68 -55
  40. package/lib/modules/action-bar/components/trigger-subscribe-language/index.js +35 -18
  41. package/lib/modules/action-bar/index.css +8 -0
  42. package/lib/modules/action-bar/index.d.ts +8 -0
  43. package/lib/modules/action-bar/index.js +6 -3
  44. package/lib/modules/action-bar/store.d.ts +37 -22
  45. package/lib/modules/action-bar/store.js +275 -375
  46. package/lib/modules/action-bar/types.d.ts +8 -13
  47. package/lib/modules/action-bar/view.js +3 -8
  48. package/lib/modules/audio-stream/index.d.ts +6 -1
  49. package/lib/modules/audio-stream/index.js +77 -11
  50. package/lib/modules/chat/chat-room-store.d.ts +4 -7
  51. package/lib/modules/chat/chat-room-store.js +39 -62
  52. package/lib/modules/chat/components/chat-action/index.js +2 -2
  53. package/lib/modules/chat/components/chat-bar/index.css +4 -0
  54. package/lib/modules/chat/components/chat-bar/index.d.ts +1 -1
  55. package/lib/modules/chat/components/chat-bar/index.js +18 -16
  56. package/lib/modules/chat/components/chat-select/index.js +16 -147
  57. package/lib/modules/chat/components/chat-select/select-input/index.d.ts +7 -0
  58. package/lib/modules/chat/components/chat-select/select-input/index.js +35 -0
  59. package/lib/modules/chat/components/chat-select/select-item/index.d.ts +12 -0
  60. package/lib/modules/chat/components/chat-select/select-item/index.js +153 -0
  61. package/lib/modules/chat/components/chat-tabs/index.d.ts +2 -0
  62. package/lib/modules/chat/components/chat-tabs/index.js +61 -0
  63. package/lib/modules/chat/components/message-list/chat-empty/index.d.ts +2 -0
  64. package/lib/modules/chat/components/message-list/chat-empty/index.js +26 -0
  65. package/lib/modules/chat/components/message-list/history-unread-message-button/index.d.ts +7 -0
  66. package/lib/modules/chat/components/message-list/history-unread-message-button/index.js +55 -0
  67. package/lib/modules/chat/components/message-list/index.d.ts +1 -1
  68. package/lib/modules/chat/components/message-list/index.js +55 -359
  69. package/lib/modules/chat/components/message-list/message-item/index.d.ts +15 -0
  70. package/lib/modules/chat/components/message-list/message-item/index.js +309 -0
  71. package/lib/modules/chat/components/message-list/scroll-bottom-button/index.d.ts +9 -0
  72. package/lib/modules/chat/components/message-list/scroll-bottom-button/index.js +67 -0
  73. package/lib/modules/chat/index.css +9 -0
  74. package/lib/modules/chat/index.d.ts +6 -0
  75. package/lib/modules/chat/index.js +4 -1
  76. package/lib/modules/chat/store.d.ts +17 -7
  77. package/lib/modules/chat/store.js +75 -72
  78. package/lib/modules/chat/types.d.ts +7 -7
  79. package/lib/modules/chat/types.js +2 -1
  80. package/lib/modules/chat/view.js +22 -102
  81. package/lib/modules/components/device-control/store.d.ts +4 -3
  82. package/lib/modules/components/device-control/store.js +13 -24
  83. package/lib/modules/components/leave-meeting/components/assign-host.js +17 -2
  84. package/lib/modules/components/leave-meeting/index.js +8 -7
  85. package/lib/modules/components/leave-meeting/store.d.ts +15 -7
  86. package/lib/modules/components/leave-meeting/store.js +116 -95
  87. package/lib/modules/components/member-window/components/member-actions/components/audio-control.d.ts +6 -0
  88. package/lib/modules/components/member-window/components/member-actions/components/audio-control.js +36 -0
  89. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.d.ts +40 -0
  90. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +170 -0
  91. package/lib/modules/components/member-window/components/member-actions/components/icon-status.d.ts +11 -0
  92. package/lib/modules/components/member-window/components/member-actions/components/icon-status.js +105 -0
  93. package/lib/modules/components/member-window/components/member-actions/components/layout/index.d.ts +9 -0
  94. package/lib/modules/components/member-window/components/member-actions/components/layout/index.js +42 -0
  95. package/lib/modules/components/member-window/components/member-actions/components/more-actions.d.ts +11 -0
  96. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +157 -0
  97. package/lib/modules/components/member-window/components/member-actions/components/share-status.d.ts +2 -0
  98. package/lib/modules/components/member-window/components/member-actions/components/share-status.js +34 -0
  99. package/lib/modules/components/member-window/components/member-actions/components/user-info.d.ts +16 -0
  100. package/lib/modules/components/member-window/components/member-actions/components/user-info.js +130 -0
  101. package/lib/modules/components/member-window/components/member-actions/components/user-tag.d.ts +12 -0
  102. package/lib/modules/components/member-window/components/member-actions/components/user-tag.js +57 -0
  103. package/lib/modules/components/member-window/components/member-actions/index.d.ts +3 -0
  104. package/lib/modules/components/member-window/components/member-actions/index.js +122 -0
  105. package/lib/modules/components/member-window/components/member-actions/libs/index.d.ts +2 -0
  106. package/lib/modules/components/member-window/components/member-actions/libs/index.js +24 -0
  107. package/lib/modules/components/member-window/components/member-actions/provider.d.ts +21 -0
  108. package/lib/modules/components/member-window/components/member-actions/provider.js +77 -0
  109. package/lib/modules/components/member-window/components/member-actions/store.d.ts +48 -0
  110. package/lib/modules/components/member-window/components/member-actions/store.js +307 -0
  111. package/lib/modules/components/member-window/components/member-board.d.ts +2 -0
  112. package/lib/modules/components/member-window/components/member-board.js +63 -0
  113. package/lib/modules/components/member-window/components/mic-volume.d.ts +2 -0
  114. package/lib/modules/components/member-window/components/mic-volume.js +23 -0
  115. package/lib/modules/components/member-window/components/video-player/components/local-video-player.d.ts +4 -0
  116. package/lib/modules/components/member-window/components/video-player/components/local-video-player.js +40 -0
  117. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.d.ts +8 -0
  118. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.js +62 -0
  119. package/lib/modules/components/member-window/components/video-player/index.d.ts +9 -0
  120. package/lib/modules/components/member-window/components/video-player/index.js +38 -0
  121. package/lib/modules/components/member-window/index.css +22 -2
  122. package/lib/modules/components/member-window/index.d.ts +10 -75
  123. package/lib/modules/components/member-window/index.js +20 -738
  124. package/lib/modules/components/member-window/types.d.ts +79 -0
  125. package/lib/modules/components/member-window/types.js +6 -0
  126. package/lib/modules/components/security-menu/index.css +0 -2
  127. package/lib/modules/components/security-menu/index.d.ts +5 -1
  128. package/lib/modules/components/security-menu/index.js +37 -59
  129. package/lib/modules/connection-gateway/index.d.ts +6 -0
  130. package/lib/modules/connection-gateway/index.js +4 -1
  131. package/lib/modules/connection-gateway/store.d.ts +12 -3
  132. package/lib/modules/connection-gateway/store.js +29 -27
  133. package/lib/modules/control-bar/components/meeting-details/index.js +11 -17
  134. package/lib/modules/control-bar/components/more-actions/index.js +5 -4
  135. package/lib/modules/control-bar/components/share-state-nav/index.js +22 -10
  136. package/lib/modules/control-bar/index.css +1 -2
  137. package/lib/modules/control-bar/index.d.ts +14 -0
  138. package/lib/modules/control-bar/index.js +10 -4
  139. package/lib/modules/control-bar/store.d.ts +40 -20
  140. package/lib/modules/control-bar/store.js +156 -191
  141. package/lib/modules/control-bar/view.js +65 -25
  142. package/lib/modules/device-pretest/audio-preview/microphone-detection.js +1 -1
  143. package/lib/modules/dialog/components/control-bar/index.d.ts +1 -1
  144. package/lib/modules/dialog/components/control-bar/index.js +43 -43
  145. package/lib/modules/dialog/components/device-setting/index.js +2 -1
  146. package/lib/modules/dialog/components/dialog-container/component/body.d.ts +1 -0
  147. package/lib/modules/dialog/components/dialog-container/component/body.js +3 -2
  148. package/lib/modules/dialog/components/dialog-container/index.d.ts +2 -0
  149. package/lib/modules/dialog/components/dialog-container/index.js +19 -13
  150. package/lib/modules/dialog/components/live-streaming/index.js +4 -2
  151. package/lib/modules/dialog/components/participant/index.js +2 -2
  152. package/lib/modules/dialog/components/share-screen-selection/index.js +3 -1
  153. package/lib/modules/dialog/components/system-preference/assets/bg1.png +0 -0
  154. package/lib/modules/dialog/components/system-preference/assets/bg2.png +0 -0
  155. package/lib/modules/dialog/components/system-preference/assets/fcr_png_host.png +0 -0
  156. package/lib/modules/dialog/components/system-preference/electron.js +6 -6
  157. package/lib/modules/dialog/components/system-preference/index.css +3 -0
  158. package/lib/modules/dialog/components/system-preference/index.d.ts +17 -2
  159. package/lib/modules/dialog/components/system-preference/index.js +47 -55
  160. package/lib/modules/dialog/components/video-window/index.d.ts +1 -1
  161. package/lib/modules/dialog/components/video-window/index.js +216 -101
  162. package/lib/modules/dialog/components/widget/electron.d.ts +5 -0
  163. package/lib/modules/dialog/components/widget/electron.js +37 -0
  164. package/lib/modules/dialog/components/widget/index.d.ts +6 -0
  165. package/lib/modules/dialog/components/widget/index.js +43 -0
  166. package/lib/modules/dialog/hooks/useElectron.d.ts +7 -0
  167. package/lib/modules/dialog/hooks/useElectron.js +226 -28
  168. package/lib/modules/dialog/index.css +1 -11
  169. package/lib/modules/dialog/index.d.ts +9 -6
  170. package/lib/modules/dialog/index.js +12 -12
  171. package/lib/modules/dialog/store.d.ts +26 -10
  172. package/lib/modules/dialog/store.js +151 -82
  173. package/lib/modules/dialog/type.d.ts +84 -0
  174. package/lib/modules/dialog/type.js +6 -0
  175. package/lib/modules/dialog/view.d.ts +1 -4
  176. package/lib/modules/dialog/view.js +12 -9
  177. package/lib/modules/event-confirm/index.css +11 -0
  178. package/lib/modules/event-confirm/index.d.ts +6 -0
  179. package/lib/modules/event-confirm/index.js +3 -2
  180. package/lib/modules/event-confirm/store.d.ts +10 -4
  181. package/lib/modules/event-confirm/store.js +91 -32
  182. package/lib/modules/event-confirm/view.js +63 -24
  183. package/lib/modules/event-toast/store.js +4 -2
  184. package/lib/modules/interpreter/action/edit-btn/index.js +5 -5
  185. package/lib/modules/interpreter/action/switch-btn/index.js +7 -7
  186. package/lib/modules/interpreter/index.d.ts +5 -1
  187. package/lib/modules/interpreter/index.js +4 -2
  188. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/index.js +3 -3
  189. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-user/index.js +6 -5
  190. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-user/option-Item.js +2 -2
  191. package/lib/modules/interpreter/interpreter-list/interpreter-item/index.js +2 -2
  192. package/lib/modules/interpreter/store.d.ts +8 -5
  193. package/lib/modules/interpreter/store.js +90 -39
  194. package/lib/modules/interpreter/type.d.ts +5 -1
  195. package/lib/modules/interpreter/utils.d.ts +0 -1
  196. package/lib/modules/interpreter/utils.js +2 -23
  197. package/lib/modules/interpreter/view.js +2 -6
  198. package/lib/modules/invite/index.d.ts +4 -0
  199. package/lib/modules/invite/index.js +3 -1
  200. package/lib/modules/invite/store.d.ts +11 -2
  201. package/lib/modules/invite/store.js +27 -4
  202. package/lib/modules/layout/components/Aside.js +1 -1
  203. package/lib/modules/layout/components/Carousel.js +36 -14
  204. package/lib/modules/layout/components/Gallery.js +33 -11
  205. package/lib/modules/layout/index.css +2 -2
  206. package/lib/modules/layout/index.d.ts +6 -0
  207. package/lib/modules/layout/index.js +4 -1
  208. package/lib/modules/layout/store.d.ts +23 -10
  209. package/lib/modules/layout/store.js +185 -163
  210. package/lib/modules/layout/type.d.ts +2 -0
  211. package/lib/modules/live-streaming/index.d.ts +2 -0
  212. package/lib/modules/live-streaming/index.js +2 -2
  213. package/lib/modules/live-streaming/store.d.ts +4 -8
  214. package/lib/modules/live-streaming/store.js +9 -19
  215. package/lib/modules/notification/index.css +17 -0
  216. package/lib/modules/notification/store.js +4 -2
  217. package/lib/modules/notification/view.js +7 -2
  218. package/lib/modules/offscreen-pulling/index.d.ts +1 -0
  219. package/lib/modules/offscreen-pulling/index.js +4 -0
  220. package/lib/modules/participant/components/confirm-input/index.d.ts +6 -0
  221. package/lib/modules/participant/components/confirm-input/index.js +50 -0
  222. package/lib/modules/participant/components/mute-all/index.d.ts +3 -7
  223. package/lib/modules/participant/components/mute-all/index.js +21 -33
  224. package/lib/modules/participant/components/participants/components/footer/components/buttons.d.ts +6 -0
  225. package/lib/modules/participant/components/participants/components/footer/components/buttons.js +52 -0
  226. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.css +60 -0
  227. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.d.ts +2 -0
  228. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.js +166 -0
  229. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/util.d.ts +5 -0
  230. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/util.js +28 -0
  231. package/lib/modules/participant/components/participants/components/footer/components/footer/index.css +13 -0
  232. package/lib/modules/participant/components/participants/components/footer/components/footer/index.d.ts +5 -0
  233. package/lib/modules/participant/components/participants/components/footer/components/footer/index.js +242 -0
  234. package/lib/modules/participant/components/participants/components/footer/index.d.ts +5 -0
  235. package/lib/modules/participant/components/participants/components/footer/index.js +48 -0
  236. package/lib/modules/participant/components/participants/components/merge/index.d.ts +11 -0
  237. package/lib/modules/participant/components/participants/components/merge/index.js +49 -0
  238. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.css +191 -0
  239. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.d.ts +4 -0
  240. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.js +204 -0
  241. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.css +49 -0
  242. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.d.ts +5 -0
  243. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.js +219 -0
  244. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.d.ts +5 -0
  245. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.js +70 -0
  246. package/lib/modules/participant/components/participants/components/participants/index.css +104 -0
  247. package/lib/modules/participant/components/participants/components/participants/index.d.ts +3 -0
  248. package/lib/modules/participant/components/participants/components/participants/index.js +110 -0
  249. package/lib/modules/participant/components/participants/components/render-tab/index.d.ts +2 -0
  250. package/lib/modules/participant/components/participants/components/render-tab/index.js +49 -0
  251. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/interpreter-tag/index.d.ts +3 -0
  252. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/interpreter-tag/index.js +48 -0
  253. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/microphone-indicator/index.d.ts +6 -0
  254. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/microphone-indicator/index.js +28 -0
  255. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/user-avatar/index.d.ts +7 -0
  256. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/user-avatar/index.js +39 -0
  257. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.css +69 -0
  258. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.d.ts +5 -0
  259. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.js +135 -0
  260. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/audio-button/index.d.ts +7 -0
  261. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/audio-button/index.js +31 -0
  262. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.d.ts +12 -0
  263. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.js +82 -0
  264. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-to-mainroom-button/index.d.ts +4 -0
  265. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-to-mainroom-button/index.js +26 -0
  266. package/lib/modules/participant/components/participants/components/render-user/components/user-action/index.d.ts +2 -0
  267. package/lib/modules/participant/components/participants/components/render-user/components/user-action/index.js +75 -0
  268. package/lib/modules/participant/components/participants/components/render-user/index.d.ts +5 -0
  269. package/lib/modules/participant/components/participants/components/render-user/index.js +21 -0
  270. package/lib/modules/participant/components/participants/index.js +18 -112
  271. package/lib/modules/participant/components/participants/types.d.ts +96 -0
  272. package/lib/modules/participant/components/participants/types.js +37 -0
  273. package/lib/modules/participant/index.css +3 -0
  274. package/lib/modules/participant/index.d.ts +12 -0
  275. package/lib/modules/participant/index.js +7 -1
  276. package/lib/modules/participant/member-list-data-source.d.ts +2 -2
  277. package/lib/modules/participant/member-list-data-source.js +11 -17
  278. package/lib/modules/participant/store.d.ts +44 -37
  279. package/lib/modules/participant/store.js +527 -536
  280. package/lib/modules/participant/type.d.ts +2 -9
  281. package/lib/modules/pc-audio-connect/store.d.ts +1 -1
  282. package/lib/modules/pc-audio-connect/store.js +9 -6
  283. package/lib/modules/setting/audio-settings/audio-settings.js +5 -4
  284. package/lib/modules/setting/audio-settings/index.css +11 -2
  285. package/lib/modules/setting/config.js +1 -1
  286. package/lib/modules/setting/store.d.ts +1 -0
  287. package/lib/modules/setting/store.js +20 -2
  288. package/lib/modules/setting/video-settings/index.css +12 -17
  289. package/lib/modules/setting/video-settings/video-settings-basic.js +40 -44
  290. package/lib/modules/share-screen/components/selection/index.js +70 -80
  291. package/lib/modules/share-screen/index.d.ts +6 -1
  292. package/lib/modules/share-screen/index.js +4 -1
  293. package/lib/modules/share-screen/store.d.ts +37 -33
  294. package/lib/modules/share-screen/store.js +330 -438
  295. package/lib/modules/sound-effect/sound-effect-player.d.ts +0 -4
  296. package/lib/modules/sound-effect/sound-effect-player.js +4 -4
  297. package/lib/modules/state-bar/index.css +2 -15
  298. package/lib/modules/state-bar/index.d.ts +10 -0
  299. package/lib/modules/state-bar/index.js +6 -1
  300. package/lib/modules/state-bar/live-streaming-state.js +0 -17
  301. package/lib/modules/state-bar/meeting-details.js +12 -24
  302. package/lib/modules/state-bar/meeting-time.js +5 -10
  303. package/lib/modules/state-bar/store.d.ts +31 -8
  304. package/lib/modules/state-bar/store.js +146 -100
  305. package/lib/modules/state-bar/view.js +63 -32
  306. package/lib/modules/video-window/components/deviceState/index.d.ts +7 -0
  307. package/lib/modules/video-window/components/deviceState/index.js +75 -0
  308. package/lib/modules/video-window/components/members/index.css +51 -0
  309. package/lib/modules/video-window/components/members/index.d.ts +2 -0
  310. package/lib/modules/video-window/components/members/index.js +131 -0
  311. package/lib/modules/video-window/components/speaking/index.css +86 -0
  312. package/lib/modules/video-window/components/speaking/index.d.ts +3 -0
  313. package/lib/modules/video-window/components/speaking/index.js +48 -0
  314. package/lib/modules/video-window/components/topControl/index.css +35 -0
  315. package/lib/modules/video-window/components/topControl/index.d.ts +3 -0
  316. package/lib/modules/video-window/components/topControl/index.js +79 -0
  317. package/lib/modules/video-window/index.d.ts +7 -0
  318. package/lib/modules/video-window/index.js +14 -20
  319. package/lib/modules/video-window/store.d.ts +19 -88
  320. package/lib/modules/video-window/store.js +98 -365
  321. package/lib/modules/video-window/type.d.ts +40 -4
  322. package/lib/modules/video-window/type.js +4 -4
  323. package/lib/modules/video-window/view.js +11 -23
  324. package/lib/modules/whiteboard/index.d.ts +1 -0
  325. package/lib/modules/whiteboard/index.js +7 -4
  326. package/lib/modules/widget/index.css +17 -0
  327. package/lib/modules/widget/index.d.ts +10 -0
  328. package/lib/modules/widget/index.js +114 -0
  329. package/lib/modules/widget/sdk.d.ts +30 -0
  330. package/lib/modules/widget/sdk.js +224 -0
  331. package/lib/modules/widget/store.d.ts +14 -0
  332. package/lib/modules/widget/store.js +28 -0
  333. package/lib/modules/widget/type.d.ts +156 -0
  334. package/lib/modules/widget/type.js +6 -0
  335. package/lib/modules/widget/view.d.ts +2 -0
  336. package/lib/modules/widget/view.js +47 -0
  337. package/lib/modules/widget/web-widget.d.ts +29 -0
  338. package/lib/modules/widget/web-widget.js +234 -0
  339. package/lib/providers/ability-provider.d.ts +24 -0
  340. package/lib/providers/ability-provider.js +38 -0
  341. package/lib/providers/chat-provider.d.ts +16 -9
  342. package/lib/providers/chat-provider.js +76 -8
  343. package/lib/providers/device-privilege-provider.d.ts +5 -1
  344. package/lib/providers/device-privilege-provider.js +21 -1
  345. package/lib/providers/device-provider.js +5 -2
  346. package/lib/providers/device-stream-provider.d.ts +15 -3
  347. package/lib/providers/device-stream-provider.js +118 -34
  348. package/lib/providers/dialog-provider.d.ts +9 -8
  349. package/lib/providers/dialog-provider.js +8 -4
  350. package/lib/providers/event-provider.js +4 -2
  351. package/lib/providers/interpreter-provider.d.ts +7 -26
  352. package/lib/providers/interpreter-provider.js +473 -706
  353. package/lib/providers/local-storage-provider.d.ts +6 -1
  354. package/lib/providers/local-storage-provider.js +15 -2
  355. package/lib/providers/message-provider.js +4 -2
  356. package/lib/providers/phone-audio-provider.js +24 -18
  357. package/lib/providers/privilege-provider.d.ts +13 -12
  358. package/lib/providers/privilege-provider.js +19 -11
  359. package/lib/providers/renderer-provider.d.ts +5 -0
  360. package/lib/providers/renderer-provider.js +8 -1
  361. package/lib/providers/room-provider.d.ts +7 -17
  362. package/lib/providers/room-provider.js +113 -161
  363. package/lib/providers/screen-share-provider.d.ts +19 -0
  364. package/lib/providers/screen-share-provider.js +102 -10
  365. package/lib/providers/widget-provider.d.ts +52 -0
  366. package/lib/providers/widget-provider.js +171 -0
  367. package/lib/scenes/main-scene.d.ts +11 -0
  368. package/lib/scenes/main-scene.js +60 -33
  369. package/lib/scenes/waiting-scene.d.ts +9 -0
  370. package/lib/scenes/waiting-scene.js +27 -26
  371. package/lib/schema.d.ts +114 -0
  372. package/lib/schema.js +77 -0
  373. package/lib/shared-data-source/chat-data.d.ts +11 -0
  374. package/lib/shared-data-source/chat-data.js +17 -6
  375. package/lib/shared-data-source/interpreter.d.ts +34 -21
  376. package/lib/shared-data-source/interpreter.js +104 -103
  377. package/lib/shared-data-source/meeting-time.d.ts +68 -0
  378. package/lib/shared-data-source/meeting-time.js +299 -0
  379. package/lib/shared-data-source/member-data.d.ts +126 -0
  380. package/lib/shared-data-source/member-data.js +451 -0
  381. package/lib/shared-data-source/pin-data.d.ts +8 -4
  382. package/lib/shared-data-source/pin-data.js +92 -4
  383. package/lib/shared-data-source/security-data.d.ts +35 -0
  384. package/lib/shared-data-source/security-data.js +156 -0
  385. package/lib/shared-data-source/setting.d.ts +3 -1
  386. package/lib/shared-data-source/setting.js +12 -1
  387. package/lib/shared-data-source/video-window.d.ts +7 -8
  388. package/lib/shared-data-source/video-window.js +97 -94
  389. package/lib/shared-data-source/waiting-room.d.ts +29 -2
  390. package/lib/shared-data-source/waiting-room.js +103 -39
  391. package/lib/translations/enUS.d.ts +25 -12
  392. package/lib/translations/enUS.js +47 -68
  393. package/lib/translations/zhCN.d.ts +26 -12
  394. package/lib/translations/zhCN.js +63 -83
  395. package/lib/type.d.ts +64 -48
  396. package/lib/type.js +14 -1
  397. package/lib/ui-manager.d.ts +3 -2
  398. package/lib/ui-manager.js +8 -7
  399. package/lib/ui-scene.d.ts +7 -1
  400. package/lib/ui-scene.js +187 -97
  401. package/lib/utilities/constant.d.ts +7 -3
  402. package/lib/utilities/constant.js +4 -0
  403. package/lib/utilities/default-config.d.ts +5 -1
  404. package/lib/utilities/default-config.js +28 -2
  405. package/lib/utilities/logger.d.ts +8 -0
  406. package/lib/utilities/logger.js +42 -0
  407. package/lib/utilities/meeting-detail.js +11 -10
  408. package/lib/utilities/parameters.d.ts +4 -0
  409. package/lib/utilities/parameters.js +13 -1
  410. package/lib/utilities/renderer.d.ts +1 -0
  411. package/lib/utilities/renderer.js +4 -1
  412. package/lib/utilities/tools.d.ts +7 -6
  413. package/lib/utilities/tools.js +2 -6
  414. package/lib/utilities/validate-params.d.ts +2 -0
  415. package/lib/utilities/validate-params.js +16 -0
  416. package/lib/waiting-room-control-manager.d.ts +28 -0
  417. package/lib/waiting-room-control-manager.js +212 -0
  418. package/lib/widget-sdk.d.ts +2 -0
  419. package/lib/widget-sdk.js +13 -0
  420. package/package.json +7 -6
  421. package/public/index.html +12 -6
@@ -56,7 +56,6 @@ var _react = require("react");
56
56
  var _fcrCore = require("fcr-core");
57
57
  var _mobx = require("mobx");
58
58
  var _type = require("agora-rte-sdk/lib/core/scene/type");
59
- var _env = require("agora-foundation/lib/utilities/env");
60
59
  var _decorator = require("agora-foundation/lib/decorator");
61
60
  var _constant = require("../../../utilities/constant");
62
61
  var _DeviceControlStore;
@@ -75,21 +74,22 @@ var _A = /*#__PURE__*/new WeakMap();
75
74
  var _B = /*#__PURE__*/new WeakMap();
76
75
  _ref = (_openDeviceSettingDialogDecs = [_mobx.action, _mobx.action.bound], _openConnectionDecs = [_mobx.action, _mobx.action.bound], _closeConnectionDecs = [_mobx.action, _mobx.action.bound], _checkMediaPermissionDecs = [_mobx.action, _mobx.action.bound], _enableCameraDecs = [_mobx.action, _mobx.action.bound], _enableMicrophoneDecs = [_mobx.action, _mobx.action.bound], _setSpeakerIdDecs = [_mobx.action, _mobx.action.bound], _setMicrophoneIdDecs = [_mobx.action, _mobx.action.bound], _setCameraIdDecs = [_mobx.action, _mobx.action.bound], "_connectionWindowId");
77
76
  var DeviceControlStore = exports.DeviceControlStore = /*#__PURE__*/function () {
78
- function DeviceControlStore(_roomControl, _deviceProvider, _eventProvider, _deviceStreamProvider, _sharedDevicePrivilegeDataSource) {
77
+ function DeviceControlStore(_roomControl, _deviceProvider, _dialogProvider, _deviceStreamProvider, _sharedDevicePrivilegeDataSource) {
79
78
  (0, _classCallCheck2["default"])(this, DeviceControlStore);
80
79
  (0, _defineProperty2["default"])(this, _ref, (_initProto(this), ''));
80
+ (0, _defineProperty2["default"])(this, "_streamControlObserver", {
81
+ onStreamsAdded: this._handleStreamUpdate,
82
+ onStreamsRemoved: this._handleStreamUpdate,
83
+ onStreamsUpdated: this._handleStreamUpdate
84
+ });
81
85
  _classPrivateFieldInitSpec(this, _A, _init_isPstnUser(this, false));
82
86
  _classPrivateFieldInitSpec(this, _B, _init_phoneMicEnabled(this, false));
83
87
  this._roomControl = _roomControl;
84
88
  this._deviceProvider = _deviceProvider;
85
- this._eventProvider = _eventProvider;
89
+ this._dialogProvider = _dialogProvider;
86
90
  this._deviceStreamProvider = _deviceStreamProvider;
87
91
  this._sharedDevicePrivilegeDataSource = _sharedDevicePrivilegeDataSource;
88
- this._roomControl.getStreamControl().addObserver({
89
- onStreamsAdded: this._handleStreamUpdate,
90
- onStreamsRemoved: this._handleStreamUpdate,
91
- onStreamsUpdated: this._handleStreamUpdate
92
- });
92
+ this._roomControl.getStreamControl().addObserver(this._streamControlObserver);
93
93
  }
94
94
  return (0, _createClass2["default"])(DeviceControlStore, [{
95
95
  key: "isPstnUser",
@@ -160,31 +160,24 @@ var DeviceControlStore = exports.DeviceControlStore = /*#__PURE__*/function () {
160
160
  }, {
161
161
  key: "openDeviceSettingDialog",
162
162
  value: function openDeviceSettingDialog(arg) {
163
- this._eventProvider.openDeviceSettingDialog(arg);
163
+ this._dialogProvider.openDeviceSettingDialog(arg);
164
164
  }
165
165
  }, {
166
166
  key: "openConnection",
167
167
  value: function openConnection(type) {
168
- this._connectionWindowId = this._eventProvider.openDialog(_constant.FcrUIDialogKey.CONNECTION_GATEWAY, '', {
168
+ this._connectionWindowId = this._dialogProvider.openDialog(_constant.FcrUIDialogKey.CONNECTION_GATEWAY, '', {
169
169
  type: type
170
170
  });
171
171
  }
172
172
  }, {
173
173
  key: "closeConnection",
174
174
  value: function closeConnection() {
175
- this._eventProvider.closeDialog(this._connectionWindowId);
175
+ this._dialogProvider.closeDialog(this._connectionWindowId);
176
176
  }
177
177
  }, {
178
178
  key: "checkMediaPermission",
179
179
  value: function checkMediaPermission(mediaType) {
180
- var _this = this;
181
- if ((0, _env.isElectron)()) {
182
- window.runtime.checkMediaPermission(mediaType).then(function (hasPermission) {
183
- if (!hasPermission) {
184
- _this._eventProvider.openDialog(_constant.FcrUIDialogKey.SYSTEM_PREFERENCE, '', mediaType);
185
- }
186
- });
187
- }
180
+ this._deviceStreamProvider.checkoutDevicePermission(mediaType);
188
181
  }
189
182
  }, {
190
183
  key: "enableCamera",
@@ -220,11 +213,7 @@ var DeviceControlStore = exports.DeviceControlStore = /*#__PURE__*/function () {
220
213
  }, {
221
214
  key: "release",
222
215
  value: function release() {
223
- this._roomControl.getStreamControl().removeObserver({
224
- onStreamsAdded: this._handleStreamUpdate,
225
- onStreamsRemoved: this._handleStreamUpdate,
226
- onStreamsUpdated: this._handleStreamUpdate
227
- });
216
+ this._roomControl.getStreamControl().removeObserver(this._streamControlObserver);
228
217
  }
229
218
  }, {
230
219
  key: "_handleStreamUpdate",
@@ -18,6 +18,7 @@ var _i18n = require("agora-ui-foundation/lib/i18n");
18
18
  var _button = require("agora-ui-foundation/lib/components/button");
19
19
  var _jsxRuntime = require("react/jsx-runtime");
20
20
  var AssignHost = exports.AssignHost = (0, _mobxReact.observer)(function (props) {
21
+ var _remoteUsers$selected;
21
22
  var remoteUsers = props.remoteUsers,
22
23
  assignHost = props.assignHost,
23
24
  loading = props.loading;
@@ -26,16 +27,30 @@ var AssignHost = exports.AssignHost = (0, _mobxReact.observer)(function (props)
26
27
  selected = _useState2[0],
27
28
  setSelected = _useState2[1];
28
29
  var t = (0, _i18n.useI18n)();
30
+ (0, _react.useEffect)(function () {
31
+ if (remoteUsers.length === 0) {
32
+ setSelected(0);
33
+ } else if (selected >= remoteUsers.length) {
34
+ setSelected(remoteUsers.length - 1);
35
+ }
36
+ }, [remoteUsers, selected]);
29
37
  var handleLeave = /*#__PURE__*/function () {
30
38
  var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
31
39
  var user;
32
40
  return _regenerator["default"].wrap(function _callee$(_context) {
33
41
  while (1) switch (_context.prev = _context.next) {
34
42
  case 0:
43
+ if (!(remoteUsers.length === 0 || !remoteUsers[selected])) {
44
+ _context.next = 3;
45
+ break;
46
+ }
47
+ props.setPopoverOpened(false);
48
+ return _context.abrupt("return");
49
+ case 3:
35
50
  user = remoteUsers[selected];
36
51
  assignHost(user);
37
52
  props.setPopoverOpened(false);
38
- case 3:
53
+ case 6:
39
54
  case "end":
40
55
  return _context.stop();
41
56
  }
@@ -62,7 +77,7 @@ var AssignHost = exports.AssignHost = (0, _mobxReact.observer)(function (props)
62
77
  children: t('fmt_toolbar_button_assignleave')
63
78
  }),
64
79
  candidateUsers: remoteUsers,
65
- selectedUid: remoteUsers[selected].userId,
80
+ selectedUid: (_remoteUsers$selected = remoteUsers[selected]) === null || _remoteUsers$selected === void 0 ? void 0 : _remoteUsers$selected.userId,
66
81
  onSelect: function onSelect(user) {
67
82
  setSelected(remoteUsers.indexOf(user));
68
83
  }
@@ -24,9 +24,8 @@ var LeaveMeeting = exports.LeaveMeeting = (0, _mobxReact.observer)(function (pro
24
24
  canAssign = _useContext.canAssign,
25
25
  keepConnect = _useContext.keepConnect,
26
26
  localUserRole = _useContext.localUserRole,
27
- remoteUsers = _useContext.remoteUsers,
27
+ hostAvailibleRemoteUsers = _useContext.hostAvailibleRemoteUsers,
28
28
  isLocked = _useContext.isLocked,
29
- hasAssignHostBeforeLeavingPermission = _useContext.hasAssignHostBeforeLeavingPermission,
30
29
  hasEndRoomPermission = _useContext.hasEndRoomPermission,
31
30
  isPstnUser = _useContext.isPstnUser,
32
31
  loading = _useContext.loading,
@@ -34,17 +33,19 @@ var LeaveMeeting = exports.LeaveMeeting = (0, _mobxReact.observer)(function (pro
34
33
  leave = _useContext.leave,
35
34
  _assignHost = _useContext.assignHost,
36
35
  setCanAssign = _useContext.setCanAssign,
37
- setKeepConnect = _useContext.setKeepConnect;
36
+ setKeepConnect = _useContext.setKeepConnect,
37
+ isAssignHostAvailable = _useContext.isAssignHostAvailable,
38
+ showEndConfirmDialog = _useContext.showEndConfirmDialog;
38
39
 
39
40
  // 结束会议
40
41
  var handleEnd = function handleEnd() {
41
42
  setPopoverOpened(false);
42
- end();
43
+ showEndConfirmDialog();
43
44
  };
44
45
 
45
46
  // 离开会议
46
47
  var handleLeave = function handleLeave() {
47
- if (remoteUsers.length > 0 && hasAssignHostBeforeLeavingPermission) {
48
+ if (hostAvailibleRemoteUsers.length > 0 && isAssignHostAvailable) {
48
49
  setCanAssign(true);
49
50
  } else {
50
51
  leave();
@@ -69,7 +70,7 @@ var LeaveMeeting = exports.LeaveMeeting = (0, _mobxReact.observer)(function (pro
69
70
  },
70
71
  children: canAssign ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_assignHost2.AssignHost, {
71
72
  setPopoverOpened: setPopoverOpened,
72
- remoteUsers: remoteUsers,
73
+ remoteUsers: hostAvailibleRemoteUsers,
73
74
  assignHost: function assignHost(user) {
74
75
  _assignHost(user);
75
76
  onAssigned === null || onAssigned === void 0 || onAssigned();
@@ -97,7 +98,7 @@ var LeaveMeeting = exports.LeaveMeeting = (0, _mobxReact.observer)(function (pro
97
98
  'leave-confirm-disabled': keepConnect
98
99
  }),
99
100
  onClick: !keepConnect ? handleEnd : undefined,
100
- children: t('fmt_actionbar_button_plenarysession')
101
+ children: t('fmt_popup_button_endmeeting')
101
102
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
102
103
  className: "leave-cancel",
103
104
  onClick: handleLeave,
@@ -1,24 +1,33 @@
1
- import { FcrUserInfo, FcrUserRole } from 'fcr-core/lib/type';
1
+ import { FcrUserInfo, FcrUserRole, FcrPlatform } from 'fcr-core/lib/type';
2
2
  import { FcrUIPrivilegeProvider } from '../../../providers/privilege-provider';
3
3
  import { FcrUIRoomProvider } from '../../../providers/room-provider';
4
4
  import { FcrBaseRoomControl } from 'fcr-core/lib/room-control/type';
5
+ import { FcrUIMemberSharedDataSource } from '../../../shared-data-source/member-data';
6
+ import { FcrUIAbilityProviderImpl } from '../../../providers/ability-provider';
7
+ import { FcrUIDialogProvider } from '../../../providers/dialog-provider';
5
8
  export declare class LeaveMeetingStore {
6
9
  private _privilegeProvider;
7
10
  private _roomProvider;
8
11
  private _roomControl;
12
+ private _sharedMemberDataSource;
13
+ private _abilityProvider;
14
+ private _dialogProvder;
9
15
  private _userControl;
10
16
  private _streamControl;
11
- accessor isPstnUser: boolean;
12
17
  accessor keepConnect: boolean;
13
18
  accessor canAssign: boolean;
14
- accessor localUserId: string;
15
19
  accessor loading: boolean;
16
20
  get isLocked(): boolean;
21
+ get localUserId(): string;
22
+ get localUserRole(): FcrUserRole;
17
23
  get hasAssignHostBeforeLeavingPermission(): boolean;
18
24
  get hasEndRoomPermission(): boolean;
19
- get localUserRole(): FcrUserRole;
20
- get remoteUsers(): FcrUserInfo[];
21
- constructor(_privilegeProvider: FcrUIPrivilegeProvider, _roomProvider: FcrUIRoomProvider, _roomControl: FcrBaseRoomControl);
25
+ get hostAvailibleRemoteUsers(): FcrUserInfo[];
26
+ get isPstnUser(): boolean;
27
+ get isAssignHostAvailable(): boolean;
28
+ constructor(_privilegeProvider: FcrUIPrivilegeProvider, _roomProvider: FcrUIRoomProvider, _roomControl: FcrBaseRoomControl, _sharedMemberDataSource: FcrUIMemberSharedDataSource, _abilityProvider: FcrUIAbilityProviderImpl, _dialogProvder: FcrUIDialogProvider);
29
+ showEndConfirmDialog(): void;
30
+ isHostSupportedByPlatform(platform: FcrPlatform): boolean;
22
31
  assignHost(user: FcrUserInfo): void;
23
32
  leave(): Promise<void>;
24
33
  keepPhoneAudioConnection(): Promise<void>;
@@ -26,6 +35,5 @@ export declare class LeaveMeetingStore {
26
35
  setKeepConnect(value: boolean): void;
27
36
  end(): Promise<void>;
28
37
  release(): void;
29
- private _handleStreamsAddedOrUpdated;
30
38
  }
31
39
  export declare const LeaveMeetingStoreContext: import("react").Context<LeaveMeetingStore>;
@@ -39,17 +39,16 @@ Object.defineProperty(exports, "__esModule", {
39
39
  exports.LeaveMeetingStoreContext = exports.LeaveMeetingStore = void 0;
40
40
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
41
41
  require("core-js/modules/es.array.filter.js");
42
- require("core-js/modules/es.array.find.js");
43
42
  require("core-js/modules/es.array.iterator.js");
43
+ require("core-js/modules/es.array.some.js");
44
44
  require("core-js/modules/es.object.to-string.js");
45
- require("core-js/modules/es.object.values.js");
46
45
  require("core-js/modules/es.string.iterator.js");
47
46
  require("core-js/modules/es.weak-map.js");
48
47
  require("core-js/modules/esnext.async-iterator.filter.js");
49
- require("core-js/modules/esnext.async-iterator.find.js");
48
+ require("core-js/modules/esnext.async-iterator.some.js");
50
49
  require("core-js/modules/esnext.iterator.constructor.js");
51
50
  require("core-js/modules/esnext.iterator.filter.js");
52
- require("core-js/modules/esnext.iterator.find.js");
51
+ require("core-js/modules/esnext.iterator.some.js");
53
52
  require("core-js/modules/esnext.weak-map.delete-all.js");
54
53
  require("core-js/modules/esnext.weak-map.emplace.js");
55
54
  require("core-js/modules/web.dom-collections.iterator.js");
@@ -60,10 +59,10 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
60
59
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
61
60
  var _type = require("fcr-core/lib/type");
62
61
  var _mobx = require("mobx");
63
- var _fcrCore = require("fcr-core");
64
62
  var _react = require("react");
63
+ var _i18n = require("agora-ui-foundation/lib/i18n");
65
64
  var _LeaveMeetingStore;
66
- var _initProto, _init_isPstnUser, _init_keepConnect, _init_canAssign, _init_localUserId, _init_loading, _assignHostDecs, _leaveDecs, _keepPhoneAudioConnectionDecs, _setCanAssignDecs, _setKeepConnectDecs, _endDecs, _handleStreamsAddedOrUpdatedDecs, _ref;
65
+ var _initProto, _init_keepConnect, _init_canAssign, _init_loading, _showEndConfirmDialogDecs, _isHostSupportedByPlatformDecs, _assignHostDecs, _leaveDecs, _keepPhoneAudioConnectionDecs, _setCanAssignDecs, _setKeepConnectDecs, _endDecs, _ref;
67
66
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
68
67
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
69
68
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
@@ -77,34 +76,25 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
77
76
  var _A = /*#__PURE__*/new WeakMap();
78
77
  var _B = /*#__PURE__*/new WeakMap();
79
78
  var _C = /*#__PURE__*/new WeakMap();
80
- var _D = /*#__PURE__*/new WeakMap();
81
- var _E = /*#__PURE__*/new WeakMap();
82
- _ref = (_assignHostDecs = [_mobx.action, _mobx.action.bound], _leaveDecs = [_mobx.action, _mobx.action.bound], _keepPhoneAudioConnectionDecs = [_mobx.action, _mobx.action.bound], _setCanAssignDecs = [_mobx.action, _mobx.action.bound], _setKeepConnectDecs = [_mobx.action, _mobx.action.bound], _endDecs = [_mobx.action, _mobx.action.bound], _handleStreamsAddedOrUpdatedDecs = [_mobx.action, _mobx.action.bound], "_userControl");
79
+ _ref = (_showEndConfirmDialogDecs = [_mobx.action, _mobx.action.bound], _isHostSupportedByPlatformDecs = [_mobx.action, _mobx.action.bound], _assignHostDecs = [_mobx.action, _mobx.action.bound], _leaveDecs = [_mobx.action, _mobx.action.bound], _keepPhoneAudioConnectionDecs = [_mobx.action, _mobx.action.bound], _setCanAssignDecs = [_mobx.action, _mobx.action.bound], _setKeepConnectDecs = [_mobx.action, _mobx.action.bound], _endDecs = [_mobx.action, _mobx.action.bound], "_userControl");
83
80
  var LeaveMeetingStore = exports.LeaveMeetingStore = /*#__PURE__*/function () {
84
- function LeaveMeetingStore(_privilegeProvider, _roomProvider, _roomControl) {
81
+ function LeaveMeetingStore(_privilegeProvider, _roomProvider, _roomControl, _sharedMemberDataSource, _abilityProvider, _dialogProvder) {
85
82
  (0, _classCallCheck2["default"])(this, LeaveMeetingStore);
86
83
  (0, _defineProperty2["default"])(this, _ref, void _initProto(this));
87
- _classPrivateFieldInitSpec(this, _A, _init_isPstnUser(this, false));
88
- _classPrivateFieldInitSpec(this, _B, _init_keepConnect(this, false));
89
- _classPrivateFieldInitSpec(this, _C, _init_canAssign(this, false));
90
- _classPrivateFieldInitSpec(this, _D, _init_localUserId(this));
91
- _classPrivateFieldInitSpec(this, _E, _init_loading(this, false));
84
+ _classPrivateFieldInitSpec(this, _A, _init_keepConnect(this, false));
85
+ _classPrivateFieldInitSpec(this, _B, _init_canAssign(this, false));
86
+ _classPrivateFieldInitSpec(this, _C, _init_loading(this, false));
92
87
  this._privilegeProvider = _privilegeProvider;
93
88
  this._roomProvider = _roomProvider;
94
89
  this._roomControl = _roomControl;
90
+ this._sharedMemberDataSource = _sharedMemberDataSource;
91
+ this._abilityProvider = _abilityProvider;
92
+ this._dialogProvder = _dialogProvder;
95
93
  this._userControl = this._roomControl.getUserControl();
96
94
  this._streamControl = this._roomControl.getStreamControl();
97
- this._streamControl.addObserver({
98
- onStreamsAdded: this._handleStreamsAddedOrUpdated,
99
- onStreamsUpdated: this._handleStreamsAddedOrUpdated,
100
- onStreamsRemoved: this._handleStreamsAddedOrUpdated
101
- });
102
- var userControl = this._roomControl.getUserControl();
103
- var localUserId = userControl.getLocalUser().userId;
104
- this.localUserId = localUserId;
105
95
  }
106
96
  return (0, _createClass2["default"])(LeaveMeetingStore, [{
107
- key: "isPstnUser",
97
+ key: "keepConnect",
108
98
  get: function get() {
109
99
  return _classPrivateFieldGet(_A, this);
110
100
  },
@@ -112,7 +102,7 @@ var LeaveMeetingStore = exports.LeaveMeetingStore = /*#__PURE__*/function () {
112
102
  _classPrivateFieldSet(_A, this, v);
113
103
  }
114
104
  }, {
115
- key: "keepConnect",
105
+ key: "canAssign",
116
106
  get: function get() {
117
107
  return _classPrivateFieldGet(_B, this);
118
108
  },
@@ -120,7 +110,7 @@ var LeaveMeetingStore = exports.LeaveMeetingStore = /*#__PURE__*/function () {
120
110
  _classPrivateFieldSet(_B, this, v);
121
111
  }
122
112
  }, {
123
- key: "canAssign",
113
+ key: "loading",
124
114
  get: function get() {
125
115
  return _classPrivateFieldGet(_C, this);
126
116
  },
@@ -128,30 +118,24 @@ var LeaveMeetingStore = exports.LeaveMeetingStore = /*#__PURE__*/function () {
128
118
  _classPrivateFieldSet(_C, this, v);
129
119
  }
130
120
  }, {
131
- key: "localUserId",
121
+ key: "isLocked",
132
122
  get: function get() {
133
- return _classPrivateFieldGet(_D, this);
134
- },
135
- set: function set(v) {
136
- _classPrivateFieldSet(_D, this, v);
123
+ return this._privilegeProvider.isLockRoomEnabled();
137
124
  }
138
125
  }, {
139
- key: "loading",
126
+ key: "localUserId",
140
127
  get: function get() {
141
- return _classPrivateFieldGet(_E, this);
142
- },
143
- set: function set(v) {
144
- _classPrivateFieldSet(_E, this, v);
128
+ return this._sharedMemberDataSource.localUser.userId;
145
129
  }
146
130
  }, {
147
- key: "isLocked",
131
+ key: "localUserRole",
148
132
  get: function get() {
149
- return this._privilegeProvider.isLockRoomEnabled();
133
+ return this._sharedMemberDataSource.localUserRole;
150
134
  }
151
135
  }, {
152
136
  key: "hasAssignHostBeforeLeavingPermission",
153
137
  get: function get() {
154
- return this._privilegeProvider.hasAssignHostBeforeLeavingPermission(this._userControl.getLocalUser().userRole);
138
+ return this._privilegeProvider.hasAssignHostBeforeLeavingPermission(this.localUserRole);
155
139
  }
156
140
  }, {
157
141
  key: "hasEndRoomPermission",
@@ -159,18 +143,78 @@ var LeaveMeetingStore = exports.LeaveMeetingStore = /*#__PURE__*/function () {
159
143
  return this._privilegeProvider.hasEndRoomPermission();
160
144
  }
161
145
  }, {
162
- key: "localUserRole",
146
+ key: "hostAvailibleRemoteUsers",
163
147
  get: function get() {
164
- return this._userControl.getLocalUser().userRole;
148
+ var _this = this;
149
+ return this._sharedMemberDataSource.remoteMembersUserInfosList.filter(function (user) {
150
+ return user.platform && _this.isHostSupportedByPlatform(user.platform);
151
+ });
165
152
  }
166
153
  }, {
167
- key: "remoteUsers",
154
+ key: "isPstnUser",
168
155
  get: function get() {
169
- var _this = this;
170
- return Object.values(this._userControl.getUsers()).filter(function (user) {
171
- return user.userId !== _this.localUserId;
156
+ return this._sharedMemberDataSource.hasOwnPstnStream;
157
+ }
158
+ }, {
159
+ key: "isAssignHostAvailable",
160
+ get: function get() {
161
+ var _this2 = this;
162
+ return this.hasAssignHostBeforeLeavingPermission && this.hostAvailibleRemoteUsers.some(function (item) {
163
+ return _this2.isHostSupportedByPlatform(item.platform);
164
+ });
165
+ }
166
+ }, {
167
+ key: "showEndConfirmDialog",
168
+ value: function showEndConfirmDialog() {
169
+ var _this3 = this;
170
+ var dialogKey = this._dialogProvder.openConfirmDialog({
171
+ title: '',
172
+ content: (0, _i18n.transI18n)('fmt_actionbar_labels_endmeeting'),
173
+ cancelText: (0, _i18n.transI18n)('fmt_toolbar_leave_room_end_submit'),
174
+ okText: (0, _i18n.transI18n)('fmt_toolbar_tips_leave_room_end_cancel'),
175
+ alignCenter: true,
176
+ showCancel: true,
177
+ width: 255,
178
+ cancelButtonProps: {
179
+ block: true,
180
+ type: 'primary',
181
+ shape: 'rounded',
182
+ styleType: 'danger'
183
+ },
184
+ okButtonProps: {
185
+ block: true,
186
+ type: 'secondary',
187
+ shape: 'rounded'
188
+ },
189
+ closable: false,
190
+ onCancel: function onCancel() {
191
+ _this3.end();
192
+ _this3._dialogProvder.closeConfirm(dialogKey);
193
+ },
194
+ onOk: function () {
195
+ var _onOk = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
196
+ return _regenerator["default"].wrap(function _callee$(_context) {
197
+ while (1) switch (_context.prev = _context.next) {
198
+ case 0:
199
+ _this3._dialogProvder.closeConfirm(dialogKey);
200
+ case 1:
201
+ case "end":
202
+ return _context.stop();
203
+ }
204
+ }, _callee);
205
+ }));
206
+ function onOk() {
207
+ return _onOk.apply(this, arguments);
208
+ }
209
+ return onOk;
210
+ }()
172
211
  });
173
212
  }
213
+ }, {
214
+ key: "isHostSupportedByPlatform",
215
+ value: function isHostSupportedByPlatform(platform) {
216
+ return this._abilityProvider.isHostSupportedByPlatform(platform);
217
+ }
174
218
  }, {
175
219
  key: "assignHost",
176
220
  value: function assignHost(user) {
@@ -180,26 +224,26 @@ var LeaveMeetingStore = exports.LeaveMeetingStore = /*#__PURE__*/function () {
180
224
  }, {
181
225
  key: "leave",
182
226
  value: function () {
183
- var _leave = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
184
- return _regenerator["default"].wrap(function _callee$(_context) {
185
- while (1) switch (_context.prev = _context.next) {
227
+ var _leave = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
228
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
229
+ while (1) switch (_context2.prev = _context2.next) {
186
230
  case 0:
187
231
  this.loading = true;
188
- _context.t0 = this.keepConnect && this.isPstnUser;
189
- if (!_context.t0) {
190
- _context.next = 5;
232
+ _context2.t0 = this.keepConnect && this.isPstnUser;
233
+ if (!_context2.t0) {
234
+ _context2.next = 5;
191
235
  break;
192
236
  }
193
- _context.next = 5;
237
+ _context2.next = 5;
194
238
  return this.keepPhoneAudioConnection();
195
239
  case 5:
196
240
  this.loading = false;
197
241
  this._roomProvider.exitRoom();
198
242
  case 7:
199
243
  case "end":
200
- return _context.stop();
244
+ return _context2.stop();
201
245
  }
202
- }, _callee, this);
246
+ }, _callee2, this);
203
247
  }));
204
248
  function leave() {
205
249
  return _leave.apply(this, arguments);
@@ -209,16 +253,16 @@ var LeaveMeetingStore = exports.LeaveMeetingStore = /*#__PURE__*/function () {
209
253
  }, {
210
254
  key: "keepPhoneAudioConnection",
211
255
  value: function () {
212
- var _keepPhoneAudioConnection = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
213
- return _regenerator["default"].wrap(function _callee2$(_context2) {
214
- while (1) switch (_context2.prev = _context2.next) {
256
+ var _keepPhoneAudioConnection = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
257
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
258
+ while (1) switch (_context3.prev = _context3.next) {
215
259
  case 0:
216
- return _context2.abrupt("return", this._streamControl.splitAudioStream(this.localUserId));
260
+ return _context3.abrupt("return", this._streamControl.splitAudioStream(this.localUserId));
217
261
  case 1:
218
262
  case "end":
219
- return _context2.stop();
263
+ return _context3.stop();
220
264
  }
221
- }, _callee2, this);
265
+ }, _callee3, this);
222
266
  }));
223
267
  function keepPhoneAudioConnection() {
224
268
  return _keepPhoneAudioConnection.apply(this, arguments);
@@ -238,19 +282,17 @@ var LeaveMeetingStore = exports.LeaveMeetingStore = /*#__PURE__*/function () {
238
282
  }, {
239
283
  key: "end",
240
284
  value: function () {
241
- var _end = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
242
- return _regenerator["default"].wrap(function _callee3$(_context3) {
243
- while (1) switch (_context3.prev = _context3.next) {
285
+ var _end = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
286
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
287
+ while (1) switch (_context4.prev = _context4.next) {
244
288
  case 0:
245
- _context3.next = 2;
289
+ _context4.next = 2;
246
290
  return this._roomControl.close();
247
291
  case 2:
248
- this.leave();
249
- case 3:
250
292
  case "end":
251
- return _context3.stop();
293
+ return _context4.stop();
252
294
  }
253
- }, _callee3, this);
295
+ }, _callee4, this);
254
296
  }));
255
297
  function end() {
256
298
  return _end.apply(this, arguments);
@@ -259,34 +301,13 @@ var LeaveMeetingStore = exports.LeaveMeetingStore = /*#__PURE__*/function () {
259
301
  }()
260
302
  }, {
261
303
  key: "release",
262
- value: function release() {
263
- this._streamControl.removeObserver({
264
- onStreamsAdded: this._handleStreamsAddedOrUpdated,
265
- onStreamsUpdated: this._handleStreamsAddedOrUpdated,
266
- onStreamsRemoved: this._handleStreamsAddedOrUpdated
267
- });
268
- }
269
- }, {
270
- key: "_handleStreamsAddedOrUpdated",
271
- value: function _handleStreamsAddedOrUpdated() {
272
- var _this$_userControl$ge = this._userControl.getLocalUser(),
273
- userId = _this$_userControl$ge.userId;
274
- var streams = this._streamControl.getStreamsByUserId(userId);
275
- var pstnStream = streams.find(function (_ref2) {
276
- var connectorType = _ref2.connectorType;
277
- return connectorType === _fcrCore.FcrRoomConnectorType.PSTN;
278
- });
279
- var hasPstnStream = !!pstnStream;
280
- this.isPstnUser = hasPstnStream;
281
- }
304
+ value: function release() {}
282
305
  }]);
283
306
  }();
284
307
  _LeaveMeetingStore = LeaveMeetingStore;
285
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_LeaveMeetingStore, [[_mobx.observable, 1, "isPstnUser"], [_mobx.observable, 1, "keepConnect"], [_mobx.observable, 1, "canAssign"], [_mobx.observable, 1, "localUserId"], [_mobx.observable, 1, "loading"], [_assignHostDecs, 18, "assignHost"], [_leaveDecs, 18, "leave"], [_keepPhoneAudioConnectionDecs, 18, "keepPhoneAudioConnection"], [_setCanAssignDecs, 18, "setCanAssign"], [_setKeepConnectDecs, 18, "setKeepConnect"], [_endDecs, 18, "end"], [_handleStreamsAddedOrUpdatedDecs, 18, "_handleStreamsAddedOrUpdated"]], []).e, 6);
286
- _init_isPstnUser = _applyDecs$e[0];
287
- _init_keepConnect = _applyDecs$e[1];
288
- _init_canAssign = _applyDecs$e[2];
289
- _init_localUserId = _applyDecs$e[3];
290
- _init_loading = _applyDecs$e[4];
291
- _initProto = _applyDecs$e[5];
308
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_LeaveMeetingStore, [[_mobx.observable, 1, "keepConnect"], [_mobx.observable, 1, "canAssign"], [_mobx.observable, 1, "loading"], [_mobx.computed, 3, "localUserId"], [_mobx.computed, 3, "localUserRole"], [_mobx.computed, 3, "hostAvailibleRemoteUsers"], [_mobx.computed, 3, "isPstnUser"], [_mobx.computed, 3, "isAssignHostAvailable"], [_showEndConfirmDialogDecs, 18, "showEndConfirmDialog"], [_isHostSupportedByPlatformDecs, 18, "isHostSupportedByPlatform"], [_assignHostDecs, 18, "assignHost"], [_leaveDecs, 18, "leave"], [_keepPhoneAudioConnectionDecs, 18, "keepPhoneAudioConnection"], [_setCanAssignDecs, 18, "setCanAssign"], [_setKeepConnectDecs, 18, "setKeepConnect"], [_endDecs, 18, "end"]], []).e, 4);
309
+ _init_keepConnect = _applyDecs$e[0];
310
+ _init_canAssign = _applyDecs$e[1];
311
+ _init_loading = _applyDecs$e[2];
312
+ _initProto = _applyDecs$e[3];
292
313
  var LeaveMeetingStoreContext = exports.LeaveMeetingStoreContext = /*#__PURE__*/(0, _react.createContext)(null);
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface AudioControlProps {
3
+ isMeeting: boolean;
4
+ iconSize: number;
5
+ }
6
+ export declare const AudioControl: React.FC<AudioControlProps>;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.AudioControl = void 0;
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _provider = require("../provider");
11
+ var _i18n = require("agora-ui-foundation/lib/i18n");
12
+ var _iconButtons = require("./icon-buttons");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ var AudioControl = exports.AudioControl = function AudioControl(_ref) {
15
+ var isMeeting = _ref.isMeeting,
16
+ iconSize = _ref.iconSize;
17
+ var store = (0, _provider.useMemberWindowActionsStore)();
18
+ var t = (0, _i18n.useI18n)();
19
+ if (!store.hasMicrophoneAudioStream) {
20
+ return isMeeting ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_iconButtons.SipDeviceIconButton, {
21
+ iconSize: iconSize,
22
+ backgroundColor: ""
23
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_iconButtons.NoMuteIconButton, {
24
+ iconSize: iconSize,
25
+ tooltip: t('fmt_device_label_audio_mute')
26
+ });
27
+ }
28
+ if (store.isPhone) {
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_iconButtons.PhoneCallIconButton, {
30
+ iconSize: iconSize
31
+ });
32
+ }
33
+ return isMeeting ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_iconButtons.SipDeviceIconButton, {
34
+ iconSize: iconSize
35
+ }) : null;
36
+ };