fcr-ui-scene 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/installer/icons/favicon.ico +0 -0
  2. package/installer/icons/favicon.png +0 -0
  3. package/installer/mac/entitlements.mac.plist +16 -0
  4. package/lib/common/device-store.d.ts +1 -1
  5. package/lib/common/device-store.js +11 -3
  6. package/lib/common/event-store.d.ts +17 -1
  7. package/lib/common/event-store.js +38 -5
  8. package/lib/common/security-store.d.ts +14 -4
  9. package/lib/common/security-store.js +149 -30
  10. package/lib/electron/bootstrap-dev.d.ts +1 -0
  11. package/lib/electron/bootstrap-dev.js +51 -0
  12. package/lib/electron/bootstrap-sdk.d.ts +1 -0
  13. package/lib/electron/bootstrap-sdk.js +56 -0
  14. package/lib/electron/bootstrap.d.ts +1 -0
  15. package/lib/electron/bootstrap.js +56 -0
  16. package/lib/electron/default-options.js +1 -1
  17. package/lib/electron/dev.d.ts +1 -0
  18. package/lib/electron/dev.js +51 -0
  19. package/lib/electron/injections.d.ts +1 -1
  20. package/lib/electron/injections.js +3 -6
  21. package/lib/electron/main.js +4 -16
  22. package/lib/electron/plugins/meeting-state.d.ts +2 -0
  23. package/lib/electron/plugins/meeting-state.js +39 -0
  24. package/lib/electron/preload.js +1 -1
  25. package/lib/fragments/control-bar/control-bar-store.d.ts +34 -1
  26. package/lib/fragments/control-bar/control-bar-store.js +371 -79
  27. package/lib/fragments/control-bar/device/index.js +5 -3
  28. package/lib/fragments/control-bar/index.css +15 -10
  29. package/lib/fragments/control-bar/index.js +18 -0
  30. package/lib/fragments/control-bar/meeting-details/meeting-detail.css +109 -0
  31. package/lib/fragments/control-bar/meeting-details/meeting-details-portal.d.ts +3 -0
  32. package/lib/fragments/control-bar/meeting-details/meeting-details-portal.js +60 -0
  33. package/lib/fragments/control-bar/meeting-details/meeting-details.d.ts +2 -0
  34. package/lib/fragments/control-bar/meeting-details/meeting-details.js +179 -0
  35. package/lib/fragments/control-bar/more-actions/index.css +53 -0
  36. package/lib/fragments/control-bar/more-actions/index.js +72 -37
  37. package/lib/fragments/control-bar/security-content/index.css +10 -0
  38. package/lib/fragments/control-bar/security-content/index.js +40 -18
  39. package/lib/fragments/control-bar/view.js +8 -2
  40. package/lib/login-confirm-dialog.d.ts +12 -0
  41. package/lib/login-confirm-dialog.js +80 -0
  42. package/lib/modules/action-bar/action-bar-collapes-items.js +5 -5
  43. package/lib/modules/action-bar/chat/index.js +5 -5
  44. package/lib/modules/action-bar/device/index.css +7 -2
  45. package/lib/modules/action-bar/device/index.js +4 -4
  46. package/lib/modules/action-bar/index.css +59 -12
  47. package/lib/modules/action-bar/index.d.ts +3 -2
  48. package/lib/modules/action-bar/index.dev.js +1 -1
  49. package/lib/modules/action-bar/index.js +21 -0
  50. package/lib/modules/action-bar/leave/assign-host.d.ts +3 -0
  51. package/lib/modules/action-bar/leave/assign-host.js +2 -4
  52. package/lib/modules/action-bar/leave/index.js +29 -6
  53. package/lib/modules/action-bar/leave/leave-meeting.d.ts +11 -0
  54. package/lib/modules/action-bar/leave/leave-meeting.js +25 -16
  55. package/lib/modules/action-bar/more/poppover-content.js +4 -4
  56. package/lib/modules/action-bar/participants/index.css +12 -0
  57. package/lib/modules/action-bar/participants/index.js +21 -14
  58. package/lib/modules/action-bar/screen-share/index.js +5 -1
  59. package/lib/modules/action-bar/screen-share/submenu.js +16 -22
  60. package/lib/modules/action-bar/security/drop-menu.js +90 -13
  61. package/lib/modules/action-bar/store.d.ts +38 -6
  62. package/lib/modules/action-bar/store.js +487 -95
  63. package/lib/modules/action-bar/view.js +65 -42
  64. package/lib/modules/chat/chat-bar/index.js +39 -27
  65. package/lib/modules/chat/chat-select/index.css +14 -4
  66. package/lib/modules/chat/chat.d.ts +1 -2
  67. package/lib/modules/chat/chat.js +184 -105
  68. package/lib/modules/chat/index.css +49 -0
  69. package/lib/modules/chat/index.d.ts +2 -2
  70. package/lib/modules/chat/index.dev.js +1 -1
  71. package/lib/modules/chat/index.js +13 -8
  72. package/lib/modules/chat/message-list.js +59 -48
  73. package/lib/modules/chat/store.d.ts +48 -2
  74. package/lib/modules/chat/store.js +258 -45
  75. package/lib/modules/connection-gateway/index.d.ts +2 -1
  76. package/lib/modules/connection-gateway/store.d.ts +6 -3
  77. package/lib/modules/connection-gateway/store.js +5 -1
  78. package/lib/modules/device-pretest/audio-preview/speaker-control.js +1 -1
  79. package/lib/modules/device-pretest/index.css +0 -4
  80. package/lib/modules/device-pretest/settings/beauty.js +17 -6
  81. package/lib/modules/device-pretest/store.js +7 -11
  82. package/lib/modules/dialog/components/chat/electron.js +2 -1
  83. package/lib/modules/dialog/components/confirm/electron.js +5 -3
  84. package/lib/modules/dialog/components/connection-gateway/electron.js +3 -1
  85. package/lib/modules/dialog/components/connection-gateway/index.css +0 -2
  86. package/lib/modules/dialog/components/device-setting/electron.js +3 -1
  87. package/lib/modules/dialog/components/device-setting/index.css +0 -1
  88. package/lib/modules/dialog/components/operation-waiting-room/electron.d.ts +5 -0
  89. package/lib/modules/dialog/components/operation-waiting-room/electron.js +89 -0
  90. package/lib/modules/dialog/components/operation-waiting-room/index.css +44 -0
  91. package/lib/modules/dialog/components/operation-waiting-room/index.d.ts +5 -0
  92. package/lib/modules/dialog/components/operation-waiting-room/index.js +156 -0
  93. package/lib/modules/dialog/components/participant/electron.js +2 -1
  94. package/lib/modules/dialog/components/remove-admit-waiting-room/electron.d.ts +5 -0
  95. package/lib/modules/dialog/components/remove-admit-waiting-room/electron.js +89 -0
  96. package/lib/modules/dialog/components/remove-admit-waiting-room/index.css +50 -0
  97. package/lib/modules/dialog/components/remove-admit-waiting-room/index.d.ts +5 -0
  98. package/lib/modules/dialog/components/remove-admit-waiting-room/index.js +90 -0
  99. package/lib/modules/dialog/components/whiteboard/index.js +2 -1
  100. package/lib/modules/dialog/dialogs.js +17 -13
  101. package/lib/modules/dialog/index.css +2 -0
  102. package/lib/modules/dialog/store.d.ts +4 -0
  103. package/lib/modules/dialog/store.js +16 -2
  104. package/lib/modules/event-notification/context.d.ts +2 -0
  105. package/lib/modules/event-notification/context.js +9 -0
  106. package/lib/modules/event-notification/index.css +58 -0
  107. package/lib/modules/event-notification/index.d.ts +13 -0
  108. package/lib/modules/event-notification/index.js +48 -0
  109. package/lib/modules/event-notification/store.d.ts +17 -0
  110. package/lib/modules/event-notification/store.js +133 -0
  111. package/lib/modules/event-notification/view.d.ts +5 -0
  112. package/lib/modules/event-notification/view.js +114 -0
  113. package/lib/modules/invite/index.css +4 -4
  114. package/lib/modules/invite/pstn-invite.js +1 -0
  115. package/lib/modules/layout/components/Gallery.js +7 -1
  116. package/lib/modules/layout/components/Layout.js +82 -57
  117. package/lib/modules/layout/components/index.css +33 -6
  118. package/lib/modules/layout/index.css +30 -0
  119. package/lib/modules/layout/member-window/index.js +9 -3
  120. package/lib/modules/layout/store.d.ts +19 -2
  121. package/lib/modules/layout/store.js +177 -70
  122. package/lib/modules/layout/video-window-datasource.d.ts +1 -1
  123. package/lib/modules/layout/video-window-datasource.js +1 -1
  124. package/lib/modules/live-streaming/index.dev.js +1 -1
  125. package/lib/modules/participant/attendee/index.d.ts +12 -3
  126. package/lib/modules/participant/attendee/index.js +132 -30
  127. package/lib/modules/participant/index.css +20 -0
  128. package/lib/modules/participant/index.d.ts +5 -2
  129. package/lib/modules/participant/index.dev.js +1 -1
  130. package/lib/modules/participant/index.js +27 -0
  131. package/lib/modules/participant/room-control-drop-menu/index.css +37 -0
  132. package/lib/modules/participant/store.d.ts +30 -5
  133. package/lib/modules/participant/store.js +347 -74
  134. package/lib/modules/participant/view.js +133 -34
  135. package/lib/modules/setting/index.css +1 -5
  136. package/lib/modules/setting/index.dev.js +1 -1
  137. package/lib/modules/setting/store.d.ts +2 -2
  138. package/lib/modules/setting/store.js +3 -8
  139. package/lib/modules/setting/translate-settings/translate-settings.js +1 -1
  140. package/lib/modules/setting/video-settings/index.css +9 -6
  141. package/lib/modules/share-screen/index.d.ts +2 -0
  142. package/lib/modules/share-screen/index.dev.js +3 -2
  143. package/lib/modules/share-screen/selection/index.css +2 -0
  144. package/lib/modules/share-screen/store.d.ts +6 -3
  145. package/lib/modules/share-screen/store.js +170 -129
  146. package/lib/modules/state-bar/index.css +2 -2
  147. package/lib/modules/state-bar/index.d.ts +2 -2
  148. package/lib/modules/state-bar/index.dev.js +1 -1
  149. package/lib/modules/state-bar/meeting-detail.css +6 -4
  150. package/lib/modules/state-bar/meeting-details.js +29 -3
  151. package/lib/modules/state-bar/meeting-network-state.css +14 -3
  152. package/lib/modules/state-bar/meeting-network-state.js +10 -4
  153. package/lib/modules/state-bar/recording.js +3 -5
  154. package/lib/modules/state-bar/store.d.ts +4 -2
  155. package/lib/modules/state-bar/store.js +18 -3
  156. package/lib/modules/state-bar/view.js +1 -6
  157. package/lib/modules/video-window/index.css +1 -0
  158. package/lib/modules/video-window/store.d.ts +2 -2
  159. package/lib/modules/video-window/store.js +14 -11
  160. package/lib/modules/waiting-room-layout/context.d.ts +2 -0
  161. package/lib/modules/waiting-room-layout/context.js +9 -0
  162. package/lib/modules/waiting-room-layout/index.css +71 -0
  163. package/lib/modules/waiting-room-layout/index.d.ts +8 -0
  164. package/lib/modules/waiting-room-layout/index.js +47 -0
  165. package/lib/modules/waiting-room-layout/store.d.ts +30 -0
  166. package/lib/modules/waiting-room-layout/store.js +189 -0
  167. package/lib/modules/waiting-room-layout/type.d.ts +0 -0
  168. package/lib/modules/waiting-room-layout/type.js +1 -0
  169. package/lib/modules/waiting-room-layout/view.d.ts +3 -0
  170. package/lib/modules/waiting-room-layout/view.js +67 -0
  171. package/lib/modules/whiteboard/app.js +0 -6
  172. package/lib/modules/whiteboard/components/control-bar/index.css +3 -0
  173. package/lib/modules/whiteboard/components/multi-window/index.js +6 -1
  174. package/lib/modules/whiteboard/components/progress/electron.js +2 -1
  175. package/lib/modules/whiteboard/components/switch-theme/index.css +4 -0
  176. package/lib/modules/whiteboard/components/switch-theme/index.d.ts +2 -1
  177. package/lib/modules/whiteboard/components/switch-theme/index.js +20 -15
  178. package/lib/modules/whiteboard/components/switch-theme/item.d.ts +1 -0
  179. package/lib/modules/whiteboard/components/switch-theme/item.js +9 -2
  180. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +14 -10
  181. package/lib/modules/whiteboard/components/toolbar/store.d.ts +1 -0
  182. package/lib/modules/whiteboard/components/toolbar/store.js +3 -0
  183. package/lib/modules/whiteboard/context.d.ts +4 -0
  184. package/lib/modules/whiteboard/context.js +4 -2
  185. package/lib/modules/whiteboard/index.js +22 -6
  186. package/lib/plugins/browser-runtime-plugin.js +1 -1
  187. package/lib/plugins/module-dev-plugin.js +8 -6
  188. package/lib/runtime.d.ts +1 -1
  189. package/lib/translations/enUS.d.ts +449 -6
  190. package/lib/translations/enUS.js +485 -32
  191. package/lib/translations/zhCN.d.ts +447 -6
  192. package/lib/translations/zhCN.js +468 -17
  193. package/lib/type.d.ts +6 -2
  194. package/lib/ui-manager.d.ts +7 -3
  195. package/lib/ui-manager.js +576 -139
  196. package/lib/ui-scene.d.ts +1 -0
  197. package/lib/ui-scene.js +26 -21
  198. package/lib/utilities/constant.d.ts +43 -4
  199. package/lib/utilities/constant.js +41 -1
  200. package/lib/utilities/parameters.js +2 -2
  201. package/lib/utilities/renderer.d.ts +1 -0
  202. package/lib/utilities/renderer.js +6 -2
  203. package/package.json +14 -14
  204. package/public/assets/fcr_defaultpage.png +0 -0
  205. package/public/assets/login_confirm.png +0 -0
  206. package/public/index.html +29 -11
  207. package/dist/132.js +0 -2
  208. package/dist/132.js.LICENSE.txt +0 -311
  209. package/dist/651.js +0 -2
  210. package/dist/651.js.LICENSE.txt +0 -1
  211. package/dist/73.js +0 -1
  212. package/dist/index.html +0 -13
  213. package/dist/main.da7c203ab32d15742cfe.css +0 -11760
  214. package/dist/main.js +0 -2
  215. package/dist/main.js.LICENSE.txt +0 -254
  216. package/dist/worker-entry.worker.js.LICENSE.txt +0 -13
  217. package/lib/modules/device-pretest/settings/index.css +0 -15
  218. package/lib/modules/participant/attendee/participants-more-action.d.ts +0 -18
  219. package/lib/modules/participant/attendee/participants-more-action.js +0 -278
@@ -71,7 +71,7 @@ var VideoDeviceListPopoverContent = function VideoDeviceListPopoverContent(props
71
71
  className: "color-dark-gray-icontext1",
72
72
  children: device.deviceName
73
73
  }),
74
- iconColor: 'var(--fcr_ui_scene_ramp_brand6)',
74
+ iconColor: 'var(--fcr_ui_scene_icontext1)',
75
75
  styleType: 'transparent',
76
76
  checked: currentDevice === device.deviceId,
77
77
  value: device.deviceId
@@ -147,7 +147,8 @@ var AudioDeviceListPopoverContent = function AudioDeviceListPopoverContent(props
147
147
  className: "color-dark-gray-icontext1",
148
148
  children: device.deviceName
149
149
  }),
150
- iconColor: 'var(--fcr_ui_scene_ramp_brand6)',
150
+ // iconColor: 'var(--fcr_ui_scene_ramp_brand6)',
151
+ iconColor: 'var(--fcr_ui_scene_icontext1)',
151
152
  styleType: 'transparent',
152
153
  checked: currentSpeakerDevice === device.deviceId,
153
154
  value: device.deviceId
@@ -174,7 +175,8 @@ var AudioDeviceListPopoverContent = function AudioDeviceListPopoverContent(props
174
175
  className: "color-dark-gray-icontext1",
175
176
  children: device.deviceName
176
177
  }),
177
- iconColor: 'var(--fcr_ui_scene_ramp_brand6)',
178
+ // iconColor: 'var(--fcr_ui_scene_ramp_brand6)',
179
+ iconColor: 'var(--fcr_ui_scene_icontext1)',
178
180
  styleType: 'transparent',
179
181
  checked: currentMicrophoneDevice === device.deviceId,
180
182
  value: device.deviceId
@@ -76,7 +76,7 @@
76
76
  .share-action-nav__popover {
77
77
  color: var(--fcr_ui_scene_icontext1);
78
78
  border: 0.5px solid var(--fcr_ui_scene_line1);
79
- box-shadow: 0px 0px 15px var(--fcr_web_light_dropup_m);
79
+ box-shadow: var(--fcr_web_light_dropup_m);
80
80
  border-radius: var(--fcr_cornerradius_l);
81
81
  background-color: var(--fcr_mobile_ui_scene_color_popup_fill2);
82
82
  }
@@ -106,6 +106,7 @@
106
106
  gap: 8px;
107
107
  padding: 6px;
108
108
  box-sizing: border-box;
109
+ padding-left: 38px;
109
110
  }
110
111
 
111
112
  .share-action-nav__popover-option:hover {
@@ -118,7 +119,16 @@
118
119
  flex-wrap: nowrap;
119
120
  align-items: center;
120
121
  gap: 8px;
121
- padding: 0;
122
+ padding-left: 6px;
123
+ }
124
+
125
+ .share-action-nav__media-list-group .fcr-radio-transparent:hover span,
126
+ .share-action-nav__popover-option:hover {
127
+ color: var(--fcr_web_ui_scene_mainicon2);
128
+ }
129
+
130
+ .share-action-nav__popover-option-media-setting:hover path {
131
+ fill: var(--fcr_ui_scene_ramp_brand6);
122
132
  }
123
133
 
124
134
  .share-action-nav__button .fcr-radio {
@@ -177,9 +187,10 @@
177
187
  transform: translateY(-54px);
178
188
  }
179
189
 
180
- .radio-label-active {
190
+ /* .radio-label-active {
181
191
  color: var(--fcr_web_ui_scene_mainicon2);
182
- }
192
+ } */
193
+
183
194
  .radio-label-normal {
184
195
  color: var(--fcr_ui_scene_icontext1);
185
196
  }
@@ -210,12 +221,6 @@
210
221
  flex-basis: 40px;
211
222
  }
212
223
 
213
- .leave-container {
214
- position: relative;
215
- padding: 20px;
216
- max-height: 368px;
217
- }
218
-
219
224
  .leave-title {
220
225
  width: 100%;
221
226
  height: 39px;
@@ -121,6 +121,9 @@ var ControlBar = exports.ControlBar = /*#__PURE__*/function (_BaseFragment) {
121
121
  case _constant.RendererEventAction.MAIN_SET_ALLOW_SHARE_SCREEN:
122
122
  this._store.setAllowShareScreen(payload.allow);
123
123
  break;
124
+ case _constant.RendererEventAction.MAIN_SET_ALLOW_BOARD_WRITE:
125
+ this._store.setBoardWriteEnabled(payload.allow);
126
+ break;
124
127
  case _constant.RendererEventAction.MAIN_SET_ALLOW_UNMUTE_SELF_VIDEO:
125
128
  this._store.setAllowUnmuteSelfVideo(payload.allow);
126
129
  break;
@@ -197,6 +200,21 @@ var ControlBar = exports.ControlBar = /*#__PURE__*/function (_BaseFragment) {
197
200
  case _constant.RendererEventAction.SET_SHARE_WITH_AUDIO_CONTROL_BAR:
198
201
  this._store.setShareWithAudioStateOnly(payload.withAudio);
199
202
  break;
203
+ case _constant.RendererEventAction.SET_REMOTE_USERS:
204
+ this._store.setRemoteUsers(payload);
205
+ break;
206
+ case _constant.RendererEventAction.SET_HAS_ASSIGN_HOST_BEFORE_LEAVING_PERMISSION:
207
+ this._store.setHasAssignHostBeforeLeavingPermission(payload);
208
+ break;
209
+ case _constant.RendererEventAction.SET_HAS_END_ROOM_PERMISSION:
210
+ this._store.setHasEndRoomPermission(payload);
211
+ break;
212
+ case _constant.RendererEventAction.SET_IS_LOCKED:
213
+ this._store.setIsLocked(payload);
214
+ break;
215
+ case _constant.RendererEventAction.SET_IS_PSTN_USER:
216
+ this._store.setIsPstnUser(payload);
217
+ break;
200
218
  }
201
219
  }
202
220
  }]);
@@ -0,0 +1,109 @@
1
+ .meeting-details {
2
+ display: flex;
3
+ flex-direction: column;
4
+ width: 206px;
5
+ padding: 15px;
6
+ border-radius: var(--fcr_cornerradius_s);
7
+ background-color: var(--fcr_mobile_ui_scene_color_popup_fill2, #3c3c3c);
8
+ box-shadow: 0px 0px 15px 0px #8f8f8f26;
9
+ }
10
+
11
+ .meeting-details__header {
12
+ display: flex;
13
+ align-items: center;
14
+ font-size: 14px;
15
+ font-weight: 600;
16
+ color: var(--fcr_ui_scene_icontext1, #ffffff);
17
+ user-select: none;
18
+ }
19
+
20
+ .meeting-details__content {
21
+ margin-top: 12px;
22
+ }
23
+
24
+ .meeting-details__content-meeting-subject {
25
+ font-size: 12px;
26
+ font-weight: 600;
27
+ color: var(--fcr_ui_scene_icontext1, #ffffff);
28
+ word-break: break-all;
29
+ text-align: left;
30
+ min-height: 32px;
31
+ line-height: 32px;
32
+ }
33
+
34
+ .meeting-details__content-meeting-id,
35
+ .meeting-details__content-code,
36
+ .meeting-details__content-share-link {
37
+ display: flex;
38
+ align-items: center;
39
+ line-height: 32px;
40
+ font-size: 12px;
41
+ font-weight: 300;
42
+ color: var(--fcr_ui_scene_icontext1, #ffffff);
43
+ }
44
+
45
+ .meeting-details__content-meeting-id > span,
46
+ .meeting-details__content-code > span {
47
+ font-weight: 600;
48
+ }
49
+
50
+ .meeting-details__content-meeting-id > label,
51
+ .meeting-details__content-code > label,
52
+ .meeting-details__content-share-link > label {
53
+ user-select: none;
54
+ flex-shrink: 0;
55
+ }
56
+ .meeting-details__content-meeting-id > span,
57
+ .meeting-details__content-code > span,
58
+ .meeting-details__content-share-link > span {
59
+ margin-left: 10px;
60
+ flex-grow: 1;
61
+ text-align: right;
62
+ text-overflow: ellipsis;
63
+ overflow: hidden;
64
+ white-space: nowrap;
65
+ }
66
+
67
+ .meeting-details__content-code > span.none {
68
+ font-weight: 400 !important;
69
+ }
70
+
71
+ .meeting-details__content-meeting-id > div > svg,
72
+ .meeting-details__content-code > div > svg,
73
+ .meeting-details__content-share-link > div > svg {
74
+ flex-shrink: 0;
75
+ margin-left: 8px;
76
+ border-radius: var(--fcr_cornerradius_s, 4px);
77
+ cursor: pointer;
78
+ }
79
+
80
+ .meeting-details__content-meeting-id > div > svg:hover,
81
+ .meeting-details__content-code > div > svg:hover,
82
+ .meeting-details__content-share-link > div > svg:hover {
83
+ background-color: var(--fcr_web_ui_scene_hover);
84
+ fill: var(--fcr_web_ui_scene_mainicon2);
85
+ }
86
+
87
+ .meeting-details__footer {
88
+ margin-top: 4px;
89
+ display: flex;
90
+ }
91
+
92
+ .meeting-details__footer > button {
93
+ flex: 1;
94
+ }
95
+
96
+ .meeting-details__footer > button > p {
97
+ display: flex;
98
+ align-items: center;
99
+ position: relative;
100
+ }
101
+
102
+ .meeting-details__footer > button > p > svg {
103
+ position: absolute;
104
+ left: -18px;
105
+ }
106
+
107
+ .meeting-details__footer > button > p > span {
108
+ margin-left: 8px;
109
+ }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const MeetingDetailsPortal: () => React.ReactPortal | null;
3
+ export default MeetingDetailsPortal;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.array.iterator.js");
4
+ require("core-js/modules/es.object.define-property.js");
5
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
6
+ require("core-js/modules/es.object.to-string.js");
7
+ require("core-js/modules/es.string.iterator.js");
8
+ require("core-js/modules/es.weak-map.js");
9
+ require("core-js/modules/esnext.weak-map.delete-all.js");
10
+ require("core-js/modules/esnext.weak-map.emplace.js");
11
+ require("core-js/modules/web.dom-collections.iterator.js");
12
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
13
+ var _typeof = require("@babel/runtime/helpers/typeof");
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ exports["default"] = void 0;
18
+ var _react = _interopRequireWildcard(require("react"));
19
+ var _reactDom = _interopRequireDefault(require("react-dom"));
20
+ var _mobxReact = require("mobx-react");
21
+ var _meetingDetails = require("./meeting-details");
22
+ var _context = require("../context");
23
+ var _jsxRuntime = require("react/jsx-runtime");
24
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
25
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
26
+ var MeetingDetailsPortal = (0, _mobxReact.observer)(function () {
27
+ var container = document.createElement('div');
28
+ var _useContext = (0, _react.useContext)(_context.StoreContext),
29
+ startTime = _useContext.startTime,
30
+ roomInfo = _useContext.roomInfo,
31
+ userName = _useContext.userName,
32
+ inviteLink = _useContext.inviteLink,
33
+ isShowMeetingDetailPortal = _useContext.isShowMeetingDetailPortal,
34
+ meetingDetailPortalLeft = _useContext.meetingDetailPortalLeft,
35
+ meetingDetailPortalTop = _useContext.meetingDetailPortalTop,
36
+ setShowMeetingDetailPortal = _useContext.setShowMeetingDetailPortal;
37
+ (0, _react.useEffect)(function () {
38
+ if (isShowMeetingDetailPortal) {
39
+ container.style.position = 'absolute';
40
+ container.style.left = "".concat(meetingDetailPortalLeft, "px");
41
+ container.style.top = "".concat(meetingDetailPortalTop, "px");
42
+ document.body.appendChild(container);
43
+ var handleClickOutside = function handleClickOutside(event) {
44
+ if (!container.contains(event.target)) {
45
+ setShowMeetingDetailPortal(false);
46
+ }
47
+ };
48
+ document.addEventListener('mousedown', handleClickOutside);
49
+ return function () {
50
+ document.body.removeChild(container);
51
+ document.removeEventListener('mousedown', handleClickOutside);
52
+ };
53
+ }
54
+ }, [isShowMeetingDetailPortal, container, meetingDetailPortalLeft, meetingDetailPortalTop, setShowMeetingDetailPortal]);
55
+ if (!isShowMeetingDetailPortal) {
56
+ return null;
57
+ }
58
+ return /*#__PURE__*/_reactDom["default"].createPortal(/*#__PURE__*/(0, _jsxRuntime.jsx)(_meetingDetails.MeetingDetails, {}), container);
59
+ });
60
+ var _default = exports["default"] = MeetingDetailsPortal;
@@ -0,0 +1,2 @@
1
+ import './meeting-detail.css';
2
+ export declare const MeetingDetails: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.MeetingDetails = void 0;
9
+ require("core-js/modules/es.error.to-string.js");
10
+ require("core-js/modules/es.array.concat.js");
11
+ require("core-js/modules/es.array.includes.js");
12
+ require("core-js/modules/es.date.to-json.js");
13
+ require("core-js/modules/es.json.stringify.js");
14
+ require("core-js/modules/es.regexp.exec.js");
15
+ require("core-js/modules/es.string.includes.js");
16
+ require("core-js/modules/es.string.replace.js");
17
+ require("core-js/modules/web.btoa.js");
18
+ require("core-js/modules/web.dom-exception.constructor.js");
19
+ require("core-js/modules/web.dom-exception.stack.js");
20
+ require("core-js/modules/web.dom-exception.to-string-tag.js");
21
+ var _button = require("agora-ui-foundation/lib/components/button");
22
+ var _icon = require("agora-ui-foundation/lib/components/icon");
23
+ var _toast = require("agora-ui-foundation/lib/components/toast");
24
+ var _type = require("agora-ui-foundation/lib/components/icon/type");
25
+ var _i18n = require("agora-ui-foundation/lib/i18n");
26
+ var _copyText = require("../../../utilities/copyText");
27
+ var _mobxReact = require("mobx-react");
28
+ var _react = require("react");
29
+ require("./meeting-detail.css");
30
+ var _dayjs = _interopRequireDefault(require("dayjs"));
31
+ var _context = require("../context");
32
+ var _jsxRuntime = require("react/jsx-runtime");
33
+ var MeetingDetails = exports.MeetingDetails = (0, _mobxReact.observer)(function () {
34
+ var t = (0, _i18n.useI18n)();
35
+ var _useContext = (0, _react.useContext)(_context.StoreContext),
36
+ startTime = _useContext.startTime,
37
+ roomInfo = _useContext.roomInfo,
38
+ userName = _useContext.userName,
39
+ inviteLink = _useContext.inviteLink,
40
+ setShowMeetingDetailPortal = _useContext.setShowMeetingDetailPortal;
41
+ var getShareLink = function getShareLink() {
42
+ var info = {
43
+ roomId: roomInfo === null || roomInfo === void 0 ? void 0 : roomInfo.roomId,
44
+ roomName: roomInfo === null || roomInfo === void 0 ? void 0 : roomInfo.roomName,
45
+ userName: userName
46
+ };
47
+ var strArgs = "info=".concat(btoa(encodeURIComponent(JSON.stringify(info))));
48
+ var baseLink = "".concat(inviteLink);
49
+ if (baseLink.includes('?')) {
50
+ return "".concat(baseLink, "&").concat(strArgs);
51
+ }
52
+ return "".concat(baseLink, "?").concat(strArgs);
53
+ };
54
+ var shareLink = (0, _react.useMemo)(function () {
55
+ return getShareLink();
56
+ }, []);
57
+ if (!roomInfo || !userName) return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {});
58
+ var displayMeetingId = roomInfo.roomId.replace(/(.{3})/g, '$1 ');
59
+ var detailText = t('fmt_sharing_label_invitationdetailed', {
60
+ reason1: userName,
61
+ reason2: roomInfo === null || roomInfo === void 0 ? void 0 : roomInfo.roomName,
62
+ reason3: (0, _dayjs["default"])(startTime !== null && startTime !== void 0 ? startTime : 0).format('YYYY-MM-DD HH:mm:ss'),
63
+ reason4: shareLink
64
+ });
65
+ function handleCopyMeetingId(meetingId) {
66
+ (0, _copyText.copyText)(meetingId).then(function () {
67
+ setShowMeetingDetailPortal(false);
68
+ _toast.FcrToastApi.open({
69
+ toastProps: {
70
+ type: 'info',
71
+ content: t('fmt_statusbar_status_coppied')
72
+ }
73
+ });
74
+ })["catch"](function () {
75
+ setShowMeetingDetailPortal(false);
76
+ _toast.FcrToastApi.open({
77
+ toastProps: {
78
+ type: 'warn',
79
+ content: t('fmt_information_tips_numbercopyfailed')
80
+ }
81
+ });
82
+ });
83
+ }
84
+ function handlerCopyMeetingShareLink(shareLink) {
85
+ (0, _copyText.copyText)(shareLink).then(function () {
86
+ setShowMeetingDetailPortal(false);
87
+ _toast.FcrToastApi.open({
88
+ toastProps: {
89
+ type: 'info',
90
+ content: t('fmt_additional_tips_invitation')
91
+ }
92
+ });
93
+ })["catch"](function () {
94
+ setShowMeetingDetailPortal(false);
95
+ _toast.FcrToastApi.open({
96
+ toastProps: {
97
+ type: 'warn',
98
+ content: t('fmt_additional_tips_invitationfailed')
99
+ }
100
+ });
101
+ });
102
+ }
103
+ function handlerCopyMeetingDetail(detailText) {
104
+ (0, _copyText.copyText)(detailText).then(function () {
105
+ setShowMeetingDetailPortal(false);
106
+ _toast.FcrToastApi.open({
107
+ toastProps: {
108
+ type: 'info',
109
+ content: t('fmt_sharing_tips_copyto_clipboard')
110
+ }
111
+ });
112
+ })["catch"](function () {
113
+ _toast.FcrToastApi.open({
114
+ toastProps: {
115
+ type: 'warn',
116
+ content: t('fmt_sharing_tips_copyfull_failed')
117
+ }
118
+ });
119
+ });
120
+ }
121
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
122
+ className: "meeting-details",
123
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
124
+ className: "meeting-details__header",
125
+ children: t('fmt_information_label_sharemeetingnumber')
126
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
127
+ className: "meeting-details__content",
128
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
129
+ className: "meeting-details__content-meeting-subject",
130
+ children: roomInfo.roomName
131
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
132
+ className: "meeting-details__content-meeting-id",
133
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
134
+ children: t('fmt_meetingInfo_window_info_meetingID')
135
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
136
+ children: displayMeetingId
137
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
138
+ onClick: function onClick() {
139
+ return handleCopyMeetingId(roomInfo.roomId);
140
+ },
141
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
142
+ type: _type.FcrIconType.FCR_COPY,
143
+ size: 22
144
+ })
145
+ })]
146
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
147
+ className: "meeting-details__content-share-link",
148
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
149
+ children: t('fmt_sharing_label_invitationlink')
150
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
151
+ children: shareLink
152
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
153
+ onClick: function onClick() {
154
+ return handlerCopyMeetingShareLink(shareLink);
155
+ },
156
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
157
+ type: _type.FcrIconType.FCR_COPY,
158
+ size: 22
159
+ })
160
+ })]
161
+ })]
162
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
163
+ className: "meeting-details__footer",
164
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_button.FcrButton, {
165
+ size: "XS",
166
+ shape: "rounded",
167
+ onClick: function onClick() {
168
+ return handlerCopyMeetingDetail(detailText);
169
+ },
170
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
171
+ type: _type.FcrIconType.FCR_LINK,
172
+ size: 20
173
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
174
+ children: t('fmt_sharing_button_copydetailed')
175
+ })]
176
+ })
177
+ })]
178
+ });
179
+ });
@@ -1,14 +1,23 @@
1
1
  .leave-room-dialog {
2
2
  }
3
+
3
4
  .leave-room-dialog .fcr-dialog-body {
4
5
  padding: 20px;
5
6
  }
7
+
8
+ .leave-room-dialog .fcr-button-secondary-bordered:hover {
9
+ color: var(--fcr_ui_scene_ramp_red6);
10
+ background: var(--fcr_ui_scene_ramp_red1);
11
+ border-color: var(--fcr_ui_scene_ramp_red6);
12
+ }
13
+
6
14
  .leave-room-dialog-content {
7
15
  display: flex;
8
16
  flex-direction: column;
9
17
  gap: 12px;
10
18
  width: 100%;
11
19
  }
20
+
12
21
  .leave-room-dialog-title {
13
22
  text-align: center;
14
23
  }
@@ -17,3 +26,47 @@
17
26
  .leave-room-dialog-content > div {
18
27
  width: 100%;
19
28
  }
29
+ .share-action-nav__popover-inner-content {
30
+ position: relative;
31
+ }
32
+
33
+ .share-action-nav__popover-inner-content
34
+ .share-action-nav__popover-inner-content-leave-option
35
+ path {
36
+ fill: var(--fcr_ui_scene_ramp_red6);
37
+ }
38
+
39
+ .share-action-nav__popover-inner-content
40
+ .share-action-nav__popover-inner-content-leave-option
41
+ .share-action-nav__popover-option {
42
+ color: var(--fcr_ui_scene_ramp_red6);
43
+ }
44
+
45
+ .share-action-nav__popover-inner-content
46
+ .share-action-nav__popover-inner-content-leave-option
47
+ .share-action-nav__popover-option:hover {
48
+ background: var(--fcr_ui_scene_ramp_red1);
49
+ }
50
+
51
+ .share-action-nav__media-list-group .share-action-nav__popover-option-media-setting {
52
+ padding-left: 6px;
53
+ }
54
+
55
+ .share-action-nav__media-list-item-with-divider {
56
+ min-height: 32px;
57
+ height: auto;
58
+ }
59
+
60
+ .share-action-nav__media-list-item-with-divider:after {
61
+ content: '';
62
+ height: 1px;
63
+ border-bottom: 1px solid var(--fcr_ui_scene_line1);
64
+ width: calc(100% + 16px);
65
+ bottom: 0px;
66
+ left: 0px;
67
+ height: 1px;
68
+ display: block;
69
+ margin: 8px;
70
+ position: relative;
71
+ left: -16px;
72
+ }