fcr-ui-scene 3.8.0-alpha → 3.8.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 (237) hide show
  1. package/lib/base.js +2 -2
  2. package/lib/electron/bootstrap-sdk.js +6 -6
  3. package/lib/electron/exit-codes.js +11 -11
  4. package/lib/electron/hang-detection/manager.js +4 -4
  5. package/lib/electron/ipc-protocol.js +12 -12
  6. package/lib/electron/process-manager/event-manager.js +30 -30
  7. package/lib/electron/process-manager/index.js +88 -88
  8. package/lib/electron/process-manager/state-manager.js +57 -57
  9. package/lib/electron/process-manager/types.js +16 -16
  10. package/lib/electron/sdk-helper.js +3 -3
  11. package/lib/electron/window-proxy/browser-window-proxy.js +13 -13
  12. package/lib/electron/window-proxy/main-process-handler.js +14 -14
  13. package/lib/fragments/annotation/style.css +9 -9
  14. package/lib/fragments/annotation/toolbar/components/item/style.css +45 -45
  15. package/lib/fragments/annotation/toolbar/components/panel/style.css +24 -24
  16. package/lib/fragments/annotation/toolbar/components/tips/style.css +19 -19
  17. package/lib/fragments/annotation/toolbar/style.css +55 -55
  18. package/lib/fragments/whiteboard/cursor.css +77 -77
  19. package/lib/fragments/whiteboard/store.js +1 -1
  20. package/lib/fragments/whiteboard/style.css +4 -4
  21. package/lib/global.css +62 -62
  22. package/lib/global.d.ts +27 -27
  23. package/lib/modules/action-bar/components/chat/index.css +88 -88
  24. package/lib/modules/action-bar/components/more/index.css +114 -114
  25. package/lib/modules/action-bar/components/notification-bar/components/interpreter/index.css +58 -58
  26. package/lib/modules/action-bar/components/notification-bar/components/virtual-image/index.css +56 -56
  27. package/lib/modules/action-bar/components/notification-bar/index.css +74 -74
  28. package/lib/modules/action-bar/components/participants/index.css +21 -21
  29. package/lib/modules/action-bar/components/record/index.css +39 -39
  30. package/lib/modules/action-bar/components/trigger-output-language/index.css +86 -86
  31. package/lib/modules/action-bar/components/trigger-subscribe-language/guide-tooltip/index.css +22 -22
  32. package/lib/modules/action-bar/index.css +358 -358
  33. package/lib/modules/action-bar/main-scene/view.js +3 -3
  34. package/lib/modules/audio-stream/index.js +3 -3
  35. package/lib/modules/caption/draggable-container/index.css +10 -10
  36. package/lib/modules/caption/draggable-container/index.js +34 -12
  37. package/lib/modules/caption/store.d.ts +1 -4
  38. package/lib/modules/caption/store.js +10 -18
  39. package/lib/modules/caption/view.css +158 -158
  40. package/lib/modules/caption/view.js +16 -27
  41. package/lib/modules/chat/components/chat-bar/index.css +89 -89
  42. package/lib/modules/chat/components/chat-select/index.css +185 -185
  43. package/lib/modules/chat/index.css +124 -124
  44. package/lib/modules/chat/store.d.ts +1 -0
  45. package/lib/modules/chat/store.js +2 -2
  46. package/lib/modules/components/apps/app-item/index.css +49 -49
  47. package/lib/modules/components/apps/index.css +9 -9
  48. package/lib/modules/components/caption-menu/index.css +58 -58
  49. package/lib/modules/components/caption-menu/index.d.ts +2 -0
  50. package/lib/modules/components/caption-menu/index.js +13 -10
  51. package/lib/modules/components/caption-menu/participants-privilege-control-options.js +5 -19
  52. package/lib/modules/components/caption-menu/steps/index.css +73 -73
  53. package/lib/modules/components/caption-menu/translation-setting-options.js +31 -24
  54. package/lib/modules/components/control-bar/components/loading/index.css +76 -76
  55. package/lib/modules/components/control-bar/components/progress/style.css +51 -51
  56. package/lib/modules/components/control-bar/components/switch-theme/index.css +101 -101
  57. package/lib/modules/components/control-bar/index.css +99 -99
  58. package/lib/modules/components/device-control/index.css +177 -177
  59. package/lib/modules/components/leave-meeting/components/index.css +151 -151
  60. package/lib/modules/components/leave-meeting/style.css +9 -9
  61. package/lib/modules/components/member-window/components/member-actions/store.js +22 -22
  62. package/lib/modules/components/member-window/index.css +502 -502
  63. package/lib/modules/components/security-menu/index.css +42 -42
  64. package/lib/modules/components/tab-frame/index.css +40 -40
  65. package/lib/modules/components/toolbar/components/item/style.css +94 -94
  66. package/lib/modules/components/toolbar/components/panel/style.css +86 -86
  67. package/lib/modules/components/toolbar/style.css +85 -85
  68. package/lib/modules/connection-gateway/components/computer/index.css +12 -12
  69. package/lib/modules/connection-gateway/components/phone/components/callinfo/index.css +36 -36
  70. package/lib/modules/connection-gateway/components/phone/components/calling/index.css +72 -72
  71. package/lib/modules/connection-gateway/components/phone/components/remeber/index.css +10 -10
  72. package/lib/modules/connection-gateway/components/phone/components/useing/index.css +46 -46
  73. package/lib/modules/connection-gateway/components/phone/index.css +49 -49
  74. package/lib/modules/connection-gateway/index.css +6 -6
  75. package/lib/modules/control-bar/components/carmera/index.js +7 -39
  76. package/lib/modules/control-bar/components/cloud-recording-buttons.js +18 -33
  77. package/lib/modules/control-bar/components/meeting-details/index.css +133 -133
  78. package/lib/modules/control-bar/components/microphone/index.js +3 -43
  79. package/lib/modules/control-bar/components/more-actions/index.css +103 -103
  80. package/lib/modules/control-bar/components/share-audio/index.css +90 -90
  81. package/lib/modules/control-bar/components/share-audio/index.d.ts +2 -0
  82. package/lib/modules/control-bar/components/share-audio/index.js +4 -10
  83. package/lib/modules/control-bar/components/share-state-nav/index.css +79 -79
  84. package/lib/modules/control-bar/hooks.d.ts +1 -0
  85. package/lib/modules/control-bar/hooks.js +140 -1
  86. package/lib/modules/control-bar/index.css +340 -340
  87. package/lib/modules/control-bar/index.js +4 -4
  88. package/lib/modules/control-bar/store.d.ts +3 -4
  89. package/lib/modules/control-bar/store.js +37 -30
  90. package/lib/modules/control-bar/type.d.ts +3 -0
  91. package/lib/modules/control-bar/view.js +40 -57
  92. package/lib/modules/device-pretest/index.css +123 -123
  93. package/lib/modules/dialog/components/confirm/index.css +24 -24
  94. package/lib/modules/dialog/components/confirm/index.js +0 -1
  95. package/lib/modules/dialog/components/dialog-container/index.css +112 -112
  96. package/lib/modules/dialog/components/dialog-container/index.js +1 -0
  97. package/lib/modules/dialog/dialogs/confirm/index.css +24 -24
  98. package/lib/modules/dialog/dialogs/device-setting/index.css +26 -26
  99. package/lib/modules/dialog/dialogs/interpreter/index.css +30 -30
  100. package/lib/modules/dialog/dialogs/mute-all/index.css +20 -20
  101. package/lib/modules/dialog/dialogs/system-preference/index.css +52 -52
  102. package/lib/modules/dialog/dialogs/widget/index.js +4 -4
  103. package/lib/modules/dialog/index.css +56 -56
  104. package/lib/modules/event-toast/index.css +25 -25
  105. package/lib/modules/event-toast/index.js +7 -1
  106. package/lib/modules/interpreter/action/add-btn/index.css +4 -4
  107. package/lib/modules/interpreter/action/delete-btn/index.css +14 -14
  108. package/lib/modules/interpreter/action/switch-btn/index.css +3 -3
  109. package/lib/modules/interpreter/dialog-content/index.css +33 -33
  110. package/lib/modules/interpreter/footer/index.css +11 -11
  111. package/lib/modules/interpreter/index.css +4 -4
  112. package/lib/modules/interpreter/interpreter-list/index.css +8 -8
  113. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/index.css +46 -46
  114. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-user/index.css +46 -46
  115. package/lib/modules/interpreter/interpreter-list/interpreter-item/index.css +32 -32
  116. package/lib/modules/interpreter/loading-wrapper/index.css +53 -53
  117. package/lib/modules/invite/components/voip-invite.css +26 -26
  118. package/lib/modules/invite/index.css +331 -331
  119. package/lib/modules/layout/components/CommonVideoRenderer.js +4 -4
  120. package/lib/modules/layout/components/index.css +653 -653
  121. package/lib/modules/layout/index.css +59 -59
  122. package/lib/modules/layout/store.base.d.ts +1 -1
  123. package/lib/modules/layout/store.base.js +5 -5
  124. package/lib/modules/layout/store.electron.d.ts +0 -1
  125. package/lib/modules/layout/store.electron.js +37 -133
  126. package/lib/modules/layout/type.js +5 -5
  127. package/lib/modules/notification/index.css +77 -77
  128. package/lib/modules/notification/interpreter-status/index.css +76 -76
  129. package/lib/modules/participant/components/confirm-input/index.css +4 -4
  130. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.css +83 -83
  131. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.css +87 -87
  132. package/lib/modules/participant/index.css +102 -102
  133. package/lib/modules/participant/store.base.js +183 -185
  134. package/lib/modules/pc-audio-connect/index.css +12 -12
  135. package/lib/modules/phone-audio-connect/components/callinfo/index.css +36 -36
  136. package/lib/modules/phone-audio-connect/components/calling/index.css +72 -72
  137. package/lib/modules/phone-audio-connect/components/remeber/index.css +10 -10
  138. package/lib/modules/phone-audio-connect/components/useing/index.css +46 -46
  139. package/lib/modules/phone-audio-connect/index.css +56 -56
  140. package/lib/modules/secondary-window/store.js +8 -10
  141. package/lib/modules/setting/audio-settings/index.css +195 -195
  142. package/lib/modules/setting/audio-whiteList/audio-device-adaptation.d.ts +28 -0
  143. package/lib/modules/setting/audio-whiteList/audio-device-adaptation.js +43 -7
  144. package/lib/modules/setting/audio-whiteList/audio-whiteList-manager.d.ts +3 -14
  145. package/lib/modules/setting/audio-whiteList/audio-whiteList-manager.js +51 -30
  146. package/lib/modules/setting/caption_and_transcribing/index.css +88 -88
  147. package/lib/modules/setting/general-settings/index.css +41 -41
  148. package/lib/modules/setting/index.css +112 -112
  149. package/lib/modules/setting/index.js +4 -2
  150. package/lib/modules/setting/minutes-settings/index.css +65 -65
  151. package/lib/modules/setting/state/index.css +207 -207
  152. package/lib/modules/setting/storage-settings/index.css +91 -91
  153. package/lib/modules/setting/store.base.d.ts +5 -3
  154. package/lib/modules/setting/store.base.js +64 -43
  155. package/lib/modules/setting/store.electron.d.ts +1 -1
  156. package/lib/modules/setting/store.electron.js +3 -7
  157. package/lib/modules/setting/translate-settings/index.css +47 -47
  158. package/lib/modules/setting/video-settings/index.css +357 -357
  159. package/lib/modules/setting/view.js +3 -2
  160. package/lib/modules/share-screen/components/control-bar/index.css +75 -75
  161. package/lib/modules/share-screen/components/selection/index.css +73 -73
  162. package/lib/modules/share-screen/components/share-state-bar/index.css +76 -76
  163. package/lib/modules/share-screen/index.js +10 -10
  164. package/lib/modules/share-screen/store.base.js +2 -2
  165. package/lib/modules/share-screen/store.electron.js +51 -23
  166. package/lib/modules/state-bar/assets/fcr_grid_big.svg +3 -3
  167. package/lib/modules/state-bar/assets/fcr_listontop_big.svg +3 -3
  168. package/lib/modules/state-bar/index.css +706 -706
  169. package/lib/modules/state-bar/main-scene/store.base.js +2 -2
  170. package/lib/modules/state-bar/meeting-detail.css +137 -137
  171. package/lib/modules/state-bar/meeting-network-state.css +150 -150
  172. package/lib/modules/state-bar/waiting-scene/store.base.js +2 -2
  173. package/lib/modules/subtitles-history/components/list-item.js +4 -7
  174. package/lib/modules/subtitles-history/components/settings/index.css +5 -5
  175. package/lib/modules/subtitles-history/index.css +129 -129
  176. package/lib/modules/subtitles-history/store.base.d.ts +3 -1
  177. package/lib/modules/subtitles-history/store.base.js +11 -1
  178. package/lib/modules/video-window/components/members/index.css +51 -51
  179. package/lib/modules/video-window/components/speaking/index.css +86 -86
  180. package/lib/modules/video-window/components/topControl/index.css +35 -35
  181. package/lib/modules/video-window/index.css +21 -21
  182. package/lib/modules/video-window/popover-watcher.js +3 -3
  183. package/lib/modules/video-window/store.js +10 -10
  184. package/lib/modules/waiting-room-layout/index.css +96 -96
  185. package/lib/modules/whiteboard/components/control-bar/index.css +52 -52
  186. package/lib/modules/whiteboard/components/loading/index.css +76 -76
  187. package/lib/modules/whiteboard/components/multi-window/index.css +63 -63
  188. package/lib/modules/whiteboard/components/pagination/index.css +228 -228
  189. package/lib/modules/whiteboard/components/progress/style.css +51 -51
  190. package/lib/modules/whiteboard/components/switch-theme/index.css +99 -99
  191. package/lib/modules/whiteboard/components/toolbar/style.css +591 -591
  192. package/lib/modules/whiteboard/style.css +140 -140
  193. package/lib/modules/widget/index.css +9 -9
  194. package/lib/object-manager.js +8 -8
  195. package/lib/plugins/module-dev-plugin.js +11 -11
  196. package/lib/providers/ability-provider.js +17 -17
  197. package/lib/providers/board-share/struct.js +6 -6
  198. package/lib/providers/dialog/provider.base.js +2 -2
  199. package/lib/providers/dialog/type.js +3 -3
  200. package/lib/providers/multi-display-provider.js +4 -4
  201. package/lib/providers/privilege-provider.js +7 -7
  202. package/lib/providers/screen-share/provider.base.d.ts +2 -13
  203. package/lib/providers/screen-share/provider.base.js +28 -35
  204. package/lib/providers/screen-share/provider.electron.d.ts +0 -5
  205. package/lib/providers/screen-share/provider.electron.js +31 -18
  206. package/lib/providers/screen-share/stream-state-sync.js +18 -18
  207. package/lib/providers/screen-share/struct.js +24 -24
  208. package/lib/providers/screen-share/type.d.ts +0 -16
  209. package/lib/providers/stt-provider/stt-provider.d.ts +3 -4
  210. package/lib/providers/stt-provider/stt-provider.js +145 -146
  211. package/lib/providers/stt-provider/type.d.ts +2 -10
  212. package/lib/providers/stt-provider/type.js +3 -3
  213. package/lib/providers/window/main-window.js +2 -2
  214. package/lib/providers/window/provider.js +5 -5
  215. package/lib/providers/window/renderer-window.js +2 -2
  216. package/lib/schema.js +26 -26
  217. package/lib/shared-data/meeting-time.js +8 -8
  218. package/lib/shared-data/setting.js +3 -3
  219. package/lib/translations/enUS.d.ts +12 -1
  220. package/lib/translations/enUS.js +22 -19
  221. package/lib/translations/zhCN.d.ts +12 -1
  222. package/lib/translations/zhCN.js +20 -17
  223. package/lib/type.js +21 -21
  224. package/lib/ui-scene-switch.js +2 -2
  225. package/lib/utilities/constant.js +6 -6
  226. package/lib/utilities/renderer.js +8 -8
  227. package/lib/utilities/shared-storage.js +2 -2
  228. package/lib/utilities/tools.js +14 -14
  229. package/package.json +78 -79
  230. package/public/assets/fcr_chat_reddot.svg +5 -5
  231. package/public/assets/fcr_grid_big.svg +3 -3
  232. package/public/assets/fcr_leave2.svg +58 -58
  233. package/public/assets/fcr_listontop_big.svg +3 -3
  234. package/public/assets/step-gradient.svg +10 -10
  235. package/public/fragment.html +10 -10
  236. package/public/index.html +183 -183
  237. package/public/meeting-manager.js +405 -405
package/public/index.html CHANGED
@@ -1,183 +1,183 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <title></title>
7
- <style>
8
- #fcr-launch-failure-comp {
9
- width: 100vw;
10
- height: 100vh;
11
- background-color: rgba(144, 144, 144, 0.6);
12
- position: fixed;
13
- top: 0px;
14
- left: 0px;
15
- display: flex;
16
- justify-content: center;
17
- align-items: center;
18
- z-index: 9999;
19
- }
20
-
21
- .fcr-launch-failure-comp-modal {
22
- width: 280px;
23
- background-color: rgba(255, 255, 255, 0.85);
24
- border-radius: 24px;
25
- display: flex;
26
- box-shadow: 0px 0px 15px 0px rgba(151, 151, 151, 0.25);
27
- border: 1px solid #e3e7efff;
28
- display: flex;
29
- flex-direction: column;
30
- padding: 0px 24px 24px 24px;
31
- box-sizing: content-box;
32
- }
33
-
34
- .fcr-launch-failure-comp-banner {
35
- margin: 0 auto;
36
- width: 280px;
37
- align-self: flex-start;
38
- position: absolute;
39
- top: -12px;
40
- }
41
-
42
- .fcr-launch-failure-comp-info {
43
- text-align: center;
44
- margin-top: 24px;
45
- margin-bottom: 20px;
46
- color: rgba(55, 60, 66, 1);
47
- }
48
-
49
- .fcr-launch-failure-comp-h {
50
- font-weight: 600;
51
- margin-bottom: 12px;
52
- }
53
-
54
- .fcr-launch-failure-comp-desc {
55
- font-weight: 400;
56
- }
57
-
58
- .fcr-confirm-btn {
59
- width: 100%;
60
- height: 36px;
61
- background-color: rgba(66, 98, 255, 1);
62
- color: #ffffff;
63
- text-align: center;
64
- line-height: 36px;
65
- border-radius: 6px;
66
- margin: 0 auto;
67
- cursor: pointer;
68
- }
69
-
70
- .fcr-launch-failure-comp-banner-box {
71
- position: relative;
72
- width: 100%;
73
- height: 180px;
74
- margin: 0 auto;
75
- }
76
- </style>
77
- </head>
78
-
79
- <body style="background: rgb(251, 252, 255)">
80
- <div
81
- style="display: flex; align-items: center; justify-content: center; height: 100vh"
82
- id="launch-loading">
83
- <img src="assets/loading.gif" alt="loading" width="128" height="128" />
84
- </div>
85
- <div id="root"></div>
86
- <div id="fcr-launch-failure-comp" style="display: none">
87
- <div class="fcr-launch-failure-comp-modal">
88
- <div class="fcr-launch-failure-comp-banner-box">
89
- <img class="fcr-launch-failure-comp-banner" src="assets/leave-meeting.png" />
90
- </div>
91
- <div class="fcr-launch-failure-comp-info">
92
- <!-- <div class="fcr-launch-failure-comp-h">
93
- <span id="fcr-launch-failure-comp-title"></span>
94
- </div> -->
95
- <div id="fcr-launch-failure-error-info" class="fcr-launch-failure-comp-desc">
96
- Error: code=100050051, message=domain:RTE-CLIENT,info: failed to detect AP
97
- </div>
98
- </div>
99
- <div id="fcr-launch-failure-confirm-btn" class="fcr-confirm-btn">
100
- <span id="fcr-launch-failure-btn-text">I know</span>
101
- </div>
102
- </div>
103
- </div>
104
- </body>
105
- <script>
106
- window.enLangResource = {
107
- fmt_statusbar_label_unknown: 'unknown error',
108
- fmt_pc_room_not_exist_error: 'The room does not exist or the password is wrong',
109
- fmt_lock_error: 'The host has locked the meeting and no one else can join',
110
- fmt_end_error: 'The meeting has ended',
111
- fmt_host_leave_error: 'The moderator is not in the meeting',
112
- };
113
-
114
- window.zhLangResource = {
115
- fmt_statusbar_label_unknown: '未知错误',
116
- fmt_pc_room_not_exist_error: '房间不存在或密码错误',
117
- fmt_lock_error: '主持人锁定了会议,其他人不可入会',
118
- fmt_end_error: '会议已结束',
119
- fmt_host_leave_error: '主持人不在会议中',
120
- };
121
-
122
- function replacePlaceholders(str, obj) {
123
- // 使用正则表达式匹配所有的占位符
124
- return str.replace(/{([^}]+)}/g, (match, key) => {
125
- // 检查对象中是否存在该键
126
- if (obj.hasOwnProperty(key.trim())) {
127
- // 如果存在,返回对应的值
128
- return obj[key.trim()];
129
- }
130
- // 如果不存在,返回原始的占位符
131
- return match;
132
- });
133
- }
134
-
135
- function renderMeetingName(meetingName) {
136
- if (meetingName.length <= 20) return meetingName;
137
- return meetingName.slice(0, 20) + '...';
138
- }
139
-
140
- window._transI18n = (key, replaceKeys) => {
141
- const currentLang = window.$$agora_language === 'zh' ? 'zh' : 'en';
142
- const langResource = window[`${currentLang}LangResource`];
143
- let res = langResource[key];
144
- if (res) {
145
- res = replacePlaceholders(res, replaceKeys);
146
- }
147
- return res;
148
- };
149
-
150
- const setLoading = (visible) => {
151
- const dom = document.querySelector('#launch-loading');
152
- if (dom) {
153
- if (visible) {
154
- dom.style.display = 'flex';
155
- } else {
156
- dom.style.display = 'none';
157
- }
158
- }
159
- };
160
-
161
- const setFullScreenFailureComp = (visible, errorMsg) => {
162
- setLoading(false);
163
- const dom = document.querySelector('#fcr-launch-failure-comp');
164
- const titleDom = document.querySelector('#fcr-launch-failure-comp-title');
165
- const btnTextDom = document.querySelector('#fcr-launch-failure-btn-text');
166
- if (dom) {
167
- if (visible) {
168
- dom.style.display = 'flex';
169
- // titleDom.innerText = window.$$agora_language === 'zh' ? '锁定会议' : 'Meeting Locked';
170
- btnTextDom.innerText = window.$$agora_language === 'zh' ? '我已知悉' : 'I know';
171
- if (errorMsg) {
172
- const msgDom = document.querySelector('#fcr-launch-failure-error-info');
173
- msgDom.innerText = errorMsg;
174
- }
175
- } else {
176
- dom.style.display = 'none';
177
- }
178
- }
179
- };
180
- </script>
181
-
182
- <script src="meeting-manager.js"></script>
183
- </html>
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title></title>
7
+ <style>
8
+ #fcr-launch-failure-comp {
9
+ width: 100vw;
10
+ height: 100vh;
11
+ background-color: rgba(144, 144, 144, 0.6);
12
+ position: fixed;
13
+ top: 0px;
14
+ left: 0px;
15
+ display: flex;
16
+ justify-content: center;
17
+ align-items: center;
18
+ z-index: 9999;
19
+ }
20
+
21
+ .fcr-launch-failure-comp-modal {
22
+ width: 280px;
23
+ background-color: rgba(255, 255, 255, 0.85);
24
+ border-radius: 24px;
25
+ display: flex;
26
+ box-shadow: 0px 0px 15px 0px rgba(151, 151, 151, 0.25);
27
+ border: 1px solid #e3e7efff;
28
+ display: flex;
29
+ flex-direction: column;
30
+ padding: 0px 24px 24px 24px;
31
+ box-sizing: content-box;
32
+ }
33
+
34
+ .fcr-launch-failure-comp-banner {
35
+ margin: 0 auto;
36
+ width: 280px;
37
+ align-self: flex-start;
38
+ position: absolute;
39
+ top: -12px;
40
+ }
41
+
42
+ .fcr-launch-failure-comp-info {
43
+ text-align: center;
44
+ margin-top: 24px;
45
+ margin-bottom: 20px;
46
+ color: rgba(55, 60, 66, 1);
47
+ }
48
+
49
+ .fcr-launch-failure-comp-h {
50
+ font-weight: 600;
51
+ margin-bottom: 12px;
52
+ }
53
+
54
+ .fcr-launch-failure-comp-desc {
55
+ font-weight: 400;
56
+ }
57
+
58
+ .fcr-confirm-btn {
59
+ width: 100%;
60
+ height: 36px;
61
+ background-color: rgba(66, 98, 255, 1);
62
+ color: #ffffff;
63
+ text-align: center;
64
+ line-height: 36px;
65
+ border-radius: 6px;
66
+ margin: 0 auto;
67
+ cursor: pointer;
68
+ }
69
+
70
+ .fcr-launch-failure-comp-banner-box {
71
+ position: relative;
72
+ width: 100%;
73
+ height: 180px;
74
+ margin: 0 auto;
75
+ }
76
+ </style>
77
+ </head>
78
+
79
+ <body style="background: rgb(251, 252, 255)">
80
+ <div
81
+ style="display: flex; align-items: center; justify-content: center; height: 100vh"
82
+ id="launch-loading">
83
+ <img src="assets/loading.gif" alt="loading" width="128" height="128" />
84
+ </div>
85
+ <div id="root"></div>
86
+ <div id="fcr-launch-failure-comp" style="display: none">
87
+ <div class="fcr-launch-failure-comp-modal">
88
+ <div class="fcr-launch-failure-comp-banner-box">
89
+ <img class="fcr-launch-failure-comp-banner" src="assets/leave-meeting.png" />
90
+ </div>
91
+ <div class="fcr-launch-failure-comp-info">
92
+ <!-- <div class="fcr-launch-failure-comp-h">
93
+ <span id="fcr-launch-failure-comp-title"></span>
94
+ </div> -->
95
+ <div id="fcr-launch-failure-error-info" class="fcr-launch-failure-comp-desc">
96
+ Error: code=100050051, message=domain:RTE-CLIENT,info: failed to detect AP
97
+ </div>
98
+ </div>
99
+ <div id="fcr-launch-failure-confirm-btn" class="fcr-confirm-btn">
100
+ <span id="fcr-launch-failure-btn-text">I know</span>
101
+ </div>
102
+ </div>
103
+ </div>
104
+ </body>
105
+ <script>
106
+ window.enLangResource = {
107
+ fmt_statusbar_label_unknown: 'unknown error',
108
+ fmt_pc_room_not_exist_error: 'The room does not exist or the password is wrong',
109
+ fmt_lock_error: 'The host has locked the meeting and no one else can join',
110
+ fmt_end_error: 'The meeting has ended',
111
+ fmt_host_leave_error: 'The moderator is not in the meeting',
112
+ };
113
+
114
+ window.zhLangResource = {
115
+ fmt_statusbar_label_unknown: '未知错误',
116
+ fmt_pc_room_not_exist_error: '房间不存在或密码错误',
117
+ fmt_lock_error: '主持人锁定了会议,其他人不可入会',
118
+ fmt_end_error: '会议已结束',
119
+ fmt_host_leave_error: '主持人不在会议中',
120
+ };
121
+
122
+ function replacePlaceholders(str, obj) {
123
+ // 使用正则表达式匹配所有的占位符
124
+ return str.replace(/{([^}]+)}/g, (match, key) => {
125
+ // 检查对象中是否存在该键
126
+ if (obj.hasOwnProperty(key.trim())) {
127
+ // 如果存在,返回对应的值
128
+ return obj[key.trim()];
129
+ }
130
+ // 如果不存在,返回原始的占位符
131
+ return match;
132
+ });
133
+ }
134
+
135
+ function renderMeetingName(meetingName) {
136
+ if (meetingName.length <= 20) return meetingName;
137
+ return meetingName.slice(0, 20) + '...';
138
+ }
139
+
140
+ window._transI18n = (key, replaceKeys) => {
141
+ const currentLang = window.$$agora_language === 'zh' ? 'zh' : 'en';
142
+ const langResource = window[`${currentLang}LangResource`];
143
+ let res = langResource[key];
144
+ if (res) {
145
+ res = replacePlaceholders(res, replaceKeys);
146
+ }
147
+ return res;
148
+ };
149
+
150
+ const setLoading = (visible) => {
151
+ const dom = document.querySelector('#launch-loading');
152
+ if (dom) {
153
+ if (visible) {
154
+ dom.style.display = 'flex';
155
+ } else {
156
+ dom.style.display = 'none';
157
+ }
158
+ }
159
+ };
160
+
161
+ const setFullScreenFailureComp = (visible, errorMsg) => {
162
+ setLoading(false);
163
+ const dom = document.querySelector('#fcr-launch-failure-comp');
164
+ const titleDom = document.querySelector('#fcr-launch-failure-comp-title');
165
+ const btnTextDom = document.querySelector('#fcr-launch-failure-btn-text');
166
+ if (dom) {
167
+ if (visible) {
168
+ dom.style.display = 'flex';
169
+ // titleDom.innerText = window.$$agora_language === 'zh' ? '锁定会议' : 'Meeting Locked';
170
+ btnTextDom.innerText = window.$$agora_language === 'zh' ? '我已知悉' : 'I know';
171
+ if (errorMsg) {
172
+ const msgDom = document.querySelector('#fcr-launch-failure-error-info');
173
+ msgDom.innerText = errorMsg;
174
+ }
175
+ } else {
176
+ dom.style.display = 'none';
177
+ }
178
+ }
179
+ };
180
+ </script>
181
+
182
+ <script src="meeting-manager.js"></script>
183
+ </html>