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
@@ -21,6 +21,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
21
21
  var _button = require("agora-ui-foundation/lib/components/button");
22
22
  var _i18n = require("agora-ui-foundation/lib/i18n");
23
23
  var _mobxReact = require("mobx-react");
24
+ var _truncate = _interopRequireDefault(require("lodash/truncate"));
24
25
  var _jsxRuntime = require("react/jsx-runtime");
25
26
  var SubMenu = exports.SubMenu = (0, _mobxReact.observer)(function () {
26
27
  var _useContext = (0, _react.useContext)(_context.ActionBarContext),
@@ -35,10 +36,11 @@ var SubMenu = exports.SubMenu = (0, _mobxReact.observer)(function () {
35
36
  isScreenShareAndBoardEnabled = _useContext.isScreenShareAndBoardEnabled,
36
37
  startScreenShare = _useContext.startScreenShare,
37
38
  hasScreenShare = _useContext.hasScreenShare,
38
- hasCloseWriteBoardPermission = _useContext.hasCloseWriteBoardPermission;
39
+ hasCloseWriteBoardPermission = _useContext.hasCloseWriteBoardPermission,
40
+ hasAllowWriteBoardPermission = _useContext.hasAllowWriteBoardPermission;
39
41
  var t = (0, _i18n.useI18n)();
40
42
  var hasHostPermission = [_agoraEduCore.FcrUserRole.HOST, _agoraEduCore.FcrUserRole.COHOST].includes(localUserRole);
41
- var hasBoardControlPermission = boardOwnerUser && localUser.userId !== boardOwnerUser.userId && hasCloseWriteBoardPermission;
43
+ var hasBoardControlPermission = boardOwnerUser && localUser.userId !== boardOwnerUser.userId && hasCloseWriteBoardPermission && hasAllowWriteBoardPermission;
42
44
  // 需求变更,联席主持人也可以禁用主持人的白板,注释掉联席主持人不能禁用的逻辑
43
45
  // (FcrUserRole.HOST === localUserRole ||
44
46
  // (FcrUserRole.COHOST === localUserRole && FcrUserRole.HOST !== boardOwnerUser?.userRole));
@@ -49,13 +51,7 @@ var SubMenu = exports.SubMenu = (0, _mobxReact.observer)(function () {
49
51
  key: 'allow_attendee_title',
50
52
  type: 'title'
51
53
  }, {
52
- icon: boardOwnerUser && hasHostPermission ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
53
- type: _type.FcrIconType.FCR_WHITEBOARD,
54
- size: 24,
55
- colors: {
56
- iconPrimary: '#FB584E'
57
- }
58
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
54
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
59
55
  type: _type.FcrIconType.FCR_SCREENSHARING,
60
56
  size: 24,
61
57
  colors: {
@@ -70,16 +66,10 @@ var SubMenu = exports.SubMenu = (0, _mobxReact.observer)(function () {
70
66
  // ? setAllowScreenShare(FcrWhiteboardState.OFF)
71
67
  // : startScreenShare();
72
68
  startScreenShare();
73
- },
74
- classNames: 'fcr-icon-green'
69
+ }
70
+ // classNames: 'fcr-icon-green',
75
71
  }, {
76
- icon: boardOwnerUser && hasHostPermission ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
77
- type: _type.FcrIconType.FCR_WHITEBOARD,
78
- size: 24,
79
- colors: {
80
- iconPrimary: '#FB584E'
81
- }
82
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
72
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
83
73
  type: _type.FcrIconType.FCR_WHITEBOARD,
84
74
  size: 24,
85
75
  colors: {
@@ -89,14 +79,15 @@ var SubMenu = exports.SubMenu = (0, _mobxReact.observer)(function () {
89
79
  disabled: boardOwnerUser && (boardOwnerUser === null || boardOwnerUser === void 0 ? void 0 : boardOwnerUser.userId) !== localUser.userId,
90
80
  title: !boardOwnerUser ? t('fmt_screenshare_button_sharewhiteboard') : (boardOwnerUser === null || boardOwnerUser === void 0 ? void 0 : boardOwnerUser.userId) === localUser.userId ? t('fmt_screenshare_button_chosewhiteboard') : t('fmt_screenshare_options_alreadyopend'),
91
81
  key: 'allow_attendee_title',
82
+ type: boardOwnerUser && (boardOwnerUser === null || boardOwnerUser === void 0 ? void 0 : boardOwnerUser.userId) === localUser.userId ? 'danger' : 'primary',
92
83
  onButtonClick: function onButtonClick() {
93
84
  if ((boardOwnerUser === null || boardOwnerUser === void 0 ? void 0 : boardOwnerUser.userId) === localUser.userId) {
94
85
  closeWhiteboard();
95
86
  } else {
96
87
  openWhiteboard();
97
88
  }
98
- },
99
- classNames: 'fcr-icon-blue'
89
+ }
90
+ // classNames: 'fcr-icon-blue',
100
91
  }];
101
92
  var menusElectronOnly = [];
102
93
  var hostMenus = [{
@@ -106,7 +97,7 @@ var SubMenu = exports.SubMenu = (0, _mobxReact.observer)(function () {
106
97
  }, {
107
98
  title: /*#__PURE__*/(0, _jsxRuntime.jsx)(_checkbox.FcrCheckbox, {
108
99
  checked: isScreenShareAndBoardEnabled,
109
- label: t('fmt_screenshare_controlbar_security_list_participant_screenshare'),
100
+ label: t('fmt_screenshare_screen_and_board'),
110
101
  styleType: "white"
111
102
  }),
112
103
  key: 'enable_sharescreen',
@@ -135,7 +126,10 @@ var SubMenu = exports.SubMenu = (0, _mobxReact.observer)(function () {
135
126
  shape: "rounded",
136
127
  block: true,
137
128
  children: t('fmt_screenshare_button_disableshare', {
138
- reason1: boardOwnerUser ? boardOwnerUser.userName : t('fmt_actionbar_screenshare_labels_others')
129
+ reason1: boardOwnerUser ? (0, _truncate["default"])(boardOwnerUser.userName, {
130
+ length: 8,
131
+ separator: ' '
132
+ }) : t('fmt_actionbar_screenshare_labels_others')
139
133
  })
140
134
  }),
141
135
  key: 'enable_whiteboard',
@@ -31,6 +31,10 @@ var _react = require("react");
31
31
  var _checkbox = require("agora-ui-foundation/lib/components/checkbox");
32
32
  var _mobxReact = require("mobx-react");
33
33
  var _i18n = require("agora-ui-foundation/lib/i18n");
34
+ var _icon = require("agora-ui-foundation/lib/components/icon");
35
+ var _type = require("agora-ui-foundation/lib/components/icon/type");
36
+ var _tooltip = require("agora-ui-foundation/lib/components/tooltip");
37
+ var _type2 = require("agora-edu-core/lib/type");
34
38
  var _jsxRuntime = require("react/jsx-runtime");
35
39
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
36
40
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -54,9 +58,24 @@ var SecurityMenu = exports.SecurityMenu = (0, _mobxReact.observer)(function () {
54
58
  hasEnableStartVideoPermission = _useContext.hasEnableStartVideoPermission,
55
59
  hasEnableChangeNamePermission = _useContext.hasEnableChangeNamePermission,
56
60
  hasAllowWriteBoardPermission = _useContext.hasAllowWriteBoardPermission,
57
- isScreenShareAndBoardEnabled = _useContext.isScreenShareAndBoardEnabled;
61
+ isScreenShareAndBoardEnabled = _useContext.isScreenShareAndBoardEnabled,
62
+ setEnableWaitingRoom = _useContext.setEnableWaitingRoom,
63
+ isWaitingRoomEnabled = _useContext.isWaitingRoomEnabled,
64
+ hasWaitingRoomPermission = _useContext.hasWaitingRoomPermission,
65
+ localUserRole = _useContext.localUserRole,
66
+ isWaterMarkEnabled = _useContext.isWaterMarkEnabled,
67
+ isMulti = _useContext.isMulti,
68
+ setAllowWaterMark = _useContext.setAllowWaterMark,
69
+ setWaterMarkLineType = _useContext.setWaterMarkLineType,
70
+ hasWatermarkEnablePermission = _useContext.hasWatermarkEnablePermission,
71
+ hasWatermarkDisablePermission = _useContext.hasWatermarkDisablePermission;
58
72
  var transI18n = (0, _i18n.useI18n)();
59
73
  var allActions = [];
74
+ allActions.push({
75
+ title: transI18n('fmt_security_setting_label_security_setting'),
76
+ key: 'meeting_security_title',
77
+ type: 'title'
78
+ });
60
79
  if (hasLockRoomPermission) {
61
80
  allActions.push({
62
81
  title: /*#__PURE__*/(0, _jsxRuntime.jsx)(_checkbox.FcrCheckbox, {
@@ -71,17 +90,75 @@ var SecurityMenu = exports.SecurityMenu = (0, _mobxReact.observer)(function () {
71
90
  }
72
91
  });
73
92
  }
74
- allActions.push({
75
- title: /*#__PURE__*/(0, _jsxRuntime.jsx)(_checkbox.FcrCheckbox, {
76
- checked: false,
77
- label: transI18n('fmt_security_options_activatewaitingroom'),
78
- styleType: "white"
79
- }),
80
- key: 'enable_waiting_room',
81
- type: 'disabled',
82
- onButtonClick: function onButtonClick() {},
83
- classNames: 'room-control-drop-with-under-line'
84
- });
93
+ if (hasWaitingRoomPermission) {
94
+ allActions.push({
95
+ title: /*#__PURE__*/(0, _jsxRuntime.jsx)(_checkbox.FcrCheckbox, {
96
+ checked: isWaitingRoomEnabled(),
97
+ label: transI18n('fmt_security_options_activatewaitingroom'),
98
+ styleType: "white"
99
+ }),
100
+ key: 'enable_waiting_room',
101
+ type: 'primary',
102
+ onButtonClick: function onButtonClick() {
103
+ setEnableWaitingRoom(!isWaitingRoomEnabled(), true);
104
+ },
105
+ classNames: 'room-control-drop-with-under-line'
106
+ });
107
+ }
108
+
109
+ /** 主持人和联席主持人 可以进行开启单行双行水印 */
110
+ if (hasWatermarkEnablePermission && hasWatermarkDisablePermission) {
111
+ allActions.push({
112
+ title: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
113
+ className: "room-control-options-box",
114
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
115
+ className: "room-control-options-watermark-title-box",
116
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_checkbox.FcrCheckbox, {
117
+ checked: isWaterMarkEnabled,
118
+ label: transI18n('fmt_security_setting_mobile_label_watermark'),
119
+ styleType: "white"
120
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
121
+ mouseEnterDelay: 0,
122
+ trigger: "hover",
123
+ placement: "top",
124
+ content: transI18n('fmt_security_setting_popup_tip_watermark_voice_active_prioritized'),
125
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
126
+ style: {
127
+ marginLeft: '6px'
128
+ },
129
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
130
+ type: _type.FcrIconType.FCR_HELPQUESTION,
131
+ size: 16
132
+ })
133
+ })
134
+ })]
135
+ }), isWaterMarkEnabled && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
136
+ className: "room-control-options-watermark-btns",
137
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
138
+ className: "room-control-options-watermark-btn ".concat(isMulti ? '' : 'room-control-options-watermark-btn--active'),
139
+ onClick: function onClick(e) {
140
+ e.stopPropagation();
141
+ setWaterMarkLineType(_type2.FcrLineType.SINGLE_ROW);
142
+ },
143
+ children: transI18n('fmt_security_setting_mobile_option_watermark_style_single')
144
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
145
+ className: "room-control-options-watermark-btn ".concat(isMulti ? 'room-control-options-watermark-btn--active' : ''),
146
+ onClick: function onClick(e) {
147
+ e.stopPropagation();
148
+ setWaterMarkLineType(_type2.FcrLineType.MULTI_ROW);
149
+ },
150
+ children: transI18n('fmt_security_setting_mobile_option_watermark_style_multi')
151
+ })]
152
+ })]
153
+ }),
154
+ key: 'enable_watermark',
155
+ type: 'primary',
156
+ onButtonClick: function onButtonClick() {
157
+ setAllowWaterMark();
158
+ },
159
+ classNames: 'room-control-drop-with-under-line'
160
+ });
161
+ }
85
162
  allActions.push({
86
163
  title: transI18n('fmt_screenshare_options_allow'),
87
164
  key: 'allow_attendee_title',
@@ -91,7 +168,7 @@ var SecurityMenu = exports.SecurityMenu = (0, _mobxReact.observer)(function () {
91
168
  allActions.push({
92
169
  title: /*#__PURE__*/(0, _jsxRuntime.jsx)(_checkbox.FcrCheckbox, {
93
170
  checked: isScreenShareAndBoardEnabled,
94
- label: transI18n('fmt_screenshare_controlbar_security_list_participant_screenshare'),
171
+ label: transI18n('fmt_screenshare_screen_and_board'),
95
172
  styleType: "white"
96
173
  }),
97
174
  key: 'share_screen',
@@ -1,13 +1,14 @@
1
1
  import { FcrBaseRoomControl, FcrDesktopMediaControl, FcrStreamControl, FcrUserControl } from 'agora-edu-core';
2
- import { FcrLiveStreamingState, FcrRecordingState, FcrUserInfo, FcrUserRole } from 'agora-edu-core/lib/type';
2
+ import { FcrLiveStreamingState, FcrRecordingState, FcrUserInfo, FcrUserRole, FcrLineType } from 'agora-edu-core/lib/type';
3
3
  import { FcrUIEventStore } from '../../common/event-store';
4
4
  import { DeviceSettingDialogConfig } from '../setting/store';
5
+ import { RoomType } from '../../utilities/constant';
5
6
  import { FcrSecurityStore } from '../../common/security-store';
6
7
  import { FcrDeviceStore } from '../../common/device-store';
7
8
  import { ConnectType, ConnectionTabType } from './type';
8
9
  import { FcrDeviceStreamStore } from '../../common/device-stream-store';
9
- import { FcrSharePermissionState } from 'agora-edu-core/lib/room-control/whiteboard-control/enums';
10
10
  import { FcrChatRoomReceiveBaseMessage } from 'agora-edu-core/lib/room-control/chatroom-control/type';
11
+ import { FcrRoomType, FcrUserKickOutType } from 'agora-edu-core/lib/room-control/type';
11
12
  interface ActionBarStoreArgs {
12
13
  roomControl: FcrBaseRoomControl;
13
14
  userControl: FcrUserControl;
@@ -27,12 +28,16 @@ export declare enum AudioConnectType {
27
28
  COMPUTER = 1,
28
29
  PHONE = 2
29
30
  }
31
+ type ChatRoomStoreMap = {
32
+ [K in RoomType]?: number;
33
+ };
30
34
  export default class ActionBarStore {
31
35
  protected logger: import("agora-foundation/lib/logger").Logger;
32
36
  private _disposers;
33
37
  private _chatRenderAt;
34
38
  private _participantsRenderAt;
35
39
  private _roomControl;
40
+ private _waitingRoomControl?;
36
41
  private _userControl;
37
42
  private _streamControl;
38
43
  private _mediaControl;
@@ -42,6 +47,7 @@ export default class ActionBarStore {
42
47
  private _securityStore;
43
48
  private _screenVideoTrack;
44
49
  private _userObserver;
50
+ private _waitingRoomUserObserver;
45
51
  private _roomObserver;
46
52
  private _uiEventObserver;
47
53
  private _observer;
@@ -55,11 +61,13 @@ export default class ActionBarStore {
55
61
  private _isSharingScreen;
56
62
  private _microponeInitCount;
57
63
  private _speakerInitCount;
64
+ private _participantTab;
58
65
  accessor users: FcrUserInfo[];
59
66
  accessor newMessageTooltipVisible: boolean;
60
- accessor newMessageCount: number;
67
+ accessor newMessageCount: ChatRoomStoreMap;
61
68
  accessor latestMessage: FcrChatRoomReceiveBaseMessage | undefined;
62
69
  accessor totalUser: number;
70
+ accessor totalWaitingRoomUser: number;
63
71
  accessor liveStreamingState: FcrLiveStreamingState;
64
72
  accessor currentMenuIs: MoreMenuType;
65
73
  accessor cloudRecordingState: FcrRecordingState;
@@ -72,7 +80,12 @@ export default class ActionBarStore {
72
80
  accessor hasScreenShare: boolean;
73
81
  accessor showArrow: boolean;
74
82
  accessor phoneMicEnabled: boolean;
83
+ accessor isNewWaitingRoomUserEnter: boolean;
84
+ accessor chatTabIndex: string;
85
+ accessor popoverOpened: boolean;
86
+ accessor isPstnUser: boolean;
75
87
  constructor(args: ActionBarStoreArgs);
88
+ fetchNewestLeavingRoomCompProps(): void;
76
89
  get remoteUsers(): FcrUserInfo[];
77
90
  get hasStartScreenSharePermission(): boolean;
78
91
  get hasStartLiveStreamingPermission(): boolean;
@@ -80,6 +93,9 @@ export default class ActionBarStore {
80
93
  get hasEnableChangeNamePermission(): boolean;
81
94
  get hasEnableStartVideoPermission(): boolean;
82
95
  get hasLockRoomPermission(): boolean;
96
+ get hasWaitingRoomPermission(): boolean;
97
+ get hasWatermarkEnablePermission(): boolean;
98
+ get hasWatermarkDisablePermission(): boolean;
83
99
  get hasEnableStartSharePermission(): boolean;
84
100
  get hasAllowWriteBoardPermission(): boolean;
85
101
  get hasCloseWriteBoardPermission(): boolean;
@@ -90,7 +106,8 @@ export default class ActionBarStore {
90
106
  get hasEndRoomPermission(): boolean;
91
107
  get isScreenShareAndBoardEnabled(): boolean;
92
108
  get isBoardWriteEnabled(): boolean;
93
- get isPstnUser(): boolean;
109
+ get isWaterMarkEnabled(): boolean;
110
+ get isMulti(): boolean;
94
111
  get cameraEnabled(): boolean;
95
112
  get cameraId(): string;
96
113
  get cameraList(): import("agora-rte-sdk").AgoraRtcDeviceInfo[];
@@ -100,6 +117,8 @@ export default class ActionBarStore {
100
117
  get microphoneList(): import("agora-rte-sdk").AgoraRtcDeviceInfo[];
101
118
  get speakerId(): string;
102
119
  get speakerList(): import("agora-rte-sdk").AgoraRtcDeviceInfo[];
120
+ get allNewMessage(): number;
121
+ get isMainRoom(): boolean;
103
122
  pauseCloudRecording(): void;
104
123
  resumeCloudRecording(): void;
105
124
  stopCloudRecording(): void;
@@ -108,18 +127,22 @@ export default class ActionBarStore {
108
127
  showNewMessageTooltip(): void;
109
128
  hideNewMessageTooltip(): void;
110
129
  switchMenu(value?: MoreMenuType): void;
111
- isLocked(): boolean;
130
+ get isLocked(): boolean;
131
+ isWaitingRoomEnabled(): boolean;
112
132
  enableCamera(enable: boolean): void;
113
133
  setCameraId(cameraId: string): void;
114
134
  enableMicrophone(enable: boolean): void;
115
135
  setMicrophoneId(microphoneId: string): void;
116
136
  setSpeakerId(speakerId: string): void;
137
+ closeSpeaker(): void;
117
138
  setAllowBoardWrite(): Promise<void>;
118
- setAllowScreenShare(state?: FcrSharePermissionState): Promise<void>;
139
+ setAllowScreenShare(): Promise<void>;
119
140
  closeBoard(): void;
120
141
  assignHost(user: FcrUserInfo): void;
121
142
  leave(): void;
122
143
  keepPhoneAudioConnection(): void;
144
+ setPopoverOpened(isShow: boolean): void;
145
+ getRoomType(): FcrRoomType | undefined;
123
146
  end(): void;
124
147
  release(): void;
125
148
  allowJoinWithMuteAudio(): boolean;
@@ -152,17 +175,26 @@ export default class ActionBarStore {
152
175
  closeConnection(): void;
153
176
  toggleFold(): void;
154
177
  setShowArrow(show: boolean): void;
178
+ setEnableWaitingRoom(enable: boolean, isNeedShowDialog: boolean): Promise<void>;
179
+ kickOutWaitingRoomAllMember(type: FcrUserKickOutType): Promise<void>;
180
+ moveToMainRoomAllMember(): Promise<void>;
155
181
  private _interceptShareScreen;
156
182
  private _interceptShareBoard;
157
183
  private _handleRemoteUsersJoined;
158
184
  private _handleRemoteUsersLeft;
159
185
  private _handleAllUserCountUpdated;
186
+ private _getWaitingRoomUserCount;
187
+ private _handleRemoteWaitingUserLeft;
188
+ private _handleRemoteWaitingUserJoined;
160
189
  private _handleUserInfoUpdated;
161
190
  private _handleLiveStreamingStateUpdated;
162
191
  private _handleNewMessageEvent;
163
192
  private _handleChatVisible;
164
193
  private _handlerTraceScreenCaptureStateUpdate;
194
+ setAllowWaterMark(): void;
195
+ setWaterMarkLineType(lineType: FcrLineType): void;
165
196
  private _onEvent;
197
+ private _operateWaitingRoom;
166
198
  private _handleCloudRecordingStateUpdated;
167
199
  private _handleStreamsAddedOrUpdated;
168
200
  }