fcr-ui-scene 3.7.2 → 3.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/lib/creator.js +23 -44
  2. package/lib/electron/app.js +7 -0
  3. package/lib/electron/injections.d.ts +1 -1
  4. package/lib/electron/injections.js +5 -3
  5. package/lib/electron/main.js +3 -1
  6. package/lib/fragments/annotation/index.d.ts +1 -0
  7. package/lib/fragments/annotation/index.js +13 -7
  8. package/lib/fragments/annotation/store.d.ts +8 -4
  9. package/lib/fragments/annotation/store.js +351 -267
  10. package/lib/fragments/annotation/toolbar/components/color-tool/index.js +4 -0
  11. package/lib/fragments/annotation/toolbar/components/graphic-tool/index.js +4 -0
  12. package/lib/fragments/annotation/toolbar/components/item/item.d.ts +2 -0
  13. package/lib/fragments/annotation/toolbar/components/item/item.js +2 -4
  14. package/lib/fragments/annotation/toolbar/components/item/style.css +4 -2
  15. package/lib/fragments/annotation/toolbar/components/pen-tool/index.js +4 -0
  16. package/lib/fragments/annotation/utils.d.ts +1 -0
  17. package/lib/fragments/annotation/utils.js +27 -0
  18. package/lib/fragments/annotation/view.js +1 -6
  19. package/lib/fragments/base.js +5 -3
  20. package/lib/fragments/whiteboard/cursor.css +77 -0
  21. package/lib/fragments/whiteboard/index.d.ts +11 -0
  22. package/lib/fragments/whiteboard/index.js +91 -0
  23. package/lib/fragments/whiteboard/store.d.ts +31 -0
  24. package/lib/fragments/whiteboard/store.js +475 -0
  25. package/lib/fragments/whiteboard/style.css +4 -0
  26. package/lib/fragments/whiteboard/view.d.ts +4 -0
  27. package/lib/fragments/whiteboard/view.js +31 -0
  28. package/lib/index.d.ts +1 -0
  29. package/lib/index.js +1 -0
  30. package/lib/modules/action-bar/components/apps/index.js +15 -5
  31. package/lib/modules/action-bar/components/leave/index.js +4 -11
  32. package/lib/modules/action-bar/view.d.ts +1 -0
  33. package/lib/modules/action-bar/view.js +3 -2
  34. package/lib/modules/annotation/annotation-toolbar-store.d.ts +4 -11
  35. package/lib/modules/annotation/annotation-toolbar-store.js +46 -88
  36. package/lib/modules/annotation/index.d.ts +2 -0
  37. package/lib/modules/annotation/index.js +2 -2
  38. package/lib/modules/annotation/store.d.ts +11 -49
  39. package/lib/modules/annotation/store.js +135 -418
  40. package/lib/modules/annotation/view.js +3 -6
  41. package/lib/modules/components/control-bar/components/loading/index.css +76 -0
  42. package/lib/modules/components/control-bar/components/loading/index.d.ts +8 -0
  43. package/lib/modules/components/control-bar/components/loading/index.js +64 -0
  44. package/lib/modules/components/control-bar/components/loading/loading.png +0 -0
  45. package/lib/modules/components/control-bar/components/progress/index.d.ts +5 -0
  46. package/lib/modules/components/control-bar/components/progress/index.js +43 -0
  47. package/lib/modules/components/control-bar/components/progress/style.css +51 -0
  48. package/lib/modules/components/control-bar/components/switch-theme/index.css +99 -0
  49. package/lib/modules/components/control-bar/components/switch-theme/index.d.ts +9 -0
  50. package/lib/modules/components/control-bar/components/switch-theme/index.js +94 -0
  51. package/lib/modules/components/control-bar/components/switch-theme/item.d.ts +9 -0
  52. package/lib/modules/components/control-bar/components/switch-theme/item.js +54 -0
  53. package/lib/modules/components/control-bar/components/switch-theme/libs.d.ts +4 -0
  54. package/lib/modules/components/control-bar/components/switch-theme/libs.js +31 -0
  55. package/lib/modules/components/control-bar/index.css +87 -0
  56. package/lib/modules/components/control-bar/index.d.ts +20 -0
  57. package/lib/modules/components/control-bar/index.js +276 -0
  58. package/lib/modules/components/leave-meeting/components/index.css +0 -9
  59. package/lib/modules/components/leave-meeting/index.d.ts +2 -1
  60. package/lib/modules/components/leave-meeting/index.js +15 -7
  61. package/lib/modules/components/leave-meeting/portal.d.ts +6 -0
  62. package/lib/modules/components/leave-meeting/portal.js +29 -0
  63. package/lib/modules/components/leave-meeting/style.css +9 -0
  64. package/lib/modules/components/member-window/components/member-actions/components/more-actions.d.ts +5 -2
  65. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +19 -9
  66. package/lib/modules/components/member-window/components/member-actions/components/share-status.js +4 -4
  67. package/lib/modules/components/member-window/components/member-actions/index.js +13 -6
  68. package/lib/modules/components/member-window/components/member-actions/provider.d.ts +1 -0
  69. package/lib/modules/components/member-window/components/member-actions/provider.js +4 -3
  70. package/lib/modules/components/member-window/components/member-actions/store.d.ts +2 -1
  71. package/lib/modules/components/member-window/components/member-actions/store.js +5 -1
  72. package/lib/modules/components/member-window/index.css +4 -0
  73. package/lib/modules/components/member-window/types.d.ts +6 -2
  74. package/lib/modules/components/toolbar/components/capture-tool/index.d.ts +9 -0
  75. package/lib/modules/components/toolbar/components/capture-tool/index.js +68 -0
  76. package/lib/modules/components/toolbar/components/clean-tool/index.d.ts +11 -0
  77. package/lib/modules/components/toolbar/components/clean-tool/index.js +71 -0
  78. package/lib/modules/components/toolbar/components/color-tool/color-panel/index.d.ts +11 -0
  79. package/lib/modules/components/toolbar/components/color-tool/color-panel/index.js +77 -0
  80. package/lib/modules/components/toolbar/components/color-tool/index.d.ts +14 -0
  81. package/lib/modules/components/toolbar/components/color-tool/index.js +66 -0
  82. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/index.d.ts +11 -0
  83. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/index.js +64 -0
  84. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +12 -0
  85. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/libs.js +65 -0
  86. package/lib/modules/components/toolbar/components/graphic-tool/index.d.ts +15 -0
  87. package/lib/modules/components/toolbar/components/graphic-tool/index.js +82 -0
  88. package/lib/modules/components/toolbar/components/group-tool/index.d.ts +5 -0
  89. package/lib/modules/components/toolbar/components/group-tool/index.js +43 -0
  90. package/lib/modules/components/toolbar/components/icons/fold-icon.d.ts +2 -0
  91. package/lib/modules/components/toolbar/components/icons/fold-icon.js +41 -0
  92. package/lib/modules/components/toolbar/components/icons/move-icon.d.ts +1 -0
  93. package/lib/modules/components/toolbar/components/icons/move-icon.js +66 -0
  94. package/lib/modules/components/toolbar/components/item/index.d.ts +25 -0
  95. package/lib/modules/components/toolbar/components/item/index.js +165 -0
  96. package/lib/modules/components/toolbar/components/item/style.css +94 -0
  97. package/lib/modules/components/toolbar/components/multiple-color-tool/index.d.ts +12 -0
  98. package/lib/modules/components/toolbar/components/multiple-color-tool/index.js +75 -0
  99. package/lib/modules/components/toolbar/components/panel/index.d.ts +9 -0
  100. package/lib/modules/components/toolbar/components/panel/index.js +28 -0
  101. package/lib/modules/components/toolbar/components/panel/style.css +86 -0
  102. package/lib/modules/components/toolbar/components/pen-tool/index.d.ts +13 -0
  103. package/lib/modules/components/toolbar/components/pen-tool/index.js +62 -0
  104. package/lib/modules/components/toolbar/components/pen-tool/pen-panel/index.d.ts +8 -0
  105. package/lib/modules/components/toolbar/components/pen-tool/pen-panel/index.js +39 -0
  106. package/lib/modules/components/toolbar/components/save-draft/index.d.ts +7 -0
  107. package/lib/modules/components/toolbar/components/save-draft/index.js +59 -0
  108. package/lib/modules/components/toolbar/components/vertical-frame/index.d.ts +8 -0
  109. package/lib/modules/components/toolbar/components/vertical-frame/index.js +179 -0
  110. package/lib/modules/components/toolbar/hooks/use-resize-visible.d.ts +4 -0
  111. package/lib/modules/components/toolbar/hooks/use-resize-visible.js +59 -0
  112. package/lib/modules/components/toolbar/index.d.ts +29 -0
  113. package/lib/modules/components/toolbar/index.js +258 -0
  114. package/lib/modules/components/toolbar/style.css +85 -0
  115. package/lib/modules/components/toolbar/types.d.ts +13 -0
  116. package/lib/modules/components/toolbar/types.js +6 -0
  117. package/lib/modules/control-bar/components/more-actions/index.js +0 -6
  118. package/lib/modules/control-bar/components/share-state-nav/index.js +3 -2
  119. package/lib/modules/control-bar/index.js +2 -1
  120. package/lib/modules/control-bar/store.d.ts +7 -6
  121. package/lib/modules/control-bar/store.js +28 -21
  122. package/lib/modules/control-bar/view.js +7 -55
  123. package/lib/modules/dialog/dialogs/control-bar/index.d.ts +1 -0
  124. package/lib/modules/dialog/dialogs/control-bar/index.js +17 -3
  125. package/lib/modules/dialog/dialogs/participant/components/title.js +1 -1
  126. package/lib/modules/dialog/dialogs/sub-window/index.d.ts +2 -0
  127. package/lib/modules/dialog/dialogs/sub-window/index.js +98 -0
  128. package/lib/modules/dialog/dialogs/video-window/index.d.ts +1 -0
  129. package/lib/modules/dialog/dialogs/video-window/index.js +3 -2
  130. package/lib/modules/dialog/dialogs/whiteboard/index.js +0 -1
  131. package/lib/modules/dialog/hooks/use-popover-watcher.js +1 -2
  132. package/lib/modules/dialog/hooks/useElectron.d.ts +13 -0
  133. package/lib/modules/dialog/hooks/useElectron.js +62 -12
  134. package/lib/modules/dialog/index.d.ts +6 -3
  135. package/lib/modules/dialog/index.js +5 -3
  136. package/lib/modules/dialog/store.d.ts +21 -8
  137. package/lib/modules/dialog/store.js +79 -11
  138. package/lib/modules/dialog/type.d.ts +8 -0
  139. package/lib/modules/event-confirm/index.css +5 -2
  140. package/lib/modules/event-confirm/store.js +6 -7
  141. package/lib/modules/event-confirm/view.js +1 -1
  142. package/lib/modules/event-sound/index.d.ts +1 -0
  143. package/lib/modules/event-sound/index.js +11 -24
  144. package/lib/modules/invite/components/pstn-invite.js +0 -1
  145. package/lib/modules/layout/components/CommonVideoRenderer.js +21 -21
  146. package/lib/modules/layout/components/who-is-speaking.js +3 -6
  147. package/lib/modules/layout/index.d.ts +3 -1
  148. package/lib/modules/layout/index.js +2 -1
  149. package/lib/modules/layout/store.d.ts +7 -59
  150. package/lib/modules/layout/store.js +126 -24
  151. package/lib/modules/layout/type.d.ts +55 -0
  152. package/lib/modules/participant/components/can-moveable/index.js +0 -1
  153. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.js +4 -2
  154. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.js +14 -2
  155. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.d.ts +1 -1
  156. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.js +3 -2
  157. package/lib/modules/participant/components/participants/components/participants/index.js +3 -2
  158. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.d.ts +1 -0
  159. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.js +3 -1
  160. package/lib/modules/participant/components/participants/components/render-user/components/user-action/index.js +4 -2
  161. package/lib/modules/participant/components/participants/components/render-user/index.d.ts +4 -2
  162. package/lib/modules/participant/components/participants/components/render-user/index.js +5 -3
  163. package/lib/modules/participant/components/participants/index.js +5 -2
  164. package/lib/modules/participant/components/participants/types.d.ts +3 -0
  165. package/lib/modules/participant/index.d.ts +2 -0
  166. package/lib/modules/participant/index.js +2 -1
  167. package/lib/modules/participant/store.d.ts +5 -1
  168. package/lib/modules/participant/store.js +8 -1
  169. package/lib/modules/secondary-window/index.d.ts +49 -0
  170. package/lib/modules/secondary-window/index.js +108 -0
  171. package/lib/modules/secondary-window/store.d.ts +76 -0
  172. package/lib/modules/secondary-window/store.js +407 -0
  173. package/lib/modules/secondary-window/type.d.ts +106 -0
  174. package/lib/modules/secondary-window/type.js +35 -0
  175. package/lib/modules/secondary-window/view.d.ts +6 -0
  176. package/lib/modules/secondary-window/view.js +257 -0
  177. package/lib/modules/setting/general-settings/general-settings.js +9 -0
  178. package/lib/modules/setting/state/index.js +0 -10
  179. package/lib/modules/setting/store.d.ts +1 -0
  180. package/lib/modules/setting/store.js +6 -3
  181. package/lib/modules/share-screen/components/control-bar/index.d.ts +14 -1
  182. package/lib/modules/share-screen/components/control-bar/index.js +17 -12
  183. package/lib/modules/share-screen/components/selection/index.js +10 -15
  184. package/lib/modules/share-screen/index.d.ts +4 -1
  185. package/lib/modules/share-screen/index.js +6 -3
  186. package/lib/modules/share-screen/store.d.ts +9 -9
  187. package/lib/modules/share-screen/store.js +39 -64
  188. package/lib/modules/state-bar/index.d.ts +2 -0
  189. package/lib/modules/state-bar/index.js +2 -1
  190. package/lib/modules/state-bar/live-streaming-state.js +0 -1
  191. package/lib/modules/state-bar/store.d.ts +5 -2
  192. package/lib/modules/state-bar/store.js +14 -7
  193. package/lib/modules/state-bar/view.js +3 -3
  194. package/lib/modules/video-window/components/members/index.js +7 -12
  195. package/lib/modules/video-window/store.d.ts +1 -0
  196. package/lib/modules/video-window/store.js +5 -0
  197. package/lib/modules/whiteboard/components/toolbar/store.d.ts +2 -2
  198. package/lib/modules/whiteboard/index.d.ts +10 -13
  199. package/lib/modules/whiteboard/index.js +12 -11
  200. package/lib/providers/ability-provider.js +2 -0
  201. package/lib/providers/device-provider.d.ts +6 -3
  202. package/lib/providers/device-provider.js +331 -333
  203. package/lib/providers/multi-display-provider.d.ts +85 -0
  204. package/lib/providers/multi-display-provider.js +581 -0
  205. package/lib/providers/privilege-provider.js +1 -7
  206. package/lib/providers/room-provider.js +7 -1
  207. package/lib/providers/screen-share-provider.d.ts +3 -1
  208. package/lib/providers/screen-share-provider.js +39 -40
  209. package/lib/providers/sharing-provider.d.ts +7 -1
  210. package/lib/providers/sharing-provider.js +32 -3
  211. package/lib/providers/whiteboard-provider.d.ts +24 -0
  212. package/lib/providers/whiteboard-provider.js +127 -0
  213. package/lib/runtime.d.ts +1 -0
  214. package/lib/scenes/main-scene.d.ts +6 -0
  215. package/lib/scenes/main-scene.js +38 -2
  216. package/lib/scenes/waiting-scene.d.ts +0 -2
  217. package/lib/scenes/waiting-scene.js +0 -6
  218. package/lib/shared-data-source/member-data.d.ts +2 -2
  219. package/lib/shared-data-source/screen-share-data.d.ts +6 -0
  220. package/lib/shared-data-source/screen-share-data.js +5 -0
  221. package/lib/shared-data-source/setting.js +2 -1
  222. package/lib/shared-data-source/video-window.js +1 -2
  223. package/lib/shared-data-source/whiteboard-data.d.ts +68 -0
  224. package/lib/shared-data-source/whiteboard-data.js +347 -0
  225. package/lib/translations/enUS.d.ts +1 -0
  226. package/lib/translations/enUS.js +2 -1
  227. package/lib/translations/zhCN.d.ts +1 -0
  228. package/lib/translations/zhCN.js +2 -1
  229. package/lib/ui-scene.d.ts +0 -1
  230. package/lib/ui-scene.js +0 -3
  231. package/lib/utilities/constant.d.ts +4 -2
  232. package/lib/utilities/constant.js +3 -1
  233. package/lib/utilities/debug.d.ts +4 -0
  234. package/lib/utilities/debug.js +40 -0
  235. package/lib/utilities/dialog-utils.js +26 -4
  236. package/lib/utilities/meeting-detail.js +4 -1
  237. package/lib/utilities/renderer-event.d.ts +4 -6
  238. package/lib/utilities/renderer-event.js +23 -43
  239. package/lib/utilities/renderer.d.ts +1 -1
  240. package/lib/utilities/renderer.js +44 -10
  241. package/lib/utilities/shared-storage.d.ts +18 -0
  242. package/lib/utilities/shared-storage.js +63 -0
  243. package/lib/utilities/tools.js +2 -1
  244. package/package.json +5 -6
  245. package/lib/electron/tools.d.ts +0 -5
  246. package/lib/electron/tools.js +0 -62
@@ -45,9 +45,7 @@ require("core-js/modules/es.array.includes.js");
45
45
  require("core-js/modules/es.array.iterator.js");
46
46
  require("core-js/modules/es.array.push.js");
47
47
  require("core-js/modules/es.array.some.js");
48
- require("core-js/modules/es.date.to-json.js");
49
48
  require("core-js/modules/es.function.bind.js");
50
- require("core-js/modules/es.json.stringify.js");
51
49
  require("core-js/modules/es.object.keys.js");
52
50
  require("core-js/modules/es.object.to-string.js");
53
51
  require("core-js/modules/es.string.includes.js");
@@ -406,7 +404,6 @@ var FcrUIPrivilegeProviderImpl = exports.FcrUIPrivilegeProviderImpl = /*#__PURE_
406
404
  });
407
405
  var shareState = info === null || info === void 0 ? void 0 : info.payload;
408
406
  var annotationStartSecurityInfoState = (shareState === null || shareState === void 0 ? void 0 : shareState.start) === _enums.FcrSharePermissionState.ON;
409
- _this.logger.info("[Annotation] hasAnnotationStartPermission, ".concat(annotationStartSecurityInfoState));
410
407
  return annotationStartSecurityInfoState;
411
408
  });
412
409
  (0, _defineProperty2["default"])(this, "hasAnnotationAllowWritePermission", function () {
@@ -710,9 +707,6 @@ var FcrUIPrivilegeProviderImpl = exports.FcrUIPrivilegeProviderImpl = /*#__PURE_
710
707
  _this._userControl.removeObserver(userObserver);
711
708
  _this._privilegeControl.removeObserver(privilegeObserver);
712
709
  });
713
-
714
- //@ts-ignore
715
- window.securityStore = this;
716
710
  }
717
711
  return (0, _createClass2["default"])(FcrUIPrivilegeProviderImpl, [{
718
712
  key: "canOperateWatermark",
@@ -774,7 +768,7 @@ var FcrUIPrivilegeProviderImpl = exports.FcrUIPrivilegeProviderImpl = /*#__PURE_
774
768
  }, {
775
769
  key: "printAllPermissions",
776
770
  value: function printAllPermissions() {
777
- this.logger.debug(JSON.stringify((0, _mobx.toJS)(this.permissionInfos)));
771
+ this.logger.debug((0, _imports.jsonstring)((0, _mobx.toJS)(this.permissionInfos)));
778
772
  }
779
773
  }, {
780
774
  key: "release",
@@ -556,6 +556,9 @@ var FcrUIMainRoomControlProviderImpl = exports.FcrUIMainRoomControlProviderImpl
556
556
  this._privilegeControl = _mainRoomControl.getPrivilegeControl();
557
557
  this._userControl = _mainRoomControl.getUserControl();
558
558
  this._privilegeProvider = new _privilegeProvider.FcrUIPrivilegeProviderImpl(_mainRoomControl.getPrivilegeControl(), _mainRoomControl.getUserControl(), _mainRoomControl.getStreamControl(), eventProvider);
559
+
560
+ // @ts-ignore
561
+ window._mainRoomPrivilegeProvider = this._privilegeProvider;
559
562
  this._privilegeObserver = {
560
563
  onSecurityInfoUpdated: this._handleSecurityUpdated.bind(this)
561
564
  };
@@ -572,8 +575,8 @@ var FcrUIMainRoomControlProviderImpl = exports.FcrUIMainRoomControlProviderImpl
572
575
  },
573
576
  onUserInfoUpdated: function onUserInfoUpdated(roomId, event) {
574
577
  if (event.reason === _type4.AgoraRteUserUpdatedReason.ROLE) {
575
- _this2._handleUserRoleChangeToast(event.modifiedUser);
576
578
  _this2._userMap.set(event.modifiedUser.userId, event.modifiedUser);
579
+ _this2._handleUserRoleChangeToast(event.modifiedUser);
577
580
  }
578
581
  }
579
582
  };
@@ -884,6 +887,9 @@ var FcrUIWaitingRoomControlProviderImpl = exports.FcrUIWaitingRoomControlProvide
884
887
  value: function _setWaitingRoomControl(roomControl) {
885
888
  this._waitingRoomControl = roomControl;
886
889
  this._privilegeProvider = new _privilegeProvider.FcrUIPrivilegeProviderImpl(roomControl.getPrivilegeControl(), roomControl.getUserControl(), roomControl.getStreamControl(), this._eventProvider);
890
+
891
+ // @ts-ignore
892
+ window._waitingRoomPrivilegeProvider = this._privilegeProvider;
887
893
  }
888
894
  }]);
889
895
  }();
@@ -9,6 +9,7 @@ import { FcrUIEventProvider } from './event-provider';
9
9
  import { FcrUIMemberSharedDataSourceImpl } from '../shared-data-source/member-data';
10
10
  import { CurrentShareBounds } from '../modules/control-bar/types';
11
11
  import { FcrUserInfo } from 'fcr-core/lib/type';
12
+ import { FcrUIPrivilegeProvider } from './privilege-provider';
12
13
  export interface FcrUIScreenShareObserver {
13
14
  /**
14
15
  * 本地屏幕开启采集
@@ -169,6 +170,7 @@ export declare class FcrUIScreenShareProviderImpl implements FcrUIScreenSharePro
169
170
  private _sharingProvider;
170
171
  private _sharedScreenShareSharedDataSource;
171
172
  private _sharedMemberDataSource;
173
+ private _privilegeProvider;
172
174
  protected logger: import("agora-foundation/lib/logger").Logger;
173
175
  shareLock: boolean;
174
176
  private _sharingControl?;
@@ -192,7 +194,7 @@ export declare class FcrUIScreenShareProviderImpl implements FcrUIScreenSharePro
192
194
  height: number;
193
195
  };
194
196
  get screenShareScenarioType(): FcrScreenScenarioType;
195
- constructor(_deviceProvider: FcrUIDeviceProvider, _eventProvider: FcrUIEventProvider, _roomProvider: FcrUIRoomProvider, _sharingProvider: FcrUISharingProvider, _sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource, _sharedMemberDataSource: FcrUIMemberSharedDataSourceImpl);
197
+ constructor(_deviceProvider: FcrUIDeviceProvider, _eventProvider: FcrUIEventProvider, _roomProvider: FcrUIRoomProvider, _sharingProvider: FcrUISharingProvider, _sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource, _sharedMemberDataSource: FcrUIMemberSharedDataSourceImpl, _privilegeProvider: FcrUIPrivilegeProvider);
196
198
  setSharingInReplace(isInReplace: boolean): void;
197
199
  zoomOut(): void;
198
200
  zoomIn(): void;
@@ -41,6 +41,7 @@ exports.FcrUIScreenShareProviderImpl = void 0;
41
41
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
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"));
@@ -83,7 +86,7 @@ function _setFunctionName(e, t, n) { "symbol" == _typeof(t) && (t = (t = t.descr
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
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], _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");
85
88
  var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__PURE__*/function () {
86
- function FcrUIScreenShareProviderImpl(_deviceProvider, _eventProvider, _roomProvider, _sharingProvider, _sharedScreenShareSharedDataSource, _sharedMemberDataSource) {
89
+ function FcrUIScreenShareProviderImpl(_deviceProvider, _eventProvider, _roomProvider, _sharingProvider, _sharedScreenShareSharedDataSource, _sharedMemberDataSource, _privilegeProvider) {
87
90
  var _this = this,
88
91
  _this$_roomProvider$c,
89
92
  _this$_roomProvider$c2,
@@ -126,6 +129,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
126
129
  this._sharingProvider = _sharingProvider;
127
130
  this._sharedScreenShareSharedDataSource = _sharedScreenShareSharedDataSource;
128
131
  this._sharedMemberDataSource = _sharedMemberDataSource;
132
+ this._privilegeProvider = _privilegeProvider;
129
133
  this._sharingControl = (_this$_roomProvider$c = this._roomProvider.currentRoomControl) === null || _this$_roomProvider$c === void 0 ? void 0 : _this$_roomProvider$c.getSharingControl();
130
134
  this._streamControl = (_this$_roomProvider$c2 = this._roomProvider.currentRoomControl) === null || _this$_roomProvider$c2 === void 0 ? void 0 : _this$_roomProvider$c2.getStreamControl();
131
135
  (_this$_streamControl = this._streamControl) === null || _this$_streamControl === void 0 || _this$_streamControl.addObserver(this._streamObserver);
@@ -259,17 +263,28 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
259
263
  case 0:
260
264
  this._sharedScreenShareSharedDataSource.setLocalUserScreenSharingState(state);
261
265
  if (!(state === _fcrCore.FcrMediaSourceState.OPEN)) {
262
- _context.next = 2;
266
+ _context.next = 3;
263
267
  break;
264
268
  }
265
- _context.next = 1;
266
- return this.createScreenShareWithSelectionId(this.currentShareId, this.currentSelectionBounds);
269
+ if (this._privilegeProvider.hasStartScreenSharePermission()) {
270
+ _context.next = 1;
271
+ break;
272
+ }
273
+ this._eventProvider.sendEvent(_constant.FcrUIAction.SHOW_TOAST, {
274
+ type: 'error',
275
+ message: (0, _i18n.transI18n)('fmt_screenshare_cohost_can_not_share_remind')
276
+ });
277
+ this.stop();
278
+ return _context.abrupt("return");
267
279
  case 1:
280
+ _context.next = 2;
281
+ return this.createScreenShareWithSelectionId(this.currentShareId, this.currentSelectionBounds);
282
+ case 2:
268
283
  streamId = _context.sent;
269
284
  if (streamId) {
270
285
  this._sharedScreenShareSharedDataSource.setCurrentShareStreamId(streamId);
271
286
  }
272
- case 2:
287
+ case 3:
273
288
  if (state === _fcrCore.FcrMediaSourceState.CLOSE) {
274
289
  (_this$screenTrack = this.screenTrack) === null || _this$screenTrack === void 0 || _this$screenTrack.removeObserver(this._screenCaptureObserver);
275
290
  this._isReplaceScreen ? this._stopScreenTrack() : this.stop();
@@ -280,7 +295,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
280
295
  this.setShareLock(false);
281
296
  this._isReplaceScreen = false;
282
297
  }
283
- case 3:
298
+ case 4:
284
299
  case "end":
285
300
  return _context.stop();
286
301
  }
@@ -493,7 +508,8 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
493
508
  }, {
494
509
  key: "_syncShareStreamState",
495
510
  value: function _syncShareStreamState() {
496
- if (this._sharedScreenShareSharedDataSource.localUserScreenSharingState !== _fcrCore.FcrMediaSourceState.OPEN) {
511
+ var _this$_sharedScreenSh;
512
+ 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
513
  this._hasStop = false;
498
514
  this.stop();
499
515
  }
@@ -665,7 +681,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
665
681
  this.toggleScreenshareWithAudio(withAudio);
666
682
  screenTrack = this._deviceProvider.getScreenTrack(id);
667
683
  this.setScreenTrack(screenTrack);
668
- this.logger.info('screen-share-provider: start share screen with track start');
684
+ this.logger.info("[screen-share-provider]: start share screen with track start, excludeWindows: ".concat(JSON.stringify(excludeWindows)));
669
685
  (_this$screenTrack3 = this.screenTrack) === null || _this$screenTrack3 === void 0 || _this$screenTrack3.addObserver(this._screenCaptureObserver);
670
686
  (_this$screenTrack4 = this.screenTrack) === null || _this$screenTrack4 === void 0 || _this$screenTrack4.start(type, {
671
687
  withAudio: withAudio,
@@ -742,46 +758,29 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
742
758
  key: "_getExcludeWindows",
743
759
  value: function () {
744
760
  var _getExcludeWindows2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
745
- var excludeWindows;
761
+ var excludeWindows, windowNames;
746
762
  return _regenerator["default"].wrap(function (_context5) {
747
763
  while (1) switch (_context5.prev = _context5.next) {
748
764
  case 0:
749
765
  excludeWindows = [];
766
+ windowNames = [];
750
767
  _context5.next = 1;
751
768
  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;
769
+ var windowsIds = (0, _rendererEvent.getMediaSourcesIdByTitle)(['Control Bar', 'Video Window', 'Annotation', 'Annotation tool bar']);
770
+ windowsIds === null || windowsIds === void 0 || windowsIds.forEach(function (windowInfo) {
771
+ var windowName = windowInfo.windowName,
772
+ windowId = windowInfo.windowId;
773
+ if (windowId && !excludeWindows.includes(windowId)) {
774
+ excludeWindows.push(windowId);
775
+ }
776
+ if (windowName && !windowNames.includes(windowName)) {
777
+ windowNames.push(windowName);
778
+ }
779
+ });
780
+ return windowNames.includes('Control Bar') && windowNames.includes('Video Window');
782
781
  }, 'control bar is open');
783
782
  case 1:
784
- this.logger.info('exclude win:', JSON.stringify(excludeWindows));
783
+ this.logger.info("[screen-share-provider] windowNames: ".concat(JSON.stringify(windowNames), ", excludeWindows: ").concat(JSON.stringify(excludeWindows)));
785
784
  return _context5.abrupt("return", excludeWindows);
786
785
  case 2:
787
786
  case "end":
@@ -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)({
@@ -88,8 +91,21 @@ var FcrUISharingProviderImpl = exports.FcrUISharingProviderImpl = /*#__PURE__*/f
88
91
  onWhiteboardStarted: function onWhiteboardStarted(ownerId, operatorUser) {
89
92
  _this.whiteboardOwnerId = ownerId;
90
93
  _this.whiteboardState = _type.FcrWhiteboardState.START;
94
+ var owner = _this._userControl.getUser(ownerId);
95
+ if (owner) {
96
+ _this._sharedWhiteboardDataSource.setSharingUser(owner);
97
+ }
98
+ var background = _this._whiteboardProvider.backgroundColor;
99
+ if (background) {
100
+ _this._sharedWhiteboardDataSource.setBackgroundColor(background);
101
+ }
102
+ _this.logger.info("[sharing-provider]: onWhiteboardStarted ".concat(ownerId, ", ").concat(JSON.stringify(operatorUser), ", backgroundColor: ").concat(_this._whiteboardProvider.backgroundColor));
91
103
  },
92
104
  onWhiteboardEnded: function onWhiteboardEnded(reason, operatorUser) {
105
+ _this._sharedWhiteboardDataSource.setJoinSuccess(false);
106
+ _this._sharedWhiteboardDataSource.setShowLoading(true);
107
+ _this._sharedWhiteboardDataSource.inActive();
108
+ _this.logger.info("[sharing-provider]: onWhiteboardEnded, joinSuccess: ".concat(_this._sharedWhiteboardDataSource.joinSuccess));
93
109
  _this.whiteboardState = _type.FcrWhiteboardState.END;
94
110
  }
95
111
  });
@@ -99,9 +115,22 @@ var FcrUISharingProviderImpl = exports.FcrUISharingProviderImpl = /*#__PURE__*/f
99
115
  _classPrivateFieldInitSpec(this, _D, _init_whiteboardState(this, _type.FcrWhiteboardState.END));
100
116
  this._sharingControl = _sharingControl;
101
117
  this._sharedScreenShareSharedDataSource = _sharedScreenShareSharedDataSource;
102
- // @ts-ignore
103
- // this._sharingControl.getToken();
118
+ this._sharedWhiteboardDataSource = _sharedWhiteboardDataSource;
119
+ this._whiteboardProvider = _whiteboardProvider;
120
+ this._userControl = _userControl;
104
121
  this._sharingControl.addObserver(this._observer);
122
+ this.screenSharingState = this._sharingControl.getScreenSharingState();
123
+ this.whiteboardState = this._sharingControl.getWhiteboardState();
124
+ if (this.screenSharingState !== _type.FcrScreenSharingState.END) {
125
+ var _this$_sharedScreenSh;
126
+ this.screenSharingOwnerId = ((_this$_sharedScreenSh = this._sharedScreenShareSharedDataSource.screenSharingOwner) === null || _this$_sharedScreenSh === void 0 ? void 0 : _this$_sharedScreenSh.userId) || '';
127
+ }
128
+ if (this.whiteboardState === _type.FcrWhiteboardState.START) {
129
+ this.whiteboardOwnerId = this._sharingControl.getBoardControl().getOwnerId();
130
+ }
131
+
132
+ // @ts-ignore
133
+ window._sharingProvider = this;
105
134
  }
106
135
  return (0, _createClass2["default"])(FcrUISharingProviderImpl, [{
107
136
  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
+ }
@@ -0,0 +1,127 @@
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
+ },
82
+ onConnectionStateUpdated: function onConnectionStateUpdated(state) {
83
+ _this.logger.info("[whiteboard-provider]: onConnectionStateUpdated ".concat(state));
84
+ }
85
+ });
86
+ this._whiteboardControl = _whiteboardControl;
87
+ this._sharedWhiteboardDataSource = _sharedWhiteboardDataSource;
88
+ this._userControl = _userControl;
89
+ _whiteboardControl.addObserver(this._whiteboardObserver);
90
+ }
91
+ return (0, _createClass2["default"])(FcrUIWhiteboardProviderImpl, [{
92
+ key: "backgroundColor",
93
+ get: function get() {
94
+ var bgColor = this._whiteboardControl.getBackgroundColor();
95
+ if (!bgColor) {
96
+ return '#ffffff';
97
+ }
98
+ return bgColor;
99
+ }
100
+ }, {
101
+ key: "isActive",
102
+ get: function get() {
103
+ var isActive = this._whiteboardControl.getActivity();
104
+ return isActive;
105
+ }
106
+ }, {
107
+ key: "connectionState",
108
+ get: function get() {
109
+ return this._whiteboardControl.getConnectionState();
110
+ }
111
+ }, {
112
+ key: "ownerUser",
113
+ get: function get() {
114
+ return this._ownerUser;
115
+ }
116
+ }, {
117
+ key: "setBackground",
118
+ value: function setBackground(color) {
119
+ var _this$_whiteboardCont;
120
+ (_this$_whiteboardCont = this._whiteboardControl) === null || _this$_whiteboardCont === void 0 || _this$_whiteboardCont.setBackgroundColor(color);
121
+ }
122
+ }]);
123
+ }();
124
+ _FcrUIWhiteboardProviderImpl = FcrUIWhiteboardProviderImpl;
125
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIWhiteboardProviderImpl, [[_decorator.bound, 2, "setBackground"]], []).e, 1);
126
+ _initProto = _applyDecs$e[0];
127
+ (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;