fcr-ui-scene 3.7.5 → 3.7.6

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 (220) hide show
  1. package/lib/creator/index.js +3 -1
  2. package/lib/creator/provider-initializer.browser.js +13 -1
  3. package/lib/creator/provider-initializer.electron.js +22 -6
  4. package/lib/electron/bootstrap-sdk.js +39 -5
  5. package/lib/electron/injections.d.ts +1 -0
  6. package/lib/electron/injections.js +5 -1
  7. package/lib/electron/ipc/type.d.ts +1 -0
  8. package/lib/electron/ipc/type.js +1 -0
  9. package/lib/electron/preload.js +1 -0
  10. package/lib/electron/sdk-helper.d.ts +3 -0
  11. package/lib/electron/sdk-helper.js +53 -19
  12. package/lib/electron/until.d.ts +5 -1
  13. package/lib/electron/until.js +6 -2
  14. package/lib/fragments/annotation/store.js +2 -0
  15. package/lib/modules/action-bar/components/more/poppover-content.js +1 -1
  16. package/lib/modules/action-bar/components/screen-share/index.browser.js +4 -2
  17. package/lib/modules/action-bar/components/screen-share/index.electron.js +4 -2
  18. package/lib/modules/action-bar/components/screen-share/submenu.d.ts +5 -1
  19. package/lib/modules/action-bar/components/screen-share/submenu.js +11 -8
  20. package/lib/modules/audio-stream/index.js +4 -2
  21. package/lib/modules/chat/index.css +4 -0
  22. package/lib/modules/chat/view.js +2 -1
  23. package/lib/modules/components/control-bar/index.css +0 -2
  24. package/lib/modules/components/control-bar/index.d.ts +1 -0
  25. package/lib/modules/components/control-bar/index.js +26 -9
  26. package/lib/modules/components/leave-meeting/main-scene/store.d.ts +3 -0
  27. package/lib/modules/components/leave-meeting/main-scene/store.js +12 -0
  28. package/lib/modules/components/leave-meeting/store.base.d.ts +4 -3
  29. package/lib/modules/components/leave-meeting/store.base.js +0 -10
  30. package/lib/modules/components/leave-meeting/waiting-scene/store.d.ts +5 -1
  31. package/lib/modules/components/leave-meeting/waiting-scene/store.js +17 -3
  32. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +1 -2
  33. package/lib/modules/components/member-window/components/video-player/components/local-video-player-with-zoom.js +4 -3
  34. package/lib/modules/components/member-window/components/video-player/components/zoomable-container.js +18 -32
  35. package/lib/modules/components/toolbar/hooks/use-resize-visible.js +14 -2
  36. package/lib/modules/control-bar/components/boundary-detector.d.ts +7 -5
  37. package/lib/modules/control-bar/components/boundary-detector.js +22 -2
  38. package/lib/modules/control-bar/components/cloud-recording-buttons.js +3 -0
  39. package/lib/modules/control-bar/hooks.js +2 -1
  40. package/lib/modules/control-bar/store.d.ts +1 -0
  41. package/lib/modules/control-bar/store.js +10 -1
  42. package/lib/modules/control-bar/view.js +96 -28
  43. package/lib/modules/dialog/components/confirm/index.js +6 -24
  44. package/lib/modules/dialog/components/dialog-container/index.css +7 -0
  45. package/lib/modules/dialog/dialogs/device-setting/index.d.ts +1 -0
  46. package/lib/modules/dialog/dialogs/device-setting/index.js +4 -2
  47. package/lib/modules/dialog/dialogs/invite/index.d.ts +1 -0
  48. package/lib/modules/dialog/dialogs/invite/index.js +2 -1
  49. package/lib/modules/dialog/dialogs/mute-all/index.d.ts +1 -0
  50. package/lib/modules/dialog/dialogs/mute-all/index.js +2 -1
  51. package/lib/modules/dialog/dialogs/participant/index.js +7 -1
  52. package/lib/modules/dialog/dialogs/share-screen-selection/index.js +1 -1
  53. package/lib/modules/dialog/dialogs/sub-window/index.js +1 -7
  54. package/lib/modules/dialog/dialogs/toast/index.d.ts +1 -1
  55. package/lib/modules/dialog/dialogs/toast/index.js +1 -1
  56. package/lib/modules/dialog/dialogs/video-window/index.d.ts +4 -1
  57. package/lib/modules/dialog/dialogs/video-window/index.js +5 -2
  58. package/lib/modules/dialog/dialogs/widget/index.d.ts +2 -0
  59. package/lib/modules/dialog/dialogs/widget/index.js +11 -3
  60. package/lib/modules/dialog/index.css +6 -2
  61. package/lib/modules/dialog/level-config.d.ts +1 -0
  62. package/lib/modules/dialog/level-config.js +2 -1
  63. package/lib/modules/dialog/store.base.d.ts +2 -0
  64. package/lib/modules/dialog/store.browser.d.ts +2 -0
  65. package/lib/modules/dialog/store.browser.js +6 -1
  66. package/lib/modules/dialog/store.electron.d.ts +9 -1
  67. package/lib/modules/dialog/store.electron.js +64 -4
  68. package/lib/modules/dialog/type.d.ts +3 -0
  69. package/lib/modules/event-toast/index.css +0 -1
  70. package/lib/modules/event-toast/index.js +1 -0
  71. package/lib/modules/event-toast/store.base.d.ts +2 -0
  72. package/lib/modules/event-toast/store.base.js +40 -21
  73. package/lib/modules/event-toast/store.electron.d.ts +2 -0
  74. package/lib/modules/event-toast/store.electron.js +19 -9
  75. package/lib/modules/layout/components/CommonVideoRenderer.js +1 -0
  76. package/lib/modules/participant/components/confirm-input/index.js +1 -1
  77. package/lib/modules/participant/store.base.d.ts +30 -3
  78. package/lib/modules/participant/store.base.js +249 -96
  79. package/lib/modules/participant/store.browser.js +4 -3
  80. package/lib/modules/participant/store.electron.js +5 -3
  81. package/lib/modules/pc-audio-connect/main-scene/store.js +1 -0
  82. package/lib/modules/secondary-window/store.d.ts +1 -0
  83. package/lib/modules/secondary-window/store.js +5 -0
  84. package/lib/modules/secondary-window/view.js +4 -5
  85. package/lib/modules/setting/audio-settings/audio-settings.js +0 -17
  86. package/lib/modules/setting/index.css +1 -0
  87. package/lib/modules/setting/index.js +1 -1
  88. package/lib/modules/setting/state/index.js +1 -1
  89. package/lib/modules/setting/store.base.d.ts +5 -2
  90. package/lib/modules/setting/store.base.js +66 -26
  91. package/lib/modules/setting/view.js +3 -0
  92. package/lib/modules/share-screen/components/selection/index.css +4 -0
  93. package/lib/modules/share-screen/store.base.js +17 -4
  94. package/lib/modules/share-screen/store.electron.js +4 -1
  95. package/lib/modules/video-window/popover-watcher.d.ts +3 -11
  96. package/lib/modules/video-window/popover-watcher.js +22 -32
  97. package/lib/modules/video-window/store.d.ts +15 -5
  98. package/lib/modules/video-window/store.js +109 -64
  99. package/lib/modules/video-window/view.js +50 -1
  100. package/lib/modules/whiteboard/index.d.ts +1 -1
  101. package/lib/modules/whiteboard/index.js +1 -1
  102. package/lib/modules/whiteboard/store.d.ts +3 -0
  103. package/lib/modules/whiteboard/store.js +11 -0
  104. package/lib/modules/whiteboard/view.js +10 -1
  105. package/lib/modules/widget/sdk.js +1 -1
  106. package/lib/modules/widget/store.base.d.ts +1 -0
  107. package/lib/modules/widget/store.browser.d.ts +1 -0
  108. package/lib/modules/widget/store.browser.js +60 -4
  109. package/lib/modules/widget/store.electron.d.ts +1 -0
  110. package/lib/modules/widget/store.electron.js +59 -2
  111. package/lib/modules/widget/type.d.ts +3 -2
  112. package/lib/modules/widget/view.js +9 -4
  113. package/lib/modules/widget/web-widget.d.ts +2 -1
  114. package/lib/modules/widget/web-widget.js +7 -5
  115. package/lib/object-manager.d.ts +2 -1
  116. package/lib/object-manager.js +1 -0
  117. package/lib/providers/board-share/provider.base.d.ts +8 -1
  118. package/lib/providers/board-share/provider.base.js +12 -2
  119. package/lib/providers/device-provider.d.ts +16 -2
  120. package/lib/providers/device-provider.js +48 -59
  121. package/lib/providers/dialog/provider.base.d.ts +1 -0
  122. package/lib/providers/dialog/provider.browser.d.ts +1 -0
  123. package/lib/providers/dialog/provider.browser.js +7 -2
  124. package/lib/providers/dialog/provider.electron.d.ts +4 -1
  125. package/lib/providers/dialog/provider.electron.js +88 -2
  126. package/lib/providers/dialog/type.d.ts +7 -0
  127. package/lib/providers/mouse-detect/provider.d.ts +4 -1
  128. package/lib/providers/mouse-detect/provider.js +94 -5
  129. package/lib/providers/mouse-detect/struct.d.ts +2 -1
  130. package/lib/providers/mouse-detect/struct.js +1 -0
  131. package/lib/providers/mouse-detect/type.d.ts +2 -0
  132. package/lib/providers/renderer-provider.d.ts +5 -0
  133. package/lib/providers/renderer-provider.js +5 -0
  134. package/lib/providers/room-provider/room-provider.d.ts +1 -0
  135. package/lib/providers/room-provider/room-provider.js +23 -13
  136. package/lib/providers/screen-share/provider.base.js +3 -11
  137. package/lib/providers/screen-share/provider.browser.js +23 -14
  138. package/lib/providers/screen-share/provider.electron.d.ts +1 -0
  139. package/lib/providers/screen-share/provider.electron.js +44 -17
  140. package/lib/providers/screen-share/strategy/browser.js +16 -13
  141. package/lib/providers/screen-share/strategy/electron.d.ts +2 -2
  142. package/lib/providers/screen-share/strategy/electron.js +15 -10
  143. package/lib/providers/screen-share/strategy/type.d.ts +6 -0
  144. package/lib/providers/screen-share/stream-state-sync.d.ts +3 -2
  145. package/lib/providers/screen-share/stream-state-sync.js +7 -4
  146. package/lib/providers/screen-share/struct.d.ts +9 -7
  147. package/lib/providers/screen-share/struct.js +11 -8
  148. package/lib/providers/screen-share/type.d.ts +7 -1
  149. package/lib/providers/widget-provider.d.ts +5 -3
  150. package/lib/providers/widget-provider.js +12 -18
  151. package/lib/providers/window/main-window.js +3 -0
  152. package/lib/providers/window/renderer-window.js +4 -1
  153. package/lib/runtime.d.ts +1 -0
  154. package/lib/runtime.js +2 -1
  155. package/lib/scenes/main-scene.js +7 -0
  156. package/lib/shared-context/board-context.d.ts +2 -0
  157. package/lib/shared-context/board-context.js +2 -0
  158. package/lib/shared-data/member-data.d.ts +0 -8
  159. package/lib/shared-data/member-data.js +26 -78
  160. package/lib/shared-data/widget-data.d.ts +13 -0
  161. package/lib/shared-data/widget-data.js +50 -0
  162. package/lib/translations/enUS.d.ts +0 -2
  163. package/lib/translations/enUS.js +4 -6
  164. package/lib/translations/zhCN.d.ts +0 -2
  165. package/lib/translations/zhCN.js +4 -6
  166. package/lib/type.d.ts +5 -0
  167. package/lib/ui-scene.d.ts +2 -4
  168. package/lib/ui-scene.js +27 -40
  169. package/lib/utilities/constant.d.ts +3 -1
  170. package/lib/utilities/constant.js +5 -2
  171. package/lib/utilities/default-config.d.ts +18 -0
  172. package/lib/utilities/default-config.js +19 -1
  173. package/lib/utilities/focus-helper.js +10 -3
  174. package/lib/utilities/logger.js +3 -1
  175. package/lib/utilities/renderer.d.ts +1 -0
  176. package/lib/utilities/renderer.js +7 -1
  177. package/package.json +5 -5
  178. package/public/index.html +13 -3
  179. package/lib/modules/action-bar/index.d.ts +0 -17
  180. package/lib/modules/action-bar/index.js +0 -63
  181. package/lib/modules/action-bar/store.base.d.ts +0 -15
  182. package/lib/modules/action-bar/store.base.js +0 -117
  183. package/lib/modules/action-bar/view.d.ts +0 -5
  184. package/lib/modules/action-bar/view.js +0 -112
  185. package/lib/modules/action-bar/waiting-scene/store.d.ts +0 -6
  186. package/lib/modules/action-bar/waiting-scene/store.js +0 -91
  187. package/lib/modules/control-bar/types.d.ts +0 -31
  188. package/lib/modules/control-bar/types.js +0 -6
  189. package/lib/modules/dialog/dialogs/pre-setting/index.css +0 -26
  190. package/lib/modules/dialog/dialogs/pre-setting/index.d.ts +0 -6
  191. package/lib/modules/dialog/dialogs/pre-setting/index.js +0 -57
  192. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +0 -14
  193. package/lib/modules/dialog/hooks/use-popover-watcher.js +0 -112
  194. package/lib/modules/event-toast/store.d.ts +0 -23
  195. package/lib/modules/event-toast/store.js +0 -187
  196. package/lib/modules/setting/common/advance-link.d.ts +0 -3
  197. package/lib/modules/setting/common/advance-link.js +0 -27
  198. package/lib/modules/setting/common/index.css +0 -26
  199. package/lib/modules/setting/common/useNamespace.d.ts +0 -15
  200. package/lib/modules/setting/common/useNamespace.js +0 -66
  201. package/lib/modules/widget/store.d.ts +0 -17
  202. package/lib/modules/widget/store.js +0 -71
  203. package/lib/providers/board-share/provider.d.ts +0 -66
  204. package/lib/providers/board-share/provider.js +0 -456
  205. package/lib/providers/screen-share/provider.d.ts +0 -69
  206. package/lib/providers/screen-share/provider.js +0 -615
  207. package/lib/providers/whiteboard-provider.d.ts +0 -26
  208. package/lib/providers/whiteboard-provider.js +0 -131
  209. package/lib/providers/window/browser-window-proxy.d.ts +0 -0
  210. package/lib/providers/window/browser-window-proxy.js +0 -1
  211. package/lib/providers/window/ipc-protocol.d.ts +0 -0
  212. package/lib/providers/window/ipc-protocol.js +0 -1
  213. package/lib/providers/window/main-process-handler.d.ts +0 -0
  214. package/lib/providers/window/main-process-handler.js +0 -1
  215. package/lib/providers/window/main-process-integration.d.ts +0 -0
  216. package/lib/providers/window/main-process-integration.js +0 -1
  217. package/lib/shared-data/whiteboard-data.d.ts +0 -70
  218. package/lib/shared-data/whiteboard-data.js +0 -342
  219. package/lib/utilities/ipc-protocol.d.ts +0 -91
  220. package/lib/utilities/ipc-protocol.js +0 -61
@@ -3,11 +3,14 @@ import { FcrUIDialogProviderBase } from './provider.base';
3
3
  import { FcrUIDialogKey } from '../../utilities/constant';
4
4
  export declare class FcrUIElectronDialogProviderImpl extends FcrUIDialogProviderBase {
5
5
  private _windowProvider;
6
- constructor({ windowProvider }: FcrUIElectronProviderConstructor);
6
+ private _sharingDisplayBounds;
7
+ private _renderer;
8
+ constructor({ windowProvider, renderer }: FcrUIElectronProviderConstructor);
7
9
  openDialog(dialogKey: FcrUIDialogKey, params?: Record<string, unknown>): void;
8
10
  openDialogWithId(dialogKey: FcrUIDialogKey, dialogId: string, params?: Record<string, unknown>): void;
9
11
  closeDialog(dialogKey: FcrUIDialogKey): void;
10
12
  closeDialogById(dialogId: string): void;
11
13
  protected openWithKeyAndId(dialogKey: FcrUIDialogKey, dialogId: string, params?: Record<string, unknown>): void;
12
14
  protected closeByKeyAndId(dialogKey: FcrUIDialogKey, dialogId: string): void;
15
+ setSharingDisplayBounds(bounds: FcrUI.FcrUIRectangle): void;
13
16
  }
@@ -57,8 +57,10 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
57
57
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
58
58
  var _type = require("./type");
59
59
  var _provider = require("./provider.base");
60
+ var _constant = require("../../utilities/constant");
60
61
  var _decorator = require("agora-foundation/lib/decorator");
61
62
  var _isBoolean = _interopRequireDefault(require("lodash/isBoolean"));
63
+ var _imports = require("fcr-core/lib/imports");
62
64
  var _FcrUIElectronDialogProviderImpl;
63
65
  var _initProto;
64
66
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
@@ -71,11 +73,14 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
71
73
  var FcrUIElectronDialogProviderImpl = exports.FcrUIElectronDialogProviderImpl = /*#__PURE__*/function (_FcrUIDialogProviderB) {
72
74
  function FcrUIElectronDialogProviderImpl(_ref) {
73
75
  var _this;
74
- var windowProvider = _ref.windowProvider;
76
+ var windowProvider = _ref.windowProvider,
77
+ renderer = _ref.renderer;
75
78
  (0, _classCallCheck2["default"])(this, FcrUIElectronDialogProviderImpl);
76
79
  _this = _callSuper(this, FcrUIElectronDialogProviderImpl);
77
80
  (0, _defineProperty2["default"])(_this, "_windowProvider", void _initProto(_this));
81
+ (0, _defineProperty2["default"])(_this, "_sharingDisplayBounds", null);
78
82
  _this._windowProvider = windowProvider;
83
+ _this._renderer = renderer;
79
84
  return _this;
80
85
  }
81
86
  (0, _inherits2["default"])(FcrUIElectronDialogProviderImpl, _FcrUIDialogProviderB);
@@ -136,6 +141,82 @@ var FcrUIElectronDialogProviderImpl = exports.FcrUIElectronDialogProviderImpl =
136
141
  }
137
142
  var window = this._windowProvider.getWindowById(dialogKey, dialogId);
138
143
  var windowObserver = {
144
+ onReady: function onReady() {
145
+ _this2.logger.info("sharing display bounds: ".concat((0, _imports.jsonstring)(_this2._sharingDisplayBounds)));
146
+ if ([_constant.FcrUIDialogKey.SUB_WINDOW].includes(dialogKey)) {
147
+ return;
148
+ }
149
+ // 获取主屏幕的宽高
150
+ var bounds = _this2._windowProvider.getCurrentWindow().getBounds();
151
+ var _this2$_renderer$getD = _this2._renderer.getDisplayMatching(bounds).bounds,
152
+ mw = _this2$_renderer$getD.width,
153
+ mh = _this2$_renderer$getD.height,
154
+ mx = _this2$_renderer$getD.x,
155
+ my = _this2$_renderer$getD.y;
156
+ var shareScreenDialogs = [_constant.FcrUIDialogKey.SHARE_SCREEN_CONTROL_BAR, _constant.FcrUIDialogKey.VIDEO_WINDOW];
157
+ var fullScreenDialogs = [_constant.FcrUIDialogKey.TOAST, _constant.FcrUIDialogKey.CONFIRM];
158
+ var _window$getBounds = window.getBounds(),
159
+ ww = _window$getBounds.width,
160
+ wh = _window$getBounds.height;
161
+ if (shareScreenDialogs.includes(dialogKey)) {
162
+ return;
163
+ }
164
+
165
+ // 分享主应用所在显示器
166
+ var x = mx + mw / 2 - ww / 2;
167
+ var y = my + mh / 2 - wh / 2;
168
+ if (_this2._sharingDisplayBounds) {
169
+ var _this2$_sharingDispla = _this2._sharingDisplayBounds,
170
+ sx = _this2$_sharingDispla.x,
171
+ sy = _this2$_sharingDispla.y,
172
+ sw = _this2$_sharingDispla.width,
173
+ sh = _this2$_sharingDispla.height;
174
+ if (fullScreenDialogs.includes(dialogKey)) {
175
+ window.setBounds(_this2._sharingDisplayBounds);
176
+ } else {
177
+ // 分享的显示器在左侧
178
+ if (sx < 0 && Math.abs(sx) >= sw) {
179
+ x = sx / 2 - ww / 2;
180
+ y = sh / 2 - wh / 2 + sy;
181
+ _this2.logger.info("sharing display in the left");
182
+ }
183
+
184
+ // 分享的显示器在右侧
185
+ else if (sx > 0 && Math.abs(sx) >= mw) {
186
+ x = sw / 2 - ww / 2 + sx;
187
+ y = sh / 2 - wh / 2 + sy;
188
+ _this2.logger.info("sharing display in the right");
189
+ }
190
+
191
+ // 分享的显示器在上面
192
+ else if (sy < 0 && Math.abs(sy) >= sh) {
193
+ x = sw / 2 - ww / 2 + sx;
194
+ y = sy / 2 - wh / 2;
195
+ _this2.logger.info("sharing display in the top");
196
+ }
197
+
198
+ // 分享的显示器在下面
199
+ else if (sy > 0 && Math.abs(sy) >= mh) {
200
+ x = sw / 2 - ww / 2 + sx;
201
+ y = sy + sh / 2 - wh / 2;
202
+ _this2.logger.info("sharing display in the bottom");
203
+ }
204
+ x = Math.floor(x);
205
+ y = Math.floor(y);
206
+ window.setBounds({
207
+ x: x,
208
+ y: y
209
+ });
210
+ }
211
+ } else {
212
+ x = Math.floor(x);
213
+ y = Math.floor(y);
214
+ window.setBounds({
215
+ x: x,
216
+ y: y
217
+ });
218
+ }
219
+ },
139
220
  onClosed: function onClosed() {
140
221
  window.removeObserver(windowObserver);
141
222
  _this2.dialogKeyMap["delete"](dialogKey);
@@ -168,10 +249,15 @@ var FcrUIElectronDialogProviderImpl = exports.FcrUIElectronDialogProviderImpl =
168
249
  window.close();
169
250
  }
170
251
  }
252
+ }, {
253
+ key: "setSharingDisplayBounds",
254
+ value: function setSharingDisplayBounds(bounds) {
255
+ this._sharingDisplayBounds = bounds;
256
+ }
171
257
  }]);
172
258
  }(_provider.FcrUIDialogProviderBase);
173
259
  _FcrUIElectronDialogProviderImpl = FcrUIElectronDialogProviderImpl;
174
- var _applyDecs$e = _applyDecs(_FcrUIElectronDialogProviderImpl, [[_decorator.trace, 2, "openDialog"], [_decorator.trace, 2, "openDialogWithId"], [_decorator.trace, 2, "closeDialog"], [_decorator.trace, 2, "closeDialogById"]], [], 0, void 0, _provider.FcrUIDialogProviderBase).e;
260
+ var _applyDecs$e = _applyDecs(_FcrUIElectronDialogProviderImpl, [[_decorator.trace, 2, "openDialog"], [_decorator.trace, 2, "openDialogWithId"], [_decorator.trace, 2, "closeDialog"], [_decorator.trace, 2, "closeDialogById"], [_decorator.trace, 2, "setSharingDisplayBounds"]], [], 0, void 0, _provider.FcrUIDialogProviderBase).e;
175
261
  var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 1);
176
262
  _initProto = _applyDecs$e2[0];
177
263
  _applyDecs$e;
@@ -2,6 +2,7 @@ import { ConfirmContentProps } from 'agora-ui-foundation/lib/components/confirm-
2
2
  import { FcrUIDialogKey } from '../../utilities/constant';
3
3
  import { FcrUIWindowProvider } from '../window/type';
4
4
  import { FcrUIDialogInfo } from '../../modules/dialog/type';
5
+ import { FcrUIRendererWrapper } from '../../utilities/renderer';
5
6
  export type FcrUIDialogDescriptor = {
6
7
  dialogKey: FcrUIDialogKey;
7
8
  dialogId: string;
@@ -139,6 +140,11 @@ export interface FcrUIDialogProvider {
139
140
  * @param observer - 要移除的观察者对象,类型为 FcrUIDialogObserver。
140
141
  */
141
142
  removeObserver(observer: FcrUIDialogObserver): void;
143
+ /**
144
+ * 设置屏幕共享的 bounds
145
+ * @param bounds - 屏幕共享的 bounds
146
+ */
147
+ setSharingDisplayBounds(bounds: FcrUI.FcrUIRectangle | null): void;
142
148
  /**
143
149
  * 新增弹窗拦截器
144
150
  * @param key - 弹窗拦截器的唯一标识符
@@ -158,4 +164,5 @@ export interface FcrUIDialogProvider {
158
164
  }
159
165
  export type FcrUIElectronProviderConstructor = {
160
166
  windowProvider: FcrUIWindowProvider;
167
+ renderer: FcrUIRendererWrapper;
161
168
  };
@@ -6,12 +6,15 @@ export declare class FcrUIMouseDetectProviderImpl implements FcrUIManagedObject,
6
6
  protected logger: import("agora-foundation/lib/logger").Logger;
7
7
  private _observable;
8
8
  private _renderer;
9
- private _detectAreas;
9
+ private _windowProvder;
10
+ private accessor _detectAreas;
10
11
  private _isInDetectArea;
11
12
  private _task;
12
13
  private _detectionOffset;
13
14
  constructor(objectManager: FcrUIObjectManager);
15
+ setDisplayId(displayId: number): void;
14
16
  setDetectArea(areaId: FcrUIDetectAreaID, areaList: FcrUI.FcrUIRectangle[]): void;
17
+ getDetectAreas(areaId: FcrUIDetectAreaID): FcrUI.FcrUIRectangle[];
15
18
  deleteDetectArea(areaId: FcrUIDetectAreaID): void;
16
19
  setDetectionPositionOffset(offset: FcrUI.FcrUIPoint): void;
17
20
  addObserver(observer: FcrUIMouseDetectObserver): void;
@@ -25,15 +25,19 @@ exports.FcrUIMouseDetectProviderImpl = void 0;
25
25
  require("core-js/modules/es.array.concat.js");
26
26
  require("core-js/modules/es.array.find.js");
27
27
  require("core-js/modules/es.array.for-each.js");
28
+ require("core-js/modules/es.array.from.js");
28
29
  require("core-js/modules/es.array.iterator.js");
30
+ require("core-js/modules/es.array.map.js");
29
31
  require("core-js/modules/es.array.some.js");
30
32
  require("core-js/modules/es.map.js");
31
33
  require("core-js/modules/es.object.to-string.js");
32
34
  require("core-js/modules/es.set.js");
33
35
  require("core-js/modules/es.string.iterator.js");
36
+ require("core-js/modules/es.weak-map.js");
34
37
  require("core-js/modules/esnext.iterator.constructor.js");
35
38
  require("core-js/modules/esnext.iterator.find.js");
36
39
  require("core-js/modules/esnext.iterator.for-each.js");
40
+ require("core-js/modules/esnext.iterator.map.js");
37
41
  require("core-js/modules/esnext.iterator.some.js");
38
42
  require("core-js/modules/esnext.map.delete-all.js");
39
43
  require("core-js/modules/esnext.map.emplace.js");
@@ -72,6 +76,8 @@ require("core-js/modules/esnext.set.symmetric-difference.v2.js");
72
76
  require("core-js/modules/esnext.set.symmetric-difference.js");
73
77
  require("core-js/modules/esnext.set.union.v2.js");
74
78
  require("core-js/modules/esnext.set.union.js");
79
+ require("core-js/modules/esnext.weak-map.delete-all.js");
80
+ require("core-js/modules/esnext.weak-map.emplace.js");
75
81
  require("core-js/modules/web.dom-collections.for-each.js");
76
82
  require("core-js/modules/web.dom-collections.iterator.js");
77
83
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -85,13 +91,25 @@ var _observable = require("agora-foundation/lib/utilities/observable");
85
91
  var _schedule = require("agora-foundation/lib/schedule");
86
92
  var _decorator = require("agora-foundation/lib/decorator");
87
93
  var _misc = require("agora-foundation/lib/utilities/misc");
94
+ var _constant = require("../../utilities/constant");
95
+ var _reactDom = _interopRequireDefault(require("react-dom"));
96
+ var _mobxReact = require("mobx-react");
97
+ var _mobx = require("mobx");
98
+ var _levelConfig = require("../../modules/dialog/level-config");
99
+ var _jsxRuntime = require("react/jsx-runtime");
88
100
  var _FcrUIMouseDetectProviderImpl;
89
- var _initProto;
101
+ var _initProto, _init__detectAreas;
102
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
103
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
104
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
105
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
106
+ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
90
107
  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)]; } }; }
91
108
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
92
109
  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); }
93
110
  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; }
94
111
  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; }
112
+ var _A = /*#__PURE__*/new WeakMap();
95
113
  var FcrUIMouseDetectProviderImpl = exports.FcrUIMouseDetectProviderImpl = /*#__PURE__*/function () {
96
114
  function FcrUIMouseDetectProviderImpl(objectManager) {
97
115
  var _this = this;
@@ -100,7 +118,7 @@ var FcrUIMouseDetectProviderImpl = exports.FcrUIMouseDetectProviderImpl = /*#__P
100
118
  prefix: 'FcrUIMouseDetectProviderImpl'
101
119
  })));
102
120
  (0, _defineProperty2["default"])(this, "_observable", new _observable.AgoraObservable());
103
- (0, _defineProperty2["default"])(this, "_detectAreas", new Map());
121
+ _classPrivateFieldInitSpec(this, _A, _init__detectAreas(this, new Map()));
104
122
  (0, _defineProperty2["default"])(this, "_isInDetectArea", new Set());
105
123
  (0, _defineProperty2["default"])(this, "_detectionOffset", {
106
124
  x: 0,
@@ -108,6 +126,7 @@ var FcrUIMouseDetectProviderImpl = exports.FcrUIMouseDetectProviderImpl = /*#__P
108
126
  });
109
127
  this.objectManager = objectManager;
110
128
  this._renderer = objectManager.getObject(_objectManager.FcrUIObjectKeys.RENDERER_WRAPPER);
129
+ this._windowProvder = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_WINDOW_PROVIDER);
111
130
  this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onMouseEnterDetectArea', 'onMouseLeaveDetectArea']));
112
131
  this._task = _schedule.AgoraScheduler.shared.addPollingTask(function () {
113
132
  _this._detect();
@@ -115,8 +134,72 @@ var FcrUIMouseDetectProviderImpl = exports.FcrUIMouseDetectProviderImpl = /*#__P
115
134
  if ((0, _platform.isMac)()) {
116
135
  this._task.stop();
117
136
  }
137
+
138
+ // 调试时使用,用于查看检测区域
139
+ var debug = false;
140
+ if (debug) {
141
+ this._windowProvder.setWindowOptions(_constant.FcrUIDialogKey.MOUSE_DETECT_DEBUG, {
142
+ frame: false,
143
+ transparent: true,
144
+ backgroundColor: '#00000000',
145
+ title: 'MouseDetectDebugger'
146
+ });
147
+ var window = this._windowProvder.getWindowById(_constant.FcrUIDialogKey.MOUSE_DETECT_DEBUG);
148
+ window.show();
149
+ window.setIgnoreMouseEvents(true);
150
+ this.logger.info('windows_index setAlwaysOnTop in mouse-detect-provider');
151
+ window.setAlwaysOnTop(true, 'screen-saver', _levelConfig.WindowRelativeLevel.MOUSE_DETECT_DEBUGGER_LEVEL);
152
+ window.addObserver({
153
+ onReady: function onReady() {
154
+ var AreaDebugger = (0, _mobxReact.observer)(function () {
155
+ var content = Array.from(_this._detectAreas.keys()).map(function (areaId) {
156
+ var list = _this._detectAreas.get(areaId);
157
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
158
+ "data-area-id": areaId,
159
+ children: list.map(function (item, index) {
160
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
161
+ style: {
162
+ width: item.width,
163
+ height: item.height,
164
+ position: 'absolute',
165
+ top: item.y,
166
+ left: item.x,
167
+ backgroundColor: 'rgba(10,10,10,0.5)'
168
+ }
169
+ }, index);
170
+ })
171
+ }, areaId);
172
+ });
173
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
174
+ className: "fcr-ui-mouse-detect-debugger",
175
+ children: content
176
+ });
177
+ });
178
+ _reactDom["default"].render(/*#__PURE__*/(0, _jsxRuntime.jsx)(AreaDebugger, {}), window.getRootNode());
179
+ }
180
+ });
181
+ }
118
182
  }
119
183
  return (0, _createClass2["default"])(FcrUIMouseDetectProviderImpl, [{
184
+ key: "_detectAreas",
185
+ get: function get() {
186
+ return _classPrivateFieldGet(_A, this);
187
+ },
188
+ set: function set(v) {
189
+ _classPrivateFieldSet(_A, this, v);
190
+ }
191
+ }, {
192
+ key: "setDisplayId",
193
+ value: function setDisplayId(displayId) {
194
+ var display = this._renderer.getAllDisplays().find(function (d) {
195
+ return d.id === displayId;
196
+ });
197
+ if (display) {
198
+ var window = this._windowProvder.getWindowById(_constant.FcrUIDialogKey.MOUSE_DETECT_DEBUG);
199
+ window.setBounds(display.bounds);
200
+ }
201
+ }
202
+ }, {
120
203
  key: "setDetectArea",
121
204
  value: function setDetectArea(areaId, areaList) {
122
205
  var oldList = this._detectAreas.get(areaId);
@@ -134,6 +217,11 @@ var FcrUIMouseDetectProviderImpl = exports.FcrUIMouseDetectProviderImpl = /*#__P
134
217
  this._detect();
135
218
  }
136
219
  }
220
+ }, {
221
+ key: "getDetectAreas",
222
+ value: function getDetectAreas(areaId) {
223
+ return this._detectAreas.get(areaId) || [];
224
+ }
137
225
  }, {
138
226
  key: "deleteDetectArea",
139
227
  value: function deleteDetectArea(areaId) {
@@ -199,7 +287,8 @@ var FcrUIMouseDetectProviderImpl = exports.FcrUIMouseDetectProviderImpl = /*#__P
199
287
  }]);
200
288
  }();
201
289
  _FcrUIMouseDetectProviderImpl = FcrUIMouseDetectProviderImpl;
202
- var _applyDecs$e = _applyDecs(_FcrUIMouseDetectProviderImpl, [[_decorator.trace, 2, "setDetectArea"], [_decorator.trace, 2, "deleteDetectArea"], [_decorator.trace, 2, "setDetectionPositionOffset"]], []).e;
203
- var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 1);
204
- _initProto = _applyDecs$e2[0];
290
+ var _applyDecs$e = _applyDecs(_FcrUIMouseDetectProviderImpl, [[_mobx.observable, 1, "_detectAreas"], [_decorator.trace, 2, "setDisplayId"], [[_decorator.trace, _mobx.action], 2, "setDetectArea"], [_decorator.trace, 2, "getDetectAreas"], [[_decorator.trace, _mobx.action], 2, "deleteDetectArea"], [_decorator.trace, 2, "setDetectionPositionOffset"]], []).e;
291
+ var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 2);
292
+ _init__detectAreas = _applyDecs$e2[0];
293
+ _initProto = _applyDecs$e2[1];
205
294
  _applyDecs$e;
@@ -1,3 +1,4 @@
1
1
  export declare enum FcrUIDetectAreaID {
2
- ControlBar = "ControlBar"
2
+ ControlBar = "ControlBar",
3
+ Confirm = "Confirm"
3
4
  }
@@ -7,5 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.FcrUIDetectAreaID = void 0;
8
8
  var FcrUIDetectAreaID = exports.FcrUIDetectAreaID = /*#__PURE__*/function (FcrUIDetectAreaID) {
9
9
  FcrUIDetectAreaID["ControlBar"] = "ControlBar";
10
+ FcrUIDetectAreaID["Confirm"] = "Confirm";
10
11
  return FcrUIDetectAreaID;
11
12
  }({});
@@ -4,8 +4,10 @@ export interface FcrUIMouseDetectObserver {
4
4
  onMouseLeaveDetectArea?: (areaId: FcrUIDetectAreaID) => void;
5
5
  }
6
6
  export interface FcrUIMouseDetectProvider {
7
+ setDisplayId(displayId: number): void;
7
8
  setDetectionPositionOffset(offset: FcrUI.FcrUIPoint): void;
8
9
  setDetectArea(areaId: FcrUIDetectAreaID, areaList: FcrUI.FcrUIRectangle[]): void;
10
+ getDetectAreas(areaId: FcrUIDetectAreaID): FcrUI.FcrUIRectangle[];
9
11
  deleteDetectArea(areaId: FcrUIDetectAreaID): void;
10
12
  addObserver(observer: FcrUIMouseDetectObserver): void;
11
13
  removeObserver(observer: FcrUIMouseDetectObserver): void;
@@ -35,6 +35,10 @@ export interface FcrUILocalVideoRenderProvider {
35
35
  * 摄像头是否已开启
36
36
  */
37
37
  get cameraEnabled(): boolean;
38
+ /**
39
+ * 是否将自己的视频在本地镜像显示
40
+ */
41
+ get isLocalMirrorEnabled(): boolean;
38
42
  /**
39
43
  * 开始预览摄像头
40
44
  * @param el
@@ -80,6 +84,7 @@ declare abstract class FcrUILocalVideoRenderProviderBase implements FcrUILocalVi
80
84
  constructor(_deviceProvider: FcrUIDeviceProvider);
81
85
  get cameraEnabled(): boolean;
82
86
  get cameraId(): string;
87
+ get isLocalMirrorEnabled(): boolean;
83
88
  startCameraPreview(el: HTMLElement, config: FcrRenderConfig): void;
84
89
  stopCameraPreview(el: HTMLElement): void;
85
90
  release(): void;
@@ -194,6 +194,11 @@ var FcrUILocalVideoRenderProviderBase = /*#__PURE__*/function () {
194
194
  get: function get() {
195
195
  return this._deviceProvider.cameraId;
196
196
  }
197
+ }, {
198
+ key: "isLocalMirrorEnabled",
199
+ get: function get() {
200
+ return this._deviceProvider.isLocalMirrorEnabled;
201
+ }
197
202
  }, {
198
203
  key: "startCameraPreview",
199
204
  value: function startCameraPreview(el, config) {
@@ -141,6 +141,7 @@ export declare class FcrUIMainRoomControlProviderImpl implements FcrUIMainRoomCo
141
141
  get privilegeProvider(): FcrUIPrivilegeProviderImpl;
142
142
  private get _localUser();
143
143
  release(): void;
144
+ private _initUserMap;
144
145
  private _handleSecurityUpdated;
145
146
  private _handleUserRoleChangeToast;
146
147
  }
@@ -81,7 +81,7 @@ var _waitingRoomControlManager = _interopRequireDefault(require("./waiting-room-
81
81
  var _constant = require("../../utilities/constant");
82
82
  var _privilegeProvider = require("../privilege-provider");
83
83
  var _FcrUIRoomProviderImpl, _FcrUIMainRoomControlProviderImpl;
84
- var _initProto, _init_liveStreamingState, _init_liveStreamingConfig, _init_cloudRecordingState, _initBaseRoomStateDecs, _ref, _initProto2, _init_privilegeOperator, _init_boardOwnerUser, _handleSecurityUpdatedDecs, _ref2;
84
+ var _initProto, _init_liveStreamingState, _init_liveStreamingConfig, _init_cloudRecordingState, _initBaseRoomStateDecs, _ref, _initProto2, _init_privilegeOperator, _init_boardOwnerUser, _initUserMapDecs, _handleSecurityUpdatedDecs, _ref2;
85
85
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
86
86
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
87
87
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
@@ -371,7 +371,7 @@ var FcrUIConnectionProviderImpl = exports.FcrUIConnectionProviderImpl = /*#__PUR
371
371
  }();
372
372
  var _A2 = /*#__PURE__*/new WeakMap();
373
373
  var _B2 = /*#__PURE__*/new WeakMap();
374
- _ref2 = (_handleSecurityUpdatedDecs = [_mobx.action, _mobx.action.bound], "_privilegeProvider");
374
+ _ref2 = (_initUserMapDecs = [_mobx.action, _mobx.action.bound], _handleSecurityUpdatedDecs = [_mobx.action, _mobx.action.bound], "_privilegeProvider");
375
375
  var FcrUIMainRoomControlProviderImpl = exports.FcrUIMainRoomControlProviderImpl = /*#__PURE__*/function () {
376
376
  function FcrUIMainRoomControlProviderImpl(_mainRoomControl, eventProvider, messageProvider, dialogProvider, _sharedInterpreterDataSource) {
377
377
  var _this2 = this;
@@ -388,6 +388,7 @@ var FcrUIMainRoomControlProviderImpl = exports.FcrUIMainRoomControlProviderImpl
388
388
  this._privilegeControl = _mainRoomControl.getPrivilegeControl();
389
389
  this._userControl = _mainRoomControl.getUserControl();
390
390
  this._privilegeProvider = new _privilegeProvider.FcrUIPrivilegeProviderImpl(_mainRoomControl.getPrivilegeControl(), _mainRoomControl.getUserControl(), _mainRoomControl.getStreamControl(), eventProvider);
391
+ this._initUserMap();
391
392
  this._privilegeObserver = {
392
393
  onSecurityInfoUpdated: this._handleSecurityUpdated.bind(this)
393
394
  };
@@ -404,8 +405,8 @@ var FcrUIMainRoomControlProviderImpl = exports.FcrUIMainRoomControlProviderImpl
404
405
  },
405
406
  onUserInfoUpdated: function onUserInfoUpdated(roomId, event) {
406
407
  if (event.reason === _type3.FcrUserUpdatedReason.ROLE) {
407
- _this2._userMap.set(event.modifiedUser.userId, event.modifiedUser);
408
408
  _this2._handleUserRoleChangeToast(event.modifiedUser);
409
+ _this2._userMap.set(event.modifiedUser.userId, event.modifiedUser);
409
410
  }
410
411
  }
411
412
  };
@@ -466,6 +467,15 @@ var FcrUIMainRoomControlProviderImpl = exports.FcrUIMainRoomControlProviderImpl
466
467
  this._userControl.removeObserver(this._userObserver);
467
468
  this._privilegeProvider.release();
468
469
  }
470
+ }, {
471
+ key: "_initUserMap",
472
+ value: function _initUserMap() {
473
+ var _this3 = this;
474
+ var userList = this._userControl.getUserList();
475
+ userList.forEach(function (user) {
476
+ _this3._userMap.set(user.userId, user);
477
+ });
478
+ }
469
479
  }, {
470
480
  key: "_handleSecurityUpdated",
471
481
  value: function _handleSecurityUpdated(roomId, event) {
@@ -478,7 +488,7 @@ var FcrUIMainRoomControlProviderImpl = exports.FcrUIMainRoomControlProviderImpl
478
488
  _securityInfo$info4,
479
489
  _securityInfo$info5,
480
490
  _securityInfo$info6,
481
- _this3 = this,
491
+ _this4 = this,
482
492
  _event$securityInfo$i,
483
493
  _event$securityInfo$i2;
484
494
  this.privilegeOperator = event.operatorUser;
@@ -552,10 +562,10 @@ var FcrUIMainRoomControlProviderImpl = exports.FcrUIMainRoomControlProviderImpl
552
562
  okText: (0, _i18n.transI18n)('fmt_screenshare_whiteboard_button_gotit'),
553
563
  showCancel: false,
554
564
  onOk: function onOk() {
555
- _this3._dialogProvider.closeDialogById(dialogId);
565
+ _this4._dialogProvider.closeDialogById(dialogId);
556
566
  },
557
567
  onCancel: function onCancel() {
558
- _this3._dialogProvider.closeDialogById(dialogId);
568
+ _this4._dialogProvider.closeDialogById(dialogId);
559
569
  },
560
570
  height: 160
561
571
  });
@@ -677,25 +687,25 @@ var FcrUIMainRoomControlProviderImpl = exports.FcrUIMainRoomControlProviderImpl
677
687
  }]);
678
688
  }();
679
689
  _FcrUIMainRoomControlProviderImpl = FcrUIMainRoomControlProviderImpl;
680
- var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIMainRoomControlProviderImpl, [[_mobx.observable, 1, "privilegeOperator"], [_mobx.observable, 1, "boardOwnerUser"], [_handleSecurityUpdatedDecs, 18, "_handleSecurityUpdated"]], []).e, 3);
690
+ var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIMainRoomControlProviderImpl, [[_mobx.observable, 1, "privilegeOperator"], [_mobx.observable, 1, "boardOwnerUser"], [_initUserMapDecs, 18, "_initUserMap"], [_handleSecurityUpdatedDecs, 18, "_handleSecurityUpdated"]], []).e, 3);
681
691
  _init_privilegeOperator = _applyDecs$e2[0];
682
692
  _init_boardOwnerUser = _applyDecs$e2[1];
683
693
  _initProto2 = _applyDecs$e2[2];
684
694
  var FcrUIWaitingRoomControlProviderImpl = exports.FcrUIWaitingRoomControlProviderImpl = /*#__PURE__*/function () {
685
695
  function FcrUIWaitingRoomControlProviderImpl(roomProvider, eventProvider) {
686
- var _this4 = this;
696
+ var _this5 = this;
687
697
  (0, _classCallCheck2["default"])(this, FcrUIWaitingRoomControlProviderImpl);
688
698
  this._roomProvider = roomProvider;
689
699
  this._eventProvider = eventProvider;
690
700
  this._roomObserver = {
691
701
  onJoinWaitingRoom: function onJoinWaitingRoom(roomControl) {
692
- _this4._setWaitingRoomControl(roomControl);
702
+ _this5._setWaitingRoomControl(roomControl);
693
703
  },
694
704
  onLeaveWaitingRoom: function onLeaveWaitingRoom() {
695
- var _this4$_privilegeProv;
696
- (_this4$_privilegeProv = _this4._privilegeProvider) === null || _this4$_privilegeProv === void 0 || _this4$_privilegeProv.release();
697
- _this4._privilegeProvider = undefined;
698
- _this4._waitingRoomControl = undefined;
705
+ var _this5$_privilegeProv;
706
+ (_this5$_privilegeProv = _this5._privilegeProvider) === null || _this5$_privilegeProv === void 0 || _this5$_privilegeProv.release();
707
+ _this5._privilegeProvider = undefined;
708
+ _this5._waitingRoomControl = undefined;
699
709
  }
700
710
  };
701
711
  roomProvider.addObserver(this._roomObserver);
@@ -66,7 +66,6 @@ var _struct = require("./struct");
66
66
  var _observable = require("agora-foundation/lib/utilities/observable");
67
67
  var _decorator = require("agora-foundation/lib/decorator");
68
68
  var _mobx = require("mobx");
69
- var _type2 = require("agora-rte-sdk/lib/core/rtc/type");
70
69
  var _get = _interopRequireDefault(require("lodash/get"));
71
70
  var _FcrUIScreenShareProviderBase;
72
71
  var _initProto, _init__isLocalUserScreenSharing, _init__isRemoteUserScreenSharing, _init__isSharingWithAudio, _init__isSharingInSmoothMode, _init__isSharingInStereoAudioMode, _init__shareStreamId, _init__sharingUser, _enableScreenShareAudioDecs, _disableScreenShareAudioDecs, _enableSmoothModeDecs, _disableSmoothModeDecs, _enableStereoAudioModeDecs, _disableStereoAudioModeDecs, _findSharingUserDecs, _handleStreamUpdatedDecs, _ref;
@@ -183,7 +182,7 @@ var FcrUIScreenShareProviderBase = exports.FcrUIScreenShareProviderBase = /*#__P
183
182
  _this.observable.notifyObservers('onScreenShareStarted', _this.strategy.getScreenTrack());
184
183
  }
185
184
  });
186
- this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onScreenShareErrorOccurred', 'onScreenShareStarted', 'onScreenShareStopped', 'onShareSourceReplaced', 'onPrepreScreenCapture']));
185
+ this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onScreenShareErrorOccurred', 'onAudioShareErrorOccurred', 'onScreenShareStarted', 'onScreenShareStopped', 'onShareSourceReplaced', 'onPrepreScreenCapture']));
187
186
  }
188
187
  return (0, _createClass2["default"])(FcrUIScreenShareProviderBase, [{
189
188
  key: "_isLocalUserScreenSharing",
@@ -328,12 +327,6 @@ var FcrUIScreenShareProviderBase = exports.FcrUIScreenShareProviderBase = /*#__P
328
327
  _context.next = 1;
329
328
  break;
330
329
  }
331
- // this.observable.notifyObservers(
332
- // 'onScreenShareErrorOccurred',
333
- // FcrUIScreenShareErrorCode.CANNOT_START_LOOPBACK_CAPTURE,
334
- // );
335
-
336
- // throw new Error('cannot start screen share audio: no screen stream created');
337
330
  this.logger.info('local screen stream not yet created, skip updating stream for audio');
338
331
  return _context.abrupt("return");
339
332
  case 1:
@@ -352,7 +345,7 @@ var FcrUIScreenShareProviderBase = exports.FcrUIScreenShareProviderBase = /*#__P
352
345
  _context.prev = 4;
353
346
  _t = _context["catch"](1);
354
347
  this.logger.warn('failed to start screen share audio', _t);
355
- this.observable.notifyObservers('onScreenShareErrorOccurred', _struct.FcrUIScreenShareErrorCode.CANNOT_START_LOOPBACK_CAPTURE);
348
+ this.observable.notifyObservers('onAudioShareErrorOccurred', _struct.FcrUIAudioShareErrorCode.CANNOT_UPDATE_STREAM);
356
349
  throw new Error("cannot start screen share audio, error: ".concat(_t));
357
350
  case 5:
358
351
  case "end":
@@ -394,6 +387,7 @@ var FcrUIScreenShareProviderBase = exports.FcrUIScreenShareProviderBase = /*#__P
394
387
  _context2.prev = 4;
395
388
  _t2 = _context2["catch"](1);
396
389
  this.logger.warn('failed to update stream when stopping share audio', _t2);
390
+ throw new Error("cannot update screen stream, error: ".concat(_t2));
397
391
  case 5:
398
392
  case "end":
399
393
  return _context2.stop();
@@ -409,13 +403,11 @@ var FcrUIScreenShareProviderBase = exports.FcrUIScreenShareProviderBase = /*#__P
409
403
  key: "enableSmoothMode",
410
404
  value: function enableSmoothMode() {
411
405
  this._isSharingInSmoothMode = true;
412
- this._streamControl.setScreenScenario(_type2.AgoraRtcScreenScenarioType.SMOOTH);
413
406
  }
414
407
  }, {
415
408
  key: "disableSmoothMode",
416
409
  value: function disableSmoothMode() {
417
410
  this._isSharingInSmoothMode = false;
418
- this._streamControl.setScreenScenario(_type2.AgoraRtcScreenScenarioType.CLEARITY);
419
411
  }
420
412
  }, {
421
413
  key: "enableStereoAudioMode",