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
@@ -3,8 +3,6 @@
3
3
  require("core-js/modules/es.symbol.js");
4
4
  require("core-js/modules/es.symbol.description.js");
5
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
6
  require("core-js/modules/es.array.is-array.js");
9
7
  require("core-js/modules/es.array.iterator.js");
10
8
  require("core-js/modules/es.date.to-primitive.js");
@@ -39,8 +37,11 @@ Object.defineProperty(exports, "__esModule", {
39
37
  });
40
38
  exports.FcrUIScreenShareProviderImpl = void 0;
41
39
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
40
+ require("core-js/modules/es.error.cause.js");
41
+ require("core-js/modules/es.error.to-string.js");
42
42
  require("core-js/modules/es.array.concat.js");
43
43
  require("core-js/modules/es.array.find.js");
44
+ require("core-js/modules/es.array.for-each.js");
44
45
  require("core-js/modules/es.array.includes.js");
45
46
  require("core-js/modules/es.array.push.js");
46
47
  require("core-js/modules/es.array.some.js");
@@ -52,7 +53,9 @@ require("core-js/modules/es.promise.js");
52
53
  require("core-js/modules/es.string.includes.js");
53
54
  require("core-js/modules/esnext.iterator.constructor.js");
54
55
  require("core-js/modules/esnext.iterator.find.js");
56
+ require("core-js/modules/esnext.iterator.for-each.js");
55
57
  require("core-js/modules/esnext.iterator.some.js");
58
+ require("core-js/modules/web.dom-collections.for-each.js");
56
59
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
57
60
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
58
61
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -67,27 +70,24 @@ var _logger = require("../utilities/logger");
67
70
  var _imports = require("fcr-core/lib/imports");
68
71
  var _decorator = require("agora-foundation/lib/decorator");
69
72
  var _types = require("fcr-core/lib/room-control/whiteboard-control/types");
70
- var _type = require("agora-rte-sdk/lib/core/rtc/type");
71
73
  var _rendererEvent = require("../utilities/renderer-event");
72
74
  var _tools = require("../utilities/tools");
75
+ var _type = require("fcr-core/lib/type");
73
76
  var _i18n = require("agora-ui-foundation/lib/i18n");
74
77
  var _constant = require("../utilities/constant");
75
78
  var _lodash = require("lodash");
76
79
  var _config = require("../modules/setting/config");
77
80
  var _FcrUIScreenShareProviderImpl;
78
- var _initProto, _zoomOutDecs, _zoomInDecs, _fullContainerDecs, _setOriginScalcDecs, _handleScreenCaptureStateUpdatedDecs, _handleShareStopWithAudioDecs, _replaceScreenShareDecs, _handleRemoteVideoStatsUpdatedDecs, _handleStreamUpdateDecs, _syncScreenShareStreamInfosDecs, _releaseDecs, _startShareScreenDecs, _handleShareStartWithAudioDecs, _ref;
81
+ var _initProto, _zoomOutDecs, _zoomInDecs, _fullContainerDecs, _setOriginScalcDecs, _handleScreenCaptureStateUpdatedDecs, _replaceScreenShareDecs, _handleRemoteVideoStatsUpdatedDecs, _handleStreamUpdateDecs, _syncScreenShareStreamInfosDecs, _releaseDecs, _startShareScreenDecs, _updateShareAudioPrivilegeDecs, _handleShareStopWithAudioDecs, _handleShareStartWithAudioDecs, _ref;
79
82
  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)]; } }; }
80
83
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
81
84
  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); }
82
85
  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; }
83
86
  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; }
84
- _ref = (_zoomOutDecs = [_mobx.action, _mobx.action.bound], _zoomInDecs = [_mobx.action, _mobx.action.bound], _fullContainerDecs = [_mobx.action, _mobx.action.bound], _setOriginScalcDecs = [_mobx.action, _mobx.action.bound], _handleScreenCaptureStateUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleShareStopWithAudioDecs = [_mobx.action, _mobx.action.bound], _replaceScreenShareDecs = [_mobx.action, _mobx.action.bound], _handleRemoteVideoStatsUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleStreamUpdateDecs = [_mobx.action, _mobx.action.bound], _syncScreenShareStreamInfosDecs = [_mobx.action, _mobx.action.bound], _releaseDecs = [_mobx.action, _mobx.action.bound], _startShareScreenDecs = [_mobx.action, _mobx.action.bound], _handleShareStartWithAudioDecs = [_mobx.action, _mobx.action.bound], "logger");
87
+ _ref = (_zoomOutDecs = [_mobx.action, _mobx.action.bound], _zoomInDecs = [_mobx.action, _mobx.action.bound], _fullContainerDecs = [_mobx.action, _mobx.action.bound], _setOriginScalcDecs = [_mobx.action, _mobx.action.bound], _handleScreenCaptureStateUpdatedDecs = [_mobx.action, _mobx.action.bound], _replaceScreenShareDecs = [_mobx.action, _mobx.action.bound], _handleRemoteVideoStatsUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleStreamUpdateDecs = [_mobx.action, _mobx.action.bound], _syncScreenShareStreamInfosDecs = [_mobx.action, _mobx.action.bound], _releaseDecs = [_mobx.action, _mobx.action.bound], _startShareScreenDecs = [_mobx.action, _mobx.action.bound], _updateShareAudioPrivilegeDecs = [_mobx.action, _mobx.action.bound], _handleShareStopWithAudioDecs = [_mobx.action, _mobx.action.bound], _handleShareStartWithAudioDecs = [_mobx.action, _mobx.action.bound], "logger");
85
88
  var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__PURE__*/function () {
86
- function FcrUIScreenShareProviderImpl(_deviceProvider, _eventProvider, _roomProvider, _sharingProvider, _sharedScreenShareSharedDataSource, _sharedMemberDataSource) {
87
- var _this = this,
88
- _this$_roomProvider$c,
89
- _this$_roomProvider$c2,
90
- _this$_streamControl;
89
+ function FcrUIScreenShareProviderImpl(_deviceProvider, _eventProvider, _roomProvider, _sharingProvider, _sharedScreenShareSharedDataSource, _sharedMemberDataSource, _privilegeProvider) {
90
+ var _this = this;
91
91
  (0, _classCallCheck2["default"])(this, FcrUIScreenShareProviderImpl);
92
92
  (0, _defineProperty2["default"])(this, _ref, (_initProto(this), (0, _logger.createLogger)({
93
93
  prefix: 'FcrUIScreenShareProviderImpl'
@@ -126,9 +126,10 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
126
126
  this._sharingProvider = _sharingProvider;
127
127
  this._sharedScreenShareSharedDataSource = _sharedScreenShareSharedDataSource;
128
128
  this._sharedMemberDataSource = _sharedMemberDataSource;
129
- this._sharingControl = (_this$_roomProvider$c = this._roomProvider.currentRoomControl) === null || _this$_roomProvider$c === void 0 ? void 0 : _this$_roomProvider$c.getSharingControl();
130
- this._streamControl = (_this$_roomProvider$c2 = this._roomProvider.currentRoomControl) === null || _this$_roomProvider$c2 === void 0 ? void 0 : _this$_roomProvider$c2.getStreamControl();
131
- (_this$_streamControl = this._streamControl) === null || _this$_streamControl === void 0 || _this$_streamControl.addObserver(this._streamObserver);
129
+ this._privilegeProvider = _privilegeProvider;
130
+ this._sharingControl = this._currentRoomControl.getSharingControl();
131
+ this._streamControl = this._currentRoomControl.getStreamControl();
132
+ this._streamControl.addObserver(this._streamObserver);
132
133
  this._syncScreenShareStreamInfos();
133
134
  this._addEventListeners();
134
135
  this._syncShareStreamState();
@@ -163,6 +164,15 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
163
164
  get: function get() {
164
165
  return this._sharedScreenShareSharedDataSource.screenShareScenarioType;
165
166
  }
167
+ }, {
168
+ key: "_currentRoomControl",
169
+ get: function get() {
170
+ var currentRoomControl = this._roomProvider.currentRoomControl;
171
+ if (!currentRoomControl) {
172
+ throw new Error('currentRoomControl is not initialized');
173
+ }
174
+ return currentRoomControl;
175
+ }
166
176
  }, {
167
177
  key: "setSharingInReplace",
168
178
  value: function setSharingInReplace(isInReplace) {
@@ -218,10 +228,9 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
218
228
  }, {
219
229
  key: "currentScreenSharingOwner",
220
230
  get: function get() {
221
- var _this$_streamControl2;
222
- var allStreams = (_this$_streamControl2 = this._streamControl) === null || _this$_streamControl2 === void 0 ? void 0 : _this$_streamControl2.getStreamList();
223
- var screenShareStream = allStreams === null || allStreams === void 0 ? void 0 : allStreams.find(function (stream) {
224
- return stream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN && (stream.streamType === _imports.AgoraRteMediaStreamType.BOTH || stream.streamType === _imports.AgoraRteMediaStreamType.VIDEO);
231
+ var allStreams = this._streamControl.getStreamList();
232
+ var screenShareStream = allStreams.find(function (stream) {
233
+ return stream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN && (stream.streamType === _type.FcrStreamType.BOTH || stream.streamType === _type.FcrStreamType.VIDEO);
225
234
  });
226
235
  if (screenShareStream) {
227
236
  return screenShareStream.owner;
@@ -259,17 +268,28 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
259
268
  case 0:
260
269
  this._sharedScreenShareSharedDataSource.setLocalUserScreenSharingState(state);
261
270
  if (!(state === _fcrCore.FcrMediaSourceState.OPEN)) {
262
- _context.next = 2;
271
+ _context.next = 3;
263
272
  break;
264
273
  }
265
- _context.next = 1;
266
- return this.createScreenShareWithSelectionId(this.currentShareId, this.currentSelectionBounds);
274
+ if (this._privilegeProvider.hasStartScreenSharePermission()) {
275
+ _context.next = 1;
276
+ break;
277
+ }
278
+ this._eventProvider.sendEvent(_constant.FcrUIAction.SHOW_TOAST, {
279
+ type: 'error',
280
+ message: (0, _i18n.transI18n)('fmt_screenshare_cohost_can_not_share_remind')
281
+ });
282
+ this.stop();
283
+ return _context.abrupt("return");
267
284
  case 1:
285
+ _context.next = 2;
286
+ return this.createScreenShareWithSelectionId(this.currentShareId, this.currentSelectionBounds);
287
+ case 2:
268
288
  streamId = _context.sent;
269
289
  if (streamId) {
270
290
  this._sharedScreenShareSharedDataSource.setCurrentShareStreamId(streamId);
271
291
  }
272
- case 2:
292
+ case 3:
273
293
  if (state === _fcrCore.FcrMediaSourceState.CLOSE) {
274
294
  (_this$screenTrack = this.screenTrack) === null || _this$screenTrack === void 0 || _this$screenTrack.removeObserver(this._screenCaptureObserver);
275
295
  this._isReplaceScreen ? this._stopScreenTrack() : this.stop();
@@ -280,7 +300,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
280
300
  this.setShareLock(false);
281
301
  this._isReplaceScreen = false;
282
302
  }
283
- case 3:
303
+ case 4:
284
304
  case "end":
285
305
  return _context.stop();
286
306
  }
@@ -312,24 +332,13 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
312
332
  }
313
333
  this._sharedScreenShareSharedDataSource.setLocalUserScreenSharingState(state);
314
334
  }
315
- }, {
316
- key: "_handleShareStopWithAudio",
317
- value: function _handleShareStopWithAudio() {
318
- if (!this.shareAudioTrack) {
319
- return;
320
- }
321
- if (this._deviceProvider.isCapabilitySupported(_fcrCore.FcrCapability.LOOPBACK_CAPTURE)) {
322
- this.logger.info('[screen-share-provider][handleShareStopWithAudio] shareAudioTrack.stop');
323
- this.shareAudioTrack.stop();
324
- }
325
- }
326
335
  }, {
327
336
  key: "replaceScreenShare",
328
337
  value: function replaceScreenShare(id, type, withAudio, bounds) {
329
338
  var _this2 = this;
330
339
  this.logger.info('screen-share-provider: replaceScreenShare start');
331
340
  var shareWithAudio = (0, _lodash.isBoolean)(withAudio) ? withAudio : this._sharedScreenShareSharedDataSource.shareWithAudio;
332
- this.toggleScreenshareWithAudio(shareWithAudio);
341
+ this._sharedScreenShareSharedDataSource.setShareWithAudio(shareWithAudio);
333
342
  this._isReplaceScreen = true;
334
343
  this.setSharingInReplace(true);
335
344
  if (this.screenTrack) {
@@ -351,12 +360,15 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
351
360
  return _this2.startShareScreen(id, type, withAudio, true);
352
361
  case 1:
353
362
  _this2._sharedScreenShareSharedDataSource.setCurrentShareIdInfos(id, type, bounds);
354
- if (_this2.currentShareStreamId && _this2._streamControl) {
363
+ if (_this2.currentShareStreamId) {
355
364
  _this2._streamControl.bindLocalStreams([{
356
365
  streamId: _this2.currentShareStreamId,
357
366
  audioSourceId: _this2.loopbackAudioSourceId,
358
367
  videoSourceId: id
359
368
  }]);
369
+ _this2.toggleScreenshareWithAudio(shareWithAudio);
370
+ } else {
371
+ _this2.logger.error('currentShareStreamId is not set');
360
372
  }
361
373
  case 2:
362
374
  case "end":
@@ -378,8 +390,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
378
390
  }, {
379
391
  key: "_handleRemoteVideoStatsUpdated",
380
392
  value: function _handleRemoteVideoStatsUpdated(roomId, streamId, videoStats) {
381
- var _this$_streamControl3;
382
- var stream = (_this$_streamControl3 = this._streamControl) === null || _this$_streamControl3 === void 0 ? void 0 : _this$_streamControl3.getStreamByStreamId(streamId);
393
+ var stream = this._streamControl.getStreamByStreamId(streamId);
383
394
  if ((stream === null || stream === void 0 ? void 0 : stream.videoSourceType) === _fcrCore.FcrVideoSourceType.SCREEN) {
384
395
  var _videoStats$dimension = videoStats.dimensions,
385
396
  width = _videoStats$dimension.width,
@@ -405,6 +416,9 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
405
416
  }, {
406
417
  key: "loopbackAudioSourceId",
407
418
  get: function get() {
419
+ if (!this._sharedScreenShareSharedDataSource.loopbackAudioSourceId) {
420
+ throw new Error('loopbackAudioSourceId is null');
421
+ }
408
422
  return this._sharedScreenShareSharedDataSource.loopbackAudioSourceId;
409
423
  }
410
424
  }, {
@@ -436,7 +450,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
436
450
  key: "createScreenShareWithSelectionId",
437
451
  value: function () {
438
452
  var _createScreenShareWithSelectionId = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(videoSourceId, bounds) {
439
- var audioSourceId, _this$_sharingControl, targetEncoderConfig, streamId;
453
+ var audioSourceId, targetEncoderConfig, shareWithAudio, streamId;
440
454
  return _regenerator["default"].wrap(function (_context3) {
441
455
  while (1) switch (_context3.prev = _context3.next) {
442
456
  case 0:
@@ -448,15 +462,20 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
448
462
  }
449
463
  targetEncoderConfig = this.screenShareScenarioType === _imports.FcrScreenScenarioType.CLEARITY ? _config.clearityEncoderConfig : _config.smoothEncoderConfig;
450
464
  this._streamControl.setScreenScenario(this.screenShareScenarioType);
465
+ shareWithAudio = this._sharedScreenShareSharedDataSource.shareWithAudio;
451
466
  _context3.next = 1;
452
- return (_this$_sharingControl = this._sharingControl) === null || _this$_sharingControl === void 0 ? void 0 : _this$_sharingControl.startScreenSharing({
453
- streamType: _imports.AgoraRteMediaStreamType.BOTH,
467
+ return this._sharingControl.startScreenSharing({
468
+ streamType: shareWithAudio ? _type.FcrStreamType.BOTH : _type.FcrStreamType.VIDEO,
454
469
  videoSourceId: videoSourceId,
455
470
  audioSourceId: audioSourceId
456
471
  }, bounds);
457
472
  case 1:
458
473
  streamId = _context3.sent;
459
- this._streamControl.setVideoEncoderConfig(streamId, targetEncoderConfig, _type.AgoraRtcVideoStreamType.HIGH_STREAM);
474
+ if (shareWithAudio) {
475
+ this._updateShareAudioPrivilege(streamId, true);
476
+ this._handleShareStartWithAudio();
477
+ }
478
+ this._streamControl.setVideoEncoderConfig(streamId, targetEncoderConfig, _type.FcrVideoStreamType.HIGH_STREAM);
460
479
  return _context3.abrupt("return", Promise.resolve(streamId));
461
480
  case 2:
462
481
  return _context3.abrupt("return", Promise.reject());
@@ -493,7 +512,8 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
493
512
  }, {
494
513
  key: "_syncShareStreamState",
495
514
  value: function _syncShareStreamState() {
496
- if (this._sharedScreenShareSharedDataSource.localUserScreenSharingState !== _fcrCore.FcrMediaSourceState.OPEN) {
515
+ var _this$_sharedScreenSh;
516
+ if (this._sharedScreenShareSharedDataSource.localUserScreenSharingState !== _fcrCore.FcrMediaSourceState.OPEN && ((_this$_sharedScreenSh = this._sharedScreenShareSharedDataSource.screenSharingOwner) === null || _this$_sharedScreenSh === void 0 ? void 0 : _this$_sharedScreenSh.userId) === this.localUserId) {
497
517
  this._hasStop = false;
498
518
  this.stop();
499
519
  }
@@ -535,14 +555,14 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
535
555
  case 'remove':
536
556
  var seizeStream = events.find(function (event) {
537
557
  var _event$cause2, _event$operatorUser;
538
- return event.modifiedStream.videoSourceType === _imports.AgoraRteVideoSourceType.SCREEN && ((_event$cause2 = event.cause) === null || _event$cause2 === void 0 || (_event$cause2 = _event$cause2.data) === null || _event$cause2 === void 0 ? void 0 : _event$cause2.reason) === _types.FcrBoardInactiveReason.SEIZE && ((_event$operatorUser = event.operatorUser) === null || _event$operatorUser === void 0 ? void 0 : _event$operatorUser.userId) !== event.modifiedStream.owner.userId;
558
+ return event.modifiedStream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN && ((_event$cause2 = event.cause) === null || _event$cause2 === void 0 || (_event$cause2 = _event$cause2.data) === null || _event$cause2 === void 0 ? void 0 : _event$cause2.reason) === _types.FcrBoardInactiveReason.SEIZE && ((_event$operatorUser = event.operatorUser) === null || _event$operatorUser === void 0 ? void 0 : _event$operatorUser.userId) !== event.modifiedStream.owner.userId;
539
559
  });
540
560
  if ((seizeStream === null || seizeStream === void 0 || (_seizeStream$operator = seizeStream.operatorUser) === null || _seizeStream$operator === void 0 ? void 0 : _seizeStream$operator.userId) !== this.localUserId && (seizeStream === null || seizeStream === void 0 ? void 0 : seizeStream.modifiedStream.owner.userId) === this.localUserId) {
541
561
  this._observable.notifyObservers('onScreenShareSeize');
542
562
  this._sharedScreenShareSharedDataSource.setIsSeizeStream(true);
543
563
  }
544
564
  var mySharingScreenRemoved = events.some(function (event) {
545
- return event.modifiedStream.videoSourceType === _imports.AgoraRteVideoSourceType.SCREEN && event.modifiedStream.owner.userId === _this4.localUserId;
565
+ return event.modifiedStream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN && event.modifiedStream.owner.userId === _this4.localUserId;
546
566
  });
547
567
  if (mySharingScreenRemoved) {
548
568
  this.setSharingInReplace(false);
@@ -581,14 +601,14 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
581
601
  }, {
582
602
  key: "_syncScreenShareStreamInfos",
583
603
  value: function _syncScreenShareStreamInfos() {
584
- var _this$_roomProvider$c3, _streams$find;
585
- var streams = (_this$_roomProvider$c3 = this._roomProvider.currentRoomControl) === null || _this$_roomProvider$c3 === void 0 ? void 0 : _this$_roomProvider$c3.getStreamControl().getStreamList();
604
+ var _this$_roomProvider$c, _streams$find;
605
+ var streams = (_this$_roomProvider$c = this._roomProvider.currentRoomControl) === null || _this$_roomProvider$c === void 0 ? void 0 : _this$_roomProvider$c.getStreamControl().getStreamList();
586
606
  var isSharingScreen = streams === null || streams === void 0 ? void 0 : streams.some(function (stream) {
587
- return stream.videoSourceType === _imports.AgoraRteVideoSourceType.SCREEN;
607
+ return stream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN;
588
608
  });
589
609
  this._sharedScreenShareSharedDataSource.setIsSharingScreen(!!isSharingScreen);
590
610
  var screenSharingOwner = streams === null || streams === void 0 || (_streams$find = streams.find(function (stream) {
591
- return stream.videoSourceType === _imports.AgoraRteVideoSourceType.SCREEN;
611
+ return stream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN;
592
612
  })) === null || _streams$find === void 0 ? void 0 : _streams$find.owner;
593
613
  this._sharedScreenShareSharedDataSource.setScreenSharingOwner(screenSharingOwner);
594
614
  }
@@ -616,11 +636,10 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
616
636
  }, {
617
637
  key: "release",
618
638
  value: function release() {
619
- var _this$_streamControl4;
620
639
  this.logger.info('[screen-share-provider] in release');
621
640
  this._hasStop = false;
622
641
  this.stop();
623
- (_this$_streamControl4 = this._streamControl) === null || _this$_streamControl4 === void 0 || _this$_streamControl4.removeObserver(this._streamObserver);
642
+ this._streamControl.removeObserver(this._streamObserver);
624
643
  this._removeEventListeners();
625
644
  }
626
645
  }, {
@@ -649,6 +668,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
649
668
  _t = undefined;
650
669
  case 4:
651
670
  excludeWindows = _t;
671
+ this._sharedScreenShareSharedDataSource.setShareWithAudio(withAudio);
652
672
  if (!((0, _env.isElectron)() && !isReplace)) {
653
673
  _context4.next = 6;
654
674
  break;
@@ -661,17 +681,16 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
661
681
  this._sharedScreenShareSharedDataSource.setCurrentShareStreamId(streamId);
662
682
  }
663
683
  case 6:
664
- this._sharedScreenShareSharedDataSource.setShareWithAudio(withAudio);
665
- this.toggleScreenshareWithAudio(withAudio);
666
684
  screenTrack = this._deviceProvider.getScreenTrack(id);
667
685
  this.setScreenTrack(screenTrack);
668
- this.logger.info('screen-share-provider: start share screen with track start');
686
+ this.logger.info("[screen-share-provider]: start share screen with track start, excludeWindows: ".concat(JSON.stringify(excludeWindows)));
669
687
  (_this$screenTrack3 = this.screenTrack) === null || _this$screenTrack3 === void 0 || _this$screenTrack3.addObserver(this._screenCaptureObserver);
670
- (_this$screenTrack4 = this.screenTrack) === null || _this$screenTrack4 === void 0 || _this$screenTrack4.start(type, {
671
- withAudio: withAudio,
672
- excludeWindows: excludeWindows,
673
- frameRate: frameRate
674
- });
688
+ // this.screenTrack?.start(type, {
689
+ // withAudio,
690
+ // excludeWindows,
691
+ // frameRate,
692
+ // });
693
+ (_this$screenTrack4 = this.screenTrack) === null || _this$screenTrack4 === void 0 || _this$screenTrack4.start(type, excludeWindows !== null && excludeWindows !== void 0 ? excludeWindows : []);
675
694
  _context4.next = 8;
676
695
  break;
677
696
  case 7:
@@ -712,6 +731,25 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
712
731
  this._stopScreenTrack();
713
732
  this._cleanShareWithAudioDataSource();
714
733
  }
734
+ }, {
735
+ key: "_updateShareAudioPrivilege",
736
+ value: function _updateShareAudioPrivilege(streamId, withAudio) {
737
+ this._streamControl.updatePublishPrivilegeOfStreams((0, _defineProperty2["default"])({}, streamId, {
738
+ audioPrivilege: withAudio ? _fcrCore.FcrStreamPrivilegeOperation.HAS_PRIVILEGE : _fcrCore.FcrStreamPrivilegeOperation.NOPRIVILEGE,
739
+ videoPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOOPERATION
740
+ }));
741
+ }
742
+ }, {
743
+ key: "_handleShareStopWithAudio",
744
+ value: function _handleShareStopWithAudio() {
745
+ if (!this.shareAudioTrack) {
746
+ return;
747
+ }
748
+ if (this._deviceProvider.isCapabilitySupported(_fcrCore.FcrCapability.LOOPBACK_CAPTURE)) {
749
+ this.logger.info('[screen-share-provider][handleShareStopWithAudio] shareAudioTrack.stop');
750
+ this.shareAudioTrack.stop();
751
+ }
752
+ }
715
753
  }, {
716
754
  key: "_handleShareStartWithAudio",
717
755
  value: function _handleShareStartWithAudio() {
@@ -726,62 +764,44 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
726
764
  value: function toggleScreenshareWithAudio(withAudio) {
727
765
  this._sharedScreenShareSharedDataSource.setShareWithAudio(withAudio);
728
766
  this.logger.info("[screen-share-provider] current-share with audio: ".concat(withAudio));
729
- if (this.currentShareStreamId && this._streamControl) {
730
- this._streamControl.updatePublishPrivilegeOfStreams((0, _defineProperty2["default"])({}, this.currentShareStreamId, {
731
- audioPrivilege: withAudio ? _fcrCore.FcrStreamPrivilegeOperation.HAS_PRIVILEGE : _fcrCore.FcrStreamPrivilegeOperation.NOPRIVILEGE,
732
- videoPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOOPERATION
733
- }));
767
+ if (this.currentShareStreamId) {
768
+ this._updateShareAudioPrivilege(this.currentShareStreamId, withAudio);
734
769
  if (withAudio) {
735
770
  this._handleShareStartWithAudio();
736
771
  } else {
737
772
  this._handleShareStopWithAudio();
738
773
  }
774
+ } else {
775
+ this.logger.error('currentShareStreamId is not set');
739
776
  }
740
777
  }
741
778
  }, {
742
779
  key: "_getExcludeWindows",
743
780
  value: function () {
744
781
  var _getExcludeWindows2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
745
- var excludeWindows;
782
+ var excludeWindows, windowNames;
746
783
  return _regenerator["default"].wrap(function (_context5) {
747
784
  while (1) switch (_context5.prev = _context5.next) {
748
785
  case 0:
749
786
  excludeWindows = [];
787
+ windowNames = [];
750
788
  _context5.next = 1;
751
789
  return (0, _tools.waitUntil)(function () {
752
- var _getControlBarMediaSo, _getVideoWindowMediaS, _getAnnotationMediaSo, _getAnnotationMediaSo2;
753
- var windowId = (_getControlBarMediaSo = (0, _rendererEvent.getControlBarMediaSourceId)()) !== null && _getControlBarMediaSo !== void 0 ? _getControlBarMediaSo : '';
754
- var _windowId$split = windowId.split(':'),
755
- _windowId$split2 = (0, _slicedToArray2["default"])(_windowId$split, 2),
756
- videoWindowId = _windowId$split2[1];
757
- if (videoWindowId && !excludeWindows.includes(videoWindowId)) {
758
- excludeWindows.push(videoWindowId);
759
- }
760
- windowId = (_getVideoWindowMediaS = (0, _rendererEvent.getVideoWindowMediaSourceId)()) !== null && _getVideoWindowMediaS !== void 0 ? _getVideoWindowMediaS : '';
761
- var _windowId$split3 = windowId.split(':'),
762
- _windowId$split4 = (0, _slicedToArray2["default"])(_windowId$split3, 2),
763
- controlBarWindowId = _windowId$split4[1];
764
- if (controlBarWindowId && !excludeWindows.includes(controlBarWindowId)) {
765
- excludeWindows.push(controlBarWindowId);
766
- }
767
- windowId = (_getAnnotationMediaSo = (0, _rendererEvent.getAnnotationMediaSourceId)('Annotation')) !== null && _getAnnotationMediaSo !== void 0 ? _getAnnotationMediaSo : '';
768
- var _windowId$split5 = windowId.split(':'),
769
- _windowId$split6 = (0, _slicedToArray2["default"])(_windowId$split5, 2),
770
- annotationWindowId = _windowId$split6[1];
771
- if (annotationWindowId && !excludeWindows.includes(annotationWindowId)) {
772
- excludeWindows.push(annotationWindowId);
773
- }
774
- windowId = (_getAnnotationMediaSo2 = (0, _rendererEvent.getAnnotationMediaSourceId)('Annotation tool bar')) !== null && _getAnnotationMediaSo2 !== void 0 ? _getAnnotationMediaSo2 : '';
775
- var _windowId$split7 = windowId.split(':'),
776
- _windowId$split8 = (0, _slicedToArray2["default"])(_windowId$split7, 2),
777
- annotationToolWindowId = _windowId$split8[1];
778
- if (annotationToolWindowId && !excludeWindows.includes(annotationToolWindowId)) {
779
- excludeWindows.push(annotationToolWindowId);
780
- }
781
- return !!videoWindowId && !!controlBarWindowId;
790
+ var windowsIds = (0, _rendererEvent.getMediaSourcesIdByTitle)(['Control Bar', 'Video Window', 'Annotation', 'Annotation tool bar']);
791
+ windowsIds === null || windowsIds === void 0 || windowsIds.forEach(function (windowInfo) {
792
+ var windowName = windowInfo.windowName,
793
+ windowId = windowInfo.windowId;
794
+ if (windowId && !excludeWindows.includes(windowId)) {
795
+ excludeWindows.push(windowId);
796
+ }
797
+ if (windowName && !windowNames.includes(windowName)) {
798
+ windowNames.push(windowName);
799
+ }
800
+ });
801
+ return windowNames.includes('Control Bar') && windowNames.includes('Video Window');
782
802
  }, 'control bar is open');
783
803
  case 1:
784
- this.logger.info('exclude win:', JSON.stringify(excludeWindows));
804
+ this.logger.info("[screen-share-provider] windowNames: ".concat(JSON.stringify(windowNames), ", excludeWindows: ").concat(JSON.stringify(excludeWindows)));
785
805
  return _context5.abrupt("return", excludeWindows);
786
806
  case 2:
787
807
  case "end":
@@ -798,10 +818,9 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
798
818
  key: "removeScreenStream",
799
819
  value: function removeScreenStream() {
800
820
  try {
801
- var _this$_streamControl5;
802
821
  this.logger.info('screen-share-provider: remove screen streams');
803
- (_this$_streamControl5 = this._streamControl) === null || _this$_streamControl5 === void 0 || _this$_streamControl5.removeScreenStream();
804
- this._sharedScreenShareSharedDataSource.setCurrentShareStreamId('');
822
+ this._streamControl.removeScreenStream();
823
+ this._sharedScreenShareSharedDataSource.setCurrentShareStreamId(undefined);
805
824
  return true;
806
825
  } catch (error) {
807
826
  this.logger.error('removeScreenStream error', error);
@@ -826,6 +845,6 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
826
845
  }]);
827
846
  }();
828
847
  _FcrUIScreenShareProviderImpl = FcrUIScreenShareProviderImpl;
829
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIScreenShareProviderImpl, [[_decorator.bound, 2, "setSharingInReplace"], [_zoomOutDecs, 18, "zoomOut"], [_zoomInDecs, 18, "zoomIn"], [_fullContainerDecs, 18, "fullContainer"], [_mobx.computed, 3, "isAspectRatioPreserved"], [_setOriginScalcDecs, 18, "setOriginScalc"], [_decorator.bound, 2, "stop"], [_decorator.bound, 2, "bootstrap"], [_decorator.bound, 2, "_handleWebScreenCaptureStateUpdated"], [_handleScreenCaptureStateUpdatedDecs, 18, "_handleScreenCaptureStateUpdated"], [_handleShareStopWithAudioDecs, 18, "_handleShareStopWithAudio"], [_replaceScreenShareDecs, 18, "replaceScreenShare"], [_handleRemoteVideoStatsUpdatedDecs, 18, "_handleRemoteVideoStatsUpdated"], [_decorator.bound, 2, "_syncShareStreamState"], [_handleStreamUpdateDecs, 18, "_handleStreamUpdate"], [_decorator.bound, 2, "startRenderSharePreview"], [_decorator.bound, 2, "stopRenderSharePreview"], [_syncScreenShareStreamInfosDecs, 18, "_syncScreenShareStreamInfos"], [_releaseDecs, 18, "release"], [_startShareScreenDecs, 18, "startShareScreen"], [_decorator.bound, 2, "stopShareScreen"], [_decorator.bound, 2, "stopShareScreenByExitRoom"], [_handleShareStartWithAudioDecs, 18, "_handleShareStartWithAudio"], [_decorator.bound, 2, "toggleScreenshareWithAudio"], [_decorator.bound, 2, "_getExcludeWindows"], [_decorator.bound, 2, "removeScreenStream"], [_decorator.bound, 2, "_stopScreenTrack"], [_decorator.bound, 2, "_cleanShareWithAudioDataSource"]], []).e, 1);
848
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIScreenShareProviderImpl, [[_decorator.bound, 2, "setSharingInReplace"], [_zoomOutDecs, 18, "zoomOut"], [_zoomInDecs, 18, "zoomIn"], [_fullContainerDecs, 18, "fullContainer"], [_mobx.computed, 3, "isAspectRatioPreserved"], [_setOriginScalcDecs, 18, "setOriginScalc"], [_decorator.bound, 2, "stop"], [_decorator.bound, 2, "bootstrap"], [_decorator.bound, 2, "_handleWebScreenCaptureStateUpdated"], [_handleScreenCaptureStateUpdatedDecs, 18, "_handleScreenCaptureStateUpdated"], [_replaceScreenShareDecs, 18, "replaceScreenShare"], [_handleRemoteVideoStatsUpdatedDecs, 18, "_handleRemoteVideoStatsUpdated"], [_decorator.bound, 2, "_syncShareStreamState"], [_handleStreamUpdateDecs, 18, "_handleStreamUpdate"], [_decorator.bound, 2, "startRenderSharePreview"], [_decorator.bound, 2, "stopRenderSharePreview"], [_syncScreenShareStreamInfosDecs, 18, "_syncScreenShareStreamInfos"], [_releaseDecs, 18, "release"], [_startShareScreenDecs, 18, "startShareScreen"], [_decorator.bound, 2, "stopShareScreen"], [_decorator.bound, 2, "stopShareScreenByExitRoom"], [_updateShareAudioPrivilegeDecs, 18, "_updateShareAudioPrivilege"], [_handleShareStopWithAudioDecs, 18, "_handleShareStopWithAudio"], [_handleShareStartWithAudioDecs, 18, "_handleShareStartWithAudio"], [_decorator.bound, 2, "toggleScreenshareWithAudio"], [_decorator.bound, 2, "_getExcludeWindows"], [_decorator.bound, 2, "removeScreenStream"], [_decorator.bound, 2, "_stopScreenTrack"], [_decorator.bound, 2, "_cleanShareWithAudioDataSource"]], []).e, 1);
830
849
  _initProto = _applyDecs$e[0];
831
850
  (0, _base.registerDependency)('screenShareProvider');
@@ -1,6 +1,9 @@
1
1
  import { FcrScreenSharingState, FcrSharingControl, FcrWhiteboardState } from 'fcr-core/lib/room-control/sharing-control/type';
2
2
  import { FcrScreenStreamCreateConfig } from 'fcr-core/lib/room-control/stream-control/type';
3
+ import { FcrUserControl } from 'fcr-core/lib/type';
3
4
  import { FcrUIScreenShareSharedDataSource } from '../shared-data-source/screen-share-data';
5
+ import { FcrUISharedWhiteboardDataSource } from '../shared-data-source/whiteboard-data';
6
+ import { FcrUIWhiteboardProvider } from './whiteboard-provider';
4
7
  export interface FcrUISharingProvider {
5
8
  get screenSharingOwnerId(): string;
6
9
  get whiteboardOwnerId(): string;
@@ -17,6 +20,9 @@ export interface FcrUISharingProvider {
17
20
  export declare class FcrUISharingProviderImpl implements FcrUISharingProvider {
18
21
  private _sharingControl;
19
22
  private _sharedScreenShareSharedDataSource;
23
+ private _sharedWhiteboardDataSource;
24
+ private _whiteboardProvider;
25
+ private _userControl;
20
26
  protected logger: import("agora-foundation/lib/logger").Logger;
21
27
  private _observer;
22
28
  accessor screenSharingOwnerId: string;
@@ -24,7 +30,7 @@ export declare class FcrUISharingProviderImpl implements FcrUISharingProvider {
24
30
  accessor screenSharingState: FcrScreenSharingState;
25
31
  accessor whiteboardState: FcrWhiteboardState;
26
32
  get isSeizeStream(): boolean;
27
- constructor(_sharingControl: FcrSharingControl, _sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource);
33
+ constructor(_sharingControl: FcrSharingControl, _sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource, _sharedWhiteboardDataSource: FcrUISharedWhiteboardDataSource, _whiteboardProvider: FcrUIWhiteboardProvider, _userControl: FcrUserControl);
28
34
  startScreenSharing(config: FcrScreenStreamCreateConfig): void;
29
35
  startWhiteboard(): void;
30
36
  updateScreenSharing(enableAnnotation: boolean): void;
@@ -37,7 +37,10 @@ Object.defineProperty(exports, "__esModule", {
37
37
  value: true
38
38
  });
39
39
  exports.FcrUISharingProviderImpl = void 0;
40
+ require("core-js/modules/es.array.concat.js");
40
41
  require("core-js/modules/es.array.iterator.js");
42
+ require("core-js/modules/es.date.to-json.js");
43
+ require("core-js/modules/es.json.stringify.js");
41
44
  require("core-js/modules/es.object.to-string.js");
42
45
  require("core-js/modules/es.string.iterator.js");
43
46
  require("core-js/modules/es.weak-map.js");
@@ -71,7 +74,7 @@ var _B = /*#__PURE__*/new WeakMap();
71
74
  var _C = /*#__PURE__*/new WeakMap();
72
75
  var _D = /*#__PURE__*/new WeakMap();
73
76
  var FcrUISharingProviderImpl = exports.FcrUISharingProviderImpl = /*#__PURE__*/function () {
74
- function FcrUISharingProviderImpl(_sharingControl, _sharedScreenShareSharedDataSource) {
77
+ function FcrUISharingProviderImpl(_sharingControl, _sharedScreenShareSharedDataSource, _sharedWhiteboardDataSource, _whiteboardProvider, _userControl) {
75
78
  var _this = this;
76
79
  (0, _classCallCheck2["default"])(this, FcrUISharingProviderImpl);
77
80
  (0, _defineProperty2["default"])(this, "logger", (_initProto(this), (0, _logger.createLogger)({
@@ -86,10 +89,30 @@ var FcrUISharingProviderImpl = exports.FcrUISharingProviderImpl = /*#__PURE__*/f
86
89
  }
87
90
  },
88
91
  onWhiteboardStarted: function onWhiteboardStarted(ownerId, operatorUser) {
92
+ if (_this.whiteboardState === _type.FcrWhiteboardState.START) {
93
+ return;
94
+ }
89
95
  _this.whiteboardOwnerId = ownerId;
90
96
  _this.whiteboardState = _type.FcrWhiteboardState.START;
97
+ var owner = _this._userControl.getUser(ownerId);
98
+ if (owner) {
99
+ _this._sharedWhiteboardDataSource.setSharingUser(owner);
100
+ }
101
+ var background = _this._whiteboardProvider.backgroundColor;
102
+ if (background) {
103
+ _this._sharedWhiteboardDataSource.setBackgroundColor(background);
104
+ }
105
+ _this.logger.info("[sharing-provider]: onWhiteboardStarted ".concat(ownerId, ", ").concat(JSON.stringify(operatorUser), ", backgroundColor: ").concat(_this._whiteboardProvider.backgroundColor));
91
106
  },
92
107
  onWhiteboardEnded: function onWhiteboardEnded(reason, operatorUser) {
108
+ if (_this.whiteboardState === _type.FcrWhiteboardState.END) {
109
+ return;
110
+ }
111
+ _this._sharedWhiteboardDataSource.setJoinSuccess(false);
112
+ _this._sharedWhiteboardDataSource.setShowLoading(true);
113
+ _this._sharedWhiteboardDataSource.inActive();
114
+ _this._sharedWhiteboardDataSource.setSharingUser(undefined);
115
+ _this.logger.info("[sharing-provider]: onWhiteboardEnded, joinSuccess: ".concat(_this._sharedWhiteboardDataSource.joinSuccess));
93
116
  _this.whiteboardState = _type.FcrWhiteboardState.END;
94
117
  }
95
118
  });
@@ -99,9 +122,22 @@ var FcrUISharingProviderImpl = exports.FcrUISharingProviderImpl = /*#__PURE__*/f
99
122
  _classPrivateFieldInitSpec(this, _D, _init_whiteboardState(this, _type.FcrWhiteboardState.END));
100
123
  this._sharingControl = _sharingControl;
101
124
  this._sharedScreenShareSharedDataSource = _sharedScreenShareSharedDataSource;
102
- // @ts-ignore
103
- // this._sharingControl.getToken();
125
+ this._sharedWhiteboardDataSource = _sharedWhiteboardDataSource;
126
+ this._whiteboardProvider = _whiteboardProvider;
127
+ this._userControl = _userControl;
104
128
  this._sharingControl.addObserver(this._observer);
129
+ this.screenSharingState = this._sharingControl.getScreenSharingState();
130
+ this.whiteboardState = this._sharingControl.getWhiteboardState();
131
+ if (this.screenSharingState !== _type.FcrScreenSharingState.END) {
132
+ var _this$_sharedScreenSh;
133
+ this.screenSharingOwnerId = ((_this$_sharedScreenSh = this._sharedScreenShareSharedDataSource.screenSharingOwner) === null || _this$_sharedScreenSh === void 0 ? void 0 : _this$_sharedScreenSh.userId) || '';
134
+ }
135
+ if (this.whiteboardState === _type.FcrWhiteboardState.START) {
136
+ this.whiteboardOwnerId = this._sharingControl.getBoardControl().getOwnerId();
137
+ }
138
+
139
+ // @ts-ignore
140
+ window._sharingProvider = this;
105
141
  }
106
142
  return (0, _createClass2["default"])(FcrUISharingProviderImpl, [{
107
143
  key: "screenSharingOwnerId",
@@ -0,0 +1,24 @@
1
+ import { FcrPrivilegedWhiteboardControl } from 'fcr-core/lib/room-control/whiteboard-control-v2/whiteboard-control/type';
2
+ import { FcrConnectionState, FcrUserControl, FcrUserInfo } from 'fcr-core/lib/type';
3
+ import { FcrUISharedWhiteboardDataSource } from '../shared-data-source/whiteboard-data';
4
+ export interface FcrUIWhiteboardProvider {
5
+ get backgroundColor(): string;
6
+ get isActive(): boolean;
7
+ get connectionState(): FcrConnectionState;
8
+ get ownerUser(): FcrUserInfo | undefined;
9
+ setBackground: (color: string) => void;
10
+ }
11
+ export declare class FcrUIWhiteboardProviderImpl implements FcrUIWhiteboardProvider {
12
+ private _whiteboardControl;
13
+ private _sharedWhiteboardDataSource;
14
+ private _userControl;
15
+ protected logger: import("agora-foundation/lib/logger").Logger;
16
+ private _ownerUser;
17
+ private _whiteboardObserver;
18
+ get backgroundColor(): string;
19
+ get isActive(): boolean;
20
+ get connectionState(): FcrConnectionState;
21
+ get ownerUser(): FcrUserInfo | undefined;
22
+ constructor(_whiteboardControl: FcrPrivilegedWhiteboardControl, _sharedWhiteboardDataSource: FcrUISharedWhiteboardDataSource, _userControl: FcrUserControl);
23
+ setBackground(color: string): void;
24
+ }