fcr-ui-scene 3.5.1 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/lib/creator.d.ts +14 -0
  2. package/lib/creator.js +239 -14
  3. package/lib/electron/app.js +0 -21
  4. package/lib/electron/bootstrap-sdk.js +136 -7
  5. package/lib/electron/injections.d.ts +19 -7
  6. package/lib/electron/injections.js +206 -77
  7. package/lib/electron/ipc/ipc.d.ts +26 -0
  8. package/lib/electron/ipc/ipc.js +137 -0
  9. package/lib/electron/ipc/type.d.ts +11 -0
  10. package/lib/electron/ipc/type.js +19 -0
  11. package/lib/electron/logger.js +1 -1
  12. package/lib/electron/main.js +1 -1
  13. package/lib/electron/plugins/meeting-state.d.ts +1 -0
  14. package/lib/electron/plugins/meeting-state.js +3 -3
  15. package/lib/electron/plugins/screenshot.js +2 -2
  16. package/lib/electron/preload.js +67 -5
  17. package/lib/electron/window.js +0 -2
  18. package/lib/global.css +21 -0
  19. package/lib/modules/action-bar/components/apps/index.js +1 -0
  20. package/lib/modules/action-bar/components/apps/useWidgetList.js +1 -1
  21. package/lib/modules/action-bar/components/item/index.d.ts +2 -0
  22. package/lib/modules/action-bar/components/item/index.js +4 -2
  23. package/lib/modules/action-bar/components/leave/index.js +1 -0
  24. package/lib/modules/action-bar/components/more/index.js +1 -0
  25. package/lib/modules/action-bar/components/record/index.js +43 -106
  26. package/lib/modules/action-bar/components/record/popover.d.ts +4 -0
  27. package/lib/modules/action-bar/components/record/popover.js +57 -0
  28. package/lib/modules/action-bar/components/record/stop-record-dialog.js +1 -0
  29. package/lib/modules/action-bar/components/screen-share/index.js +15 -3
  30. package/lib/modules/action-bar/components/screen-share/submenu.js +2 -2
  31. package/lib/modules/action-bar/components/security/index.js +2 -1
  32. package/lib/modules/action-bar/components/smaller/index.js +1 -1
  33. package/lib/modules/action-bar/components/trigger-output-language/index.js +17 -22
  34. package/lib/modules/action-bar/components/trigger-subscribe-language/index.js +2 -1
  35. package/lib/modules/action-bar/index.css +3 -2
  36. package/lib/modules/action-bar/index.js +2 -1
  37. package/lib/modules/action-bar/store.d.ts +5 -0
  38. package/lib/modules/action-bar/store.js +30 -12
  39. package/lib/modules/action-bar/types.d.ts +1 -0
  40. package/lib/modules/chat/chat-room-store.js +1 -1
  41. package/lib/modules/chat/components/chat-bar/index.d.ts +1 -1
  42. package/lib/modules/chat/components/chat-bar/index.js +5 -3
  43. package/lib/modules/chat/components/chat-select/select-item/index.js +1 -1
  44. package/lib/modules/chat/components/message-list/index.js +1 -2
  45. package/lib/modules/chat/components/message-list/message-item/index.d.ts +0 -1
  46. package/lib/modules/chat/components/message-list/message-item/index.js +9 -10
  47. package/lib/modules/chat/index.css +24 -0
  48. package/lib/modules/chat/view.js +13 -3
  49. package/lib/modules/components/device-control/components/carmera/index.js +4 -5
  50. package/lib/modules/components/device-control/components/microphone/index.js +4 -5
  51. package/lib/modules/components/device-control/index.css +6 -3
  52. package/lib/modules/components/leave-meeting/components/assign-host.js +26 -4
  53. package/lib/modules/components/leave-meeting/components/index.css +35 -0
  54. package/lib/modules/components/leave-meeting/index.js +1 -0
  55. package/lib/modules/components/leave-meeting/store.js +25 -67
  56. package/lib/modules/components/member-window/components/member-actions/components/audio-control.js +3 -2
  57. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +1 -1
  58. package/lib/modules/components/member-window/components/member-actions/components/icon-status.js +10 -9
  59. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +2 -2
  60. package/lib/modules/components/member-window/components/member-actions/components/user-info.js +1 -1
  61. package/lib/modules/components/member-window/components/member-actions/index.js +2 -2
  62. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.js +3 -14
  63. package/lib/modules/components/member-window/index.css +18 -7
  64. package/lib/modules/components/member-window/types.d.ts +1 -1
  65. package/lib/modules/components/security-menu/index.css +2 -2
  66. package/lib/modules/components/security-menu/index.js +80 -28
  67. package/lib/modules/components/tab-frame/index.css +1 -1
  68. package/lib/modules/control-bar/components/meeting-details/index.css +1 -1
  69. package/lib/modules/control-bar/components/meeting-details/index.js +15 -9
  70. package/lib/modules/control-bar/components/more-actions/index.js +3 -21
  71. package/lib/modules/control-bar/components/share-state-nav/index.js +4 -20
  72. package/lib/modules/control-bar/index.d.ts +2 -0
  73. package/lib/modules/control-bar/index.js +3 -1
  74. package/lib/modules/control-bar/store.d.ts +11 -2
  75. package/lib/modules/control-bar/store.js +103 -95
  76. package/lib/modules/control-bar/view.js +1 -6
  77. package/lib/modules/device-pretest/audio-preview/speaker-detection.js +1 -1
  78. package/lib/modules/dialog/components/chat/electron.d.ts +1 -3
  79. package/lib/modules/dialog/components/chat/index.js +24 -17
  80. package/lib/modules/dialog/components/confirm-leave-meeting/index.d.ts +6 -0
  81. package/lib/modules/dialog/components/confirm-leave-meeting/index.js +86 -0
  82. package/lib/modules/dialog/components/control-bar/index.d.ts +1 -2
  83. package/lib/modules/dialog/components/control-bar/index.js +5 -17
  84. package/lib/modules/dialog/components/dialog-container/component/body.d.ts +1 -0
  85. package/lib/modules/dialog/components/dialog-container/component/body.js +4 -2
  86. package/lib/modules/dialog/components/dialog-container/index.css +2 -1
  87. package/lib/modules/dialog/components/dialog-container/index.d.ts +1 -0
  88. package/lib/modules/dialog/components/dialog-container/index.js +3 -1
  89. package/lib/modules/dialog/components/participant/index.d.ts +0 -1
  90. package/lib/modules/dialog/components/participant/index.js +15 -24
  91. package/lib/modules/dialog/components/pre-setting/electron.d.ts +2 -0
  92. package/lib/modules/dialog/components/pre-setting/electron.js +51 -0
  93. package/lib/modules/dialog/components/pre-setting/index.css +26 -0
  94. package/lib/modules/dialog/components/pre-setting/index.d.ts +6 -0
  95. package/lib/modules/dialog/components/pre-setting/index.js +38 -0
  96. package/lib/modules/dialog/components/pre-setting-container/component/body.d.ts +8 -0
  97. package/lib/modules/dialog/components/pre-setting-container/component/body.js +80 -0
  98. package/lib/modules/dialog/components/pre-setting-container/index.css +82 -0
  99. package/lib/modules/dialog/components/pre-setting-container/index.d.ts +18 -0
  100. package/lib/modules/dialog/components/pre-setting-container/index.js +117 -0
  101. package/lib/modules/dialog/components/rename/index.d.ts +4 -0
  102. package/lib/modules/dialog/components/rename/index.js +72 -0
  103. package/lib/modules/dialog/components/video-window/index.js +18 -16
  104. package/lib/modules/dialog/components/widget/electron.d.ts +2 -1
  105. package/lib/modules/dialog/components/widget/electron.js +3 -2
  106. package/lib/modules/dialog/components/widget/index.d.ts +2 -1
  107. package/lib/modules/dialog/components/widget/index.js +4 -6
  108. package/lib/modules/dialog/dialogs.d.ts +1 -0
  109. package/lib/modules/dialog/dialogs.js +3 -2
  110. package/lib/modules/dialog/hooks/useElectron.d.ts +2 -0
  111. package/lib/modules/dialog/hooks/useElectron.js +11 -13
  112. package/lib/modules/dialog/index.d.ts +2 -0
  113. package/lib/modules/dialog/index.js +2 -1
  114. package/lib/modules/dialog/store.d.ts +8 -3
  115. package/lib/modules/dialog/store.js +38 -26
  116. package/lib/modules/dialog/type.d.ts +1 -0
  117. package/lib/modules/dialog/view.js +2 -1
  118. package/lib/modules/event-confirm/index.d.ts +2 -0
  119. package/lib/modules/event-confirm/index.js +2 -1
  120. package/lib/modules/event-confirm/store.d.ts +9 -1
  121. package/lib/modules/event-confirm/store.js +94 -8
  122. package/lib/modules/event-confirm/view.js +55 -46
  123. package/lib/modules/{sound-effect → event-sound}/index.d.ts +3 -2
  124. package/lib/modules/{sound-effect → event-sound}/index.js +9 -5
  125. package/lib/modules/event-toast/store.js +2 -0
  126. package/lib/modules/interpreter/dialog-content/index.js +4 -1
  127. package/lib/modules/interpreter/index.d.ts +2 -0
  128. package/lib/modules/interpreter/index.js +2 -1
  129. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/index.js +3 -0
  130. package/lib/modules/interpreter/store.d.ts +2 -2
  131. package/lib/modules/interpreter/store.js +30 -24
  132. package/lib/modules/interpreter/type.d.ts +2 -0
  133. package/lib/modules/invite/components/pstn-invite.js +3 -9
  134. package/lib/modules/invite/components/voip-invite.css +26 -0
  135. package/lib/modules/invite/components/voip-invite.d.ts +1 -0
  136. package/lib/modules/invite/components/voip-invite.js +8 -11
  137. package/lib/modules/invite/index.css +16 -3
  138. package/lib/modules/invite/index.d.ts +2 -1
  139. package/lib/modules/invite/index.js +2 -1
  140. package/lib/modules/invite/store.d.ts +5 -1
  141. package/lib/modules/invite/store.js +8 -1
  142. package/lib/modules/layout/components/Carousel.d.ts +1 -1
  143. package/lib/modules/layout/components/Carousel.js +16 -118
  144. package/lib/modules/layout/components/CommonVideoRenderer.d.ts +13 -0
  145. package/lib/modules/layout/components/CommonVideoRenderer.js +214 -0
  146. package/lib/modules/layout/components/Gallery.d.ts +1 -0
  147. package/lib/modules/layout/components/Gallery.js +62 -205
  148. package/lib/modules/layout/components/index.css +17 -34
  149. package/lib/modules/layout/index.d.ts +2 -0
  150. package/lib/modules/layout/index.js +2 -1
  151. package/lib/modules/layout/store.d.ts +5 -2
  152. package/lib/modules/layout/store.js +47 -39
  153. package/lib/modules/layout/type.d.ts +4 -0
  154. package/lib/modules/layout/type.js +6 -1
  155. package/lib/modules/live-streaming/store.d.ts +1 -0
  156. package/lib/modules/live-streaming/store.js +19 -8
  157. package/lib/modules/participant/components/confirm-input/index.d.ts +4 -4
  158. package/lib/modules/participant/components/confirm-input/index.js +74 -6
  159. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.css +27 -3
  160. package/lib/modules/participant/components/participants/components/footer/components/footer/index.css +4 -0
  161. package/lib/modules/participant/components/participants/components/footer/components/footer/index.js +3 -2
  162. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.css +4 -3
  163. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.js +1 -0
  164. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.css +9 -1
  165. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.js +1 -1
  166. package/lib/modules/participant/components/participants/components/participants/index.css +1 -0
  167. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.css +18 -0
  168. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.js +12 -5
  169. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.js +1 -8
  170. package/lib/modules/participant/index.css +6 -0
  171. package/lib/modules/participant/index.d.ts +1 -0
  172. package/lib/modules/participant/index.js +9 -0
  173. package/lib/modules/participant/store.d.ts +6 -0
  174. package/lib/modules/participant/store.js +130 -96
  175. package/lib/modules/pc-audio-connect/store.js +1 -1
  176. package/lib/modules/phone-audio-connect/index.d.ts +2 -0
  177. package/lib/modules/phone-audio-connect/index.js +2 -1
  178. package/lib/modules/phone-audio-connect/store.d.ts +4 -1
  179. package/lib/modules/phone-audio-connect/store.js +4 -2
  180. package/lib/modules/setting/audio-settings/audio-settings.js +70 -48
  181. package/lib/modules/setting/audio-settings/index.css +23 -6
  182. package/lib/modules/setting/general-settings/general-settings.d.ts +1 -2
  183. package/lib/modules/setting/general-settings/general-settings.js +111 -37
  184. package/lib/modules/setting/general-settings/index.css +15 -0
  185. package/lib/modules/setting/index.d.ts +4 -1
  186. package/lib/modules/setting/index.js +7 -4
  187. package/lib/modules/setting/state/index.js +1 -1
  188. package/lib/modules/setting/store.d.ts +24 -11
  189. package/lib/modules/setting/store.js +203 -142
  190. package/lib/modules/setting/video-settings/index.css +13 -2
  191. package/lib/modules/setting/video-settings/video-settings-basic.js +18 -27
  192. package/lib/modules/setting/video-settings/video-settings.d.ts +0 -2
  193. package/lib/modules/setting/video-settings/video-settings.js +3 -2
  194. package/lib/modules/setting/view.d.ts +11 -2
  195. package/lib/modules/setting/view.js +93 -71
  196. package/lib/modules/share-screen/components/selection/index.js +6 -2
  197. package/lib/modules/share-screen/index.d.ts +4 -1
  198. package/lib/modules/share-screen/index.js +3 -1
  199. package/lib/modules/share-screen/store.d.ts +15 -5
  200. package/lib/modules/share-screen/store.js +105 -59
  201. package/lib/modules/share-screen/view.js +1 -1
  202. package/lib/modules/state-bar/index.css +4 -2
  203. package/lib/modules/state-bar/index.d.ts +2 -0
  204. package/lib/modules/state-bar/index.js +2 -1
  205. package/lib/modules/state-bar/layout-config.js +1 -0
  206. package/lib/modules/state-bar/live-streaming-state.js +1 -0
  207. package/lib/modules/state-bar/meeting-detail.css +10 -1
  208. package/lib/modules/state-bar/meeting-details.js +42 -26
  209. package/lib/modules/state-bar/meeting-network-state.css +8 -0
  210. package/lib/modules/state-bar/meeting-time.js +9 -20
  211. package/lib/modules/state-bar/store.d.ts +5 -1
  212. package/lib/modules/state-bar/store.js +10 -3
  213. package/lib/modules/state-bar/view.js +17 -6
  214. package/lib/modules/video-window/components/members/index.js +0 -3
  215. package/lib/modules/waiting-room-layout/index.css +13 -0
  216. package/lib/modules/waiting-room-layout/index.d.ts +2 -1
  217. package/lib/modules/waiting-room-layout/index.js +2 -1
  218. package/lib/modules/waiting-room-layout/store.d.ts +12 -1
  219. package/lib/modules/waiting-room-layout/store.js +42 -6
  220. package/lib/modules/waiting-room-layout/view.js +22 -5
  221. package/lib/modules/whiteboard/components/control-bar/index.css +1 -1
  222. package/lib/modules/whiteboard/components/switch-theme/libs.d.ts +1 -1
  223. package/lib/modules/whiteboard/components/switch-theme/libs.js +3 -1
  224. package/lib/modules/whiteboard/components/toolbar/ style.css +1 -0
  225. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/panel.js +1 -0
  226. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/picker.js +1 -0
  227. package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.js +3 -14
  228. package/lib/modules/whiteboard/components/toolbar/components/expansion/index.d.ts +1 -0
  229. package/lib/modules/whiteboard/components/toolbar/components/expansion/index.js +83 -0
  230. package/lib/modules/whiteboard/components/toolbar/components/extra-tool-picker.js +2 -2
  231. package/lib/modules/whiteboard/components/toolbar/components/history.js +3 -3
  232. package/lib/modules/whiteboard/components/toolbar/components/item/index.d.ts +1 -0
  233. package/lib/modules/whiteboard/components/toolbar/components/item/index.js +42 -0
  234. package/lib/modules/whiteboard/components/toolbar/components/pen-picker.js +2 -2
  235. package/lib/modules/whiteboard/components/toolbar/components/screen-capture-picker.js +2 -2
  236. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +3 -3
  237. package/lib/modules/whiteboard/components/toolbar/hooks/index.js +6 -6
  238. package/lib/modules/whiteboard/components/toolbar/index.js +9 -113
  239. package/lib/modules/whiteboard/components/toolbar/store.d.ts +18 -0
  240. package/lib/modules/whiteboard/components/toolbar/store.js +276 -83
  241. package/lib/modules/whiteboard/context.d.ts +1 -2
  242. package/lib/modules/whiteboard/index.d.ts +1 -14
  243. package/lib/modules/whiteboard/index.js +131 -426
  244. package/lib/modules/whiteboard/view.js +12 -10
  245. package/lib/modules/widget/sdk.js +2 -1
  246. package/lib/object-manager.d.ts +8 -0
  247. package/lib/object-manager.js +75 -0
  248. package/lib/plugins/browser-runtime-plugin.js +19 -14
  249. package/lib/providers/ability-provider.d.ts +8 -0
  250. package/lib/providers/ability-provider.js +14 -0
  251. package/lib/providers/device-privilege-provider.d.ts +1 -0
  252. package/lib/providers/device-privilege-provider.js +53 -75
  253. package/lib/providers/device-provider.d.ts +18 -8
  254. package/lib/providers/device-provider.js +397 -209
  255. package/lib/providers/device-stream-provider.js +0 -4
  256. package/lib/providers/dialog-provider.d.ts +1 -0
  257. package/lib/providers/dialog-provider.js +4 -18
  258. package/lib/providers/event-provider.js +45 -2
  259. package/lib/providers/interpreter-provider.d.ts +4 -0
  260. package/lib/providers/interpreter-provider.js +166 -137
  261. package/lib/providers/message-provider.js +44 -2
  262. package/lib/providers/privilege-provider.d.ts +33 -0
  263. package/lib/providers/privilege-provider.js +120 -45
  264. package/lib/providers/room-provider.d.ts +12 -10
  265. package/lib/providers/room-provider.js +162 -262
  266. package/lib/providers/screen-share-provider.d.ts +4 -0
  267. package/lib/providers/screen-share-provider.js +3 -6
  268. package/lib/providers/widget-provider.js +6 -4
  269. package/lib/runtime.d.ts +20 -8
  270. package/lib/scenes/main-scene.d.ts +2 -0
  271. package/lib/scenes/main-scene.js +95 -37
  272. package/lib/scenes/waiting-scene.js +16 -13
  273. package/lib/schema.d.ts +55 -32
  274. package/lib/schema.js +23 -9
  275. package/lib/shared-data-source/config.d.ts +6 -2
  276. package/lib/shared-data-source/config.js +81 -10
  277. package/lib/shared-data-source/member-data.d.ts +16 -20
  278. package/lib/shared-data-source/member-data.js +121 -110
  279. package/lib/shared-data-source/screen-share-data-source.d.ts +37 -0
  280. package/lib/shared-data-source/screen-share-data-source.js +134 -0
  281. package/lib/shared-data-source/security-data.d.ts +1 -0
  282. package/lib/shared-data-source/security-data.js +3 -5
  283. package/lib/shared-data-source/setting.d.ts +1 -0
  284. package/lib/shared-data-source/setting.js +33 -17
  285. package/lib/shared-data-source/video-window.d.ts +3 -3
  286. package/lib/shared-data-source/video-window.js +55 -38
  287. package/lib/translations/enUS.d.ts +48 -1
  288. package/lib/translations/enUS.js +101 -17
  289. package/lib/translations/zhCN.d.ts +48 -1
  290. package/lib/translations/zhCN.js +88 -4
  291. package/lib/type.d.ts +40 -20
  292. package/lib/type.js +14 -1
  293. package/lib/ui-manager.d.ts +11 -9
  294. package/lib/ui-manager.js +118 -29
  295. package/lib/ui-scene.d.ts +7 -4
  296. package/lib/ui-scene.js +111 -128
  297. package/lib/utilities/constant.d.ts +3 -1
  298. package/lib/utilities/constant.js +2 -0
  299. package/lib/utilities/copyText.js +15 -11
  300. package/lib/utilities/default-config.d.ts +2 -0
  301. package/lib/utilities/default-config.js +11 -5
  302. package/lib/utilities/i18n-common-data.d.ts +2 -0
  303. package/lib/utilities/i18n-common-data.js +15 -0
  304. package/lib/utilities/logger.d.ts +0 -1
  305. package/lib/utilities/logger.js +3 -4
  306. package/lib/utilities/renderer.d.ts +0 -9
  307. package/lib/utilities/renderer.js +1 -70
  308. package/lib/utilities/screen.js +3 -1
  309. package/lib/utilities/setting-config-storage.d.ts +6 -1
  310. package/lib/utilities/setting-config-storage.js +21 -4
  311. package/lib/utilities/tools.d.ts +7 -6
  312. package/lib/utilities/tools.js +56 -44
  313. package/lib/utilities/ui-resources.d.ts +6 -0
  314. package/lib/utilities/ui-resources.js +47 -9
  315. package/lib/waiting-room-control-manager.d.ts +4 -4
  316. package/lib/waiting-room-control-manager.js +29 -9
  317. package/package.json +6 -6
  318. package/public/assets/browser/images/default1.jpg +0 -0
  319. package/public/assets/browser/images/default2.jpg +0 -0
  320. package/public/assets/browser/images/default3.jpg +0 -0
  321. package/public/assets/browser/images/default4.jpg +0 -0
  322. package/public/assets/browser/images/default5.jpg +0 -0
  323. package/public/assets/browser/images/default6.jpg +0 -0
  324. package/public/assets/browser/images/default7.jpg +0 -0
  325. package/public/assets/browser/sound_effects/pretest.mp3 +0 -0
  326. package/public/assets/browser/sound_effects/recording_started.mp3 +0 -0
  327. package/public/assets/browser/sound_effects/remote_user_joined.mp3 +0 -0
  328. package/public/assets/browser/sound_effects/speaker_test.mp3 +0 -0
  329. package/public/assets/browser/videos/default8.mp4 +0 -0
  330. package/public/assets/browser/videos/default9.mp4 +0 -0
  331. package/public/assets/electron/images/default1.jpg +0 -0
  332. package/public/assets/electron/images/default2.jpg +0 -0
  333. package/public/assets/electron/sound_effects/pretest.mp3 +0 -0
  334. package/public/assets/electron/videos/default8.mp4 +0 -0
  335. package/public/index.html +103 -82
  336. package/lib/hooks/meeting-time.d.ts +0 -15
  337. package/lib/hooks/meeting-time.js +0 -92
  338. package/lib/login-confirm-dialog.d.ts +0 -13
  339. package/lib/login-confirm-dialog.js +0 -85
  340. package/lib/modules/action-bar/components/apps/appitems.d.ts +0 -3
  341. package/lib/modules/action-bar/components/apps/appitems.js +0 -45
  342. package/lib/modules/components/member-window/components/member-board.d.ts +0 -2
  343. package/lib/modules/components/member-window/components/member-board.js +0 -63
  344. package/lib/modules/dialog/components/system-preference/bg1.png +0 -0
  345. package/lib/modules/dialog/components/system-preference/bg2.png +0 -0
  346. package/lib/modules/dialog/types/index.d.ts +0 -70
  347. package/lib/modules/participant/components/attendee/components/microphone-indicator/index.d.ts +0 -6
  348. package/lib/modules/participant/components/attendee/components/microphone-indicator/index.js +0 -28
  349. package/lib/modules/participant/components/attendee/components/user-avatar/index.d.ts +0 -7
  350. package/lib/modules/participant/components/attendee/components/user-avatar/index.js +0 -39
  351. package/lib/modules/participant/components/attendee/index.css +0 -69
  352. package/lib/modules/participant/components/attendee/index.d.ts +0 -4
  353. package/lib/modules/participant/components/attendee/index.js +0 -337
  354. package/lib/modules/participant/components/drop-menu/index.css +0 -60
  355. package/lib/modules/participant/components/drop-menu/index.d.ts +0 -2
  356. package/lib/modules/participant/components/drop-menu/index.js +0 -189
  357. package/lib/modules/participant/components/footer/buttons.d.ts +0 -6
  358. package/lib/modules/participant/components/footer/buttons.js +0 -52
  359. package/lib/modules/participant/components/footer/index.d.ts +0 -4
  360. package/lib/modules/participant/components/footer/index.js +0 -37
  361. package/lib/modules/participant/components/merge/index.d.ts +0 -11
  362. package/lib/modules/participant/components/merge/index.js +0 -49
  363. package/lib/modules/participant/components/rename/index.d.ts +0 -4
  364. package/lib/modules/participant/components/rename/index.js +0 -45
  365. package/lib/modules/participant/components/user-action/index.d.ts +0 -17
  366. package/lib/modules/participant/components/user-action/index.js +0 -169
  367. package/lib/modules/video-window/deviceState/index.d.ts +0 -16
  368. package/lib/modules/video-window/deviceState/index.js +0 -75
  369. package/lib/modules/video-window/members/index.css +0 -51
  370. package/lib/modules/video-window/members/index.d.ts +0 -2
  371. package/lib/modules/video-window/members/index.js +0 -157
  372. package/lib/modules/video-window/speaking/index.css +0 -69
  373. package/lib/modules/video-window/speaking/index.d.ts +0 -3
  374. package/lib/modules/video-window/speaking/index.js +0 -57
  375. package/lib/modules/video-window/topControl/index.css +0 -35
  376. package/lib/modules/video-window/topControl/index.d.ts +0 -3
  377. package/lib/modules/video-window/topControl/index.js +0 -92
  378. /package/lib/modules/{sound-effect → event-sound}/sound-effect-player.d.ts +0 -0
  379. /package/lib/modules/{sound-effect → event-sound}/sound-effect-player.js +0 -0
@@ -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.getRendererProcessUsage = exports.getNetworkType = exports.getMediaSourceIdList = exports.getLaunchOptions = exports.getBundleType = exports.getBrowserWindowById = exports.getAssetUrl = exports.fileToBase64 = exports.closeRendererWindow = exports.close = exports.checkMediaPermission = exports.captureScreen = exports.browserWindow = exports.addEventListener = void 0;
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 getAssetUrl = exports.getAssetUrl = function getAssetUrl(path) {
462
- var isDevMode = process.env.DEV === 'true';
463
- if (isDevMode) {
464
- return _path2["default"].resolve(process.cwd(), 'public', path);
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 _ref10 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9(zipFile, outputPath, type) {
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 _callee9$(_context9) {
509
- while (1) switch (_context9.prev = _context9.next) {
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
- _context9.next = 3;
513
+ _context8.next = 3;
513
514
  return _jszip["default"].loadAsync(zipBuffer);
514
515
  case 3:
515
- zip = _context9.sent;
516
+ zip = _context8.sent;
516
517
  fileNames = [];
517
- _context9.next = 7;
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 _ref11 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8(filenameTmp) {
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 _callee8$(_context8) {
531
- while (1) switch (_context8.prev = _context8.next) {
531
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
532
+ while (1) switch (_context7.prev = _context7.next) {
532
533
  case 0:
533
- _context8.next = 2;
534
+ _context7.next = 2;
534
535
  return zip.files[filenameTmp].async('nodebuffer');
535
536
  case 2:
536
- fileData = _context8.sent;
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 _context8.stop();
547
+ return _context7.stop();
547
548
  }
548
- }, _callee8);
549
+ }, _callee7);
549
550
  }));
550
551
  return function (_x10) {
551
- return _ref11.apply(this, arguments);
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 _context9.abrupt("return", fileNames);
558
+ return _context8.abrupt("return", fileNames);
558
559
  case 9:
559
560
  case "end":
560
- return _context9.stop();
561
+ return _context8.stop();
561
562
  }
562
- }, _callee9);
563
+ }, _callee8);
563
564
  }));
564
565
  return function unZipAndSaveFile(_x7, _x8, _x9) {
565
- return _ref10.apply(this, arguments);
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 _callee11(url, destination) {
609
- return _regenerator["default"].wrap(function _callee11$(_context11) {
610
- while (1) switch (_context11.prev = _context11.next) {
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 _context11.abrupt("return", new Promise(function (resolve, reject) {
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 _context11.stop();
637
+ return _context13.stop();
637
638
  }
638
- }, _callee11);
639
+ }, _callee13);
639
640
  }));
640
641
  return _downloadFile.apply(this, arguments);
641
642
  }
642
643
  var getResourceByFileType = exports.getResourceByFileType = /*#__PURE__*/function () {
643
- var _ref12 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee10(url, md5Url, type) {
644
- var resourcePath, extensionMap, extensions, cachedFiles, zipFileName, zipCacheDir, zipFiles, tempZipPath, zipPath;
645
- return _regenerator["default"].wrap(function _callee10$(_context10) {
646
- while (1) switch (_context10.prev = _context10.next) {
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
- _context10.next = 6;
658
+ _context9.next = 7;
658
659
  break;
659
660
  }
660
- return _context10.abrupt("return", cachedFiles);
661
- case 6:
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
- _context10.next = 16;
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
- _context10.next = 14;
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 14:
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 16:
684
+ case 20:
679
685
  if (!(!zipFiles || zipFiles.length <= 0)) {
680
- _context10.next = 18;
686
+ _context9.next = 23;
681
687
  break;
682
688
  }
683
- return _context10.abrupt("return", []);
684
- case 18:
685
- _context10.next = 20;
686
- return unZipAndSaveFile(zipFiles[0], resourcePath, type);
687
- case 20:
688
- return _context10.abrupt("return", _context10.sent);
689
- case 21:
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 _context10.stop();
701
+ return _context9.stop();
692
702
  }
693
- }, _callee10);
703
+ }, _callee9);
694
704
  }));
695
705
  return function getResourceByFileType(_x13, _x14, _x15) {
696
- return _ref12.apply(this, arguments);
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
+ }({});
@@ -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', 'app.log'),
24
+ logFilePath: _path["default"].resolve(_electron.app.getPath('logs'), 'logs', 'apaas-main.log'),
25
25
  console: true
26
26
  });
27
27
  }
@@ -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;
@@ -1,2 +1,3 @@
1
1
  import { BrowserWindow } from 'electron';
2
+ export declare let isInMeeting: 0 | 1;
2
3
  export declare const listenMeetingState: (window: BrowserWindow) => void;