fcr-ui-scene 3.6.2 → 3.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/lib/creator.d.ts +1 -0
  2. package/lib/creator.js +38 -26
  3. package/lib/electron/app.js +5 -4
  4. package/lib/electron/bootstrap-dev.js +3 -0
  5. package/lib/electron/injections.d.ts +3 -2
  6. package/lib/electron/injections.js +5 -6
  7. package/lib/electron/main.js +15 -11
  8. package/lib/electron/window.js +0 -3
  9. package/lib/fragments/annotation/index.d.ts +1 -0
  10. package/lib/fragments/annotation/index.js +55 -40
  11. package/lib/fragments/annotation/store.d.ts +7 -2
  12. package/lib/fragments/annotation/store.js +170 -90
  13. package/lib/fragments/annotation/view.d.ts +1 -0
  14. package/lib/fragments/annotation/view.js +10 -2
  15. package/lib/modules/action-bar/index.css +4 -0
  16. package/lib/modules/action-bar/store.d.ts +1 -7
  17. package/lib/modules/action-bar/store.js +35 -82
  18. package/lib/modules/annotation/board-cursor.css +76 -0
  19. package/lib/modules/annotation/components/control-bar/index.js +42 -2
  20. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.js +3 -1
  21. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +1 -0
  22. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.js +11 -5
  23. package/lib/modules/annotation/components/toolbar/components/item/item.d.ts +1 -0
  24. package/lib/modules/annotation/components/toolbar/components/item/item.js +3 -2
  25. package/lib/modules/annotation/index.d.ts +2 -0
  26. package/lib/modules/annotation/index.js +2 -1
  27. package/lib/modules/annotation/store.d.ts +11 -3
  28. package/lib/modules/annotation/store.js +209 -184
  29. package/lib/modules/annotation/style.css +3 -3
  30. package/lib/modules/annotation/view.d.ts +1 -0
  31. package/lib/modules/annotation/view.js +26 -9
  32. package/lib/modules/components/member-window/components/member-actions/components/audio-control.d.ts +0 -1
  33. package/lib/modules/components/member-window/components/member-actions/components/audio-control.js +10 -4
  34. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.d.ts +2 -2
  35. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +4 -4
  36. package/lib/modules/components/member-window/components/member-actions/components/icon-status.d.ts +0 -2
  37. package/lib/modules/components/member-window/components/member-actions/components/icon-status.js +3 -4
  38. package/lib/modules/components/member-window/components/member-actions/components/more-actions.d.ts +0 -3
  39. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +6 -32
  40. package/lib/modules/components/member-window/components/member-actions/components/share-status.js +11 -3
  41. package/lib/modules/components/member-window/components/member-actions/components/user-info.d.ts +0 -1
  42. package/lib/modules/components/member-window/components/member-actions/components/user-info.js +7 -10
  43. package/lib/modules/components/member-window/components/member-actions/components/user-tag.d.ts +0 -1
  44. package/lib/modules/components/member-window/components/member-actions/components/user-tag.js +0 -2
  45. package/lib/modules/components/member-window/components/member-actions/index.js +1 -32
  46. package/lib/modules/components/member-window/components/member-actions/store.d.ts +38 -1
  47. package/lib/modules/components/member-window/components/member-actions/store.js +130 -23
  48. package/lib/modules/components/member-window/index.css +37 -0
  49. package/lib/modules/control-bar/index.d.ts +0 -4
  50. package/lib/modules/control-bar/index.js +0 -32
  51. package/lib/modules/control-bar/store.d.ts +4 -6
  52. package/lib/modules/control-bar/store.js +63 -103
  53. package/lib/modules/control-bar/view.js +45 -3
  54. package/lib/modules/dialog/components/control-bar/index.d.ts +0 -2
  55. package/lib/modules/dialog/components/control-bar/index.js +1 -3
  56. package/lib/modules/dialog/hooks/useElectron.js +3 -2
  57. package/lib/modules/dialog/index.d.ts +0 -3
  58. package/lib/modules/dialog/index.js +1 -25
  59. package/lib/modules/dialog/store.d.ts +6 -8
  60. package/lib/modules/dialog/store.js +21 -55
  61. package/lib/modules/layout/components/CommonVideoRenderer.js +5 -2
  62. package/lib/modules/layout/type.d.ts +7 -0
  63. package/lib/modules/participant/store.js +59 -28
  64. package/lib/modules/setting/index.d.ts +2 -0
  65. package/lib/modules/setting/index.js +3 -3
  66. package/lib/modules/setting/store.d.ts +8 -10
  67. package/lib/modules/setting/store.js +22 -20
  68. package/lib/modules/share-screen/store.d.ts +3 -0
  69. package/lib/modules/share-screen/store.js +63 -54
  70. package/lib/modules/state-bar/index.css +8 -6
  71. package/lib/modules/state-bar/index.d.ts +2 -0
  72. package/lib/modules/state-bar/index.js +2 -1
  73. package/lib/modules/state-bar/layout-config.d.ts +1 -0
  74. package/lib/modules/state-bar/layout-config.js +15 -5
  75. package/lib/modules/state-bar/store.d.ts +5 -1
  76. package/lib/modules/state-bar/store.js +8 -1
  77. package/lib/modules/state-bar/view.js +9 -5
  78. package/lib/modules/whiteboard/components/control-bar/store.js +2 -0
  79. package/lib/modules/whiteboard/components/toolbar/store.d.ts +7 -3
  80. package/lib/modules/whiteboard/components/toolbar/store.js +61 -35
  81. package/lib/modules/whiteboard/index.js +3 -2
  82. package/lib/modules/whiteboard/style.css +0 -4
  83. package/lib/modules/whiteboard/view.js +8 -2
  84. package/lib/providers/annotation-provider.d.ts +63 -12
  85. package/lib/providers/annotation-provider.js +51 -41
  86. package/lib/providers/device-provider.d.ts +3 -3
  87. package/lib/providers/device-provider.js +8 -6
  88. package/lib/providers/event-provider.d.ts +3 -3
  89. package/lib/providers/screen-share-provider.js +53 -60
  90. package/lib/providers/sharing-provider.d.ts +5 -1
  91. package/lib/providers/sharing-provider.js +16 -1
  92. package/lib/providers/user-setting-storage-provider.d.ts +20 -0
  93. package/lib/providers/user-setting-storage-provider.js +74 -0
  94. package/lib/scenes/main-scene.js +2 -3
  95. package/lib/scenes/waiting-scene.js +1 -1
  96. package/lib/shared-data-source/config.d.ts +1 -5
  97. package/lib/shared-data-source/config.js +11 -81
  98. package/lib/shared-data-source/screen-share-data.d.ts +4 -0
  99. package/lib/shared-data-source/screen-share-data.js +1 -0
  100. package/lib/shared-data-source/setting.d.ts +13 -13
  101. package/lib/shared-data-source/setting.js +10 -6
  102. package/lib/shared-data-source/video-window.d.ts +2 -1
  103. package/lib/shared-data-source/video-window.js +56 -36
  104. package/lib/translations/enUS.d.ts +8 -0
  105. package/lib/translations/enUS.js +9 -1
  106. package/lib/translations/zhCN.d.ts +8 -0
  107. package/lib/translations/zhCN.js +11 -3
  108. package/lib/type.d.ts +2 -1
  109. package/lib/ui-scene.js +11 -6
  110. package/lib/utilities/constant.d.ts +2 -1
  111. package/lib/utilities/constant.js +1 -0
  112. package/lib/utilities/setting-config-storage.d.ts +5 -6
  113. package/lib/utilities/setting-config-storage.js +33 -39
  114. package/lib/utilities/tools.d.ts +1 -0
  115. package/lib/utilities/tools.js +3 -2
  116. package/package.json +8 -6
  117. package/dist/132.js +0 -2
  118. package/dist/132.js.LICENSE.txt +0 -311
  119. package/dist/317.js +0 -2
  120. package/dist/317.js.LICENSE.txt +0 -20
  121. package/dist/651.js +0 -2
  122. package/dist/651.js.LICENSE.txt +0 -1
  123. package/dist/689343b64b60bfb7ffff.png +0 -0
  124. package/dist/73.js +0 -1
  125. package/dist/885f9369ea05a8ac0e56.png +0 -0
  126. package/dist/90f383876a6e93e7c7ca.png +0 -0
  127. package/dist/9b37584780995fc5df8c.gif +0 -0
  128. package/dist/annotation.e5cbd3a70b6d42361872.css +0 -1274
  129. package/dist/annotation.html +0 -1
  130. package/dist/annotation.js +0 -2
  131. package/dist/annotation.js.LICENSE.txt +0 -252
  132. package/dist/assets/browser/images/default1.jpg +0 -0
  133. package/dist/assets/browser/images/default2.jpg +0 -0
  134. package/dist/assets/browser/images/default3.jpg +0 -0
  135. package/dist/assets/browser/images/default4.jpg +0 -0
  136. package/dist/assets/browser/images/default5.jpg +0 -0
  137. package/dist/assets/browser/images/default6.jpg +0 -0
  138. package/dist/assets/browser/images/default7.jpg +0 -0
  139. package/dist/assets/browser/sound_effects/pretest.mp3 +0 -0
  140. package/dist/assets/browser/sound_effects/recording_started.mp3 +0 -0
  141. package/dist/assets/browser/sound_effects/remote_user_joined.mp3 +0 -0
  142. package/dist/assets/browser/sound_effects/speaker_test.mp3 +0 -0
  143. package/dist/assets/browser/videos/default8.mp4 +0 -0
  144. package/dist/assets/browser/videos/default9.mp4 +0 -0
  145. package/dist/assets/cursors/fcr_whiteboard_input.ico +0 -0
  146. package/dist/assets/cursors/fcr_whiteboard_pen.ico +0 -0
  147. package/dist/assets/cursors/fcr_whiteboard_shape_-straightline.ico +0 -0
  148. package/dist/assets/cursors/fcr_whiteboard_shape_arrow.ico +0 -0
  149. package/dist/assets/cursors/fcr_whiteboard_shape_circle.ico +0 -0
  150. package/dist/assets/cursors/fcr_whiteboard_shape_rectangle.ico +0 -0
  151. package/dist/assets/cursors/fcr_whiteboard_shape_triangle.ico +0 -0
  152. package/dist/assets/electron/images/default1.jpg +0 -0
  153. package/dist/assets/electron/images/default2.jpg +0 -0
  154. package/dist/assets/electron/sound_effects/pretest.mp3 +0 -0
  155. package/dist/assets/electron/videos/default8.mp4 +0 -0
  156. package/dist/assets/fcr_chat_reddot.svg +0 -5
  157. package/dist/assets/fcr_defaultpage.png +0 -0
  158. package/dist/assets/fcr_grid_big.svg +0 -3
  159. package/dist/assets/fcr_leave2.svg +0 -58
  160. package/dist/assets/fcr_listontop_big.svg +0 -3
  161. package/dist/assets/full-screen-error-boundary-img.png +0 -0
  162. package/dist/assets/leave-meeting.png +0 -0
  163. package/dist/assets/loading.gif +0 -0
  164. package/dist/assets/login_confirm.png +0 -0
  165. package/dist/assets/pretest.mp3 +0 -0
  166. package/dist/assets/state-bar-logo.png +0 -0
  167. package/dist/assets/step-gradient.svg +0 -10
  168. package/dist/b74b002687a3a3346bec.png +0 -0
  169. package/dist/b94869094481702f949b.png +0 -0
  170. package/dist/ebeace75fd46b90d890e.png +0 -0
  171. package/dist/electron/app.js +0 -194
  172. package/dist/electron/bootstrap-dev.js +0 -46
  173. package/dist/electron/bootstrap-sdk.js +0 -211
  174. package/dist/electron/default-options.js +0 -25
  175. package/dist/electron/env.js +0 -13
  176. package/dist/electron/index.js +0 -20
  177. package/dist/electron/injections.js +0 -903
  178. package/dist/electron/ipc/ipc.js +0 -141
  179. package/dist/electron/ipc/type.js +0 -19
  180. package/dist/electron/logger.js +0 -65
  181. package/dist/electron/main.js +0 -94
  182. package/dist/electron/plugins/devtool-shortcut.js +0 -33
  183. package/dist/electron/plugins/meeting-state.js +0 -39
  184. package/dist/electron/plugins/screenshot.js +0 -54
  185. package/dist/electron/preload.js +0 -108
  186. package/dist/electron/tools.js +0 -66
  187. package/dist/electron/window.js +0 -123
  188. package/dist/extensions/agora-extension-virtual-background/agora-wasm.wasm +0 -0
  189. package/dist/extensions/ai-denoiser/denoiser-wasm-simd.wasm +0 -0
  190. package/dist/extensions/ai-denoiser/denoiser-wasm.js +0 -1
  191. package/dist/extensions/ai-denoiser/denoiser-wasm.wasm +0 -0
  192. package/dist/fad688b9135b15d6c405.png +0 -0
  193. package/dist/index.html +0 -224
  194. package/dist/main.393a2a91ab7fc05ffce6.css +0 -15403
  195. package/dist/main.js +0 -2
  196. package/dist/main.js.LICENSE.txt +0 -272
  197. package/dist/worker-entry.worker.js.LICENSE.txt +0 -13
@@ -43,7 +43,9 @@ require("core-js/modules/es.array.for-each.js");
43
43
  require("core-js/modules/es.array.includes.js");
44
44
  require("core-js/modules/es.array.iterator.js");
45
45
  require("core-js/modules/es.array.push.js");
46
+ require("core-js/modules/es.date.to-json.js");
46
47
  require("core-js/modules/es.function.bind.js");
48
+ require("core-js/modules/es.json.stringify.js");
47
49
  require("core-js/modules/es.object.to-string.js");
48
50
  require("core-js/modules/es.promise.js");
49
51
  require("core-js/modules/es.string.iterator.js");
@@ -183,7 +185,19 @@ var ShareScreenStore = exports["default"] = /*#__PURE__*/function () {
183
185
  duration: 3000
184
186
  });
185
187
  }
188
+ }), (0, _mobx.reaction)(function () {
189
+ return _this.connectionState;
190
+ }, function (val) {
191
+ var needCloseState = val === _fcrCore.FcrConnectionState.ABORTED || val === _fcrCore.FcrConnectionState.DISCONNECTED;
192
+ _this.logger.info("[screen-share]: connection state changed to ".concat(val, ", need close state: ").concat(needCloseState));
193
+ if (needCloseState) {
194
+ _this.handleStopShare();
195
+ }
186
196
  }));
197
+ if ((0, _env.isElectron)()) {
198
+ window.runtime.browserWindow.addListener('show', this._handleBrowserShow);
199
+ window.runtime.browserWindow.addListener('hide', this._hendleBrowserHide);
200
+ }
187
201
  }
188
202
  return (0, _createClass2["default"])(ShareScreenStore, [{
189
203
  key: "boardOwnerUser",
@@ -293,6 +307,16 @@ var ShareScreenStore = exports["default"] = /*#__PURE__*/function () {
293
307
  get: function get() {
294
308
  return this._sharedScreenShareSharedDataSource.currentShareId;
295
309
  }
310
+ }, {
311
+ key: "_screenShareInfoForLog",
312
+ get: function get() {
313
+ return "Screen Share Info : ".concat(JSON.stringify({
314
+ isSharingScreen: this.screenSharingState,
315
+ currentShareId: this.currentShareId,
316
+ currentShareType: this.currentShareType,
317
+ currentShareBounds: this.currentSelectionBounds
318
+ }));
319
+ }
296
320
  }, {
297
321
  key: "_handleOnScreenCaptureStopped",
298
322
  value: function _handleOnScreenCaptureStopped() {
@@ -366,6 +390,10 @@ var ShareScreenStore = exports["default"] = /*#__PURE__*/function () {
366
390
  this._boardControl.removeObserver(this._boardObserver);
367
391
  this._roomProvider.removeObserver(this._roomObserver);
368
392
  this._removeEventListeners();
393
+ if ((0, _env.isElectron)()) {
394
+ window.runtime.browserWindow.removeListener('show', this._handleBrowserShow);
395
+ window.runtime.browserWindow.removeListener('hide', this._hendleBrowserHide);
396
+ }
369
397
  }
370
398
  }, {
371
399
  key: "openRelaunchTipsDialog",
@@ -450,6 +478,7 @@ var ShareScreenStore = exports["default"] = /*#__PURE__*/function () {
450
478
  var audioProcessingChannel,
451
479
  bounds,
452
480
  electronBounds,
481
+ hasValidShare,
453
482
  _args3 = arguments;
454
483
  return _regenerator["default"].wrap(function _callee3$(_context3) {
455
484
  while (1) switch (_context3.prev = _context3.next) {
@@ -479,63 +508,48 @@ var ShareScreenStore = exports["default"] = /*#__PURE__*/function () {
479
508
  case 11:
480
509
  electronBounds = (0, _env.isElectron)() ? window.runtime.screen.getDisplayNearestPoint(bounds) : null;
481
510
  this._sharedScreenShareSharedDataSource.setCurrentSelectionBounds((electronBounds === null || electronBounds === void 0 ? void 0 : electronBounds.bounds) || bounds);
482
- if (!(this.screenSharingState === _fcrCore.FcrMediaSourceState.OPEN)) {
483
- _context3.next = 17;
484
- break;
485
- }
486
- this._handleReplaceScreen(id, type, withAudio, audioProcessingChannel, bounds);
487
- this._setShareLock(false);
488
- return _context3.abrupt("return");
489
- case 17:
490
- this._annotationProvider.setCurrentShareInfo({
511
+ this.logger.info("[screen-share][handleStartShare]: currentShareInfo: ".concat(JSON.stringify({
491
512
  id: id,
492
513
  type: type,
493
514
  bounds: bounds
494
- });
495
- this._annotationProvider.setBoundsToAnnotationWindow({
515
+ })));
516
+ this._annotationProvider.setCurrentShareInfo({
496
517
  id: id,
497
518
  type: type,
498
519
  bounds: bounds
499
520
  });
500
- this._eventProvider.sendEvent(_constant.FcrUIAction.SET_CURRENT_SHARE_SCREEN, {
521
+ this._annotationProvider.setBoundsToAnnotationWindow({
501
522
  id: id,
502
523
  type: type,
503
524
  bounds: bounds
504
525
  });
505
- _context3.t0 = this.supportEnumScreen;
506
- if (!_context3.t0) {
507
- _context3.next = 25;
526
+ if (!(this.screenSharingState === _fcrCore.FcrMediaSourceState.OPEN)) {
527
+ _context3.next = 19;
508
528
  break;
509
529
  }
510
- _context3.next = 24;
530
+ this._handleReplaceScreen(id, type, withAudio, audioProcessingChannel, bounds);
531
+ return _context3.abrupt("return");
532
+ case 19:
533
+ _context3.next = 21;
511
534
  return this._validateShareStart(id, type);
512
- case 24:
513
- _context3.t0 = !_context3.sent;
514
- case 25:
515
- if (!_context3.t0) {
516
- _context3.next = 27;
535
+ case 21:
536
+ hasValidShare = _context3.sent;
537
+ if (!(!this._hasScreenSharePermission() || this.supportEnumScreen && !hasValidShare)) {
538
+ _context3.next = 24;
517
539
  break;
518
540
  }
519
541
  return _context3.abrupt("return");
520
- case 27:
542
+ case 24:
521
543
  if (!this.shareLock) {
522
- _context3.next = 29;
544
+ _context3.next = 26;
523
545
  break;
524
546
  }
525
547
  return _context3.abrupt("return", this._showToast((0, _i18n.transI18n)('fmt_screenshare_tips_enablecollection'), 'error'));
526
- case 29:
527
- this._setShareLock(true);
548
+ case 26:
528
549
  this._sharedScreenShareSharedDataSource.setCurrentShareIdInfos(id, type, bounds);
529
- if (this._hasScreenSharePermission()) {
530
- _context3.next = 34;
531
- break;
532
- }
533
- this._setShareLock(false);
534
- return _context3.abrupt("return");
535
- case 34:
536
- this._initControlbar();
537
550
  this._screenShareProvider.startShareScreen(id, type, withAudio, false);
538
- case 36:
551
+ this._initControlbar();
552
+ case 29:
539
553
  case "end":
540
554
  return _context3.stop();
541
555
  }
@@ -621,14 +635,6 @@ var ShareScreenStore = exports["default"] = /*#__PURE__*/function () {
621
635
  }, {
622
636
  key: "_handleOnScreenShareReplaceBegin",
623
637
  value: function _handleOnScreenShareReplaceBegin(id, type, bounds) {
624
- if ((0, _env.isElectron)()) {
625
- this._initControlbar();
626
- }
627
- this._eventProvider.sendEvent(_constant.FcrUIAction.SET_CURRENT_SHARE_SCREEN, {
628
- id: id,
629
- type: type,
630
- bounds: bounds
631
- });
632
638
  this._annotationProvider.setCurrentShareInfo({
633
639
  id: id,
634
640
  type: type,
@@ -860,27 +866,20 @@ var ShareScreenStore = exports["default"] = /*#__PURE__*/function () {
860
866
  key: "_initControlbar",
861
867
  value: function () {
862
868
  var _initControlbar2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9() {
863
- var params, mainWindow;
869
+ var mainWindow;
864
870
  return _regenerator["default"].wrap(function _callee9$(_context9) {
865
871
  while (1) switch (_context9.prev = _context9.next) {
866
872
  case 0:
867
- params = {
868
- currentShareAudioProcessingChannel: _shareAudio.AudioProcessingChannel.MONO,
869
- currentShareId: this.currentShareId,
870
- currentShareType: this.currentShareType,
871
- shareWithAudio: this.shareWithAudio,
872
- currentShareBounds: this.currentSelectionBounds
873
- };
874
873
  if ((0, _env.isElectron)()) {
875
- this._controlBarDialogId = this._dialogProvider.openDialog(_constant.FcrUIDialogKey.CONTROL_BAR, _constant.FcrUIDialogKey.CONTROL_BAR, params);
874
+ this._controlBarDialogId = this._dialogProvider.openDialog(_constant.FcrUIDialogKey.CONTROL_BAR, _constant.FcrUIDialogKey.CONTROL_BAR);
876
875
  mainWindow = window.runtime.browserWindow;
877
876
  if (mainWindow) {
878
877
  mainWindow.hide();
879
878
  }
880
879
  } else {
881
- this._controlBarDialogId = this._dialogProvider.openDialog(_constant.FcrUIDialogKey.CONTROL_BAR, _constant.FcrUIDialogKey.CONTROL_BAR, params);
880
+ this._controlBarDialogId = this._dialogProvider.openDialog(_constant.FcrUIDialogKey.CONTROL_BAR, _constant.FcrUIDialogKey.CONTROL_BAR);
882
881
  }
883
- case 2:
882
+ case 1:
884
883
  case "end":
885
884
  return _context9.stop();
886
885
  }
@@ -891,6 +890,16 @@ var ShareScreenStore = exports["default"] = /*#__PURE__*/function () {
891
890
  }
892
891
  return _initControlbar;
893
892
  }()
893
+ }, {
894
+ key: "_handleBrowserShow",
895
+ value: function _handleBrowserShow() {
896
+ this.logger.info("[screen-share]: browser window show, current sharing info: ".concat(this._screenShareInfoForLog));
897
+ }
898
+ }, {
899
+ key: "_hendleBrowserHide",
900
+ value: function _hendleBrowserHide() {
901
+ this.logger.info("[screen-share]: browser window hide, current sharing info: ".concat(this._screenShareInfoForLog));
902
+ }
894
903
  }, {
895
904
  key: "handleToggleScreenShareWithAudio",
896
905
  value: function handleToggleScreenShareWithAudio(withAudio) {
@@ -899,7 +908,7 @@ var ShareScreenStore = exports["default"] = /*#__PURE__*/function () {
899
908
  }]);
900
909
  }();
901
910
  _ShareScreenStore = ShareScreenStore;
902
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_ShareScreenStore, [[_mobx.observable, 1, "boardOwnerUser"], [_setShareWithAudioStateDecs, 18, "setShareWithAudioState"], [_hasLoopbackDeviceDecs, 18, "hasLoopbackDevice"], [_setShareAudioProcessingChannelDecs, 18, "setShareAudioProcessingChannel"], [_decorator.bound, 2, "handlerBoardShareStop"], [_decorator.bound, 2, "release"], [_openRelaunchTipsDialogDecs, 18, "openRelaunchTipsDialog"], [_startRenderSharePreviewDecs, 18, "startRenderSharePreview"], [_stopRenderSharePreviewDecs, 18, "stopRenderSharePreview"], [_handleStopShareDecs, 18, "handleStopShare"], [_handleStartShareDecs, 18, "handleStartShare"], [_openShareScreenSelectionDecs, 18, "_openShareScreenSelection"], [_closeShareScreenSelectionDecs, 18, "_closeShareScreenSelection"], [_setControlBarWindowIdDecs, 18, "_setControlBarWindowId"], [_openVideoWindowDialogDecs, 18, "_openVideoWindowDialog"], [_closeControlBarDecs, 18, "_closeControlBar"], [_closeVideoWindowDialogDecs, 18, "_closeVideoWindowDialog"], [_handleReplaceScreenDecs, 18, "_handleReplaceScreen"], [_decorator.bound, 2, "_handleOnline"], [_decorator.bound, 2, "_handleOffline"], [_initControlbarDecs, 18, "_initControlbar"], [_decorator.bound, 2, "handleToggleScreenShareWithAudio"], [_handleChooseScreenDecs, 16, "handleChooseScreen"]], []).e, 3);
911
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_ShareScreenStore, [[_mobx.observable, 1, "boardOwnerUser"], [_setShareWithAudioStateDecs, 18, "setShareWithAudioState"], [_hasLoopbackDeviceDecs, 18, "hasLoopbackDevice"], [_setShareAudioProcessingChannelDecs, 18, "setShareAudioProcessingChannel"], [_decorator.bound, 2, "handlerBoardShareStop"], [_decorator.bound, 2, "release"], [_openRelaunchTipsDialogDecs, 18, "openRelaunchTipsDialog"], [_startRenderSharePreviewDecs, 18, "startRenderSharePreview"], [_stopRenderSharePreviewDecs, 18, "stopRenderSharePreview"], [_handleStopShareDecs, 18, "handleStopShare"], [_handleStartShareDecs, 18, "handleStartShare"], [_openShareScreenSelectionDecs, 18, "_openShareScreenSelection"], [_closeShareScreenSelectionDecs, 18, "_closeShareScreenSelection"], [_setControlBarWindowIdDecs, 18, "_setControlBarWindowId"], [_openVideoWindowDialogDecs, 18, "_openVideoWindowDialog"], [_closeControlBarDecs, 18, "_closeControlBar"], [_closeVideoWindowDialogDecs, 18, "_closeVideoWindowDialog"], [_handleReplaceScreenDecs, 18, "_handleReplaceScreen"], [_decorator.bound, 2, "_handleOnline"], [_decorator.bound, 2, "_handleOffline"], [_initControlbarDecs, 18, "_initControlbar"], [_decorator.bound, 2, "_handleBrowserShow"], [_decorator.bound, 2, "_hendleBrowserHide"], [_decorator.bound, 2, "handleToggleScreenShareWithAudio"], [_handleChooseScreenDecs, 16, "handleChooseScreen"]], []).e, 3);
903
912
  _init_boardOwnerUser = _applyDecs$e[0];
904
913
  _init_handleChooseScreen = _applyDecs$e[1];
905
914
  _initProto = _applyDecs$e[2];
@@ -255,12 +255,6 @@
255
255
  }
256
256
  }
257
257
 
258
- .fcr-state-bar__time {
259
- }
260
-
261
- .fcr-state-bar__layout {
262
- }
263
-
264
258
  .fcr-state-bar__full-screen {
265
259
  border-radius: var(--fcr_cornerradius_xxs);
266
260
  border: 1px solid var(--fcr_ui_scene_line1);
@@ -631,3 +625,11 @@
631
625
  display: none;
632
626
  }
633
627
  }
628
+
629
+ .layout-set-options-item-disable .fcr-layout-config-panel__option-text {
630
+ color: var(--fcr_ui_scene_icontext3);
631
+ }
632
+
633
+ .layout-set-options-item-disable .fcr-layout-config-panel__option-layout-img-wrapper {
634
+ opacity: 0.5;
635
+ }
@@ -12,6 +12,7 @@ import { FcrUIAbilityProviderImpl } from 'fcr-ui-scene/src/providers/ability-pro
12
12
  import { FcrUIMeetingTimeSharedDataSource } from '../../shared-data-source/meeting-time';
13
13
  import { FcrUIAnnotationProvider } from '../../providers/annotation-provider';
14
14
  import { FcrUIDialogProvider } from '../../providers/dialog-provider';
15
+ import { FcrUIScreenShareSharedDataSource } from '../../shared-data-source/screen-share-data';
15
16
  export declare class StateBarUIModule extends UIModule {
16
17
  private _store?;
17
18
  currentRoomControlProvider?: FcrUICurrentRoomControlProvider;
@@ -29,6 +30,7 @@ export declare class StateBarUIModule extends UIModule {
29
30
  abilityProvider?: FcrUIAbilityProviderImpl;
30
31
  annotationProvider: FcrUIAnnotationProvider;
31
32
  dialogProvider?: FcrUIDialogProvider;
33
+ sharedScreenShareSharedDataSource?: FcrUIScreenShareSharedDataSource;
32
34
  onNodeWillActive(): void;
33
35
  getComponent(): import("react/jsx-runtime").JSX.Element;
34
36
  onNodeWillInactive(): void;
@@ -59,7 +59,8 @@ var StateBarUIModule = exports.StateBarUIModule = /*#__PURE__*/function (_UIModu
59
59
  abilityProvider: this.abilityProvider,
60
60
  sharedMeetingTimeDataSource: this.sharedMeetingTimeDataSource,
61
61
  annotationProvider: this.annotationProvider,
62
- dialogProvider: this.dialogProvider
62
+ dialogProvider: this.dialogProvider,
63
+ sharedScreenShareSharedDataSource: this.sharedScreenShareSharedDataSource
63
64
  });
64
65
  }
65
66
  }, {
@@ -1,5 +1,6 @@
1
1
  import './index.css';
2
2
  interface LayoutConfigProps {
3
+ disable: boolean;
3
4
  }
4
5
  export declare const LayoutConfig: (props: LayoutConfigProps) => import("react/jsx-runtime").JSX.Element;
5
6
  export {};
@@ -14,7 +14,6 @@ var _i18n = require("agora-ui-foundation/lib/i18n");
14
14
  var _mobxReact = require("mobx-react");
15
15
  var _useNamespace = require("../../utilities/useNamespace");
16
16
  require("./index.css");
17
- var _view = require("./view");
18
17
  var _icon = require("agora-ui-foundation/lib/components/icon");
19
18
  var _type = require("agora-ui-foundation/lib/components/icon/type");
20
19
  var _react = require("react");
@@ -24,6 +23,7 @@ var _fcr_listontop_big = _interopRequireDefault(require("../../../public/assets/
24
23
  var _fcr_grid_big = _interopRequireDefault(require("../../../public/assets/fcr_grid_big.svg"));
25
24
  var _store = require("./store");
26
25
  var _store2 = require("../setting/store");
26
+ var _tooltip = require("agora-ui-foundation/lib/components/tooltip");
27
27
  var _jsxRuntime = require("react/jsx-runtime");
28
28
  var LayoutPanel = (0, _mobxReact.observer)(function (props) {
29
29
  var ns = (0, _useNamespace.useNamespace)('layout-config-panel');
@@ -53,9 +53,13 @@ var LayoutPanel = (0, _mobxReact.observer)(function (props) {
53
53
  className: ns.b(),
54
54
  children: [options.map(function (item) {
55
55
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
56
- className: (0, _classnames["default"])(ns.e('option'), ns.is('active', props.layoutView === item.type)),
56
+ className: (0, _classnames["default"])(ns.e('option'), ns.is('active', !props.disable && props.layoutView === item.type), {
57
+ 'layout-set-options-item-disable': props.disable
58
+ }),
57
59
  onClick: function onClick() {
58
- return props.setLayoutView(item.type);
60
+ if (!props.disable) {
61
+ props.setLayoutView(item.type);
62
+ }
59
63
  },
60
64
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
61
65
  className: ns.e('option-layout'),
@@ -93,6 +97,7 @@ var LayoutConfig = exports.LayoutConfig = (0, _mobxReact.observer)(function (pro
93
97
  layoutView = _useContext2.layoutView,
94
98
  toggleLayoutBarLock = _useContext2.toggleLayoutBarLock,
95
99
  galleryWidth = _useContext2.galleryWidth;
100
+ var disable = props.disable;
96
101
  var _useState = (0, _react.useState)(false),
97
102
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
98
103
  isOpen = _useState2[0],
@@ -111,7 +116,11 @@ var LayoutConfig = exports.LayoutConfig = (0, _mobxReact.observer)(function (pro
111
116
  _setIsOpen(false);
112
117
  toggleLayout(view);
113
118
  };
114
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_view.MyFcrToolTip, {
119
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
120
+ disable: disable,
121
+ trigger: "hover",
122
+ placement: 'bottom',
123
+ mouseEnterDelay: 0,
115
124
  content: t('fmt_uimanager_labels_Switchview'),
116
125
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_popover.FcrPopover, {
117
126
  showArrow: false,
@@ -123,7 +132,8 @@ var LayoutConfig = exports.LayoutConfig = (0, _mobxReact.observer)(function (pro
123
132
  setIsOpen: function setIsOpen(visible) {
124
133
  _setIsOpen(visible);
125
134
  toggleLayoutBarLock(visible);
126
- }
135
+ },
136
+ disable: disable
127
137
  }),
128
138
  visible: isOpen,
129
139
  onVisibleChange: function onVisibleChange(visible) {
@@ -15,6 +15,7 @@ import { FcrUIAbilityProviderImpl } from 'fcr-ui-scene/src/providers/ability-pro
15
15
  import { FcrUIMeetingTimeSharedDataSource } from '../../shared-data-source/meeting-time';
16
16
  import { FcrUIAnnotationProvider } from '../../providers/annotation-provider';
17
17
  import { FcrUIDialogProvider } from '../../providers/dialog-provider';
18
+ import { FcrUIScreenShareSharedDataSource } from '../../shared-data-source/screen-share-data';
18
19
  export type NetworkStatus = 'excellent' | 'average' | 'poor' | 'unknown';
19
20
  export declare const GALLERY_MIN_SIZE = 825;
20
21
  export default class StateBarStore {
@@ -28,6 +29,7 @@ export default class StateBarStore {
28
29
  private _sharedLayoutDataSource;
29
30
  private _sharedVideoWindowDataSource;
30
31
  private _sharedMeetingTimeDataSource;
32
+ private _sharedScreenShareSharedDataSource;
31
33
  private _messageProvider;
32
34
  private _sharedMemberDataSource;
33
35
  private _localStorageProvider;
@@ -62,12 +64,13 @@ export default class StateBarStore {
62
64
  get meetingTimeStatus(): import("../../shared-data-source/meeting-time").MeetingStatus;
63
65
  get meetingTime(): string;
64
66
  get password(): string | undefined;
67
+ get isSharingScreen(): boolean;
65
68
  get layoutSize(): number;
66
69
  get layoutView(): import("../../type").FcrUIVideoWindowLayoutType;
67
70
  get asideLayout(): import("../../type").FcrUIUpdateAsideParams;
68
71
  get isRoomDetailSupported(): boolean;
69
72
  get roomDetailCopyText(): string;
70
- constructor({ roomControl, uiEventStore, securityStore, config, parameters, sharedLayoutDataSource, roomProvider, sharedVideoWindowDataSource, messageProvider, sharedMemberDataSource, localStorageProvider, abilityProvider, sharedMeetingTimeDataSource, annotationProvider, dialogProvider, }: {
73
+ constructor({ roomControl, uiEventStore, securityStore, config, parameters, sharedLayoutDataSource, roomProvider, sharedVideoWindowDataSource, messageProvider, sharedMemberDataSource, localStorageProvider, abilityProvider, sharedMeetingTimeDataSource, annotationProvider, dialogProvider, sharedScreenShareSharedDataSource, }: {
71
74
  roomControl: FcrMainRoomControl | FcrWaitingRoomControl;
72
75
  uiEventStore: FcrUIEventProvider;
73
76
  securityStore: FcrUIPrivilegeProvider;
@@ -83,6 +86,7 @@ export default class StateBarStore {
83
86
  sharedMeetingTimeDataSource: FcrUIMeetingTimeSharedDataSource;
84
87
  annotationProvider: FcrUIAnnotationProvider;
85
88
  dialogProvider: FcrUIDialogProvider;
89
+ sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource;
86
90
  });
87
91
  get roomId(): string | undefined;
88
92
  get meetingId(): string | undefined;
@@ -131,7 +131,8 @@ var StateBarStore = exports["default"] = /*#__PURE__*/function () {
131
131
  abilityProvider = _ref2.abilityProvider,
132
132
  sharedMeetingTimeDataSource = _ref2.sharedMeetingTimeDataSource,
133
133
  annotationProvider = _ref2.annotationProvider,
134
- dialogProvider = _ref2.dialogProvider;
134
+ dialogProvider = _ref2.dialogProvider,
135
+ sharedScreenShareSharedDataSource = _ref2.sharedScreenShareSharedDataSource;
135
136
  (0, _classCallCheck2["default"])(this, StateBarStore);
136
137
  (0, _defineProperty2["default"])(this, _ref, (_initProto(this), (0, _logger.createLogger)({
137
138
  prefix: 'StateBarStore'
@@ -175,6 +176,7 @@ var StateBarStore = exports["default"] = /*#__PURE__*/function () {
175
176
  this._sharedMeetingTimeDataSource = sharedMeetingTimeDataSource;
176
177
  this._messageProvider = messageProvider;
177
178
  this._sharedMemberDataSource = sharedMemberDataSource;
179
+ this._sharedScreenShareSharedDataSource = sharedScreenShareSharedDataSource;
178
180
  this._localStorageProvider = localStorageProvider;
179
181
  this._roomControl.addObserver(this._roomObserver);
180
182
  this._abilityProvider = abilityProvider;
@@ -363,6 +365,11 @@ var StateBarStore = exports["default"] = /*#__PURE__*/function () {
363
365
  var _this$_roomControl$ge2;
364
366
  return (_this$_roomControl$ge2 = this._roomControl.getRoomInfo()) === null || _this$_roomControl$ge2 === void 0 ? void 0 : _this$_roomControl$ge2.password;
365
367
  }
368
+ }, {
369
+ key: "isSharingScreen",
370
+ get: function get() {
371
+ return this._sharedScreenShareSharedDataSource.isSharingScreen;
372
+ }
366
373
  }, {
367
374
  key: "layoutSize",
368
375
  get: function get() {
@@ -67,7 +67,7 @@ var View = exports.View = (0, _mobxReact.observer)(function () {
67
67
  showNotification = _useContext.showNotification,
68
68
  closeNotification = _useContext.closeNotification,
69
69
  isRoomDetailSupported = _useContext.isRoomDetailSupported,
70
- annotationHasStart = _useContext.annotationHasStart;
70
+ isSharingScreen = _useContext.isSharingScreen;
71
71
  var _useState = (0, _react.useState)(false),
72
72
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
73
73
  isFullScreen = _useState2[0],
@@ -210,11 +210,15 @@ var View = exports.View = (0, _mobxReact.observer)(function () {
210
210
  children: [isRecording && /*#__PURE__*/(0, _jsxRuntime.jsx)(_recording.Recording, {}), isMainRoom && shouldShowMeetingTime && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
211
211
  className: ns.e('time'),
212
212
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_meetingTime.MeetingTime, {})
213
- }), attendeeCount > 1 && !annotationHasStart && /*#__PURE__*/(0, _jsxRuntime.jsx)(MyFcrToolTip, {
214
- content: t('fmt_statusbar_label_switchlayout'),
213
+ }), attendeeCount > 1 && /*#__PURE__*/(0, _jsxRuntime.jsx)(MyFcrToolTip, {
214
+ content: isSharingScreen ? t('fmt_statusbar_hover_unable_switch_grid_view') : t('fmt_statusbar_label_switchlayout'),
215
215
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
216
- className: ns.e('layout'),
217
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_layoutConfig.LayoutConfig, {})
216
+ className: (0, _classnames["default"])(ns.e('layout'), {
217
+ 'fcr-state-bar_layout_disable': isSharingScreen
218
+ }),
219
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_layoutConfig.LayoutConfig, {
220
+ disable: isSharingScreen
221
+ })
218
222
  })
219
223
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(MyFcrToolTip, {
220
224
  placement: "bottom",
@@ -262,6 +262,7 @@ var WhiteboardControlBarStore = exports.WhiteboardControlBarStore = /*#__PURE__*
262
262
  }, {
263
263
  key: "onClose",
264
264
  value: function onClose() {
265
+ this._uiEventStore.sendEvent(_constant.FcrUIAction.RESET_WHITEBOARD_TOOLBAR_VARS);
265
266
  this._uiEventStore.sendEvent(_constant.FcrUIAction.CLOSE_WHITEBOARD);
266
267
  }
267
268
  }, {
@@ -276,6 +277,7 @@ var WhiteboardControlBarStore = exports.WhiteboardControlBarStore = /*#__PURE__*
276
277
  action: _type.WhiteboardControlbarEvents.ENABLE_CONTROL,
277
278
  payload: controlEnabled
278
279
  });
280
+ this._uiEventStore.sendEvent(_constant.FcrUIAction.RESET_WHITEBOARD_TOOLBAR_VARS);
279
281
  }
280
282
  }]);
281
283
  }();
@@ -4,13 +4,17 @@ import { FcrBoardMainWindow } from 'fcr-core/lib/room-control/whiteboard-control
4
4
  import { FcrBaseRoomControl } from 'fcr-core/lib/room-control/type';
5
5
  import { FcrWhiteboardControl } from 'fcr-core/lib/room-control/whiteboard-control-v2/whiteboard-control/type';
6
6
  import { FcrUIAnnotationProvider } from '../../../../providers/annotation-provider';
7
+ import { FcrUIEventProvider } from '../../../../providers/event-provider';
7
8
  export declare class ToolbarStore {
8
9
  private _whiteboardControl;
9
10
  private _roomControl;
10
11
  private _annotationProvider;
12
+ private _eventProvider;
11
13
  private _boardMainWindow;
12
14
  private _lastStrokeWidth;
13
15
  private _boardObserver;
16
+ private _whiteboardObserver;
17
+ private _uiEventObserver;
14
18
  accessor observables: {
15
19
  currentTool: FcrBoardToolType | undefined;
16
20
  currentShape: FcrBoardShape | undefined;
@@ -41,9 +45,9 @@ export declare class ToolbarStore {
41
45
  };
42
46
  get roomInfo(): import("fcr-core/lib/type").FcrRoomInfo | undefined;
43
47
  get boardMainWindow(): FcrBoardMainWindow;
44
- constructor(_whiteboardControl: FcrWhiteboardControl, _roomControl: FcrBaseRoomControl, _annotationProvider: FcrUIAnnotationProvider);
45
- disableToolbar(): void;
46
- resumeToolbar(): void;
48
+ constructor(_whiteboardControl: FcrWhiteboardControl, _roomControl: FcrBaseRoomControl, _annotationProvider: FcrUIAnnotationProvider, _eventProvider: FcrUIEventProvider);
49
+ private _onUiEvent;
50
+ resetToolbarVars(): void;
47
51
  get annotationHasStart(): boolean;
48
52
  redo(): void;
49
53
  undo(): void;