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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/lib/creator.d.ts +2 -0
  2. package/lib/creator.js +14 -0
  3. package/lib/fragments/annotation/libs.d.ts +7 -6
  4. package/lib/fragments/annotation/libs.js +9 -8
  5. package/lib/fragments/whiteboard/store.js +13 -8
  6. package/lib/global.css +6 -0
  7. package/lib/modules/action-bar/components/screen-share/submenu.js +2 -2
  8. package/lib/modules/action-bar/index.d.ts +2 -0
  9. package/lib/modules/action-bar/index.js +2 -1
  10. package/lib/modules/action-bar/store.d.ts +6 -2
  11. package/lib/modules/action-bar/store.js +56 -93
  12. package/lib/modules/annotation/annotation-toolbar-store.js +2 -2
  13. package/lib/modules/annotation/store.js +12 -14
  14. package/lib/modules/audio-stream/index.js +1 -2
  15. package/lib/modules/chat/components/chat-select/index.js +3 -0
  16. package/lib/modules/components/device-control/store.js +2 -2
  17. package/lib/modules/components/leave-meeting/index.js +4 -1
  18. package/lib/modules/components/member-window/components/video-player/components/local-video-player-with-zoom.d.ts +6 -4
  19. package/lib/modules/components/member-window/components/video-player/components/local-video-player-with-zoom.js +77 -41
  20. package/lib/modules/components/member-window/components/video-player/components/remote-video-player-with-zoom.d.ts +3 -3
  21. package/lib/modules/components/member-window/components/video-player/index.d.ts +3 -3
  22. package/lib/modules/components/member-window/types.d.ts +3 -3
  23. package/lib/modules/control-bar/store.d.ts +10 -8
  24. package/lib/modules/control-bar/store.js +47 -15
  25. package/lib/modules/control-bar/view.js +27 -13
  26. package/lib/modules/device-pretest/store.js +4 -2
  27. package/lib/modules/dialog/components/dialog-container/component/body.js +3 -24
  28. package/lib/modules/dialog/components/dialog-container/index.d.ts +4 -0
  29. package/lib/modules/dialog/components/dialog-container/index.js +67 -44
  30. package/lib/modules/dialog/components/normal-window/index.js +4 -0
  31. package/lib/modules/dialog/dialogs/control-bar/index.js +9 -32
  32. package/lib/modules/dialog/dialogs/sub-window/index.js +4 -0
  33. package/lib/modules/dialog/dialogs/video-window/index.js +28 -23
  34. package/lib/modules/dialog/hooks/useElectron.js +4 -1
  35. package/lib/modules/dialog/level-config.js +1 -1
  36. package/lib/modules/dialog/store.d.ts +4 -3
  37. package/lib/modules/dialog/store.js +14 -10
  38. package/lib/modules/event-confirm/components/window/index.d.ts +5 -2
  39. package/lib/modules/event-confirm/components/window/index.js +38 -14
  40. package/lib/modules/event-confirm/index.css +0 -2
  41. package/lib/modules/event-confirm/store.d.ts +10 -5
  42. package/lib/modules/event-confirm/store.js +62 -13
  43. package/lib/modules/event-confirm/view.js +9 -7
  44. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-user/index.js +1 -2
  45. package/lib/modules/interpreter/store.js +11 -13
  46. package/lib/modules/layout/components/CommonVideoRenderer.js +5 -5
  47. package/lib/modules/layout/store.js +8 -22
  48. package/lib/modules/participant/member-list-data-source.js +3 -5
  49. package/lib/modules/participant/store.js +43 -43
  50. package/lib/modules/secondary-window/index.d.ts +2 -1
  51. package/lib/modules/secondary-window/index.js +5 -0
  52. package/lib/modules/secondary-window/type.d.ts +13 -9
  53. package/lib/modules/secondary-window/view.js +12 -12
  54. package/lib/modules/setting/audio-settings/audio-settings.js +4 -2
  55. package/lib/modules/setting/config.d.ts +4 -0
  56. package/lib/modules/setting/config.js +6 -3
  57. package/lib/modules/setting/store.d.ts +8 -3
  58. package/lib/modules/setting/store.js +104 -74
  59. package/lib/modules/setting/view.js +3 -2
  60. package/lib/modules/share-screen/components/selection/index.js +6 -8
  61. package/lib/modules/share-screen/store.d.ts +9 -10
  62. package/lib/modules/share-screen/store.js +65 -90
  63. package/lib/modules/share-screen/types.d.ts +7 -8
  64. package/lib/modules/video-window/components/members/index.js +3 -3
  65. package/lib/modules/video-window/store.js +3 -3
  66. package/lib/modules/whiteboard/components/control-bar/store.d.ts +3 -0
  67. package/lib/modules/whiteboard/components/control-bar/store.js +20 -11
  68. package/lib/modules/whiteboard/components/toolbar/store.js +2 -2
  69. package/lib/modules/whiteboard/index.d.ts +10 -4
  70. package/lib/modules/whiteboard/index.js +158 -124
  71. package/lib/plugins/module-dev-plugin.js +4 -0
  72. package/lib/providers/annotation-provider.js +3 -3
  73. package/lib/providers/device-privilege-provider.js +13 -12
  74. package/lib/providers/device-provider.d.ts +37 -31
  75. package/lib/providers/device-provider.js +692 -746
  76. package/lib/providers/device-stream-provider.js +4 -4
  77. package/lib/providers/interpreter-provider.js +7 -9
  78. package/lib/providers/multi-display-provider.d.ts +8 -3
  79. package/lib/providers/multi-display-provider.js +18 -6
  80. package/lib/providers/privilege-provider.d.ts +3 -11
  81. package/lib/providers/privilege-provider.js +2 -5
  82. package/lib/providers/renderer-provider.d.ts +3 -3
  83. package/lib/providers/renderer-provider.js +20 -32
  84. package/lib/providers/room-provider.js +14 -15
  85. package/lib/providers/screen-share-provider.d.ts +12 -10
  86. package/lib/providers/screen-share-provider.js +79 -59
  87. package/lib/providers/sharing-provider.js +7 -0
  88. package/lib/providers/whiteboard-provider.js +1 -0
  89. package/lib/scenes/main-scene.js +15 -9
  90. package/lib/schema.d.ts +3 -3
  91. package/lib/schema.js +1 -1
  92. package/lib/shared-data-source/confirm-data.d.ts +19 -0
  93. package/lib/shared-data-source/confirm-data.js +119 -15
  94. package/lib/shared-data-source/screen-share-data.d.ts +29 -28
  95. package/lib/shared-data-source/screen-share-data.js +14 -8
  96. package/lib/shared-data-source/setting.js +2 -2
  97. package/lib/shared-data-source/whiteboard-data.d.ts +7 -5
  98. package/lib/shared-data-source/whiteboard-data.js +9 -8
  99. package/lib/ui-scene.d.ts +2 -0
  100. package/lib/ui-scene.js +77 -21
  101. package/lib/utilities/constant.d.ts +5 -0
  102. package/lib/utilities/constant.js +7 -2
  103. package/lib/utilities/default-config.d.ts +4 -0
  104. package/lib/utilities/default-config.js +8 -4
  105. package/lib/utilities/dialog-utils.d.ts +3 -2
  106. package/lib/utilities/dialog-utils.js +33 -14
  107. package/lib/utilities/package-info.d.ts +3 -0
  108. package/lib/utilities/package-info.js +15 -0
  109. package/lib/waiting-room-control-manager.js +6 -6
  110. package/package.json +6 -6
  111. package/public/index.html +5 -0
@@ -3,8 +3,6 @@
3
3
  require("core-js/modules/es.symbol.js");
4
4
  require("core-js/modules/es.symbol.description.js");
5
5
  require("core-js/modules/es.symbol.to-primitive.js");
6
- require("core-js/modules/es.error.cause.js");
7
- require("core-js/modules/es.error.to-string.js");
8
6
  require("core-js/modules/es.array.is-array.js");
9
7
  require("core-js/modules/es.array.iterator.js");
10
8
  require("core-js/modules/es.date.to-primitive.js");
@@ -39,6 +37,8 @@ Object.defineProperty(exports, "__esModule", {
39
37
  });
40
38
  exports.FcrUIScreenShareProviderImpl = void 0;
41
39
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
40
+ require("core-js/modules/es.error.cause.js");
41
+ require("core-js/modules/es.error.to-string.js");
42
42
  require("core-js/modules/es.array.concat.js");
43
43
  require("core-js/modules/es.array.find.js");
44
44
  require("core-js/modules/es.array.for-each.js");
@@ -70,27 +70,24 @@ var _logger = require("../utilities/logger");
70
70
  var _imports = require("fcr-core/lib/imports");
71
71
  var _decorator = require("agora-foundation/lib/decorator");
72
72
  var _types = require("fcr-core/lib/room-control/whiteboard-control/types");
73
- var _type = require("agora-rte-sdk/lib/core/rtc/type");
74
73
  var _rendererEvent = require("../utilities/renderer-event");
75
74
  var _tools = require("../utilities/tools");
75
+ var _type = require("fcr-core/lib/type");
76
76
  var _i18n = require("agora-ui-foundation/lib/i18n");
77
77
  var _constant = require("../utilities/constant");
78
78
  var _lodash = require("lodash");
79
79
  var _config = require("../modules/setting/config");
80
80
  var _FcrUIScreenShareProviderImpl;
81
- var _initProto, _zoomOutDecs, _zoomInDecs, _fullContainerDecs, _setOriginScalcDecs, _handleScreenCaptureStateUpdatedDecs, _handleShareStopWithAudioDecs, _replaceScreenShareDecs, _handleRemoteVideoStatsUpdatedDecs, _handleStreamUpdateDecs, _syncScreenShareStreamInfosDecs, _releaseDecs, _startShareScreenDecs, _handleShareStartWithAudioDecs, _ref;
81
+ var _initProto, _zoomOutDecs, _zoomInDecs, _fullContainerDecs, _setOriginScalcDecs, _handleScreenCaptureStateUpdatedDecs, _replaceScreenShareDecs, _handleRemoteVideoStatsUpdatedDecs, _handleStreamUpdateDecs, _syncScreenShareStreamInfosDecs, _releaseDecs, _startShareScreenDecs, _updateShareAudioPrivilegeDecs, _handleShareStopWithAudioDecs, _handleShareStartWithAudioDecs, _ref;
82
82
  function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function set(e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O["static"] = l, O["private"] = f, f ? 2 === o ? k = function k(e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function k(e) { return e[n]; }, (o < 2 || 4 === o) && (F = function F(e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == _typeof(P) && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol["for"]("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function s(t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
83
83
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
84
84
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
85
85
  function _setFunctionName(e, t, n) { "symbol" == _typeof(t) && (t = (t = t.description) ? "[" + t + "]" : ""); try { Object.defineProperty(e, "name", { configurable: !0, value: n ? n + " " + t : t }); } catch (e) {} return e; }
86
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; }
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");
87
+ _ref = (_zoomOutDecs = [_mobx.action, _mobx.action.bound], _zoomInDecs = [_mobx.action, _mobx.action.bound], _fullContainerDecs = [_mobx.action, _mobx.action.bound], _setOriginScalcDecs = [_mobx.action, _mobx.action.bound], _handleScreenCaptureStateUpdatedDecs = [_mobx.action, _mobx.action.bound], _replaceScreenShareDecs = [_mobx.action, _mobx.action.bound], _handleRemoteVideoStatsUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleStreamUpdateDecs = [_mobx.action, _mobx.action.bound], _syncScreenShareStreamInfosDecs = [_mobx.action, _mobx.action.bound], _releaseDecs = [_mobx.action, _mobx.action.bound], _startShareScreenDecs = [_mobx.action, _mobx.action.bound], _updateShareAudioPrivilegeDecs = [_mobx.action, _mobx.action.bound], _handleShareStopWithAudioDecs = [_mobx.action, _mobx.action.bound], _handleShareStartWithAudioDecs = [_mobx.action, _mobx.action.bound], "logger");
88
88
  var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__PURE__*/function () {
89
89
  function FcrUIScreenShareProviderImpl(_deviceProvider, _eventProvider, _roomProvider, _sharingProvider, _sharedScreenShareSharedDataSource, _sharedMemberDataSource, _privilegeProvider) {
90
- var _this = this,
91
- _this$_roomProvider$c,
92
- _this$_roomProvider$c2,
93
- _this$_streamControl;
90
+ var _this = this;
94
91
  (0, _classCallCheck2["default"])(this, FcrUIScreenShareProviderImpl);
95
92
  (0, _defineProperty2["default"])(this, _ref, (_initProto(this), (0, _logger.createLogger)({
96
93
  prefix: 'FcrUIScreenShareProviderImpl'
@@ -130,9 +127,9 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
130
127
  this._sharedScreenShareSharedDataSource = _sharedScreenShareSharedDataSource;
131
128
  this._sharedMemberDataSource = _sharedMemberDataSource;
132
129
  this._privilegeProvider = _privilegeProvider;
133
- this._sharingControl = (_this$_roomProvider$c = this._roomProvider.currentRoomControl) === null || _this$_roomProvider$c === void 0 ? void 0 : _this$_roomProvider$c.getSharingControl();
134
- this._streamControl = (_this$_roomProvider$c2 = this._roomProvider.currentRoomControl) === null || _this$_roomProvider$c2 === void 0 ? void 0 : _this$_roomProvider$c2.getStreamControl();
135
- (_this$_streamControl = this._streamControl) === null || _this$_streamControl === void 0 || _this$_streamControl.addObserver(this._streamObserver);
130
+ this._sharingControl = this._currentRoomControl.getSharingControl();
131
+ this._streamControl = this._currentRoomControl.getStreamControl();
132
+ this._streamControl.addObserver(this._streamObserver);
136
133
  this._syncScreenShareStreamInfos();
137
134
  this._addEventListeners();
138
135
  this._syncShareStreamState();
@@ -167,6 +164,15 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
167
164
  get: function get() {
168
165
  return this._sharedScreenShareSharedDataSource.screenShareScenarioType;
169
166
  }
167
+ }, {
168
+ key: "_currentRoomControl",
169
+ get: function get() {
170
+ var currentRoomControl = this._roomProvider.currentRoomControl;
171
+ if (!currentRoomControl) {
172
+ throw new Error('currentRoomControl is not initialized');
173
+ }
174
+ return currentRoomControl;
175
+ }
170
176
  }, {
171
177
  key: "setSharingInReplace",
172
178
  value: function setSharingInReplace(isInReplace) {
@@ -222,10 +228,9 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
222
228
  }, {
223
229
  key: "currentScreenSharingOwner",
224
230
  get: function get() {
225
- var _this$_streamControl2;
226
- var allStreams = (_this$_streamControl2 = this._streamControl) === null || _this$_streamControl2 === void 0 ? void 0 : _this$_streamControl2.getStreamList();
227
- var screenShareStream = allStreams === null || allStreams === void 0 ? void 0 : allStreams.find(function (stream) {
228
- return stream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN && (stream.streamType === _imports.AgoraRteMediaStreamType.BOTH || stream.streamType === _imports.AgoraRteMediaStreamType.VIDEO);
231
+ var allStreams = this._streamControl.getStreamList();
232
+ var screenShareStream = allStreams.find(function (stream) {
233
+ return stream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN && (stream.streamType === _type.FcrStreamType.BOTH || stream.streamType === _type.FcrStreamType.VIDEO);
229
234
  });
230
235
  if (screenShareStream) {
231
236
  return screenShareStream.owner;
@@ -327,24 +332,13 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
327
332
  }
328
333
  this._sharedScreenShareSharedDataSource.setLocalUserScreenSharingState(state);
329
334
  }
330
- }, {
331
- key: "_handleShareStopWithAudio",
332
- value: function _handleShareStopWithAudio() {
333
- if (!this.shareAudioTrack) {
334
- return;
335
- }
336
- if (this._deviceProvider.isCapabilitySupported(_fcrCore.FcrCapability.LOOPBACK_CAPTURE)) {
337
- this.logger.info('[screen-share-provider][handleShareStopWithAudio] shareAudioTrack.stop');
338
- this.shareAudioTrack.stop();
339
- }
340
- }
341
335
  }, {
342
336
  key: "replaceScreenShare",
343
337
  value: function replaceScreenShare(id, type, withAudio, bounds) {
344
338
  var _this2 = this;
345
339
  this.logger.info('screen-share-provider: replaceScreenShare start');
346
340
  var shareWithAudio = (0, _lodash.isBoolean)(withAudio) ? withAudio : this._sharedScreenShareSharedDataSource.shareWithAudio;
347
- this.toggleScreenshareWithAudio(shareWithAudio);
341
+ this._sharedScreenShareSharedDataSource.setShareWithAudio(shareWithAudio);
348
342
  this._isReplaceScreen = true;
349
343
  this.setSharingInReplace(true);
350
344
  if (this.screenTrack) {
@@ -366,12 +360,15 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
366
360
  return _this2.startShareScreen(id, type, withAudio, true);
367
361
  case 1:
368
362
  _this2._sharedScreenShareSharedDataSource.setCurrentShareIdInfos(id, type, bounds);
369
- if (_this2.currentShareStreamId && _this2._streamControl) {
363
+ if (_this2.currentShareStreamId) {
370
364
  _this2._streamControl.bindLocalStreams([{
371
365
  streamId: _this2.currentShareStreamId,
372
366
  audioSourceId: _this2.loopbackAudioSourceId,
373
367
  videoSourceId: id
374
368
  }]);
369
+ _this2.toggleScreenshareWithAudio(shareWithAudio);
370
+ } else {
371
+ _this2.logger.error('currentShareStreamId is not set');
375
372
  }
376
373
  case 2:
377
374
  case "end":
@@ -393,8 +390,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
393
390
  }, {
394
391
  key: "_handleRemoteVideoStatsUpdated",
395
392
  value: function _handleRemoteVideoStatsUpdated(roomId, streamId, videoStats) {
396
- var _this$_streamControl3;
397
- var stream = (_this$_streamControl3 = this._streamControl) === null || _this$_streamControl3 === void 0 ? void 0 : _this$_streamControl3.getStreamByStreamId(streamId);
393
+ var stream = this._streamControl.getStreamByStreamId(streamId);
398
394
  if ((stream === null || stream === void 0 ? void 0 : stream.videoSourceType) === _fcrCore.FcrVideoSourceType.SCREEN) {
399
395
  var _videoStats$dimension = videoStats.dimensions,
400
396
  width = _videoStats$dimension.width,
@@ -420,6 +416,9 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
420
416
  }, {
421
417
  key: "loopbackAudioSourceId",
422
418
  get: function get() {
419
+ if (!this._sharedScreenShareSharedDataSource.loopbackAudioSourceId) {
420
+ throw new Error('loopbackAudioSourceId is null');
421
+ }
423
422
  return this._sharedScreenShareSharedDataSource.loopbackAudioSourceId;
424
423
  }
425
424
  }, {
@@ -451,7 +450,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
451
450
  key: "createScreenShareWithSelectionId",
452
451
  value: function () {
453
452
  var _createScreenShareWithSelectionId = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(videoSourceId, bounds) {
454
- var audioSourceId, _this$_sharingControl, targetEncoderConfig, streamId;
453
+ var audioSourceId, targetEncoderConfig, shareWithAudio, streamId;
455
454
  return _regenerator["default"].wrap(function (_context3) {
456
455
  while (1) switch (_context3.prev = _context3.next) {
457
456
  case 0:
@@ -463,15 +462,20 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
463
462
  }
464
463
  targetEncoderConfig = this.screenShareScenarioType === _imports.FcrScreenScenarioType.CLEARITY ? _config.clearityEncoderConfig : _config.smoothEncoderConfig;
465
464
  this._streamControl.setScreenScenario(this.screenShareScenarioType);
465
+ shareWithAudio = this._sharedScreenShareSharedDataSource.shareWithAudio;
466
466
  _context3.next = 1;
467
- return (_this$_sharingControl = this._sharingControl) === null || _this$_sharingControl === void 0 ? void 0 : _this$_sharingControl.startScreenSharing({
468
- streamType: _imports.AgoraRteMediaStreamType.BOTH,
467
+ return this._sharingControl.startScreenSharing({
468
+ streamType: shareWithAudio ? _type.FcrStreamType.BOTH : _type.FcrStreamType.VIDEO,
469
469
  videoSourceId: videoSourceId,
470
470
  audioSourceId: audioSourceId
471
471
  }, bounds);
472
472
  case 1:
473
473
  streamId = _context3.sent;
474
- this._streamControl.setVideoEncoderConfig(streamId, targetEncoderConfig, _type.AgoraRtcVideoStreamType.HIGH_STREAM);
474
+ if (shareWithAudio) {
475
+ this._updateShareAudioPrivilege(streamId, true);
476
+ this._handleShareStartWithAudio();
477
+ }
478
+ this._streamControl.setVideoEncoderConfig(streamId, targetEncoderConfig, _type.FcrVideoStreamType.HIGH_STREAM);
475
479
  return _context3.abrupt("return", Promise.resolve(streamId));
476
480
  case 2:
477
481
  return _context3.abrupt("return", Promise.reject());
@@ -551,14 +555,14 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
551
555
  case 'remove':
552
556
  var seizeStream = events.find(function (event) {
553
557
  var _event$cause2, _event$operatorUser;
554
- return event.modifiedStream.videoSourceType === _imports.AgoraRteVideoSourceType.SCREEN && ((_event$cause2 = event.cause) === null || _event$cause2 === void 0 || (_event$cause2 = _event$cause2.data) === null || _event$cause2 === void 0 ? void 0 : _event$cause2.reason) === _types.FcrBoardInactiveReason.SEIZE && ((_event$operatorUser = event.operatorUser) === null || _event$operatorUser === void 0 ? void 0 : _event$operatorUser.userId) !== event.modifiedStream.owner.userId;
558
+ return event.modifiedStream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN && ((_event$cause2 = event.cause) === null || _event$cause2 === void 0 || (_event$cause2 = _event$cause2.data) === null || _event$cause2 === void 0 ? void 0 : _event$cause2.reason) === _types.FcrBoardInactiveReason.SEIZE && ((_event$operatorUser = event.operatorUser) === null || _event$operatorUser === void 0 ? void 0 : _event$operatorUser.userId) !== event.modifiedStream.owner.userId;
555
559
  });
556
560
  if ((seizeStream === null || seizeStream === void 0 || (_seizeStream$operator = seizeStream.operatorUser) === null || _seizeStream$operator === void 0 ? void 0 : _seizeStream$operator.userId) !== this.localUserId && (seizeStream === null || seizeStream === void 0 ? void 0 : seizeStream.modifiedStream.owner.userId) === this.localUserId) {
557
561
  this._observable.notifyObservers('onScreenShareSeize');
558
562
  this._sharedScreenShareSharedDataSource.setIsSeizeStream(true);
559
563
  }
560
564
  var mySharingScreenRemoved = events.some(function (event) {
561
- return event.modifiedStream.videoSourceType === _imports.AgoraRteVideoSourceType.SCREEN && event.modifiedStream.owner.userId === _this4.localUserId;
565
+ return event.modifiedStream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN && event.modifiedStream.owner.userId === _this4.localUserId;
562
566
  });
563
567
  if (mySharingScreenRemoved) {
564
568
  this.setSharingInReplace(false);
@@ -597,14 +601,14 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
597
601
  }, {
598
602
  key: "_syncScreenShareStreamInfos",
599
603
  value: function _syncScreenShareStreamInfos() {
600
- var _this$_roomProvider$c3, _streams$find;
601
- var streams = (_this$_roomProvider$c3 = this._roomProvider.currentRoomControl) === null || _this$_roomProvider$c3 === void 0 ? void 0 : _this$_roomProvider$c3.getStreamControl().getStreamList();
604
+ var _this$_roomProvider$c, _streams$find;
605
+ var streams = (_this$_roomProvider$c = this._roomProvider.currentRoomControl) === null || _this$_roomProvider$c === void 0 ? void 0 : _this$_roomProvider$c.getStreamControl().getStreamList();
602
606
  var isSharingScreen = streams === null || streams === void 0 ? void 0 : streams.some(function (stream) {
603
- return stream.videoSourceType === _imports.AgoraRteVideoSourceType.SCREEN;
607
+ return stream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN;
604
608
  });
605
609
  this._sharedScreenShareSharedDataSource.setIsSharingScreen(!!isSharingScreen);
606
610
  var screenSharingOwner = streams === null || streams === void 0 || (_streams$find = streams.find(function (stream) {
607
- return stream.videoSourceType === _imports.AgoraRteVideoSourceType.SCREEN;
611
+ return stream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN;
608
612
  })) === null || _streams$find === void 0 ? void 0 : _streams$find.owner;
609
613
  this._sharedScreenShareSharedDataSource.setScreenSharingOwner(screenSharingOwner);
610
614
  }
@@ -632,11 +636,10 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
632
636
  }, {
633
637
  key: "release",
634
638
  value: function release() {
635
- var _this$_streamControl4;
636
639
  this.logger.info('[screen-share-provider] in release');
637
640
  this._hasStop = false;
638
641
  this.stop();
639
- (_this$_streamControl4 = this._streamControl) === null || _this$_streamControl4 === void 0 || _this$_streamControl4.removeObserver(this._streamObserver);
642
+ this._streamControl.removeObserver(this._streamObserver);
640
643
  this._removeEventListeners();
641
644
  }
642
645
  }, {
@@ -665,6 +668,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
665
668
  _t = undefined;
666
669
  case 4:
667
670
  excludeWindows = _t;
671
+ this._sharedScreenShareSharedDataSource.setShareWithAudio(withAudio);
668
672
  if (!((0, _env.isElectron)() && !isReplace)) {
669
673
  _context4.next = 6;
670
674
  break;
@@ -677,17 +681,16 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
677
681
  this._sharedScreenShareSharedDataSource.setCurrentShareStreamId(streamId);
678
682
  }
679
683
  case 6:
680
- this._sharedScreenShareSharedDataSource.setShareWithAudio(withAudio);
681
- this.toggleScreenshareWithAudio(withAudio);
682
684
  screenTrack = this._deviceProvider.getScreenTrack(id);
683
685
  this.setScreenTrack(screenTrack);
684
686
  this.logger.info("[screen-share-provider]: start share screen with track start, excludeWindows: ".concat(JSON.stringify(excludeWindows)));
685
687
  (_this$screenTrack3 = this.screenTrack) === null || _this$screenTrack3 === void 0 || _this$screenTrack3.addObserver(this._screenCaptureObserver);
686
- (_this$screenTrack4 = this.screenTrack) === null || _this$screenTrack4 === void 0 || _this$screenTrack4.start(type, {
687
- withAudio: withAudio,
688
- excludeWindows: excludeWindows,
689
- frameRate: frameRate
690
- });
688
+ // this.screenTrack?.start(type, {
689
+ // withAudio,
690
+ // excludeWindows,
691
+ // frameRate,
692
+ // });
693
+ (_this$screenTrack4 = this.screenTrack) === null || _this$screenTrack4 === void 0 || _this$screenTrack4.start(type, excludeWindows !== null && excludeWindows !== void 0 ? excludeWindows : []);
691
694
  _context4.next = 8;
692
695
  break;
693
696
  case 7:
@@ -728,6 +731,25 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
728
731
  this._stopScreenTrack();
729
732
  this._cleanShareWithAudioDataSource();
730
733
  }
734
+ }, {
735
+ key: "_updateShareAudioPrivilege",
736
+ value: function _updateShareAudioPrivilege(streamId, withAudio) {
737
+ this._streamControl.updatePublishPrivilegeOfStreams((0, _defineProperty2["default"])({}, streamId, {
738
+ audioPrivilege: withAudio ? _fcrCore.FcrStreamPrivilegeOperation.HAS_PRIVILEGE : _fcrCore.FcrStreamPrivilegeOperation.NOPRIVILEGE,
739
+ videoPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOOPERATION
740
+ }));
741
+ }
742
+ }, {
743
+ key: "_handleShareStopWithAudio",
744
+ value: function _handleShareStopWithAudio() {
745
+ if (!this.shareAudioTrack) {
746
+ return;
747
+ }
748
+ if (this._deviceProvider.isCapabilitySupported(_fcrCore.FcrCapability.LOOPBACK_CAPTURE)) {
749
+ this.logger.info('[screen-share-provider][handleShareStopWithAudio] shareAudioTrack.stop');
750
+ this.shareAudioTrack.stop();
751
+ }
752
+ }
731
753
  }, {
732
754
  key: "_handleShareStartWithAudio",
733
755
  value: function _handleShareStartWithAudio() {
@@ -742,16 +764,15 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
742
764
  value: function toggleScreenshareWithAudio(withAudio) {
743
765
  this._sharedScreenShareSharedDataSource.setShareWithAudio(withAudio);
744
766
  this.logger.info("[screen-share-provider] current-share with audio: ".concat(withAudio));
745
- if (this.currentShareStreamId && this._streamControl) {
746
- this._streamControl.updatePublishPrivilegeOfStreams((0, _defineProperty2["default"])({}, this.currentShareStreamId, {
747
- audioPrivilege: withAudio ? _fcrCore.FcrStreamPrivilegeOperation.HAS_PRIVILEGE : _fcrCore.FcrStreamPrivilegeOperation.NOPRIVILEGE,
748
- videoPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOOPERATION
749
- }));
767
+ if (this.currentShareStreamId) {
768
+ this._updateShareAudioPrivilege(this.currentShareStreamId, withAudio);
750
769
  if (withAudio) {
751
770
  this._handleShareStartWithAudio();
752
771
  } else {
753
772
  this._handleShareStopWithAudio();
754
773
  }
774
+ } else {
775
+ this.logger.error('currentShareStreamId is not set');
755
776
  }
756
777
  }
757
778
  }, {
@@ -797,10 +818,9 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
797
818
  key: "removeScreenStream",
798
819
  value: function removeScreenStream() {
799
820
  try {
800
- var _this$_streamControl5;
801
821
  this.logger.info('screen-share-provider: remove screen streams');
802
- (_this$_streamControl5 = this._streamControl) === null || _this$_streamControl5 === void 0 || _this$_streamControl5.removeScreenStream();
803
- this._sharedScreenShareSharedDataSource.setCurrentShareStreamId('');
822
+ this._streamControl.removeScreenStream();
823
+ this._sharedScreenShareSharedDataSource.setCurrentShareStreamId(undefined);
804
824
  return true;
805
825
  } catch (error) {
806
826
  this.logger.error('removeScreenStream error', error);
@@ -825,6 +845,6 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
825
845
  }]);
826
846
  }();
827
847
  _FcrUIScreenShareProviderImpl = FcrUIScreenShareProviderImpl;
828
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIScreenShareProviderImpl, [[_decorator.bound, 2, "setSharingInReplace"], [_zoomOutDecs, 18, "zoomOut"], [_zoomInDecs, 18, "zoomIn"], [_fullContainerDecs, 18, "fullContainer"], [_mobx.computed, 3, "isAspectRatioPreserved"], [_setOriginScalcDecs, 18, "setOriginScalc"], [_decorator.bound, 2, "stop"], [_decorator.bound, 2, "bootstrap"], [_decorator.bound, 2, "_handleWebScreenCaptureStateUpdated"], [_handleScreenCaptureStateUpdatedDecs, 18, "_handleScreenCaptureStateUpdated"], [_handleShareStopWithAudioDecs, 18, "_handleShareStopWithAudio"], [_replaceScreenShareDecs, 18, "replaceScreenShare"], [_handleRemoteVideoStatsUpdatedDecs, 18, "_handleRemoteVideoStatsUpdated"], [_decorator.bound, 2, "_syncShareStreamState"], [_handleStreamUpdateDecs, 18, "_handleStreamUpdate"], [_decorator.bound, 2, "startRenderSharePreview"], [_decorator.bound, 2, "stopRenderSharePreview"], [_syncScreenShareStreamInfosDecs, 18, "_syncScreenShareStreamInfos"], [_releaseDecs, 18, "release"], [_startShareScreenDecs, 18, "startShareScreen"], [_decorator.bound, 2, "stopShareScreen"], [_decorator.bound, 2, "stopShareScreenByExitRoom"], [_handleShareStartWithAudioDecs, 18, "_handleShareStartWithAudio"], [_decorator.bound, 2, "toggleScreenshareWithAudio"], [_decorator.bound, 2, "_getExcludeWindows"], [_decorator.bound, 2, "removeScreenStream"], [_decorator.bound, 2, "_stopScreenTrack"], [_decorator.bound, 2, "_cleanShareWithAudioDataSource"]], []).e, 1);
848
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIScreenShareProviderImpl, [[_decorator.bound, 2, "setSharingInReplace"], [_zoomOutDecs, 18, "zoomOut"], [_zoomInDecs, 18, "zoomIn"], [_fullContainerDecs, 18, "fullContainer"], [_mobx.computed, 3, "isAspectRatioPreserved"], [_setOriginScalcDecs, 18, "setOriginScalc"], [_decorator.bound, 2, "stop"], [_decorator.bound, 2, "bootstrap"], [_decorator.bound, 2, "_handleWebScreenCaptureStateUpdated"], [_handleScreenCaptureStateUpdatedDecs, 18, "_handleScreenCaptureStateUpdated"], [_replaceScreenShareDecs, 18, "replaceScreenShare"], [_handleRemoteVideoStatsUpdatedDecs, 18, "_handleRemoteVideoStatsUpdated"], [_decorator.bound, 2, "_syncShareStreamState"], [_handleStreamUpdateDecs, 18, "_handleStreamUpdate"], [_decorator.bound, 2, "startRenderSharePreview"], [_decorator.bound, 2, "stopRenderSharePreview"], [_syncScreenShareStreamInfosDecs, 18, "_syncScreenShareStreamInfos"], [_releaseDecs, 18, "release"], [_startShareScreenDecs, 18, "startShareScreen"], [_decorator.bound, 2, "stopShareScreen"], [_decorator.bound, 2, "stopShareScreenByExitRoom"], [_updateShareAudioPrivilegeDecs, 18, "_updateShareAudioPrivilege"], [_handleShareStopWithAudioDecs, 18, "_handleShareStopWithAudio"], [_handleShareStartWithAudioDecs, 18, "_handleShareStartWithAudio"], [_decorator.bound, 2, "toggleScreenshareWithAudio"], [_decorator.bound, 2, "_getExcludeWindows"], [_decorator.bound, 2, "removeScreenStream"], [_decorator.bound, 2, "_stopScreenTrack"], [_decorator.bound, 2, "_cleanShareWithAudioDataSource"]], []).e, 1);
829
849
  _initProto = _applyDecs$e[0];
830
850
  (0, _base.registerDependency)('screenShareProvider');
@@ -89,6 +89,9 @@ var FcrUISharingProviderImpl = exports.FcrUISharingProviderImpl = /*#__PURE__*/f
89
89
  }
90
90
  },
91
91
  onWhiteboardStarted: function onWhiteboardStarted(ownerId, operatorUser) {
92
+ if (_this.whiteboardState === _type.FcrWhiteboardState.START) {
93
+ return;
94
+ }
92
95
  _this.whiteboardOwnerId = ownerId;
93
96
  _this.whiteboardState = _type.FcrWhiteboardState.START;
94
97
  var owner = _this._userControl.getUser(ownerId);
@@ -102,9 +105,13 @@ var FcrUISharingProviderImpl = exports.FcrUISharingProviderImpl = /*#__PURE__*/f
102
105
  _this.logger.info("[sharing-provider]: onWhiteboardStarted ".concat(ownerId, ", ").concat(JSON.stringify(operatorUser), ", backgroundColor: ").concat(_this._whiteboardProvider.backgroundColor));
103
106
  },
104
107
  onWhiteboardEnded: function onWhiteboardEnded(reason, operatorUser) {
108
+ if (_this.whiteboardState === _type.FcrWhiteboardState.END) {
109
+ return;
110
+ }
105
111
  _this._sharedWhiteboardDataSource.setJoinSuccess(false);
106
112
  _this._sharedWhiteboardDataSource.setShowLoading(true);
107
113
  _this._sharedWhiteboardDataSource.inActive();
114
+ _this._sharedWhiteboardDataSource.setSharingUser(undefined);
108
115
  _this.logger.info("[sharing-provider]: onWhiteboardEnded, joinSuccess: ".concat(_this._sharedWhiteboardDataSource.joinSuccess));
109
116
  _this.whiteboardState = _type.FcrWhiteboardState.END;
110
117
  }
@@ -78,6 +78,7 @@ var FcrUIWhiteboardProviderImpl = exports.FcrUIWhiteboardProviderImpl = /*#__PUR
78
78
  },
79
79
  onInactive: function onInactive(reason, operatorUser) {
80
80
  _this.logger.info("[whiteboard-provider]: onInactive ".concat(reason, ", ").concat(JSON.stringify(operatorUser)));
81
+ _this._sharedWhiteboardDataSource.setSharingUser(undefined);
81
82
  },
82
83
  onConnectionStateUpdated: function onConnectionStateUpdated(state) {
83
84
  _this.logger.info("[whiteboard-provider]: onConnectionStateUpdated ".concat(state));
@@ -141,6 +141,7 @@ var _jsxRuntime = require("react/jsx-runtime");
141
141
  var _FcrMainUIScene;
142
142
  var _initProto; // import DeviceSettingDialog from '../modules/dialog/dialogs/device-setting';
143
143
  // import { RemoveAdmitWaitingRoomDialog } from '../modules/dialog/components/remove-admit-waiting-room';
144
+ // import { SettingUIModule } from '../modules/setting';
144
145
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
145
146
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
146
147
  function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function set(e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O["static"] = l, O["private"] = f, f ? 2 === o ? k = function k(e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function k(e) { return e[n]; }, (o < 2 || 4 === o) && (F = function F(e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == _typeof(P) && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol["for"]("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function s(t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
@@ -203,7 +204,6 @@ var FcrMainUIScene = exports.FcrMainUIScene = /*#__PURE__*/function (_FcrBaseUIS
203
204
  var waitingRoomControlProvider = new _roomProvider.FcrUIWaitingRoomControlProviderImpl(roomProvider, eventProvider);
204
205
  var monitorProvider = new _monitorProvider.FcrUIMonitorProviderImpl(engine.getMonitorControl());
205
206
  var chatProvider = new _chatProvider.FcrUIChatProviderImpl(currentRoomControlProvider.currentRoomControl, roomProvider);
206
- var sharedWhiteboardDataSource = new _whiteboardData.FcrUISharedWhiteboardDataSourceImpl(sharingControl.getBoardControl(), privilegeProvider);
207
207
  var sharedWaitingRoomDataSource = new _waitingRoom.FcrUISharedWaitingRoomDataSourceImpl(roomProvider, eventProvider);
208
208
  var phoneAudioConnectorProvider = new _phoneAudioProvider.FcrUIPhoneAudioConnectorProviderImpl({
209
209
  roomControl: mainRoomControl,
@@ -215,23 +215,29 @@ var FcrMainUIScene = exports.FcrMainUIScene = /*#__PURE__*/function (_FcrBaseUIS
215
215
  mainRoomControl: mainRoomControl
216
216
  });
217
217
  var sharedMemberDataSource = new _memberData.FcrUIMemberSharedDataSourceImpl(userControl, streamControl, sharedScreenShareSharedDataSource, eventProvider, mainRoomControl.getSharingControl().getBoardControl());
218
+ var fcrUIMainWindowRenderer = new _secondaryWindow.FcrUIMainWindowRendererImpl();
219
+ // @ts-ignore
220
+ window.FcrUIMainWindowRenderer = fcrUIMainWindowRenderer;
221
+ var sharedWhiteboardDataSource = new _whiteboardData.FcrUISharedWhiteboardDataSourceImpl(sharingControl.getBoardControl(), privilegeProvider, fcrUIMainWindowRenderer);
218
222
  var whiteboardProvider = new _whiteboardProvider.FcrUIWhiteboardProviderImpl(sharingControl.getBoardControl(), sharedWhiteboardDataSource, userControl);
219
223
  var sharingProvider = new _sharingProvider.FcrUISharingProviderImpl(sharingControl, sharedScreenShareSharedDataSource, sharedWhiteboardDataSource, whiteboardProvider, userControl);
220
- var screenShareProvider = new _screenShareProvider.FcrUIScreenShareProviderImpl(deviceProvider, eventProvider, roomProvider, sharingProvider, sharedScreenShareSharedDataSource, sharedMemberDataSource, privilegeProvider);
221
- var annotationProvider = new _annotationProvider.FcrUIAnnotationProviderImpl(dialogProvider, sharedVideoWindowDataSource, privilegeProvider, sharedScreenShareSharedDataSource);
222
- var sharedSecurityDataSource = new _securityData.FcrUISecuritySharedDataSourceImpl(privilegeProvider, sharedMemberDataSource);
223
- var sharedApplistDataSource = new _appListData.FcrUISharedApplistSourceImpl(abilityProvider, privilegeProvider, roomProvider, widgetProvider, sharedMemberDataSource, sharedInterpreterDataSource);
224
- var sharedAnnotationDataSource = new _annotationData.FcrUISharedAnnotationSourceImpl();
225
- var applistProvider = new _appListProvider.FcrUIApplistProviderImpl(dialogProvider, eventProvider, widgetProvider, sharedApplistDataSource);
226
- var localVideoRenderProvider = new _rendererProvider.FcrUILocalVideoRenderProviderImpl(deviceProvider, sharedScreenShareSharedDataSource);
227
224
  var multiDisplayProvider = new _multiDisplayProvider.FcrUIMultiDisplayProviderImpl({
228
225
  eventProvider: eventProvider,
229
226
  sharedSettingDataSource: sharedSettingDataSource,
230
227
  sharedMemberDataSource: sharedMemberDataSource,
231
228
  sharedVideoWindowDataSource: sharedVideoWindowDataSource,
232
229
  sharingProvider: sharingProvider,
233
- sharedScreenShareSharedDataSource: sharedScreenShareSharedDataSource
230
+ sharedScreenShareSharedDataSource: sharedScreenShareSharedDataSource,
231
+ fcrUIMainWindowRenderer: fcrUIMainWindowRenderer,
232
+ sharedWhiteboardDataSource: sharedWhiteboardDataSource
234
233
  });
234
+ var screenShareProvider = new _screenShareProvider.FcrUIScreenShareProviderImpl(deviceProvider, eventProvider, roomProvider, sharingProvider, sharedScreenShareSharedDataSource, sharedMemberDataSource, privilegeProvider);
235
+ var annotationProvider = new _annotationProvider.FcrUIAnnotationProviderImpl(dialogProvider, sharedVideoWindowDataSource, privilegeProvider, sharedScreenShareSharedDataSource);
236
+ var sharedSecurityDataSource = new _securityData.FcrUISecuritySharedDataSourceImpl(privilegeProvider, sharedMemberDataSource);
237
+ var sharedApplistDataSource = new _appListData.FcrUISharedApplistSourceImpl(abilityProvider, privilegeProvider, roomProvider, widgetProvider, sharedMemberDataSource, sharedInterpreterDataSource);
238
+ var sharedAnnotationDataSource = new _annotationData.FcrUISharedAnnotationSourceImpl();
239
+ var applistProvider = new _appListProvider.FcrUIApplistProviderImpl(dialogProvider, eventProvider, widgetProvider, sharedApplistDataSource);
240
+ var localVideoRenderProvider = new _rendererProvider.FcrUILocalVideoRenderProviderImpl(deviceProvider, sharedScreenShareSharedDataSource);
235
241
  _this.messageProvider = messageProvider;
236
242
  _this.dialogProvider = dialogProvider;
237
243
  _this.eventProvider = eventProvider;
package/lib/schema.d.ts CHANGED
@@ -128,15 +128,15 @@ export type FcrUISceneConfigSchema = z.infer<typeof fcrUISceneConfigSchema>;
128
128
  export declare const fcrUISceneCallbackSchema: z.ZodFunction<z.ZodTuple<[z.ZodString], z.ZodUnknown>, z.ZodVoid>;
129
129
  export type FcrUISceneCallbackSchema = z.infer<typeof fcrUISceneCallbackSchema>;
130
130
  export declare const fcrUISceneFailureCallbackSchema: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodObject<{
131
- code: z.ZodString;
131
+ code: z.ZodNumber;
132
132
  message: z.ZodString;
133
133
  origin: z.ZodOptional<z.ZodUnion<[z.ZodType<Error, z.ZodTypeDef, Error>, z.ZodUndefined]>>;
134
134
  }, "strip", z.ZodTypeAny, {
135
- code: string;
135
+ code: number;
136
136
  message: string;
137
137
  origin?: Error | undefined;
138
138
  }, {
139
- code: string;
139
+ code: number;
140
140
  message: string;
141
141
  origin?: Error | undefined;
142
142
  }>], z.ZodUnknown>, z.ZodVoid>;
package/lib/schema.js CHANGED
@@ -78,7 +78,7 @@ var fcrUISceneConfigSchema = exports.fcrUISceneConfigSchema = _schema.z.object({
78
78
  avatar: _schema.stringSchema.optional()
79
79
  });
80
80
  var fcrErrorSchema = _schema.z.object({
81
- code: _schema.z.string(),
81
+ code: _schema.z.number(),
82
82
  message: _schema.z.string(),
83
83
  origin: _schema.z.union([_schema.z["instanceof"](Error), _schema.z.undefined()]).optional()
84
84
  });
@@ -1,3 +1,4 @@
1
+ import { CurrentShareBounds } from '../modules/control-bar/types';
1
2
  export interface FcrUISharedConfirmDataSource {
2
3
  get position(): {
3
4
  x: number;
@@ -11,15 +12,33 @@ export interface FcrUISharedConfirmDataSource {
11
12
  x: number;
12
13
  y: number;
13
14
  }): void;
15
+ setWindowBounds(key: string, window: CurrentShareBounds): void;
16
+ removeWindowBounds(key: string): void;
17
+ addObserver(observer: FcrMousePositionObserver): void;
18
+ removeObserver(observer: FcrMousePositionObserver): void;
14
19
  }
20
+ export type FcrMousePositionObserver = {
21
+ onMouseOver(key: string): void;
22
+ onMouseOut(key: string): void;
23
+ };
15
24
  export declare class FcrUISharedConfirmDataSourceImpl implements FcrUISharedConfirmDataSource {
16
25
  protected logger: import("agora-foundation/lib/logger").Logger;
26
+ private _observable;
17
27
  accessor position: {
18
28
  x: number;
19
29
  y: number;
20
30
  };
31
+ accessor windows: Map<string, CurrentShareBounds>;
32
+ accessor mouseOverState: Set<unknown>;
33
+ constructor();
21
34
  setPosition(position: {
22
35
  x: number;
23
36
  y: number;
24
37
  }): void;
38
+ setWindowBounds(key: string, window: CurrentShareBounds): void;
39
+ removeWindowBounds(key: string): void;
40
+ addObserver(observer: FcrMousePositionObserver): void;
41
+ removeObserver(observer: FcrMousePositionObserver): void;
42
+ release(): void;
43
+ private _addLogObserver;
25
44
  }