fcr-ui-scene 3.1.1 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/installer/icons/favicon.ico +0 -0
  2. package/installer/icons/favicon.png +0 -0
  3. package/installer/mac/entitlements.mac.plist +16 -0
  4. package/lib/base.d.ts +0 -1
  5. package/lib/base.js +16 -0
  6. package/lib/common/device-store.d.ts +4 -5
  7. package/lib/common/device-store.js +178 -86
  8. package/lib/common/device-stream-store.d.ts +3 -2
  9. package/lib/common/device-stream-store.js +94 -72
  10. package/lib/common/event-store.d.ts +20 -3
  11. package/lib/common/event-store.js +43 -5
  12. package/lib/common/security-store.d.ts +16 -16
  13. package/lib/common/security-store.js +278 -124
  14. package/lib/electron/app.js +13 -5
  15. package/lib/electron/bootstrap-dev.d.ts +1 -0
  16. package/lib/electron/bootstrap-dev.js +51 -0
  17. package/lib/electron/bootstrap-sdk.d.ts +1 -0
  18. package/lib/electron/bootstrap-sdk.js +56 -0
  19. package/lib/electron/bootstrap.d.ts +1 -0
  20. package/lib/electron/bootstrap.js +56 -0
  21. package/lib/electron/default-options.js +1 -1
  22. package/lib/electron/dev.d.ts +1 -0
  23. package/lib/electron/dev.js +51 -0
  24. package/lib/electron/injections.d.ts +3 -4
  25. package/lib/electron/injections.js +46 -33
  26. package/lib/electron/logger.d.ts +6 -0
  27. package/lib/electron/logger.js +66 -0
  28. package/lib/electron/main.js +15 -11
  29. package/lib/electron/plugins/meeting-state.d.ts +2 -0
  30. package/lib/electron/plugins/meeting-state.js +39 -0
  31. package/lib/electron/preload.js +2 -1
  32. package/lib/electron/tools.js +9 -0
  33. package/lib/electron/window.d.ts +1 -1
  34. package/lib/electron/window.js +14 -2
  35. package/lib/fragments/control-bar/context.d.ts +0 -1
  36. package/lib/fragments/control-bar/control-bar-store.d.ts +34 -1
  37. package/lib/fragments/control-bar/control-bar-store.js +394 -81
  38. package/lib/fragments/control-bar/device/index.js +12 -3
  39. package/lib/fragments/control-bar/index.css +15 -10
  40. package/lib/fragments/control-bar/index.js +19 -1
  41. package/lib/fragments/control-bar/meeting-details/meeting-detail.css +109 -0
  42. package/lib/fragments/control-bar/meeting-details/meeting-details-portal.d.ts +3 -0
  43. package/lib/fragments/control-bar/meeting-details/meeting-details-portal.js +60 -0
  44. package/lib/fragments/control-bar/meeting-details/meeting-details.d.ts +2 -0
  45. package/lib/fragments/control-bar/meeting-details/meeting-details.js +179 -0
  46. package/lib/fragments/control-bar/more-actions/index.css +53 -0
  47. package/lib/fragments/control-bar/more-actions/index.js +77 -37
  48. package/lib/fragments/control-bar/security-content/index.css +10 -0
  49. package/lib/fragments/control-bar/security-content/index.js +43 -18
  50. package/lib/fragments/control-bar/view.js +8 -2
  51. package/lib/fragments/live-streaming/context.d.ts +0 -1
  52. package/lib/fragments/live-streaming/store.js +27 -17
  53. package/lib/fragments/share-screen-selection/context.d.ts +0 -1
  54. package/lib/fragments/share-screen-selection/selection-store.d.ts +0 -1
  55. package/lib/fragments/share-screen-selection/selection-store.js +34 -33
  56. package/lib/fragments/share-screen-selection/view.js +7 -0
  57. package/lib/fragments/toolbar/components/color-picker/components/color.js +2 -0
  58. package/lib/fragments/toolbar/components/color-picker/components/panel.js +4 -0
  59. package/lib/fragments/toolbar/components/color-picker/components/picker.js +2 -0
  60. package/lib/fragments/toolbar/components/color-picker/index.js +5 -1
  61. package/lib/fragments/toolbar/components/color-picker.js +3 -1
  62. package/lib/fragments/toolbar/components/eraser-picker.js +4 -13
  63. package/lib/fragments/toolbar/components/extension-toolbar-item.js +5 -0
  64. package/lib/fragments/toolbar/components/extra-tool-picker.js +4 -0
  65. package/lib/fragments/toolbar/components/pen-picker.js +2 -0
  66. package/lib/fragments/toolbar/components/screen-capture-picker.js +2 -0
  67. package/lib/fragments/toolbar/components/shape-picker.js +2 -0
  68. package/lib/fragments/toolbar/hooks.d.ts +1 -1
  69. package/lib/fragments/toolbar/hooks.js +13 -8
  70. package/lib/fragments/toolbar/store.d.ts +4 -4
  71. package/lib/fragments/toolbar/store.js +20 -2
  72. package/lib/fragments/toolbar/view.js +2 -0
  73. package/lib/global.d.ts +1 -0
  74. package/lib/hooks/meeting-time.d.ts +2 -2
  75. package/lib/login-confirm-dialog.d.ts +12 -0
  76. package/lib/login-confirm-dialog.js +80 -0
  77. package/lib/modules/action-bar/action-bar-collapes-items.js +14 -5
  78. package/lib/modules/action-bar/chat/index.js +6 -6
  79. package/lib/modules/action-bar/context.d.ts +0 -1
  80. package/lib/modules/action-bar/device/index.css +7 -2
  81. package/lib/modules/action-bar/device/index.d.ts +2 -2
  82. package/lib/modules/action-bar/device/index.js +6 -4
  83. package/lib/modules/action-bar/index.css +63 -12
  84. package/lib/modules/action-bar/index.d.ts +3 -2
  85. package/lib/modules/action-bar/index.dev.js +8 -7
  86. package/lib/modules/action-bar/index.js +21 -0
  87. package/lib/modules/action-bar/item-placement.d.ts +1 -2
  88. package/lib/modules/action-bar/item.js +5 -0
  89. package/lib/modules/action-bar/leave/assign-host.d.ts +3 -1
  90. package/lib/modules/action-bar/leave/assign-host.js +7 -7
  91. package/lib/modules/action-bar/leave/index.js +35 -7
  92. package/lib/modules/action-bar/leave/leave-meeting.d.ts +11 -1
  93. package/lib/modules/action-bar/leave/leave-meeting.js +25 -16
  94. package/lib/modules/action-bar/more/poppover-content.d.ts +0 -1
  95. package/lib/modules/action-bar/more/poppover-content.js +14 -4
  96. package/lib/modules/action-bar/participants/index.css +12 -0
  97. package/lib/modules/action-bar/participants/index.js +21 -14
  98. package/lib/modules/action-bar/screen-share/index.js +5 -1
  99. package/lib/modules/action-bar/screen-share/submenu.js +17 -22
  100. package/lib/modules/action-bar/security/drop-menu.js +124 -14
  101. package/lib/modules/action-bar/security/index.js +1 -1
  102. package/lib/modules/action-bar/settings/index.js +1 -1
  103. package/lib/modules/action-bar/store.d.ts +45 -21
  104. package/lib/modules/action-bar/store.js +544 -134
  105. package/lib/modules/action-bar/view.js +65 -42
  106. package/lib/modules/audio-stream/index.js +12 -6
  107. package/lib/modules/chat/chat-bar/index.js +46 -27
  108. package/lib/modules/chat/chat-select/index.css +19 -4
  109. package/lib/modules/chat/chat-select/index.d.ts +0 -1
  110. package/lib/modules/chat/chat-select/index.js +29 -3
  111. package/lib/modules/chat/chat.d.ts +2 -3
  112. package/lib/modules/chat/chat.js +210 -107
  113. package/lib/modules/chat/contex.d.ts +0 -1
  114. package/lib/modules/chat/demo-wrapper.d.ts +0 -1
  115. package/lib/modules/chat/index.css +49 -0
  116. package/lib/modules/chat/index.d.ts +3 -3
  117. package/lib/modules/chat/index.dev.js +4 -4
  118. package/lib/modules/chat/index.js +32 -11
  119. package/lib/modules/chat/message-list.js +81 -49
  120. package/lib/modules/chat/store.d.ts +50 -4
  121. package/lib/modules/chat/store.js +303 -124
  122. package/lib/modules/chat/util.js +1 -1
  123. package/lib/modules/connection-gateway/components/phone/components/callinfo/index.js +2 -0
  124. package/lib/modules/connection-gateway/components/phone/index.js +2 -0
  125. package/lib/modules/connection-gateway/index.d.ts +3 -2
  126. package/lib/modules/connection-gateway/index.js +2 -0
  127. package/lib/modules/connection-gateway/store.d.ts +6 -4
  128. package/lib/modules/connection-gateway/store.js +46 -15
  129. package/lib/modules/device-pretest/audio-preview/microphone-detection.d.ts +1 -0
  130. package/lib/modules/device-pretest/audio-preview/microphone-detection.js +3 -2
  131. package/lib/modules/device-pretest/audio-preview/speaker-control.d.ts +0 -1
  132. package/lib/modules/device-pretest/audio-preview/speaker-control.js +1 -1
  133. package/lib/modules/device-pretest/context.d.ts +0 -1
  134. package/lib/modules/device-pretest/index.css +0 -4
  135. package/lib/modules/device-pretest/index.d.ts +0 -1
  136. package/lib/modules/device-pretest/index.js +2 -1
  137. package/lib/modules/device-pretest/settings/beauty.js +19 -6
  138. package/lib/modules/device-pretest/settings/video-effect.d.ts +0 -1
  139. package/lib/modules/device-pretest/settings/video-settings-basic.js +1 -0
  140. package/lib/modules/device-pretest/settings/virtual-background-setting.js +2 -0
  141. package/lib/modules/device-pretest/store.js +34 -19
  142. package/lib/modules/dialog/components/chat/electron.js +3 -2
  143. package/lib/modules/dialog/components/chat/index.js +1 -1
  144. package/lib/modules/dialog/components/confirm/electron.js +7 -5
  145. package/lib/modules/dialog/components/confirm/index.js +16 -2
  146. package/lib/modules/dialog/components/connection-gateway/electron.js +4 -2
  147. package/lib/modules/dialog/components/connection-gateway/index.css +0 -2
  148. package/lib/modules/dialog/components/device-setting/electron.d.ts +2 -0
  149. package/lib/modules/dialog/components/device-setting/electron.js +74 -0
  150. package/lib/modules/dialog/components/device-setting/index.css +26 -0
  151. package/lib/modules/dialog/components/device-setting/index.d.ts +4 -0
  152. package/lib/modules/dialog/components/device-setting/index.js +60 -0
  153. package/lib/modules/dialog/components/operation-waiting-room/electron.d.ts +5 -0
  154. package/lib/modules/dialog/components/operation-waiting-room/electron.js +89 -0
  155. package/lib/modules/dialog/components/operation-waiting-room/index.css +44 -0
  156. package/lib/modules/dialog/components/operation-waiting-room/index.d.ts +5 -0
  157. package/lib/modules/dialog/components/operation-waiting-room/index.js +156 -0
  158. package/lib/modules/dialog/components/participant/electron.js +8 -2
  159. package/lib/modules/dialog/components/remove-admit-waiting-room/electron.d.ts +5 -0
  160. package/lib/modules/dialog/components/remove-admit-waiting-room/electron.js +89 -0
  161. package/lib/modules/dialog/components/remove-admit-waiting-room/index.css +50 -0
  162. package/lib/modules/dialog/components/remove-admit-waiting-room/index.d.ts +5 -0
  163. package/lib/modules/dialog/components/remove-admit-waiting-room/index.js +90 -0
  164. package/lib/modules/dialog/components/share-screen-selection/index.js +1 -1
  165. package/lib/modules/dialog/components/whiteboard/index.js +2 -1
  166. package/lib/modules/dialog/context.d.ts +0 -1
  167. package/lib/modules/dialog/dialogs.d.ts +0 -2
  168. package/lib/modules/dialog/dialogs.js +62 -103
  169. package/lib/modules/dialog/index.css +7 -6
  170. package/lib/modules/dialog/index.d.ts +1 -1
  171. package/lib/modules/dialog/index.js +17 -0
  172. package/lib/modules/dialog/store.d.ts +6 -2
  173. package/lib/modules/dialog/store.js +52 -9
  174. package/lib/modules/dialog/view.js +2 -0
  175. package/lib/modules/event-notification/context.d.ts +2 -0
  176. package/lib/modules/event-notification/context.js +9 -0
  177. package/lib/modules/event-notification/index.css +58 -0
  178. package/lib/modules/event-notification/index.d.ts +13 -0
  179. package/lib/modules/event-notification/index.js +48 -0
  180. package/lib/modules/event-notification/store.d.ts +17 -0
  181. package/lib/modules/event-notification/store.js +133 -0
  182. package/lib/modules/event-notification/view.d.ts +5 -0
  183. package/lib/modules/event-notification/view.js +114 -0
  184. package/lib/modules/event-toast/context.d.ts +0 -1
  185. package/lib/modules/event-toast/store.js +16 -0
  186. package/lib/modules/invite/context.d.ts +0 -1
  187. package/lib/modules/invite/index.css +4 -4
  188. package/lib/modules/invite/index.d.ts +2 -2
  189. package/lib/modules/invite/pstn-invite.js +4 -1
  190. package/lib/modules/invite/store.d.ts +2 -2
  191. package/lib/modules/invite/store.js +27 -7
  192. package/lib/modules/invite/voip-invite.d.ts +0 -1
  193. package/lib/modules/invite/voip-invite.js +1 -1
  194. package/lib/modules/layout/components/Aside.d.ts +0 -1
  195. package/lib/modules/layout/components/Aside.js +4 -1
  196. package/lib/modules/layout/components/Carousel.js +6 -5
  197. package/lib/modules/layout/components/Gallery.js +16 -9
  198. package/lib/modules/layout/components/Layout.js +82 -57
  199. package/lib/modules/layout/components/index.css +42 -5
  200. package/lib/modules/layout/components/index.js +3 -0
  201. package/lib/modules/layout/context.d.ts +0 -1
  202. package/lib/modules/layout/index.css +30 -0
  203. package/lib/modules/layout/index.dev.js +11 -11
  204. package/lib/modules/layout/index.js +0 -6
  205. package/lib/modules/layout/member-window/index.css +5 -5
  206. package/lib/modules/layout/member-window/index.d.ts +7 -7
  207. package/lib/modules/layout/member-window/index.js +59 -13
  208. package/lib/modules/layout/store.d.ts +61 -50
  209. package/lib/modules/layout/store.js +517 -342
  210. package/lib/modules/layout/type.d.ts +2 -1
  211. package/lib/modules/layout/video-window-datasource.d.ts +14 -8
  212. package/lib/modules/layout/video-window-datasource.js +129 -78
  213. package/lib/modules/live-streaming/context.d.ts +0 -1
  214. package/lib/modules/live-streaming/index.d.ts +2 -2
  215. package/lib/modules/live-streaming/index.dev.js +5 -4
  216. package/lib/modules/live-streaming/store.d.ts +2 -2
  217. package/lib/modules/live-streaming/store.js +32 -11
  218. package/lib/modules/participant/attendee/index.d.ts +12 -3
  219. package/lib/modules/participant/attendee/index.js +142 -30
  220. package/lib/modules/participant/context.d.ts +0 -1
  221. package/lib/modules/participant/index.css +20 -0
  222. package/lib/modules/participant/index.d.ts +5 -2
  223. package/lib/modules/participant/index.dev.js +14 -12
  224. package/lib/modules/participant/index.js +27 -0
  225. package/lib/modules/participant/member-list-data-source.d.ts +3 -3
  226. package/lib/modules/participant/member-list-data-source.js +29 -3
  227. package/lib/modules/participant/room-control-drop-menu/index.css +37 -0
  228. package/lib/modules/participant/room-control-drop-menu/index.js +35 -1
  229. package/lib/modules/participant/store.d.ts +59 -34
  230. package/lib/modules/participant/store.js +541 -222
  231. package/lib/modules/participant/view.d.ts +6 -6
  232. package/lib/modules/participant/view.js +138 -34
  233. package/lib/modules/setting/audio-settings/audio-settings.js +16 -12
  234. package/lib/modules/setting/audio-settings/index.css +2 -2
  235. package/lib/modules/setting/context.d.ts +0 -1
  236. package/lib/modules/setting/general-settings/general-settings.js +2 -1
  237. package/lib/modules/setting/general-settings/index.css +2 -2
  238. package/lib/modules/setting/index.css +1 -5
  239. package/lib/modules/setting/index.d.ts +2 -2
  240. package/lib/modules/setting/index.dev.js +14 -12
  241. package/lib/modules/setting/index.js +16 -0
  242. package/lib/modules/setting/minutes-settings/index.css +65 -0
  243. package/lib/modules/setting/minutes-settings/minutes-settings.d.ts +4 -0
  244. package/lib/modules/setting/minutes-settings/minutes-settings.js +159 -0
  245. package/lib/modules/setting/state/index.css +0 -4
  246. package/lib/modules/setting/state/index.js +11 -1
  247. package/lib/modules/setting/storage-settings/storage-settings.js +1 -1
  248. package/lib/modules/setting/store.d.ts +7 -5
  249. package/lib/modules/setting/store.js +69 -46
  250. package/lib/modules/setting/translate-settings/index.css +45 -0
  251. package/lib/modules/setting/translate-settings/language-select.d.ts +12 -0
  252. package/lib/modules/setting/translate-settings/language-select.js +50 -0
  253. package/lib/modules/setting/translate-settings/translate-settings.d.ts +4 -0
  254. package/lib/modules/setting/translate-settings/translate-settings.js +139 -0
  255. package/lib/modules/setting/video-settings/index.css +15 -6
  256. package/lib/modules/setting/video-settings/video-settings-basic.js +3 -2
  257. package/lib/modules/setting/video-settings/video-settings.js +5 -1
  258. package/lib/modules/setting/view.js +34 -2
  259. package/lib/modules/share-screen/index.d.ts +4 -2
  260. package/lib/modules/share-screen/index.dev.js +17 -14
  261. package/lib/modules/share-screen/index.js +2 -0
  262. package/lib/modules/share-screen/selection/index.css +2 -0
  263. package/lib/modules/share-screen/selection/index.js +44 -6
  264. package/lib/modules/share-screen/share-state-bar/index.css +49 -11
  265. package/lib/modules/share-screen/share-state-bar/index.d.ts +0 -1
  266. package/lib/modules/share-screen/share-state-bar/index.js +51 -20
  267. package/lib/modules/share-screen/store.d.ts +23 -13
  268. package/lib/modules/share-screen/store.js +733 -606
  269. package/lib/modules/state-bar/context.d.ts +0 -1
  270. package/lib/modules/state-bar/index.css +2 -2
  271. package/lib/modules/state-bar/index.d.ts +2 -2
  272. package/lib/modules/state-bar/index.dev.js +12 -10
  273. package/lib/modules/state-bar/layout-config.js +2 -0
  274. package/lib/modules/state-bar/live-streaming-state.js +3 -0
  275. package/lib/modules/state-bar/meeting-detail.css +6 -4
  276. package/lib/modules/state-bar/meeting-details.js +29 -3
  277. package/lib/modules/state-bar/meeting-network-state.css +14 -3
  278. package/lib/modules/state-bar/meeting-network-state.js +10 -4
  279. package/lib/modules/state-bar/recording.js +9 -11
  280. package/lib/modules/state-bar/store.d.ts +7 -5
  281. package/lib/modules/state-bar/store.js +68 -8
  282. package/lib/modules/state-bar/view.js +4 -8
  283. package/lib/modules/video-window/context.d.ts +0 -1
  284. package/lib/modules/video-window/deviceState/index.d.ts +3 -3
  285. package/lib/modules/video-window/index.css +1 -0
  286. package/lib/modules/video-window/members/index.js +7 -4
  287. package/lib/modules/video-window/store.d.ts +5 -4
  288. package/lib/modules/video-window/store.js +49 -17
  289. package/lib/modules/video-window/topControl/index.js +7 -0
  290. package/lib/modules/video-window/view.js +2 -0
  291. package/lib/modules/waiting-room-layout/context.d.ts +2 -0
  292. package/lib/modules/waiting-room-layout/context.js +9 -0
  293. package/lib/modules/waiting-room-layout/index.css +71 -0
  294. package/lib/modules/waiting-room-layout/index.d.ts +8 -0
  295. package/lib/modules/waiting-room-layout/index.js +47 -0
  296. package/lib/modules/waiting-room-layout/store.d.ts +30 -0
  297. package/lib/modules/waiting-room-layout/store.js +189 -0
  298. package/lib/modules/waiting-room-layout/type.d.ts +0 -0
  299. package/lib/modules/waiting-room-layout/type.js +1 -0
  300. package/lib/modules/waiting-room-layout/view.d.ts +3 -0
  301. package/lib/modules/waiting-room-layout/view.js +67 -0
  302. package/lib/modules/whiteboard/app.js +2 -8
  303. package/lib/modules/whiteboard/components/control-bar/index.css +3 -0
  304. package/lib/modules/whiteboard/components/control-bar/store.d.ts +0 -1
  305. package/lib/modules/whiteboard/components/control-bar/store.js +29 -29
  306. package/lib/modules/whiteboard/components/loading/index.js +2 -2
  307. package/lib/modules/whiteboard/components/multi-window/index.js +8 -3
  308. package/lib/modules/whiteboard/components/pagination/store.d.ts +0 -1
  309. package/lib/modules/whiteboard/components/progress/electron.js +3 -2
  310. package/lib/modules/whiteboard/components/progress/style.css +4 -3
  311. package/lib/modules/whiteboard/components/switch-theme/index.css +4 -0
  312. package/lib/modules/whiteboard/components/switch-theme/index.d.ts +2 -1
  313. package/lib/modules/whiteboard/components/switch-theme/index.js +29 -17
  314. package/lib/modules/whiteboard/components/switch-theme/item.d.ts +1 -0
  315. package/lib/modules/whiteboard/components/switch-theme/item.js +11 -2
  316. package/lib/modules/whiteboard/components/switch-theme/libs.d.ts +2 -1
  317. package/lib/modules/whiteboard/components/switch-theme/libs.js +21 -20
  318. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/panel.js +2 -0
  319. package/lib/modules/whiteboard/components/toolbar/components/color-picker/index.js +3 -1
  320. package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.js +11 -9
  321. package/lib/modules/whiteboard/components/toolbar/components/extra-tool-picker.js +4 -0
  322. package/lib/modules/whiteboard/components/toolbar/components/move-handle.js +5 -0
  323. package/lib/modules/whiteboard/components/toolbar/components/pen-picker.js +2 -0
  324. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +18 -12
  325. package/lib/modules/whiteboard/components/toolbar/hooks/index.d.ts +3 -3
  326. package/lib/modules/whiteboard/components/toolbar/hooks/index.js +16 -11
  327. package/lib/modules/whiteboard/components/toolbar/index.js +9 -0
  328. package/lib/modules/whiteboard/components/toolbar/store.d.ts +8 -7
  329. package/lib/modules/whiteboard/components/toolbar/store.js +25 -4
  330. package/lib/modules/whiteboard/context.d.ts +7 -3
  331. package/lib/modules/whiteboard/context.js +6 -4
  332. package/lib/modules/whiteboard/index.d.ts +6 -8
  333. package/lib/modules/whiteboard/index.js +310 -255
  334. package/lib/modules/whiteboard/type.d.ts +4 -12
  335. package/lib/modules/whiteboard/type.js +6 -16
  336. package/lib/modules/whiteboard/utils.d.ts +1 -0
  337. package/lib/modules/whiteboard/utils.js +12 -1
  338. package/lib/plugins/browser-runtime-plugin.js +2 -1
  339. package/lib/plugins/module-dev-plugin.js +12 -10
  340. package/lib/plugins/multi-lang-plugin.d.ts +1 -5
  341. package/lib/plugins/multi-lang-plugin.js +2 -0
  342. package/lib/runtime.d.ts +3 -5
  343. package/lib/translations/enUS.d.ts +590 -0
  344. package/lib/translations/enUS.js +608 -6
  345. package/lib/translations/zhCN.d.ts +588 -0
  346. package/lib/translations/zhCN.js +604 -4
  347. package/lib/type.d.ts +6 -2
  348. package/lib/ui-manager.d.ts +7 -3
  349. package/lib/ui-manager.js +597 -143
  350. package/lib/ui-scene.d.ts +1 -0
  351. package/lib/ui-scene.js +32 -22
  352. package/lib/utilities/board-context.d.ts +0 -1
  353. package/lib/utilities/constant.d.ts +47 -5
  354. package/lib/utilities/constant.js +44 -1
  355. package/lib/utilities/copyText.js +1 -1
  356. package/lib/utilities/extract.js +26 -3
  357. package/lib/utilities/hooks.js +2 -0
  358. package/lib/utilities/parameters.js +2 -2
  359. package/lib/utilities/renderer-event.js +28 -0
  360. package/lib/utilities/renderer.d.ts +1 -0
  361. package/lib/utilities/renderer.js +15 -6
  362. package/lib/utilities/tools.js +5 -2
  363. package/lib/utilities/ui-resources.d.ts +2 -2
  364. package/lib/utilities/ui-resources.js +20 -3
  365. package/lib/utilities/video-track-render-context.d.ts +0 -1
  366. package/package.json +17 -16
  367. package/public/assets/fcr_defaultpage.png +0 -0
  368. package/public/assets/login_confirm.png +0 -0
  369. package/public/index.html +29 -11
  370. package/lib/modules/device-pretest/settings/index.css +0 -15
  371. package/lib/modules/participant/attendee/participants-more-action.d.ts +0 -18
  372. package/lib/modules/participant/attendee/participants-more-action.js +0 -275
@@ -1,6 +1,6 @@
1
- import { FcrRoomControl } from 'agora-edu-core/lib/room-control';
2
1
  import { FcrLiveStreamingState } from 'agora-edu-core/lib/type';
3
2
  import { FcrUIEventStore } from '../../common/event-store';
3
+ import { FcrBaseRoomControl } from 'agora-edu-core/lib/room-control/type';
4
4
  export default class LiveStreamingStore {
5
5
  protected logger: import("agora-foundation/lib/logger").Logger;
6
6
  accessor videoSteamingUrl: string;
@@ -18,7 +18,7 @@ export default class LiveStreamingStore {
18
18
  private _userObserver;
19
19
  private _roomObserver;
20
20
  constructor({ roomControl, uiEventStore, }: {
21
- roomControl: FcrRoomControl;
21
+ roomControl: FcrBaseRoomControl;
22
22
  uiEventStore: FcrUIEventStore;
23
23
  });
24
24
  release(): void;
@@ -14,6 +14,22 @@ require("core-js/modules/es.number.constructor.js");
14
14
  require("core-js/modules/es.object.create.js");
15
15
  require("core-js/modules/es.object.define-property.js");
16
16
  require("core-js/modules/es.object.get-own-property-descriptor.js");
17
+ require("core-js/modules/esnext.function.metadata.js");
18
+ require("core-js/modules/esnext.map.delete-all.js");
19
+ require("core-js/modules/esnext.map.emplace.js");
20
+ require("core-js/modules/esnext.map.every.js");
21
+ require("core-js/modules/esnext.map.filter.js");
22
+ require("core-js/modules/esnext.map.find.js");
23
+ require("core-js/modules/esnext.map.find-key.js");
24
+ require("core-js/modules/esnext.map.includes.js");
25
+ require("core-js/modules/esnext.map.key-of.js");
26
+ require("core-js/modules/esnext.map.map-keys.js");
27
+ require("core-js/modules/esnext.map.map-values.js");
28
+ require("core-js/modules/esnext.map.merge.js");
29
+ require("core-js/modules/esnext.map.reduce.js");
30
+ require("core-js/modules/esnext.map.some.js");
31
+ require("core-js/modules/esnext.map.update.js");
32
+ require("core-js/modules/esnext.symbol.metadata.js");
17
33
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
18
34
  var _typeof = require("@babel/runtime/helpers/typeof");
19
35
  Object.defineProperty(exports, "__esModule", {
@@ -27,6 +43,11 @@ require("core-js/modules/es.array.push.js");
27
43
  require("core-js/modules/es.object.to-string.js");
28
44
  require("core-js/modules/es.string.iterator.js");
29
45
  require("core-js/modules/es.weak-map.js");
46
+ require("core-js/modules/esnext.async-iterator.for-each.js");
47
+ require("core-js/modules/esnext.iterator.constructor.js");
48
+ require("core-js/modules/esnext.iterator.for-each.js");
49
+ require("core-js/modules/esnext.weak-map.delete-all.js");
50
+ require("core-js/modules/esnext.weak-map.emplace.js");
30
51
  require("core-js/modules/web.dom-collections.for-each.js");
31
52
  require("core-js/modules/web.dom-collections.iterator.js");
32
53
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -43,8 +64,8 @@ var _logger = require("agora-foundation/lib/logger");
43
64
  var _i18n = require("agora-ui-foundation/lib/i18n");
44
65
  var _LiveStreamingStore;
45
66
  var _initProto, _init_videoSteamingUrl, _init_videoStreamingKey, _init_playUrl, _init_liveStreamingState, _init_isStartError, _onLiveButtonClickDecs, _startLiveStreamingDecs, _handleLiveStreamingStateUpdatedDecs, _handleEventDecs, _ref;
46
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
47
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
67
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
68
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
48
69
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
49
70
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
50
71
  function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
@@ -90,9 +111,9 @@ var LiveStreamingStore = exports["default"] = /*#__PURE__*/function () {
90
111
  this._uiEventStore.addObserver(this._uiEventObserver);
91
112
  this.liveStreamingState = roomControl.getLiveStreamingState();
92
113
  var liveStreamingConfig = roomControl.getLiveStreamingConfig();
93
- this.videoSteamingUrl = liveStreamingConfig.pushStreamingUrl;
94
- this.videoStreamingKey = liveStreamingConfig.pushStreamingKey;
95
- this.playUrl = liveStreamingConfig.pullStreamingUrl;
114
+ this.videoSteamingUrl = (liveStreamingConfig === null || liveStreamingConfig === void 0 ? void 0 : liveStreamingConfig.pushStreamingUrl) || '';
115
+ this.videoStreamingKey = (liveStreamingConfig === null || liveStreamingConfig === void 0 ? void 0 : liveStreamingConfig.pushStreamingKey) || '';
116
+ this.playUrl = (liveStreamingConfig === null || liveStreamingConfig === void 0 ? void 0 : liveStreamingConfig.pullStreamingUrl) || '';
96
117
  }
97
118
  return (0, _createClass2["default"])(LiveStreamingStore, [{
98
119
  key: "videoSteamingUrl",
@@ -172,7 +193,7 @@ var LiveStreamingStore = exports["default"] = /*#__PURE__*/function () {
172
193
  }, {
173
194
  key: "onLiveButtonClick",
174
195
  value: function () {
175
- var _onLiveButtonClick = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(videoSteamingUrl, videoStreamingKey, playUrl) {
196
+ var _onLiveButtonClick = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(videoSteamingUrl, videoStreamingKey, playUrl) {
176
197
  return _regenerator["default"].wrap(function _callee$(_context) {
177
198
  while (1) switch (_context.prev = _context.next) {
178
199
  case 0:
@@ -201,7 +222,7 @@ var LiveStreamingStore = exports["default"] = /*#__PURE__*/function () {
201
222
  }, {
202
223
  key: "_startLiveStreaming",
203
224
  value: function () {
204
- var _startLiveStreaming2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(videoSteamingUrl, videoStreamingKey, playUrl) {
225
+ var _startLiveStreaming2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(videoSteamingUrl, videoStreamingKey, playUrl) {
205
226
  return _regenerator["default"].wrap(function _callee2$(_context2) {
206
227
  while (1) switch (_context2.prev = _context2.next) {
207
228
  case 0:
@@ -281,9 +302,9 @@ var LiveStreamingStore = exports["default"] = /*#__PURE__*/function () {
281
302
  value: function _handleLiveStreamingStateUpdated(_roomId, state) {
282
303
  this.liveStreamingState = state;
283
304
  var liveStreamingConfig = this._roomControl.getLiveStreamingConfig();
284
- this.videoSteamingUrl = liveStreamingConfig.pushStreamingUrl;
285
- this.videoStreamingKey = liveStreamingConfig.pushStreamingKey;
286
- this.playUrl = liveStreamingConfig.pullStreamingUrl;
305
+ this.videoSteamingUrl = (liveStreamingConfig === null || liveStreamingConfig === void 0 ? void 0 : liveStreamingConfig.pushStreamingUrl) || '';
306
+ this.videoStreamingKey = (liveStreamingConfig === null || liveStreamingConfig === void 0 ? void 0 : liveStreamingConfig.pushStreamingKey) || '';
307
+ this.playUrl = (liveStreamingConfig === null || liveStreamingConfig === void 0 ? void 0 : liveStreamingConfig.pullStreamingUrl) || '';
287
308
  }
288
309
  }, {
289
310
  key: "_handleEvent",
@@ -302,7 +323,7 @@ var LiveStreamingStore = exports["default"] = /*#__PURE__*/function () {
302
323
  }, {
303
324
  key: "_stopLiveStreaming",
304
325
  value: function () {
305
- var _stopLiveStreaming2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
326
+ var _stopLiveStreaming2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
306
327
  return _regenerator["default"].wrap(function _callee3$(_context3) {
307
328
  while (1) switch (_context3.prev = _context3.next) {
308
329
  case 0:
@@ -1,10 +1,17 @@
1
- import { User } from 'agora-ui-foundation/lib/components/participants/attendee';
2
- import { ParticipantType } from '../../../utilities/constant';
1
+ import { ParticipantActionType, User } from 'agora-ui-foundation/lib/components/participants/attendee';
3
2
  import { FcrUserRole } from '../../../type';
4
3
  import './index.css';
5
4
  import { FcrPrivilegeUserRole } from 'agora-edu-core';
5
+ import { FcrUserKickOutType } from 'agora-edu-core/lib/room-control/type';
6
+ export type OperateWaitingRoomMemberDialogProps = {
7
+ type: 'remove' | 'removeAll' | 'admitAll';
8
+ tooltip: string;
9
+ title: string;
10
+ userId?: string;
11
+ };
12
+ export declare const OperateWaitingRoomMemberDialog: ({ type, tooltip, title, userId, }: OperateWaitingRoomMemberDialogProps) => import("react/jsx-runtime").JSX.Element;
6
13
  interface ParticipantAttendeeProps extends User {
7
- onParticipantsButtonClick: (action: ParticipantType, userId: string) => void;
14
+ onParticipantsButtonClick: (action: ParticipantActionType, userId: string, type?: FcrUserKickOutType | undefined) => void;
8
15
  currentPerspectiveType?: 'host' | 'attendee' | 'cohost';
9
16
  isPin: boolean;
10
17
  hasPinnedStream: boolean;
@@ -14,6 +21,8 @@ interface ParticipantAttendeeProps extends User {
14
21
  hasMutePermission: (role: FcrPrivilegeUserRole | FcrUserRole) => boolean;
15
22
  hasUnmutePermission: (role: FcrPrivilegeUserRole | FcrUserRole) => boolean;
16
23
  hasRequestStartAudioPermission: (role: FcrPrivilegeUserRole | FcrUserRole) => boolean;
24
+ activeTab: string;
25
+ moveToMainRoomByUserIds: (userId: string[]) => void;
17
26
  }
18
27
  export declare const ParticipantAttendee: (props: ParticipantAttendeeProps) => import("react/jsx-runtime").JSX.Element;
19
28
  export {};
@@ -10,12 +10,17 @@ require("core-js/modules/es.object.get-own-property-descriptor.js");
10
10
  require("core-js/modules/es.object.get-own-property-descriptors.js");
11
11
  require("core-js/modules/es.object.keys.js");
12
12
  require("core-js/modules/es.object.to-string.js");
13
+ require("core-js/modules/esnext.async-iterator.filter.js");
14
+ require("core-js/modules/esnext.async-iterator.for-each.js");
15
+ require("core-js/modules/esnext.iterator.constructor.js");
16
+ require("core-js/modules/esnext.iterator.filter.js");
17
+ require("core-js/modules/esnext.iterator.for-each.js");
13
18
  require("core-js/modules/web.dom-collections.for-each.js");
14
19
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
15
20
  Object.defineProperty(exports, "__esModule", {
16
21
  value: true
17
22
  });
18
- exports.ParticipantAttendee = void 0;
23
+ exports.ParticipantAttendee = exports.OperateWaitingRoomMemberDialog = void 0;
19
24
  require("core-js/modules/web.timers.js");
20
25
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
26
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -23,28 +28,112 @@ var _avatar = require("agora-ui-foundation/lib/components/avatar");
23
28
  var _action = require("agora-ui-foundation/lib/components/button/action");
24
29
  var _icon = require("agora-ui-foundation/lib/components/icon");
25
30
  var _type = require("agora-ui-foundation/lib/components/icon/type");
31
+ var _attendee = require("agora-ui-foundation/lib/components/participants/attendee");
26
32
  var _popover = require("agora-ui-foundation/lib/components/popover");
27
33
  var _cameraState = require("agora-ui-foundation/lib/components/room-screen-share-state-bar/camera-state");
28
34
  var _microphoneState = require("agora-ui-foundation/lib/components/room-screen-share-state-bar/microphone-state");
29
35
  var _classnames = _interopRequireDefault(require("classnames"));
30
36
  var _mobxReact = require("mobx-react");
31
37
  var _react = require("react");
32
- var _constant = require("../../../utilities/constant");
33
- var _participantsMoreAction = require("./participants-more-action");
34
38
  var _context = require("../context");
35
39
  var _type2 = require("../../../type");
36
40
  var _i18n = require("agora-ui-foundation/lib/i18n");
37
41
  var _muteAction = require("../../../utilities/mute-action");
38
42
  require("./index.css");
43
+ var _helper = require("agora-ui-foundation/lib/components/avatar/helper");
39
44
  var _agoraEduCore = require("agora-edu-core");
45
+ var _participantsMore = require("agora-ui-foundation/lib/components/participants/participants-more");
46
+ var _type3 = require("agora-edu-core/lib/room-control/type");
47
+ var _constant = require("../../../utilities/constant");
48
+ var _checkbox = require("agora-ui-foundation/lib/components/checkbox");
49
+ var _button = require("agora-ui-foundation/lib/components/button");
40
50
  var _jsxRuntime = require("react/jsx-runtime");
41
51
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
42
52
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
43
- var ParticipantAttendee = exports.ParticipantAttendee = (0, _mobxReact.observer)(function (props) {
53
+ var OperateWaitingRoomMemberDialog = exports.OperateWaitingRoomMemberDialog = function OperateWaitingRoomMemberDialog(_ref) {
54
+ var type = _ref.type,
55
+ tooltip = _ref.tooltip,
56
+ title = _ref.title,
57
+ userId = _ref.userId;
58
+ var t = (0, _i18n.useI18n)();
44
59
  var _useState = (0, _react.useState)(false),
45
60
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
46
- isShowDropMenu = _useState2[0],
47
- setIsShowDropMenu = _useState2[1];
61
+ isChecked = _useState2[0],
62
+ setIsChecked = _useState2[1];
63
+ var _useContext = (0, _react.useContext)(_context.StoreContext),
64
+ removeWaitingRoomUser = _useContext.removeWaitingRoomUser,
65
+ moveToMainRoomAllMember = _useContext.moveToMainRoomAllMember,
66
+ kickOutWaitingRoomAllMember = _useContext.kickOutWaitingRoomAllMember,
67
+ closeRemoveAdmitWaitingRoomDialog = _useContext.closeRemoveAdmitWaitingRoomDialog;
68
+ var DialogKeyMap = {
69
+ remove: _constant.DialogKey.WAITING_ROOM_SINGLE_REMOVE,
70
+ removeAll: _constant.DialogKey.WAITING_ROOM_ALL_REMOVE,
71
+ admitAll: _constant.DialogKey.WAITING_ROOM_ALL_ADMIT
72
+ };
73
+ var buttonTextMap = {
74
+ removeAll: t('fmt_waitingroom_sidebar_button_removeall'),
75
+ admitAll: t('fmt_waitingroom_sidebar_button_admitall'),
76
+ remove: t('fmt_waitingroom_sidebar_popup_button_remove')
77
+ };
78
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
79
+ className: "operate-waiting-room-dialog-content",
80
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
81
+ className: "operate-waiting-room-dialog-title",
82
+ children: title
83
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
84
+ className: "operate-waiting-room-dialog-tooltip",
85
+ children: tooltip
86
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
87
+ className: "operate-waiting-room-dialog-confirm",
88
+ children: type === 'admitAll' ? null : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
89
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_checkbox.FcrCheckbox, {
90
+ checked: isChecked,
91
+ onChange: setIsChecked,
92
+ size: "small",
93
+ styleType: "white"
94
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
95
+ style: {
96
+ marginLeft: '10px'
97
+ },
98
+ children: t('fmt_waitingroom_sidebar_popup_option_notagain')
99
+ })]
100
+ })
101
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
102
+ className: "operate-waiting-room-dialog-btns",
103
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_button.FcrButton, {
104
+ size: "S",
105
+ shape: "rounded",
106
+ styleType: "white",
107
+ onClick: function onClick() {
108
+ closeRemoveAdmitWaitingRoomDialog(DialogKeyMap[type]);
109
+ },
110
+ children: t('fmt_waitingroom_sidebar_popup_button_cancel')
111
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.FcrButton, {
112
+ size: "S",
113
+ shape: "rounded",
114
+ styleType: type === 'admitAll' ? 'normal' : 'danger',
115
+ onClick: function onClick() {
116
+ if (type === 'remove') {
117
+ removeWaitingRoomUser(userId, isChecked ? _type3.FcrUserKickOutType.Forever : _type3.FcrUserKickOutType.Once);
118
+ }
119
+ if (type === 'removeAll') {
120
+ kickOutWaitingRoomAllMember(isChecked ? _type3.FcrUserKickOutType.Forever : _type3.FcrUserKickOutType.Once);
121
+ }
122
+ if (type === 'admitAll') {
123
+ moveToMainRoomAllMember();
124
+ }
125
+ closeRemoveAdmitWaitingRoomDialog(DialogKeyMap[type]);
126
+ },
127
+ children: buttonTextMap[type]
128
+ })]
129
+ })]
130
+ });
131
+ };
132
+ var ParticipantAttendee = exports.ParticipantAttendee = (0, _mobxReact.observer)(function (props) {
133
+ var _useState3 = (0, _react.useState)(false),
134
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
135
+ isShowDropMenu = _useState4[0],
136
+ setIsShowDropMenu = _useState4[1];
48
137
  var userId = props.userId,
49
138
  userName = props.userName,
50
139
  isMe = props.isMe,
@@ -68,16 +157,19 @@ var ParticipantAttendee = exports.ParticipantAttendee = (0, _mobxReact.observer)
68
157
  allowedOperations = props.allowedOperations,
69
158
  hasMutePermission = props.hasMutePermission,
70
159
  hasUnmutePermission = props.hasUnmutePermission,
71
- hasRequestStartAudioPermission = props.hasRequestStartAudioPermission;
72
- var _useState3 = (0, _react.useState)(false),
73
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
74
- disableHover = _useState4[0],
75
- setDisableHover = _useState4[1];
76
- var volumeTimer = undefined;
77
- var _useState5 = (0, _react.useState)(0),
160
+ hasRequestStartAudioPermission = props.hasRequestStartAudioPermission,
161
+ activeTab = props.activeTab,
162
+ moveToMainRoomByUserIds = props.moveToMainRoomByUserIds;
163
+ var _useState5 = (0, _react.useState)(false),
78
164
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
79
- phoneCallFrame = _useState6[0],
80
- setPhoneCallFrame = _useState6[1];
165
+ disableHover = _useState6[0],
166
+ setDisableHover = _useState6[1];
167
+ var nameColor = (0, _helper.getNameColor)(userName);
168
+ var volumeTimer = undefined;
169
+ var _useState7 = (0, _react.useState)(0),
170
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
171
+ phoneCallFrame = _useState8[0],
172
+ setPhoneCallFrame = _useState8[1];
81
173
  var percentPhone = function percentPhone(phoneCallFrame) {
82
174
  switch (phoneCallFrame) {
83
175
  case '0':
@@ -139,11 +231,11 @@ var ParticipantAttendee = exports.ParticipantAttendee = (0, _mobxReact.observer)
139
231
  }, [audioDeviceType]);
140
232
  var userActions = function userActions() {
141
233
  var handleAudioButtonClick = function handleAudioButtonClick() {
142
- var action = hasAudio ? _constant.ParticipantType.MUTE_AUDIO : _constant.ParticipantType.UNMUTE_AUDIO;
234
+ var action = hasAudio ? _attendee.ParticipantActionType.MUTE_AUDIO : _attendee.ParticipantActionType.UNMUTE_AUDIO;
143
235
  onParticipantsButtonClick(action, userId);
144
236
  };
145
237
  var handlePrivateChatButtonClick = function handlePrivateChatButtonClick() {
146
- onParticipantsButtonClick(_constant.ParticipantType.PRIVATE_CHAT, userId);
238
+ onParticipantsButtonClick(_attendee.ParticipantActionType.PRIVATE_CHAT, userId);
147
239
  };
148
240
  var handleMoreActionsClick = function handleMoreActionsClick(action, userId) {
149
241
  onParticipantsButtonClick(action, userId);
@@ -155,15 +247,26 @@ var ParticipantAttendee = exports.ParticipantAttendee = (0, _mobxReact.observer)
155
247
  var _actionMute = (0, _muteAction.actionMute)(!!isMe, hasAudio, muteAudioPermission, startAudioPermission, requestStartAudioPermission),
156
248
  isShowActionAudio = _actionMute.isShowActionAudio,
157
249
  actionAudioTag = _actionMute.actionAudioTag;
250
+ var waitingRoomParticipateActionsNeedHiden = ['start_video', 'request_start_video', 'stop_video', 'pin', 'set_as_host', 'set_as_co_host', 'revoke_co_host', 'merge_video', 'put_into_waiting_room'];
251
+ var mainRoomParticipateActionsNeedHiden = [];
158
252
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
159
253
  className: "attendee__user-action attendee__user-action-host ".concat(isShowDropMenu ? 'attendee__user-action-hovered' : ''),
160
- children: [isShowActionAudio && /*#__PURE__*/(0, _jsxRuntime.jsx)(_action.FcrActionButton, {
254
+ children: [isShowActionAudio && activeTab === _constant.RoomType.MAIN_ROOM && /*#__PURE__*/(0, _jsxRuntime.jsx)(_action.FcrActionButton, {
161
255
  size: "small",
162
256
  onClick: handleAudioButtonClick,
163
257
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
164
258
  className: hasAudio ? 'attendee__danger-operate' : 'attendee__normal-operate',
165
259
  children: t(actionAudioTag)
166
260
  })
261
+ }), activeTab === _constant.RoomType.WAITING_ROOM && /*#__PURE__*/(0, _jsxRuntime.jsx)(_action.FcrActionButton, {
262
+ size: "small",
263
+ onClick: function onClick() {
264
+ return moveToMainRoomByUserIds([userId]);
265
+ },
266
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
267
+ className: 'attendee__normal-operate',
268
+ children: t('fmt_waitingroom_sidebar_button_admit')
269
+ })
167
270
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_popover.FcrPopover, {
168
271
  visible: isShowDropMenu,
169
272
  overlayInnerStyle: {
@@ -180,13 +283,19 @@ var ParticipantAttendee = exports.ParticipantAttendee = (0, _mobxReact.observer)
180
283
  onMouseLeave: function onMouseLeave() {
181
284
  return setIsShowDropMenu(false);
182
285
  },
183
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_participantsMoreAction.ParticipantsMoreActions, _objectSpread(_objectSpread({}, props), {}, {
286
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_participantsMore.FcrParticipantsMoreActions, _objectSpread(_objectSpread({}, props), {}, {
184
287
  onParticipantsButtonClick: handleMoreActionsClick,
185
288
  userRole: userRole,
186
289
  isPin: isPin,
187
290
  hasPinnedStream: hasPinnedStream,
188
291
  allowedOperations: allowedOperations,
189
- userType: userType
292
+ userType: userType,
293
+ userId: userId,
294
+ hasVideo: hasVideo,
295
+ hasAudio: hasAudio,
296
+ userName: userName,
297
+ audioDeviceType: audioDeviceType,
298
+ hideActions: activeTab === _constant.RoomType.MAIN_ROOM ? mainRoomParticipateActionsNeedHiden : waitingRoomParticipateActionsNeedHiden
190
299
  }))
191
300
  }),
192
301
  placement: "bottomRight",
@@ -224,6 +333,9 @@ var ParticipantAttendee = exports.ParticipantAttendee = (0, _mobxReact.observer)
224
333
  className: "attendee__user-info-identity",
225
334
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
226
335
  className: "attendee__name",
336
+ style: {
337
+ color: nameColor
338
+ },
227
339
  children: [userName, isMe && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
228
340
  className: "attendee__me-badge",
229
341
  children: "(Me)"
@@ -250,26 +362,26 @@ var ParticipantAttendee = exports.ParticipantAttendee = (0, _mobxReact.observer)
250
362
  colors: {
251
363
  iconPrimary: 'var(--fcr_ui_scene_ramp_green6)'
252
364
  }
253
- }), audioDeviceType !== 'none' && /*#__PURE__*/(0, _jsxRuntime.jsx)(MicrophoneIndicator, {
365
+ }), audioDeviceType !== 'none' && activeTab === _constant.RoomType.MAIN_ROOM && /*#__PURE__*/(0, _jsxRuntime.jsx)(MicrophoneIndicator, {
254
366
  audioDeviceType: audioDeviceType,
255
367
  hasAudio: hasAudio,
256
368
  isLocal: !!isMe,
257
369
  userId: userId
258
- }), videoDeviceType !== 'none' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_cameraState.CameraState, {
370
+ }), videoDeviceType !== 'none' && activeTab === _constant.RoomType.MAIN_ROOM && /*#__PURE__*/(0, _jsxRuntime.jsx)(_cameraState.CameraState, {
259
371
  isCameraMuted: !hasVideo,
260
372
  size: 28
261
373
  })]
262
374
  }), userActions()]
263
375
  }, userId);
264
376
  });
265
- var MicrophoneIndicator = (0, _mobxReact.observer)(function (_ref) {
266
- var audioDeviceType = _ref.audioDeviceType,
267
- hasAudio = _ref.hasAudio,
268
- isLocal = _ref.isLocal,
269
- userId = _ref.userId;
270
- var _useContext = (0, _react.useContext)(_context.StoreContext),
271
- audioVolumeMap = _useContext.audioVolumeMap,
272
- localMicVolume = _useContext.localMicVolume;
377
+ var MicrophoneIndicator = (0, _mobxReact.observer)(function (_ref2) {
378
+ var audioDeviceType = _ref2.audioDeviceType,
379
+ hasAudio = _ref2.hasAudio,
380
+ isLocal = _ref2.isLocal,
381
+ userId = _ref2.userId;
382
+ var _useContext2 = (0, _react.useContext)(_context.StoreContext),
383
+ audioVolumeMap = _useContext2.audioVolumeMap,
384
+ localMicVolume = _useContext2.localMicVolume;
273
385
  var volume = isLocal ? localMicVolume : audioVolumeMap.get(userId);
274
386
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_microphoneState.MicrophoneState, {
275
387
  isMicrophoneMuted: !hasAudio,
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import ParticipantStore from './store';
3
2
  export declare const StoreContext: import("react").Context<ParticipantStore>;
@@ -5,6 +5,7 @@
5
5
  width: 100%;
6
6
  min-width: 320px;
7
7
  flex: 1;
8
+ position: relative;
8
9
  }
9
10
  .participants-container-merge-content {
10
11
  display: flex;
@@ -56,3 +57,22 @@
56
57
  .fcr-participant .fcr-avatar {
57
58
  border-radius: var(--fcr_cornerradius_m);
58
59
  }
60
+
61
+ .fcr-participant__footer_waiting_room button {
62
+ flex: 1 !important;
63
+ padding: 0 !important;
64
+ }
65
+
66
+ .participants-container-icon {
67
+ position: relative;
68
+ }
69
+
70
+ .participants-container-red {
71
+ width: 8px;
72
+ height: 8px;
73
+ border-radius: 50%;
74
+ background: var(--fcr_ui_scene_ramp_red6);
75
+ position: absolute;
76
+ right: -5px;
77
+ top: -5px;
78
+ }
@@ -1,11 +1,13 @@
1
- import { FcrCoreEngine, FcrMainRoomControl } from 'agora-edu-core';
2
- import { FcrPeerSessionControl } from 'agora-edu-core/lib/peer-session';
1
+ import { FcrCoreEngine } from 'agora-edu-core';
3
2
  import { UIModule } from '../../base';
4
3
  import { FcrSecurityStore } from '../../common/security-store';
5
4
  import './index.css';
6
5
  import { FcrUIEventStore } from '../../common/event-store';
7
6
  import { FcrDeviceStore } from '../../common/device-store';
8
7
  import { FcrDeviceStreamStore } from '../../common/device-stream-store';
8
+ import { FcrPeerSessionControl } from 'agora-edu-core/lib/peer-session/type';
9
+ import { FcrMainRoomControl } from 'agora-edu-core/lib/room-control/type';
10
+ import { OperateWaitingRoomMemberDialogProps } from './attendee';
9
11
  export declare class ParticipantUIModule extends UIModule {
10
12
  private _store;
11
13
  constructor(args: {
@@ -18,6 +20,7 @@ export declare class ParticipantUIModule extends UIModule {
18
20
  deviceStreamStore: FcrDeviceStreamStore;
19
21
  });
20
22
  getComponent(): import("react/jsx-runtime").JSX.Element;
23
+ getWaitingRoomDialog(params: OperateWaitingRoomMemberDialogProps): import("react/jsx-runtime").JSX.Element;
21
24
  openDialog(): void;
22
25
  onProcessEvent(event: RendererCustomEvent): void;
23
26
  protected onUnload(): void;
@@ -28,9 +28,9 @@ var _jsxRuntime = require("react/jsx-runtime");
28
28
  var App = (0, _root.hot)(function () {
29
29
  return null;
30
30
  });
31
- _reactDom["default"].render( /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {}), document.querySelector('#root'));
32
- window.__DEV_ENGINE_IS_READY__.then( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
33
- var engine, urlParams, isAssistant, roomId, roomControl, userName, deviceStore, uiEventStore, securityStore, dialogModule, deviceStreamStore, uiModule, App;
31
+ _reactDom["default"].render(/*#__PURE__*/(0, _jsxRuntime.jsx)(App, {}), document.querySelector('#root'));
32
+ window.__DEV_ENGINE_IS_READY__.then(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
33
+ var engine, urlParams, isAssistant, roomId, token, roomControl, userName, deviceStore, uiEventStore, securityStore, dialogModule, deviceStreamStore, uiModule, App;
34
34
  return _regenerator["default"].wrap(function _callee$(_context) {
35
35
  while (1) switch (_context.prev = _context.next) {
36
36
  case 0:
@@ -38,20 +38,22 @@ window.__DEV_ENGINE_IS_READY__.then( /*#__PURE__*/(0, _asyncToGenerator2["defaul
38
38
  urlParams = new URLSearchParams(window.location.search);
39
39
  isAssistant = urlParams.get('roomId');
40
40
  roomId = isAssistant || window.__DEV_ROOM_ID__;
41
- _context.next = 6;
41
+ token = window.__DEV_USER_TOKEN__;
42
+ _context.next = 7;
42
43
  return engine.login();
43
- case 6:
44
- roomControl = engine.createRoomControl(roomId);
44
+ case 7:
45
+ roomControl = engine.createMainRoomControl(roomId);
45
46
  userName = isAssistant ? 'assistants' : 'test-user';
46
- deviceStore = new _deviceStore.FcrDeviceStore(userName, engine.getMediaControl());
47
- _context.next = 11;
47
+ deviceStore = new _deviceStore.FcrDeviceStore(userName, engine.getDesktopMediaControl());
48
+ _context.next = 12;
48
49
  return roomControl.join({
49
50
  userRole: isAssistant ? _type.FcrUserRole.PARTICIPANT : _type.FcrUserRole.HOST,
50
51
  userName: userName,
52
+ roomToken: token,
51
53
  streamLatency: _type.FcrStreamLatencyLevel.ULTRA_LOW,
52
54
  createStreamConfigs: []
53
55
  });
54
- case 11:
56
+ case 12:
55
57
  uiEventStore = new _eventStore.FcrUIEventStore();
56
58
  securityStore = new _securityStore.FcrSecurityStore(roomControl.getPrivilegeControl(), roomControl.getUserControl(), roomControl.getStreamControl(), roomControl.getRoomSessionControl(), uiEventStore);
57
59
  dialogModule = new _dialog.DialogUIModule({
@@ -64,7 +66,7 @@ window.__DEV_ENGINE_IS_READY__.then( /*#__PURE__*/(0, _asyncToGenerator2["defaul
64
66
  streamControl: roomControl.getStreamControl()
65
67
  });
66
68
  deviceStreamStore = new _deviceStreamStore.FcrDeviceStreamStore({
67
- mediaControl: engine.getMediaControl(),
69
+ mediaControl: engine.getDesktopMediaControl(),
68
70
  roomControl: roomControl,
69
71
  securityStore: securityStore,
70
72
  deviceStore: deviceStore,
@@ -89,8 +91,8 @@ window.__DEV_ENGINE_IS_READY__.then( /*#__PURE__*/(0, _asyncToGenerator2["defaul
89
91
  children: [uiModule.getComponent(), dialogModule.getComponent()]
90
92
  });
91
93
  });
92
- _reactDom["default"].render( /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {}), document.querySelector('#root'));
93
- case 18:
94
+ _reactDom["default"].render(/*#__PURE__*/(0, _jsxRuntime.jsx)(App, {}), document.querySelector('#root'));
95
+ case 19:
94
96
  case "end":
95
97
  return _context.stop();
96
98
  }
@@ -1,13 +1,29 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.array.filter.js");
5
+ require("core-js/modules/es.array.for-each.js");
6
+ require("core-js/modules/es.array.push.js");
7
+ require("core-js/modules/es.object.define-properties.js");
3
8
  require("core-js/modules/es.object.define-property.js");
9
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
10
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
11
+ require("core-js/modules/es.object.keys.js");
12
+ require("core-js/modules/es.object.to-string.js");
4
13
  require("core-js/modules/es.reflect.construct.js");
14
+ require("core-js/modules/esnext.async-iterator.filter.js");
15
+ require("core-js/modules/esnext.async-iterator.for-each.js");
16
+ require("core-js/modules/esnext.iterator.constructor.js");
17
+ require("core-js/modules/esnext.iterator.filter.js");
18
+ require("core-js/modules/esnext.iterator.for-each.js");
19
+ require("core-js/modules/web.dom-collections.for-each.js");
5
20
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
21
  Object.defineProperty(exports, "__esModule", {
7
22
  value: true
8
23
  });
9
24
  exports.ParticipantUIModule = void 0;
10
25
  require("core-js/modules/es.function.bind.js");
26
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
27
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
28
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
29
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
@@ -19,7 +35,10 @@ var _context = require("./context");
19
35
  require("./index.css");
20
36
  var _store = _interopRequireDefault(require("./store"));
21
37
  var _view = require("./view");
38
+ var _attendee = require("./attendee");
22
39
  var _jsxRuntime = require("react/jsx-runtime");
40
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
41
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
42
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
24
43
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
25
44
  var ParticipantUIModule = exports.ParticipantUIModule = /*#__PURE__*/function (_UIModule) {
@@ -42,6 +61,14 @@ var ParticipantUIModule = exports.ParticipantUIModule = /*#__PURE__*/function (_
42
61
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_view.View, {})
43
62
  });
44
63
  }
64
+ }, {
65
+ key: "getWaitingRoomDialog",
66
+ value: function getWaitingRoomDialog(params) {
67
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.StoreContext.Provider, {
68
+ value: this._store,
69
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_attendee.OperateWaitingRoomMemberDialog, _objectSpread({}, params))
70
+ });
71
+ }
45
72
  }, {
46
73
  key: "openDialog",
47
74
  value: function openDialog() {
@@ -10,15 +10,15 @@ export declare class FcrUIMemberDataImpl implements FcrUIMemberData {
10
10
  updateStream(stream: FcrStreamInfo): void;
11
11
  addStream(stream: FcrStreamInfo): void;
12
12
  removeStream(streamId: string): void;
13
- constructor(userInfo: FcrUserInfo, streams: FcrStreamInfo[], _isMySelf: boolean);
13
+ constructor(userInfo: FcrUserInfo, streams: Readonly<FcrStreamInfo[]>, _isMySelf: boolean);
14
14
  get userId(): string;
15
15
  get sortingPriority(): FcrUIMemberSortingPriority;
16
16
  }
17
17
  export declare class FcrUIMemberListDataSourceImpl implements FcrUIMemberListDataSource {
18
18
  accessor list: FcrUIMemberDataImpl[];
19
19
  resetList(users: FcrUserInfo[], streams: Record<string, FcrStreamInfo[]>): boolean;
20
- add(user: FcrUserInfo, streams: FcrStreamInfo[], isMySelf: boolean): boolean;
21
- update(param: FcrStreamInfo | FcrUserInfo, isBoardActive?: boolean): boolean;
20
+ add(user: FcrUserInfo, streams: Readonly<FcrStreamInfo[]>, isMySelf: boolean): boolean;
21
+ update(param: FcrStreamInfo | FcrUserInfo | undefined, isBoardActive?: boolean): boolean;
22
22
  updateWithStreamAdd(stream: FcrStreamInfo): boolean;
23
23
  updateWithStreamRemove(stream: FcrStreamInfo): boolean;
24
24
  delete(user: FcrUserInfo): boolean;