fcr-ui-scene 3.7.7-rc.1 → 3.7.8

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 (211) hide show
  1. package/lib/creator/provider-initializer.browser.js +2 -2
  2. package/lib/creator/provider-initializer.electron.js +2 -2
  3. package/lib/creator.d.ts +36 -0
  4. package/lib/creator.js +465 -0
  5. package/lib/electron/bootstrap-sdk.js +70 -33
  6. package/lib/electron/hang-detection/index.d.ts +3 -0
  7. package/lib/electron/hang-detection/index.js +15 -0
  8. package/lib/electron/hang-detection/manager.d.ts +28 -0
  9. package/lib/electron/hang-detection/manager.js +231 -0
  10. package/lib/electron/hang-detection/types.d.ts +14 -0
  11. package/lib/electron/hang-detection/types.js +6 -0
  12. package/lib/electron/until.d.ts +1 -4
  13. package/lib/electron/until.js +9 -4
  14. package/lib/modules/action-bar/components/screen-share/index.electron.js +1 -1
  15. package/lib/modules/action-bar/index.d.ts +56 -0
  16. package/lib/modules/action-bar/index.dev.d.ts +0 -0
  17. package/lib/modules/action-bar/index.dev.js +94 -0
  18. package/lib/modules/action-bar/index.js +108 -0
  19. package/lib/modules/action-bar/store.d.ts +256 -0
  20. package/lib/modules/action-bar/store.js +1572 -0
  21. package/lib/modules/action-bar/types.d.ts +90 -0
  22. package/lib/modules/action-bar/types.js +6 -0
  23. package/lib/modules/action-bar/view.d.ts +5 -0
  24. package/lib/modules/action-bar/view.js +112 -0
  25. package/lib/modules/annotation/annotation-index.d.ts +2 -0
  26. package/lib/modules/annotation/annotation-index.js +80 -0
  27. package/lib/modules/annotation/annotation-toolbar-store.d.ts +75 -0
  28. package/lib/modules/annotation/annotation-toolbar-store.js +459 -0
  29. package/lib/modules/annotation/board-cursor.css +77 -0
  30. package/lib/modules/annotation/components/color-picker/components/color.d.ts +5 -0
  31. package/lib/modules/annotation/components/color-picker/components/color.js +38 -0
  32. package/lib/modules/annotation/components/color-picker/components/panel.d.ts +1 -0
  33. package/lib/modules/annotation/components/color-picker/components/panel.js +109 -0
  34. package/lib/modules/annotation/components/color-picker/components/picker.d.ts +1 -0
  35. package/lib/modules/annotation/components/color-picker/components/picker.js +75 -0
  36. package/lib/modules/annotation/components/color-picker/index.d.ts +2 -0
  37. package/lib/modules/annotation/components/color-picker/index.js +47 -0
  38. package/lib/modules/annotation/components/eraser-picker.d.ts +4 -0
  39. package/lib/modules/annotation/components/eraser-picker.js +144 -0
  40. package/lib/modules/annotation/components/expansion/index.d.ts +1 -0
  41. package/lib/modules/annotation/components/expansion/index.js +100 -0
  42. package/lib/modules/annotation/components/extra-tool-picker.d.ts +1 -0
  43. package/lib/modules/annotation/components/extra-tool-picker.js +62 -0
  44. package/lib/modules/annotation/components/history.d.ts +2 -0
  45. package/lib/modules/annotation/components/history.js +78 -0
  46. package/lib/modules/annotation/components/icons/fold-icon.d.ts +2 -0
  47. package/lib/modules/annotation/components/icons/fold-icon.js +41 -0
  48. package/lib/modules/annotation/components/icons/move-icon.d.ts +1 -0
  49. package/lib/modules/annotation/components/icons/move-icon.js +66 -0
  50. package/lib/modules/annotation/components/item/index.d.ts +1 -0
  51. package/lib/modules/annotation/components/item/index.js +43 -0
  52. package/lib/modules/annotation/components/move-handle.d.ts +5 -0
  53. package/lib/modules/annotation/components/move-handle.js +134 -0
  54. package/lib/modules/annotation/components/pen-picker.d.ts +4 -0
  55. package/lib/modules/annotation/components/pen-picker.js +155 -0
  56. package/lib/modules/annotation/components/screen-capture-picker.d.ts +4 -0
  57. package/lib/modules/annotation/components/screen-capture-picker.js +85 -0
  58. package/lib/modules/annotation/components/shape-picker.d.ts +4 -0
  59. package/lib/modules/annotation/components/shape-picker.js +210 -0
  60. package/lib/modules/annotation/hooks/index.d.ts +14 -0
  61. package/lib/modules/annotation/hooks/index.js +292 -0
  62. package/lib/modules/annotation/index.d.ts +45 -0
  63. package/lib/modules/annotation/index.js +168 -0
  64. package/lib/modules/annotation/store.d.ts +98 -0
  65. package/lib/modules/annotation/store.js +621 -0
  66. package/lib/modules/annotation/style.css +36 -0
  67. package/lib/modules/annotation/view.d.ts +3 -0
  68. package/lib/modules/annotation/view.js +44 -0
  69. package/lib/modules/components/control-bar/components/switch-theme/index.js +4 -2
  70. package/lib/modules/components/control-bar/index.js +1 -3
  71. package/lib/modules/components/device-control/store.d.ts +42 -0
  72. package/lib/modules/components/device-control/store.js +241 -0
  73. package/lib/modules/components/leave-meeting/store.d.ts +39 -0
  74. package/lib/modules/components/leave-meeting/store.js +270 -0
  75. package/lib/modules/control-bar/components/annotation-button/index.d.ts +1 -0
  76. package/lib/modules/control-bar/components/annotation-button/index.js +72 -0
  77. package/lib/modules/control-bar/types.d.ts +20 -0
  78. package/lib/modules/control-bar/types.js +6 -0
  79. package/lib/modules/dialog/dialogs/pre-setting/index.css +26 -0
  80. package/lib/modules/dialog/dialogs/pre-setting/index.d.ts +6 -0
  81. package/lib/modules/dialog/dialogs/pre-setting/index.js +62 -0
  82. package/lib/modules/dialog/dialogs/widget/electron.d.ts +6 -0
  83. package/lib/modules/dialog/dialogs/widget/electron.js +38 -0
  84. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +14 -0
  85. package/lib/modules/dialog/hooks/use-popover-watcher.js +110 -0
  86. package/lib/modules/dialog/hooks/useElectron.d.ts +28 -0
  87. package/lib/modules/dialog/hooks/useElectron.js +277 -0
  88. package/lib/modules/dialog/store.d.ts +135 -0
  89. package/lib/modules/dialog/store.js +616 -0
  90. package/lib/modules/event-confirm/components/window/index.d.ts +4 -0
  91. package/lib/modules/event-confirm/components/window/index.js +197 -0
  92. package/lib/modules/event-confirm/index.css +24 -0
  93. package/lib/modules/event-confirm/index.d.ts +27 -0
  94. package/lib/modules/event-confirm/index.js +76 -0
  95. package/lib/modules/event-confirm/store.d.ts +45 -0
  96. package/lib/modules/event-confirm/store.js +345 -0
  97. package/lib/modules/event-confirm/view.d.ts +2 -0
  98. package/lib/modules/event-confirm/view.js +53 -0
  99. package/lib/modules/event-toast/store.d.ts +27 -0
  100. package/lib/modules/event-toast/store.js +205 -0
  101. package/lib/modules/layout/store.d.ts +176 -0
  102. package/lib/modules/layout/store.js +1466 -0
  103. package/lib/modules/participant/store.base.js +0 -1
  104. package/lib/modules/participant/store.d.ts +222 -0
  105. package/lib/modules/participant/store.js +1927 -0
  106. package/lib/modules/pc-audio-connect/index.d.ts +22 -0
  107. package/lib/modules/pc-audio-connect/index.js +67 -0
  108. package/lib/modules/pc-audio-connect/store.d.ts +46 -0
  109. package/lib/modules/pc-audio-connect/store.js +304 -0
  110. package/lib/modules/setting/common/advance-link.d.ts +3 -0
  111. package/lib/modules/setting/common/advance-link.js +27 -0
  112. package/lib/modules/setting/common/index.css +26 -0
  113. package/lib/modules/setting/common/useNamespace.d.ts +15 -0
  114. package/lib/modules/setting/common/useNamespace.js +66 -0
  115. package/lib/modules/setting/dialog-wrapper.d.ts +2 -0
  116. package/lib/modules/setting/dialog-wrapper.js +110 -0
  117. package/lib/modules/setting/store.d.ts +261 -0
  118. package/lib/modules/setting/store.js +1321 -0
  119. package/lib/modules/share-screen/store.d.ts +148 -0
  120. package/lib/modules/share-screen/store.electron.js +9 -0
  121. package/lib/modules/share-screen/store.js +950 -0
  122. package/lib/modules/share-screen/types.d.ts +26 -0
  123. package/lib/modules/share-screen/types.js +6 -0
  124. package/lib/modules/state-bar/store.base.electron.js +6 -2
  125. package/lib/modules/state-bar/store.d.ts +124 -0
  126. package/lib/modules/state-bar/store.js +664 -0
  127. package/lib/modules/whiteboard/components/progress/electron.d.ts +1 -0
  128. package/lib/modules/whiteboard/components/progress/electron.js +33 -0
  129. package/lib/modules/widget/store.d.ts +14 -0
  130. package/lib/modules/widget/store.js +28 -0
  131. package/lib/providers/annotation-provider.d.ts +124 -0
  132. package/lib/providers/annotation-provider.js +369 -0
  133. package/lib/providers/board-share/bar-control/base.d.ts +2 -0
  134. package/lib/providers/board-share/bar-control/base.js +13 -3
  135. package/lib/providers/board-share/bar-control/electron.d.ts +1 -0
  136. package/lib/providers/board-share/bar-control/electron.js +15 -4
  137. package/lib/providers/board-share/provider.base.d.ts +1 -0
  138. package/lib/providers/board-share/provider.base.js +3 -1
  139. package/lib/providers/board-share/provider.electron.d.ts +1 -0
  140. package/lib/providers/board-share/provider.electron.js +8 -2
  141. package/lib/providers/board-share/type.d.ts +2 -0
  142. package/lib/providers/dialog/provider.electron.js +10 -2
  143. package/lib/providers/dialog-provider.d.ts +137 -0
  144. package/lib/providers/dialog-provider.js +194 -0
  145. package/lib/providers/message-provider.d.ts +69 -0
  146. package/lib/providers/message-provider.js +140 -0
  147. package/lib/providers/room-provider.d.ts +194 -0
  148. package/lib/providers/room-provider.js +916 -0
  149. package/lib/providers/screen-share/strategy/browser.js +50 -3
  150. package/lib/providers/screen-share/strategy/electron.js +77 -8
  151. package/lib/providers/screen-share/stream-state-sync.d.ts +3 -1
  152. package/lib/providers/screen-share/stream-state-sync.js +133 -40
  153. package/lib/providers/screen-share-provider.d.ts +244 -0
  154. package/lib/providers/screen-share-provider.js +835 -0
  155. package/lib/providers/sharing-provider.d.ts +42 -0
  156. package/lib/providers/sharing-provider.js +221 -0
  157. package/lib/providers/user-setting-storage-provider.d.ts +21 -0
  158. package/lib/providers/user-setting-storage-provider.js +65 -0
  159. package/lib/providers/whiteboard-provider.d.ts +24 -0
  160. package/lib/providers/whiteboard-provider.js +127 -0
  161. package/lib/shared-data-source/annotation-data.d.ts +17 -0
  162. package/lib/shared-data-source/annotation-data.js +110 -0
  163. package/lib/shared-data-source/app-list-data.d.ts +34 -0
  164. package/lib/shared-data-source/app-list-data.js +133 -0
  165. package/lib/shared-data-source/chat-data.d.ts +25 -0
  166. package/lib/shared-data-source/chat-data.js +139 -0
  167. package/lib/shared-data-source/config.d.ts +35 -0
  168. package/lib/shared-data-source/config.js +40 -0
  169. package/lib/shared-data-source/confirm-data.d.ts +25 -0
  170. package/lib/shared-data-source/confirm-data.js +97 -0
  171. package/lib/shared-data-source/device-privilege-data.d.ts +8 -0
  172. package/lib/shared-data-source/device-privilege-data.js +25 -0
  173. package/lib/shared-data-source/interpreter.d.ts +77 -0
  174. package/lib/shared-data-source/interpreter.js +247 -0
  175. package/lib/shared-data-source/layout-data.d.ts +31 -0
  176. package/lib/shared-data-source/layout-data.js +189 -0
  177. package/lib/shared-data-source/meeting-time.d.ts +90 -0
  178. package/lib/shared-data-source/meeting-time.js +416 -0
  179. package/lib/shared-data-source/member-data.d.ts +139 -0
  180. package/lib/shared-data-source/member-data.js +517 -0
  181. package/lib/shared-data-source/pin-data.d.ts +13 -0
  182. package/lib/shared-data-source/pin-data.js +111 -0
  183. package/lib/shared-data-source/screen-share-data.d.ts +364 -0
  184. package/lib/shared-data-source/screen-share-data.js +520 -0
  185. package/lib/shared-data-source/security-data.d.ts +39 -0
  186. package/lib/shared-data-source/security-data.js +156 -0
  187. package/lib/shared-data-source/setting.d.ts +67 -0
  188. package/lib/shared-data-source/setting.js +220 -0
  189. package/lib/shared-data-source/speaker-spotlight.d.ts +5 -0
  190. package/lib/shared-data-source/speaker-spotlight.js +15 -0
  191. package/lib/shared-data-source/video-window.d.ts +165 -0
  192. package/lib/shared-data-source/video-window.js +1266 -0
  193. package/lib/shared-data-source/waiting-room.d.ts +46 -0
  194. package/lib/shared-data-source/waiting-room.js +222 -0
  195. package/lib/shared-data-source/whiteboard-data.d.ts +68 -0
  196. package/lib/shared-data-source/whiteboard-data.js +347 -0
  197. package/lib/utilities/board-context.d.ts +4 -0
  198. package/lib/utilities/board-context.js +12 -0
  199. package/lib/utilities/copyText.d.ts +2 -0
  200. package/lib/utilities/copyText.js +48 -0
  201. package/lib/utilities/renderer-event.d.ts +10 -0
  202. package/lib/utilities/renderer-event.js +95 -0
  203. package/lib/utilities/screen-capture-permission.d.ts +2 -0
  204. package/lib/utilities/screen-capture-permission.js +24 -0
  205. package/lib/utilities/screen.d.ts +3 -0
  206. package/lib/utilities/screen.js +53 -0
  207. package/lib/utilities/video-track-render-context.d.ts +6 -0
  208. package/lib/utilities/video-track-render-context.js +9 -0
  209. package/lib/waiting-room-control-manager.d.ts +28 -0
  210. package/lib/waiting-room-control-manager.js +230 -0
  211. package/package.json +5 -5
@@ -13,6 +13,7 @@ require("core-js/modules/es.array.concat.js");
13
13
  require("core-js/modules/es.array.find.js");
14
14
  require("core-js/modules/es.array.for-each.js");
15
15
  require("core-js/modules/es.array.join.js");
16
+ require("core-js/modules/es.array.map.js");
16
17
  require("core-js/modules/es.date.to-json.js");
17
18
  require("core-js/modules/es.json.stringify.js");
18
19
  require("core-js/modules/es.object.keys.js");
@@ -22,6 +23,7 @@ require("core-js/modules/es.string.starts-with.js");
22
23
  require("core-js/modules/esnext.iterator.constructor.js");
23
24
  require("core-js/modules/esnext.iterator.find.js");
24
25
  require("core-js/modules/esnext.iterator.for-each.js");
26
+ require("core-js/modules/esnext.iterator.map.js");
25
27
  require("core-js/modules/esnext.json.parse.js");
26
28
  require("core-js/modules/web.dom-collections.for-each.js");
27
29
  require("core-js/modules/web.timers.js");
@@ -42,6 +44,7 @@ var _exitCodes = require("./exit-codes");
42
44
  var _struct = require("./struct");
43
45
  var _eventManager = require("./event-manager");
44
46
  var _until = require("./until");
47
+ var _hangDetection = require("./hang-detection");
45
48
  var _process$argv$find; // TODO 需要将其改造成 processManager --- stateManager 和 eventManager 的逻辑,保持兼容
46
49
  // processManager --- stateManager 和 eventManager
47
50
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -289,6 +292,9 @@ _electron.app.addListener('ready', function () {
289
292
  });
290
293
  mainWindow.addListener('hide', function () {
291
294
  (0, _logger.getLogger)().info("windows_release main window hidden, current launch state: ".concat(_struct.FcrUISceneLaunchState[_eventManager.eventManager.launchState]));
295
+ (0, _logger.getLogger)().info("windows_release the main window is hide, all window State: ".concat(_electron.BrowserWindow.getAllWindows().map(function (windowItem) {
296
+ return "the window id ".concat(windowItem.id, " ").concat(windowItem.getTitle(), " ").concat(windowItem.isVisible());
297
+ })));
292
298
  mainWindowDisplayState = _struct.DisplayState.HIDE;
293
299
  if (userMinimize) {
294
300
  (0, _logger.getLogger)().info('windows_release main window hidden, but user minimize, ignore this event');
@@ -330,6 +336,8 @@ _electron.app.addListener('ready', function () {
330
336
  });
331
337
  mainWindow.addListener('closed', function () {
332
338
  (0, _logger.getLogger)().info('windows_release main window closed');
339
+ // 清理主窗口的hang detection状态
340
+ hangDetectionManager.handleWindowClosed(mainWindow.id);
333
341
  _electron.app.exit(_exitCodes.AppExitCode.NORMAL_EXIT);
334
342
  });
335
343
  mainWindow.addListener('close', function (e) {
@@ -355,18 +363,12 @@ _electron.app.addListener('ready', function () {
355
363
  });
356
364
  (0, _logger.getLogger)().info('main window close event prevented');
357
365
  setTimeout(function () {
358
- mainWindow.hide();
366
+ if (mainWindow && !mainWindow.isDestroyed()) {
367
+ mainWindow.hide();
368
+ }
359
369
  }, 300);
360
370
  }
361
371
  });
362
- mainWindow.addListener('unresponsive', function () {
363
- (0, _logger.getLogger)().warn("main window unresponsive in bootstrap-sdk");
364
- handleUnresponsive();
365
- });
366
- mainWindow.addListener('responsive', function () {
367
- (0, _logger.getLogger)().warn("main window responsive in bootstrap-sdk");
368
- handleResponsive();
369
- });
370
372
  if (_env.isDev) {
371
373
  mainWindow.webContents.openDevTools({
372
374
  mode: 'detach'
@@ -379,6 +381,22 @@ _electron.app.addListener('ready', function () {
379
381
  return mainWindow;
380
382
  });
381
383
  _electron.app.addListener('browser-window-created', function (_, window) {
384
+ var windowId = window.id;
385
+ (0, _logger.getLogger)().warn("window created: ".concat(windowId, " ,window title: ").concat(window.getTitle()));
386
+ window.webContents.addListener('unresponsive', function () {
387
+ (0, _logger.getLogger)().warn("browser window ".concat(windowId, " unresponsive in bootstrap-sdk"));
388
+ handleUnresponsive(windowId);
389
+ });
390
+ window.webContents.addListener('responsive', function () {
391
+ (0, _logger.getLogger)().warn("browser window ".concat(windowId, " responsive in bootstrap-sdk"));
392
+ handleResponsive(windowId);
393
+ });
394
+
395
+ // 监听窗口关闭事件,清理hang detection状态
396
+ window.addListener('closed', function () {
397
+ (0, _logger.getLogger)().info("browser window ".concat(windowId, " closed, cleaning hang detection state"));
398
+ hangDetectionManager.handleWindowClosed(windowId);
399
+ });
382
400
  (0, _main.enable)(window.webContents);
383
401
  });
384
402
 
@@ -393,31 +411,50 @@ _electron.app.addListener('quit', function (event, exitCode) {
393
411
  (0, _logger.getLogger)().info("app quit event triggered with exit code: ".concat(exitCode));
394
412
  // 清理 EventManager 资源
395
413
  _eventManager.eventManager.dispose();
414
+
415
+ // 清理所有hang detection计时器
416
+ hangDetectionManager.dispose();
396
417
  });
397
- var HANG_DETECTION_TIMEOUT = 60 * 1000; // 1分钟(毫s秒)
398
- var hangDetectionTimer = null;
399
- function handleUnresponsive() {
400
- (0, _logger.getLogger)().warn('Window became unresponsive, starting hang detection timer');
401
- clearHangDetectionTimer();
402
- hangDetectionTimer = setTimeout(function () {
403
- (0, _logger.getLogger)().error('Window has been unresponsive for 1 minute, forcing application exit');
404
- _eventManager.eventManager.onExitedMeeting(_eventManager.eventManager.roomId, _struct.FcrUISceneLaunchEndReason.HANG_DETECTION);
405
- ipcClient.sendMessage({
406
- cmd: _type.IPCMessageCMD.ExitedMeeting,
407
- data: {
408
- roomId: _eventManager.eventManager.roomId,
409
- reason: _until.hangDetectionErrorCode
410
- }
411
- });
412
- }, HANG_DETECTION_TIMEOUT);
413
- }
414
- function handleResponsive() {
415
- (0, _logger.getLogger)().info('Window became responsive again, clearing hang detection timer');
416
- clearHangDetectionTimer();
418
+ var onHangTimeout = function onHangTimeout(windowId) {
419
+ (0, _logger.getLogger)().error("Window ".concat(windowId, " hang timeout, triggering application exit"));
420
+ _eventManager.eventManager.onExitedMeeting(_eventManager.eventManager.roomId, _struct.FcrUISceneLaunchEndReason.HANG_DETECTION);
421
+ ipcClient.sendMessage({
422
+ cmd: _type.IPCMessageCMD.ExitedMeeting,
423
+ data: {
424
+ roomId: _eventManager.eventManager.roomId,
425
+ reason: _until.hangDetectionErrorCode
426
+ }
427
+ });
428
+ };
429
+ var onStateChange = function onStateChange(windowId, isUnresponsive, duration) {
430
+ if (isUnresponsive) {
431
+ (0, _logger.getLogger)().warn("Window ".concat(windowId, " became unresponsive"));
432
+ } else {
433
+ (0, _logger.getLogger)().info("Window ".concat(windowId, " became responsive").concat(duration ? " after ".concat(duration, "ms") : ''));
434
+ }
435
+ };
436
+ var hangDetectionManager = new _hangDetection.MultiWindowHangDetectionManager({
437
+ onHangTimeout: onHangTimeout,
438
+ onStateChange: onStateChange
439
+ }, {
440
+ timeout: _hangDetection.DEFAULT_HANG_DETECTION_TIMEOUT,
441
+ enableVerboseLogging: true
442
+ });
443
+ function handleUnresponsive(windowId) {
444
+ var _mainWindow;
445
+ var targetWindowId = windowId || ((_mainWindow = mainWindow) === null || _mainWindow === void 0 ? void 0 : _mainWindow.id);
446
+ if (!targetWindowId) {
447
+ (0, _logger.getLogger)().warn('Cannot handle unresponsive: no window ID available');
448
+ return;
449
+ }
450
+ hangDetectionManager.handleWindowUnresponsive(targetWindowId);
417
451
  }
418
- function clearHangDetectionTimer() {
419
- if (hangDetectionTimer) {
420
- clearTimeout(hangDetectionTimer);
421
- hangDetectionTimer = null;
452
+ function handleResponsive(windowId) {
453
+ var _mainWindow2;
454
+ var targetWindowId = windowId || ((_mainWindow2 = mainWindow) === null || _mainWindow2 === void 0 ? void 0 : _mainWindow2.id);
455
+ if (!targetWindowId) {
456
+ (0, _logger.getLogger)().warn('Cannot handle responsive: no window ID available');
457
+ return;
422
458
  }
459
+ hangDetectionManager.handleWindowResponsive(targetWindowId);
423
460
  }
@@ -0,0 +1,3 @@
1
+ export { MultiWindowHangDetectionManager } from './manager';
2
+ export type { WindowHangState, HangDetectionConfig, HangDetectionCallbacks } from './types';
3
+ export declare const DEFAULT_HANG_DETECTION_TIMEOUT: number;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DEFAULT_HANG_DETECTION_TIMEOUT = void 0;
8
+ Object.defineProperty(exports, "MultiWindowHangDetectionManager", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _manager.MultiWindowHangDetectionManager;
12
+ }
13
+ });
14
+ var _manager = require("./manager");
15
+ var DEFAULT_HANG_DETECTION_TIMEOUT = exports.DEFAULT_HANG_DETECTION_TIMEOUT = 15 * 1000; // 15秒
@@ -0,0 +1,28 @@
1
+ import { WindowHangState, HangDetectionConfig, HangDetectionCallbacks } from './types';
2
+ /**
3
+ * 多窗口 Hang Detection 管理器
4
+ */
5
+ export declare class MultiWindowHangDetectionManager {
6
+ private windowStates;
7
+ private logger;
8
+ private config;
9
+ private callbacks;
10
+ constructor(callbacks: HangDetectionCallbacks, config?: HangDetectionConfig);
11
+ handleWindowUnresponsive(windowId: number): void;
12
+ /**
13
+ * 处理窗口变为responsive
14
+ */
15
+ handleWindowResponsive(windowId: number): void;
16
+ private clearWindowTimer;
17
+ clearAllTimers(): void;
18
+ getUnresponsiveWindowCount(): number;
19
+ getUnresponsiveWindowIds(): number[];
20
+ getWindowHangState(windowId: number): WindowHangState | undefined;
21
+ isWindowUnresponsive(windowId: number): boolean;
22
+ getWindowUnresponsiveDuration(windowId: number): number | null;
23
+ private logCurrentState;
24
+ handleWindowClosed(windowId: number): void;
25
+ updateConfig(config: Partial<HangDetectionConfig>): void;
26
+ getConfig(): Required<HangDetectionConfig>;
27
+ dispose(): void;
28
+ }
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.symbol.description.js");
5
+ require("core-js/modules/es.symbol.iterator.js");
6
+ require("core-js/modules/es.error.cause.js");
7
+ require("core-js/modules/es.error.to-string.js");
8
+ require("core-js/modules/es.array.filter.js");
9
+ require("core-js/modules/es.array.for-each.js");
10
+ require("core-js/modules/es.array.is-array.js");
11
+ require("core-js/modules/es.array.push.js");
12
+ require("core-js/modules/es.array.slice.js");
13
+ require("core-js/modules/es.date.to-string.js");
14
+ require("core-js/modules/es.function.name.js");
15
+ require("core-js/modules/es.object.define-properties.js");
16
+ require("core-js/modules/es.object.define-property.js");
17
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
18
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
19
+ require("core-js/modules/es.object.keys.js");
20
+ require("core-js/modules/es.regexp.exec.js");
21
+ require("core-js/modules/es.regexp.test.js");
22
+ require("core-js/modules/es.regexp.to-string.js");
23
+ require("core-js/modules/esnext.iterator.constructor.js");
24
+ require("core-js/modules/esnext.iterator.filter.js");
25
+ require("core-js/modules/esnext.iterator.for-each.js");
26
+ require("core-js/modules/web.dom-collections.for-each.js");
27
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
28
+ Object.defineProperty(exports, "__esModule", {
29
+ value: true
30
+ });
31
+ exports.MultiWindowHangDetectionManager = void 0;
32
+ require("core-js/modules/es.array.concat.js");
33
+ require("core-js/modules/es.array.from.js");
34
+ require("core-js/modules/es.array.iterator.js");
35
+ require("core-js/modules/es.array.join.js");
36
+ require("core-js/modules/es.date.now.js");
37
+ require("core-js/modules/es.date.to-json.js");
38
+ require("core-js/modules/es.json.stringify.js");
39
+ require("core-js/modules/es.map.js");
40
+ require("core-js/modules/es.object.to-string.js");
41
+ require("core-js/modules/es.string.iterator.js");
42
+ require("core-js/modules/esnext.map.delete-all.js");
43
+ require("core-js/modules/esnext.map.emplace.js");
44
+ require("core-js/modules/esnext.map.every.js");
45
+ require("core-js/modules/esnext.map.filter.js");
46
+ require("core-js/modules/esnext.map.find.js");
47
+ require("core-js/modules/esnext.map.find-key.js");
48
+ require("core-js/modules/esnext.map.includes.js");
49
+ require("core-js/modules/esnext.map.key-of.js");
50
+ require("core-js/modules/esnext.map.map-keys.js");
51
+ require("core-js/modules/esnext.map.map-values.js");
52
+ require("core-js/modules/esnext.map.merge.js");
53
+ require("core-js/modules/esnext.map.reduce.js");
54
+ require("core-js/modules/esnext.map.some.js");
55
+ require("core-js/modules/esnext.map.update.js");
56
+ require("core-js/modules/web.dom-collections.iterator.js");
57
+ require("core-js/modules/web.timers.js");
58
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
59
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
60
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
61
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
62
+ var _2 = require(".");
63
+ var _logger = require("../logger");
64
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
65
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
66
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
67
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
68
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
69
+ /**
70
+ * 多窗口 Hang Detection 管理器
71
+ */
72
+ var MultiWindowHangDetectionManager = exports.MultiWindowHangDetectionManager = /*#__PURE__*/function () {
73
+ function MultiWindowHangDetectionManager(callbacks, config) {
74
+ var _config$timeout, _config$enableVerbose;
75
+ (0, _classCallCheck2["default"])(this, MultiWindowHangDetectionManager);
76
+ (0, _defineProperty2["default"])(this, "windowStates", new Map());
77
+ (0, _defineProperty2["default"])(this, "logger", (0, _logger.getLogger)());
78
+ this.callbacks = callbacks;
79
+ this.config = {
80
+ timeout: (_config$timeout = config === null || config === void 0 ? void 0 : config.timeout) !== null && _config$timeout !== void 0 ? _config$timeout : _2.DEFAULT_HANG_DETECTION_TIMEOUT,
81
+ enableVerboseLogging: (_config$enableVerbose = config === null || config === void 0 ? void 0 : config.enableVerboseLogging) !== null && _config$enableVerbose !== void 0 ? _config$enableVerbose : true
82
+ };
83
+ }
84
+ return (0, _createClass2["default"])(MultiWindowHangDetectionManager, [{
85
+ key: "handleWindowUnresponsive",
86
+ value: function handleWindowUnresponsive(windowId) {
87
+ var _this = this;
88
+ this.logger.warn("Window ".concat(windowId, " became unresponsive, starting hang detection timer"));
89
+ this.clearWindowTimer(windowId);
90
+ var timer = setTimeout(function () {
91
+ _this.logger.error("Window ".concat(windowId, " has been unresponsive for ").concat(_this.config.timeout, "ms, triggering timeout callback"));
92
+ _this.callbacks.onHangTimeout(windowId);
93
+ }, this.config.timeout);
94
+ this.windowStates.set(windowId, {
95
+ windowId: windowId,
96
+ timer: timer,
97
+ isUnresponsive: true,
98
+ startTime: Date.now()
99
+ });
100
+ if (this.callbacks.onStateChange) {
101
+ this.callbacks.onStateChange(windowId, true);
102
+ }
103
+ if (this.config.enableVerboseLogging) {
104
+ this.logCurrentState();
105
+ }
106
+ }
107
+
108
+ /**
109
+ * 处理窗口变为responsive
110
+ */
111
+ }, {
112
+ key: "handleWindowResponsive",
113
+ value: function handleWindowResponsive(windowId) {
114
+ this.logger.info("Window ".concat(windowId, " became responsive again"));
115
+ var windowState = this.windowStates.get(windowId);
116
+ if (windowState) {
117
+ var duration = Date.now() - windowState.startTime;
118
+ this.logger.info("Window ".concat(windowId, " was unresponsive for ").concat(duration, "ms"));
119
+ this.clearWindowTimer(windowId);
120
+ if (this.callbacks.onStateChange) {
121
+ this.callbacks.onStateChange(windowId, false, duration);
122
+ }
123
+ this.windowStates["delete"](windowId);
124
+ }
125
+ if (this.config.enableVerboseLogging) {
126
+ this.logCurrentState();
127
+ }
128
+ }
129
+ }, {
130
+ key: "clearWindowTimer",
131
+ value: function clearWindowTimer(windowId) {
132
+ var windowState = this.windowStates.get(windowId);
133
+ if (windowState && windowState.timer) {
134
+ clearTimeout(windowState.timer);
135
+ windowState.timer = null;
136
+ }
137
+ }
138
+ }, {
139
+ key: "clearAllTimers",
140
+ value: function clearAllTimers() {
141
+ this.logger.info('Clearing all hang detection timers');
142
+ var _iterator = _createForOfIteratorHelper(this.windowStates),
143
+ _step;
144
+ try {
145
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
146
+ var _step$value = (0, _slicedToArray2["default"])(_step.value, 2),
147
+ _ = _step$value[0],
148
+ windowState = _step$value[1];
149
+ if (windowState.timer) {
150
+ clearTimeout(windowState.timer);
151
+ }
152
+ }
153
+ } catch (err) {
154
+ _iterator.e(err);
155
+ } finally {
156
+ _iterator.f();
157
+ }
158
+ this.windowStates.clear();
159
+ }
160
+ }, {
161
+ key: "getUnresponsiveWindowCount",
162
+ value: function getUnresponsiveWindowCount() {
163
+ return this.windowStates.size;
164
+ }
165
+ }, {
166
+ key: "getUnresponsiveWindowIds",
167
+ value: function getUnresponsiveWindowIds() {
168
+ return Array.from(this.windowStates.keys());
169
+ }
170
+ }, {
171
+ key: "getWindowHangState",
172
+ value: function getWindowHangState(windowId) {
173
+ return this.windowStates.get(windowId);
174
+ }
175
+ }, {
176
+ key: "isWindowUnresponsive",
177
+ value: function isWindowUnresponsive(windowId) {
178
+ return this.windowStates.has(windowId);
179
+ }
180
+ }, {
181
+ key: "getWindowUnresponsiveDuration",
182
+ value: function getWindowUnresponsiveDuration(windowId) {
183
+ var windowState = this.windowStates.get(windowId);
184
+ if (!windowState) {
185
+ return null;
186
+ }
187
+ return Date.now() - windowState.startTime;
188
+ }
189
+ }, {
190
+ key: "logCurrentState",
191
+ value: function logCurrentState() {
192
+ var unresponsiveCount = this.windowStates.size;
193
+ var windowIds = Array.from(this.windowStates.keys());
194
+ this.logger.info("Hang Detection State: ".concat(unresponsiveCount, " unresponsive windows [").concat(windowIds.join(', '), "]"));
195
+ }
196
+ }, {
197
+ key: "handleWindowClosed",
198
+ value: function handleWindowClosed(windowId) {
199
+ this.logger.info("Window ".concat(windowId, " closed, cleaning up hang detection state"));
200
+ var windowState = this.windowStates.get(windowId);
201
+ if (windowState) {
202
+ if (this.callbacks.onStateChange) {
203
+ var duration = Date.now() - windowState.startTime;
204
+ this.callbacks.onStateChange(windowId, false, duration);
205
+ }
206
+ }
207
+ this.clearWindowTimer(windowId);
208
+ this.windowStates["delete"](windowId);
209
+ if (this.config.enableVerboseLogging) {
210
+ this.logCurrentState();
211
+ }
212
+ }
213
+ }, {
214
+ key: "updateConfig",
215
+ value: function updateConfig(config) {
216
+ this.config = _objectSpread(_objectSpread({}, this.config), config);
217
+ this.logger.info("Hang detection config updated: ".concat(JSON.stringify(this.config)));
218
+ }
219
+ }, {
220
+ key: "getConfig",
221
+ value: function getConfig() {
222
+ return _objectSpread({}, this.config);
223
+ }
224
+ }, {
225
+ key: "dispose",
226
+ value: function dispose() {
227
+ this.logger.info('Disposing MultiWindowHangDetectionManager');
228
+ this.clearAllTimers();
229
+ }
230
+ }]);
231
+ }();
@@ -0,0 +1,14 @@
1
+ export interface WindowHangState {
2
+ windowId: number;
3
+ timer: NodeJS.Timeout | null;
4
+ isUnresponsive: boolean;
5
+ startTime: number;
6
+ }
7
+ export interface HangDetectionConfig {
8
+ timeout?: number;
9
+ enableVerboseLogging?: boolean;
10
+ }
11
+ export interface HangDetectionCallbacks {
12
+ onHangTimeout: (windowId: number) => void;
13
+ onStateChange?: (windowId: number, isUnresponsive: boolean, duration?: number) => void;
14
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
@@ -2,8 +2,7 @@ declare enum ServiceErrorCode {
2
2
  FcrUIScene = 800
3
3
  }
4
4
  declare enum UISceneErrorCode {
5
- Creator = 10,
6
- ProcessManager = 11
5
+ Creator = 10
7
6
  }
8
7
  declare enum DetailErrorCode {
9
8
  unknown = 1,
@@ -20,7 +19,6 @@ declare enum DetailErrorCode {
20
19
  mainWindowHidden = 82,
21
20
  closeWindowBeforeLaunchSuccess = 83,
22
21
  meetingLaunchProcessing = 84,
23
- mainWindowHiddenAfterLaunchSuccess = 85,
24
22
  crashed = 86,
25
23
  hangDetection = 87
26
24
  }
@@ -28,7 +26,6 @@ export declare const generaErrorCode: (serviceCode: ServiceErrorCode, uiSceneCod
28
26
  export declare const windowHideErrorCode: number;
29
27
  export declare const closeWindowBeforeLaunchSuccessErrorCode: number;
30
28
  export declare const meetingLaunchProcessingErrorCode: number;
31
- export declare const mainWindowHiddenOnLaunchSuccessErrorCode: number;
32
29
  export declare const crashedErrorCode: number;
33
30
  export declare const hangDetectionErrorCode: number;
34
31
  export {};
@@ -4,7 +4,7 @@ require("core-js/modules/es.object.define-property.js");
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.windowHideErrorCode = exports.meetingLaunchProcessingErrorCode = exports.mainWindowHiddenOnLaunchSuccessErrorCode = exports.hangDetectionErrorCode = exports.generaErrorCode = exports.crashedErrorCode = exports.closeWindowBeforeLaunchSuccessErrorCode = void 0;
7
+ exports.windowHideErrorCode = exports.meetingLaunchProcessingErrorCode = exports.hangDetectionErrorCode = exports.generaErrorCode = exports.crashedErrorCode = exports.closeWindowBeforeLaunchSuccessErrorCode = void 0;
8
8
  // 错误代码枚举定义
9
9
  var ServiceErrorCode = /*#__PURE__*/function (ServiceErrorCode) {
10
10
  ServiceErrorCode[ServiceErrorCode["FcrUIScene"] = 800] = "FcrUIScene";
@@ -12,7 +12,6 @@ var ServiceErrorCode = /*#__PURE__*/function (ServiceErrorCode) {
12
12
  }(ServiceErrorCode || {});
13
13
  var UISceneErrorCode = /*#__PURE__*/function (UISceneErrorCode) {
14
14
  UISceneErrorCode[UISceneErrorCode["Creator"] = 10] = "Creator";
15
- UISceneErrorCode[UISceneErrorCode["ProcessManager"] = 11] = "ProcessManager";
16
15
  return UISceneErrorCode;
17
16
  }(UISceneErrorCode || {});
18
17
  var DetailErrorCode = /*#__PURE__*/function (DetailErrorCode) {
@@ -45,7 +44,7 @@ var DetailErrorCode = /*#__PURE__*/function (DetailErrorCode) {
45
44
  // 会议启动中
46
45
  DetailErrorCode[DetailErrorCode["meetingLaunchProcessing"] = 84] = "meetingLaunchProcessing";
47
46
  // 窗口在会议启动后隐藏
48
- DetailErrorCode[DetailErrorCode["mainWindowHiddenAfterLaunchSuccess"] = 85] = "mainWindowHiddenAfterLaunchSuccess";
47
+ // mainWindowHiddenAfterLaunchSuccess = 85,
49
48
  // 窗口崩溃
50
49
  DetailErrorCode[DetailErrorCode["crashed"] = 86] = "crashed";
51
50
  // 窗口无响应
@@ -58,6 +57,12 @@ var generaErrorCode = exports.generaErrorCode = function generaErrorCode(service
58
57
  var windowHideErrorCode = exports.windowHideErrorCode = generaErrorCode(ServiceErrorCode.FcrUIScene, UISceneErrorCode.Creator, DetailErrorCode.mainWindowHidden);
59
58
  var closeWindowBeforeLaunchSuccessErrorCode = exports.closeWindowBeforeLaunchSuccessErrorCode = generaErrorCode(ServiceErrorCode.FcrUIScene, UISceneErrorCode.Creator, DetailErrorCode.closeWindowBeforeLaunchSuccess);
60
59
  var meetingLaunchProcessingErrorCode = exports.meetingLaunchProcessingErrorCode = generaErrorCode(ServiceErrorCode.FcrUIScene, UISceneErrorCode.Creator, DetailErrorCode.meetingLaunchProcessing);
61
- var mainWindowHiddenOnLaunchSuccessErrorCode = exports.mainWindowHiddenOnLaunchSuccessErrorCode = generaErrorCode(ServiceErrorCode.FcrUIScene, UISceneErrorCode.Creator, DetailErrorCode.mainWindowHiddenAfterLaunchSuccess);
60
+
61
+ // export const mainWindowHiddenOnLaunchSuccessErrorCode = generaErrorCode(
62
+ // ServiceErrorCode.FcrUIScene,
63
+ // UISceneErrorCode.Creator,
64
+ // DetailErrorCode.mainWindowHiddenAfterLaunchSuccess,
65
+ // );
66
+
62
67
  var crashedErrorCode = exports.crashedErrorCode = generaErrorCode(ServiceErrorCode.FcrUIScene, UISceneErrorCode.Creator, DetailErrorCode.crashed);
63
68
  var hangDetectionErrorCode = exports.hangDetectionErrorCode = generaErrorCode(ServiceErrorCode.FcrUIScene, UISceneErrorCode.Creator, DetailErrorCode.hangDetection);
@@ -24,7 +24,7 @@ var ScreenShare = exports.ScreenShare = (0, _mobxReact.observer)(function (_ref)
24
24
  startScreenShare = _useContext.startScreenShare,
25
25
  localUserRole = _useContext.localUserRole,
26
26
  hasStartScreenSharePermission = _useContext.hasStartScreenSharePermission;
27
- var _useState = (0, _react.useState)(true),
27
+ var _useState = (0, _react.useState)(false),
28
28
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
29
29
  visibleMenu = _useState2[0],
30
30
  setMenuVisible = _useState2[1];
@@ -0,0 +1,56 @@
1
+ import { UIModule } from '../../base';
2
+ import './index.css';
3
+ import { FcrUIEventProvider } from '../../providers/event-provider';
4
+ import { FcrUICurrentRoomControlProvider, FcrUIMainRoomControlProvider, FcrUIRoomProvider, FcrUIWaitingRoomControlProvider } from '../../providers/room-provider';
5
+ import { FcrUIDeviceProvider } from '../../providers/device-provider';
6
+ import { FcrUIDeviceStreamProvider } from '../../providers/device-stream-provider';
7
+ import { FcrUISharedLayoutDataSource } from '../../shared-data-source/layout-data';
8
+ import { FcrUISharedInterpreterDataSource } from '../../shared-data-source/interpreter';
9
+ import { FcrUISharedWaitingRoomDataSource } from '../../shared-data-source/waiting-room';
10
+ import { FcrUIChatProvider } from '../../providers/chat-provider';
11
+ import { FcrUIScreenShareProvider } from '../../providers/screen-share-provider';
12
+ import { FcrUIDialogProvider } from '../../providers/dialog-provider';
13
+ import { FcrUIMessageProvider } from '../../providers/message-provider';
14
+ import { FcrUISharedChatDataSource } from '../../shared-data-source/chat-data';
15
+ import { FcrUIInterpreterProvider } from '../../providers/interpreter-provider';
16
+ import { FcrUISharedDevicePrivilegeDataSource } from '../../shared-data-source/device-privilege-data';
17
+ import { FcrUIMemberSharedDataSource } from '../../shared-data-source/member-data';
18
+ import { FcrUIWidgetProvider } from '../../providers/widget-provider';
19
+ import { FcrUIAbilityProviderImpl } from '../../providers/ability-provider';
20
+ import { FcrUISecuritySharedDataSource } from '../../shared-data-source/security-data';
21
+ import { FcrUIScreenShareSharedDataSource } from '../../shared-data-source/screen-share-data';
22
+ import { FcrUIApplistProvider } from '../../providers/app-list-provider';
23
+ import { FcrUISharedApplistSource } from '../../shared-data-source/app-list-data';
24
+ export declare class FcrActionBarUIModule extends UIModule {
25
+ private _store?;
26
+ private _deviceControlStore?;
27
+ private _leaveMeetingStore?;
28
+ currentRoomControlProvider?: FcrUICurrentRoomControlProvider;
29
+ mainRoomControlProvider?: FcrUIMainRoomControlProvider;
30
+ waitingRoomControlProvider?: FcrUIWaitingRoomControlProvider;
31
+ eventProvider?: FcrUIEventProvider;
32
+ deviceProvider?: FcrUIDeviceProvider;
33
+ roomProvider?: FcrUIRoomProvider;
34
+ deviceStreamProvider?: FcrUIDeviceStreamProvider;
35
+ sharedLayoutDataSource?: FcrUISharedLayoutDataSource;
36
+ screenShareProvider?: FcrUIScreenShareProvider;
37
+ sharedWaitingRoomDataSource?: FcrUISharedWaitingRoomDataSource;
38
+ chatProvider?: FcrUIChatProvider;
39
+ sharedInterpreterDataSource?: FcrUISharedInterpreterDataSource;
40
+ dialogProvider?: FcrUIDialogProvider;
41
+ messageProvider?: FcrUIMessageProvider;
42
+ sharedChatDataSource?: FcrUISharedChatDataSource;
43
+ interpreterProvider?: FcrUIInterpreterProvider;
44
+ sharedDevicePrivilegeDataSource?: FcrUISharedDevicePrivilegeDataSource;
45
+ sharedMemberDataSource?: FcrUIMemberSharedDataSource;
46
+ widgetProvider?: FcrUIWidgetProvider;
47
+ abilityProvider?: FcrUIAbilityProviderImpl;
48
+ sharedSecuritySharedDataSource?: FcrUISecuritySharedDataSource;
49
+ sharedScreenShareSharedDataSource?: FcrUIScreenShareSharedDataSource;
50
+ applistProvider?: FcrUIApplistProvider;
51
+ sharedApplistDataSource?: FcrUISharedApplistSource;
52
+ onNodeWillActive(): void;
53
+ onNodeWillInactive(): void;
54
+ getComponent(): import("react/jsx-runtime").JSX.Element;
55
+ onProcessEvent(event: RendererCustomEvent): void;
56
+ }
File without changes