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.
- package/lib/creator.d.ts +14 -0
- package/lib/creator.js +239 -14
- package/lib/electron/app.js +0 -21
- package/lib/electron/bootstrap-sdk.js +136 -7
- package/lib/electron/injections.d.ts +19 -7
- package/lib/electron/injections.js +206 -77
- package/lib/electron/ipc/ipc.d.ts +26 -0
- package/lib/electron/ipc/ipc.js +137 -0
- package/lib/electron/ipc/type.d.ts +11 -0
- package/lib/electron/ipc/type.js +19 -0
- package/lib/electron/logger.js +1 -1
- package/lib/electron/main.js +1 -1
- package/lib/electron/plugins/meeting-state.d.ts +1 -0
- package/lib/electron/plugins/meeting-state.js +3 -3
- package/lib/electron/plugins/screenshot.js +2 -2
- package/lib/electron/preload.js +67 -5
- package/lib/electron/window.js +0 -2
- package/lib/global.css +21 -0
- package/lib/modules/action-bar/components/apps/index.js +1 -0
- package/lib/modules/action-bar/components/apps/useWidgetList.js +1 -1
- package/lib/modules/action-bar/components/item/index.d.ts +2 -0
- package/lib/modules/action-bar/components/item/index.js +4 -2
- package/lib/modules/action-bar/components/leave/index.js +1 -0
- package/lib/modules/action-bar/components/more/index.js +1 -0
- package/lib/modules/action-bar/components/record/index.js +43 -106
- package/lib/modules/action-bar/components/record/popover.d.ts +4 -0
- package/lib/modules/action-bar/components/record/popover.js +57 -0
- package/lib/modules/action-bar/components/record/stop-record-dialog.js +1 -0
- package/lib/modules/action-bar/components/screen-share/index.js +15 -3
- package/lib/modules/action-bar/components/screen-share/submenu.js +2 -2
- package/lib/modules/action-bar/components/security/index.js +2 -1
- package/lib/modules/action-bar/components/smaller/index.js +1 -1
- package/lib/modules/action-bar/components/trigger-output-language/index.js +17 -22
- package/lib/modules/action-bar/components/trigger-subscribe-language/index.js +2 -1
- package/lib/modules/action-bar/index.css +3 -2
- package/lib/modules/action-bar/index.js +2 -1
- package/lib/modules/action-bar/store.d.ts +5 -0
- package/lib/modules/action-bar/store.js +30 -12
- package/lib/modules/action-bar/types.d.ts +1 -0
- package/lib/modules/chat/chat-room-store.js +1 -1
- package/lib/modules/chat/components/chat-bar/index.d.ts +1 -1
- package/lib/modules/chat/components/chat-bar/index.js +5 -3
- package/lib/modules/chat/components/chat-select/select-item/index.js +1 -1
- package/lib/modules/chat/components/message-list/index.js +1 -2
- package/lib/modules/chat/components/message-list/message-item/index.d.ts +0 -1
- package/lib/modules/chat/components/message-list/message-item/index.js +9 -10
- package/lib/modules/chat/index.css +24 -0
- package/lib/modules/chat/view.js +13 -3
- package/lib/modules/components/device-control/components/carmera/index.js +4 -5
- package/lib/modules/components/device-control/components/microphone/index.js +4 -5
- package/lib/modules/components/device-control/index.css +6 -3
- package/lib/modules/components/leave-meeting/components/assign-host.js +26 -4
- package/lib/modules/components/leave-meeting/components/index.css +35 -0
- package/lib/modules/components/leave-meeting/index.js +1 -0
- package/lib/modules/components/leave-meeting/store.js +25 -67
- package/lib/modules/components/member-window/components/member-actions/components/audio-control.js +3 -2
- package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +1 -1
- package/lib/modules/components/member-window/components/member-actions/components/icon-status.js +10 -9
- package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +2 -2
- package/lib/modules/components/member-window/components/member-actions/components/user-info.js +1 -1
- package/lib/modules/components/member-window/components/member-actions/index.js +2 -2
- package/lib/modules/components/member-window/components/video-player/components/remote-video-player.js +3 -14
- package/lib/modules/components/member-window/index.css +18 -7
- package/lib/modules/components/member-window/types.d.ts +1 -1
- package/lib/modules/components/security-menu/index.css +2 -2
- package/lib/modules/components/security-menu/index.js +80 -28
- package/lib/modules/components/tab-frame/index.css +1 -1
- package/lib/modules/control-bar/components/meeting-details/index.css +1 -1
- package/lib/modules/control-bar/components/meeting-details/index.js +15 -9
- package/lib/modules/control-bar/components/more-actions/index.js +3 -21
- package/lib/modules/control-bar/components/share-state-nav/index.js +4 -20
- package/lib/modules/control-bar/index.d.ts +2 -0
- package/lib/modules/control-bar/index.js +3 -1
- package/lib/modules/control-bar/store.d.ts +11 -2
- package/lib/modules/control-bar/store.js +103 -95
- package/lib/modules/control-bar/view.js +1 -6
- package/lib/modules/device-pretest/audio-preview/speaker-detection.js +1 -1
- package/lib/modules/dialog/components/chat/electron.d.ts +1 -3
- package/lib/modules/dialog/components/chat/index.js +24 -17
- package/lib/modules/dialog/components/confirm-leave-meeting/index.d.ts +6 -0
- package/lib/modules/dialog/components/confirm-leave-meeting/index.js +86 -0
- package/lib/modules/dialog/components/control-bar/index.d.ts +1 -2
- package/lib/modules/dialog/components/control-bar/index.js +5 -17
- package/lib/modules/dialog/components/dialog-container/component/body.d.ts +1 -0
- package/lib/modules/dialog/components/dialog-container/component/body.js +4 -2
- package/lib/modules/dialog/components/dialog-container/index.css +2 -1
- package/lib/modules/dialog/components/dialog-container/index.d.ts +1 -0
- package/lib/modules/dialog/components/dialog-container/index.js +3 -1
- package/lib/modules/dialog/components/participant/index.d.ts +0 -1
- package/lib/modules/dialog/components/participant/index.js +15 -24
- package/lib/modules/dialog/components/pre-setting/electron.d.ts +2 -0
- package/lib/modules/dialog/components/pre-setting/electron.js +51 -0
- package/lib/modules/dialog/components/pre-setting/index.css +26 -0
- package/lib/modules/dialog/components/pre-setting/index.d.ts +6 -0
- package/lib/modules/dialog/components/pre-setting/index.js +38 -0
- package/lib/modules/dialog/components/pre-setting-container/component/body.d.ts +8 -0
- package/lib/modules/dialog/components/pre-setting-container/component/body.js +80 -0
- package/lib/modules/dialog/components/pre-setting-container/index.css +82 -0
- package/lib/modules/dialog/components/pre-setting-container/index.d.ts +18 -0
- package/lib/modules/dialog/components/pre-setting-container/index.js +117 -0
- package/lib/modules/dialog/components/rename/index.d.ts +4 -0
- package/lib/modules/dialog/components/rename/index.js +72 -0
- package/lib/modules/dialog/components/video-window/index.js +18 -16
- package/lib/modules/dialog/components/widget/electron.d.ts +2 -1
- package/lib/modules/dialog/components/widget/electron.js +3 -2
- package/lib/modules/dialog/components/widget/index.d.ts +2 -1
- package/lib/modules/dialog/components/widget/index.js +4 -6
- package/lib/modules/dialog/dialogs.d.ts +1 -0
- package/lib/modules/dialog/dialogs.js +3 -2
- package/lib/modules/dialog/hooks/useElectron.d.ts +2 -0
- package/lib/modules/dialog/hooks/useElectron.js +11 -13
- package/lib/modules/dialog/index.d.ts +2 -0
- package/lib/modules/dialog/index.js +2 -1
- package/lib/modules/dialog/store.d.ts +8 -3
- package/lib/modules/dialog/store.js +38 -26
- package/lib/modules/dialog/type.d.ts +1 -0
- package/lib/modules/dialog/view.js +2 -1
- package/lib/modules/event-confirm/index.d.ts +2 -0
- package/lib/modules/event-confirm/index.js +2 -1
- package/lib/modules/event-confirm/store.d.ts +9 -1
- package/lib/modules/event-confirm/store.js +94 -8
- package/lib/modules/event-confirm/view.js +55 -46
- package/lib/modules/{sound-effect → event-sound}/index.d.ts +3 -2
- package/lib/modules/{sound-effect → event-sound}/index.js +9 -5
- package/lib/modules/event-toast/store.js +2 -0
- package/lib/modules/interpreter/dialog-content/index.js +4 -1
- package/lib/modules/interpreter/index.d.ts +2 -0
- package/lib/modules/interpreter/index.js +2 -1
- package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/index.js +3 -0
- package/lib/modules/interpreter/store.d.ts +2 -2
- package/lib/modules/interpreter/store.js +30 -24
- package/lib/modules/interpreter/type.d.ts +2 -0
- package/lib/modules/invite/components/pstn-invite.js +3 -9
- package/lib/modules/invite/components/voip-invite.css +26 -0
- package/lib/modules/invite/components/voip-invite.d.ts +1 -0
- package/lib/modules/invite/components/voip-invite.js +8 -11
- package/lib/modules/invite/index.css +16 -3
- package/lib/modules/invite/index.d.ts +2 -1
- package/lib/modules/invite/index.js +2 -1
- package/lib/modules/invite/store.d.ts +5 -1
- package/lib/modules/invite/store.js +8 -1
- package/lib/modules/layout/components/Carousel.d.ts +1 -1
- package/lib/modules/layout/components/Carousel.js +16 -118
- package/lib/modules/layout/components/CommonVideoRenderer.d.ts +13 -0
- package/lib/modules/layout/components/CommonVideoRenderer.js +214 -0
- package/lib/modules/layout/components/Gallery.d.ts +1 -0
- package/lib/modules/layout/components/Gallery.js +62 -205
- package/lib/modules/layout/components/index.css +17 -34
- package/lib/modules/layout/index.d.ts +2 -0
- package/lib/modules/layout/index.js +2 -1
- package/lib/modules/layout/store.d.ts +5 -2
- package/lib/modules/layout/store.js +47 -39
- package/lib/modules/layout/type.d.ts +4 -0
- package/lib/modules/layout/type.js +6 -1
- package/lib/modules/live-streaming/store.d.ts +1 -0
- package/lib/modules/live-streaming/store.js +19 -8
- package/lib/modules/participant/components/confirm-input/index.d.ts +4 -4
- package/lib/modules/participant/components/confirm-input/index.js +74 -6
- package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.css +27 -3
- package/lib/modules/participant/components/participants/components/footer/components/footer/index.css +4 -0
- package/lib/modules/participant/components/participants/components/footer/components/footer/index.js +3 -2
- package/lib/modules/participant/components/participants/components/participants/components/attendee/index.css +4 -3
- package/lib/modules/participant/components/participants/components/participants/components/attendee/index.js +1 -0
- package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.css +9 -1
- package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.js +1 -1
- package/lib/modules/participant/components/participants/components/participants/index.css +1 -0
- package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.css +18 -0
- package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.js +12 -5
- package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.js +1 -8
- package/lib/modules/participant/index.css +6 -0
- package/lib/modules/participant/index.d.ts +1 -0
- package/lib/modules/participant/index.js +9 -0
- package/lib/modules/participant/store.d.ts +6 -0
- package/lib/modules/participant/store.js +130 -96
- package/lib/modules/pc-audio-connect/store.js +1 -1
- package/lib/modules/phone-audio-connect/index.d.ts +2 -0
- package/lib/modules/phone-audio-connect/index.js +2 -1
- package/lib/modules/phone-audio-connect/store.d.ts +4 -1
- package/lib/modules/phone-audio-connect/store.js +4 -2
- package/lib/modules/setting/audio-settings/audio-settings.js +70 -48
- package/lib/modules/setting/audio-settings/index.css +23 -6
- package/lib/modules/setting/general-settings/general-settings.d.ts +1 -2
- package/lib/modules/setting/general-settings/general-settings.js +111 -37
- package/lib/modules/setting/general-settings/index.css +15 -0
- package/lib/modules/setting/index.d.ts +4 -1
- package/lib/modules/setting/index.js +7 -4
- package/lib/modules/setting/state/index.js +1 -1
- package/lib/modules/setting/store.d.ts +24 -11
- package/lib/modules/setting/store.js +203 -142
- package/lib/modules/setting/video-settings/index.css +13 -2
- package/lib/modules/setting/video-settings/video-settings-basic.js +18 -27
- package/lib/modules/setting/video-settings/video-settings.d.ts +0 -2
- package/lib/modules/setting/video-settings/video-settings.js +3 -2
- package/lib/modules/setting/view.d.ts +11 -2
- package/lib/modules/setting/view.js +93 -71
- package/lib/modules/share-screen/components/selection/index.js +6 -2
- package/lib/modules/share-screen/index.d.ts +4 -1
- package/lib/modules/share-screen/index.js +3 -1
- package/lib/modules/share-screen/store.d.ts +15 -5
- package/lib/modules/share-screen/store.js +105 -59
- package/lib/modules/share-screen/view.js +1 -1
- package/lib/modules/state-bar/index.css +4 -2
- package/lib/modules/state-bar/index.d.ts +2 -0
- package/lib/modules/state-bar/index.js +2 -1
- package/lib/modules/state-bar/layout-config.js +1 -0
- package/lib/modules/state-bar/live-streaming-state.js +1 -0
- package/lib/modules/state-bar/meeting-detail.css +10 -1
- package/lib/modules/state-bar/meeting-details.js +42 -26
- package/lib/modules/state-bar/meeting-network-state.css +8 -0
- package/lib/modules/state-bar/meeting-time.js +9 -20
- package/lib/modules/state-bar/store.d.ts +5 -1
- package/lib/modules/state-bar/store.js +10 -3
- package/lib/modules/state-bar/view.js +17 -6
- package/lib/modules/video-window/components/members/index.js +0 -3
- package/lib/modules/waiting-room-layout/index.css +13 -0
- package/lib/modules/waiting-room-layout/index.d.ts +2 -1
- package/lib/modules/waiting-room-layout/index.js +2 -1
- package/lib/modules/waiting-room-layout/store.d.ts +12 -1
- package/lib/modules/waiting-room-layout/store.js +42 -6
- package/lib/modules/waiting-room-layout/view.js +22 -5
- package/lib/modules/whiteboard/components/control-bar/index.css +1 -1
- package/lib/modules/whiteboard/components/switch-theme/libs.d.ts +1 -1
- package/lib/modules/whiteboard/components/switch-theme/libs.js +3 -1
- package/lib/modules/whiteboard/components/toolbar/ style.css +1 -0
- package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/panel.js +1 -0
- package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/picker.js +1 -0
- package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.js +3 -14
- package/lib/modules/whiteboard/components/toolbar/components/expansion/index.d.ts +1 -0
- package/lib/modules/whiteboard/components/toolbar/components/expansion/index.js +83 -0
- package/lib/modules/whiteboard/components/toolbar/components/extra-tool-picker.js +2 -2
- package/lib/modules/whiteboard/components/toolbar/components/history.js +3 -3
- package/lib/modules/whiteboard/components/toolbar/components/item/index.d.ts +1 -0
- package/lib/modules/whiteboard/components/toolbar/components/item/index.js +42 -0
- package/lib/modules/whiteboard/components/toolbar/components/pen-picker.js +2 -2
- package/lib/modules/whiteboard/components/toolbar/components/screen-capture-picker.js +2 -2
- package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +3 -3
- package/lib/modules/whiteboard/components/toolbar/hooks/index.js +6 -6
- package/lib/modules/whiteboard/components/toolbar/index.js +9 -113
- package/lib/modules/whiteboard/components/toolbar/store.d.ts +18 -0
- package/lib/modules/whiteboard/components/toolbar/store.js +276 -83
- package/lib/modules/whiteboard/context.d.ts +1 -2
- package/lib/modules/whiteboard/index.d.ts +1 -14
- package/lib/modules/whiteboard/index.js +131 -426
- package/lib/modules/whiteboard/view.js +12 -10
- package/lib/modules/widget/sdk.js +2 -1
- package/lib/object-manager.d.ts +8 -0
- package/lib/object-manager.js +75 -0
- package/lib/plugins/browser-runtime-plugin.js +19 -14
- package/lib/providers/ability-provider.d.ts +8 -0
- package/lib/providers/ability-provider.js +14 -0
- package/lib/providers/device-privilege-provider.d.ts +1 -0
- package/lib/providers/device-privilege-provider.js +53 -75
- package/lib/providers/device-provider.d.ts +18 -8
- package/lib/providers/device-provider.js +397 -209
- package/lib/providers/device-stream-provider.js +0 -4
- package/lib/providers/dialog-provider.d.ts +1 -0
- package/lib/providers/dialog-provider.js +4 -18
- package/lib/providers/event-provider.js +45 -2
- package/lib/providers/interpreter-provider.d.ts +4 -0
- package/lib/providers/interpreter-provider.js +166 -137
- package/lib/providers/message-provider.js +44 -2
- package/lib/providers/privilege-provider.d.ts +33 -0
- package/lib/providers/privilege-provider.js +120 -45
- package/lib/providers/room-provider.d.ts +12 -10
- package/lib/providers/room-provider.js +162 -262
- package/lib/providers/screen-share-provider.d.ts +4 -0
- package/lib/providers/screen-share-provider.js +3 -6
- package/lib/providers/widget-provider.js +6 -4
- package/lib/runtime.d.ts +20 -8
- package/lib/scenes/main-scene.d.ts +2 -0
- package/lib/scenes/main-scene.js +95 -37
- package/lib/scenes/waiting-scene.js +16 -13
- package/lib/schema.d.ts +55 -32
- package/lib/schema.js +23 -9
- package/lib/shared-data-source/config.d.ts +6 -2
- package/lib/shared-data-source/config.js +81 -10
- package/lib/shared-data-source/member-data.d.ts +16 -20
- package/lib/shared-data-source/member-data.js +121 -110
- package/lib/shared-data-source/screen-share-data-source.d.ts +37 -0
- package/lib/shared-data-source/screen-share-data-source.js +134 -0
- package/lib/shared-data-source/security-data.d.ts +1 -0
- package/lib/shared-data-source/security-data.js +3 -5
- package/lib/shared-data-source/setting.d.ts +1 -0
- package/lib/shared-data-source/setting.js +33 -17
- package/lib/shared-data-source/video-window.d.ts +3 -3
- package/lib/shared-data-source/video-window.js +55 -38
- package/lib/translations/enUS.d.ts +48 -1
- package/lib/translations/enUS.js +101 -17
- package/lib/translations/zhCN.d.ts +48 -1
- package/lib/translations/zhCN.js +88 -4
- package/lib/type.d.ts +40 -20
- package/lib/type.js +14 -1
- package/lib/ui-manager.d.ts +11 -9
- package/lib/ui-manager.js +118 -29
- package/lib/ui-scene.d.ts +7 -4
- package/lib/ui-scene.js +111 -128
- package/lib/utilities/constant.d.ts +3 -1
- package/lib/utilities/constant.js +2 -0
- package/lib/utilities/copyText.js +15 -11
- package/lib/utilities/default-config.d.ts +2 -0
- package/lib/utilities/default-config.js +11 -5
- package/lib/utilities/i18n-common-data.d.ts +2 -0
- package/lib/utilities/i18n-common-data.js +15 -0
- package/lib/utilities/logger.d.ts +0 -1
- package/lib/utilities/logger.js +3 -4
- package/lib/utilities/renderer.d.ts +0 -9
- package/lib/utilities/renderer.js +1 -70
- package/lib/utilities/screen.js +3 -1
- package/lib/utilities/setting-config-storage.d.ts +6 -1
- package/lib/utilities/setting-config-storage.js +21 -4
- package/lib/utilities/tools.d.ts +7 -6
- package/lib/utilities/tools.js +56 -44
- package/lib/utilities/ui-resources.d.ts +6 -0
- package/lib/utilities/ui-resources.js +47 -9
- package/lib/waiting-room-control-manager.d.ts +4 -4
- package/lib/waiting-room-control-manager.js +29 -9
- package/package.json +6 -6
- package/public/assets/browser/images/default1.jpg +0 -0
- package/public/assets/browser/images/default2.jpg +0 -0
- package/public/assets/browser/images/default3.jpg +0 -0
- package/public/assets/browser/images/default4.jpg +0 -0
- package/public/assets/browser/images/default5.jpg +0 -0
- package/public/assets/browser/images/default6.jpg +0 -0
- package/public/assets/browser/images/default7.jpg +0 -0
- package/public/assets/browser/sound_effects/pretest.mp3 +0 -0
- package/public/assets/browser/sound_effects/recording_started.mp3 +0 -0
- package/public/assets/browser/sound_effects/remote_user_joined.mp3 +0 -0
- package/public/assets/browser/sound_effects/speaker_test.mp3 +0 -0
- package/public/assets/browser/videos/default8.mp4 +0 -0
- package/public/assets/browser/videos/default9.mp4 +0 -0
- package/public/assets/electron/images/default1.jpg +0 -0
- package/public/assets/electron/images/default2.jpg +0 -0
- package/public/assets/electron/sound_effects/pretest.mp3 +0 -0
- package/public/assets/electron/videos/default8.mp4 +0 -0
- package/public/index.html +103 -82
- package/lib/hooks/meeting-time.d.ts +0 -15
- package/lib/hooks/meeting-time.js +0 -92
- package/lib/login-confirm-dialog.d.ts +0 -13
- package/lib/login-confirm-dialog.js +0 -85
- package/lib/modules/action-bar/components/apps/appitems.d.ts +0 -3
- package/lib/modules/action-bar/components/apps/appitems.js +0 -45
- package/lib/modules/components/member-window/components/member-board.d.ts +0 -2
- package/lib/modules/components/member-window/components/member-board.js +0 -63
- package/lib/modules/dialog/components/system-preference/bg1.png +0 -0
- package/lib/modules/dialog/components/system-preference/bg2.png +0 -0
- package/lib/modules/dialog/types/index.d.ts +0 -70
- package/lib/modules/participant/components/attendee/components/microphone-indicator/index.d.ts +0 -6
- package/lib/modules/participant/components/attendee/components/microphone-indicator/index.js +0 -28
- package/lib/modules/participant/components/attendee/components/user-avatar/index.d.ts +0 -7
- package/lib/modules/participant/components/attendee/components/user-avatar/index.js +0 -39
- package/lib/modules/participant/components/attendee/index.css +0 -69
- package/lib/modules/participant/components/attendee/index.d.ts +0 -4
- package/lib/modules/participant/components/attendee/index.js +0 -337
- package/lib/modules/participant/components/drop-menu/index.css +0 -60
- package/lib/modules/participant/components/drop-menu/index.d.ts +0 -2
- package/lib/modules/participant/components/drop-menu/index.js +0 -189
- package/lib/modules/participant/components/footer/buttons.d.ts +0 -6
- package/lib/modules/participant/components/footer/buttons.js +0 -52
- package/lib/modules/participant/components/footer/index.d.ts +0 -4
- package/lib/modules/participant/components/footer/index.js +0 -37
- package/lib/modules/participant/components/merge/index.d.ts +0 -11
- package/lib/modules/participant/components/merge/index.js +0 -49
- package/lib/modules/participant/components/rename/index.d.ts +0 -4
- package/lib/modules/participant/components/rename/index.js +0 -45
- package/lib/modules/participant/components/user-action/index.d.ts +0 -17
- package/lib/modules/participant/components/user-action/index.js +0 -169
- package/lib/modules/video-window/deviceState/index.d.ts +0 -16
- package/lib/modules/video-window/deviceState/index.js +0 -75
- package/lib/modules/video-window/members/index.css +0 -51
- package/lib/modules/video-window/members/index.d.ts +0 -2
- package/lib/modules/video-window/members/index.js +0 -157
- package/lib/modules/video-window/speaking/index.css +0 -69
- package/lib/modules/video-window/speaking/index.d.ts +0 -3
- package/lib/modules/video-window/speaking/index.js +0 -57
- package/lib/modules/video-window/topControl/index.css +0 -35
- package/lib/modules/video-window/topControl/index.d.ts +0 -3
- package/lib/modules/video-window/topControl/index.js +0 -92
- /package/lib/modules/{sound-effect → event-sound}/sound-effect-player.d.ts +0 -0
- /package/lib/modules/{sound-effect → event-sound}/sound-effect-player.js +0 -0
|
@@ -6,7 +6,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
value: true
|
|
8
8
|
});
|
|
9
|
-
exports.showItemInFolder = exports.setUserSettingData = exports.setInMeetingState = exports.setFragmentOptions = exports.setFragmentBaseUrl = exports.sendEvent = exports.screen = exports.restartApp = exports.removeEventListener = exports.releaseSubAllWindowRefs = exports.registerListenerReady = exports.quitApp = exports.openSystemPreferences = exports.openRendererWindow = exports.openLinkInDefaultBrowser = exports.openDirectory = exports.open = exports.launch = exports.getUserSettingData = exports.getSystemMemorySize = exports.getSystemCpuInfo = exports.getResourceByFileType = exports.
|
|
9
|
+
exports.showItemInFolder = exports.setUserSettingData = exports.setParameters = exports.setInMeetingState = exports.setFragmentOptions = exports.setFragmentBaseUrl = exports.sendEvent = exports.screen = exports.restartApp = exports.removeEventListener = exports.releaseSubAllWindowRefs = exports.registerListenerReady = exports.quitApp = exports.openSystemPreferences = exports.openSetting = exports.openRendererWindow = exports.openLinkInDefaultBrowser = exports.openDirectory = exports.open = exports.loadBuiltinResources = exports.launchSuccess = exports.launchFailure = exports.launch = exports.initSDK = exports.getUserSettingData = exports.getSystemMemorySize = exports.getSystemCpuInfo = exports.getResourceByFileType = exports.getNetworkType = exports.getMediaSourceIdList = exports.getLaunchOptions = exports.getIsSDKReady = exports.getBundleType = exports.getBrowserWindowById = exports.fileToBlob = exports.fileToBase64 = exports.exitedMeeting = exports.closeRendererWindow = exports.close = exports.checkMediaPermission = exports.captureScreen = exports.browserWindow = exports.addEventListener = exports.FcrNumericExitReason = void 0;
|
|
10
10
|
require("core-js/modules/es.error.cause.js");
|
|
11
11
|
require("core-js/modules/es.error.to-string.js");
|
|
12
12
|
require("core-js/modules/es.array.concat.js");
|
|
@@ -15,6 +15,7 @@ require("core-js/modules/es.array.find.js");
|
|
|
15
15
|
require("core-js/modules/es.array.for-each.js");
|
|
16
16
|
require("core-js/modules/es.array.includes.js");
|
|
17
17
|
require("core-js/modules/es.array.iterator.js");
|
|
18
|
+
require("core-js/modules/es.array.join.js");
|
|
18
19
|
require("core-js/modules/es.array.map.js");
|
|
19
20
|
require("core-js/modules/es.array.push.js");
|
|
20
21
|
require("core-js/modules/es.array.reduce.js");
|
|
@@ -54,8 +55,25 @@ var _os = _interopRequireDefault(require("os"));
|
|
|
54
55
|
var _child_process = require("child_process");
|
|
55
56
|
var _path2 = _interopRequireDefault(require("path"));
|
|
56
57
|
var _fs2 = _interopRequireDefault(require("fs"));
|
|
58
|
+
var _promises = _interopRequireDefault(require("fs/promises"));
|
|
57
59
|
var _jszip = _interopRequireDefault(require("jszip"));
|
|
58
60
|
var USER_SETTING_DATA_FILE_NAME = 'UserSettingData.json';
|
|
61
|
+
|
|
62
|
+
// Numeric exit reason enum
|
|
63
|
+
var FcrNumericExitReason = exports.FcrNumericExitReason = /*#__PURE__*/function (FcrNumericExitReason) {
|
|
64
|
+
FcrNumericExitReason[FcrNumericExitReason["LEAVE_ROOM"] = 1] = "LEAVE_ROOM";
|
|
65
|
+
FcrNumericExitReason[FcrNumericExitReason["CLOSE_ROOM"] = 2] = "CLOSE_ROOM";
|
|
66
|
+
FcrNumericExitReason[FcrNumericExitReason["KICKED_OUT"] = 3] = "KICKED_OUT";
|
|
67
|
+
FcrNumericExitReason[FcrNumericExitReason["ABORTED"] = 4] = "ABORTED";
|
|
68
|
+
return FcrNumericExitReason;
|
|
69
|
+
}({}); // 其他原因退出
|
|
70
|
+
// // Mapping from FcrUIExitReason to FcrNumericExitReason
|
|
71
|
+
var exitReasonMap = {
|
|
72
|
+
LEAVE_ROOM: FcrNumericExitReason.LEAVE_ROOM,
|
|
73
|
+
CLOSE_ROOM: FcrNumericExitReason.CLOSE_ROOM,
|
|
74
|
+
KICKED_OUT: FcrNumericExitReason.KICKED_OUT,
|
|
75
|
+
ABORTED: FcrNumericExitReason.ABORTED
|
|
76
|
+
};
|
|
59
77
|
var getBundleType = exports.getBundleType = function getBundleType() {
|
|
60
78
|
return _electron.ipcRenderer.invoke('getBundleType');
|
|
61
79
|
};
|
|
@@ -218,6 +236,7 @@ var openRendererWindow = exports.openRendererWindow = /*#__PURE__*/function () {
|
|
|
218
236
|
oldenObserver = rendererWindowMutationObservers[frameName];
|
|
219
237
|
if (oldenObserver) {
|
|
220
238
|
oldenObserver.disconnect();
|
|
239
|
+
delete rendererWindowMutationObservers[frameName];
|
|
221
240
|
}
|
|
222
241
|
observer = new MutationObserver(function (mutations) {
|
|
223
242
|
mutations.forEach(function (mutation) {
|
|
@@ -458,40 +477,22 @@ var getNetworkType = exports.getNetworkType = function getNetworkType() {
|
|
|
458
477
|
}
|
|
459
478
|
return p;
|
|
460
479
|
};
|
|
461
|
-
var
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
}
|
|
466
|
-
return _path2["default"].resolve(_remote.app.getAppPath(), '..', path);
|
|
467
|
-
};
|
|
468
|
-
var getRendererProcessUsage = exports.getRendererProcessUsage = /*#__PURE__*/function () {
|
|
469
|
-
var _ref9 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
|
470
|
-
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
471
|
-
while (1) switch (_context7.prev = _context7.next) {
|
|
472
|
-
case 0:
|
|
473
|
-
return _context7.abrupt("return", {
|
|
474
|
-
memoryUsage: 0,
|
|
475
|
-
cpuUsage: 0,
|
|
476
|
-
totalMemoryUsage: 0,
|
|
477
|
-
totalCpuUsage: 0
|
|
478
|
-
});
|
|
479
|
-
case 1:
|
|
480
|
-
case "end":
|
|
481
|
-
return _context7.stop();
|
|
482
|
-
}
|
|
483
|
-
}, _callee7);
|
|
484
|
-
}));
|
|
485
|
-
return function getRendererProcessUsage() {
|
|
486
|
-
return _ref9.apply(this, arguments);
|
|
487
|
-
};
|
|
488
|
-
}();
|
|
480
|
+
var isDevMode = process.env.DEV === 'true';
|
|
481
|
+
var appPath = _remote.app.getAppPath();
|
|
482
|
+
var appDataPath = _remote.app.getPath('appData');
|
|
483
|
+
var buildtinResourcesPath = isDevMode ? _path2["default"].resolve(_path2["default"].dirname(require.resolve('fcr-ui-scene/package.json')), 'public/assets/electron') : _path2["default"].resolve(appPath, '../assets');
|
|
489
484
|
var userDataPath = _remote.app.getPath('userData');
|
|
490
485
|
var cachePath = _path2["default"].resolve(userDataPath, 'cache');
|
|
491
486
|
var imageExtensions = ['.png', '.jpg'];
|
|
492
487
|
var videoExtensions = ['.mp4'];
|
|
493
488
|
var audioExtensions = ['.mp3', '.wav'];
|
|
494
489
|
var zipExtensions = ['.zip'];
|
|
490
|
+
console.log("Is dev mode: ".concat(isDevMode));
|
|
491
|
+
console.log("App path: ".concat(appPath));
|
|
492
|
+
console.log("App data path: ".concat(appDataPath));
|
|
493
|
+
console.log("Builtin ui resource path: ".concat(buildtinResourcesPath));
|
|
494
|
+
console.log("User data path: ".concat(userDataPath));
|
|
495
|
+
console.log("Cache path: ".concat(cachePath));
|
|
495
496
|
var getZipCachePath = function getZipCachePath(type) {
|
|
496
497
|
var resourcePath = type === 'audio' ? 'sound_effect_' : 'virtual_bg_';
|
|
497
498
|
return _path2["default"].resolve(cachePath, "fcr_scene/".concat(resourcePath).concat(type, "s"));
|
|
@@ -503,18 +504,18 @@ var getResourcePath = function getResourcePath(type, md5Url) {
|
|
|
503
504
|
|
|
504
505
|
// 解压 zip 文件并保存
|
|
505
506
|
var unZipAndSaveFile = /*#__PURE__*/function () {
|
|
506
|
-
var
|
|
507
|
+
var _ref9 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8(zipFile, outputPath, type) {
|
|
507
508
|
var zipBuffer, zip, fileNames;
|
|
508
|
-
return _regenerator["default"].wrap(function
|
|
509
|
-
while (1) switch (
|
|
509
|
+
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
510
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
510
511
|
case 0:
|
|
511
512
|
zipBuffer = _fs2["default"].readFileSync(zipFile);
|
|
512
|
-
|
|
513
|
+
_context8.next = 3;
|
|
513
514
|
return _jszip["default"].loadAsync(zipBuffer);
|
|
514
515
|
case 3:
|
|
515
|
-
zip =
|
|
516
|
+
zip = _context8.sent;
|
|
516
517
|
fileNames = [];
|
|
517
|
-
|
|
518
|
+
_context8.next = 7;
|
|
518
519
|
return Promise.all(Object.keys(zip.files).filter(function (filename) {
|
|
519
520
|
// 忽略目录、扩展文件或不需要的文件
|
|
520
521
|
var isDirectory = zip.files[filename].dir;
|
|
@@ -525,15 +526,15 @@ var unZipAndSaveFile = /*#__PURE__*/function () {
|
|
|
525
526
|
var isUserDataFile = type === 'image' ? imageExtensions.includes(_path2["default"].extname(filename)) : type === 'video' ? videoExtensions.includes(_path2["default"].extname(filename)) : audioExtensions.includes(_path2["default"].extname(filename));
|
|
526
527
|
return !isDirectory && !isExtensionFile && isUserDataFile;
|
|
527
528
|
}).map(/*#__PURE__*/function () {
|
|
528
|
-
var
|
|
529
|
+
var _ref10 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7(filenameTmp) {
|
|
529
530
|
var fileData, realFileName, outputFile;
|
|
530
|
-
return _regenerator["default"].wrap(function
|
|
531
|
-
while (1) switch (
|
|
531
|
+
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
532
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
532
533
|
case 0:
|
|
533
|
-
|
|
534
|
+
_context7.next = 2;
|
|
534
535
|
return zip.files[filenameTmp].async('nodebuffer');
|
|
535
536
|
case 2:
|
|
536
|
-
fileData =
|
|
537
|
+
fileData = _context7.sent;
|
|
537
538
|
realFileName = _path2["default"].basename(filenameTmp);
|
|
538
539
|
outputFile = _path2["default"].resolve(outputPath, realFileName);
|
|
539
540
|
_fs2["default"].mkdirSync(_path2["default"].dirname(outputFile), {
|
|
@@ -543,26 +544,26 @@ var unZipAndSaveFile = /*#__PURE__*/function () {
|
|
|
543
544
|
fileNames.push(outputFile);
|
|
544
545
|
case 8:
|
|
545
546
|
case "end":
|
|
546
|
-
return
|
|
547
|
+
return _context7.stop();
|
|
547
548
|
}
|
|
548
|
-
},
|
|
549
|
+
}, _callee7);
|
|
549
550
|
}));
|
|
550
551
|
return function (_x10) {
|
|
551
|
-
return
|
|
552
|
+
return _ref10.apply(this, arguments);
|
|
552
553
|
};
|
|
553
554
|
}()));
|
|
554
555
|
case 7:
|
|
555
556
|
// 删除 zip 文件
|
|
556
557
|
_fs2["default"].unlinkSync(zipFile);
|
|
557
|
-
return
|
|
558
|
+
return _context8.abrupt("return", fileNames);
|
|
558
559
|
case 9:
|
|
559
560
|
case "end":
|
|
560
|
-
return
|
|
561
|
+
return _context8.stop();
|
|
561
562
|
}
|
|
562
|
-
},
|
|
563
|
+
}, _callee8);
|
|
563
564
|
}));
|
|
564
565
|
return function unZipAndSaveFile(_x7, _x8, _x9) {
|
|
565
|
-
return
|
|
566
|
+
return _ref9.apply(this, arguments);
|
|
566
567
|
};
|
|
567
568
|
}();
|
|
568
569
|
|
|
@@ -605,11 +606,11 @@ function downloadFile(_x11, _x12) {
|
|
|
605
606
|
return _downloadFile.apply(this, arguments);
|
|
606
607
|
} // 获取资源
|
|
607
608
|
function _downloadFile() {
|
|
608
|
-
_downloadFile = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
609
|
-
return _regenerator["default"].wrap(function
|
|
610
|
-
while (1) switch (
|
|
609
|
+
_downloadFile = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee13(url, destination) {
|
|
610
|
+
return _regenerator["default"].wrap(function _callee13$(_context13) {
|
|
611
|
+
while (1) switch (_context13.prev = _context13.next) {
|
|
611
612
|
case 0:
|
|
612
|
-
return
|
|
613
|
+
return _context13.abrupt("return", new Promise(function (resolve, reject) {
|
|
613
614
|
var request = _remote.net.request(url);
|
|
614
615
|
request.on('response', function (response) {
|
|
615
616
|
var fileStream = _fs2["default"].createWriteStream(destination);
|
|
@@ -633,17 +634,17 @@ function _downloadFile() {
|
|
|
633
634
|
}));
|
|
634
635
|
case 1:
|
|
635
636
|
case "end":
|
|
636
|
-
return
|
|
637
|
+
return _context13.stop();
|
|
637
638
|
}
|
|
638
|
-
},
|
|
639
|
+
}, _callee13);
|
|
639
640
|
}));
|
|
640
641
|
return _downloadFile.apply(this, arguments);
|
|
641
642
|
}
|
|
642
643
|
var getResourceByFileType = exports.getResourceByFileType = /*#__PURE__*/function () {
|
|
643
|
-
var
|
|
644
|
-
var resourcePath, extensionMap, extensions, cachedFiles, zipFileName, zipCacheDir, zipFiles, tempZipPath, zipPath;
|
|
645
|
-
return _regenerator["default"].wrap(function
|
|
646
|
-
while (1) switch (
|
|
644
|
+
var _ref11 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9(url, md5Url, type) {
|
|
645
|
+
var resourcePath, extensionMap, extensions, cachedFiles, zipFileName, zipCacheDir, zipFiles, tempZipPath, zipPath, zipFilePath, filePathList;
|
|
646
|
+
return _regenerator["default"].wrap(function _callee9$(_context9) {
|
|
647
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
647
648
|
case 0:
|
|
648
649
|
resourcePath = getResourcePath(type, md5Url);
|
|
649
650
|
extensionMap = {
|
|
@@ -654,46 +655,55 @@ var getResourceByFileType = exports.getResourceByFileType = /*#__PURE__*/functio
|
|
|
654
655
|
extensions = extensionMap[type]; // 已有背景文件,直接使用
|
|
655
656
|
cachedFiles = getSpecificFiles(resourcePath, extensions);
|
|
656
657
|
if (!(cachedFiles.length > 0)) {
|
|
657
|
-
|
|
658
|
+
_context9.next = 7;
|
|
658
659
|
break;
|
|
659
660
|
}
|
|
660
|
-
|
|
661
|
-
|
|
661
|
+
console.log("Using cached files for ".concat(url, ": ").concat(JSON.stringify(cachedFiles)));
|
|
662
|
+
return _context9.abrupt("return", cachedFiles);
|
|
663
|
+
case 7:
|
|
662
664
|
// 已有 zip
|
|
663
665
|
zipFileName = "".concat(md5Url, ".zip");
|
|
664
666
|
zipCacheDir = getZipCachePath(type);
|
|
665
667
|
zipFiles = getSpecificFiles(zipCacheDir, zipExtensions, zipFileName); // 没有 zip,需要下载
|
|
666
668
|
if (!(zipFiles.length <= 0)) {
|
|
667
|
-
|
|
669
|
+
_context9.next = 20;
|
|
668
670
|
break;
|
|
669
671
|
}
|
|
670
672
|
tempZipPath = _path2["default"].resolve("".concat(zipCacheDir, "/").concat(md5Url, ".temp"));
|
|
671
673
|
zipPath = _path2["default"].resolve("".concat(zipCacheDir, "/").concat(zipFileName));
|
|
672
|
-
|
|
674
|
+
console.log("start downloading zip file from ".concat(url, " to ").concat(tempZipPath));
|
|
675
|
+
_context9.next = 16;
|
|
673
676
|
return downloadFile(url, tempZipPath);
|
|
674
|
-
case
|
|
677
|
+
case 16:
|
|
678
|
+
console.log("finished downloading zip file to ".concat(tempZipPath));
|
|
679
|
+
|
|
675
680
|
// temp 文件重命名为 zip
|
|
676
681
|
_fs2["default"].renameSync(tempZipPath, zipPath);
|
|
682
|
+
console.log("renamed temp file from ".concat(tempZipPath, " to ").concat(zipPath));
|
|
677
683
|
zipFiles = getSpecificFiles(zipCacheDir, zipExtensions, zipFileName);
|
|
678
|
-
case
|
|
684
|
+
case 20:
|
|
679
685
|
if (!(!zipFiles || zipFiles.length <= 0)) {
|
|
680
|
-
|
|
686
|
+
_context9.next = 23;
|
|
681
687
|
break;
|
|
682
688
|
}
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
return
|
|
689
|
-
case
|
|
689
|
+
console.warn("No zip files found for ".concat(url));
|
|
690
|
+
return _context9.abrupt("return", []);
|
|
691
|
+
case 23:
|
|
692
|
+
zipFilePath = zipFiles[0]; // 解压并返回背景文件
|
|
693
|
+
_context9.next = 26;
|
|
694
|
+
return unZipAndSaveFile(zipFilePath, resourcePath, type);
|
|
695
|
+
case 26:
|
|
696
|
+
filePathList = _context9.sent;
|
|
697
|
+
console.log("Unzipped files from ".concat(zipFilePath, ": ").concat(JSON.stringify(filePathList)));
|
|
698
|
+
return _context9.abrupt("return", filePathList);
|
|
699
|
+
case 29:
|
|
690
700
|
case "end":
|
|
691
|
-
return
|
|
701
|
+
return _context9.stop();
|
|
692
702
|
}
|
|
693
|
-
},
|
|
703
|
+
}, _callee9);
|
|
694
704
|
}));
|
|
695
705
|
return function getResourceByFileType(_x13, _x14, _x15) {
|
|
696
|
-
return
|
|
706
|
+
return _ref11.apply(this, arguments);
|
|
697
707
|
};
|
|
698
708
|
}();
|
|
699
709
|
|
|
@@ -710,10 +720,91 @@ var fileToBase64 = exports.fileToBase64 = function fileToBase64(file, type) {
|
|
|
710
720
|
return "data:image/jpeg;base64,".concat(data);
|
|
711
721
|
}
|
|
712
722
|
};
|
|
723
|
+
var fileToBlob = exports.fileToBlob = function fileToBlob(file, type) {
|
|
724
|
+
var data = _fs2["default"].readFileSync(file, {
|
|
725
|
+
encoding: 'base64'
|
|
726
|
+
});
|
|
727
|
+
return new Blob([Buffer.from(data, 'base64')], {
|
|
728
|
+
type: type === 'video' ? 'video/mp4' : type === 'audio' ? 'audio/mp3' : 'image/jpeg'
|
|
729
|
+
});
|
|
730
|
+
};
|
|
731
|
+
var loadBuiltinResources = exports.loadBuiltinResources = /*#__PURE__*/function () {
|
|
732
|
+
var _ref12 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee11() {
|
|
733
|
+
var buildtinVirtualBackgroundImagePath, buildtinVirtualBackgroundVideoPath, buildtinSoundEffectsPath;
|
|
734
|
+
return _regenerator["default"].wrap(function _callee11$(_context11) {
|
|
735
|
+
while (1) switch (_context11.prev = _context11.next) {
|
|
736
|
+
case 0:
|
|
737
|
+
buildtinVirtualBackgroundImagePath = _path2["default"].join(buildtinResourcesPath, 'images');
|
|
738
|
+
buildtinVirtualBackgroundVideoPath = _path2["default"].join(buildtinResourcesPath, 'videos');
|
|
739
|
+
buildtinSoundEffectsPath = _path2["default"].join(buildtinResourcesPath, 'sound_effects');
|
|
740
|
+
return _context11.abrupt("return", new Promise(/*#__PURE__*/function () {
|
|
741
|
+
var _ref13 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee10(resolve) {
|
|
742
|
+
var _yield$Promise$allSet, _yield$Promise$allSet2, images, videos, sounds, virtualBackgroundImages, virtualBackgroundVideos, soundEffects;
|
|
743
|
+
return _regenerator["default"].wrap(function _callee10$(_context10) {
|
|
744
|
+
while (1) switch (_context10.prev = _context10.next) {
|
|
745
|
+
case 0:
|
|
746
|
+
_context10.next = 2;
|
|
747
|
+
return Promise.allSettled([_promises["default"].readdir(buildtinVirtualBackgroundImagePath), _promises["default"].readdir(buildtinVirtualBackgroundVideoPath), _promises["default"].readdir(buildtinSoundEffectsPath)]);
|
|
748
|
+
case 2:
|
|
749
|
+
_yield$Promise$allSet = _context10.sent;
|
|
750
|
+
_yield$Promise$allSet2 = (0, _slicedToArray2["default"])(_yield$Promise$allSet, 3);
|
|
751
|
+
images = _yield$Promise$allSet2[0];
|
|
752
|
+
videos = _yield$Promise$allSet2[1];
|
|
753
|
+
sounds = _yield$Promise$allSet2[2];
|
|
754
|
+
virtualBackgroundImages = [];
|
|
755
|
+
if (images.status === 'fulfilled') {
|
|
756
|
+
images.value.forEach(function (file) {
|
|
757
|
+
var ext = _path2["default"].extname(file).toLowerCase();
|
|
758
|
+
if (imageExtensions.includes(ext)) {
|
|
759
|
+
virtualBackgroundImages.push(_path2["default"].join(buildtinVirtualBackgroundImagePath, file));
|
|
760
|
+
}
|
|
761
|
+
});
|
|
762
|
+
}
|
|
763
|
+
virtualBackgroundVideos = [];
|
|
764
|
+
if (videos.status === 'fulfilled') {
|
|
765
|
+
videos.value.forEach(function (file) {
|
|
766
|
+
var ext = _path2["default"].extname(file).toLowerCase();
|
|
767
|
+
if (videoExtensions.includes(ext)) {
|
|
768
|
+
virtualBackgroundVideos.push(_path2["default"].join(buildtinVirtualBackgroundVideoPath, file));
|
|
769
|
+
}
|
|
770
|
+
});
|
|
771
|
+
}
|
|
772
|
+
soundEffects = [];
|
|
773
|
+
if (sounds.status === 'fulfilled') {
|
|
774
|
+
sounds.value.forEach(function (file) {
|
|
775
|
+
var ext = _path2["default"].extname(file).toLowerCase();
|
|
776
|
+
if (audioExtensions.includes(ext)) {
|
|
777
|
+
soundEffects.push(_path2["default"].join(buildtinSoundEffectsPath, file));
|
|
778
|
+
}
|
|
779
|
+
});
|
|
780
|
+
}
|
|
781
|
+
resolve({
|
|
782
|
+
virtualBackgroundImages: virtualBackgroundImages,
|
|
783
|
+
virtualBackgroundVideos: virtualBackgroundVideos,
|
|
784
|
+
soundEffects: soundEffects
|
|
785
|
+
});
|
|
786
|
+
case 14:
|
|
787
|
+
case "end":
|
|
788
|
+
return _context10.stop();
|
|
789
|
+
}
|
|
790
|
+
}, _callee10);
|
|
791
|
+
}));
|
|
792
|
+
return function (_x16) {
|
|
793
|
+
return _ref13.apply(this, arguments);
|
|
794
|
+
};
|
|
795
|
+
}()));
|
|
796
|
+
case 4:
|
|
797
|
+
case "end":
|
|
798
|
+
return _context11.stop();
|
|
799
|
+
}
|
|
800
|
+
}, _callee11);
|
|
801
|
+
}));
|
|
802
|
+
return function loadBuiltinResources() {
|
|
803
|
+
return _ref12.apply(this, arguments);
|
|
804
|
+
};
|
|
805
|
+
}();
|
|
713
806
|
var releaseSubAllWindowRefs = exports.releaseSubAllWindowRefs = function releaseSubAllWindowRefs() {
|
|
714
807
|
_electron.ipcRenderer.send('closeAllSubWindows');
|
|
715
|
-
rendererWindows = {};
|
|
716
|
-
rendererWindowMutationObservers = {};
|
|
717
808
|
};
|
|
718
809
|
var getMediaSourceIdList = exports.getMediaSourceIdList = function getMediaSourceIdList() {
|
|
719
810
|
return _remote.BrowserWindow.getAllWindows().map(function (window) {
|
|
@@ -742,4 +833,42 @@ var getUserSettingData = exports.getUserSettingData = function getUserSettingDat
|
|
|
742
833
|
};
|
|
743
834
|
var setUserSettingData = exports.setUserSettingData = function setUserSettingData(data) {
|
|
744
835
|
_fs2["default"].writeFileSync(_path2["default"].resolve(userDataPath, USER_SETTING_DATA_FILE_NAME), JSON.stringify(data));
|
|
836
|
+
};
|
|
837
|
+
var initSDK = exports.initSDK = function initSDK(options) {
|
|
838
|
+
_electron.ipcRenderer.invoke('initSDK', options);
|
|
839
|
+
};
|
|
840
|
+
var openSetting = exports.openSetting = function openSetting() {
|
|
841
|
+
_electron.ipcRenderer.invoke('openSetting');
|
|
842
|
+
};
|
|
843
|
+
var getIsSDKReady = exports.getIsSDKReady = /*#__PURE__*/function () {
|
|
844
|
+
var _ref14 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee12() {
|
|
845
|
+
return _regenerator["default"].wrap(function _callee12$(_context12) {
|
|
846
|
+
while (1) switch (_context12.prev = _context12.next) {
|
|
847
|
+
case 0:
|
|
848
|
+
_context12.next = 2;
|
|
849
|
+
return _electron.ipcRenderer.invoke('getIsSDKReady');
|
|
850
|
+
case 2:
|
|
851
|
+
return _context12.abrupt("return", _context12.sent);
|
|
852
|
+
case 3:
|
|
853
|
+
case "end":
|
|
854
|
+
return _context12.stop();
|
|
855
|
+
}
|
|
856
|
+
}, _callee12);
|
|
857
|
+
}));
|
|
858
|
+
return function getIsSDKReady() {
|
|
859
|
+
return _ref14.apply(this, arguments);
|
|
860
|
+
};
|
|
861
|
+
}();
|
|
862
|
+
var launchSuccess = exports.launchSuccess = function launchSuccess(roomId) {
|
|
863
|
+
_electron.ipcRenderer.send('launch-success', roomId);
|
|
864
|
+
};
|
|
865
|
+
var launchFailure = exports.launchFailure = function launchFailure(roomId, errorCode) {
|
|
866
|
+
_electron.ipcRenderer.send('launch-failure', roomId, errorCode);
|
|
867
|
+
};
|
|
868
|
+
var setParameters = exports.setParameters = function setParameters(parameters) {
|
|
869
|
+
_electron.ipcRenderer.send('set-parameters', parameters);
|
|
870
|
+
};
|
|
871
|
+
var exitedMeeting = exports.exitedMeeting = function exitedMeeting(roomId, reason) {
|
|
872
|
+
var numericReason = exitReasonMap[reason];
|
|
873
|
+
_electron.ipcRenderer.send('exited-meeting', roomId, numericReason);
|
|
745
874
|
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IPCMessageCMD } from './type';
|
|
2
|
+
interface IPCMessage {
|
|
3
|
+
cmd: IPCMessageCMD;
|
|
4
|
+
data: unknown;
|
|
5
|
+
}
|
|
6
|
+
interface IPCClientObserver {
|
|
7
|
+
onConnected: () => void;
|
|
8
|
+
onMessageReceived: (message: IPCMessage) => void;
|
|
9
|
+
onError: (error: Error) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare class IPCClient {
|
|
12
|
+
private _logger;
|
|
13
|
+
private _socket;
|
|
14
|
+
private _observable;
|
|
15
|
+
private _buffer;
|
|
16
|
+
constructor({ port }: {
|
|
17
|
+
port: number;
|
|
18
|
+
});
|
|
19
|
+
private _processBuffer;
|
|
20
|
+
sendMessage(message: IPCMessage): void;
|
|
21
|
+
addObserver(observer: IPCClientObserver): void;
|
|
22
|
+
removeObserver(observer: IPCClientObserver): void;
|
|
23
|
+
private _handleMessage;
|
|
24
|
+
private _handleError;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.IPCClient = void 0;
|
|
9
|
+
require("core-js/modules/es.error.to-string.js");
|
|
10
|
+
require("core-js/modules/es.array.concat.js");
|
|
11
|
+
require("core-js/modules/es.array.for-each.js");
|
|
12
|
+
require("core-js/modules/es.array.slice.js");
|
|
13
|
+
require("core-js/modules/es.date.to-json.js");
|
|
14
|
+
require("core-js/modules/es.date.to-string.js");
|
|
15
|
+
require("core-js/modules/es.json.stringify.js");
|
|
16
|
+
require("core-js/modules/es.object.keys.js");
|
|
17
|
+
require("core-js/modules/es.object.to-string.js");
|
|
18
|
+
require("core-js/modules/es.regexp.to-string.js");
|
|
19
|
+
require("core-js/modules/esnext.async-iterator.for-each.js");
|
|
20
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
21
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
22
|
+
require("core-js/modules/esnext.json.parse.js");
|
|
23
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
24
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
25
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
26
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
27
|
+
var _net = require("net");
|
|
28
|
+
var _events = _interopRequireDefault(require("events"));
|
|
29
|
+
var _logger = require("../logger");
|
|
30
|
+
var IPCClient = exports.IPCClient = /*#__PURE__*/function () {
|
|
31
|
+
function IPCClient(_ref) {
|
|
32
|
+
var _this = this;
|
|
33
|
+
var port = _ref.port;
|
|
34
|
+
(0, _classCallCheck2["default"])(this, IPCClient);
|
|
35
|
+
(0, _defineProperty2["default"])(this, "_logger", (0, _logger.getLogger)());
|
|
36
|
+
(0, _defineProperty2["default"])(this, "_observable", new _events["default"]());
|
|
37
|
+
(0, _defineProperty2["default"])(this, "_buffer", Buffer.alloc(0));
|
|
38
|
+
(0, _defineProperty2["default"])(this, "_handleMessage", function (message) {
|
|
39
|
+
_this._logger.log('Received message:', message);
|
|
40
|
+
try {
|
|
41
|
+
var parsedMessage = JSON.parse(message);
|
|
42
|
+
_this._observable.emit('onMessageReceived', parsedMessage);
|
|
43
|
+
} catch (error) {
|
|
44
|
+
_this._logger.error('Error parsing message:', error);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
(0, _defineProperty2["default"])(this, "_handleError", function (error) {
|
|
48
|
+
_this._logger.error('Error:', error);
|
|
49
|
+
_this._observable.emit('onError', error);
|
|
50
|
+
});
|
|
51
|
+
this._logger.info('initialize tcp connection');
|
|
52
|
+
this._socket = (0, _net.createConnection)({
|
|
53
|
+
port: port,
|
|
54
|
+
timeout: 5000
|
|
55
|
+
}, function () {
|
|
56
|
+
_this._logger.info('connected to server!');
|
|
57
|
+
});
|
|
58
|
+
this._socket.on('end', function () {
|
|
59
|
+
_this._logger.info('disconnected from server');
|
|
60
|
+
});
|
|
61
|
+
this._socket.on('data', function (data) {
|
|
62
|
+
// 将新数据追加到现有缓冲区
|
|
63
|
+
_this._buffer = Buffer.concat([_this._buffer, data]);
|
|
64
|
+
// 处理可能的多条消息
|
|
65
|
+
_this._processBuffer();
|
|
66
|
+
});
|
|
67
|
+
this._socket.on('error', function (error) {
|
|
68
|
+
_this._logger.error('Socket error:', error);
|
|
69
|
+
_this._handleError(error);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return (0, _createClass2["default"])(IPCClient, [{
|
|
73
|
+
key: "_processBuffer",
|
|
74
|
+
value: function _processBuffer() {
|
|
75
|
+
// 循环处理缓冲区中的所有完整消息
|
|
76
|
+
while (this._buffer.length >= 4) {
|
|
77
|
+
// 读取消息长度
|
|
78
|
+
var messageLength = this._buffer.readUInt32BE(0);
|
|
79
|
+
|
|
80
|
+
// 检查是否有完整的消息
|
|
81
|
+
if (this._buffer.length >= messageLength + 4) {
|
|
82
|
+
// 提取消息内容(跳过4字节长度前缀)
|
|
83
|
+
var messageContent = this._buffer.slice(4, messageLength + 4);
|
|
84
|
+
// 更新缓冲区,移除已处理的消息
|
|
85
|
+
this._buffer = this._buffer.slice(messageLength + 4);
|
|
86
|
+
|
|
87
|
+
// 处理消息
|
|
88
|
+
var message = messageContent.toString();
|
|
89
|
+
this._handleMessage(message);
|
|
90
|
+
} else {
|
|
91
|
+
// 消息不完整,等待更多数据
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}, {
|
|
97
|
+
key: "sendMessage",
|
|
98
|
+
value: function sendMessage(message) {
|
|
99
|
+
var _this2 = this;
|
|
100
|
+
var messageString = JSON.stringify(message);
|
|
101
|
+
// 1. 创建包含消息长度的buffer(4字节)
|
|
102
|
+
var lengthBuffer = Buffer.alloc(4);
|
|
103
|
+
// 2. 以大端序(网络字节序)写入消息长度
|
|
104
|
+
var messageBuffer = Buffer.from(messageString);
|
|
105
|
+
lengthBuffer.writeUInt32BE(messageBuffer.length, 0);
|
|
106
|
+
// 3. 先发送长度,再发送消息内容
|
|
107
|
+
|
|
108
|
+
this._socket.write(Buffer.concat([lengthBuffer, Buffer.from(messageString)]), function (error) {
|
|
109
|
+
if (error) {
|
|
110
|
+
_this2._logger.error('Error sending message:', error);
|
|
111
|
+
} else {
|
|
112
|
+
_this2._logger.log('Message sent:', messageString);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}, {
|
|
117
|
+
key: "addObserver",
|
|
118
|
+
value: function addObserver(observer) {
|
|
119
|
+
var _this3 = this;
|
|
120
|
+
Object.keys(observer).forEach(function (eventKey) {
|
|
121
|
+
if (typeof observer[eventKey] === 'function') {
|
|
122
|
+
_this3._observable.on(eventKey, observer[eventKey]);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}, {
|
|
127
|
+
key: "removeObserver",
|
|
128
|
+
value: function removeObserver(observer) {
|
|
129
|
+
var _this4 = this;
|
|
130
|
+
Object.keys(observer).forEach(function (eventKey) {
|
|
131
|
+
if (typeof observer[eventKey] === 'function') {
|
|
132
|
+
_this4._observable.off(eventKey, observer[eventKey]);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}]);
|
|
137
|
+
}();
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare enum IPCMessageCMD {
|
|
2
|
+
ElectronMainWindowLoaded = "electron-main-window-loaded",
|
|
3
|
+
InitCreator = "init-creator",
|
|
4
|
+
LaunchMeeting = "launch-meeting",
|
|
5
|
+
OpenSetting = "open-setting",
|
|
6
|
+
CloseSetting = "close-setting",
|
|
7
|
+
LaunchSuccess = "launch-meeting-success",
|
|
8
|
+
LaunchFailure = "launch-meeting-failure",
|
|
9
|
+
SetParameters = "set-parameters",
|
|
10
|
+
ExitedMeeting = "exited-meeting"
|
|
11
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.IPCMessageCMD = void 0;
|
|
8
|
+
var IPCMessageCMD = exports.IPCMessageCMD = /*#__PURE__*/function (IPCMessageCMD) {
|
|
9
|
+
IPCMessageCMD["ElectronMainWindowLoaded"] = "electron-main-window-loaded";
|
|
10
|
+
IPCMessageCMD["InitCreator"] = "init-creator";
|
|
11
|
+
IPCMessageCMD["LaunchMeeting"] = "launch-meeting";
|
|
12
|
+
IPCMessageCMD["OpenSetting"] = "open-setting";
|
|
13
|
+
IPCMessageCMD["CloseSetting"] = "close-setting";
|
|
14
|
+
IPCMessageCMD["LaunchSuccess"] = "launch-meeting-success";
|
|
15
|
+
IPCMessageCMD["LaunchFailure"] = "launch-meeting-failure";
|
|
16
|
+
IPCMessageCMD["SetParameters"] = "set-parameters";
|
|
17
|
+
IPCMessageCMD["ExitedMeeting"] = "exited-meeting";
|
|
18
|
+
return IPCMessageCMD;
|
|
19
|
+
}({});
|
package/lib/electron/logger.js
CHANGED
|
@@ -21,7 +21,7 @@ var LoggerManager = /*#__PURE__*/function () {
|
|
|
21
21
|
function LoggerManager() {
|
|
22
22
|
(0, _classCallCheck2["default"])(this, LoggerManager);
|
|
23
23
|
this.initialize({
|
|
24
|
-
logFilePath: _path["default"].resolve(_electron.app.getPath('logs'), 'logs', '
|
|
24
|
+
logFilePath: _path["default"].resolve(_electron.app.getPath('logs'), 'logs', 'apaas-main.log'),
|
|
25
25
|
console: true
|
|
26
26
|
});
|
|
27
27
|
}
|
package/lib/electron/main.js
CHANGED
|
@@ -17,7 +17,7 @@ var logger = (0, _logger.getLogger)();
|
|
|
17
17
|
var hookWindow = exports.hookWindow = function hookWindow(mainWindow) {
|
|
18
18
|
mainWindow.webContents.addListener('did-create-window', function (window, details) {
|
|
19
19
|
logger.info("browser window is opened, frameName: ".concat(details.frameName));
|
|
20
|
-
var builtinFrameNames = ['device-settings', 'chat', 'live-streaming', 'participant', 'share-screen-selection', 'invite', 'video-window', 'confirm', 'connection-gateway', 'whiteboard', 'progress-dialog', 'operation-waiting-room', 'operation-waiting-room', 'interpreter-setting', 'waiting-room-single-remove', 'waiting-room-all-remove', 'waiting-room-all-admit', 'control-bar', 'show-toast', 'system-preference'];
|
|
20
|
+
var builtinFrameNames = ['device-settings', 'chat', 'live-streaming', 'participant', 'share-screen-selection', 'invite', 'video-window', 'confirm', 'connection-gateway', 'whiteboard', 'progress-dialog', 'operation-waiting-room', 'operation-waiting-room', 'interpreter-setting', 'waiting-room-single-remove', 'waiting-room-all-remove', 'waiting-room-all-admit', 'control-bar', 'show-toast', 'system-preference', 'rename', 'leave-meeting'];
|
|
21
21
|
if (!builtinFrameNames.includes(details.frameName) && !details.frameName.startsWith('widget')) {
|
|
22
22
|
logger.info("frameName [".concat(details.frameName, "] is not in builtinFrameNames, ignore it"));
|
|
23
23
|
return;
|