fcr-ui-scene 3.9.0 → 3.9.1-alpha

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 (199) hide show
  1. package/lib/creator/provider-initializer.browser.js +2 -1
  2. package/lib/creator/provider-initializer.electron.js +11 -4
  3. package/lib/electron/injections.d.ts +1 -0
  4. package/lib/electron/injections.js +4 -1
  5. package/lib/electron/preload.js +1 -0
  6. package/lib/modules/action-bar/main-scene/store.base.d.ts +1 -0
  7. package/lib/modules/action-bar/main-scene/store.base.js +5 -0
  8. package/lib/modules/audio-stream/index.d.ts +2 -0
  9. package/lib/modules/audio-stream/index.js +33 -1
  10. package/lib/modules/chat/index.js +1 -1
  11. package/lib/modules/chat/store.d.ts +1 -1
  12. package/lib/modules/chat/store.js +4 -2
  13. package/lib/modules/components/device-control/store.base.d.ts +1 -0
  14. package/lib/modules/components/device-control/store.base.js +22 -3
  15. package/lib/modules/components/leave-meeting/index.js +3 -2
  16. package/lib/modules/components/leave-meeting/main-scene/store.d.ts +1 -0
  17. package/lib/modules/components/leave-meeting/main-scene/store.js +6 -1
  18. package/lib/modules/components/leave-meeting/store.base.d.ts +1 -0
  19. package/lib/modules/components/leave-meeting/store.base.js +1 -1
  20. package/lib/modules/components/leave-meeting/waiting-scene/store.d.ts +1 -0
  21. package/lib/modules/components/leave-meeting/waiting-scene/store.js +6 -1
  22. package/lib/modules/components/member-window/components/member-actions/components/icon-status.js +7 -10
  23. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +2 -2
  24. package/lib/modules/components/member-window/components/member-actions/index.js +0 -7
  25. package/lib/modules/components/member-window/components/member-actions/store.js +1 -1
  26. package/lib/modules/components/member-window/index.js +1 -1
  27. package/lib/modules/components/tab-frame/index.css +12 -1
  28. package/lib/modules/components/tab-frame/index.js +4 -1
  29. package/lib/modules/control-bar/components/share-state-nav/index.js +1 -3
  30. package/lib/modules/control-bar/mouse-event-bridge.d.ts +23 -0
  31. package/lib/modules/control-bar/mouse-event-bridge.js +87 -0
  32. package/lib/modules/control-bar/store.d.ts +1 -1
  33. package/lib/modules/control-bar/store.js +10 -27
  34. package/lib/modules/control-bar/type.d.ts +0 -1
  35. package/lib/modules/control-bar/view.js +9 -16
  36. package/lib/modules/dialog/dialogs/connection-gateway/tabs.js +3 -2
  37. package/lib/modules/dialog/dialogs/invite/index.js +6 -24
  38. package/lib/modules/invite/components/copy-info.css +72 -0
  39. package/lib/modules/invite/components/copy-info.d.ts +3 -0
  40. package/lib/modules/invite/components/copy-info.js +144 -0
  41. package/lib/modules/invite/components/pstn-invite.js +3 -15
  42. package/lib/modules/invite/components/voip-invite.js +10 -1
  43. package/lib/modules/invite/enums.d.ts +3 -1
  44. package/lib/modules/invite/enums.js +2 -0
  45. package/lib/modules/invite/store.d.ts +4 -1
  46. package/lib/modules/invite/store.js +37 -13
  47. package/lib/modules/invite/view.js +41 -20
  48. package/lib/modules/layout/store.base.d.ts +2 -1
  49. package/lib/modules/layout/store.base.js +20 -23
  50. package/lib/modules/participant/components/confirm-input/index.css +67 -1
  51. package/lib/modules/participant/components/confirm-input/index.js +16 -13
  52. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.css +4 -0
  53. package/lib/modules/participant/store.base.d.ts +1 -0
  54. package/lib/modules/participant/store.base.js +34 -7
  55. package/lib/modules/pc-audio-connect/main-scene/store.d.ts +2 -0
  56. package/lib/modules/pc-audio-connect/main-scene/store.js +12 -2
  57. package/lib/modules/pc-audio-connect/view.js +4 -2
  58. package/lib/modules/phone-audio-connect/store.d.ts +6 -4
  59. package/lib/modules/phone-audio-connect/store.js +12 -1
  60. package/lib/modules/phone-audio-connect/view.js +6 -4
  61. package/lib/modules/secondary-window/index.js +2 -2
  62. package/lib/modules/secondary-window/store.d.ts +3 -0
  63. package/lib/modules/secondary-window/store.js +16 -1
  64. package/lib/modules/secondary-window/view.js +96 -72
  65. package/lib/modules/toast-manager/type.d.ts +2 -1
  66. package/lib/modules/toast-manager/type.js +4 -1
  67. package/lib/plugins/module-dev-plugin.js +4 -4
  68. package/lib/providers/ability-provider.d.ts +15 -0
  69. package/lib/providers/ability-provider.js +13 -1
  70. package/lib/providers/mouse-detect/provider.d.ts +2 -0
  71. package/lib/providers/mouse-detect/provider.empty.d.ts +14 -0
  72. package/lib/providers/mouse-detect/provider.empty.js +47 -0
  73. package/lib/providers/mouse-detect/provider.js +13 -4
  74. package/lib/providers/mouse-detect/type.d.ts +2 -0
  75. package/lib/providers/phone-audio-provider.d.ts +31 -5
  76. package/lib/providers/phone-audio-provider.js +83 -22
  77. package/lib/runtime.d.ts +1 -0
  78. package/lib/scenes/main-scene.js +2 -1
  79. package/lib/shared-data/chat-data.d.ts +19 -0
  80. package/lib/shared-data/chat-data.js +54 -7
  81. package/lib/shared-data/member-data.d.ts +9 -1
  82. package/lib/shared-data/member-data.js +46 -17
  83. package/lib/shared-data/video-window.js +8 -4
  84. package/lib/translations/enUS.d.ts +245 -1
  85. package/lib/translations/enUS.js +247 -3
  86. package/lib/translations/zhCN.d.ts +245 -1
  87. package/lib/translations/zhCN.js +246 -2
  88. package/lib/utilities/os.d.ts +1 -0
  89. package/lib/utilities/os.js +15 -0
  90. package/lib/utilities/renderer.d.ts +1 -0
  91. package/lib/utilities/renderer.js +7 -1
  92. package/lib-es/creator/provider-initializer.browser.js +2 -1
  93. package/lib-es/creator/provider-initializer.electron.js +9 -2
  94. package/lib-es/electron/injections.js +3 -0
  95. package/lib-es/electron/preload.js +2 -1
  96. package/lib-es/modules/action-bar/main-scene/store.base.js +5 -0
  97. package/lib-es/modules/audio-stream/index.js +33 -1
  98. package/lib-es/modules/chat/index.js +1 -1
  99. package/lib-es/modules/chat/store.js +4 -2
  100. package/lib-es/modules/components/device-control/store.base.js +22 -3
  101. package/lib-es/modules/components/leave-meeting/index.js +3 -2
  102. package/lib-es/modules/components/leave-meeting/main-scene/store.js +6 -1
  103. package/lib-es/modules/components/leave-meeting/store.base.js +1 -1
  104. package/lib-es/modules/components/leave-meeting/waiting-scene/store.js +6 -1
  105. package/lib-es/modules/components/member-window/components/member-actions/components/icon-status.js +7 -10
  106. package/lib-es/modules/components/member-window/components/member-actions/components/more-actions.js +2 -2
  107. package/lib-es/modules/components/member-window/components/member-actions/index.js +0 -7
  108. package/lib-es/modules/components/member-window/components/member-actions/store.js +1 -1
  109. package/lib-es/modules/components/member-window/index.js +1 -1
  110. package/lib-es/modules/components/tab-frame/index.css +12 -1
  111. package/lib-es/modules/components/tab-frame/index.js +4 -1
  112. package/lib-es/modules/control-bar/components/share-state-nav/index.js +1 -3
  113. package/lib-es/modules/control-bar/mouse-event-bridge.js +79 -0
  114. package/lib-es/modules/control-bar/store.js +11 -28
  115. package/lib-es/modules/control-bar/view.js +9 -16
  116. package/lib-es/modules/dialog/dialogs/connection-gateway/tabs.js +3 -2
  117. package/lib-es/modules/dialog/dialogs/invite/index.js +6 -24
  118. package/lib-es/modules/invite/components/copy-info.css +72 -0
  119. package/lib-es/modules/invite/components/copy-info.js +137 -0
  120. package/lib-es/modules/invite/components/pstn-invite.js +3 -15
  121. package/lib-es/modules/invite/components/voip-invite.js +10 -1
  122. package/lib-es/modules/invite/enums.js +2 -0
  123. package/lib-es/modules/invite/store.js +38 -14
  124. package/lib-es/modules/invite/view.js +43 -22
  125. package/lib-es/modules/layout/store.base.js +20 -23
  126. package/lib-es/modules/participant/components/confirm-input/index.css +67 -1
  127. package/lib-es/modules/participant/components/confirm-input/index.js +16 -13
  128. package/lib-es/modules/participant/components/participants/components/render-user/components/attendee/index.css +4 -0
  129. package/lib-es/modules/participant/store.base.js +34 -7
  130. package/lib-es/modules/pc-audio-connect/main-scene/store.js +12 -2
  131. package/lib-es/modules/pc-audio-connect/view.js +4 -2
  132. package/lib-es/modules/phone-audio-connect/store.js +12 -1
  133. package/lib-es/modules/phone-audio-connect/view.js +6 -4
  134. package/lib-es/modules/secondary-window/index.js +2 -2
  135. package/lib-es/modules/secondary-window/store.js +16 -1
  136. package/lib-es/modules/secondary-window/view.js +97 -73
  137. package/lib-es/modules/toast-manager/type.js +4 -1
  138. package/lib-es/plugins/module-dev-plugin.js +4 -4
  139. package/lib-es/providers/ability-provider.js +13 -1
  140. package/lib-es/providers/mouse-detect/provider.empty.js +39 -0
  141. package/lib-es/providers/mouse-detect/provider.js +13 -4
  142. package/lib-es/providers/phone-audio-provider.js +109 -48
  143. package/lib-es/scenes/main-scene.js +3 -2
  144. package/lib-es/shared-data/chat-data.js +55 -8
  145. package/lib-es/shared-data/member-data.js +46 -17
  146. package/lib-es/shared-data/video-window.js +8 -4
  147. package/lib-es/translations/enUS.js +247 -3
  148. package/lib-es/translations/zhCN.js +246 -2
  149. package/lib-es/utilities/os.js +8 -0
  150. package/lib-es/utilities/renderer.js +7 -1
  151. package/lib-es/utilities/shared-storage.js +2 -2
  152. package/package.json +6 -6
  153. package/lib/modules/connection-gateway/components/computer/index.css +0 -12
  154. package/lib/modules/connection-gateway/components/computer/index.d.ts +0 -3
  155. package/lib/modules/connection-gateway/components/computer/index.js +0 -66
  156. package/lib/modules/connection-gateway/components/phone/components/callinfo/index.css +0 -36
  157. package/lib/modules/connection-gateway/components/phone/components/callinfo/index.d.ts +0 -10
  158. package/lib/modules/connection-gateway/components/phone/components/callinfo/index.js +0 -78
  159. package/lib/modules/connection-gateway/components/phone/components/calling/index.css +0 -72
  160. package/lib/modules/connection-gateway/components/phone/components/calling/index.d.ts +0 -7
  161. package/lib/modules/connection-gateway/components/phone/components/calling/index.js +0 -58
  162. package/lib/modules/connection-gateway/components/phone/components/remeber/index.css +0 -10
  163. package/lib/modules/connection-gateway/components/phone/components/remeber/index.d.ts +0 -5
  164. package/lib/modules/connection-gateway/components/phone/components/remeber/index.js +0 -24
  165. package/lib/modules/connection-gateway/components/phone/components/useing/index.css +0 -46
  166. package/lib/modules/connection-gateway/components/phone/components/useing/index.d.ts +0 -3
  167. package/lib/modules/connection-gateway/components/phone/components/useing/index.js +0 -36
  168. package/lib/modules/connection-gateway/components/phone/index.css +0 -49
  169. package/lib/modules/connection-gateway/components/phone/index.d.ts +0 -3
  170. package/lib/modules/connection-gateway/components/phone/index.js +0 -185
  171. package/lib/modules/connection-gateway/enums.d.ts +0 -4
  172. package/lib/modules/connection-gateway/enums.js +0 -12
  173. package/lib/modules/connection-gateway/index.css +0 -6
  174. package/lib/modules/connection-gateway/index.d.ts +0 -10
  175. package/lib/modules/connection-gateway/index.js +0 -78
  176. package/lib/modules/connection-gateway/store.d.ts +0 -68
  177. package/lib/modules/connection-gateway/store.js +0 -713
  178. package/lib/modules/connection-gateway/types.d.ts +0 -8
  179. package/lib/modules/connection-gateway/types.js +0 -6
  180. package/lib/modules/connection-gateway/view.d.ts +0 -1
  181. package/lib/modules/connection-gateway/view.js +0 -39
  182. package/lib-es/modules/connection-gateway/components/computer/index.css +0 -12
  183. package/lib-es/modules/connection-gateway/components/computer/index.js +0 -59
  184. package/lib-es/modules/connection-gateway/components/phone/components/callinfo/index.css +0 -36
  185. package/lib-es/modules/connection-gateway/components/phone/components/callinfo/index.js +0 -71
  186. package/lib-es/modules/connection-gateway/components/phone/components/calling/index.css +0 -72
  187. package/lib-es/modules/connection-gateway/components/phone/components/calling/index.js +0 -51
  188. package/lib-es/modules/connection-gateway/components/phone/components/remeber/index.css +0 -10
  189. package/lib-es/modules/connection-gateway/components/phone/components/remeber/index.js +0 -17
  190. package/lib-es/modules/connection-gateway/components/phone/components/useing/index.css +0 -46
  191. package/lib-es/modules/connection-gateway/components/phone/components/useing/index.js +0 -29
  192. package/lib-es/modules/connection-gateway/components/phone/index.css +0 -49
  193. package/lib-es/modules/connection-gateway/components/phone/index.js +0 -177
  194. package/lib-es/modules/connection-gateway/enums.js +0 -5
  195. package/lib-es/modules/connection-gateway/index.css +0 -6
  196. package/lib-es/modules/connection-gateway/index.js +0 -60
  197. package/lib-es/modules/connection-gateway/store.js +0 -707
  198. package/lib-es/modules/connection-gateway/types.js +0 -1
  199. package/lib-es/modules/connection-gateway/view.js +0 -31
@@ -15,6 +15,8 @@ export default class InviteStore implements FcrUIManagedObject {
15
15
  private _widgetProvider;
16
16
  private _roomConnectorControl;
17
17
  private _dialogProvider;
18
+ private _abilityProvider;
19
+ private _phoneAudioConnectorProvider;
18
20
  private _dialogProviderObserver;
19
21
  accessor roomInfo: FcrRoomInfo;
20
22
  accessor roomSchedule: FcrRoomSchedule;
@@ -41,9 +43,10 @@ export default class InviteStore implements FcrUIManagedObject {
41
43
  get meetingTimeStatus(): import("../../shared-data/meeting-time").MeetingStatus;
42
44
  get meetingTime(): string;
43
45
  get roomId(): string;
46
+ get showInvitePstnTab(): boolean;
47
+ get showInviteVoipTab(): boolean;
44
48
  get widgetConfigByContacts(): import("../../type").FcrUIWebWidgetConfig | undefined;
45
49
  constructor({ objectManager }: InviteStoreArgs);
46
- closeInviteDialog(): void;
47
50
  release(): void;
48
51
  stopSession(type: 'pstn' | 'voip'): Promise<void>;
49
52
  startSessionByPhone({ phoneNumber, userName, zone }: PstnInfo): Promise<void>;
@@ -38,10 +38,13 @@ Object.defineProperty(exports, "__esModule", {
38
38
  });
39
39
  exports["default"] = exports.StoreContext = void 0;
40
40
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
41
+ require("core-js/modules/es.array.concat.js");
41
42
  require("core-js/modules/es.array.find.js");
43
+ require("core-js/modules/es.array.includes.js");
42
44
  require("core-js/modules/es.array.iterator.js");
43
45
  require("core-js/modules/es.array.map.js");
44
46
  require("core-js/modules/es.object.to-string.js");
47
+ require("core-js/modules/es.string.includes.js");
45
48
  require("core-js/modules/es.string.iterator.js");
46
49
  require("core-js/modules/es.weak-map.js");
47
50
  require("core-js/modules/esnext.iterator.constructor.js");
@@ -66,6 +69,7 @@ var _objectManager = require("../../object-manager");
66
69
  var _logger = require("../../utilities/logger");
67
70
  var _meetingDetail = require("../../utilities/meeting-detail");
68
71
  var _constant = require("../../utilities/constant");
72
+ var _type3 = require("../toast-manager/type");
69
73
  var _InviteStore;
70
74
  var _initProto, _init_InviteStatus, _init_isPstnCalling, _init_isVoipCalling, _init_ipInfo, _init_phoneInfo, _init_calledPstnInfo, _init_calledVoipInfo, _stopSessionDecs, _startSessionByPhoneDecs, _startSessionByVoipDecs, _showToastDecs, _getRoomConnectorIpInfoDecs, _getRoomConnectorPhoneInfoDecs, _handleErrorDecs, _updateInviteStatusDecs, _resetpstnStatusDecs, _resetVoipStatusDecs, _handlePhoneConnectorSessionStateUpdatedDecs, _handleIPConnectorSessionStateUpdatedDecs, _ref;
71
75
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
@@ -149,6 +153,8 @@ var InviteStore = exports["default"] = /*#__PURE__*/function () {
149
153
  // Get all required objects from objectManager
150
154
 
151
155
  this._mainRoomControl = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_MAIN_ROOM_CONTROL_PROVIDER).mainRoomControl;
156
+ this._abilityProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_ABILITY_PROVIDER);
157
+ this._phoneAudioConnectorProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_PHONE_AUDIO_CONNECTOR_PROVIDER);
152
158
  this._messageProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_MESSAGE_PROVIDER);
153
159
  this._roomConnectorControl = this._mainRoomControl.getRoomConnectorControl();
154
160
  this._sharedMemberDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_MEMBER_DATA_SOURCE);
@@ -305,6 +311,26 @@ var InviteStore = exports["default"] = /*#__PURE__*/function () {
305
311
  get: function get() {
306
312
  return this.roomInfo.roomId;
307
313
  }
314
+ }, {
315
+ key: "showInvitePstnTab",
316
+ get: function get() {
317
+ var types = this._phoneAudioConnectorProvider.getCallOutTypeArray();
318
+ var hasPstnPermission = types.includes(_type.FcrPhoneConnectorSessionTypeToStringMap[_type.FcrPhoneConnectorSessionType.PSTN]);
319
+ var hasVoltePermission = types.includes(_type.FcrPhoneConnectorSessionTypeToStringMap[_type.FcrPhoneConnectorSessionType.VOLTE]);
320
+ var isPstnCallOutSupported = this._abilityProvider.isCallOutAbilitySupported() && hasPstnPermission;
321
+ var isVolteCallOutSupported = this._abilityProvider.isCallOutVolteAbilitySupported() && hasVoltePermission;
322
+ return isPstnCallOutSupported || isVolteCallOutSupported;
323
+ }
324
+ }, {
325
+ key: "showInviteVoipTab",
326
+ get: function get() {
327
+ var types = this._phoneAudioConnectorProvider.getCallOutTypeArray();
328
+ var hasH323Permission = types.includes(_type.FcrIPConnectorSessionTypeToStringMap[_type.FcrIPConnectorSessionType.H323]);
329
+ var hasSipPermission = types.includes(_type.FcrIPConnectorSessionTypeToStringMap[_type.FcrIPConnectorSessionType.SIP]);
330
+ var isH323CallOutSupported = this._abilityProvider.isCallOutH323AbilitySupported() && hasH323Permission;
331
+ var isSipCallOutSupported = this._abilityProvider.isCallOutSipAbilitySupported() && hasSipPermission;
332
+ return isH323CallOutSupported || isSipCallOutSupported;
333
+ }
308
334
  }, {
309
335
  key: "widgetConfigByContacts",
310
336
  get: function get() {
@@ -313,16 +339,6 @@ var InviteStore = exports["default"] = /*#__PURE__*/function () {
313
339
  });
314
340
  return contacts;
315
341
  }
316
- }, {
317
- key: "closeInviteDialog",
318
- value: function closeInviteDialog() {
319
- if (this._pstnSessionId) {
320
- this.stopSession('pstn');
321
- }
322
- if (this._voipSessionId) {
323
- this.stopSession('voip');
324
- }
325
- }
326
342
  }, {
327
343
  key: "release",
328
344
  value: function release() {
@@ -372,11 +388,12 @@ var InviteStore = exports["default"] = /*#__PURE__*/function () {
372
388
  key: "startSessionByPhone",
373
389
  value: function () {
374
390
  var _startSessionByPhone = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(_ref4) {
375
- var phoneNumber, userName, zone, _t2;
391
+ var phoneNumber, userName, zone, type, _t2;
376
392
  return _regenerator["default"].wrap(function (_context2) {
377
393
  while (1) switch (_context2.prev = _context2.next) {
378
394
  case 0:
379
395
  phoneNumber = _ref4.phoneNumber, userName = _ref4.userName, zone = _ref4.zone;
396
+ type = this._phoneAudioConnectorProvider.getPhoneCallOutType();
380
397
  this.isPstnCalling = true;
381
398
  this.calledPstnInfo = {
382
399
  phoneNumber: phoneNumber,
@@ -387,7 +404,8 @@ var InviteStore = exports["default"] = /*#__PURE__*/function () {
387
404
  _context2.next = 2;
388
405
  return this._roomConnectorControl.startSessionByPhone({
389
406
  phoneNumber: phoneNumber,
390
- userName: userName
407
+ userName: userName,
408
+ type: type
391
409
  });
392
410
  case 2:
393
411
  this._pstnSessionId = _context2.sent;
@@ -397,7 +415,7 @@ var InviteStore = exports["default"] = /*#__PURE__*/function () {
397
415
  case 3:
398
416
  _context2.prev = 3;
399
417
  _t2 = _context2["catch"](1);
400
- this.handleError(this.calledVoipInfo, _t2, 'voip');
418
+ this.handleError(this.calledVoipInfo, _t2, 'pstn');
401
419
  case 4:
402
420
  case "end":
403
421
  return _context2.stop();
@@ -501,6 +519,12 @@ var InviteStore = exports["default"] = /*#__PURE__*/function () {
501
519
  value: function handleError(info, error, sessionType) {
502
520
  var _this2 = this;
503
521
  this.updateInviteStatus(info, _enums.InviteStatus.ERROR);
522
+ this.showToast({
523
+ key: _type3.FcrUIToastKey.ERR_MESSAGE,
524
+ params: {
525
+ message: "code: ".concat(error.code, ", message: ").concat(error.message)
526
+ }
527
+ });
504
528
  setTimeout(function () {
505
529
  if (sessionType === 'pstn') {
506
530
  _this2.isPstnCalling = false;
@@ -17,33 +17,54 @@ var _i18n = require("agora-ui-foundation/lib/i18n");
17
17
  var _tabFrame = _interopRequireDefault(require("../components/tab-frame"));
18
18
  var _enums = require("./enums");
19
19
  var _store = require("./store");
20
+ var _copyInfo = _interopRequireDefault(require("./components/copy-info"));
20
21
  var _jsxRuntime = require("react/jsx-runtime");
21
22
  var View = exports.View = (0, _mobxReact.observer)(function (props) {
22
23
  var contactsChildren = props.contactsChildren;
23
24
  var _useContext = (0, _react.useContext)(_store.StoreContext),
24
- widgetConfigByContacts = _useContext.widgetConfigByContacts;
25
- var widgetConfigByContactsId = widgetConfigByContacts === null || widgetConfigByContacts === void 0 ? void 0 : widgetConfigByContacts.id;
26
- var _useState = (0, _react.useState)(_enums.InviteType.PSTN),
25
+ widgetConfigByContacts = _useContext.widgetConfigByContacts,
26
+ showInviteVoipTab = _useContext.showInviteVoipTab,
27
+ showInvitePstnTab = _useContext.showInvitePstnTab;
28
+ var transI18n = (0, _i18n.useI18n)();
29
+ var _useState = (0, _react.useState)(_enums.InviteType.COPY),
27
30
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
28
31
  currentInviteType = _useState2[0],
29
32
  setCurrentInviteType = _useState2[1];
30
- var transI18n = (0, _i18n.useI18n)();
31
- var tabs = [{
32
- label: "".concat(transI18n('fmt_pstn_label_phonecall')),
33
- key: _enums.InviteType.PSTN,
34
- content: /*#__PURE__*/(0, _jsxRuntime.jsx)(_pstnInvite.PSTNInvite, {})
35
- }, {
36
- label: "".concat(transI18n('fmt_sip_options_H323')),
37
- key: _enums.InviteType.VOIP,
38
- content: /*#__PURE__*/(0, _jsxRuntime.jsx)(_voipInvite.VoipInvite, {})
39
- }];
40
- if (widgetConfigByContacts) {
41
- tabs.push({
42
- label: widgetConfigByContacts.name,
43
- key: widgetConfigByContactsId,
44
- content: contactsChildren
45
- });
46
- }
33
+ var tabs = (0, _react.useMemo)(function () {
34
+ var tabs = [{
35
+ label: transI18n('fmt_invitepage_label_by_invitation'),
36
+ key: _enums.InviteType.COPY,
37
+ content: /*#__PURE__*/(0, _jsxRuntime.jsx)(_copyInfo["default"], {})
38
+ }];
39
+ if (showInvitePstnTab) {
40
+ tabs.push({
41
+ label: "".concat(transI18n('fmt_pstn_label_phonecall')),
42
+ key: _enums.InviteType.PSTN,
43
+ content: /*#__PURE__*/(0, _jsxRuntime.jsx)(_pstnInvite.PSTNInvite, {})
44
+ });
45
+ }
46
+ if (showInviteVoipTab) {
47
+ tabs.push({
48
+ label: transI18n('fmt_invitepage_label_meeting_connector'),
49
+ key: _enums.InviteType.VOIP,
50
+ content: /*#__PURE__*/(0, _jsxRuntime.jsx)(_voipInvite.VoipInvite, {})
51
+ });
52
+ }
53
+ if (widgetConfigByContacts) {
54
+ tabs.push({
55
+ key: _enums.InviteType.WIDGET,
56
+ label: widgetConfigByContacts.name,
57
+ content: /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
58
+ children: contactsChildren
59
+ })
60
+ });
61
+ }
62
+ var isSingleTab = tabs.length === 1;
63
+ if (isSingleTab && tabs[0].key === _enums.InviteType.COPY) {
64
+ tabs[0].label = transI18n('fmt_invitepage_label_meeting_details');
65
+ }
66
+ return tabs;
67
+ }, [transI18n, widgetConfigByContacts, contactsChildren, showInvitePstnTab, showInviteVoipTab]);
47
68
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_tabFrame["default"], {
48
69
  activeKey: currentInviteType,
49
70
  onChange: function onChange(key) {
@@ -30,6 +30,7 @@ export declare abstract class LayoutStoreBase implements FcrLayoutSlots, FcrUIEv
30
30
  private _sharedLayoutDataSource;
31
31
  private _sharedSettingDataSource;
32
32
  private _sharedMemberDataSource;
33
+ private _sharedChatDataSource;
33
34
  private _chatProvider;
34
35
  private _pinDataSource;
35
36
  private _sharedScreenShareDataSource;
@@ -52,7 +53,7 @@ export declare abstract class LayoutStoreBase implements FcrLayoutSlots, FcrUIEv
52
53
  accessor barLocked: boolean;
53
54
  accessor barHidden: boolean;
54
55
  accessor asideWidth: number;
55
- accessor chatRoomState: FcrChatRoomConnectionState;
56
+ get chatRoomState(): FcrChatRoomConnectionState;
56
57
  accessor whiteboardActive: boolean;
57
58
  accessor ownerUser: FcrUserInfo | undefined;
58
59
  get streamControl(): FcrStreamControl;
@@ -83,7 +83,7 @@ var _objectManager = require("../../object-manager");
83
83
  var _type7 = require("../secondary-window/type");
84
84
  var _type8 = require("../../modules/toast-manager/type");
85
85
  var _LayoutStoreBase;
86
- var _initProto, _participantDecs, _init_participant, _chatDecs, _init_chat, _chatActionDecs, _init_chatAction, _stateBarDecs, _init_stateBar, _actionBarDecs, _init_actionBar, _layersDecs, _init_layers, _whiteboardDecs, _init_whiteboard, _annotationDecs, _init_annotation, _screenShareControlDecs, _init_screenShareControl, _subtitlesDecs, _init_subtitles, _subtitlesHistoryDecs, _init_subtitlesHistory, _subtitlesHistorySettingsDecs, _init_subtitlesHistorySettings, _init_collapsed, _init_aside, _init_barHovering, _init_barLocked, _init_barHidden, _init_asideWidth, _init_chatRoomState, _init_whiteboardActive, _init_ownerUser, _addPinMessageDecs, _cancelPinMessageDecs, _setWhiteboardActiveDecs, _setAsideWidthDecs, _updateSlotsDecs, _toggleLayoutDecs, _toggleCollapsedDecs, _toggleAsideDecs, _asideWidthChangedDecs, _toggleLayoutBarLockDecs, _toggleLayoutBarHiddenDecs, _resetLockTimerDecs, _setHoveringHandlerDecs, _setHoveringLeaveHandlerDecs, _setScreenShareSpeakerViewSizeDecs, _handleLiveLayoutChangeDecs, _onUserInfoUpdatedDecs, _handleLayoutUpdatedDecs, _init__handleLayoutUpdated, _handleMainListLengthChangedDecs, _handleMainListChangedDecs, _setBarHoveringDecs, _handleConnectionUpdatedDecs, _findVideoWindowByUserIdDecs, _onRemoteUsersLeftDecs, _ref;
86
+ var _initProto, _participantDecs, _init_participant, _chatDecs, _init_chat, _chatActionDecs, _init_chatAction, _stateBarDecs, _init_stateBar, _actionBarDecs, _init_actionBar, _layersDecs, _init_layers, _whiteboardDecs, _init_whiteboard, _annotationDecs, _init_annotation, _screenShareControlDecs, _init_screenShareControl, _subtitlesDecs, _init_subtitles, _subtitlesHistoryDecs, _init_subtitlesHistory, _subtitlesHistorySettingsDecs, _init_subtitlesHistorySettings, _init_collapsed, _init_aside, _init_barHovering, _init_barLocked, _init_barHidden, _init_asideWidth, _init_whiteboardActive, _init_ownerUser, _addPinMessageDecs, _cancelPinMessageDecs, _setWhiteboardActiveDecs, _setAsideWidthDecs, _updateSlotsDecs, _toggleLayoutDecs, _toggleCollapsedDecs, _toggleAsideDecs, _asideWidthChangedDecs, _toggleLayoutBarLockDecs, _toggleLayoutBarHiddenDecs, _resetLockTimerDecs, _setHoveringHandlerDecs, _setHoveringLeaveHandlerDecs, _setScreenShareSpeakerViewSizeDecs, _handleLiveLayoutChangeDecs, _onUserInfoUpdatedDecs, _handleLayoutUpdatedDecs, _init__handleLayoutUpdated, _handleMainListLengthChangedDecs, _handleMainListChangedDecs, _setBarHoveringDecs, _handleConnectionUpdatedDecs, _findVideoWindowByUserIdDecs, _onRemoteUsersLeftDecs, _ref;
87
87
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
88
88
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
89
89
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
@@ -114,7 +114,6 @@ var _Q = /*#__PURE__*/new WeakMap();
114
114
  var _R = /*#__PURE__*/new WeakMap();
115
115
  var _S = /*#__PURE__*/new WeakMap();
116
116
  var _T = /*#__PURE__*/new WeakMap();
117
- var _U = /*#__PURE__*/new WeakMap();
118
117
  _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], _annotationDecs = [_mobx.observable, _mobx.observable.ref], _screenShareControlDecs = [_mobx.observable, _mobx.observable.ref], _subtitlesDecs = [_mobx.observable, _mobx.observable.ref], _subtitlesHistoryDecs = [_mobx.observable, _mobx.observable.ref], _subtitlesHistorySettingsDecs = [_mobx.observable, _mobx.observable.ref], _addPinMessageDecs = [_mobx.action, _mobx.action.bound], _cancelPinMessageDecs = [_mobx.action, _mobx.action.bound], _setWhiteboardActiveDecs = [_mobx.action, _mobx.action.bound], _setAsideWidthDecs = [_mobx.action, _mobx.action.bound], _updateSlotsDecs = [_mobx.action, _mobx.action.bound], _toggleLayoutDecs = [_mobx.action, _mobx.action.bound], _toggleCollapsedDecs = [_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], _setScreenShareSpeakerViewSizeDecs = [(0, _decorator.debounced)(400), _decorator.bound], _handleLiveLayoutChangeDecs = [_mobx.action, _mobx.action.bound], _onUserInfoUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleLayoutUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleMainListLengthChangedDecs = [_mobx.action, _mobx.action.bound], _handleMainListChangedDecs = [_mobx.action, _mobx.action.bound], _setBarHoveringDecs = [_mobx.action, _mobx.action.bound], _handleConnectionUpdatedDecs = [_mobx.action, _mobx.action.bound], _findVideoWindowByUserIdDecs = [_mobx.action, _mobx.action.bound], _onRemoteUsersLeftDecs = [_mobx.action, _mobx.action.bound], "logger");
119
118
  var LayoutStoreBase = exports.LayoutStoreBase = /*#__PURE__*/function () {
120
119
  function LayoutStoreBase(_ref2) {
@@ -148,9 +147,8 @@ var LayoutStoreBase = exports.LayoutStoreBase = /*#__PURE__*/function () {
148
147
  _classPrivateFieldInitSpec(this, _P, _init_barLocked(this, true));
149
148
  _classPrivateFieldInitSpec(this, _Q, _init_barHidden(this, false));
150
149
  _classPrivateFieldInitSpec(this, _R, _init_asideWidth(this, _view.MinAsideWidth));
151
- _classPrivateFieldInitSpec(this, _S, _init_chatRoomState(this, _type4.FcrChatRoomConnectionState.Disconnected));
152
- _classPrivateFieldInitSpec(this, _T, _init_whiteboardActive(this, false));
153
- _classPrivateFieldInitSpec(this, _U, _init_ownerUser(this, undefined));
150
+ _classPrivateFieldInitSpec(this, _S, _init_whiteboardActive(this, false));
151
+ _classPrivateFieldInitSpec(this, _T, _init_ownerUser(this, undefined));
154
152
  (0, _defineProperty2["default"])(this, "getAllowedOperations", (0, _mobxUtils.computedFn)(function (targetRole, isSelf) {
155
153
  return _this._privilegeProvider.getAllowedOperations(targetRole, isSelf);
156
154
  }));
@@ -176,6 +174,7 @@ var LayoutStoreBase = exports.LayoutStoreBase = /*#__PURE__*/function () {
176
174
  this._privilegeProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_PRIVILEGE_PROVIDER);
177
175
  this._sharedSettingDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_SETTING_DATA_SOURCE);
178
176
  this._sharedInterpreterDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_INTERPRETER_DATA_SOURCE);
177
+ this._sharedChatDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_CHAT_DATA_SOURCE);
179
178
  this._chatProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_CHAT_PROVIDER);
180
179
  this._sharedUserAudioVolumeDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_USER_AUDIO_VOLUME_DATA_SOURCE);
181
180
  this._videoWindowDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_VIDEO_WINDOW_DATA_SOURCE);
@@ -183,7 +182,7 @@ var LayoutStoreBase = exports.LayoutStoreBase = /*#__PURE__*/function () {
183
182
  this._pinDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_PIN_DATA_SOURCE);
184
183
  this._sharedScreenShareDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_SCREEN_SHARE_DATA_SOURCE);
185
184
  this._annotationProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_ANNOTATION_PROVIDER);
186
- this.chatRoomState = this._chatRoomControl.getConnectionState();
185
+ this._sharedChatDataSource.setConnectionState(_type6.FcrUIRoomType.MAIN_ROOM, this._chatRoomControl.getConnectionState());
187
186
  }
188
187
  return (0, _createClass2["default"])(LayoutStoreBase, [{
189
188
  key: "participant",
@@ -332,26 +331,24 @@ var LayoutStoreBase = exports.LayoutStoreBase = /*#__PURE__*/function () {
332
331
  }, {
333
332
  key: "chatRoomState",
334
333
  get: function get() {
335
- return _classPrivateFieldGet(_S, this);
336
- },
337
- set: function set(v) {
338
- _classPrivateFieldSet(_S, this, v);
334
+ var _this$_sharedChatData, _this$_sharedChatData2;
335
+ return (_this$_sharedChatData = (_this$_sharedChatData2 = this._sharedChatDataSource) === null || _this$_sharedChatData2 === void 0 ? void 0 : _this$_sharedChatData2.currentConnectionState) !== null && _this$_sharedChatData !== void 0 ? _this$_sharedChatData : _type4.FcrChatRoomConnectionState.Disconnected;
339
336
  }
340
337
  }, {
341
338
  key: "whiteboardActive",
342
339
  get: function get() {
343
- return _classPrivateFieldGet(_T, this);
340
+ return _classPrivateFieldGet(_S, this);
344
341
  },
345
342
  set: function set(v) {
346
- _classPrivateFieldSet(_T, this, v);
343
+ _classPrivateFieldSet(_S, this, v);
347
344
  }
348
345
  }, {
349
346
  key: "ownerUser",
350
347
  get: function get() {
351
- return _classPrivateFieldGet(_U, this);
348
+ return _classPrivateFieldGet(_T, this);
352
349
  },
353
350
  set: function set(v) {
354
- _classPrivateFieldSet(_U, this, v);
351
+ _classPrivateFieldSet(_T, this, v);
355
352
  }
356
353
  }, {
357
354
  key: "streamControl",
@@ -1219,9 +1216,10 @@ var LayoutStoreBase = exports.LayoutStoreBase = /*#__PURE__*/function () {
1219
1216
  }
1220
1217
  }, {
1221
1218
  key: "_handleConnectionUpdated",
1222
- value: function _handleConnectionUpdated(_, state) {
1223
- this.logger.info('layout store handleConnectionUpdated', state);
1224
- this.chatRoomState = state;
1219
+ value: function _handleConnectionUpdated(_, state, roomType) {
1220
+ this.logger.info('layout store handleConnectionUpdated', state, roomType);
1221
+ // 连接状态已由共享数据源统一管理,这里不需要再更新
1222
+ // 共享数据源会在收到回调时自动更新状态
1225
1223
  }
1226
1224
  }, {
1227
1225
  key: "_findVideoWindowByUserId",
@@ -1319,7 +1317,7 @@ var LayoutStoreBase = exports.LayoutStoreBase = /*#__PURE__*/function () {
1319
1317
  }]);
1320
1318
  }();
1321
1319
  _LayoutStoreBase = LayoutStoreBase;
1322
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_LayoutStoreBase, [[_participantDecs, 17, "participant"], [_chatDecs, 17, "chat"], [_chatActionDecs, 17, "chatAction"], [_stateBarDecs, 17, "stateBar"], [_actionBarDecs, 17, "actionBar"], [_layersDecs, 17, "layers"], [_whiteboardDecs, 17, "whiteboard"], [_annotationDecs, 17, "annotation"], [_screenShareControlDecs, 17, "screenShareControl"], [_subtitlesDecs, 17, "subtitles"], [_subtitlesHistoryDecs, 17, "subtitlesHistory"], [_subtitlesHistorySettingsDecs, 17, "subtitlesHistorySettings"], [_mobx.observable, 1, "collapsed"], [_mobx.observable, 1, "aside"], [_mobx.observable, 1, "barHovering"], [_mobx.observable, 1, "barLocked"], [_mobx.observable, 1, "barHidden"], [_mobx.observable, 1, "asideWidth"], [_mobx.observable, 1, "chatRoomState"], [_mobx.observable, 1, "whiteboardActive"], [_mobx.observable, 1, "ownerUser"], [_mobx.computed, 3, "isWaterMarkEnabled"], [_mobx.computed, 3, "isMulti"], [_mobx.computed, 3, "layout"], [_mobx.computed, 3, "manualLayout"], [_mobx.computed, 3, "scalcValue"], [_mobx.computed, 3, "sourceList"], [_mobx.computed, 3, "layoutMainList"], [_mobx.computed, 3, "mainList"], [_mobx.computed, 3, "spotlightStreamId"], [_mobx.computed, 3, "foldList"], [_mobx.computed, 3, "galleryList"], [_mobx.computed, 3, "isMainWindowInScreenSharing"], [_mobx.computed, 3, "isCurrentUserInBoardSharing"], [_mobx.computed, 3, "asideLayout"], [_mobx.computed, 3, "carouselList"], [_mobx.computed, 3, "hasPinnedStream"], [_mobx.computed, 3, "isRobot"], [_mobx.computed, 3, "findSpotlightUser"], [_mobx.computed, 3, "isWhoISpeakingActive"], [_mobx.computed, 3, "microphoneEnabled"], [_mobx.computed, 3, "cameraEnabled"], [_mobx.computed, 3, "galleryMaxSize"], [_mobx.computed, 3, "asideContent"], [_mobx.computed, 3, "participantsRenderAt"], [_mobx.computed, 3, "chatRenderAt"], [_mobx.computed, 3, "subtitlesHistoryRenderAt"], [_decorator.bound, 2, "getWaterMarkContent"], [_decorator.bound, 2, "hasMutePermission"], [_decorator.bound, 2, "hasUnmutePermission"], [_decorator.bound, 2, "hasRequestStartAudioPermission"], [_decorator.bound, 2, "toggleMainStream"], [_addPinMessageDecs, 18, "addPinMessage"], [_cancelPinMessageDecs, 18, "cancelPinMessage"], [_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"], [_decorator.bound, 2, "closeParticipantFromAside"], [_decorator.bound, 2, "moveParticipantFromAsideToDialog"], [_decorator.bound, 2, "closeChatFromAside"], [_decorator.bound, 2, "closeAsideChat"], [_decorator.bound, 2, "moveChatFromAsideToDialog"], [_decorator.bound, 2, "openPrivateChat"], [_decorator.bound, 2, "openRenameDialog"], [_decorator.bound, 2, "closeSubtitlesHistoryFromAside"], [_decorator.bound, 2, "moveSubtitlesHistoryFromAsideToDialog"], [_toggleLayoutDecs, 18, "toggleLayout"], [_toggleCollapsedDecs, 18, "toggleCollapsed"], [_toggleAsideDecs, 18, "toggleAside"], [_asideWidthChangedDecs, 18, "asideWidthChanged"], [_toggleLayoutBarLockDecs, 18, "toggleLayoutBarLock"], [_toggleLayoutBarHiddenDecs, 18, "toggleLayoutBarHidden"], [_resetLockTimerDecs, 18, "resetLockTimer"], [_setHoveringHandlerDecs, 18, "setHoveringHandler"], [_setHoveringLeaveHandlerDecs, 18, "setHoveringLeaveHandler"], [_setScreenShareSpeakerViewSizeDecs, 2, "setScreenShareSpeakerViewSize"], [_handleLiveLayoutChangeDecs, 18, "handleLiveLayoutChange"], [_onUserInfoUpdatedDecs, 18, "onUserInfoUpdated"], [_decorator.bound, 2, "stopLocalPreview"], [_decorator.bound, 2, "startLocalPreview"], [_decorator.bound, 2, "setAllowChatWithPayload"], [_decorator.bound, 2, "setScaleValue"], [_decorator.bound, 2, "muteAudio"], [_decorator.bound, 2, "setControlbarEnabled"], [_decorator.bound, 2, "sendParticipantEvent"], [_decorator.bound, 2, "onEvent"], [_decorator.bound, 2, "_addListeners"], [_mobx.computed, 3, "_hasVideoStreamUser"], [_handleMainListLengthChangedDecs, 18, "_handleMainListLengthChanged"], [_handleMainListChangedDecs, 18, "_handleMainListChanged"], [_mobx.action, 2, "_switchToSpeaker"], [_mobx.action, 2, "_switchToGallery"], [_setBarHoveringDecs, 18, "_setBarHovering"], [_handleConnectionUpdatedDecs, 18, "_handleConnectionUpdated"], [_findVideoWindowByUserIdDecs, 18, "_findVideoWindowByUserId"], [_onRemoteUsersLeftDecs, 18, "_onRemoteUsersLeft"], [_decorator.bound, 2, "_handleLiveStreamingStateUpdated"], [_decorator.bound, 2, "_handleStreamAdded"], [_decorator.bound, 2, "_onStreamsAdded"], [_decorator.bound, 2, "_onStreamsUpdated"], [_decorator.bound, 2, "_onStreamsRemoved"], [_handleLayoutUpdatedDecs, 16, "_handleLayoutUpdated"]], []).e, 23);
1320
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_LayoutStoreBase, [[_participantDecs, 17, "participant"], [_chatDecs, 17, "chat"], [_chatActionDecs, 17, "chatAction"], [_stateBarDecs, 17, "stateBar"], [_actionBarDecs, 17, "actionBar"], [_layersDecs, 17, "layers"], [_whiteboardDecs, 17, "whiteboard"], [_annotationDecs, 17, "annotation"], [_screenShareControlDecs, 17, "screenShareControl"], [_subtitlesDecs, 17, "subtitles"], [_subtitlesHistoryDecs, 17, "subtitlesHistory"], [_subtitlesHistorySettingsDecs, 17, "subtitlesHistorySettings"], [_mobx.observable, 1, "collapsed"], [_mobx.observable, 1, "aside"], [_mobx.observable, 1, "barHovering"], [_mobx.observable, 1, "barLocked"], [_mobx.observable, 1, "barHidden"], [_mobx.observable, 1, "asideWidth"], [_mobx.computed, 3, "chatRoomState"], [_mobx.observable, 1, "whiteboardActive"], [_mobx.observable, 1, "ownerUser"], [_mobx.computed, 3, "isWaterMarkEnabled"], [_mobx.computed, 3, "isMulti"], [_mobx.computed, 3, "layout"], [_mobx.computed, 3, "manualLayout"], [_mobx.computed, 3, "scalcValue"], [_mobx.computed, 3, "sourceList"], [_mobx.computed, 3, "layoutMainList"], [_mobx.computed, 3, "mainList"], [_mobx.computed, 3, "spotlightStreamId"], [_mobx.computed, 3, "foldList"], [_mobx.computed, 3, "galleryList"], [_mobx.computed, 3, "isMainWindowInScreenSharing"], [_mobx.computed, 3, "isCurrentUserInBoardSharing"], [_mobx.computed, 3, "asideLayout"], [_mobx.computed, 3, "carouselList"], [_mobx.computed, 3, "hasPinnedStream"], [_mobx.computed, 3, "isRobot"], [_mobx.computed, 3, "findSpotlightUser"], [_mobx.computed, 3, "isWhoISpeakingActive"], [_mobx.computed, 3, "microphoneEnabled"], [_mobx.computed, 3, "cameraEnabled"], [_mobx.computed, 3, "galleryMaxSize"], [_mobx.computed, 3, "asideContent"], [_mobx.computed, 3, "participantsRenderAt"], [_mobx.computed, 3, "chatRenderAt"], [_mobx.computed, 3, "subtitlesHistoryRenderAt"], [_decorator.bound, 2, "getWaterMarkContent"], [_decorator.bound, 2, "hasMutePermission"], [_decorator.bound, 2, "hasUnmutePermission"], [_decorator.bound, 2, "hasRequestStartAudioPermission"], [_decorator.bound, 2, "toggleMainStream"], [_addPinMessageDecs, 18, "addPinMessage"], [_cancelPinMessageDecs, 18, "cancelPinMessage"], [_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"], [_decorator.bound, 2, "closeParticipantFromAside"], [_decorator.bound, 2, "moveParticipantFromAsideToDialog"], [_decorator.bound, 2, "closeChatFromAside"], [_decorator.bound, 2, "closeAsideChat"], [_decorator.bound, 2, "moveChatFromAsideToDialog"], [_decorator.bound, 2, "openPrivateChat"], [_decorator.bound, 2, "openRenameDialog"], [_decorator.bound, 2, "closeSubtitlesHistoryFromAside"], [_decorator.bound, 2, "moveSubtitlesHistoryFromAsideToDialog"], [_toggleLayoutDecs, 18, "toggleLayout"], [_toggleCollapsedDecs, 18, "toggleCollapsed"], [_toggleAsideDecs, 18, "toggleAside"], [_asideWidthChangedDecs, 18, "asideWidthChanged"], [_toggleLayoutBarLockDecs, 18, "toggleLayoutBarLock"], [_toggleLayoutBarHiddenDecs, 18, "toggleLayoutBarHidden"], [_resetLockTimerDecs, 18, "resetLockTimer"], [_setHoveringHandlerDecs, 18, "setHoveringHandler"], [_setHoveringLeaveHandlerDecs, 18, "setHoveringLeaveHandler"], [_setScreenShareSpeakerViewSizeDecs, 2, "setScreenShareSpeakerViewSize"], [_handleLiveLayoutChangeDecs, 18, "handleLiveLayoutChange"], [_onUserInfoUpdatedDecs, 18, "onUserInfoUpdated"], [_decorator.bound, 2, "stopLocalPreview"], [_decorator.bound, 2, "startLocalPreview"], [_decorator.bound, 2, "setAllowChatWithPayload"], [_decorator.bound, 2, "setScaleValue"], [_decorator.bound, 2, "muteAudio"], [_decorator.bound, 2, "setControlbarEnabled"], [_decorator.bound, 2, "sendParticipantEvent"], [_decorator.bound, 2, "onEvent"], [_decorator.bound, 2, "_addListeners"], [_mobx.computed, 3, "_hasVideoStreamUser"], [_handleMainListLengthChangedDecs, 18, "_handleMainListLengthChanged"], [_handleMainListChangedDecs, 18, "_handleMainListChanged"], [_mobx.action, 2, "_switchToSpeaker"], [_mobx.action, 2, "_switchToGallery"], [_setBarHoveringDecs, 18, "_setBarHovering"], [_handleConnectionUpdatedDecs, 18, "_handleConnectionUpdated"], [_findVideoWindowByUserIdDecs, 18, "_findVideoWindowByUserId"], [_onRemoteUsersLeftDecs, 18, "_onRemoteUsersLeft"], [_decorator.bound, 2, "_handleLiveStreamingStateUpdated"], [_decorator.bound, 2, "_handleStreamAdded"], [_decorator.bound, 2, "_onStreamsAdded"], [_decorator.bound, 2, "_onStreamsUpdated"], [_decorator.bound, 2, "_onStreamsRemoved"], [_handleLayoutUpdatedDecs, 16, "_handleLayoutUpdated"]], []).e, 22);
1323
1321
  _init_participant = _applyDecs$e[0];
1324
1322
  _init_chat = _applyDecs$e[1];
1325
1323
  _init_chatAction = _applyDecs$e[2];
@@ -1338,9 +1336,8 @@ _init_barHovering = _applyDecs$e[14];
1338
1336
  _init_barLocked = _applyDecs$e[15];
1339
1337
  _init_barHidden = _applyDecs$e[16];
1340
1338
  _init_asideWidth = _applyDecs$e[17];
1341
- _init_chatRoomState = _applyDecs$e[18];
1342
- _init_whiteboardActive = _applyDecs$e[19];
1343
- _init_ownerUser = _applyDecs$e[20];
1344
- _init__handleLayoutUpdated = _applyDecs$e[21];
1345
- _initProto = _applyDecs$e[22];
1339
+ _init_whiteboardActive = _applyDecs$e[18];
1340
+ _init_ownerUser = _applyDecs$e[19];
1341
+ _init__handleLayoutUpdated = _applyDecs$e[20];
1342
+ _initProto = _applyDecs$e[21];
1346
1343
  var StoreContext = exports.StoreContext = /*#__PURE__*/(0, _react.createContext)(null);
@@ -14,6 +14,72 @@
14
14
  flex-direction: column;
15
15
  align-items: center;
16
16
  justify-content: center;
17
- gap: 15px;
17
+ gap: 20px;
18
18
  overflow: hidden;
19
19
  }
20
+
21
+ .participants-container-rename-input-wrapper {
22
+ width: 100%;
23
+ position: relative;
24
+ }
25
+
26
+ .participants-container-rename-input-wrapper .fcr-textarea {
27
+ width: 272px;
28
+ height: 84px;
29
+ border-radius: var(--fcr_cornerradius_l);
30
+ border-width: 1px;
31
+ padding-top: 12px;
32
+ padding-right: 12px;
33
+ padding-bottom: 26px; /* 8px (Figma padding-bottom) + 18px (字符计数区域) = 26px */
34
+ padding-left: 12px;
35
+ box-sizing: border-box;
36
+ }
37
+
38
+ .participants-container-rename-input-wrapper .fcr-textarea textarea {
39
+ width: 248px; /* 272 - 12*2 = 248px */
40
+ height: 40px;
41
+ font-family:
42
+ 'Inter',
43
+ ui-sans-serif,
44
+ system-ui,
45
+ -apple-system,
46
+ BlinkMacSystemFont,
47
+ 'Segoe UI',
48
+ Roboto,
49
+ 'Helvetica Neue',
50
+ Arial,
51
+ sans-serif;
52
+ font-weight: 400;
53
+ font-size: 14px;
54
+ line-height: 20px;
55
+ letter-spacing: 0;
56
+ color: var(--fcr_ui_scene_icontext1);
57
+ padding: 0; /* 容器的 padding 已经处理了间距 */
58
+ box-sizing: border-box;
59
+ vertical-align: bottom;
60
+ }
61
+
62
+ .participants-container-rename-input-wrapper .fcr-textarea .fcr-textarea-wc {
63
+ height: 16px;
64
+ font-family:
65
+ 'Inter',
66
+ ui-sans-serif,
67
+ system-ui,
68
+ -apple-system,
69
+ BlinkMacSystemFont,
70
+ 'Segoe UI',
71
+ Roboto,
72
+ 'Helvetica Neue',
73
+ Arial,
74
+ sans-serif;
75
+ font-weight: 400;
76
+ font-size: 12px;
77
+ line-height: 16px;
78
+ letter-spacing: 0;
79
+ text-align: right;
80
+ color: var(--fcr_ui_scene_icontext2);
81
+ position: absolute;
82
+ bottom: 8px; /* 根据 Figma padding-bottom: 8px 调整 */
83
+ left: 12px; /* 与容器的 padding-left 对齐 */
84
+ right: 12px; /* 与容器的 padding-right 对齐,宽度自动计算为 248px (272 - 12*2) */
85
+ }
@@ -12,6 +12,7 @@ require("core-js/modules/es.string.replace.js");
12
12
  require("core-js/modules/es.string.trim.js");
13
13
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
14
14
  var _input = require("agora-ui-foundation/lib/components/input");
15
+ var _textarea = require("agora-ui-foundation/lib/components/textarea");
15
16
  var _i18n = require("agora-ui-foundation/lib/i18n");
16
17
  var _react = require("react");
17
18
  var _store = require("../../store.base");
@@ -32,12 +33,14 @@ var FcrConfirmRenameForm = function FcrConfirmRenameForm(props) {
32
33
  name = _useState2[0],
33
34
  setName = _useState2[1];
34
35
  var t = (0, _i18n.useI18n)();
36
+ var MAX_BYTE_LENGTH = 48;
37
+ var MAX_LENGTH = 24;
35
38
  (0, _react.useEffect)(function () {
36
39
  setName(value);
37
40
  }, [value]);
38
41
  function handleNameChange(name) {
39
42
  var length = name.replace(/[^\x00-\xff]/g, '**').length;
40
- if (length > 36) {
43
+ if (length > MAX_BYTE_LENGTH) {
41
44
  return;
42
45
  }
43
46
  type === 'number' ? (/^\d+$/.test(name) || name === '') && setName(name.trim()) : setName(name.trim());
@@ -45,17 +48,17 @@ var FcrConfirmRenameForm = function FcrConfirmRenameForm(props) {
45
48
  }
46
49
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
47
50
  className: "participants-container-rename",
48
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_input.FcrInput, {
49
- autoFocus: true,
50
- style: {
51
- width: '100%'
52
- },
53
- value: name,
54
- onChange: handleNameChange,
55
- size: "large",
56
- allowClear: true,
57
- shape: "rounded",
58
- placeholder: placeholder || t('fmt_additional_popup_label_enter_nickname')
51
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
52
+ className: "participants-container-rename-input-wrapper",
53
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_textarea.FcrTextArea, {
54
+ value: name,
55
+ onChange: handleNameChange,
56
+ placeholder: placeholder || t('fmt_additional_popup_label_enter_nickname'),
57
+ maxCount: MAX_LENGTH,
58
+ showCount: true,
59
+ autoSize: false,
60
+ resizable: false
61
+ })
59
62
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
60
63
  className: 'participants-container-rename-footer fcr-confirm-content-footer fcr-confirm-content-footer__center',
61
64
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_button.FcrButton, {
@@ -99,7 +102,7 @@ var FcrConfirmInput = exports.FcrConfirmInput = function FcrConfirmInput(props)
99
102
  size: "large",
100
103
  allowClear: true,
101
104
  shape: "rounded",
102
- maxLength: 18,
105
+ maxLength: 24,
103
106
  placeholder: placeholder || t('fmt_additional_popup_label_enter_nickname')
104
107
  })
105
108
  });
@@ -85,3 +85,7 @@
85
85
  .operate-waiting-room-dialog-btns .fcr-button-danger {
86
86
  width: 48%;
87
87
  }
88
+
89
+ .attendee {
90
+ min-height: 62px;
91
+ }
@@ -187,6 +187,7 @@ export declare abstract class ParticipantStoreBase {
187
187
  * @returns 设备信息对象
188
188
  */
189
189
  private _getPstnUserDeviceInfo;
190
+ private _getVolteUserDeviceInfo;
190
191
  /**
191
192
  * 获取SIP/H323会议系统用户的设备信息
192
193
  * @param userStreams 用户流数据
@@ -631,7 +631,7 @@ var ParticipantStoreBase = exports.ParticipantStoreBase = /*#__PURE__*/function
631
631
  }, {
632
632
  key: "hasInvite",
633
633
  get: function get() {
634
- return this._abilityProvider.isRoomDetailSupported() && this._abilityProvider.isCallOutAbilitySupported();
634
+ return this._abilityProvider.isRoomDetailSupported();
635
635
  }
636
636
  }, {
637
637
  key: "checkedStateMap",
@@ -1139,9 +1139,10 @@ var ParticipantStoreBase = exports.ParticipantStoreBase = /*#__PURE__*/function
1139
1139
  var _streams$find;
1140
1140
  var user = this.mainRoomUserMap.get(userId);
1141
1141
  var isPSTN = (user === null || user === void 0 ? void 0 : user.userInfo.connectorType) === _fcrCore.FcrRoomConnectorType.PSTN;
1142
+ var isVOLTE = (user === null || user === void 0 ? void 0 : user.userInfo.connectorType) === _fcrCore.FcrRoomConnectorType.VOLTE;
1142
1143
  var streams = user === null || user === void 0 ? void 0 : user.streams;
1143
1144
  var streamId = streams === null || streams === void 0 || (_streams$find = streams.find(function (stream) {
1144
- return stream.videoSourceType === _fcrCore.FcrVideoSourceType.CAMERA || isPSTN && stream.videoSourceType === _fcrCore.FcrVideoSourceType.NONE;
1145
+ return stream.videoSourceType === _fcrCore.FcrVideoSourceType.CAMERA || isPSTN && stream.videoSourceType === _fcrCore.FcrVideoSourceType.NONE || isVOLTE && stream.videoSourceType === _fcrCore.FcrVideoSourceType.NONE;
1145
1146
  })) === null || _streams$find === void 0 ? void 0 : _streams$find.streamId;
1146
1147
  return streamId;
1147
1148
  }
@@ -1213,6 +1214,8 @@ var ParticipantStoreBase = exports.ParticipantStoreBase = /*#__PURE__*/function
1213
1214
  return this._getNormalUserDeviceInfo(userStreams, isSelf);
1214
1215
  case _fcrCore.FcrRoomConnectorType.PSTN:
1215
1216
  return this._getPstnUserDeviceInfo(userStreams);
1217
+ case _fcrCore.FcrRoomConnectorType.VOLTE:
1218
+ return this._getVolteUserDeviceInfo(userStreams);
1216
1219
  case _fcrCore.FcrRoomConnectorType.SIP:
1217
1220
  case _fcrCore.FcrRoomConnectorType.H323:
1218
1221
  return this._getSipOrH323UserDeviceInfo(userStreams);
@@ -1232,14 +1235,16 @@ var ParticipantStoreBase = exports.ParticipantStoreBase = /*#__PURE__*/function
1232
1235
  value: function _getNormalUserDeviceInfo(userStreams, isSelf) {
1233
1236
  var defaultStream = this._findStreamByVideoSourceType(userStreams, _fcrCore.FcrVideoSourceType.CAMERA);
1234
1237
  var pstnStream = this._findStreamByConnectorType(userStreams, _fcrCore.FcrRoomConnectorType.PSTN);
1238
+ var volteStream = this._findStreamByConnectorType(userStreams, _fcrCore.FcrRoomConnectorType.VOLTE);
1235
1239
  var hasVideo = isSelf ? this._deviceStore.cameraEnabled : this._hasVideoPublishedAndStarted(defaultStream);
1236
- if (pstnStream) {
1237
- // 有PSTN流,使用电话麦克风
1240
+ var phoneStream = volteStream || pstnStream;
1241
+ if (phoneStream) {
1242
+ // 有PSTN或VOLTE流,使用电话麦克风
1238
1243
  return {
1239
1244
  audioDeviceType: _struct.USER_FORMAT_CONFIG.DEVICE_TYPES.AUDIO.PHONE_MIC,
1240
1245
  videoDeviceType: _struct.USER_FORMAT_CONFIG.DEVICE_TYPES.VIDEO.COMPUTER_CAM,
1241
1246
  userType: _struct.USER_FORMAT_CONFIG.USER_TYPES.NORMAL,
1242
- hasAudio: pstnStream.audioSourceState === _fcrCore.FcrMediaSourceState.OPEN,
1247
+ hasAudio: phoneStream.audioSourceState === _fcrCore.FcrMediaSourceState.OPEN,
1243
1248
  hasVideo: hasVideo
1244
1249
  };
1245
1250
  } else {
@@ -1271,6 +1276,18 @@ var ParticipantStoreBase = exports.ParticipantStoreBase = /*#__PURE__*/function
1271
1276
  hasVideo: false
1272
1277
  };
1273
1278
  }
1279
+ }, {
1280
+ key: "_getVolteUserDeviceInfo",
1281
+ value: function _getVolteUserDeviceInfo(userStreams) {
1282
+ var volteStream = this._findStreamByConnectorType(userStreams, _fcrCore.FcrRoomConnectorType.VOLTE);
1283
+ return {
1284
+ audioDeviceType: _struct.USER_FORMAT_CONFIG.DEVICE_TYPES.AUDIO.PHONE_MIC,
1285
+ videoDeviceType: _struct.USER_FORMAT_CONFIG.DEVICE_TYPES.VIDEO.COMPUTER_CAM,
1286
+ userType: _struct.USER_FORMAT_CONFIG.USER_TYPES.MEETING_SYSTEM,
1287
+ hasAudio: this._hasAudioPublishedAndStarted(volteStream),
1288
+ hasVideo: this._hasVideoPublishedAndStarted(volteStream)
1289
+ };
1290
+ }
1274
1291
 
1275
1292
  /**
1276
1293
  * 获取SIP/H323会议系统用户的设备信息
@@ -1734,8 +1751,18 @@ var ParticipantStoreBase = exports.ParticipantStoreBase = /*#__PURE__*/function
1734
1751
  }, {
1735
1752
  key: "_unmuteUserVideo",
1736
1753
  value: function _unmuteUserVideo(userId) {
1737
- var isSelf = userId === this.localUser.userId;
1738
- if (isSelf) {
1754
+ var _this$_getUserTargetA3 = this._getUserTargetAudioStreams(userId),
1755
+ hardwareDeviceStream = _this$_getUserTargetA3.hardwareDeviceStream,
1756
+ isLocalUser = _this$_getUserTargetA3.isLocalUser;
1757
+
1758
+ // 如果是硬件设备流,直接更新流的发布权限来取消静音
1759
+ if (hardwareDeviceStream) {
1760
+ this._updateStreamPrivilege(hardwareDeviceStream.streamId, _type.FcrStreamPrivilegeOperation.NOOPERATION, _type.FcrStreamPrivilegeOperation.HAS_PRIVILEGE);
1761
+ return;
1762
+ }
1763
+
1764
+ // 如果是本地用户,直接启用本地麦克风(上面硬件已经处理了,所以从这里往后都不是硬件设备了)
1765
+ if (isLocalUser) {
1739
1766
  this._deviceStreamStore.enableCameraWithPreCheck(true);
1740
1767
  return;
1741
1768
  }
@@ -20,8 +20,10 @@ export default class ConnectionGatewayStoreMainScene {
20
20
  get connectType(): import("../../../type").FcrUIConnectType;
21
21
  get hasNeedMergedStream(): boolean;
22
22
  get hasOwnPstnStream(): boolean;
23
+ get hasOwnVolteStream(): boolean;
23
24
  get outgoingCall(): boolean;
24
25
  get hasPstnStream(): boolean;
26
+ get hasVolteStream(): boolean;
25
27
  get connectInfo(): import("fcr-core/lib/room-control/room-connector-control/type").FcrRoomConnectorPhoneInfo;
26
28
  constructor({ objectManager }: ConnectionGatewayStoreArgs);
27
29
  openAudioSettings(): void;