fcr-ui-scene 3.6.0 → 3.6.2

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 (323) hide show
  1. package/dist/132.js +2 -0
  2. package/dist/132.js.LICENSE.txt +311 -0
  3. package/dist/317.js +2 -0
  4. package/dist/317.js.LICENSE.txt +20 -0
  5. package/dist/651.js +2 -0
  6. package/dist/651.js.LICENSE.txt +1 -0
  7. package/dist/689343b64b60bfb7ffff.png +0 -0
  8. package/dist/73.js +1 -0
  9. package/dist/885f9369ea05a8ac0e56.png +0 -0
  10. package/dist/90f383876a6e93e7c7ca.png +0 -0
  11. package/dist/9b37584780995fc5df8c.gif +0 -0
  12. package/dist/annotation.e5cbd3a70b6d42361872.css +1274 -0
  13. package/dist/annotation.html +1 -0
  14. package/dist/annotation.js +2 -0
  15. package/dist/annotation.js.LICENSE.txt +252 -0
  16. package/dist/assets/browser/images/default1.jpg +0 -0
  17. package/dist/assets/browser/images/default2.jpg +0 -0
  18. package/dist/assets/browser/images/default3.jpg +0 -0
  19. package/dist/assets/browser/images/default4.jpg +0 -0
  20. package/dist/assets/browser/images/default5.jpg +0 -0
  21. package/dist/assets/browser/images/default6.jpg +0 -0
  22. package/dist/assets/browser/images/default7.jpg +0 -0
  23. package/dist/assets/browser/sound_effects/pretest.mp3 +0 -0
  24. package/dist/assets/browser/sound_effects/recording_started.mp3 +0 -0
  25. package/dist/assets/browser/sound_effects/remote_user_joined.mp3 +0 -0
  26. package/dist/assets/browser/sound_effects/speaker_test.mp3 +0 -0
  27. package/dist/assets/browser/videos/default8.mp4 +0 -0
  28. package/dist/assets/browser/videos/default9.mp4 +0 -0
  29. package/dist/assets/cursors/fcr_whiteboard_input.ico +0 -0
  30. package/dist/assets/cursors/fcr_whiteboard_pen.ico +0 -0
  31. package/dist/assets/cursors/fcr_whiteboard_shape_-straightline.ico +0 -0
  32. package/dist/assets/cursors/fcr_whiteboard_shape_arrow.ico +0 -0
  33. package/dist/assets/cursors/fcr_whiteboard_shape_circle.ico +0 -0
  34. package/dist/assets/cursors/fcr_whiteboard_shape_rectangle.ico +0 -0
  35. package/dist/assets/cursors/fcr_whiteboard_shape_triangle.ico +0 -0
  36. package/dist/assets/electron/images/default1.jpg +0 -0
  37. package/dist/assets/electron/images/default2.jpg +0 -0
  38. package/dist/assets/electron/sound_effects/pretest.mp3 +0 -0
  39. package/dist/assets/electron/videos/default8.mp4 +0 -0
  40. package/dist/assets/fcr_chat_reddot.svg +5 -0
  41. package/dist/assets/fcr_defaultpage.png +0 -0
  42. package/dist/assets/fcr_grid_big.svg +3 -0
  43. package/dist/assets/fcr_leave2.svg +58 -0
  44. package/dist/assets/fcr_listontop_big.svg +3 -0
  45. package/dist/assets/full-screen-error-boundary-img.png +0 -0
  46. package/dist/assets/leave-meeting.png +0 -0
  47. package/dist/assets/loading.gif +0 -0
  48. package/dist/assets/login_confirm.png +0 -0
  49. package/dist/assets/pretest.mp3 +0 -0
  50. package/dist/assets/state-bar-logo.png +0 -0
  51. package/dist/assets/step-gradient.svg +10 -0
  52. package/dist/b74b002687a3a3346bec.png +0 -0
  53. package/dist/b94869094481702f949b.png +0 -0
  54. package/dist/ebeace75fd46b90d890e.png +0 -0
  55. package/dist/electron/app.js +194 -0
  56. package/dist/electron/bootstrap-dev.js +46 -0
  57. package/dist/electron/bootstrap-sdk.js +211 -0
  58. package/dist/electron/default-options.js +25 -0
  59. package/dist/electron/env.js +13 -0
  60. package/dist/electron/index.js +20 -0
  61. package/dist/electron/injections.js +903 -0
  62. package/dist/electron/ipc/ipc.js +141 -0
  63. package/dist/electron/ipc/type.js +19 -0
  64. package/dist/electron/logger.js +65 -0
  65. package/dist/electron/main.js +94 -0
  66. package/dist/electron/plugins/devtool-shortcut.js +33 -0
  67. package/dist/electron/plugins/meeting-state.js +39 -0
  68. package/dist/electron/plugins/screenshot.js +54 -0
  69. package/dist/electron/preload.js +108 -0
  70. package/dist/electron/tools.js +66 -0
  71. package/dist/electron/window.js +123 -0
  72. package/dist/extensions/agora-extension-virtual-background/agora-wasm.wasm +0 -0
  73. package/dist/extensions/ai-denoiser/denoiser-wasm-simd.wasm +0 -0
  74. package/dist/extensions/ai-denoiser/denoiser-wasm.js +1 -0
  75. package/dist/extensions/ai-denoiser/denoiser-wasm.wasm +0 -0
  76. package/dist/fad688b9135b15d6c405.png +0 -0
  77. package/dist/index.html +224 -0
  78. package/dist/main.393a2a91ab7fc05ffce6.css +15403 -0
  79. package/dist/main.js +2 -0
  80. package/dist/main.js.LICENSE.txt +272 -0
  81. package/dist/worker-entry.worker.js.LICENSE.txt +13 -0
  82. package/lib/creator.d.ts +5 -0
  83. package/lib/creator.js +106 -17
  84. package/lib/electron/bootstrap-sdk.js +19 -6
  85. package/lib/electron/injections.d.ts +4 -0
  86. package/lib/electron/injections.js +37 -8
  87. package/lib/electron/ipc/ipc.d.ts +1 -0
  88. package/lib/electron/ipc/ipc.js +4 -0
  89. package/lib/electron/main.js +6 -2
  90. package/lib/electron/plugins/screenshot.js +4 -2
  91. package/lib/electron/preload.js +7 -2
  92. package/lib/electron/window.js +4 -3
  93. package/lib/fragments/annotation/index.d.ts +10 -0
  94. package/lib/fragments/annotation/index.js +106 -0
  95. package/lib/fragments/annotation/libs.d.ts +55 -0
  96. package/lib/fragments/annotation/libs.js +93 -0
  97. package/lib/fragments/annotation/store.d.ts +25 -0
  98. package/lib/fragments/annotation/store.js +485 -0
  99. package/lib/fragments/annotation/view.d.ts +2 -0
  100. package/lib/fragments/annotation/view.js +23 -0
  101. package/lib/fragments/base.d.ts +10 -0
  102. package/lib/fragments/base.js +44 -0
  103. package/lib/global.css +23 -5
  104. package/lib/modules/action-bar/components/board/index.js +0 -2
  105. package/lib/modules/action-bar/components/breakout-room/index.js +0 -2
  106. package/lib/modules/action-bar/components/leave/index.js +1 -12
  107. package/lib/modules/action-bar/components/more/poppover-content.js +6 -9
  108. package/lib/modules/action-bar/components/participants/index.js +1 -9
  109. package/lib/modules/action-bar/components/screen-share/index.js +0 -4
  110. package/lib/modules/action-bar/components/screen-share/submenu.js +7 -6
  111. package/lib/modules/action-bar/index.css +7 -0
  112. package/lib/modules/action-bar/index.d.ts +2 -0
  113. package/lib/modules/action-bar/index.js +1 -0
  114. package/lib/modules/action-bar/store.d.ts +6 -4
  115. package/lib/modules/action-bar/store.js +19 -19
  116. package/lib/modules/action-bar/view.js +1 -1
  117. package/lib/modules/annotation/components/control-bar/index.css +48 -0
  118. package/lib/modules/annotation/components/control-bar/index.d.ts +3 -0
  119. package/lib/modules/annotation/components/control-bar/index.js +101 -0
  120. package/lib/modules/annotation/components/toolbar/components/color-tool/color-panel/index.d.ts +3 -0
  121. package/lib/modules/annotation/components/toolbar/components/color-tool/color-panel/index.js +46 -0
  122. package/lib/modules/annotation/components/toolbar/components/color-tool/index.d.ts +1 -0
  123. package/lib/modules/annotation/components/toolbar/components/color-tool/index.js +52 -0
  124. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.d.ts +3 -0
  125. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.js +59 -0
  126. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +11 -0
  127. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.js +59 -0
  128. package/lib/modules/annotation/components/toolbar/components/graphic-tool/index.d.ts +1 -0
  129. package/lib/modules/annotation/components/toolbar/components/graphic-tool/index.js +68 -0
  130. package/lib/modules/annotation/components/toolbar/components/item/item.d.ts +17 -0
  131. package/lib/modules/annotation/components/toolbar/components/item/item.js +115 -0
  132. package/lib/modules/annotation/components/toolbar/components/item/style.css +43 -0
  133. package/lib/modules/annotation/components/toolbar/components/panel/index.d.ts +5 -0
  134. package/lib/modules/annotation/components/toolbar/components/panel/index.js +22 -0
  135. package/lib/modules/annotation/components/toolbar/components/panel/style.css +24 -0
  136. package/lib/modules/annotation/components/toolbar/components/pen-tool/index.d.ts +1 -0
  137. package/lib/modules/annotation/components/toolbar/components/pen-tool/index.js +58 -0
  138. package/lib/modules/annotation/components/toolbar/components/pen-tool/pen-panel/index.d.ts +3 -0
  139. package/lib/modules/annotation/components/toolbar/components/pen-tool/pen-panel/index.js +34 -0
  140. package/lib/modules/annotation/components/toolbar/components/tips/index.d.ts +2 -0
  141. package/lib/modules/annotation/components/toolbar/components/tips/index.js +25 -0
  142. package/lib/modules/annotation/components/toolbar/components/tips/style.css +19 -0
  143. package/lib/modules/annotation/components/toolbar/index.d.ts +0 -0
  144. package/lib/modules/annotation/components/toolbar/index.js +1 -0
  145. package/lib/modules/annotation/components/toolbar/store.d.ts +40 -0
  146. package/lib/modules/annotation/components/toolbar/store.js +279 -0
  147. package/lib/modules/annotation/components/toolbar/style.css +55 -0
  148. package/lib/modules/annotation/components/toolbar/view.d.ts +2 -0
  149. package/lib/modules/annotation/components/toolbar/view.js +120 -0
  150. package/lib/modules/annotation/index.d.ts +36 -0
  151. package/lib/modules/annotation/index.js +168 -0
  152. package/lib/modules/annotation/store.d.ts +85 -0
  153. package/lib/modules/annotation/store.js +648 -0
  154. package/lib/modules/annotation/style.css +26 -0
  155. package/lib/modules/annotation/view.d.ts +2 -0
  156. package/lib/modules/annotation/view.js +32 -0
  157. package/lib/modules/audio-stream/index.js +4 -4
  158. package/lib/modules/chat/chat-room-store.js +3 -4
  159. package/lib/modules/chat/view.js +112 -100
  160. package/lib/modules/components/annotation-menu/index.d.ts +7 -0
  161. package/lib/modules/components/annotation-menu/index.js +119 -0
  162. package/lib/modules/components/leave-meeting/components/assign-host.js +26 -23
  163. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.d.ts +2 -0
  164. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +6 -3
  165. package/lib/modules/components/member-window/components/member-actions/index.js +0 -2
  166. package/lib/modules/components/member-window/components/member-actions/libs/index.js +0 -1
  167. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.d.ts +2 -1
  168. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.js +5 -1
  169. package/lib/modules/components/member-window/components/video-player/index.d.ts +1 -0
  170. package/lib/modules/components/member-window/index.css +1 -0
  171. package/lib/modules/components/member-window/index.d.ts +1 -1
  172. package/lib/modules/components/member-window/index.js +8 -6
  173. package/lib/modules/components/member-window/types.d.ts +2 -0
  174. package/lib/modules/components/security-menu/index.js +7 -6
  175. package/lib/modules/connection-gateway/components/phone/index.js +1 -1
  176. package/lib/modules/control-bar/components/annotation-button/index.d.ts +1 -0
  177. package/lib/modules/control-bar/components/annotation-button/index.js +59 -0
  178. package/lib/modules/control-bar/index.d.ts +6 -2
  179. package/lib/modules/control-bar/index.js +5 -2
  180. package/lib/modules/control-bar/store.d.ts +24 -8
  181. package/lib/modules/control-bar/store.js +116 -81
  182. package/lib/modules/control-bar/view.js +7 -3
  183. package/lib/modules/dialog/components/annotation-tool/index.d.ts +4 -0
  184. package/lib/modules/dialog/components/annotation-tool/index.js +53 -0
  185. package/lib/modules/dialog/components/chat/index.js +1 -1
  186. package/lib/modules/dialog/components/dialog-container/index.css +16 -0
  187. package/lib/modules/dialog/components/host-area-container/index.d.ts +12 -0
  188. package/lib/modules/dialog/components/host-area-container/index.js +214 -0
  189. package/lib/modules/dialog/components/participant/index.js +1 -1
  190. package/lib/modules/dialog/components/share-screen-selection/index.js +1 -2
  191. package/lib/modules/dialog/components/system-preference/index.js +1 -1
  192. package/lib/modules/dialog/components/video-window/index.js +1 -0
  193. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +14 -0
  194. package/lib/modules/dialog/hooks/use-popover-watcher.js +112 -0
  195. package/lib/modules/dialog/hooks/useElectron.d.ts +1 -0
  196. package/lib/modules/dialog/hooks/useElectron.js +22 -90
  197. package/lib/modules/dialog/index.d.ts +2 -0
  198. package/lib/modules/dialog/index.js +2 -2
  199. package/lib/modules/dialog/store.d.ts +9 -2
  200. package/lib/modules/dialog/store.js +46 -6
  201. package/lib/modules/event-confirm/components/window/index.d.ts +7 -0
  202. package/lib/modules/event-confirm/components/window/index.js +188 -0
  203. package/lib/modules/event-confirm/index.d.ts +4 -4
  204. package/lib/modules/event-confirm/index.js +6 -4
  205. package/lib/modules/event-confirm/store.d.ts +4 -5
  206. package/lib/modules/event-confirm/store.js +40 -25
  207. package/lib/modules/event-confirm/view.js +23 -171
  208. package/lib/modules/event-sound/index.js +1 -1
  209. package/lib/modules/event-toast/store.js +5 -2
  210. package/lib/modules/invite/components/pstn-invite.js +0 -17
  211. package/lib/modules/layout/components/Aside.js +0 -1
  212. package/lib/modules/layout/components/CommonVideoRenderer.js +30 -16
  213. package/lib/modules/layout/index.d.ts +4 -0
  214. package/lib/modules/layout/index.js +2 -0
  215. package/lib/modules/layout/store.d.ts +14 -2
  216. package/lib/modules/layout/store.js +84 -46
  217. package/lib/modules/participant/components/participants/components/footer/components/footer/index.js +0 -2
  218. package/lib/modules/participant/index.d.ts +2 -0
  219. package/lib/modules/participant/index.js +2 -1
  220. package/lib/modules/participant/store.d.ts +5 -2
  221. package/lib/modules/participant/store.js +45 -28
  222. package/lib/modules/pc-audio-connect/store.js +2 -1
  223. package/lib/modules/setting/audio-settings/audio-settings.js +3 -14
  224. package/lib/modules/share-screen/components/selection/index.js +18 -42
  225. package/lib/modules/share-screen/index.d.ts +6 -2
  226. package/lib/modules/share-screen/index.js +4 -2
  227. package/lib/modules/share-screen/store.d.ts +38 -46
  228. package/lib/modules/share-screen/store.js +263 -693
  229. package/lib/modules/share-screen/view.js +2 -2
  230. package/lib/modules/state-bar/assets/fcr_grid_big.svg +1 -1
  231. package/lib/modules/state-bar/assets/fcr_listontop_big.svg +1 -1
  232. package/lib/modules/state-bar/index.d.ts +2 -0
  233. package/lib/modules/state-bar/index.js +1 -0
  234. package/lib/modules/state-bar/meeting-details.js +3 -9
  235. package/lib/modules/state-bar/store.d.ts +5 -1
  236. package/lib/modules/state-bar/store.js +9 -1
  237. package/lib/modules/state-bar/view.js +3 -2
  238. package/lib/modules/video-window/components/members/index.js +2 -1
  239. package/lib/modules/waiting-room-layout/store.js +1 -1
  240. package/lib/modules/whiteboard/components/control-bar/index.js +0 -2
  241. package/lib/modules/whiteboard/components/control-bar/store.d.ts +5 -1
  242. package/lib/modules/whiteboard/components/control-bar/store.js +8 -1
  243. package/lib/modules/whiteboard/components/scene-pagination.js +0 -2
  244. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/color.js +1 -2
  245. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/picker.js +16 -5
  246. package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.js +67 -12
  247. package/lib/modules/whiteboard/components/toolbar/components/expansion/index.js +22 -2
  248. package/lib/modules/whiteboard/components/toolbar/components/history.js +46 -14
  249. package/lib/modules/whiteboard/components/toolbar/components/item/index.js +3 -2
  250. package/lib/modules/whiteboard/components/toolbar/components/move-handle.js +1 -1
  251. package/lib/modules/whiteboard/components/toolbar/components/pen-picker.js +58 -16
  252. package/lib/modules/whiteboard/components/toolbar/components/screen-capture-picker.js +15 -4
  253. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +45 -2
  254. package/lib/modules/whiteboard/components/toolbar/hooks/index.d.ts +14 -0
  255. package/lib/modules/whiteboard/components/toolbar/hooks/index.js +235 -7
  256. package/lib/modules/whiteboard/components/toolbar/index.d.ts +1 -1
  257. package/lib/modules/whiteboard/components/toolbar/index.js +1 -1
  258. package/lib/modules/whiteboard/components/toolbar/store.d.ts +9 -2
  259. package/lib/modules/whiteboard/components/toolbar/store.js +30 -6
  260. package/lib/modules/whiteboard/components/toolbar/{ style.css → style.css} +1 -0
  261. package/lib/modules/whiteboard/index.d.ts +2 -0
  262. package/lib/modules/whiteboard/index.js +20 -20
  263. package/lib/modules/widget/sdk.js +0 -1
  264. package/lib/plugins/browser-runtime-plugin.js +10 -1
  265. package/lib/providers/annotation-provider.d.ts +77 -0
  266. package/lib/providers/annotation-provider.js +411 -0
  267. package/lib/providers/device-provider.js +4 -20
  268. package/lib/providers/interpreter-provider.d.ts +1 -0
  269. package/lib/providers/interpreter-provider.js +182 -154
  270. package/lib/providers/privilege-provider.d.ts +35 -6
  271. package/lib/providers/privilege-provider.js +105 -49
  272. package/lib/providers/renderer-provider.js +3 -7
  273. package/lib/providers/room-provider.d.ts +13 -1
  274. package/lib/providers/room-provider.js +21 -7
  275. package/lib/providers/screen-share-provider.d.ts +131 -34
  276. package/lib/providers/screen-share-provider.js +561 -173
  277. package/lib/providers/sharing-provider.d.ts +33 -0
  278. package/lib/{shared-data-source/screen-share-data-source.js → providers/sharing-provider.js} +87 -39
  279. package/lib/runtime.d.ts +6 -1
  280. package/lib/scenes/main-scene.d.ts +7 -2
  281. package/lib/scenes/main-scene.js +54 -25
  282. package/lib/scenes/waiting-scene.d.ts +6 -0
  283. package/lib/scenes/waiting-scene.js +15 -5
  284. package/lib/shared-data-source/meeting-time.js +2 -2
  285. package/lib/shared-data-source/member-data.d.ts +21 -5
  286. package/lib/shared-data-source/member-data.js +69 -17
  287. package/lib/shared-data-source/screen-share-data.d.ts +270 -0
  288. package/lib/shared-data-source/screen-share-data.js +389 -0
  289. package/lib/shared-data-source/security-data.d.ts +4 -1
  290. package/lib/shared-data-source/security-data.js +5 -2
  291. package/lib/shared-data-source/setting.js +6 -4
  292. package/lib/shared-data-source/video-window.d.ts +0 -1
  293. package/lib/shared-data-source/video-window.js +3 -10
  294. package/lib/type.d.ts +53 -0
  295. package/lib/ui-manager.d.ts +3 -2
  296. package/lib/ui-manager.js +6 -4
  297. package/lib/ui-scene.js +61 -48
  298. package/lib/utilities/constant.d.ts +8 -1
  299. package/lib/utilities/constant.js +7 -0
  300. package/lib/utilities/logger.d.ts +4 -0
  301. package/lib/utilities/logger.js +8 -1
  302. package/lib/utilities/renderer-event.d.ts +3 -0
  303. package/lib/utilities/renderer-event.js +14 -1
  304. package/lib/utilities/screen.js +2 -1
  305. package/lib/utilities/tools.d.ts +43 -3
  306. package/lib/utilities/tools.js +81 -17
  307. package/lib/waiting-room-control-manager.js +1 -1
  308. package/package.json +7 -7
  309. package/public/assets/cursors/fcr_whiteboard_input.ico +0 -0
  310. package/public/assets/cursors/fcr_whiteboard_pen.ico +0 -0
  311. package/public/assets/cursors/fcr_whiteboard_shape_-straightline.ico +0 -0
  312. package/public/assets/cursors/fcr_whiteboard_shape_arrow.ico +0 -0
  313. package/public/assets/cursors/fcr_whiteboard_shape_circle.ico +0 -0
  314. package/public/assets/cursors/fcr_whiteboard_shape_rectangle.ico +0 -0
  315. package/public/assets/cursors/fcr_whiteboard_shape_triangle.ico +0 -0
  316. package/public/assets/fcr_chat_reddot.svg +3 -3
  317. package/public/assets/fcr_grid_big.svg +1 -1
  318. package/public/assets/fcr_leave2.svg +14 -14
  319. package/public/assets/fcr_listontop_big.svg +1 -1
  320. package/public/assets/step-gradient.svg +1 -1
  321. package/public/fragment.html +10 -0
  322. package/public/index.html +3 -1
  323. package/lib/shared-data-source/screen-share-data-source.d.ts +0 -37
@@ -7,7 +7,7 @@ import { FcrUIEventProvider } from '../../providers/event-provider';
7
7
  import { FcrUISharedLayoutDataSource } from '../../shared-data-source/layout-data';
8
8
  import { FcrUIDialogProvider } from '../../providers/dialog-provider';
9
9
  import { FcrUIPhoneAudioConnectorProvider } from '../../providers/phone-audio-provider';
10
- import { AgoraRtcScreenCaptureType } from 'agora-rte-sdk/lib/core/rtc/type';
10
+ import { AgoraRtcScreenCaptureType, AgoraRtcWindowInfo } from 'agora-rte-sdk/lib/core/rtc/type';
11
11
  import { CurrentShareBounds } from '../control-bar/types';
12
12
  import { CurrentShareScreenTypes } from '../share-screen/types';
13
13
  import { FcrUIDialogComponent } from './type';
@@ -16,6 +16,7 @@ import { FcrUIChatProvider } from '../../providers/chat-provider';
16
16
  import { FcrUIAbilityProviderImpl } from 'fcr-ui-scene/src/providers/ability-provider';
17
17
  import { CurrentShareScreenWorkArea } from '../../utilities/tools';
18
18
  import { FcrUIScreenShareProvider } from '../../providers/screen-share-provider';
19
+ import { FcrUIScreenShareSharedDataSource } from '../../shared-data-source/screen-share-data';
19
20
  export declare const HIGH_LEVEL_DIALOG_LAYER: FcrUIDialogKey[];
20
21
  export declare const TOP_LEVEL_DIALOG_LAYER: FcrUIDialogKey[];
21
22
  export default class DialogStore {
@@ -33,10 +34,12 @@ export default class DialogStore {
33
34
  private _screenShareProvider;
34
35
  private _sharedLayoutDataSource;
35
36
  private _phoneAudioConnectorProvider;
37
+ private _sharedScreenShareSharedDataSource;
36
38
  private _dialogComponentMapByKey;
37
39
  private _chatProvider;
38
40
  private _handleDialogEventObserver;
39
41
  private _userObserver;
42
+ private _electronDialogs;
40
43
  accessor openedDialogs: {
41
44
  dialogKey: FcrUIDialogKey;
42
45
  dialogId: string;
@@ -51,6 +54,7 @@ export default class DialogStore {
51
54
  accessor currentShareType: AgoraRtcScreenCaptureType;
52
55
  accessor currentShareBounds: CurrentShareBounds;
53
56
  accessor recordShareBounds: Map<CurrentShareBounds, CurrentShareScreenWorkArea>;
57
+ accessor allApplicationWindows: AgoraRtcWindowInfo[];
54
58
  get dialogComponentMapByKey(): Map<FcrUIDialogKey, FcrUIDialogComponent>;
55
59
  get participantCount(): number;
56
60
  get isManager(): boolean;
@@ -69,7 +73,8 @@ export default class DialogStore {
69
73
  get widgetDialogIds(): Map<string, string>;
70
74
  get chatRoomState(): import("fcr-core/lib/room-control/chatroom-control/type").FcrChatRoomConnectionState;
71
75
  get isSharingScreen(): boolean;
72
- constructor({ uiEventStore, userControl, deviceStore, streamControl, localVideoRenderProvider, remoteVideoRenderManager, securityStore, sharedLayoutDataSource, dialogProvider, phoneAudioConnectorProvider, dialogsByKey, widgetProvider, screenShareProvider, chatProvider, }: {
76
+ get isSharingScreenOwner(): boolean;
77
+ constructor({ uiEventStore, userControl, deviceStore, streamControl, localVideoRenderProvider, remoteVideoRenderManager, securityStore, sharedLayoutDataSource, dialogProvider, phoneAudioConnectorProvider, dialogsByKey, widgetProvider, screenShareProvider, chatProvider, sharedScreenShareSharedDataSource, }: {
73
78
  streamControl: FcrStreamControl;
74
79
  userControl: FcrUserControl;
75
80
  uiEventStore: FcrUIEventProvider;
@@ -85,6 +90,7 @@ export default class DialogStore {
85
90
  chatProvider: FcrUIChatProvider;
86
91
  screenShareProvider: FcrUIScreenShareProvider;
87
92
  abilityProvider: FcrUIAbilityProviderImpl;
93
+ sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource;
88
94
  });
89
95
  setParticipantElectronDialogContainer(dom: HTMLElement | null): void;
90
96
  setVideoWindowBounds(payload: any): void;
@@ -100,6 +106,7 @@ export default class DialogStore {
100
106
  resizeVideoWindow(width: number, height: number): void;
101
107
  updateCurrentShareContent(payload: CurrentShareScreenTypes): void;
102
108
  recordCurrentSharingScreenBounds(): CurrentShareScreenWorkArea;
109
+ log(info: string): void;
103
110
  private _handleDialogEvent;
104
111
  private _hanleAllUserCountUpdated;
105
112
  private _focusDialog;
@@ -83,7 +83,7 @@ var _tools = require("../../utilities/tools");
83
83
  var _useElectron = require("./hooks/useElectron");
84
84
  var _excluded = ["x", "y"];
85
85
  var _DialogStore;
86
- var _initProto, _init_openedDialogs, _init_confirmDialogs, _init_userCount, _init_participantElectronDialogContainer, _init_currentDialogBounds, _init_videoWindowBounds, _init_currentShareId, _init_currentShareType, _init_currentShareBounds, _init_recordShareBounds, _setVideoWindowBoundsDecs, _updateCurrentShareContentDecs, _recordCurrentSharingScreenBoundsDecs, _handleDialogEventDecs, _hanleAllUserCountUpdatedDecs, _ref;
86
+ var _initProto, _init_openedDialogs, _init_confirmDialogs, _init_userCount, _init_participantElectronDialogContainer, _init_currentDialogBounds, _init_videoWindowBounds, _init_currentShareId, _init_currentShareType, _init_currentShareBounds, _init_recordShareBounds, _init_allApplicationWindows, _setVideoWindowBoundsDecs, _updateCurrentShareContentDecs, _recordCurrentSharingScreenBoundsDecs, _handleDialogEventDecs, _hanleAllUserCountUpdatedDecs, _ref;
87
87
  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; }
88
88
  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; }
89
89
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
@@ -97,7 +97,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
97
97
  function _setFunctionName(e, t, n) { "symbol" == _typeof(t) && (t = (t = t.description) ? "[" + t + "]" : ""); try { Object.defineProperty(e, "name", { configurable: !0, value: n ? n + " " + t : t }); } catch (e) {} return e; }
98
98
  function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side of 'in' should be an object, got " + (null !== e ? _typeof(e) : "null")); return e; }
99
99
  var HIGH_LEVEL_DIALOG_LAYER = exports.HIGH_LEVEL_DIALOG_LAYER = [_constant.FcrUIDialogKey.CHAT, _constant.FcrUIDialogKey.PARTICIPANT, _constant.FcrUIDialogKey.SHARE_SCREEN];
100
- var TOP_LEVEL_DIALOG_LAYER = exports.TOP_LEVEL_DIALOG_LAYER = [_constant.FcrUIDialogKey.SHOW_TOAST, _constant.FcrUIDialogKey.CONFIRM, _constant.FcrUIDialogKey.CONTROL_BAR, _constant.FcrUIDialogKey.VIDEO_WINDOW];
100
+ var TOP_LEVEL_DIALOG_LAYER = exports.TOP_LEVEL_DIALOG_LAYER = [_constant.FcrUIDialogKey.SHOW_TOAST, _constant.FcrUIDialogKey.CONFIRM, _constant.FcrUIDialogKey.CONTROL_BAR, _constant.FcrUIDialogKey.VIDEO_WINDOW, _constant.FcrUIDialogKey.ANNOTATION];
101
101
  var _A = /*#__PURE__*/new WeakMap();
102
102
  var _B = /*#__PURE__*/new WeakMap();
103
103
  var _C = /*#__PURE__*/new WeakMap();
@@ -108,6 +108,7 @@ var _G = /*#__PURE__*/new WeakMap();
108
108
  var _H = /*#__PURE__*/new WeakMap();
109
109
  var _I = /*#__PURE__*/new WeakMap();
110
110
  var _J = /*#__PURE__*/new WeakMap();
111
+ var _K = /*#__PURE__*/new WeakMap();
111
112
  _ref = (_setVideoWindowBoundsDecs = [_mobx.action, _mobx.action.bound], _updateCurrentShareContentDecs = [_mobx.action, _mobx.action.bound], _recordCurrentSharingScreenBoundsDecs = [_mobx.action, _mobx.action.bound], _handleDialogEventDecs = [_mobx.action, _mobx.action.bound], _hanleAllUserCountUpdatedDecs = [_mobx.action, _mobx.action.bound], "logger");
112
113
  var DialogStore = exports["default"] = /*#__PURE__*/function () {
113
114
  function DialogStore(_ref2) {
@@ -125,7 +126,8 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
125
126
  dialogsByKey = _ref2.dialogsByKey,
126
127
  widgetProvider = _ref2.widgetProvider,
127
128
  screenShareProvider = _ref2.screenShareProvider,
128
- chatProvider = _ref2.chatProvider;
129
+ chatProvider = _ref2.chatProvider,
130
+ sharedScreenShareSharedDataSource = _ref2.sharedScreenShareSharedDataSource;
129
131
  (0, _classCallCheck2["default"])(this, DialogStore);
130
132
  (0, _defineProperty2["default"])(this, _ref, (_initProto(this), (0, _logger.createLogger)({
131
133
  prefix: 'DialogStore'
@@ -136,6 +138,7 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
136
138
  (0, _defineProperty2["default"])(this, "_userObserver", {
137
139
  onAllUserCountUpdated: this._hanleAllUserCountUpdated
138
140
  });
141
+ (0, _defineProperty2["default"])(this, "_electronDialogs", new Map());
139
142
  _classPrivateFieldInitSpec(this, _A, _init_openedDialogs(this, []));
140
143
  _classPrivateFieldInitSpec(this, _B, _init_confirmDialogs(this, new Map()));
141
144
  _classPrivateFieldInitSpec(this, _C, _init_userCount(this, 0));
@@ -151,6 +154,8 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
151
154
  y: 0
152
155
  }));
153
156
  _classPrivateFieldInitSpec(this, _J, _init_recordShareBounds(this, new Map()));
157
+ _classPrivateFieldInitSpec(this, _K, _init_allApplicationWindows(this, []));
158
+ this._sharedScreenShareSharedDataSource = sharedScreenShareSharedDataSource;
154
159
  this._uiEventStore = uiEventStore;
155
160
  this._streamControl = streamControl;
156
161
  this._userControl = userControl;
@@ -253,6 +258,14 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
253
258
  set: function set(v) {
254
259
  _classPrivateFieldSet(_J, this, v);
255
260
  }
261
+ }, {
262
+ key: "allApplicationWindows",
263
+ get: function get() {
264
+ return _classPrivateFieldGet(_K, this);
265
+ },
266
+ set: function set(v) {
267
+ _classPrivateFieldSet(_K, this, v);
268
+ }
256
269
  }, {
257
270
  key: "dialogComponentMapByKey",
258
271
  get: function get() {
@@ -326,7 +339,13 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
326
339
  }, {
327
340
  key: "isSharingScreen",
328
341
  get: function get() {
329
- return this._screenShareProvider.isSharingScreen;
342
+ return this._sharedScreenShareSharedDataSource.isSharingScreen;
343
+ }
344
+ }, {
345
+ key: "isSharingScreenOwner",
346
+ get: function get() {
347
+ var _this$_sharedScreenSh;
348
+ return ((_this$_sharedScreenSh = this._sharedScreenShareSharedDataSource.screenSharingOwner) === null || _this$_sharedScreenSh === void 0 ? void 0 : _this$_sharedScreenSh.userId) === this._userInfo.userId;
330
349
  }
331
350
  }, {
332
351
  key: "setParticipantElectronDialogContainer",
@@ -461,6 +480,11 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
461
480
  }
462
481
  return screenBounds;
463
482
  }
483
+ }, {
484
+ key: "log",
485
+ value: function log(info) {
486
+ this.logger.info(info);
487
+ }
464
488
  }, {
465
489
  key: "_handleDialogEvent",
466
490
  value: function _handleDialogEvent(action, payload) {
@@ -469,8 +493,16 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
469
493
  dialogId = _ref6.dialogId,
470
494
  _ref6$params = _ref6.params,
471
495
  params = _ref6$params === void 0 ? {} : _ref6$params;
496
+ var openInFragments = [_constant.FcrUIDialogKey.ANNOTATION];
472
497
  switch (action) {
473
498
  case _constant.FcrUIAction.OPEN_DIALOG:
499
+ if ((0, _env.isElectron)()) {
500
+ if (openInFragments.includes(dialogKey)) {
501
+ this._electronDialogs.set(dialogId, dialogKey);
502
+ window.runtime.open(dialogKey, dialogId);
503
+ return;
504
+ }
505
+ }
474
506
  this.logger.info('open_dialog: ', dialogKey, '====', dialogId);
475
507
  // 因为窗口可能会移动,因此需要矫正 global toast 和 confirm 的 Bounds
476
508
  var isToastOrConfirm = [_constant.FcrUIDialogKey.SHOW_TOAST, _constant.FcrUIDialogKey.CONFIRM].includes(dialogKey);
@@ -504,6 +536,13 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
504
536
  }
505
537
  break;
506
538
  case _constant.FcrUIAction.CLOSE_DIALOG:
539
+ if ((0, _env.isElectron)()) {
540
+ var electronDialogKey = this._electronDialogs.get(dialogId);
541
+ if (electronDialogKey && openInFragments.includes(electronDialogKey)) {
542
+ window.runtime.close(electronDialogKey, dialogId);
543
+ return;
544
+ }
545
+ }
507
546
  this.openedDialogs = this.openedDialogs.filter(function (dialog) {
508
547
  return dialog.dialogId !== dialogId;
509
548
  });
@@ -541,7 +580,7 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
541
580
  }]);
542
581
  }();
543
582
  _DialogStore = DialogStore;
544
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_DialogStore, [[_mobx.observable, 1, "openedDialogs"], [_mobx.observable, 1, "confirmDialogs"], [_mobx.observable, 1, "userCount"], [_mobx.observable, 1, "participantElectronDialogContainer"], [_mobx.observable, 1, "currentDialogBounds"], [_mobx.observable, 1, "videoWindowBounds"], [_mobx.observable, 1, "currentShareId"], [_mobx.observable, 1, "currentShareType"], [_mobx.observable, 1, "currentShareBounds"], [_mobx.observable, 1, "recordShareBounds"], [_mobx.computed, 3, "connectType"], [_mobx.computed, 3, "hasOwnPstnStream"], [_mobx.computed, 3, "chatRoomState"], [_mobx.action, 2, "setParticipantElectronDialogContainer"], [_setVideoWindowBoundsDecs, 18, "setVideoWindowBounds"], [_decorator.bound, 2, "closeDialogByKey"], [_decorator.bound, 2, "closeDilaogByDialogId"], [_decorator.bound, 2, "closeSystemPreferenceDialog"], [_decorator.bound, 2, "closeChatFromDialog"], [_decorator.bound, 2, "moveChatFromDialogToAside"], [_decorator.bound, 2, "closeConnectionDialog"], [_decorator.bound, 2, "closeParticipantDialog"], [_decorator.bound, 2, "moveParticipantFromDialogToAside"], [_decorator.bound, 2, "resizeVideoWindow"], [_updateCurrentShareContentDecs, 18, "updateCurrentShareContent"], [_recordCurrentSharingScreenBoundsDecs, 18, "recordCurrentSharingScreenBounds"], [_handleDialogEventDecs, 18, "_handleDialogEvent"], [_hanleAllUserCountUpdatedDecs, 18, "_hanleAllUserCountUpdated"], [_decorator.bound, 2, "_focusDialog"]], []).e, 11);
583
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_DialogStore, [[_mobx.observable, 1, "openedDialogs"], [_mobx.observable, 1, "confirmDialogs"], [_mobx.observable, 1, "userCount"], [_mobx.observable, 1, "participantElectronDialogContainer"], [_mobx.observable, 1, "currentDialogBounds"], [_mobx.observable, 1, "videoWindowBounds"], [_mobx.observable, 1, "currentShareId"], [_mobx.observable, 1, "currentShareType"], [_mobx.observable, 1, "currentShareBounds"], [_mobx.observable, 1, "recordShareBounds"], [_mobx.observable, 1, "allApplicationWindows"], [_mobx.computed, 3, "connectType"], [_mobx.computed, 3, "hasOwnPstnStream"], [_mobx.computed, 3, "chatRoomState"], [_mobx.computed, 3, "isSharingScreen"], [_mobx.action, 2, "setParticipantElectronDialogContainer"], [_setVideoWindowBoundsDecs, 18, "setVideoWindowBounds"], [_decorator.bound, 2, "closeDialogByKey"], [_decorator.bound, 2, "closeDilaogByDialogId"], [_decorator.bound, 2, "closeSystemPreferenceDialog"], [_decorator.bound, 2, "closeChatFromDialog"], [_decorator.bound, 2, "moveChatFromDialogToAside"], [_decorator.bound, 2, "closeConnectionDialog"], [_decorator.bound, 2, "closeParticipantDialog"], [_decorator.bound, 2, "moveParticipantFromDialogToAside"], [_decorator.bound, 2, "resizeVideoWindow"], [_updateCurrentShareContentDecs, 18, "updateCurrentShareContent"], [_recordCurrentSharingScreenBoundsDecs, 18, "recordCurrentSharingScreenBounds"], [_decorator.bound, 2, "log"], [_handleDialogEventDecs, 18, "_handleDialogEvent"], [_hanleAllUserCountUpdatedDecs, 18, "_hanleAllUserCountUpdated"], [_decorator.bound, 2, "_focusDialog"]], []).e, 12);
545
584
  _init_openedDialogs = _applyDecs$e[0];
546
585
  _init_confirmDialogs = _applyDecs$e[1];
547
586
  _init_userCount = _applyDecs$e[2];
@@ -552,5 +591,6 @@ _init_currentShareId = _applyDecs$e[6];
552
591
  _init_currentShareType = _applyDecs$e[7];
553
592
  _init_currentShareBounds = _applyDecs$e[8];
554
593
  _init_recordShareBounds = _applyDecs$e[9];
555
- _initProto = _applyDecs$e[10];
594
+ _init_allApplicationWindows = _applyDecs$e[10];
595
+ _initProto = _applyDecs$e[11];
556
596
  var StoreContext = exports.StoreContext = /*#__PURE__*/(0, _react.createContext)(null);
@@ -0,0 +1,7 @@
1
+ import { ConfirmContentProps } from 'agora-ui-foundation/lib/components/confirm-content';
2
+ export declare const ConfirmWindow: ({ confirm, onMouseEnter, onMouseLeave, activeConfirm, }: {
3
+ confirm: ConfirmContentProps;
4
+ onMouseEnter: (title: string | undefined) => void;
5
+ onMouseLeave: () => void;
6
+ activeConfirm: string | undefined;
7
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,188 @@
1
+ "use strict";
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.for-each.js");
6
+ require("core-js/modules/es.array.push.js");
7
+ require("core-js/modules/es.object.define-properties.js");
8
+ require("core-js/modules/es.object.define-property.js");
9
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
10
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
11
+ require("core-js/modules/es.object.keys.js");
12
+ require("core-js/modules/es.object.to-string.js");
13
+ require("core-js/modules/esnext.async-iterator.filter.js");
14
+ require("core-js/modules/esnext.async-iterator.for-each.js");
15
+ require("core-js/modules/esnext.iterator.constructor.js");
16
+ require("core-js/modules/esnext.iterator.filter.js");
17
+ require("core-js/modules/esnext.iterator.for-each.js");
18
+ require("core-js/modules/web.dom-collections.for-each.js");
19
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
20
+ Object.defineProperty(exports, "__esModule", {
21
+ value: true
22
+ });
23
+ exports.ConfirmWindow = void 0;
24
+ require("core-js/modules/es.array.concat.js");
25
+ require("core-js/modules/es.date.to-json.js");
26
+ require("core-js/modules/es.json.stringify.js");
27
+ require("core-js/modules/web.timers.js");
28
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
29
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
30
+ var _mobxReact = require("mobx-react");
31
+ var _react = require("react");
32
+ var _store = require("../../store");
33
+ var _useElectron = require("../../../dialog/hooks/useElectron");
34
+ var _env = require("agora-foundation/lib/utilities/env");
35
+ var _confirmContent = require("agora-ui-foundation/lib/components/confirm-content");
36
+ var _platform = require("../../../../utilities/platform");
37
+ var _tools = require("../../../../utilities/tools");
38
+ var _renderer = require("../../../../utilities/renderer");
39
+ var _react2 = require("@use-gesture/react");
40
+ var _jsxRuntime = require("react/jsx-runtime");
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; }
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; }
43
+ var ConfirmWindow = exports.ConfirmWindow = (0, _mobxReact.observer)(function (_ref) {
44
+ var _rndRef$current;
45
+ var confirm = _ref.confirm,
46
+ onMouseEnter = _ref.onMouseEnter,
47
+ onMouseLeave = _ref.onMouseLeave,
48
+ activeConfirm = _ref.activeConfirm;
49
+ var _useContext = (0, _react.useContext)(_store.StoreContext),
50
+ screenBounds = _useContext.screenBounds,
51
+ calculateMethods = _useContext.calculateMethods,
52
+ log = _useContext.log;
53
+ var _ref2 = (0, _env.isElectron)() ? (0, _react.useContext)(_useElectron.DialogInstanceContext) : {},
54
+ browserWindow = _ref2.browserWindow;
55
+ var rndRef = (0, _react.useRef)(null);
56
+ var windowFocusTimerRef = (0, _react.useRef)();
57
+ var defaultSize = {
58
+ width: confirm.width || 320,
59
+ height: confirm.height ? confirm.height : ((_rndRef$current = rndRef.current) === null || _rndRef$current === void 0 ? void 0 : _rndRef$current.getBoundingClientRect().height) || (confirm.icon ? 160 : 150)
60
+ };
61
+ var baseBounds = (0, _react.useMemo)(function () {
62
+ var _ref3 = screenBounds || {
63
+ width: window.innerWidth,
64
+ height: window.innerHeight
65
+ },
66
+ width = _ref3.width,
67
+ height = _ref3.height;
68
+ return {
69
+ x: width / 2 - defaultSize.width / 2,
70
+ y: height / 2 - defaultSize.height / 2,
71
+ width: width,
72
+ height: height
73
+ };
74
+ }, [screenBounds]);
75
+ var _useState = (0, _react.useState)({
76
+ x: baseBounds.x,
77
+ y: baseBounds.y
78
+ }),
79
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
80
+ bounds = _useState2[0],
81
+ setBounds = _useState2[1];
82
+ var bind = (0, _react2.useDrag)(function (_ref4) {
83
+ var _ref4$delta = (0, _slicedToArray2["default"])(_ref4.delta, 2),
84
+ dx = _ref4$delta[0],
85
+ dy = _ref4$delta[1];
86
+ var x = bounds.x + dx;
87
+ var y = bounds.y + dy;
88
+ var maxX = baseBounds.width - defaultSize.width;
89
+ var maxY = baseBounds.height - defaultSize.height;
90
+ var coord = {
91
+ x: Math.max(0, Math.min(maxX, x)),
92
+ y: Math.max(0, Math.min(maxY, y))
93
+ };
94
+ setBounds(coord);
95
+ });
96
+ var ignoreMouseTimer = (0, _react.useRef)();
97
+ function recalculate(bounds) {
98
+ if (windowFocusTimerRef.current) {
99
+ clearTimeout(windowFocusTimerRef.current);
100
+ windowFocusTimerRef.current = undefined;
101
+ }
102
+ log("call handle checkMouseOver condition: ".concat((0, _env.isElectron)(), " && ").concat((0, _platform.isWindows)(), " && ").concat(browserWindow, " && ").concat(rndRef.current, " && ").concat(JSON.stringify(screenBounds)));
103
+ if ((0, _env.isElectron)() && (0, _platform.isWindows)() && browserWindow && rndRef.current && screenBounds) {
104
+ log("handleCheckMouseOver called , the bounds is ".concat(JSON.stringify(bounds || screenBounds)));
105
+ (0, _tools.handleCheckMouseOver)({
106
+ elem: rndRef.current,
107
+ browserWindow: browserWindow,
108
+ screenBounds: bounds || screenBounds,
109
+ callback: function callback(timerId) {
110
+ windowFocusTimerRef.current = timerId;
111
+ }
112
+ });
113
+ }
114
+ }
115
+ var handleRecalculate = function handleRecalculate() {
116
+ return recalculate();
117
+ };
118
+ (0, _react.useEffect)(function () {
119
+ recalculate();
120
+ !calculateMethods.has(confirm) && calculateMethods.set(confirm, recalculate);
121
+ (0, _env.isElectron)() && (0, _platform.isWindows)() && window.runtime.screen.addListener('display-removed', handleRecalculate);
122
+ return function () {
123
+ clearTimeout(windowFocusTimerRef.current);
124
+ calculateMethods["delete"](confirm);
125
+ ignoreMouseTimer.current && clearInterval(ignoreMouseTimer.current);
126
+ (0, _env.isElectron)() && (0, _platform.isWindows)() && window.runtime.screen.removeListener('display-removed', handleRecalculate);
127
+ };
128
+ }, [rndRef.current /** hack 处理 windows 下,弹出窗口层级不对的问题 */]);
129
+ (0, _react.useEffect)(function () {
130
+ log("when screen bounds changed ".concat(JSON.stringify(screenBounds)));
131
+ (0, _platform.isWindows)() && setBounds({
132
+ x: baseBounds.x,
133
+ y: baseBounds.y
134
+ });
135
+ }, [screenBounds]);
136
+ var handleMouseEnter = function handleMouseEnter() {
137
+ ignoreMouseTimer.current && activeConfirm === confirm.title && clearInterval(ignoreMouseTimer.current);
138
+ if ((0, _env.isElectron)()) {
139
+ onMouseEnter(confirm.title);
140
+ browserWindow === null || browserWindow === void 0 || browserWindow.setIgnoreMouseEvents(false);
141
+ browserWindow === null || browserWindow === void 0 || browserWindow.focus();
142
+ }
143
+ };
144
+ var handleMouseLeave = function handleMouseLeave() {
145
+ if ((0, _env.isElectron)()) {
146
+ onMouseLeave();
147
+ log("[event-confirm]: handleMouseLeave, ignore mouse events: true");
148
+ browserWindow === null || browserWindow === void 0 || browserWindow.setIgnoreMouseEvents(true, {
149
+ forward: true
150
+ });
151
+ // 修复老版本的 mac 下,ignore 会失效的问题
152
+ if (activeConfirm === undefined && (0, _renderer.isMac)()) {
153
+ ignoreMouseTimer.current = setInterval(function () {
154
+ browserWindow === null || browserWindow === void 0 || browserWindow.setIgnoreMouseEvents(true, {
155
+ forward: true
156
+ });
157
+ }, 1000);
158
+ }
159
+ }
160
+ };
161
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, bind()), {}, {
162
+ onMouseLeave: handleMouseLeave,
163
+ onMouseEnter: handleMouseEnter,
164
+ onMouseMove: handleMouseEnter,
165
+ style: {
166
+ width: defaultSize.width,
167
+ height: confirm.height || 'auto',
168
+ left: "".concat(bounds.x, "px"),
169
+ top: "".concat(bounds.y, "px"),
170
+ position: 'absolute',
171
+ touchAction: 'none'
172
+ },
173
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
174
+ ref: rndRef,
175
+ onClick: function onClick(e) {
176
+ return e.stopPropagation();
177
+ },
178
+ onKeyUp: function onKeyUp(e) {
179
+ return e.stopPropagation();
180
+ },
181
+ onKeyDown: function onKeyDown(e) {
182
+ return e.stopPropagation();
183
+ },
184
+ className: "fcr-confirm-dialog-wrapper_web",
185
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_confirmContent.ConfirmContent, _objectSpread({}, confirm))
186
+ })
187
+ }));
188
+ });
@@ -6,20 +6,20 @@ import { FcrUICurrentRoomControlProvider, FcrUIRoomProvider } from '../../provid
6
6
  import { FcrUIMemberSharedDataSource } from '../../shared-data-source/member-data';
7
7
  import { FcrUIAbilityProviderImpl } from '../../providers/ability-provider';
8
8
  import { FcrUIScreenShareProvider } from '../../providers/screen-share-provider';
9
- import { FcrUIScreenShareDataSource } from '../../shared-data-source/screen-share-data-source';
9
+ import { FcrUIScreenShareSharedDataSource } from '../../shared-data-source/screen-share-data';
10
10
  export declare class EventConfirmUIModule extends UIModule {
11
11
  private _store?;
12
12
  private _leaveMeetingStore?;
13
13
  eventProvider?: FcrUIEventProvider;
14
14
  dialogProvider?: FcrUIDialogProvider;
15
15
  privilegeProvider?: FcrUIPrivilegeProvider;
16
- currentRoomControlProvider?: FcrUICurrentRoomControlProvider;
17
16
  screenShareProvider?: FcrUIScreenShareProvider;
17
+ currentRoomControlProvider?: FcrUICurrentRoomControlProvider;
18
18
  roomProvider?: FcrUIRoomProvider;
19
19
  sharedMemberDataSource?: FcrUIMemberSharedDataSource;
20
20
  abilityProvider?: FcrUIAbilityProviderImpl;
21
- screenShareDataSource?: FcrUIScreenShareDataSource;
21
+ sharedScreenShareSharedDataSource?: FcrUIScreenShareSharedDataSource;
22
22
  onNodeWillActive(): void;
23
23
  onNodeWillInactive(): void;
24
- getComponent(): import("react/jsx-runtime").JSX.Element;
24
+ getComponent(scene: string): import("react/jsx-runtime").JSX.Element;
25
25
  }
@@ -39,13 +39,13 @@ var EventConfirmUIModule = exports.EventConfirmUIModule = /*#__PURE__*/function
39
39
  return (0, _createClass2["default"])(EventConfirmUIModule, [{
40
40
  key: "onNodeWillActive",
41
41
  value: function onNodeWillActive() {
42
- if (this.eventProvider && this.dialogProvider) {
42
+ if (this.eventProvider && this.dialogProvider && this.sharedScreenShareSharedDataSource) {
43
43
  var _this$currentRoomCont;
44
44
  this._store = new _store2["default"]({
45
45
  uiEventStore: this.eventProvider,
46
46
  dialogProvider: this.dialogProvider,
47
- screenShareProvider: this.screenShareProvider,
48
- screenShareDataSource: this.screenShareDataSource
47
+ sharedScreenShareSharedDataSource: this.sharedScreenShareSharedDataSource,
48
+ screenShareProvider: this.screenShareProvider
49
49
  });
50
50
  this._leaveMeetingStore = new _store.LeaveMeetingStore(this.privilegeProvider, this.roomProvider, (_this$currentRoomCont = this.currentRoomControlProvider) === null || _this$currentRoomCont === void 0 ? void 0 : _this$currentRoomCont.currentRoomControl, this.sharedMemberDataSource, this.abilityProvider, this.dialogProvider);
51
51
  }
@@ -58,7 +58,9 @@ var EventConfirmUIModule = exports.EventConfirmUIModule = /*#__PURE__*/function
58
58
  }
59
59
  }, {
60
60
  key: "getComponent",
61
- value: function getComponent() {
61
+ value: function getComponent(scene) {
62
+ var _this$_store2;
63
+ (_this$_store2 = this._store) === null || _this$_store2 === void 0 || _this$_store2.log("[EventConfirmUIModule]: [getComponent], scene: ".concat(scene));
62
64
  if (!this._store) {
63
65
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {});
64
66
  }
@@ -2,16 +2,15 @@ import { ConfirmContentProps } from 'agora-ui-foundation/lib/components/confirm-
2
2
  import { FcrUIEventProvider } from '../../providers/event-provider';
3
3
  import { FcrUIDialogParams } from '../../type';
4
4
  import { FcrUIDialogProvider } from '../../providers/dialog-provider';
5
+ import { FcrUIScreenShareSharedDataSource } from '../../shared-data-source/screen-share-data';
5
6
  import { FcrUIScreenShareProvider } from '../../providers/screen-share-provider';
6
7
  import { CurrentShareBounds } from '../control-bar/types';
7
- import { FcrUIScreenShareDataSource } from '../../shared-data-source/screen-share-data-source';
8
8
  export default class ConfirmStore {
9
9
  protected logger: import("agora-foundation/lib/logger").Logger;
10
10
  private _disposers;
11
11
  private _uiEventProvider;
12
12
  private _dialogProvider;
13
- private _screenShareProvider;
14
- private _screenShareDataSource;
13
+ private _sharedScreenShareSharedDataSource;
15
14
  private _handleConfirmEventObserver;
16
15
  accessor isReplaceShare: boolean;
17
16
  accessor calculateMethods: Map<ConfirmContentProps, (bounds?: CurrentShareBounds | null) => void>;
@@ -23,11 +22,11 @@ export default class ConfirmStore {
23
22
  accessor screenBounds: CurrentShareBounds | Electron.Rectangle | null;
24
23
  get confirmList(): ConfirmContentProps[];
25
24
  get isSeizeScreen(): boolean;
26
- constructor({ uiEventStore, dialogProvider, screenShareProvider, screenShareDataSource, }: {
25
+ constructor({ uiEventStore, dialogProvider, screenShareProvider, sharedScreenShareSharedDataSource, }: {
27
26
  uiEventStore: FcrUIEventProvider;
28
27
  dialogProvider: FcrUIDialogProvider;
29
28
  screenShareProvider: FcrUIScreenShareProvider;
30
- screenShareDataSource: FcrUIScreenShareDataSource;
29
+ sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource;
31
30
  });
32
31
  addConfirm(payload: FcrUIDialogParams<ConfirmContentProps>): void;
33
32
  resetIsReplace(): void;
@@ -74,7 +74,6 @@ var _react = require("react");
74
74
  var _logger = require("../../utilities/logger");
75
75
  var _decorator = require("agora-foundation/lib/decorator");
76
76
  var _tools = require("../../utilities/tools");
77
- var _dialogs = require("../dialog/dialogs");
78
77
  var _env = require("agora-foundation/lib/utilities/env");
79
78
  var _ConfirmStore;
80
79
  var _initProto, _init_isReplaceShare, _init_calculateMethods, _init_reposition, _init_confirms, _init_screenBounds, _addConfirmDecs, _resetIsReplaceDecs, _handleConfirmEventDecs, _ref;
@@ -102,7 +101,7 @@ var ConfirmStore = exports["default"] = /*#__PURE__*/function () {
102
101
  var uiEventStore = _ref2.uiEventStore,
103
102
  dialogProvider = _ref2.dialogProvider,
104
103
  screenShareProvider = _ref2.screenShareProvider,
105
- screenShareDataSource = _ref2.screenShareDataSource;
104
+ sharedScreenShareSharedDataSource = _ref2.sharedScreenShareSharedDataSource;
106
105
  (0, _classCallCheck2["default"])(this, ConfirmStore);
107
106
  (0, _defineProperty2["default"])(this, _ref, (_initProto(this), (0, _logger.createLogger)({
108
107
  prefix: 'ConfirmStore'
@@ -118,8 +117,7 @@ var ConfirmStore = exports["default"] = /*#__PURE__*/function () {
118
117
  _classPrivateFieldInitSpec(this, _E, _init_screenBounds(this, (0, _env.isElectron)() ? window.runtime.browserWindow.getBounds() : null));
119
118
  this._uiEventProvider = uiEventStore;
120
119
  this._dialogProvider = dialogProvider;
121
- this._screenShareProvider = screenShareProvider;
122
- this._screenShareDataSource = screenShareDataSource;
120
+ this._sharedScreenShareSharedDataSource = sharedScreenShareSharedDataSource;
123
121
  this._uiEventProvider.addObserver(this._handleConfirmEventObserver);
124
122
  this._dialogProvider.addObserver(this._handleConfirmEventObserver);
125
123
  this._disposers.push((0, _mobx.reaction)(function () {
@@ -130,17 +128,22 @@ var ConfirmStore = exports["default"] = /*#__PURE__*/function () {
130
128
  value === null || value === void 0 || (_value$timer = value.timer) === null || _value$timer === void 0 || _value$timer.call(value);
131
129
  });
132
130
  }), (0, _mobx.reaction)(function () {
133
- var _this$_screenShareDat;
134
- return (_this$_screenShareDat = _this._screenShareDataSource) === null || _this$_screenShareDat === void 0 ? void 0 : _this$_screenShareDat.currentShareBounds;
131
+ var _this$_sharedScreenSh;
132
+ return (_this$_sharedScreenSh = _this._sharedScreenShareSharedDataSource) === null || _this$_sharedScreenSh === void 0 ? void 0 : _this$_sharedScreenSh.currentSelectionBounds;
135
133
  }, function (bounds) {
136
134
  if (bounds) {
137
- var _dialogWindows$get;
138
- (_dialogWindows$get = _dialogs.dialogWindows.get(_constant.FcrUIDialogKey.CONFIRM)) === null || _dialogWindows$get === void 0 || _dialogWindows$get.setBounds(bounds);
139
- _this.calculateMethods.forEach(function (method) {
140
- return method(bounds);
135
+ var res = (0, _tools.followCorrectDisplay)({
136
+ dialogKey: _constant.FcrUIDialogKey.CONFIRM,
137
+ alwaysFollowScreen: true
141
138
  });
142
- _this.logger.info("new sharing bounds is ".concat(JSON.stringify(bounds)));
143
- _this.screenBounds = bounds;
139
+ if (res) {
140
+ var nearDisplayBounds = res.nearDisplayBounds;
141
+ _this.calculateMethods.forEach(function (method) {
142
+ return method(nearDisplayBounds);
143
+ });
144
+ _this.logger.info("new sharing bounds is ".concat(JSON.stringify(nearDisplayBounds)));
145
+ _this.screenBounds = nearDisplayBounds;
146
+ }
144
147
  } else {
145
148
  _this.logger.error("there is have no bounds ".concat(JSON.stringify(bounds)));
146
149
  }
@@ -148,10 +151,14 @@ var ConfirmStore = exports["default"] = /*#__PURE__*/function () {
148
151
  return _this.isSeizeScreen;
149
152
  }, function (isSeize) {
150
153
  if (isSeize && (0, _env.isElectron)()) {
151
- var _ref3 = (0, _tools.followCorrectDisplay)(_constant.FcrUIDialogKey.CONFIRM, isSeize),
152
- _bounds = _ref3.bounds;
153
- _this.screenBounds = _bounds;
154
- _this.logger.info("new sharing bounds is ".concat(JSON.stringify(_bounds), ", when seize screen emit"));
154
+ var _ref3 = (0, _tools.followCorrectDisplay)({
155
+ dialogKey: _constant.FcrUIDialogKey.CONFIRM,
156
+ alwaysFollowScreen: true,
157
+ extraRefControlbarCondition: isSeize
158
+ }),
159
+ nearDisplayBounds = _ref3.nearDisplayBounds;
160
+ _this.screenBounds = nearDisplayBounds;
161
+ _this.logger.info("new sharing bounds is ".concat(JSON.stringify(nearDisplayBounds), ", when seize screen emit"));
155
162
  }
156
163
  }), (0, _mobx.reaction)(function () {
157
164
  return _this.screenBounds;
@@ -193,7 +200,8 @@ var ConfirmStore = exports["default"] = /*#__PURE__*/function () {
193
200
  }
194
201
  }, {
195
202
  key: "screenBounds",
196
- get: function get() {
203
+ get: // @observable accessor mousePosition: { x: number; y: number } = { x: 0, y: 0 };
204
+ function get() {
197
205
  return _classPrivateFieldGet(_E, this);
198
206
  },
199
207
  set: function set(v) {
@@ -210,8 +218,7 @@ var ConfirmStore = exports["default"] = /*#__PURE__*/function () {
210
218
  }, {
211
219
  key: "isSeizeScreen",
212
220
  get: function get() {
213
- var _this$_screenSharePro;
214
- return (_this$_screenSharePro = this._screenShareProvider) === null || _this$_screenSharePro === void 0 ? void 0 : _this$_screenSharePro.isSeizeStream;
221
+ return this._sharedScreenShareSharedDataSource.isSeizeStream;
215
222
  }
216
223
  }, {
217
224
  key: "addConfirm",
@@ -276,6 +283,12 @@ var ConfirmStore = exports["default"] = /*#__PURE__*/function () {
276
283
  value: function resetIsReplace() {
277
284
  this.isReplaceShare = false;
278
285
  }
286
+
287
+ // @action.bound
288
+ // setMousePosition(e: MouseEvent) {
289
+ // console.log('setMousePosition', e.pageX, e.pageY);
290
+ // this.mousePosition = { x: e.pageX, y: e.pageY };
291
+ // }
279
292
  }, {
280
293
  key: "release",
281
294
  value: function release() {
@@ -298,12 +311,14 @@ var ConfirmStore = exports["default"] = /*#__PURE__*/function () {
298
311
  if ((payload === null || payload === void 0 ? void 0 : payload.dialogKey) === _constant.FcrUIDialogKey.CONFIRM) {
299
312
  switch (action) {
300
313
  case _constant.FcrUIAction.OPEN_DIALOG:
301
- if (this.screenBounds) {
302
- var _dialogWindows$get2;
303
- (_dialogWindows$get2 = _dialogs.dialogWindows.get(_constant.FcrUIDialogKey.CONFIRM)) === null || _dialogWindows$get2 === void 0 || _dialogWindows$get2.setBounds(this.screenBounds);
304
- this.logger.info("open confirm dialog with bounds ".concat(JSON.stringify(this.screenBounds)));
305
- } else {
306
- this.logger.error("the screen bounds is ".concat(JSON.stringify(this.screenBounds)));
314
+ if ((0, _env.isElectron)()) {
315
+ var _ref5 = (0, _tools.followCorrectDisplay)({
316
+ dialogKey: _constant.FcrUIDialogKey.CONFIRM,
317
+ alwaysFollowScreen: true
318
+ }),
319
+ nearDisplayBounds = _ref5.nearDisplayBounds;
320
+ this.screenBounds = nearDisplayBounds;
321
+ this.logger.info("open confirm dialog with bounds ".concat(JSON.stringify(nearDisplayBounds)));
307
322
  }
308
323
  this.addConfirm(payload);
309
324
  break;