fcr-ui-scene 3.7.2 → 3.7.4

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
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.symbol.description.js");
5
+ require("core-js/modules/es.symbol.to-primitive.js");
6
+ require("core-js/modules/es.error.cause.js");
7
+ require("core-js/modules/es.error.to-string.js");
8
+ require("core-js/modules/es.array.is-array.js");
9
+ require("core-js/modules/es.array.iterator.js");
10
+ require("core-js/modules/es.array.push.js");
11
+ require("core-js/modules/es.date.to-primitive.js");
12
+ require("core-js/modules/es.function.bind.js");
13
+ require("core-js/modules/es.function.name.js");
14
+ require("core-js/modules/es.map.js");
15
+ require("core-js/modules/es.number.constructor.js");
16
+ require("core-js/modules/es.object.create.js");
17
+ require("core-js/modules/es.object.define-property.js");
18
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
19
+ require("core-js/modules/es.object.to-string.js");
20
+ require("core-js/modules/es.string.iterator.js");
21
+ require("core-js/modules/esnext.function.metadata.js");
22
+ require("core-js/modules/esnext.map.delete-all.js");
23
+ require("core-js/modules/esnext.map.emplace.js");
24
+ require("core-js/modules/esnext.map.every.js");
25
+ require("core-js/modules/esnext.map.filter.js");
26
+ require("core-js/modules/esnext.map.find.js");
27
+ require("core-js/modules/esnext.map.find-key.js");
28
+ require("core-js/modules/esnext.map.includes.js");
29
+ require("core-js/modules/esnext.map.key-of.js");
30
+ require("core-js/modules/esnext.map.map-keys.js");
31
+ require("core-js/modules/esnext.map.map-values.js");
32
+ require("core-js/modules/esnext.map.merge.js");
33
+ require("core-js/modules/esnext.map.reduce.js");
34
+ require("core-js/modules/esnext.map.some.js");
35
+ require("core-js/modules/esnext.map.update.js");
36
+ require("core-js/modules/esnext.symbol.metadata.js");
37
+ require("core-js/modules/web.dom-collections.iterator.js");
38
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
39
+ var _typeof = require("@babel/runtime/helpers/typeof");
40
+ Object.defineProperty(exports, "__esModule", {
41
+ value: true
42
+ });
43
+ exports.FcrUIWhiteboardProviderImpl = void 0;
44
+ require("core-js/modules/es.array.concat.js");
45
+ require("core-js/modules/es.date.to-json.js");
46
+ require("core-js/modules/es.json.stringify.js");
47
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
48
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
49
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
50
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
51
+ var _base = require("../base");
52
+ var _logger = require("../utilities/logger");
53
+ var _decorator = require("agora-foundation/lib/decorator");
54
+ var _FcrUIWhiteboardProviderImpl;
55
+ var _initProto;
56
+ function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function set(e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O["static"] = l, O["private"] = f, f ? 2 === o ? k = function k(e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function k(e) { return e[n]; }, (o < 2 || 4 === o) && (F = function F(e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == _typeof(P) && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol["for"]("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function s(t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
57
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
58
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
59
+ 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; }
60
+ 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; }
61
+ var FcrUIWhiteboardProviderImpl = exports.FcrUIWhiteboardProviderImpl = /*#__PURE__*/function () {
62
+ function FcrUIWhiteboardProviderImpl(_whiteboardControl, _sharedWhiteboardDataSource, _userControl) {
63
+ var _this = this;
64
+ (0, _classCallCheck2["default"])(this, FcrUIWhiteboardProviderImpl);
65
+ (0, _defineProperty2["default"])(this, "logger", (_initProto(this), (0, _logger.createLogger)({
66
+ prefix: 'FcrUIWhiteboardProvider'
67
+ })));
68
+ (0, _defineProperty2["default"])(this, "_whiteboardObserver", {
69
+ onBackgroundColorUpdated: function onBackgroundColorUpdated(color) {
70
+ _this.logger.info("[whiteboard-provider]: onBackgroundColorUpdated ".concat(color));
71
+ _this._sharedWhiteboardDataSource.setBackgroundColor(color);
72
+ },
73
+ onActive: function onActive(ownerId, operatorUser) {
74
+ _this.logger.info("[whiteboard-provider]: onActive ".concat(ownerId, ", ").concat(JSON.stringify(operatorUser)));
75
+ var owner = _this._userControl.getUser(ownerId);
76
+ _this._sharedWhiteboardDataSource.setSharingUser(owner);
77
+ _this._ownerUser = owner;
78
+ },
79
+ onInactive: function onInactive(reason, operatorUser) {
80
+ _this.logger.info("[whiteboard-provider]: onInactive ".concat(reason, ", ").concat(JSON.stringify(operatorUser)));
81
+ _this._sharedWhiteboardDataSource.setSharingUser(undefined);
82
+ },
83
+ onConnectionStateUpdated: function onConnectionStateUpdated(state) {
84
+ _this.logger.info("[whiteboard-provider]: onConnectionStateUpdated ".concat(state));
85
+ }
86
+ });
87
+ this._whiteboardControl = _whiteboardControl;
88
+ this._sharedWhiteboardDataSource = _sharedWhiteboardDataSource;
89
+ this._userControl = _userControl;
90
+ _whiteboardControl.addObserver(this._whiteboardObserver);
91
+ }
92
+ return (0, _createClass2["default"])(FcrUIWhiteboardProviderImpl, [{
93
+ key: "backgroundColor",
94
+ get: function get() {
95
+ var bgColor = this._whiteboardControl.getBackgroundColor();
96
+ if (!bgColor) {
97
+ return '#ffffff';
98
+ }
99
+ return bgColor;
100
+ }
101
+ }, {
102
+ key: "isActive",
103
+ get: function get() {
104
+ var isActive = this._whiteboardControl.getActivity();
105
+ return isActive;
106
+ }
107
+ }, {
108
+ key: "connectionState",
109
+ get: function get() {
110
+ return this._whiteboardControl.getConnectionState();
111
+ }
112
+ }, {
113
+ key: "ownerUser",
114
+ get: function get() {
115
+ return this._ownerUser;
116
+ }
117
+ }, {
118
+ key: "setBackground",
119
+ value: function setBackground(color) {
120
+ var _this$_whiteboardCont;
121
+ (_this$_whiteboardCont = this._whiteboardControl) === null || _this$_whiteboardCont === void 0 || _this$_whiteboardCont.setBackgroundColor(color);
122
+ }
123
+ }]);
124
+ }();
125
+ _FcrUIWhiteboardProviderImpl = FcrUIWhiteboardProviderImpl;
126
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIWhiteboardProviderImpl, [[_decorator.bound, 2, "setBackground"]], []).e, 1);
127
+ _initProto = _applyDecs$e[0];
128
+ (0, _base.registerDependency)('whiteboardProvider');
package/lib/runtime.d.ts CHANGED
@@ -38,6 +38,7 @@ declare global {
38
38
  dom: Element,
39
39
  browserWindow: Electron.BrowserWindow,
40
40
  newRendererWindow: Window,
41
+ baseUrl: string,
41
42
  ) => void,
42
43
  windowOptions: import('electron').BrowserWindowConstructorOptions,
43
44
  ): void;
@@ -38,6 +38,9 @@ import { FcrUIApplistProvider } from '../providers/app-list-provider';
38
38
  import { FcrUISharedApplistSourceImpl } from '../shared-data-source/app-list-data';
39
39
  import { FcrUISharedConfirmDataSource } from '../shared-data-source/confirm-data';
40
40
  import { FcrUISharedAnnotationSource } from '../shared-data-source/annotation-data';
41
+ import { FcrUIMultiDisplayProvider } from '../providers/multi-display-provider';
42
+ import { FcrUISharedWhiteboardDataSource } from '../shared-data-source/whiteboard-data';
43
+ import { FcrUIWhiteboardProvider } from '../providers/whiteboard-provider';
41
44
  export type FcrMainUISceneArgs = {
42
45
  engine: FcrCoreEngine;
43
46
  eventProvider: FcrUIEventProvider;
@@ -84,6 +87,8 @@ export declare class FcrMainUIScene extends FcrBaseUIScene {
84
87
  annotationProvider: FcrUIAnnotationProvider;
85
88
  sharingProvider: FcrUISharingProvider;
86
89
  applistProvider: FcrUIApplistProvider;
90
+ multiDisplayProvider: FcrUIMultiDisplayProvider;
91
+ whiteboardProvider: FcrUIWhiteboardProvider;
87
92
  sharedConfigDataSource: FcrUISharedConfigDataSource;
88
93
  sharedInterpreterDataSource: FcrUISharedInterpreterDataSource;
89
94
  sharedSettingDataSource: FcrUISharedSettingDataSource;
@@ -101,6 +106,7 @@ export declare class FcrMainUIScene extends FcrBaseUIScene {
101
106
  sharedApplistDataSource: FcrUISharedApplistSourceImpl;
102
107
  sharedConfirmDataSource: FcrUISharedConfirmDataSource;
103
108
  sharedAnnotationDataSource: FcrUISharedAnnotationSource;
109
+ sharedWhiteboardDataSource: FcrUISharedWhiteboardDataSource;
104
110
  private _isWaitingRoomNotify;
105
111
  constructor(args: FcrMainUISceneArgs);
106
112
  private _addObservers;
@@ -132,10 +132,16 @@ var _appListData = require("../shared-data-source/app-list-data");
132
132
  var _confirmLeaveMeeting = require("../modules/dialog/dialogs/confirm-leave-meeting");
133
133
  var _endMeeting = require("../modules/dialog/dialogs/end-meeting");
134
134
  var _annotationData = require("../shared-data-source/annotation-data");
135
+ var _subWindow = require("../modules/dialog/dialogs/sub-window");
136
+ var _secondaryWindow = require("../modules/secondary-window");
137
+ var _multiDisplayProvider = require("../providers/multi-display-provider");
138
+ var _whiteboardData = require("../shared-data-source/whiteboard-data");
139
+ var _whiteboardProvider = require("../providers/whiteboard-provider");
135
140
  var _jsxRuntime = require("react/jsx-runtime");
136
141
  var _FcrMainUIScene;
137
142
  var _initProto; // import DeviceSettingDialog from '../modules/dialog/dialogs/device-setting';
138
143
  // import { RemoveAdmitWaitingRoomDialog } from '../modules/dialog/components/remove-admit-waiting-room';
144
+ // import { SettingUIModule } from '../modules/setting';
139
145
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
140
146
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
141
147
  function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function set(e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O["static"] = l, O["private"] = f, f ? 2 === o ? k = function k(e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function k(e) { return e[n]; }, (o < 2 || 4 === o) && (F = function F(e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == _typeof(P) && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol["for"]("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function s(t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
@@ -198,7 +204,6 @@ var FcrMainUIScene = exports.FcrMainUIScene = /*#__PURE__*/function (_FcrBaseUIS
198
204
  var waitingRoomControlProvider = new _roomProvider.FcrUIWaitingRoomControlProviderImpl(roomProvider, eventProvider);
199
205
  var monitorProvider = new _monitorProvider.FcrUIMonitorProviderImpl(engine.getMonitorControl());
200
206
  var chatProvider = new _chatProvider.FcrUIChatProviderImpl(currentRoomControlProvider.currentRoomControl, roomProvider);
201
- var sharingProvider = new _sharingProvider.FcrUISharingProviderImpl(sharingControl, sharedScreenShareSharedDataSource);
202
207
  var sharedWaitingRoomDataSource = new _waitingRoom.FcrUISharedWaitingRoomDataSourceImpl(roomProvider, eventProvider);
203
208
  var phoneAudioConnectorProvider = new _phoneAudioProvider.FcrUIPhoneAudioConnectorProviderImpl({
204
209
  roomControl: mainRoomControl,
@@ -210,7 +215,23 @@ var FcrMainUIScene = exports.FcrMainUIScene = /*#__PURE__*/function (_FcrBaseUIS
210
215
  mainRoomControl: mainRoomControl
211
216
  });
212
217
  var sharedMemberDataSource = new _memberData.FcrUIMemberSharedDataSourceImpl(userControl, streamControl, sharedScreenShareSharedDataSource, eventProvider, mainRoomControl.getSharingControl().getBoardControl());
213
- var screenShareProvider = new _screenShareProvider.FcrUIScreenShareProviderImpl(deviceProvider, eventProvider, roomProvider, sharingProvider, sharedScreenShareSharedDataSource, sharedMemberDataSource);
218
+ var fcrUIMainWindowRenderer = new _secondaryWindow.FcrUIMainWindowRendererImpl();
219
+ // @ts-ignore
220
+ window.FcrUIMainWindowRenderer = fcrUIMainWindowRenderer;
221
+ var sharedWhiteboardDataSource = new _whiteboardData.FcrUISharedWhiteboardDataSourceImpl(sharingControl.getBoardControl(), privilegeProvider, fcrUIMainWindowRenderer);
222
+ var whiteboardProvider = new _whiteboardProvider.FcrUIWhiteboardProviderImpl(sharingControl.getBoardControl(), sharedWhiteboardDataSource, userControl);
223
+ var sharingProvider = new _sharingProvider.FcrUISharingProviderImpl(sharingControl, sharedScreenShareSharedDataSource, sharedWhiteboardDataSource, whiteboardProvider, userControl);
224
+ var multiDisplayProvider = new _multiDisplayProvider.FcrUIMultiDisplayProviderImpl({
225
+ eventProvider: eventProvider,
226
+ sharedSettingDataSource: sharedSettingDataSource,
227
+ sharedMemberDataSource: sharedMemberDataSource,
228
+ sharedVideoWindowDataSource: sharedVideoWindowDataSource,
229
+ sharingProvider: sharingProvider,
230
+ sharedScreenShareSharedDataSource: sharedScreenShareSharedDataSource,
231
+ fcrUIMainWindowRenderer: fcrUIMainWindowRenderer,
232
+ sharedWhiteboardDataSource: sharedWhiteboardDataSource
233
+ });
234
+ var screenShareProvider = new _screenShareProvider.FcrUIScreenShareProviderImpl(deviceProvider, eventProvider, roomProvider, sharingProvider, sharedScreenShareSharedDataSource, sharedMemberDataSource, privilegeProvider);
214
235
  var annotationProvider = new _annotationProvider.FcrUIAnnotationProviderImpl(dialogProvider, sharedVideoWindowDataSource, privilegeProvider, sharedScreenShareSharedDataSource);
215
236
  var sharedSecurityDataSource = new _securityData.FcrUISecuritySharedDataSourceImpl(privilegeProvider, sharedMemberDataSource);
216
237
  var sharedApplistDataSource = new _appListData.FcrUISharedApplistSourceImpl(abilityProvider, privilegeProvider, roomProvider, widgetProvider, sharedMemberDataSource, sharedInterpreterDataSource);
@@ -243,6 +264,8 @@ var FcrMainUIScene = exports.FcrMainUIScene = /*#__PURE__*/function (_FcrBaseUIS
243
264
  _this.applistProvider = applistProvider;
244
265
  _this.widgetProvider = widgetProvider;
245
266
  _this.abilityProvider = abilityProvider;
267
+ _this.multiDisplayProvider = multiDisplayProvider;
268
+ _this.whiteboardProvider = whiteboardProvider;
246
269
  _this.sharedSpeakerSpotlightDataSource = sharedSpeakerSpotlightDataSource;
247
270
  _this.sharedPinDataSource = sharedPinDataSource;
248
271
  _this.sharedConfigDataSource = sharedConfigDataSource;
@@ -260,6 +283,7 @@ var FcrMainUIScene = exports.FcrMainUIScene = /*#__PURE__*/function (_FcrBaseUIS
260
283
  _this.sharedApplistDataSource = sharedApplistDataSource;
261
284
  _this.sharedConfirmDataSource = sharedConfirmDataSource;
262
285
  _this.sharedAnnotationDataSource = sharedAnnotationDataSource;
286
+ _this.sharedWhiteboardDataSource = sharedWhiteboardDataSource;
263
287
  _this._addObservers();
264
288
  return _this;
265
289
  }
@@ -355,6 +379,7 @@ var FcrMainUIScene = exports.FcrMainUIScene = /*#__PURE__*/function (_FcrBaseUIS
355
379
  var phoneAudioConnection = new _phoneAudioConnect.PhoneAudioConnectionUIModule(this, this);
356
380
  var webWidgetUIModule = new _widget2.WebWidgetUIModule(this, this);
357
381
  var annotationUIModule = new _annotation.AnnotationUIModule(this, this);
382
+ var displayDistributionModule = new _secondaryWindow.FcrUISecondaryWindowModule(this, this);
358
383
  this.addSubNode(chatModule);
359
384
  this.addSubNode(audioStreamUIModule);
360
385
  this.addSubNode(soundEffectUIModule);
@@ -378,6 +403,7 @@ var FcrMainUIScene = exports.FcrMainUIScene = /*#__PURE__*/function (_FcrBaseUIS
378
403
  this.addSubNode(phoneAudioConnection);
379
404
  this.addSubNode(webWidgetUIModule);
380
405
  this.addSubNode(annotationUIModule);
406
+ this.addSubNode(displayDistributionModule);
381
407
  var getView = function getView() {
382
408
  dialogModule.addDialogs([
383
409
  // {
@@ -532,6 +558,13 @@ var FcrMainUIScene = exports.FcrMainUIScene = /*#__PURE__*/function (_FcrBaseUIS
532
558
  params: props.params
533
559
  }, "EndMeetingDialog");
534
560
  }
561
+ }, {
562
+ key: _constant.FcrUIDialogKey.SUB_WINDOW,
563
+ component: function component() {
564
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_subWindow.SubWindowDialog, {
565
+ children: displayDistributionModule.component(shareScreenModule)
566
+ }, "SubWindowDialog");
567
+ }
535
568
  }]);
536
569
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_videoTrackRenderContext.FcrVideoTrackRenderContext.Provider, {
537
570
  value: {
@@ -561,11 +594,18 @@ var FcrMainUIScene = exports.FcrMainUIScene = /*#__PURE__*/function (_FcrBaseUIS
561
594
  });
562
595
  };
563
596
  _reactDom["default"].render(getView(), dom);
597
+
598
+ // for debug use only
599
+ // @ts-ignore
600
+ window._mainScene = this;
564
601
  }
565
602
  }, {
566
603
  key: "unmount",
567
604
  value: function unmount(dom) {
568
605
  _reactDom["default"].unmountComponentAtNode(dom);
606
+
607
+ // @ts-ignore
608
+ window._mainScene = null;
569
609
  }
570
610
  }, {
571
611
  key: "onNodeWillActive",
@@ -581,12 +621,14 @@ var FcrMainUIScene = exports.FcrMainUIScene = /*#__PURE__*/function (_FcrBaseUIS
581
621
  this.devicePrivilegeProvider.release();
582
622
  this.privilegeProvider.release();
583
623
  this.deviceStreamProvider.release();
624
+ this.multiDisplayProvider.release();
584
625
  this.sharedInterpreterDataSource.release();
585
626
  this.sharedMemberDataSource.release();
586
627
  this.sharedMeetingTimeDataSource.release(); // 修复:添加对会议时间数据源的释放
587
628
  this.sharedWaitingRoomDataSource.release(); // 修复:添加对等候室数据源的释放
588
629
  this.sharedSecuritySharedDataSource.release(); // 修复:添加对安全数据源的释放
589
630
  this.sharedVideoWindowDataSource.release(); // 修复:添加对视频窗口数据源的释放
631
+ this.sharedWhiteboardDataSource.release();
590
632
  }
591
633
  }, {
592
634
  key: "_setIsWaitingRoomNotify",
@@ -22,7 +22,6 @@ import { FcrUIMemberSharedDataSource } from '../shared-data-source/member-data';
22
22
  import { FcrUIWidgetProvider } from '../providers/widget-provider';
23
23
  import { FcrUISharedWaitingRoomDataSource } from '../shared-data-source/waiting-room';
24
24
  import { FcrUIAbilityProviderImpl } from '../providers/ability-provider';
25
- import { FcrUIScreenShareProviderImpl } from '../providers/screen-share-provider';
26
25
  import { FcrUIScreenShareSharedDataSource } from '../shared-data-source/screen-share-data';
27
26
  import { FcrUISharedConfirmDataSource } from '../shared-data-source/confirm-data';
28
27
  import { FcrUIApplistProvider } from '../providers/app-list-provider';
@@ -62,7 +61,6 @@ export declare class FcrWaitingUIScene extends FcrBaseUIScene {
62
61
  monitorProvider: FcrUIMonitorProviderImpl;
63
62
  deviceStreamProvider: FcrUIDeviceStreamProviderImpl;
64
63
  widgetProvider: FcrUIWidgetProvider;
65
- screenShareProvider: FcrUIScreenShareProviderImpl;
66
64
  applistProvider: FcrUIApplistProvider;
67
65
  sharedConfigDataSource: FcrUISharedConfigDataSource;
68
66
  messageProvider: FcrUIMessageProvider;
@@ -42,8 +42,6 @@ var _eventConfirm = require("../modules/event-confirm");
42
42
  var _memberData = require("../shared-data-source/member-data");
43
43
  var _waitingRoom = require("../shared-data-source/waiting-room");
44
44
  var _abilityProvider = require("../providers/ability-provider");
45
- var _screenShareProvider = require("../providers/screen-share-provider");
46
- var _sharingProvider = require("../providers/sharing-provider");
47
45
  var _appListProvider = require("../providers/app-list-provider");
48
46
  var _appListData = require("../shared-data-source/app-list-data");
49
47
  var _endMeeting = require("../modules/dialog/dialogs/end-meeting");
@@ -97,11 +95,8 @@ var FcrWaitingUIScene = exports.FcrWaitingUIScene = /*#__PURE__*/function (_FcrB
97
95
  var monitorProvider = new _monitorProvider.FcrUIMonitorProviderImpl(engine.getMonitorControl());
98
96
  var deviceStreamProvider = new _deviceStreamProvider.FcrUIDeviceStreamProviderImpl(waitingRoomControl, deviceProvider, messageProvider, dialogProvider, devicePrivilegeProvider, sharedDevicePrivilegeDataSource);
99
97
  var sharedChatDataSource = new _chatData.FcrUISharedChatDataSourceImpl(chatProvider);
100
- var sharingControl = waitingRoomControl.getSharingControl();
101
- var sharingProvider = new _sharingProvider.FcrUISharingProviderImpl(sharingControl, sharedScreenShareSharedDataSource);
102
98
  var sharedInterpreterDataSource = new _interpreter.FcrUISharedInterpreterDataSourceImpl();
103
99
  var sharedMemberDataSource = new _memberData.FcrUIMemberSharedDataSourceImpl(userControl, streamControl, sharedScreenShareSharedDataSource, eventProvider);
104
- var screenShareProvider = new _screenShareProvider.FcrUIScreenShareProviderImpl(deviceProvider, eventProvider, roomProvider, sharingProvider, sharedScreenShareSharedDataSource, sharedMemberDataSource);
105
100
  var privilegeProvider = waitingRoomControlProvider.privilegeProvider;
106
101
  var sharedApplistDataSource = new _appListData.FcrUISharedApplistSourceImpl(abilityProvider, privilegeProvider, roomProvider, widgetProvider, sharedMemberDataSource);
107
102
  var applistProvider = new _appListProvider.FcrUIApplistProviderImpl(dialogProvider, eventProvider, widgetProvider, sharedApplistDataSource);
@@ -133,7 +128,6 @@ var FcrWaitingUIScene = exports.FcrWaitingUIScene = /*#__PURE__*/function (_FcrB
133
128
  _this.deviceStreamProvider = deviceStreamProvider;
134
129
  _this.sharedMemberDataSource = sharedMemberDataSource;
135
130
  _this.sharedScreenShareSharedDataSource = sharedScreenShareSharedDataSource;
136
- _this.screenShareProvider = screenShareProvider;
137
131
  _this.widgetProvider = widgetProvider;
138
132
  _this.sharedWaitingRoomDataSource = sharedWaitingRoomDataSource;
139
133
  _this.abilityProvider = abilityProvider;
package/lib/schema.d.ts CHANGED
@@ -128,15 +128,15 @@ export type FcrUISceneConfigSchema = z.infer<typeof fcrUISceneConfigSchema>;
128
128
  export declare const fcrUISceneCallbackSchema: z.ZodFunction<z.ZodTuple<[z.ZodString], z.ZodUnknown>, z.ZodVoid>;
129
129
  export type FcrUISceneCallbackSchema = z.infer<typeof fcrUISceneCallbackSchema>;
130
130
  export declare const fcrUISceneFailureCallbackSchema: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodObject<{
131
- code: z.ZodString;
131
+ code: z.ZodNumber;
132
132
  message: z.ZodString;
133
133
  origin: z.ZodOptional<z.ZodUnion<[z.ZodType<Error, z.ZodTypeDef, Error>, z.ZodUndefined]>>;
134
134
  }, "strip", z.ZodTypeAny, {
135
- code: string;
135
+ code: number;
136
136
  message: string;
137
137
  origin?: Error | undefined;
138
138
  }, {
139
- code: string;
139
+ code: number;
140
140
  message: string;
141
141
  origin?: Error | undefined;
142
142
  }>], z.ZodUnknown>, z.ZodVoid>;
package/lib/schema.js CHANGED
@@ -78,7 +78,7 @@ var fcrUISceneConfigSchema = exports.fcrUISceneConfigSchema = _schema.z.object({
78
78
  avatar: _schema.stringSchema.optional()
79
79
  });
80
80
  var fcrErrorSchema = _schema.z.object({
81
- code: _schema.z.string(),
81
+ code: _schema.z.number(),
82
82
  message: _schema.z.string(),
83
83
  origin: _schema.z.union([_schema.z["instanceof"](Error), _schema.z.undefined()]).optional()
84
84
  });
@@ -1,3 +1,4 @@
1
+ import { CurrentShareBounds } from '../modules/control-bar/types';
1
2
  export interface FcrUISharedConfirmDataSource {
2
3
  get position(): {
3
4
  x: number;
@@ -11,15 +12,33 @@ export interface FcrUISharedConfirmDataSource {
11
12
  x: number;
12
13
  y: number;
13
14
  }): void;
15
+ setWindowBounds(key: string, window: CurrentShareBounds): void;
16
+ removeWindowBounds(key: string): void;
17
+ addObserver(observer: FcrMousePositionObserver): void;
18
+ removeObserver(observer: FcrMousePositionObserver): void;
14
19
  }
20
+ export type FcrMousePositionObserver = {
21
+ onMouseOver(key: string): void;
22
+ onMouseOut(key: string): void;
23
+ };
15
24
  export declare class FcrUISharedConfirmDataSourceImpl implements FcrUISharedConfirmDataSource {
16
25
  protected logger: import("agora-foundation/lib/logger").Logger;
26
+ private _observable;
17
27
  accessor position: {
18
28
  x: number;
19
29
  y: number;
20
30
  };
31
+ accessor windows: Map<string, CurrentShareBounds>;
32
+ accessor mouseOverState: Set<unknown>;
33
+ constructor();
21
34
  setPosition(position: {
22
35
  x: number;
23
36
  y: number;
24
37
  }): void;
38
+ setWindowBounds(key: string, window: CurrentShareBounds): void;
39
+ removeWindowBounds(key: string): void;
40
+ addObserver(observer: FcrMousePositionObserver): void;
41
+ removeObserver(observer: FcrMousePositionObserver): void;
42
+ release(): void;
43
+ private _addLogObserver;
25
44
  }
@@ -10,12 +10,27 @@ require("core-js/modules/es.array.push.js");
10
10
  require("core-js/modules/es.date.to-primitive.js");
11
11
  require("core-js/modules/es.function.bind.js");
12
12
  require("core-js/modules/es.function.name.js");
13
- require("core-js/modules/es.map.js");
14
13
  require("core-js/modules/es.number.constructor.js");
15
14
  require("core-js/modules/es.object.create.js");
16
15
  require("core-js/modules/es.object.define-property.js");
17
16
  require("core-js/modules/es.object.get-own-property-descriptor.js");
18
17
  require("core-js/modules/esnext.function.metadata.js");
18
+ require("core-js/modules/esnext.symbol.metadata.js");
19
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
20
+ var _typeof = require("@babel/runtime/helpers/typeof");
21
+ Object.defineProperty(exports, "__esModule", {
22
+ value: true
23
+ });
24
+ exports.FcrUISharedConfirmDataSourceImpl = void 0;
25
+ require("core-js/modules/es.array.for-each.js");
26
+ require("core-js/modules/es.array.iterator.js");
27
+ require("core-js/modules/es.map.js");
28
+ require("core-js/modules/es.object.to-string.js");
29
+ require("core-js/modules/es.set.js");
30
+ require("core-js/modules/es.string.iterator.js");
31
+ require("core-js/modules/es.weak-map.js");
32
+ require("core-js/modules/esnext.iterator.constructor.js");
33
+ require("core-js/modules/esnext.iterator.for-each.js");
19
34
  require("core-js/modules/esnext.map.delete-all.js");
20
35
  require("core-js/modules/esnext.map.emplace.js");
21
36
  require("core-js/modules/esnext.map.every.js");
@@ -30,19 +45,32 @@ require("core-js/modules/esnext.map.merge.js");
30
45
  require("core-js/modules/esnext.map.reduce.js");
31
46
  require("core-js/modules/esnext.map.some.js");
32
47
  require("core-js/modules/esnext.map.update.js");
33
- require("core-js/modules/esnext.symbol.metadata.js");
34
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
35
- var _typeof = require("@babel/runtime/helpers/typeof");
36
- Object.defineProperty(exports, "__esModule", {
37
- value: true
38
- });
39
- exports.FcrUISharedConfirmDataSourceImpl = void 0;
40
- require("core-js/modules/es.array.iterator.js");
41
- require("core-js/modules/es.object.to-string.js");
42
- require("core-js/modules/es.string.iterator.js");
43
- require("core-js/modules/es.weak-map.js");
48
+ require("core-js/modules/esnext.set.add-all.js");
49
+ require("core-js/modules/esnext.set.delete-all.js");
50
+ require("core-js/modules/esnext.set.difference.v2.js");
51
+ require("core-js/modules/esnext.set.difference.js");
52
+ require("core-js/modules/esnext.set.every.js");
53
+ require("core-js/modules/esnext.set.filter.js");
54
+ require("core-js/modules/esnext.set.find.js");
55
+ require("core-js/modules/esnext.set.intersection.v2.js");
56
+ require("core-js/modules/esnext.set.intersection.js");
57
+ require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
58
+ require("core-js/modules/esnext.set.is-disjoint-from.js");
59
+ require("core-js/modules/esnext.set.is-subset-of.v2.js");
60
+ require("core-js/modules/esnext.set.is-subset-of.js");
61
+ require("core-js/modules/esnext.set.is-superset-of.v2.js");
62
+ require("core-js/modules/esnext.set.is-superset-of.js");
63
+ require("core-js/modules/esnext.set.join.js");
64
+ require("core-js/modules/esnext.set.map.js");
65
+ require("core-js/modules/esnext.set.reduce.js");
66
+ require("core-js/modules/esnext.set.some.js");
67
+ require("core-js/modules/esnext.set.symmetric-difference.v2.js");
68
+ require("core-js/modules/esnext.set.symmetric-difference.js");
69
+ require("core-js/modules/esnext.set.union.v2.js");
70
+ require("core-js/modules/esnext.set.union.js");
44
71
  require("core-js/modules/esnext.weak-map.delete-all.js");
45
72
  require("core-js/modules/esnext.weak-map.emplace.js");
73
+ require("core-js/modules/web.dom-collections.for-each.js");
46
74
  require("core-js/modules/web.dom-collections.iterator.js");
47
75
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
48
76
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -51,8 +79,9 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
51
79
  var _mobx = require("mobx");
52
80
  var _base = require("../base");
53
81
  var _logger = require("../utilities/logger");
82
+ var _imports = require("fcr-core/lib/imports");
54
83
  var _FcrUISharedConfirmDataSourceImpl;
55
- var _initProto, _init_position;
84
+ var _initProto, _init_position, _init_windows, _init_mouseOverState;
56
85
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
57
86
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
58
87
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
@@ -64,16 +93,22 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
64
93
  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; }
65
94
  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; }
66
95
  var _A = /*#__PURE__*/new WeakMap();
96
+ var _B = /*#__PURE__*/new WeakMap();
97
+ var _C = /*#__PURE__*/new WeakMap();
67
98
  var FcrUISharedConfirmDataSourceImpl = exports.FcrUISharedConfirmDataSourceImpl = /*#__PURE__*/function () {
68
99
  function FcrUISharedConfirmDataSourceImpl() {
69
100
  (0, _classCallCheck2["default"])(this, FcrUISharedConfirmDataSourceImpl);
70
101
  (0, _defineProperty2["default"])(this, "logger", (_initProto(this), (0, _logger.createLogger)({
71
102
  prefix: 'FcrUISharedConfirmDataSourceImpl'
72
103
  })));
104
+ (0, _defineProperty2["default"])(this, "_observable", new _imports.AgoraObservable());
73
105
  _classPrivateFieldInitSpec(this, _A, _init_position(this, {
74
106
  x: 0,
75
107
  y: 0
76
108
  }));
109
+ _classPrivateFieldInitSpec(this, _B, _init_windows(this, new Map()));
110
+ _classPrivateFieldInitSpec(this, _C, _init_mouseOverState(this, new Set()));
111
+ this._addLogObserver();
77
112
  }
78
113
  return (0, _createClass2["default"])(FcrUISharedConfirmDataSourceImpl, [{
79
114
  key: "position",
@@ -83,15 +118,84 @@ var FcrUISharedConfirmDataSourceImpl = exports.FcrUISharedConfirmDataSourceImpl
83
118
  set: function set(v) {
84
119
  _classPrivateFieldSet(_A, this, v);
85
120
  }
121
+ }, {
122
+ key: "windows",
123
+ get: function get() {
124
+ return _classPrivateFieldGet(_B, this);
125
+ },
126
+ set: function set(v) {
127
+ _classPrivateFieldSet(_B, this, v);
128
+ }
129
+ }, {
130
+ key: "mouseOverState",
131
+ get: function get() {
132
+ return _classPrivateFieldGet(_C, this);
133
+ },
134
+ set: function set(v) {
135
+ _classPrivateFieldSet(_C, this, v);
136
+ }
86
137
  }, {
87
138
  key: "setPosition",
88
139
  value: function setPosition(position) {
140
+ var _this = this;
89
141
  this.position = position;
142
+ if (this.windows.size > 0) {
143
+ this.windows.forEach(function (window, key) {
144
+ if (typeof window.width !== 'number' || typeof window.height !== 'number' || typeof window.x !== 'number' || typeof window.y !== 'number') {
145
+ return;
146
+ }
147
+ if (position.x >= window.x && position.y >= window.y && position.x <= window.x + window.width && position.y <= window.y + window.height) {
148
+ if (!_this.mouseOverState.has(key)) {
149
+ _this.mouseOverState.add(key);
150
+ _this._observable.notifyObservers('onMouseOver', key);
151
+ }
152
+ } else {
153
+ if (_this.mouseOverState.has(key)) {
154
+ _this.mouseOverState["delete"](key);
155
+ _this._observable.notifyObservers('onMouseOut', key);
156
+ }
157
+ }
158
+ });
159
+ }
160
+ }
161
+ }, {
162
+ key: "setWindowBounds",
163
+ value: function setWindowBounds(key, window) {
164
+ this.windows.set(key, window);
165
+ }
166
+ }, {
167
+ key: "removeWindowBounds",
168
+ value: function removeWindowBounds(key) {
169
+ this.mouseOverState["delete"](key);
170
+ this.windows["delete"](key);
171
+ }
172
+ }, {
173
+ key: "addObserver",
174
+ value: function addObserver(observer) {
175
+ this._observable.addObserver(observer);
176
+ }
177
+ }, {
178
+ key: "removeObserver",
179
+ value: function removeObserver(observer) {
180
+ this._observable.removeObserver(observer);
181
+ }
182
+ }, {
183
+ key: "release",
184
+ value: function release() {
185
+ this.windows.clear();
186
+ this.mouseOverState.clear();
187
+ }
188
+ }, {
189
+ key: "_addLogObserver",
190
+ value: function _addLogObserver() {
191
+ this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onMouseOver', 'onMouseOut']));
90
192
  }
91
193
  }]);
92
194
  }();
93
195
  _FcrUISharedConfirmDataSourceImpl = FcrUISharedConfirmDataSourceImpl;
94
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUISharedConfirmDataSourceImpl, [[_mobx.observable, 1, "position"]], []).e, 2);
196
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUISharedConfirmDataSourceImpl, [[_mobx.observable, 1, "position"], [_mobx.observable, 1, "windows"], [_mobx.observable, 1, "mouseOverState"]], []).e, 4);
95
197
  _init_position = _applyDecs$e[0];
96
- _initProto = _applyDecs$e[1];
198
+ _init_windows = _applyDecs$e[1];
199
+ _init_mouseOverState = _applyDecs$e[2];
200
+ _initProto = _applyDecs$e[3];
97
201
  (0, _base.registerDependency)('sharedConfirmDataSource');
@@ -4,7 +4,7 @@ import { FcrUserControl } from 'fcr-core/lib/room-control/user-control/type';
4
4
  import { FcrRemoteVideoStats } from 'fcr-core/lib/room-control/stream-control/type';
5
5
  import { FcrLanguage } from 'fcr-core/lib/room-control/interpreter-control/types';
6
6
  import { FcrUserInfo } from 'fcr-core/lib/type';
7
- import { FcrWhiteboardControl } from 'fcr-core/lib/room-control/whiteboard-control-v2/whiteboard-control/type';
7
+ import { FcrPrivilegedWhiteboardControl } from 'fcr-core/lib/room-control/whiteboard-control-v2/whiteboard-control/type';
8
8
  import { FcrUIScreenShareSharedDataSource } from './screen-share-data';
9
9
  import { FcrUIEventProvider } from '../providers/event-provider';
10
10
  export interface FcrUIMemberSharedDataSource {
@@ -116,7 +116,7 @@ export declare class FcrUIMemberSharedDataSourceImpl implements FcrUIMemberShare
116
116
  get remoteMembersUserInfosList(): FcrUserInfo[];
117
117
  get memberList(): FcrUIMemberDataImpl[];
118
118
  get memberUserInfoList(): FcrUserInfo[];
119
- constructor(_mainRoomUserControl: FcrUserControl, _streamControl: FcrStreamControl, _sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource, _eventProvider: FcrUIEventProvider, _whiteBoardControl?: FcrWhiteboardControl | undefined);
119
+ constructor(_mainRoomUserControl: FcrUserControl, _streamControl: FcrStreamControl, _sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource, _eventProvider: FcrUIEventProvider, _whiteBoardControl?: FcrPrivilegedWhiteboardControl | undefined);
120
120
  private _addEventListeners;
121
121
  private _removeEventListeners;
122
122
  private _handleOnEvent;