fcr-ui-scene 3.7.5 → 3.7.7-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/lib/creator/index.js +15 -7
  2. package/lib/creator/provider-initializer.browser.js +13 -4
  3. package/lib/creator/provider-initializer.electron.js +22 -10
  4. package/lib/electron/bootstrap-sdk.js +90 -6
  5. package/lib/electron/injections.d.ts +1 -0
  6. package/lib/electron/injections.js +5 -1
  7. package/lib/electron/ipc/type.d.ts +1 -0
  8. package/lib/electron/ipc/type.js +1 -0
  9. package/lib/electron/preload.js +1 -0
  10. package/lib/electron/sdk-helper.d.ts +3 -0
  11. package/lib/electron/sdk-helper.js +53 -19
  12. package/lib/electron/struct.d.ts +7 -1
  13. package/lib/electron/struct.js +8 -1
  14. package/lib/electron/until.d.ts +7 -1
  15. package/lib/electron/until.js +11 -2
  16. package/lib/fragments/annotation/store.js +2 -0
  17. package/lib/modules/action-bar/components/item/index.js +1 -0
  18. package/lib/modules/action-bar/components/more/poppover-content.js +1 -1
  19. package/lib/modules/action-bar/components/screen-share/index.browser.js +4 -2
  20. package/lib/modules/action-bar/components/screen-share/index.electron.js +4 -2
  21. package/lib/modules/action-bar/components/screen-share/submenu.d.ts +5 -1
  22. package/lib/modules/action-bar/components/screen-share/submenu.js +12 -9
  23. package/lib/modules/audio-stream/index.js +4 -2
  24. package/lib/modules/chat/index.css +8 -0
  25. package/lib/modules/chat/view.js +7 -1
  26. package/lib/modules/components/control-bar/components/switch-theme/index.css +2 -0
  27. package/lib/modules/components/control-bar/components/switch-theme/index.js +5 -7
  28. package/lib/modules/components/control-bar/index.css +0 -2
  29. package/lib/modules/components/control-bar/index.d.ts +1 -0
  30. package/lib/modules/components/control-bar/index.js +51 -15
  31. package/lib/modules/components/leave-meeting/main-scene/store.d.ts +3 -0
  32. package/lib/modules/components/leave-meeting/main-scene/store.js +12 -0
  33. package/lib/modules/components/leave-meeting/store.base.d.ts +4 -3
  34. package/lib/modules/components/leave-meeting/store.base.js +0 -10
  35. package/lib/modules/components/leave-meeting/waiting-scene/store.d.ts +5 -1
  36. package/lib/modules/components/leave-meeting/waiting-scene/store.js +17 -3
  37. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +1 -2
  38. package/lib/modules/components/member-window/components/video-player/components/local-video-player-with-zoom.js +4 -3
  39. package/lib/modules/components/member-window/components/video-player/components/zoomable-container.js +18 -32
  40. package/lib/modules/components/toolbar/components/capture-tool/index.d.ts +0 -1
  41. package/lib/modules/components/toolbar/components/capture-tool/index.js +1 -2
  42. package/lib/modules/components/toolbar/components/vertical-frame/index.js +2 -2
  43. package/lib/modules/components/toolbar/hooks/use-resize-visible.js +45 -32
  44. package/lib/modules/components/toolbar/index.js +6 -24
  45. package/lib/modules/control-bar/components/boundary-detector.d.ts +7 -5
  46. package/lib/modules/control-bar/components/boundary-detector.js +22 -2
  47. package/lib/modules/control-bar/components/cloud-recording-buttons.d.ts +3 -0
  48. package/lib/modules/control-bar/components/cloud-recording-buttons.js +68 -3
  49. package/lib/modules/control-bar/hooks.js +2 -1
  50. package/lib/modules/control-bar/store.d.ts +1 -0
  51. package/lib/modules/control-bar/store.js +21 -7
  52. package/lib/modules/control-bar/view.js +96 -28
  53. package/lib/modules/dialog/components/confirm/index.js +6 -24
  54. package/lib/modules/dialog/components/dialog-container/component/body.d.ts +1 -0
  55. package/lib/modules/dialog/components/dialog-container/component/body.js +3 -2
  56. package/lib/modules/dialog/components/dialog-container/index.css +8 -1
  57. package/lib/modules/dialog/components/dialog-container/index.d.ts +1 -0
  58. package/lib/modules/dialog/components/dialog-container/index.js +4 -1
  59. package/lib/modules/dialog/components/normal-window/index.d.ts +1 -0
  60. package/lib/modules/dialog/components/normal-window/index.js +3 -1
  61. package/lib/modules/dialog/dialogs/chat/index.js +2 -1
  62. package/lib/modules/dialog/dialogs/control-bar-leave-meeting/index.js +0 -1
  63. package/lib/modules/dialog/dialogs/device-setting/index.d.ts +1 -0
  64. package/lib/modules/dialog/dialogs/device-setting/index.js +4 -2
  65. package/lib/modules/dialog/dialogs/end-meeting/index.d.ts +1 -0
  66. package/lib/modules/dialog/dialogs/end-meeting/index.js +2 -1
  67. package/lib/modules/dialog/dialogs/invite/index.d.ts +1 -0
  68. package/lib/modules/dialog/dialogs/invite/index.js +2 -1
  69. package/lib/modules/dialog/dialogs/mute-all/index.d.ts +1 -0
  70. package/lib/modules/dialog/dialogs/mute-all/index.js +2 -1
  71. package/lib/modules/dialog/dialogs/participant/index.js +9 -2
  72. package/lib/modules/dialog/dialogs/share-screen-selection/index.js +1 -1
  73. package/lib/modules/dialog/dialogs/sub-window/index.js +1 -7
  74. package/lib/modules/dialog/dialogs/toast/index.d.ts +1 -1
  75. package/lib/modules/dialog/dialogs/toast/index.js +1 -1
  76. package/lib/modules/dialog/dialogs/video-window/index.d.ts +4 -1
  77. package/lib/modules/dialog/dialogs/video-window/index.js +5 -2
  78. package/lib/modules/dialog/dialogs/widget/index.d.ts +2 -0
  79. package/lib/modules/dialog/dialogs/widget/index.js +11 -3
  80. package/lib/modules/dialog/index.css +6 -2
  81. package/lib/modules/dialog/level-config.d.ts +1 -0
  82. package/lib/modules/dialog/level-config.js +2 -1
  83. package/lib/modules/dialog/store.base.d.ts +2 -0
  84. package/lib/modules/dialog/store.browser.d.ts +2 -0
  85. package/lib/modules/dialog/store.browser.js +6 -1
  86. package/lib/modules/dialog/store.electron.d.ts +9 -1
  87. package/lib/modules/dialog/store.electron.js +64 -4
  88. package/lib/modules/dialog/type.d.ts +3 -0
  89. package/lib/modules/event-toast/index.css +0 -1
  90. package/lib/modules/event-toast/index.js +1 -0
  91. package/lib/modules/event-toast/store.base.d.ts +2 -0
  92. package/lib/modules/event-toast/store.base.js +40 -21
  93. package/lib/modules/event-toast/store.electron.d.ts +2 -0
  94. package/lib/modules/event-toast/store.electron.js +19 -9
  95. package/lib/modules/layout/components/CommonVideoRenderer.js +1 -0
  96. package/lib/modules/layout/store.electron.js +1 -1
  97. package/lib/modules/participant/components/confirm-input/index.js +1 -1
  98. package/lib/modules/participant/store.base.d.ts +30 -3
  99. package/lib/modules/participant/store.base.js +249 -96
  100. package/lib/modules/participant/store.browser.js +4 -3
  101. package/lib/modules/participant/store.electron.js +5 -3
  102. package/lib/modules/pc-audio-connect/main-scene/store.js +1 -0
  103. package/lib/modules/secondary-window/store.d.ts +1 -1
  104. package/lib/modules/secondary-window/store.js +14 -22
  105. package/lib/modules/secondary-window/view.js +10 -10
  106. package/lib/modules/setting/audio-settings/audio-settings.js +0 -17
  107. package/lib/modules/setting/index.js +1 -1
  108. package/lib/modules/setting/state/index.js +1 -1
  109. package/lib/modules/setting/store.base.d.ts +5 -2
  110. package/lib/modules/setting/store.base.js +72 -26
  111. package/lib/modules/share-screen/components/selection/index.css +4 -0
  112. package/lib/modules/share-screen/store.base.js +17 -4
  113. package/lib/modules/share-screen/store.electron.js +5 -2
  114. package/lib/modules/state-bar/layout-config.js +6 -0
  115. package/lib/modules/state-bar/main-scene/store.base.d.ts +2 -0
  116. package/lib/modules/state-bar/main-scene/store.base.js +6 -0
  117. package/lib/modules/video-window/index.css +6 -0
  118. package/lib/modules/video-window/popover-watcher.d.ts +5 -10
  119. package/lib/modules/video-window/popover-watcher.js +34 -31
  120. package/lib/modules/video-window/store.d.ts +32 -5
  121. package/lib/modules/video-window/store.js +156 -63
  122. package/lib/modules/video-window/view.js +50 -1
  123. package/lib/modules/whiteboard/index.d.ts +1 -1
  124. package/lib/modules/whiteboard/index.js +1 -1
  125. package/lib/modules/whiteboard/store.d.ts +3 -0
  126. package/lib/modules/whiteboard/store.js +31 -2
  127. package/lib/modules/whiteboard/view.js +10 -1
  128. package/lib/modules/widget/sdk.js +1 -1
  129. package/lib/modules/widget/store.base.d.ts +1 -0
  130. package/lib/modules/widget/store.browser.d.ts +1 -0
  131. package/lib/modules/widget/store.browser.js +60 -4
  132. package/lib/modules/widget/store.electron.d.ts +1 -0
  133. package/lib/modules/widget/store.electron.js +59 -2
  134. package/lib/modules/widget/type.d.ts +3 -2
  135. package/lib/modules/widget/view.js +9 -4
  136. package/lib/modules/widget/web-widget.d.ts +2 -1
  137. package/lib/modules/widget/web-widget.js +7 -5
  138. package/lib/object-manager.d.ts +2 -2
  139. package/lib/object-manager.js +1 -1
  140. package/lib/providers/board-share/bar-control/base.d.ts +1 -1
  141. package/lib/providers/board-share/bar-control/base.js +37 -28
  142. package/lib/providers/board-share/bar-control/electron.d.ts +1 -1
  143. package/lib/providers/board-share/bar-control/electron.js +19 -16
  144. package/lib/providers/board-share/provider.base.d.ts +8 -1
  145. package/lib/providers/board-share/provider.base.js +12 -2
  146. package/lib/providers/board-share/provider.browser.d.ts +3 -0
  147. package/lib/providers/board-share/provider.browser.js +21 -3
  148. package/lib/providers/device-provider.d.ts +16 -2
  149. package/lib/providers/device-provider.js +53 -60
  150. package/lib/providers/dialog/provider.base.d.ts +1 -0
  151. package/lib/providers/dialog/provider.browser.d.ts +1 -0
  152. package/lib/providers/dialog/provider.browser.js +7 -2
  153. package/lib/providers/dialog/provider.electron.d.ts +4 -1
  154. package/lib/providers/dialog/provider.electron.js +94 -2
  155. package/lib/providers/dialog/type.d.ts +7 -0
  156. package/lib/providers/mouse-detect/provider.d.ts +9 -1
  157. package/lib/providers/mouse-detect/provider.js +119 -5
  158. package/lib/providers/mouse-detect/struct.d.ts +2 -1
  159. package/lib/providers/mouse-detect/struct.js +1 -0
  160. package/lib/providers/mouse-detect/type.d.ts +2 -0
  161. package/lib/providers/multi-display-provider.d.ts +3 -5
  162. package/lib/providers/multi-display-provider.js +0 -9
  163. package/lib/providers/renderer-provider.d.ts +5 -0
  164. package/lib/providers/renderer-provider.js +5 -0
  165. package/lib/providers/room-provider/room-provider.d.ts +4 -14
  166. package/lib/providers/room-provider/room-provider.js +28 -39
  167. package/lib/providers/screen-share/provider.base.js +3 -11
  168. package/lib/providers/screen-share/provider.browser.js +23 -14
  169. package/lib/providers/screen-share/provider.electron.d.ts +1 -0
  170. package/lib/providers/screen-share/provider.electron.js +44 -17
  171. package/lib/providers/screen-share/strategy/browser.js +16 -13
  172. package/lib/providers/screen-share/strategy/electron.d.ts +2 -2
  173. package/lib/providers/screen-share/strategy/electron.js +15 -10
  174. package/lib/providers/screen-share/strategy/type.d.ts +6 -0
  175. package/lib/providers/screen-share/stream-state-sync.d.ts +3 -2
  176. package/lib/providers/screen-share/stream-state-sync.js +26 -16
  177. package/lib/providers/screen-share/struct.d.ts +9 -7
  178. package/lib/providers/screen-share/struct.js +11 -8
  179. package/lib/providers/screen-share/type.d.ts +7 -1
  180. package/lib/providers/widget-provider.d.ts +5 -3
  181. package/lib/providers/widget-provider.js +12 -18
  182. package/lib/providers/window/main-window.d.ts +0 -5
  183. package/lib/providers/window/main-window.js +3 -44
  184. package/lib/providers/window/renderer-window.d.ts +1 -0
  185. package/lib/providers/window/renderer-window.js +13 -2
  186. package/lib/runtime.d.ts +1 -0
  187. package/lib/runtime.js +2 -1
  188. package/lib/scenes/main-scene.js +5 -0
  189. package/lib/shared-context/board-context.d.ts +2 -0
  190. package/lib/shared-context/board-context.js +2 -0
  191. package/lib/shared-data/member-data.d.ts +0 -8
  192. package/lib/shared-data/member-data.js +26 -78
  193. package/lib/shared-data/widget-data.d.ts +13 -0
  194. package/lib/shared-data/widget-data.js +50 -0
  195. package/lib/translations/enUS.d.ts +0 -2
  196. package/lib/translations/enUS.js +4 -6
  197. package/lib/translations/zhCN.d.ts +0 -2
  198. package/lib/translations/zhCN.js +4 -6
  199. package/lib/type.d.ts +5 -0
  200. package/lib/ui-scene.d.ts +2 -4
  201. package/lib/ui-scene.js +31 -42
  202. package/lib/utilities/constant.d.ts +3 -1
  203. package/lib/utilities/constant.js +5 -2
  204. package/lib/utilities/default-config.d.ts +18 -0
  205. package/lib/utilities/default-config.js +19 -1
  206. package/lib/utilities/focus-helper.js +10 -3
  207. package/lib/utilities/logger.js +3 -1
  208. package/lib/utilities/renderer.d.ts +1 -0
  209. package/lib/utilities/renderer.js +7 -1
  210. package/package.json +5 -5
  211. package/public/index.html +35 -4
  212. package/lib/modules/action-bar/index.d.ts +0 -17
  213. package/lib/modules/action-bar/index.js +0 -63
  214. package/lib/modules/action-bar/store.base.d.ts +0 -15
  215. package/lib/modules/action-bar/store.base.js +0 -117
  216. package/lib/modules/action-bar/view.d.ts +0 -5
  217. package/lib/modules/action-bar/view.js +0 -112
  218. package/lib/modules/action-bar/waiting-scene/store.d.ts +0 -6
  219. package/lib/modules/action-bar/waiting-scene/store.js +0 -91
  220. package/lib/modules/control-bar/types.d.ts +0 -31
  221. package/lib/modules/control-bar/types.js +0 -6
  222. package/lib/modules/dialog/dialogs/pre-setting/index.css +0 -26
  223. package/lib/modules/dialog/dialogs/pre-setting/index.d.ts +0 -6
  224. package/lib/modules/dialog/dialogs/pre-setting/index.js +0 -57
  225. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +0 -14
  226. package/lib/modules/dialog/hooks/use-popover-watcher.js +0 -112
  227. package/lib/modules/event-toast/store.d.ts +0 -23
  228. package/lib/modules/event-toast/store.js +0 -187
  229. package/lib/modules/setting/common/advance-link.d.ts +0 -3
  230. package/lib/modules/setting/common/advance-link.js +0 -27
  231. package/lib/modules/setting/common/index.css +0 -26
  232. package/lib/modules/setting/common/useNamespace.d.ts +0 -15
  233. package/lib/modules/setting/common/useNamespace.js +0 -66
  234. package/lib/modules/widget/store.d.ts +0 -17
  235. package/lib/modules/widget/store.js +0 -71
  236. package/lib/providers/board-share/bar-control.d.ts +0 -51
  237. package/lib/providers/board-share/bar-control.js +0 -390
  238. package/lib/providers/board-share/provider.d.ts +0 -66
  239. package/lib/providers/board-share/provider.js +0 -456
  240. package/lib/providers/screen-share/provider.d.ts +0 -69
  241. package/lib/providers/screen-share/provider.js +0 -615
  242. package/lib/providers/whiteboard-provider.d.ts +0 -26
  243. package/lib/providers/whiteboard-provider.js +0 -131
  244. package/lib/providers/window/browser-window-proxy.d.ts +0 -0
  245. package/lib/providers/window/browser-window-proxy.js +0 -1
  246. package/lib/providers/window/ipc-protocol.d.ts +0 -0
  247. package/lib/providers/window/ipc-protocol.js +0 -1
  248. package/lib/providers/window/main-process-handler.d.ts +0 -0
  249. package/lib/providers/window/main-process-handler.js +0 -1
  250. package/lib/providers/window/main-process-integration.d.ts +0 -0
  251. package/lib/providers/window/main-process-integration.js +0 -1
  252. package/lib/shared-data/whiteboard-data.d.ts +0 -70
  253. package/lib/shared-data/whiteboard-data.js +0 -342
  254. package/lib/utilities/ipc-protocol.d.ts +0 -91
  255. package/lib/utilities/ipc-protocol.js +0 -61
@@ -505,9 +505,7 @@ var enUs = exports.enUs = {
505
505
  fmt_screenshare_controlbar_security_list_participantManagement: 'Allow attendees',
506
506
  fmt_screenshare_button_chosecontent: 'Select shared content',
507
507
  fmt_screenshare_tips_newsharing: 'Initiate a new sharing',
508
- fmt_screenshare_label_screenshare: 'Share Screen',
509
508
  fmt_screenshare_button_sharewhiteboard: 'Share Whiteboard',
510
- fmt_screenshare_button_chosewhiteboard: 'Close whiteboard',
511
509
  fmt_screenshare_options_alreadyopend: 'Whiteboard (Already ON)',
512
510
  fmt_screenshare_options_allow: 'Allow attendees',
513
511
  fmt_screenshare_options_editable: 'Annotate and edit whiteboards',
@@ -805,8 +803,8 @@ var enUs = exports.enUs = {
805
803
  fmt_failure_popup_label_startup_fail: 'Startup Failure',
806
804
  fmt_failure_popup_label_startup_check: 'Please check startup parameters and network settings as a priority',
807
805
  fmt_failure_popup_button_i_know: 'I know',
808
- fmt_failure_popup_label_crash: 'Exception occurred',
809
- fmt_failure_popup_label_crash_tips: 'The app is error, please close the app and try again.',
806
+ fmt_failure_popup_label_crash: 'App crash',
807
+ fmt_failure_popup_label_crash_tips: 'The app is crashing, please close the app and try again.',
810
808
  fmt_failure_popup_button_close_app: 'Close the app',
811
809
  fmt_failure_popup_button_refresh: 'Refresh',
812
810
  fmt_qualitystatistics_label_video: 'Video',
@@ -859,7 +857,7 @@ var enUs = exports.enUs = {
859
857
  fmt_setting_option_3ahigh: 'High',
860
858
  fmt_setting_label_professional: 'Music and Professional Audio',
861
859
  fmt_setting_option_orinalvoise: 'Display the option in the meeting in case of you want to turn the original sound',
862
- fmt_setting_tips_speaker: "Click on the test speaker to confirm that you can hear other people's voices",
860
+ fmt_setting_tips_speaker: 'Click to test the speaker',
863
861
  fmt_setting_tips_mic: 'Please speak into your microphone. If you cannot hear your own voice, please replace the microphone',
864
862
  fmt_setting_tips_speaker_unwork: 'If you cannot hear the test sound, please replace the speaker',
865
863
  fmt_setting_tips_mic_unwork: 'If you cannot hear the test sound, please replace the microphone',
@@ -1552,7 +1550,7 @@ var enUs = exports.enUs = {
1552
1550
  fmt_premeeting_setting_label_automatically_adjust_volume: 'Automatically adjust {reason1} volume',
1553
1551
  fmt_premeeting_setting_label_microphone: 'Microphone',
1554
1552
  fmt_premeeting_setting_button_test_microphone: 'Test Microphone',
1555
- fmt_premeeting_setting_label_speak_into_your_microphone: "Click 'Test Microphone' to ensure other participants can hear you clearly.",
1553
+ fmt_premeeting_setting_label_speak_into_your_microphone: 'Click to test the microphone',
1556
1554
  fmt_premeeting_setting_button_recording: 'Recording',
1557
1555
  fmt_premeeting_setting_label_change_the_microphone: 'If you cannot hear the test sound, please change the microphone.',
1558
1556
  fmt_premeeting_setting_label_input_level: 'Input Level',
@@ -494,9 +494,7 @@ export declare const zhCn: {
494
494
  fmt_screenshare_controlbar_security_list_participantManagement: string;
495
495
  fmt_screenshare_button_chosecontent: string;
496
496
  fmt_screenshare_tips_newsharing: string;
497
- fmt_screenshare_label_screenshare: string;
498
497
  fmt_screenshare_button_sharewhiteboard: string;
499
- fmt_screenshare_button_chosewhiteboard: string;
500
498
  fmt_screenshare_options_alreadyopend: string;
501
499
  fmt_screenshare_options_allow: string;
502
500
  fmt_screenshare_options_editable: string;
@@ -505,9 +505,7 @@ var zhCn = exports.zhCn = {
505
505
  fmt_screenshare_controlbar_security_list_participantManagement: '允许参会者',
506
506
  fmt_screenshare_button_chosecontent: '选择共享内容',
507
507
  fmt_screenshare_tips_newsharing: '发起新的屏幕共享',
508
- fmt_screenshare_label_screenshare: '屏幕共享',
509
508
  fmt_screenshare_button_sharewhiteboard: '共享白板',
510
- fmt_screenshare_button_chosewhiteboard: '关闭白板',
511
509
  fmt_screenshare_options_alreadyopend: '共享白板(其他人已开启)',
512
510
  fmt_screenshare_options_allow: '允许参会者',
513
511
  fmt_screenshare_options_editable: '可标注和编辑白板',
@@ -805,8 +803,8 @@ var zhCn = exports.zhCn = {
805
803
  fmt_failure_popup_label_startup_fail: '启动失败',
806
804
  fmt_failure_popup_label_startup_check: '请优先检查启动参数与网络设置',
807
805
  fmt_failure_popup_button_i_know: '我已知悉',
808
- fmt_failure_popup_label_crash: '出现异常',
809
- fmt_failure_popup_label_crash_tips: '应用出现异常,请关闭应用重试',
806
+ fmt_failure_popup_label_crash: '应用崩溃',
807
+ fmt_failure_popup_label_crash_tips: '应用遇到崩溃问题,请关闭应用重试',
810
808
  fmt_failure_popup_button_close_app: '关闭应用',
811
809
  fmt_failure_popup_button_refresh: '刷新',
812
810
  fmt_qualitystatistics_label_video: '视频',
@@ -859,7 +857,7 @@ var zhCn = exports.zhCn = {
859
857
  fmt_setting_option_3ahigh: '高',
860
858
  fmt_setting_label_professional: '音乐和专业音频',
861
859
  fmt_setting_option_orinalvoise: '显示会议中选项,以通过麦克风“打开原声”',
862
- fmt_setting_tips_speaker: '点击测试扬声器,以确定你可以听到他人的声音',
860
+ fmt_setting_tips_speaker: '点击测试扬声器',
863
861
  fmt_setting_tips_mic: '请对着你的麦克风说话。如果你无法听到自己的声音,请更换麦克风',
864
862
  fmt_setting_tips_speaker_unwork: '如果你无法听到测试音,请更换扬声器',
865
863
  fmt_setting_tips_mic_unwork: '如果你无法听到测试音,请更换麦克风',
@@ -1552,7 +1550,7 @@ var zhCn = exports.zhCn = {
1552
1550
  fmt_premeeting_setting_label_automatically_adjust_volume: '自动调整{xxxxx}音量',
1553
1551
  fmt_premeeting_setting_label_microphone: '麦克风',
1554
1552
  fmt_premeeting_setting_button_test_microphone: '检测麦克风',
1555
- fmt_premeeting_setting_label_speak_into_your_microphone: '点击测试麦克风,确保其他参会人员可以听到您的声音',
1553
+ fmt_premeeting_setting_label_speak_into_your_microphone: '点击测试麦克风',
1556
1554
  fmt_premeeting_setting_button_recording: '录制中',
1557
1555
  fmt_premeeting_setting_label_change_the_microphone: '如果你无法听到测试音,请更换麦克风',
1558
1556
  fmt_premeeting_setting_label_input_level: '输入级别',
package/lib/type.d.ts CHANGED
@@ -175,6 +175,11 @@ export interface FcrUIDeviceObserver {
175
175
  * 音频已连接
176
176
  */
177
177
  onAudioConnected?(): void;
178
+ /**
179
+ * 系统选中设备变更
180
+ * @param device
181
+ */
182
+ onSystemSelectedDeviceChanged?(device: FcrDeviceInfo): void;
178
183
  }
179
184
  export declare enum FcrUIVideoEffectType {
180
185
  NONE = 0,
package/lib/ui-scene.d.ts CHANGED
@@ -2,6 +2,7 @@ import { FcrUIDefaultSceneConstructorArgs, FcrUISceneFacadeInternal, FcrUISceneO
2
2
  import { FcrUIManager } from './ui-manager';
3
3
  export declare class FcrUIDefaultScene implements FcrUISceneFacadeInternal {
4
4
  private _joinAbortController;
5
+ private _widgetObserver;
5
6
  get uiManager(): FcrUIManager;
6
7
  constructor({ registeredWidgetConfigs, objectManager, providerInitializer, }: FcrUIDefaultSceneConstructorArgs);
7
8
  private _resetPreventClose;
@@ -12,6 +13,7 @@ export declare class FcrUIDefaultScene implements FcrUISceneFacadeInternal {
12
13
  private _removeLocalMeetingTimeKey;
13
14
  private _setLocalMeetingTimeKey;
14
15
  private _addObservers;
16
+ private _addWidgetObserver;
15
17
  private _joinRoom;
16
18
  private _renderSceneUI;
17
19
  private _release;
@@ -19,8 +21,4 @@ export declare class FcrUIDefaultScene implements FcrUISceneFacadeInternal {
19
21
  private _createWaitingScene;
20
22
  private _releaseCurrentScene;
21
23
  private _addLogObserver;
22
- /**
23
- * 统一管理provider和dataSource的创建/获取
24
- */
25
- private _createWidgetProvider;
26
24
  }
package/lib/ui-scene.js CHANGED
@@ -67,12 +67,12 @@ var _type2 = require("fcr-core/lib/room-control/type");
67
67
  var _roomProvider = require("./providers/room-provider/room-provider");
68
68
  var _constant = require("./utilities/constant");
69
69
  var _leaveMeeting = _interopRequireDefault(require("../public/assets/leave-meeting.png"));
70
- var _widgetProvider = require("./providers/widget-provider");
71
70
  var _decorator = require("agora-foundation/lib/decorator");
72
71
  var _logger = require("fcr-core/lib/utilities/logger");
73
72
  var _logger2 = require("./utilities/logger");
74
73
  var _objectManager = require("./object-manager");
75
74
  var _env = require("agora-foundation/lib/utilities/env");
75
+ var _platform = require("./utilities/platform");
76
76
  var _FcrUIDefaultScene;
77
77
  var _initProto;
78
78
  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)]; } }; }
@@ -108,10 +108,16 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
108
108
  // @internal
109
109
  (0, _defineProperty2["default"])(this, "_joinSuccess", false);
110
110
  (0, _defineProperty2["default"])(this, "_joinAbortController", null);
111
- this._registeredWidgetConfigs = registeredWidgetConfigs;
111
+ (0, _defineProperty2["default"])(this, "_widgetObserver", {
112
+ onWidgetClicked: function onWidgetClicked(widgetId) {
113
+ _this._observable.notifyObservers('onWidgetClicked', widgetId);
114
+ }
115
+ });
112
116
  this._objectManager = objectManager;
113
117
  this._providerInitializer = providerInitializer;
114
118
  var sharedConfigDataSource = this._objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_CONFIG_DATA_SOURCE);
119
+ var sharedWidgetDataSource = this._objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_WIDGET_DATA_SOURCE);
120
+ sharedWidgetDataSource.setRegisteredWidgetConfigs(registeredWidgetConfigs);
115
121
  this._config = sharedConfigDataSource.sceneConfig;
116
122
  this._creatorConfig = sharedConfigDataSource.creatorConfig;
117
123
  this._observable.addObserver({
@@ -181,9 +187,8 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
181
187
  var eventProvider = this._objectManager.getObject(_objectManager.FcrUIObjectKeys.P_EVENT_PROVIDER);
182
188
  var messageProvider = this._objectManager.getObject(_objectManager.FcrUIObjectKeys.P_MESSAGE_PROVIDER);
183
189
  this._uiManager = new _uiManager.FcrUIManager(this._config, this._dom, this._creatorConfig.parameters);
184
- var roomProvider = new _roomProvider.FcrUIRoomProviderImpl(eventProvider, this._config, engine, messageProvider);
190
+ var roomProvider = new _roomProvider.FcrUIRoomProviderImpl(this._config, engine, messageProvider);
185
191
  this._objectManager.setObject(_objectManager.FcrUIObjectKeys.P_ROOM_PROVIDER, roomProvider);
186
- this._createWidgetProvider();
187
192
  var uiManager = this._uiManager;
188
193
  this._addObservers(uiManager);
189
194
 
@@ -239,7 +244,6 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
239
244
  var roomProvider = this._objectManager.getObject(_objectManager.FcrUIObjectKeys.P_ROOM_PROVIDER);
240
245
  var dialogProvider = this._objectManager.getObject(_objectManager.FcrUIObjectKeys.P_DIALOG_PROVIDER);
241
246
  var eventProvider = this._objectManager.getObject(_objectManager.FcrUIObjectKeys.P_EVENT_PROVIDER);
242
- var widgetProvider = this._objectManager.getObject(_objectManager.FcrUIObjectKeys.P_WIDGET_PROVIDER);
243
247
  var roomObserver = {
244
248
  onLeaveMainRoom: function onLeaveMainRoom() {
245
249
  // 立即释放资源
@@ -278,7 +282,8 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
278
282
  onConfirm: function onConfirm() {
279
283
  dialogProvider.closeDialog(_constant.FcrUIDialogKey.END_MEETING);
280
284
  observable.notifyObservers('onExited', sceneConfig.roomId, _type.FcrUIExitReason.CLOSE_ROOM);
281
- }
285
+ },
286
+ alwaysOnTop: (0, _platform.isWindows)()
282
287
  });
283
288
  }
284
289
  },
@@ -322,23 +327,26 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
322
327
  }
323
328
  };
324
329
  engine.addObserver(engineObserver);
325
- var widgetObserver = {
326
- onWidgetClicked: function onWidgetClicked(widgetId) {
327
- _this3._observable.notifyObservers('onWidgetClicked', widgetId);
328
- }
329
- };
330
- widgetProvider.addObserver(widgetObserver);
331
330
  this._disposers.push(function () {
332
331
  roomProvider.removeObserver(roomObserver);
333
332
  engine.removeObserver(engineObserver);
334
- widgetProvider.removeObserver(widgetObserver);
333
+ });
334
+ }
335
+ }, {
336
+ key: "_addWidgetObserver",
337
+ value: function _addWidgetObserver() {
338
+ var _this4 = this;
339
+ var widgetProvider = this._objectManager.getObject(_objectManager.FcrUIObjectKeys.P_WIDGET_PROVIDER);
340
+ widgetProvider.addObserver(this._widgetObserver);
341
+ this._disposers.push(function () {
342
+ widgetProvider.removeObserver(_this4._widgetObserver);
335
343
  });
336
344
  }
337
345
  }, {
338
346
  key: "_joinRoom",
339
347
  value: function () {
340
348
  var _joinRoom2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(engine, roomControl) {
341
- var _this4 = this;
349
+ var _this5 = this;
342
350
  var abortController, p;
343
351
  return _regenerator["default"].wrap(function (_context2) {
344
352
  while (1) switch (_context2.prev = _context2.next) {
@@ -376,13 +384,13 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
376
384
  }
377
385
  throw new Error('join aborted');
378
386
  case 5:
379
- if (_this4._isLaunched) {
387
+ if (_this5._isLaunched) {
380
388
  _context.next = 6;
381
389
  break;
382
390
  }
383
391
  return _context.abrupt("return", reject());
384
392
  case 6:
385
- _this4._joinSuccess = true;
393
+ _this5._joinSuccess = true;
386
394
  return _context.abrupt("return", resolve());
387
395
  case 7:
388
396
  _context.prev = 7;
@@ -391,7 +399,7 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
391
399
  case 8:
392
400
  _context.prev = 8;
393
401
  abortController.signal.removeEventListener('abort', onAbort);
394
- _this4._joinAbortController = null;
402
+ _this5._joinAbortController = null;
395
403
  return _context.finish(8);
396
404
  case 9:
397
405
  case "end":
@@ -404,15 +412,15 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
404
412
  };
405
413
  }());
406
414
  p.then(function () {
407
- if (!_this4._isLaunched) return;
408
- _this4._observable.notifyObservers('onLaunchSuccess', _this4._config.roomId);
415
+ if (!_this5._isLaunched) return;
416
+ _this5._observable.notifyObservers('onLaunchSuccess', _this5._config.roomId);
409
417
  })["catch"](function (e) {
410
- if (!_this4._isLaunched) return;
418
+ if (!_this5._isLaunched) return;
411
419
  if ((e === null || e === void 0 ? void 0 : e.message) === 'join aborted') {
412
- _this4.logger.info('join aborted');
420
+ _this5.logger.info('join aborted');
413
421
  return;
414
422
  }
415
- _this4._observable.notifyObservers('onLaunchFailure', _this4._config.roomId, e);
423
+ _this5._observable.notifyObservers('onLaunchFailure', _this5._config.roomId, e);
416
424
  });
417
425
  return _context2.abrupt("return", p);
418
426
  case 1:
@@ -445,6 +453,7 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
445
453
  this._setLocalMeetingTimeKey();
446
454
  mainScene = this._createMainScene();
447
455
  this._providerInitializer.onMainSceneInitialize();
456
+ this._addWidgetObserver();
448
457
  mainScene.nodeWillActive();
449
458
  uiManager.mountScene(mainScene);
450
459
  this._observable.notifyObservers('onSceneMounted');
@@ -541,26 +550,6 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
541
550
  value: function _addLogObserver() {
542
551
  this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onExited', 'onLaunchSuccess', 'onLaunchCancel', 'onLaunchFailure']));
543
552
  }
544
-
545
- /**
546
- * 统一管理provider和dataSource的创建/获取
547
- */
548
- }, {
549
- key: "_createWidgetProvider",
550
- value: function _createWidgetProvider() {
551
- if (this._objectManager.hasObject(_objectManager.FcrUIObjectKeys.P_WIDGET_PROVIDER)) {
552
- return this._objectManager.getObject(_objectManager.FcrUIObjectKeys.P_WIDGET_PROVIDER);
553
- }
554
- var roomProvider = this._objectManager.getObject(_objectManager.FcrUIObjectKeys.P_ROOM_PROVIDER);
555
- var dialogProvider = this._objectManager.getObject(_objectManager.FcrUIObjectKeys.P_DIALOG_PROVIDER);
556
- var widgetProvider = new _widgetProvider.FcrUIWidgetProviderImpl({
557
- registeredWidgetConfigs: this._registeredWidgetConfigs,
558
- roomProvider: roomProvider,
559
- dialogProvider: dialogProvider
560
- });
561
- this._objectManager.setObject(_objectManager.FcrUIObjectKeys.P_WIDGET_PROVIDER, widgetProvider);
562
- return widgetProvider;
563
- }
564
553
  }]);
565
554
  }();
566
555
  _FcrUIDefaultScene = FcrUIDefaultScene;
@@ -147,7 +147,8 @@ export declare enum FcrUIDialogKey {
147
147
  MUTE_ALL = "mute-all",
148
148
  ANNOTATION = "annotation",
149
149
  REVOKE_HOST = "revoke-host",
150
- CONTROL_BAR_LEAVE_MEETING = "control-bar-leave-meeting"
150
+ CONTROL_BAR_LEAVE_MEETING = "control-bar-leave-meeting",
151
+ MOUSE_DETECT_DEBUG = "mouse-detect-debug"
151
152
  }
152
153
  export declare enum FcrUIHighlightElement {
153
154
  VIDEO_BASIC = "fcr_VIDEO_BASIC_highlighter",
@@ -171,3 +172,4 @@ export declare const ErrorCode: {
171
172
  FAILED_TO_UPDATE_USER_ROLE_DUE_TO_PRIVILEGE: number;
172
173
  FAILED_TO_UPDATE_USER_ROLE_DUE_TO_LIMIT_REACHED: number;
173
174
  };
175
+ export declare const ExcludeWIndows: string[];
@@ -4,7 +4,7 @@ require("core-js/modules/es.object.define-property.js");
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.SETTING_CONFIG_STORAGE_KEY = exports.SESSION_DURATION = exports.GALLERY_MIN_SIZE = exports.FcrUIVideoWindowPinType = exports.FcrUIRoomControlType = exports.FcrUIRendererEventAction = exports.FcrUIParticipantType = exports.FcrUIHighlightElement = exports.FcrUIDialogKey = exports.FcrUIAction = exports.ErrorCode = void 0;
7
+ exports.SETTING_CONFIG_STORAGE_KEY = exports.SESSION_DURATION = exports.GALLERY_MIN_SIZE = exports.FcrUIVideoWindowPinType = exports.FcrUIRoomControlType = exports.FcrUIRendererEventAction = exports.FcrUIParticipantType = exports.FcrUIHighlightElement = exports.FcrUIDialogKey = exports.FcrUIAction = exports.ExcludeWIndows = exports.ErrorCode = void 0;
8
8
  var FcrUIRendererEventAction = exports.FcrUIRendererEventAction = /*#__PURE__*/function (FcrUIRendererEventAction) {
9
9
  /**
10
10
  * Indicates that the fragment has been loaded.
@@ -163,6 +163,8 @@ var FcrUIDialogKey = exports.FcrUIDialogKey = /*#__PURE__*/function (FcrUIDialog
163
163
  FcrUIDialogKey["ANNOTATION"] = "annotation";
164
164
  FcrUIDialogKey["REVOKE_HOST"] = "revoke-host";
165
165
  FcrUIDialogKey["CONTROL_BAR_LEAVE_MEETING"] = "control-bar-leave-meeting";
166
+ // debug
167
+ FcrUIDialogKey["MOUSE_DETECT_DEBUG"] = "mouse-detect-debug";
166
168
  return FcrUIDialogKey;
167
169
  }({});
168
170
  var FcrUIHighlightElement = exports.FcrUIHighlightElement = /*#__PURE__*/function (FcrUIHighlightElement) {
@@ -187,4 +189,5 @@ var ErrorCode = exports.ErrorCode = {
187
189
  FAILED_TO_MOVE_USER_TO_WAITING_ROOM: 732403470,
188
190
  FAILED_TO_UPDATE_USER_ROLE_DUE_TO_PRIVILEGE: 700000403,
189
191
  FAILED_TO_UPDATE_USER_ROLE_DUE_TO_LIMIT_REACHED: 720403001
190
- };
192
+ };
193
+ var ExcludeWIndows = exports.ExcludeWIndows = ['AgoraHighLighter', 'Toast', 'Confirm', 'Annotation tool bar', 'Annotation', 'Video Window', 'Control Bar', '灵动会议'];
@@ -35,6 +35,24 @@ export declare const screenCaptureLowStreamEncoderConfig: {
35
35
  bitrate: number;
36
36
  isMirror: boolean;
37
37
  };
38
+ export declare const screenCaptureClearityConfig: {
39
+ dimensions: {
40
+ width: number;
41
+ height: number;
42
+ };
43
+ frameRate: number;
44
+ bitrate: number;
45
+ isMirror: boolean;
46
+ };
47
+ export declare const screenCaptureSmoothConfig: {
48
+ dimensions: {
49
+ width: number;
50
+ height: number;
51
+ };
52
+ frameRate: number;
53
+ bitrate: number;
54
+ isMirror: boolean;
55
+ };
38
56
  export declare let enableCameraDualStreamMode: boolean;
39
57
  export declare let enableScreenDualStreamMode: boolean;
40
58
  export declare const cloudRecordingConfig: {
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.screenCaptureLowStreamEncoderConfig = exports.screenCaptureHighStreamEncoderConfig = exports.mergeDefaultDualStreamConfig = exports.isScreenDualStreamModeEnabled = exports.isCameraDualStreamModeEnabled = exports.enableScreenDualStreamMode = exports.enableCameraDualStreamMode = exports.cloudRecordingConfig = exports.cameraVideoLowStreamEncoderConfig = exports.cameraVideoHighStreamEncoderConfig = void 0;
8
+ exports.screenCaptureSmoothConfig = exports.screenCaptureLowStreamEncoderConfig = exports.screenCaptureHighStreamEncoderConfig = exports.screenCaptureClearityConfig = exports.mergeDefaultDualStreamConfig = exports.isScreenDualStreamModeEnabled = exports.isCameraDualStreamModeEnabled = exports.enableScreenDualStreamMode = exports.enableCameraDualStreamMode = exports.cloudRecordingConfig = exports.cameraVideoLowStreamEncoderConfig = exports.cameraVideoHighStreamEncoderConfig = void 0;
9
9
  require("core-js/modules/es.object.assign.js");
10
10
  var _type = require("fcr-core/lib/type");
11
11
  var _merge = _interopRequireDefault(require("lodash/merge"));
@@ -45,6 +45,24 @@ var screenCaptureLowStreamEncoderConfig = exports.screenCaptureLowStreamEncoderC
45
45
  bitrate: 400,
46
46
  isMirror: false
47
47
  };
48
+ var screenCaptureClearityConfig = exports.screenCaptureClearityConfig = {
49
+ dimensions: {
50
+ width: 1920,
51
+ height: 1080
52
+ },
53
+ frameRate: 15,
54
+ bitrate: 1800,
55
+ isMirror: false
56
+ };
57
+ var screenCaptureSmoothConfig = exports.screenCaptureSmoothConfig = {
58
+ dimensions: {
59
+ width: 1920,
60
+ height: 1080
61
+ },
62
+ frameRate: 30,
63
+ bitrate: 1500,
64
+ isMirror: false
65
+ };
48
66
  var enableCameraDualStreamMode = exports.enableCameraDualStreamMode = true;
49
67
  var enableScreenDualStreamMode = exports.enableScreenDualStreamMode = false;
50
68
  var cloudRecordingConfig = exports.cloudRecordingConfig = {
@@ -11,9 +11,16 @@ var focusWindow = exports.focusWindow = function focusWindow(window) {
11
11
  // Windows 需要此操作来确保窗口在最前,Mac不需要
12
12
  if ((0, _platform.isWindows)()) {
13
13
  window.show();
14
- window.setAlwaysOnTop(true);
14
+ window.focus();
15
+ window.moveTop();
15
16
  setTimeout(function () {
16
- window.setAlwaysOnTop(false);
17
- });
17
+ window.moveTop();
18
+ window.focus();
19
+ }, 100);
20
+ // window.setAlwaysOnTop(true);
21
+
22
+ // setTimeout(() => {
23
+ // window.setAlwaysOnTop(false);
24
+ // });
18
25
  }
19
26
  };
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.getLogger = exports.generateLogObserver = exports.createLogger = exports.createFragmentLogger = void 0;
8
8
  require("core-js/modules/es.array.concat.js");
9
9
  require("core-js/modules/es.array.for-each.js");
10
+ require("core-js/modules/es.date.to-json.js");
11
+ require("core-js/modules/es.json.stringify.js");
10
12
  require("core-js/modules/es.object.to-string.js");
11
13
  require("core-js/modules/esnext.iterator.constructor.js");
12
14
  require("core-js/modules/esnext.iterator.for-each.js");
@@ -46,7 +48,7 @@ var generateLogObserver = exports.generateLogObserver = function generateLogObse
46
48
  return observer;
47
49
  };
48
50
  window.addEventListener('error', function (e) {
49
- getLogger().error('window error event:', e);
51
+ getLogger().error('window error event:', JSON.stringify(e));
50
52
  });
51
53
  window.addEventListener('unhandledrejection', function (e) {
52
54
  getLogger().error('window unhandledrejection event:', e.reason);
@@ -61,6 +61,7 @@ export declare class FcrUIRendererWrapper implements FcrUIManagedObject {
61
61
  openDirectory(): Promise<string | undefined>;
62
62
  showItemInFolder(path: string): void;
63
63
  openRendererWindow(frameName: string, callback: (dom: HTMLElement, windowId: string, newRendererWindow: Window) => void, windowOptions: Electron.BrowserWindowConstructorOptions): void;
64
+ getBaseUrl(): string;
64
65
  getWindowInfoList(): never[];
65
66
  getNetworkType(): Promise<import("../runtime").NetworkType>;
66
67
  getSystemCpuInfo(): import("../runtime").CpuInfo[];
@@ -358,6 +358,12 @@ var FcrUIRendererWrapper = exports.FcrUIRendererWrapper = /*#__PURE__*/function
358
358
  this._checkRuntime();
359
359
  return runtime.openRendererWindow(frameName, callback, windowOptions);
360
360
  }
361
+ }, {
362
+ key: "getBaseUrl",
363
+ value: function getBaseUrl() {
364
+ this._checkRuntime();
365
+ return runtime.getBaseUrl();
366
+ }
361
367
  }, {
362
368
  key: "getWindowInfoList",
363
369
  value: function getWindowInfoList() {
@@ -417,7 +423,7 @@ var FcrUIRendererWrapper = exports.FcrUIRendererWrapper = /*#__PURE__*/function
417
423
  }]);
418
424
  }();
419
425
  _FcrUIRendererWrapper = FcrUIRendererWrapper;
420
- var _applyDecs$e = _applyDecs(_FcrUIRendererWrapper, [[_decorator.trace, 2, "addEventListener"], [_decorator.trace, 2, "removeEventListener"], [_decorator.trace, 2, "removeAllEventListener"], [_decorator.trace, 2, "sendEvent"], [_decorator.trace, 2, "openLinkInDefaultBrowser"], [_decorator.trace, 2, "getMediaSourcesIdByTitle"], [_decorator.trace, 2, "open"], [_decorator.trace, 2, "close"], [_decorator.trace, 2, "handleWillClose"], [_decorator.trace, 2, "setInMeetingState"], [_decorator.trace, 2, "release"], [_decorator.trace, 2, "initialize"], [_decorator.trace, 2, "restartApp"], [_decorator.trace, 2, "quitApp"], [_decorator.trace, 2, "getDisplayMatching"], [_decorator.trace, 2, "setUserSettingData"], [_decorator.trace, 2, "getUserSettingData"], [_decorator.trace, 2, "getAllDisplays"], [_decorator.trace, 2, "checkMediaPermission"], [_decorator.trace, 2, "openSystemPreferences"], [_decorator.trace, 2, "captureScreen"], [_decorator.trace, 2, "getDisplayNearestPoint"], [_decorator.trace, 2, "fileToBlob"], [_decorator.trace, 2, "getResourceByFileType"], [_decorator.trace, 2, "loadBuiltinResources"], [_decorator.trace, 2, "openDirectory"], [_decorator.trace, 2, "showItemInFolder"], [_decorator.trace, 2, "openRendererWindow"], [_decorator.trace, 2, "getWindowInfoList"], [_decorator.trace, 2, "getNetworkType"], [_decorator.trace, 2, "getSystemCpuInfo"], [_decorator.trace, 2, "getSystemMemorySize"], [_decorator.trace, 2, "setFragmentOptions"], [_decorator.trace, 2, "getCurrentBrowserWindow"], [_decorator.trace, 2, "createWindowProxy"], [_decorator.trace, 2, "getBrowserWindowById"]], []).e;
426
+ var _applyDecs$e = _applyDecs(_FcrUIRendererWrapper, [[_decorator.trace, 2, "addEventListener"], [_decorator.trace, 2, "removeEventListener"], [_decorator.trace, 2, "removeAllEventListener"], [_decorator.trace, 2, "sendEvent"], [_decorator.trace, 2, "openLinkInDefaultBrowser"], [_decorator.trace, 2, "getMediaSourcesIdByTitle"], [_decorator.trace, 2, "open"], [_decorator.trace, 2, "close"], [_decorator.trace, 2, "handleWillClose"], [_decorator.trace, 2, "setInMeetingState"], [_decorator.trace, 2, "release"], [_decorator.trace, 2, "initialize"], [_decorator.trace, 2, "restartApp"], [_decorator.trace, 2, "quitApp"], [_decorator.trace, 2, "getDisplayMatching"], [_decorator.trace, 2, "setUserSettingData"], [_decorator.trace, 2, "getUserSettingData"], [_decorator.trace, 2, "getAllDisplays"], [_decorator.trace, 2, "checkMediaPermission"], [_decorator.trace, 2, "openSystemPreferences"], [_decorator.trace, 2, "captureScreen"], [_decorator.trace, 2, "getDisplayNearestPoint"], [_decorator.trace, 2, "fileToBlob"], [_decorator.trace, 2, "getResourceByFileType"], [_decorator.trace, 2, "loadBuiltinResources"], [_decorator.trace, 2, "openDirectory"], [_decorator.trace, 2, "showItemInFolder"], [_decorator.trace, 2, "openRendererWindow"], [_decorator.trace, 2, "getBaseUrl"], [_decorator.trace, 2, "getWindowInfoList"], [_decorator.trace, 2, "getNetworkType"], [_decorator.trace, 2, "getSystemCpuInfo"], [_decorator.trace, 2, "getSystemMemorySize"], [_decorator.trace, 2, "setFragmentOptions"], [_decorator.trace, 2, "getCurrentBrowserWindow"], [_decorator.trace, 2, "createWindowProxy"], [_decorator.trace, 2, "getBrowserWindowById"]], []).e;
421
427
  var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 1);
422
428
  _initProto = _applyDecs$e2[0];
423
429
  _applyDecs$e;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fcr-ui-scene",
3
- "version": "3.7.5",
3
+ "version": "3.7.7-rc.1",
4
4
  "main": "lib/index.js",
5
5
  "repository": "ssh://git@git.agoralab.co/aduc/fcr-ui-scene-desktop.git",
6
6
  "author": "agora.io",
@@ -22,13 +22,13 @@
22
22
  "@react-spring/web": "^9.7.3",
23
23
  "@use-gesture/react": "^10.3.1",
24
24
  "agora-electron-sdk": "4.3.2-build.156-rc.1",
25
- "agora-foundation": "~3.7.5",
26
- "agora-ui-foundation": "~3.7.5",
25
+ "agora-foundation": "~3.7.7-rc.1",
26
+ "agora-ui-foundation": "~3.7.7-rc.1",
27
27
  "classnames": "^2.5.1",
28
28
  "core-js": "^3.33.3",
29
29
  "dayjs": "^1.10.4",
30
30
  "electron-screenshots": "^0.5.26",
31
- "fcr-core": "~3.7.5",
31
+ "fcr-core": "~3.7.7-rc.1",
32
32
  "js-md5": "^0.8.3",
33
33
  "jszip": "^3.10.1",
34
34
  "lodash": "^4.17.21",
@@ -59,7 +59,7 @@
59
59
  "@types/react-dom": "^17.0.11",
60
60
  "@types/react-virtualized": "^9.21.30",
61
61
  "@types/tinycolor2": "^1.4.6",
62
- "agora-toolchain": "~3.7.5",
62
+ "agora-toolchain": "~3.7.7-rc.1",
63
63
  "core-js": "^3.33.3",
64
64
  "electron": "22.3.27",
65
65
  "husky": "^9.0.11",
package/public/index.html CHANGED
@@ -179,6 +179,8 @@
179
179
 
180
180
  (async () => {
181
181
  let creator;
182
+ let uiScene;
183
+ let sendExitedEventFlag = true;
182
184
  window.cppSdkHelper.onCreatorInit = (config) => {
183
185
  if (creator) {
184
186
  creator.release();
@@ -205,13 +207,36 @@
205
207
  };
206
208
 
207
209
  window.cppSdkHelper.onLaunchMeeting = (launchOptions) => {
210
+ try {
211
+ if (uiScene) {
212
+ console.log('the previous sequence ui scene exists, exit it');
213
+ uiScene.exit();
214
+ sendExitedEventFlag = false;
215
+ }
216
+ } catch (error) {
217
+ // 这里可能会有报错,但是不影响后续的流程
218
+ console.error(
219
+ ' the previous sequence ui scene exists, exit it,but exit has error',
220
+ JSON.stringify(error),
221
+ );
222
+ }
208
223
  setFullScreenFailureComp(false);
209
224
  setLoading(true);
210
- document.querySelector('#fcr-launch-failure-confirm-btn').addEventListener('click', () => {
225
+
226
+ // 定义事件处理函数,以便可以正确移除
227
+ const handleConfirmClick = () => {
211
228
  setFullScreenFailureComp(false);
212
- console.log('windows_release ui scene closed callback');
229
+ console.log('windows_release error button clicked');
213
230
  window.runtime.getCurrentBrowserWindow().hide();
214
- });
231
+ };
232
+
233
+ document
234
+ .querySelector('#fcr-launch-failure-confirm-btn')
235
+ .removeEventListener('click', handleConfirmClick);
236
+ document
237
+ .querySelector('#fcr-launch-failure-confirm-btn')
238
+ .addEventListener('click', handleConfirmClick);
239
+
215
240
  const { widgets, ...others } = launchOptions;
216
241
 
217
242
  if (widgets && widgets instanceof Array) {
@@ -219,7 +244,7 @@
219
244
  creator.registerWidget(w);
220
245
  });
221
246
  }
222
- const uiScene = creator.launch(
247
+ uiScene = creator.launch(
223
248
  others,
224
249
  () => {
225
250
  console.log('windows_release ui scene closed callback');
@@ -241,6 +266,7 @@
241
266
  uiScene.addObserver({
242
267
  onLaunchSuccess: () => {
243
268
  setLoading(false);
269
+ sendExitedEventFlag = true;
244
270
  const roomProvider = uiScene._objectManager.getObject('roomProvider');
245
271
  if (!roomProvider) {
246
272
  throw new Error('roomProvider not found in uiScene');
@@ -279,7 +305,12 @@
279
305
  },
280
306
 
281
307
  onExited: (roomId, reason) => {
308
+ if (!sendExitedEventFlag) {
309
+ return;
310
+ }
311
+ console.log('the previous sequence ui scene : ui scene exited');
282
312
  window.cppSdkHelper.exitedMeeting(roomId, reason);
313
+ uiScene = null;
283
314
  setTimeout(() => {
284
315
  console.log('windows_release ui scene exited callback');
285
316
  window.runtime.getCurrentBrowserWindow().hide();
@@ -1,17 +0,0 @@
1
- import { UIModule } from '../../base';
2
- import './index.css';
3
- import { LeaveMeetingStoreBase } from '../components/leave-meeting/store.base';
4
- import { DeviceControlStoreBase } from '../components/device-control/store.base';
5
- import SecurityMenuStore from '../components/security-menu/store';
6
- export declare const actionBarClassName = "fcr-action-bar";
7
- export declare abstract class FcrActionBarUIModule extends UIModule {
8
- protected _securityMenuStore: SecurityMenuStore | null;
9
- protected _deviceControlStore: DeviceControlStoreBase | null;
10
- protected _leaveMeetingStore: LeaveMeetingStoreBase | null;
11
- get deviceControlStore(): DeviceControlStoreBase;
12
- get leaveMeetingStore(): LeaveMeetingStoreBase;
13
- get securityMenuStore(): SecurityMenuStore;
14
- abstract onNodeWillActive(): void;
15
- abstract onNodeWillInactive(): void;
16
- abstract getComponent(): React.ReactNode;
17
- }