fcr-ui-scene 3.7.5 → 3.7.6

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 (220) hide show
  1. package/lib/creator/index.js +3 -1
  2. package/lib/creator/provider-initializer.browser.js +13 -1
  3. package/lib/creator/provider-initializer.electron.js +22 -6
  4. package/lib/electron/bootstrap-sdk.js +39 -5
  5. package/lib/electron/injections.d.ts +1 -0
  6. package/lib/electron/injections.js +5 -1
  7. package/lib/electron/ipc/type.d.ts +1 -0
  8. package/lib/electron/ipc/type.js +1 -0
  9. package/lib/electron/preload.js +1 -0
  10. package/lib/electron/sdk-helper.d.ts +3 -0
  11. package/lib/electron/sdk-helper.js +53 -19
  12. package/lib/electron/until.d.ts +5 -1
  13. package/lib/electron/until.js +6 -2
  14. package/lib/fragments/annotation/store.js +2 -0
  15. package/lib/modules/action-bar/components/more/poppover-content.js +1 -1
  16. package/lib/modules/action-bar/components/screen-share/index.browser.js +4 -2
  17. package/lib/modules/action-bar/components/screen-share/index.electron.js +4 -2
  18. package/lib/modules/action-bar/components/screen-share/submenu.d.ts +5 -1
  19. package/lib/modules/action-bar/components/screen-share/submenu.js +11 -8
  20. package/lib/modules/audio-stream/index.js +4 -2
  21. package/lib/modules/chat/index.css +4 -0
  22. package/lib/modules/chat/view.js +2 -1
  23. package/lib/modules/components/control-bar/index.css +0 -2
  24. package/lib/modules/components/control-bar/index.d.ts +1 -0
  25. package/lib/modules/components/control-bar/index.js +26 -9
  26. package/lib/modules/components/leave-meeting/main-scene/store.d.ts +3 -0
  27. package/lib/modules/components/leave-meeting/main-scene/store.js +12 -0
  28. package/lib/modules/components/leave-meeting/store.base.d.ts +4 -3
  29. package/lib/modules/components/leave-meeting/store.base.js +0 -10
  30. package/lib/modules/components/leave-meeting/waiting-scene/store.d.ts +5 -1
  31. package/lib/modules/components/leave-meeting/waiting-scene/store.js +17 -3
  32. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +1 -2
  33. package/lib/modules/components/member-window/components/video-player/components/local-video-player-with-zoom.js +4 -3
  34. package/lib/modules/components/member-window/components/video-player/components/zoomable-container.js +18 -32
  35. package/lib/modules/components/toolbar/hooks/use-resize-visible.js +14 -2
  36. package/lib/modules/control-bar/components/boundary-detector.d.ts +7 -5
  37. package/lib/modules/control-bar/components/boundary-detector.js +22 -2
  38. package/lib/modules/control-bar/components/cloud-recording-buttons.js +3 -0
  39. package/lib/modules/control-bar/hooks.js +2 -1
  40. package/lib/modules/control-bar/store.d.ts +1 -0
  41. package/lib/modules/control-bar/store.js +10 -1
  42. package/lib/modules/control-bar/view.js +96 -28
  43. package/lib/modules/dialog/components/confirm/index.js +6 -24
  44. package/lib/modules/dialog/components/dialog-container/index.css +7 -0
  45. package/lib/modules/dialog/dialogs/device-setting/index.d.ts +1 -0
  46. package/lib/modules/dialog/dialogs/device-setting/index.js +4 -2
  47. package/lib/modules/dialog/dialogs/invite/index.d.ts +1 -0
  48. package/lib/modules/dialog/dialogs/invite/index.js +2 -1
  49. package/lib/modules/dialog/dialogs/mute-all/index.d.ts +1 -0
  50. package/lib/modules/dialog/dialogs/mute-all/index.js +2 -1
  51. package/lib/modules/dialog/dialogs/participant/index.js +7 -1
  52. package/lib/modules/dialog/dialogs/share-screen-selection/index.js +1 -1
  53. package/lib/modules/dialog/dialogs/sub-window/index.js +1 -7
  54. package/lib/modules/dialog/dialogs/toast/index.d.ts +1 -1
  55. package/lib/modules/dialog/dialogs/toast/index.js +1 -1
  56. package/lib/modules/dialog/dialogs/video-window/index.d.ts +4 -1
  57. package/lib/modules/dialog/dialogs/video-window/index.js +5 -2
  58. package/lib/modules/dialog/dialogs/widget/index.d.ts +2 -0
  59. package/lib/modules/dialog/dialogs/widget/index.js +11 -3
  60. package/lib/modules/dialog/index.css +6 -2
  61. package/lib/modules/dialog/level-config.d.ts +1 -0
  62. package/lib/modules/dialog/level-config.js +2 -1
  63. package/lib/modules/dialog/store.base.d.ts +2 -0
  64. package/lib/modules/dialog/store.browser.d.ts +2 -0
  65. package/lib/modules/dialog/store.browser.js +6 -1
  66. package/lib/modules/dialog/store.electron.d.ts +9 -1
  67. package/lib/modules/dialog/store.electron.js +64 -4
  68. package/lib/modules/dialog/type.d.ts +3 -0
  69. package/lib/modules/event-toast/index.css +0 -1
  70. package/lib/modules/event-toast/index.js +1 -0
  71. package/lib/modules/event-toast/store.base.d.ts +2 -0
  72. package/lib/modules/event-toast/store.base.js +40 -21
  73. package/lib/modules/event-toast/store.electron.d.ts +2 -0
  74. package/lib/modules/event-toast/store.electron.js +19 -9
  75. package/lib/modules/layout/components/CommonVideoRenderer.js +1 -0
  76. package/lib/modules/participant/components/confirm-input/index.js +1 -1
  77. package/lib/modules/participant/store.base.d.ts +30 -3
  78. package/lib/modules/participant/store.base.js +249 -96
  79. package/lib/modules/participant/store.browser.js +4 -3
  80. package/lib/modules/participant/store.electron.js +5 -3
  81. package/lib/modules/pc-audio-connect/main-scene/store.js +1 -0
  82. package/lib/modules/secondary-window/store.d.ts +1 -0
  83. package/lib/modules/secondary-window/store.js +5 -0
  84. package/lib/modules/secondary-window/view.js +4 -5
  85. package/lib/modules/setting/audio-settings/audio-settings.js +0 -17
  86. package/lib/modules/setting/index.css +1 -0
  87. package/lib/modules/setting/index.js +1 -1
  88. package/lib/modules/setting/state/index.js +1 -1
  89. package/lib/modules/setting/store.base.d.ts +5 -2
  90. package/lib/modules/setting/store.base.js +66 -26
  91. package/lib/modules/setting/view.js +3 -0
  92. package/lib/modules/share-screen/components/selection/index.css +4 -0
  93. package/lib/modules/share-screen/store.base.js +17 -4
  94. package/lib/modules/share-screen/store.electron.js +4 -1
  95. package/lib/modules/video-window/popover-watcher.d.ts +3 -11
  96. package/lib/modules/video-window/popover-watcher.js +22 -32
  97. package/lib/modules/video-window/store.d.ts +15 -5
  98. package/lib/modules/video-window/store.js +109 -64
  99. package/lib/modules/video-window/view.js +50 -1
  100. package/lib/modules/whiteboard/index.d.ts +1 -1
  101. package/lib/modules/whiteboard/index.js +1 -1
  102. package/lib/modules/whiteboard/store.d.ts +3 -0
  103. package/lib/modules/whiteboard/store.js +11 -0
  104. package/lib/modules/whiteboard/view.js +10 -1
  105. package/lib/modules/widget/sdk.js +1 -1
  106. package/lib/modules/widget/store.base.d.ts +1 -0
  107. package/lib/modules/widget/store.browser.d.ts +1 -0
  108. package/lib/modules/widget/store.browser.js +60 -4
  109. package/lib/modules/widget/store.electron.d.ts +1 -0
  110. package/lib/modules/widget/store.electron.js +59 -2
  111. package/lib/modules/widget/type.d.ts +3 -2
  112. package/lib/modules/widget/view.js +9 -4
  113. package/lib/modules/widget/web-widget.d.ts +2 -1
  114. package/lib/modules/widget/web-widget.js +7 -5
  115. package/lib/object-manager.d.ts +2 -1
  116. package/lib/object-manager.js +1 -0
  117. package/lib/providers/board-share/provider.base.d.ts +8 -1
  118. package/lib/providers/board-share/provider.base.js +12 -2
  119. package/lib/providers/device-provider.d.ts +16 -2
  120. package/lib/providers/device-provider.js +48 -59
  121. package/lib/providers/dialog/provider.base.d.ts +1 -0
  122. package/lib/providers/dialog/provider.browser.d.ts +1 -0
  123. package/lib/providers/dialog/provider.browser.js +7 -2
  124. package/lib/providers/dialog/provider.electron.d.ts +4 -1
  125. package/lib/providers/dialog/provider.electron.js +88 -2
  126. package/lib/providers/dialog/type.d.ts +7 -0
  127. package/lib/providers/mouse-detect/provider.d.ts +4 -1
  128. package/lib/providers/mouse-detect/provider.js +94 -5
  129. package/lib/providers/mouse-detect/struct.d.ts +2 -1
  130. package/lib/providers/mouse-detect/struct.js +1 -0
  131. package/lib/providers/mouse-detect/type.d.ts +2 -0
  132. package/lib/providers/renderer-provider.d.ts +5 -0
  133. package/lib/providers/renderer-provider.js +5 -0
  134. package/lib/providers/room-provider/room-provider.d.ts +1 -0
  135. package/lib/providers/room-provider/room-provider.js +23 -13
  136. package/lib/providers/screen-share/provider.base.js +3 -11
  137. package/lib/providers/screen-share/provider.browser.js +23 -14
  138. package/lib/providers/screen-share/provider.electron.d.ts +1 -0
  139. package/lib/providers/screen-share/provider.electron.js +44 -17
  140. package/lib/providers/screen-share/strategy/browser.js +16 -13
  141. package/lib/providers/screen-share/strategy/electron.d.ts +2 -2
  142. package/lib/providers/screen-share/strategy/electron.js +15 -10
  143. package/lib/providers/screen-share/strategy/type.d.ts +6 -0
  144. package/lib/providers/screen-share/stream-state-sync.d.ts +3 -2
  145. package/lib/providers/screen-share/stream-state-sync.js +7 -4
  146. package/lib/providers/screen-share/struct.d.ts +9 -7
  147. package/lib/providers/screen-share/struct.js +11 -8
  148. package/lib/providers/screen-share/type.d.ts +7 -1
  149. package/lib/providers/widget-provider.d.ts +5 -3
  150. package/lib/providers/widget-provider.js +12 -18
  151. package/lib/providers/window/main-window.js +3 -0
  152. package/lib/providers/window/renderer-window.js +4 -1
  153. package/lib/runtime.d.ts +1 -0
  154. package/lib/runtime.js +2 -1
  155. package/lib/scenes/main-scene.js +7 -0
  156. package/lib/shared-context/board-context.d.ts +2 -0
  157. package/lib/shared-context/board-context.js +2 -0
  158. package/lib/shared-data/member-data.d.ts +0 -8
  159. package/lib/shared-data/member-data.js +26 -78
  160. package/lib/shared-data/widget-data.d.ts +13 -0
  161. package/lib/shared-data/widget-data.js +50 -0
  162. package/lib/translations/enUS.d.ts +0 -2
  163. package/lib/translations/enUS.js +4 -6
  164. package/lib/translations/zhCN.d.ts +0 -2
  165. package/lib/translations/zhCN.js +4 -6
  166. package/lib/type.d.ts +5 -0
  167. package/lib/ui-scene.d.ts +2 -4
  168. package/lib/ui-scene.js +27 -40
  169. package/lib/utilities/constant.d.ts +3 -1
  170. package/lib/utilities/constant.js +5 -2
  171. package/lib/utilities/default-config.d.ts +18 -0
  172. package/lib/utilities/default-config.js +19 -1
  173. package/lib/utilities/focus-helper.js +10 -3
  174. package/lib/utilities/logger.js +3 -1
  175. package/lib/utilities/renderer.d.ts +1 -0
  176. package/lib/utilities/renderer.js +7 -1
  177. package/package.json +5 -5
  178. package/public/index.html +13 -3
  179. package/lib/modules/action-bar/index.d.ts +0 -17
  180. package/lib/modules/action-bar/index.js +0 -63
  181. package/lib/modules/action-bar/store.base.d.ts +0 -15
  182. package/lib/modules/action-bar/store.base.js +0 -117
  183. package/lib/modules/action-bar/view.d.ts +0 -5
  184. package/lib/modules/action-bar/view.js +0 -112
  185. package/lib/modules/action-bar/waiting-scene/store.d.ts +0 -6
  186. package/lib/modules/action-bar/waiting-scene/store.js +0 -91
  187. package/lib/modules/control-bar/types.d.ts +0 -31
  188. package/lib/modules/control-bar/types.js +0 -6
  189. package/lib/modules/dialog/dialogs/pre-setting/index.css +0 -26
  190. package/lib/modules/dialog/dialogs/pre-setting/index.d.ts +0 -6
  191. package/lib/modules/dialog/dialogs/pre-setting/index.js +0 -57
  192. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +0 -14
  193. package/lib/modules/dialog/hooks/use-popover-watcher.js +0 -112
  194. package/lib/modules/event-toast/store.d.ts +0 -23
  195. package/lib/modules/event-toast/store.js +0 -187
  196. package/lib/modules/setting/common/advance-link.d.ts +0 -3
  197. package/lib/modules/setting/common/advance-link.js +0 -27
  198. package/lib/modules/setting/common/index.css +0 -26
  199. package/lib/modules/setting/common/useNamespace.d.ts +0 -15
  200. package/lib/modules/setting/common/useNamespace.js +0 -66
  201. package/lib/modules/widget/store.d.ts +0 -17
  202. package/lib/modules/widget/store.js +0 -71
  203. package/lib/providers/board-share/provider.d.ts +0 -66
  204. package/lib/providers/board-share/provider.js +0 -456
  205. package/lib/providers/screen-share/provider.d.ts +0 -69
  206. package/lib/providers/screen-share/provider.js +0 -615
  207. package/lib/providers/whiteboard-provider.d.ts +0 -26
  208. package/lib/providers/whiteboard-provider.js +0 -131
  209. package/lib/providers/window/browser-window-proxy.d.ts +0 -0
  210. package/lib/providers/window/browser-window-proxy.js +0 -1
  211. package/lib/providers/window/ipc-protocol.d.ts +0 -0
  212. package/lib/providers/window/ipc-protocol.js +0 -1
  213. package/lib/providers/window/main-process-handler.d.ts +0 -0
  214. package/lib/providers/window/main-process-handler.js +0 -1
  215. package/lib/providers/window/main-process-integration.d.ts +0 -0
  216. package/lib/providers/window/main-process-integration.js +0 -1
  217. package/lib/shared-data/whiteboard-data.d.ts +0 -70
  218. package/lib/shared-data/whiteboard-data.js +0 -342
  219. package/lib/utilities/ipc-protocol.d.ts +0 -91
  220. package/lib/utilities/ipc-protocol.js +0 -61
@@ -27,6 +27,7 @@ Object.defineProperty(exports, "__esModule", {
27
27
  });
28
28
  exports.View = void 0;
29
29
  require("core-js/modules/es.array.concat.js");
30
+ require("core-js/modules/web.timers.js");
30
31
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
31
32
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
32
33
  var _mobxReact = require("mobx-react");
@@ -61,6 +62,8 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
61
62
  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; }
62
63
  var HIDDEN_TIMEOUT = 3000;
63
64
  var NAV_HEIGHT = 84;
65
+ var WINDOW_RENDER_DELAY = 500;
66
+ var FADE_ANIMATION_DURATION = 350;
64
67
  var View = exports.View = (0, _mobxReact.observer)(function () {
65
68
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(DraggableControlBarProvider, {
66
69
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DraggableContainer, {
@@ -287,11 +290,16 @@ var ControlBar = (0, _mobxReact.observer)(function () {
287
290
  var calculation = (0, _react.useContext)(_context.ControlBarCalculationContext);
288
291
  var _useContext5 = (0, _react.useContext)(_store.StoreContext),
289
292
  draggableArea = _useContext5.draggableArea,
290
- currentShareDisplayId = _useContext5.currentShareDisplayId;
293
+ currentShareDisplayId = _useContext5.currentShareDisplayId,
294
+ updateWindowBounds = _useContext5.updateWindowBounds;
291
295
  var updatePosition = (0, _react.useContext)(_context.DragStateUpdaterContext);
292
296
  var _useContext6 = (0, _react.useContext)(_context.ControlBarCalculationUpdaterContext),
293
297
  setDimensions = _useContext6.setDimensions,
294
298
  setNavPosition = _useContext6.setNavPosition;
299
+ var _useState9 = (0, _react.useState)('hidden'),
300
+ _useState0 = (0, _slicedToArray2["default"])(_useState9, 2),
301
+ visibility = _useState0[0],
302
+ setVisibility = _useState0[1];
295
303
  var rootClassNames = (0, _react.useMemo)(function () {
296
304
  return (0, _classnames["default"])('fcr-flex', 'share-action-nav__container', {
297
305
  'share-action-nav__move_to_bottom': calculation.navPosition === _enums.TransferPosition.BOTTOM,
@@ -301,31 +309,51 @@ var ControlBar = (0, _mobxReact.observer)(function () {
301
309
  'completely-hidden-in-top': calculation.isAttachToTop
302
310
  });
303
311
  }, [calculation]);
312
+ (0, _react.useEffect)(function () {
313
+ var ro = new ResizeObserver(function () {
314
+ if (!containerRef.current) return;
315
+ var bounds = containerRef.current.getBoundingClientRect();
316
+ setDimensions({
317
+ width: bounds.width,
318
+ height: bounds.height
319
+ });
320
+ });
321
+ ro.observe(containerRef.current);
322
+ return function () {
323
+ return ro.disconnect();
324
+ };
325
+ }, []);
326
+ (0, _react.useEffect)(function () {
327
+ setVisibility('hidden');
328
+ }, [currentShareDisplayId]);
304
329
  (0, _react.useLayoutEffect)(function () {
305
- if (currentShareDisplayId) {
306
- var ro = new ResizeObserver(function () {
307
- var bounds = containerRef.current.getBoundingClientRect();
308
- setDimensions({
309
- width: bounds.width,
310
- height: bounds.height
330
+ if (visibility === 'hidden') {
331
+ var timerId = setTimeout(function () {
332
+ updateWindowBounds();
333
+ timerId = setTimeout(function () {
334
+ if (!containerRef.current) return;
335
+ var bounds = containerRef.current.getBoundingClientRect();
336
+ updatePosition({
337
+ position: {
338
+ x: draggableArea.width / 2 - bounds.width / 2,
339
+ y: 0
340
+ }
341
+ });
342
+ setNavPosition(_enums.TransferPosition.TOP);
343
+ setVisibility('visible');
311
344
  });
312
- updatePosition({
313
- position: {
314
- x: draggableArea.width / 2 - bounds.width / 2,
315
- y: 0
316
- }
317
- });
318
- setNavPosition(_enums.TransferPosition.TOP);
319
- });
320
- ro.observe(containerRef.current);
345
+ }, WINDOW_RENDER_DELAY);
321
346
  return function () {
322
- return ro.disconnect();
347
+ return clearTimeout(timerId);
323
348
  };
324
349
  }
325
- }, [currentShareDisplayId]);
350
+ }, [visibility]);
326
351
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
327
352
  ref: containerRef,
328
353
  className: rootClassNames,
354
+ style: {
355
+ visibility: visibility
356
+ },
329
357
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ControlBarContent, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(ShareStateNavigation, {})]
330
358
  });
331
359
  });
@@ -357,8 +385,34 @@ var ControlBarContent = /*#__PURE__*/(0, _react.memo)(function () {
357
385
  console.log('ControlBarContent boundaries changed');
358
386
  setControlBarContentArea(boundaries);
359
387
  }, []);
388
+ var detector = (0, _react.useRef)(null);
389
+ (0, _react.useEffect)(function () {
390
+ var timerId = 0;
391
+ if (calculation.isShareActionNavHidden) {
392
+ timerId = setTimeout(function () {
393
+ setControlBarContentArea({
394
+ x: 0,
395
+ y: 0,
396
+ width: 0,
397
+ height: 0
398
+ });
399
+ }, FADE_ANIMATION_DURATION);
400
+ } else {
401
+ timerId = setTimeout(function () {
402
+ var _detector$current;
403
+ var bounds = (_detector$current = detector.current) === null || _detector$current === void 0 ? void 0 : _detector$current.getBoundaries();
404
+ if (bounds) {
405
+ setControlBarContentArea(bounds);
406
+ }
407
+ }, FADE_ANIMATION_DURATION);
408
+ }
409
+ return function () {
410
+ return clearTimeout(timerId);
411
+ };
412
+ }, [calculation.isShareActionNavHidden]);
360
413
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_boundaryDetector.BoundaryDetector, {
361
414
  onBoundariesChanged: handleBoundariesChanged,
415
+ ref: detector,
362
416
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
363
417
  className: navClassName,
364
418
  onMouseEnter: handleMouseEnterNav,
@@ -414,10 +468,10 @@ var SecurityMenuSection = /*#__PURE__*/(0, _react.memo)(function (_ref4) {
414
468
  setPopoverArea = _useContext0.setPopoverArea;
415
469
  var _useContext1 = (0, _react.useContext)(_context.ControlBarCalculationContext),
416
470
  isShareActionNavHidden = _useContext1.isShareActionNavHidden;
417
- var _useState9 = (0, _react.useState)(false),
418
- _useState0 = (0, _slicedToArray2["default"])(_useState9, 2),
419
- showSecurityPopover = _useState0[0],
420
- setShowSecurityPopover = _useState0[1];
471
+ var _useState1 = (0, _react.useState)(false),
472
+ _useState10 = (0, _slicedToArray2["default"])(_useState1, 2),
473
+ showSecurityPopover = _useState10[0],
474
+ setShowSecurityPopover = _useState10[1];
421
475
  var handleVisibilityChange = (0, _react.useCallback)(function (visible) {
422
476
  setShowSecurityPopover(visible);
423
477
  }, []);
@@ -482,14 +536,14 @@ var ShareScreenSection = /*#__PURE__*/(0, _react.memo)(function () {
482
536
 
483
537
  // 更多操作区块
484
538
  var MoreActionsSection = (0, _mobxReact.observer)(function () {
485
- var _useState1 = (0, _react.useState)(false),
486
- _useState10 = (0, _slicedToArray2["default"])(_useState1, 2),
487
- moreVisible = _useState10[0],
488
- setMoreVisible = _useState10[1];
489
539
  var _useState11 = (0, _react.useState)(false),
490
540
  _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
491
- isShowMeetingDetailPortal = _useState12[0],
492
- setIsShowMeetingDetailPortal = _useState12[1];
541
+ moreVisible = _useState12[0],
542
+ setMoreVisible = _useState12[1];
543
+ var _useState13 = (0, _react.useState)(false),
544
+ _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
545
+ isShowMeetingDetailPortal = _useState14[0],
546
+ setIsShowMeetingDetailPortal = _useState14[1];
493
547
  var _useContext12 = (0, _react.useContext)(_store.StoreContext),
494
548
  newMessageCount = _useContext12.newMessageCount,
495
549
  hasChatPermission = _useContext12.hasChatPermission,
@@ -609,8 +663,22 @@ var ShareStateNavigation = /*#__PURE__*/(0, _react.memo)(function () {
609
663
  console.log('ShareStateNavigation boundaries changed');
610
664
  setStateNavArea(boundaries);
611
665
  }, []);
666
+ var detector = (0, _react.useRef)(null);
667
+ (0, _react.useEffect)(function () {
668
+ var timerId = setTimeout(function () {
669
+ var _detector$current2;
670
+ var bounds = (_detector$current2 = detector.current) === null || _detector$current2 === void 0 ? void 0 : _detector$current2.getBoundaries();
671
+ if (bounds) {
672
+ setStateNavArea(bounds);
673
+ }
674
+ }, FADE_ANIMATION_DURATION);
675
+ return function () {
676
+ return clearTimeout(timerId);
677
+ };
678
+ }, [calculation.isShareActionNavHidden]);
612
679
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_boundaryDetector.BoundaryDetector, {
613
680
  onBoundariesChanged: handleBoundariesChanged,
681
+ ref: detector,
614
682
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_shareStateNav.ShareStateNav, {
615
683
  onMouseEnter: handleMouseEnterNav,
616
684
  onMouseLeave: handleMouseLeaveNav,
@@ -27,7 +27,6 @@ var _react = require("@use-gesture/react");
27
27
  var _react2 = require("react");
28
28
  var _store = require("../../store.base");
29
29
  var _env = require("agora-foundation/lib/utilities/env");
30
- var _dialogUtils = require("../../../../utilities/dialog-utils");
31
30
  var _platform = require("../../../../utilities/platform");
32
31
  var _jsxRuntime = require("react/jsx-runtime");
33
32
  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; }
@@ -45,8 +44,6 @@ var ConfirmWindow = exports.ConfirmWindow = (0, _mobxReact.observer)(function (_
45
44
  handleConfirmMouseout = _useContext.handleConfirmMouseout,
46
45
  removeObserverWindow = _useContext.removeObserverWindow,
47
46
  setObserverWindow = _useContext.setObserverWindow,
48
- addScreenObserver = _useContext.addScreenObserver,
49
- removeScreenObserver = _useContext.removeScreenObserver,
50
47
  log = _useContext.log,
51
48
  screenBounds = _useContext.screenBounds,
52
49
  calculateMethods = _useContext.calculateMethods;
@@ -103,28 +100,17 @@ var ConfirmWindow = exports.ConfirmWindow = (0, _mobxReact.observer)(function (_
103
100
  setBounds(coord);
104
101
  });
105
102
  (0, _react2.useEffect)(function () {
103
+ setObserverWindow(id, {
104
+ width: defaultSize.width,
105
+ height: height,
106
+ x: baseBounds.x,
107
+ y: baseBounds.y
108
+ });
106
109
  setBounds({
107
110
  x: baseBounds.x,
108
111
  y: baseBounds.y
109
112
  });
110
113
  }, [screenBounds]);
111
- function recalculate(bounds) {
112
- if (windowFocusTimerRef.current) {
113
- clearTimeout(windowFocusTimerRef.current);
114
- windowFocusTimerRef.current = undefined;
115
- }
116
- if ((0, _env.isElectron)() && (0, _platform.isWindows)() && confirmBodyRef.current && screenBounds) {
117
- (0, _dialogUtils.handleCheckMouseOver)({
118
- elem: confirmBodyRef.current,
119
- screenBounds: bounds || screenBounds,
120
- callback: function callback(timerId) {
121
- windowFocusTimerRef.current = timerId;
122
- },
123
- setIgnoreMouse: handleConfirmMouseout,
124
- setUnignoreMouse: handleConfirmMouseover
125
- });
126
- }
127
- }
128
114
  (0, _react2.useEffect)(function () {
129
115
  if ((0, _env.isElectron)() && (0, _platform.isMac)()) {
130
116
  if (confirm.className === 'confirm-mouseover') {
@@ -138,13 +124,9 @@ var ConfirmWindow = exports.ConfirmWindow = (0, _mobxReact.observer)(function (_
138
124
  };
139
125
  }, [confirm.className]);
140
126
  (0, _react2.useEffect)(function () {
141
- recalculate();
142
- !calculateMethods.has(confirm) && calculateMethods.set(confirm, recalculate);
143
- addScreenObserver(recalculate);
144
127
  return function () {
145
128
  clearTimeout(windowFocusTimerRef.current);
146
129
  calculateMethods["delete"](confirm);
147
- removeScreenObserver(recalculate);
148
130
  handleConfirmMouseout();
149
131
  };
150
132
  }, []);
@@ -25,6 +25,9 @@
25
25
  z-index: 0;
26
26
  }
27
27
 
28
+ ::-webkit-scrollbar {
29
+ display: none;
30
+ }
28
31
  .fcr-dialog-container_shadow {
29
32
  box-shadow: var(--fcr_web_light_dropup);
30
33
  border: 1px solid var(--fcr_ui_scene_line1);
@@ -68,6 +71,10 @@
68
71
  overflow: hidden;
69
72
  }
70
73
 
74
+ .fcr-dialog-container-content::-webkit-scrollbar {
75
+ display: none;
76
+ }
77
+
71
78
  .fcr-dialog-container .fcr-dialog-container-content:first-child {
72
79
  border-top-left-radius: var(--fcr_cornerradius_xl);
73
80
  border-top-right-radius: var(--fcr_cornerradius_xl);
@@ -14,5 +14,6 @@ export declare const windowConfig: {
14
14
  width: number;
15
15
  height: number;
16
16
  resizable: boolean;
17
+ transparent: boolean;
17
18
  };
18
19
  export default DeviceSettingDialog;
@@ -23,7 +23,8 @@ var DeviceSettingDialog = function DeviceSettingDialog(_ref) {
23
23
  body: children,
24
24
  title: title,
25
25
  width: width,
26
- height: height
26
+ height: height,
27
+ autoHeight: false // TODO: 既然设置 height 了,为什么还要设置 autoHeight 为 false?
27
28
  });
28
29
  };
29
30
  var windowConfig = exports.windowConfig = {
@@ -36,6 +37,7 @@ var windowConfig = exports.windowConfig = {
36
37
  },
37
38
  width: width,
38
39
  height: height,
39
- resizable: false
40
+ resizable: false,
41
+ transparent: true // TODO: electronContentHeight 多减去了30px 的阴影,所以这里需要设置 transparent 为 true 来消除对内容的遮挡 有点不合理 暂时先这样处理 应该 DialogContainerBody进行优化,
40
42
  };
41
43
  var _default = exports["default"] = DeviceSettingDialog;
@@ -19,5 +19,6 @@ export declare const windowConfig: {
19
19
  useContentSize: true;
20
20
  transparent: true;
21
21
  backgroundColor: string;
22
+ alwaysOnTop: true;
22
23
  };
23
24
  export {};
@@ -53,5 +53,6 @@ var windowConfig = exports.windowConfig = {
53
53
  hasShadow: false,
54
54
  useContentSize: true,
55
55
  transparent: true,
56
- backgroundColor: '#00000000'
56
+ backgroundColor: '#00000000',
57
+ alwaysOnTop: true
57
58
  };
@@ -15,5 +15,6 @@ export declare const windowConfig: {
15
15
  resizable: false;
16
16
  width: number;
17
17
  height: number;
18
+ alwaysOnTop: true;
18
19
  };
19
20
  export {};
@@ -44,5 +44,6 @@ var windowConfig = exports.windowConfig = {
44
44
  },
45
45
  resizable: false,
46
46
  width: 320,
47
- height: 172
47
+ height: 172,
48
+ alwaysOnTop: true
48
49
  };
@@ -1,12 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.windowConfig = exports.ParticipantDialog = void 0;
8
9
  var _i18n = require("agora-ui-foundation/lib/i18n");
9
10
  var _normalWindow = require("../../components/normal-window");
11
+ var _classnames = _interopRequireDefault(require("classnames"));
12
+ var _env = require("agora-foundation/lib/utilities/env");
10
13
  var _jsxRuntime = require("react/jsx-runtime");
11
14
  var windowConfig = exports.windowConfig = {
12
15
  frame: false,
@@ -34,7 +37,10 @@ var ParticipantDialog = exports.ParticipantDialog = function ParticipantDialog(_
34
37
  actions = _ref.actions;
35
38
  var transI18n = (0, _i18n.useI18n)();
36
39
  var body = /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
37
- className: "fcr-participant-dialog-wrapper",
40
+ className: (0, _classnames["default"])('fcr-participant-dialog-wrapper', {
41
+ 'fcr-participant-dialog-wrapper-web': !(0, _env.isElectron)(),
42
+ 'fcr-participant-dialog-wrapper-electron': (0, _env.isElectron)()
43
+ }),
38
44
  children: children
39
45
  });
40
46
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_normalWindow.NormalWindow, {
@@ -14,7 +14,7 @@ var ShareScreenSelectionDialog = exports.ShareScreenSelectionDialog = /*#__PURE_
14
14
  dialogId = _ref.dialogId,
15
15
  children = _ref.children;
16
16
  var transI18n = (0, _i18n.useI18n)();
17
- var title = transI18n('fmt_screenshare_label_screenshare');
17
+ var title = transI18n('fmt_screenshare_controlbar_security_list_participant_screenshare');
18
18
 
19
19
  // const body = (
20
20
  // <DialogContainer
@@ -15,14 +15,8 @@ var SubWindowDialog = exports.SubWindowDialog = (0, _mobxReact.observer)(functio
15
15
  dialogId = props.dialogId,
16
16
  children = props.children;
17
17
  var _useContext = (0, _react.useContext)(_store.StoreContext),
18
- getDialogRootNode = _useContext.getDialogRootNode,
19
- getDialogRendererWindow = _useContext.getDialogRendererWindow;
18
+ getDialogRootNode = _useContext.getDialogRootNode;
20
19
  var dialogRoot = getDialogRootNode(dialogKey, dialogId);
21
- var subWindowRenderer = getDialogRendererWindow(dialogKey, dialogId);
22
- if (subWindowRenderer) {
23
- // @ts-ignore
24
- subWindowRenderer.FcrUIMainWindowRenderer = window.FcrUIMainWindowRenderer;
25
- }
26
20
  return /*#__PURE__*/(0, _reactDom.createPortal)(children, dialogRoot);
27
21
  });
28
22
  var windowConfig = exports.windowConfig = {
@@ -13,7 +13,7 @@ export declare const windowConfig: {
13
13
  alwaysOnTop: true;
14
14
  fullscreen: false;
15
15
  frame: false;
16
- show: false;
16
+ show: true;
17
17
  skipTaskbar: true;
18
18
  };
19
19
  type ToastDialogProps = PropsWithChildren<FcrUIDialogProps>;
@@ -21,7 +21,7 @@ var windowConfig = exports.windowConfig = {
21
21
  alwaysOnTop: true,
22
22
  fullscreen: false,
23
23
  frame: false,
24
- show: false,
24
+ show: true,
25
25
  skipTaskbar: true
26
26
  };
27
27
  var ToastDialog = exports.ToastDialog = /*#__PURE__*/(0, _react.memo)(function (_ref) {
@@ -23,5 +23,8 @@ export declare const windowConfig: {
23
23
  };
24
24
  export declare const setVideoWindowDialogPosition: (screenSharingBounds: FcrUI.FcrUIRectangle, videoWindow: FcrUIWindow) => void;
25
25
  /** 使用默认宽度 246 */
26
- export declare const setVideoWindowDialogSize: (videoWindow: FcrUIWindow, height: number) => void;
26
+ export declare const setVideoWindowDialogSize: (videoWindow: FcrUIWindow, { width, height }: {
27
+ width?: number;
28
+ height: number;
29
+ }) => void;
27
30
  export {};
@@ -51,9 +51,12 @@ var setVideoWindowDialogPosition = exports.setVideoWindowDialogPosition = functi
51
51
  };
52
52
 
53
53
  /** 使用默认宽度 246 */
54
- var setVideoWindowDialogSize = exports.setVideoWindowDialogSize = function setVideoWindowDialogSize(videoWindow, height) {
54
+ var setVideoWindowDialogSize = exports.setVideoWindowDialogSize = function setVideoWindowDialogSize(videoWindow, _ref2) {
55
+ var _ref2$width = _ref2.width,
56
+ width = _ref2$width === void 0 ? _type.DefaultVideoWindowWidth : _ref2$width,
57
+ height = _ref2.height;
55
58
  videoWindow.setBounds({
56
- width: _type.DefaultVideoWindowWidth,
59
+ width: width,
57
60
  height: height
58
61
  });
59
62
  };
@@ -1,6 +1,7 @@
1
1
  import { PropsWithChildren } from 'react';
2
2
  import { FcrUIDialogProps } from '../../type';
3
3
  type WidgetDialogProps = PropsWithChildren<FcrUIDialogProps>;
4
+ export declare const TITLE_BAR_HEIGHT = 46;
4
5
  export declare const WidgetDialog: ({ children, params, dialogId, dialogKey }: WidgetDialogProps) => import("react/jsx-runtime").JSX.Element;
5
6
  export declare const windowConfig: {
6
7
  frame: false;
@@ -13,5 +14,6 @@ export declare const windowConfig: {
13
14
  y: number;
14
15
  };
15
16
  resizable: true;
17
+ transparent: true;
16
18
  };
17
19
  export {};
@@ -4,12 +4,19 @@ require("core-js/modules/es.object.define-property.js");
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.windowConfig = exports.WidgetDialog = void 0;
7
+ exports.windowConfig = exports.WidgetDialog = exports.TITLE_BAR_HEIGHT = void 0;
8
8
  require("core-js/modules/es.function.name.js");
9
9
  var _normalWindow = require("../../components/normal-window");
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
+ var TITLE_BAR_HEIGHT = exports.TITLE_BAR_HEIGHT = 46;
11
12
  var width = 600;
12
- var height = 600;
13
+
14
+ /**
15
+ * TODO
16
+ * web 下 height不传 或者 autoHeight为true 都有默认高度160 默认宽度400 导致高度没法由iframe的高度决定
17
+ * 要么去掉默认高度 ,要么要从 widgetConfig 拿到实际高度来设置 width
18
+ */
19
+ var height = 600 + TITLE_BAR_HEIGHT;
13
20
  var WidgetDialog = exports.WidgetDialog = function WidgetDialog(_ref) {
14
21
  var children = _ref.children,
15
22
  params = _ref.params,
@@ -35,5 +42,6 @@ var windowConfig = exports.windowConfig = {
35
42
  x: 10,
36
43
  y: 10
37
44
  },
38
- resizable: true
45
+ resizable: true,
46
+ transparent: true
39
47
  };
@@ -14,8 +14,12 @@
14
14
  display: flex;
15
15
  flex-direction: column;
16
16
  }
17
- .fcr-participant-dialog-wrapper {
18
- height: calc(100% - 48px);
17
+ .fcr-participant-dialog-wrapper-web {
18
+ height: 100%;
19
+ }
20
+
21
+ .fcr-participant-dialog-wrapper-electron {
22
+ height: calc(100% - 46px);
19
23
  }
20
24
 
21
25
  .fcr-livestreaming-dialog-wrapper .frc-window-header {
@@ -3,6 +3,7 @@ export declare const WindowRelativeLevel: {
3
3
  CONTROL_BAR_LEVEL: number;
4
4
  VIDEO_WINDOW_LEVEL: number;
5
5
  RENAME_WINDOW_LEVEL: number;
6
+ MOUSE_DETECT_DEBUGGER_LEVEL: number;
6
7
  };
7
8
  export declare const WEB_DIALOG_LAYER: {
8
9
  MEETING_ENDED_MASK: number;
@@ -9,7 +9,8 @@ var WindowRelativeLevel = exports.WindowRelativeLevel = {
9
9
  TOAST_LEVEL: 9,
10
10
  CONTROL_BAR_LEVEL: 8,
11
11
  VIDEO_WINDOW_LEVEL: 8,
12
- RENAME_WINDOW_LEVEL: 8
12
+ RENAME_WINDOW_LEVEL: 8,
13
+ MOUSE_DETECT_DEBUGGER_LEVEL: 10
13
14
  };
14
15
  var WEB_DIALOG_LAYER = exports.WEB_DIALOG_LAYER = {
15
16
  MEETING_ENDED_MASK: 1000,
@@ -4,6 +4,7 @@ import { FcrUIConfirmDescriptor, FcrUIDialogDescriptor, FcrUIDialogObserver, Fcr
4
4
  import { DialogStoreArgs } from './type';
5
5
  import { FcrUIManagedObject } from '../../object-manager';
6
6
  import { ConfirmContentProps } from 'agora-ui-foundation/lib/components/confirm-content';
7
+ import { FcrUIWindow } from '../../providers/window/type';
7
8
  export declare abstract class DialogStoreBase implements FcrUIManagedObject {
8
9
  protected logger: import("agora-foundation/lib/logger").Logger;
9
10
  protected dialogProvider: FcrUIDialogProvider;
@@ -28,6 +29,7 @@ export declare abstract class DialogStoreBase implements FcrUIManagedObject {
28
29
  release(): void;
29
30
  abstract getDialogRootNode(dialogKey: FcrUIDialogKey, dialogId: string): HTMLElement;
30
31
  abstract getDialogRendererWindow(dialogKey: FcrUIDialogKey, dialogId: string): HTMLElement;
32
+ abstract getDialogWindow(dialogKey: FcrUIDialogKey, dialogId: string): FcrUIWindow;
31
33
  abstract handleConfirmMouseover(): void;
32
34
  abstract handleConfirmMouseout(): void;
33
35
  abstract removeObserverWindow(id: string): void;
@@ -1,8 +1,10 @@
1
1
  import { FcrUIDialogKey } from '../../utilities/constant';
2
2
  import { DialogStoreBase } from './store.base';
3
+ import { FcrUIWindow } from '../../providers/window/type';
3
4
  export default class DialogStore extends DialogStoreBase {
4
5
  getDialogRendererWindow(dialogKey: FcrUIDialogKey, dialogId: string): HTMLElement;
5
6
  getDialogRootNode(dialogKey: FcrUIDialogKey, dialogId: string): HTMLElement;
7
+ getDialogWindow(dialogKey: FcrUIDialogKey, dialogId: string): FcrUIWindow;
6
8
  handleMouseover(): void;
7
9
  handleMouseout(): void;
8
10
  handleSceneMounted(): void;
@@ -83,6 +83,11 @@ var DialogStore = exports["default"] = /*#__PURE__*/function (_DialogStoreBase)
83
83
  value: function getDialogRootNode(dialogKey, dialogId) {
84
84
  throw new Error('cannot call getDialogRootNode in browser environment');
85
85
  }
86
+ }, {
87
+ key: "getDialogWindow",
88
+ value: function getDialogWindow(dialogKey, dialogId) {
89
+ throw new Error('cannot call getDialogWindow in browser environment');
90
+ }
86
91
  }, {
87
92
  key: "handleMouseover",
88
93
  value: function handleMouseover() {
@@ -131,6 +136,6 @@ var DialogStore = exports["default"] = /*#__PURE__*/function (_DialogStoreBase)
131
136
  }]);
132
137
  }(_store.DialogStoreBase);
133
138
  _DialogStore = DialogStore;
134
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_DialogStore, [[_decorator.bound, 2, "getDialogRootNode"], [_decorator.bound, 2, "handleMouseover"], [_decorator.bound, 2, "handleMouseout"], [_decorator.bound, 2, "handleSceneMounted"], [_decorator.bound, 2, "handleConfirmMouseover"], [_decorator.bound, 2, "handleConfirmMouseout"], [_decorator.bound, 2, "removeObserverWindow"], [_decorator.bound, 2, "setObserverWindow"], [_decorator.bound, 2, "addScreenObserver"], [_decorator.bound, 2, "removeScreenObserver"]], [], 0, void 0, _store.DialogStoreBase).e, 1);
139
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_DialogStore, [[_decorator.bound, 2, "getDialogRootNode"], [_decorator.bound, 2, "getDialogWindow"], [_decorator.bound, 2, "handleMouseover"], [_decorator.bound, 2, "handleMouseout"], [_decorator.bound, 2, "handleSceneMounted"], [_decorator.bound, 2, "handleConfirmMouseover"], [_decorator.bound, 2, "handleConfirmMouseout"], [_decorator.bound, 2, "removeObserverWindow"], [_decorator.bound, 2, "setObserverWindow"], [_decorator.bound, 2, "addScreenObserver"], [_decorator.bound, 2, "removeScreenObserver"]], [], 0, void 0, _store.DialogStoreBase).e, 1);
135
140
  _initProto = _applyDecs$e[0];
136
141
  var StoreContext = exports.StoreContext = /*#__PURE__*/(0, _react.createContext)(null);
@@ -1,19 +1,25 @@
1
1
  import { FcrUIDialogKey } from '../../utilities/constant';
2
2
  import { DialogStoreBase } from './store.base';
3
3
  import { DialogStoreArgs, FcrUIDialogInfo } from './type';
4
+ import { FcrUIWindow } from '../../providers/window/type';
4
5
  import { FcrUIDialogObserver } from '../../providers/dialog/type';
5
6
  export default class DialogStore extends DialogStoreBase {
6
7
  private _windowProvider;
7
8
  private _renderer;
8
- private _sharedConfirmDataSource;
9
+ private _mouseDetectProvider;
9
10
  private _confirmWindow;
11
+ private _subWindow;
10
12
  private _mouseOverState;
13
+ private _subWindowObserver;
11
14
  private _confirmWindowObserver;
15
+ private _detactObserver;
12
16
  protected _dialogInfoObserver: FcrUIDialogObserver;
17
+ private get _detectConfirms();
13
18
  get isConfirmListEmpty(): boolean;
14
19
  constructor(args: DialogStoreArgs);
15
20
  getDialogRootNode(dialogKey: FcrUIDialogKey, dialogId: string): HTMLElement;
16
21
  getDialogRendererWindow(dialogKey: FcrUIDialogKey, dialogId: string): HTMLElement;
22
+ getDialogWindow(dialogKey: FcrUIDialogKey, dialogId: string): FcrUIWindow;
17
23
  handleConfirmMouseover(): void;
18
24
  handleConfirmMouseout(): void;
19
25
  handleSceneMounted(): void;
@@ -22,6 +28,8 @@ export default class DialogStore extends DialogStoreBase {
22
28
  addScreenObserver(callback: () => void): void;
23
29
  removeScreenObserver(callback: () => void): void;
24
30
  release(): void;
31
+ private _handleDetectAreaMouseover;
32
+ private _handleDetectAreaMouseout;
25
33
  protected _handleDialogInfoAdded(dialogKey: FcrUIDialogKey, dialogInfo: FcrUIDialogInfo): void;
26
34
  private _handleScreenEvent;
27
35
  }