fcr-ui-scene 3.2.0 → 3.3.0

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 (219) hide show
  1. package/installer/icons/favicon.ico +0 -0
  2. package/installer/icons/favicon.png +0 -0
  3. package/installer/mac/entitlements.mac.plist +16 -0
  4. package/lib/common/device-store.d.ts +1 -1
  5. package/lib/common/device-store.js +11 -3
  6. package/lib/common/event-store.d.ts +17 -1
  7. package/lib/common/event-store.js +38 -5
  8. package/lib/common/security-store.d.ts +14 -4
  9. package/lib/common/security-store.js +149 -30
  10. package/lib/electron/bootstrap-dev.d.ts +1 -0
  11. package/lib/electron/bootstrap-dev.js +51 -0
  12. package/lib/electron/bootstrap-sdk.d.ts +1 -0
  13. package/lib/electron/bootstrap-sdk.js +56 -0
  14. package/lib/electron/bootstrap.d.ts +1 -0
  15. package/lib/electron/bootstrap.js +56 -0
  16. package/lib/electron/default-options.js +1 -1
  17. package/lib/electron/dev.d.ts +1 -0
  18. package/lib/electron/dev.js +51 -0
  19. package/lib/electron/injections.d.ts +1 -1
  20. package/lib/electron/injections.js +3 -6
  21. package/lib/electron/main.js +4 -16
  22. package/lib/electron/plugins/meeting-state.d.ts +2 -0
  23. package/lib/electron/plugins/meeting-state.js +39 -0
  24. package/lib/electron/preload.js +1 -1
  25. package/lib/fragments/control-bar/control-bar-store.d.ts +34 -1
  26. package/lib/fragments/control-bar/control-bar-store.js +371 -79
  27. package/lib/fragments/control-bar/device/index.js +5 -3
  28. package/lib/fragments/control-bar/index.css +15 -10
  29. package/lib/fragments/control-bar/index.js +18 -0
  30. package/lib/fragments/control-bar/meeting-details/meeting-detail.css +109 -0
  31. package/lib/fragments/control-bar/meeting-details/meeting-details-portal.d.ts +3 -0
  32. package/lib/fragments/control-bar/meeting-details/meeting-details-portal.js +60 -0
  33. package/lib/fragments/control-bar/meeting-details/meeting-details.d.ts +2 -0
  34. package/lib/fragments/control-bar/meeting-details/meeting-details.js +179 -0
  35. package/lib/fragments/control-bar/more-actions/index.css +53 -0
  36. package/lib/fragments/control-bar/more-actions/index.js +72 -37
  37. package/lib/fragments/control-bar/security-content/index.css +10 -0
  38. package/lib/fragments/control-bar/security-content/index.js +40 -18
  39. package/lib/fragments/control-bar/view.js +8 -2
  40. package/lib/login-confirm-dialog.d.ts +12 -0
  41. package/lib/login-confirm-dialog.js +80 -0
  42. package/lib/modules/action-bar/action-bar-collapes-items.js +5 -5
  43. package/lib/modules/action-bar/chat/index.js +5 -5
  44. package/lib/modules/action-bar/device/index.css +7 -2
  45. package/lib/modules/action-bar/device/index.js +4 -4
  46. package/lib/modules/action-bar/index.css +59 -12
  47. package/lib/modules/action-bar/index.d.ts +3 -2
  48. package/lib/modules/action-bar/index.dev.js +1 -1
  49. package/lib/modules/action-bar/index.js +21 -0
  50. package/lib/modules/action-bar/leave/assign-host.d.ts +3 -0
  51. package/lib/modules/action-bar/leave/assign-host.js +2 -4
  52. package/lib/modules/action-bar/leave/index.js +29 -6
  53. package/lib/modules/action-bar/leave/leave-meeting.d.ts +11 -0
  54. package/lib/modules/action-bar/leave/leave-meeting.js +25 -16
  55. package/lib/modules/action-bar/more/poppover-content.js +4 -4
  56. package/lib/modules/action-bar/participants/index.css +12 -0
  57. package/lib/modules/action-bar/participants/index.js +21 -14
  58. package/lib/modules/action-bar/screen-share/index.js +5 -1
  59. package/lib/modules/action-bar/screen-share/submenu.js +16 -22
  60. package/lib/modules/action-bar/security/drop-menu.js +90 -13
  61. package/lib/modules/action-bar/store.d.ts +38 -6
  62. package/lib/modules/action-bar/store.js +487 -95
  63. package/lib/modules/action-bar/view.js +65 -42
  64. package/lib/modules/chat/chat-bar/index.js +39 -27
  65. package/lib/modules/chat/chat-select/index.css +14 -4
  66. package/lib/modules/chat/chat.d.ts +1 -2
  67. package/lib/modules/chat/chat.js +184 -105
  68. package/lib/modules/chat/index.css +49 -0
  69. package/lib/modules/chat/index.d.ts +2 -2
  70. package/lib/modules/chat/index.dev.js +1 -1
  71. package/lib/modules/chat/index.js +13 -8
  72. package/lib/modules/chat/message-list.js +59 -48
  73. package/lib/modules/chat/store.d.ts +48 -2
  74. package/lib/modules/chat/store.js +258 -45
  75. package/lib/modules/connection-gateway/index.d.ts +2 -1
  76. package/lib/modules/connection-gateway/store.d.ts +6 -3
  77. package/lib/modules/connection-gateway/store.js +5 -1
  78. package/lib/modules/device-pretest/audio-preview/speaker-control.js +1 -1
  79. package/lib/modules/device-pretest/index.css +0 -4
  80. package/lib/modules/device-pretest/settings/beauty.js +17 -6
  81. package/lib/modules/device-pretest/store.js +7 -11
  82. package/lib/modules/dialog/components/chat/electron.js +2 -1
  83. package/lib/modules/dialog/components/confirm/electron.js +5 -3
  84. package/lib/modules/dialog/components/connection-gateway/electron.js +3 -1
  85. package/lib/modules/dialog/components/connection-gateway/index.css +0 -2
  86. package/lib/modules/dialog/components/device-setting/electron.js +3 -1
  87. package/lib/modules/dialog/components/device-setting/index.css +0 -1
  88. package/lib/modules/dialog/components/operation-waiting-room/electron.d.ts +5 -0
  89. package/lib/modules/dialog/components/operation-waiting-room/electron.js +89 -0
  90. package/lib/modules/dialog/components/operation-waiting-room/index.css +44 -0
  91. package/lib/modules/dialog/components/operation-waiting-room/index.d.ts +5 -0
  92. package/lib/modules/dialog/components/operation-waiting-room/index.js +156 -0
  93. package/lib/modules/dialog/components/participant/electron.js +2 -1
  94. package/lib/modules/dialog/components/remove-admit-waiting-room/electron.d.ts +5 -0
  95. package/lib/modules/dialog/components/remove-admit-waiting-room/electron.js +89 -0
  96. package/lib/modules/dialog/components/remove-admit-waiting-room/index.css +50 -0
  97. package/lib/modules/dialog/components/remove-admit-waiting-room/index.d.ts +5 -0
  98. package/lib/modules/dialog/components/remove-admit-waiting-room/index.js +90 -0
  99. package/lib/modules/dialog/components/whiteboard/index.js +2 -1
  100. package/lib/modules/dialog/dialogs.js +17 -13
  101. package/lib/modules/dialog/index.css +2 -0
  102. package/lib/modules/dialog/store.d.ts +4 -0
  103. package/lib/modules/dialog/store.js +16 -2
  104. package/lib/modules/event-notification/context.d.ts +2 -0
  105. package/lib/modules/event-notification/context.js +9 -0
  106. package/lib/modules/event-notification/index.css +58 -0
  107. package/lib/modules/event-notification/index.d.ts +13 -0
  108. package/lib/modules/event-notification/index.js +48 -0
  109. package/lib/modules/event-notification/store.d.ts +17 -0
  110. package/lib/modules/event-notification/store.js +133 -0
  111. package/lib/modules/event-notification/view.d.ts +5 -0
  112. package/lib/modules/event-notification/view.js +114 -0
  113. package/lib/modules/invite/index.css +4 -4
  114. package/lib/modules/invite/pstn-invite.js +1 -0
  115. package/lib/modules/layout/components/Gallery.js +7 -1
  116. package/lib/modules/layout/components/Layout.js +82 -57
  117. package/lib/modules/layout/components/index.css +33 -6
  118. package/lib/modules/layout/index.css +30 -0
  119. package/lib/modules/layout/member-window/index.js +9 -3
  120. package/lib/modules/layout/store.d.ts +19 -2
  121. package/lib/modules/layout/store.js +177 -70
  122. package/lib/modules/layout/video-window-datasource.d.ts +1 -1
  123. package/lib/modules/layout/video-window-datasource.js +1 -1
  124. package/lib/modules/live-streaming/index.dev.js +1 -1
  125. package/lib/modules/participant/attendee/index.d.ts +12 -3
  126. package/lib/modules/participant/attendee/index.js +132 -30
  127. package/lib/modules/participant/index.css +20 -0
  128. package/lib/modules/participant/index.d.ts +5 -2
  129. package/lib/modules/participant/index.dev.js +1 -1
  130. package/lib/modules/participant/index.js +27 -0
  131. package/lib/modules/participant/room-control-drop-menu/index.css +37 -0
  132. package/lib/modules/participant/store.d.ts +30 -5
  133. package/lib/modules/participant/store.js +347 -74
  134. package/lib/modules/participant/view.js +133 -34
  135. package/lib/modules/setting/index.css +1 -5
  136. package/lib/modules/setting/index.dev.js +1 -1
  137. package/lib/modules/setting/store.d.ts +2 -2
  138. package/lib/modules/setting/store.js +3 -8
  139. package/lib/modules/setting/translate-settings/translate-settings.js +1 -1
  140. package/lib/modules/setting/video-settings/index.css +9 -6
  141. package/lib/modules/share-screen/index.d.ts +2 -0
  142. package/lib/modules/share-screen/index.dev.js +3 -2
  143. package/lib/modules/share-screen/selection/index.css +2 -0
  144. package/lib/modules/share-screen/store.d.ts +6 -3
  145. package/lib/modules/share-screen/store.js +170 -129
  146. package/lib/modules/state-bar/index.css +2 -2
  147. package/lib/modules/state-bar/index.d.ts +2 -2
  148. package/lib/modules/state-bar/index.dev.js +1 -1
  149. package/lib/modules/state-bar/meeting-detail.css +6 -4
  150. package/lib/modules/state-bar/meeting-details.js +29 -3
  151. package/lib/modules/state-bar/meeting-network-state.css +14 -3
  152. package/lib/modules/state-bar/meeting-network-state.js +10 -4
  153. package/lib/modules/state-bar/recording.js +3 -5
  154. package/lib/modules/state-bar/store.d.ts +4 -2
  155. package/lib/modules/state-bar/store.js +18 -3
  156. package/lib/modules/state-bar/view.js +1 -6
  157. package/lib/modules/video-window/index.css +1 -0
  158. package/lib/modules/video-window/store.d.ts +2 -2
  159. package/lib/modules/video-window/store.js +14 -11
  160. package/lib/modules/waiting-room-layout/context.d.ts +2 -0
  161. package/lib/modules/waiting-room-layout/context.js +9 -0
  162. package/lib/modules/waiting-room-layout/index.css +71 -0
  163. package/lib/modules/waiting-room-layout/index.d.ts +8 -0
  164. package/lib/modules/waiting-room-layout/index.js +47 -0
  165. package/lib/modules/waiting-room-layout/store.d.ts +30 -0
  166. package/lib/modules/waiting-room-layout/store.js +189 -0
  167. package/lib/modules/waiting-room-layout/type.d.ts +0 -0
  168. package/lib/modules/waiting-room-layout/type.js +1 -0
  169. package/lib/modules/waiting-room-layout/view.d.ts +3 -0
  170. package/lib/modules/waiting-room-layout/view.js +67 -0
  171. package/lib/modules/whiteboard/app.js +0 -6
  172. package/lib/modules/whiteboard/components/control-bar/index.css +3 -0
  173. package/lib/modules/whiteboard/components/multi-window/index.js +6 -1
  174. package/lib/modules/whiteboard/components/progress/electron.js +2 -1
  175. package/lib/modules/whiteboard/components/switch-theme/index.css +4 -0
  176. package/lib/modules/whiteboard/components/switch-theme/index.d.ts +2 -1
  177. package/lib/modules/whiteboard/components/switch-theme/index.js +20 -15
  178. package/lib/modules/whiteboard/components/switch-theme/item.d.ts +1 -0
  179. package/lib/modules/whiteboard/components/switch-theme/item.js +9 -2
  180. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +14 -10
  181. package/lib/modules/whiteboard/components/toolbar/store.d.ts +1 -0
  182. package/lib/modules/whiteboard/components/toolbar/store.js +3 -0
  183. package/lib/modules/whiteboard/context.d.ts +4 -0
  184. package/lib/modules/whiteboard/context.js +4 -2
  185. package/lib/modules/whiteboard/index.js +22 -6
  186. package/lib/plugins/browser-runtime-plugin.js +1 -1
  187. package/lib/plugins/module-dev-plugin.js +8 -6
  188. package/lib/runtime.d.ts +1 -1
  189. package/lib/translations/enUS.d.ts +449 -6
  190. package/lib/translations/enUS.js +485 -32
  191. package/lib/translations/zhCN.d.ts +447 -6
  192. package/lib/translations/zhCN.js +468 -17
  193. package/lib/type.d.ts +6 -2
  194. package/lib/ui-manager.d.ts +7 -3
  195. package/lib/ui-manager.js +576 -139
  196. package/lib/ui-scene.d.ts +1 -0
  197. package/lib/ui-scene.js +26 -21
  198. package/lib/utilities/constant.d.ts +43 -4
  199. package/lib/utilities/constant.js +41 -1
  200. package/lib/utilities/parameters.js +2 -2
  201. package/lib/utilities/renderer.d.ts +1 -0
  202. package/lib/utilities/renderer.js +6 -2
  203. package/package.json +14 -14
  204. package/public/assets/fcr_defaultpage.png +0 -0
  205. package/public/assets/login_confirm.png +0 -0
  206. package/public/index.html +29 -11
  207. package/dist/132.js +0 -2
  208. package/dist/132.js.LICENSE.txt +0 -311
  209. package/dist/651.js +0 -2
  210. package/dist/651.js.LICENSE.txt +0 -1
  211. package/dist/73.js +0 -1
  212. package/dist/index.html +0 -13
  213. package/dist/main.da7c203ab32d15742cfe.css +0 -11760
  214. package/dist/main.js +0 -2
  215. package/dist/main.js.LICENSE.txt +0 -254
  216. package/dist/worker-entry.worker.js.LICENSE.txt +0 -13
  217. package/lib/modules/device-pretest/settings/index.css +0 -15
  218. package/lib/modules/participant/attendee/participants-more-action.d.ts +0 -18
  219. package/lib/modules/participant/attendee/participants-more-action.js +0 -278
@@ -23,25 +23,31 @@ exports["default"] = void 0;
23
23
  require("core-js/modules/es.array.filter.js");
24
24
  require("core-js/modules/es.array.find.js");
25
25
  require("core-js/modules/es.array.for-each.js");
26
+ require("core-js/modules/es.array.includes.js");
26
27
  require("core-js/modules/es.array.iterator.js");
28
+ require("core-js/modules/es.array.map.js");
27
29
  require("core-js/modules/es.array.push.js");
28
30
  require("core-js/modules/es.array.slice.js");
29
31
  require("core-js/modules/es.array.some.js");
30
32
  require("core-js/modules/es.function.bind.js");
31
33
  require("core-js/modules/es.map.js");
34
+ require("core-js/modules/es.object.entries.js");
32
35
  require("core-js/modules/es.object.to-string.js");
33
36
  require("core-js/modules/es.object.values.js");
34
37
  require("core-js/modules/es.set.js");
38
+ require("core-js/modules/es.string.includes.js");
35
39
  require("core-js/modules/es.string.iterator.js");
36
40
  require("core-js/modules/es.weak-map.js");
37
41
  require("core-js/modules/esnext.async-iterator.filter.js");
38
42
  require("core-js/modules/esnext.async-iterator.find.js");
39
43
  require("core-js/modules/esnext.async-iterator.for-each.js");
44
+ require("core-js/modules/esnext.async-iterator.map.js");
40
45
  require("core-js/modules/esnext.async-iterator.some.js");
41
46
  require("core-js/modules/esnext.iterator.constructor.js");
42
47
  require("core-js/modules/esnext.iterator.filter.js");
43
48
  require("core-js/modules/esnext.iterator.find.js");
44
49
  require("core-js/modules/esnext.iterator.for-each.js");
50
+ require("core-js/modules/esnext.iterator.map.js");
45
51
  require("core-js/modules/esnext.iterator.some.js");
46
52
  require("core-js/modules/esnext.map.delete-all.js");
47
53
  require("core-js/modules/esnext.map.emplace.js");
@@ -95,6 +101,7 @@ var _type = require("agora-edu-core/lib/type");
95
101
  var _decorator = require("agora-foundation/lib/decorator");
96
102
  var _logger = require("agora-foundation/lib/logger");
97
103
  var _type2 = require("../video-window/type");
104
+ var _eventStore = require("../../common/event-store");
98
105
  var _constant = require("../../utilities/constant");
99
106
  var _type3 = require("./type");
100
107
  var _Layout = require("./components/Layout");
@@ -104,8 +111,11 @@ var _type4 = require("../whiteboard/type");
104
111
  var _i18n = require("agora-ui-foundation/lib/i18n");
105
112
  var _type5 = require("agora-edu-core/lib/room-control/chatroom-control/type");
106
113
  var _type6 = require("agora-rte-sdk/lib/core/scene/type");
114
+ var _attendee = require("agora-ui-foundation/lib/components/participants/attendee");
115
+ var _type7 = require("agora-edu-core/lib/room-control/privilege-control/type");
116
+ var _get = _interopRequireDefault(require("lodash/get"));
107
117
  var _LayoutStore;
108
- var _initProto, _participantDecs, _init_participant, _chatDecs, _init_chat, _chatActionDecs, _init_chatAction, _stateBarDecs, _init_stateBar, _actionBarDecs, _init_actionBar, _layersDecs, _init_layers, _whiteboardDecs, _init_whiteboard, _init_collapsed, _init_galleryMaxSize, _init_aside, _init_asideContent, _init_localUserRole, _init_barHovering, _init_barLocked, _init_barHidden, _init_asideWidth, _init_userVolumeMap, _init_chatRoomState, _init_videoWindowPreviewType, _init_whiteboardActive, _init_spotlightStreamId, _init_shouldHideNonVideoParticipants, _init_participantCount, _init_ownerUser, _init_localUser, _init_enableSpotlight, _setWhiteboardActiveDecs, _setAsideWidthDecs, _updateSlotsDecs, _updateAsideContentDecs, _getAllowedOperationsDecs, _toggleLayoutDecs, _toggleCollapsedDecs, _setGalleryMaxSizeDecs, _toggleAsideDecs, _asideWidthChangedDecs, _toggleLayoutBarLockDecs, _toggleLayoutBarHiddenDecs, _resetLockTimerDecs, _setHoveringHandlerDecs, _setHoveringLeaveHandlerDecs, _onUserInfoUpdatedDecs, _handleLayoutUpdatedDecs, _init__handleLayoutUpdated, _handleFoldListChangedDecs, _handleMainListChangedDecs, _setBarHoveringDecs, _onAllUserCountUpdatedDecs, _handleConnectionUpdatedDecs, _onAudioVolumeUpdatedDecs, _ref;
118
+ var _initProto, _participantDecs, _init_participant, _chatDecs, _init_chat, _chatActionDecs, _init_chatAction, _stateBarDecs, _init_stateBar, _actionBarDecs, _init_actionBar, _layersDecs, _init_layers, _whiteboardDecs, _init_whiteboard, _init_collapsed, _init_galleryMaxSize, _init_aside, _init_asideContent, _init_localUserRole, _init_barHovering, _init_barLocked, _init_barHidden, _init_asideWidth, _init_userVolumeMap, _init_chatRoomState, _init_videoWindowPreviewType, _init_whiteboardActive, _init_spotlightStreamId, _init_shouldHideNonVideoParticipants, _init_participantCount, _init_ownerUser, _init_localUser, _init_enableSpotlight, _init_isWaitingRoomNotify, _notifyParticipantShowWaitingRoomDecs, _setIsWaitingRoomNotifyDecs, _setWhiteboardActiveDecs, _setAsideWidthDecs, _updateSlotsDecs, _updateAsideContentDecs, _getAllowedOperationsDecs, _toggleLayoutDecs, _toggleCollapsedDecs, _setGalleryMaxSizeDecs, _toggleAsideDecs, _asideWidthChangedDecs, _toggleLayoutBarLockDecs, _toggleLayoutBarHiddenDecs, _resetLockTimerDecs, _setHoveringHandlerDecs, _setHoveringLeaveHandlerDecs, _onUserInfoUpdatedDecs, _handleLayoutUpdatedDecs, _init__handleLayoutUpdated, _handleFoldListChangedDecs, _handleMainListChangedDecs, _setBarHoveringDecs, _onAllUserCountUpdatedDecs, _handleConnectionUpdatedDecs, _onAudioVolumeUpdatedDecs, _ref;
109
119
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
110
120
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
111
121
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
@@ -142,7 +152,8 @@ var _W = /*#__PURE__*/new WeakMap();
142
152
  var _X = /*#__PURE__*/new WeakMap();
143
153
  var _Y = /*#__PURE__*/new WeakMap();
144
154
  var _Z = /*#__PURE__*/new WeakMap();
145
- _ref = (_participantDecs = [_mobx.observable, _mobx.observable.ref], _chatDecs = [_mobx.observable, _mobx.observable.ref], _chatActionDecs = [_mobx.observable, _mobx.observable.ref], _stateBarDecs = [_mobx.observable, _mobx.observable.ref], _actionBarDecs = [_mobx.observable, _mobx.observable.ref], _layersDecs = [_mobx.observable, _mobx.observable.ref], _whiteboardDecs = [_mobx.observable, _mobx.observable.ref], _setWhiteboardActiveDecs = [_mobx.action, _mobx.action.bound], _setAsideWidthDecs = [_mobx.action, _mobx.action.bound], _updateSlotsDecs = [_mobx.action, _mobx.action.bound], _updateAsideContentDecs = [_mobx.action, _mobx.action.bound], _getAllowedOperationsDecs = [_mobx.action, _mobx.action.bound], _toggleLayoutDecs = [_mobx.action, _mobx.action.bound], _toggleCollapsedDecs = [_mobx.action, _mobx.action.bound], _setGalleryMaxSizeDecs = [_mobx.action, _mobx.action.bound], _toggleAsideDecs = [_mobx.action, _mobx.action.bound], _asideWidthChangedDecs = [_mobx.action, _mobx.action.bound], _toggleLayoutBarLockDecs = [_mobx.action, _mobx.action.bound], _toggleLayoutBarHiddenDecs = [_mobx.action, _mobx.action.bound], _resetLockTimerDecs = [_mobx.action, _mobx.action.bound], _setHoveringHandlerDecs = [_mobx.action, _mobx.action.bound], _setHoveringLeaveHandlerDecs = [_mobx.action, _mobx.action.bound], _onUserInfoUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleLayoutUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleFoldListChangedDecs = [_mobx.action, _mobx.action.bound], _handleMainListChangedDecs = [_mobx.action, _mobx.action.bound], _setBarHoveringDecs = [_mobx.action, _mobx.action.bound], _onAllUserCountUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleConnectionUpdatedDecs = [_mobx.action, _mobx.action.bound], _onAudioVolumeUpdatedDecs = [_mobx.action, _mobx.action.bound], "logger");
155
+ var _a = /*#__PURE__*/new WeakMap();
156
+ _ref = (_participantDecs = [_mobx.observable, _mobx.observable.ref], _chatDecs = [_mobx.observable, _mobx.observable.ref], _chatActionDecs = [_mobx.observable, _mobx.observable.ref], _stateBarDecs = [_mobx.observable, _mobx.observable.ref], _actionBarDecs = [_mobx.observable, _mobx.observable.ref], _layersDecs = [_mobx.observable, _mobx.observable.ref], _whiteboardDecs = [_mobx.observable, _mobx.observable.ref], _notifyParticipantShowWaitingRoomDecs = [_mobx.action, _mobx.action.bound], _setIsWaitingRoomNotifyDecs = [_mobx.action, _mobx.action.bound], _setWhiteboardActiveDecs = [_mobx.action, _mobx.action.bound], _setAsideWidthDecs = [_mobx.action, _mobx.action.bound], _updateSlotsDecs = [_mobx.action, _mobx.action.bound], _updateAsideContentDecs = [_mobx.action, _mobx.action.bound], _getAllowedOperationsDecs = [_mobx.action, _mobx.action.bound], _toggleLayoutDecs = [_mobx.action, _mobx.action.bound], _toggleCollapsedDecs = [_mobx.action, _mobx.action.bound], _setGalleryMaxSizeDecs = [_mobx.action, _mobx.action.bound], _toggleAsideDecs = [_mobx.action, _mobx.action.bound], _asideWidthChangedDecs = [_mobx.action, _mobx.action.bound], _toggleLayoutBarLockDecs = [_mobx.action, _mobx.action.bound], _toggleLayoutBarHiddenDecs = [_mobx.action, _mobx.action.bound], _resetLockTimerDecs = [_mobx.action, _mobx.action.bound], _setHoveringHandlerDecs = [_mobx.action, _mobx.action.bound], _setHoveringLeaveHandlerDecs = [_mobx.action, _mobx.action.bound], _onUserInfoUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleLayoutUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleFoldListChangedDecs = [_mobx.action, _mobx.action.bound], _handleMainListChangedDecs = [_mobx.action, _mobx.action.bound], _setBarHoveringDecs = [_mobx.action, _mobx.action.bound], _onAllUserCountUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleConnectionUpdatedDecs = [_mobx.action, _mobx.action.bound], _onAudioVolumeUpdatedDecs = [_mobx.action, _mobx.action.bound], "logger");
146
157
  var LayoutStore = exports["default"] = /*#__PURE__*/function () {
147
158
  function LayoutStore(params) {
148
159
  var _this = this;
@@ -152,11 +163,18 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
152
163
  (0, _defineProperty2["default"])(this, "_localView", null);
153
164
  (0, _defineProperty2["default"])(this, "_subscriptions", []);
154
165
  (0, _defineProperty2["default"])(this, "_barLockTimer", 0);
166
+ (0, _defineProperty2["default"])(this, "_liveStreamState", _type.FcrLiveStreamingState.STOPPED);
155
167
  (0, _defineProperty2["default"])(this, "_chatRoomObserver", {
156
168
  onConnectionStateUpdated: this._handleConnectionUpdated.bind(this),
157
169
  onErrorOccurred: function onErrorOccurred() {},
158
170
  onTextMessageReceived: function onTextMessageReceived() {}
159
171
  });
172
+ (0, _defineProperty2["default"])(this, "_waitingRoomUserObserver", {
173
+ onRemoteUsersLeft: this._handleRemoteWaitingUserLeft.bind(this)
174
+ });
175
+ (0, _defineProperty2["default"])(this, "_waitingRoomObserver", {
176
+ onRoomMessageReceived: this._handleMessageReceived.bind(this)
177
+ });
160
178
  (0, _defineProperty2["default"])(this, "_managerRoleUpdateForToast", new Set([_type.FcrUserRole.HOST, _type.FcrUserRole.COHOST]));
161
179
  // Slots
162
180
  _classPrivateFieldInitSpec(this, _A, _init_participant(this, null));
@@ -189,6 +207,7 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
189
207
  _classPrivateFieldInitSpec(this, _X, _init_ownerUser(this, undefined));
190
208
  _classPrivateFieldInitSpec(this, _Y, _init_localUser(this));
191
209
  _classPrivateFieldInitSpec(this, _Z, _init_enableSpotlight(this, true));
210
+ _classPrivateFieldInitSpec(this, _a, _init_isWaitingRoomNotify(this, true));
192
211
  (0, _defineProperty2["default"])(this, "_handleLayoutUpdated", _init__handleLayoutUpdated(this, function (layout) {
193
212
  if (layout === _type3.FcrUIVideoWindowLayoutType.Speaker) {
194
213
  _this._switchToSpeaker();
@@ -206,7 +225,8 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
206
225
  _this._videoWindowDataSource.setSpeakerSpotlight(streamId);
207
226
  });
208
227
  var userControl = params.userControl,
209
- chatRoomControl = params.chatRoomControl;
228
+ chatRoomControl = params.chatRoomControl,
229
+ roomControl = params.roomControl;
210
230
  this._securityStore = params.securityStore;
211
231
  this._deviceStore = params.deviceStore;
212
232
  this._uiEventStore = params.uiEventStore;
@@ -214,7 +234,13 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
214
234
  this._streamControl = params.streamControl;
215
235
  this._chatRoomControl = chatRoomControl;
216
236
  this._whiteBoardControl = params.whiteBoardControl;
237
+ this._privilegeControl = params.privilegeControl;
217
238
  this.localUser = userControl.getLocalUser();
239
+ roomControl.addObserver({
240
+ onLiveStreamingStateUpdated: function onLiveStreamingStateUpdated(_, state) {
241
+ _this._liveStreamState = state;
242
+ }
243
+ });
218
244
  this._addListeners();
219
245
  //@ts-ignore
220
246
  window.layoutStore = this;
@@ -439,6 +465,14 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
439
465
  set: function set(v) {
440
466
  _classPrivateFieldSet(_Z, this, v);
441
467
  }
468
+ }, {
469
+ key: "isWaitingRoomNotify",
470
+ get: function get() {
471
+ return _classPrivateFieldGet(_a, this);
472
+ },
473
+ set: function set(v) {
474
+ _classPrivateFieldSet(_a, this, v);
475
+ }
442
476
  }, {
443
477
  key: "deviceStore",
444
478
  get: function get() {
@@ -449,6 +483,16 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
449
483
  get: function get() {
450
484
  return this._streamControl;
451
485
  }
486
+ }, {
487
+ key: "isWaterMarkEnabled",
488
+ get: function get() {
489
+ return this._securityStore.isWaterMarkEnabled();
490
+ }
491
+ }, {
492
+ key: "isMulti",
493
+ get: function get() {
494
+ return this._securityStore.isMulti();
495
+ }
452
496
  }, {
453
497
  key: "layout",
454
498
  get: function get() {
@@ -593,6 +637,24 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
593
637
  var _this$_userControl$ge;
594
638
  return (_this$_userControl$ge = this._userControl.getLocalUser()) === null || _this$_userControl$ge === void 0 ? void 0 : _this$_userControl$ge.userId;
595
639
  }
640
+ }, {
641
+ key: "getWaterMarkContent",
642
+ value: function getWaterMarkContent() {
643
+ return this._securityStore.getWaterMarkContent();
644
+ }
645
+ }, {
646
+ key: "notifyParticipantShowWaitingRoom",
647
+ value: function notifyParticipantShowWaitingRoom() {
648
+ this._uiEventStore.sendEvent(_constant.UIAction.TOGGLE_PARTICIPANT_TAB, _constant.RoomType.WAITING_ROOM);
649
+ this._uiEventStore.sendEvent(_constant.UIAction.CHANGE_PARTICIPANT_TAB, _constant.RoomType.WAITING_ROOM);
650
+ this._uiEventStore.sendEvent(_constant.UIAction.COLSE_NOTIFICATION, _eventStore.NotificationContentType.WAITING_ROOM);
651
+ }
652
+ }, {
653
+ key: "setIsWaitingRoomNotify",
654
+ value: function setIsWaitingRoomNotify() {
655
+ this.isWaitingRoomNotify = false;
656
+ this._uiEventStore.sendEvent(_constant.UIAction.COLSE_NOTIFICATION, _eventStore.NotificationContentType.WAITING_ROOM);
657
+ }
596
658
  }, {
597
659
  key: "hasMutePermission",
598
660
  value: function hasMutePermission(targetRole) {
@@ -614,7 +676,7 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
614
676
  var success = this._videoWindowDataSource.toggleMainStream(streamId);
615
677
  if (success) {
616
678
  if (this.layout === _type3.FcrUIVideoWindowLayoutType.Gallery) {
617
- this.toggleLayout(_type3.FcrUIVideoWindowLayoutType.Speaker);
679
+ this.toggleLayout(_type3.FcrUIVideoWindowLayoutType.Speaker, true);
618
680
  }
619
681
  }
620
682
  }
@@ -689,7 +751,7 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
689
751
  key: "setWhiteboardActive",
690
752
  value: function setWhiteboardActive(active) {
691
753
  this.whiteboardActive = active;
692
- if (!active) {
754
+ if (!active && this.manualLayout) {
693
755
  this._uiEventStore.sendEvent(_constant.UIAction.TOGGLE_LAYOUT, {
694
756
  layout: this.manualLayout
695
757
  });
@@ -858,6 +920,7 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
858
920
  }, {
859
921
  key: "onUserInfoUpdated",
860
922
  value: function onUserInfoUpdated(roomId, event) {
923
+ var _this5 = this;
861
924
  this._videoWindowDataSource.update(event.modifiedUser);
862
925
  this.setLocalUserRole(this._userControl.getLocalUser().userRole);
863
926
  if (this._managerRoleUpdateForToast.has(event.modifiedUser.userRole)) {
@@ -866,11 +929,15 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
866
929
  var toastContent = function toastContent() {
867
930
  var contentText = '';
868
931
  if (event.modifiedUser.userRole === _type.FcrUserRole.HOST) {
869
- contentText = isMe ? (0, _i18n.transI18n)('fmt_attendies_tips_mine_new_host', {
870
- reason1: userName
871
- }) : (0, _i18n.transI18n)('fmt_attendies_tips_new_host', {
872
- reason1: userName
873
- });
932
+ if (_this5._liveStreamState === _type.FcrLiveStreamingState.STARTED) {
933
+ contentText = "\u79FB\u4EA4 \u4E3B\u6301\u4EBA\u5B8C\u6210\uFF0C\u76F4\u64AD\u505C\u6B62\uFF0C\u8BF7\u91CD\u65B0\u5F00\u542F\u76F4\u64AD";
934
+ } else {
935
+ contentText = isMe ? (0, _i18n.transI18n)('fmt_attendies_tips_mine_new_host', {
936
+ reason1: userName
937
+ }) : (0, _i18n.transI18n)('fmt_attendies_tips_new_host', {
938
+ reason1: userName
939
+ });
940
+ }
874
941
  } else if (event.modifiedUser.userRole === _type.FcrUserRole.COHOST) {
875
942
  contentText = isMe ? (0, _i18n.transI18n)('fmt_attendies_tips_mine_new_co_host') : (0, _i18n.transI18n)('fmt_attendies_tips_new_co_host', {
876
943
  reason1: userName
@@ -917,7 +984,7 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
917
984
  key: "muteAudio",
918
985
  value: function muteAudio(mute, userId) {
919
986
  this._uiEventStore.sendEvent(_constant.UIAction.PARTICIPANT_ACTION, {
920
- action: mute ? _constant.ParticipantType.MUTE_AUDIO : _constant.ParticipantType.UNMUTE_AUDIO,
987
+ action: mute ? _attendee.ParticipantActionType.MUTE_AUDIO : _attendee.ParticipantActionType.UNMUTE_AUDIO,
921
988
  userId: userId
922
989
  });
923
990
  }
@@ -1024,11 +1091,18 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
1024
1091
  this.ownerUser = _ownerUserId ? this._userControl.getUser(_ownerUserId) : undefined;
1025
1092
  }
1026
1093
  }
1094
+ if (action === _constant.UIAction.WAITING_ROOM_CREATED) {
1095
+ var room = payload.room;
1096
+ this._waitingRoomControl = room;
1097
+ this._waitingRoomControl.addObserver(this._waitingRoomObserver);
1098
+ this._waitingRoomUserControl = room.getUserControl();
1099
+ this._waitingRoomUserControl.addObserver(this._waitingRoomUserObserver);
1100
+ }
1027
1101
  }
1028
1102
  }, {
1029
1103
  key: "_addListeners",
1030
1104
  value: function _addListeners() {
1031
- var _this5 = this;
1105
+ var _this6 = this;
1032
1106
  this._uiEventStore.addObserver({
1033
1107
  onEvent: this.onEvent
1034
1108
  });
@@ -1055,112 +1129,112 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
1055
1129
  });
1056
1130
  this._whiteBoardControl.addObserver({
1057
1131
  onActive: function onActive() {
1058
- return _this5.setWhiteboardActive(true);
1132
+ return _this6.setWhiteboardActive(true);
1059
1133
  },
1060
1134
  onInactive: function onInactive() {
1061
- return _this5.setWhiteboardActive(false);
1135
+ return _this6.setWhiteboardActive(false);
1062
1136
  }
1063
1137
  });
1064
1138
  this._chatRoomControl.addObserver(this._chatRoomObserver);
1065
1139
  this._subscriptions.push((0, _mobx.reaction)(function () {
1066
- return _this5.mainList.length;
1140
+ return _this6.mainList.length;
1067
1141
  }, function (length) {
1068
1142
  if (length < 2) {
1069
- if (_this5.layout === _type3.FcrUIVideoWindowLayoutType.Speaker) {
1070
- _this5.toggleLayout(_type3.FcrUIVideoWindowLayoutType.Gallery);
1143
+ if (_this6.layout === _type3.FcrUIVideoWindowLayoutType.Speaker) {
1144
+ _this6.toggleLayout(_type3.FcrUIVideoWindowLayoutType.Gallery);
1071
1145
  }
1072
1146
  }
1073
- _this5._uiEventStore.sendEvent(_constant.UIAction.MAIN_LIST_LENGTH_CHANGED, length);
1147
+ _this6._uiEventStore.sendEvent(_constant.UIAction.MAIN_LIST_LENGTH_CHANGED, length);
1074
1148
  }), (0, _mobx.reaction)(function () {
1075
- return _this5.whiteboardActive;
1149
+ return _this6.whiteboardActive;
1076
1150
  }, function (opened) {
1077
1151
  if (opened) {
1078
- var ownerUserId = _this5._whiteBoardControl.getBoardActiveInfo().ownerUserId;
1079
- var ownerUser = _this5._userControl.getUser(ownerUserId);
1080
- _this5._videoWindowDataSource.addBoard(ownerUser, ownerUserId === _this5.localUserId);
1081
- if (_this5.layout === _type3.FcrUIVideoWindowLayoutType.Gallery) {
1082
- _this5.toggleLayout(_type3.FcrUIVideoWindowLayoutType.Speaker);
1152
+ var ownerUserId = _this6._whiteBoardControl.getBoardActiveInfo().ownerUserId;
1153
+ var ownerUser = _this6._userControl.getUser(ownerUserId);
1154
+ _this6._videoWindowDataSource.addBoard(ownerUser, ownerUserId === _this6.localUserId);
1155
+ if (_this6.layout === _type3.FcrUIVideoWindowLayoutType.Gallery) {
1156
+ _this6.toggleLayout(_type3.FcrUIVideoWindowLayoutType.Speaker);
1083
1157
  }
1084
1158
  } else {
1085
- _this5._videoWindowDataSource.removeBoard();
1159
+ _this6._videoWindowDataSource.removeBoard();
1086
1160
  }
1087
1161
  }), (0, _mobx.reaction)(function () {
1088
- return _this5._securityStore.hasWriteBoardPermission();
1162
+ return _this6._securityStore.hasWriteBoardPermission();
1089
1163
  }, function (canEdit) {
1090
- if (!_this5.mainList.some(function (u) {
1164
+ if (!_this6.mainList.some(function (u) {
1091
1165
  return u.type === _type3.FcrUIWindowType.BOARD;
1092
1166
  })) return;
1093
- _this5._videoWindowDataSource.updateBoard(canEdit);
1167
+ _this6._videoWindowDataSource.updateBoard(canEdit);
1094
1168
  }), (0, _mobx.reaction)(function () {
1095
- return _this5.galleryMaxSize;
1169
+ return _this6.galleryMaxSize;
1096
1170
  }, function (size) {
1097
- _this5._uiEventStore.notifyLayoutSizeChanged({
1171
+ _this6._uiEventStore.notifyLayoutSizeChanged({
1098
1172
  size: size
1099
1173
  });
1100
1174
  }), (0, _mobx.reaction)(function () {
1101
- return _this5.asideContent;
1175
+ return _this6.asideContent;
1102
1176
  }, function (asideContent) {
1103
1177
  if (asideContent.participant || asideContent.chat) {
1104
- _this5.toggleAside(true);
1178
+ _this6.toggleAside(true);
1105
1179
  }
1106
1180
  if (!asideContent.participant && !asideContent.chat) {
1107
- _this5.toggleAside(false);
1181
+ _this6.toggleAside(false);
1108
1182
  }
1109
1183
  }, {
1110
1184
  fireImmediately: true
1111
1185
  }), (0, _mobx.reaction)(function () {
1112
1186
  return {
1113
- cameraEnabled: _this5._deviceStore.cameraEnabled,
1114
- cameraId: _this5._deviceStore.cameraId
1187
+ cameraEnabled: _this6._deviceStore.cameraEnabled,
1188
+ cameraId: _this6._deviceStore.cameraId
1115
1189
  };
1116
1190
  }, function (_ref13) {
1117
1191
  var cameraEnabled = _ref13.cameraEnabled,
1118
1192
  cameraId = _ref13.cameraId;
1119
- if (!cameraEnabled && _this5._localView) {
1120
- _this5.stopLocalPreview(_this5._localView);
1193
+ if (!cameraEnabled && _this6._localView) {
1194
+ _this6.stopLocalPreview(_this6._localView);
1121
1195
  }
1122
- if (cameraEnabled && cameraId && _this5._localView) {
1123
- _this5.startLocalPreview(_this5._localView);
1196
+ if (cameraEnabled && cameraId && _this6._localView) {
1197
+ _this6.startLocalPreview(_this6._localView);
1124
1198
  }
1125
1199
  }), (0, _mobx.reaction)(function () {
1126
- return _this5.barLocked;
1200
+ return _this6.barLocked;
1127
1201
  }, function (barLocked) {
1128
- if (_this5._barLockTimer && barLocked) {
1129
- _this5.resetLockTimer();
1202
+ if (_this6._barLockTimer && barLocked) {
1203
+ _this6.resetLockTimer();
1130
1204
  } else {
1131
- _this5.setHoveringHandler();
1205
+ _this6.setHoveringHandler();
1132
1206
  }
1133
1207
  }), (0, _mobx.reaction)(function () {
1134
- return _this5._deviceStore.microphoneVolumeLevel;
1208
+ return _this6._deviceStore.microphoneVolumeLevel;
1135
1209
  }, function (volume) {
1136
1210
  (0, _mobx.runInAction)(function () {
1137
- _this5.userVolumeMap.set('0', volume);
1211
+ _this6.userVolumeMap.set('0', volume);
1138
1212
  });
1139
1213
  }), (0, _mobx.reaction)(function () {
1140
1214
  return {
1141
- count: _this5.participantCount,
1142
- enableSpotlight: _this5.enableSpotlight
1215
+ count: _this6.participantCount,
1216
+ enableSpotlight: _this6.enableSpotlight
1143
1217
  };
1144
1218
  }, function (_ref14) {
1145
1219
  var count = _ref14.count,
1146
1220
  enableSpotlight = _ref14.enableSpotlight;
1147
- var enableSetSpotlight = _this5._isSetSpotlightEnable(count, enableSpotlight);
1148
- _this5._videoWindowDataSource.setSpotlightEnabled(enableSetSpotlight);
1221
+ var enableSetSpotlight = _this6._isSetSpotlightEnable(count, enableSpotlight);
1222
+ _this6._videoWindowDataSource.setSpotlightEnabled(enableSetSpotlight);
1149
1223
  }),
1150
1224
  // 录制的特殊逻辑:
1151
1225
  // 因为录制机器人不发流,且当前切换布局的逻辑是有多个人的视频窗口才切换到 speaker layout
1152
1226
  // 所以当房间只有主持人的时候录制机器人的视角不会切换到 speaker layout,故加上以下逻辑
1153
1227
  (0, _mobx.reaction)(function () {
1154
- var _this5$currentShareDa;
1155
- return (_this5$currentShareDa = _this5.currentShareData) === null || _this5$currentShareDa === void 0 ? void 0 : _this5$currentShareDa.hasScreenSharing;
1228
+ var _this6$currentShareDa;
1229
+ return (_this6$currentShareDa = _this6.currentShareData) === null || _this6$currentShareDa === void 0 ? void 0 : _this6$currentShareDa.hasScreenSharing;
1156
1230
  }, function (hasScreenSharing) {
1157
- if (_this5.isRobot) {
1231
+ if (_this6.isRobot) {
1158
1232
  if (hasScreenSharing) {
1159
- _this5.logger.info('set layout to speaker for robot');
1160
- _this5.toggleLayout(_type3.FcrUIVideoWindowLayoutType.Speaker);
1233
+ _this6.logger.info('set layout to speaker for robot');
1234
+ _this6.toggleLayout(_type3.FcrUIVideoWindowLayoutType.Speaker);
1161
1235
  } else {
1162
- _this5.logger.info('set layout to gallery for robot');
1163
- _this5.toggleLayout(_type3.FcrUIVideoWindowLayoutType.Gallery);
1236
+ _this6.logger.info('set layout to gallery for robot');
1237
+ _this6.toggleLayout(_type3.FcrUIVideoWindowLayoutType.Gallery);
1164
1238
  }
1165
1239
  }
1166
1240
  }, {
@@ -1200,13 +1274,13 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
1200
1274
  }, {
1201
1275
  key: "_initStream",
1202
1276
  value: function _initStream() {
1203
- var _this6 = this;
1277
+ var _this7 = this;
1204
1278
  var isSharingScreen = false;
1205
1279
  this._streamControl.getStreamList().forEach(function (stream) {
1206
1280
  if (stream.videoSourceType === _agoraEduCore.FcrVideoSourceType.SCREEN) {
1207
1281
  isSharingScreen = true;
1208
1282
  }
1209
- _this6._handleStreamAdded(stream);
1283
+ _this7._handleStreamAdded(stream);
1210
1284
  });
1211
1285
  if (isSharingScreen && this.layout === _type3.FcrUIVideoWindowLayoutType.Gallery) {
1212
1286
  this.toggleLayout(_type3.FcrUIVideoWindowLayoutType.Speaker);
@@ -1252,34 +1326,34 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
1252
1326
  }, {
1253
1327
  key: "_onStreamsAdded",
1254
1328
  value: function _onStreamsAdded(roomId, events) {
1255
- var _this7 = this;
1329
+ var _this8 = this;
1256
1330
  events.forEach(function (_ref15) {
1257
1331
  var modifiedStream = _ref15.modifiedStream;
1258
- _this7._handleStreamAdded(modifiedStream);
1332
+ _this8._handleStreamAdded(modifiedStream);
1259
1333
  });
1260
1334
  }
1261
1335
  }, {
1262
1336
  key: "_onStreamsUpdated",
1263
1337
  value: function _onStreamsUpdated(roomId, events) {
1264
- var _this8 = this;
1338
+ var _this9 = this;
1265
1339
  events.forEach(function (_ref16) {
1266
1340
  var modifiedStream = _ref16.modifiedStream;
1267
- _this8._videoWindowDataSource.update(modifiedStream);
1341
+ _this9._videoWindowDataSource.update(modifiedStream);
1268
1342
  });
1269
1343
  }
1270
1344
  }, {
1271
1345
  key: "_onStreamsRemoved",
1272
1346
  value: function _onStreamsRemoved(roomId, events) {
1273
- var _this9 = this;
1347
+ var _this10 = this;
1274
1348
  events.forEach(function (_ref17) {
1275
1349
  var modifiedStream = _ref17.modifiedStream;
1276
- _this9._videoWindowDataSource["delete"](modifiedStream);
1350
+ _this10._videoWindowDataSource["delete"](modifiedStream);
1277
1351
  });
1278
1352
  var hasScreenStream = events === null || events === void 0 ? void 0 : events.find(function (event) {
1279
1353
  var type = event.modifiedStream.streamType;
1280
1354
  return type === _type6.AgoraRteMediaStreamType.BOTH || type === _type6.AgoraRteMediaStreamType.VIDEO;
1281
1355
  });
1282
- if (hasScreenStream) {
1356
+ if (hasScreenStream && this.manualLayout) {
1283
1357
  this._uiEventStore.sendEvent(_constant.UIAction.TOGGLE_LAYOUT, {
1284
1358
  layout: this.manualLayout
1285
1359
  });
@@ -1294,14 +1368,14 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
1294
1368
  }, {
1295
1369
  key: "_findSpotlightStream",
1296
1370
  value: function _findSpotlightStream() {
1297
- var _this10 = this;
1371
+ var _this11 = this;
1298
1372
  //find the max volume stream
1299
1373
  var res = {
1300
1374
  streamId: '',
1301
1375
  volume: 0
1302
1376
  };
1303
1377
  this.userVolumeMap.forEach(function (volume, id) {
1304
- var windowData = _this10.mainListMapByAudioStreamId.get(id);
1378
+ var windowData = _this11.mainListMapByAudioStreamId.get(id);
1305
1379
  if (id !== '0' && !res.streamId && volume > 0 && windowData !== null && windowData !== void 0 && windowData.hasMicrophoneAudioStream) {
1306
1380
  res = {
1307
1381
  streamId: windowData.windowId,
@@ -1311,10 +1385,42 @@ var LayoutStore = exports["default"] = /*#__PURE__*/function () {
1311
1385
  });
1312
1386
  return res;
1313
1387
  }
1388
+ }, {
1389
+ key: "_handleRemoteWaitingUserLeft",
1390
+ value: function _handleRemoteWaitingUserLeft(roomId, events) {
1391
+ var _this$_privilegeContr;
1392
+ var targetRoles = (_this$_privilegeContr = this._privilegeControl.getSecurityInfo(_type7.FcrSecurityAction.WaitingRoom).info) === null || _this$_privilegeContr === void 0 ? void 0 : _this$_privilegeContr.targetRoles;
1393
+ if (this._waitingRoomUserControl) {
1394
+ var users = this._waitingRoomUserControl.getUsers();
1395
+ var userCount = Object.entries(users).map(function (_ref18) {
1396
+ var _ref19 = (0, _slicedToArray2["default"])(_ref18, 2),
1397
+ userId = _ref19[0],
1398
+ user = _ref19[1];
1399
+ return user;
1400
+ }).filter(function (user) {
1401
+ return targetRoles.includes(user.userRole);
1402
+ }).length;
1403
+ if (userCount === 0) {
1404
+ this._uiEventStore.sendEvent(_constant.UIAction.COLSE_NOTIFICATION, _eventStore.NotificationContentType.WAITING_ROOM);
1405
+ }
1406
+ }
1407
+ }
1408
+ }, {
1409
+ key: "_handleMessageReceived",
1410
+ value: function _handleMessageReceived(roomId, message) {
1411
+ if ((0, _get["default"])(message, 'payload.data.messageKey') === _type.RoomMessageKey.USER_WAITING_ROOM_JOINED && this.isWaitingRoomNotify) {
1412
+ this._uiEventStore.showNotification({
1413
+ type: _eventStore.NotificationContentType.WAITING_ROOM,
1414
+ onOk: this.notifyParticipantShowWaitingRoom,
1415
+ onClose: this.setIsWaitingRoomNotify,
1416
+ placement: 'topLeft'
1417
+ });
1418
+ }
1419
+ }
1314
1420
  }]);
1315
1421
  }();
1316
1422
  _LayoutStore = LayoutStore;
1317
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_LayoutStore, [[_participantDecs, 17, "participant"], [_chatDecs, 17, "chat"], [_chatActionDecs, 17, "chatAction"], [_stateBarDecs, 17, "stateBar"], [_actionBarDecs, 17, "actionBar"], [_layersDecs, 17, "layers"], [_whiteboardDecs, 17, "whiteboard"], [_mobx.observable, 1, "collapsed"], [_mobx.observable, 1, "galleryMaxSize"], [_mobx.observable, 1, "aside"], [_mobx.observable, 1, "asideContent"], [_mobx.observable, 1, "localUserRole"], [_mobx.observable, 1, "barHovering"], [_mobx.observable, 1, "barLocked"], [_mobx.observable, 1, "barHidden"], [_mobx.observable, 1, "asideWidth"], [_mobx.observable, 1, "userVolumeMap"], [_mobx.observable, 1, "chatRoomState"], [_mobx.observable, 1, "videoWindowPreviewType"], [_mobx.observable, 1, "whiteboardActive"], [_mobx.observable, 1, "spotlightStreamId"], [_mobx.observable, 1, "shouldHideNonVideoParticipants"], [_mobx.observable, 1, "participantCount"], [_mobx.observable, 1, "ownerUser"], [_mobx.observable, 1, "localUser"], [_mobx.observable, 1, "enableSpotlight"], [_mobx.computed, 3, "layout"], [_mobx.computed, 3, "manualLayout"], [_mobx.computed, 3, "mainList"], [_mobx.computed, 3, "mainListMapByAudioStreamId"], [_mobx.computed, 3, "foldList"], [_mobx.computed, 3, "galleryList"], [_mobx.computed, 3, "carouselList"], [_mobx.computed, 3, "hasPinnedStream"], [_mobx.computed, 3, "isManager"], [_mobx.computed, 3, "isRobot"], [_mobx.computed, 3, "findSpotlightUser"], [_mobx.computed, 3, "microphoneEnabled"], [_mobx.computed, 3, "isHostOrCoHost"], [_decorator.bound, 2, "hasMutePermission"], [_decorator.bound, 2, "hasUnmutePermission"], [_decorator.bound, 2, "hasRequestStartAudioPermission"], [_decorator.bound, 2, "toggleMainStream"], [_decorator.bound, 2, "addPin"], [_decorator.bound, 2, "removePin"], [_decorator.bound, 2, "setVideoOrientation"], [_decorator.bound, 2, "setAllowChat"], [_decorator.bound, 2, "handleSetPinState"], [_setWhiteboardActiveDecs, 18, "setWhiteboardActive"], [_setAsideWidthDecs, 18, "setAsideWidth"], [_updateSlotsDecs, 18, "updateSlots"], [_updateAsideContentDecs, 18, "updateAsideContent"], [_decorator.bound, 2, "closeParticipantFromAside"], [_decorator.bound, 2, "moveParticipantFromAsideToDialog"], [_decorator.bound, 2, "closeChatFromAside"], [_decorator.bound, 2, "closeAsideChat"], [_decorator.bound, 2, "moveChatFromAsideToDialog"], [_decorator.bound, 2, "openPrivateChat"], [_getAllowedOperationsDecs, 18, "getAllowedOperations"], [_toggleLayoutDecs, 18, "toggleLayout"], [_toggleCollapsedDecs, 18, "toggleCollapsed"], [_setGalleryMaxSizeDecs, 18, "setGalleryMaxSize"], [_toggleAsideDecs, 18, "toggleAside"], [_asideWidthChangedDecs, 18, "asideWidthChanged"], [_toggleLayoutBarLockDecs, 18, "toggleLayoutBarLock"], [_toggleLayoutBarHiddenDecs, 18, "toggleLayoutBarHidden"], [_resetLockTimerDecs, 18, "resetLockTimer"], [_setHoveringHandlerDecs, 18, "setHoveringHandler"], [_setHoveringLeaveHandlerDecs, 18, "setHoveringLeaveHandler"], [_onUserInfoUpdatedDecs, 18, "onUserInfoUpdated"], [_mobx.action, 2, "setLocalUserRole"], [_decorator.bound, 2, "stopLocalPreview"], [_decorator.bound, 2, "startLocalPreview"], [_decorator.bound, 2, "setAllowChatWithPayload"], [_decorator.bound, 2, "muteAudio"], [_decorator.bound, 2, "sendParticipantEvent"], [_decorator.bound, 2, "onEvent"], [_decorator.bound, 2, "_addListeners"], [_handleFoldListChangedDecs, 18, "_handleFoldListChanged"], [_handleMainListChangedDecs, 18, "_handleMainListChanged"], [_mobx.action, 2, "_switchToSpeaker"], [_mobx.action, 2, "_switchToGallery"], [_setBarHoveringDecs, 18, "_setBarHovering"], [_onAllUserCountUpdatedDecs, 18, "_onAllUserCountUpdated"], [_decorator.bound, 2, "_initStream"], [_decorator.bound, 2, "_isSetSpotlightEnable"], [_decorator.bound, 2, "_handleSpotlightAdded"], [_decorator.bound, 2, "_handleSpotlightRemoved"], [_handleConnectionUpdatedDecs, 18, "_handleConnectionUpdated"], [_decorator.bound, 2, "_handleStreamAdded"], [_decorator.bound, 2, "_onStreamsAdded"], [_decorator.bound, 2, "_onStreamsUpdated"], [_decorator.bound, 2, "_onStreamsRemoved"], [_onAudioVolumeUpdatedDecs, 18, "_onAudioVolumeUpdated"], [_handleLayoutUpdatedDecs, 16, "_handleLayoutUpdated"]], []).e, 28);
1423
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_LayoutStore, [[_participantDecs, 17, "participant"], [_chatDecs, 17, "chat"], [_chatActionDecs, 17, "chatAction"], [_stateBarDecs, 17, "stateBar"], [_actionBarDecs, 17, "actionBar"], [_layersDecs, 17, "layers"], [_whiteboardDecs, 17, "whiteboard"], [_mobx.observable, 1, "collapsed"], [_mobx.observable, 1, "galleryMaxSize"], [_mobx.observable, 1, "aside"], [_mobx.observable, 1, "asideContent"], [_mobx.observable, 1, "localUserRole"], [_mobx.observable, 1, "barHovering"], [_mobx.observable, 1, "barLocked"], [_mobx.observable, 1, "barHidden"], [_mobx.observable, 1, "asideWidth"], [_mobx.observable, 1, "userVolumeMap"], [_mobx.observable, 1, "chatRoomState"], [_mobx.observable, 1, "videoWindowPreviewType"], [_mobx.observable, 1, "whiteboardActive"], [_mobx.observable, 1, "spotlightStreamId"], [_mobx.observable, 1, "shouldHideNonVideoParticipants"], [_mobx.observable, 1, "participantCount"], [_mobx.observable, 1, "ownerUser"], [_mobx.observable, 1, "localUser"], [_mobx.observable, 1, "enableSpotlight"], [_mobx.observable, 1, "isWaitingRoomNotify"], [_mobx.computed, 3, "isWaterMarkEnabled"], [_mobx.computed, 3, "isMulti"], [_mobx.computed, 3, "layout"], [_mobx.computed, 3, "manualLayout"], [_mobx.computed, 3, "mainList"], [_mobx.computed, 3, "mainListMapByAudioStreamId"], [_mobx.computed, 3, "foldList"], [_mobx.computed, 3, "galleryList"], [_mobx.computed, 3, "carouselList"], [_mobx.computed, 3, "hasPinnedStream"], [_mobx.computed, 3, "isManager"], [_mobx.computed, 3, "isRobot"], [_mobx.computed, 3, "findSpotlightUser"], [_mobx.computed, 3, "microphoneEnabled"], [_mobx.computed, 3, "isHostOrCoHost"], [_decorator.bound, 2, "getWaterMarkContent"], [_notifyParticipantShowWaitingRoomDecs, 18, "notifyParticipantShowWaitingRoom"], [_setIsWaitingRoomNotifyDecs, 18, "setIsWaitingRoomNotify"], [_decorator.bound, 2, "hasMutePermission"], [_decorator.bound, 2, "hasUnmutePermission"], [_decorator.bound, 2, "hasRequestStartAudioPermission"], [_decorator.bound, 2, "toggleMainStream"], [_decorator.bound, 2, "addPin"], [_decorator.bound, 2, "removePin"], [_decorator.bound, 2, "setVideoOrientation"], [_decorator.bound, 2, "setAllowChat"], [_decorator.bound, 2, "handleSetPinState"], [_setWhiteboardActiveDecs, 18, "setWhiteboardActive"], [_setAsideWidthDecs, 18, "setAsideWidth"], [_updateSlotsDecs, 18, "updateSlots"], [_updateAsideContentDecs, 18, "updateAsideContent"], [_decorator.bound, 2, "closeParticipantFromAside"], [_decorator.bound, 2, "moveParticipantFromAsideToDialog"], [_decorator.bound, 2, "closeChatFromAside"], [_decorator.bound, 2, "closeAsideChat"], [_decorator.bound, 2, "moveChatFromAsideToDialog"], [_decorator.bound, 2, "openPrivateChat"], [_getAllowedOperationsDecs, 18, "getAllowedOperations"], [_toggleLayoutDecs, 18, "toggleLayout"], [_toggleCollapsedDecs, 18, "toggleCollapsed"], [_setGalleryMaxSizeDecs, 18, "setGalleryMaxSize"], [_toggleAsideDecs, 18, "toggleAside"], [_asideWidthChangedDecs, 18, "asideWidthChanged"], [_toggleLayoutBarLockDecs, 18, "toggleLayoutBarLock"], [_toggleLayoutBarHiddenDecs, 18, "toggleLayoutBarHidden"], [_resetLockTimerDecs, 18, "resetLockTimer"], [_setHoveringHandlerDecs, 18, "setHoveringHandler"], [_setHoveringLeaveHandlerDecs, 18, "setHoveringLeaveHandler"], [_onUserInfoUpdatedDecs, 18, "onUserInfoUpdated"], [_mobx.action, 2, "setLocalUserRole"], [_decorator.bound, 2, "stopLocalPreview"], [_decorator.bound, 2, "startLocalPreview"], [_decorator.bound, 2, "setAllowChatWithPayload"], [_decorator.bound, 2, "muteAudio"], [_decorator.bound, 2, "sendParticipantEvent"], [_decorator.bound, 2, "onEvent"], [_decorator.bound, 2, "_addListeners"], [_handleFoldListChangedDecs, 18, "_handleFoldListChanged"], [_handleMainListChangedDecs, 18, "_handleMainListChanged"], [_mobx.action, 2, "_switchToSpeaker"], [_mobx.action, 2, "_switchToGallery"], [_setBarHoveringDecs, 18, "_setBarHovering"], [_onAllUserCountUpdatedDecs, 18, "_onAllUserCountUpdated"], [_decorator.bound, 2, "_initStream"], [_decorator.bound, 2, "_isSetSpotlightEnable"], [_decorator.bound, 2, "_handleSpotlightAdded"], [_decorator.bound, 2, "_handleSpotlightRemoved"], [_handleConnectionUpdatedDecs, 18, "_handleConnectionUpdated"], [_decorator.bound, 2, "_handleStreamAdded"], [_decorator.bound, 2, "_onStreamsAdded"], [_decorator.bound, 2, "_onStreamsUpdated"], [_decorator.bound, 2, "_onStreamsRemoved"], [_onAudioVolumeUpdatedDecs, 18, "_onAudioVolumeUpdated"], [_decorator.bound, 2, "_handleRemoteWaitingUserLeft"], [_decorator.bound, 2, "_handleMessageReceived"], [_handleLayoutUpdatedDecs, 16, "_handleLayoutUpdated"]], []).e, 29);
1318
1424
  _init_participant = _applyDecs$e[0];
1319
1425
  _init_chat = _applyDecs$e[1];
1320
1426
  _init_chatAction = _applyDecs$e[2];
@@ -1341,6 +1447,7 @@ _init_participantCount = _applyDecs$e[22];
1341
1447
  _init_ownerUser = _applyDecs$e[23];
1342
1448
  _init_localUser = _applyDecs$e[24];
1343
1449
  _init_enableSpotlight = _applyDecs$e[25];
1344
- _init__handleLayoutUpdated = _applyDecs$e[26];
1345
- _initProto = _applyDecs$e[27];
1450
+ _init_isWaitingRoomNotify = _applyDecs$e[26];
1451
+ _init__handleLayoutUpdated = _applyDecs$e[27];
1452
+ _initProto = _applyDecs$e[28];
1346
1453
  (0, _defineProperty2["default"])(LayoutStore, "MIN_USERS_TO_ENABLE_SPOTLIGHT", 2);
@@ -66,7 +66,7 @@ export declare class FcrUIVideoWindowDataSource {
66
66
  private _spotlightPool;
67
67
  accessor spotlightEnabled: boolean;
68
68
  accessor layoutType: FcrUIVideoWindowLayoutType;
69
- accessor manualLayout: FcrUIVideoWindowLayoutType;
69
+ accessor manualLayout: FcrUIVideoWindowLayoutType | undefined;
70
70
  accessor pinLimitedCount: number;
71
71
  accessor mainListLimitedCount: number;
72
72
  accessor foldListLimitedCount: number;
@@ -438,7 +438,7 @@ var FcrUIVideoWindowDataSource = exports.FcrUIVideoWindowDataSource = /*#__PURE_
438
438
  (0, _defineProperty2["default"])(this, "_spotlightPool", new FcrUISpeakerSpotlightPool());
439
439
  _classPrivateFieldInitSpec(this, _A2, _init_spotlightEnabled(this, true));
440
440
  _classPrivateFieldInitSpec(this, _B2, _init_layoutType(this, _type.FcrUIVideoWindowLayoutType.Gallery));
441
- _classPrivateFieldInitSpec(this, _C2, _init_manualLayout(this, _type.FcrUIVideoWindowLayoutType.Gallery));
441
+ _classPrivateFieldInitSpec(this, _C2, _init_manualLayout(this, undefined));
442
442
  _classPrivateFieldInitSpec(this, _D2, _init_pinLimitedCount(this, 1));
443
443
  _classPrivateFieldInitSpec(this, _E2, _init_mainListLimitedCount(this, 255));
444
444
  _classPrivateFieldInitSpec(this, _F2, _init_foldListLimitedCount(this, 255));
@@ -25,7 +25,7 @@ window.__DEV_ENGINE_IS_READY__.then(/*#__PURE__*/(0, _asyncToGenerator2["default
25
25
  _context.next = 4;
26
26
  return engine.login();
27
27
  case 4:
28
- roomControl = engine.createRoomControl(roomId);
28
+ roomControl = engine.createMainRoomControl(roomId);
29
29
  roomConfig = {
30
30
  userRole: _type.FcrUserRole.HOST,
31
31
  userName: 'test-user',
@@ -1,10 +1,17 @@
1
- import { User } from 'agora-ui-foundation/lib/components/participants/attendee';
2
- import { ParticipantType } from '../../../utilities/constant';
1
+ import { ParticipantActionType, User } from 'agora-ui-foundation/lib/components/participants/attendee';
3
2
  import { FcrUserRole } from '../../../type';
4
3
  import './index.css';
5
4
  import { FcrPrivilegeUserRole } from 'agora-edu-core';
5
+ import { FcrUserKickOutType } from 'agora-edu-core/lib/room-control/type';
6
+ export type OperateWaitingRoomMemberDialogProps = {
7
+ type: 'remove' | 'removeAll' | 'admitAll';
8
+ tooltip: string;
9
+ title: string;
10
+ userId?: string;
11
+ };
12
+ export declare const OperateWaitingRoomMemberDialog: ({ type, tooltip, title, userId, }: OperateWaitingRoomMemberDialogProps) => import("react/jsx-runtime").JSX.Element;
6
13
  interface ParticipantAttendeeProps extends User {
7
- onParticipantsButtonClick: (action: ParticipantType, userId: string) => void;
14
+ onParticipantsButtonClick: (action: ParticipantActionType, userId: string, type?: FcrUserKickOutType | undefined) => void;
8
15
  currentPerspectiveType?: 'host' | 'attendee' | 'cohost';
9
16
  isPin: boolean;
10
17
  hasPinnedStream: boolean;
@@ -14,6 +21,8 @@ interface ParticipantAttendeeProps extends User {
14
21
  hasMutePermission: (role: FcrPrivilegeUserRole | FcrUserRole) => boolean;
15
22
  hasUnmutePermission: (role: FcrPrivilegeUserRole | FcrUserRole) => boolean;
16
23
  hasRequestStartAudioPermission: (role: FcrPrivilegeUserRole | FcrUserRole) => boolean;
24
+ activeTab: string;
25
+ moveToMainRoomByUserIds: (userId: string[]) => void;
17
26
  }
18
27
  export declare const ParticipantAttendee: (props: ParticipantAttendeeProps) => import("react/jsx-runtime").JSX.Element;
19
28
  export {};