fcr-ui-scene 3.4.5 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. package/lib/base.js +4 -1
  2. package/lib/creator.d.ts +4 -1
  3. package/lib/creator.js +66 -3
  4. package/lib/electron/app.js +0 -3
  5. package/lib/electron/bootstrap-dev.js +2 -0
  6. package/lib/electron/bootstrap-sdk.js +2 -0
  7. package/lib/electron/main.js +14 -3
  8. package/lib/electron/plugins/devtool-shortcut.js +5 -0
  9. package/lib/electron/plugins/screenshot.js +4 -1
  10. package/lib/modules/action-bar/components/apps/app-item/index.css +3 -3
  11. package/lib/modules/action-bar/components/apps/app-item/index.js +35 -24
  12. package/lib/modules/action-bar/components/apps/app-list.d.ts +3 -0
  13. package/lib/modules/action-bar/components/apps/app-list.js +45 -0
  14. package/lib/modules/action-bar/components/apps/index.css +1 -0
  15. package/lib/modules/action-bar/components/apps/index.js +7 -4
  16. package/lib/modules/action-bar/components/apps/useAppItemOptions.d.ts +10 -2
  17. package/lib/modules/action-bar/components/apps/useAppItemOptions.js +10 -6
  18. package/lib/modules/action-bar/components/apps/useBeautyBackground.d.ts +1 -1
  19. package/lib/modules/action-bar/components/apps/useBeautyBackground.js +2 -2
  20. package/lib/modules/action-bar/components/apps/useInterpreter.d.ts +1 -1
  21. package/lib/modules/action-bar/components/apps/useInterpreter.js +6 -6
  22. package/lib/modules/action-bar/components/apps/useLiveStreaming.d.ts +1 -1
  23. package/lib/modules/action-bar/components/apps/useLiveStreaming.js +2 -2
  24. package/lib/modules/action-bar/components/apps/useWidgetList.d.ts +10 -0
  25. package/lib/modules/action-bar/components/apps/useWidgetList.js +38 -0
  26. package/lib/modules/action-bar/components/chat/index.css +8 -0
  27. package/lib/modules/action-bar/components/chat/index.js +2 -1
  28. package/lib/modules/action-bar/components/collapse/index.d.ts +8 -6
  29. package/lib/modules/action-bar/components/collapse/index.js +60 -74
  30. package/lib/modules/action-bar/components/interpreter/index.js +3 -3
  31. package/lib/modules/action-bar/components/item/index.js +1 -1
  32. package/lib/modules/action-bar/components/more/index.js +13 -7
  33. package/lib/modules/action-bar/components/notification-bar/index.d.ts +1 -1
  34. package/lib/modules/action-bar/components/notification-bar/index.js +13 -6
  35. package/lib/modules/action-bar/components/participants/index.js +1 -1
  36. package/lib/modules/action-bar/components/screen-share/index.js +1 -1
  37. package/lib/modules/action-bar/components/screen-share/submenu.js +55 -18
  38. package/lib/modules/action-bar/components/security/index.js +8 -2
  39. package/lib/modules/action-bar/components/trigger-output-language/index.js +68 -55
  40. package/lib/modules/action-bar/components/trigger-subscribe-language/index.js +35 -18
  41. package/lib/modules/action-bar/index.css +8 -0
  42. package/lib/modules/action-bar/index.d.ts +8 -0
  43. package/lib/modules/action-bar/index.js +6 -3
  44. package/lib/modules/action-bar/store.d.ts +37 -22
  45. package/lib/modules/action-bar/store.js +275 -375
  46. package/lib/modules/action-bar/types.d.ts +8 -13
  47. package/lib/modules/action-bar/view.js +3 -8
  48. package/lib/modules/audio-stream/index.d.ts +6 -1
  49. package/lib/modules/audio-stream/index.js +77 -11
  50. package/lib/modules/chat/chat-room-store.d.ts +4 -7
  51. package/lib/modules/chat/chat-room-store.js +39 -62
  52. package/lib/modules/chat/components/chat-action/index.js +2 -2
  53. package/lib/modules/chat/components/chat-bar/index.css +4 -0
  54. package/lib/modules/chat/components/chat-bar/index.d.ts +1 -1
  55. package/lib/modules/chat/components/chat-bar/index.js +18 -16
  56. package/lib/modules/chat/components/chat-select/index.js +16 -147
  57. package/lib/modules/chat/components/chat-select/select-input/index.d.ts +7 -0
  58. package/lib/modules/chat/components/chat-select/select-input/index.js +35 -0
  59. package/lib/modules/chat/components/chat-select/select-item/index.d.ts +12 -0
  60. package/lib/modules/chat/components/chat-select/select-item/index.js +153 -0
  61. package/lib/modules/chat/components/chat-tabs/index.d.ts +2 -0
  62. package/lib/modules/chat/components/chat-tabs/index.js +61 -0
  63. package/lib/modules/chat/components/message-list/chat-empty/index.d.ts +2 -0
  64. package/lib/modules/chat/components/message-list/chat-empty/index.js +26 -0
  65. package/lib/modules/chat/components/message-list/history-unread-message-button/index.d.ts +7 -0
  66. package/lib/modules/chat/components/message-list/history-unread-message-button/index.js +55 -0
  67. package/lib/modules/chat/components/message-list/index.d.ts +1 -1
  68. package/lib/modules/chat/components/message-list/index.js +55 -359
  69. package/lib/modules/chat/components/message-list/message-item/index.d.ts +15 -0
  70. package/lib/modules/chat/components/message-list/message-item/index.js +309 -0
  71. package/lib/modules/chat/components/message-list/scroll-bottom-button/index.d.ts +9 -0
  72. package/lib/modules/chat/components/message-list/scroll-bottom-button/index.js +67 -0
  73. package/lib/modules/chat/index.css +9 -0
  74. package/lib/modules/chat/index.d.ts +6 -0
  75. package/lib/modules/chat/index.js +4 -1
  76. package/lib/modules/chat/store.d.ts +17 -7
  77. package/lib/modules/chat/store.js +75 -72
  78. package/lib/modules/chat/types.d.ts +7 -7
  79. package/lib/modules/chat/types.js +2 -1
  80. package/lib/modules/chat/view.js +22 -102
  81. package/lib/modules/components/device-control/store.d.ts +4 -3
  82. package/lib/modules/components/device-control/store.js +13 -24
  83. package/lib/modules/components/leave-meeting/components/assign-host.js +17 -2
  84. package/lib/modules/components/leave-meeting/index.js +8 -7
  85. package/lib/modules/components/leave-meeting/store.d.ts +15 -7
  86. package/lib/modules/components/leave-meeting/store.js +116 -95
  87. package/lib/modules/components/member-window/components/member-actions/components/audio-control.d.ts +6 -0
  88. package/lib/modules/components/member-window/components/member-actions/components/audio-control.js +36 -0
  89. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.d.ts +40 -0
  90. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +170 -0
  91. package/lib/modules/components/member-window/components/member-actions/components/icon-status.d.ts +11 -0
  92. package/lib/modules/components/member-window/components/member-actions/components/icon-status.js +105 -0
  93. package/lib/modules/components/member-window/components/member-actions/components/layout/index.d.ts +9 -0
  94. package/lib/modules/components/member-window/components/member-actions/components/layout/index.js +42 -0
  95. package/lib/modules/components/member-window/components/member-actions/components/more-actions.d.ts +11 -0
  96. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +157 -0
  97. package/lib/modules/components/member-window/components/member-actions/components/share-status.d.ts +2 -0
  98. package/lib/modules/components/member-window/components/member-actions/components/share-status.js +34 -0
  99. package/lib/modules/components/member-window/components/member-actions/components/user-info.d.ts +16 -0
  100. package/lib/modules/components/member-window/components/member-actions/components/user-info.js +130 -0
  101. package/lib/modules/components/member-window/components/member-actions/components/user-tag.d.ts +12 -0
  102. package/lib/modules/components/member-window/components/member-actions/components/user-tag.js +57 -0
  103. package/lib/modules/components/member-window/components/member-actions/index.d.ts +3 -0
  104. package/lib/modules/components/member-window/components/member-actions/index.js +122 -0
  105. package/lib/modules/components/member-window/components/member-actions/libs/index.d.ts +2 -0
  106. package/lib/modules/components/member-window/components/member-actions/libs/index.js +24 -0
  107. package/lib/modules/components/member-window/components/member-actions/provider.d.ts +21 -0
  108. package/lib/modules/components/member-window/components/member-actions/provider.js +77 -0
  109. package/lib/modules/components/member-window/components/member-actions/store.d.ts +48 -0
  110. package/lib/modules/components/member-window/components/member-actions/store.js +307 -0
  111. package/lib/modules/components/member-window/components/member-board.d.ts +2 -0
  112. package/lib/modules/components/member-window/components/member-board.js +63 -0
  113. package/lib/modules/components/member-window/components/mic-volume.d.ts +2 -0
  114. package/lib/modules/components/member-window/components/mic-volume.js +23 -0
  115. package/lib/modules/components/member-window/components/video-player/components/local-video-player.d.ts +4 -0
  116. package/lib/modules/components/member-window/components/video-player/components/local-video-player.js +40 -0
  117. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.d.ts +8 -0
  118. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.js +62 -0
  119. package/lib/modules/components/member-window/components/video-player/index.d.ts +9 -0
  120. package/lib/modules/components/member-window/components/video-player/index.js +38 -0
  121. package/lib/modules/components/member-window/index.css +22 -2
  122. package/lib/modules/components/member-window/index.d.ts +10 -75
  123. package/lib/modules/components/member-window/index.js +20 -738
  124. package/lib/modules/components/member-window/types.d.ts +79 -0
  125. package/lib/modules/components/member-window/types.js +6 -0
  126. package/lib/modules/components/security-menu/index.css +0 -2
  127. package/lib/modules/components/security-menu/index.d.ts +5 -1
  128. package/lib/modules/components/security-menu/index.js +37 -59
  129. package/lib/modules/connection-gateway/index.d.ts +6 -0
  130. package/lib/modules/connection-gateway/index.js +4 -1
  131. package/lib/modules/connection-gateway/store.d.ts +12 -3
  132. package/lib/modules/connection-gateway/store.js +29 -27
  133. package/lib/modules/control-bar/components/meeting-details/index.js +11 -17
  134. package/lib/modules/control-bar/components/more-actions/index.js +5 -4
  135. package/lib/modules/control-bar/components/share-state-nav/index.js +22 -10
  136. package/lib/modules/control-bar/index.css +1 -2
  137. package/lib/modules/control-bar/index.d.ts +14 -0
  138. package/lib/modules/control-bar/index.js +10 -4
  139. package/lib/modules/control-bar/store.d.ts +40 -20
  140. package/lib/modules/control-bar/store.js +156 -191
  141. package/lib/modules/control-bar/view.js +65 -25
  142. package/lib/modules/device-pretest/audio-preview/microphone-detection.js +1 -1
  143. package/lib/modules/dialog/components/control-bar/index.d.ts +1 -1
  144. package/lib/modules/dialog/components/control-bar/index.js +43 -43
  145. package/lib/modules/dialog/components/device-setting/index.js +2 -1
  146. package/lib/modules/dialog/components/dialog-container/component/body.d.ts +1 -0
  147. package/lib/modules/dialog/components/dialog-container/component/body.js +3 -2
  148. package/lib/modules/dialog/components/dialog-container/index.d.ts +2 -0
  149. package/lib/modules/dialog/components/dialog-container/index.js +19 -13
  150. package/lib/modules/dialog/components/live-streaming/index.js +4 -2
  151. package/lib/modules/dialog/components/participant/index.js +2 -2
  152. package/lib/modules/dialog/components/share-screen-selection/index.js +3 -1
  153. package/lib/modules/dialog/components/system-preference/assets/bg1.png +0 -0
  154. package/lib/modules/dialog/components/system-preference/assets/bg2.png +0 -0
  155. package/lib/modules/dialog/components/system-preference/assets/fcr_png_host.png +0 -0
  156. package/lib/modules/dialog/components/system-preference/electron.js +6 -6
  157. package/lib/modules/dialog/components/system-preference/index.css +3 -0
  158. package/lib/modules/dialog/components/system-preference/index.d.ts +17 -2
  159. package/lib/modules/dialog/components/system-preference/index.js +47 -55
  160. package/lib/modules/dialog/components/video-window/index.d.ts +1 -1
  161. package/lib/modules/dialog/components/video-window/index.js +216 -101
  162. package/lib/modules/dialog/components/widget/electron.d.ts +5 -0
  163. package/lib/modules/dialog/components/widget/electron.js +37 -0
  164. package/lib/modules/dialog/components/widget/index.d.ts +6 -0
  165. package/lib/modules/dialog/components/widget/index.js +43 -0
  166. package/lib/modules/dialog/hooks/useElectron.d.ts +7 -0
  167. package/lib/modules/dialog/hooks/useElectron.js +226 -28
  168. package/lib/modules/dialog/index.css +1 -11
  169. package/lib/modules/dialog/index.d.ts +9 -6
  170. package/lib/modules/dialog/index.js +12 -12
  171. package/lib/modules/dialog/store.d.ts +26 -10
  172. package/lib/modules/dialog/store.js +151 -82
  173. package/lib/modules/dialog/type.d.ts +84 -0
  174. package/lib/modules/dialog/type.js +6 -0
  175. package/lib/modules/dialog/view.d.ts +1 -4
  176. package/lib/modules/dialog/view.js +12 -9
  177. package/lib/modules/event-confirm/index.css +11 -0
  178. package/lib/modules/event-confirm/index.d.ts +6 -0
  179. package/lib/modules/event-confirm/index.js +3 -2
  180. package/lib/modules/event-confirm/store.d.ts +10 -4
  181. package/lib/modules/event-confirm/store.js +91 -32
  182. package/lib/modules/event-confirm/view.js +63 -24
  183. package/lib/modules/event-toast/store.js +4 -2
  184. package/lib/modules/interpreter/action/edit-btn/index.js +5 -5
  185. package/lib/modules/interpreter/action/switch-btn/index.js +7 -7
  186. package/lib/modules/interpreter/index.d.ts +5 -1
  187. package/lib/modules/interpreter/index.js +4 -2
  188. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/index.js +3 -3
  189. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-user/index.js +6 -5
  190. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-user/option-Item.js +2 -2
  191. package/lib/modules/interpreter/interpreter-list/interpreter-item/index.js +2 -2
  192. package/lib/modules/interpreter/store.d.ts +8 -5
  193. package/lib/modules/interpreter/store.js +90 -39
  194. package/lib/modules/interpreter/type.d.ts +5 -1
  195. package/lib/modules/interpreter/utils.d.ts +0 -1
  196. package/lib/modules/interpreter/utils.js +2 -23
  197. package/lib/modules/interpreter/view.js +2 -6
  198. package/lib/modules/invite/index.d.ts +4 -0
  199. package/lib/modules/invite/index.js +3 -1
  200. package/lib/modules/invite/store.d.ts +11 -2
  201. package/lib/modules/invite/store.js +27 -4
  202. package/lib/modules/layout/components/Aside.js +1 -1
  203. package/lib/modules/layout/components/Carousel.js +36 -14
  204. package/lib/modules/layout/components/Gallery.js +33 -11
  205. package/lib/modules/layout/index.css +2 -2
  206. package/lib/modules/layout/index.d.ts +6 -0
  207. package/lib/modules/layout/index.js +4 -1
  208. package/lib/modules/layout/store.d.ts +23 -10
  209. package/lib/modules/layout/store.js +185 -163
  210. package/lib/modules/layout/type.d.ts +2 -0
  211. package/lib/modules/live-streaming/index.d.ts +2 -0
  212. package/lib/modules/live-streaming/index.js +2 -2
  213. package/lib/modules/live-streaming/store.d.ts +4 -8
  214. package/lib/modules/live-streaming/store.js +9 -19
  215. package/lib/modules/notification/index.css +17 -0
  216. package/lib/modules/notification/store.js +4 -2
  217. package/lib/modules/notification/view.js +7 -2
  218. package/lib/modules/offscreen-pulling/index.d.ts +1 -0
  219. package/lib/modules/offscreen-pulling/index.js +4 -0
  220. package/lib/modules/participant/components/confirm-input/index.d.ts +6 -0
  221. package/lib/modules/participant/components/confirm-input/index.js +50 -0
  222. package/lib/modules/participant/components/mute-all/index.d.ts +3 -7
  223. package/lib/modules/participant/components/mute-all/index.js +21 -33
  224. package/lib/modules/participant/components/participants/components/footer/components/buttons.d.ts +6 -0
  225. package/lib/modules/participant/components/participants/components/footer/components/buttons.js +52 -0
  226. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.css +60 -0
  227. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.d.ts +2 -0
  228. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.js +166 -0
  229. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/util.d.ts +5 -0
  230. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/util.js +28 -0
  231. package/lib/modules/participant/components/participants/components/footer/components/footer/index.css +13 -0
  232. package/lib/modules/participant/components/participants/components/footer/components/footer/index.d.ts +5 -0
  233. package/lib/modules/participant/components/participants/components/footer/components/footer/index.js +242 -0
  234. package/lib/modules/participant/components/participants/components/footer/index.d.ts +5 -0
  235. package/lib/modules/participant/components/participants/components/footer/index.js +48 -0
  236. package/lib/modules/participant/components/participants/components/merge/index.d.ts +11 -0
  237. package/lib/modules/participant/components/participants/components/merge/index.js +49 -0
  238. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.css +191 -0
  239. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.d.ts +4 -0
  240. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.js +204 -0
  241. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.css +49 -0
  242. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.d.ts +5 -0
  243. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.js +219 -0
  244. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.d.ts +5 -0
  245. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.js +70 -0
  246. package/lib/modules/participant/components/participants/components/participants/index.css +104 -0
  247. package/lib/modules/participant/components/participants/components/participants/index.d.ts +3 -0
  248. package/lib/modules/participant/components/participants/components/participants/index.js +110 -0
  249. package/lib/modules/participant/components/participants/components/render-tab/index.d.ts +2 -0
  250. package/lib/modules/participant/components/participants/components/render-tab/index.js +49 -0
  251. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/interpreter-tag/index.d.ts +3 -0
  252. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/interpreter-tag/index.js +48 -0
  253. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/microphone-indicator/index.d.ts +6 -0
  254. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/microphone-indicator/index.js +28 -0
  255. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/user-avatar/index.d.ts +7 -0
  256. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/user-avatar/index.js +39 -0
  257. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.css +69 -0
  258. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.d.ts +5 -0
  259. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.js +135 -0
  260. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/audio-button/index.d.ts +7 -0
  261. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/audio-button/index.js +31 -0
  262. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.d.ts +12 -0
  263. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.js +82 -0
  264. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-to-mainroom-button/index.d.ts +4 -0
  265. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-to-mainroom-button/index.js +26 -0
  266. package/lib/modules/participant/components/participants/components/render-user/components/user-action/index.d.ts +2 -0
  267. package/lib/modules/participant/components/participants/components/render-user/components/user-action/index.js +75 -0
  268. package/lib/modules/participant/components/participants/components/render-user/index.d.ts +5 -0
  269. package/lib/modules/participant/components/participants/components/render-user/index.js +21 -0
  270. package/lib/modules/participant/components/participants/index.js +18 -112
  271. package/lib/modules/participant/components/participants/types.d.ts +96 -0
  272. package/lib/modules/participant/components/participants/types.js +37 -0
  273. package/lib/modules/participant/index.css +3 -0
  274. package/lib/modules/participant/index.d.ts +12 -0
  275. package/lib/modules/participant/index.js +7 -1
  276. package/lib/modules/participant/member-list-data-source.d.ts +2 -2
  277. package/lib/modules/participant/member-list-data-source.js +11 -17
  278. package/lib/modules/participant/store.d.ts +44 -37
  279. package/lib/modules/participant/store.js +527 -536
  280. package/lib/modules/participant/type.d.ts +2 -9
  281. package/lib/modules/pc-audio-connect/store.d.ts +1 -1
  282. package/lib/modules/pc-audio-connect/store.js +9 -6
  283. package/lib/modules/setting/audio-settings/audio-settings.js +5 -4
  284. package/lib/modules/setting/audio-settings/index.css +11 -2
  285. package/lib/modules/setting/config.js +1 -1
  286. package/lib/modules/setting/store.d.ts +1 -0
  287. package/lib/modules/setting/store.js +20 -2
  288. package/lib/modules/setting/video-settings/index.css +12 -17
  289. package/lib/modules/setting/video-settings/video-settings-basic.js +40 -44
  290. package/lib/modules/share-screen/components/selection/index.js +70 -80
  291. package/lib/modules/share-screen/index.d.ts +6 -1
  292. package/lib/modules/share-screen/index.js +4 -1
  293. package/lib/modules/share-screen/store.d.ts +37 -33
  294. package/lib/modules/share-screen/store.js +330 -438
  295. package/lib/modules/sound-effect/sound-effect-player.d.ts +0 -4
  296. package/lib/modules/sound-effect/sound-effect-player.js +4 -4
  297. package/lib/modules/state-bar/index.css +2 -15
  298. package/lib/modules/state-bar/index.d.ts +10 -0
  299. package/lib/modules/state-bar/index.js +6 -1
  300. package/lib/modules/state-bar/live-streaming-state.js +0 -17
  301. package/lib/modules/state-bar/meeting-details.js +12 -24
  302. package/lib/modules/state-bar/meeting-time.js +5 -10
  303. package/lib/modules/state-bar/store.d.ts +31 -8
  304. package/lib/modules/state-bar/store.js +146 -100
  305. package/lib/modules/state-bar/view.js +63 -32
  306. package/lib/modules/video-window/components/deviceState/index.d.ts +7 -0
  307. package/lib/modules/video-window/components/deviceState/index.js +75 -0
  308. package/lib/modules/video-window/components/members/index.css +51 -0
  309. package/lib/modules/video-window/components/members/index.d.ts +2 -0
  310. package/lib/modules/video-window/components/members/index.js +131 -0
  311. package/lib/modules/video-window/components/speaking/index.css +86 -0
  312. package/lib/modules/video-window/components/speaking/index.d.ts +3 -0
  313. package/lib/modules/video-window/components/speaking/index.js +48 -0
  314. package/lib/modules/video-window/components/topControl/index.css +35 -0
  315. package/lib/modules/video-window/components/topControl/index.d.ts +3 -0
  316. package/lib/modules/video-window/components/topControl/index.js +79 -0
  317. package/lib/modules/video-window/index.d.ts +7 -0
  318. package/lib/modules/video-window/index.js +14 -20
  319. package/lib/modules/video-window/store.d.ts +19 -88
  320. package/lib/modules/video-window/store.js +98 -365
  321. package/lib/modules/video-window/type.d.ts +40 -4
  322. package/lib/modules/video-window/type.js +4 -4
  323. package/lib/modules/video-window/view.js +11 -23
  324. package/lib/modules/whiteboard/index.d.ts +1 -0
  325. package/lib/modules/whiteboard/index.js +7 -4
  326. package/lib/modules/widget/index.css +17 -0
  327. package/lib/modules/widget/index.d.ts +10 -0
  328. package/lib/modules/widget/index.js +114 -0
  329. package/lib/modules/widget/sdk.d.ts +30 -0
  330. package/lib/modules/widget/sdk.js +224 -0
  331. package/lib/modules/widget/store.d.ts +14 -0
  332. package/lib/modules/widget/store.js +28 -0
  333. package/lib/modules/widget/type.d.ts +156 -0
  334. package/lib/modules/widget/type.js +6 -0
  335. package/lib/modules/widget/view.d.ts +2 -0
  336. package/lib/modules/widget/view.js +47 -0
  337. package/lib/modules/widget/web-widget.d.ts +29 -0
  338. package/lib/modules/widget/web-widget.js +234 -0
  339. package/lib/providers/ability-provider.d.ts +24 -0
  340. package/lib/providers/ability-provider.js +38 -0
  341. package/lib/providers/chat-provider.d.ts +16 -9
  342. package/lib/providers/chat-provider.js +76 -8
  343. package/lib/providers/device-privilege-provider.d.ts +5 -1
  344. package/lib/providers/device-privilege-provider.js +21 -1
  345. package/lib/providers/device-provider.js +5 -2
  346. package/lib/providers/device-stream-provider.d.ts +15 -3
  347. package/lib/providers/device-stream-provider.js +118 -34
  348. package/lib/providers/dialog-provider.d.ts +9 -8
  349. package/lib/providers/dialog-provider.js +8 -4
  350. package/lib/providers/event-provider.js +4 -2
  351. package/lib/providers/interpreter-provider.d.ts +7 -26
  352. package/lib/providers/interpreter-provider.js +473 -706
  353. package/lib/providers/local-storage-provider.d.ts +6 -1
  354. package/lib/providers/local-storage-provider.js +15 -2
  355. package/lib/providers/message-provider.js +4 -2
  356. package/lib/providers/phone-audio-provider.js +24 -18
  357. package/lib/providers/privilege-provider.d.ts +13 -12
  358. package/lib/providers/privilege-provider.js +19 -11
  359. package/lib/providers/renderer-provider.d.ts +5 -0
  360. package/lib/providers/renderer-provider.js +8 -1
  361. package/lib/providers/room-provider.d.ts +7 -17
  362. package/lib/providers/room-provider.js +113 -161
  363. package/lib/providers/screen-share-provider.d.ts +19 -0
  364. package/lib/providers/screen-share-provider.js +102 -10
  365. package/lib/providers/widget-provider.d.ts +52 -0
  366. package/lib/providers/widget-provider.js +171 -0
  367. package/lib/scenes/main-scene.d.ts +11 -0
  368. package/lib/scenes/main-scene.js +60 -33
  369. package/lib/scenes/waiting-scene.d.ts +9 -0
  370. package/lib/scenes/waiting-scene.js +27 -26
  371. package/lib/schema.d.ts +114 -0
  372. package/lib/schema.js +77 -0
  373. package/lib/shared-data-source/chat-data.d.ts +11 -0
  374. package/lib/shared-data-source/chat-data.js +17 -6
  375. package/lib/shared-data-source/interpreter.d.ts +34 -21
  376. package/lib/shared-data-source/interpreter.js +104 -103
  377. package/lib/shared-data-source/meeting-time.d.ts +68 -0
  378. package/lib/shared-data-source/meeting-time.js +299 -0
  379. package/lib/shared-data-source/member-data.d.ts +126 -0
  380. package/lib/shared-data-source/member-data.js +451 -0
  381. package/lib/shared-data-source/pin-data.d.ts +8 -4
  382. package/lib/shared-data-source/pin-data.js +92 -4
  383. package/lib/shared-data-source/security-data.d.ts +35 -0
  384. package/lib/shared-data-source/security-data.js +156 -0
  385. package/lib/shared-data-source/setting.d.ts +3 -1
  386. package/lib/shared-data-source/setting.js +12 -1
  387. package/lib/shared-data-source/video-window.d.ts +7 -8
  388. package/lib/shared-data-source/video-window.js +97 -94
  389. package/lib/shared-data-source/waiting-room.d.ts +29 -2
  390. package/lib/shared-data-source/waiting-room.js +103 -39
  391. package/lib/translations/enUS.d.ts +25 -12
  392. package/lib/translations/enUS.js +47 -68
  393. package/lib/translations/zhCN.d.ts +26 -12
  394. package/lib/translations/zhCN.js +63 -83
  395. package/lib/type.d.ts +64 -48
  396. package/lib/type.js +14 -1
  397. package/lib/ui-manager.d.ts +3 -2
  398. package/lib/ui-manager.js +8 -7
  399. package/lib/ui-scene.d.ts +7 -1
  400. package/lib/ui-scene.js +187 -97
  401. package/lib/utilities/constant.d.ts +7 -3
  402. package/lib/utilities/constant.js +4 -0
  403. package/lib/utilities/default-config.d.ts +5 -1
  404. package/lib/utilities/default-config.js +28 -2
  405. package/lib/utilities/logger.d.ts +8 -0
  406. package/lib/utilities/logger.js +42 -0
  407. package/lib/utilities/meeting-detail.js +11 -10
  408. package/lib/utilities/parameters.d.ts +4 -0
  409. package/lib/utilities/parameters.js +13 -1
  410. package/lib/utilities/renderer.d.ts +1 -0
  411. package/lib/utilities/renderer.js +4 -1
  412. package/lib/utilities/tools.d.ts +7 -6
  413. package/lib/utilities/tools.js +2 -6
  414. package/lib/utilities/validate-params.d.ts +2 -0
  415. package/lib/utilities/validate-params.js +16 -0
  416. package/lib/waiting-room-control-manager.d.ts +28 -0
  417. package/lib/waiting-room-control-manager.js +212 -0
  418. package/lib/widget-sdk.d.ts +2 -0
  419. package/lib/widget-sdk.js +13 -0
  420. package/package.json +7 -6
  421. package/public/index.html +12 -6
@@ -16,6 +16,9 @@ Object.defineProperty(exports, "__esModule", {
16
16
  });
17
17
  exports.shadowOffset = exports.DialogInstanceContext = void 0;
18
18
  exports.useElectronDialog = useElectronDialog;
19
+ exports.useElectronDialogByDialogId = useElectronDialogByDialogId;
20
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
19
22
  require("core-js/modules/es.array.concat.js");
20
23
  require("core-js/modules/es.array.for-each.js");
21
24
  require("core-js/modules/es.array.includes.js");
@@ -25,8 +28,6 @@ require("core-js/modules/esnext.async-iterator.for-each.js");
25
28
  require("core-js/modules/esnext.iterator.constructor.js");
26
29
  require("core-js/modules/esnext.iterator.for-each.js");
27
30
  require("core-js/modules/web.dom-collections.for-each.js");
28
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
29
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
30
31
  var _react = require("react");
31
32
  var _store = require("../store");
32
33
  var _dialogs = require("../dialogs");
@@ -38,6 +39,16 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
38
39
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
39
40
  var DialogInstanceContext = exports.DialogInstanceContext = /*#__PURE__*/(0, _react.createContext)(null);
40
41
  var shadowOffset = exports.shadowOffset = 15 + 15;
42
+ var enterFullScreenHandler = function enterFullScreenHandler() {
43
+ _dialogs.dialogWindows.forEach(function (win, k) {
44
+ !_store.TOP_LEVEL_DIALOG_LAYER.includes(k) && win.setAlwaysOnTop(true, 'pop-up-menu');
45
+ });
46
+ };
47
+ var leaveFullScreenHandler = function leaveFullScreenHandler() {
48
+ _dialogs.dialogWindows.forEach(function (win, k) {
49
+ ![].concat((0, _toConsumableArray2["default"])(_store.TOP_LEVEL_DIALOG_LAYER), (0, _toConsumableArray2["default"])(_store.HIGH_LEVEL_DIALOG_LAYER)).includes(k) && win.setAlwaysOnTop(true, 'normal');
50
+ });
51
+ };
41
52
  function useElectronDialog(props) {
42
53
  var store = (0, _react.useContext)(_store.StoreContext);
43
54
  var customConfigs = props.config,
@@ -55,8 +66,11 @@ function useElectronDialog(props) {
55
66
  onUnmounted = props.onUnmounted,
56
67
  polyfills = props.polyfills,
57
68
  _props$hasCustomShado = props.hasCustomShadow,
58
- hasCustomShadow = _props$hasCustomShado === void 0 ? true : _props$hasCustomShado;
69
+ hasCustomShadow = _props$hasCustomShado === void 0 ? true : _props$hasCustomShado,
70
+ _props$disableShortcu = props.disableShortcutClose,
71
+ disableShortcutClose = _props$disableShortcu === void 0 ? false : _props$disableShortcu;
59
72
  var windowRef = (0, _react.useRef)();
73
+ var newRendernerWindowRef = (0, _react.useRef)();
60
74
  var _customConfigs$width = customConfigs.width,
61
75
  w = _customConfigs$width === void 0 ? 0 : _customConfigs$width,
62
76
  _customConfigs$height = customConfigs.height,
@@ -75,24 +89,21 @@ function useElectronDialog(props) {
75
89
  (0, _react.useEffect)(function () {
76
90
  var node;
77
91
  window.runtime.openRendererWindow(dialogKey, function (dom, browserWindow, newRendererWindow) {
78
- var _window$runtime, _controlbar$isVisible;
92
+ var _controlbar$isVisible;
79
93
  node = dom;
80
94
  windowRef.current = browserWindow;
95
+ newRendernerWindowRef.current = newRendererWindow;
81
96
  _dialogs.dialogWindows.set(dialogKey, browserWindow);
82
97
  var thisWindowBounds = browserWindow.getBounds();
83
98
  var mainAppWindowBounds = window.runtime.browserWindow.getBounds();
84
99
  var nearDisplayBounds = window.runtime.screen.getDisplayNearestPoint(mainAppWindowBounds).bounds;
85
100
  var controlbar = _dialogs.dialogWindows.get(_constant.FcrUIDialogKey.CONTROL_BAR);
86
- var isFullScreen = (_window$runtime = window.runtime) === null || _window$runtime === void 0 ? void 0 : _window$runtime.browserWindow.isFullScreen();
87
101
  if (controlbar && controlbar !== null && controlbar !== void 0 && (_controlbar$isVisible = controlbar.isVisible) !== null && _controlbar$isVisible !== void 0 && _controlbar$isVisible.call(controlbar)) {
88
102
  // 因为打开过的窗口在关闭时是用的 hide 方法,因此只判断 controlbar 是否存在会在关闭 controlbar 时失效,导致窗口依然跟随 controlbar 最后所在屏幕打开,所以要再判断一下 isVisible 状态
89
103
  // 当屏幕共享时会打开 control bar,此时弹窗相对于 control bar 展示
90
104
  var nearDisplay = window.runtime.screen.getDisplayNearestPoint(controlbar.getBounds());
91
105
  var _nearDisplayBounds = nearDisplay.bounds;
92
106
  var _thisWindowBounds = browserWindow.getBounds();
93
- console.log({
94
- thisWindowBounds: _thisWindowBounds
95
- });
96
107
  var centerBounds = {
97
108
  x: Math.floor(_nearDisplayBounds.x + (_nearDisplayBounds.width - _thisWindowBounds.width) / 2),
98
109
  y: Math.floor(_nearDisplayBounds.y + (_nearDisplayBounds.height - _thisWindowBounds.height) / 2)
@@ -102,18 +113,23 @@ function useElectronDialog(props) {
102
113
  browserWindow.setResizable(false);
103
114
  browserWindow.setBounds(centerBounds);
104
115
  browserWindow.setResizable(resizeble);
105
- } else if (isFullScreen) {
116
+ } else if (fullScreen) {
106
117
  var _browserWindow$setBou;
107
118
  // 当窗口的自定义设置为全屏时,让弹窗追随主窗口所在的屏幕展示
119
+ // 目前 fullScreen 的配置主要用于 toast 和 confirm,在应用启动时会直接初始化这两个 dialog,如果未设置 fullScreen,它们因为没有宽高将无法展示
120
+ var x = nearDisplayBounds.x,
121
+ y = nearDisplayBounds.y,
122
+ width = nearDisplayBounds.width,
123
+ height = nearDisplayBounds.height;
108
124
  browserWindow === null || browserWindow === void 0 || (_browserWindow$setBou = browserWindow.setBounds) === null || _browserWindow$setBou === void 0 || _browserWindow$setBou.call(browserWindow, {
109
- x: nearDisplayBounds.x,
110
- y: (0, _renderer.isWindows)() && polyfills !== null && polyfills !== void 0 && polyfills.includes('fix-toast-window-flash') ? -100 : nearDisplayBounds.y,
111
- width: nearDisplayBounds.width,
112
- height: (0, _renderer.isWindows)() && polyfills !== null && polyfills !== void 0 && polyfills.includes('fix-toast-window-flash') ? 0 : nearDisplayBounds.height
125
+ x: x,
126
+ y: y,
127
+ width: width,
128
+ height: height
113
129
  });
114
130
  } else {
115
131
  var _browserWindow$setBou2;
116
- // 如果主窗口不是全屏模式,那么新打开的弹窗相对于主窗口弹窗的水平垂直居中显示
132
+ // 如果窗口未设置全屏模式,那么新打开的弹窗相对于主窗口弹窗的水平垂直居中显示
117
133
  var bounds = {
118
134
  x: Math.floor(mainAppWindowBounds.x + (mainAppWindowBounds.width - thisWindowBounds.width) / 2),
119
135
  y: Math.floor(mainAppWindowBounds.y + (mainAppWindowBounds.height - thisWindowBounds.height) / 2)
@@ -139,6 +155,7 @@ function useElectronDialog(props) {
139
155
  // 因为窗口有可能需要单独设置位置,所以,窗口打开的回调需要放置在默认的位置设置之后
140
156
  onOpened === null || onOpened === void 0 || onOpened({
141
157
  browserWindow: browserWindow,
158
+ newRendererWindow: newRendererWindow,
142
159
  store: store,
143
160
  // 重写 setBounds 方法,使得设置 bounds 时,自动加上阴影的宽度
144
161
  setBounds: function setBounds(bounds, animate) {
@@ -161,11 +178,22 @@ function useElectronDialog(props) {
161
178
  if (!scroll) {
162
179
  browserWindow.webContents.insertCSS("\n ::-webkit-scrollbar {\n display: none;\n }\n #root {\n padding: ".concat(hasCustomShadow ? shadowOffset / 2 : 0, "px;\n display: ").concat(hasCustomShadow ? 'flex' : 'block', ";\n align-items: center;\n }\n "));
163
180
  }
181
+ if (disableShortcutClose) {
182
+ newRendererWindow.addEventListener('keydown', function (event) {
183
+ if ((event.ctrlKey || event.metaKey) && event.key === 'w') {
184
+ event.preventDefault();
185
+ }
186
+ });
187
+ }
164
188
  focus && browserWindow.focus();
165
189
  (0, _renderer.handleWillClose)(browserWindow, function () {
166
190
  (0, _reactDom.unmountComponentAtNode)(node);
167
191
  _dialogs.dialogWindows["delete"](dialogKey);
168
- onClose === null || onClose === void 0 || onClose(store);
192
+ store === null || store === void 0 || store.closeDialogByKey(dialogKey);
193
+ onClose === null || onClose === void 0 || onClose({
194
+ store: store,
195
+ browserWindow: browserWindow
196
+ });
169
197
  });
170
198
  (0, _reactDom.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_store.StoreContext.Provider, {
171
199
  value: store,
@@ -179,29 +207,199 @@ function useElectronDialog(props) {
179
207
  })
180
208
  }), dom);
181
209
  }, config);
210
+ if ((0, _renderer.isMac)()) {
211
+ // 这组监听是为了处理 mac 全屏模式下,弹窗会因为主窗口全屏而变成独立窗口的问题
212
+ window.runtime.browserWindow.addListener('enter-full-screen', enterFullScreenHandler);
213
+ window.runtime.browserWindow.addListener('leave-full-screen', leaveFullScreenHandler);
214
+ }
182
215
  return function () {
183
216
  node && (0, _reactDom.unmountComponentAtNode)(node);
217
+ if ((0, _renderer.isMac)()) {
218
+ window.runtime.browserWindow.removeListener('enter-full-screen', enterFullScreenHandler);
219
+ window.runtime.browserWindow.removeListener('leave-full-screen', leaveFullScreenHandler);
220
+ }
184
221
  window.runtime.closeRendererWindow(dialogKey);
185
- if (windowRef.current && !windowRef.current.isDestroyed) {
222
+ if (windowRef.current && !windowRef.current.isDestroyed()) {
223
+ windowRef.current.hide();
186
224
  windowRef.current.close();
187
225
  }
188
226
  onUnmounted === null || onUnmounted === void 0 || onUnmounted(store);
189
227
  };
190
228
  }, []);
191
-
192
- // 这组监听是为了处理 mac 全屏模式下,弹窗会因为主窗口全屏而变成独立窗口的问题
193
- window.runtime.browserWindow.addListener('enter-full-screen', function () {
194
- _dialogs.dialogWindows.forEach(function (win, k) {
195
- !_store.TOP_LEVEL_DIALOG_LAYER.includes(k) && win.setAlwaysOnTop(true, 'pop-up-menu');
196
- });
197
- });
198
- window.runtime.browserWindow.addListener('leave-full-screen', function () {
199
- _dialogs.dialogWindows.forEach(function (win, k) {
200
- ![].concat((0, _toConsumableArray2["default"])(_store.TOP_LEVEL_DIALOG_LAYER), (0, _toConsumableArray2["default"])(_store.HIGH_LEVEL_DIALOG_LAYER)).includes(k) && win.setAlwaysOnTop(true, 'normal');
201
- });
229
+ return {
230
+ store: store,
231
+ browserWindow: windowRef.current,
232
+ newRendererWindow: newRendernerWindowRef.current
233
+ };
234
+ }
235
+ function useElectronDialogByDialogId(props) {
236
+ var store = (0, _react.useContext)(_store.StoreContext);
237
+ var customConfigs = props.config,
238
+ dialogId = props.dialogId,
239
+ onClose = props.onClose,
240
+ scroll = props.scroll,
241
+ _props$focus2 = props.focus,
242
+ focus = _props$focus2 === void 0 ? true : _props$focus2,
243
+ children = props.children,
244
+ ignoreMouseEvents = props.ignoreMouseEvents,
245
+ _props$alwaysOnTop2 = props.alwaysOnTop,
246
+ alwaysOnTop = _props$alwaysOnTop2 === void 0 ? false : _props$alwaysOnTop2,
247
+ fullScreen = props.fullScreen,
248
+ onOpened = props.onOpened,
249
+ onUnmounted = props.onUnmounted,
250
+ polyfills = props.polyfills,
251
+ _props$hasCustomShado2 = props.hasCustomShadow,
252
+ hasCustomShadow = _props$hasCustomShado2 === void 0 ? true : _props$hasCustomShado2,
253
+ _props$disableShortcu2 = props.disableShortcutClose,
254
+ disableShortcutClose = _props$disableShortcu2 === void 0 ? false : _props$disableShortcu2;
255
+ var winUniqueId = dialogId;
256
+ var windowRef = (0, _react.useRef)();
257
+ var newRendernerWindowRef = (0, _react.useRef)();
258
+ var _customConfigs$width2 = customConfigs.width,
259
+ w = _customConfigs$width2 === void 0 ? 0 : _customConfigs$width2,
260
+ _customConfigs$height2 = customConfigs.height,
261
+ h = _customConfigs$height2 === void 0 ? 0 : _customConfigs$height2;
262
+ var config = _objectSpread(_objectSpread({
263
+ type: 'panel',
264
+ hasShadow: false,
265
+ frame: false,
266
+ transparent: true,
267
+ resizeble: false
268
+ }, customConfigs), {}, {
269
+ setAlwaysOnTop: alwaysOnTop,
270
+ width: w + (hasCustomShadow ? shadowOffset : 0),
271
+ height: h + (hasCustomShadow ? shadowOffset : 0)
202
272
  });
273
+ (0, _react.useEffect)(function () {
274
+ var node;
275
+ window.runtime.openRendererWindow(winUniqueId, function (dom, browserWindow, newRendererWindow) {
276
+ var _controlbar$isVisible2;
277
+ node = dom;
278
+ windowRef.current = browserWindow;
279
+ newRendernerWindowRef.current = newRendererWindow;
280
+ var thisWindowBounds = browserWindow.getBounds();
281
+ var mainAppWindowBounds = window.runtime.browserWindow.getBounds();
282
+ var nearDisplayBounds = window.runtime.screen.getDisplayNearestPoint(mainAppWindowBounds).bounds;
283
+ var controlbar = _dialogs.dialogWindows.get(_constant.FcrUIDialogKey.CONTROL_BAR);
284
+ if (controlbar && controlbar !== null && controlbar !== void 0 && (_controlbar$isVisible2 = controlbar.isVisible) !== null && _controlbar$isVisible2 !== void 0 && _controlbar$isVisible2.call(controlbar)) {
285
+ // 因为打开过的窗口在关闭时是用的 hide 方法,因此只判断 controlbar 是否存在会在关闭 controlbar 时失效,导致窗口依然跟随 controlbar 最后所在屏幕打开,所以要再判断一下 isVisible 状态
286
+ // 当屏幕共享时会打开 control bar,此时弹窗相对于 control bar 展示
287
+ var nearDisplay = window.runtime.screen.getDisplayNearestPoint(controlbar.getBounds());
288
+ var _nearDisplayBounds2 = nearDisplay.bounds;
289
+ var _thisWindowBounds2 = browserWindow.getBounds();
290
+ var centerBounds = {
291
+ x: Math.floor(_nearDisplayBounds2.x + (_nearDisplayBounds2.width - _thisWindowBounds2.width) / 2),
292
+ y: Math.floor(_nearDisplayBounds2.y + (_nearDisplayBounds2.height - _thisWindowBounds2.height) / 2)
293
+ };
294
+ // resizeble 为 true 的窗口在切换不同分辨率属性的显示器时,会有打开尺寸失真的情况出现,所以暂存一下其原始值,在更改坐标之后还原
295
+ var resizeble = browserWindow.isResizable();
296
+ browserWindow.setResizable(false);
297
+ browserWindow.setBounds(centerBounds);
298
+ browserWindow.setResizable(resizeble);
299
+ } else if (fullScreen) {
300
+ var _browserWindow$setBou3;
301
+ // 当窗口的自定义设置为全屏时,让弹窗追随主窗口所在的屏幕展示
302
+ var x = nearDisplayBounds.x,
303
+ y = nearDisplayBounds.y,
304
+ width = nearDisplayBounds.width,
305
+ height = nearDisplayBounds.height;
306
+ browserWindow === null || browserWindow === void 0 || (_browserWindow$setBou3 = browserWindow.setBounds) === null || _browserWindow$setBou3 === void 0 || _browserWindow$setBou3.call(browserWindow, {
307
+ x: x,
308
+ y: y,
309
+ width: width,
310
+ height: height
311
+ });
312
+ } else {
313
+ var _browserWindow$setBou4;
314
+ // 如果主窗口不是全屏模式,那么新打开的弹窗相对于主窗口弹窗的水平垂直居中显示
315
+ var bounds = {
316
+ x: Math.floor(mainAppWindowBounds.x + (mainAppWindowBounds.width - thisWindowBounds.width) / 2),
317
+ y: Math.floor(mainAppWindowBounds.y + (mainAppWindowBounds.height - thisWindowBounds.height) / 2)
318
+ };
319
+ browserWindow === null || browserWindow === void 0 || (_browserWindow$setBou4 = browserWindow.setBounds) === null || _browserWindow$setBou4 === void 0 || _browserWindow$setBou4.call(browserWindow, bounds);
320
+ }
321
+
322
+ // 设置所有窗口为所有工作区可见
323
+ browserWindow.setVisibleOnAllWorkspaces(true, {
324
+ visibleOnFullScreen: true,
325
+ skipTransformProcessType: true
326
+ });
327
+
328
+ // 因为窗口有可能需要单独设置位置,所以,窗口打开的回调需要放置在默认的位置设置之后
329
+ onOpened === null || onOpened === void 0 || onOpened({
330
+ browserWindow: browserWindow,
331
+ newRendererWindow: newRendererWindow,
332
+ store: store,
333
+ // 重写 setBounds 方法,使得设置 bounds 时,自动加上阴影的宽度
334
+ setBounds: function setBounds(bounds, animate) {
335
+ var b = _objectSpread({}, bounds);
336
+ if (b.width && hasCustomShadow) b.width = b.width + shadowOffset;
337
+ if (b.height && hasCustomShadow) b.height = b.height + shadowOffset;
338
+ browserWindow.setBounds(b, animate);
339
+ },
340
+ nearDisplayBounds: nearDisplayBounds
341
+ });
342
+
343
+ // 同原生 electron 的 ignoreMouseEvents 一样,设置为 true 时,窗口将不再接收鼠标事件
344
+ if (ignoreMouseEvents) {
345
+ browserWindow.setIgnoreMouseEvents(true, typeof ignoreMouseEvents === 'boolean' ? {
346
+ forward: true
347
+ } : ignoreMouseEvents);
348
+ }
349
+ browserWindow.setAlwaysOnTop(typeof alwaysOnTop === 'boolean' ? alwaysOnTop : typeof alwaysOnTop === 'string', typeof alwaysOnTop === 'string' ? alwaysOnTop : 'pop-up-menu');
350
+ if (!scroll) {
351
+ browserWindow.webContents.insertCSS("\n ::-webkit-scrollbar {\n display: none;\n }\n #root {\n padding: ".concat(hasCustomShadow ? shadowOffset / 2 : 0, "px;\n display: ").concat(hasCustomShadow ? 'flex' : 'block', ";\n align-items: center;\n }\n "));
352
+ }
353
+ if (disableShortcutClose) {
354
+ newRendererWindow.addEventListener('keydown', function (event) {
355
+ if ((event.ctrlKey || event.metaKey) && event.key === 'w') {
356
+ event.preventDefault();
357
+ }
358
+ });
359
+ }
360
+ focus && browserWindow.focus();
361
+ (0, _renderer.handleWillClose)(browserWindow, function () {
362
+ (0, _reactDom.unmountComponentAtNode)(node);
363
+ store.closeDilaogByDialogId(winUniqueId);
364
+ onClose === null || onClose === void 0 || onClose({
365
+ store: store,
366
+ browserWindow: browserWindow
367
+ });
368
+ });
369
+ (0, _reactDom.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_store.StoreContext.Provider, {
370
+ value: store,
371
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DialogInstanceContext.Provider, {
372
+ value: {
373
+ browserWindow: browserWindow,
374
+ newRendererWindow: newRendererWindow,
375
+ resizable: !!customConfigs.resizable
376
+ },
377
+ children: typeof children === 'function' ? children(browserWindow) : children
378
+ })
379
+ }), dom);
380
+ }, config);
381
+ if ((0, _renderer.isMac)()) {
382
+ // 这组监听是为了处理 mac 全屏模式下,弹窗会因为主窗口全屏而变成独立窗口的问题
383
+ window.runtime.browserWindow.addListener('enter-full-screen', enterFullScreenHandler);
384
+ window.runtime.browserWindow.addListener('leave-full-screen', leaveFullScreenHandler);
385
+ }
386
+ return function () {
387
+ node && (0, _reactDom.unmountComponentAtNode)(node);
388
+ if ((0, _renderer.isMac)()) {
389
+ window.runtime.browserWindow.removeListener('enter-full-screen', enterFullScreenHandler);
390
+ window.runtime.browserWindow.removeListener('leave-full-screen', leaveFullScreenHandler);
391
+ }
392
+ window.runtime.closeRendererWindow(winUniqueId);
393
+ if (windowRef.current && !windowRef.current.isDestroyed()) {
394
+ windowRef.current.hide();
395
+ windowRef.current.close();
396
+ }
397
+ onUnmounted === null || onUnmounted === void 0 || onUnmounted(store);
398
+ };
399
+ }, []);
203
400
  return {
204
401
  store: store,
205
- browserWindow: windowRef.current
402
+ browserWindow: windowRef.current,
403
+ newRendererWindow: newRendernerWindowRef.current
206
404
  };
207
405
  }
@@ -22,7 +22,7 @@
22
22
  .fcr-livestreaming-dialog-content {
23
23
  flex: 1;
24
24
  overflow: hidden;
25
- padding: 0 20px;
25
+ padding: 0 20px 20px;
26
26
  }
27
27
  .frc-common-dialog {
28
28
  background: var(--fcr_mobile_ui_scene_color_popup_fill2);
@@ -47,13 +47,3 @@
47
47
  height: 24px;
48
48
  width: fit-content;
49
49
  }
50
-
51
- .fcr-confirm-dialog-wrapper {
52
- background: #fff;
53
- }
54
- .fcr-confirm-dialog-wrapper_web {
55
- background: var(--fcr_mobile_ui_scene_color_popup_fill2);
56
- border-radius: var(--fcr_cornerradius_xl);
57
- box-shadow: var(--fcr_web_light_dropup);
58
- border: 1px solid var(--fcr_ui_scene_line1);
59
- }
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { UIModule } from '../../base';
3
2
  import { FcrUIDeviceProvider } from '../../providers/device-provider';
4
3
  import { FcrStreamControl, FcrUserControl } from 'fcr-core';
@@ -10,10 +9,14 @@ import { FcrUILocalVideoRenderProvider, FcrUIRemoteVideoRenderProvider } from '.
10
9
  import { FcrUIPrivilegeProvider } from '../../providers/privilege-provider';
11
10
  import { FcrUIDialogProvider } from '../../providers/dialog-provider';
12
11
  import { FcrUIPhoneAudioConnectorProvider } from '../../providers/phone-audio-provider';
12
+ import { FcrUIAbilityProviderImpl } from '../../providers/ability-provider';
13
13
  import { FcrUIAction } from '../../utilities/constant';
14
14
  import { CurrentShareScreenTypes } from '../share-screen/types';
15
+ import { FcrUIDialogInfo } from './type';
16
+ import { FcrUIWidgetProvider } from '../../providers/widget-provider';
17
+ import { FcrUIChatProvider } from '../../providers/chat-provider';
15
18
  export declare class DialogUIModule extends UIModule {
16
- private _dialogs;
19
+ private _dialogsByKey;
17
20
  private _store?;
18
21
  deviceProvider?: FcrUIDeviceProvider;
19
22
  streamControl?: FcrStreamControl;
@@ -29,12 +32,12 @@ export declare class DialogUIModule extends UIModule {
29
32
  phoneAudioConnectorProvider?: FcrUIPhoneAudioConnectorProvider;
30
33
  mainRoomControlProvider?: FcrUIMainRoomControlProvider;
31
34
  waitingRoomControlProvider?: FcrUIWaitingRoomControlProvider;
35
+ widgetProvider?: FcrUIWidgetProvider;
36
+ chatProvider?: FcrUIChatProvider;
37
+ abilityProvider?: FcrUIAbilityProviderImpl;
32
38
  onNodeWillActive(): void;
33
39
  onNodeWillInactive(): void;
34
40
  getComponent(): import("react/jsx-runtime").JSX.Element;
35
- addDialogs(dialogs: {
36
- key: string;
37
- component: (params?: any) => React.JSX.Element;
38
- }[]): void;
41
+ addDialogs(dialogs: FcrUIDialogInfo[]): void;
39
42
  onUiEvent(event: FcrUIAction, payload: CurrentShareScreenTypes): void;
40
43
  }
@@ -73,31 +73,33 @@ var DialogUIModule = exports.DialogUIModule = /*#__PURE__*/function (_UIModule)
73
73
  args[_key] = arguments[_key];
74
74
  }
75
75
  _this = _callSuper(this, DialogUIModule, [].concat(args));
76
- (0, _defineProperty2["default"])(_this, "_dialogs", new Map());
76
+ (0, _defineProperty2["default"])(_this, "_dialogsByKey", new Map());
77
77
  return _this;
78
78
  }
79
79
  (0, _inherits2["default"])(DialogUIModule, _UIModule);
80
80
  return (0, _createClass2["default"])(DialogUIModule, [{
81
81
  key: "onNodeWillActive",
82
82
  value: function onNodeWillActive() {
83
- var _this$currentRoomCont, _this$currentRoomCont2, _this$currentRoomCont3;
83
+ var _this$currentRoomCont, _this$currentRoomCont2;
84
84
  this.streamControl = (_this$currentRoomCont = this.currentRoomControlProvider) === null || _this$currentRoomCont === void 0 ? void 0 : _this$currentRoomCont.currentRoomControl.getStreamControl();
85
85
  this.userControl = (_this$currentRoomCont2 = this.currentRoomControlProvider) === null || _this$currentRoomCont2 === void 0 ? void 0 : _this$currentRoomCont2.currentRoomControl.getUserControl();
86
- this.chatRoomControl = (_this$currentRoomCont3 = this.currentRoomControlProvider) === null || _this$currentRoomCont3 === void 0 ? void 0 : _this$currentRoomCont3.currentRoomControl.getChatRoomControl();
87
- if (this.userControl && this.deviceProvider && this.streamControl && this.remoteVideoRenderProvider && this.chatRoomControl && this.eventProvider && this.localVideoRenderProvider && this.sharedLayoutDataSource && this.dialogProvider && this.phoneAudioConnectorProvider) {
88
- var _this$currentRoomCont4, _this$mainRoomControl, _this$waitingRoomCont;
86
+ if (this.userControl && this.deviceProvider && this.streamControl && this.remoteVideoRenderProvider && this.eventProvider && this.localVideoRenderProvider && this.sharedLayoutDataSource && this.dialogProvider && this.phoneAudioConnectorProvider && this.widgetProvider && this.chatProvider && this.abilityProvider) {
87
+ var _this$currentRoomCont3, _this$mainRoomControl, _this$waitingRoomCont;
89
88
  this._store = new _store["default"]({
90
89
  userControl: this.userControl,
91
- chatRoomControl: this.chatRoomControl,
92
90
  streamControl: this.streamControl,
93
91
  deviceStore: this.deviceProvider,
94
92
  remoteVideoRenderManager: this.remoteVideoRenderProvider,
95
93
  localVideoRenderProvider: this.localVideoRenderProvider,
96
- securityStore: ((_this$currentRoomCont4 = this.currentRoomControlProvider) === null || _this$currentRoomCont4 === void 0 || (_this$currentRoomCont4 = _this$currentRoomCont4.currentRoomControl.getRoomInfo()) === null || _this$currentRoomCont4 === void 0 ? void 0 : _this$currentRoomCont4.roomType) === _type.FcrRoomType.Mainroom ? (_this$mainRoomControl = this.mainRoomControlProvider) === null || _this$mainRoomControl === void 0 ? void 0 : _this$mainRoomControl.privilegeProvider : (_this$waitingRoomCont = this.waitingRoomControlProvider) === null || _this$waitingRoomCont === void 0 ? void 0 : _this$waitingRoomCont.privilegeProvider,
94
+ securityStore: ((_this$currentRoomCont3 = this.currentRoomControlProvider) === null || _this$currentRoomCont3 === void 0 || (_this$currentRoomCont3 = _this$currentRoomCont3.currentRoomControl.getRoomInfo()) === null || _this$currentRoomCont3 === void 0 ? void 0 : _this$currentRoomCont3.roomType) === _type.FcrRoomType.Mainroom ? (_this$mainRoomControl = this.mainRoomControlProvider) === null || _this$mainRoomControl === void 0 ? void 0 : _this$mainRoomControl.privilegeProvider : (_this$waitingRoomCont = this.waitingRoomControlProvider) === null || _this$waitingRoomCont === void 0 ? void 0 : _this$waitingRoomCont.privilegeProvider,
97
95
  uiEventStore: this.eventProvider,
98
96
  sharedLayoutDataSource: this.sharedLayoutDataSource,
99
97
  dialogProvider: this.dialogProvider,
100
- phoneAudioConnectorProvider: this.phoneAudioConnectorProvider
98
+ phoneAudioConnectorProvider: this.phoneAudioConnectorProvider,
99
+ dialogsByKey: this._dialogsByKey,
100
+ widgetProvider: this.widgetProvider,
101
+ chatProvider: this.chatProvider,
102
+ abilityProvider: this.abilityProvider
101
103
  });
102
104
  this.eventProvider.addObserver({
103
105
  onEvent: this.onUiEvent.bind(this)
@@ -118,9 +120,7 @@ var DialogUIModule = exports.DialogUIModule = /*#__PURE__*/function (_UIModule)
118
120
  }
119
121
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_store.StoreContext.Provider, {
120
122
  value: this._store,
121
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_view.View, {
122
- dialogs: this._dialogs
123
- })
123
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_view.View, {})
124
124
  }, "dialog");
125
125
  }
126
126
  }, {
@@ -128,7 +128,7 @@ var DialogUIModule = exports.DialogUIModule = /*#__PURE__*/function (_UIModule)
128
128
  value: function addDialogs(dialogs) {
129
129
  var _this2 = this;
130
130
  dialogs.forEach(function (dialog) {
131
- _this2._dialogs.set(dialog.key, dialog.component);
131
+ _this2._dialogsByKey.set(dialog.key, dialog.component);
132
132
  });
133
133
  }
134
134
  }, {
@@ -1,5 +1,4 @@
1
1
  import { FcrStreamControl, FcrUserControl } from 'fcr-core';
2
- import { FcrChatRoomConnectionState, FcrChatRoomControl } from 'fcr-core/lib/room-control/chatroom-control/type';
3
2
  import { FcrUIDialogKey } from '../../utilities/constant';
4
3
  import { FcrUIPrivilegeProvider } from '../../providers/privilege-provider';
5
4
  import { FcrUIDeviceProvider } from '../../providers/device-provider';
@@ -11,6 +10,11 @@ import { FcrUIPhoneAudioConnectorProvider } from '../../providers/phone-audio-pr
11
10
  import { AgoraRtcScreenCaptureType } from 'agora-rte-sdk/lib/core/rtc/type';
12
11
  import { CurrentShareBounds } from '../control-bar/types';
13
12
  import { CurrentShareScreenTypes } from '../share-screen/types';
13
+ import { FcrUIDialogComponent } from './type';
14
+ import { FcrUIWidgetProvider } from '../../providers/widget-provider';
15
+ import { FcrUIChatProvider } from '../../providers/chat-provider';
16
+ import { FcrUIAbilityProviderImpl } from 'fcr-ui-scene/src/providers/ability-provider';
17
+ import { CurrentShareScreenWorkArea } from '../../utilities/tools';
14
18
  export declare const HIGH_LEVEL_DIALOG_LAYER: FcrUIDialogKey[];
15
19
  export declare const TOP_LEVEL_DIALOG_LAYER: FcrUIDialogKey[];
16
20
  export default class DialogStore {
@@ -24,29 +28,35 @@ export default class DialogStore {
24
28
  private _localVideoRenderProvider;
25
29
  private _remoteVideoRenderManager;
26
30
  private _dialogProvider;
27
- private _chatRoomControl;
28
- private _connnectBeforeCloseDetect;
31
+ private _widgetProvider;
29
32
  private _sharedLayoutDataSource;
30
33
  private _phoneAudioConnectorProvider;
34
+ private _dialogComponentMapByKey;
35
+ private _chatProvider;
31
36
  private _handleDialogEventObserver;
32
37
  private _userObserver;
33
- private _chatRoomObserver;
34
38
  accessor openedDialogs: {
35
- dialogKey: string;
39
+ dialogKey: FcrUIDialogKey;
36
40
  dialogId: string;
41
+ params?: unknown;
37
42
  }[];
38
- accessor payloadDialogs: Map<string, unknown>;
39
43
  accessor confirmDialogs: Map<string, unknown>;
40
44
  accessor userCount: number;
41
45
  accessor participantElectronDialogContainer: HTMLElement | null;
42
- accessor chatRoomState: FcrChatRoomConnectionState;
43
46
  accessor currentDialogBounds: Map<FcrUIDialogKey, number>;
44
47
  accessor videoWindowBounds: any;
45
48
  accessor currentShareId: string;
46
49
  accessor currentShareType: AgoraRtcScreenCaptureType;
47
50
  accessor currentShareBounds: CurrentShareBounds;
51
+ accessor recordShareBounds: Map<CurrentShareBounds, CurrentShareScreenWorkArea>;
52
+ get dialogComponentMapByKey(): Map<FcrUIDialogKey, FcrUIDialogComponent>;
48
53
  get participantCount(): number;
49
54
  get isManager(): boolean;
55
+ get dialogs(): {
56
+ dialogKey: FcrUIDialogKey;
57
+ dialogId: string;
58
+ params?: unknown;
59
+ }[];
50
60
  get streamControl(): FcrStreamControl;
51
61
  get deviceStore(): FcrUIDeviceProvider;
52
62
  get remoteVideoRenderManager(): FcrUIRemoteVideoRenderProvider;
@@ -54,10 +64,10 @@ export default class DialogStore {
54
64
  get waitingRoomState(): boolean;
55
65
  get connectType(): import("../../type").FcrUIConnectType;
56
66
  get hasOwnPstnStream(): boolean;
57
- constructor({ uiEventStore, userControl, chatRoomControl, deviceStore, streamControl, localVideoRenderProvider, remoteVideoRenderManager, securityStore, sharedLayoutDataSource, dialogProvider, phoneAudioConnectorProvider, }: {
67
+ get widgetDialogIds(): Map<string, string>;
68
+ constructor({ uiEventStore, userControl, deviceStore, streamControl, localVideoRenderProvider, remoteVideoRenderManager, securityStore, sharedLayoutDataSource, dialogProvider, phoneAudioConnectorProvider, dialogsByKey, widgetProvider, chatProvider, }: {
58
69
  streamControl: FcrStreamControl;
59
70
  userControl: FcrUserControl;
60
- chatRoomControl: FcrChatRoomControl;
61
71
  uiEventStore: FcrUIEventProvider;
62
72
  securityStore: FcrUIPrivilegeProvider;
63
73
  deviceStore: FcrUIDeviceProvider;
@@ -66,10 +76,16 @@ export default class DialogStore {
66
76
  sharedLayoutDataSource: FcrUISharedLayoutDataSource;
67
77
  dialogProvider: FcrUIDialogProvider;
68
78
  phoneAudioConnectorProvider: FcrUIPhoneAudioConnectorProvider;
79
+ dialogsByKey: Map<FcrUIDialogKey, FcrUIDialogComponent>;
80
+ widgetProvider: FcrUIWidgetProvider;
81
+ chatProvider: FcrUIChatProvider;
82
+ abilityProvider: FcrUIAbilityProviderImpl;
69
83
  });
84
+ get chatRoomState(): import("fcr-core/lib/room-control/chatroom-control/type").FcrChatRoomConnectionState;
70
85
  setParticipantElectronDialogContainer(dom: HTMLElement | null): void;
71
86
  setVideoWindowBounds(payload: any): void;
72
87
  closeDialogByKey(dialogKey: FcrUIDialogKey): void;
88
+ closeDilaogByDialogId(dialogId: string): void;
73
89
  closeSystemPreferenceDialog(): void;
74
90
  closeChatFromDialog(): void;
75
91
  moveChatFromDialogToAside(): void;
@@ -79,8 +95,8 @@ export default class DialogStore {
79
95
  release(): void;
80
96
  resizeVideoWindow(width: number, height: number): void;
81
97
  updateCurrentShareContent(payload: CurrentShareScreenTypes): void;
98
+ getCurrentSharingScreenBounds(): CurrentShareScreenWorkArea;
82
99
  private _handleDialogEvent;
83
- private _handleConnectionUpdated;
84
100
  private _hanleAllUserCountUpdated;
85
101
  }
86
102
  export declare const StoreContext: import("react").Context<DialogStore>;