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
@@ -22,6 +22,9 @@ Object.defineProperty(exports, "__esModule", {
22
22
  });
23
23
  exports.SystemPreferenceDialog = void 0;
24
24
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+ require("core-js/modules/es.array.map.js");
26
+ require("core-js/modules/esnext.async-iterator.map.js");
27
+ require("core-js/modules/esnext.iterator.map.js");
25
28
  var _react = require("react");
26
29
  var _store = require("../../store");
27
30
  var _reactRnd = require("react-rnd");
@@ -31,75 +34,71 @@ var _i18n = require("agora-ui-foundation/lib/i18n");
31
34
  var _button = require("agora-ui-foundation/lib/components/button");
32
35
  var _env = require("agora-foundation/lib/utilities/env");
33
36
  require("./index.css");
34
- var _bg = _interopRequireDefault(require("./bg1.png"));
35
- var _bg2 = _interopRequireDefault(require("./bg2.png"));
37
+ var _bg = _interopRequireDefault(require("./assets/bg1.png"));
38
+ var _bg2 = _interopRequireDefault(require("./assets/bg2.png"));
39
+ var _fcr_png_host = _interopRequireDefault(require("./assets/fcr_png_host.png"));
36
40
  var _jsxRuntime = require("react/jsx-runtime");
37
41
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
38
42
  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
- var SystemPreferenceDialogContent = function SystemPreferenceDialogContent(_ref) {
40
- var params = _ref.params;
43
+ var SystemPreferenceDialogContent = function SystemPreferenceDialogContent(props) {
41
44
  var t = (0, _i18n.useI18n)();
45
+ var _props$title = props.title,
46
+ title = _props$title === void 0 ? t('fmt_camera_popup_label_restricted') : _props$title,
47
+ _props$img = props.img,
48
+ img = _props$img === void 0 ? _bg["default"] : _props$img,
49
+ _props$desc = props.desc,
50
+ desc = _props$desc === void 0 ? t('fmt_camera_popup_label_system_change') : _props$desc,
51
+ _props$buttons = props.buttons,
52
+ buttons = _props$buttons === void 0 ? [] : _props$buttons;
42
53
  var _useContext = (0, _react.useContext)(_store.StoreContext),
43
54
  closeSystemPreferenceDialog = _useContext.closeSystemPreferenceDialog;
44
- var deviceMap = {
45
- camera: {
46
- title: t('fmt_camera_popup_label_restricted'),
47
- desc: t('fmt_camera_popup_label_system_change'),
48
- img: _bg["default"]
49
- },
50
- microphone: {
51
- title: t('fmt_audio_popup_label_restricted'),
52
- desc: t('fmt_audio_popup_label_system_change'),
53
- img: _bg2["default"]
54
- }
55
+ var images = {
56
+ host: _fcr_png_host["default"],
57
+ video: _bg["default"],
58
+ audio: _bg2["default"]
55
59
  };
60
+ var src = typeof img === 'string' && img in images ? images[img] : img;
56
61
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
57
62
  className: "fcr-system-preference-dialog",
58
63
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
59
- src: deviceMap[params].img,
64
+ src: src,
60
65
  alt: ""
61
66
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
62
67
  className: "fcr-system-preference-dialog-title",
63
- children: deviceMap[params].title
68
+ children: title
64
69
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
65
70
  className: "fcr-system-preference-dialog-desc",
66
- children: deviceMap[params].desc
67
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
68
- className: "fcr-system-preference-dialog-button",
69
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.FcrButton, {
70
- size: "S",
71
- styleType: "normal",
72
- shape: "rounded",
73
- onClick: function onClick() {
74
- closeSystemPreferenceDialog();
75
- window.runtime.openSystemPreferences(params);
76
- },
77
- children: t('fmt_audio_popup_button_system_change')
78
- })
79
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
80
- className: "fcr-system-preference-dialog-button",
81
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.FcrButton, {
82
- size: "S",
83
- styleType: "white",
84
- shape: "rounded",
85
- onClick: closeSystemPreferenceDialog,
86
- children: t('fmt_audio_popup_button_cancel')
87
- })
71
+ children: desc
72
+ }), buttons.map(function (button) {
73
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
74
+ className: "fcr-system-preference-dialog-button",
75
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.FcrButton, {
76
+ size: "S",
77
+ styleType: button.styleType || 'normal',
78
+ shape: "rounded",
79
+ onClick: function onClick() {
80
+ var _button$onClick;
81
+ button.withClose && closeSystemPreferenceDialog();
82
+ (_button$onClick = button.onClick) === null || _button$onClick === void 0 || _button$onClick.call(button);
83
+ },
84
+ children: button.text
85
+ })
86
+ });
88
87
  })]
89
88
  });
90
89
  };
91
- var SystemPreferenceDialog = exports.SystemPreferenceDialog = function SystemPreferenceDialog(_ref2) {
92
- var params = _ref2.params;
90
+ var SystemPreferenceDialog = exports.SystemPreferenceDialog = function SystemPreferenceDialog(_ref) {
91
+ var params = _ref.params;
93
92
  var store = (0, _react.useContext)(_store.StoreContext);
94
93
  var containerWidth = window.innerWidth;
95
94
  var containerHeight = window.innerHeight;
96
- var _ref3 = (0, _env.isElectron)() ? window.runtime.browserWindow.getBounds() : {
95
+ var _ref2 = (0, _env.isElectron)() ? window.runtime.browserWindow.getBounds() : {
97
96
  x: document.body.offsetLeft,
98
97
  y: document.body.offsetTop
99
98
  },
100
- offsetX = _ref3.x,
101
- offsetY = _ref3.y;
102
- var width = (params === null || params === void 0 ? void 0 : params.width) || 280;
99
+ offsetX = _ref2.x,
100
+ offsetY = _ref2.y;
101
+ var width = (params === null || params === void 0 ? void 0 : params.width) || 320;
103
102
  var height = (params === null || params === void 0 ? void 0 : params.height) || 387;
104
103
  var x = containerWidth / 2 - width / 2 + ((0, _platform.isWindows)() ? offsetX : 0);
105
104
  var y = containerHeight / 2 - height / 2 + ((0, _platform.isWindows)() ? offsetY : 0);
@@ -109,9 +108,7 @@ var SystemPreferenceDialog = exports.SystemPreferenceDialog = function SystemPre
109
108
  x: x,
110
109
  y: y
111
110
  }),
112
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SystemPreferenceDialogContent, {
113
- params: params
114
- })
111
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SystemPreferenceDialogContent, _objectSpread({}, params))
115
112
  });
116
113
  }
117
114
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_store.StoreContext.Provider, {
@@ -127,13 +124,8 @@ var SystemPreferenceDialog = exports.SystemPreferenceDialog = function SystemPre
127
124
  maxWidth: width,
128
125
  minWidth: width,
129
126
  minHeight: height,
130
- bounds: '.fcr-confirm-dialog-wrapper_web',
131
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
132
- className: "fcr-confirm-dialog-wrapper_web",
133
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SystemPreferenceDialogContent, {
134
- params: params
135
- })
136
- })
127
+ bounds: '.fcr-system-preference-dialog',
128
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SystemPreferenceDialogContent, _objectSpread({}, params))
137
129
  })
138
130
  });
139
131
  };
@@ -1,2 +1,2 @@
1
1
  import { PropsWithChildren } from 'react';
2
- export declare const VideoWindowDialog: ({ children }: PropsWithChildren<{}>) => import("react/jsx-runtime").JSX.Element | null;
2
+ export declare const VideoWindowDialog: ({ children }: PropsWithChildren<{}>) => null;
@@ -1,23 +1,40 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.array.filter.js");
5
+ require("core-js/modules/es.array.push.js");
6
+ require("core-js/modules/es.object.define-properties.js");
3
7
  require("core-js/modules/es.object.define-property.js");
8
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
9
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
10
+ require("core-js/modules/es.object.keys.js");
11
+ require("core-js/modules/esnext.async-iterator.filter.js");
12
+ require("core-js/modules/esnext.iterator.filter.js");
4
13
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
14
  Object.defineProperty(exports, "__esModule", {
6
15
  value: true
7
16
  });
8
17
  exports.VideoWindowDialog = void 0;
18
+ require("core-js/modules/es.array.concat.js");
19
+ require("core-js/modules/es.array.for-each.js");
20
+ require("core-js/modules/es.object.to-string.js");
21
+ require("core-js/modules/esnext.async-iterator.for-each.js");
22
+ require("core-js/modules/esnext.iterator.constructor.js");
23
+ require("core-js/modules/esnext.iterator.for-each.js");
24
+ require("core-js/modules/web.dom-collections.for-each.js");
25
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
26
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
27
  var _react = require("react");
10
28
  var _mobxReact = require("mobx-react");
11
- var _env = require("agora-foundation/lib/utilities/env");
12
- var _reactDom = require("react-dom");
13
29
  var _debounce = _interopRequireDefault(require("lodash/debounce"));
14
30
  var _constant = require("../../../../utilities/constant");
15
- var _renderer = require("../../../../utilities/renderer");
16
31
  var _videoTrackRenderContext = require("../../../../utilities/video-track-render-context");
17
32
  var _type = require("../../../video-window/type");
18
33
  var _store = require("../../store");
19
- var _dialogs = require("../../dialogs");
34
+ var _useElectron = require("../../hooks/useElectron");
20
35
  var _jsxRuntime = require("react/jsx-runtime");
36
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
37
+ 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; }
21
38
  function changeVideoWindowConfig(browserWindow) {
22
39
  var resizeble = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
23
40
  browserWindow.setResizable(resizeble);
@@ -25,123 +42,221 @@ function changeVideoWindowConfig(browserWindow) {
25
42
  browserWindow.setMinimumSize(resizeble ? _type.DefaultVideoWindowWidth : 0, resizeble ? _type.DefaultVideoWindowSmallTypeHeight : 0);
26
43
  browserWindow.setMaximumSize(resizeble ? _type.VideoWindowZoomMaxWidth : 0, resizeble ? _type.VideoWindowZoomMaxHeight : 0);
27
44
  }
28
- var VideoWindowElectronDialog = (0, _mobxReact.observer)(function (_ref) {
45
+ var VideoWindowDialog = exports.VideoWindowDialog = (0, _mobxReact.observer)(function (_ref) {
29
46
  var children = _ref.children;
30
47
  var store = (0, _react.useContext)(_store.StoreContext);
31
- var _store$videoWindowBou = store.videoWindowBounds,
32
- videoWindowHeight = _store$videoWindowBou.videoWindowHeight,
33
- videoWindowPreviewType = _store$videoWindowBou.videoWindowPreviewType,
34
- workareaX = _store$videoWindowBou.workareaX,
35
- workareaY = _store$videoWindowBou.workareaY,
36
- workareaWidth = _store$videoWindowBou.workareaWidth,
37
- workareaHeight = _store$videoWindowBou.workareaHeight;
48
+ var wrapperDomRef = (0, _react.useRef)();
49
+ var observerRef = (0, _react.useRef)();
50
+ var debounceRef = (0, _react.useRef)();
51
+ var calculateRef = (0, _react.useRef)();
52
+ var videoWindowBounds = store.videoWindowBounds,
53
+ currentShareBounds = store.currentShareBounds;
54
+ var _useMemo = (0, _react.useMemo)(function () {
55
+ return videoWindowBounds;
56
+ }, [videoWindowBounds]),
57
+ height = _useMemo.videoWindowHeight,
58
+ type = _useMemo.videoWindowPreviewType;
59
+ var _window$runtime$scree = window.runtime.screen.getDisplayNearestPoint(currentShareBounds).bounds,
60
+ x = _window$runtime$scree.x,
61
+ y = _window$runtime$scree.y,
62
+ width = _window$runtime$scree.width;
38
63
  var initalBounds = {
39
- x: workareaX + workareaWidth - _type.DefaultVideoWindowWidth - 220,
40
- y: workareaY + 80,
64
+ x: x + width - _type.DefaultVideoWindowWidth - 144,
65
+ y: y + 80,
41
66
  width: _type.DefaultVideoWindowWidth,
42
67
  height: _type.DefaultVideoWindowSmallTypeHeight
43
68
  };
44
- var videoWindowRef = (0, _react.useRef)();
45
- var handleBounds = function handleBounds(newBounds) {
46
- var height = newBounds.height;
47
- var width = newBounds.width;
48
- store.resizeVideoWindow(width < _type.DefaultVideoWindowWidth || !width ? _type.DefaultVideoWindowWidth : width, height < _type.DefaultVideoWindowSmallTypeHeight || !height ? _type.DefaultVideoWindowSmallTypeHeight : height);
49
- };
50
- (0, _react.useEffect)(function () {
51
- var node;
52
- window.runtime.openRendererWindow('video-window', function (dom, browserWindow, rendererWindow) {
53
- var _head$querySelector;
54
- node = dom;
55
- var style = document.createElement('style');
56
- style.id = 'video-window-scrollbar-style';
57
- style.textContent = "\n ::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n ";
58
- var head = rendererWindow.window.document.head;
59
- (_head$querySelector = head.querySelector('#video-window-scrollbar-style')) === null || _head$querySelector === void 0 || _head$querySelector.remove();
60
- head.appendChild(style);
61
- videoWindowRef.current = browserWindow;
62
- browserWindow.setTitle('Video Window');
63
- browserWindow.setResizable(false); // 修复分享窗口切换时导致的大小失真的情况,所以要在修改 bounds 之前先设置为不可修改大小
69
+ var config = _objectSpread(_objectSpread({
70
+ title: 'Video Window',
71
+ type: 'panel',
72
+ frame: false,
73
+ fullscreen: false,
74
+ maximizable: false
75
+ }, initalBounds), {}, {
76
+ minWidth: _type.DefaultVideoWindowWidth,
77
+ transparent: true,
78
+ alwaysOnTop: true,
79
+ hasShadow: false,
80
+ resizable: true,
81
+ skipTaskbar: true
82
+ });
64
83
 
65
- browserWindow.setBounds(initalBounds);
66
- changeVideoWindowConfig(browserWindow);
67
- browserWindow.setBackgroundColor('#00000000');
68
- browserWindow.setVisibleOnAllWorkspaces(true, {
69
- visibleOnFullScreen: true,
70
- skipTransformProcessType: true
71
- });
72
- browserWindow.setAlwaysOnTop(true, 'screen-saver');
73
- _dialogs.dialogWindows.set(_constant.FcrUIDialogKey.VIDEO_WINDOW, browserWindow);
74
- (0, _renderer.handleWillClose)(browserWindow, function () {
75
- (0, _reactDom.unmountComponentAtNode)(node);
76
- _dialogs.dialogWindows["delete"](_constant.FcrUIDialogKey.VIDEO_WINDOW);
77
- if (!browserWindow.isDestroyed()) {
78
- browserWindow.removeAllListeners('will-resize');
84
+ // const handleBounds = (newBounds: Electron.Rectangle) => {
85
+ // const height = newBounds.height;
86
+ // const width = newBounds.width;
87
+ // store.resizeVideoWindow(
88
+ // width < defaultWidth || !width ? defaultWidth : width,
89
+ // height < DefaultVideoWindowSmallTypeHeight || !height
90
+ // ? DefaultVideoWindowSmallTypeHeight
91
+ // : height,
92
+ // );
93
+ // };
94
+ var _useState = (0, _react.useState)({
95
+ width: _type.DefaultVideoWindowWidth,
96
+ height: _type.DefaultVideoWindowSmallTypeHeight
97
+ }),
98
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
99
+ newBounds = _useState2[0],
100
+ setNewBounds = _useState2[1];
101
+ var _useElectronDialog = (0, _useElectron.useElectronDialog)({
102
+ dialogKey: _constant.FcrUIDialogKey.VIDEO_WINDOW,
103
+ config: config,
104
+ hasCustomShadow: false,
105
+ alwaysOnTop: 'screen-saver',
106
+ disableShortcutClose: true,
107
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_videoTrackRenderContext.FcrVideoTrackRenderContext.Provider, {
108
+ value: {
109
+ localVideoRenderProvider: store.localVideoRenderProvider,
110
+ remoteVideoRenderProvider: store.remoteVideoRenderManager
111
+ },
112
+ children: children
113
+ }),
114
+ onOpened: function onOpened(_ref2) {
115
+ var browserWindow = _ref2.browserWindow,
116
+ newRendererWindow = _ref2.newRendererWindow;
117
+ browserWindow.setBounds(initalBounds);
118
+ function reCalculate() {
119
+ var currentShareBounds = store.getCurrentSharingScreenBounds();
120
+ var _window$runtime$scree2 = window.runtime.screen.getDisplayNearestPoint(currentShareBounds).bounds,
121
+ x = _window$runtime$scree2.x,
122
+ y = _window$runtime$scree2.y,
123
+ width = _window$runtime$scree2.width;
124
+ browserWindow.setBounds({
125
+ x: x + width - _type.DefaultVideoWindowWidth - 144,
126
+ y: y + 80,
127
+ width: _type.DefaultVideoWindowWidth,
128
+ height: _type.DefaultVideoWindowSmallTypeHeight
129
+ });
130
+ }
131
+ calculateRef.current = reCalculate;
132
+
133
+ // @ts-ignore
134
+ window.runtime.screen.addListener('display-metrics-changed', calculateRef.current);
135
+ // browserWindow.on(
136
+ // 'move',
137
+ // debounce(() => {
138
+ // popoverWatcher(browserWindow, newRendererWindow);
139
+ // }, 100),
140
+ // );
141
+ debounceRef.current = (0, _debounce["default"])(function (event, bounds) {
142
+ setNewBounds(bounds);
143
+ popoverWatcher(browserWindow, newRendererWindow);
144
+ }, 100);
145
+ browserWindow.addListener(
146
+ // @ts-ignore
147
+ 'custom-resize', debounceRef.current);
148
+ changeVideoWindowConfig(browserWindow);
149
+ popoverWatcher(browserWindow, newRendererWindow);
150
+ },
151
+ onClose: function onClose(_ref3) {
152
+ var browserWindow = _ref3.browserWindow;
153
+ if (!(browserWindow !== null && browserWindow !== void 0 && browserWindow.isDestroyed())) {
154
+ // @ts-ignore
155
+ browserWindow.removeListener('custom-resize', debounceRef.current);
156
+ // @ts-ignore
157
+ window.runtime.screen.removeListener('display-metrics-changed', calculateRef.current);
79
158
  changeVideoWindowConfig(browserWindow);
80
159
  browserWindow.setResizable(false);
81
160
  browserWindow.setBounds(initalBounds);
82
161
  }
83
- });
84
- if (browserWindow) {
85
- browserWindow.addListener('will-resize', (0, _debounce["default"])(function (event, newBounds) {
86
- handleBounds(newBounds);
87
- }, 100));
88
162
  }
89
- (0, _reactDom.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_videoTrackRenderContext.FcrVideoTrackRenderContext.Provider, {
90
- value: {
91
- localVideoRenderProvider: store.localVideoRenderProvider,
92
- remoteVideoRenderProvider: store.remoteVideoRenderManager
93
- },
94
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_store.StoreContext.Provider, {
95
- value: store,
96
- children: children
97
- })
98
- }), dom);
99
- }, {
100
- type: 'panel',
101
- frame: false,
102
- fullscreen: false,
103
- maximizable: false,
104
- x: workareaX + workareaWidth - _type.DefaultVideoWindowWidth - 220,
105
- y: workareaY + 80,
106
- width: _type.DefaultVideoWindowWidth,
107
- height: _type.DefaultVideoWindowSmallTypeHeight,
108
- minWidth: _type.DefaultVideoWindowWidth,
109
- transparent: true,
110
- alwaysOnTop: true,
111
- hasShadow: false,
112
- resizable: true,
113
- skipTaskbar: true
114
- });
115
- return function () {
116
- node && (0, _reactDom.unmountComponentAtNode)(node);
117
- window.runtime.closeRendererWindow('video-window');
118
- };
119
- }, []);
163
+ }),
164
+ browserWindow = _useElectronDialog.browserWindow,
165
+ newRendererWindow = _useElectronDialog.newRendererWindow;
120
166
  (0, _react.useEffect)(function () {
121
- if (!videoWindowRef.current) return;
167
+ if (!browserWindow) return;
122
168
  var x = initalBounds.x,
123
169
  y = initalBounds.y;
124
- videoWindowRef.current.setBounds({
170
+ browserWindow.setBounds({
125
171
  x: x,
126
172
  y: y
127
173
  });
128
- }, [workareaX, workareaY]);
174
+ }, [x, y]);
129
175
  (0, _react.useEffect)(function () {
130
- if (!videoWindowRef.current) return;
131
- videoWindowRef.current.setResizable(false);
132
- videoWindowRef.current.setBounds({
133
- width: _type.DefaultVideoWindowWidth,
134
- height: videoWindowHeight
176
+ if (!browserWindow) return;
177
+ browserWindow.setResizable(false);
178
+ resetSize(type, true);
179
+ newRendererWindow && popoverWatcher(browserWindow, newRendererWindow);
180
+ changeVideoWindowConfig(browserWindow, type === _type.FcrVideoWindowPreviewType.SMALL);
181
+ }, [height, type, newBounds]);
182
+ function resetSize(type, withStyle) {
183
+ var _wrapperDomRef$curren, _wrapperDomRef$curren2;
184
+ if (!browserWindow) return;
185
+ switch (type) {
186
+ case _type.FcrVideoWindowPreviewType.MINI:
187
+ browserWindow === null || browserWindow === void 0 || browserWindow.setBounds({
188
+ height: _type.DefaultVideoWindowHeight,
189
+ width: _type.DefaultVideoWindowWidth
190
+ });
191
+ break;
192
+ case _type.FcrVideoWindowPreviewType.SMALL:
193
+ browserWindow === null || browserWindow === void 0 || browserWindow.setBounds({
194
+ height: newBounds.height,
195
+ width: newBounds.width
196
+ });
197
+ withStyle && ((_wrapperDomRef$curren = wrapperDomRef.current) === null || _wrapperDomRef$curren === void 0 ? void 0 : _wrapperDomRef$curren.setAttribute('style', "height: undefined; width: undefined"));
198
+ break;
199
+ case _type.FcrVideoWindowPreviewType.LIST:
200
+ browserWindow === null || browserWindow === void 0 || browserWindow.setBounds({
201
+ height: height,
202
+ width: _type.DefaultVideoWindowWidth
203
+ });
204
+ withStyle && ((_wrapperDomRef$curren2 = wrapperDomRef.current) === null || _wrapperDomRef$curren2 === void 0 ? void 0 : _wrapperDomRef$curren2.setAttribute('style', "height: ".concat(height, ";width: ").concat(_type.DefaultVideoWindowWidth, "px")));
205
+ break;
206
+ }
207
+ }
208
+ function popoverWatcher(browserWindow, newRendererWindow) {
209
+ if (!newRendererWindow || !browserWindow) return;
210
+ if (observerRef.current) observerRef.current.disconnect();
211
+ var HEAD_HEIGHT_OFFSET = 150;
212
+ var WIDTH_RIGHT_OFFSET = 30;
213
+ var browserWindowBounds = browserWindow.getBounds();
214
+ var nearDisplay = window.runtime.screen.getDisplayNearestPoint(browserWindowBounds);
215
+ var nearDisplayBounds = nearDisplay.bounds;
216
+ observerRef.current = new MutationObserver(function (mutationsList) {
217
+ var body = newRendererWindow.document.body;
218
+ var popover = body.querySelector('.fcr-popover');
219
+ wrapperDomRef.current = body.querySelector('.fcr-video-window-dialog-wrapper');
220
+ var wrapper = wrapperDomRef.current;
221
+ mutationsList.forEach(function (mutation) {
222
+ if (mutation.type === 'childList') {
223
+ mutation.addedNodes.forEach(function (node) {
224
+ if (node.nodeType === Node.ELEMENT_NODE && node.contains(popover)) {
225
+ if (popover) {
226
+ var wrapperHeight = wrapper.offsetHeight,
227
+ wrapperWidth = wrapper.offsetWidth;
228
+ var popoverHeight = popover.offsetHeight,
229
+ popoverWidth = popover.offsetWidth,
230
+ offsetTop = popover.offsetTop,
231
+ offsetLeft = popover.offsetLeft;
232
+ // 如果 popover 展开,根据 popover 的尺寸调整窗口的尺寸可以正好容纳 popover
233
+ browserWindow.setBounds({
234
+ height: Math.max(wrapperHeight, popoverHeight + HEAD_HEIGHT_OFFSET),
235
+ width: wrapperWidth + popoverWidth - WIDTH_RIGHT_OFFSET
236
+ });
237
+ var diffLeft = nearDisplayBounds.width - browserWindowBounds.width;
238
+ var diffWidth = diffLeft - wrapperWidth;
239
+ if (wrapper) {
240
+ var rect = wrapper.getBoundingClientRect();
241
+ wrapper.setAttribute('style', "height: ".concat(rect.height, "px;width: ").concat(rect.width, "px"));
242
+ // popover.setAttribute('style', `left: ${offsetLeft}px;top: ${offsetTop}px`);
243
+ }
244
+ }
245
+ }
246
+ });
247
+ mutation.removedNodes.forEach(function (node) {
248
+ var _classList;
249
+ if ((_classList = node.classList) !== null && _classList !== void 0 && _classList.contains('fcr-popover')) {
250
+ resetSize(type);
251
+ type === _type.FcrVideoWindowPreviewType.SMALL && browserWindow.setResizable(true);
252
+ }
253
+ });
254
+ }
255
+ });
135
256
  });
136
- changeVideoWindowConfig(videoWindowRef.current, videoWindowPreviewType === 'small');
137
- }, [videoWindowHeight, videoWindowPreviewType]);
138
- return null;
139
- });
140
- var VideoWindowDialog = exports.VideoWindowDialog = (0, _mobxReact.observer)(function (_ref2) {
141
- var children = _ref2.children;
142
- if ((0, _env.isElectron)()) {
143
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(VideoWindowElectronDialog, {
144
- children: children
257
+ observerRef.current.observe(newRendererWindow.document.body, {
258
+ childList: true,
259
+ subtree: true
145
260
  });
146
261
  }
147
262
  return null;
@@ -0,0 +1,5 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { FcrUIWebWidgetConfig } from '../../../../type';
3
+ export declare const WidgetElectronDialog: ({ children, params, }: PropsWithChildren<{
4
+ params: FcrUIWebWidgetConfig;
5
+ }>) => null;
@@ -0,0 +1,37 @@
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.WidgetElectronDialog = void 0;
8
+ require("core-js/modules/es.function.name.js");
9
+ var _constant = require("../../../../utilities/constant");
10
+ var _useElectron = require("../../hooks/useElectron");
11
+ var WidgetElectronDialog = exports.WidgetElectronDialog = function WidgetElectronDialog(_ref) {
12
+ var _params$popupSize, _params$popupSize2;
13
+ var children = _ref.children,
14
+ params = _ref.params;
15
+ var width = (_params$popupSize = params.popupSize) !== null && _params$popupSize !== void 0 && _params$popupSize.width ? params.popupSize.width + 2 : undefined;
16
+ var height = (_params$popupSize2 = params.popupSize) !== null && _params$popupSize2 !== void 0 && _params$popupSize2.height ? params.popupSize.height + 76 : undefined;
17
+ var config = {
18
+ fullscreen: false,
19
+ maximizable: false,
20
+ trafficLightPosition: {
21
+ x: 10,
22
+ y: 60
23
+ },
24
+ width: width,
25
+ height: height,
26
+ title: params.name,
27
+ resizable: false
28
+ };
29
+ (0, _useElectron.useElectronDialogByDialogId)({
30
+ config: config,
31
+ dialogKey: _constant.FcrUIDialogKey.WIDGET,
32
+ dialogId: params.id,
33
+ children: children,
34
+ hasCustomShadow: false
35
+ });
36
+ return null;
37
+ };
@@ -0,0 +1,6 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { FcrUIWebWidgetConfig } from '../../../../type';
3
+ declare const WidgetDialog: ({ children, params, }: PropsWithChildren<{
4
+ params: FcrUIWebWidgetConfig;
5
+ }>) => import("react/jsx-runtime").JSX.Element;
6
+ export default WidgetDialog;
@@ -0,0 +1,43 @@
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["default"] = void 0;
9
+ require("core-js/modules/es.function.name.js");
10
+ var _env = require("agora-foundation/lib/utilities/env");
11
+ var _electron = require("./electron");
12
+ var _react = require("react");
13
+ var _i18n = require("agora-ui-foundation/lib/i18n");
14
+ var _dialogContainer = _interopRequireDefault(require("../dialog-container"));
15
+ var _constant = require("../../../../utilities/constant");
16
+ var _store = require("../../store");
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
+ var WidgetDialog = function WidgetDialog(_ref) {
19
+ var _params$popupSize, _params$popupSize2;
20
+ var children = _ref.children,
21
+ params = _ref.params;
22
+ var t = (0, _i18n.useI18n)();
23
+ var _useContext = (0, _react.useContext)(_store.StoreContext),
24
+ widgetDialogIds = _useContext.widgetDialogIds;
25
+ var width = (_params$popupSize = params.popupSize) !== null && _params$popupSize !== void 0 && _params$popupSize.width ? params.popupSize.width + 2 : undefined;
26
+ var height = (_params$popupSize2 = params.popupSize) !== null && _params$popupSize2 !== void 0 && _params$popupSize2.height ? params.popupSize.height + 46 : undefined;
27
+ var container = /*#__PURE__*/(0, _jsxRuntime.jsx)(_dialogContainer["default"], {
28
+ title: params.name,
29
+ width: width,
30
+ height: height,
31
+ dialogKey: _constant.FcrUIDialogKey.WIDGET,
32
+ dialogId: widgetDialogIds.get(params.id),
33
+ children: children
34
+ });
35
+ if ((0, _env.isElectron)()) {
36
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_electron.WidgetElectronDialog, {
37
+ params: params,
38
+ children: container
39
+ });
40
+ }
41
+ return container;
42
+ };
43
+ var _default = exports["default"] = WidgetDialog;
@@ -1,3 +1,4 @@
1
+ import { FcrUIDialogHooksProps } from '../type';
1
2
  export declare const DialogInstanceContext: import("react").Context<{
2
3
  browserWindow: Electron.BrowserWindow;
3
4
  newRendererWindow: Window;
@@ -7,4 +8,10 @@ export declare const shadowOffset: number;
7
8
  export declare function useElectronDialog(props: FcrUIDialogHooksProps): {
8
9
  store: import("../store").default;
9
10
  browserWindow: Electron.BrowserWindow | undefined;
11
+ newRendererWindow: Window | undefined;
12
+ };
13
+ export declare function useElectronDialogByDialogId(props: FcrUIDialogHooksProps): {
14
+ store: import("../store").default;
15
+ browserWindow: Electron.BrowserWindow | undefined;
16
+ newRendererWindow: Window | undefined;
10
17
  };