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
package/lib/ui-scene.js CHANGED
@@ -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.array.push.js");
@@ -40,6 +38,8 @@ Object.defineProperty(exports, "__esModule", {
40
38
  });
41
39
  exports.FcrUIDefaultScene = void 0;
42
40
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
41
+ require("core-js/modules/es.error.cause.js");
42
+ require("core-js/modules/es.error.to-string.js");
43
43
  require("core-js/modules/es.date.to-string.js");
44
44
  require("core-js/modules/es.number.constructor.js");
45
45
  require("core-js/modules/es.object.to-string.js");
@@ -110,7 +110,14 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
110
110
  (0, _defineProperty2["default"])(this, "_observable", new _observable.AgoraObservable());
111
111
  // @internal
112
112
  (0, _defineProperty2["default"])(this, "_isLaunched", false);
113
+ // @internal
114
+ (0, _defineProperty2["default"])(this, "_dialogObserver", {
115
+ onOpenSettingDialog: function onOpenSettingDialog() {
116
+ _this._observable.notifyObservers('onOpenSettingDialog');
117
+ }
118
+ });
113
119
  (0, _defineProperty2["default"])(this, "_joinSuccess", false);
120
+ (0, _defineProperty2["default"])(this, "_joinAbortController", null);
114
121
  (0, _defineProperty2["default"])(this, "_handleBeforeUnload", function () {
115
122
  (0, _renderer.setInMeetingState)(0);
116
123
  (0, _renderer.releaseSubAllWindowRefs)();
@@ -148,6 +155,10 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
148
155
  return (0, _createClass2["default"])(FcrUIDefaultScene, [{
149
156
  key: "exit",
150
157
  value: function exit() {
158
+ if (this._joinAbortController) {
159
+ this._joinAbortController.abort();
160
+ this._joinAbortController = null;
161
+ }
151
162
  this._observable.notifyObservers('onExited', this._config.roomId, _type.FcrUIExitReason.LEAVE_ROOM);
152
163
  this._release();
153
164
  }
@@ -355,33 +366,81 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
355
366
  // joinRoomCallback: () => void,
356
367
  ) {
357
368
  var _this4 = this;
358
- var p;
369
+ var abortController, p;
359
370
  return _regenerator["default"].wrap(function (_context2) {
360
371
  while (1) switch (_context2.prev = _context2.next) {
361
372
  case 0:
362
- p = engine.login().then(function () {
363
- return roomControl.handleJoinRoom();
364
- }).then(/*#__PURE__*/function () {
365
- var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(response) {
373
+ abortController = new AbortController();
374
+ this._joinAbortController = abortController;
375
+ p = new Promise(/*#__PURE__*/function () {
376
+ var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(resolve, reject) {
377
+ var onAbort, response, _t;
366
378
  return _regenerator["default"].wrap(function (_context) {
367
379
  while (1) switch (_context.prev = _context.next) {
368
380
  case 0:
369
- // joinRoomCallback();
381
+ onAbort = function onAbort() {
382
+ return reject(new Error('join aborted'));
383
+ };
384
+ abortController.signal.addEventListener('abort', onAbort, {
385
+ once: true
386
+ });
387
+ _context.prev = 1;
388
+ _context.next = 2;
389
+ return engine.login();
390
+ case 2:
391
+ if (!abortController.signal.aborted) {
392
+ _context.next = 3;
393
+ break;
394
+ }
395
+ throw new Error('join aborted');
396
+ case 3:
397
+ _context.next = 4;
398
+ return roomControl.handleJoinRoom();
399
+ case 4:
400
+ response = _context.sent;
401
+ if (!abortController.signal.aborted) {
402
+ _context.next = 5;
403
+ break;
404
+ }
405
+ throw new Error('join aborted');
406
+ case 5:
407
+ if (_this4._isLaunched) {
408
+ _context.next = 6;
409
+ break;
410
+ }
411
+ return _context.abrupt("return", reject());
412
+ case 6:
370
413
  _this4._joinSuccess = true;
371
- return _context.abrupt("return", response);
372
- case 1:
414
+ // joinRoomCallback();
415
+ return _context.abrupt("return", resolve());
416
+ case 7:
417
+ _context.prev = 7;
418
+ _t = _context["catch"](1);
419
+ return _context.abrupt("return", reject(_t));
420
+ case 8:
421
+ _context.prev = 8;
422
+ abortController.signal.removeEventListener('abort', onAbort);
423
+ _this4._joinAbortController = null;
424
+ return _context.finish(8);
425
+ case 9:
373
426
  case "end":
374
427
  return _context.stop();
375
428
  }
376
- }, _callee);
429
+ }, _callee, null, [[1, 7, 8, 9]]);
377
430
  }));
378
- return function (_x3) {
431
+ return function (_x3, _x4) {
379
432
  return _ref2.apply(this, arguments);
380
433
  };
381
434
  }());
382
435
  p.then(function () {
436
+ if (!_this4._isLaunched) return;
383
437
  _this4._observable.notifyObservers('onLaunchSuccess', _this4._config.roomId);
384
438
  })["catch"](function (e) {
439
+ if (!_this4._isLaunched) return;
440
+ if ((e === null || e === void 0 ? void 0 : e.message) === 'join aborted') {
441
+ _this4.logger.info('join aborted');
442
+ return;
443
+ }
385
444
  _this4._observable.notifyObservers('onLaunchFailure', _this4._config.roomId, e);
386
445
  });
387
446
  return _context2.abrupt("return", p);
@@ -389,7 +448,7 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
389
448
  case "end":
390
449
  return _context2.stop();
391
450
  }
392
- }, _callee2);
451
+ }, _callee2, this);
393
452
  }));
394
453
  function _joinRoom(_x, _x2) {
395
454
  return _joinRoom2.apply(this, arguments);
@@ -444,7 +503,7 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
444
503
  }
445
504
  }, _callee3, this);
446
505
  }));
447
- function _renderSceneUI(_x4, _x5, _x6, _x7, _x8, _x9, _x0, _x1, _x10, _x11, _x12, _x13, _x14, _x15, _x16, _x17, _x18, _x19) {
506
+ function _renderSceneUI(_x5, _x6, _x7, _x8, _x9, _x0, _x1, _x10, _x11, _x12, _x13, _x14, _x15, _x16, _x17, _x18, _x19, _x20) {
448
507
  return _renderSceneUI2.apply(this, arguments);
449
508
  }
450
509
  return _renderSceneUI;
@@ -522,8 +581,6 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
522
581
  }, {
523
582
  key: "_initSettingStore",
524
583
  value: function _initSettingStore(_ref3) {
525
- var _this$_dialogProvider,
526
- _this5 = this;
527
584
  var roomProvider = _ref3.roomProvider,
528
585
  eventProvider = _ref3.eventProvider,
529
586
  deviceProvider = _ref3.deviceProvider,
@@ -534,6 +591,7 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
534
591
  dialogProvider = _ref3.dialogProvider,
535
592
  monitorProvider = _ref3.monitorProvider,
536
593
  sharedInterpreterDataSource = _ref3.sharedInterpreterDataSource;
594
+ this.logger.debug('init SettingStore');
537
595
  var settingStore = new _store["default"]({
538
596
  eventProvider: eventProvider,
539
597
  monitorProvider: monitorProvider,
@@ -546,11 +604,9 @@ var FcrUIDefaultScene = exports.FcrUIDefaultScene = /*#__PURE__*/function () {
546
604
  dialogProvider: dialogProvider,
547
605
  sharedInterpreterDataSource: sharedInterpreterDataSource
548
606
  });
549
- (_this$_dialogProvider = this._dialogProvider) === null || _this$_dialogProvider === void 0 || _this$_dialogProvider.addObserver({
550
- onOpenSettingDialog: function onOpenSettingDialog() {
551
- _this5._observable.notifyObservers('onOpenSettingDialog');
552
- }
553
- });
607
+ settingStore.startMeeting();
608
+ this._dialogProvider.removeObserver(this._dialogObserver);
609
+ this._dialogProvider.addObserver(this._dialogObserver);
554
610
  this._observable.notifyObservers('onSettingStore', settingStore);
555
611
  }
556
612
  }, {
@@ -174,3 +174,8 @@ export declare enum FcrUIHighlightElement {
174
174
  TRANSLATE_TARGET = "fcr_TRANSLATE_TARGET_highlighter",
175
175
  TRANSLATE_INTERPRETER = "fcr_TRANSLATE_INTERPRETER_highlighter"
176
176
  }
177
+ export declare const ErrorCode: {
178
+ FAILED_TO_MOVE_USER_TO_WAITING_ROOM: number;
179
+ FAILED_TO_UPDATE_USER_ROLE_DUE_TO_PRIVILEGE: number;
180
+ FAILED_TO_UPDATE_USER_ROLE_DUE_TO_LIMIT_REACHED: number;
181
+ };
@@ -4,7 +4,7 @@ require("core-js/modules/es.object.define-property.js");
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.FcrUIVideoWindowPinType = exports.FcrUIRoomControlType = exports.FcrUIRendererEventAction = exports.FcrUIParticipantType = exports.FcrUIHighlightElement = exports.FcrUIDialogKey = exports.FcrUIAction = void 0;
7
+ exports.FcrUIVideoWindowPinType = exports.FcrUIRoomControlType = exports.FcrUIRendererEventAction = exports.FcrUIParticipantType = exports.FcrUIHighlightElement = exports.FcrUIDialogKey = exports.FcrUIAction = exports.ErrorCode = void 0;
8
8
  var FcrUIRendererEventAction = exports.FcrUIRendererEventAction = /*#__PURE__*/function (FcrUIRendererEventAction) {
9
9
  /**
10
10
  * Indicates that the fragment has been loaded.
@@ -188,4 +188,9 @@ var FcrUIHighlightElement = exports.FcrUIHighlightElement = /*#__PURE__*/functio
188
188
  FcrUIHighlightElement["TRANSLATE_TARGET"] = "fcr_TRANSLATE_TARGET_highlighter";
189
189
  FcrUIHighlightElement["TRANSLATE_INTERPRETER"] = "fcr_TRANSLATE_INTERPRETER_highlighter";
190
190
  return FcrUIHighlightElement;
191
- }({});
191
+ }({});
192
+ var ErrorCode = exports.ErrorCode = {
193
+ FAILED_TO_MOVE_USER_TO_WAITING_ROOM: 732403470,
194
+ FAILED_TO_UPDATE_USER_ROLE_DUE_TO_PRIVILEGE: 700000403,
195
+ FAILED_TO_UPDATE_USER_ROLE_DUE_TO_LIMIT_REACHED: 720403001
196
+ };
@@ -6,6 +6,7 @@ export declare const cameraVideoHighStreamEncoderConfig: {
6
6
  };
7
7
  frameRate: number;
8
8
  bitrate: number;
9
+ isMirror: boolean;
9
10
  };
10
11
  export declare const cameraVideoLowStreamEncoderConfig: {
11
12
  dimensions: {
@@ -14,6 +15,7 @@ export declare const cameraVideoLowStreamEncoderConfig: {
14
15
  };
15
16
  frameRate: number;
16
17
  bitrate: number;
18
+ isMirror: boolean;
17
19
  };
18
20
  export declare const screenCaptureHighStreamEncoderConfig: {
19
21
  dimensions: {
@@ -22,6 +24,7 @@ export declare const screenCaptureHighStreamEncoderConfig: {
22
24
  };
23
25
  frameRate: number;
24
26
  bitrate: number;
27
+ isMirror: boolean;
25
28
  };
26
29
  export declare const screenCaptureLowStreamEncoderConfig: {
27
30
  dimensions: {
@@ -30,6 +33,7 @@ export declare const screenCaptureLowStreamEncoderConfig: {
30
33
  };
31
34
  frameRate: number;
32
35
  bitrate: number;
36
+ isMirror: boolean;
33
37
  };
34
38
  export declare let enableCameraDualStreamMode: boolean;
35
39
  export declare let enableScreenDualStreamMode: boolean;
@@ -14,7 +14,8 @@ var cameraVideoHighStreamEncoderConfig = exports.cameraVideoHighStreamEncoderCon
14
14
  height: 720
15
15
  },
16
16
  frameRate: 30,
17
- bitrate: 1500
17
+ bitrate: 1500,
18
+ isMirror: false
18
19
  };
19
20
  var cameraVideoLowStreamEncoderConfig = exports.cameraVideoLowStreamEncoderConfig = {
20
21
  dimensions: {
@@ -22,7 +23,8 @@ var cameraVideoLowStreamEncoderConfig = exports.cameraVideoLowStreamEncoderConfi
22
23
  height: 270
23
24
  },
24
25
  frameRate: 15,
25
- bitrate: 350
26
+ bitrate: 350,
27
+ isMirror: false
26
28
  };
27
29
  var screenCaptureHighStreamEncoderConfig = exports.screenCaptureHighStreamEncoderConfig = {
28
30
  dimensions: {
@@ -30,7 +32,8 @@ var screenCaptureHighStreamEncoderConfig = exports.screenCaptureHighStreamEncode
30
32
  height: 1080
31
33
  },
32
34
  frameRate: 15,
33
- bitrate: 1500
35
+ bitrate: 1500,
36
+ isMirror: false
34
37
  };
35
38
  var screenCaptureLowStreamEncoderConfig = exports.screenCaptureLowStreamEncoderConfig = {
36
39
  dimensions: {
@@ -38,7 +41,8 @@ var screenCaptureLowStreamEncoderConfig = exports.screenCaptureLowStreamEncoderC
38
41
  height: 240
39
42
  },
40
43
  frameRate: 15,
41
- bitrate: 400
44
+ bitrate: 400,
45
+ isMirror: false
42
46
  };
43
47
  var enableCameraDualStreamMode = exports.enableCameraDualStreamMode = true;
44
48
  var enableScreenDualStreamMode = exports.enableScreenDualStreamMode = false;
@@ -50,11 +50,12 @@ export declare function followCorrectDisplay({ browserWindow, dialogKey, extraRe
50
50
  */
51
51
  extraRefControlbarCondition?: boolean;
52
52
  /**
53
- * 根据屏幕或者应用主窗口居中显示,默认是 screen,如果需要跟随主窗口,则设置为 main-window,
53
+ * 根据屏幕或者应用主窗口居中显示,默认是 screen,如果需要跟随主窗口,则设置为 main-window
54
+ * 如果设置为 false,则不跟随任何窗口,只返回数据, 此设置主要针对 controlbar 弹窗,controlbar 有自己的逻辑
54
55
  * 在屏幕共享时,普通 dialog 窗口会以 controlbar 所在的屏幕为基准水平居中对齐
55
56
  * 在非屏幕共享状态下,则会以主窗口为基准水平居中对齐
56
57
  */
57
- follow?: 'screen' | 'main-window';
58
+ follow?: 'screen' | 'main-window' | false;
58
59
  /**
59
60
  * 是否是全屏幕覆盖的透明窗口, 此设置主要针对 toast 和 confirm 弹窗
60
61
  */
@@ -22,15 +22,18 @@ var _env = require("agora-foundation/lib/utilities/env");
22
22
  var _constant = require("./constant");
23
23
  var _store = require("../modules/dialog/store");
24
24
  var _renderer = require("./renderer");
25
+ var _logger = require("./logger");
25
26
  // 修复 windows 无法响应 hover 的问题
26
27
  function handleCheckMouseOver(params) {
27
28
  if (!(0, _env.isElectron)()) return;
29
+ var logger = (0, _logger.getLogger)();
28
30
  var elem = params.elem,
29
31
  browserWindow = params.browserWindow,
30
32
  screenBounds = params.screenBounds,
31
33
  callback = params.callback,
32
34
  newRendererWindow = params.newRendererWindow,
33
35
  dialog = params.dialog;
36
+ var enterHotZoneState = false;
34
37
  browserWindow.focus();
35
38
  browserWindow.setIgnoreMouseEvents(true);
36
39
  var MAX_HEIGHT = 430; // 内容最多的 popover 高度
@@ -92,13 +95,21 @@ function handleCheckMouseOver(params) {
92
95
  var barControlBoundary = mouse_x > inside_x1 && mouse_x < inside_x2 && mouse_y > inside_y1 && mouse_y < inside_y2;
93
96
  var barWrapWithInsideBoundary = mouse_x > bar_x1 && mouse_x < bar_x2 && mouse_y > bar_y1 && mouse_y < bar_y2 - inside_h || barControlBoundary;
94
97
  if (dialog === _constant.FcrUIDialogKey.CONTROL_BAR ? barWrapWithInsideBoundary : barWrapBoundary) {
95
- browserWindow.setIgnoreMouseEvents(false);
96
- // 因为当用户点击其他窗口时,鼠标返回热区窗口会自动聚焦返回到上层,经测试这个注释不会影响现有功能,先注释看有没有其它影响
97
- // if (!browserWindow.isFocused()) {
98
- // browserWindow.focus();
99
- // }
98
+ if (!enterHotZoneState) {
99
+ enterHotZoneState = true;
100
+ browserWindow.setIgnoreMouseEvents(false);
101
+ logger.info('[controlbar] Mouse entered hot zone');
102
+ // 因为当用户点击其他窗口时,鼠标返回热区窗口会自动聚焦返回到上层,经测试这个注释不会影响现有功能,先注释看有没有其它影响
103
+ // if (!browserWindow.isFocused()) {
104
+ // browserWindow.focus();
105
+ // }
106
+ }
100
107
  } else {
101
- browserWindow.setIgnoreMouseEvents(true);
108
+ if (enterHotZoneState) {
109
+ enterHotZoneState = false;
110
+ browserWindow.setIgnoreMouseEvents(true);
111
+ logger.info('[controlbar] Mouse left hot zone');
112
+ }
102
113
  }
103
114
  }, 50);
104
115
  callback === null || callback === void 0 || callback(timerId);
@@ -109,7 +120,7 @@ function getCurrentSharingWorkArea(params) {
109
120
  var _window$screen = window.screen,
110
121
  availWidth = _window$screen.availWidth,
111
122
  availHeight = _window$screen.availHeight;
112
- var nearDisplay = (0, _env.isElectron)() ? window.runtime.screen.getDisplayNearestPoint(currentShareBounds) : null;
123
+ var nearDisplay = (0, _env.isElectron)() ? window.runtime.screen.getDisplayMatching(currentShareBounds) : null;
113
124
  var dataStruct = {
114
125
  bounds: {
115
126
  x: 0,
@@ -159,19 +170,25 @@ function followCorrectDisplay(_ref4) {
159
170
  }) : _store.dialogWindows.get(dialogKey) : browserWindow;
160
171
  var controlbar = _store.dialogWindows.get(_constant.FcrUIDialogKey.CONTROL_BAR);
161
172
  var mainAppWindowBounds = window.runtime.browserWindow.getBounds();
173
+
162
174
  // 按当前的窗口管理方式,在关闭 controlbar 的时候,controlbar 实际上是隐藏了自己,所以,依然能够通过 controlbar 访问到,所以需要判断是否是 visible 状态
163
175
  var followControlbar = !!(controlbar && (extraRefControlbarCondition || controlbar.isVisible()));
176
+
164
177
  // 屏幕抢占时,需要判断是否是抢占屏幕,决定是取 controlbar 所在屏幕计算热区,还是以主窗口所在屏幕计算热区,此类条件通过 extraRefControlbarCondition 传入
165
178
  var nearestPoint = followControlbar ? controlbar === null || controlbar === void 0 ? void 0 : controlbar.getBounds() : mainAppWindowBounds;
166
179
  var nearDisplay = window.runtime.screen.getDisplayMatching(nearestPoint);
167
180
  var nearBounds = nearDisplay.bounds;
181
+
182
+ // alwaysFollowScreen 为 true 时取屏幕的宽高,否则取 workArea 的宽高
183
+ var width = alwaysFollowScreen ? Math.floor(nearBounds.width) : Math.floor(nearDisplay.workArea.width);
184
+ var height = alwaysFollowScreen ? Math.floor(nearBounds.height) : Math.floor(nearDisplay.workArea.height);
168
185
  var nearDisplayBounds = {
169
186
  x: Math.floor(nearBounds.x),
170
187
  y: Math.floor(nearBounds.y),
171
- width: Math.floor(nearBounds.width),
172
- height: Math.floor(nearBounds.height)
188
+ width: width,
189
+ height: height
173
190
  };
174
- var followBounds = function followBounds(theWindowBounds) {
191
+ var followWithAlignToCenter = function followWithAlignToCenter(theWindowBounds) {
175
192
  var targetBounds = follow === 'screen' || extraRefControlbarCondition ? nearBounds : mainAppWindowBounds;
176
193
  return {
177
194
  x: Math.floor(targetBounds.x + (targetBounds.width - theWindowBounds.width) / 2),
@@ -196,12 +213,14 @@ function followCorrectDisplay(_ref4) {
196
213
  dialog === null || dialog === void 0 || dialog.maximize();
197
214
  }
198
215
  } else {
199
- dialog === null || dialog === void 0 || dialog.setBounds(followBounds(dialog.getBounds()));
216
+ dialog === null || dialog === void 0 || dialog.setBounds(followWithAlignToCenter(dialog.getBounds()));
200
217
  }
201
218
  };
202
- Array.isArray(objectDialog) ? objectDialog.forEach(function (dialog) {
203
- return setBoundsMethod(dialog);
204
- }) : setBoundsMethod(objectDialog);
219
+ if (follow !== false) {
220
+ Array.isArray(objectDialog) ? objectDialog.forEach(function (dialog) {
221
+ return setBoundsMethod(dialog);
222
+ }) : setBoundsMethod(objectDialog);
223
+ }
205
224
  return {
206
225
  nearDisplayBounds: nearDisplayBounds,
207
226
  nearDisplay: nearDisplay,
@@ -0,0 +1,3 @@
1
+ import packageInfo from '../../package.json';
2
+ export declare const getVersion: () => string;
3
+ export declare const getDependenciesInfo: (packageName: keyof typeof packageInfo.dependencies) => string;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getVersion = exports.getDependenciesInfo = void 0;
9
+ var _package = _interopRequireDefault(require("../../package.json"));
10
+ var getVersion = exports.getVersion = function getVersion() {
11
+ return _package["default"].version;
12
+ };
13
+ var getDependenciesInfo = exports.getDependenciesInfo = function getDependenciesInfo(packageName) {
14
+ return _package["default"].dependencies[packageName];
15
+ };
@@ -29,7 +29,7 @@ var _fcrCore = require("fcr-core");
29
29
  var _type = require("fcr-core/lib/room-control/user-control/type");
30
30
  var _type2 = require("fcr-core/lib/room-control/privilege-control/type");
31
31
  var _imports = require("fcr-core/lib/imports");
32
- var _type3 = require("agora-rte-sdk/lib/type");
32
+ var _type3 = require("fcr-core/lib/type");
33
33
  var _logger = require("./utilities/logger");
34
34
  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; }
35
35
  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; }
@@ -178,11 +178,11 @@ var FcrUIWaitingRoomControlManager = exports["default"] = /*#__PURE__*/function
178
178
  var config = this._sceneConfig;
179
179
  var streams = [{
180
180
  streamName: 'default',
181
- streamType: _imports.AgoraRteMediaStreamType.BOTH,
182
- videoSourceType: _imports.AgoraRteVideoSourceType.CAMERA,
183
- audioSourceType: _type3.AgoraRteAudioSourceType.MICROPHONE,
184
- videoSourceState: _type3.AgoraRteMediaSourceState.CLOSE,
185
- audioSourceState: _type3.AgoraRteMediaSourceState.CLOSE
181
+ streamType: _type3.FcrStreamType.BOTH,
182
+ videoSourceType: _type3.FcrVideoSourceType.CAMERA,
183
+ audioSourceType: _fcrCore.FcrAudioSourceType.MICROPHONE,
184
+ videoSourceState: _type3.FcrMediaSourceState.CLOSE,
185
+ audioSourceState: _type3.FcrMediaSourceState.CLOSE
186
186
  }];
187
187
  if (config.userRole === _type.FcrUserRole.ROBOT) {
188
188
  streams = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fcr-ui-scene",
3
- "version": "3.7.3",
3
+ "version": "3.7.4-rc.1",
4
4
  "main": "lib/index.js",
5
5
  "repository": "ssh://git@git.agoralab.co/aduc/fcr-ui-scene-desktop.git",
6
6
  "author": "agora.io",
@@ -21,14 +21,14 @@
21
21
  "@electron/remote": "2.0.1",
22
22
  "@react-spring/web": "^9.7.3",
23
23
  "@use-gesture/react": "^10.3.1",
24
- "agora-electron-sdk": "4.3.2-build.145-rc.4",
25
- "agora-foundation": "~3.7.3",
26
- "agora-ui-foundation": "~3.7.3",
24
+ "agora-electron-sdk": "4.3.2-build.17-rc.1",
25
+ "agora-foundation": "~3.7.4-rc.1",
26
+ "agora-ui-foundation": "~3.7.4-rc.1",
27
27
  "classnames": "^2.5.1",
28
28
  "core-js": "^3.33.3",
29
29
  "dayjs": "^1.10.4",
30
30
  "electron-screenshots": "^0.5.26",
31
- "fcr-core": "~3.7.3",
31
+ "fcr-core": "~3.7.4-rc.1",
32
32
  "js-md5": "^0.8.3",
33
33
  "jszip": "^3.10.1",
34
34
  "lodash": "^4.17.21",
@@ -59,7 +59,7 @@
59
59
  "@types/react-dom": "^17.0.11",
60
60
  "@types/react-virtualized": "^9.21.30",
61
61
  "@types/tinycolor2": "^1.4.6",
62
- "agora-toolchain": "~3.7.3",
62
+ "agora-toolchain": "~3.7.4-rc.1",
63
63
  "core-js": "^3.33.3",
64
64
  "electron": "22.3.27",
65
65
  "husky": "^9.0.11",
package/public/index.html CHANGED
@@ -179,6 +179,11 @@
179
179
  (async () => {
180
180
  let creator;
181
181
  window.runtime.onCreatorInit = (config) => {
182
+ if (creator) {
183
+ creator.release();
184
+ creator = undefined;
185
+ }
186
+
182
187
  creator = new FcrUIScene.FcrUISceneCreator(config);
183
188
  };
184
189