fcr-ui-scene 3.7.2 → 3.7.4-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/lib/creator.d.ts +2 -0
  2. package/lib/creator.js +37 -44
  3. package/lib/electron/app.js +7 -0
  4. package/lib/electron/injections.d.ts +1 -1
  5. package/lib/electron/injections.js +5 -3
  6. package/lib/electron/main.js +3 -1
  7. package/lib/fragments/annotation/index.d.ts +1 -0
  8. package/lib/fragments/annotation/index.js +13 -7
  9. package/lib/fragments/annotation/libs.d.ts +7 -6
  10. package/lib/fragments/annotation/libs.js +9 -8
  11. package/lib/fragments/annotation/store.d.ts +8 -4
  12. package/lib/fragments/annotation/store.js +351 -267
  13. package/lib/fragments/annotation/toolbar/components/color-tool/index.js +4 -0
  14. package/lib/fragments/annotation/toolbar/components/graphic-tool/index.js +4 -0
  15. package/lib/fragments/annotation/toolbar/components/item/item.d.ts +2 -0
  16. package/lib/fragments/annotation/toolbar/components/item/item.js +2 -4
  17. package/lib/fragments/annotation/toolbar/components/item/style.css +4 -2
  18. package/lib/fragments/annotation/toolbar/components/pen-tool/index.js +4 -0
  19. package/lib/fragments/annotation/utils.d.ts +1 -0
  20. package/lib/fragments/annotation/utils.js +27 -0
  21. package/lib/fragments/annotation/view.js +1 -6
  22. package/lib/fragments/base.js +5 -3
  23. package/lib/fragments/whiteboard/cursor.css +77 -0
  24. package/lib/fragments/whiteboard/index.d.ts +11 -0
  25. package/lib/fragments/whiteboard/index.js +91 -0
  26. package/lib/fragments/whiteboard/store.d.ts +31 -0
  27. package/lib/fragments/whiteboard/store.js +480 -0
  28. package/lib/fragments/whiteboard/style.css +4 -0
  29. package/lib/fragments/whiteboard/view.d.ts +4 -0
  30. package/lib/fragments/whiteboard/view.js +31 -0
  31. package/lib/global.css +6 -0
  32. package/lib/index.d.ts +1 -0
  33. package/lib/index.js +1 -0
  34. package/lib/modules/action-bar/components/apps/index.js +15 -5
  35. package/lib/modules/action-bar/components/leave/index.js +4 -11
  36. package/lib/modules/action-bar/components/screen-share/submenu.js +2 -2
  37. package/lib/modules/action-bar/index.d.ts +2 -0
  38. package/lib/modules/action-bar/index.js +2 -1
  39. package/lib/modules/action-bar/store.d.ts +6 -2
  40. package/lib/modules/action-bar/store.js +56 -93
  41. package/lib/modules/action-bar/view.d.ts +1 -0
  42. package/lib/modules/action-bar/view.js +3 -2
  43. package/lib/modules/annotation/annotation-toolbar-store.d.ts +4 -11
  44. package/lib/modules/annotation/annotation-toolbar-store.js +48 -90
  45. package/lib/modules/annotation/index.d.ts +2 -0
  46. package/lib/modules/annotation/index.js +2 -2
  47. package/lib/modules/annotation/store.d.ts +11 -49
  48. package/lib/modules/annotation/store.js +144 -429
  49. package/lib/modules/annotation/view.js +3 -6
  50. package/lib/modules/audio-stream/index.js +1 -2
  51. package/lib/modules/chat/components/chat-select/index.js +3 -0
  52. package/lib/modules/components/control-bar/components/loading/index.css +76 -0
  53. package/lib/modules/components/control-bar/components/loading/index.d.ts +8 -0
  54. package/lib/modules/components/control-bar/components/loading/index.js +64 -0
  55. package/lib/modules/components/control-bar/components/loading/loading.png +0 -0
  56. package/lib/modules/components/control-bar/components/progress/index.d.ts +5 -0
  57. package/lib/modules/components/control-bar/components/progress/index.js +43 -0
  58. package/lib/modules/components/control-bar/components/progress/style.css +51 -0
  59. package/lib/modules/components/control-bar/components/switch-theme/index.css +99 -0
  60. package/lib/modules/components/control-bar/components/switch-theme/index.d.ts +9 -0
  61. package/lib/modules/components/control-bar/components/switch-theme/index.js +94 -0
  62. package/lib/modules/components/control-bar/components/switch-theme/item.d.ts +9 -0
  63. package/lib/modules/components/control-bar/components/switch-theme/item.js +54 -0
  64. package/lib/modules/components/control-bar/components/switch-theme/libs.d.ts +4 -0
  65. package/lib/modules/components/control-bar/components/switch-theme/libs.js +31 -0
  66. package/lib/modules/components/control-bar/index.css +87 -0
  67. package/lib/modules/components/control-bar/index.d.ts +20 -0
  68. package/lib/modules/components/control-bar/index.js +276 -0
  69. package/lib/modules/components/device-control/store.js +2 -2
  70. package/lib/modules/components/leave-meeting/components/index.css +0 -9
  71. package/lib/modules/components/leave-meeting/index.d.ts +2 -1
  72. package/lib/modules/components/leave-meeting/index.js +19 -8
  73. package/lib/modules/components/leave-meeting/portal.d.ts +6 -0
  74. package/lib/modules/components/leave-meeting/portal.js +29 -0
  75. package/lib/modules/components/leave-meeting/style.css +9 -0
  76. package/lib/modules/components/member-window/components/member-actions/components/more-actions.d.ts +5 -2
  77. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +19 -9
  78. package/lib/modules/components/member-window/components/member-actions/components/share-status.js +4 -4
  79. package/lib/modules/components/member-window/components/member-actions/index.js +13 -6
  80. package/lib/modules/components/member-window/components/member-actions/provider.d.ts +1 -0
  81. package/lib/modules/components/member-window/components/member-actions/provider.js +4 -3
  82. package/lib/modules/components/member-window/components/member-actions/store.d.ts +2 -1
  83. package/lib/modules/components/member-window/components/member-actions/store.js +5 -1
  84. package/lib/modules/components/member-window/components/video-player/components/local-video-player-with-zoom.d.ts +6 -4
  85. package/lib/modules/components/member-window/components/video-player/components/local-video-player-with-zoom.js +77 -41
  86. package/lib/modules/components/member-window/components/video-player/components/remote-video-player-with-zoom.d.ts +3 -3
  87. package/lib/modules/components/member-window/components/video-player/index.d.ts +3 -3
  88. package/lib/modules/components/member-window/index.css +4 -0
  89. package/lib/modules/components/member-window/types.d.ts +9 -5
  90. package/lib/modules/components/toolbar/components/capture-tool/index.d.ts +9 -0
  91. package/lib/modules/components/toolbar/components/capture-tool/index.js +68 -0
  92. package/lib/modules/components/toolbar/components/clean-tool/index.d.ts +11 -0
  93. package/lib/modules/components/toolbar/components/clean-tool/index.js +71 -0
  94. package/lib/modules/components/toolbar/components/color-tool/color-panel/index.d.ts +11 -0
  95. package/lib/modules/components/toolbar/components/color-tool/color-panel/index.js +77 -0
  96. package/lib/modules/components/toolbar/components/color-tool/index.d.ts +14 -0
  97. package/lib/modules/components/toolbar/components/color-tool/index.js +66 -0
  98. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/index.d.ts +11 -0
  99. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/index.js +64 -0
  100. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +12 -0
  101. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/libs.js +65 -0
  102. package/lib/modules/components/toolbar/components/graphic-tool/index.d.ts +15 -0
  103. package/lib/modules/components/toolbar/components/graphic-tool/index.js +82 -0
  104. package/lib/modules/components/toolbar/components/group-tool/index.d.ts +5 -0
  105. package/lib/modules/components/toolbar/components/group-tool/index.js +43 -0
  106. package/lib/modules/components/toolbar/components/icons/fold-icon.d.ts +2 -0
  107. package/lib/modules/components/toolbar/components/icons/fold-icon.js +41 -0
  108. package/lib/modules/components/toolbar/components/icons/move-icon.d.ts +1 -0
  109. package/lib/modules/components/toolbar/components/icons/move-icon.js +66 -0
  110. package/lib/modules/components/toolbar/components/item/index.d.ts +25 -0
  111. package/lib/modules/components/toolbar/components/item/index.js +165 -0
  112. package/lib/modules/components/toolbar/components/item/style.css +94 -0
  113. package/lib/modules/components/toolbar/components/multiple-color-tool/index.d.ts +12 -0
  114. package/lib/modules/components/toolbar/components/multiple-color-tool/index.js +75 -0
  115. package/lib/modules/components/toolbar/components/panel/index.d.ts +9 -0
  116. package/lib/modules/components/toolbar/components/panel/index.js +28 -0
  117. package/lib/modules/components/toolbar/components/panel/style.css +86 -0
  118. package/lib/modules/components/toolbar/components/pen-tool/index.d.ts +13 -0
  119. package/lib/modules/components/toolbar/components/pen-tool/index.js +62 -0
  120. package/lib/modules/components/toolbar/components/pen-tool/pen-panel/index.d.ts +8 -0
  121. package/lib/modules/components/toolbar/components/pen-tool/pen-panel/index.js +39 -0
  122. package/lib/modules/components/toolbar/components/save-draft/index.d.ts +7 -0
  123. package/lib/modules/components/toolbar/components/save-draft/index.js +59 -0
  124. package/lib/modules/components/toolbar/components/vertical-frame/index.d.ts +8 -0
  125. package/lib/modules/components/toolbar/components/vertical-frame/index.js +179 -0
  126. package/lib/modules/components/toolbar/hooks/use-resize-visible.d.ts +4 -0
  127. package/lib/modules/components/toolbar/hooks/use-resize-visible.js +59 -0
  128. package/lib/modules/components/toolbar/index.d.ts +29 -0
  129. package/lib/modules/components/toolbar/index.js +258 -0
  130. package/lib/modules/components/toolbar/style.css +85 -0
  131. package/lib/modules/components/toolbar/types.d.ts +13 -0
  132. package/lib/modules/components/toolbar/types.js +6 -0
  133. package/lib/modules/control-bar/components/more-actions/index.js +0 -6
  134. package/lib/modules/control-bar/components/share-state-nav/index.js +3 -2
  135. package/lib/modules/control-bar/index.js +2 -1
  136. package/lib/modules/control-bar/store.d.ts +15 -12
  137. package/lib/modules/control-bar/store.js +68 -29
  138. package/lib/modules/control-bar/view.js +33 -67
  139. package/lib/modules/device-pretest/store.js +4 -2
  140. package/lib/modules/dialog/components/dialog-container/component/body.js +3 -24
  141. package/lib/modules/dialog/components/dialog-container/index.d.ts +4 -0
  142. package/lib/modules/dialog/components/dialog-container/index.js +67 -44
  143. package/lib/modules/dialog/components/normal-window/index.js +4 -0
  144. package/lib/modules/dialog/dialogs/control-bar/index.d.ts +1 -0
  145. package/lib/modules/dialog/dialogs/control-bar/index.js +26 -35
  146. package/lib/modules/dialog/dialogs/participant/components/title.js +1 -1
  147. package/lib/modules/dialog/dialogs/sub-window/index.d.ts +2 -0
  148. package/lib/modules/dialog/dialogs/sub-window/index.js +102 -0
  149. package/lib/modules/dialog/dialogs/video-window/index.d.ts +1 -0
  150. package/lib/modules/dialog/dialogs/video-window/index.js +31 -25
  151. package/lib/modules/dialog/dialogs/whiteboard/index.js +0 -1
  152. package/lib/modules/dialog/hooks/use-popover-watcher.js +1 -2
  153. package/lib/modules/dialog/hooks/useElectron.d.ts +13 -0
  154. package/lib/modules/dialog/hooks/useElectron.js +66 -13
  155. package/lib/modules/dialog/index.d.ts +6 -3
  156. package/lib/modules/dialog/index.js +5 -3
  157. package/lib/modules/dialog/level-config.js +1 -1
  158. package/lib/modules/dialog/store.d.ts +23 -9
  159. package/lib/modules/dialog/store.js +84 -12
  160. package/lib/modules/dialog/type.d.ts +8 -0
  161. package/lib/modules/event-confirm/components/window/index.d.ts +5 -2
  162. package/lib/modules/event-confirm/components/window/index.js +38 -14
  163. package/lib/modules/event-confirm/index.css +3 -2
  164. package/lib/modules/event-confirm/store.d.ts +10 -5
  165. package/lib/modules/event-confirm/store.js +68 -20
  166. package/lib/modules/event-confirm/view.js +10 -8
  167. package/lib/modules/event-sound/index.d.ts +1 -0
  168. package/lib/modules/event-sound/index.js +11 -24
  169. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-user/index.js +1 -2
  170. package/lib/modules/interpreter/store.js +11 -13
  171. package/lib/modules/invite/components/pstn-invite.js +0 -1
  172. package/lib/modules/layout/components/CommonVideoRenderer.js +26 -26
  173. package/lib/modules/layout/components/who-is-speaking.js +3 -6
  174. package/lib/modules/layout/index.d.ts +3 -1
  175. package/lib/modules/layout/index.js +2 -1
  176. package/lib/modules/layout/store.d.ts +7 -59
  177. package/lib/modules/layout/store.js +133 -45
  178. package/lib/modules/layout/type.d.ts +55 -0
  179. package/lib/modules/participant/components/can-moveable/index.js +0 -1
  180. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.js +4 -2
  181. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.js +14 -2
  182. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.d.ts +1 -1
  183. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.js +3 -2
  184. package/lib/modules/participant/components/participants/components/participants/index.js +3 -2
  185. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.d.ts +1 -0
  186. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.js +3 -1
  187. package/lib/modules/participant/components/participants/components/render-user/components/user-action/index.js +4 -2
  188. package/lib/modules/participant/components/participants/components/render-user/index.d.ts +4 -2
  189. package/lib/modules/participant/components/participants/components/render-user/index.js +5 -3
  190. package/lib/modules/participant/components/participants/index.js +5 -2
  191. package/lib/modules/participant/components/participants/types.d.ts +3 -0
  192. package/lib/modules/participant/index.d.ts +2 -0
  193. package/lib/modules/participant/index.js +2 -1
  194. package/lib/modules/participant/member-list-data-source.js +3 -5
  195. package/lib/modules/participant/store.d.ts +5 -1
  196. package/lib/modules/participant/store.js +51 -44
  197. package/lib/modules/secondary-window/index.d.ts +50 -0
  198. package/lib/modules/secondary-window/index.js +113 -0
  199. package/lib/modules/secondary-window/store.d.ts +76 -0
  200. package/lib/modules/secondary-window/store.js +407 -0
  201. package/lib/modules/secondary-window/type.d.ts +110 -0
  202. package/lib/modules/secondary-window/type.js +35 -0
  203. package/lib/modules/secondary-window/view.d.ts +6 -0
  204. package/lib/modules/secondary-window/view.js +257 -0
  205. package/lib/modules/setting/audio-settings/audio-settings.js +4 -2
  206. package/lib/modules/setting/config.d.ts +4 -0
  207. package/lib/modules/setting/config.js +6 -3
  208. package/lib/modules/setting/general-settings/general-settings.js +9 -0
  209. package/lib/modules/setting/state/index.js +0 -10
  210. package/lib/modules/setting/store.d.ts +9 -3
  211. package/lib/modules/setting/store.js +110 -77
  212. package/lib/modules/setting/view.js +3 -2
  213. package/lib/modules/share-screen/components/control-bar/index.d.ts +14 -1
  214. package/lib/modules/share-screen/components/control-bar/index.js +17 -12
  215. package/lib/modules/share-screen/components/selection/index.js +16 -23
  216. package/lib/modules/share-screen/index.d.ts +4 -1
  217. package/lib/modules/share-screen/index.js +6 -3
  218. package/lib/modules/share-screen/store.d.ts +18 -19
  219. package/lib/modules/share-screen/store.js +101 -151
  220. package/lib/modules/share-screen/types.d.ts +7 -8
  221. package/lib/modules/state-bar/index.d.ts +2 -0
  222. package/lib/modules/state-bar/index.js +2 -1
  223. package/lib/modules/state-bar/live-streaming-state.js +0 -1
  224. package/lib/modules/state-bar/store.d.ts +5 -2
  225. package/lib/modules/state-bar/store.js +14 -7
  226. package/lib/modules/state-bar/view.js +3 -3
  227. package/lib/modules/video-window/components/members/index.js +10 -15
  228. package/lib/modules/video-window/store.d.ts +1 -0
  229. package/lib/modules/video-window/store.js +8 -3
  230. package/lib/modules/whiteboard/components/control-bar/store.d.ts +3 -0
  231. package/lib/modules/whiteboard/components/control-bar/store.js +20 -11
  232. package/lib/modules/whiteboard/components/toolbar/store.d.ts +2 -2
  233. package/lib/modules/whiteboard/components/toolbar/store.js +2 -2
  234. package/lib/modules/whiteboard/index.d.ts +20 -17
  235. package/lib/modules/whiteboard/index.js +167 -132
  236. package/lib/plugins/module-dev-plugin.js +4 -0
  237. package/lib/providers/ability-provider.js +2 -0
  238. package/lib/providers/annotation-provider.js +3 -3
  239. package/lib/providers/device-privilege-provider.js +13 -12
  240. package/lib/providers/device-provider.d.ts +40 -31
  241. package/lib/providers/device-provider.js +657 -713
  242. package/lib/providers/device-stream-provider.js +4 -4
  243. package/lib/providers/interpreter-provider.js +7 -9
  244. package/lib/providers/multi-display-provider.d.ts +90 -0
  245. package/lib/providers/multi-display-provider.js +593 -0
  246. package/lib/providers/privilege-provider.d.ts +3 -11
  247. package/lib/providers/privilege-provider.js +3 -12
  248. package/lib/providers/renderer-provider.d.ts +3 -3
  249. package/lib/providers/renderer-provider.js +20 -32
  250. package/lib/providers/room-provider.js +21 -16
  251. package/lib/providers/screen-share-provider.d.ts +15 -11
  252. package/lib/providers/screen-share-provider.js +118 -99
  253. package/lib/providers/sharing-provider.d.ts +7 -1
  254. package/lib/providers/sharing-provider.js +39 -3
  255. package/lib/providers/whiteboard-provider.d.ts +24 -0
  256. package/lib/providers/whiteboard-provider.js +128 -0
  257. package/lib/runtime.d.ts +1 -0
  258. package/lib/scenes/main-scene.d.ts +6 -0
  259. package/lib/scenes/main-scene.js +44 -2
  260. package/lib/scenes/waiting-scene.d.ts +0 -2
  261. package/lib/scenes/waiting-scene.js +0 -6
  262. package/lib/schema.d.ts +3 -3
  263. package/lib/schema.js +1 -1
  264. package/lib/shared-data-source/confirm-data.d.ts +19 -0
  265. package/lib/shared-data-source/confirm-data.js +119 -15
  266. package/lib/shared-data-source/member-data.d.ts +2 -2
  267. package/lib/shared-data-source/screen-share-data.d.ts +35 -28
  268. package/lib/shared-data-source/screen-share-data.js +19 -8
  269. package/lib/shared-data-source/setting.js +4 -3
  270. package/lib/shared-data-source/video-window.js +1 -2
  271. package/lib/shared-data-source/whiteboard-data.d.ts +70 -0
  272. package/lib/shared-data-source/whiteboard-data.js +348 -0
  273. package/lib/translations/enUS.d.ts +1 -0
  274. package/lib/translations/enUS.js +2 -1
  275. package/lib/translations/zhCN.d.ts +1 -0
  276. package/lib/translations/zhCN.js +2 -1
  277. package/lib/ui-scene.d.ts +1 -0
  278. package/lib/ui-scene.js +77 -24
  279. package/lib/utilities/constant.d.ts +9 -2
  280. package/lib/utilities/constant.js +10 -3
  281. package/lib/utilities/debug.d.ts +4 -0
  282. package/lib/utilities/debug.js +40 -0
  283. package/lib/utilities/default-config.d.ts +4 -0
  284. package/lib/utilities/default-config.js +8 -4
  285. package/lib/utilities/dialog-utils.d.ts +3 -2
  286. package/lib/utilities/dialog-utils.js +56 -15
  287. package/lib/utilities/meeting-detail.js +4 -1
  288. package/lib/utilities/package-info.d.ts +3 -0
  289. package/lib/utilities/package-info.js +15 -0
  290. package/lib/utilities/renderer-event.d.ts +4 -6
  291. package/lib/utilities/renderer-event.js +23 -43
  292. package/lib/utilities/renderer.d.ts +1 -1
  293. package/lib/utilities/renderer.js +44 -10
  294. package/lib/utilities/shared-storage.d.ts +18 -0
  295. package/lib/utilities/shared-storage.js +63 -0
  296. package/lib/utilities/tools.js +2 -1
  297. package/lib/waiting-room-control-manager.js +6 -6
  298. package/package.json +6 -7
  299. package/public/index.html +5 -0
  300. package/lib/electron/tools.d.ts +0 -5
  301. package/lib/electron/tools.js +0 -62
@@ -15,6 +15,8 @@ Object.defineProperty(exports, "__esModule", {
15
15
  });
16
16
  exports.shadowOffset = exports.leaveFullScreenHandler = exports.enterFullScreenHandler = exports.DialogInstanceContext = void 0;
17
17
  exports.useElectronDialog = useElectronDialog;
18
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
19
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
18
20
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
21
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
20
22
  require("core-js/modules/es.array.concat.js");
@@ -23,9 +25,11 @@ require("core-js/modules/es.array.includes.js");
23
25
  require("core-js/modules/es.date.to-json.js");
24
26
  require("core-js/modules/es.json.stringify.js");
25
27
  require("core-js/modules/es.object.to-string.js");
28
+ require("core-js/modules/es.promise.js");
26
29
  require("core-js/modules/es.string.includes.js");
27
30
  require("core-js/modules/esnext.iterator.constructor.js");
28
31
  require("core-js/modules/esnext.iterator.for-each.js");
32
+ require("core-js/modules/esnext.promise.with-resolvers.js");
29
33
  require("core-js/modules/web.dom-collections.for-each.js");
30
34
  var _react = require("react");
31
35
  var _store = require("../store");
@@ -34,6 +38,7 @@ var _reactDom = require("react-dom");
34
38
  var _levelConfig = require("../level-config");
35
39
  var _dialogUtils = require("../../../utilities/dialog-utils");
36
40
  var _constant = require("../../../utilities/constant");
41
+ var _mobx = require("mobx");
37
42
  var _jsxRuntime = require("react/jsx-runtime");
38
43
  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; }
39
44
  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; }
@@ -68,7 +73,8 @@ function useElectronDialog(props) {
68
73
  _props$hasCustomShado = props.hasCustomShadow,
69
74
  hasCustomShadow = _props$hasCustomShado === void 0 ? true : _props$hasCustomShado,
70
75
  _props$disableShortcu = props.disableShortcutClose,
71
- disableShortcutClose = _props$disableShortcu === void 0 ? false : _props$disableShortcu;
76
+ disableShortcutClose = _props$disableShortcu === void 0 ? false : _props$disableShortcu,
77
+ beforeClose = props.beforeClose;
72
78
  var dialogIdOrKey = dialogId || dialogKey;
73
79
  var windowRef = (0, _react.useRef)();
74
80
  var newRendernerWindowRef = (0, _react.useRef)();
@@ -89,7 +95,7 @@ function useElectronDialog(props) {
89
95
  });
90
96
  (0, _react.useEffect)(function () {
91
97
  var node;
92
- window.runtime.openRendererWindow(dialogIdOrKey, function (dom, browserWindow, newRendererWindow) {
98
+ window.runtime.openRendererWindow(dialogIdOrKey, function (dom, browserWindow, newRendererWindow, baseUrl) {
93
99
  node = dom;
94
100
  windowRef.current = browserWindow;
95
101
  newRendernerWindowRef.current = newRendererWindow;
@@ -100,9 +106,12 @@ function useElectronDialog(props) {
100
106
  store === null || store === void 0 || store.log("[dialog]: open dialog can I find dialog with dialogKey: ".concat(dialogKey, ": ").concat(_store.dialogWindows.has(dialogKey)));
101
107
  _store.dialogWindows.set(dialogKey, browserWindow);
102
108
  }
109
+ var isControlbar = dialogKey === _constant.FcrUIDialogKey.CONTROL_BAR;
110
+ var follow = isControlbar ? false : 'screen';
103
111
  var _ref = (0, _dialogUtils.followCorrectDisplay)({
104
112
  browserWindow: browserWindow,
105
- alwaysFollowScreen: fullScreen
113
+ alwaysFollowScreen: fullScreen,
114
+ follow: follow
106
115
  }),
107
116
  nearDisplayBounds = _ref.nearDisplayBounds,
108
117
  followControlbar = _ref.followControlbar;
@@ -170,7 +179,11 @@ function useElectronDialog(props) {
170
179
  }
171
180
  focus && browserWindow.focus();
172
181
  store === null || store === void 0 || store.log("[useElectronDialog][dialog]: dialog ".concat(dialogIdOrKey, " focused"));
173
- (0, _renderer.handleWillClose)(browserWindow, function () {
182
+ var _Promise$withResolver = Promise.withResolvers(),
183
+ promise = _Promise$withResolver.promise,
184
+ resolve = _Promise$withResolver.resolve;
185
+ function continueClose() {
186
+ store === null || store === void 0 || store.log("[useElectronDialog][dialog]: continueClose");
174
187
  (0, _reactDom.unmountComponentAtNode)(node);
175
188
  if (dialogId) {
176
189
  store.closeDilaogByDialogId(dialogId);
@@ -180,20 +193,60 @@ function useElectronDialog(props) {
180
193
  }
181
194
  onClose === null || onClose === void 0 || onClose({
182
195
  store: store,
183
- browserWindow: browserWindow
196
+ browserWindow: browserWindow,
197
+ newRendererWindow: newRendererWindow
184
198
  });
199
+ return true;
200
+ }
201
+ var dialogInstanceValue = (0, _mobx.observable)({
202
+ browserWindow: browserWindow,
203
+ newRendererWindow: newRendererWindow,
204
+ resizable: !!customConfigs.resizable,
205
+ baseUrl: baseUrl,
206
+ closeDialog: function closeDialog() {
207
+ dialogId ? store.closeDilaogByDialogId(dialogId) : store.closeDialogByKey(dialogKey);
208
+ },
209
+ continueClose: function continueClose() {
210
+ return resolve(false);
211
+ },
212
+ interceptedClose: false,
213
+ setInterceptedClose: function setInterceptedClose(interceptedClose) {
214
+ dialogInstanceValue.interceptedClose = interceptedClose;
215
+ }
185
216
  });
217
+ (0, _renderer.handleWillClose)(browserWindow, /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
218
+ var interception;
219
+ return _regenerator["default"].wrap(function (_context) {
220
+ while (1) switch (_context.prev = _context.next) {
221
+ case 0:
222
+ interception = (beforeClose === null || beforeClose === void 0 ? void 0 : beforeClose({
223
+ store: store,
224
+ browserWindow: browserWindow,
225
+ newRendererWindow: newRendererWindow,
226
+ continueClose: function continueClose() {
227
+ return resolve(false);
228
+ }
229
+ })) || false;
230
+ dialogInstanceValue.setInterceptedClose(interception);
231
+ if (!interception) {
232
+ _context.next = 1;
233
+ break;
234
+ }
235
+ _context.next = 1;
236
+ return promise;
237
+ case 1:
238
+ continueClose();
239
+ return _context.abrupt("return", false);
240
+ case 2:
241
+ case "end":
242
+ return _context.stop();
243
+ }
244
+ }, _callee);
245
+ })));
186
246
  (0, _reactDom.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_store.StoreContext.Provider, {
187
247
  value: store,
188
248
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DialogInstanceContext.Provider, {
189
- value: {
190
- browserWindow: browserWindow,
191
- newRendererWindow: newRendererWindow,
192
- resizable: !!customConfigs.resizable,
193
- closeDialog: function closeDialog() {
194
- return dialogId ? store.closeDilaogByDialogId(dialogId) : store.closeDialogByKey(dialogKey);
195
- }
196
- },
249
+ value: dialogInstanceValue,
197
250
  children: typeof children === 'function' ? children(browserWindow) : children
198
251
  })
199
252
  }), dom);
@@ -3,7 +3,7 @@ import { FcrUIDeviceProvider } from '../../providers/device-provider';
3
3
  import { FcrStreamControl, FcrUserControl } from 'fcr-core';
4
4
  import { FcrChatRoomControl } from 'fcr-core/lib/room-control/chatroom-control/type';
5
5
  import { FcrUIEventProvider } from '../../providers/event-provider';
6
- import { FcrUICurrentRoomControlProvider, FcrUIMainRoomControlProvider, FcrUIWaitingRoomControlProvider } from '../../providers/room-provider';
6
+ import { FcrUICurrentRoomControlProvider, FcrUIMainRoomControlProvider, FcrUIRoomProvider, FcrUIWaitingRoomControlProvider } from '../../providers/room-provider';
7
7
  import { FcrUISharedLayoutDataSource } from '../../shared-data-source/layout-data';
8
8
  import { FcrUILocalVideoRenderProvider, FcrUIRemoteVideoRenderProvider } from '../../providers/renderer-provider';
9
9
  import { FcrUIPrivilegeProvider } from '../../providers/privilege-provider';
@@ -13,10 +13,11 @@ import { FcrUIAbilityProviderImpl } from '../../providers/ability-provider';
13
13
  import { FcrUIDialogInfo } from './type';
14
14
  import { FcrUIWidgetProvider } from '../../providers/widget-provider';
15
15
  import { FcrUIChatProvider } from '../../providers/chat-provider';
16
- import { FcrUIScreenShareProvider } from '../../providers/screen-share-provider';
17
16
  import { FcrUIScreenShareSharedDataSource } from '../../shared-data-source/screen-share-data';
18
17
  import { FcrUISharedConfirmDataSource } from '../../shared-data-source/confirm-data';
19
18
  import { FcrUIAnnotationProvider } from '../../providers/annotation-provider';
19
+ import { FcrUIMultiDisplayProvider } from '../../providers/multi-display-provider';
20
+ import { FcrUISharedSettingDataSource } from '../../shared-data-source/setting';
20
21
  export declare class DialogUIModule extends UIModule {
21
22
  private _dialogsByKey;
22
23
  private _store?;
@@ -35,12 +36,14 @@ export declare class DialogUIModule extends UIModule {
35
36
  mainRoomControlProvider?: FcrUIMainRoomControlProvider;
36
37
  waitingRoomControlProvider?: FcrUIWaitingRoomControlProvider;
37
38
  widgetProvider?: FcrUIWidgetProvider;
38
- screenShareProvider: FcrUIScreenShareProvider;
39
39
  sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource;
40
40
  sharedConfirmDataSource: FcrUISharedConfirmDataSource;
41
41
  chatProvider?: FcrUIChatProvider;
42
42
  abilityProvider?: FcrUIAbilityProviderImpl;
43
43
  annotationProvider?: FcrUIAnnotationProvider;
44
+ multiDisplayProvider?: FcrUIMultiDisplayProvider;
45
+ roomProvider?: FcrUIRoomProvider;
46
+ sharedSettingDataSource?: FcrUISharedSettingDataSource;
44
47
  onNodeWillActive(): void;
45
48
  onNodeWillInactive(): void;
46
49
  getComponent(): import("react/jsx-runtime").JSX.Element;
@@ -68,7 +68,7 @@ var DialogUIModule = exports.DialogUIModule = /*#__PURE__*/function (_UIModule)
68
68
  var _this$currentRoomCont, _this$currentRoomCont2;
69
69
  this.streamControl = (_this$currentRoomCont = this.currentRoomControlProvider) === null || _this$currentRoomCont === void 0 ? void 0 : _this$currentRoomCont.currentRoomControl.getStreamControl();
70
70
  this.userControl = (_this$currentRoomCont2 = this.currentRoomControlProvider) === null || _this$currentRoomCont2 === void 0 ? void 0 : _this$currentRoomCont2.currentRoomControl.getUserControl();
71
- if (this.userControl && this.deviceProvider && this.streamControl && this.remoteVideoRenderProvider && this.eventProvider && this.localVideoRenderProvider && this.sharedLayoutDataSource && this.dialogProvider && this.phoneAudioConnectorProvider && this.widgetProvider && this.chatProvider && this.abilityProvider && this.sharedConfirmDataSource && this.annotationProvider) {
71
+ if (this.userControl && this.deviceProvider && this.streamControl && this.remoteVideoRenderProvider && this.eventProvider && this.localVideoRenderProvider && this.sharedLayoutDataSource && this.dialogProvider && this.phoneAudioConnectorProvider && this.widgetProvider && this.chatProvider && this.abilityProvider && this.sharedConfirmDataSource && this.annotationProvider && this.roomProvider && this.sharedSettingDataSource) {
72
72
  var _this$currentRoomCont3, _this$mainRoomControl, _this$waitingRoomCont;
73
73
  this._store = new _store["default"]({
74
74
  userControl: this.userControl,
@@ -85,10 +85,12 @@ var DialogUIModule = exports.DialogUIModule = /*#__PURE__*/function (_UIModule)
85
85
  widgetProvider: this.widgetProvider,
86
86
  chatProvider: this.chatProvider,
87
87
  abilityProvider: this.abilityProvider,
88
- screenShareProvider: this.screenShareProvider,
89
88
  sharedScreenShareSharedDataSource: this.sharedScreenShareSharedDataSource,
90
89
  sharedConfirmDataSource: this.sharedConfirmDataSource,
91
- annotationProvider: this.annotationProvider
90
+ annotationProvider: this.annotationProvider,
91
+ multiDisplayProvider: this.multiDisplayProvider,
92
+ roomProvider: this.roomProvider,
93
+ sharedSettingDataSource: this.sharedSettingDataSource
92
94
  });
93
95
  }
94
96
  }
@@ -18,4 +18,4 @@ var diffPlatformTopLevelLayer = exports.diffPlatformTopLevelLayer = (0, _platfor
18
18
  * 其他窗口层级为 normal,在打开窗口时,聚焦窗口
19
19
  */
20
20
  var HIGH_LEVEL_DIALOG_LAYER = exports.HIGH_LEVEL_DIALOG_LAYER = [_constant.FcrUIDialogKey.CHAT, _constant.FcrUIDialogKey.PARTICIPANT, _constant.FcrUIDialogKey.SHARE_SCREEN];
21
- 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, _constant.FcrUIDialogKey.SYSTEM_PREFERENCE];
21
+ 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, _constant.FcrUIDialogKey.SYSTEM_PREFERENCE, _constant.FcrUIDialogKey.RENAME];
@@ -7,17 +7,19 @@ 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, AgoraRtcWindowInfo } from 'agora-rte-sdk/lib/core/rtc/type';
10
+ import { FcrWindowInfo } from 'fcr-core/lib/type';
11
11
  import { CurrentShareBounds } from '../control-bar/types';
12
12
  import { FcrUIDialogComponent } from './type';
13
13
  import { FcrUIWidgetProvider } from '../../providers/widget-provider';
14
14
  import { FcrUIChatProvider } from '../../providers/chat-provider';
15
15
  import { FcrUIAbilityProviderImpl } from 'fcr-ui-scene/src/providers/ability-provider';
16
- import { FcrUIScreenShareProvider } from '../../providers/screen-share-provider';
17
16
  import { FcrUIScreenShareSharedDataSource } from '../../shared-data-source/screen-share-data';
18
17
  import { FcrUISharedConfirmDataSource } from '../../shared-data-source/confirm-data';
19
18
  import { CurrentShareScreenWorkArea } from '../../utilities/dialog-utils';
20
19
  import { FcrUIAnnotationProvider } from '../../providers/annotation-provider';
20
+ import { FcrUIMultiDisplayProvider } from '../../providers/multi-display-provider';
21
+ import { FcrUIRoomProvider } from '../../providers/room-provider';
22
+ import { FcrUISharedSettingDataSource } from '../../shared-data-source/setting';
21
23
  export declare let dialogWindows: Map<FcrUIDialogKey, Electron.BrowserWindow>;
22
24
  export declare let dialogIdWindows: Map<string, Electron.BrowserWindow>;
23
25
  export default class DialogStore {
@@ -32,17 +34,22 @@ export default class DialogStore {
32
34
  private _remoteVideoRenderManager;
33
35
  private _dialogProvider;
34
36
  private _widgetProvider;
35
- private _screenShareProvider;
37
+ private _sharedSettingDataSource;
38
+ private _roomProvider;
36
39
  private _sharedLayoutDataSource;
37
40
  private _phoneAudioConnectorProvider;
38
41
  private _sharedScreenShareSharedDataSource;
39
42
  private _sharedConfirmDataSource;
40
43
  private _dialogComponentMapByKey;
41
44
  private _chatProvider;
42
- private _handleDialogEventObserver;
43
- private _userObserver;
45
+ private _multiDisplayProvider?;
44
46
  private _electronDialogs;
45
47
  private _annotationProvider;
48
+ private _disposers;
49
+ private _handleDialogEventObserver;
50
+ private _userObserver;
51
+ private _roomObserver;
52
+ private _handleSecondaryWindowEventObserver;
46
53
  accessor openedDialogs: {
47
54
  dialogKey: FcrUIDialogKey;
48
55
  dialogId: string;
@@ -54,9 +61,10 @@ export default class DialogStore {
54
61
  accessor currentDialogBounds: Map<FcrUIDialogKey, number>;
55
62
  accessor videoWindowBounds: any;
56
63
  accessor recordShareBounds: Map<CurrentShareBounds, CurrentShareScreenWorkArea>;
57
- accessor allApplicationWindows: AgoraRtcWindowInfo[];
64
+ accessor allApplicationWindows: FcrWindowInfo[];
65
+ accessor interceptClose: boolean;
58
66
  get currentShareId(): string;
59
- get currentShareType(): AgoraRtcScreenCaptureType;
67
+ get currentShareType(): import("fcr-core/lib/type").FcrScreenCaptureType;
60
68
  get currentShareBounds(): CurrentShareBounds;
61
69
  get dialogComponentMapByKey(): Map<FcrUIDialogKey, FcrUIDialogComponent>;
62
70
  get participantCount(): number;
@@ -71,13 +79,14 @@ export default class DialogStore {
71
79
  get remoteVideoRenderManager(): FcrUIRemoteVideoRenderProvider;
72
80
  get localVideoRenderProvider(): FcrUILocalVideoRenderProvider;
73
81
  get waitingRoomState(): boolean;
82
+ get isMultiDisplayActive(): boolean;
74
83
  get connectType(): import("../../type").FcrUIConnectType;
75
84
  get hasOwnPstnStream(): boolean;
76
85
  get widgetDialogIds(): Map<string, string>;
77
86
  get chatRoomState(): import("fcr-core/lib/type").FcrChatRoomConnectionState;
78
87
  get isSharingScreen(): boolean;
79
88
  get isSharingScreenOwner(): boolean;
80
- constructor({ eventProvider, userControl, deviceStore, streamControl, localVideoRenderProvider, remoteVideoRenderManager, securityStore, sharedLayoutDataSource, dialogProvider, phoneAudioConnectorProvider, dialogsByKey, widgetProvider, screenShareProvider, chatProvider, sharedScreenShareSharedDataSource, sharedConfirmDataSource, annotationProvider, }: {
89
+ constructor({ eventProvider, userControl, deviceStore, streamControl, localVideoRenderProvider, remoteVideoRenderManager, securityStore, sharedLayoutDataSource, dialogProvider, phoneAudioConnectorProvider, dialogsByKey, widgetProvider, chatProvider, sharedScreenShareSharedDataSource, sharedConfirmDataSource, annotationProvider, multiDisplayProvider, roomProvider, sharedSettingDataSource, }: {
81
90
  streamControl: FcrStreamControl;
82
91
  userControl: FcrUserControl;
83
92
  eventProvider: FcrUIEventProvider;
@@ -91,11 +100,13 @@ export default class DialogStore {
91
100
  dialogsByKey: Map<FcrUIDialogKey, FcrUIDialogComponent>;
92
101
  widgetProvider: FcrUIWidgetProvider;
93
102
  chatProvider: FcrUIChatProvider;
94
- screenShareProvider: FcrUIScreenShareProvider;
95
103
  abilityProvider: FcrUIAbilityProviderImpl;
96
104
  sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource;
97
105
  sharedConfirmDataSource: FcrUISharedConfirmDataSource;
98
106
  annotationProvider: FcrUIAnnotationProvider;
107
+ multiDisplayProvider?: FcrUIMultiDisplayProvider;
108
+ roomProvider: FcrUIRoomProvider;
109
+ sharedSettingDataSource: FcrUISharedSettingDataSource;
99
110
  });
100
111
  setConfirmPosition(position: {
101
112
  x: number;
@@ -114,8 +125,11 @@ export default class DialogStore {
114
125
  release(): void;
115
126
  resizeVideoWindow(width: number, height: number): void;
116
127
  recordCurrentSharingScreenBounds(): CurrentShareScreenWorkArea;
128
+ moveMainWindowToIndexLeastDisplay(): void;
117
129
  log(info: string): void;
118
130
  private _handleDialogEvent;
119
131
  private _hanleAllUserCountUpdated;
132
+ private _handleSecondaryWindowEvent;
133
+ private _setInterceptClose;
120
134
  }
121
135
  export declare const StoreContext: import("react").Context<DialogStore>;
@@ -5,7 +5,6 @@ require("core-js/modules/es.symbol.description.js");
5
5
  require("core-js/modules/es.symbol.to-primitive.js");
6
6
  require("core-js/modules/es.error.cause.js");
7
7
  require("core-js/modules/es.error.to-string.js");
8
- require("core-js/modules/es.array.for-each.js");
9
8
  require("core-js/modules/es.array.is-array.js");
10
9
  require("core-js/modules/es.date.to-primitive.js");
11
10
  require("core-js/modules/es.function.bind.js");
@@ -18,9 +17,7 @@ require("core-js/modules/es.object.get-own-property-descriptor.js");
18
17
  require("core-js/modules/es.object.get-own-property-descriptors.js");
19
18
  require("core-js/modules/es.object.keys.js");
20
19
  require("core-js/modules/esnext.function.metadata.js");
21
- require("core-js/modules/esnext.iterator.for-each.js");
22
20
  require("core-js/modules/esnext.symbol.metadata.js");
23
- require("core-js/modules/web.dom-collections.for-each.js");
24
21
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
25
22
  var _typeof = require("@babel/runtime/helpers/typeof");
26
23
  Object.defineProperty(exports, "__esModule", {
@@ -35,6 +32,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
35
32
  require("core-js/modules/es.array.concat.js");
36
33
  require("core-js/modules/es.array.filter.js");
37
34
  require("core-js/modules/es.array.find.js");
35
+ require("core-js/modules/es.array.for-each.js");
38
36
  require("core-js/modules/es.array.includes.js");
39
37
  require("core-js/modules/es.array.iterator.js");
40
38
  require("core-js/modules/es.array.push.js");
@@ -46,6 +44,7 @@ require("core-js/modules/es.weak-map.js");
46
44
  require("core-js/modules/esnext.iterator.constructor.js");
47
45
  require("core-js/modules/esnext.iterator.filter.js");
48
46
  require("core-js/modules/esnext.iterator.find.js");
47
+ require("core-js/modules/esnext.iterator.for-each.js");
49
48
  require("core-js/modules/esnext.iterator.some.js");
50
49
  require("core-js/modules/esnext.map.delete-all.js");
51
50
  require("core-js/modules/esnext.map.emplace.js");
@@ -63,6 +62,7 @@ require("core-js/modules/esnext.map.some.js");
63
62
  require("core-js/modules/esnext.map.update.js");
64
63
  require("core-js/modules/esnext.weak-map.delete-all.js");
65
64
  require("core-js/modules/esnext.weak-map.emplace.js");
65
+ require("core-js/modules/web.dom-collections.for-each.js");
66
66
  require("core-js/modules/web.dom-collections.iterator.js");
67
67
  var _type = require("fcr-core/lib/type");
68
68
  var _decorator = require("agora-foundation/lib/decorator");
@@ -73,9 +73,10 @@ var _constant = require("../../utilities/constant");
73
73
  var _dialogProvider = require("../../providers/dialog-provider");
74
74
  var _logger = require("../../utilities/logger");
75
75
  var _dialogUtils = require("../../utilities/dialog-utils");
76
+ var _type2 = require("../secondary-window/type");
76
77
  var _excluded = ["x", "y"];
77
78
  var _DialogStore;
78
- var _initProto, _init_openedDialogs, _init_confirmDialogs, _init_userCount, _init_participantElectronDialogContainer, _init_currentDialogBounds, _init_videoWindowBounds, _init_recordShareBounds, _init_allApplicationWindows, _setConfirmPositionDecs, _setVideoWindowBoundsDecs, _recordCurrentSharingScreenBoundsDecs, _handleDialogEventDecs, _hanleAllUserCountUpdatedDecs, _ref;
79
+ var _initProto, _init_openedDialogs, _init_confirmDialogs, _init_userCount, _init_participantElectronDialogContainer, _init_currentDialogBounds, _init_videoWindowBounds, _init_recordShareBounds, _init_allApplicationWindows, _init_interceptClose, _setConfirmPositionDecs, _setVideoWindowBoundsDecs, _recordCurrentSharingScreenBoundsDecs, _handleDialogEventDecs, _hanleAllUserCountUpdatedDecs, _handleSecondaryWindowEventDecs, _setInterceptCloseDecs, _ref;
79
80
  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; }
80
81
  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; }
81
82
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
@@ -98,7 +99,8 @@ var _E = /*#__PURE__*/new WeakMap();
98
99
  var _F = /*#__PURE__*/new WeakMap();
99
100
  var _G = /*#__PURE__*/new WeakMap();
100
101
  var _H = /*#__PURE__*/new WeakMap();
101
- _ref = (_setConfirmPositionDecs = [_mobx.action, _mobx.action.bound], _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");
102
+ var _I = /*#__PURE__*/new WeakMap();
103
+ _ref = (_setConfirmPositionDecs = [_mobx.action, _mobx.action.bound], _setVideoWindowBoundsDecs = [_mobx.action, _mobx.action.bound], _recordCurrentSharingScreenBoundsDecs = [_mobx.action, _mobx.action.bound], _handleDialogEventDecs = [_mobx.action, _mobx.action.bound], _hanleAllUserCountUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleSecondaryWindowEventDecs = [_mobx.action, _mobx.action.bound], _setInterceptCloseDecs = [_mobx.action, _mobx.action.bound], "logger");
102
104
  var DialogStore = exports["default"] = /*#__PURE__*/function () {
103
105
  function DialogStore(_ref2) {
104
106
  var _this = this;
@@ -114,22 +116,35 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
114
116
  phoneAudioConnectorProvider = _ref2.phoneAudioConnectorProvider,
115
117
  dialogsByKey = _ref2.dialogsByKey,
116
118
  widgetProvider = _ref2.widgetProvider,
117
- screenShareProvider = _ref2.screenShareProvider,
118
119
  chatProvider = _ref2.chatProvider,
119
120
  sharedScreenShareSharedDataSource = _ref2.sharedScreenShareSharedDataSource,
120
121
  sharedConfirmDataSource = _ref2.sharedConfirmDataSource,
121
- annotationProvider = _ref2.annotationProvider;
122
+ annotationProvider = _ref2.annotationProvider,
123
+ multiDisplayProvider = _ref2.multiDisplayProvider,
124
+ roomProvider = _ref2.roomProvider,
125
+ sharedSettingDataSource = _ref2.sharedSettingDataSource;
122
126
  (0, _classCallCheck2["default"])(this, DialogStore);
123
127
  (0, _defineProperty2["default"])(this, _ref, (_initProto(this), (0, _logger.createLogger)({
124
128
  prefix: 'DialogStore'
125
129
  })));
130
+ (0, _defineProperty2["default"])(this, "_electronDialogs", new Map());
131
+ (0, _defineProperty2["default"])(this, "_disposers", []);
126
132
  (0, _defineProperty2["default"])(this, "_handleDialogEventObserver", {
127
133
  onEvent: this._handleDialogEvent
128
134
  });
129
135
  (0, _defineProperty2["default"])(this, "_userObserver", {
130
136
  onAllUserCountUpdated: this._hanleAllUserCountUpdated
131
137
  });
132
- (0, _defineProperty2["default"])(this, "_electronDialogs", new Map());
138
+ (0, _defineProperty2["default"])(this, "_roomObserver", {
139
+ onExitRoom: this._setInterceptClose,
140
+ onRoutingChanged: this._setInterceptClose,
141
+ onRoomClosed: this._setInterceptClose,
142
+ onLeaveMainRoom: this._setInterceptClose,
143
+ onLocalUserKickedOut: this._setInterceptClose
144
+ });
145
+ (0, _defineProperty2["default"])(this, "_handleSecondaryWindowEventObserver", {
146
+ onContentDistributionUpdated: this._handleSecondaryWindowEvent
147
+ });
133
148
  _classPrivateFieldInitSpec(this, _A, _init_openedDialogs(this, []));
134
149
  _classPrivateFieldInitSpec(this, _B, _init_confirmDialogs(this, new Map()));
135
150
  _classPrivateFieldInitSpec(this, _C, _init_userCount(this, 0));
@@ -138,6 +153,8 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
138
153
  _classPrivateFieldInitSpec(this, _F, _init_videoWindowBounds(this, {}));
139
154
  _classPrivateFieldInitSpec(this, _G, _init_recordShareBounds(this, new Map()));
140
155
  _classPrivateFieldInitSpec(this, _H, _init_allApplicationWindows(this, []));
156
+ // 是否拦截窗口关闭的行为,只在退出房间时修改此值,不可作为它用,如需拦截都通过这个值进行全局控制,否则在退出房间的时候无法关闭窗口
157
+ _classPrivateFieldInitSpec(this, _I, _init_interceptClose(this, true));
141
158
  this._sharedScreenShareSharedDataSource = sharedScreenShareSharedDataSource;
142
159
  this._eventProvider = eventProvider;
143
160
  this._streamControl = streamControl;
@@ -153,16 +170,28 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
153
170
  this._dialogComponentMapByKey = dialogsByKey;
154
171
  this._widgetProvider = widgetProvider;
155
172
  this._chatProvider = chatProvider;
156
- this._screenShareProvider = screenShareProvider;
157
173
  this._annotationProvider = annotationProvider;
174
+ this._multiDisplayProvider = multiDisplayProvider;
175
+ this._roomProvider = roomProvider;
176
+ this._sharedSettingDataSource = sharedSettingDataSource;
158
177
  this._userControl.addObserver(this._userObserver);
159
178
  this._eventProvider.addObserver(this._handleDialogEventObserver);
160
179
  this._dialogProvider.addObserver(this._handleDialogEventObserver);
180
+ this._roomProvider.addObserver(this._roomObserver);
181
+ if (this._multiDisplayProvider) {
182
+ this._multiDisplayProvider.addObserver(this._handleSecondaryWindowEventObserver);
183
+ }
161
184
  this._userInfo = userControl.getLocalUser();
162
185
  (0, _mobx.runInAction)(function () {
163
186
  _this.userCount = _this._userControl.getAllUserCount();
164
- _this._annotationProvider.initAnnotationWindow();
187
+ // this._annotationProvider.initAnnotationWindow();
165
188
  });
189
+ this._disposers.push((0, _mobx.reaction)(function () {
190
+ return _this._sharedSettingDataSource.settingConfig.setting.isDualDisplayMode;
191
+ }, function (isDualDisplayMode) {
192
+ console.log('isDualDisplayMode =>', isDualDisplayMode);
193
+ _this.interceptClose = isDualDisplayMode;
194
+ }));
166
195
  }
167
196
  return (0, _createClass2["default"])(DialogStore, [{
168
197
  key: "openedDialogs",
@@ -228,6 +257,14 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
228
257
  set: function set(v) {
229
258
  _classPrivateFieldSet(_H, this, v);
230
259
  }
260
+ }, {
261
+ key: "interceptClose",
262
+ get: function get() {
263
+ return _classPrivateFieldGet(_I, this);
264
+ },
265
+ set: function set(v) {
266
+ _classPrivateFieldSet(_I, this, v);
267
+ }
231
268
  }, {
232
269
  key: "currentShareId",
233
270
  get: function get() {
@@ -293,6 +330,14 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
293
330
  get: function get() {
294
331
  return this._securityStore.isWaitingRoomEnabled();
295
332
  }
333
+ }, {
334
+ key: "isMultiDisplayActive",
335
+ get: function get() {
336
+ if (this._multiDisplayProvider) {
337
+ return this._multiDisplayProvider.isActive;
338
+ }
339
+ return false;
340
+ }
296
341
  }, {
297
342
  key: "connectType",
298
343
  get: function get() {
@@ -407,6 +452,13 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
407
452
  this._userControl.removeObserver(this._userObserver);
408
453
  this._dialogProvider.removeObserver(this._handleDialogEventObserver);
409
454
  this._eventProvider.removeObserver(this._handleDialogEventObserver);
455
+ this._roomProvider.removeObserver(this._roomObserver);
456
+ if (this._multiDisplayProvider) {
457
+ this._multiDisplayProvider.removeObserver(this._handleSecondaryWindowEventObserver);
458
+ }
459
+ this._disposers.forEach(function (disposer) {
460
+ return disposer();
461
+ });
410
462
  dialogWindows.clear();
411
463
  }
412
464
  }, {
@@ -452,6 +504,13 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
452
504
  }
453
505
  return screenBounds;
454
506
  }
507
+ }, {
508
+ key: "moveMainWindowToIndexLeastDisplay",
509
+ value: function moveMainWindowToIndexLeastDisplay() {
510
+ if (this._multiDisplayProvider) {
511
+ this._multiDisplayProvider.moveMainWindowToIndexLeastDisplay();
512
+ }
513
+ }
455
514
  }, {
456
515
  key: "log",
457
516
  value: function log(info) {
@@ -528,10 +587,22 @@ var DialogStore = exports["default"] = /*#__PURE__*/function () {
528
587
  value: function _hanleAllUserCountUpdated(_roomId, count) {
529
588
  this.userCount = count;
530
589
  }
590
+ }, {
591
+ key: "_handleSecondaryWindowEvent",
592
+ value: function _handleSecondaryWindowEvent(distribution) {
593
+ if (distribution.secondaryWindow.type === _type2.FcrUIDisplayDistributionContentType.HIDDEN) {
594
+ this.interceptClose = false;
595
+ }
596
+ }
597
+ }, {
598
+ key: "_setInterceptClose",
599
+ value: function _setInterceptClose() {
600
+ this.interceptClose = false;
601
+ }
531
602
  }]);
532
603
  }();
533
604
  _DialogStore = DialogStore;
534
- 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"], [_setConfirmPositionDecs, 18, "setConfirmPosition"], [_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"]], []).e, 9);
605
+ 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.observable, 1, "interceptClose"], [_mobx.computed, 3, "connectType"], [_mobx.computed, 3, "hasOwnPstnStream"], [_mobx.computed, 3, "chatRoomState"], [_mobx.computed, 3, "isSharingScreen"], [_setConfirmPositionDecs, 18, "setConfirmPosition"], [_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, "moveMainWindowToIndexLeastDisplay"], [_decorator.bound, 2, "log"], [_handleDialogEventDecs, 18, "_handleDialogEvent"], [_hanleAllUserCountUpdatedDecs, 18, "_hanleAllUserCountUpdated"], [_handleSecondaryWindowEventDecs, 18, "_handleSecondaryWindowEvent"], [_setInterceptCloseDecs, 18, "_setInterceptClose"]], []).e, 10);
535
606
  _init_openedDialogs = _applyDecs$e[0];
536
607
  _init_confirmDialogs = _applyDecs$e[1];
537
608
  _init_userCount = _applyDecs$e[2];
@@ -540,5 +611,6 @@ _init_currentDialogBounds = _applyDecs$e[4];
540
611
  _init_videoWindowBounds = _applyDecs$e[5];
541
612
  _init_recordShareBounds = _applyDecs$e[6];
542
613
  _init_allApplicationWindows = _applyDecs$e[7];
543
- _initProto = _applyDecs$e[8];
614
+ _init_interceptClose = _applyDecs$e[8];
615
+ _initProto = _applyDecs$e[9];
544
616
  var StoreContext = exports.StoreContext = /*#__PURE__*/(0, _react.createContext)(null);
@@ -11,6 +11,7 @@ export type FcrUIDialogOnOpenedProps = {
11
11
  export type FcrUIDialogOnCloseProps = {
12
12
  store: DialogStore;
13
13
  browserWindow: Electron.BrowserWindow;
14
+ newRendererWindow: Window;
14
15
  };
15
16
  export type FcrUIDialogHooksProps = {
16
17
  /**
@@ -75,6 +76,13 @@ export type FcrUIDialogHooksProps = {
75
76
  * @param disableShortcutClose - 是否可以用快捷键关闭窗口,默认为 false
76
77
  */
77
78
  disableShortcutClose?: boolean;
79
+ /**
80
+ * @param beforeClose - 当 dialog 关闭前的回调函数,函数签名为 dialog 的 store
81
+ * @returns interception 是否允许关闭,如果返回 true,则 dialog 不会关闭
82
+ */
83
+ beforeClose?: (props: Pick<FcrUIDialogOnOpenedProps, 'store' | 'browserWindow' | 'newRendererWindow'> & {
84
+ continueClose: () => void;
85
+ }) => boolean;
78
86
  };
79
87
  export type FcrUIDialogComponent = React.FC<FcrDialogProps>;
80
88
  export type FcrDialogProps = {
@@ -1,4 +1,7 @@
1
1
  import { ConfirmContentProps } from 'agora-ui-foundation/lib/components/confirm-content';
2
- export declare const ConfirmWindow: ({ confirm }: {
2
+ type ConfirmWindowProps = {
3
+ id: string;
3
4
  confirm: ConfirmContentProps;
4
- }) => import("react/jsx-runtime").JSX.Element;
5
+ };
6
+ export declare const ConfirmWindow: ({ id, confirm }: ConfirmWindowProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};