fcr-ui-scene 3.6.1 → 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 (292) 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 +4 -0
  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/modules/action-bar/components/screen-share/submenu.js +7 -6
  104. package/lib/modules/action-bar/index.css +7 -0
  105. package/lib/modules/action-bar/index.d.ts +2 -0
  106. package/lib/modules/action-bar/index.js +1 -0
  107. package/lib/modules/action-bar/store.d.ts +6 -2
  108. package/lib/modules/action-bar/store.js +15 -9
  109. package/lib/modules/annotation/components/control-bar/index.css +48 -0
  110. package/lib/modules/annotation/components/control-bar/index.d.ts +3 -0
  111. package/lib/modules/annotation/components/control-bar/index.js +101 -0
  112. package/lib/modules/annotation/components/toolbar/components/color-tool/color-panel/index.d.ts +3 -0
  113. package/lib/modules/annotation/components/toolbar/components/color-tool/color-panel/index.js +46 -0
  114. package/lib/modules/annotation/components/toolbar/components/color-tool/index.d.ts +1 -0
  115. package/lib/modules/annotation/components/toolbar/components/color-tool/index.js +52 -0
  116. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.d.ts +3 -0
  117. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.js +59 -0
  118. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +11 -0
  119. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.js +59 -0
  120. package/lib/modules/annotation/components/toolbar/components/graphic-tool/index.d.ts +1 -0
  121. package/lib/modules/annotation/components/toolbar/components/graphic-tool/index.js +68 -0
  122. package/lib/modules/annotation/components/toolbar/components/item/item.d.ts +17 -0
  123. package/lib/modules/annotation/components/toolbar/components/item/item.js +115 -0
  124. package/lib/modules/annotation/components/toolbar/components/item/style.css +43 -0
  125. package/lib/modules/annotation/components/toolbar/components/panel/index.d.ts +5 -0
  126. package/lib/modules/annotation/components/toolbar/components/panel/index.js +22 -0
  127. package/lib/modules/annotation/components/toolbar/components/panel/style.css +24 -0
  128. package/lib/modules/annotation/components/toolbar/components/pen-tool/index.d.ts +1 -0
  129. package/lib/modules/annotation/components/toolbar/components/pen-tool/index.js +58 -0
  130. package/lib/modules/annotation/components/toolbar/components/pen-tool/pen-panel/index.d.ts +3 -0
  131. package/lib/modules/annotation/components/toolbar/components/pen-tool/pen-panel/index.js +34 -0
  132. package/lib/modules/annotation/components/toolbar/components/tips/index.d.ts +2 -0
  133. package/lib/modules/annotation/components/toolbar/components/tips/index.js +25 -0
  134. package/lib/modules/annotation/components/toolbar/components/tips/style.css +19 -0
  135. package/lib/modules/annotation/components/toolbar/index.d.ts +0 -0
  136. package/lib/modules/annotation/components/toolbar/index.js +1 -0
  137. package/lib/modules/annotation/components/toolbar/store.d.ts +40 -0
  138. package/lib/modules/annotation/components/toolbar/store.js +279 -0
  139. package/lib/modules/annotation/components/toolbar/style.css +55 -0
  140. package/lib/modules/annotation/components/toolbar/view.d.ts +2 -0
  141. package/lib/modules/annotation/components/toolbar/view.js +120 -0
  142. package/lib/modules/annotation/index.d.ts +36 -0
  143. package/lib/modules/annotation/index.js +168 -0
  144. package/lib/modules/annotation/store.d.ts +85 -0
  145. package/lib/modules/annotation/store.js +648 -0
  146. package/lib/modules/annotation/style.css +26 -0
  147. package/lib/modules/annotation/view.d.ts +2 -0
  148. package/lib/modules/annotation/view.js +32 -0
  149. package/lib/modules/chat/view.js +112 -100
  150. package/lib/modules/components/annotation-menu/index.d.ts +7 -0
  151. package/lib/modules/components/annotation-menu/index.js +119 -0
  152. package/lib/modules/components/leave-meeting/components/assign-host.js +26 -23
  153. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.d.ts +2 -0
  154. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +6 -2
  155. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.d.ts +2 -1
  156. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.js +6 -1
  157. package/lib/modules/components/member-window/components/video-player/index.d.ts +1 -0
  158. package/lib/modules/components/member-window/index.d.ts +1 -1
  159. package/lib/modules/components/member-window/index.js +8 -5
  160. package/lib/modules/components/member-window/types.d.ts +2 -0
  161. package/lib/modules/components/security-menu/index.js +7 -6
  162. package/lib/modules/control-bar/components/annotation-button/index.d.ts +1 -0
  163. package/lib/modules/control-bar/components/annotation-button/index.js +59 -0
  164. package/lib/modules/control-bar/index.d.ts +6 -2
  165. package/lib/modules/control-bar/index.js +5 -2
  166. package/lib/modules/control-bar/store.d.ts +23 -7
  167. package/lib/modules/control-bar/store.js +112 -77
  168. package/lib/modules/control-bar/view.js +7 -3
  169. package/lib/modules/dialog/components/annotation-tool/index.d.ts +4 -0
  170. package/lib/modules/dialog/components/annotation-tool/index.js +53 -0
  171. package/lib/modules/dialog/components/chat/index.js +1 -1
  172. package/lib/modules/dialog/components/host-area-container/index.d.ts +12 -0
  173. package/lib/modules/dialog/components/host-area-container/index.js +214 -0
  174. package/lib/modules/dialog/components/participant/index.js +1 -1
  175. package/lib/modules/dialog/components/system-preference/index.js +1 -1
  176. package/lib/modules/dialog/components/video-window/index.js +1 -0
  177. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +14 -0
  178. package/lib/modules/dialog/hooks/use-popover-watcher.js +112 -0
  179. package/lib/modules/dialog/hooks/useElectron.d.ts +1 -0
  180. package/lib/modules/dialog/hooks/useElectron.js +11 -2
  181. package/lib/modules/dialog/index.d.ts +2 -0
  182. package/lib/modules/dialog/index.js +2 -1
  183. package/lib/modules/dialog/store.d.ts +9 -2
  184. package/lib/modules/dialog/store.js +46 -6
  185. package/lib/modules/event-confirm/components/window/index.d.ts +7 -0
  186. package/lib/modules/event-confirm/components/window/index.js +188 -0
  187. package/lib/modules/event-confirm/index.d.ts +4 -4
  188. package/lib/modules/event-confirm/index.js +6 -4
  189. package/lib/modules/event-confirm/store.d.ts +4 -5
  190. package/lib/modules/event-confirm/store.js +35 -26
  191. package/lib/modules/event-confirm/view.js +23 -171
  192. package/lib/modules/event-sound/index.js +1 -1
  193. package/lib/modules/layout/components/CommonVideoRenderer.js +30 -16
  194. package/lib/modules/layout/index.d.ts +4 -0
  195. package/lib/modules/layout/index.js +2 -0
  196. package/lib/modules/layout/store.d.ts +14 -2
  197. package/lib/modules/layout/store.js +77 -45
  198. package/lib/modules/participant/index.d.ts +2 -0
  199. package/lib/modules/participant/index.js +2 -1
  200. package/lib/modules/participant/store.d.ts +5 -2
  201. package/lib/modules/participant/store.js +45 -28
  202. package/lib/modules/setting/audio-settings/audio-settings.js +3 -14
  203. package/lib/modules/share-screen/components/selection/index.js +18 -42
  204. package/lib/modules/share-screen/index.d.ts +6 -2
  205. package/lib/modules/share-screen/index.js +4 -2
  206. package/lib/modules/share-screen/store.d.ts +38 -46
  207. package/lib/modules/share-screen/store.js +263 -693
  208. package/lib/modules/share-screen/view.js +2 -2
  209. package/lib/modules/state-bar/assets/fcr_grid_big.svg +1 -1
  210. package/lib/modules/state-bar/assets/fcr_listontop_big.svg +1 -1
  211. package/lib/modules/state-bar/index.d.ts +2 -0
  212. package/lib/modules/state-bar/index.js +1 -0
  213. package/lib/modules/state-bar/store.d.ts +5 -1
  214. package/lib/modules/state-bar/store.js +9 -1
  215. package/lib/modules/state-bar/view.js +3 -2
  216. package/lib/modules/video-window/components/members/index.js +2 -1
  217. package/lib/modules/waiting-room-layout/store.js +1 -1
  218. package/lib/modules/whiteboard/components/control-bar/store.d.ts +5 -1
  219. package/lib/modules/whiteboard/components/control-bar/store.js +8 -1
  220. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/picker.js +16 -5
  221. package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.js +67 -12
  222. package/lib/modules/whiteboard/components/toolbar/components/expansion/index.js +22 -2
  223. package/lib/modules/whiteboard/components/toolbar/components/history.js +46 -14
  224. package/lib/modules/whiteboard/components/toolbar/components/item/index.js +3 -2
  225. package/lib/modules/whiteboard/components/toolbar/components/move-handle.js +1 -1
  226. package/lib/modules/whiteboard/components/toolbar/components/pen-picker.js +58 -16
  227. package/lib/modules/whiteboard/components/toolbar/components/screen-capture-picker.js +15 -4
  228. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +45 -2
  229. package/lib/modules/whiteboard/components/toolbar/hooks/index.d.ts +14 -0
  230. package/lib/modules/whiteboard/components/toolbar/hooks/index.js +235 -7
  231. package/lib/modules/whiteboard/components/toolbar/index.d.ts +1 -1
  232. package/lib/modules/whiteboard/components/toolbar/index.js +1 -1
  233. package/lib/modules/whiteboard/components/toolbar/store.d.ts +9 -2
  234. package/lib/modules/whiteboard/components/toolbar/store.js +30 -6
  235. package/lib/modules/whiteboard/components/toolbar/{ style.css → style.css} +1 -0
  236. package/lib/modules/whiteboard/index.d.ts +2 -0
  237. package/lib/modules/whiteboard/index.js +20 -20
  238. package/lib/plugins/browser-runtime-plugin.js +10 -1
  239. package/lib/providers/annotation-provider.d.ts +77 -0
  240. package/lib/providers/annotation-provider.js +411 -0
  241. package/lib/providers/interpreter-provider.d.ts +1 -0
  242. package/lib/providers/interpreter-provider.js +182 -154
  243. package/lib/providers/privilege-provider.d.ts +35 -6
  244. package/lib/providers/privilege-provider.js +105 -49
  245. package/lib/providers/renderer-provider.js +3 -7
  246. package/lib/providers/room-provider.d.ts +13 -1
  247. package/lib/providers/room-provider.js +21 -7
  248. package/lib/providers/screen-share-provider.d.ts +131 -34
  249. package/lib/providers/screen-share-provider.js +561 -173
  250. package/lib/providers/sharing-provider.d.ts +33 -0
  251. package/lib/{shared-data-source/screen-share-data-source.js → providers/sharing-provider.js} +87 -39
  252. package/lib/runtime.d.ts +6 -1
  253. package/lib/scenes/main-scene.d.ts +7 -2
  254. package/lib/scenes/main-scene.js +54 -25
  255. package/lib/scenes/waiting-scene.d.ts +6 -0
  256. package/lib/scenes/waiting-scene.js +15 -5
  257. package/lib/shared-data-source/member-data.d.ts +21 -5
  258. package/lib/shared-data-source/member-data.js +69 -17
  259. package/lib/shared-data-source/screen-share-data.d.ts +270 -0
  260. package/lib/shared-data-source/screen-share-data.js +389 -0
  261. package/lib/shared-data-source/security-data.d.ts +4 -1
  262. package/lib/shared-data-source/security-data.js +5 -2
  263. package/lib/shared-data-source/setting.js +6 -4
  264. package/lib/type.d.ts +53 -0
  265. package/lib/ui-manager.d.ts +3 -2
  266. package/lib/ui-manager.js +6 -4
  267. package/lib/ui-scene.js +59 -44
  268. package/lib/utilities/constant.d.ts +8 -1
  269. package/lib/utilities/constant.js +7 -0
  270. package/lib/utilities/logger.d.ts +4 -0
  271. package/lib/utilities/logger.js +8 -1
  272. package/lib/utilities/renderer-event.d.ts +3 -0
  273. package/lib/utilities/renderer-event.js +14 -1
  274. package/lib/utilities/screen.js +2 -1
  275. package/lib/utilities/tools.d.ts +18 -1
  276. package/lib/utilities/tools.js +48 -2
  277. package/package.json +6 -6
  278. package/public/assets/cursors/fcr_whiteboard_input.ico +0 -0
  279. package/public/assets/cursors/fcr_whiteboard_pen.ico +0 -0
  280. package/public/assets/cursors/fcr_whiteboard_shape_-straightline.ico +0 -0
  281. package/public/assets/cursors/fcr_whiteboard_shape_arrow.ico +0 -0
  282. package/public/assets/cursors/fcr_whiteboard_shape_circle.ico +0 -0
  283. package/public/assets/cursors/fcr_whiteboard_shape_rectangle.ico +0 -0
  284. package/public/assets/cursors/fcr_whiteboard_shape_triangle.ico +0 -0
  285. package/public/assets/fcr_chat_reddot.svg +3 -3
  286. package/public/assets/fcr_grid_big.svg +1 -1
  287. package/public/assets/fcr_leave2.svg +14 -14
  288. package/public/assets/fcr_listontop_big.svg +1 -1
  289. package/public/assets/step-gradient.svg +1 -1
  290. package/public/fragment.html +10 -0
  291. package/public/index.html +3 -1
  292. package/lib/shared-data-source/screen-share-data-source.d.ts +0 -37
@@ -0,0 +1,214 @@
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/esnext.async-iterator.filter.js");
13
+ require("core-js/modules/esnext.async-iterator.for-each.js");
14
+ require("core-js/modules/esnext.iterator.filter.js");
15
+ require("core-js/modules/esnext.iterator.for-each.js");
16
+ require("core-js/modules/web.dom-collections.for-each.js");
17
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
18
+ Object.defineProperty(exports, "__esModule", {
19
+ value: true
20
+ });
21
+ exports.HotAreaContext = exports.HotAreaContainer = void 0;
22
+ require("core-js/modules/es.array.concat.js");
23
+ require("core-js/modules/es.array.find.js");
24
+ require("core-js/modules/es.object.to-string.js");
25
+ require("core-js/modules/esnext.async-iterator.find.js");
26
+ require("core-js/modules/esnext.iterator.constructor.js");
27
+ require("core-js/modules/esnext.iterator.find.js");
28
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
29
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
30
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
31
+ var _react = require("@use-gesture/react");
32
+ var _react2 = require("react");
33
+ var _useElectron = require("../../hooks/useElectron");
34
+ var _env = require("agora-foundation/lib/utilities/env");
35
+ var _constant = require("../../../../utilities/constant");
36
+ var _tools = require("../../../../utilities/tools");
37
+ var _store = require("../../store");
38
+ var _platform = require("../../../../utilities/platform");
39
+ var _jsxRuntime = require("react/jsx-runtime");
40
+ var _excluded = ["x", "y"];
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 HotAreaContext = exports.HotAreaContext = /*#__PURE__*/(0, _react2.createContext)({
44
+ placement: 'top'
45
+ });
46
+ var HotAreaContainer = exports.HotAreaContainer = function HotAreaContainer(props) {
47
+ var children = props.children,
48
+ width = props.width,
49
+ height = props.height,
50
+ _props$placement = props.placement,
51
+ placement = _props$placement === void 0 ? 'top' : _props$placement,
52
+ dialogKey = props.dialogKey;
53
+ var _useContext = (0, _react2.useContext)(_store.StoreContext),
54
+ recordShareBounds = _useContext.recordShareBounds,
55
+ currentShareBounds = _useContext.currentShareBounds,
56
+ currentShareId = _useContext.currentShareId,
57
+ currentShareType = _useContext.currentShareType,
58
+ allApplicationWindows = _useContext.allApplicationWindows;
59
+ var _ref = (0, _env.isElectron)() ? (0, _react2.useContext)(_useElectron.DialogInstanceContext) : {},
60
+ browserWindow = _ref.browserWindow,
61
+ newRendererWindow = _ref.newRendererWindow;
62
+ var windowFocusTimerRef = (0, _react2.useRef)();
63
+ var _useState = (0, _react2.useState)(placement),
64
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
65
+ navCurrentPosition = _useState2[0],
66
+ setNavCurrentPosition = _useState2[1];
67
+ var rndRef = (0, _react2.useRef)(null);
68
+ var _ref2 = (0, _react2.useMemo)(function () {
69
+ return (0, _tools.followCorrectDisplay)({
70
+ dialogKey: _constant.FcrUIDialogKey.ANNOTATION_TOOL
71
+ });
72
+ }, []) || {
73
+ nearDisplayBounds: {
74
+ width: 0,
75
+ height: 0
76
+ }
77
+ },
78
+ bounds = _ref2.nearDisplayBounds;
79
+ var _useState3 = (0, _react2.useState)({
80
+ x: bounds.width / 2 - width / 2,
81
+ y: bounds.height - height - 60
82
+ }),
83
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
84
+ coordination = _useState4[0],
85
+ setCoordination = _useState4[1];
86
+ var bind = (0, _react.useDrag)(function (_ref3) {
87
+ var _rndRef$current;
88
+ var _ref3$delta = (0, _slicedToArray2["default"])(_ref3.delta, 2),
89
+ dx = _ref3$delta[0],
90
+ dy = _ref3$delta[1];
91
+ var x = coordination.x + dx;
92
+ var y = coordination.y + dy;
93
+ var maxX = bounds.width - (((_rndRef$current = rndRef.current) === null || _rndRef$current === void 0 ? void 0 : _rndRef$current.offsetWidth) || width);
94
+ var maxY = bounds.height - height;
95
+ handleDragStop({
96
+ lastX: Math.max(0, Math.min(maxX, x)),
97
+ lastY: Math.max(0, Math.min(maxY, y))
98
+ });
99
+ });
100
+ var handleDragStop = function handleDragStop(data) {
101
+ var x = data.lastX,
102
+ y = data.lastY;
103
+ setCoordination({
104
+ x: x,
105
+ y: y
106
+ });
107
+ // 控制栏左上角在屏幕Y轴的最大坐标
108
+ var MAX_Y = bounds.height - height;
109
+ if (y >= MAX_Y) {
110
+ setNavCurrentPosition('bottom');
111
+ } else if (y <= 0) {
112
+ setNavCurrentPosition('top');
113
+ }
114
+ };
115
+ var handleMouseEnter = function handleMouseEnter() {
116
+ browserWindow === null || browserWindow === void 0 || browserWindow.focus();
117
+ browserWindow === null || browserWindow === void 0 || browserWindow.setIgnoreMouseEvents(false, {
118
+ forward: true
119
+ });
120
+ };
121
+ var handleMouseLeave = function handleMouseLeave(e) {
122
+ browserWindow === null || browserWindow === void 0 || browserWindow.setIgnoreMouseEvents(true, {
123
+ forward: true
124
+ });
125
+ };
126
+ var handleMouseMove = function handleMouseMove() {
127
+ browserWindow === null || browserWindow === void 0 || browserWindow.moveTop();
128
+ browserWindow === null || browserWindow === void 0 || browserWindow.focus();
129
+ browserWindow === null || browserWindow === void 0 || browserWindow.setIgnoreMouseEvents(false, {
130
+ forward: true
131
+ });
132
+ };
133
+ function getScreenBounds() {
134
+ // 当电脑系统更改主屏幕为非共享屏幕时,会导致正在共享屏幕的 x, y 坐标发生改变,并触发 merics-changed 事件,去重新计算 controlbar 的热区位置
135
+ // 但当初分享屏幕时是通过所选择屏幕的 bounds 通过 currentShareBounds 传递到热区计算函数获知到热区应该在哪个显示器上的
136
+ // 因此当系统的主屏幕发生改变,再次通过这个 currentShareBounds 获取的 x, y 坐标就是错误的,以下逻辑既是对此情况做出相应处理
137
+ // 同一个 currentShareBounds 代表选择分享的屏幕没有发生变化,通过它作为 key 去存屏幕信息。当存在这个 key 时,取出来去拿屏幕 id 去匹配,并重新赋值 x,y
138
+ var screenBounds = undefined;
139
+ if (recordShareBounds.has(currentShareBounds)) {
140
+ var _window$runtime$scree;
141
+ var _ref4 = recordShareBounds.get(currentShareBounds),
142
+ ox = _ref4.x,
143
+ oy = _ref4.y,
144
+ _bounds = (0, _objectWithoutProperties2["default"])(_ref4, _excluded);
145
+ var _ref5 = ((_window$runtime$scree = window.runtime.screen.getAllDisplays().find(function (display) {
146
+ return _bounds.displayId === display.id;
147
+ })) === null || _window$runtime$scree === void 0 ? void 0 : _window$runtime$scree.bounds) || {
148
+ x: ox,
149
+ y: oy
150
+ },
151
+ x = _ref5.x,
152
+ y = _ref5.y;
153
+ screenBounds = _objectSpread({
154
+ x: x,
155
+ y: y
156
+ }, _bounds);
157
+ browserWindow === null || browserWindow === void 0 || browserWindow.setBounds(screenBounds);
158
+ } else {
159
+ recordShareBounds.clear();
160
+ screenBounds = (0, _tools.getCurrentSharingWorkArea)({
161
+ currentShareBounds: currentShareBounds
162
+ });
163
+ recordShareBounds.set(currentShareBounds, screenBounds);
164
+ }
165
+ return screenBounds;
166
+ }
167
+ function checkMouseOver() {
168
+ if (windowFocusTimerRef.current) clearInterval(windowFocusTimerRef.current);
169
+ var screenBounds = getScreenBounds();
170
+ browserWindow && newRendererWindow && (0, _tools.handleCheckMouseOver)({
171
+ elem: rndRef.current,
172
+ browserWindow: browserWindow,
173
+ screenBounds: screenBounds,
174
+ newRendererWindow: newRendererWindow,
175
+ callback: function callback(timerId) {
176
+ windowFocusTimerRef.current = timerId;
177
+ },
178
+ dialog: dialogKey
179
+ });
180
+ }
181
+ (0, _react2.useEffect)(function () {
182
+ (0, _platform.isWindows)() ? checkMouseOver() : getScreenBounds();
183
+ window.runtime.screen.addListener(
184
+ // @ts-ignore
185
+ 'display-metrics-changed', (0, _platform.isWindows)() ? checkMouseOver : getScreenBounds);
186
+ handleMouseLeave();
187
+ return function () {
188
+ window.runtime.screen.removeListener(
189
+ // @ts-ignore
190
+ 'display-metrics-changed', (0, _platform.isWindows)() ? checkMouseOver : getScreenBounds);
191
+ clearInterval(windowFocusTimerRef.current);
192
+ };
193
+ }, [currentShareId]);
194
+ return currentShareId ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, bind()), {}, {
195
+ style: {
196
+ width: 'fit-content',
197
+ transform: "translate(".concat(coordination.x, "px, ").concat(coordination.y, "px)")
198
+ },
199
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
200
+ ref: rndRef,
201
+ onMouseEnter: handleMouseEnter,
202
+ onMouseLeave: handleMouseLeave,
203
+ onMouseOver: handleMouseEnter,
204
+ onMouseMove: handleMouseMove,
205
+ onClick: handleMouseMove,
206
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(HotAreaContext.Provider, {
207
+ value: {
208
+ placement: placement
209
+ },
210
+ children: children
211
+ })
212
+ })
213
+ })) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {});
214
+ };
@@ -28,7 +28,7 @@ var Container = (0, _mobxReact.observer)(function (props) {
28
28
  height: 560,
29
29
  dialogKey: _constant.FcrUIDialogKey.PARTICIPANT,
30
30
  onClose: store.closeParticipantDialog,
31
- actions: store.isSharingScreen ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
31
+ actions: store.isSharingScreen && store.isSharingScreenOwner ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
32
32
  content: transI18n('fmt_uimanager_option_mergeview'),
33
33
  mouseEnterDelay: 0,
34
34
  trigger: "hover",
@@ -83,7 +83,7 @@ var SystemPreferenceDialogContent = function SystemPreferenceDialogContent(props
83
83
  },
84
84
  children: button.text
85
85
  })
86
- });
86
+ }, button.text);
87
87
  })]
88
88
  });
89
89
  };
@@ -125,6 +125,7 @@ var VideoWindowDialog = exports.VideoWindowDialog = (0, _mobxReact.observer)(fun
125
125
  y = _window$runtime$scree2.y,
126
126
  width = _window$runtime$scree2.width;
127
127
  browserWindow.setBounds(setCalcBounds(x, y, width));
128
+ store.log("[VideoWindowDialog]: [onOpened], x: ".concat(x, ", y: ").concat(y, ", width: ").concat(width));
128
129
  }
129
130
  reCalculate();
130
131
  calculateRef.current = reCalculate;
@@ -0,0 +1,14 @@
1
+ export declare function usePopoverWatcher({ wrapperClass, offset, onAdded, onRemoved, }: {
2
+ wrapperClass: string;
3
+ onAdded?: () => void;
4
+ onRemoved?: () => void;
5
+ offset?: {
6
+ vertical: number;
7
+ horizontal: number;
8
+ };
9
+ }): {
10
+ watcher: ({ browserWindow, newRendererWindow, }: {
11
+ browserWindow?: Electron.BrowserWindow;
12
+ newRendererWindow?: Window;
13
+ }) => void;
14
+ };
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.usePopoverWatcher = usePopoverWatcher;
8
+ require("core-js/modules/es.array.for-each.js");
9
+ require("core-js/modules/es.object.to-string.js");
10
+ require("core-js/modules/esnext.async-iterator.for-each.js");
11
+ require("core-js/modules/esnext.iterator.constructor.js");
12
+ require("core-js/modules/esnext.iterator.for-each.js");
13
+ require("core-js/modules/web.dom-collections.for-each.js");
14
+ var _lodash = require("lodash");
15
+ var _react = require("react");
16
+ function usePopoverWatcher(_ref) {
17
+ var wrapperClass = _ref.wrapperClass,
18
+ _ref$offset = _ref.offset,
19
+ offset = _ref$offset === void 0 ? {
20
+ vertical: 0,
21
+ horizontal: 0
22
+ } : _ref$offset,
23
+ onAdded = _ref.onAdded,
24
+ onRemoved = _ref.onRemoved;
25
+ var observerRef = (0, _react.useRef)();
26
+ var wrapperDomRef = (0, _react.useRef)();
27
+ function watcher(_ref2) {
28
+ var browserWindow = _ref2.browserWindow,
29
+ newRendererWindow = _ref2.newRendererWindow;
30
+ if (!newRendererWindow || !browserWindow) {
31
+ return console.log('newRendererWindow and browserWindow is not inital');
32
+ }
33
+ if (observerRef.current) observerRef.current.disconnect();
34
+ var body = newRendererWindow.document.body;
35
+ var browserWindowBounds = browserWindow.getBounds();
36
+ var threshold = calculateThreshold(browserWindow, body);
37
+ browserWindow.addListener(
38
+ // @ts-ignore
39
+ 'custom-move', (0, _lodash.debounce)(function () {
40
+ threshold = calculateThreshold(browserWindow, body);
41
+ }, 200));
42
+ observerRef.current = new MutationObserver(function (mutationsList) {
43
+ var popover = body.querySelector('.fcr-popover');
44
+ wrapperDomRef.current = body.querySelector(wrapperClass);
45
+ var wrapper = wrapperDomRef.current;
46
+ mutationsList.forEach(function (mutation) {
47
+ if (mutation.type === 'childList') {
48
+ mutation.addedNodes.forEach(function (node) {
49
+ if (node.nodeType === Node.ELEMENT_NODE && node.contains(popover)) {
50
+ if (popover) {
51
+ var wrapperHeight = wrapper.offsetHeight,
52
+ wrapperWidth = wrapper.offsetWidth;
53
+ var offsetHeight = popover.offsetHeight,
54
+ popoverWidth = popover.offsetWidth,
55
+ offsetTop = popover.offsetTop,
56
+ offsetLeft = popover.offsetLeft;
57
+ // 如果 popover 展开,根据 popover 的尺寸调整窗口的尺寸可以正好容纳 popover
58
+ browserWindow.setBounds({
59
+ height: wrapperHeight + offsetHeight + offset.vertical,
60
+ width: wrapperWidth + offset.horizontal,
61
+ y: threshold.placement === 'top' ? threshold.y - offsetHeight : threshold.y
62
+ });
63
+ // if (wrapper) {
64
+ // const rect = wrapper.getBoundingClientRect();
65
+ // wrapper.setAttribute('style', `height: ${rect.height}px;width: ${rect.width}px`);
66
+ // // popover.setAttribute('style', `left: ${offsetLeft}px;top: ${offsetTop}px`);
67
+ // }
68
+ onAdded === null || onAdded === void 0 || onAdded();
69
+ }
70
+ }
71
+ });
72
+ mutation.removedNodes.forEach(function (node) {
73
+ var _classList;
74
+ if ((_classList = node.classList) !== null && _classList !== void 0 && _classList.contains('fcr-popover')) {
75
+ onRemoved === null || onRemoved === void 0 || onRemoved();
76
+ var width = browserWindowBounds.width,
77
+ height = browserWindowBounds.height;
78
+ browserWindow.setBounds({
79
+ width: width,
80
+ height: height,
81
+ y: threshold.y
82
+ });
83
+ browserWindow.setResizable(true);
84
+ }
85
+ });
86
+ }
87
+ });
88
+ });
89
+ observerRef.current.observe(newRendererWindow.document.body, {
90
+ childList: true,
91
+ subtree: true
92
+ });
93
+ }
94
+ return {
95
+ watcher: watcher
96
+ };
97
+ }
98
+ function calculateThreshold(browserWindow, body) {
99
+ var _body$querySelector;
100
+ var bounds = browserWindow.getBounds();
101
+ var nearDisplay = window.runtime.screen.getDisplayNearestPoint(bounds);
102
+ var nearDisplayBounds = nearDisplay.bounds;
103
+ var middleThreshold = nearDisplayBounds.height / 2;
104
+ var placement = bounds.y > middleThreshold ? 'top' : 'bottom';
105
+ console.log('custom moving', placement, bounds.y);
106
+ (_body$querySelector = body.querySelector('#root')) === null || _body$querySelector === void 0 || _body$querySelector.setAttribute('style', "display: flex;align-items: ".concat(placement === 'top' ? 'flex-end' : 'flex-start'));
107
+ return {
108
+ placement: placement,
109
+ x: bounds.x,
110
+ y: bounds.y
111
+ };
112
+ }
@@ -3,6 +3,7 @@ export declare const DialogInstanceContext: import("react").Context<{
3
3
  browserWindow: Electron.BrowserWindow;
4
4
  newRendererWindow: Window;
5
5
  resizable: boolean;
6
+ closeDialog: () => void;
6
7
  }>;
7
8
  export declare const shadowOffset: number;
8
9
  export declare const diffPlatformHighLevelLayer: string;
@@ -22,6 +22,8 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
22
22
  require("core-js/modules/es.array.concat.js");
23
23
  require("core-js/modules/es.array.for-each.js");
24
24
  require("core-js/modules/es.array.includes.js");
25
+ require("core-js/modules/es.date.to-json.js");
26
+ require("core-js/modules/es.json.stringify.js");
25
27
  require("core-js/modules/es.object.to-string.js");
26
28
  require("core-js/modules/es.string.includes.js");
27
29
  require("core-js/modules/esnext.async-iterator.for-each.js");
@@ -100,6 +102,7 @@ function useElectronDialog(props) {
100
102
  alwaysFollowScreen: fullScreen
101
103
  }),
102
104
  nearDisplayBounds = _ref.nearDisplayBounds;
105
+ store === null || store === void 0 || store.log("[useElectronDialog]: dialogKey: ".concat(dialogKey, ", nearDisplayBounds: ").concat(JSON.stringify(nearDisplayBounds)));
103
106
 
104
107
  // 设置所有窗口为所有工作区可见
105
108
  browserWindow.setVisibleOnAllWorkspaces(true, {
@@ -167,7 +170,10 @@ function useElectronDialog(props) {
167
170
  value: {
168
171
  browserWindow: browserWindow,
169
172
  newRendererWindow: newRendererWindow,
170
- resizable: !!customConfigs.resizable
173
+ resizable: !!customConfigs.resizable,
174
+ closeDialog: function closeDialog() {
175
+ return store.closeDialogByKey(dialogKey);
176
+ }
171
177
  },
172
178
  children: typeof children === 'function' ? children(browserWindow) : children
173
179
  })
@@ -297,7 +303,10 @@ function useElectronDialogByDialogId(props) {
297
303
  value: {
298
304
  browserWindow: browserWindow,
299
305
  newRendererWindow: newRendererWindow,
300
- resizable: !!customConfigs.resizable
306
+ resizable: !!customConfigs.resizable,
307
+ closeDialog: function closeDialog() {
308
+ return store.closeDilaogByDialogId(winUniqueId);
309
+ }
301
310
  },
302
311
  children: typeof children === 'function' ? children(browserWindow) : children
303
312
  })
@@ -16,6 +16,7 @@ import { FcrUIDialogInfo } from './type';
16
16
  import { FcrUIWidgetProvider } from '../../providers/widget-provider';
17
17
  import { FcrUIChatProvider } from '../../providers/chat-provider';
18
18
  import { FcrUIScreenShareProvider } from '../../providers/screen-share-provider';
19
+ import { FcrUIScreenShareSharedDataSource } from '../../shared-data-source/screen-share-data';
19
20
  export declare class DialogUIModule extends UIModule {
20
21
  private _dialogsByKey;
21
22
  private _store?;
@@ -35,6 +36,7 @@ export declare class DialogUIModule extends UIModule {
35
36
  waitingRoomControlProvider?: FcrUIWaitingRoomControlProvider;
36
37
  widgetProvider?: FcrUIWidgetProvider;
37
38
  screenShareProvider: FcrUIScreenShareProvider;
39
+ sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource;
38
40
  chatProvider?: FcrUIChatProvider;
39
41
  abilityProvider?: FcrUIAbilityProviderImpl;
40
42
  onNodeWillActive(): void;
@@ -99,7 +99,8 @@ var DialogUIModule = exports.DialogUIModule = /*#__PURE__*/function (_UIModule)
99
99
  widgetProvider: this.widgetProvider,
100
100
  chatProvider: this.chatProvider,
101
101
  abilityProvider: this.abilityProvider,
102
- screenShareProvider: this.screenShareProvider
102
+ screenShareProvider: this.screenShareProvider,
103
+ sharedScreenShareSharedDataSource: this.sharedScreenShareSharedDataSource
103
104
  });
104
105
  this.eventProvider.addObserver({
105
106
  onEvent: this.onUiEvent.bind(this)
@@ -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);