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
@@ -4,6 +4,7 @@ import "core-js/modules/es.regexp.test.js";
4
4
  import "core-js/modules/es.string.replace.js";
5
5
  import "core-js/modules/es.string.trim.js";
6
6
  import { FcrInput } from 'agora-ui-foundation/lib/components/input';
7
+ import { FcrTextArea } from 'agora-ui-foundation/lib/components/textarea';
7
8
  import { useI18n } from 'agora-ui-foundation/lib/i18n';
8
9
  import { useContext, useEffect, useState } from 'react';
9
10
  import { StoreContext } from '../../store.base';
@@ -24,12 +25,14 @@ var FcrConfirmRenameForm = function FcrConfirmRenameForm(props) {
24
25
  name = _useState2[0],
25
26
  setName = _useState2[1];
26
27
  var t = useI18n();
28
+ var MAX_BYTE_LENGTH = 48;
29
+ var MAX_LENGTH = 24;
27
30
  useEffect(function () {
28
31
  setName(value);
29
32
  }, [value]);
30
33
  function handleNameChange(name) {
31
34
  var length = name.replace(/[^\x00-\xff]/g, '**').length;
32
- if (length > 36) {
35
+ if (length > MAX_BYTE_LENGTH) {
33
36
  return;
34
37
  }
35
38
  type === 'number' ? (/^\d+$/.test(name) || name === '') && setName(name.trim()) : setName(name.trim());
@@ -37,17 +40,17 @@ var FcrConfirmRenameForm = function FcrConfirmRenameForm(props) {
37
40
  }
38
41
  return /*#__PURE__*/_jsxs("div", {
39
42
  className: "participants-container-rename",
40
- children: [/*#__PURE__*/_jsx(FcrInput, {
41
- autoFocus: true,
42
- style: {
43
- width: '100%'
44
- },
45
- value: name,
46
- onChange: handleNameChange,
47
- size: "large",
48
- allowClear: true,
49
- shape: "rounded",
50
- placeholder: placeholder || t('fmt_additional_popup_label_enter_nickname')
43
+ children: [/*#__PURE__*/_jsx("div", {
44
+ className: "participants-container-rename-input-wrapper",
45
+ children: /*#__PURE__*/_jsx(FcrTextArea, {
46
+ value: name,
47
+ onChange: handleNameChange,
48
+ placeholder: placeholder || t('fmt_additional_popup_label_enter_nickname'),
49
+ maxCount: MAX_LENGTH,
50
+ showCount: true,
51
+ autoSize: false,
52
+ resizable: false
53
+ })
51
54
  }), /*#__PURE__*/_jsxs("div", {
52
55
  className: 'participants-container-rename-footer fcr-confirm-content-footer fcr-confirm-content-footer__center',
53
56
  children: [/*#__PURE__*/_jsx(FcrButton, {
@@ -91,7 +94,7 @@ export var FcrConfirmInput = function FcrConfirmInput(props) {
91
94
  size: "large",
92
95
  allowClear: true,
93
96
  shape: "rounded",
94
- maxLength: 18,
97
+ maxLength: 24,
95
98
  placeholder: placeholder || t('fmt_additional_popup_label_enter_nickname')
96
99
  })
97
100
  });
@@ -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
+ }
@@ -624,7 +624,7 @@ export var ParticipantStoreBase = /*#__PURE__*/function () {
624
624
  }, {
625
625
  key: "hasInvite",
626
626
  get: function get() {
627
- return this._abilityProvider.isRoomDetailSupported() && this._abilityProvider.isCallOutAbilitySupported();
627
+ return this._abilityProvider.isRoomDetailSupported();
628
628
  }
629
629
  }, {
630
630
  key: "checkedStateMap",
@@ -1132,9 +1132,10 @@ export var ParticipantStoreBase = /*#__PURE__*/function () {
1132
1132
  var _streams$find;
1133
1133
  var user = this.mainRoomUserMap.get(userId);
1134
1134
  var isPSTN = (user === null || user === void 0 ? void 0 : user.userInfo.connectorType) === FcrRoomConnectorType.PSTN;
1135
+ var isVOLTE = (user === null || user === void 0 ? void 0 : user.userInfo.connectorType) === FcrRoomConnectorType.VOLTE;
1135
1136
  var streams = user === null || user === void 0 ? void 0 : user.streams;
1136
1137
  var streamId = streams === null || streams === void 0 || (_streams$find = streams.find(function (stream) {
1137
- return stream.videoSourceType === FcrVideoSourceType.CAMERA || isPSTN && stream.videoSourceType === FcrVideoSourceType.NONE;
1138
+ return stream.videoSourceType === FcrVideoSourceType.CAMERA || isPSTN && stream.videoSourceType === FcrVideoSourceType.NONE || isVOLTE && stream.videoSourceType === FcrVideoSourceType.NONE;
1138
1139
  })) === null || _streams$find === void 0 ? void 0 : _streams$find.streamId;
1139
1140
  return streamId;
1140
1141
  }
@@ -1206,6 +1207,8 @@ export var ParticipantStoreBase = /*#__PURE__*/function () {
1206
1207
  return this._getNormalUserDeviceInfo(userStreams, isSelf);
1207
1208
  case FcrRoomConnectorType.PSTN:
1208
1209
  return this._getPstnUserDeviceInfo(userStreams);
1210
+ case FcrRoomConnectorType.VOLTE:
1211
+ return this._getVolteUserDeviceInfo(userStreams);
1209
1212
  case FcrRoomConnectorType.SIP:
1210
1213
  case FcrRoomConnectorType.H323:
1211
1214
  return this._getSipOrH323UserDeviceInfo(userStreams);
@@ -1225,14 +1228,16 @@ export var ParticipantStoreBase = /*#__PURE__*/function () {
1225
1228
  value: function _getNormalUserDeviceInfo(userStreams, isSelf) {
1226
1229
  var defaultStream = this._findStreamByVideoSourceType(userStreams, FcrVideoSourceType.CAMERA);
1227
1230
  var pstnStream = this._findStreamByConnectorType(userStreams, FcrRoomConnectorType.PSTN);
1231
+ var volteStream = this._findStreamByConnectorType(userStreams, FcrRoomConnectorType.VOLTE);
1228
1232
  var hasVideo = isSelf ? this._deviceStore.cameraEnabled : this._hasVideoPublishedAndStarted(defaultStream);
1229
- if (pstnStream) {
1230
- // 有PSTN流,使用电话麦克风
1233
+ var phoneStream = volteStream || pstnStream;
1234
+ if (phoneStream) {
1235
+ // 有PSTN或VOLTE流,使用电话麦克风
1231
1236
  return {
1232
1237
  audioDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.AUDIO.PHONE_MIC,
1233
1238
  videoDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.VIDEO.COMPUTER_CAM,
1234
1239
  userType: USER_FORMAT_CONFIG.USER_TYPES.NORMAL,
1235
- hasAudio: pstnStream.audioSourceState === FcrMediaSourceState.OPEN,
1240
+ hasAudio: phoneStream.audioSourceState === FcrMediaSourceState.OPEN,
1236
1241
  hasVideo: hasVideo
1237
1242
  };
1238
1243
  } else {
@@ -1264,6 +1269,18 @@ export var ParticipantStoreBase = /*#__PURE__*/function () {
1264
1269
  hasVideo: false
1265
1270
  };
1266
1271
  }
1272
+ }, {
1273
+ key: "_getVolteUserDeviceInfo",
1274
+ value: function _getVolteUserDeviceInfo(userStreams) {
1275
+ var volteStream = this._findStreamByConnectorType(userStreams, FcrRoomConnectorType.VOLTE);
1276
+ return {
1277
+ audioDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.AUDIO.PHONE_MIC,
1278
+ videoDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.VIDEO.COMPUTER_CAM,
1279
+ userType: USER_FORMAT_CONFIG.USER_TYPES.MEETING_SYSTEM,
1280
+ hasAudio: this._hasAudioPublishedAndStarted(volteStream),
1281
+ hasVideo: this._hasVideoPublishedAndStarted(volteStream)
1282
+ };
1283
+ }
1267
1284
 
1268
1285
  /**
1269
1286
  * 获取SIP/H323会议系统用户的设备信息
@@ -1727,8 +1744,18 @@ export var ParticipantStoreBase = /*#__PURE__*/function () {
1727
1744
  }, {
1728
1745
  key: "_unmuteUserVideo",
1729
1746
  value: function _unmuteUserVideo(userId) {
1730
- var isSelf = userId === this.localUser.userId;
1731
- if (isSelf) {
1747
+ var _this$_getUserTargetA3 = this._getUserTargetAudioStreams(userId),
1748
+ hardwareDeviceStream = _this$_getUserTargetA3.hardwareDeviceStream,
1749
+ isLocalUser = _this$_getUserTargetA3.isLocalUser;
1750
+
1751
+ // 如果是硬件设备流,直接更新流的发布权限来取消静音
1752
+ if (hardwareDeviceStream) {
1753
+ this._updateStreamPrivilege(hardwareDeviceStream.streamId, FcrStreamPrivilegeOperation.NOOPERATION, FcrStreamPrivilegeOperation.HAS_PRIVILEGE);
1754
+ return;
1755
+ }
1756
+
1757
+ // 如果是本地用户,直接启用本地麦克风(上面硬件已经处理了,所以从这里往后都不是硬件设备了)
1758
+ if (isLocalUser) {
1732
1759
  this._deviceStreamStore.enableCameraWithPreCheck(true);
1733
1760
  return;
1734
1761
  }
@@ -161,6 +161,11 @@ var ConnectionGatewayStoreMainScene = /*#__PURE__*/function () {
161
161
  get: function get() {
162
162
  return this._phoneAudioConnectorProvider.hasOwnPstnStream;
163
163
  }
164
+ }, {
165
+ key: "hasOwnVolteStream",
166
+ get: function get() {
167
+ return this._phoneAudioConnectorProvider.hasOwnVolteStream;
168
+ }
164
169
  }, {
165
170
  key: "outgoingCall",
166
171
  get: function get() {
@@ -171,6 +176,11 @@ var ConnectionGatewayStoreMainScene = /*#__PURE__*/function () {
171
176
  get: function get() {
172
177
  return this._phoneAudioConnectorProvider.hasPstnStream;
173
178
  }
179
+ }, {
180
+ key: "hasVolteStream",
181
+ get: function get() {
182
+ return this._phoneAudioConnectorProvider.hasVolteStream;
183
+ }
174
184
  }, {
175
185
  key: "connectInfo",
176
186
  get: function get() {
@@ -208,7 +218,7 @@ var ConnectionGatewayStoreMainScene = /*#__PURE__*/function () {
208
218
  return false;
209
219
  }
210
220
  this._needShowConfirmDialog = false;
211
- if (this.hasOwnPstnStream) {
221
+ if (this.hasOwnPstnStream || this.hasOwnVolteStream) {
212
222
  return false;
213
223
  }
214
224
  var dialogId = this._dialogProvider.openConfirmDialog({
@@ -303,7 +313,7 @@ var ConnectionGatewayStoreMainScene = /*#__PURE__*/function () {
303
313
  }]);
304
314
  }();
305
315
  _ConnectionGatewayStoreMainScene = ConnectionGatewayStoreMainScene;
306
- var _applyDecs$e = _slicedToArray(_applyDecs(_ConnectionGatewayStoreMainScene, [[observable, 1, "phoneCallState"], [observable, 1, "phoneCallReason"], [observable, 1, "connectSession"], [observable, 1, "calling"], [computed, 3, "connectType"], [computed, 3, "hasNeedMergedStream"], [computed, 3, "hasOwnPstnStream"], [computed, 3, "outgoingCall"], [computed, 3, "hasPstnStream"], [computed, 3, "connectInfo"], [bound, 2, "openAudioSettings"], [bound, 2, "_handleInterceptorCloseDialog"], [bound, 2, "joinAudioByComputer"], [bound, 2, "stopAudioByComputer"], [bound, 2, "openInviteDialog"]], []).e, 5);
316
+ var _applyDecs$e = _slicedToArray(_applyDecs(_ConnectionGatewayStoreMainScene, [[observable, 1, "phoneCallState"], [observable, 1, "phoneCallReason"], [observable, 1, "connectSession"], [observable, 1, "calling"], [computed, 3, "connectType"], [computed, 3, "hasNeedMergedStream"], [computed, 3, "hasOwnPstnStream"], [computed, 3, "hasOwnVolteStream"], [computed, 3, "outgoingCall"], [computed, 3, "hasPstnStream"], [computed, 3, "hasVolteStream"], [computed, 3, "connectInfo"], [bound, 2, "openAudioSettings"], [bound, 2, "_handleInterceptorCloseDialog"], [bound, 2, "joinAudioByComputer"], [bound, 2, "stopAudioByComputer"], [bound, 2, "openInviteDialog"]], []).e, 5);
307
317
  _init_phoneCallState = _applyDecs$e[0];
308
318
  _init_phoneCallReason = _applyDecs$e[1];
309
319
  _init_connectSession = _applyDecs$e[2];
@@ -18,6 +18,8 @@ var View = observer(function () {
18
18
  hasOwnPstnStream = _useContext.hasOwnPstnStream,
19
19
  outgoingCall = _useContext.outgoingCall,
20
20
  hasPstnStream = _useContext.hasPstnStream,
21
+ hasVolteStream = _useContext.hasVolteStream,
22
+ hasOwnVolteStream = _useContext.hasOwnVolteStream,
21
23
  connectInfo = _useContext.connectInfo;
22
24
  var transI18n = useI18n();
23
25
  return /*#__PURE__*/_jsxs("div", {
@@ -28,7 +30,7 @@ var View = observer(function () {
28
30
  className: "var(--fcrcornerradiusround) fcr_ui_scene_ramp_brand6",
29
31
  onClick: joinAudioByComputer,
30
32
  children: transI18n('fmt_pstn_label_accessmethodPC')
31
- }), hasPstnStream && !outgoingCall && !hasOwnPstnStream && hasNeedMergedStream && /*#__PURE__*/_jsx("div", {
33
+ }), (hasPstnStream || hasVolteStream) && !outgoingCall && !hasOwnPstnStream && !hasOwnVolteStream && hasNeedMergedStream && /*#__PURE__*/_jsx("div", {
32
34
  className: "connector-phone-alert",
33
35
  children: transI18n('fmt_pstn_label_alreadyin', {
34
36
  reason1: connectInfo === null || connectInfo === void 0 ? void 0 : connectInfo.phoneUserId
@@ -40,7 +42,7 @@ var View = observer(function () {
40
42
  className: "var(--fcrcornerradiusround)",
41
43
  onClick: stopAudioByComputer,
42
44
  children: transI18n('fmt_pstn_button_PCaudiostop')
43
- }), connectType === FcrUIConnectType.PHONE && hasOwnPstnStream && /*#__PURE__*/_jsx(FcrToolTip, {
45
+ }), connectType === FcrUIConnectType.PHONE && (hasOwnPstnStream || hasOwnVolteStream) && /*#__PURE__*/_jsx(FcrToolTip, {
44
46
  content: transI18n('fmt_pstn_tips_alreadyphone'),
45
47
  children: /*#__PURE__*/_jsx(FcrButton, {
46
48
  size: "XS",
@@ -75,6 +75,7 @@ import { FcrUIDialogKey, FcrUIHighlightElement } from '../../utilities/constant'
75
75
  import { ConnectorRegion } from './enums';
76
76
  import { FcrUIObjectKeys } from '../../object-manager';
77
77
  import { DeviceSettingTab } from '../setting/type';
78
+ import { FcrPhoneConnectorSessionType } from 'fcr-core/lib/room-control/room-connector-control/type';
78
79
  var _A = /*#__PURE__*/new WeakMap();
79
80
  var _B = /*#__PURE__*/new WeakMap();
80
81
  var _C = /*#__PURE__*/new WeakMap();
@@ -182,6 +183,16 @@ var ConnectionGatewayStore = /*#__PURE__*/function () {
182
183
  get: function get() {
183
184
  return this._phoneAudioConnectorProvider.hasOwnPstnStream;
184
185
  }
186
+ }, {
187
+ key: "hasVolteStream",
188
+ get: function get() {
189
+ return this._phoneAudioConnectorProvider.hasVolteStream;
190
+ }
191
+ }, {
192
+ key: "hasOwnVolteStream",
193
+ get: function get() {
194
+ return this._phoneAudioConnectorProvider.hasOwnVolteStream;
195
+ }
185
196
  }, {
186
197
  key: "hasNeedMergedStream",
187
198
  get: function get() {
@@ -200,7 +211,7 @@ var ConnectionGatewayStore = /*#__PURE__*/function () {
200
211
  }, {
201
212
  key: "startCall",
202
213
  value: function startCall() {
203
- this._phoneAudioConnectorProvider.startCall(this.currentCallInfo.phone);
214
+ this._phoneAudioConnectorProvider.startCall(this.currentCallInfo.phone, FcrPhoneConnectorSessionType.PSTN);
204
215
  }
205
216
  }, {
206
217
  key: "stopCall",
@@ -39,7 +39,9 @@ var View = observer(function () {
39
39
  outgoingCall = _useContext.outgoingCall,
40
40
  isHangup = _useContext.isHangup,
41
41
  hasPstnStream = _useContext.hasPstnStream,
42
+ hasVolteStream = _useContext.hasVolteStream,
42
43
  hasOwnPstnStream = _useContext.hasOwnPstnStream,
44
+ hasOwnVolteStream = _useContext.hasOwnVolteStream,
43
45
  hasNeedMergedStream = _useContext.hasNeedMergedStream;
44
46
  var transI18n = useI18n();
45
47
  var _useState = useState(''),
@@ -88,7 +90,7 @@ var View = observer(function () {
88
90
  }, [phoneCallState, phoneCallReason]);
89
91
  return /*#__PURE__*/_jsxs("div", {
90
92
  className: "connector-phone",
91
- children: [(isStaticState && !isAcceptingState && !hasOwnPstnStream || hasPstnStream && !hasOwnPstnStream) && /*#__PURE__*/_jsxs("div", {
93
+ children: [(isStaticState && !isAcceptingState && !hasOwnPstnStream && !hasOwnVolteStream || hasPstnStream && !hasOwnPstnStream || hasVolteStream && !hasOwnVolteStream) && /*#__PURE__*/_jsxs("div", {
92
94
  className: "connector-phone_inner",
93
95
  children: [/*#__PURE__*/_jsxs("div", {
94
96
  className: "connector-phone_selector",
@@ -127,7 +129,7 @@ var View = observer(function () {
127
129
  checked: rememberMe,
128
130
  onChange: setRememberMe
129
131
  })]
130
- }), (isPhoneAudioConnected || isAcceptingState) && hasOwnPstnStream && /*#__PURE__*/_jsx(ConnectionUsing, {}), isStaticState && !hasOwnPstnStream && /*#__PURE__*/_jsx("div", {
132
+ }), (isPhoneAudioConnected || isAcceptingState) && (hasOwnPstnStream || hasOwnVolteStream) && /*#__PURE__*/_jsx(ConnectionUsing, {}), isStaticState && !hasOwnPstnStream && !hasOwnVolteStream && /*#__PURE__*/_jsx("div", {
131
133
  className: "connector-phone_inner",
132
134
  children: /*#__PURE__*/_jsx(FcrButton, {
133
135
  size: "XS",
@@ -154,14 +156,14 @@ var View = observer(function () {
154
156
  onClick: stopCall,
155
157
  children: transI18n('fmt_pstn_button_hangupphone')
156
158
  })
157
- }), (outgoingCall || isStaticState) && (!hasOwnPstnStream || isAcceptingState) && /*#__PURE__*/_jsx(FcrDivider, {
159
+ }), (outgoingCall || isStaticState) && (!hasOwnPstnStream && !hasOwnVolteStream || isAcceptingState) && /*#__PURE__*/_jsx(FcrDivider, {
158
160
  style: {
159
161
  margin: '10px 0 12px'
160
162
  },
161
163
  type: "horizontal",
162
164
  size: "0.4px",
163
165
  children: transI18n('fmt_pstn_label_dialinphone')
164
- }), hasPstnStream && !outgoingCall && !hasOwnPstnStream && hasNeedMergedStream && /*#__PURE__*/_jsx("div", {
166
+ }), (hasPstnStream || hasVolteStream) && !outgoingCall && !hasOwnPstnStream && !hasOwnVolteStream && hasNeedMergedStream && /*#__PURE__*/_jsx("div", {
165
167
  className: "connector-phone-alert",
166
168
  children: transI18n('fmt_pstn_label_alreadyin', {
167
169
  reason1: connectInfo === null || connectInfo === void 0 ? void 0 : connectInfo.phoneUserId
@@ -93,7 +93,7 @@ export var FcrUISecondaryWindowModule = /*#__PURE__*/function (_UIModule) {
93
93
  }
94
94
  }]);
95
95
  }(UIModule);
96
- export var FcrUIMainWindowRendererImpl = /*#__PURE__*/function (_ref) {
96
+ export var FcrUIMainWindowRendererImpl = /*#__PURE__*/function (_AgoraObservable) {
97
97
  function FcrUIMainWindowRendererImpl() {
98
98
  var _this2;
99
99
  _classCallCheck(this, FcrUIMainWindowRendererImpl);
@@ -106,7 +106,7 @@ export var FcrUIMainWindowRendererImpl = /*#__PURE__*/function (_ref) {
106
106
  _this2.addObserver(generateLogObserver(_this2.logger, ['onConnectionStateUpdated', 'onViewportSizeUpdated', 'onBackgroundColorUpdated', 'onDraftSaved', 'onPermissionUpdated', 'onRedoStateUpdated', 'onUndoStateUpdated', 'onWhiteboardStrokeColorChanged', 'onWhiteboardStrokeWidthChanged', 'onWhiteboardToolSelected']));
107
107
  return _this2;
108
108
  }
109
- _inherits(FcrUIMainWindowRendererImpl, _ref);
109
+ _inherits(FcrUIMainWindowRendererImpl, _AgoraObservable);
110
110
  return _createClass(FcrUIMainWindowRendererImpl, [{
111
111
  key: "ownerUser",
112
112
  get: function get() {
@@ -317,9 +317,24 @@ export var SecondaryWindowStore = /*#__PURE__*/function () {
317
317
  get: function get() {
318
318
  return this._annotationProvider.isAnnotationOpened;
319
319
  }
320
+ }, {
321
+ key: "isWaterMarkEnabled",
322
+ get: function get() {
323
+ return this._privilegeProvider.isWaterMarkEnabled();
324
+ }
325
+ }, {
326
+ key: "isMulti",
327
+ get: function get() {
328
+ return this._privilegeProvider.isMultiWaterMarkEnabled();
329
+ }
320
330
  }, {
321
331
  key: "getContent",
322
332
  value: function getContent() {}
333
+ }, {
334
+ key: "getWaterMarkContent",
335
+ value: function getWaterMarkContent() {
336
+ return this._privilegeProvider.getWaterMarkContent();
337
+ }
323
338
  }, {
324
339
  key: "handleIframeLoad",
325
340
  value: function handleIframeLoad(iframe) {
@@ -525,7 +540,7 @@ export var SecondaryWindowStore = /*#__PURE__*/function () {
525
540
  }]);
526
541
  }();
527
542
  _SecondaryWindowStore = SecondaryWindowStore;
528
- var _applyDecs$e = _slicedToArray(_applyDecs(_SecondaryWindowStore, [[observable, 1, "_screenShareScalcValue"], [observable, 1, "isSharingWhiteboard"], [observable, 1, "interceptedClose"], [computed, 3, "videoWindowData"], [computed, 3, "isAspectRatioPreserved"], [computed, 3, "scalValue"], [computed, 3, "canWriteBoard"], [bound, 2, "handleIframeLoad"], [bound, 2, "zoomIn"], [bound, 2, "zoomOut"], [bound, 2, "fullContainer"], [bound, 2, "setInterceptedClose"], [bound, 2, "setScaleValue"], [bound, 2, "setOriginScalc"], [bound, 2, "setSpeakerViewSize"], [bound, 2, "setWhiteboardTool"], [bound, 2, "saveWhiteboardDraft"], [bound, 2, "setProgress"], [bound, 2, "setTheme"], [bound, 2, "setControlEnable"], [bound, 2, "setShowLoading"], [bound, 2, "setCommonColors"], [bound, 2, "log"]], []).e, 4);
543
+ var _applyDecs$e = _slicedToArray(_applyDecs(_SecondaryWindowStore, [[observable, 1, "_screenShareScalcValue"], [observable, 1, "isSharingWhiteboard"], [observable, 1, "interceptedClose"], [computed, 3, "videoWindowData"], [computed, 3, "isAspectRatioPreserved"], [computed, 3, "scalValue"], [computed, 3, "canWriteBoard"], [computed, 3, "isWaterMarkEnabled"], [computed, 3, "isMulti"], [bound, 2, "getWaterMarkContent"], [bound, 2, "handleIframeLoad"], [bound, 2, "zoomIn"], [bound, 2, "zoomOut"], [bound, 2, "fullContainer"], [bound, 2, "setInterceptedClose"], [bound, 2, "setScaleValue"], [bound, 2, "setOriginScalc"], [bound, 2, "setSpeakerViewSize"], [bound, 2, "setWhiteboardTool"], [bound, 2, "saveWhiteboardDraft"], [bound, 2, "setProgress"], [bound, 2, "setTheme"], [bound, 2, "setControlEnable"], [bound, 2, "setShowLoading"], [bound, 2, "setCommonColors"], [bound, 2, "log"]], []).e, 4);
529
544
  _init__screenShareScalcValue = _applyDecs$e[0];
530
545
  _init_isSharingWhiteboard = _applyDecs$e[1];
531
546
  _init_interceptedClose = _applyDecs$e[2];
@@ -1,9 +1,10 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import "core-js/modules/es.error.to-string.js";
2
3
  import "core-js/modules/es.date.to-string.js";
3
4
  import "core-js/modules/es.object.to-string.js";
4
5
  import "core-js/modules/es.regexp.to-string.js";
5
6
  import { observer } from 'mobx-react';
6
- import { useContext, useEffect, useLayoutEffect, useRef } from 'react';
7
+ import { useContext, useEffect, useLayoutEffect, useMemo, useRef } from 'react';
7
8
  import { SecondaryWindowStoreContext } from './store';
8
9
  import { FcrVideoRenderMode, FcrVideoStreamType } from 'fcr-core/lib/type';
9
10
  import { MemberWindow } from '../components/member-window';
@@ -16,6 +17,8 @@ import ProgressDialog from '../components/control-bar/components/progress';
16
17
  import { transI18n } from 'agora-ui-foundation/lib/i18n';
17
18
  import { LeaveMeetingPortal } from '../components/leave-meeting/portal';
18
19
  import { FcrVideoTrackRenderContext } from '../../shared-context/video-track-render-context';
20
+ import { WaterMark } from 'agora-ui-foundation/lib/components/watermark';
21
+ import { useDelayedMeasure } from 'agora-ui-foundation/lib/utilities/hooks';
19
22
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
20
23
  export var SubWindowView = observer(function (props) {
21
24
  var renderScreenShareControl = props.renderScreenShareControl;
@@ -38,7 +41,10 @@ export var SubWindowView = observer(function (props) {
38
41
  isAspectRatioPreserved = store.isAspectRatioPreserved,
39
42
  isShowToolbar = store.isShowToolbar,
40
43
  isActive = store.isActive,
44
+ isWaterMarkEnabled = store.isWaterMarkEnabled,
45
+ isMulti = store.isMulti,
41
46
  baseUrl = store.baseUrl,
47
+ currentUser = store.currentUser,
42
48
  setOriginScalc = store.setOriginScalc,
43
49
  zoomIn = store.zoomIn,
44
50
  zoomOut = store.zoomOut,
@@ -56,8 +62,17 @@ export var SubWindowView = observer(function (props) {
56
62
  interceptedClose = store.interceptedClose,
57
63
  setInterceptedClose = store.setInterceptedClose,
58
64
  videoRenderContext = store.videoRenderContext,
59
- isAnnotationOpened = store.isAnnotationOpened;
65
+ isAnnotationOpened = store.isAnnotationOpened,
66
+ getWaterMarkContent = store.getWaterMarkContent;
60
67
  var videoWindowContainer = useRef(null);
68
+ var _useDelayedMeasure = useDelayedMeasure(),
69
+ _useDelayedMeasure2 = _slicedToArray(_useDelayedMeasure, 2),
70
+ delayedMeasureRef = _useDelayedMeasure2[0],
71
+ delayedMeasureBounds = _useDelayedMeasure2[1];
72
+ var waterMarkRenderContent = useMemo(function () {
73
+ var remoteWaterMark = getWaterMarkContent();
74
+ return isWaterMarkEnabled ? [remoteWaterMark] : [];
75
+ }, [isWaterMarkEnabled, currentUser]);
61
76
  useEffect(function () {
62
77
  if (!interceptedClose) return;
63
78
  if (!videoWindowContainer.current) {
@@ -205,78 +220,87 @@ export var SubWindowView = observer(function (props) {
205
220
  })
206
221
  });
207
222
  }
208
- return /*#__PURE__*/_jsxs("div", {
209
- ref: videoWindowContainer,
210
- className: "sub-window-view",
211
- style: {
212
- width: '100%',
213
- height: '100%',
214
- position: 'relative',
215
- top: 0
216
- },
217
- children: [interceptedClose && /*#__PURE__*/_jsx(LeaveMeetingPortal, {
218
- setPopoverOpened: function setPopoverOpened() {
219
- return setInterceptedClose(false);
220
- }
221
- }), content, (isBoardShare || isAnnotationOpened) && /*#__PURE__*/_jsx(WhiteboardToolbar, {
222
- offsetTop: 28,
223
- direction: "vertical",
224
- container: videoWindowContainer.current || undefined,
225
- show: canWriteBoard && joinSuccess && isShowToolbar && !showLoading,
226
- currentStrokeWidth: toolbarState.currentStrokeWidth,
227
- currentColor: toolbarState.currentColor,
228
- currentTool: toolbarState.currentTool,
229
- currentShape: toolbarState.currentShape,
230
- redoSteps: toolbarState.redoSteps,
231
- undoSteps: toolbarState.undoSteps,
232
- commonColors: isBoardShare ? toolbarState.commonColors : undefined,
233
- themeColors: toolbarState.themeColors,
234
- setCommonColors: setCommonColors,
235
- setStrokeWidth: function setStrokeWidth(width) {
236
- setWhiteboardTool({
237
- action: WhiteboardToolAction.WIDTH,
238
- tool: width
239
- });
240
- },
241
- setTool: function setTool(tool) {
242
- setWhiteboardTool({
243
- action: WhiteboardToolAction.TOOL,
244
- tool: tool
245
- });
246
- },
247
- setShape: function setShape(shape) {
248
- setWhiteboardTool({
249
- action: WhiteboardToolAction.SHAPE,
250
- tool: shape
251
- });
252
- },
253
- setStrokeColor: function setStrokeColor(color) {
254
- setWhiteboardTool({
255
- action: WhiteboardToolAction.COLOR,
256
- tool: color.toString()
257
- });
223
+ return /*#__PURE__*/_jsx(WaterMark, {
224
+ content: waterMarkRenderContent,
225
+ width: isMulti ? 120 : delayedMeasureBounds.width,
226
+ height: isMulti ? 64 : delayedMeasureBounds.height,
227
+ multiLine: Boolean(isMulti),
228
+ children: /*#__PURE__*/_jsxs("div", {
229
+ ref: function ref(node) {
230
+ delayedMeasureRef(node);
231
+ videoWindowContainer.current = node;
258
232
  },
259
- undo: function undo() {
260
- return setWhiteboardTool({
261
- action: WhiteboardToolAction.UNDO,
262
- tool: FcrBoardToolType.NONE
263
- });
233
+ className: "sub-window-view",
234
+ style: {
235
+ width: '100%',
236
+ height: '100%',
237
+ position: 'relative',
238
+ top: 0
264
239
  },
265
- redo: function redo() {
266
- return setWhiteboardTool({
267
- action: WhiteboardToolAction.REDO,
268
- tool: FcrBoardToolType.NONE
269
- });
270
- },
271
- clean: function clean() {
272
- return setWhiteboardTool({
273
- action: WhiteboardToolAction.CLEAR,
274
- tool: FcrBoardToolType.NONE
275
- });
276
- },
277
- onSave: isBoardShare ? saveWhiteboardDraft : undefined,
278
- progress: toolbarState.progress,
279
- setProgress: setProgress
280
- })]
240
+ children: [interceptedClose && /*#__PURE__*/_jsx(LeaveMeetingPortal, {
241
+ setPopoverOpened: function setPopoverOpened() {
242
+ return setInterceptedClose(false);
243
+ }
244
+ }), content, (isBoardShare || isAnnotationOpened) && /*#__PURE__*/_jsx(WhiteboardToolbar, {
245
+ offsetTop: 28,
246
+ direction: "vertical",
247
+ container: videoWindowContainer.current || undefined,
248
+ show: canWriteBoard && joinSuccess && isShowToolbar && !showLoading,
249
+ currentStrokeWidth: toolbarState.currentStrokeWidth,
250
+ currentColor: toolbarState.currentColor,
251
+ currentTool: toolbarState.currentTool,
252
+ currentShape: toolbarState.currentShape,
253
+ redoSteps: toolbarState.redoSteps,
254
+ undoSteps: toolbarState.undoSteps,
255
+ commonColors: isBoardShare ? toolbarState.commonColors : undefined,
256
+ themeColors: toolbarState.themeColors,
257
+ setCommonColors: setCommonColors,
258
+ setStrokeWidth: function setStrokeWidth(width) {
259
+ setWhiteboardTool({
260
+ action: WhiteboardToolAction.WIDTH,
261
+ tool: width
262
+ });
263
+ },
264
+ setTool: function setTool(tool) {
265
+ setWhiteboardTool({
266
+ action: WhiteboardToolAction.TOOL,
267
+ tool: tool
268
+ });
269
+ },
270
+ setShape: function setShape(shape) {
271
+ setWhiteboardTool({
272
+ action: WhiteboardToolAction.SHAPE,
273
+ tool: shape
274
+ });
275
+ },
276
+ setStrokeColor: function setStrokeColor(color) {
277
+ setWhiteboardTool({
278
+ action: WhiteboardToolAction.COLOR,
279
+ tool: color.toString()
280
+ });
281
+ },
282
+ undo: function undo() {
283
+ return setWhiteboardTool({
284
+ action: WhiteboardToolAction.UNDO,
285
+ tool: FcrBoardToolType.NONE
286
+ });
287
+ },
288
+ redo: function redo() {
289
+ return setWhiteboardTool({
290
+ action: WhiteboardToolAction.REDO,
291
+ tool: FcrBoardToolType.NONE
292
+ });
293
+ },
294
+ clean: function clean() {
295
+ return setWhiteboardTool({
296
+ action: WhiteboardToolAction.CLEAR,
297
+ tool: FcrBoardToolType.NONE
298
+ });
299
+ },
300
+ onSave: isBoardShare ? saveWhiteboardDraft : undefined,
301
+ progress: toolbarState.progress,
302
+ setProgress: setProgress
303
+ })]
304
+ })
281
305
  });
282
306
  });
@@ -107,6 +107,7 @@ export var FcrUIToastKey = /*#__PURE__*/function (FcrUIToastKey) {
107
107
  FcrUIToastKey["FMT_WHITEBOARD_TIPS_SHARE_FAILED"] = "fmt_whiteboard_tips_share_failed";
108
108
  FcrUIToastKey["FMT_AUDIO_WINDOW_MIC_TURN_ON_ERROR"] = "fmt_audio_window_mic_turn_on_error";
109
109
  FcrUIToastKey["FMT_AUDIO_WINDOW_CAMERA_TURN_ON_ERROR"] = "fmt_audio_window_camera_turn_on_error";
110
+ FcrUIToastKey["FMT_SIP_TIPS_ENTER_CORRECT_NUMBER"] = "fmt_SIP_tips_enter_correct_number";
110
111
  return FcrUIToastKey;
111
112
  }({});
112
113
  export var DefaultToastParamsMap = (_DefaultToastParamsMa = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_DefaultToastParamsMa, FcrUIToastKey.ERR_MESSAGE, {
@@ -314,7 +315,7 @@ export var DefaultToastParamsMap = (_DefaultToastParamsMa = {}, _defineProperty(
314
315
  type: 'normal'
315
316
  }), FcrUIToastKey.FMT_MEETING_TOAST_DISABLED_WAITINGROOM, {
316
317
  type: 'normal'
317
- }), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_DefaultToastParamsMa, FcrUIToastKey.FMT_SCREENSHARE_TIPS_FAILD_RESELECT, {
318
+ }), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_DefaultToastParamsMa, FcrUIToastKey.FMT_SCREENSHARE_TIPS_FAILD_RESELECT, {
318
319
  type: 'error'
319
320
  }), FcrUIToastKey.FMT_SCREENSHARE_TIPS_FAILD_SCREENSELECT, {
320
321
  type: 'error'
@@ -326,4 +327,6 @@ export var DefaultToastParamsMap = (_DefaultToastParamsMa = {}, _defineProperty(
326
327
  type: 'error'
327
328
  }), FcrUIToastKey.FMT_AUDIO_WINDOW_CAMERA_TURN_ON_ERROR, {
328
329
  type: 'error'
330
+ }), FcrUIToastKey.FMT_SIP_TIPS_ENTER_CORRECT_NUMBER, {
331
+ type: 'error'
329
332
  }));
@@ -16,7 +16,7 @@ var createRoom = /*#__PURE__*/function () {
16
16
  return _regeneratorRuntime.wrap(function (_context) {
17
17
  while (1) switch (_context.prev = _context.next) {
18
18
  case 0:
19
- url = "http://api-solutions-dev.bj2.agoralab.co/conference/companys/v1/rooms";
19
+ url = "http://api-solutions-dev-bj.shengwang.cn/conference/companys/v1/rooms";
20
20
  _context.next = 1;
21
21
  return fetch(url, {
22
22
  headers: {
@@ -64,7 +64,7 @@ var getUserToken = /*#__PURE__*/function () {
64
64
  return _regeneratorRuntime.wrap(function (_context2) {
65
65
  while (1) switch (_context2.prev = _context2.next) {
66
66
  case 0:
67
- url = "https://api-solutions-dev.bj2.agoralab.co/conference/companys/v1/rooms";
67
+ url = "https://api-solutions-test.shengwang.cn/conference/companys/v1/rooms";
68
68
  _context2.next = 1;
69
69
  return fetch(url, {
70
70
  headers: {
@@ -144,10 +144,10 @@ var role = 'host';
144
144
  // },
145
145
  // parameters: {
146
146
  // rte: {
147
- // rteIpList: ['http://api-solutions-dev.bj2.agoralab.co'],
147
+ // rteIpList: ['http://api-solutions-dev-bj.shengwang.cn'],
148
148
  // },
149
149
  // core: {
150
- // coreIpList: ['http://api-solutions-dev.bj2.agoralab.co'],
150
+ // coreIpList: ['http://api-solutions-dev-bj.shengwang.cn'],
151
151
  // },
152
152
  // },
153
153
  // });
@@ -92,7 +92,19 @@ export var FcrUIAbilityProviderImpl = /*#__PURE__*/function () {
92
92
  * 检查当前平台是否支持外呼
93
93
  */
94
94
  _defineProperty(this, "isCallOutAbilitySupported", function () {
95
- var result = _this._abilityControl.isAbilitySupported(FcrAbility.PstnCallOut);
95
+ var result = _this._abilityControl.isAbilitySupported(FcrAbility.CallOutPstn);
96
+ return result;
97
+ });
98
+ _defineProperty(this, "isCallOutVolteAbilitySupported", function () {
99
+ var result = _this._abilityControl.isAbilitySupported(FcrAbility.CallOutVolte);
100
+ return result;
101
+ });
102
+ _defineProperty(this, "isCallOutH323AbilitySupported", function () {
103
+ var result = _this._abilityControl.isAbilitySupported(FcrAbility.CallOutH323);
104
+ return result;
105
+ });
106
+ _defineProperty(this, "isCallOutSipAbilitySupported", function () {
107
+ var result = _this._abilityControl.isAbilitySupported(FcrAbility.CallOutSip);
96
108
  return result;
97
109
  });
98
110
  this._abilityControl = _abilityControl;