fcr-ui-scene 3.9.0-alpha → 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 (208) hide show
  1. package/lib/creator/provider-initializer.browser.js +4 -2
  2. package/lib/creator/provider-initializer.electron.js +13 -5
  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/fragments/annotation/style.css +1 -0
  7. package/lib/fragments/whiteboard/style.css +4 -0
  8. package/lib/modules/action-bar/main-scene/store.base.d.ts +1 -0
  9. package/lib/modules/action-bar/main-scene/store.base.js +5 -0
  10. package/lib/modules/audio-stream/index.d.ts +2 -0
  11. package/lib/modules/audio-stream/index.js +33 -1
  12. package/lib/modules/chat/chat-room-store.js +4 -2
  13. package/lib/modules/chat/index.js +1 -1
  14. package/lib/modules/chat/store.d.ts +1 -1
  15. package/lib/modules/chat/store.js +4 -2
  16. package/lib/modules/components/device-control/store.base.d.ts +1 -0
  17. package/lib/modules/components/device-control/store.base.js +22 -3
  18. package/lib/modules/components/leave-meeting/index.js +3 -2
  19. package/lib/modules/components/leave-meeting/main-scene/store.d.ts +1 -0
  20. package/lib/modules/components/leave-meeting/main-scene/store.js +6 -1
  21. package/lib/modules/components/leave-meeting/store.base.d.ts +1 -0
  22. package/lib/modules/components/leave-meeting/store.base.js +1 -1
  23. package/lib/modules/components/leave-meeting/waiting-scene/store.d.ts +1 -0
  24. package/lib/modules/components/leave-meeting/waiting-scene/store.js +6 -1
  25. package/lib/modules/components/member-window/components/member-actions/components/icon-status.js +7 -10
  26. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +2 -2
  27. package/lib/modules/components/member-window/components/member-actions/index.js +0 -7
  28. package/lib/modules/components/member-window/components/member-actions/store.js +1 -1
  29. package/lib/modules/components/member-window/index.js +1 -1
  30. package/lib/modules/components/tab-frame/index.css +12 -1
  31. package/lib/modules/components/tab-frame/index.js +4 -1
  32. package/lib/modules/control-bar/components/share-state-nav/index.js +1 -3
  33. package/lib/modules/control-bar/mouse-event-bridge.d.ts +23 -0
  34. package/lib/modules/control-bar/mouse-event-bridge.js +87 -0
  35. package/lib/modules/control-bar/store.d.ts +3 -2
  36. package/lib/modules/control-bar/store.js +17 -29
  37. package/lib/modules/control-bar/type.d.ts +0 -1
  38. package/lib/modules/control-bar/view.js +21 -17
  39. package/lib/modules/dialog/dialogs/connection-gateway/tabs.js +3 -2
  40. package/lib/modules/dialog/dialogs/invite/index.js +6 -24
  41. package/lib/modules/invite/components/copy-info.css +72 -0
  42. package/lib/modules/invite/components/copy-info.d.ts +3 -0
  43. package/lib/modules/invite/components/copy-info.js +144 -0
  44. package/lib/modules/invite/components/pstn-invite.js +3 -15
  45. package/lib/modules/invite/components/voip-invite.js +10 -1
  46. package/lib/modules/invite/enums.d.ts +3 -1
  47. package/lib/modules/invite/enums.js +2 -0
  48. package/lib/modules/invite/store.d.ts +4 -1
  49. package/lib/modules/invite/store.js +37 -13
  50. package/lib/modules/invite/view.js +41 -20
  51. package/lib/modules/layout/store.base.d.ts +2 -1
  52. package/lib/modules/layout/store.base.js +20 -23
  53. package/lib/modules/participant/components/confirm-input/index.css +67 -1
  54. package/lib/modules/participant/components/confirm-input/index.js +16 -13
  55. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.css +4 -0
  56. package/lib/modules/participant/store.base.d.ts +1 -0
  57. package/lib/modules/participant/store.base.js +34 -7
  58. package/lib/modules/pc-audio-connect/main-scene/store.d.ts +2 -0
  59. package/lib/modules/pc-audio-connect/main-scene/store.js +12 -2
  60. package/lib/modules/pc-audio-connect/view.js +4 -2
  61. package/lib/modules/phone-audio-connect/store.d.ts +6 -4
  62. package/lib/modules/phone-audio-connect/store.js +12 -1
  63. package/lib/modules/phone-audio-connect/view.js +6 -4
  64. package/lib/modules/secondary-window/index.js +2 -2
  65. package/lib/modules/secondary-window/store.d.ts +3 -0
  66. package/lib/modules/secondary-window/store.js +16 -1
  67. package/lib/modules/secondary-window/view.js +96 -72
  68. package/lib/modules/toast-manager/type.d.ts +2 -1
  69. package/lib/modules/toast-manager/type.js +4 -1
  70. package/lib/plugins/module-dev-plugin.js +4 -4
  71. package/lib/providers/ability-provider.d.ts +15 -0
  72. package/lib/providers/ability-provider.js +13 -1
  73. package/lib/providers/mouse-detect/provider.d.ts +2 -0
  74. package/lib/providers/mouse-detect/provider.empty.d.ts +14 -0
  75. package/lib/providers/mouse-detect/provider.empty.js +47 -0
  76. package/lib/providers/mouse-detect/provider.js +13 -4
  77. package/lib/providers/mouse-detect/type.d.ts +2 -0
  78. package/lib/providers/phone-audio-provider.d.ts +31 -5
  79. package/lib/providers/phone-audio-provider.js +83 -22
  80. package/lib/providers/user-audio-volume-provider.d.ts +6 -0
  81. package/lib/providers/user-audio-volume-provider.js +3 -2
  82. package/lib/runtime.d.ts +1 -0
  83. package/lib/scenes/main-scene.js +2 -1
  84. package/lib/shared-data/chat-data.d.ts +19 -0
  85. package/lib/shared-data/chat-data.js +54 -7
  86. package/lib/shared-data/member-data.d.ts +9 -1
  87. package/lib/shared-data/member-data.js +46 -17
  88. package/lib/shared-data/video-window.js +8 -4
  89. package/lib/translations/enUS.d.ts +245 -1
  90. package/lib/translations/enUS.js +247 -3
  91. package/lib/translations/zhCN.d.ts +245 -1
  92. package/lib/translations/zhCN.js +246 -2
  93. package/lib/utilities/os.d.ts +1 -0
  94. package/lib/utilities/os.js +15 -0
  95. package/lib/utilities/renderer.d.ts +1 -0
  96. package/lib/utilities/renderer.js +7 -1
  97. package/lib-es/creator/provider-initializer.browser.js +4 -2
  98. package/lib-es/creator/provider-initializer.electron.js +11 -3
  99. package/lib-es/electron/injections.js +3 -0
  100. package/lib-es/electron/preload.js +2 -1
  101. package/lib-es/fragments/annotation/style.css +1 -0
  102. package/lib-es/fragments/whiteboard/style.css +4 -0
  103. package/lib-es/modules/action-bar/main-scene/store.base.js +5 -0
  104. package/lib-es/modules/audio-stream/index.js +33 -1
  105. package/lib-es/modules/chat/chat-room-store.js +4 -2
  106. package/lib-es/modules/chat/index.js +1 -1
  107. package/lib-es/modules/chat/store.js +4 -2
  108. package/lib-es/modules/components/device-control/store.base.js +22 -3
  109. package/lib-es/modules/components/leave-meeting/index.js +3 -2
  110. package/lib-es/modules/components/leave-meeting/main-scene/store.js +6 -1
  111. package/lib-es/modules/components/leave-meeting/store.base.js +1 -1
  112. package/lib-es/modules/components/leave-meeting/waiting-scene/store.js +6 -1
  113. package/lib-es/modules/components/member-window/components/member-actions/components/icon-status.js +7 -10
  114. package/lib-es/modules/components/member-window/components/member-actions/components/more-actions.js +2 -2
  115. package/lib-es/modules/components/member-window/components/member-actions/index.js +0 -7
  116. package/lib-es/modules/components/member-window/components/member-actions/store.js +1 -1
  117. package/lib-es/modules/components/member-window/index.js +1 -1
  118. package/lib-es/modules/components/tab-frame/index.css +12 -1
  119. package/lib-es/modules/components/tab-frame/index.js +4 -1
  120. package/lib-es/modules/control-bar/components/share-state-nav/index.js +1 -3
  121. package/lib-es/modules/control-bar/mouse-event-bridge.js +79 -0
  122. package/lib-es/modules/control-bar/store.js +18 -30
  123. package/lib-es/modules/control-bar/view.js +21 -17
  124. package/lib-es/modules/dialog/dialogs/connection-gateway/tabs.js +3 -2
  125. package/lib-es/modules/dialog/dialogs/invite/index.js +6 -24
  126. package/lib-es/modules/invite/components/copy-info.css +72 -0
  127. package/lib-es/modules/invite/components/copy-info.js +137 -0
  128. package/lib-es/modules/invite/components/pstn-invite.js +3 -15
  129. package/lib-es/modules/invite/components/voip-invite.js +10 -1
  130. package/lib-es/modules/invite/enums.js +2 -0
  131. package/lib-es/modules/invite/store.js +38 -14
  132. package/lib-es/modules/invite/view.js +43 -22
  133. package/lib-es/modules/layout/store.base.js +20 -23
  134. package/lib-es/modules/participant/components/confirm-input/index.css +67 -1
  135. package/lib-es/modules/participant/components/confirm-input/index.js +16 -13
  136. package/lib-es/modules/participant/components/participants/components/render-user/components/attendee/index.css +4 -0
  137. package/lib-es/modules/participant/store.base.js +34 -7
  138. package/lib-es/modules/pc-audio-connect/main-scene/store.js +12 -2
  139. package/lib-es/modules/pc-audio-connect/view.js +4 -2
  140. package/lib-es/modules/phone-audio-connect/store.js +12 -1
  141. package/lib-es/modules/phone-audio-connect/view.js +6 -4
  142. package/lib-es/modules/secondary-window/index.js +2 -2
  143. package/lib-es/modules/secondary-window/store.js +16 -1
  144. package/lib-es/modules/secondary-window/view.js +97 -73
  145. package/lib-es/modules/toast-manager/type.js +4 -1
  146. package/lib-es/plugins/module-dev-plugin.js +4 -4
  147. package/lib-es/providers/ability-provider.js +13 -1
  148. package/lib-es/providers/mouse-detect/provider.empty.js +39 -0
  149. package/lib-es/providers/mouse-detect/provider.js +13 -4
  150. package/lib-es/providers/phone-audio-provider.js +109 -48
  151. package/lib-es/providers/user-audio-volume-provider.js +3 -2
  152. package/lib-es/scenes/main-scene.js +3 -2
  153. package/lib-es/shared-data/chat-data.js +55 -8
  154. package/lib-es/shared-data/member-data.js +46 -17
  155. package/lib-es/shared-data/video-window.js +8 -4
  156. package/lib-es/translations/enUS.js +247 -3
  157. package/lib-es/translations/zhCN.js +246 -2
  158. package/lib-es/utilities/os.js +8 -0
  159. package/lib-es/utilities/renderer.js +7 -1
  160. package/lib-es/utilities/shared-storage.js +2 -2
  161. package/package.json +6 -6
  162. package/lib/modules/connection-gateway/components/computer/index.css +0 -12
  163. package/lib/modules/connection-gateway/components/computer/index.d.ts +0 -3
  164. package/lib/modules/connection-gateway/components/computer/index.js +0 -66
  165. package/lib/modules/connection-gateway/components/phone/components/callinfo/index.css +0 -36
  166. package/lib/modules/connection-gateway/components/phone/components/callinfo/index.d.ts +0 -10
  167. package/lib/modules/connection-gateway/components/phone/components/callinfo/index.js +0 -78
  168. package/lib/modules/connection-gateway/components/phone/components/calling/index.css +0 -72
  169. package/lib/modules/connection-gateway/components/phone/components/calling/index.d.ts +0 -7
  170. package/lib/modules/connection-gateway/components/phone/components/calling/index.js +0 -58
  171. package/lib/modules/connection-gateway/components/phone/components/remeber/index.css +0 -10
  172. package/lib/modules/connection-gateway/components/phone/components/remeber/index.d.ts +0 -5
  173. package/lib/modules/connection-gateway/components/phone/components/remeber/index.js +0 -24
  174. package/lib/modules/connection-gateway/components/phone/components/useing/index.css +0 -46
  175. package/lib/modules/connection-gateway/components/phone/components/useing/index.d.ts +0 -3
  176. package/lib/modules/connection-gateway/components/phone/components/useing/index.js +0 -36
  177. package/lib/modules/connection-gateway/components/phone/index.css +0 -49
  178. package/lib/modules/connection-gateway/components/phone/index.d.ts +0 -3
  179. package/lib/modules/connection-gateway/components/phone/index.js +0 -185
  180. package/lib/modules/connection-gateway/enums.d.ts +0 -4
  181. package/lib/modules/connection-gateway/enums.js +0 -12
  182. package/lib/modules/connection-gateway/index.css +0 -6
  183. package/lib/modules/connection-gateway/index.d.ts +0 -10
  184. package/lib/modules/connection-gateway/index.js +0 -78
  185. package/lib/modules/connection-gateway/store.d.ts +0 -68
  186. package/lib/modules/connection-gateway/store.js +0 -713
  187. package/lib/modules/connection-gateway/types.d.ts +0 -8
  188. package/lib/modules/connection-gateway/types.js +0 -6
  189. package/lib/modules/connection-gateway/view.d.ts +0 -1
  190. package/lib/modules/connection-gateway/view.js +0 -39
  191. package/lib-es/modules/connection-gateway/components/computer/index.css +0 -12
  192. package/lib-es/modules/connection-gateway/components/computer/index.js +0 -59
  193. package/lib-es/modules/connection-gateway/components/phone/components/callinfo/index.css +0 -36
  194. package/lib-es/modules/connection-gateway/components/phone/components/callinfo/index.js +0 -71
  195. package/lib-es/modules/connection-gateway/components/phone/components/calling/index.css +0 -72
  196. package/lib-es/modules/connection-gateway/components/phone/components/calling/index.js +0 -51
  197. package/lib-es/modules/connection-gateway/components/phone/components/remeber/index.css +0 -10
  198. package/lib-es/modules/connection-gateway/components/phone/components/remeber/index.js +0 -17
  199. package/lib-es/modules/connection-gateway/components/phone/components/useing/index.css +0 -46
  200. package/lib-es/modules/connection-gateway/components/phone/components/useing/index.js +0 -29
  201. package/lib-es/modules/connection-gateway/components/phone/index.css +0 -49
  202. package/lib-es/modules/connection-gateway/components/phone/index.js +0 -177
  203. package/lib-es/modules/connection-gateway/enums.js +0 -5
  204. package/lib-es/modules/connection-gateway/index.css +0 -6
  205. package/lib-es/modules/connection-gateway/index.js +0 -60
  206. package/lib-es/modules/connection-gateway/store.js +0 -707
  207. package/lib-es/modules/connection-gateway/types.js +0 -1
  208. package/lib-es/modules/connection-gateway/view.js +0 -31
@@ -1,20 +1,3 @@
1
- import "core-js/modules/es.symbol.js";
2
- import "core-js/modules/es.array.filter.js";
3
- import "core-js/modules/es.array.for-each.js";
4
- import "core-js/modules/es.array.push.js";
5
- import "core-js/modules/es.object.define-properties.js";
6
- import "core-js/modules/es.object.define-property.js";
7
- import "core-js/modules/es.object.get-own-property-descriptor.js";
8
- import "core-js/modules/es.object.get-own-property-descriptors.js";
9
- import "core-js/modules/es.object.keys.js";
10
- import "core-js/modules/es.object.to-string.js";
11
- import "core-js/modules/esnext.iterator.constructor.js";
12
- import "core-js/modules/esnext.iterator.filter.js";
13
- import "core-js/modules/esnext.iterator.for-each.js";
14
- import "core-js/modules/web.dom-collections.for-each.js";
15
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
16
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
1
  import { FcrUIDialogKey } from '../../../../utilities/constant';
19
2
  import '../../index.css';
20
3
  import { NormalWindow } from '../../components/normal-window';
@@ -29,12 +12,12 @@ export var InviteDialog = function InviteDialog(_ref) {
29
12
  body: children
30
13
  });
31
14
  };
32
- var baseDialogConfig = {
33
- // width: 430,
34
- // height: 420,
15
+ export var webDialogConfig = {
16
+ onlyTitleCanTriggerDrag: false
35
17
  };
36
- export var webDialogConfig = baseDialogConfig;
37
- export var electronWindowConfig = _objectSpread(_objectSpread({}, baseDialogConfig), {}, {
18
+ export var electronWindowConfig = {
19
+ height: 424,
20
+ width: 400,
38
21
  frame: false,
39
22
  maximizable: false,
40
23
  minimizable: false,
@@ -44,9 +27,8 @@ export var electronWindowConfig = _objectSpread(_objectSpread({}, baseDialogConf
44
27
  y: 0
45
28
  },
46
29
  resizable: false,
47
- hasShadow: false,
48
30
  useContentSize: true,
49
31
  transparent: true,
50
32
  backgroundColor: '#00000000',
51
33
  alwaysOnTop: true
52
- });
34
+ };
@@ -0,0 +1,72 @@
1
+ .fcr-invite-copy-info {
2
+ display: flex;
3
+ flex-direction: column;
4
+ align-items: start;
5
+ justify-content: center;
6
+ padding: 0 20px 0 20px;
7
+ height: 100%;
8
+ }
9
+
10
+ .fcr-invite-copy-info-content {
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: 20px;
14
+ width: 100%;
15
+ padding-bottom: 16px;
16
+ }
17
+
18
+ .fcr-invite-copy-info-title {
19
+ font-size: 14px;
20
+ font-weight: 600;
21
+ color: var(--fcr_ui_scene_icontext1);
22
+ font-weight: 700;
23
+ line-height: 18px;
24
+ letter-spacing: 0px;
25
+ text-transform: capitalize;
26
+ }
27
+
28
+ .fcr-invite-copy-info-content-item {
29
+ width: 100%;
30
+ display: flex;
31
+ flex-direction: row;
32
+ justify-content: flex-start;
33
+ }
34
+
35
+ .fcr-invite-copy-info-content-item-label {
36
+ font-size: 12px;
37
+ font-weight: 400;
38
+ width: 96px;
39
+ color: var(--fcr_ui_scene_icontext2);
40
+ line-height: 18px;
41
+ }
42
+
43
+ .fcr-invite-copy-info-content-item-value {
44
+ font-size: 12px;
45
+ font-weight: 400;
46
+ font-family: Verdana;
47
+ line-height: 18px;
48
+ color: var(--fcr_ui_scene_icontext1);
49
+ width: calc(100% - 96px);
50
+ word-break: break-all;
51
+ }
52
+
53
+ .fcr-invite-copy-info-content-item-value-meeting-id {
54
+ display: flex;
55
+ align-items: center;
56
+ }
57
+
58
+ .fcr-invite-copy-info-content-item-value-meeting-id > svg {
59
+ flex-shrink: 0;
60
+ margin-left: 8px;
61
+ border-radius: var(--fcr_cornerradius_s, 4px);
62
+ cursor: pointer;
63
+ }
64
+
65
+ .fcr-invite-copy-info-content-item-value-meeting-id > svg:hover {
66
+ background-color: var(--fcr_web_ui_scene_hover);
67
+ border: none;
68
+ }
69
+
70
+ .fcr-invite-copy-info-content-item-value-meeting-id > svg:hover path {
71
+ fill: var(--fcr_web_ui_scene_mainicon2);
72
+ }
@@ -0,0 +1,137 @@
1
+ import "core-js/modules/es.regexp.exec.js";
2
+ import "core-js/modules/es.string.replace.js";
3
+ import { useI18n } from 'agora-ui-foundation/lib/i18n';
4
+ import './copy-info.css';
5
+ import { FcrButton } from 'agora-ui-foundation/lib/components/button';
6
+ import { useCallback, useContext } from 'react';
7
+ import { copyText } from 'agora-ui-foundation/lib/utilities/copy-text';
8
+ import { FcrUIToastKey } from '../../toast-manager/type';
9
+ import { StoreContext } from '../store';
10
+ import { FcrIcon } from 'agora-ui-foundation/lib/components/icon';
11
+ import { FcrIconType } from 'agora-ui-foundation/lib/components/icon/type';
12
+ import { renderMeetingId } from 'agora-foundation/lib/utilities/tools';
13
+ import { generateMeetingDuration } from '../../../utilities/meeting-detail';
14
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
+ var CopyInfo = function CopyInfo() {
16
+ var transI18n = useI18n();
17
+ var _useContext = useContext(StoreContext),
18
+ _useContext$roomInfo = _useContext.roomInfo,
19
+ inviteLink = _useContext$roomInfo.inviteLink,
20
+ roomId = _useContext$roomInfo.roomId,
21
+ roomName = _useContext$roomInfo.roomName,
22
+ password = _useContext$roomInfo.password,
23
+ showToast = _useContext.showToast,
24
+ roomDetailCopyText = _useContext.roomDetailCopyText,
25
+ localUserName = _useContext.localUserName,
26
+ meetingId = _useContext.meetingId,
27
+ roomSchedule = _useContext.roomSchedule;
28
+ var duration = (roomSchedule === null || roomSchedule === void 0 ? void 0 : roomSchedule.duration) || 0;
29
+ var startTime = (roomSchedule === null || roomSchedule === void 0 ? void 0 : roomSchedule.startTime) || 0;
30
+ function handleCopyMeetingId(copyContent) {
31
+ if (!copyContent) return;
32
+ var content = meetingId ? copyContent : copyContent.replace(/\s+/g, '');
33
+ copyText(content).then(function () {
34
+ showToast({
35
+ key: FcrUIToastKey.FMT_STATUSBAR_STATUS_COPPIED
36
+ });
37
+ })["catch"](function () {
38
+ showToast({
39
+ key: FcrUIToastKey.FMT_INFORMATION_TIPS_NUMBERCOPYFAILED
40
+ });
41
+ });
42
+ }
43
+ var handleCopyMeetingDetail = useCallback(function () {
44
+ copyText(roomDetailCopyText).then(function () {
45
+ showToast({
46
+ key: FcrUIToastKey.FMT_STATUSBAR_STATUS_COPPIED
47
+ });
48
+ });
49
+ }, []);
50
+ var displayMeetingId = renderMeetingId(meetingId, roomId);
51
+ return /*#__PURE__*/_jsxs("div", {
52
+ className: "fcr-invite-copy-info",
53
+ children: [/*#__PURE__*/_jsxs("div", {
54
+ className: "fcr-invite-copy-info-content",
55
+ children: [/*#__PURE__*/_jsx("div", {
56
+ className: "fcr-invite-copy-info-title",
57
+ children: transI18n('fmt_link_invitation', {
58
+ reason1: localUserName
59
+ })
60
+ }), /*#__PURE__*/_jsxs("div", {
61
+ className: "fcr-invite-copy-info-content-item",
62
+ children: [/*#__PURE__*/_jsx("div", {
63
+ className: "fcr-invite-copy-info-content-item-label",
64
+ children: transI18n('fmt_meetinginfo_room_topic')
65
+ }), /*#__PURE__*/_jsx("div", {
66
+ className: "fcr-invite-copy-info-content-item-value",
67
+ children: roomName
68
+ })]
69
+ }), /*#__PURE__*/_jsxs("div", {
70
+ className: "fcr-invite-copy-info-content-item",
71
+ children: [/*#__PURE__*/_jsx("div", {
72
+ className: "fcr-invite-copy-info-content-item-label",
73
+ children: transI18n('fmt_meetingInfo_window_info_meetingID')
74
+ }), /*#__PURE__*/_jsxs("div", {
75
+ className: "fcr-invite-copy-info-content-item-value fcr-invite-copy-info-content-item-value-meeting-id",
76
+ children: [/*#__PURE__*/_jsx("span", {
77
+ children: displayMeetingId
78
+ }), /*#__PURE__*/_jsx(FcrIcon, {
79
+ onClick: function onClick() {
80
+ return handleCopyMeetingId(displayMeetingId);
81
+ },
82
+ type: FcrIconType.FCR_COPY_ICON,
83
+ size: 20,
84
+ colors: {
85
+ iconPrimary: 'var(--fcr_ui_scene_icontext1)'
86
+ }
87
+ })]
88
+ })]
89
+ }), password && /*#__PURE__*/_jsxs("div", {
90
+ className: "fcr-invite-copy-info-content-item",
91
+ children: [/*#__PURE__*/_jsx("div", {
92
+ className: "fcr-invite-copy-info-content-item-label",
93
+ children: transI18n('fmt_premeeting_joinroom_mobile_tips_password')
94
+ }), /*#__PURE__*/_jsxs("div", {
95
+ className: "fcr-invite-copy-info-content-item-value fcr-invite-copy-info-content-item-value-meeting-id",
96
+ children: [/*#__PURE__*/_jsx("span", {
97
+ children: password
98
+ }), /*#__PURE__*/_jsx(FcrIcon, {
99
+ onClick: function onClick() {
100
+ return handleCopyMeetingId(password);
101
+ },
102
+ type: FcrIconType.FCR_COPY_ICON,
103
+ size: 20,
104
+ colors: {
105
+ iconPrimary: 'var(--fcr_ui_scene_icontext1)'
106
+ }
107
+ })]
108
+ })]
109
+ }), /*#__PURE__*/_jsxs("div", {
110
+ className: "fcr-invite-copy-info-content-item",
111
+ children: [/*#__PURE__*/_jsx("div", {
112
+ className: "fcr-invite-copy-info-content-item-label",
113
+ children: transI18n('fmt_invitepage_label_invite_link')
114
+ }), /*#__PURE__*/_jsx("div", {
115
+ className: "fcr-invite-copy-info-content-item-value",
116
+ children: inviteLink
117
+ })]
118
+ }), /*#__PURE__*/_jsxs("div", {
119
+ className: "fcr-invite-copy-info-content-item",
120
+ children: [/*#__PURE__*/_jsx("div", {
121
+ className: "fcr-invite-copy-info-content-item-label",
122
+ children: transI18n('fmt_ai_summary_create_labels_meeting_time')
123
+ }), /*#__PURE__*/_jsx("div", {
124
+ className: "fcr-invite-copy-info-content-item-value",
125
+ children: generateMeetingDuration(startTime || 0, duration)
126
+ })]
127
+ })]
128
+ }), /*#__PURE__*/_jsx(FcrButton, {
129
+ type: "secondary-bordered",
130
+ size: "XS",
131
+ onClick: handleCopyMeetingDetail,
132
+ className: "invite__pstn-invite-copyinfo",
133
+ children: transI18n('fmt_popup_button_meetinginfor')
134
+ })]
135
+ });
136
+ };
137
+ export default CopyInfo;
@@ -152,9 +152,9 @@ export var PSTNInvite = observer(function () {
152
152
  setIsInvitePhoneNumberError(true);
153
153
  }
154
154
  };
155
- return /*#__PURE__*/_jsxs("div", {
155
+ return /*#__PURE__*/_jsx("div", {
156
156
  className: "invite__pstn-invite",
157
- children: [/*#__PURE__*/_jsxs("div", {
157
+ children: /*#__PURE__*/_jsxs("div", {
158
158
  className: "invite__pstn-invite__phone",
159
159
  children: [!isPstnCalling ? /*#__PURE__*/_jsxs("div", {
160
160
  className: "invite__pstn-invite_edit_phone",
@@ -228,18 +228,6 @@ export var PSTNInvite = observer(function () {
228
228
  size: "XS",
229
229
  children: !isPstnCalling ? transI18n('fmt_pstn_label_phonecall') : transI18n('fmt_pstn_button_hangupphone')
230
230
  })]
231
- }), /*#__PURE__*/_jsx("div", {
232
- className: "invite__pstn-invite-divider",
233
- children: /*#__PURE__*/_jsx("span", {
234
- className: "invite__pstn-invite-divider-content",
235
- children: transI18n('fmt_pstn_label_or')
236
- })
237
- }), /*#__PURE__*/_jsx(FcrButton, {
238
- type: "secondary-bordered",
239
- size: "XS",
240
- onClick: handleCopyMeetingDetail,
241
- className: "invite__pstn-invite-copyinfo",
242
- children: transI18n('fmt_popup_button_meetinginfor')
243
- })]
231
+ })
244
232
  });
245
233
  });
@@ -19,6 +19,8 @@ import { useI18n } from 'agora-ui-foundation/lib/i18n';
19
19
  import { ErrorTips } from './error-tips';
20
20
  import { CallType, InviteStatus, VoipType } from '../enums';
21
21
  import './voip-invite.css';
22
+ import { isPhoneNumber } from 'agora-foundation/lib/utilities/regex';
23
+ import { FcrUIToastKey } from '../../toast-manager/type';
22
24
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
23
25
  export var VoipInvite = observer(function () {
24
26
  var _calledVoipInfo$state;
@@ -45,12 +47,19 @@ export var VoipInvite = observer(function () {
45
47
  isVoipCalling = _useContext.isVoipCalling,
46
48
  startSessionByVoip = _useContext.startSessionByVoip,
47
49
  stopSession = _useContext.stopSession,
48
- calledVoipInfo = _useContext.calledVoipInfo;
50
+ calledVoipInfo = _useContext.calledVoipInfo,
51
+ showToast = _useContext.showToast;
49
52
  var _useState9 = useState(false),
50
53
  _useState0 = _slicedToArray(_useState9, 2),
51
54
  isLoading = _useState0[0],
52
55
  setIsLoading = _useState0[1];
53
56
  var handleCallVoip = function handleCallVoip() {
57
+ if (isPhoneNumber(callVoip)) {
58
+ showToast({
59
+ key: FcrUIToastKey.FMT_SIP_TIPS_ENTER_CORRECT_NUMBER
60
+ });
61
+ return;
62
+ }
54
63
  checkInput(callVoip, setIsError);
55
64
  if (callVoip.trim().length === 0) {
56
65
  return;
@@ -1,6 +1,8 @@
1
1
  export var InviteType = /*#__PURE__*/function (InviteType) {
2
2
  InviteType["PSTN"] = "PSTN";
3
3
  InviteType["VOIP"] = "VOIP";
4
+ InviteType["COPY"] = "COPY";
5
+ InviteType["WIDGET"] = "WIDGET";
4
6
  return InviteType;
5
7
  }({});
6
8
  export var CallType = /*#__PURE__*/function (CallType) {
@@ -38,10 +38,13 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
38
38
  var _InviteStore;
39
39
  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;
40
40
  import _regeneratorRuntime from "@babel/runtime/regenerator";
41
+ import "core-js/modules/es.array.concat.js";
41
42
  import "core-js/modules/es.array.find.js";
43
+ import "core-js/modules/es.array.includes.js";
42
44
  import "core-js/modules/es.array.iterator.js";
43
45
  import "core-js/modules/es.array.map.js";
44
46
  import "core-js/modules/es.object.to-string.js";
47
+ import "core-js/modules/es.string.includes.js";
45
48
  import "core-js/modules/es.string.iterator.js";
46
49
  import "core-js/modules/es.weak-map.js";
47
50
  import "core-js/modules/esnext.iterator.constructor.js";
@@ -62,7 +65,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
62
65
  function _setFunctionName(e, t, n) { "symbol" == _typeof(t) && (t = (t = t.description) ? "[" + t + "]" : ""); try { Object.defineProperty(e, "name", { configurable: !0, value: n ? n + " " + t : t }); } catch (e) {} return e; }
63
66
  function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side of 'in' should be an object, got " + (null !== e ? _typeof(e) : "null")); return e; }
64
67
  import { action, computed, observable } from 'mobx';
65
- import { FcrIPConnectorSessionType, FcrRoomConnectorPhoneRegion, FcrRoomConnectorSessionReason, FcrRoomConnectorSessionState } from 'fcr-core/lib/room-control/room-connector-control/type';
68
+ import { FcrIPConnectorSessionType, FcrIPConnectorSessionTypeToStringMap, FcrPhoneConnectorSessionType, FcrPhoneConnectorSessionTypeToStringMap, FcrRoomConnectorPhoneRegion, FcrRoomConnectorSessionReason, FcrRoomConnectorSessionState } from 'fcr-core/lib/room-control/room-connector-control/type';
66
69
  import { createContext } from 'react';
67
70
  import { CONTACTS_WIDGET_ID } from '../../type';
68
71
  import { InviteStatus } from './enums';
@@ -70,6 +73,7 @@ import { FcrUIObjectKeys } from '../../object-manager';
70
73
  import { createLogger } from '../../utilities/logger';
71
74
  import { getInvitationInfoByRoomInfo } from '../../utilities/meeting-detail';
72
75
  import { FcrUIDialogKey } from '../../utilities/constant';
76
+ import { FcrUIToastKey } from '../toast-manager/type';
73
77
  var _A = /*#__PURE__*/new WeakMap();
74
78
  var _B = /*#__PURE__*/new WeakMap();
75
79
  var _C = /*#__PURE__*/new WeakMap();
@@ -141,6 +145,8 @@ var InviteStore = /*#__PURE__*/function () {
141
145
  // Get all required objects from objectManager
142
146
 
143
147
  this._mainRoomControl = objectManager.getObject(FcrUIObjectKeys.P_MAIN_ROOM_CONTROL_PROVIDER).mainRoomControl;
148
+ this._abilityProvider = objectManager.getObject(FcrUIObjectKeys.P_ABILITY_PROVIDER);
149
+ this._phoneAudioConnectorProvider = objectManager.getObject(FcrUIObjectKeys.P_PHONE_AUDIO_CONNECTOR_PROVIDER);
144
150
  this._messageProvider = objectManager.getObject(FcrUIObjectKeys.P_MESSAGE_PROVIDER);
145
151
  this._roomConnectorControl = this._mainRoomControl.getRoomConnectorControl();
146
152
  this._sharedMemberDataSource = objectManager.getObject(FcrUIObjectKeys.S_SHARED_MEMBER_DATA_SOURCE);
@@ -297,6 +303,26 @@ var InviteStore = /*#__PURE__*/function () {
297
303
  get: function get() {
298
304
  return this.roomInfo.roomId;
299
305
  }
306
+ }, {
307
+ key: "showInvitePstnTab",
308
+ get: function get() {
309
+ var types = this._phoneAudioConnectorProvider.getCallOutTypeArray();
310
+ var hasPstnPermission = types.includes(FcrPhoneConnectorSessionTypeToStringMap[FcrPhoneConnectorSessionType.PSTN]);
311
+ var hasVoltePermission = types.includes(FcrPhoneConnectorSessionTypeToStringMap[FcrPhoneConnectorSessionType.VOLTE]);
312
+ var isPstnCallOutSupported = this._abilityProvider.isCallOutAbilitySupported() && hasPstnPermission;
313
+ var isVolteCallOutSupported = this._abilityProvider.isCallOutVolteAbilitySupported() && hasVoltePermission;
314
+ return isPstnCallOutSupported || isVolteCallOutSupported;
315
+ }
316
+ }, {
317
+ key: "showInviteVoipTab",
318
+ get: function get() {
319
+ var types = this._phoneAudioConnectorProvider.getCallOutTypeArray();
320
+ var hasH323Permission = types.includes(FcrIPConnectorSessionTypeToStringMap[FcrIPConnectorSessionType.H323]);
321
+ var hasSipPermission = types.includes(FcrIPConnectorSessionTypeToStringMap[FcrIPConnectorSessionType.SIP]);
322
+ var isH323CallOutSupported = this._abilityProvider.isCallOutH323AbilitySupported() && hasH323Permission;
323
+ var isSipCallOutSupported = this._abilityProvider.isCallOutSipAbilitySupported() && hasSipPermission;
324
+ return isH323CallOutSupported || isSipCallOutSupported;
325
+ }
300
326
  }, {
301
327
  key: "widgetConfigByContacts",
302
328
  get: function get() {
@@ -305,16 +331,6 @@ var InviteStore = /*#__PURE__*/function () {
305
331
  });
306
332
  return contacts;
307
333
  }
308
- }, {
309
- key: "closeInviteDialog",
310
- value: function closeInviteDialog() {
311
- if (this._pstnSessionId) {
312
- this.stopSession('pstn');
313
- }
314
- if (this._voipSessionId) {
315
- this.stopSession('voip');
316
- }
317
- }
318
334
  }, {
319
335
  key: "release",
320
336
  value: function release() {
@@ -364,11 +380,12 @@ var InviteStore = /*#__PURE__*/function () {
364
380
  key: "startSessionByPhone",
365
381
  value: function () {
366
382
  var _startSessionByPhone = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref4) {
367
- var phoneNumber, userName, zone, _t2;
383
+ var phoneNumber, userName, zone, type, _t2;
368
384
  return _regeneratorRuntime.wrap(function (_context2) {
369
385
  while (1) switch (_context2.prev = _context2.next) {
370
386
  case 0:
371
387
  phoneNumber = _ref4.phoneNumber, userName = _ref4.userName, zone = _ref4.zone;
388
+ type = this._phoneAudioConnectorProvider.getPhoneCallOutType();
372
389
  this.isPstnCalling = true;
373
390
  this.calledPstnInfo = {
374
391
  phoneNumber: phoneNumber,
@@ -379,7 +396,8 @@ var InviteStore = /*#__PURE__*/function () {
379
396
  _context2.next = 2;
380
397
  return this._roomConnectorControl.startSessionByPhone({
381
398
  phoneNumber: phoneNumber,
382
- userName: userName
399
+ userName: userName,
400
+ type: type
383
401
  });
384
402
  case 2:
385
403
  this._pstnSessionId = _context2.sent;
@@ -389,7 +407,7 @@ var InviteStore = /*#__PURE__*/function () {
389
407
  case 3:
390
408
  _context2.prev = 3;
391
409
  _t2 = _context2["catch"](1);
392
- this.handleError(this.calledVoipInfo, _t2, 'voip');
410
+ this.handleError(this.calledVoipInfo, _t2, 'pstn');
393
411
  case 4:
394
412
  case "end":
395
413
  return _context2.stop();
@@ -493,6 +511,12 @@ var InviteStore = /*#__PURE__*/function () {
493
511
  value: function handleError(info, error, sessionType) {
494
512
  var _this2 = this;
495
513
  this.updateInviteStatus(info, InviteStatus.ERROR);
514
+ this.showToast({
515
+ key: FcrUIToastKey.ERR_MESSAGE,
516
+ params: {
517
+ message: "code: ".concat(error.code, ", message: ").concat(error.message)
518
+ }
519
+ });
496
520
  setTimeout(function () {
497
521
  if (sessionType === 'pstn') {
498
522
  _this2.isPstnCalling = false;
@@ -2,40 +2,61 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import "core-js/modules/es.array.push.js";
3
3
  import "core-js/modules/es.function.name.js";
4
4
  import { observer } from 'mobx-react';
5
- import { useContext, useState } from 'react';
5
+ import { useContext, useMemo, useState } from 'react';
6
6
  import { PSTNInvite } from './components/pstn-invite';
7
7
  import { VoipInvite } from './components/voip-invite';
8
8
  import { useI18n } from 'agora-ui-foundation/lib/i18n';
9
9
  import FcrTabFrame from '../components/tab-frame';
10
10
  import { InviteType } from './enums';
11
11
  import { StoreContext } from './store';
12
- import { jsx as _jsx } from "react/jsx-runtime";
12
+ import CopyInfo from './components/copy-info';
13
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
13
14
  export var View = observer(function (props) {
14
15
  var contactsChildren = props.contactsChildren;
15
16
  var _useContext = useContext(StoreContext),
16
- widgetConfigByContacts = _useContext.widgetConfigByContacts;
17
- var widgetConfigByContactsId = widgetConfigByContacts === null || widgetConfigByContacts === void 0 ? void 0 : widgetConfigByContacts.id;
18
- var _useState = useState(InviteType.PSTN),
17
+ widgetConfigByContacts = _useContext.widgetConfigByContacts,
18
+ showInviteVoipTab = _useContext.showInviteVoipTab,
19
+ showInvitePstnTab = _useContext.showInvitePstnTab;
20
+ var transI18n = useI18n();
21
+ var _useState = useState(InviteType.COPY),
19
22
  _useState2 = _slicedToArray(_useState, 2),
20
23
  currentInviteType = _useState2[0],
21
24
  setCurrentInviteType = _useState2[1];
22
- var transI18n = useI18n();
23
- var tabs = [{
24
- label: "".concat(transI18n('fmt_pstn_label_phonecall')),
25
- key: InviteType.PSTN,
26
- content: /*#__PURE__*/_jsx(PSTNInvite, {})
27
- }, {
28
- label: "".concat(transI18n('fmt_sip_options_H323')),
29
- key: InviteType.VOIP,
30
- content: /*#__PURE__*/_jsx(VoipInvite, {})
31
- }];
32
- if (widgetConfigByContacts) {
33
- tabs.push({
34
- label: widgetConfigByContacts.name,
35
- key: widgetConfigByContactsId,
36
- content: contactsChildren
37
- });
38
- }
25
+ var tabs = useMemo(function () {
26
+ var tabs = [{
27
+ label: transI18n('fmt_invitepage_label_by_invitation'),
28
+ key: InviteType.COPY,
29
+ content: /*#__PURE__*/_jsx(CopyInfo, {})
30
+ }];
31
+ if (showInvitePstnTab) {
32
+ tabs.push({
33
+ label: "".concat(transI18n('fmt_pstn_label_phonecall')),
34
+ key: InviteType.PSTN,
35
+ content: /*#__PURE__*/_jsx(PSTNInvite, {})
36
+ });
37
+ }
38
+ if (showInviteVoipTab) {
39
+ tabs.push({
40
+ label: transI18n('fmt_invitepage_label_meeting_connector'),
41
+ key: InviteType.VOIP,
42
+ content: /*#__PURE__*/_jsx(VoipInvite, {})
43
+ });
44
+ }
45
+ if (widgetConfigByContacts) {
46
+ tabs.push({
47
+ key: InviteType.WIDGET,
48
+ label: widgetConfigByContacts.name,
49
+ content: /*#__PURE__*/_jsx(_Fragment, {
50
+ children: contactsChildren
51
+ })
52
+ });
53
+ }
54
+ var isSingleTab = tabs.length === 1;
55
+ if (isSingleTab && tabs[0].key === InviteType.COPY) {
56
+ tabs[0].label = transI18n('fmt_invitepage_label_meeting_details');
57
+ }
58
+ return tabs;
59
+ }, [transI18n, widgetConfigByContacts, contactsChildren, showInvitePstnTab, showInviteVoipTab]);
39
60
  return /*#__PURE__*/_jsx(FcrTabFrame, {
40
61
  activeKey: currentInviteType,
41
62
  onChange: function onChange(key) {