fcr-ui-scene 3.1.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/lib/base.d.ts +1 -0
  2. package/lib/common/event-store.d.ts +1 -0
  3. package/lib/electron/app.d.ts +1 -0
  4. package/lib/electron/app.js +140 -0
  5. package/lib/electron/default-options.d.ts +2 -0
  6. package/lib/electron/default-options.js +25 -0
  7. package/lib/electron/env.d.ts +5 -0
  8. package/lib/electron/env.js +13 -0
  9. package/lib/electron/index.d.ts +2 -0
  10. package/lib/electron/index.js +20 -0
  11. package/lib/electron/injections.d.ts +45 -0
  12. package/lib/electron/injections.js +689 -0
  13. package/lib/electron/main.d.ts +2 -0
  14. package/lib/electron/main.js +63 -0
  15. package/lib/electron/plugins/screenshot.d.ts +2 -0
  16. package/lib/electron/plugins/screenshot.js +49 -0
  17. package/lib/electron/preload.js +35 -0
  18. package/lib/electron/tools.d.ts +5 -0
  19. package/lib/electron/tools.js +57 -0
  20. package/lib/electron/window.d.ts +12 -0
  21. package/lib/electron/window.js +112 -0
  22. package/lib/fragments/control-bar/index.js +11 -1
  23. package/lib/fragments/share-screen-selection/selection-store.d.ts +1 -0
  24. package/lib/modules/action-bar/leave/assign-host.d.ts +1 -0
  25. package/lib/modules/action-bar/leave/leave-meeting.d.ts +1 -0
  26. package/lib/modules/action-bar/more/poppover-content.d.ts +1 -0
  27. package/lib/modules/chat/chat-select/index.d.ts +1 -0
  28. package/lib/modules/chat/demo-wrapper.d.ts +1 -0
  29. package/lib/modules/device-pretest/audio-preview/speaker-control.d.ts +1 -0
  30. package/lib/modules/device-pretest/index.d.ts +1 -0
  31. package/lib/modules/device-pretest/settings/video-effect.d.ts +1 -0
  32. package/lib/modules/invite/voip-invite.d.ts +1 -0
  33. package/lib/modules/layout/components/Aside.d.ts +1 -0
  34. package/lib/modules/layout/member-window/index.d.ts +1 -0
  35. package/lib/modules/layout/store.d.ts +1 -0
  36. package/lib/modules/whiteboard/index.d.ts +1 -0
  37. package/lib/plugins/browser-runtime-plugin.js +0 -3
  38. package/lib/runtime.d.ts +86 -0
  39. package/package.json +4 -3
  40. package/installer/icons/favicon.ico +0 -0
  41. package/installer/icons/favicon.png +0 -0
  42. package/installer/mac/entitlements.mac.plist +0 -16
  43. package/lib/common/device-streams-store.d.ts +0 -34
  44. package/lib/common/device-streams-store.js +0 -403
  45. package/lib/fragments/participant/context.d.ts +0 -3
  46. package/lib/fragments/participant/context.js +0 -9
  47. package/lib/fragments/participant/index.css +0 -20
  48. package/lib/fragments/participant/index.d.ts +0 -9
  49. package/lib/fragments/participant/index.js +0 -90
  50. package/lib/fragments/participant/room-control-drop-menu/index.css +0 -19
  51. package/lib/fragments/participant/room-control-drop-menu/index.d.ts +0 -2
  52. package/lib/fragments/participant/room-control-drop-menu/index.js +0 -134
  53. package/lib/fragments/participant/store.d.ts +0 -34
  54. package/lib/fragments/participant/store.js +0 -326
  55. package/lib/fragments/participant/view.d.ts +0 -2
  56. package/lib/fragments/participant/view.js +0 -86
  57. package/lib/fragments/state-bar/index.d.ts +0 -9
  58. package/lib/fragments/state-bar/index.js +0 -68
  59. package/lib/fragments/type.d.ts +0 -2
  60. package/lib/fragments/type.js +0 -6
  61. package/lib/modules/connection-gateway/components/computer/menu.d.ts +0 -0
  62. package/lib/modules/connection-gateway/components/computer/menu.js +0 -1
  63. package/lib/modules/device-settings/audio-settings/audio-settings.d.ts +0 -4
  64. package/lib/modules/device-settings/audio-settings/audio-settings.js +0 -297
  65. package/lib/modules/device-settings/audio-settings/index.css +0 -139
  66. package/lib/modules/device-settings/audio-settings/microphone-detection.d.ts +0 -2
  67. package/lib/modules/device-settings/audio-settings/microphone-detection.js +0 -68
  68. package/lib/modules/device-settings/audio-settings/speaker-detection.d.ts +0 -2
  69. package/lib/modules/device-settings/audio-settings/speaker-detection.js +0 -72
  70. package/lib/modules/device-settings/common/advance-link.d.ts +0 -3
  71. package/lib/modules/device-settings/common/advance-link.js +0 -27
  72. package/lib/modules/device-settings/common/index.css +0 -26
  73. package/lib/modules/device-settings/common/useNamespace.d.ts +0 -15
  74. package/lib/modules/device-settings/common/useNamespace.js +0 -66
  75. package/lib/modules/device-settings/context.d.ts +0 -3
  76. package/lib/modules/device-settings/context.js +0 -9
  77. package/lib/modules/device-settings/dialog-wrapper.d.ts +0 -2
  78. package/lib/modules/device-settings/dialog-wrapper.js +0 -110
  79. package/lib/modules/device-settings/general-settings/general-settings.d.ts +0 -4
  80. package/lib/modules/device-settings/general-settings/general-settings.js +0 -66
  81. package/lib/modules/device-settings/general-settings/index.css +0 -26
  82. package/lib/modules/device-settings/index.css +0 -109
  83. package/lib/modules/device-settings/index.d.ts +0 -21
  84. package/lib/modules/device-settings/index.dev.js +0 -112
  85. package/lib/modules/device-settings/index.js +0 -84
  86. package/lib/modules/device-settings/state/index.css +0 -211
  87. package/lib/modules/device-settings/state/index.d.ts +0 -4
  88. package/lib/modules/device-settings/state/index.js +0 -330
  89. package/lib/modules/device-settings/storage-settings/index.css +0 -91
  90. package/lib/modules/device-settings/storage-settings/storage-settings.d.ts +0 -3
  91. package/lib/modules/device-settings/storage-settings/storage-settings.js +0 -84
  92. package/lib/modules/device-settings/store.d.ts +0 -205
  93. package/lib/modules/device-settings/store.js +0 -1035
  94. package/lib/modules/device-settings/video-settings/camera-select.d.ts +0 -2
  95. package/lib/modules/device-settings/video-settings/camera-select.js +0 -51
  96. package/lib/modules/device-settings/video-settings/index.css +0 -327
  97. package/lib/modules/device-settings/video-settings/local-video-player.d.ts +0 -3
  98. package/lib/modules/device-settings/video-settings/local-video-player.js +0 -37
  99. package/lib/modules/device-settings/video-settings/mirror-toggle.d.ts +0 -2
  100. package/lib/modules/device-settings/video-settings/mirror-toggle.js +0 -62
  101. package/lib/modules/device-settings/video-settings/video-settings-basic.d.ts +0 -9
  102. package/lib/modules/device-settings/video-settings/video-settings-basic.js +0 -177
  103. package/lib/modules/device-settings/video-settings/video-settings.d.ts +0 -6
  104. package/lib/modules/device-settings/video-settings/video-settings.js +0 -185
  105. package/lib/modules/device-settings/view.d.ts +0 -10
  106. package/lib/modules/device-settings/view.js +0 -193
  107. package/lib/modules/layout/components/UserWindow.d.ts +0 -8
  108. package/lib/modules/layout/components/UserWindow.js +0 -513
  109. package/lib/modules/layout/hooks.d.ts +0 -14
  110. package/lib/modules/layout/hooks.js +0 -48
  111. package/lib/modules/share-screen/context.d.ts +0 -3
  112. package/lib/modules/share-screen/context.js +0 -9
  113. package/lib/modules/whiteboard/i18n/config.d.ts +0 -1
  114. package/lib/modules/whiteboard/i18n/config.js +0 -15
  115. package/lib/modules/whiteboard/i18n/en/index.d.ts +0 -32
  116. package/lib/modules/whiteboard/i18n/en/index.js +0 -38
  117. package/lib/modules/whiteboard/i18n/zh/index.d.ts +0 -32
  118. package/lib/modules/whiteboard/i18n/zh/index.js +0 -38
  119. /package/lib/{modules/device-settings/index.dev.d.ts → electron/preload.d.ts} +0 -0
@@ -1,513 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.object.define-property.js");
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.UserWindow = void 0;
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
- require("core-js/modules/es.array.iterator.js");
11
- require("core-js/modules/es.object.to-string.js");
12
- require("core-js/modules/es.set.js");
13
- require("core-js/modules/es.string.iterator.js");
14
- require("core-js/modules/web.dom-collections.iterator.js");
15
- require("core-js/modules/web.timers.js");
16
- var _classnames = _interopRequireDefault(require("classnames"));
17
- var _mobxReact = require("mobx-react");
18
- var _react = require("react");
19
- var _mic = require("agora-ui-foundation/lib/components/icon/mic");
20
- var _avatar = require("agora-ui-foundation/lib/components/avatar");
21
- var _icon = require("agora-ui-foundation/lib/components/icon");
22
- var _type = require("agora-ui-foundation/lib/components/icon/type");
23
- var _popover = require("agora-ui-foundation/lib/components/popover");
24
- var _tooltip = require("agora-ui-foundation/lib/components/tooltip");
25
- var _i18n = require("agora-ui-foundation/lib/i18n");
26
- var _type2 = require("agora-edu-core/lib/type");
27
- var _hooks = require("../../../utilities/hooks");
28
- var _participantsMoreAction = require("../../participant/attendee/participants-more-action");
29
- var _context = require("../context");
30
- var _type3 = require("../type");
31
- var _utils = require("./utils");
32
- var _type4 = require("../../../type");
33
- var _localVideoPlayer = require("agora-ui-foundation/lib/components/local-video-player");
34
- var _jsxRuntime = require("react/jsx-runtime");
35
- var MinAvatarSize = 53;
36
- var MaxAvatarSize = 175;
37
- var AvatarSizeRatio = 0.2445;
38
- var AvatarTextSizeRatio = 0.32;
39
- var HideControlsTimeout = 3000;
40
- var meetingConnectorTypes = new Set([_type2.FcrRoomConnectorType.SIP, _type2.FcrRoomConnectorType.H323]);
41
- var UserWindow = exports.UserWindow = (0, _mobxReact.observer)(function (_ref) {
42
- var type = _ref.type,
43
- id = _ref.id,
44
- width = _ref.width,
45
- height = _ref.height;
46
- var isGallery = type === _type3.LayoutType.Gallery;
47
- var t = (0, _i18n.useI18n)();
48
- var store = (0, _react.useContext)(_context.StoreContext);
49
- var style = (0, _react.useMemo)(function () {
50
- return {
51
- width: width,
52
- height: height
53
- };
54
- }, [width, height]);
55
- var stream = store.streams.get(id);
56
- var divRef = (0, _react.useRef)(null);
57
- var onDoubleClick = (0, _react.useCallback)(function () {
58
- return store.swapMainSpeaker(id);
59
- }, [id]);
60
- (0, _react.useEffect)(function () {
61
- if (stream) {
62
- store.ref(stream, type, divRef.current);
63
- return function () {
64
- store.ref(stream, type, null);
65
- };
66
- }
67
- }, [stream === null || stream === void 0 ? void 0 : stream.videoStreamId]);
68
- if (!stream) {
69
- return null;
70
- }
71
- var _stream$videoStreamId = stream.videoStreamId,
72
- videoStreamId = _stream$videoStreamId === void 0 ? '' : _stream$videoStreamId,
73
- _stream$audioStreamId = stream.audioStreamId,
74
- audioStreamId = _stream$audioStreamId === void 0 ? '' : _stream$audioStreamId,
75
- _stream$userId = stream.userId,
76
- userId = _stream$userId === void 0 ? '' : _stream$userId,
77
- _stream$hasMicrophone = stream.hasMicrophoneAudioStream,
78
- hasMicrophoneAudioStream = _stream$hasMicrophone === void 0 ? false : _stream$hasMicrophone,
79
- isMyself = stream.isMyself,
80
- _stream$userName = stream.userName,
81
- userName = _stream$userName === void 0 ? '' : _stream$userName,
82
- isBroken = stream.isBroken,
83
- _stream$audioStreamCo = stream.audioStreamConnectorType,
84
- audioStreamConnectorType = _stream$audioStreamCo === void 0 ? _type2.FcrRoomConnectorType.NONE : _stream$audioStreamCo;
85
- var isNormal = audioStreamConnectorType === _type2.FcrRoomConnectorType.NONE;
86
- var isPhone = audioStreamConnectorType === _type2.FcrRoomConnectorType.PSTN;
87
- var isMeeting = meetingConnectorTypes.has(audioStreamConnectorType);
88
- var suffixedName = userName + (isMyself ? t('is_myself') : '');
89
- var avatarSize = (0, _utils.clamp)(Math.min(width, height) * AvatarSizeRatio, MinAvatarSize, MaxAvatarSize);
90
- var avatarTextSize = avatarSize * AvatarTextSizeRatio;
91
- var avatar = isGallery ?
92
- // 纯电话,显示绿色电话头像
93
- isPhone && videoStreamId === audioStreamId ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_avatar.FcrAvatar, {
94
- nickName: userName,
95
- size: avatarSize,
96
- textSize: avatarTextSize,
97
- icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
98
- type: hasMicrophoneAudioStream ? _type.FcrIconType.FCR_PHONECALL3 : _type.FcrIconType.FCR_PHONECALL1,
99
- colors: {
100
- iconPrimary: 'var(--fcr_ui_scene_white10)'
101
- }
102
- }),
103
- backgroundColor: hasMicrophoneAudioStream ? 'var(--fcr_ui_scene_ramp_lightgreen6)' : 'var(--fcr_ui_scene_btn3)'
104
- }) : isMeeting ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_avatar.FcrAvatar, {
105
- nickName: userName,
106
- size: avatarSize,
107
- textSize: avatarTextSize,
108
- icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
109
- type: _type.FcrIconType.FCR_SIPDEVICE,
110
- colors: {
111
- iconPrimary: 'var(--fcr_ui_scene_white10)',
112
- iconSecondary: 'var(--fcr_ui_scene_ramp_green6)'
113
- }
114
- }),
115
- backgroundColor: hasMicrophoneAudioStream ? 'var(--fcr_ui_scene_ramp_purple7)' : 'var(--fcr_ui_scene_btn3)'
116
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_avatar.FcrAvatar, {
117
- nickName: userName,
118
- size: avatarSize,
119
- textSize: avatarTextSize
120
- }) : suffixedName;
121
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
122
- className: (0, _classnames["default"])("fcr-user-window fcr-user-window-".concat(type), {
123
- 'fcr-user-window-myself': isMyself,
124
- 'fcr-user-window-has-audio': hasMicrophoneAudioStream
125
- }),
126
- style: style,
127
- "data-user-id": userId,
128
- "data-stream-id": videoStreamId,
129
- "data-user-name": userName,
130
- onDoubleClick: onDoubleClick,
131
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
132
- className: (0, _classnames["default"])('fcr-user-window-background', {
133
- 'fcr-user-window-is-broken': isBroken
134
- }),
135
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
136
- type: _type.FcrIconType.FCR_CAMERA_WINDOW_NOTWORK,
137
- size: 80,
138
- colors: {
139
- iconPrimary: 'currentColor'
140
- }
141
- })
142
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
143
- className: "fcr-user-window-avatar",
144
- children: avatar
145
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
146
- className: "fcr-user-window-body",
147
- "data-layout": type,
148
- ref: divRef
149
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(UserWindowActions, {
150
- type: type,
151
- id: id
152
- })]
153
- });
154
- });
155
- var MicVolume = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
156
- var id = _ref2.id,
157
- size = _ref2.size,
158
- volume = _ref2.volume;
159
- // console.log('[layout] volume =', volume);
160
-
161
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
162
- className: "fcr-user-window-actions-volume",
163
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_mic.FcrMicrophoneIndicator, {
164
- defId: id,
165
- size: size,
166
- voicePercent: volume,
167
- iconColor: "var(--fcr-volume-icon-color)"
168
- })
169
- });
170
- });
171
- var UserWindowActions = (0, _mobxReact.observer)(function (_ref3) {
172
- var type = _ref3.type,
173
- id = _ref3.id;
174
- var isGallery = type === _type3.LayoutType.Gallery;
175
- var size = isGallery ? 24 : 16;
176
- var t = (0, _i18n.useI18n)();
177
- var store = (0, _react.useContext)(_context.StoreContext);
178
- var focus = (0, _hooks.useWindowFocus)();
179
- var _useState = (0, _react.useState)(false),
180
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
181
- isOnlyShowVideoStream = _useState2[0],
182
- setOnlyShowVideoStream = _useState2[1];
183
- var _useState3 = (0, _react.useState)(false),
184
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
185
- isShowDropMenu = _useState4[0],
186
- setIsShowDropMenu = _useState4[1];
187
- var _useState5 = (0, _react.useState)(0),
188
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
189
- phoneCallFrame = _useState6[0],
190
- setPhoneCallFrame = _useState6[1];
191
- var stream = store.streams.get(id);
192
- var _ref4 = stream || {},
193
- _ref4$audioStreamId = _ref4.audioStreamId,
194
- audioStreamId = _ref4$audioStreamId === void 0 ? '' : _ref4$audioStreamId,
195
- _ref4$videoStreamId = _ref4.videoStreamId,
196
- videoStreamId = _ref4$videoStreamId === void 0 ? '' : _ref4$videoStreamId,
197
- _ref4$userId = _ref4.userId,
198
- userId = _ref4$userId === void 0 ? '' : _ref4$userId,
199
- isHost = _ref4.isHost,
200
- _ref4$hasMicrophoneAu = _ref4.hasMicrophoneAudioStream,
201
- hasMicrophoneAudioStream = _ref4$hasMicrophoneAu === void 0 ? false : _ref4$hasMicrophoneAu,
202
- _ref4$hasVideoStream = _ref4.hasVideoStream,
203
- hasVideoStream = _ref4$hasVideoStream === void 0 ? false : _ref4$hasVideoStream,
204
- isMyself = _ref4.isMyself,
205
- _ref4$userName = _ref4.userName,
206
- userName = _ref4$userName === void 0 ? '' : _ref4$userName,
207
- canOperateAudioPublishPrivilege = _ref4.canOperateAudioPublishPrivilege,
208
- _ref4$volume = _ref4.volume,
209
- volume = _ref4$volume === void 0 ? 0 : _ref4$volume,
210
- _ref4$audioStreamConn = _ref4.audioStreamConnectorType,
211
- audioStreamConnectorType = _ref4$audioStreamConn === void 0 ? _type2.FcrRoomConnectorType.NONE : _ref4$audioStreamConn,
212
- userRole = _ref4.userRole;
213
- var isNormal = audioStreamConnectorType === _type2.FcrRoomConnectorType.NONE;
214
- var isPhone = audioStreamConnectorType === _type2.FcrRoomConnectorType.PSTN;
215
- var isMeeting = meetingConnectorTypes.has(audioStreamConnectorType);
216
- (0, _react.useEffect)(function () {
217
- if ((isPhone && videoStreamId !== audioStreamId || isMeeting) && hasMicrophoneAudioStream) {
218
- // 假设有 0 1 2 三帧,[0, 1, 2, 1, 0] 共花费 1 秒,帧间隔为 0.25 秒
219
- var timer = setInterval(function () {
220
- return setPhoneCallFrame(function (frame) {
221
- return (frame + 1) % 4;
222
- });
223
- }, 250);
224
- return function () {
225
- return clearInterval(timer);
226
- };
227
- }
228
- }, [isPhone, isMeeting, videoStreamId, audioStreamId, hasMicrophoneAudioStream]);
229
- var isManager = isHost || userRole === _type4.FcrUserRole.COHOST;
230
- (0, _react.useEffect)(function () {
231
- if (!isOnlyShowVideoStream && !focus) {
232
- var timer = setTimeout(function () {
233
- return setOnlyShowVideoStream(true);
234
- }, HideControlsTimeout);
235
- return function () {
236
- return clearTimeout(timer);
237
- };
238
- } else if (focus && isOnlyShowVideoStream) {
239
- setOnlyShowVideoStream(false);
240
- }
241
- }, [isOnlyShowVideoStream, focus]);
242
- var suffixedName = userName + (isMyself ? t('is_myself') : '');
243
-
244
- // 左下角图标内容
245
- var icon = null;
246
-
247
- // 大视窗
248
- if (isGallery) {
249
- // 普通麦克风接入:音量 / 红色麦克风静音
250
- if (isNormal) {
251
- icon = hasMicrophoneAudioStream ? /*#__PURE__*/(0, _jsxRuntime.jsx)(MicVolume, {
252
- id: audioStreamId,
253
- size: size,
254
- volume: volume
255
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
256
- content: t('muted'),
257
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
258
- className: "fcr-user-window-actions-microphone",
259
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
260
- type: _type.FcrIconType.FCR_NOMUTE,
261
- size: size,
262
- colors: {
263
- iconPrimary: 'currentColor',
264
- iconSecondary: 'var(--fcr_ui_scene_ramp_red6)'
265
- }
266
- })
267
- })
268
- });
269
- }
270
- // 不纯电话、会议系统,绿色 / 白色 (主持人) 电话,电话有帧动画
271
- else if (isPhone && videoStreamId !== audioStreamId || isMeeting) {
272
- icon = hasMicrophoneAudioStream ? /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
273
- className: "fcr-user-window-actions-microphone",
274
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
275
- type: phoneCallFrame === 0 ? _type.FcrIconType.FCR_PHONECALL1 : phoneCallFrame === 2 ? _type.FcrIconType.FCR_PHONECALL3 : _type.FcrIconType.FCR_PHONECALL2,
276
- size: size,
277
- colors: {
278
- iconPrimary: isHost ? 'var(--fcr_ui_scene_white10)' : 'var(--fcr_ui_scene_ramp_lightgreen6)'
279
- }
280
- })
281
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
282
- content: t('muted'),
283
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
284
- className: "fcr-user-window-actions-microphone",
285
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
286
- type: _type.FcrIconType.FCR_PHONECALL_SILENCE,
287
- size: size,
288
- colors: {
289
- iconPrimary: 'var(--fcr_ui_scene_ramp_red6)'
290
- }
291
- })
292
- })
293
- });
294
- }
295
- }
296
-
297
- // 小视窗
298
- else {
299
- // 普通麦克风接入:空 / 红色麦克风静音
300
- if (isNormal) {
301
- icon = hasMicrophoneAudioStream ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
302
- content: t('muted'),
303
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
304
- className: "fcr-user-window-actions-microphone",
305
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
306
- type: _type.FcrIconType.FCR_NOMUTE,
307
- size: size,
308
- colors: {
309
- iconPrimary: 'var(--fcr_ui_scene_ramp_red6)',
310
- iconSecondary: 'var(--fcr_ui_scene_ramp_red6)'
311
- }
312
- })
313
- })
314
- });
315
- }
316
- // 电话接入
317
- else if (isPhone) {
318
- // 纯电话:绿色电话 / 红色电话静音
319
- if (videoStreamId === audioStreamId) {
320
- icon = hasMicrophoneAudioStream ? /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
321
- className: "fcr-user-window-actions-microphone",
322
- style: {
323
- backgroundColor: 'var(--fcr_ui_scene_ramp_lightgreen6)'
324
- },
325
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
326
- type: _type.FcrIconType.FCR_PHONECALL3,
327
- size: size,
328
- colors: {
329
- iconPrimary: 'var(--fcr_ui_scene_white10)'
330
- }
331
- })
332
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
333
- content: t('muted'),
334
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
335
- className: "fcr-user-window-actions-microphone",
336
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
337
- type: _type.FcrIconType.FCR_PHONECALL_SILENCE,
338
- size: size,
339
- colors: {
340
- iconPrimary: 'var(--fcr_ui_scene_ramp_red6)'
341
- }
342
- })
343
- })
344
- });
345
- }
346
- // 不纯电话:空 / 红色电话静音
347
- else {
348
- icon = hasMicrophoneAudioStream ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
349
- content: t('muted'),
350
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
351
- className: "fcr-user-window-actions-microphone",
352
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
353
- type: _type.FcrIconType.FCR_PHONECALL_SILENCE,
354
- size: size,
355
- colors: {
356
- iconPrimary: 'var(--fcr_ui_scene_ramp_red6)'
357
- }
358
- })
359
- })
360
- });
361
- }
362
- }
363
- // 会议系统接入:紫色会议 / 紫色会议 + 红色电话静音
364
- else {
365
- icon = hasMicrophoneAudioStream ? /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
366
- className: "fcr-user-window-actions-microphone",
367
- style: {
368
- backgroundColor: 'var(--fcr_ui_scene_ramp_purple7)'
369
- },
370
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
371
- type: _type.FcrIconType.FCR_SIPDEVICE,
372
- size: size,
373
- colors: {
374
- iconPrimary: 'var(--fcr_ui_scene_white10)',
375
- iconSecondary: 'var(--fcr_ui_scene_ramp_green6)'
376
- }
377
- })
378
- }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
379
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
380
- className: "fcr-user-window-actions-microphone",
381
- style: {
382
- backgroundColor: 'var(--fcr_ui_scene_ramp_purple7)'
383
- },
384
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
385
- type: _type.FcrIconType.FCR_SIPDEVICE,
386
- size: size,
387
- colors: {
388
- iconPrimary: 'var(--fcr_ui_scene_white10)',
389
- iconSecondary: 'var(--fcr_ui_scene_ramp_green6)'
390
- }
391
- })
392
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
393
- content: t('muted'),
394
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
395
- className: "fcr-user-window-actions-microphone",
396
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
397
- type: _type.FcrIconType.FCR_PHONECALL_SILENCE,
398
- size: size,
399
- colors: {
400
- iconPrimary: 'var(--fcr_ui_scene_ramp_red6)'
401
- }
402
- })
403
- })
404
- })]
405
- });
406
- }
407
- }
408
- var selfIsManager = store.isManager,
409
- openPrivateChat = store.openPrivateChat;
410
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
411
- className: (0, _classnames["default"])('fcr-user-window-actions', {
412
- 'fcr-user-window-actions-hide': isOnlyShowVideoStream
413
- }),
414
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
415
- className: "fcr-user-window-actions-bottom",
416
- children: [isGallery ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
417
- className: (0, _classnames["default"])('fcr-user-window-actions-tag', {
418
- 'fcr-user-window-actions-tag-host': isManager,
419
- 'fcr-user-window-actions-tag-cohost': userRole === _type4.FcrUserRole.COHOST
420
- }),
421
- children: [icon, isHost && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
422
- children: t('host')
423
- }), userRole === _type4.FcrUserRole.COHOST && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
424
- children: t('tag.cohost')
425
- })]
426
- }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
427
- children: [isManager && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
428
- className: (0, _classnames["default"])('fcr-user-window-actions-tag', {
429
- 'fcr-user-window-actions-tag-host': isManager,
430
- 'fcr-user-window-actions-tag-cohost': userRole === _type4.FcrUserRole.COHOST
431
- }),
432
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
433
- children: t(isHost ? 'host' : 'tag.cohost')
434
- })
435
- }), !hasMicrophoneAudioStream && /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
436
- content: t('muted'),
437
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
438
- className: "fcr-user-window-actions-microphone",
439
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
440
- type: _type.FcrIconType.FCR_NOMUTE,
441
- size: size,
442
- colors: {
443
- iconPrimary: 'var(--fcr_ui_scene_ramp_red6)',
444
- iconSecondary: 'var(--fcr_ui_scene_ramp_red6)'
445
- }
446
- })
447
- })
448
- })]
449
- }), (isGallery || hasVideoStream) && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
450
- className: "fcr-user-window-actions-name",
451
- children: suffixedName
452
- })]
453
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
454
- className: "fcr-user-window-actions-top",
455
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
456
- content: t('more'),
457
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_popover.FcrPopover, {
458
- showArrow: true,
459
- placement: "bottomLeft",
460
- visible: isShowDropMenu,
461
- onVisibleChange: setIsShowDropMenu,
462
- content: /*#__PURE__*/(0, _jsxRuntime.jsx)(_participantsMoreAction.ParticipantsMoreActions, {
463
- userId: userId,
464
- userRole: userRole,
465
- hasVideo: hasVideoStream,
466
- hasAudio: hasMicrophoneAudioStream,
467
- userName: userName,
468
- perspectiveType: store.localUserRole === _type4.FcrUserRole.COHOST ? 'cohost' : store.isManager ? 'host' : 'attendee',
469
- isMe: isMyself,
470
- onParticipantsButtonClick: function onParticipantsButtonClick(action, userId) {
471
- store.sendParticipantEvent({
472
- action: action,
473
- userId: userId
474
- });
475
- setIsShowDropMenu(false);
476
- }
477
- }),
478
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
479
- className: "fcr-user-window-actions-more",
480
- onClick: function onClick() {
481
- return setIsShowDropMenu(true);
482
- },
483
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
484
- type: _type.FcrIconType.FCR_MOBILE_MORE,
485
- size: 20,
486
- colors: {
487
- iconPrimary: 'currentColor'
488
- }
489
- })
490
- })
491
- })
492
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
493
- className: "fcr-user-window-actions-mute",
494
- disabled: selfIsManager || isMyself,
495
- onClick: function onClick() {
496
- openPrivateChat(userId);
497
- },
498
- children: t('private_chat')
499
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
500
- className: "fcr-user-window-actions-mute",
501
- disabled: !canOperateAudioPublishPrivilege,
502
- onClick: function onClick() {
503
- store.muteAudio(hasMicrophoneAudioStream, userId);
504
- },
505
- children: hasMicrophoneAudioStream ? t('mute') : t('unmute')
506
- })]
507
- }), isMyself && hasVideoStream && /*#__PURE__*/(0, _jsxRuntime.jsx)(_localVideoPlayer.VideoOrientation, {
508
- setVideoOrientation: function setVideoOrientation() {
509
- store.setVideoOrientation();
510
- }
511
- })]
512
- });
513
- });
@@ -1,14 +0,0 @@
1
- import { AgoraRtcRenderMode } from 'agora-rte-sdk/lib/core/rtc/type';
2
- import { FcrUIVideoWindowData } from './type';
3
- import { FcrStreamControl } from 'agora-edu-core';
4
- import { FcrDeviceStore } from '../../common/device-store';
5
- import { FcrVideoStreamType } from 'agora-edu-core/lib/type';
6
- export declare const useRenderUserVideo: ({ renderMode, streamType, streamControl, deviceStore, }: {
7
- renderMode: AgoraRtcRenderMode;
8
- streamType: FcrVideoStreamType;
9
- streamControl: FcrStreamControl;
10
- deviceStore: FcrDeviceStore;
11
- }) => {
12
- startRenderVideo: (windowData: FcrUIVideoWindowData, dom: HTMLElement | null) => void;
13
- stopRenderVideo: (windowData: FcrUIVideoWindowData, dom: HTMLElement | null) => void;
14
- };
@@ -1,48 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.object.define-property.js");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.useRenderUserVideo = void 0;
8
- var _agoraEduCore = require("agora-edu-core");
9
- var _react = require("react");
10
- var useRenderUserVideo = exports.useRenderUserVideo = function useRenderUserVideo(_ref) {
11
- var renderMode = _ref.renderMode,
12
- streamType = _ref.streamType,
13
- streamControl = _ref.streamControl,
14
- deviceStore = _ref.deviceStore;
15
- var startRenderRemoteVideoStream = streamControl.startRenderRemoteVideoStream,
16
- stopRenderRemoteVideoStream = streamControl.stopRenderRemoteVideoStream;
17
- var startPlayLocalVideo = deviceStore.startPlayLocalVideo,
18
- stopPlayLocalVideo = deviceStore.stopPlayLocalVideo,
19
- cameraId = deviceStore.cameraId,
20
- cameraEnabled = deviceStore.cameraEnabled;
21
- var startRenderVideo = (0, _react.useCallback)(function (windowData, dom) {
22
- if (!dom) return;
23
- if (windowData.isMySelf) {
24
- if (windowData.videoSourceType === _agoraEduCore.FcrVideoSourceType.CAMERA && cameraEnabled) {
25
- startPlayLocalVideo(dom);
26
- }
27
- } else {
28
- startRenderRemoteVideoStream(windowData.windowId, streamType, {
29
- renderMode: renderMode,
30
- isMirror: false
31
- }, dom);
32
- }
33
- }, [streamType, renderMode, cameraId, cameraEnabled]);
34
- var stopRenderVideo = (0, _react.useCallback)(function (windowData, dom) {
35
- if (!dom) return;
36
- if (windowData.isMySelf) {
37
- if (windowData.videoSourceType === _agoraEduCore.FcrVideoSourceType.CAMERA) {
38
- stopPlayLocalVideo(dom);
39
- }
40
- } else {
41
- stopRenderRemoteVideoStream(windowData.windowId, dom);
42
- }
43
- }, [cameraId]);
44
- return {
45
- startRenderVideo: startRenderVideo,
46
- stopRenderVideo: stopRenderVideo
47
- };
48
- };
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import ShareScreenStore from './store';
3
- export declare const StoreContext: import("react").Context<ShareScreenStore>;
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.object.define-property.js");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.StoreContext = void 0;
8
- var _react = require("react");
9
- var StoreContext = exports.StoreContext = /*#__PURE__*/(0, _react.createContext)(null);
@@ -1 +0,0 @@
1
- export declare const addResource: () => void;
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.object.define-property.js");
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.addResource = void 0;
9
- var _i18n = require("agora-ui-foundation/lib/i18n");
10
- var _en = _interopRequireDefault(require("./en"));
11
- var _zh = _interopRequireDefault(require("./zh"));
12
- var addResource = exports.addResource = function addResource() {
13
- (0, _i18n.addResourceBundle)('zh', _zh["default"]);
14
- (0, _i18n.addResourceBundle)('en', _en["default"]);
15
- };
@@ -1,32 +0,0 @@
1
- declare const _default: {
2
- fcr_savecanvas_tips_save_successfully: string;
3
- fcr_savecanvas_tips_save_failed: string;
4
- fcr_board_resource_already_opened: string;
5
- fcr_board_tool_eraser: string;
6
- fcr_board_tool_extra: string;
7
- fcr_board_tool_undo: string;
8
- fcr_board_tool_redo: string;
9
- fcr_board_tool_clicker: string;
10
- fcr_board_tool_selector: string;
11
- fcr_board_tool_text: string;
12
- fcr_board_tool_drag: string;
13
- fcr_board_tool_laser_pointer: string;
14
- fcr_board_tool_save: string;
15
- fcr_board_tool_move: string;
16
- fcr_board_tool_pen: string;
17
- fcr_board_tool_screen: string;
18
- fcr_board_tool_shape: string;
19
- fcr_board_new_page: string;
20
- fcr_board_show_pageration: string;
21
- fcr_board_hide_pageration: string;
22
- fcr_board_display_name: string;
23
- fcr_savecanvas_tips_saving: string;
24
- fcr_board_cannot_join_room: string;
25
- fcr_board_label_connect_board: string;
26
- fcr_board_label_reconnect_board: string;
27
- fcr_board_window_connect_board1: string;
28
- fcr_board_window_connect_board2: string;
29
- fcr_board_button_continue_wait: string;
30
- fcr_board_button_close_whiteboard: string;
31
- };
32
- export default _default;