fcr-ui-scene 3.5.1 → 3.6.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 (379) hide show
  1. package/lib/creator.d.ts +14 -0
  2. package/lib/creator.js +239 -14
  3. package/lib/electron/app.js +0 -21
  4. package/lib/electron/bootstrap-sdk.js +136 -7
  5. package/lib/electron/injections.d.ts +19 -7
  6. package/lib/electron/injections.js +206 -77
  7. package/lib/electron/ipc/ipc.d.ts +26 -0
  8. package/lib/electron/ipc/ipc.js +137 -0
  9. package/lib/electron/ipc/type.d.ts +11 -0
  10. package/lib/electron/ipc/type.js +19 -0
  11. package/lib/electron/logger.js +1 -1
  12. package/lib/electron/main.js +1 -1
  13. package/lib/electron/plugins/meeting-state.d.ts +1 -0
  14. package/lib/electron/plugins/meeting-state.js +3 -3
  15. package/lib/electron/plugins/screenshot.js +2 -2
  16. package/lib/electron/preload.js +67 -5
  17. package/lib/electron/window.js +0 -2
  18. package/lib/global.css +21 -0
  19. package/lib/modules/action-bar/components/apps/index.js +1 -0
  20. package/lib/modules/action-bar/components/apps/useWidgetList.js +1 -1
  21. package/lib/modules/action-bar/components/item/index.d.ts +2 -0
  22. package/lib/modules/action-bar/components/item/index.js +4 -2
  23. package/lib/modules/action-bar/components/leave/index.js +1 -0
  24. package/lib/modules/action-bar/components/more/index.js +1 -0
  25. package/lib/modules/action-bar/components/record/index.js +43 -106
  26. package/lib/modules/action-bar/components/record/popover.d.ts +4 -0
  27. package/lib/modules/action-bar/components/record/popover.js +57 -0
  28. package/lib/modules/action-bar/components/record/stop-record-dialog.js +1 -0
  29. package/lib/modules/action-bar/components/screen-share/index.js +15 -3
  30. package/lib/modules/action-bar/components/screen-share/submenu.js +2 -2
  31. package/lib/modules/action-bar/components/security/index.js +2 -1
  32. package/lib/modules/action-bar/components/smaller/index.js +1 -1
  33. package/lib/modules/action-bar/components/trigger-output-language/index.js +17 -22
  34. package/lib/modules/action-bar/components/trigger-subscribe-language/index.js +2 -1
  35. package/lib/modules/action-bar/index.css +3 -2
  36. package/lib/modules/action-bar/index.js +2 -1
  37. package/lib/modules/action-bar/store.d.ts +5 -0
  38. package/lib/modules/action-bar/store.js +30 -12
  39. package/lib/modules/action-bar/types.d.ts +1 -0
  40. package/lib/modules/chat/chat-room-store.js +1 -1
  41. package/lib/modules/chat/components/chat-bar/index.d.ts +1 -1
  42. package/lib/modules/chat/components/chat-bar/index.js +5 -3
  43. package/lib/modules/chat/components/chat-select/select-item/index.js +1 -1
  44. package/lib/modules/chat/components/message-list/index.js +1 -2
  45. package/lib/modules/chat/components/message-list/message-item/index.d.ts +0 -1
  46. package/lib/modules/chat/components/message-list/message-item/index.js +9 -10
  47. package/lib/modules/chat/index.css +24 -0
  48. package/lib/modules/chat/view.js +13 -3
  49. package/lib/modules/components/device-control/components/carmera/index.js +4 -5
  50. package/lib/modules/components/device-control/components/microphone/index.js +4 -5
  51. package/lib/modules/components/device-control/index.css +6 -3
  52. package/lib/modules/components/leave-meeting/components/assign-host.js +26 -4
  53. package/lib/modules/components/leave-meeting/components/index.css +35 -0
  54. package/lib/modules/components/leave-meeting/index.js +1 -0
  55. package/lib/modules/components/leave-meeting/store.js +25 -67
  56. package/lib/modules/components/member-window/components/member-actions/components/audio-control.js +3 -2
  57. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +1 -1
  58. package/lib/modules/components/member-window/components/member-actions/components/icon-status.js +10 -9
  59. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +2 -2
  60. package/lib/modules/components/member-window/components/member-actions/components/user-info.js +1 -1
  61. package/lib/modules/components/member-window/components/member-actions/index.js +2 -2
  62. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.js +3 -14
  63. package/lib/modules/components/member-window/index.css +18 -7
  64. package/lib/modules/components/member-window/types.d.ts +1 -1
  65. package/lib/modules/components/security-menu/index.css +2 -2
  66. package/lib/modules/components/security-menu/index.js +80 -28
  67. package/lib/modules/components/tab-frame/index.css +1 -1
  68. package/lib/modules/control-bar/components/meeting-details/index.css +1 -1
  69. package/lib/modules/control-bar/components/meeting-details/index.js +15 -9
  70. package/lib/modules/control-bar/components/more-actions/index.js +3 -21
  71. package/lib/modules/control-bar/components/share-state-nav/index.js +4 -20
  72. package/lib/modules/control-bar/index.d.ts +2 -0
  73. package/lib/modules/control-bar/index.js +3 -1
  74. package/lib/modules/control-bar/store.d.ts +11 -2
  75. package/lib/modules/control-bar/store.js +103 -95
  76. package/lib/modules/control-bar/view.js +1 -6
  77. package/lib/modules/device-pretest/audio-preview/speaker-detection.js +1 -1
  78. package/lib/modules/dialog/components/chat/electron.d.ts +1 -3
  79. package/lib/modules/dialog/components/chat/index.js +24 -17
  80. package/lib/modules/dialog/components/confirm-leave-meeting/index.d.ts +6 -0
  81. package/lib/modules/dialog/components/confirm-leave-meeting/index.js +86 -0
  82. package/lib/modules/dialog/components/control-bar/index.d.ts +1 -2
  83. package/lib/modules/dialog/components/control-bar/index.js +5 -17
  84. package/lib/modules/dialog/components/dialog-container/component/body.d.ts +1 -0
  85. package/lib/modules/dialog/components/dialog-container/component/body.js +4 -2
  86. package/lib/modules/dialog/components/dialog-container/index.css +2 -1
  87. package/lib/modules/dialog/components/dialog-container/index.d.ts +1 -0
  88. package/lib/modules/dialog/components/dialog-container/index.js +3 -1
  89. package/lib/modules/dialog/components/participant/index.d.ts +0 -1
  90. package/lib/modules/dialog/components/participant/index.js +15 -24
  91. package/lib/modules/dialog/components/pre-setting/electron.d.ts +2 -0
  92. package/lib/modules/dialog/components/pre-setting/electron.js +51 -0
  93. package/lib/modules/dialog/components/pre-setting/index.css +26 -0
  94. package/lib/modules/dialog/components/pre-setting/index.d.ts +6 -0
  95. package/lib/modules/dialog/components/pre-setting/index.js +38 -0
  96. package/lib/modules/dialog/components/pre-setting-container/component/body.d.ts +8 -0
  97. package/lib/modules/dialog/components/pre-setting-container/component/body.js +80 -0
  98. package/lib/modules/dialog/components/pre-setting-container/index.css +82 -0
  99. package/lib/modules/dialog/components/pre-setting-container/index.d.ts +18 -0
  100. package/lib/modules/dialog/components/pre-setting-container/index.js +117 -0
  101. package/lib/modules/dialog/components/rename/index.d.ts +4 -0
  102. package/lib/modules/dialog/components/rename/index.js +72 -0
  103. package/lib/modules/dialog/components/video-window/index.js +18 -16
  104. package/lib/modules/dialog/components/widget/electron.d.ts +2 -1
  105. package/lib/modules/dialog/components/widget/electron.js +3 -2
  106. package/lib/modules/dialog/components/widget/index.d.ts +2 -1
  107. package/lib/modules/dialog/components/widget/index.js +4 -6
  108. package/lib/modules/dialog/dialogs.d.ts +1 -0
  109. package/lib/modules/dialog/dialogs.js +3 -2
  110. package/lib/modules/dialog/hooks/useElectron.d.ts +2 -0
  111. package/lib/modules/dialog/hooks/useElectron.js +11 -13
  112. package/lib/modules/dialog/index.d.ts +2 -0
  113. package/lib/modules/dialog/index.js +2 -1
  114. package/lib/modules/dialog/store.d.ts +8 -3
  115. package/lib/modules/dialog/store.js +38 -26
  116. package/lib/modules/dialog/type.d.ts +1 -0
  117. package/lib/modules/dialog/view.js +2 -1
  118. package/lib/modules/event-confirm/index.d.ts +2 -0
  119. package/lib/modules/event-confirm/index.js +2 -1
  120. package/lib/modules/event-confirm/store.d.ts +9 -1
  121. package/lib/modules/event-confirm/store.js +94 -8
  122. package/lib/modules/event-confirm/view.js +55 -46
  123. package/lib/modules/{sound-effect → event-sound}/index.d.ts +3 -2
  124. package/lib/modules/{sound-effect → event-sound}/index.js +9 -5
  125. package/lib/modules/event-toast/store.js +2 -0
  126. package/lib/modules/interpreter/dialog-content/index.js +4 -1
  127. package/lib/modules/interpreter/index.d.ts +2 -0
  128. package/lib/modules/interpreter/index.js +2 -1
  129. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/index.js +3 -0
  130. package/lib/modules/interpreter/store.d.ts +2 -2
  131. package/lib/modules/interpreter/store.js +30 -24
  132. package/lib/modules/interpreter/type.d.ts +2 -0
  133. package/lib/modules/invite/components/pstn-invite.js +3 -9
  134. package/lib/modules/invite/components/voip-invite.css +26 -0
  135. package/lib/modules/invite/components/voip-invite.d.ts +1 -0
  136. package/lib/modules/invite/components/voip-invite.js +8 -11
  137. package/lib/modules/invite/index.css +16 -3
  138. package/lib/modules/invite/index.d.ts +2 -1
  139. package/lib/modules/invite/index.js +2 -1
  140. package/lib/modules/invite/store.d.ts +5 -1
  141. package/lib/modules/invite/store.js +8 -1
  142. package/lib/modules/layout/components/Carousel.d.ts +1 -1
  143. package/lib/modules/layout/components/Carousel.js +16 -118
  144. package/lib/modules/layout/components/CommonVideoRenderer.d.ts +13 -0
  145. package/lib/modules/layout/components/CommonVideoRenderer.js +214 -0
  146. package/lib/modules/layout/components/Gallery.d.ts +1 -0
  147. package/lib/modules/layout/components/Gallery.js +62 -205
  148. package/lib/modules/layout/components/index.css +17 -34
  149. package/lib/modules/layout/index.d.ts +2 -0
  150. package/lib/modules/layout/index.js +2 -1
  151. package/lib/modules/layout/store.d.ts +5 -2
  152. package/lib/modules/layout/store.js +47 -39
  153. package/lib/modules/layout/type.d.ts +4 -0
  154. package/lib/modules/layout/type.js +6 -1
  155. package/lib/modules/live-streaming/store.d.ts +1 -0
  156. package/lib/modules/live-streaming/store.js +19 -8
  157. package/lib/modules/participant/components/confirm-input/index.d.ts +4 -4
  158. package/lib/modules/participant/components/confirm-input/index.js +74 -6
  159. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.css +27 -3
  160. package/lib/modules/participant/components/participants/components/footer/components/footer/index.css +4 -0
  161. package/lib/modules/participant/components/participants/components/footer/components/footer/index.js +3 -2
  162. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.css +4 -3
  163. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.js +1 -0
  164. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.css +9 -1
  165. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.js +1 -1
  166. package/lib/modules/participant/components/participants/components/participants/index.css +1 -0
  167. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.css +18 -0
  168. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.js +12 -5
  169. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.js +1 -8
  170. package/lib/modules/participant/index.css +6 -0
  171. package/lib/modules/participant/index.d.ts +1 -0
  172. package/lib/modules/participant/index.js +9 -0
  173. package/lib/modules/participant/store.d.ts +6 -0
  174. package/lib/modules/participant/store.js +130 -96
  175. package/lib/modules/pc-audio-connect/store.js +1 -1
  176. package/lib/modules/phone-audio-connect/index.d.ts +2 -0
  177. package/lib/modules/phone-audio-connect/index.js +2 -1
  178. package/lib/modules/phone-audio-connect/store.d.ts +4 -1
  179. package/lib/modules/phone-audio-connect/store.js +4 -2
  180. package/lib/modules/setting/audio-settings/audio-settings.js +70 -48
  181. package/lib/modules/setting/audio-settings/index.css +23 -6
  182. package/lib/modules/setting/general-settings/general-settings.d.ts +1 -2
  183. package/lib/modules/setting/general-settings/general-settings.js +111 -37
  184. package/lib/modules/setting/general-settings/index.css +15 -0
  185. package/lib/modules/setting/index.d.ts +4 -1
  186. package/lib/modules/setting/index.js +7 -4
  187. package/lib/modules/setting/state/index.js +1 -1
  188. package/lib/modules/setting/store.d.ts +24 -11
  189. package/lib/modules/setting/store.js +203 -142
  190. package/lib/modules/setting/video-settings/index.css +13 -2
  191. package/lib/modules/setting/video-settings/video-settings-basic.js +18 -27
  192. package/lib/modules/setting/video-settings/video-settings.d.ts +0 -2
  193. package/lib/modules/setting/video-settings/video-settings.js +3 -2
  194. package/lib/modules/setting/view.d.ts +11 -2
  195. package/lib/modules/setting/view.js +93 -71
  196. package/lib/modules/share-screen/components/selection/index.js +6 -2
  197. package/lib/modules/share-screen/index.d.ts +4 -1
  198. package/lib/modules/share-screen/index.js +3 -1
  199. package/lib/modules/share-screen/store.d.ts +15 -5
  200. package/lib/modules/share-screen/store.js +105 -59
  201. package/lib/modules/share-screen/view.js +1 -1
  202. package/lib/modules/state-bar/index.css +4 -2
  203. package/lib/modules/state-bar/index.d.ts +2 -0
  204. package/lib/modules/state-bar/index.js +2 -1
  205. package/lib/modules/state-bar/layout-config.js +1 -0
  206. package/lib/modules/state-bar/live-streaming-state.js +1 -0
  207. package/lib/modules/state-bar/meeting-detail.css +10 -1
  208. package/lib/modules/state-bar/meeting-details.js +42 -26
  209. package/lib/modules/state-bar/meeting-network-state.css +8 -0
  210. package/lib/modules/state-bar/meeting-time.js +9 -20
  211. package/lib/modules/state-bar/store.d.ts +5 -1
  212. package/lib/modules/state-bar/store.js +10 -3
  213. package/lib/modules/state-bar/view.js +17 -6
  214. package/lib/modules/video-window/components/members/index.js +0 -3
  215. package/lib/modules/waiting-room-layout/index.css +13 -0
  216. package/lib/modules/waiting-room-layout/index.d.ts +2 -1
  217. package/lib/modules/waiting-room-layout/index.js +2 -1
  218. package/lib/modules/waiting-room-layout/store.d.ts +12 -1
  219. package/lib/modules/waiting-room-layout/store.js +42 -6
  220. package/lib/modules/waiting-room-layout/view.js +22 -5
  221. package/lib/modules/whiteboard/components/control-bar/index.css +1 -1
  222. package/lib/modules/whiteboard/components/switch-theme/libs.d.ts +1 -1
  223. package/lib/modules/whiteboard/components/switch-theme/libs.js +3 -1
  224. package/lib/modules/whiteboard/components/toolbar/ style.css +1 -0
  225. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/panel.js +1 -0
  226. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/picker.js +1 -0
  227. package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.js +3 -14
  228. package/lib/modules/whiteboard/components/toolbar/components/expansion/index.d.ts +1 -0
  229. package/lib/modules/whiteboard/components/toolbar/components/expansion/index.js +83 -0
  230. package/lib/modules/whiteboard/components/toolbar/components/extra-tool-picker.js +2 -2
  231. package/lib/modules/whiteboard/components/toolbar/components/history.js +3 -3
  232. package/lib/modules/whiteboard/components/toolbar/components/item/index.d.ts +1 -0
  233. package/lib/modules/whiteboard/components/toolbar/components/item/index.js +42 -0
  234. package/lib/modules/whiteboard/components/toolbar/components/pen-picker.js +2 -2
  235. package/lib/modules/whiteboard/components/toolbar/components/screen-capture-picker.js +2 -2
  236. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +3 -3
  237. package/lib/modules/whiteboard/components/toolbar/hooks/index.js +6 -6
  238. package/lib/modules/whiteboard/components/toolbar/index.js +9 -113
  239. package/lib/modules/whiteboard/components/toolbar/store.d.ts +18 -0
  240. package/lib/modules/whiteboard/components/toolbar/store.js +276 -83
  241. package/lib/modules/whiteboard/context.d.ts +1 -2
  242. package/lib/modules/whiteboard/index.d.ts +1 -14
  243. package/lib/modules/whiteboard/index.js +131 -426
  244. package/lib/modules/whiteboard/view.js +12 -10
  245. package/lib/modules/widget/sdk.js +2 -1
  246. package/lib/object-manager.d.ts +8 -0
  247. package/lib/object-manager.js +75 -0
  248. package/lib/plugins/browser-runtime-plugin.js +19 -14
  249. package/lib/providers/ability-provider.d.ts +8 -0
  250. package/lib/providers/ability-provider.js +14 -0
  251. package/lib/providers/device-privilege-provider.d.ts +1 -0
  252. package/lib/providers/device-privilege-provider.js +53 -75
  253. package/lib/providers/device-provider.d.ts +18 -8
  254. package/lib/providers/device-provider.js +397 -209
  255. package/lib/providers/device-stream-provider.js +0 -4
  256. package/lib/providers/dialog-provider.d.ts +1 -0
  257. package/lib/providers/dialog-provider.js +4 -18
  258. package/lib/providers/event-provider.js +45 -2
  259. package/lib/providers/interpreter-provider.d.ts +4 -0
  260. package/lib/providers/interpreter-provider.js +166 -137
  261. package/lib/providers/message-provider.js +44 -2
  262. package/lib/providers/privilege-provider.d.ts +33 -0
  263. package/lib/providers/privilege-provider.js +120 -45
  264. package/lib/providers/room-provider.d.ts +12 -10
  265. package/lib/providers/room-provider.js +162 -262
  266. package/lib/providers/screen-share-provider.d.ts +4 -0
  267. package/lib/providers/screen-share-provider.js +3 -6
  268. package/lib/providers/widget-provider.js +6 -4
  269. package/lib/runtime.d.ts +20 -8
  270. package/lib/scenes/main-scene.d.ts +2 -0
  271. package/lib/scenes/main-scene.js +95 -37
  272. package/lib/scenes/waiting-scene.js +16 -13
  273. package/lib/schema.d.ts +55 -32
  274. package/lib/schema.js +23 -9
  275. package/lib/shared-data-source/config.d.ts +6 -2
  276. package/lib/shared-data-source/config.js +81 -10
  277. package/lib/shared-data-source/member-data.d.ts +16 -20
  278. package/lib/shared-data-source/member-data.js +121 -110
  279. package/lib/shared-data-source/screen-share-data-source.d.ts +37 -0
  280. package/lib/shared-data-source/screen-share-data-source.js +134 -0
  281. package/lib/shared-data-source/security-data.d.ts +1 -0
  282. package/lib/shared-data-source/security-data.js +3 -5
  283. package/lib/shared-data-source/setting.d.ts +1 -0
  284. package/lib/shared-data-source/setting.js +33 -17
  285. package/lib/shared-data-source/video-window.d.ts +3 -3
  286. package/lib/shared-data-source/video-window.js +55 -38
  287. package/lib/translations/enUS.d.ts +48 -1
  288. package/lib/translations/enUS.js +101 -17
  289. package/lib/translations/zhCN.d.ts +48 -1
  290. package/lib/translations/zhCN.js +88 -4
  291. package/lib/type.d.ts +40 -20
  292. package/lib/type.js +14 -1
  293. package/lib/ui-manager.d.ts +11 -9
  294. package/lib/ui-manager.js +118 -29
  295. package/lib/ui-scene.d.ts +7 -4
  296. package/lib/ui-scene.js +111 -128
  297. package/lib/utilities/constant.d.ts +3 -1
  298. package/lib/utilities/constant.js +2 -0
  299. package/lib/utilities/copyText.js +15 -11
  300. package/lib/utilities/default-config.d.ts +2 -0
  301. package/lib/utilities/default-config.js +11 -5
  302. package/lib/utilities/i18n-common-data.d.ts +2 -0
  303. package/lib/utilities/i18n-common-data.js +15 -0
  304. package/lib/utilities/logger.d.ts +0 -1
  305. package/lib/utilities/logger.js +3 -4
  306. package/lib/utilities/renderer.d.ts +0 -9
  307. package/lib/utilities/renderer.js +1 -70
  308. package/lib/utilities/screen.js +3 -1
  309. package/lib/utilities/setting-config-storage.d.ts +6 -1
  310. package/lib/utilities/setting-config-storage.js +21 -4
  311. package/lib/utilities/tools.d.ts +7 -6
  312. package/lib/utilities/tools.js +56 -44
  313. package/lib/utilities/ui-resources.d.ts +6 -0
  314. package/lib/utilities/ui-resources.js +47 -9
  315. package/lib/waiting-room-control-manager.d.ts +4 -4
  316. package/lib/waiting-room-control-manager.js +29 -9
  317. package/package.json +6 -6
  318. package/public/assets/browser/images/default1.jpg +0 -0
  319. package/public/assets/browser/images/default2.jpg +0 -0
  320. package/public/assets/browser/images/default3.jpg +0 -0
  321. package/public/assets/browser/images/default4.jpg +0 -0
  322. package/public/assets/browser/images/default5.jpg +0 -0
  323. package/public/assets/browser/images/default6.jpg +0 -0
  324. package/public/assets/browser/images/default7.jpg +0 -0
  325. package/public/assets/browser/sound_effects/pretest.mp3 +0 -0
  326. package/public/assets/browser/sound_effects/recording_started.mp3 +0 -0
  327. package/public/assets/browser/sound_effects/remote_user_joined.mp3 +0 -0
  328. package/public/assets/browser/sound_effects/speaker_test.mp3 +0 -0
  329. package/public/assets/browser/videos/default8.mp4 +0 -0
  330. package/public/assets/browser/videos/default9.mp4 +0 -0
  331. package/public/assets/electron/images/default1.jpg +0 -0
  332. package/public/assets/electron/images/default2.jpg +0 -0
  333. package/public/assets/electron/sound_effects/pretest.mp3 +0 -0
  334. package/public/assets/electron/videos/default8.mp4 +0 -0
  335. package/public/index.html +103 -82
  336. package/lib/hooks/meeting-time.d.ts +0 -15
  337. package/lib/hooks/meeting-time.js +0 -92
  338. package/lib/login-confirm-dialog.d.ts +0 -13
  339. package/lib/login-confirm-dialog.js +0 -85
  340. package/lib/modules/action-bar/components/apps/appitems.d.ts +0 -3
  341. package/lib/modules/action-bar/components/apps/appitems.js +0 -45
  342. package/lib/modules/components/member-window/components/member-board.d.ts +0 -2
  343. package/lib/modules/components/member-window/components/member-board.js +0 -63
  344. package/lib/modules/dialog/components/system-preference/bg1.png +0 -0
  345. package/lib/modules/dialog/components/system-preference/bg2.png +0 -0
  346. package/lib/modules/dialog/types/index.d.ts +0 -70
  347. package/lib/modules/participant/components/attendee/components/microphone-indicator/index.d.ts +0 -6
  348. package/lib/modules/participant/components/attendee/components/microphone-indicator/index.js +0 -28
  349. package/lib/modules/participant/components/attendee/components/user-avatar/index.d.ts +0 -7
  350. package/lib/modules/participant/components/attendee/components/user-avatar/index.js +0 -39
  351. package/lib/modules/participant/components/attendee/index.css +0 -69
  352. package/lib/modules/participant/components/attendee/index.d.ts +0 -4
  353. package/lib/modules/participant/components/attendee/index.js +0 -337
  354. package/lib/modules/participant/components/drop-menu/index.css +0 -60
  355. package/lib/modules/participant/components/drop-menu/index.d.ts +0 -2
  356. package/lib/modules/participant/components/drop-menu/index.js +0 -189
  357. package/lib/modules/participant/components/footer/buttons.d.ts +0 -6
  358. package/lib/modules/participant/components/footer/buttons.js +0 -52
  359. package/lib/modules/participant/components/footer/index.d.ts +0 -4
  360. package/lib/modules/participant/components/footer/index.js +0 -37
  361. package/lib/modules/participant/components/merge/index.d.ts +0 -11
  362. package/lib/modules/participant/components/merge/index.js +0 -49
  363. package/lib/modules/participant/components/rename/index.d.ts +0 -4
  364. package/lib/modules/participant/components/rename/index.js +0 -45
  365. package/lib/modules/participant/components/user-action/index.d.ts +0 -17
  366. package/lib/modules/participant/components/user-action/index.js +0 -169
  367. package/lib/modules/video-window/deviceState/index.d.ts +0 -16
  368. package/lib/modules/video-window/deviceState/index.js +0 -75
  369. package/lib/modules/video-window/members/index.css +0 -51
  370. package/lib/modules/video-window/members/index.d.ts +0 -2
  371. package/lib/modules/video-window/members/index.js +0 -157
  372. package/lib/modules/video-window/speaking/index.css +0 -69
  373. package/lib/modules/video-window/speaking/index.d.ts +0 -3
  374. package/lib/modules/video-window/speaking/index.js +0 -57
  375. package/lib/modules/video-window/topControl/index.css +0 -35
  376. package/lib/modules/video-window/topControl/index.d.ts +0 -3
  377. package/lib/modules/video-window/topControl/index.js +0 -92
  378. /package/lib/modules/{sound-effect → event-sound}/sound-effect-player.d.ts +0 -0
  379. /package/lib/modules/{sound-effect → event-sound}/sound-effect-player.js +0 -0
@@ -0,0 +1,37 @@
1
+ import { CurrentShareBounds } from '../modules/control-bar/types';
2
+ import { AudioProcessingChannel } from 'agora-ui-foundation/lib/components/room-screen-share-state-bar/share-audio';
3
+ export interface FcrUIScreenShareDataSource {
4
+ /**
5
+ * 是否正在屏幕共享
6
+ */
7
+ get isSharingScreen(): boolean;
8
+ /**
9
+ * 当前共享屏幕的 bounds
10
+ */
11
+ get currentShareBounds(): Electron.Rectangle | CurrentShareBounds | null;
12
+ /**
13
+ * 获取当前设置的音效通道
14
+ */
15
+ get currentShareAudioProcessingChannel(): AudioProcessingChannel;
16
+ /**
17
+ * 设置是否正在屏幕共享
18
+ */
19
+ setSharingScreen: (isSharingScreen: boolean) => void;
20
+ /**
21
+ * 设置当前共享的屏幕 bounds
22
+ */
23
+ setCurrentShareBounds: (currentShareBounds: Electron.Rectangle | CurrentShareBounds) => void;
24
+ /**
25
+ * 设置音效通道
26
+ */
27
+ setCurrentShareAudioProcessingChannel: (channel: AudioProcessingChannel) => void;
28
+ }
29
+ export declare class FcrUIScreenShareDataSourceImpl implements FcrUIScreenShareDataSource {
30
+ protected logger: import("agora-foundation/lib/logger").Logger;
31
+ accessor currentShareAudioProcessingChannel: AudioProcessingChannel;
32
+ accessor isSharingScreen: boolean;
33
+ accessor currentShareBounds: CurrentShareBounds | null | Electron.Rectangle;
34
+ setSharingScreen(isSharingScreen: boolean): void;
35
+ setCurrentShareBounds(currentShareBounds: Electron.Rectangle | CurrentShareBounds): void;
36
+ setCurrentShareAudioProcessingChannel(channel: AudioProcessingChannel): void;
37
+ }
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.symbol.description.js");
5
+ require("core-js/modules/es.symbol.to-primitive.js");
6
+ require("core-js/modules/es.error.cause.js");
7
+ require("core-js/modules/es.error.to-string.js");
8
+ require("core-js/modules/es.array.is-array.js");
9
+ require("core-js/modules/es.array.push.js");
10
+ require("core-js/modules/es.date.to-primitive.js");
11
+ require("core-js/modules/es.function.bind.js");
12
+ require("core-js/modules/es.function.name.js");
13
+ require("core-js/modules/es.map.js");
14
+ require("core-js/modules/es.number.constructor.js");
15
+ require("core-js/modules/es.object.create.js");
16
+ require("core-js/modules/es.object.define-property.js");
17
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
18
+ require("core-js/modules/esnext.function.metadata.js");
19
+ require("core-js/modules/esnext.map.delete-all.js");
20
+ require("core-js/modules/esnext.map.emplace.js");
21
+ require("core-js/modules/esnext.map.every.js");
22
+ require("core-js/modules/esnext.map.filter.js");
23
+ require("core-js/modules/esnext.map.find.js");
24
+ require("core-js/modules/esnext.map.find-key.js");
25
+ require("core-js/modules/esnext.map.includes.js");
26
+ require("core-js/modules/esnext.map.key-of.js");
27
+ require("core-js/modules/esnext.map.map-keys.js");
28
+ require("core-js/modules/esnext.map.map-values.js");
29
+ require("core-js/modules/esnext.map.merge.js");
30
+ require("core-js/modules/esnext.map.reduce.js");
31
+ require("core-js/modules/esnext.map.some.js");
32
+ require("core-js/modules/esnext.map.update.js");
33
+ require("core-js/modules/esnext.symbol.metadata.js");
34
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
35
+ var _typeof = require("@babel/runtime/helpers/typeof");
36
+ Object.defineProperty(exports, "__esModule", {
37
+ value: true
38
+ });
39
+ exports.FcrUIScreenShareDataSourceImpl = void 0;
40
+ require("core-js/modules/es.array.iterator.js");
41
+ require("core-js/modules/es.date.to-json.js");
42
+ require("core-js/modules/es.json.stringify.js");
43
+ require("core-js/modules/es.object.to-string.js");
44
+ require("core-js/modules/es.string.iterator.js");
45
+ require("core-js/modules/es.weak-map.js");
46
+ require("core-js/modules/esnext.weak-map.delete-all.js");
47
+ require("core-js/modules/esnext.weak-map.emplace.js");
48
+ require("core-js/modules/web.dom-collections.iterator.js");
49
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
50
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
51
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
52
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
53
+ var _mobx = require("mobx");
54
+ var _base = require("../base");
55
+ var _logger = require("../utilities/logger");
56
+ var _env = require("agora-foundation/lib/utilities/env");
57
+ var _shareAudio = require("agora-ui-foundation/lib/components/room-screen-share-state-bar/share-audio");
58
+ var _FcrUIScreenShareDataSourceImpl;
59
+ var _initProto, _init_currentShareAudioProcessingChannel, _init_isSharingScreen, _init_currentShareBounds, _setSharingScreenDecs, _setCurrentShareBoundsDecs, _setCurrentShareAudioProcessingChannelDecs, _ref;
60
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
61
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
62
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
63
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
64
+ 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"); }
65
+ function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function set(e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O["static"] = l, O["private"] = f, f ? 2 === o ? k = function k(e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function k(e) { return e[n]; }, (o < 2 || 4 === o) && (F = function F(e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == _typeof(P) && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol["for"]("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function s(t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
66
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
67
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
68
+ function _setFunctionName(e, t, n) { "symbol" == _typeof(t) && (t = (t = t.description) ? "[" + t + "]" : ""); try { Object.defineProperty(e, "name", { configurable: !0, value: n ? n + " " + t : t }); } catch (e) {} return e; }
69
+ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side of 'in' should be an object, got " + (null !== e ? _typeof(e) : "null")); return e; }
70
+ var _A = /*#__PURE__*/new WeakMap();
71
+ var _B = /*#__PURE__*/new WeakMap();
72
+ var _C = /*#__PURE__*/new WeakMap();
73
+ _ref = (_setSharingScreenDecs = [_mobx.action, _mobx.action.bound], _setCurrentShareBoundsDecs = [_mobx.action, _mobx.action.bound], _setCurrentShareAudioProcessingChannelDecs = [_mobx.action, _mobx.action.bound], "logger");
74
+ var FcrUIScreenShareDataSourceImpl = exports.FcrUIScreenShareDataSourceImpl = /*#__PURE__*/function () {
75
+ function FcrUIScreenShareDataSourceImpl() {
76
+ (0, _classCallCheck2["default"])(this, FcrUIScreenShareDataSourceImpl);
77
+ (0, _defineProperty2["default"])(this, _ref, (_initProto(this), (0, _logger.createLogger)({
78
+ prefix: 'FcrUIScreenShareDataSourceImpl'
79
+ })));
80
+ _classPrivateFieldInitSpec(this, _A, _init_currentShareAudioProcessingChannel(this, _shareAudio.AudioProcessingChannel.MONO));
81
+ _classPrivateFieldInitSpec(this, _B, _init_isSharingScreen(this, false));
82
+ _classPrivateFieldInitSpec(this, _C, _init_currentShareBounds(this, (0, _env.isElectron)() ? window.runtime.browserWindow.getBounds() : null));
83
+ }
84
+ return (0, _createClass2["default"])(FcrUIScreenShareDataSourceImpl, [{
85
+ key: "currentShareAudioProcessingChannel",
86
+ get: function get() {
87
+ return _classPrivateFieldGet(_A, this);
88
+ },
89
+ set: function set(v) {
90
+ _classPrivateFieldSet(_A, this, v);
91
+ }
92
+ }, {
93
+ key: "isSharingScreen",
94
+ get: function get() {
95
+ return _classPrivateFieldGet(_B, this);
96
+ },
97
+ set: function set(v) {
98
+ _classPrivateFieldSet(_B, this, v);
99
+ }
100
+ }, {
101
+ key: "currentShareBounds",
102
+ get: function get() {
103
+ return _classPrivateFieldGet(_C, this);
104
+ },
105
+ set: function set(v) {
106
+ _classPrivateFieldSet(_C, this, v);
107
+ }
108
+ }, {
109
+ key: "setSharingScreen",
110
+ value: function setSharingScreen(isSharingScreen) {
111
+ this.isSharingScreen = isSharingScreen;
112
+ this.logger.info("setSharingScreen: ".concat(isSharingScreen));
113
+ }
114
+ }, {
115
+ key: "setCurrentShareBounds",
116
+ value: function setCurrentShareBounds(currentShareBounds) {
117
+ this.currentShareBounds = currentShareBounds;
118
+ this.logger.info("setCurrentShareBounds: ".concat(JSON.stringify(currentShareBounds)));
119
+ }
120
+ }, {
121
+ key: "setCurrentShareAudioProcessingChannel",
122
+ value: function setCurrentShareAudioProcessingChannel(channel) {
123
+ this.currentShareAudioProcessingChannel = channel;
124
+ this.logger.info("setCurrentShareAudioProcessingChannel: ".concat(channel));
125
+ }
126
+ }]);
127
+ }();
128
+ _FcrUIScreenShareDataSourceImpl = FcrUIScreenShareDataSourceImpl;
129
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIScreenShareDataSourceImpl, [[_mobx.observable, 1, "currentShareAudioProcessingChannel"], [_mobx.observable, 1, "isSharingScreen"], [_mobx.observable, 1, "currentShareBounds"], [_setSharingScreenDecs, 18, "setSharingScreen"], [_setCurrentShareBoundsDecs, 18, "setCurrentShareBounds"], [_setCurrentShareAudioProcessingChannelDecs, 18, "setCurrentShareAudioProcessingChannel"]], []).e, 4);
130
+ _init_currentShareAudioProcessingChannel = _applyDecs$e[0];
131
+ _init_isSharingScreen = _applyDecs$e[1];
132
+ _init_currentShareBounds = _applyDecs$e[2];
133
+ _initProto = _applyDecs$e[3];
134
+ (0, _base.registerDependency)('screenShareDataSource');
@@ -4,6 +4,7 @@ export interface FcrSecurityCheckedStateType {
4
4
  lockRoom: boolean;
5
5
  enableWaitingRoom: boolean;
6
6
  enableJoinWithAudio: boolean;
7
+ joinWithCloseVideo: boolean;
7
8
  enableWatermark: boolean;
8
9
  shareScreen: boolean;
9
10
  shareWhiteboard: boolean;
@@ -106,6 +106,7 @@ var FcrUISecuritySharedDataSourceImpl = exports.FcrUISecuritySharedDataSourceImp
106
106
  lockRoom: this._privilegeProvider.isLockRoomEnabled(),
107
107
  enableWaitingRoom: this._privilegeProvider.isWaitingRoomEnabled(),
108
108
  enableJoinWithAudio: this._privilegeProvider.allowJoinWithMuteAudio(),
109
+ joinWithCloseVideo: this._privilegeProvider.allowJoinWithMutedVideo(),
109
110
  enableWatermark: this._privilegeProvider.isWaterMarkEnabled(),
110
111
  shareScreen: this._privilegeProvider.allowScreenShareAndBoard(),
111
112
  shareWhiteboard: this._privilegeProvider.allowBoardWrite(),
@@ -133,10 +134,7 @@ var FcrUISecuritySharedDataSourceImpl = exports.FcrUISecuritySharedDataSourceImp
133
134
  }, {
134
135
  key: "_handleLocalUserSecurityInfosUpdated",
135
136
  value: function _handleLocalUserSecurityInfosUpdated(event) {
136
- var _event$operatorUser;
137
- if (((_event$operatorUser = event.operatorUser) === null || _event$operatorUser === void 0 ? void 0 : _event$operatorUser.userId) !== this.localUserId) {
138
- this._refreshCheckedStateMap();
139
- }
137
+ this._refreshCheckedStateMap();
140
138
  }
141
139
  }, {
142
140
  key: "release",
@@ -150,7 +148,7 @@ var FcrUISecuritySharedDataSourceImpl = exports.FcrUISecuritySharedDataSourceImp
150
148
  }]);
151
149
  }();
152
150
  _FcrUISecuritySharedDataSourceImpl = FcrUISecuritySharedDataSourceImpl;
153
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUISecuritySharedDataSourceImpl, [[_mobx.observable, 1, "_checkedStateMap"], [_mobx.computed, 3, "localUserId"], [_setCheckedStateMapDecs, 18, "setCheckedStateMap"]], []).e, 2);
151
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUISecuritySharedDataSourceImpl, [[_mobx.observable, 1, "_checkedStateMap"], [_setCheckedStateMapDecs, 18, "setCheckedStateMap"]], []).e, 2);
154
152
  _init__checkedStateMap = _applyDecs$e[0];
155
153
  _initProto = _applyDecs$e[1];
156
154
  (0, _base.registerDependency)('sharedSecuritySharedDataSource');
@@ -31,4 +31,5 @@ export declare class FcrUISharedSettingDataSourceImpl implements FcrUISharedSett
31
31
  get setting(): CustomSetting;
32
32
  private _preHandleSetting;
33
33
  setSetting(assignedSetting: Partial<CustomSetting>): void;
34
+ private _initSetting;
34
35
  }
@@ -6,7 +6,6 @@ require("core-js/modules/es.symbol.to-primitive.js");
6
6
  require("core-js/modules/es.error.cause.js");
7
7
  require("core-js/modules/es.error.to-string.js");
8
8
  require("core-js/modules/es.array.filter.js");
9
- require("core-js/modules/es.array.for-each.js");
10
9
  require("core-js/modules/es.array.is-array.js");
11
10
  require("core-js/modules/es.array.push.js");
12
11
  require("core-js/modules/es.date.to-primitive.js");
@@ -48,7 +47,9 @@ Object.defineProperty(exports, "__esModule", {
48
47
  value: true
49
48
  });
50
49
  exports.FcrUISharedSettingDataSourceImpl = void 0;
50
+ require("core-js/modules/es.array.for-each.js");
51
51
  require("core-js/modules/es.array.iterator.js");
52
+ require("core-js/modules/es.object.assign.js");
52
53
  require("core-js/modules/es.object.to-string.js");
53
54
  require("core-js/modules/es.string.iterator.js");
54
55
  require("core-js/modules/es.weak-map.js");
@@ -60,13 +61,15 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
60
61
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
61
62
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
62
63
  var _imports = require("agora-rte-sdk/lib/imports");
64
+ var _store = require("../modules/setting/store");
63
65
  var _fcrCore = require("fcr-core");
64
66
  var _parameters = require("../utilities/parameters");
65
67
  var _mobx = require("mobx");
66
68
  var _base = require("../base");
67
- var _localStorageProvider = require("../providers/local-storage-provider");
69
+ var _i18n = require("agora-ui-foundation/lib/i18n");
70
+ var _tools = require("../utilities/tools");
68
71
  var _FcrUISharedSettingDataSourceImpl;
69
- var _initProto, _init__setting, _preHandleSettingDecs, _setSettingDecs, _ref;
72
+ var _initProto, _init__setting, _preHandleSettingDecs, _setSettingDecs, _initSettingDecs, _ref;
70
73
  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; }
71
74
  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; }
72
75
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
@@ -84,10 +87,9 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
84
87
  * 通过该接口,可以方便地对自定义设置进行读取和更新操作,适用于管理和维护 UI 相关的共享配置。
85
88
  */
86
89
  var _A = /*#__PURE__*/new WeakMap();
87
- _ref = (_preHandleSettingDecs = [_mobx.action, _mobx.action.bound], _setSettingDecs = [_mobx.action, _mobx.action.bound], "_creatorConfig");
90
+ _ref = (_preHandleSettingDecs = [_mobx.action, _mobx.action.bound], _setSettingDecs = [_mobx.action, _mobx.action.bound], _initSettingDecs = [_mobx.action, _mobx.action.bound], "_creatorConfig");
88
91
  var FcrUISharedSettingDataSourceImpl = exports.FcrUISharedSettingDataSourceImpl = /*#__PURE__*/function () {
89
92
  function FcrUISharedSettingDataSourceImpl(creatorConfig, localStorageProvider) {
90
- var _this = this;
91
93
  (0, _classCallCheck2["default"])(this, FcrUISharedSettingDataSourceImpl);
92
94
  (0, _defineProperty2["default"])(this, _ref, void _initProto(this));
93
95
  _classPrivateFieldInitSpec(this, _A, _init__setting(this, {
@@ -96,9 +98,9 @@ var FcrUISharedSettingDataSourceImpl = exports.FcrUISharedSettingDataSourceImpl
96
98
  displayedMaxAttendees: 16,
97
99
  autoAdjustmentSpeakerVolume: true,
98
100
  autoAdjustmentMicrophoneVolume: (0, _imports.isElectron)(),
99
- noiseReduce: _fcrCore.FcrAiDenoiseLevel.AUTO,
101
+ noiseReduce: _fcrCore.FcrAiDenoiseLevel.MEDIUM,
100
102
  recordingPath: '',
101
- videoHD: true,
103
+ videoHD: false,
102
104
  videoLowLight: false,
103
105
  hardwareForReception: false,
104
106
  videoNoise: false,
@@ -106,7 +108,10 @@ var FcrUISharedSettingDataSourceImpl = exports.FcrUISharedSettingDataSourceImpl
106
108
  audioEchoCancellation: false,
107
109
  audioStereo: false,
108
110
  audioVoiceChanger: false,
109
- spotlightEnabled: true
111
+ spotlightEnabled: true,
112
+ isPlaySound: true,
113
+ language: (0, _tools.getBrowserLanguage)(),
114
+ shouldHideMyVideo: false
110
115
  }));
111
116
  (0, _defineProperty2["default"])(this, "_useDefaultAudioEchoCancellation", true);
112
117
  this._localStorageProvider = localStorageProvider;
@@ -115,13 +120,8 @@ var FcrUISharedSettingDataSourceImpl = exports.FcrUISharedSettingDataSourceImpl
115
120
  if (defaultVideoGallerySize) {
116
121
  defaultVideoGallerySize = Math.min(Math.max(defaultVideoGallerySize, 16), 25);
117
122
  }
118
- var readAndSetSetting = function readAndSetSetting(key, defaultValue) {
119
- var value = _this._localStorageProvider.read(key);
120
- _this._setting[key] = value === null ? defaultValue : Boolean(value);
121
- };
122
- readAndSetSetting(_localStorageProvider.FcrLocalStorageSettingKey.SpotlightEnabled, true);
123
- readAndSetSetting(_localStorageProvider.FcrLocalStorageSettingKey.ShouldHideNonVideoParticipants, false);
124
123
  this._setting.displayedMaxAttendees = defaultVideoGallerySize || 0;
124
+ this._initSetting();
125
125
  }
126
126
  return (0, _createClass2["default"])(FcrUISharedSettingDataSourceImpl, [{
127
127
  key: "_setting",
@@ -151,14 +151,30 @@ var FcrUISharedSettingDataSourceImpl = exports.FcrUISharedSettingDataSourceImpl
151
151
  key: "setSetting",
152
152
  value: function setSetting(assignedSetting) {
153
153
  var newSetting = this._preHandleSetting(assignedSetting);
154
- this._localStorageProvider.write(_localStorageProvider.FcrLocalStorageSettingKey.SpotlightEnabled, newSetting.spotlightEnabled);
155
- this._localStorageProvider.write(_localStorageProvider.FcrLocalStorageSettingKey.ShouldHideNonVideoParticipants, newSetting.shouldHideNonVideoParticipants);
154
+ var localSetting = this._localStorageProvider.read(_store.SETTING_KEY) || {};
155
+ this._localStorageProvider.write(_store.SETTING_KEY, _objectSpread(_objectSpread({}, localSetting), newSetting));
156
156
  this._setting = newSetting;
157
157
  }
158
+ }, {
159
+ key: "_initSetting",
160
+ value: function _initSetting() {
161
+ var _this = this;
162
+ var localSetting = this._localStorageProvider.read(_store.SETTING_KEY);
163
+ if (localSetting) {
164
+ var settingKeys = ['spotlightEnabled', 'shouldHideNonVideoParticipants', 'shouldHideMyVideo', 'isPlaySound', 'language', 'autoAdjustmentMicrophoneVolume', 'noiseReduce', 'audioVoiceChanger', 'audioHiFi', 'audioEchoCancellation', 'audioStereo', 'videoHD', 'videoLowLight', 'videoNoise', 'hardwareForReception'];
165
+ settingKeys.forEach(function (key) {
166
+ var targetKey = key;
167
+ var localValue = localSetting[targetKey];
168
+ var value = _this._setting[targetKey];
169
+ Object.assign(_this._setting, (0, _defineProperty2["default"])({}, targetKey, localValue !== null && localValue !== void 0 ? localValue : value));
170
+ });
171
+ }
172
+ (0, _i18n.changeLanguage)(this._setting.language);
173
+ }
158
174
  }]);
159
175
  }();
160
176
  _FcrUISharedSettingDataSourceImpl = FcrUISharedSettingDataSourceImpl;
161
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUISharedSettingDataSourceImpl, [[_mobx.observable, 1, "_setting"], [_preHandleSettingDecs, 18, "_preHandleSetting"], [_setSettingDecs, 18, "setSetting"]], []).e, 2);
177
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUISharedSettingDataSourceImpl, [[_mobx.observable, 1, "_setting"], [_preHandleSettingDecs, 18, "_preHandleSetting"], [_setSettingDecs, 18, "setSetting"], [_initSettingDecs, 18, "_initSetting"]], []).e, 2);
162
178
  _init__setting = _applyDecs$e[0];
163
179
  _initProto = _applyDecs$e[1];
164
180
  (0, _base.registerDependency)('sharedSettingDataSource');
@@ -2,7 +2,6 @@ import { FcrUIVideoWindowData, FcrUIVideoWindowFoldSortingPriority, FcrUIVideoWi
2
2
  import { FcrStreamInfo, FcrUserInfo, FcrUserRole } from 'fcr-core/lib/type';
3
3
  import { FcrAudioSourceType, FcrRoomConnectorType, FcrVideoSourceType } from 'fcr-core';
4
4
  import { FcrUISharedSettingDataSource } from './setting';
5
- import { FcrUIEventProvider } from '../providers/event-provider';
6
5
  type FcrStreamUIData = Omit<FcrStreamInfo, 'owner'> & {
7
6
  owner: FcrUserInfo;
8
7
  };
@@ -38,6 +37,7 @@ export declare class FcrUIVideoWindowDataImpl implements FcrUIVideoWindowData {
38
37
  private accessor _spotlightEnabled;
39
38
  private accessor _isSpeakerSpotlight;
40
39
  private accessor _boardCanEdit;
40
+ private accessor _isFirstCameraOpen;
41
41
  needToSort: boolean;
42
42
  type: FcrUIWindowType;
43
43
  accessor isPin: boolean;
@@ -67,6 +67,7 @@ export declare class FcrUIVideoWindowDataImpl implements FcrUIVideoWindowData {
67
67
  boardUserInfo?: FcrUserInfo;
68
68
  }, _placement: 'main-list' | 'fold-list', _isMySelf: boolean, layoutType: FcrUIVideoWindowLayoutType | undefined, spotlightEnabled: boolean, canEdit?: boolean);
69
69
  setLayoutType(layoutType: FcrUIVideoWindowLayoutType): void;
70
+ setIsFirstCameraOpen(isFirstCameraOpen: boolean): void;
70
71
  setVideoStream(videoStream: FcrStreamUIData | undefined): void;
71
72
  setVideoStreamOwnerInfo(userInfo: FcrUserInfo): void;
72
73
  setAudioStream(audioStream: FcrStreamUIData | undefined): void;
@@ -92,7 +93,6 @@ export interface FcrUIVideoWindowDataSourceObserver {
92
93
  }
93
94
  export declare class FcrUIVideoWindowDataSourceImpl implements FcrUIVideoWindowDataSource {
94
95
  private _sharedSettingDataSource;
95
- private _eventProvider;
96
96
  private _observer;
97
97
  private _spotlightPool;
98
98
  accessor spotlightEnabled: boolean;
@@ -104,7 +104,7 @@ export declare class FcrUIVideoWindowDataSourceImpl implements FcrUIVideoWindowD
104
104
  accessor mainList: FcrUIVideoWindowDataImpl[];
105
105
  accessor foldList: FcrUIVideoWindowDataImpl[];
106
106
  accessor spotlightStreamId: string;
107
- constructor(_sharedSettingDataSource: FcrUISharedSettingDataSource, _eventProvider: FcrUIEventProvider);
107
+ constructor(_sharedSettingDataSource: FcrUISharedSettingDataSource);
108
108
  get shouldHideNonVideoParticipants(): boolean;
109
109
  setSpotlightEnabled(enabled: boolean): void;
110
110
  setLayout(layout: FcrUIVideoWindowLayoutType, manual?: boolean): void;
@@ -85,7 +85,7 @@ var _type2 = require("fcr-core/lib/type");
85
85
  var _fcrCore = require("fcr-core");
86
86
  var _base = require("../base");
87
87
  var _FcrUIVideoWindowDataImpl, _FcrUIVideoWindowDataSourceImpl;
88
- var _initProto, _init__videoStream, _init__audioStream, _init__spotlightEnabled, _init__isSpeakerSpotlight, _init__boardCanEdit, _init_isPin, _init_hasScreenSharing, _init_hasBoardSharing, _init_hasLoopbackSharing, _setVideoStreamDecs, _setVideoStreamOwnerInfoDecs, _setAudioStreamDecs, _setAudioStreamOwnerInfoDecs, _setPinDecs, _setSpotlightEnabledDecs, _setHasBoardSharingDecs, _setSpeakerSpotlightDecs, _setHasScreenSharingDecs, _setHasLoopbackSharingDecs, _setBoardCanEditDecs, _ref, _initProto2, _init_spotlightEnabled, _init_layoutType, _init_manualLayout, _init_pinLimitedCount, _init_mainListLimitedCount, _init_foldListLimitedCount, _init_mainList, _init_foldList, _init_spotlightStreamId, _setSpotlightEnabledDecs2, _setLayoutDecs, _onSpotlightRemovedDecs, _resetListDecs, _addBoardDecs, _updateBoardDecs, _removeBoardDecs, _mergePstnStreamOrInsertNewDataDecs, _addDecs, _updateDecs, _deleteDecs, _addPinDecs, _updateSpeakerSpotlightPositionDecs, _removePinDecs, _setSpeakerSpotlightDecs2, _toggleMainStreamDecs, _insertBeginningByPriorityDecs, _insertEndByPriorityDecs, _findInsertBeginningIndexDecs, _findInsertEndIndexDecs, _insertBoardDecs, _insertNewDataDecs, _ref3;
88
+ var _initProto, _init__videoStream, _init__audioStream, _init__spotlightEnabled, _init__isSpeakerSpotlight, _init__boardCanEdit, _init__isFirstCameraOpen, _init_isPin, _init_hasScreenSharing, _init_hasBoardSharing, _init_hasLoopbackSharing, _setVideoStreamDecs, _setVideoStreamOwnerInfoDecs, _setAudioStreamDecs, _setAudioStreamOwnerInfoDecs, _setPinDecs, _setSpotlightEnabledDecs, _setHasBoardSharingDecs, _setSpeakerSpotlightDecs, _setHasScreenSharingDecs, _setHasLoopbackSharingDecs, _setBoardCanEditDecs, _ref, _initProto2, _init_spotlightEnabled, _init_layoutType, _init_manualLayout, _init_pinLimitedCount, _init_mainListLimitedCount, _init_foldListLimitedCount, _init_mainList, _init_foldList, _init_spotlightStreamId, _setSpotlightEnabledDecs2, _setLayoutDecs, _onSpotlightRemovedDecs, _resetListDecs, _addBoardDecs, _updateBoardDecs, _removeBoardDecs, _mergePstnStreamOrInsertNewDataDecs, _addDecs, _updateDecs, _deleteDecs, _addPinDecs, _updateSpeakerSpotlightPositionDecs, _removePinDecs, _setSpeakerSpotlightDecs2, _toggleMainStreamDecs, _insertBeginningByPriorityDecs, _insertEndByPriorityDecs, _findInsertBeginningIndexDecs, _findInsertEndIndexDecs, _insertBoardDecs, _insertNewDataDecs, _ref3;
89
89
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
90
90
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
91
91
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
@@ -108,6 +108,7 @@ var _F = /*#__PURE__*/new WeakMap();
108
108
  var _G = /*#__PURE__*/new WeakMap();
109
109
  var _H = /*#__PURE__*/new WeakMap();
110
110
  var _I = /*#__PURE__*/new WeakMap();
111
+ var _J = /*#__PURE__*/new WeakMap();
111
112
  _ref = (_setVideoStreamDecs = [_mobx.action, _mobx.action.bound], _setVideoStreamOwnerInfoDecs = [_mobx.action, _mobx.action.bound], _setAudioStreamDecs = [_mobx.action, _mobx.action.bound], _setAudioStreamOwnerInfoDecs = [_mobx.action, _mobx.action.bound], _setPinDecs = [_mobx.action, _mobx.action.bound], _setSpotlightEnabledDecs = [_mobx.action, _mobx.action.bound], _setHasBoardSharingDecs = [_mobx.action, _mobx.action.bound], _setSpeakerSpotlightDecs = [_mobx.action, _mobx.action.bound], _setHasScreenSharingDecs = [_mobx.action, _mobx.action.bound], _setHasLoopbackSharingDecs = [_mobx.action, _mobx.action.bound], _setBoardCanEditDecs = [_mobx.action, _mobx.action.bound], "_boardUserInfo");
112
113
  var FcrUIVideoWindowDataImpl = exports.FcrUIVideoWindowDataImpl = /*#__PURE__*/function () {
113
114
  function FcrUIVideoWindowDataImpl(type, _ref2, _placement, _isMySelf) {
@@ -125,11 +126,12 @@ var FcrUIVideoWindowDataImpl = exports.FcrUIVideoWindowDataImpl = /*#__PURE__*/f
125
126
  _classPrivateFieldInitSpec(this, _C, _init__spotlightEnabled(this, true));
126
127
  _classPrivateFieldInitSpec(this, _D, _init__isSpeakerSpotlight(this, false));
127
128
  _classPrivateFieldInitSpec(this, _E, _init__boardCanEdit(this, false));
129
+ _classPrivateFieldInitSpec(this, _F, _init__isFirstCameraOpen(this, false));
128
130
  (0, _defineProperty2["default"])(this, "needToSort", false);
129
- _classPrivateFieldInitSpec(this, _F, _init_isPin(this, false));
130
- _classPrivateFieldInitSpec(this, _G, _init_hasScreenSharing(this, false));
131
- _classPrivateFieldInitSpec(this, _H, _init_hasBoardSharing(this, false));
132
- _classPrivateFieldInitSpec(this, _I, _init_hasLoopbackSharing(this, false));
131
+ _classPrivateFieldInitSpec(this, _G, _init_isPin(this, false));
132
+ _classPrivateFieldInitSpec(this, _H, _init_hasScreenSharing(this, false));
133
+ _classPrivateFieldInitSpec(this, _I, _init_hasBoardSharing(this, false));
134
+ _classPrivateFieldInitSpec(this, _J, _init_hasLoopbackSharing(this, false));
133
135
  this._placement = _placement;
134
136
  this._isMySelf = _isMySelf;
135
137
  this.type = type;
@@ -181,7 +183,7 @@ var FcrUIVideoWindowDataImpl = exports.FcrUIVideoWindowDataImpl = /*#__PURE__*/f
181
183
  _classPrivateFieldSet(_E, this, v);
182
184
  }
183
185
  }, {
184
- key: "isPin",
186
+ key: "_isFirstCameraOpen",
185
187
  get: function get() {
186
188
  return _classPrivateFieldGet(_F, this);
187
189
  },
@@ -189,7 +191,7 @@ var FcrUIVideoWindowDataImpl = exports.FcrUIVideoWindowDataImpl = /*#__PURE__*/f
189
191
  _classPrivateFieldSet(_F, this, v);
190
192
  }
191
193
  }, {
192
- key: "hasScreenSharing",
194
+ key: "isPin",
193
195
  get: function get() {
194
196
  return _classPrivateFieldGet(_G, this);
195
197
  },
@@ -197,7 +199,7 @@ var FcrUIVideoWindowDataImpl = exports.FcrUIVideoWindowDataImpl = /*#__PURE__*/f
197
199
  _classPrivateFieldSet(_G, this, v);
198
200
  }
199
201
  }, {
200
- key: "hasBoardSharing",
202
+ key: "hasScreenSharing",
201
203
  get: function get() {
202
204
  return _classPrivateFieldGet(_H, this);
203
205
  },
@@ -205,13 +207,21 @@ var FcrUIVideoWindowDataImpl = exports.FcrUIVideoWindowDataImpl = /*#__PURE__*/f
205
207
  _classPrivateFieldSet(_H, this, v);
206
208
  }
207
209
  }, {
208
- key: "hasLoopbackSharing",
210
+ key: "hasBoardSharing",
209
211
  get: function get() {
210
212
  return _classPrivateFieldGet(_I, this);
211
213
  },
212
214
  set: function set(v) {
213
215
  _classPrivateFieldSet(_I, this, v);
214
216
  }
217
+ }, {
218
+ key: "hasLoopbackSharing",
219
+ get: function get() {
220
+ return _classPrivateFieldGet(_J, this);
221
+ },
222
+ set: function set(v) {
223
+ _classPrivateFieldSet(_J, this, v);
224
+ }
215
225
  }, {
216
226
  key: "isSpeakerSpotlight",
217
227
  get: function get() {
@@ -343,7 +353,7 @@ var FcrUIVideoWindowDataImpl = exports.FcrUIVideoWindowDataImpl = /*#__PURE__*/f
343
353
  if (this.isPin || ((_this$_videoStream13 = this._videoStream) === null || _this$_videoStream13 === void 0 ? void 0 : _this$_videoStream13.videoSourceType) === _fcrCore.FcrVideoSourceType.SCREEN || this.type === _type.FcrUIWindowType.BOARD) {
344
354
  return _type.FcrUIVideoWindowMainSortingPriority.FOCUS;
345
355
  }
346
- if (this.isSpeakerSpotlight && this._layoutType === _type.FcrUIVideoWindowLayoutType.Speaker) {
356
+ if (this.isSpeakerSpotlight) {
347
357
  return _type.FcrUIVideoWindowMainSortingPriority.SPEAKER_SPOTLIGHT;
348
358
  }
349
359
  if (this.hasScreenSharing) {
@@ -358,15 +368,16 @@ var FcrUIVideoWindowDataImpl = exports.FcrUIVideoWindowDataImpl = /*#__PURE__*/f
358
368
  if (this.ownerRoleType === _type2.FcrUserRole.COHOST) {
359
369
  return _type.FcrUIVideoWindowMainSortingPriority.CO_HOST;
360
370
  }
361
- if (this.hasMicrophoneAudioStream && this.hasVideoStream) {
362
- return _type.FcrUIVideoWindowMainSortingPriority.BOTH_OPEN;
363
- }
364
- if (this.hasVideoStream) {
371
+ // if (this.hasMicrophoneAudioStream && this.hasVideoStream) {
372
+ // return FcrUIVideoWindowMainSortingPriority.BOTH_OPEN;
373
+ // }
374
+ var isFirstCameraOpen = this.hasVideoStream && !this._isFirstCameraOpen;
375
+ if (isFirstCameraOpen) {
365
376
  return _type.FcrUIVideoWindowMainSortingPriority.CAMERA_OPEN;
366
377
  }
367
- if (this.hasMicrophoneAudioStream) {
368
- return _type.FcrUIVideoWindowMainSortingPriority.MICROPHONE_OPEN;
369
- }
378
+ // if (this.hasMicrophoneAudioStream) {
379
+ // return FcrUIVideoWindowMainSortingPriority.MICROPHONE_OPEN;
380
+ // }
370
381
  } else {
371
382
  var _this$_videoStream14;
372
383
  if (this.isSpeakerSpotlight) {
@@ -390,15 +401,15 @@ var FcrUIVideoWindowDataImpl = exports.FcrUIVideoWindowDataImpl = /*#__PURE__*/f
390
401
  if (this.ownerRoleType === _type2.FcrUserRole.COHOST) {
391
402
  return _type.FcrUIVideoWindowFoldSortingPriority.CO_HOST;
392
403
  }
393
- if (this.hasMicrophoneAudioStream && this.hasVideoStream) {
394
- return _type.FcrUIVideoWindowFoldSortingPriority.BOTH_OPEN;
395
- }
404
+ // if (this.hasMicrophoneAudioStream && this.hasVideoStream) {
405
+ // return FcrUIVideoWindowFoldSortingPriority.BOTH_OPEN;
406
+ // }
396
407
  if (this.hasVideoStream) {
397
408
  return _type.FcrUIVideoWindowFoldSortingPriority.CAMERA_OPEN;
398
409
  }
399
- if (this.hasMicrophoneAudioStream) {
400
- return _type.FcrUIVideoWindowFoldSortingPriority.MICROPHONE_OPEN;
401
- }
410
+ // if (this.hasMicrophoneAudioStream) {
411
+ // return FcrUIVideoWindowFoldSortingPriority.MICROPHONE_OPEN;
412
+ // }
402
413
  }
403
414
  return _type.FcrUIVideoWindowMainSortingPriority.NONE;
404
415
  }
@@ -407,6 +418,11 @@ var FcrUIVideoWindowDataImpl = exports.FcrUIVideoWindowDataImpl = /*#__PURE__*/f
407
418
  value: function setLayoutType(layoutType) {
408
419
  this._layoutType = layoutType;
409
420
  }
421
+ }, {
422
+ key: "setIsFirstCameraOpen",
423
+ value: function setIsFirstCameraOpen(isFirstCameraOpen) {
424
+ this._isFirstCameraOpen = isFirstCameraOpen;
425
+ }
410
426
  }, {
411
427
  key: "setVideoStream",
412
428
  value: function setVideoStream(videoStream) {
@@ -469,17 +485,18 @@ var FcrUIVideoWindowDataImpl = exports.FcrUIVideoWindowDataImpl = /*#__PURE__*/f
469
485
  }]);
470
486
  }();
471
487
  _FcrUIVideoWindowDataImpl = FcrUIVideoWindowDataImpl;
472
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIVideoWindowDataImpl, [[_mobx.observable, 1, "_videoStream"], [_mobx.observable, 1, "_audioStream"], [_mobx.observable, 1, "_spotlightEnabled"], [_mobx.observable, 1, "_isSpeakerSpotlight"], [_mobx.observable, 1, "_boardCanEdit"], [_mobx.observable, 1, "isPin"], [_mobx.observable, 1, "hasScreenSharing"], [_mobx.observable, 1, "hasBoardSharing"], [_mobx.observable, 1, "hasLoopbackSharing"], [_mobx.computed, 3, "isSpeakerSpotlight"], [_mobx.computed, 3, "windowId"], [_mobx.computed, 3, "videoStreamId"], [_mobx.computed, 3, "audioStreamId"], [_mobx.computed, 3, "audioStreamConnectorType"], [_mobx.computed, 3, "videoStreamConnectorType"], [_mobx.computed, 3, "hasMicrophoneAudioStream"], [_mobx.computed, 3, "hasLoopbackAudioStream"], [_mobx.computed, 3, "phoneMicEnabled"], [_mobx.computed, 3, "hasVideoStream"], [_mobx.computed, 3, "userId"], [_mobx.computed, 3, "userName"], [_mobx.computed, 3, "ownerRoleType"], [_mobx.computed, 3, "videoSourceType"], [_mobx.computed, 3, "audioSourceType"], [_mobx.computed, 3, "sortingPriority"], [_setVideoStreamDecs, 18, "setVideoStream"], [_setVideoStreamOwnerInfoDecs, 18, "setVideoStreamOwnerInfo"], [_setAudioStreamDecs, 18, "setAudioStream"], [_setAudioStreamOwnerInfoDecs, 18, "setAudioStreamOwnerInfo"], [_setPinDecs, 18, "setPin"], [_setSpotlightEnabledDecs, 18, "setSpotlightEnabled"], [_setHasBoardSharingDecs, 18, "setHasBoardSharing"], [_setSpeakerSpotlightDecs, 18, "setSpeakerSpotlight"], [_setHasScreenSharingDecs, 18, "setHasScreenSharing"], [_setHasLoopbackSharingDecs, 18, "setHasLoopbackSharing"], [_setBoardCanEditDecs, 18, "setBoardCanEdit"]], []).e, 10);
488
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIVideoWindowDataImpl, [[_mobx.observable, 1, "_videoStream"], [_mobx.observable, 1, "_audioStream"], [_mobx.observable, 1, "_spotlightEnabled"], [_mobx.observable, 1, "_isSpeakerSpotlight"], [_mobx.observable, 1, "_boardCanEdit"], [_mobx.observable, 1, "_isFirstCameraOpen"], [_mobx.observable, 1, "isPin"], [_mobx.observable, 1, "hasScreenSharing"], [_mobx.observable, 1, "hasBoardSharing"], [_mobx.observable, 1, "hasLoopbackSharing"], [_mobx.computed, 3, "isSpeakerSpotlight"], [_mobx.computed, 3, "windowId"], [_mobx.computed, 3, "videoStreamId"], [_mobx.computed, 3, "audioStreamId"], [_mobx.computed, 3, "audioStreamConnectorType"], [_mobx.computed, 3, "videoStreamConnectorType"], [_mobx.computed, 3, "hasMicrophoneAudioStream"], [_mobx.computed, 3, "hasLoopbackAudioStream"], [_mobx.computed, 3, "phoneMicEnabled"], [_mobx.computed, 3, "hasVideoStream"], [_mobx.computed, 3, "userId"], [_mobx.computed, 3, "ownerRoleType"], [_mobx.computed, 3, "videoSourceType"], [_mobx.computed, 3, "audioSourceType"], [_mobx.computed, 3, "sortingPriority"], [_setVideoStreamDecs, 18, "setVideoStream"], [_setVideoStreamOwnerInfoDecs, 18, "setVideoStreamOwnerInfo"], [_setAudioStreamDecs, 18, "setAudioStream"], [_setAudioStreamOwnerInfoDecs, 18, "setAudioStreamOwnerInfo"], [_setPinDecs, 18, "setPin"], [_setSpotlightEnabledDecs, 18, "setSpotlightEnabled"], [_setHasBoardSharingDecs, 18, "setHasBoardSharing"], [_setSpeakerSpotlightDecs, 18, "setSpeakerSpotlight"], [_setHasScreenSharingDecs, 18, "setHasScreenSharing"], [_setHasLoopbackSharingDecs, 18, "setHasLoopbackSharing"], [_setBoardCanEditDecs, 18, "setBoardCanEdit"]], []).e, 11);
473
489
  _init__videoStream = _applyDecs$e[0];
474
490
  _init__audioStream = _applyDecs$e[1];
475
491
  _init__spotlightEnabled = _applyDecs$e[2];
476
492
  _init__isSpeakerSpotlight = _applyDecs$e[3];
477
493
  _init__boardCanEdit = _applyDecs$e[4];
478
- _init_isPin = _applyDecs$e[5];
479
- _init_hasScreenSharing = _applyDecs$e[6];
480
- _init_hasBoardSharing = _applyDecs$e[7];
481
- _init_hasLoopbackSharing = _applyDecs$e[8];
482
- _initProto = _applyDecs$e[9];
494
+ _init__isFirstCameraOpen = _applyDecs$e[5];
495
+ _init_isPin = _applyDecs$e[6];
496
+ _init_hasScreenSharing = _applyDecs$e[7];
497
+ _init_hasBoardSharing = _applyDecs$e[8];
498
+ _init_hasLoopbackSharing = _applyDecs$e[9];
499
+ _initProto = _applyDecs$e[10];
483
500
  var _A2 = /*#__PURE__*/new WeakMap();
484
501
  var _B2 = /*#__PURE__*/new WeakMap();
485
502
  var _C2 = /*#__PURE__*/new WeakMap();
@@ -491,7 +508,7 @@ var _H2 = /*#__PURE__*/new WeakMap();
491
508
  var _I2 = /*#__PURE__*/new WeakMap();
492
509
  _ref3 = (_setSpotlightEnabledDecs2 = [_mobx.action, _mobx.action.bound], _setLayoutDecs = [_mobx.action, _mobx.action.bound], _onSpotlightRemovedDecs = [_mobx.action, _mobx.action.bound], _resetListDecs = [_mobx.action, _mobx.action.bound], _addBoardDecs = [_mobx.action, _mobx.action.bound], _updateBoardDecs = [_mobx.action, _mobx.action.bound], _removeBoardDecs = [_mobx.action, _mobx.action.bound], _mergePstnStreamOrInsertNewDataDecs = [_mobx.action, _mobx.action.bound], _addDecs = [_mobx.action, _mobx.action.bound], _updateDecs = [_mobx.action, _mobx.action.bound], _deleteDecs = [_mobx.action, _mobx.action.bound], _addPinDecs = [_mobx.action, _mobx.action.bound], _updateSpeakerSpotlightPositionDecs = [_mobx.action, _mobx.action.bound], _removePinDecs = [_mobx.action, _mobx.action.bound], _setSpeakerSpotlightDecs2 = [_mobx.action, _mobx.action.bound], _toggleMainStreamDecs = [_mobx.action, _mobx.action.bound], _insertBeginningByPriorityDecs = [_mobx.action, _mobx.action.bound], _insertEndByPriorityDecs = [_mobx.action, _mobx.action.bound], _findInsertBeginningIndexDecs = [_mobx.action, _mobx.action.bound], _findInsertEndIndexDecs = [_mobx.action, _mobx.action.bound], _insertBoardDecs = [_mobx.action, _mobx.action.bound], _insertNewDataDecs = [_mobx.action, _mobx.action.bound], "_observer");
493
510
  var FcrUIVideoWindowDataSourceImpl = exports.FcrUIVideoWindowDataSourceImpl = /*#__PURE__*/function () {
494
- function FcrUIVideoWindowDataSourceImpl(_sharedSettingDataSource, _eventProvider) {
511
+ function FcrUIVideoWindowDataSourceImpl(_sharedSettingDataSource) {
495
512
  (0, _classCallCheck2["default"])(this, FcrUIVideoWindowDataSourceImpl);
496
513
  (0, _defineProperty2["default"])(this, _ref3, (_initProto2(this), new _observable.AgoraObservable()));
497
514
  (0, _defineProperty2["default"])(this, "_spotlightPool", new FcrUISpeakerSpotlightPool());
@@ -505,7 +522,6 @@ var FcrUIVideoWindowDataSourceImpl = exports.FcrUIVideoWindowDataSourceImpl = /*
505
522
  _classPrivateFieldInitSpec(this, _H2, _init_foldList(this, []));
506
523
  _classPrivateFieldInitSpec(this, _I2, _init_spotlightStreamId(this, ''));
507
524
  this._sharedSettingDataSource = _sharedSettingDataSource;
508
- this._eventProvider = _eventProvider;
509
525
  this._spotlightPool.addObserver({
510
526
  onRemoved: this.onSpotlightRemoved
511
527
  });
@@ -904,11 +920,9 @@ var FcrUIVideoWindowDataSourceImpl = exports.FcrUIVideoWindowDataSourceImpl = /*
904
920
  if (existedUserStream) {
905
921
  existedUserStream.setSpeakerSpotlight(true);
906
922
  }
907
- if (_this9.layoutType === _type.FcrUIVideoWindowLayoutType.Speaker || list === _this9.foldList) {
908
- var isSpeakerSpotlightSortingPriority = existedUserStream.sortingPriority === (placement === 'main-list' ? _type.FcrUIVideoWindowMainSortingPriority.SPEAKER_SPOTLIGHT : _type.FcrUIVideoWindowFoldSortingPriority.FOCUS);
909
- if (isSpeakerSpotlightSortingPriority) {
910
- _this9._insertBeginningByPriority(existedUserStream, list, limitCount);
911
- }
923
+ var isSpeakerSpotlightSortingPriority = existedUserStream.sortingPriority === (placement === 'main-list' ? _type.FcrUIVideoWindowMainSortingPriority.SPEAKER_SPOTLIGHT : _type.FcrUIVideoWindowFoldSortingPriority.FOCUS);
924
+ if (isSpeakerSpotlightSortingPriority) {
925
+ _this9._insertBeginningByPriority(existedUserStream, list, limitCount);
912
926
  }
913
927
  list.forEach(function (item) {
914
928
  if (item.needToSort) {
@@ -998,11 +1012,14 @@ var FcrUIVideoWindowDataSourceImpl = exports.FcrUIVideoWindowDataSourceImpl = /*
998
1012
  key: "_insertByPriority",
999
1013
  value: function _insertByPriority(data, list, limitCount) {
1000
1014
  var insertIndex = -1;
1001
- if (data.sortingPriority >= _type.FcrUIVideoWindowMainSortingPriority.FOCUS) {
1015
+ if (data.sortingPriority >= _type.FcrUIVideoWindowMainSortingPriority.FOCUS || data.sortingPriority === _type.FcrUIVideoWindowMainSortingPriority.CAMERA_OPEN) {
1002
1016
  insertIndex = this._insertBeginningByPriority(data, list, limitCount);
1003
1017
  } else {
1004
1018
  insertIndex = this._insertEndByPriority(data, list, limitCount);
1005
1019
  }
1020
+ if (data.hasVideoStream) {
1021
+ data.setIsFirstCameraOpen(true);
1022
+ }
1006
1023
  return insertIndex;
1007
1024
  }
1008
1025
  }, {
@@ -1137,7 +1154,7 @@ var FcrUISpeakerSpotlightPool = exports.FcrUISpeakerSpotlightPool = /*#__PURE__*
1137
1154
  return (0, _createClass2["default"])(FcrUISpeakerSpotlightPool, [{
1138
1155
  key: "add",
1139
1156
  value: function add(streamId) {
1140
- if (this.streams.size >= this.limitCount) {
1157
+ if (this.streams.size >= this.limitCount && !this.streams.has(streamId)) {
1141
1158
  return false;
1142
1159
  }
1143
1160
  this.streams.set(streamId, Date.now());