fcr-ui-scene 3.6.1 → 3.6.3

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 (257) hide show
  1. package/lib/creator.d.ts +6 -0
  2. package/lib/creator.js +125 -24
  3. package/lib/electron/app.js +5 -4
  4. package/lib/electron/bootstrap-dev.js +3 -0
  5. package/lib/electron/bootstrap-sdk.js +4 -0
  6. package/lib/electron/injections.d.ts +5 -0
  7. package/lib/electron/injections.js +36 -8
  8. package/lib/electron/ipc/ipc.d.ts +1 -0
  9. package/lib/electron/ipc/ipc.js +4 -0
  10. package/lib/electron/main.js +16 -8
  11. package/lib/electron/plugins/screenshot.js +4 -2
  12. package/lib/electron/preload.js +7 -2
  13. package/lib/electron/window.js +4 -6
  14. package/lib/fragments/annotation/index.d.ts +11 -0
  15. package/lib/fragments/annotation/index.js +121 -0
  16. package/lib/fragments/annotation/libs.d.ts +55 -0
  17. package/lib/fragments/annotation/libs.js +93 -0
  18. package/lib/fragments/annotation/store.d.ts +30 -0
  19. package/lib/fragments/annotation/store.js +565 -0
  20. package/lib/fragments/annotation/view.d.ts +3 -0
  21. package/lib/fragments/annotation/view.js +31 -0
  22. package/lib/fragments/base.d.ts +10 -0
  23. package/lib/fragments/base.js +44 -0
  24. package/lib/modules/action-bar/components/screen-share/submenu.js +7 -6
  25. package/lib/modules/action-bar/index.css +11 -0
  26. package/lib/modules/action-bar/index.d.ts +2 -0
  27. package/lib/modules/action-bar/index.js +1 -0
  28. package/lib/modules/action-bar/store.d.ts +7 -9
  29. package/lib/modules/action-bar/store.js +49 -90
  30. package/lib/modules/annotation/board-cursor.css +76 -0
  31. package/lib/modules/annotation/components/control-bar/index.css +48 -0
  32. package/lib/modules/annotation/components/control-bar/index.d.ts +3 -0
  33. package/lib/modules/annotation/components/control-bar/index.js +141 -0
  34. package/lib/modules/annotation/components/toolbar/components/color-tool/color-panel/index.d.ts +3 -0
  35. package/lib/modules/annotation/components/toolbar/components/color-tool/color-panel/index.js +46 -0
  36. package/lib/modules/annotation/components/toolbar/components/color-tool/index.d.ts +1 -0
  37. package/lib/modules/annotation/components/toolbar/components/color-tool/index.js +52 -0
  38. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.d.ts +3 -0
  39. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.js +61 -0
  40. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +12 -0
  41. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.js +65 -0
  42. package/lib/modules/annotation/components/toolbar/components/graphic-tool/index.d.ts +1 -0
  43. package/lib/modules/annotation/components/toolbar/components/graphic-tool/index.js +68 -0
  44. package/lib/modules/annotation/components/toolbar/components/item/item.d.ts +18 -0
  45. package/lib/modules/annotation/components/toolbar/components/item/item.js +116 -0
  46. package/lib/modules/annotation/components/toolbar/components/item/style.css +43 -0
  47. package/lib/modules/annotation/components/toolbar/components/panel/index.d.ts +5 -0
  48. package/lib/modules/annotation/components/toolbar/components/panel/index.js +22 -0
  49. package/lib/modules/annotation/components/toolbar/components/panel/style.css +24 -0
  50. package/lib/modules/annotation/components/toolbar/components/pen-tool/index.d.ts +1 -0
  51. package/lib/modules/annotation/components/toolbar/components/pen-tool/index.js +58 -0
  52. package/lib/modules/annotation/components/toolbar/components/pen-tool/pen-panel/index.d.ts +3 -0
  53. package/lib/modules/annotation/components/toolbar/components/pen-tool/pen-panel/index.js +34 -0
  54. package/lib/modules/annotation/components/toolbar/components/tips/index.d.ts +2 -0
  55. package/lib/modules/annotation/components/toolbar/components/tips/index.js +25 -0
  56. package/lib/modules/annotation/components/toolbar/components/tips/style.css +19 -0
  57. package/lib/modules/annotation/components/toolbar/index.d.ts +0 -0
  58. package/lib/modules/annotation/components/toolbar/index.js +1 -0
  59. package/lib/modules/annotation/components/toolbar/store.d.ts +40 -0
  60. package/lib/modules/annotation/components/toolbar/store.js +279 -0
  61. package/lib/modules/annotation/components/toolbar/style.css +55 -0
  62. package/lib/modules/annotation/components/toolbar/view.d.ts +2 -0
  63. package/lib/modules/annotation/components/toolbar/view.js +120 -0
  64. package/lib/modules/annotation/index.d.ts +38 -0
  65. package/lib/modules/annotation/index.js +169 -0
  66. package/lib/modules/annotation/store.d.ts +93 -0
  67. package/lib/modules/annotation/store.js +673 -0
  68. package/lib/modules/annotation/style.css +26 -0
  69. package/lib/modules/annotation/view.d.ts +3 -0
  70. package/lib/modules/annotation/view.js +49 -0
  71. package/lib/modules/chat/view.js +112 -100
  72. package/lib/modules/components/annotation-menu/index.d.ts +7 -0
  73. package/lib/modules/components/annotation-menu/index.js +119 -0
  74. package/lib/modules/components/leave-meeting/components/assign-host.js +26 -23
  75. package/lib/modules/components/member-window/components/member-actions/components/audio-control.d.ts +0 -1
  76. package/lib/modules/components/member-window/components/member-actions/components/audio-control.js +10 -4
  77. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.d.ts +4 -2
  78. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +10 -6
  79. package/lib/modules/components/member-window/components/member-actions/components/icon-status.d.ts +0 -2
  80. package/lib/modules/components/member-window/components/member-actions/components/icon-status.js +3 -4
  81. package/lib/modules/components/member-window/components/member-actions/components/more-actions.d.ts +0 -3
  82. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +6 -32
  83. package/lib/modules/components/member-window/components/member-actions/components/share-status.js +11 -3
  84. package/lib/modules/components/member-window/components/member-actions/components/user-info.d.ts +0 -1
  85. package/lib/modules/components/member-window/components/member-actions/components/user-info.js +7 -10
  86. package/lib/modules/components/member-window/components/member-actions/components/user-tag.d.ts +0 -1
  87. package/lib/modules/components/member-window/components/member-actions/components/user-tag.js +0 -2
  88. package/lib/modules/components/member-window/components/member-actions/index.js +1 -32
  89. package/lib/modules/components/member-window/components/member-actions/store.d.ts +38 -1
  90. package/lib/modules/components/member-window/components/member-actions/store.js +130 -23
  91. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.d.ts +2 -1
  92. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.js +6 -1
  93. package/lib/modules/components/member-window/components/video-player/index.d.ts +1 -0
  94. package/lib/modules/components/member-window/index.css +37 -0
  95. package/lib/modules/components/member-window/index.d.ts +1 -1
  96. package/lib/modules/components/member-window/index.js +8 -5
  97. package/lib/modules/components/member-window/types.d.ts +2 -0
  98. package/lib/modules/components/security-menu/index.js +7 -6
  99. package/lib/modules/control-bar/components/annotation-button/index.d.ts +1 -0
  100. package/lib/modules/control-bar/components/annotation-button/index.js +59 -0
  101. package/lib/modules/control-bar/index.d.ts +6 -6
  102. package/lib/modules/control-bar/index.js +5 -34
  103. package/lib/modules/control-bar/store.d.ts +27 -13
  104. package/lib/modules/control-bar/store.js +121 -126
  105. package/lib/modules/control-bar/view.js +50 -4
  106. package/lib/modules/dialog/components/annotation-tool/index.d.ts +4 -0
  107. package/lib/modules/dialog/components/annotation-tool/index.js +53 -0
  108. package/lib/modules/dialog/components/chat/index.js +1 -1
  109. package/lib/modules/dialog/components/control-bar/index.d.ts +0 -2
  110. package/lib/modules/dialog/components/control-bar/index.js +1 -3
  111. package/lib/modules/dialog/components/host-area-container/index.d.ts +12 -0
  112. package/lib/modules/dialog/components/host-area-container/index.js +214 -0
  113. package/lib/modules/dialog/components/participant/index.js +1 -1
  114. package/lib/modules/dialog/components/system-preference/index.js +1 -1
  115. package/lib/modules/dialog/components/video-window/index.js +1 -0
  116. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +14 -0
  117. package/lib/modules/dialog/hooks/use-popover-watcher.js +112 -0
  118. package/lib/modules/dialog/hooks/useElectron.d.ts +1 -0
  119. package/lib/modules/dialog/hooks/useElectron.js +13 -3
  120. package/lib/modules/dialog/index.d.ts +2 -3
  121. package/lib/modules/dialog/index.js +3 -26
  122. package/lib/modules/dialog/store.d.ts +14 -9
  123. package/lib/modules/dialog/store.js +56 -50
  124. package/lib/modules/event-confirm/components/window/index.d.ts +7 -0
  125. package/lib/modules/event-confirm/components/window/index.js +188 -0
  126. package/lib/modules/event-confirm/index.d.ts +4 -4
  127. package/lib/modules/event-confirm/index.js +6 -4
  128. package/lib/modules/event-confirm/store.d.ts +4 -5
  129. package/lib/modules/event-confirm/store.js +35 -26
  130. package/lib/modules/event-confirm/view.js +23 -171
  131. package/lib/modules/event-sound/index.js +1 -1
  132. package/lib/modules/layout/components/CommonVideoRenderer.js +33 -16
  133. package/lib/modules/layout/index.d.ts +4 -0
  134. package/lib/modules/layout/index.js +2 -0
  135. package/lib/modules/layout/store.d.ts +14 -2
  136. package/lib/modules/layout/store.js +77 -45
  137. package/lib/modules/layout/type.d.ts +7 -0
  138. package/lib/modules/participant/index.d.ts +2 -0
  139. package/lib/modules/participant/index.js +2 -1
  140. package/lib/modules/participant/store.d.ts +5 -2
  141. package/lib/modules/participant/store.js +73 -25
  142. package/lib/modules/setting/audio-settings/audio-settings.js +3 -14
  143. package/lib/modules/setting/index.d.ts +2 -0
  144. package/lib/modules/setting/index.js +3 -3
  145. package/lib/modules/setting/store.d.ts +8 -10
  146. package/lib/modules/setting/store.js +22 -20
  147. package/lib/modules/share-screen/components/selection/index.js +18 -42
  148. package/lib/modules/share-screen/index.d.ts +6 -2
  149. package/lib/modules/share-screen/index.js +4 -2
  150. package/lib/modules/share-screen/store.d.ts +41 -46
  151. package/lib/modules/share-screen/store.js +297 -718
  152. package/lib/modules/share-screen/view.js +2 -2
  153. package/lib/modules/state-bar/assets/fcr_grid_big.svg +1 -1
  154. package/lib/modules/state-bar/assets/fcr_listontop_big.svg +1 -1
  155. package/lib/modules/state-bar/index.css +8 -6
  156. package/lib/modules/state-bar/index.d.ts +4 -0
  157. package/lib/modules/state-bar/index.js +3 -1
  158. package/lib/modules/state-bar/layout-config.d.ts +1 -0
  159. package/lib/modules/state-bar/layout-config.js +15 -5
  160. package/lib/modules/state-bar/store.d.ts +9 -1
  161. package/lib/modules/state-bar/store.js +17 -2
  162. package/lib/modules/state-bar/view.js +9 -4
  163. package/lib/modules/video-window/components/members/index.js +2 -1
  164. package/lib/modules/waiting-room-layout/store.js +1 -1
  165. package/lib/modules/whiteboard/components/control-bar/store.d.ts +5 -1
  166. package/lib/modules/whiteboard/components/control-bar/store.js +10 -1
  167. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/picker.js +16 -5
  168. package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.js +67 -12
  169. package/lib/modules/whiteboard/components/toolbar/components/expansion/index.js +22 -2
  170. package/lib/modules/whiteboard/components/toolbar/components/history.js +46 -14
  171. package/lib/modules/whiteboard/components/toolbar/components/item/index.js +3 -2
  172. package/lib/modules/whiteboard/components/toolbar/components/move-handle.js +1 -1
  173. package/lib/modules/whiteboard/components/toolbar/components/pen-picker.js +58 -16
  174. package/lib/modules/whiteboard/components/toolbar/components/screen-capture-picker.js +15 -4
  175. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +45 -2
  176. package/lib/modules/whiteboard/components/toolbar/hooks/index.d.ts +14 -0
  177. package/lib/modules/whiteboard/components/toolbar/hooks/index.js +235 -7
  178. package/lib/modules/whiteboard/components/toolbar/index.d.ts +1 -1
  179. package/lib/modules/whiteboard/components/toolbar/index.js +1 -1
  180. package/lib/modules/whiteboard/components/toolbar/store.d.ts +13 -2
  181. package/lib/modules/whiteboard/components/toolbar/store.js +74 -24
  182. package/lib/modules/whiteboard/components/toolbar/{ style.css → style.css} +1 -0
  183. package/lib/modules/whiteboard/index.d.ts +2 -0
  184. package/lib/modules/whiteboard/index.js +22 -21
  185. package/lib/modules/whiteboard/style.css +0 -4
  186. package/lib/modules/whiteboard/view.js +8 -2
  187. package/lib/plugins/browser-runtime-plugin.js +10 -1
  188. package/lib/providers/annotation-provider.d.ts +128 -0
  189. package/lib/providers/annotation-provider.js +421 -0
  190. package/lib/providers/device-provider.d.ts +3 -3
  191. package/lib/providers/device-provider.js +8 -6
  192. package/lib/providers/event-provider.d.ts +3 -3
  193. package/lib/providers/interpreter-provider.d.ts +1 -0
  194. package/lib/providers/interpreter-provider.js +182 -154
  195. package/lib/providers/privilege-provider.d.ts +35 -6
  196. package/lib/providers/privilege-provider.js +105 -49
  197. package/lib/providers/renderer-provider.js +3 -7
  198. package/lib/providers/room-provider.d.ts +13 -1
  199. package/lib/providers/room-provider.js +21 -7
  200. package/lib/providers/screen-share-provider.d.ts +131 -34
  201. package/lib/providers/screen-share-provider.js +554 -173
  202. package/lib/providers/sharing-provider.d.ts +37 -0
  203. package/lib/{shared-data-source/screen-share-data-source.js → providers/sharing-provider.js} +102 -39
  204. package/lib/providers/user-setting-storage-provider.d.ts +20 -0
  205. package/lib/providers/user-setting-storage-provider.js +74 -0
  206. package/lib/runtime.d.ts +6 -1
  207. package/lib/scenes/main-scene.d.ts +7 -2
  208. package/lib/scenes/main-scene.js +55 -27
  209. package/lib/scenes/waiting-scene.d.ts +6 -0
  210. package/lib/scenes/waiting-scene.js +15 -5
  211. package/lib/shared-data-source/config.d.ts +1 -5
  212. package/lib/shared-data-source/config.js +11 -81
  213. package/lib/shared-data-source/member-data.d.ts +21 -5
  214. package/lib/shared-data-source/member-data.js +69 -17
  215. package/lib/shared-data-source/screen-share-data.d.ts +274 -0
  216. package/lib/shared-data-source/screen-share-data.js +390 -0
  217. package/lib/shared-data-source/security-data.d.ts +4 -1
  218. package/lib/shared-data-source/security-data.js +5 -2
  219. package/lib/shared-data-source/setting.d.ts +13 -13
  220. package/lib/shared-data-source/setting.js +16 -10
  221. package/lib/shared-data-source/video-window.d.ts +2 -1
  222. package/lib/shared-data-source/video-window.js +56 -36
  223. package/lib/translations/enUS.d.ts +8 -0
  224. package/lib/translations/enUS.js +9 -1
  225. package/lib/translations/zhCN.d.ts +8 -0
  226. package/lib/translations/zhCN.js +11 -3
  227. package/lib/type.d.ts +55 -1
  228. package/lib/ui-manager.d.ts +3 -2
  229. package/lib/ui-manager.js +6 -4
  230. package/lib/ui-scene.js +70 -50
  231. package/lib/utilities/constant.d.ts +10 -2
  232. package/lib/utilities/constant.js +8 -0
  233. package/lib/utilities/logger.d.ts +4 -0
  234. package/lib/utilities/logger.js +8 -1
  235. package/lib/utilities/renderer-event.d.ts +3 -0
  236. package/lib/utilities/renderer-event.js +14 -1
  237. package/lib/utilities/screen.js +2 -1
  238. package/lib/utilities/setting-config-storage.d.ts +5 -6
  239. package/lib/utilities/setting-config-storage.js +33 -39
  240. package/lib/utilities/tools.d.ts +19 -1
  241. package/lib/utilities/tools.js +51 -4
  242. package/package.json +9 -7
  243. package/public/assets/cursors/fcr_whiteboard_input.ico +0 -0
  244. package/public/assets/cursors/fcr_whiteboard_pen.ico +0 -0
  245. package/public/assets/cursors/fcr_whiteboard_shape_-straightline.ico +0 -0
  246. package/public/assets/cursors/fcr_whiteboard_shape_arrow.ico +0 -0
  247. package/public/assets/cursors/fcr_whiteboard_shape_circle.ico +0 -0
  248. package/public/assets/cursors/fcr_whiteboard_shape_rectangle.ico +0 -0
  249. package/public/assets/cursors/fcr_whiteboard_shape_triangle.ico +0 -0
  250. package/public/assets/fcr_chat_reddot.svg +3 -3
  251. package/public/assets/fcr_grid_big.svg +1 -1
  252. package/public/assets/fcr_leave2.svg +14 -14
  253. package/public/assets/fcr_listontop_big.svg +1 -1
  254. package/public/assets/step-gradient.svg +1 -1
  255. package/public/fragment.html +10 -0
  256. package/public/index.html +3 -1
  257. package/lib/shared-data-source/screen-share-data-source.d.ts +0 -37
@@ -7,20 +7,20 @@ 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
- import { CurrentShareScreenTypes } from '../share-screen/types';
13
12
  import { FcrUIDialogComponent } from './type';
14
13
  import { FcrUIWidgetProvider } from '../../providers/widget-provider';
15
14
  import { FcrUIChatProvider } from '../../providers/chat-provider';
16
15
  import { FcrUIAbilityProviderImpl } from 'fcr-ui-scene/src/providers/ability-provider';
17
16
  import { CurrentShareScreenWorkArea } from '../../utilities/tools';
18
17
  import { FcrUIScreenShareProvider } from '../../providers/screen-share-provider';
18
+ import { FcrUIScreenShareSharedDataSource } from '../../shared-data-source/screen-share-data';
19
19
  export declare const HIGH_LEVEL_DIALOG_LAYER: FcrUIDialogKey[];
20
20
  export declare const TOP_LEVEL_DIALOG_LAYER: FcrUIDialogKey[];
21
21
  export default class DialogStore {
22
22
  protected logger: import("agora-foundation/lib/logger").Logger;
23
- private _uiEventStore;
23
+ private _eventProvider;
24
24
  private _userInfo;
25
25
  private _streamControl;
26
26
  private _userControl;
@@ -33,10 +33,12 @@ export default class DialogStore {
33
33
  private _screenShareProvider;
34
34
  private _sharedLayoutDataSource;
35
35
  private _phoneAudioConnectorProvider;
36
+ private _sharedScreenShareSharedDataSource;
36
37
  private _dialogComponentMapByKey;
37
38
  private _chatProvider;
38
39
  private _handleDialogEventObserver;
39
40
  private _userObserver;
41
+ private _electronDialogs;
40
42
  accessor openedDialogs: {
41
43
  dialogKey: FcrUIDialogKey;
42
44
  dialogId: string;
@@ -47,10 +49,11 @@ export default class DialogStore {
47
49
  accessor participantElectronDialogContainer: HTMLElement | null;
48
50
  accessor currentDialogBounds: Map<FcrUIDialogKey, number>;
49
51
  accessor videoWindowBounds: any;
50
- accessor currentShareId: string;
51
- accessor currentShareType: AgoraRtcScreenCaptureType;
52
- accessor currentShareBounds: CurrentShareBounds;
53
52
  accessor recordShareBounds: Map<CurrentShareBounds, CurrentShareScreenWorkArea>;
53
+ accessor allApplicationWindows: AgoraRtcWindowInfo[];
54
+ get currentShareId(): string;
55
+ get currentShareType(): AgoraRtcScreenCaptureType;
56
+ get currentShareBounds(): CurrentShareBounds;
54
57
  get dialogComponentMapByKey(): Map<FcrUIDialogKey, FcrUIDialogComponent>;
55
58
  get participantCount(): number;
56
59
  get isManager(): boolean;
@@ -69,10 +72,11 @@ export default class DialogStore {
69
72
  get widgetDialogIds(): Map<string, string>;
70
73
  get chatRoomState(): import("fcr-core/lib/room-control/chatroom-control/type").FcrChatRoomConnectionState;
71
74
  get isSharingScreen(): boolean;
72
- constructor({ uiEventStore, userControl, deviceStore, streamControl, localVideoRenderProvider, remoteVideoRenderManager, securityStore, sharedLayoutDataSource, dialogProvider, phoneAudioConnectorProvider, dialogsByKey, widgetProvider, screenShareProvider, chatProvider, }: {
75
+ get isSharingScreenOwner(): boolean;
76
+ constructor({ eventProvider, userControl, deviceStore, streamControl, localVideoRenderProvider, remoteVideoRenderManager, securityStore, sharedLayoutDataSource, dialogProvider, phoneAudioConnectorProvider, dialogsByKey, widgetProvider, screenShareProvider, chatProvider, sharedScreenShareSharedDataSource, }: {
73
77
  streamControl: FcrStreamControl;
74
78
  userControl: FcrUserControl;
75
- uiEventStore: FcrUIEventProvider;
79
+ eventProvider: FcrUIEventProvider;
76
80
  securityStore: FcrUIPrivilegeProvider;
77
81
  deviceStore: FcrUIDeviceProvider;
78
82
  localVideoRenderProvider: FcrUILocalVideoRenderProvider;
@@ -85,6 +89,7 @@ export default class DialogStore {
85
89
  chatProvider: FcrUIChatProvider;
86
90
  screenShareProvider: FcrUIScreenShareProvider;
87
91
  abilityProvider: FcrUIAbilityProviderImpl;
92
+ sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource;
88
93
  });
89
94
  setParticipantElectronDialogContainer(dom: HTMLElement | null): void;
90
95
  setVideoWindowBounds(payload: any): void;
@@ -98,8 +103,8 @@ export default class DialogStore {
98
103
  moveParticipantFromDialogToAside(): void;
99
104
  release(): void;
100
105
  resizeVideoWindow(width: number, height: number): void;
101
- updateCurrentShareContent(payload: CurrentShareScreenTypes): void;
102
106
  recordCurrentSharingScreenBounds(): CurrentShareScreenWorkArea;
107
+ log(info: string): void;
103
108
  private _handleDialogEvent;
104
109
  private _hanleAllUserCountUpdated;
105
110
  private _focusDialog;
@@ -77,13 +77,12 @@ var _react = require("react");
77
77
  var _platform = require("../../utilities/platform");
78
78
  var _constant = require("../../utilities/constant");
79
79
  var _dialogProvider = require("../../providers/dialog-provider");
80
- var _type2 = require("agora-rte-sdk/lib/core/rtc/type");
81
80
  var _logger = require("../../utilities/logger");
82
81
  var _tools = require("../../utilities/tools");
83
82
  var _useElectron = require("./hooks/useElectron");
84
83
  var _excluded = ["x", "y"];
85
84
  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;
85
+ var _initProto, _init_openedDialogs, _init_confirmDialogs, _init_userCount, _init_participantElectronDialogContainer, _init_currentDialogBounds, _init_videoWindowBounds, _init_recordShareBounds, _init_allApplicationWindows, _setVideoWindowBoundsDecs, _recordCurrentSharingScreenBoundsDecs, _handleDialogEventDecs, _hanleAllUserCountUpdatedDecs, _ref;
87
86
  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
87
  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
88
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
@@ -97,7 +96,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
97
96
  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
97
  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
98
  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];
99
+ 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
100
  var _A = /*#__PURE__*/new WeakMap();
102
101
  var _B = /*#__PURE__*/new WeakMap();
103
102
  var _C = /*#__PURE__*/new WeakMap();
@@ -106,13 +105,11 @@ var _E = /*#__PURE__*/new WeakMap();
106
105
  var _F = /*#__PURE__*/new WeakMap();
107
106
  var _G = /*#__PURE__*/new WeakMap();
108
107
  var _H = /*#__PURE__*/new WeakMap();
109
- var _I = /*#__PURE__*/new WeakMap();
110
- var _J = /*#__PURE__*/new WeakMap();
111
- _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");
108
+ _ref = (_setVideoWindowBoundsDecs = [_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
109
  var DialogStore = exports["default"] = /*#__PURE__*/function () {
113
110
  function DialogStore(_ref2) {
114
111
  var _this = this;
115
- var uiEventStore = _ref2.uiEventStore,
112
+ var eventProvider = _ref2.eventProvider,
116
113
  userControl = _ref2.userControl,
117
114
  deviceStore = _ref2.deviceStore,
118
115
  streamControl = _ref2.streamControl,
@@ -125,7 +122,8 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
125
122
  dialogsByKey = _ref2.dialogsByKey,
126
123
  widgetProvider = _ref2.widgetProvider,
127
124
  screenShareProvider = _ref2.screenShareProvider,
128
- chatProvider = _ref2.chatProvider;
125
+ chatProvider = _ref2.chatProvider,
126
+ sharedScreenShareSharedDataSource = _ref2.sharedScreenShareSharedDataSource;
129
127
  (0, _classCallCheck2["default"])(this, DialogStore);
130
128
  (0, _defineProperty2["default"])(this, _ref, (_initProto(this), (0, _logger.createLogger)({
131
129
  prefix: 'DialogStore'
@@ -136,22 +134,17 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
136
134
  (0, _defineProperty2["default"])(this, "_userObserver", {
137
135
  onAllUserCountUpdated: this._hanleAllUserCountUpdated
138
136
  });
137
+ (0, _defineProperty2["default"])(this, "_electronDialogs", new Map());
139
138
  _classPrivateFieldInitSpec(this, _A, _init_openedDialogs(this, []));
140
139
  _classPrivateFieldInitSpec(this, _B, _init_confirmDialogs(this, new Map()));
141
140
  _classPrivateFieldInitSpec(this, _C, _init_userCount(this, 0));
142
141
  _classPrivateFieldInitSpec(this, _D, _init_participantElectronDialogContainer(this, null));
143
142
  _classPrivateFieldInitSpec(this, _E, _init_currentDialogBounds(this, new Map()));
144
143
  _classPrivateFieldInitSpec(this, _F, _init_videoWindowBounds(this, {}));
145
- _classPrivateFieldInitSpec(this, _G, _init_currentShareId(this, ''));
146
- _classPrivateFieldInitSpec(this, _H, _init_currentShareType(this, _type2.AgoraRtcScreenCaptureType.SCREEN));
147
- _classPrivateFieldInitSpec(this, _I, _init_currentShareBounds(this, {
148
- width: 0,
149
- height: 0,
150
- x: 0,
151
- y: 0
152
- }));
153
- _classPrivateFieldInitSpec(this, _J, _init_recordShareBounds(this, new Map()));
154
- this._uiEventStore = uiEventStore;
144
+ _classPrivateFieldInitSpec(this, _G, _init_recordShareBounds(this, new Map()));
145
+ _classPrivateFieldInitSpec(this, _H, _init_allApplicationWindows(this, []));
146
+ this._sharedScreenShareSharedDataSource = sharedScreenShareSharedDataSource;
147
+ this._eventProvider = eventProvider;
155
148
  this._streamControl = streamControl;
156
149
  this._userControl = userControl;
157
150
  this._remoteVideoRenderManager = remoteVideoRenderManager;
@@ -166,7 +159,7 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
166
159
  this._chatProvider = chatProvider;
167
160
  this._screenShareProvider = screenShareProvider;
168
161
  this._userControl.addObserver(this._userObserver);
169
- this._uiEventStore.addObserver(this._handleDialogEventObserver);
162
+ this._eventProvider.addObserver(this._handleDialogEventObserver);
170
163
  this._dialogProvider.addObserver(this._handleDialogEventObserver);
171
164
  this._userInfo = userControl.getLocalUser();
172
165
  (0, _mobx.runInAction)(function () {
@@ -222,7 +215,7 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
222
215
  _classPrivateFieldSet(_F, this, v);
223
216
  }
224
217
  }, {
225
- key: "currentShareId",
218
+ key: "recordShareBounds",
226
219
  get: function get() {
227
220
  return _classPrivateFieldGet(_G, this);
228
221
  },
@@ -230,7 +223,7 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
230
223
  _classPrivateFieldSet(_G, this, v);
231
224
  }
232
225
  }, {
233
- key: "currentShareType",
226
+ key: "allApplicationWindows",
234
227
  get: function get() {
235
228
  return _classPrivateFieldGet(_H, this);
236
229
  },
@@ -238,20 +231,19 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
238
231
  _classPrivateFieldSet(_H, this, v);
239
232
  }
240
233
  }, {
241
- key: "currentShareBounds",
234
+ key: "currentShareId",
242
235
  get: function get() {
243
- return _classPrivateFieldGet(_I, this);
244
- },
245
- set: function set(v) {
246
- _classPrivateFieldSet(_I, this, v);
236
+ return this._sharedScreenShareSharedDataSource.currentShareId;
247
237
  }
248
238
  }, {
249
- key: "recordShareBounds",
239
+ key: "currentShareType",
250
240
  get: function get() {
251
- return _classPrivateFieldGet(_J, this);
252
- },
253
- set: function set(v) {
254
- _classPrivateFieldSet(_J, this, v);
241
+ return this._sharedScreenShareSharedDataSource.currentShareType;
242
+ }
243
+ }, {
244
+ key: "currentShareBounds",
245
+ get: function get() {
246
+ return this._sharedScreenShareSharedDataSource.currentSelectionBounds;
255
247
  }
256
248
  }, {
257
249
  key: "dialogComponentMapByKey",
@@ -326,7 +318,13 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
326
318
  }, {
327
319
  key: "isSharingScreen",
328
320
  get: function get() {
329
- return this._screenShareProvider.isSharingScreen;
321
+ return this._sharedScreenShareSharedDataSource.isSharingScreen;
322
+ }
323
+ }, {
324
+ key: "isSharingScreenOwner",
325
+ get: function get() {
326
+ var _this$_sharedScreenSh;
327
+ return ((_this$_sharedScreenSh = this._sharedScreenShareSharedDataSource.screenSharingOwner) === null || _this$_sharedScreenSh === void 0 ? void 0 : _this$_sharedScreenSh.userId) === this._userInfo.userId;
330
328
  }
331
329
  }, {
332
330
  key: "setParticipantElectronDialogContainer",
@@ -405,27 +403,17 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
405
403
  value: function release() {
406
404
  this._userControl.removeObserver(this._userObserver);
407
405
  this._dialogProvider.removeObserver(this._handleDialogEventObserver);
408
- this._uiEventStore.removeObserver(this._handleDialogEventObserver);
406
+ this._eventProvider.removeObserver(this._handleDialogEventObserver);
409
407
  _dialogs.dialogWindows.clear();
410
408
  }
411
409
  }, {
412
410
  key: "resizeVideoWindow",
413
411
  value: function resizeVideoWindow(width, height) {
414
- this._uiEventStore.sendEvent(_constant.FcrUIAction.VIDEO_WINDOW_RESIZE, {
412
+ this._eventProvider.sendEvent(_constant.FcrUIAction.VIDEO_WINDOW_RESIZE, {
415
413
  width: width,
416
414
  height: height
417
415
  });
418
416
  }
419
- }, {
420
- key: "updateCurrentShareContent",
421
- value: function updateCurrentShareContent(payload) {
422
- var id = payload.id,
423
- type = payload.type,
424
- bounds = payload.bounds;
425
- this.currentShareId = id;
426
- this.currentShareType = type;
427
- this.currentShareBounds = bounds;
428
- }
429
417
  }, {
430
418
  key: "recordCurrentSharingScreenBounds",
431
419
  value: function recordCurrentSharingScreenBounds() {
@@ -461,6 +449,11 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
461
449
  }
462
450
  return screenBounds;
463
451
  }
452
+ }, {
453
+ key: "log",
454
+ value: function log(info) {
455
+ this.logger.info(info);
456
+ }
464
457
  }, {
465
458
  key: "_handleDialogEvent",
466
459
  value: function _handleDialogEvent(action, payload) {
@@ -469,8 +462,16 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
469
462
  dialogId = _ref6.dialogId,
470
463
  _ref6$params = _ref6.params,
471
464
  params = _ref6$params === void 0 ? {} : _ref6$params;
465
+ var openInFragments = [_constant.FcrUIDialogKey.ANNOTATION];
472
466
  switch (action) {
473
467
  case _constant.FcrUIAction.OPEN_DIALOG:
468
+ if ((0, _env.isElectron)()) {
469
+ if (openInFragments.includes(dialogKey)) {
470
+ this._electronDialogs.set(dialogId, dialogKey);
471
+ window.runtime.open(dialogKey, dialogId);
472
+ return;
473
+ }
474
+ }
474
475
  this.logger.info('open_dialog: ', dialogKey, '====', dialogId);
475
476
  // 因为窗口可能会移动,因此需要矫正 global toast 和 confirm 的 Bounds
476
477
  var isToastOrConfirm = [_constant.FcrUIDialogKey.SHOW_TOAST, _constant.FcrUIDialogKey.CONFIRM].includes(dialogKey);
@@ -504,6 +505,13 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
504
505
  }
505
506
  break;
506
507
  case _constant.FcrUIAction.CLOSE_DIALOG:
508
+ if ((0, _env.isElectron)()) {
509
+ var electronDialogKey = this._electronDialogs.get(dialogId);
510
+ if (electronDialogKey && openInFragments.includes(electronDialogKey)) {
511
+ window.runtime.close(electronDialogKey, dialogId);
512
+ return;
513
+ }
514
+ }
507
515
  this.openedDialogs = this.openedDialogs.filter(function (dialog) {
508
516
  return dialog.dialogId !== dialogId;
509
517
  });
@@ -541,16 +549,14 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
541
549
  }]);
542
550
  }();
543
551
  _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);
552
+ 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, "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"], [_recordCurrentSharingScreenBoundsDecs, 18, "recordCurrentSharingScreenBounds"], [_decorator.bound, 2, "log"], [_handleDialogEventDecs, 18, "_handleDialogEvent"], [_hanleAllUserCountUpdatedDecs, 18, "_hanleAllUserCountUpdated"], [_decorator.bound, 2, "_focusDialog"]], []).e, 9);
545
553
  _init_openedDialogs = _applyDecs$e[0];
546
554
  _init_confirmDialogs = _applyDecs$e[1];
547
555
  _init_userCount = _applyDecs$e[2];
548
556
  _init_participantElectronDialogContainer = _applyDecs$e[3];
549
557
  _init_currentDialogBounds = _applyDecs$e[4];
550
558
  _init_videoWindowBounds = _applyDecs$e[5];
551
- _init_currentShareId = _applyDecs$e[6];
552
- _init_currentShareType = _applyDecs$e[7];
553
- _init_currentShareBounds = _applyDecs$e[8];
554
- _init_recordShareBounds = _applyDecs$e[9];
555
- _initProto = _applyDecs$e[10];
559
+ _init_recordShareBounds = _applyDecs$e[6];
560
+ _init_allApplicationWindows = _applyDecs$e[7];
561
+ _initProto = _applyDecs$e[8];
556
562
  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;