fcr-ui-scene 3.7.8 → 3.7.9-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 (216) hide show
  1. package/installer/icons/icon.png +0 -0
  2. package/installer/mac/entitlements.mac.plist +1 -5
  3. package/lib/creator/index.js +13 -19
  4. package/lib/creator/provider-initializer.browser.js +4 -3
  5. package/lib/electron/app.js +1 -0
  6. package/lib/electron/bootstrap-sdk.js +19 -2
  7. package/lib/electron/sdk-helper.js +6 -2
  8. package/lib/electron/until.js +3 -0
  9. package/lib/index.js +8 -1
  10. package/lib/modules/components/leave-meeting/store.base.d.ts +1 -0
  11. package/lib/modules/components/leave-meeting/store.base.js +46 -5
  12. package/lib/modules/dialog/dialogs/confirm-leave-meeting/index.d.ts +1 -0
  13. package/lib/modules/dialog/dialogs/confirm-leave-meeting/index.js +2 -1
  14. package/lib/modules/dialog/dialogs/share-screen-selection/index.js +0 -12
  15. package/lib/modules/setting/store.base.d.ts +1 -1
  16. package/lib/modules/setting/store.base.js +3 -2
  17. package/lib/modules/share-screen/store.base.js +0 -2
  18. package/lib/modules/share-screen/store.electron.js +54 -31
  19. package/lib/modules/video-window/popover-watcher.js +4 -1
  20. package/lib/modules/video-window/store.js +7 -1
  21. package/lib/modules/video-window/view.js +14 -4
  22. package/lib/providers/device-provider.js +1 -1
  23. package/lib/providers/screen-share/strategy/browser.js +1 -1
  24. package/lib/providers/window/main-window.js +0 -3
  25. package/lib/providers/window/renderer-window.d.ts +3 -0
  26. package/lib/providers/window/renderer-window.js +47 -4
  27. package/lib/providers/window/type.d.ts +1 -0
  28. package/lib/scenes/main-scene.d.ts +1 -0
  29. package/lib/scenes/main-scene.js +32 -1
  30. package/lib/shared-data/setting.js +1 -1
  31. package/lib/utilities/default-config.js +1 -1
  32. package/lib/utilities/logger.js +1 -1
  33. package/package.json +6 -6
  34. package/public/index.html +2 -149
  35. package/public/meeting-manager.js +391 -0
  36. package/lib/creator.d.ts +0 -36
  37. package/lib/creator.js +0 -465
  38. package/lib/modules/action-bar/index.d.ts +0 -56
  39. package/lib/modules/action-bar/index.dev.d.ts +0 -0
  40. package/lib/modules/action-bar/index.dev.js +0 -94
  41. package/lib/modules/action-bar/index.js +0 -108
  42. package/lib/modules/action-bar/store.d.ts +0 -256
  43. package/lib/modules/action-bar/store.js +0 -1572
  44. package/lib/modules/action-bar/types.d.ts +0 -90
  45. package/lib/modules/action-bar/types.js +0 -6
  46. package/lib/modules/action-bar/view.d.ts +0 -5
  47. package/lib/modules/action-bar/view.js +0 -112
  48. package/lib/modules/annotation/annotation-index.d.ts +0 -2
  49. package/lib/modules/annotation/annotation-index.js +0 -80
  50. package/lib/modules/annotation/annotation-toolbar-store.d.ts +0 -75
  51. package/lib/modules/annotation/annotation-toolbar-store.js +0 -459
  52. package/lib/modules/annotation/board-cursor.css +0 -77
  53. package/lib/modules/annotation/components/color-picker/components/color.d.ts +0 -5
  54. package/lib/modules/annotation/components/color-picker/components/color.js +0 -38
  55. package/lib/modules/annotation/components/color-picker/components/panel.d.ts +0 -1
  56. package/lib/modules/annotation/components/color-picker/components/panel.js +0 -109
  57. package/lib/modules/annotation/components/color-picker/components/picker.d.ts +0 -1
  58. package/lib/modules/annotation/components/color-picker/components/picker.js +0 -75
  59. package/lib/modules/annotation/components/color-picker/index.d.ts +0 -2
  60. package/lib/modules/annotation/components/color-picker/index.js +0 -47
  61. package/lib/modules/annotation/components/eraser-picker.d.ts +0 -4
  62. package/lib/modules/annotation/components/eraser-picker.js +0 -144
  63. package/lib/modules/annotation/components/expansion/index.d.ts +0 -1
  64. package/lib/modules/annotation/components/expansion/index.js +0 -100
  65. package/lib/modules/annotation/components/extra-tool-picker.d.ts +0 -1
  66. package/lib/modules/annotation/components/extra-tool-picker.js +0 -62
  67. package/lib/modules/annotation/components/history.d.ts +0 -2
  68. package/lib/modules/annotation/components/history.js +0 -78
  69. package/lib/modules/annotation/components/icons/fold-icon.d.ts +0 -2
  70. package/lib/modules/annotation/components/icons/fold-icon.js +0 -41
  71. package/lib/modules/annotation/components/icons/move-icon.d.ts +0 -1
  72. package/lib/modules/annotation/components/icons/move-icon.js +0 -66
  73. package/lib/modules/annotation/components/item/index.d.ts +0 -1
  74. package/lib/modules/annotation/components/item/index.js +0 -43
  75. package/lib/modules/annotation/components/move-handle.d.ts +0 -5
  76. package/lib/modules/annotation/components/move-handle.js +0 -134
  77. package/lib/modules/annotation/components/pen-picker.d.ts +0 -4
  78. package/lib/modules/annotation/components/pen-picker.js +0 -155
  79. package/lib/modules/annotation/components/screen-capture-picker.d.ts +0 -4
  80. package/lib/modules/annotation/components/screen-capture-picker.js +0 -85
  81. package/lib/modules/annotation/components/shape-picker.d.ts +0 -4
  82. package/lib/modules/annotation/components/shape-picker.js +0 -210
  83. package/lib/modules/annotation/hooks/index.d.ts +0 -14
  84. package/lib/modules/annotation/hooks/index.js +0 -292
  85. package/lib/modules/annotation/index.d.ts +0 -45
  86. package/lib/modules/annotation/index.js +0 -168
  87. package/lib/modules/annotation/store.d.ts +0 -98
  88. package/lib/modules/annotation/store.js +0 -621
  89. package/lib/modules/annotation/style.css +0 -36
  90. package/lib/modules/annotation/view.d.ts +0 -3
  91. package/lib/modules/annotation/view.js +0 -44
  92. package/lib/modules/components/device-control/store.d.ts +0 -42
  93. package/lib/modules/components/device-control/store.js +0 -241
  94. package/lib/modules/components/leave-meeting/store.d.ts +0 -39
  95. package/lib/modules/components/leave-meeting/store.js +0 -270
  96. package/lib/modules/control-bar/components/annotation-button/index.d.ts +0 -1
  97. package/lib/modules/control-bar/components/annotation-button/index.js +0 -72
  98. package/lib/modules/control-bar/reactor.d.ts +0 -2
  99. package/lib/modules/control-bar/reactor.js +0 -8
  100. package/lib/modules/control-bar/types.d.ts +0 -20
  101. package/lib/modules/control-bar/types.js +0 -6
  102. package/lib/modules/dialog/dialogs/pre-setting/index.css +0 -26
  103. package/lib/modules/dialog/dialogs/pre-setting/index.d.ts +0 -6
  104. package/lib/modules/dialog/dialogs/pre-setting/index.js +0 -62
  105. package/lib/modules/dialog/dialogs/widget/electron.d.ts +0 -6
  106. package/lib/modules/dialog/dialogs/widget/electron.js +0 -38
  107. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +0 -14
  108. package/lib/modules/dialog/hooks/use-popover-watcher.js +0 -110
  109. package/lib/modules/dialog/hooks/useElectron.d.ts +0 -28
  110. package/lib/modules/dialog/hooks/useElectron.js +0 -277
  111. package/lib/modules/dialog/store.d.ts +0 -135
  112. package/lib/modules/dialog/store.js +0 -616
  113. package/lib/modules/event-confirm/components/window/index.d.ts +0 -4
  114. package/lib/modules/event-confirm/components/window/index.js +0 -197
  115. package/lib/modules/event-confirm/index.css +0 -24
  116. package/lib/modules/event-confirm/index.d.ts +0 -27
  117. package/lib/modules/event-confirm/index.js +0 -76
  118. package/lib/modules/event-confirm/store.d.ts +0 -45
  119. package/lib/modules/event-confirm/store.js +0 -345
  120. package/lib/modules/event-confirm/view.d.ts +0 -2
  121. package/lib/modules/event-confirm/view.js +0 -53
  122. package/lib/modules/event-toast/store.d.ts +0 -27
  123. package/lib/modules/event-toast/store.js +0 -205
  124. package/lib/modules/layout/store.d.ts +0 -176
  125. package/lib/modules/layout/store.js +0 -1466
  126. package/lib/modules/participant/store.d.ts +0 -222
  127. package/lib/modules/participant/store.js +0 -1927
  128. package/lib/modules/pc-audio-connect/index.d.ts +0 -22
  129. package/lib/modules/pc-audio-connect/index.js +0 -67
  130. package/lib/modules/pc-audio-connect/store.d.ts +0 -46
  131. package/lib/modules/pc-audio-connect/store.js +0 -304
  132. package/lib/modules/setting/common/advance-link.d.ts +0 -3
  133. package/lib/modules/setting/common/advance-link.js +0 -27
  134. package/lib/modules/setting/common/index.css +0 -26
  135. package/lib/modules/setting/common/useNamespace.d.ts +0 -15
  136. package/lib/modules/setting/common/useNamespace.js +0 -66
  137. package/lib/modules/setting/dialog-wrapper.d.ts +0 -2
  138. package/lib/modules/setting/dialog-wrapper.js +0 -110
  139. package/lib/modules/setting/store.d.ts +0 -261
  140. package/lib/modules/setting/store.js +0 -1321
  141. package/lib/modules/share-screen/store.d.ts +0 -148
  142. package/lib/modules/share-screen/store.js +0 -950
  143. package/lib/modules/share-screen/types.d.ts +0 -26
  144. package/lib/modules/share-screen/types.js +0 -6
  145. package/lib/modules/state-bar/store.d.ts +0 -124
  146. package/lib/modules/state-bar/store.js +0 -664
  147. package/lib/modules/whiteboard/components/progress/electron.d.ts +0 -1
  148. package/lib/modules/whiteboard/components/progress/electron.js +0 -33
  149. package/lib/modules/widget/store.d.ts +0 -14
  150. package/lib/modules/widget/store.js +0 -28
  151. package/lib/providers/annotation-provider.d.ts +0 -124
  152. package/lib/providers/annotation-provider.js +0 -369
  153. package/lib/providers/dialog-provider.d.ts +0 -137
  154. package/lib/providers/dialog-provider.js +0 -194
  155. package/lib/providers/message-provider.d.ts +0 -69
  156. package/lib/providers/message-provider.js +0 -140
  157. package/lib/providers/room-provider.d.ts +0 -194
  158. package/lib/providers/room-provider.js +0 -916
  159. package/lib/providers/screen-share-provider.d.ts +0 -244
  160. package/lib/providers/screen-share-provider.js +0 -835
  161. package/lib/providers/sharing-provider.d.ts +0 -42
  162. package/lib/providers/sharing-provider.js +0 -221
  163. package/lib/providers/user-setting-storage-provider.d.ts +0 -21
  164. package/lib/providers/user-setting-storage-provider.js +0 -65
  165. package/lib/providers/whiteboard-provider.d.ts +0 -24
  166. package/lib/providers/whiteboard-provider.js +0 -127
  167. package/lib/shared-data-source/annotation-data.d.ts +0 -17
  168. package/lib/shared-data-source/annotation-data.js +0 -110
  169. package/lib/shared-data-source/app-list-data.d.ts +0 -34
  170. package/lib/shared-data-source/app-list-data.js +0 -133
  171. package/lib/shared-data-source/chat-data.d.ts +0 -25
  172. package/lib/shared-data-source/chat-data.js +0 -139
  173. package/lib/shared-data-source/config.d.ts +0 -35
  174. package/lib/shared-data-source/config.js +0 -40
  175. package/lib/shared-data-source/confirm-data.d.ts +0 -25
  176. package/lib/shared-data-source/confirm-data.js +0 -97
  177. package/lib/shared-data-source/device-privilege-data.d.ts +0 -8
  178. package/lib/shared-data-source/device-privilege-data.js +0 -25
  179. package/lib/shared-data-source/interpreter.d.ts +0 -77
  180. package/lib/shared-data-source/interpreter.js +0 -247
  181. package/lib/shared-data-source/layout-data.d.ts +0 -31
  182. package/lib/shared-data-source/layout-data.js +0 -189
  183. package/lib/shared-data-source/meeting-time.d.ts +0 -90
  184. package/lib/shared-data-source/meeting-time.js +0 -416
  185. package/lib/shared-data-source/member-data.d.ts +0 -139
  186. package/lib/shared-data-source/member-data.js +0 -517
  187. package/lib/shared-data-source/pin-data.d.ts +0 -13
  188. package/lib/shared-data-source/pin-data.js +0 -111
  189. package/lib/shared-data-source/screen-share-data.d.ts +0 -364
  190. package/lib/shared-data-source/screen-share-data.js +0 -520
  191. package/lib/shared-data-source/security-data.d.ts +0 -39
  192. package/lib/shared-data-source/security-data.js +0 -156
  193. package/lib/shared-data-source/setting.d.ts +0 -67
  194. package/lib/shared-data-source/setting.js +0 -220
  195. package/lib/shared-data-source/speaker-spotlight.d.ts +0 -5
  196. package/lib/shared-data-source/speaker-spotlight.js +0 -15
  197. package/lib/shared-data-source/video-window.d.ts +0 -165
  198. package/lib/shared-data-source/video-window.js +0 -1266
  199. package/lib/shared-data-source/waiting-room.d.ts +0 -46
  200. package/lib/shared-data-source/waiting-room.js +0 -222
  201. package/lib/shared-data-source/whiteboard-data.d.ts +0 -68
  202. package/lib/shared-data-source/whiteboard-data.js +0 -347
  203. package/lib/utilities/board-context.d.ts +0 -4
  204. package/lib/utilities/board-context.js +0 -12
  205. package/lib/utilities/copyText.d.ts +0 -2
  206. package/lib/utilities/copyText.js +0 -48
  207. package/lib/utilities/renderer-event.d.ts +0 -10
  208. package/lib/utilities/renderer-event.js +0 -95
  209. package/lib/utilities/screen-capture-permission.d.ts +0 -2
  210. package/lib/utilities/screen-capture-permission.js +0 -24
  211. package/lib/utilities/screen.d.ts +0 -3
  212. package/lib/utilities/screen.js +0 -53
  213. package/lib/utilities/video-track-render-context.d.ts +0 -6
  214. package/lib/utilities/video-track-render-context.js +0 -9
  215. package/lib/waiting-room-control-manager.d.ts +0 -28
  216. package/lib/waiting-room-control-manager.js +0 -230
@@ -0,0 +1,391 @@
1
+ /**
2
+ * 会议管理器 - 负责处理会议的生命周期管理
3
+ * 包括创建者初始化、会议启动、错误处理等功能
4
+ */
5
+ class MeetingManager {
6
+ constructor() {
7
+ this.creator = null;
8
+ this.uiScene = null;
9
+
10
+ this.sendExitedEventFlag = true;
11
+ this.lastInitParams = '';
12
+
13
+ this.bindGlobalMethods();
14
+ }
15
+
16
+ /**
17
+ * 重新加载创建者
18
+ * @param {string} stringInitParams - 初始化参数字符串
19
+ */
20
+ reloadCreator(stringInitParams) {
21
+ try {
22
+ const config = JSON.parse(stringInitParams);
23
+ this.creator = new FcrUIScene.FcrUISceneCreator(config);
24
+ this.logInfo('Creator reloaded successfully');
25
+ } catch (error) {
26
+ this.logError('Failed to parse init options:', error);
27
+ }
28
+ }
29
+
30
+ /**
31
+ * 创建或初始化创建者
32
+ * @param {Object} config - 配置对象
33
+ */
34
+ createOrInitCreator(config) {
35
+ try {
36
+ // 如果存在旧的创建者,先释放
37
+ if (this.creator) {
38
+ this.logInfo('Creator exists, releasing previous creator');
39
+ this.releasePreviousScene();
40
+ this.creator.release();
41
+ this.creator = undefined;
42
+ }
43
+ } catch (error) {
44
+ this.logError('Failed to release creator:', error);
45
+ }
46
+
47
+ // 创建新的创建者
48
+ this.lastInitParams = JSON.stringify(config);
49
+ this.logInfo(`Creating new creator with config: ${this.lastInitParams}`);
50
+ this.creator = new FcrUIScene.FcrUISceneCreator(config);
51
+ }
52
+
53
+ /**
54
+ * 释放之前的场景
55
+ */
56
+ releasePreviousScene() {
57
+ if (this.uiScene) {
58
+ this.sendExitedEventFlag = false;
59
+ this.uiScene.exit();
60
+ this.uiScene = null;
61
+ this.logInfo('Previous UI scene released');
62
+ }
63
+ }
64
+
65
+ /**
66
+ * 启动会议
67
+ * @param {Object} launchOptions - 启动选项
68
+ */
69
+ launchMeeting(launchOptions) {
70
+ const { data, lastInitParams: initParamsFromMainProcess } = launchOptions;
71
+
72
+ this.logInfo(`Launching meeting with params: ${initParamsFromMainProcess}`);
73
+
74
+ // 检查是否需要重新加载创建者
75
+ if (initParamsFromMainProcess !== this.lastInitParams) {
76
+ this.logInfo('Init params changed, reloading creator');
77
+ this.lastInitParams = initParamsFromMainProcess;
78
+ this.reloadCreator(initParamsFromMainProcess);
79
+ }
80
+
81
+ // 清理之前的场景
82
+ this.cleanupPreviousScene();
83
+
84
+ // 设置UI状态
85
+ this.setFullScreenFailureComp(false);
86
+ this.setLoading(true);
87
+
88
+ // 绑定错误处理事件
89
+ this.bindErrorHandlers();
90
+
91
+ // 注册小部件
92
+ this.registerWidgets(data);
93
+
94
+ // 启动场景
95
+ this.startUIScene(data);
96
+
97
+ // 添加观察者
98
+ this.addSceneObservers();
99
+ }
100
+
101
+ /**
102
+ * 清理之前的场景
103
+ */
104
+ cleanupPreviousScene() {
105
+ try {
106
+ if (this.uiScene) {
107
+ this.logInfo('Cleaning up previous UI scene');
108
+ this.uiScene.exit();
109
+ this.sendExitedEventFlag = false;
110
+ }
111
+ } catch (error) {
112
+ this.logError('Error during scene cleanup:', error);
113
+ }
114
+ }
115
+
116
+ /**
117
+ * 绑定错误处理事件
118
+ */
119
+ bindErrorHandlers() {
120
+ const confirmBtn = document.querySelector('#fcr-launch-failure-confirm-btn');
121
+ if (confirmBtn) {
122
+ confirmBtn.removeEventListener('click', this.handleConfirmClick);
123
+ confirmBtn.addEventListener('click', this.handleConfirmClick.bind(this));
124
+ }
125
+ }
126
+
127
+ /**
128
+ * 注册小部件
129
+ * @param {Object} data - 数据对象
130
+ */
131
+ registerWidgets(data) {
132
+ const { widgets, ...others } = data;
133
+ if (widgets && Array.isArray(widgets)) {
134
+ widgets.forEach(widget => {
135
+ this.creator.registerWidget(widget);
136
+ });
137
+ }
138
+ }
139
+
140
+ /**
141
+ * 启动UI场景
142
+ * @param {Object} data - 数据对象
143
+ */
144
+ startUIScene(data) {
145
+ const { widgets, ...others } = data;
146
+
147
+ this.uiScene = this.creator.launch(
148
+ others,
149
+ () => {
150
+ this.logInfo('UI scene closed callback');
151
+ window.runtime.getCurrentBrowserWindow().hide();
152
+ },
153
+ () => { }, // 空回调
154
+ () => { }, // 空回调
155
+ document.getElementById('root')
156
+ );
157
+ }
158
+
159
+ /**
160
+ * 添加场景观察者
161
+ */
162
+ addSceneObservers() {
163
+ this.uiScene.addObserver({
164
+ onLaunchSuccess: () => this.handleLaunchSuccess(),
165
+ onLaunchFailure: (roomId, error) => this.handleLaunchFailure(roomId, error),
166
+ onExited: (roomId, reason) => this.handleSceneExited(roomId, reason),
167
+ onWidgetClicked: (widgetId) => this.handleWidgetClicked(widgetId),
168
+ onUserTokenWillExpire: () => this.handleUserTokenWillExpire()
169
+ });
170
+ }
171
+
172
+ /**
173
+ * 处理启动成功
174
+ */
175
+ handleLaunchSuccess() {
176
+ this.setLoading(false);
177
+ this.sendExitedEventFlag = true;
178
+
179
+ try {
180
+ const roomProvider = this.uiScene._objectManager.getObject('roomProvider');
181
+ if (!roomProvider) {
182
+ throw new Error('roomProvider not found in uiScene');
183
+ }
184
+
185
+ const currentRoomControl = roomProvider.currentRoomControl;
186
+ if (!currentRoomControl) {
187
+ throw new Error('currentRoomControl not found in uiScene');
188
+ }
189
+
190
+ const roomInfo = currentRoomControl.getRoomInfo();
191
+ if (!roomInfo) {
192
+ throw new Error('roomInfo not found in uiScene');
193
+ }
194
+
195
+ const { roomName, roomId } = roomInfo;
196
+ document.querySelector('title').innerText = roomName;
197
+ window.cppSdkHelper.launchSuccess(roomId);
198
+ } catch (error) {
199
+ this.logError('Error in launch success handler:', error);
200
+ }
201
+ }
202
+
203
+ /**
204
+ * 处理启动失败
205
+ * @param {string} roomId - 房间ID
206
+ * @param {Object} error - 错误对象
207
+ */
208
+ handleLaunchFailure(roomId, error) {
209
+ const errorCode = Number(error.code);
210
+ let errorMessage = this.getErrorMessage(errorCode, error.message);
211
+
212
+ this.setFullScreenFailureComp(true, errorMessage);
213
+ window.cppSdkHelper.launchFailure(roomId, errorCode);
214
+ }
215
+
216
+ /**
217
+ * 获取错误消息
218
+ * @param {number} errorCode - 错误代码
219
+ * @param {string} defaultMessage - 默认错误消息
220
+ * @returns {string} 错误消息
221
+ */
222
+ getErrorMessage(errorCode, defaultMessage) {
223
+ const errorCodeMap = {
224
+ 732403100: 'fmt_lock_error',
225
+ 631735290: 'fmt_lock_error',
226
+ 732403101: 'fmt_pc_room_not_exist_error',
227
+ 732403103: 'fmt_host_leave_error',
228
+ 720410100: 'fmt_end_error'
229
+ };
230
+
231
+ const errorKey = errorCodeMap[errorCode];
232
+ if (errorKey) {
233
+ return window._transI18n(errorKey);
234
+ }
235
+
236
+ return `Error: code=${errorCode}, message=${defaultMessage}`;
237
+ }
238
+
239
+ /**
240
+ * 处理场景退出
241
+ * @param {string} roomId - 房间ID
242
+ * @param {string} reason - 退出原因
243
+ */
244
+ handleSceneExited(roomId, reason) {
245
+ if (!this.sendExitedEventFlag) {
246
+ return;
247
+ }
248
+
249
+ this.logInfo('UI scene exited');
250
+ window.cppSdkHelper.exitedMeeting(roomId, reason);
251
+ this.uiScene = null;
252
+
253
+ setTimeout(() => {
254
+ this.logInfo('UI scene exited callback');
255
+ window.runtime.getCurrentBrowserWindow().hide();
256
+ });
257
+ }
258
+
259
+ /**
260
+ * 处理小部件点击
261
+ * @param {string} widgetId - 小部件ID
262
+ */
263
+ handleWidgetClicked(widgetId) {
264
+ window.cppSdkHelper.onWidgetClicked(widgetId);
265
+ }
266
+
267
+ /**
268
+ * 处理用户令牌即将过期
269
+ */
270
+ handleUserTokenWillExpire() {
271
+ window.cppSdkHelper.onUserTokenWillExpire();
272
+ }
273
+
274
+ /**
275
+ * 退出UI场景
276
+ */
277
+ exitUiScene() {
278
+ try {
279
+ if (!this.uiScene) {
280
+ return;
281
+ }
282
+ this.uiScene.exit();
283
+ this.lastInitParams = '';
284
+ } catch (error) {
285
+ window.cppSdkHelper.exitedMeeting(roomId, FcrUIExitReason.USER_QUIT);
286
+ }
287
+ }
288
+
289
+ /**
290
+ * 处理确认按钮点击
291
+ */
292
+ handleConfirmClick() {
293
+ this.setFullScreenFailureComp(false);
294
+ this.logInfo('Error confirmation button clicked');
295
+ window.runtime.getCurrentBrowserWindow().hide();
296
+ }
297
+
298
+ /**
299
+ * 绑定全局方法
300
+ */
301
+ bindGlobalMethods() {
302
+ window.cppSdkHelper.onCreatorInit = (config) => {
303
+ window.__AgoraMutex.dispatch(() => {
304
+ this.createOrInitCreator(config);
305
+ });
306
+ };
307
+
308
+ window.cppSdkHelper.onSettingOpen = () => {
309
+ this.creator.openSetting();
310
+ };
311
+
312
+ window.cppSdkHelper.onSettingClose = () => {
313
+ this.creator.closeSetting();
314
+ };
315
+
316
+ window.cppSdkHelper.onSetParameters = (parameters) => {
317
+ this.creator.setParameters(parameters);
318
+ };
319
+
320
+ window.cppSdkHelper.onRenewUserToken = (token) => {
321
+ this.creator.renewUserToken(token);
322
+ };
323
+
324
+ window.cppSdkHelper.exitUiScene = () => {
325
+ window.__AgoraMutex.dispatch(() => {
326
+ this.exitUiScene();
327
+ });
328
+ };
329
+
330
+ window.cppSdkHelper.onLaunchMeeting = (launchOptions) => {
331
+ window.__AgoraMutex.dispatch(() => {
332
+ this.launchMeeting(launchOptions);
333
+ })
334
+ };
335
+ }
336
+
337
+ /**
338
+ * 设置加载状态
339
+ * @param {boolean} visible - 是否显示加载状态
340
+ */
341
+ setLoading(visible) {
342
+ const dom = document.querySelector('#launch-loading');
343
+ if (dom) {
344
+ dom.style.display = visible ? 'flex' : 'none';
345
+ }
346
+ }
347
+
348
+ /**
349
+ * 设置全屏失败组件
350
+ * @param {boolean} visible - 是否显示
351
+ * @param {string} errorMsg - 错误消息
352
+ */
353
+ setFullScreenFailureComp(visible, errorMsg) {
354
+ this.setLoading(false);
355
+ const dom = document.querySelector('#fcr-launch-failure-comp');
356
+ const btnTextDom = document.querySelector('#fcr-launch-failure-btn-text');
357
+
358
+ if (dom) {
359
+ if (visible) {
360
+ dom.style.display = 'flex';
361
+ btnTextDom.innerText = window.$$agora_language === 'zh' ? '我已知悉' : 'I know';
362
+ if (errorMsg) {
363
+ const msgDom = document.querySelector('#fcr-launch-failure-error-info');
364
+ msgDom.innerText = errorMsg;
365
+ }
366
+ } else {
367
+ dom.style.display = 'none';
368
+ }
369
+ }
370
+ }
371
+
372
+ /**
373
+ * 记录信息日志
374
+ * @param {string} message - 日志消息
375
+ */
376
+ logInfo(message) {
377
+ window.__AgoraLogger.info(`MEETING MANAGER: ${message}`);
378
+ }
379
+
380
+ /**
381
+ * 记录错误日志
382
+ * @param {string} message - 错误消息
383
+ * @param {Error} error - 错误对象
384
+ */
385
+ logError(message, error) {
386
+ window.__AgoraLogger.error(`MEETING MANAGER: ${message}`, error);
387
+ }
388
+ }
389
+
390
+ // 初始化会议管理器
391
+ const meetingManager = new MeetingManager();
package/lib/creator.d.ts DELETED
@@ -1,36 +0,0 @@
1
- import { FcrUISceneCancelCallback, FcrUISceneConfig, FcrUISceneCreatorConfig, FcrUISceneFailureCallback, FcrUISceneSuccessCallback, FcrUISettingConfig, FcrUIWebWidgetConfig } from './type';
2
- import { FcrUIDefaultScene } from './ui-scene';
3
- import SettingStore from './modules/setting/store';
4
- export interface FcrObservableSettingStore {
5
- value: SettingStore | null;
6
- }
7
- export declare class FcrUISceneCreator {
8
- private _config;
9
- accessor observableSettingStore: FcrObservableSettingStore;
10
- protected logger: import("agora-foundation/lib/logger").Logger;
11
- private _userSettingStorageProvider;
12
- private _registeredWidgetConfigs;
13
- private _released;
14
- private _scene;
15
- private _microphoneKeepRecording;
16
- private _sceneObserver;
17
- constructor(_config: FcrUISceneCreatorConfig);
18
- private _initProviders;
19
- launch(config: FcrUISceneConfig, onCancel: FcrUISceneCancelCallback, onSuccess: FcrUISceneSuccessCallback, onFailure: FcrUISceneFailureCallback, dom: HTMLElement): FcrUIDefaultScene;
20
- getSettingConfig(): FcrUISettingConfig;
21
- registerWidget(config: FcrUIWebWidgetConfig): void;
22
- unregisterWidget(widgetId: string): void;
23
- renewUserToken(token: string): void;
24
- setParameters(parameters: Record<string, unknown>): void;
25
- getVersion(): string;
26
- getDependencyVersions(): Record<string, string>;
27
- openSetting(): void;
28
- closeSetting(): void;
29
- private _releaseProviders;
30
- release(): void;
31
- private _resetScene;
32
- private _precheckState;
33
- private _filterKeepRecordingValueFromParameters;
34
- private _setKeepRecordingValueFromParameters;
35
- private _createSettingStore;
36
- }