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
@@ -1,6 +1,7 @@
1
1
  html {
2
2
  --fcr-action-bar-height: 58px;
3
3
  }
4
+
4
5
  .fcr-action-bar {
5
6
  background: var(--fcr_web_ui_scene_fill2);
6
7
  width: 100%;
@@ -14,6 +15,7 @@ html {
14
15
  border-top-style: solid;
15
16
  z-index: 3;
16
17
  }
18
+
17
19
  .fcr-action-bar-hide {
18
20
  transform: translateY(var(--fcr-action-bar-height));
19
21
  }
@@ -25,9 +27,11 @@ html {
25
27
  flex-direction: row;
26
28
  align-items: center;
27
29
  }
30
+
28
31
  .fcr-action-bar-right {
29
32
  padding-right: 12px;
30
33
  }
34
+
31
35
  .fcr-action-bar-mid {
32
36
  flex: 1;
33
37
  flex-shrink: 1;
@@ -35,6 +39,7 @@ html {
35
39
  padding: 0 10px;
36
40
  justify-content: center;
37
41
  }
42
+
38
43
  .fcr-action-bar-collapse {
39
44
  display: flex;
40
45
  flex-flow: row nowrap;
@@ -42,6 +47,7 @@ html {
42
47
  overflow: hidden;
43
48
  flex: 1;
44
49
  }
50
+
45
51
  .fcr-action-bar-item-wrapper {
46
52
  background: transparent;
47
53
  width: fit-content;
@@ -55,9 +61,11 @@ html {
55
61
  flex-shrink: 0;
56
62
  position: relative;
57
63
  }
64
+
58
65
  .fcr-action-bar-extra {
59
66
  cursor: pointer;
60
67
  }
68
+
61
69
  @media screen and (max-width: 430px) {
62
70
  .fcr-action-bar-item-wrapper {
63
71
  min-width: 55px;
@@ -68,11 +76,16 @@ html {
68
76
  outline: 0;
69
77
  }
70
78
 
71
- .fcr-action-bar-item:hover,
79
+ .fcr-action-bar-item-wrapper:hover .fcr-action-bar-item {
80
+ background: var(--fcr_web_ui_scene_hover2);
81
+ border-radius: var(--fcr_cornerradius_s);
82
+ }
83
+
72
84
  .fcr-action-bar-item-active {
73
85
  background: var(--fcr_web_ui_scene_hover2);
74
86
  border-radius: var(--fcr_cornerradius_s);
75
87
  }
88
+
76
89
  .fcr-action-bar-item {
77
90
  flex: 1;
78
91
  display: inline-flex;
@@ -81,33 +94,41 @@ html {
81
94
  max-width: 100%;
82
95
  height: 100%;
83
96
  }
97
+
84
98
  .fcr-icon-green path,
85
99
  .fcr-icon-green-when-hover:hover path {
86
100
  fill: var(--fcr_ui_scene_ramp_green6);
87
101
  }
102
+
88
103
  .fcr-icon-blue path {
89
104
  fill: var(--fcr_ui_scene_ramp_brand6);
90
105
  }
106
+
91
107
  .fcr-checkbox-overlay-style svg path {
92
108
  fill: var(--fcr_ui_scene_icontext1);
93
109
  transition: all 0.1s ease;
94
110
  }
111
+
95
112
  .fcr-checkbox-overlay-style .fcr-checkbox-inner {
96
113
  width: 14px;
97
114
  height: 14px;
98
115
  background: transparent;
99
116
  }
117
+
100
118
  .fcr-checkbox-overlay-style .fcr-checkbox-inner svg {
101
119
  width: 14px;
102
120
  height: 14px;
103
121
  }
122
+
104
123
  .fcr-action-bar-item-disabled {
105
124
  cursor: not-allowed;
106
125
  }
126
+
107
127
  .fcr-action-bar-item-disabled .fcr-action-bar-item-icon,
108
128
  .fcr-action-bar-item-disabled .fcr-action-bar-item-text {
109
129
  opacity: 0.5;
110
130
  }
131
+
111
132
  .fcr-action-bar-item-text {
112
133
  color: var(--fcr_ui_scene_icontext2);
113
134
  font-weight: 400;
@@ -115,9 +136,11 @@ html {
115
136
  line-height: 12px;
116
137
  padding: 0 8px;
117
138
  }
139
+
118
140
  .fcr-action-bar-item-text span {
119
141
  white-space: nowrap;
120
142
  }
143
+
121
144
  .fcr-action-bar-cancel-leave {
122
145
  margin-right: 15px;
123
146
  margin-left: auto;
@@ -128,16 +151,39 @@ html {
128
151
  display: flex;
129
152
  align-items: center;
130
153
  }
154
+
131
155
  .fcr-action-bar--popover .fcr-drop-menu {
132
156
  text-align: left;
133
157
  }
158
+
134
159
  .fcr-action-bar--popover .fcr-checkbox-input-wrapper {
135
160
  border-color: transparent;
136
161
  }
162
+
137
163
  .fcr-action-bar--popover .fcr-tooltip-inner {
138
164
  border: none;
139
165
  box-shadow: var(--fcr_web_light_dropup_m) !important;
140
166
  }
167
+ .fcr-screen-share--popover .fcr-button > p {
168
+ max-width: 140px;
169
+ overflow: hidden;
170
+ white-space: nowrap;
171
+ text-overflow: ellipsis;
172
+ }
173
+
174
+ .fcr-action-bar--fold-wrap {
175
+ width: 100%;
176
+ display: flex;
177
+ /* position: absolute;
178
+ inset: auto auto 0px 0px; */
179
+ }
180
+
181
+ .fcr-action-bar--fold-btn {
182
+ width: 70px;
183
+ height: 22px;
184
+ margin-left: 50%;
185
+ }
186
+
141
187
  .fcr-action-bar--fold {
142
188
  width: 70px;
143
189
  height: 22px;
@@ -148,26 +194,21 @@ html {
148
194
  border-top-right-radius: 8px;
149
195
  border: 1px solid var(--fcr_ui_scene_line1);
150
196
  border-bottom: none;
151
- position: absolute;
152
- left: 50%;
153
- top: -21px;
154
- transform: translateX(-50%);
155
- background: #fff;
197
+ background-color: #fff;
156
198
  cursor: pointer;
157
199
  }
200
+
158
201
  .fcr-action-bar--fold-hotarea {
159
- width: 120px;
160
- height: 30px;
202
+ width: 100%;
203
+ height: 22px;
161
204
  display: flex;
162
- position: absolute;
163
- left: 50%;
164
- top: -30px;
165
- transform: translateX(-50%);
166
205
  }
206
+
167
207
  .fcr-action-bar--fold svg {
168
208
  width: 30px;
169
209
  height: 30px;
170
210
  }
211
+
171
212
  .fcr-action-bar--unfold {
172
213
  width: 52px;
173
214
  height: 50px;
@@ -176,18 +217,23 @@ html {
176
217
  justify-content: center;
177
218
  cursor: pointer;
178
219
  }
220
+
179
221
  .fcr-action-bar--unfold svg {
180
222
  transform: rotate(90deg);
181
223
  width: 40px;
182
224
  height: 40px;
183
225
  }
226
+
184
227
  .fcr-action-bar-fold-style {
185
228
  width: 110px;
186
229
  height: 50px;
187
230
  position: absolute;
188
231
  right: 15px;
189
232
  bottom: 15px;
233
+ border: none;
234
+ background-color: transparent;
190
235
  }
236
+
191
237
  .fcr-action-bar-smaller {
192
238
  width: 110px;
193
239
  height: 50px;
@@ -200,6 +246,7 @@ html {
200
246
  z-index: 1000;
201
247
  display: flex;
202
248
  }
249
+
203
250
  .fcr-action-bar-smaller-micphone {
204
251
  width: 58px;
205
252
  height: 50px;
@@ -1,12 +1,13 @@
1
1
  import { UIModule } from '../../base';
2
2
  import './index.css';
3
- import { FcrDesktopMediaControl, FcrBaseRoomControl, FcrStreamControl, FcrUserControl } from 'agora-edu-core';
3
+ import { FcrDesktopMediaControl, FcrStreamControl, FcrUserControl } from 'agora-edu-core';
4
4
  import { FcrUIEventStore } from '../../common/event-store';
5
5
  import { FcrDeviceStore } from '../../common/device-store';
6
6
  import { FcrSecurityStore } from '../../common/security-store';
7
7
  import { FcrDeviceStreamStore } from '../../common/device-stream-store';
8
+ import { FcrMainRoomControl, FcrWaitingRoomControl } from 'agora-edu-core/lib/room-control/type';
8
9
  interface FcrActionBarUIModuleArgs {
9
- roomControl: FcrBaseRoomControl;
10
+ roomControl: FcrMainRoomControl | FcrWaitingRoomControl;
10
11
  userControl: FcrUserControl;
11
12
  uiEventStore: FcrUIEventStore;
12
13
  deviceStore: FcrDeviceStore;
@@ -45,7 +45,7 @@ window.__DEV_ENGINE_IS_READY__.then(/*#__PURE__*/(0, _asyncToGenerator2["default
45
45
  _context.next = 4;
46
46
  return engine.login();
47
47
  case 4:
48
- roomControl = engine.createRoomControl(roomId);
48
+ roomControl = engine.createMainRoomControl(roomId);
49
49
  userRole = _type.FcrUserRole.HOST;
50
50
  userName = 'host-user';
51
51
  _context.next = 9;
@@ -79,6 +79,27 @@ var FcrActionBarUIModule = exports.FcrActionBarUIModule = /*#__PURE__*/function
79
79
  activeTab: _store2.DeviceSettingTab.AUDIO
80
80
  });
81
81
  }
82
+ if (event.action === _constant.RendererEventAction.LEAVE_ROOM) {
83
+ this._store.leave();
84
+ }
85
+ if (event.action === _constant.RendererEventAction.KEEP_PHONE_AUDIO_CONNECTION) {
86
+ this._store.keepPhoneAudioConnection();
87
+ }
88
+ if (event.action === _constant.RendererEventAction.END_ROOM) {
89
+ this._store.end();
90
+ }
91
+ if (event.action === _constant.RendererEventAction.REISSUE_CONTROLBAR_INFO) {
92
+ this._store.fetchNewestLeavingRoomCompProps();
93
+ }
94
+ if (event.action === _constant.RendererEventAction.ASSIGN_HOST) {
95
+ this._store.assignHost(event.payload);
96
+ }
97
+ if (event.action === _constant.RendererEventAction.CALL_CLOSE_MAIN_WINDOW) {
98
+ this._store.setPopoverOpened(true);
99
+ }
100
+ if (event.action === _constant.RendererEventAction.FRAGMENT_SET_ENABLE_WAITING_ROOM) {
101
+ this._store.setEnableWaitingRoom(event.payload.allow, true);
102
+ }
82
103
  }
83
104
  }, {
84
105
  key: "onUnload",
@@ -1,5 +1,8 @@
1
1
  import './index.css';
2
+ import { FcrUserInfo } from 'agora-edu-core/lib/type';
2
3
  interface AssignHostProps {
4
+ remoteUsers: FcrUserInfo[];
5
+ assignHost: (user: FcrUserInfo) => void;
3
6
  setPopoverOpened: React.Dispatch<React.SetStateAction<boolean>>;
4
7
  handleKeepConnect: () => void;
5
8
  }
@@ -13,14 +13,12 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
13
13
  var _mobxReact = require("mobx-react");
14
14
  var _react = require("react");
15
15
  require("./index.css");
16
- var _context2 = require("../context");
17
16
  var _chatSelect = require("../../chat/chat-select");
18
17
  var _i18n = require("agora-ui-foundation/lib/i18n");
19
18
  var _jsxRuntime = require("react/jsx-runtime");
20
19
  var AssignHost = exports.AssignHost = (0, _mobxReact.observer)(function (props) {
21
- var _useContext = (0, _react.useContext)(_context2.ActionBarContext),
22
- remoteUsers = _useContext.remoteUsers,
23
- assignHost = _useContext.assignHost;
20
+ var remoteUsers = props.remoteUsers,
21
+ assignHost = props.assignHost;
24
22
  var _useState = (0, _react.useState)(0),
25
23
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
26
24
  selected = _useState2[0],
@@ -41,15 +41,23 @@ var End = exports.End = (0, _mobxReact.observer)(function (props) {
41
41
  var transI18n = (0, _i18n.useI18n)();
42
42
  var _useContext = (0, _react.useContext)(_context.ActionBarContext),
43
43
  localUserRole = _useContext.localUserRole,
44
- toggleLayoutBarLock = _useContext.toggleLayoutBarLock;
44
+ toggleLayoutBarLock = _useContext.toggleLayoutBarLock,
45
+ remoteUsers = _useContext.remoteUsers,
46
+ end = _useContext.end,
47
+ leave = _useContext.leave,
48
+ isLocked = _useContext.isLocked,
49
+ hasAssignHostBeforeLeavingPermission = _useContext.hasAssignHostBeforeLeavingPermission,
50
+ hasEndRoomPermission = _useContext.hasEndRoomPermission,
51
+ keepPhoneAudioConnection = _useContext.keepPhoneAudioConnection,
52
+ isPstnUser = _useContext.isPstnUser,
53
+ assignHost = _useContext.assignHost,
54
+ popoverOpened = _useContext.popoverOpened,
55
+ _setPopoverOpened = _useContext.setPopoverOpened;
45
56
  var _useState = (0, _react.useState)(false),
46
57
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
47
58
  tooltipOpened = _useState2[0],
48
59
  setTooltipOpened = _useState2[1];
49
- var _useState3 = (0, _react.useState)(false),
50
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
51
- popoverOpened = _useState4[0],
52
- _setPopoverOpened = _useState4[1];
60
+ // const [popoverOpened, setPopoverOpened] = useState(false);
53
61
  var popOverRef = (0, _react.useRef)(false);
54
62
  var onTooltipChanged = function onTooltipChanged(v) {
55
63
  if (!popoverOpened) {
@@ -84,6 +92,11 @@ var End = exports.End = (0, _mobxReact.observer)(function (props) {
84
92
  window.removeEventListener('resize', reflow);
85
93
  };
86
94
  }, []);
95
+ (0, _react.useEffect)(function () {
96
+ if (popoverOpened) {
97
+ onPopoverChanged(popoverOpened);
98
+ }
99
+ }, [popoverOpened]);
87
100
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
88
101
  visible: tooltipOpened,
89
102
  onVisibleChange: onTooltipChanged,
@@ -102,7 +115,17 @@ var End = exports.End = (0, _mobxReact.observer)(function (props) {
102
115
  setPopoverOpened: function setPopoverOpened(value) {
103
116
  _setPopoverOpened(value);
104
117
  onPopoverChanged(false);
105
- }
118
+ },
119
+ localUserRole: localUserRole,
120
+ leave: leave,
121
+ isLocked: isLocked,
122
+ hasAssignHostBeforeLeavingPermission: hasAssignHostBeforeLeavingPermission,
123
+ hasEndRoomPermission: hasEndRoomPermission,
124
+ keepPhoneAudioConnection: keepPhoneAudioConnection,
125
+ isPstnUser: isPstnUser,
126
+ remoteUsers: remoteUsers,
127
+ end: end,
128
+ assignHost: assignHost
106
129
  }),
107
130
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.FcrButton, _objectSpread(_objectSpread({
108
131
  shape: "rounded",
@@ -1,6 +1,17 @@
1
1
  import './index.css';
2
+ import { FcrUserInfo, FcrUserRole } from 'agora-edu-core/lib/type';
2
3
  interface LeaveMeetingProps {
3
4
  setPopoverOpened: React.Dispatch<React.SetStateAction<boolean>>;
5
+ end: () => void;
6
+ leave: () => void;
7
+ isLocked: boolean;
8
+ keepPhoneAudioConnection: () => void;
9
+ localUserRole: FcrUserRole;
10
+ remoteUsers: FcrUserInfo[];
11
+ hasAssignHostBeforeLeavingPermission: boolean;
12
+ hasEndRoomPermission: boolean;
13
+ isPstnUser: boolean;
14
+ assignHost: (user: FcrUserInfo) => void;
4
15
  }
5
16
  export declare const LeaveMeeting: (props: LeaveMeetingProps) => import("react/jsx-runtime").JSX.Element;
6
17
  export {};
@@ -12,23 +12,22 @@ require("./index.css");
12
12
  var _type = require("agora-edu-core/lib/type");
13
13
  var _react = require("react");
14
14
  var _i18n = require("agora-ui-foundation/lib/i18n");
15
- var _context = require("../context");
16
15
  var _mobxReact = require("mobx-react");
17
16
  var _checkbox = require("agora-ui-foundation/lib/components/checkbox");
18
17
  var _classnames = _interopRequireDefault(require("classnames"));
19
18
  var _jsxRuntime = require("react/jsx-runtime");
20
19
  var LeaveMeeting = exports.LeaveMeeting = (0, _mobxReact.observer)(function (props) {
21
20
  var t = (0, _i18n.useI18n)();
22
- var _useContext = (0, _react.useContext)(_context.ActionBarContext),
23
- localUserRole = _useContext.localUserRole,
24
- remoteUsers = _useContext.remoteUsers,
25
- end = _useContext.end,
26
- leave = _useContext.leave,
27
- isLocked = _useContext.isLocked,
28
- hasAssignHostBeforeLeavingPermission = _useContext.hasAssignHostBeforeLeavingPermission,
29
- hasEndRoomPermission = _useContext.hasEndRoomPermission,
30
- keepPhoneAudioConnection = _useContext.keepPhoneAudioConnection,
31
- isPstnUser = _useContext.isPstnUser;
21
+ var localUserRole = props.localUserRole,
22
+ remoteUsers = props.remoteUsers,
23
+ end = props.end,
24
+ leave = props.leave,
25
+ isLocked = props.isLocked,
26
+ hasAssignHostBeforeLeavingPermission = props.hasAssignHostBeforeLeavingPermission,
27
+ hasEndRoomPermission = props.hasEndRoomPermission,
28
+ keepPhoneAudioConnection = props.keepPhoneAudioConnection,
29
+ isPstnUser = props.isPstnUser,
30
+ assignHost = props.assignHost;
32
31
  var _useState = (0, _react.useState)(false),
33
32
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
34
33
  canAssign = _useState2[0],
@@ -45,9 +44,9 @@ var LeaveMeeting = exports.LeaveMeeting = (0, _mobxReact.observer)(function (pro
45
44
  if (remoteUsers.length > 0 && hasAssignHostBeforeLeavingPermission) {
46
45
  setCanAssign(true);
47
46
  } else {
48
- props.setPopoverOpened(false);
49
- leave();
50
47
  handleKeepConnect();
48
+ leave();
49
+ props.setPopoverOpened(false);
51
50
  }
52
51
  };
53
52
  var handleKeepConnect = function handleKeepConnect() {
@@ -57,19 +56,25 @@ var LeaveMeeting = exports.LeaveMeeting = (0, _mobxReact.observer)(function (pro
57
56
  };
58
57
  var handleConfirm = function handleConfirm() {
59
58
  props.setPopoverOpened(false);
60
- leave();
61
59
  if (keepConnect && isPstnUser) {
62
60
  keepPhoneAudioConnection();
63
61
  }
62
+ leave();
64
63
  };
65
64
  var handleCancel = function handleCancel() {
66
65
  props.setPopoverOpened(false);
67
66
  };
68
67
  if (localUserRole === _type.FcrUserRole.HOST) {
69
68
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
69
+ onMouseEnter: function onMouseEnter() {
70
+ var _window$runtime;
71
+ (_window$runtime = window.runtime) === null || _window$runtime === void 0 || (_window$runtime = _window$runtime.browserWindow) === null || _window$runtime === void 0 || _window$runtime.setIgnoreMouseEvents(false);
72
+ },
70
73
  children: canAssign ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_assignHost.AssignHost, {
71
74
  setPopoverOpened: props.setPopoverOpened,
72
- handleKeepConnect: handleKeepConnect
75
+ handleKeepConnect: handleKeepConnect,
76
+ remoteUsers: remoteUsers,
77
+ assignHost: assignHost
73
78
  }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
74
79
  className: "leave-container",
75
80
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
@@ -101,7 +106,11 @@ var LeaveMeeting = exports.LeaveMeeting = (0, _mobxReact.observer)(function (pro
101
106
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
102
107
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
103
108
  className: "leave-container",
104
- children: [isLocked() ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
109
+ onMouseEnter: function onMouseEnter() {
110
+ var _window$runtime2;
111
+ (_window$runtime2 = window.runtime) === null || _window$runtime2 === void 0 || (_window$runtime2 = _window$runtime2.browserWindow) === null || _window$runtime2 === void 0 || _window$runtime2.setIgnoreMouseEvents(false);
112
+ },
113
+ children: [isLocked ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
105
114
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
106
115
  className: "assistant-leave-lock-info",
107
116
  children: t('fmt_actionbar_tips_locked')
@@ -103,7 +103,7 @@ var ScreenShare = (0, _mobxReact.observer)(function (props) {
103
103
  var Chat = (0, _mobxReact.observer)(function (props) {
104
104
  var _useContext4 = (0, _react.useContext)(_context.ActionBarContext),
105
105
  toggleChat = _useContext4.toggleChat,
106
- newMessageCount = _useContext4.newMessageCount;
106
+ allNewMessage = _useContext4.allNewMessage;
107
107
  var onClick = function onClick() {
108
108
  props.setVisible(false);
109
109
  toggleChat();
@@ -117,12 +117,12 @@ var Chat = (0, _mobxReact.observer)(function (props) {
117
117
  size: 24
118
118
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
119
119
  children: transI18n('fmt_chat_label_chat')
120
- }), newMessageCount > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
120
+ }), allNewMessage > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
121
121
  className: "fcr-more-popover-content_chat_msg_count",
122
- children: newMessageCount > 99 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
122
+ children: allNewMessage > 99 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
123
123
  type: _type2.FcrIconType.FCR_CHAT_REDDOT,
124
124
  size: 14
125
- }) : newMessageCount
125
+ }) : allNewMessage
126
126
  })]
127
127
  });
128
128
  });
@@ -1,5 +1,6 @@
1
1
  .fcr-action-bar-participants-wrapper {
2
2
  position: relative;
3
+ cursor: pointer;
3
4
  }
4
5
  .fcr-action-bar-participants-user-count {
5
6
  position: absolute;
@@ -7,3 +8,14 @@
7
8
  left: 51px;
8
9
  color: var(--fcr_web_ui_scene_mainicon1);
9
10
  }
11
+ .fcr-action-bar-participants-icon {
12
+ position: relative;
13
+ }
14
+ .fcr-action-bar-participants-red {
15
+ width: 8px;
16
+ height: 8px;
17
+ border-radius: 50%;
18
+ background: var(--fcr_ui_scene_ramp_red6);
19
+ position: absolute;
20
+ right: 0;
21
+ }
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.Participants = void 0;
9
+ require("core-js/modules/es.array.concat.js");
9
10
  require("core-js/modules/es.array.includes.js");
10
11
  require("core-js/modules/es.string.includes.js");
11
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -14,6 +15,7 @@ var _i18n = require("agora-ui-foundation/lib/i18n");
14
15
  var _tooltip = require("agora-ui-foundation/lib/components/tooltip");
15
16
  var _item = require("../item");
16
17
  var _type = require("agora-ui-foundation/lib/components/icon/type");
18
+ var _icon = require("agora-ui-foundation/lib/components/icon");
17
19
  var _context = require("../context");
18
20
  var _mobxReact = require("mobx-react");
19
21
  require("./index.css");
@@ -27,7 +29,8 @@ var Participants = exports.Participants = (0, _mobxReact.observer)(function (_re
27
29
  visibleList = _useContext.visibleList;
28
30
  var _useContext2 = (0, _react.useContext)(_context.ActionBarContext),
29
31
  toggleParticipants = _useContext2.toggleParticipants,
30
- totalUser = _useContext2.totalUser;
32
+ totalUser = _useContext2.totalUser,
33
+ isNewWaitingRoomUserEnter = _useContext2.isNewWaitingRoomUserEnter;
31
34
  var _useState = (0, _react.useState)(false),
32
35
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
33
36
  tooltipVisible = _useState2[0],
@@ -48,28 +51,32 @@ var Participants = exports.Participants = (0, _mobxReact.observer)(function (_re
48
51
  }
49
52
  },
50
53
  content: tooltip,
51
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
54
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
55
+ onClick: toggleParticipants,
52
56
  className: "fcr-action-bar-participants-wrapper",
53
57
  style: {
54
58
  display: visibleList.includes('Participants') ? 'flex' : 'none'
55
59
  },
56
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
57
- className: "fcr-action-bar-participants-user-count",
58
- children: totalUser > 999 ? '999+' : totalUser
59
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.ActionBarItem, {
60
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.ActionBarItem, {
60
61
  id: id,
61
62
  order: order,
62
- onClick: toggleParticipants,
63
- icon: _type.FcrIconType.FCR_PEOPLE,
63
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
64
+ className: "fcr-action-bar-participants-icon",
65
+ children: [isNewWaitingRoomUserEnter ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
66
+ className: "fcr-action-bar-participants-red"
67
+ }) : false, /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
68
+ type: _type.FcrIconType.FCR_PEOPLE,
69
+ size: 32,
70
+ colors: {
71
+ iconPrimary: 'var(--fcr_web_ui_scene_mainicon1)'
72
+ }
73
+ })]
74
+ }),
64
75
  iconColors: {
65
76
  iconPrimary: 'var(--fcr_web_ui_scene_mainicon1)'
66
77
  },
67
- title: title,
68
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
69
- className: "fcr-action-bar-participants-user-count",
70
- children: totalUser > 999 ? '999+' : totalUser
71
- })
72
- })]
78
+ title: "".concat(title, "(").concat(totalUser > 999 ? '999+' : totalUser, ")")
79
+ })
73
80
  })
74
81
  });
75
82
  });
@@ -39,6 +39,10 @@ var ScreenShare = exports.ScreenShare = (0, _mobxReact.observer)(function (_ref)
39
39
  var transI18n = (0, _i18n.useI18n)();
40
40
  var title = transI18n('fmt_screenshare_label_screenshare');
41
41
  var tooltip = hasStartScreenSharePermission ? transI18n('fmt_screenshare_label_screenshare') : transI18n('fmt_actionbar_screenshare_tips_restrictshare');
42
+ (0, _react.useEffect)(function () {
43
+ setMenuVisible(false);
44
+ setTooltipVisible(false);
45
+ }, [hasStartScreenSharePermission]);
42
46
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
43
47
  mouseEnterDelay: 0,
44
48
  onVisibleChange: function onVisibleChange() {
@@ -71,7 +75,7 @@ var ScreenShare = exports.ScreenShare = (0, _mobxReact.observer)(function (_ref)
71
75
  }
72
76
  } : undefined
73
77
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_popover.FcrPopover, {
74
- overlayClassName: "fcr-action-bar--popover",
78
+ overlayClassName: "fcr-action-bar--popover fcr-screen-share--popover",
75
79
  visible: visibleMenu,
76
80
  onVisibleChange: setMenuVisible,
77
81
  trigger: "click",