fcr-ui-scene 3.7.1 → 3.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/lib/creator.js +23 -44
  2. package/lib/electron/app.js +7 -0
  3. package/lib/electron/injections.d.ts +1 -1
  4. package/lib/electron/injections.js +5 -3
  5. package/lib/electron/main.js +3 -1
  6. package/lib/fragments/annotation/index.d.ts +1 -0
  7. package/lib/fragments/annotation/index.js +13 -7
  8. package/lib/fragments/annotation/store.d.ts +8 -4
  9. package/lib/fragments/annotation/store.js +353 -268
  10. package/lib/fragments/annotation/toolbar/components/color-tool/index.js +4 -0
  11. package/lib/fragments/annotation/toolbar/components/graphic-tool/index.js +4 -0
  12. package/lib/fragments/annotation/toolbar/components/item/item.d.ts +2 -0
  13. package/lib/fragments/annotation/toolbar/components/item/item.js +2 -4
  14. package/lib/fragments/annotation/toolbar/components/item/style.css +4 -2
  15. package/lib/fragments/annotation/toolbar/components/pen-tool/index.js +4 -0
  16. package/lib/fragments/annotation/utils.d.ts +1 -0
  17. package/lib/fragments/annotation/utils.js +27 -0
  18. package/lib/fragments/annotation/view.js +1 -6
  19. package/lib/fragments/base.js +5 -3
  20. package/lib/fragments/whiteboard/cursor.css +77 -0
  21. package/lib/fragments/whiteboard/index.d.ts +11 -0
  22. package/lib/fragments/whiteboard/index.js +91 -0
  23. package/lib/fragments/whiteboard/store.d.ts +31 -0
  24. package/lib/fragments/whiteboard/store.js +475 -0
  25. package/lib/fragments/whiteboard/style.css +4 -0
  26. package/lib/fragments/whiteboard/view.d.ts +4 -0
  27. package/lib/fragments/whiteboard/view.js +31 -0
  28. package/lib/index.d.ts +1 -0
  29. package/lib/index.js +1 -0
  30. package/lib/modules/action-bar/components/apps/index.js +15 -5
  31. package/lib/modules/action-bar/components/leave/index.js +4 -11
  32. package/lib/modules/action-bar/view.d.ts +1 -0
  33. package/lib/modules/action-bar/view.js +3 -2
  34. package/lib/modules/annotation/annotation-toolbar-store.d.ts +4 -11
  35. package/lib/modules/annotation/annotation-toolbar-store.js +46 -88
  36. package/lib/modules/annotation/board-cursor.css +2 -1
  37. package/lib/modules/annotation/index.d.ts +2 -0
  38. package/lib/modules/annotation/index.js +2 -2
  39. package/lib/modules/annotation/store.d.ts +11 -49
  40. package/lib/modules/annotation/store.js +135 -418
  41. package/lib/modules/annotation/view.js +3 -6
  42. package/lib/modules/components/control-bar/components/loading/index.css +76 -0
  43. package/lib/modules/components/control-bar/components/loading/index.d.ts +8 -0
  44. package/lib/modules/components/control-bar/components/loading/index.js +64 -0
  45. package/lib/modules/components/control-bar/components/loading/loading.png +0 -0
  46. package/lib/modules/components/control-bar/components/progress/index.d.ts +5 -0
  47. package/lib/modules/components/control-bar/components/progress/index.js +43 -0
  48. package/lib/modules/components/control-bar/components/progress/style.css +51 -0
  49. package/lib/modules/components/control-bar/components/switch-theme/index.css +99 -0
  50. package/lib/modules/components/control-bar/components/switch-theme/index.d.ts +9 -0
  51. package/lib/modules/components/control-bar/components/switch-theme/index.js +94 -0
  52. package/lib/modules/components/control-bar/components/switch-theme/item.d.ts +9 -0
  53. package/lib/modules/components/control-bar/components/switch-theme/item.js +54 -0
  54. package/lib/modules/components/control-bar/components/switch-theme/libs.d.ts +4 -0
  55. package/lib/modules/components/control-bar/components/switch-theme/libs.js +31 -0
  56. package/lib/modules/components/control-bar/index.css +87 -0
  57. package/lib/modules/components/control-bar/index.d.ts +20 -0
  58. package/lib/modules/components/control-bar/index.js +276 -0
  59. package/lib/modules/components/leave-meeting/components/index.css +0 -9
  60. package/lib/modules/components/leave-meeting/index.d.ts +2 -1
  61. package/lib/modules/components/leave-meeting/index.js +15 -7
  62. package/lib/modules/components/leave-meeting/portal.d.ts +6 -0
  63. package/lib/modules/components/leave-meeting/portal.js +29 -0
  64. package/lib/modules/components/leave-meeting/style.css +9 -0
  65. package/lib/modules/components/member-window/components/member-actions/components/more-actions.d.ts +5 -2
  66. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +19 -9
  67. package/lib/modules/components/member-window/components/member-actions/components/share-status.js +4 -4
  68. package/lib/modules/components/member-window/components/member-actions/index.js +13 -6
  69. package/lib/modules/components/member-window/components/member-actions/provider.d.ts +1 -0
  70. package/lib/modules/components/member-window/components/member-actions/provider.js +4 -3
  71. package/lib/modules/components/member-window/components/member-actions/store.d.ts +2 -1
  72. package/lib/modules/components/member-window/components/member-actions/store.js +5 -1
  73. package/lib/modules/components/member-window/index.css +4 -0
  74. package/lib/modules/components/member-window/types.d.ts +6 -2
  75. package/lib/modules/components/toolbar/components/capture-tool/index.d.ts +9 -0
  76. package/lib/modules/components/toolbar/components/capture-tool/index.js +68 -0
  77. package/lib/modules/components/toolbar/components/clean-tool/index.d.ts +11 -0
  78. package/lib/modules/components/toolbar/components/clean-tool/index.js +71 -0
  79. package/lib/modules/components/toolbar/components/color-tool/color-panel/index.d.ts +11 -0
  80. package/lib/modules/components/toolbar/components/color-tool/color-panel/index.js +77 -0
  81. package/lib/modules/components/toolbar/components/color-tool/index.d.ts +14 -0
  82. package/lib/modules/components/toolbar/components/color-tool/index.js +66 -0
  83. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/index.d.ts +11 -0
  84. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/index.js +64 -0
  85. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +12 -0
  86. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/libs.js +65 -0
  87. package/lib/modules/components/toolbar/components/graphic-tool/index.d.ts +15 -0
  88. package/lib/modules/components/toolbar/components/graphic-tool/index.js +82 -0
  89. package/lib/modules/components/toolbar/components/group-tool/index.d.ts +5 -0
  90. package/lib/modules/components/toolbar/components/group-tool/index.js +43 -0
  91. package/lib/modules/components/toolbar/components/icons/fold-icon.d.ts +2 -0
  92. package/lib/modules/components/toolbar/components/icons/fold-icon.js +41 -0
  93. package/lib/modules/components/toolbar/components/icons/move-icon.d.ts +1 -0
  94. package/lib/modules/components/toolbar/components/icons/move-icon.js +66 -0
  95. package/lib/modules/components/toolbar/components/item/index.d.ts +25 -0
  96. package/lib/modules/components/toolbar/components/item/index.js +165 -0
  97. package/lib/modules/components/toolbar/components/item/style.css +94 -0
  98. package/lib/modules/components/toolbar/components/multiple-color-tool/index.d.ts +12 -0
  99. package/lib/modules/components/toolbar/components/multiple-color-tool/index.js +75 -0
  100. package/lib/modules/components/toolbar/components/panel/index.d.ts +9 -0
  101. package/lib/modules/components/toolbar/components/panel/index.js +28 -0
  102. package/lib/modules/components/toolbar/components/panel/style.css +86 -0
  103. package/lib/modules/components/toolbar/components/pen-tool/index.d.ts +13 -0
  104. package/lib/modules/components/toolbar/components/pen-tool/index.js +62 -0
  105. package/lib/modules/components/toolbar/components/pen-tool/pen-panel/index.d.ts +8 -0
  106. package/lib/modules/components/toolbar/components/pen-tool/pen-panel/index.js +39 -0
  107. package/lib/modules/components/toolbar/components/save-draft/index.d.ts +7 -0
  108. package/lib/modules/components/toolbar/components/save-draft/index.js +59 -0
  109. package/lib/modules/components/toolbar/components/vertical-frame/index.d.ts +8 -0
  110. package/lib/modules/components/toolbar/components/vertical-frame/index.js +179 -0
  111. package/lib/modules/components/toolbar/hooks/use-resize-visible.d.ts +4 -0
  112. package/lib/modules/components/toolbar/hooks/use-resize-visible.js +59 -0
  113. package/lib/modules/components/toolbar/index.d.ts +29 -0
  114. package/lib/modules/components/toolbar/index.js +258 -0
  115. package/lib/modules/components/toolbar/style.css +85 -0
  116. package/lib/modules/components/toolbar/types.d.ts +13 -0
  117. package/lib/modules/components/toolbar/types.js +6 -0
  118. package/lib/modules/control-bar/components/more-actions/index.js +0 -6
  119. package/lib/modules/control-bar/components/share-state-nav/index.js +3 -2
  120. package/lib/modules/control-bar/index.js +2 -1
  121. package/lib/modules/control-bar/store.d.ts +7 -6
  122. package/lib/modules/control-bar/store.js +28 -21
  123. package/lib/modules/control-bar/view.js +7 -55
  124. package/lib/modules/dialog/dialogs/control-bar/index.d.ts +1 -0
  125. package/lib/modules/dialog/dialogs/control-bar/index.js +17 -3
  126. package/lib/modules/dialog/dialogs/participant/components/title.js +1 -1
  127. package/lib/modules/dialog/dialogs/sub-window/index.d.ts +2 -0
  128. package/lib/modules/dialog/dialogs/sub-window/index.js +98 -0
  129. package/lib/modules/dialog/dialogs/video-window/index.d.ts +1 -0
  130. package/lib/modules/dialog/dialogs/video-window/index.js +3 -2
  131. package/lib/modules/dialog/dialogs/whiteboard/index.js +0 -1
  132. package/lib/modules/dialog/hooks/use-popover-watcher.js +1 -2
  133. package/lib/modules/dialog/hooks/useElectron.d.ts +13 -0
  134. package/lib/modules/dialog/hooks/useElectron.js +62 -12
  135. package/lib/modules/dialog/index.d.ts +6 -3
  136. package/lib/modules/dialog/index.js +5 -3
  137. package/lib/modules/dialog/store.d.ts +21 -8
  138. package/lib/modules/dialog/store.js +79 -11
  139. package/lib/modules/dialog/type.d.ts +8 -0
  140. package/lib/modules/event-confirm/index.css +5 -2
  141. package/lib/modules/event-confirm/store.js +6 -7
  142. package/lib/modules/event-confirm/view.js +1 -1
  143. package/lib/modules/event-sound/index.d.ts +1 -0
  144. package/lib/modules/event-sound/index.js +11 -24
  145. package/lib/modules/invite/components/pstn-invite.js +0 -1
  146. package/lib/modules/layout/components/CommonVideoRenderer.js +21 -21
  147. package/lib/modules/layout/components/who-is-speaking.js +3 -6
  148. package/lib/modules/layout/index.d.ts +3 -1
  149. package/lib/modules/layout/index.js +2 -1
  150. package/lib/modules/layout/store.d.ts +9 -59
  151. package/lib/modules/layout/store.js +162 -37
  152. package/lib/modules/layout/type.d.ts +55 -0
  153. package/lib/modules/participant/components/can-moveable/index.js +0 -1
  154. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.js +4 -2
  155. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.js +14 -2
  156. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.d.ts +1 -1
  157. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.js +3 -2
  158. package/lib/modules/participant/components/participants/components/participants/index.js +3 -2
  159. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.d.ts +1 -0
  160. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.js +3 -1
  161. package/lib/modules/participant/components/participants/components/render-user/components/user-action/index.js +4 -2
  162. package/lib/modules/participant/components/participants/components/render-user/index.d.ts +4 -2
  163. package/lib/modules/participant/components/participants/components/render-user/index.js +5 -3
  164. package/lib/modules/participant/components/participants/index.js +5 -2
  165. package/lib/modules/participant/components/participants/types.d.ts +3 -0
  166. package/lib/modules/participant/index.d.ts +2 -0
  167. package/lib/modules/participant/index.js +2 -1
  168. package/lib/modules/participant/store.d.ts +5 -1
  169. package/lib/modules/participant/store.js +8 -1
  170. package/lib/modules/secondary-window/index.d.ts +49 -0
  171. package/lib/modules/secondary-window/index.js +108 -0
  172. package/lib/modules/secondary-window/store.d.ts +76 -0
  173. package/lib/modules/secondary-window/store.js +407 -0
  174. package/lib/modules/secondary-window/type.d.ts +106 -0
  175. package/lib/modules/secondary-window/type.js +35 -0
  176. package/lib/modules/secondary-window/view.d.ts +6 -0
  177. package/lib/modules/secondary-window/view.js +257 -0
  178. package/lib/modules/setting/general-settings/general-settings.js +9 -0
  179. package/lib/modules/setting/state/index.js +0 -10
  180. package/lib/modules/setting/store.d.ts +1 -0
  181. package/lib/modules/setting/store.js +6 -3
  182. package/lib/modules/share-screen/components/control-bar/index.d.ts +14 -1
  183. package/lib/modules/share-screen/components/control-bar/index.js +17 -12
  184. package/lib/modules/share-screen/components/selection/index.js +10 -15
  185. package/lib/modules/share-screen/index.d.ts +4 -1
  186. package/lib/modules/share-screen/index.js +6 -3
  187. package/lib/modules/share-screen/store.d.ts +9 -9
  188. package/lib/modules/share-screen/store.js +39 -64
  189. package/lib/modules/state-bar/index.d.ts +2 -0
  190. package/lib/modules/state-bar/index.js +2 -1
  191. package/lib/modules/state-bar/live-streaming-state.js +0 -1
  192. package/lib/modules/state-bar/store.d.ts +5 -2
  193. package/lib/modules/state-bar/store.js +14 -7
  194. package/lib/modules/state-bar/view.js +3 -3
  195. package/lib/modules/video-window/components/members/index.js +7 -12
  196. package/lib/modules/video-window/store.d.ts +1 -0
  197. package/lib/modules/video-window/store.js +5 -0
  198. package/lib/modules/whiteboard/components/toolbar/store.d.ts +2 -2
  199. package/lib/modules/whiteboard/index.d.ts +10 -13
  200. package/lib/modules/whiteboard/index.js +12 -11
  201. package/lib/providers/ability-provider.js +2 -0
  202. package/lib/providers/device-provider.d.ts +6 -3
  203. package/lib/providers/device-provider.js +336 -333
  204. package/lib/providers/multi-display-provider.d.ts +85 -0
  205. package/lib/providers/multi-display-provider.js +581 -0
  206. package/lib/providers/privilege-provider.js +1 -7
  207. package/lib/providers/room-provider.js +7 -1
  208. package/lib/providers/screen-share-provider.d.ts +3 -1
  209. package/lib/providers/screen-share-provider.js +39 -40
  210. package/lib/providers/sharing-provider.d.ts +7 -1
  211. package/lib/providers/sharing-provider.js +32 -3
  212. package/lib/providers/whiteboard-provider.d.ts +24 -0
  213. package/lib/providers/whiteboard-provider.js +127 -0
  214. package/lib/runtime.d.ts +1 -0
  215. package/lib/scenes/main-scene.d.ts +6 -0
  216. package/lib/scenes/main-scene.js +38 -2
  217. package/lib/scenes/waiting-scene.d.ts +0 -2
  218. package/lib/scenes/waiting-scene.js +0 -6
  219. package/lib/shared-data-source/member-data.d.ts +2 -2
  220. package/lib/shared-data-source/screen-share-data.d.ts +6 -0
  221. package/lib/shared-data-source/screen-share-data.js +5 -0
  222. package/lib/shared-data-source/setting.js +2 -1
  223. package/lib/shared-data-source/video-window.d.ts +2 -0
  224. package/lib/shared-data-source/video-window.js +19 -6
  225. package/lib/shared-data-source/whiteboard-data.d.ts +68 -0
  226. package/lib/shared-data-source/whiteboard-data.js +347 -0
  227. package/lib/translations/enUS.d.ts +1 -0
  228. package/lib/translations/enUS.js +2 -1
  229. package/lib/translations/zhCN.d.ts +1 -0
  230. package/lib/translations/zhCN.js +2 -1
  231. package/lib/ui-scene.d.ts +0 -1
  232. package/lib/ui-scene.js +0 -3
  233. package/lib/utilities/constant.d.ts +4 -2
  234. package/lib/utilities/constant.js +3 -1
  235. package/lib/utilities/debug.d.ts +4 -0
  236. package/lib/utilities/debug.js +40 -0
  237. package/lib/utilities/dialog-utils.js +26 -4
  238. package/lib/utilities/meeting-detail.js +4 -1
  239. package/lib/utilities/renderer-event.d.ts +4 -6
  240. package/lib/utilities/renderer-event.js +23 -43
  241. package/lib/utilities/renderer.d.ts +1 -1
  242. package/lib/utilities/renderer.js +44 -10
  243. package/lib/utilities/shared-storage.d.ts +18 -0
  244. package/lib/utilities/shared-storage.js +63 -0
  245. package/lib/utilities/tools.js +2 -1
  246. package/package.json +5 -6
  247. package/lib/electron/tools.d.ts +0 -5
  248. package/lib/electron/tools.js +0 -62
@@ -21,37 +21,23 @@ var _memberWindow = require("../../components/member-window");
21
21
  var _screen = require("../../../utilities/screen");
22
22
  var _react = require("react");
23
23
  var _fcrCore = require("fcr-core");
24
- var _muteAction = require("../../../utilities/mute-action");
25
24
  var _classnames = _interopRequireDefault(require("classnames"));
26
25
  var _mobxReact = require("mobx-react");
27
26
  var _Gallery = require("./Gallery");
28
27
  var _jsxRuntime = require("react/jsx-runtime");
29
28
  var useFormatWindowData = function useFormatWindowData() {
30
29
  var _useContext = (0, _react.useContext)(_store.StoreContext),
31
- hasMutePermission = _useContext.hasMutePermission,
32
- hasUnmutePermission = _useContext.hasUnmutePermission,
33
- hasRequestStartAudioPermission = _useContext.hasRequestStartAudioPermission,
34
30
  userVolumeMap = _useContext.userVolumeMap,
35
31
  getAllowedOperations = _useContext.getAllowedOperations;
36
32
  return function (windowData) {
37
33
  var isMySelf = windowData.isMySelf,
38
- hasMicrophoneAudioStream = windowData.hasMicrophoneAudioStream,
39
34
  ownerRoleType = windowData.ownerRoleType,
40
35
  videoStreamId = windowData.videoStreamId,
41
36
  audioStreamId = windowData.audioStreamId;
42
- var targetRole = isMySelf ? _fcrCore.FcrPrivilegeUserRole.SELF : ownerRoleType;
43
- var muteAudioPermission = hasMutePermission(targetRole);
44
- var startAudioPermission = hasUnmutePermission(targetRole);
45
- var requestStartAudioPermission = hasRequestStartAudioPermission(ownerRoleType);
46
- var _actionMute = (0, _muteAction.actionMute)(isMySelf, hasMicrophoneAudioStream, muteAudioPermission, startAudioPermission, requestStartAudioPermission),
47
- isShowActionAudio = _actionMute.isShowActionAudio,
48
- actionAudioTag = _actionMute.actionAudioTag;
49
37
  var id = isMySelf ? '0' : videoStreamId || audioStreamId;
50
38
  var volume = userVolumeMap.get(id || '') || 0;
51
39
  var allowedOperations = getAllowedOperations(ownerRoleType, isMySelf);
52
40
  return {
53
- isShowActionAudio: isShowActionAudio,
54
- actionAudioTag: actionAudioTag,
55
41
  volume: volume,
56
42
  id: id,
57
43
  allowedOperations: allowedOperations
@@ -72,7 +58,7 @@ var useCommonProps = function useCommonProps(layoutType) {
72
58
  }) : 'fcr-layout-content-carousel-item';
73
59
  var showToolbar = isGridLayout && isMainWindow;
74
60
  var list = isGridLayout ? galleryList : carouselList;
75
- var canShowSpeakerSpotlight = isGridLayout ? galleryList.length > 1 : true;
61
+ var canShowSpeakerSpotlight = isGridLayout ? galleryList.length > 2 : true;
76
62
  var isMask = isGridLayout ? !isMainWindow : true;
77
63
  var isToggleMainStream = isGridLayout && layout === _type.FcrUIVideoWindowLayoutType.Speaker && isMainWindow;
78
64
  var memberWindowPreviewType = isGridLayout ? _type.FcrUILayoutType.GALLERY : _type.FcrUILayoutType.CAROUSEL;
@@ -118,7 +104,12 @@ var CommonVideoRenderer = exports.CommonVideoRenderer = (0, _mobxReact.observer)
118
104
  scalcValue = _useContext3.scalcValue,
119
105
  setScaleValue = _useContext3.setScaleValue,
120
106
  screenShareControl = _useContext3.screenShareControl,
121
- annotation = _useContext3.annotation;
107
+ annotation = _useContext3.annotation,
108
+ isLocalCameraInSecondaryWindow = _useContext3.isLocalCameraInSecondaryWindow,
109
+ microphoneEnabled = _useContext3.microphoneEnabled,
110
+ hasMutePermission = _useContext3.hasMutePermission,
111
+ hasUnmutePermission = _useContext3.hasUnmutePermission,
112
+ hasRequestStartAudioPermission = _useContext3.hasRequestStartAudioPermission;
122
113
  var getFormatWindowData = useFormatWindowData();
123
114
  var commonProps = useCommonProps(layoutType);
124
115
  var toggleFullScreen = function toggleFullScreen() {
@@ -144,8 +135,6 @@ var CommonVideoRenderer = exports.CommonVideoRenderer = (0, _mobxReact.observer)
144
135
  };
145
136
  var renderMemberWindowActions = function renderMemberWindowActions(windowData, isBoard) {
146
137
  var _getFormatWindowData = getFormatWindowData(windowData),
147
- isShowActionAudio = _getFormatWindowData.isShowActionAudio,
148
- actionAudioTag = _getFormatWindowData.actionAudioTag,
149
138
  id = _getFormatWindowData.id,
150
139
  volume = _getFormatWindowData.volume,
151
140
  allowedOperations = _getFormatWindowData.allowedOperations;
@@ -153,8 +142,6 @@ var CommonVideoRenderer = exports.CommonVideoRenderer = (0, _mobxReact.observer)
153
142
  var iconSize = isBoard ? 24 : commonProps.iconSize;
154
143
  var windowSize = isBoard ? 'large' : commonProps.windowSize;
155
144
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_memberActions.MemberWindowActions, {
156
- isShowActionAudio: isShowActionAudio,
157
- actionAudioTag: actionAudioTag,
158
145
  showActionBottomLabel: showActionBottomLabel,
159
146
  allowedOperations: allowedOperations,
160
147
  setVideoOrientation: setVideoOrientation,
@@ -171,7 +158,12 @@ var CommonVideoRenderer = exports.CommonVideoRenderer = (0, _mobxReact.observer)
171
158
  id: id,
172
159
  volume: volume,
173
160
  iconSize: iconSize,
174
- windowSize: windowSize
161
+ windowSize: windowSize,
162
+ isLocalCameraInSecondaryWindow: isLocalCameraInSecondaryWindow,
163
+ deviceMicrophoneEnabled: microphoneEnabled,
164
+ hasMutePermission: hasMutePermission,
165
+ hasUnmutePermission: hasUnmutePermission,
166
+ hasRequestStartAudioPermission: hasRequestStartAudioPermission
175
167
  });
176
168
  };
177
169
  var handleDoubleClick = function handleDoubleClick(windowId, isScreenSharing, isPin) {
@@ -193,6 +185,13 @@ var CommonVideoRenderer = exports.CommonVideoRenderer = (0, _mobxReact.observer)
193
185
  videoSourceType = windowData.videoSourceType;
194
186
  var isBoard = type === _type.FcrUIWindowType.BOARD;
195
187
  var isScreenSharing = videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN;
188
+
189
+ /**
190
+ * 在共享时,主窗口会有一个额外的控制条,需要将视频内容减去这个高度(28px),所以增加一个class用来覆盖高度样式
191
+ */
192
+ var clsWithShareControlBar = (0, _classnames["default"])({
193
+ 'fcr-member-window-with-share-controlbar': isMainWindowInScreenSharing
194
+ });
196
195
  /**
197
196
  * 在只有一个用户时,无法开启网格布局,所以可以通过 data.length 和 layoutType 判断是否是主窗口。
198
197
  */
@@ -207,6 +206,7 @@ var CommonVideoRenderer = exports.CommonVideoRenderer = (0, _mobxReact.observer)
207
206
  width: dimensions.width,
208
207
  height: dimensions.height
209
208
  },
209
+ className: clsWithShareControlBar,
210
210
  children: [isMainWindowInScreenSharing && screenShareControl, /*#__PURE__*/(0, _jsxRuntime.jsx)(_memberWindow.MemberWindow, {
211
211
  memberWindowPreviewType: commonProps.memberWindowPreviewType,
212
212
  canShowSpeakerSpotlight: commonProps.canShowSpeakerSpotlight,
@@ -13,7 +13,6 @@ var _icon = require("agora-ui-foundation/lib/components/icon");
13
13
  var _type = require("agora-ui-foundation/lib/components/icon/type");
14
14
  var _i18n = require("agora-ui-foundation/lib/i18n");
15
15
  var _store = require("../store");
16
- var _type2 = require("../type");
17
16
  var _jsxRuntime = require("react/jsx-runtime");
18
17
  var CarouselExpandButton = exports.CarouselExpandButton = (0, _mobxReact.observer)(function () {
19
18
  var _useContext = (0, _react.useContext)(_store.StoreContext),
@@ -41,14 +40,12 @@ var CarouselExpandButton = exports.CarouselExpandButton = (0, _mobxReact.observe
41
40
  var WhoIsSpeaking = exports.WhoIsSpeaking = (0, _mobxReact.observer)(function () {
42
41
  var t = (0, _i18n.useI18n)();
43
42
  var _useContext2 = (0, _react.useContext)(_store.StoreContext),
44
- layout = _useContext2.layout,
45
- collapsed = _useContext2.collapsed,
46
- findSpotlightUser = _useContext2.findSpotlightUser;
43
+ findSpotlightUser = _useContext2.findSpotlightUser,
44
+ isWhoISpeakingActive = _useContext2.isWhoISpeakingActive;
47
45
  var userName = findSpotlightUser === null || findSpotlightUser === void 0 ? void 0 : findSpotlightUser.userName;
48
- var active = userName && layout === _type2.FcrUIVideoWindowLayoutType.Speaker && collapsed;
49
46
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
50
47
  className: (0, _classnames["default"])('fcr-layout-speaking', {
51
- 'fcr-layout-speaking-active': active
48
+ 'fcr-layout-speaking-active': isWhoISpeakingActive
52
49
  }),
53
50
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
54
51
  className: "fcr-layout-speaking-content",
@@ -2,7 +2,6 @@ import { UIModule } from '../../base';
2
2
  import { FcrUIDeviceProvider } from '../../providers/device-provider';
3
3
  import { FcrUIEventProvider } from '../../providers/event-provider';
4
4
  import { FcrUIPrivilegeProvider } from '../../providers/privilege-provider';
5
- import { FcrLayoutSlots } from './store';
6
5
  import { FcrUISharedConfigDataSource } from '../../shared-data-source/config';
7
6
  import { FcrUIMainRoomControlProvider } from '../../providers/room-provider';
8
7
  import { FcrUISharedSpeakerSpotlightDataSource } from '../../shared-data-source/speaker-spotlight';
@@ -18,6 +17,8 @@ import { FcrUIAnnotationProvider } from '../../providers/annotation-provider';
18
17
  import { FcrUIScreenShareSharedDataSource } from '../../shared-data-source/screen-share-data';
19
18
  import { FcrUIInterpreterProvider } from '../../providers/interpreter-provider';
20
19
  import { FcrUISharedAnnotationSource } from '../../shared-data-source/annotation-data';
20
+ import { FcrLayoutSlots } from './type';
21
+ import { FcrUIMultiDisplayProvider } from '../../providers/multi-display-provider';
21
22
  export declare class LayoutUIModule extends UIModule {
22
23
  private _store?;
23
24
  eventProvider?: FcrUIEventProvider;
@@ -37,6 +38,7 @@ export declare class LayoutUIModule extends UIModule {
37
38
  annotationProvider?: FcrUIAnnotationProvider;
38
39
  sharedScreenShareSharedDataSource?: FcrUIScreenShareSharedDataSource;
39
40
  sharedAnnotationDataSource?: FcrUISharedAnnotationSource;
41
+ multiDisplayProvider?: FcrUIMultiDisplayProvider;
40
42
  interpreterProvider?: FcrUIInterpreterProvider;
41
43
  onNodeWillActive(): void;
42
44
  onNodeWillInactive(): void;
@@ -59,7 +59,8 @@ var LayoutUIModule = exports.LayoutUIModule = /*#__PURE__*/function (_UIModule)
59
59
  annotationProvider: this.annotationProvider,
60
60
  sharedScreenShareDataSource: this.sharedScreenShareSharedDataSource,
61
61
  interpreterProvider: this.interpreterProvider,
62
- sharedAnnotationDataSource: this.sharedAnnotationDataSource
62
+ sharedAnnotationDataSource: this.sharedAnnotationDataSource,
63
+ multiDisplayProvider: this.multiDisplayProvider
63
64
  });
64
65
  }
65
66
  }, {
@@ -1,66 +1,13 @@
1
1
  import { FcrPrivilegeUserRole, FcrStreamControl } from 'fcr-core';
2
2
  import { FcrUserInfo, FcrUserRole } from 'fcr-core/lib/type';
3
- import { FcrUIVideoWindowData, FcrUIVideoWindowLayoutType } from './type';
3
+ import { FcrLayoutSlots, FcrUIVideoWindowData, FcrUIVideoWindowLayoutType, LayoutStoreParams } from './type';
4
4
  import { FcrChatRoomConnectionState } from 'fcr-core/lib/room-control/chatroom-control/type';
5
5
  import { FcrUserUpdatedEvent } from 'fcr-core/lib/room-control/user-control/type';
6
- import { FcrMainRoomControl } from 'fcr-core/lib/room-control/type';
7
- import { FcrUIEventObserver, FcrUIEventProvider } from '../../providers/event-provider';
8
- import { FcrUIPrivilegeProvider } from '../../providers/privilege-provider';
9
- import { FcrUIDeviceProvider } from '../../providers/device-provider';
6
+ import { FcrUIEventObserver } from '../../providers/event-provider';
10
7
  import { FcrUIAction } from '../../utilities/constant';
11
8
  import { FcrUISetMainSpeakerParams } from '../../type';
12
- import { FcrUISharedConfigDataSource } from '../../shared-data-source/config';
13
- import { FcrUISharedSpeakerSpotlightDataSource } from '../../shared-data-source/speaker-spotlight';
14
- import { FcrUISharedLayoutDataSource } from '../../shared-data-source/layout-data';
15
- import { FcrUISharedInterpreterDataSource } from '../../shared-data-source/interpreter';
16
- import { FcrUISharedSettingDataSource } from '../../shared-data-source/setting';
17
- import { FcrUIChatProvider } from '../../providers/chat-provider';
18
- import { FcrUIVideoWindowDataSource } from '../../shared-data-source/video-window';
19
- import { FcrUIMemberSharedDataSource } from '../../shared-data-source/member-data';
20
- import { FcrUIScreenShareProvider } from '../../providers/screen-share-provider';
21
- import { FcrUISharedPinDataSource } from '../../shared-data-source/pin-data';
22
- import { FcrUIAnnotationProvider } from '../../providers/annotation-provider';
23
- import { FcrUIScreenShareSharedDataSource } from '../../shared-data-source/screen-share-data';
24
- import { FcrUIInterpreterProvider } from '../../providers/interpreter-provider';
25
- import { FcrUISharedAnnotationSource } from '../../shared-data-source/annotation-data';
26
- export interface FcrLayoutSlots {
27
- participant: React.ReactNode;
28
- chat: React.ReactNode;
29
- chatAction: React.ReactNode;
30
- stateBar: React.ReactNode;
31
- actionBar: React.ReactNode;
32
- layers: React.ReactNode;
33
- whiteboard: React.ReactNode;
34
- annotation: React.ReactNode;
35
- screenShareControl: React.ReactNode;
36
- }
37
- export interface FcrUILayoutAsideContent {
38
- participant: boolean;
39
- chat: boolean;
40
- }
41
- export interface LayoutStoreParams {
42
- eventProvider: FcrUIEventProvider;
43
- deviceProvider: FcrUIDeviceProvider;
44
- privilegeProvider: FcrUIPrivilegeProvider;
45
- roomControl: FcrMainRoomControl;
46
- sharedConfigDataSource: FcrUISharedConfigDataSource;
47
- sharedSpeakerSpotlightDataSource: FcrUISharedSpeakerSpotlightDataSource;
48
- sharedLayoutDataSource: FcrUISharedLayoutDataSource;
49
- sharedInterpreterDataSource: FcrUISharedInterpreterDataSource;
50
- sharedSettingDataSource: FcrUISharedSettingDataSource;
51
- chatProvider: FcrUIChatProvider;
52
- sharedVideoWindowDataSource: FcrUIVideoWindowDataSource;
53
- sharedMemberDataSource: FcrUIMemberSharedDataSource;
54
- screenShareProvider: FcrUIScreenShareProvider;
55
- sharedPinDataSource: FcrUISharedPinDataSource;
56
- annotationProvider: FcrUIAnnotationProvider;
57
- sharedScreenShareDataSource: FcrUIScreenShareSharedDataSource;
58
- interpreterProvider: FcrUIInterpreterProvider;
59
- sharedAnnotationDataSource: FcrUISharedAnnotationSource;
60
- }
61
9
  export default class LayoutStore implements FcrLayoutSlots, FcrUIEventObserver {
62
10
  private readonly logger;
63
- private static MIN_USERS_TO_ENABLE_SPOTLIGHT;
64
11
  private _videoWindowDataSource;
65
12
  private _eventProvider;
66
13
  private _deviceProvider;
@@ -79,12 +26,10 @@ export default class LayoutStore implements FcrLayoutSlots, FcrUIEventObserver {
79
26
  private _sharedSettingDataSource;
80
27
  private _sharedMemberDataSource;
81
28
  private _chatProvider;
82
- private _screenShareProvider;
83
29
  private _pinDataSource;
84
- private _annotationProvider;
85
30
  private _sharedScreenShareDataSource;
86
- private _interpreterProvider;
87
31
  private _sharedAnnotationDataSource;
32
+ private _multiDisplayProvider;
88
33
  accessor participant: React.ReactNode;
89
34
  accessor chat: React.ReactNode;
90
35
  accessor chatAction: React.ReactNode;
@@ -132,6 +77,7 @@ export default class LayoutStore implements FcrLayoutSlots, FcrUIEventObserver {
132
77
  get hasPinnedStream(): boolean;
133
78
  get isRobot(): boolean;
134
79
  get findSpotlightUser(): import("../../shared-data-source/video-window").FcrUIVideoWindowDataImpl | null | undefined;
80
+ get isWhoISpeakingActive(): boolean | "" | undefined;
135
81
  get microphoneEnabled(): boolean;
136
82
  get allowChat(): boolean;
137
83
  get allowUnmuteSelfAudio(): boolean;
@@ -146,6 +92,9 @@ export default class LayoutStore implements FcrLayoutSlots, FcrUIEventObserver {
146
92
  get localUserId(): string;
147
93
  get interpreterUserList(): import("fcr-core/lib/room-control/interpreter-control/types").FcrInterpreterUserInfo[] | null;
148
94
  get isInterpreterEnabled(): boolean;
95
+ get secondaryWindowContentType(): "hidden" | "speaker" | "gallery" | "local-camera" | "remote-camera" | "sharing-screen" | "sharing-screen-with-annotation" | "sharing-whiteboard";
96
+ get isMultiDisplayActive(): boolean;
97
+ get isLocalCameraInSecondaryWindow(): boolean;
149
98
  constructor(params: LayoutStoreParams);
150
99
  get participantCount(): number;
151
100
  get isVideoSuspended(): boolean;
@@ -212,8 +161,9 @@ export default class LayoutStore implements FcrLayoutSlots, FcrUIEventObserver {
212
161
  private _switchToGallery;
213
162
  private _setBarHovering;
214
163
  private _initStream;
215
- private _isSetSpotlightEnable;
216
164
  private _handleConnectionUpdated;
165
+ private _findVideoWindowByUserId;
166
+ private _onRemoteUsersLeft;
217
167
  private _handleLiveStreamingStateUpdated;
218
168
  private _handleStreamAdded;
219
169
  private _onStreamsAdded;