fcr-ui-scene 3.7.6 → 3.7.7

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 (259) 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 +12 -6
  4. package/lib/creator/provider-initializer.browser.js +0 -3
  5. package/lib/creator/provider-initializer.electron.js +0 -4
  6. package/lib/creator.d.ts +36 -0
  7. package/lib/creator.js +465 -0
  8. package/lib/electron/bootstrap-sdk.js +70 -20
  9. package/lib/electron/struct.d.ts +7 -1
  10. package/lib/electron/struct.js +8 -1
  11. package/lib/electron/until.d.ts +3 -1
  12. package/lib/electron/until.js +7 -2
  13. package/lib/modules/action-bar/components/item/index.js +1 -0
  14. package/lib/modules/action-bar/components/screen-share/submenu.js +1 -1
  15. package/lib/modules/action-bar/index.d.ts +58 -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 +109 -0
  19. package/lib/modules/action-bar/store.d.ts +259 -0
  20. package/lib/modules/action-bar/store.js +1529 -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 +620 -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/chat/index.css +5 -1
  70. package/lib/modules/chat/view.js +6 -1
  71. package/lib/modules/components/control-bar/components/switch-theme/index.css +2 -0
  72. package/lib/modules/components/control-bar/components/switch-theme/index.js +5 -7
  73. package/lib/modules/components/control-bar/index.js +26 -7
  74. package/lib/modules/components/device-control/store.d.ts +42 -0
  75. package/lib/modules/components/device-control/store.js +241 -0
  76. package/lib/modules/components/leave-meeting/store.d.ts +39 -0
  77. package/lib/modules/components/leave-meeting/store.js +270 -0
  78. package/lib/modules/components/toolbar/components/capture-tool/index.d.ts +0 -1
  79. package/lib/modules/components/toolbar/components/capture-tool/index.js +1 -2
  80. package/lib/modules/components/toolbar/components/vertical-frame/index.js +2 -2
  81. package/lib/modules/components/toolbar/hooks/use-resize-visible.js +43 -42
  82. package/lib/modules/components/toolbar/index.js +6 -24
  83. package/lib/modules/control-bar/components/annotation-button/index.d.ts +1 -0
  84. package/lib/modules/control-bar/components/annotation-button/index.js +72 -0
  85. package/lib/modules/control-bar/components/cloud-recording-buttons.d.ts +3 -0
  86. package/lib/modules/control-bar/components/cloud-recording-buttons.js +65 -3
  87. package/lib/modules/control-bar/store.js +11 -6
  88. package/lib/modules/control-bar/types.d.ts +20 -0
  89. package/lib/modules/control-bar/types.js +6 -0
  90. package/lib/modules/dialog/components/dialog-container/component/body.d.ts +1 -0
  91. package/lib/modules/dialog/components/dialog-container/component/body.js +3 -2
  92. package/lib/modules/dialog/components/dialog-container/index.css +1 -1
  93. package/lib/modules/dialog/components/dialog-container/index.d.ts +1 -0
  94. package/lib/modules/dialog/components/dialog-container/index.js +4 -1
  95. package/lib/modules/dialog/components/normal-window/index.d.ts +1 -0
  96. package/lib/modules/dialog/components/normal-window/index.js +3 -1
  97. package/lib/modules/dialog/dialogs/chat/index.js +2 -1
  98. package/lib/modules/dialog/dialogs/control-bar-leave-meeting/index.js +0 -1
  99. package/lib/modules/dialog/dialogs/end-meeting/index.d.ts +1 -0
  100. package/lib/modules/dialog/dialogs/end-meeting/index.js +2 -1
  101. package/lib/modules/dialog/dialogs/participant/index.js +2 -1
  102. package/lib/modules/dialog/dialogs/pre-setting/index.css +26 -0
  103. package/lib/modules/dialog/dialogs/pre-setting/index.d.ts +6 -0
  104. package/lib/modules/dialog/dialogs/pre-setting/index.js +62 -0
  105. package/lib/modules/dialog/dialogs/widget/electron.d.ts +6 -0
  106. package/lib/modules/dialog/dialogs/widget/electron.js +38 -0
  107. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +14 -0
  108. package/lib/modules/dialog/hooks/use-popover-watcher.js +110 -0
  109. package/lib/modules/dialog/hooks/useElectron.d.ts +28 -0
  110. package/lib/modules/dialog/hooks/useElectron.js +277 -0
  111. package/lib/modules/dialog/store.d.ts +135 -0
  112. package/lib/modules/dialog/store.js +616 -0
  113. package/lib/modules/event-confirm/components/window/index.d.ts +7 -0
  114. package/lib/modules/event-confirm/components/window/index.js +221 -0
  115. package/lib/modules/event-confirm/index.css +24 -0
  116. package/lib/modules/event-confirm/index.d.ts +27 -0
  117. package/lib/modules/event-confirm/index.js +76 -0
  118. package/lib/modules/event-confirm/store.d.ts +50 -0
  119. package/lib/modules/event-confirm/store.js +394 -0
  120. package/lib/modules/event-confirm/view.d.ts +2 -0
  121. package/lib/modules/event-confirm/view.js +55 -0
  122. package/lib/modules/event-toast/store.d.ts +27 -0
  123. package/lib/modules/event-toast/store.js +205 -0
  124. package/lib/modules/layout/store.d.ts +176 -0
  125. package/lib/modules/layout/store.electron.js +1 -1
  126. package/lib/modules/layout/store.js +1452 -0
  127. package/lib/modules/participant/store.d.ts +222 -0
  128. package/lib/modules/participant/store.js +1929 -0
  129. package/lib/modules/pc-audio-connect/index.d.ts +22 -0
  130. package/lib/modules/pc-audio-connect/index.js +67 -0
  131. package/lib/modules/pc-audio-connect/store.d.ts +46 -0
  132. package/lib/modules/pc-audio-connect/store.js +304 -0
  133. package/lib/modules/secondary-window/store.d.ts +0 -1
  134. package/lib/modules/secondary-window/store.js +9 -22
  135. package/lib/modules/secondary-window/view.js +6 -5
  136. package/lib/modules/setting/common/advance-link.d.ts +3 -0
  137. package/lib/modules/setting/common/advance-link.js +27 -0
  138. package/lib/modules/setting/common/index.css +26 -0
  139. package/lib/modules/setting/common/useNamespace.d.ts +15 -0
  140. package/lib/modules/setting/common/useNamespace.js +66 -0
  141. package/lib/modules/setting/dialog-wrapper.d.ts +2 -0
  142. package/lib/modules/setting/dialog-wrapper.js +110 -0
  143. package/lib/modules/setting/index.css +0 -1
  144. package/lib/modules/setting/store.base.js +6 -0
  145. package/lib/modules/setting/store.d.ts +261 -0
  146. package/lib/modules/setting/store.js +1321 -0
  147. package/lib/modules/setting/view.js +0 -3
  148. package/lib/modules/share-screen/store.d.ts +148 -0
  149. package/lib/modules/share-screen/store.electron.js +1 -1
  150. package/lib/modules/share-screen/store.js +960 -0
  151. package/lib/modules/share-screen/types.d.ts +26 -0
  152. package/lib/modules/share-screen/types.js +6 -0
  153. package/lib/modules/state-bar/layout-config.js +6 -0
  154. package/lib/modules/state-bar/main-scene/store.base.d.ts +2 -0
  155. package/lib/modules/state-bar/main-scene/store.base.js +6 -0
  156. package/lib/modules/state-bar/store.d.ts +124 -0
  157. package/lib/modules/state-bar/store.js +664 -0
  158. package/lib/modules/video-window/index.css +6 -0
  159. package/lib/modules/video-window/popover-watcher.d.ts +4 -1
  160. package/lib/modules/video-window/popover-watcher.js +15 -2
  161. package/lib/modules/video-window/store.d.ts +18 -1
  162. package/lib/modules/video-window/store.js +55 -7
  163. package/lib/modules/whiteboard/components/progress/electron.d.ts +1 -0
  164. package/lib/modules/whiteboard/components/progress/electron.js +33 -0
  165. package/lib/modules/whiteboard/store.js +20 -2
  166. package/lib/modules/widget/store.d.ts +14 -0
  167. package/lib/modules/widget/store.js +28 -0
  168. package/lib/object-manager.d.ts +0 -1
  169. package/lib/object-manager.js +0 -1
  170. package/lib/providers/annotation-provider.d.ts +124 -0
  171. package/lib/providers/annotation-provider.js +369 -0
  172. package/lib/providers/board-share/bar-control/base.d.ts +1 -1
  173. package/lib/providers/board-share/bar-control/base.js +37 -28
  174. package/lib/providers/board-share/bar-control/electron.d.ts +1 -1
  175. package/lib/providers/board-share/bar-control/electron.js +19 -16
  176. package/lib/providers/board-share/provider.browser.d.ts +3 -0
  177. package/lib/providers/board-share/provider.browser.js +21 -3
  178. package/lib/providers/device-provider.js +5 -1
  179. package/lib/providers/dialog/provider.electron.js +6 -0
  180. package/lib/providers/dialog-provider.d.ts +137 -0
  181. package/lib/providers/dialog-provider.js +194 -0
  182. package/lib/providers/message-provider.d.ts +69 -0
  183. package/lib/providers/message-provider.js +140 -0
  184. package/lib/providers/mouse-detect/provider.d.ts +5 -0
  185. package/lib/providers/mouse-detect/provider.js +74 -49
  186. package/lib/providers/multi-display-provider.d.ts +3 -5
  187. package/lib/providers/multi-display-provider.js +0 -9
  188. package/lib/providers/room-provider/room-provider.d.ts +3 -14
  189. package/lib/providers/room-provider/room-provider.js +5 -26
  190. package/lib/providers/room-provider.d.ts +194 -0
  191. package/lib/providers/room-provider.js +916 -0
  192. package/lib/providers/screen-share/stream-state-sync.js +19 -12
  193. package/lib/providers/screen-share-provider.d.ts +245 -0
  194. package/lib/providers/screen-share-provider.js +850 -0
  195. package/lib/providers/sharing-provider.d.ts +42 -0
  196. package/lib/providers/sharing-provider.js +228 -0
  197. package/lib/providers/user-setting-storage-provider.d.ts +21 -0
  198. package/lib/providers/user-setting-storage-provider.js +65 -0
  199. package/lib/providers/whiteboard-provider.d.ts +24 -0
  200. package/lib/providers/whiteboard-provider.js +128 -0
  201. package/lib/providers/window/main-window.d.ts +0 -5
  202. package/lib/providers/window/main-window.js +0 -44
  203. package/lib/providers/window/renderer-window.d.ts +1 -0
  204. package/lib/providers/window/renderer-window.js +9 -1
  205. package/lib/scenes/main-scene.js +0 -2
  206. package/lib/shared-data-source/annotation-data.d.ts +17 -0
  207. package/lib/shared-data-source/annotation-data.js +110 -0
  208. package/lib/shared-data-source/app-list-data.d.ts +34 -0
  209. package/lib/shared-data-source/app-list-data.js +133 -0
  210. package/lib/shared-data-source/chat-data.d.ts +25 -0
  211. package/lib/shared-data-source/chat-data.js +139 -0
  212. package/lib/shared-data-source/config.d.ts +35 -0
  213. package/lib/shared-data-source/config.js +40 -0
  214. package/lib/shared-data-source/confirm-data.d.ts +44 -0
  215. package/lib/shared-data-source/confirm-data.js +201 -0
  216. package/lib/shared-data-source/device-privilege-data.d.ts +8 -0
  217. package/lib/shared-data-source/device-privilege-data.js +25 -0
  218. package/lib/shared-data-source/interpreter.d.ts +77 -0
  219. package/lib/shared-data-source/interpreter.js +247 -0
  220. package/lib/shared-data-source/layout-data.d.ts +31 -0
  221. package/lib/shared-data-source/layout-data.js +189 -0
  222. package/lib/shared-data-source/meeting-time.d.ts +90 -0
  223. package/lib/shared-data-source/meeting-time.js +416 -0
  224. package/lib/shared-data-source/member-data.d.ts +139 -0
  225. package/lib/shared-data-source/member-data.js +517 -0
  226. package/lib/shared-data-source/pin-data.d.ts +13 -0
  227. package/lib/shared-data-source/pin-data.js +111 -0
  228. package/lib/shared-data-source/screen-share-data.d.ts +357 -0
  229. package/lib/shared-data-source/screen-share-data.js +513 -0
  230. package/lib/shared-data-source/security-data.d.ts +39 -0
  231. package/lib/shared-data-source/security-data.js +156 -0
  232. package/lib/shared-data-source/setting.d.ts +67 -0
  233. package/lib/shared-data-source/setting.js +220 -0
  234. package/lib/shared-data-source/speaker-spotlight.d.ts +5 -0
  235. package/lib/shared-data-source/speaker-spotlight.js +15 -0
  236. package/lib/shared-data-source/video-window.d.ts +165 -0
  237. package/lib/shared-data-source/video-window.js +1266 -0
  238. package/lib/shared-data-source/waiting-room.d.ts +46 -0
  239. package/lib/shared-data-source/waiting-room.js +222 -0
  240. package/lib/shared-data-source/whiteboard-data.d.ts +70 -0
  241. package/lib/{providers/board-share/bar-control.js → shared-data-source/whiteboard-data.js} +62 -104
  242. package/lib/ui-scene.js +4 -2
  243. package/lib/utilities/board-context.d.ts +4 -0
  244. package/lib/utilities/board-context.js +12 -0
  245. package/lib/utilities/copyText.d.ts +2 -0
  246. package/lib/utilities/copyText.js +48 -0
  247. package/lib/utilities/renderer-event.d.ts +10 -0
  248. package/lib/utilities/renderer-event.js +95 -0
  249. package/lib/utilities/screen-capture-permission.d.ts +2 -0
  250. package/lib/utilities/screen-capture-permission.js +24 -0
  251. package/lib/utilities/screen.d.ts +3 -0
  252. package/lib/utilities/screen.js +53 -0
  253. package/lib/utilities/video-track-render-context.d.ts +6 -0
  254. package/lib/utilities/video-track-render-context.js +9 -0
  255. package/lib/waiting-room-control-manager.d.ts +28 -0
  256. package/lib/waiting-room-control-manager.js +230 -0
  257. package/package.json +5 -5
  258. package/public/index.html +22 -1
  259. package/lib/providers/board-share/bar-control.d.ts +0 -51
@@ -1,10 +1,12 @@
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
- exports.CloudRecordingButtons = void 0;
8
+ exports.StopCloudRecording = exports.CloudRecordingButtons = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
10
  var _mobxReact = require("mobx-react");
9
11
  var _react = require("react");
10
12
  var _type = require("fcr-core/lib/type");
@@ -12,8 +14,10 @@ var _icon = require("agora-ui-foundation/lib/components/icon");
12
14
  var _type2 = require("agora-ui-foundation/lib/components/icon/type");
13
15
  var _tooltip = require("agora-ui-foundation/lib/components/tooltip");
14
16
  var _store = require("../store");
15
- var _stopRecordDialog = require("../../action-bar/components/record/stop-record-dialog");
16
17
  var _i18n = require("agora-ui-foundation/lib/i18n");
18
+ var _boundaryDetector = require("./boundary-detector");
19
+ var _popover = require("agora-ui-foundation/lib/components/popover");
20
+ var _context = require("../context");
17
21
  var _jsxRuntime = require("react/jsx-runtime");
18
22
  var CloudRecordingButtons = exports.CloudRecordingButtons = (0, _mobxReact.observer)(function () {
19
23
  var _useContext = (0, _react.useContext)(_store.StoreContext),
@@ -50,7 +54,7 @@ var CloudRecordingButtons = exports.CloudRecordingButtons = (0, _mobxReact.obser
50
54
  }
51
55
  })
52
56
  })
53
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_stopRecordDialog.StopCloudRecording, {
57
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(StopCloudRecording, {
54
58
  stopCloudRecording: stopCloudRecording,
55
59
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
56
60
  mouseEnterDelay: 0,
@@ -67,4 +71,62 @@ var CloudRecordingButtons = exports.CloudRecordingButtons = (0, _mobxReact.obser
67
71
  })
68
72
  })]
69
73
  });
74
+ });
75
+
76
+ // TODO: 删除重复的 StopCloudRecording 组件
77
+ var StopCloudRecording = exports.StopCloudRecording = (0, _mobxReact.observer)(function (_ref) {
78
+ var stopCloudRecording = _ref.stopCloudRecording,
79
+ children = _ref.children;
80
+ var _useContext2 = (0, _react.useContext)(_store.StoreContext),
81
+ setPopoverArea = _useContext2.setPopoverArea;
82
+ var _useState = (0, _react.useState)(false),
83
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
84
+ visible = _useState2[0],
85
+ setVisible = _useState2[1];
86
+ var transI18n = (0, _i18n.useI18n)();
87
+ var handleBoundariesChanged = (0, _react.useCallback)(function (boundaries) {
88
+ setPopoverArea(boundaries);
89
+ }, []);
90
+ var _useContext3 = (0, _react.useContext)(_context.ControlBarCalculationContext),
91
+ isShareActionNavHidden = _useContext3.isShareActionNavHidden;
92
+ (0, _react.useEffect)(function () {
93
+ if (isShareActionNavHidden) {
94
+ setVisible(false);
95
+ setPopoverArea({
96
+ x: 0,
97
+ y: 0,
98
+ width: 0,
99
+ height: 0
100
+ });
101
+ }
102
+ }, [isShareActionNavHidden]);
103
+ var content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_boundaryDetector.BoundaryDetector, {
104
+ onBoundariesChanged: handleBoundariesChanged,
105
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
106
+ className: "leave-container",
107
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
108
+ className: "leave-title",
109
+ children: transI18n('fmt_actionbar_record_tips_stoprecord')
110
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
111
+ className: "leave-confirm",
112
+ onClick: stopCloudRecording,
113
+ children: transI18n('fmt_actionbar_record_option_stoprecord')
114
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
115
+ className: "leave-cancel",
116
+ onClick: function onClick() {
117
+ return setVisible(false);
118
+ },
119
+ children: transI18n('fmt_security_buttons_cancel')
120
+ })]
121
+ })
122
+ });
123
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_popover.FcrPopover, {
124
+ showArrow: false,
125
+ overlayClassName: "fcr-stop-cloud-recording-popover",
126
+ visible: visible,
127
+ onVisibleChange: setVisible,
128
+ trigger: "click",
129
+ content: content,
130
+ children: children
131
+ });
70
132
  });
@@ -149,13 +149,17 @@ var ControlBarStore = exports["default"] = /*#__PURE__*/function () {
149
149
  }
150
150
  });
151
151
  (0, _defineProperty2["default"])(this, "_mouseDetectObserver", {
152
- onMouseEnterDetectArea: function onMouseEnterDetectArea() {
153
- _this._controlBarWindow.setIgnoreMouseEvents(false);
152
+ onMouseEnterDetectArea: function onMouseEnterDetectArea(areaId) {
153
+ if (areaId === _struct.FcrUIDetectAreaID.ControlBar) {
154
+ _this._controlBarWindow.setIgnoreMouseEvents(false);
155
+ }
154
156
  },
155
- onMouseLeaveDetectArea: function onMouseLeaveDetectArea() {
156
- _this._controlBarWindow.setIgnoreMouseEvents(true, {
157
- forward: true
158
- });
157
+ onMouseLeaveDetectArea: function onMouseLeaveDetectArea(areaId) {
158
+ if (areaId === _struct.FcrUIDetectAreaID.ControlBar) {
159
+ _this._controlBarWindow.setIgnoreMouseEvents(true, {
160
+ forward: true
161
+ });
162
+ }
159
163
  }
160
164
  });
161
165
  (0, _defineProperty2["default"])(this, "_stateNavArea", {
@@ -622,6 +626,7 @@ var ControlBarStore = exports["default"] = /*#__PURE__*/function () {
622
626
  this._mainRoomControl.removeObserver(this._roomObserver);
623
627
  this._screenShareProvider.removeObserver(this._screenShareObserver);
624
628
  this._mouseDetectProvider.removeObserver(this._mouseDetectObserver);
629
+ this._mouseDetectProvider.deleteDetectArea(_struct.FcrUIDetectAreaID.ControlBar);
625
630
  }
626
631
  }, {
627
632
  key: "setStateNavArea",
@@ -0,0 +1,20 @@
1
+ import { TransferPosition } from './enums';
2
+ export interface MorePopoverContentProps {
3
+ hasChatPermission: boolean;
4
+ closePopover?: () => void;
5
+ }
6
+ export interface IShareStateNav {
7
+ onShareStateNavTransferPosition: (targetPosition: TransferPosition) => void;
8
+ onStopShare: () => void;
9
+ currentPosition: TransferPosition;
10
+ }
11
+ export interface ITransferPositionIconProps {
12
+ currentPosition: TransferPosition;
13
+ onTransferPositionButtonClick: (targetPosition: TransferPosition) => void;
14
+ }
15
+ export type CurrentShareBounds = {
16
+ x: number;
17
+ y: number;
18
+ width: number;
19
+ height: number;
20
+ };
@@ -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
+ });
@@ -6,6 +6,7 @@ type DialogBodyProps = PropsWithChildren<{
6
6
  autoHeight: boolean;
7
7
  closable: boolean;
8
8
  onClose?: () => void;
9
+ hasSystemShadow?: boolean;
9
10
  }>;
10
11
  export declare const DialogContainerBody: FC<DialogBodyProps>;
11
12
  export {};
@@ -14,7 +14,8 @@ var DialogContainerBody = exports.DialogContainerBody = function DialogContainer
14
14
  children = _ref.children,
15
15
  onClose = _ref.onClose,
16
16
  autoHeight = _ref.autoHeight,
17
- closable = _ref.closable;
17
+ closable = _ref.closable,
18
+ hasSystemShadow = _ref.hasSystemShadow;
18
19
  // const { bind } = useContext(DialogContainerStore);
19
20
 
20
21
  // const { resizable } = isElectron() ? useContext(DialogInstanceContext) : { resizable: false };
@@ -38,7 +39,7 @@ var DialogContainerBody = exports.DialogContainerBody = function DialogContainer
38
39
  } : {};
39
40
  var hasClose = closable;
40
41
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
41
- className: "fcr-dialog-container ".concat(!resizable && 'fcr-dialog-container_shadow'),
42
+ className: "fcr-dialog-container ".concat(!hasSystemShadow && 'fcr-dialog-container_shadow'),
42
43
  onClick: function onClick(e) {
43
44
  return e.stopPropagation();
44
45
  },
@@ -92,7 +92,7 @@
92
92
  cursor: pointer;
93
93
  -webkit-app-region: no-drag;
94
94
  text-align: center;
95
- line-height: 13px;
95
+ line-height: 14px;
96
96
  }
97
97
 
98
98
  .fcr-dialog-container-close span {
@@ -17,6 +17,7 @@ type DialogContainerProps = PropsWithChildren<{
17
17
  maxHeight?: number;
18
18
  minWidth?: number;
19
19
  minHeight?: number;
20
+ hasSystemShadow?: boolean;
20
21
  }>;
21
22
  export declare const DialogContainer: FC<DialogContainerProps>;
22
23
  export {};
@@ -52,13 +52,15 @@ var DialogContainer = exports.DialogContainer = (0, _mobxReact.observer)(functio
52
52
  maxWidth = _ref.maxWidth,
53
53
  maxHeight = _ref.maxHeight,
54
54
  minWidth = _ref.minWidth,
55
- minHeight = _ref.minHeight;
55
+ minHeight = _ref.minHeight,
56
+ hasSystemShadow = _ref.hasSystemShadow;
56
57
  var dialogBody = /*#__PURE__*/(0, _jsxRuntime.jsx)(_body.DialogContainerBody, {
57
58
  title: title,
58
59
  actions: actions,
59
60
  autoHeight: autoHeight !== null && autoHeight !== void 0 ? autoHeight : true,
60
61
  closable: closable !== null && closable !== void 0 ? closable : true,
61
62
  onClose: _onClose,
63
+ hasSystemShadow: hasSystemShadow,
62
64
  children: children
63
65
  });
64
66
  if ((0, _env.isElectron)()) return dialogBody;
@@ -107,6 +109,7 @@ var DialogContainer = exports.DialogContainer = (0, _mobxReact.observer)(functio
107
109
  };
108
110
  };
109
111
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRnd.Rnd, {
112
+ dragHandleClassName: 'fcr-dialog-container-header',
110
113
  style: _objectSpread({
111
114
  position: 'absolute',
112
115
  touchAction: 'none',
@@ -17,6 +17,7 @@ type FcrUIDialogProps = {
17
17
  minHeight?: number;
18
18
  maxWidth?: number;
19
19
  maxHeight?: number;
20
+ hasSystemShadow?: boolean;
20
21
  };
21
22
  export declare const NormalWindow: FC<FcrUIDialogProps>;
22
23
  export {};
@@ -26,7 +26,8 @@ var NormalWindow = exports.NormalWindow = (0, _mobxReact.observer)(function (_re
26
26
  minWidth = _ref.minWidth,
27
27
  minHeight = _ref.minHeight,
28
28
  maxWidth = _ref.maxWidth,
29
- maxHeight = _ref.maxHeight;
29
+ maxHeight = _ref.maxHeight,
30
+ hasSystemShadow = _ref.hasSystemShadow;
30
31
  var _useContext = (0, _react.useContext)(_store.StoreContext),
31
32
  getDialogRootNode = _useContext.getDialogRootNode,
32
33
  handleDialogClose = _useContext.handleDialogClose;
@@ -46,6 +47,7 @@ var NormalWindow = exports.NormalWindow = (0, _mobxReact.observer)(function (_re
46
47
  maxWidth: maxWidth,
47
48
  maxHeight: maxHeight,
48
49
  autoHeight: autoHeight,
50
+ hasSystemShadow: hasSystemShadow,
49
51
  children: body
50
52
  });
51
53
  if ((0, _env.isElectron)()) {
@@ -57,7 +57,8 @@ var ChatDialog = exports.ChatDialog = (0, _mobxReact.observer)(function (_ref) {
57
57
  zIndex: 11
58
58
  },
59
59
  width: width,
60
- height: height
60
+ height: height,
61
+ hasSystemShadow: true
61
62
  });
62
63
  });
63
64
  var windowConfig = exports.windowConfig = {
@@ -17,7 +17,6 @@ var ControlBarLeaveMeetingDialog = exports.ControlBarLeaveMeetingDialog = functi
17
17
  height: 172
18
18
  };
19
19
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_normalWindow.NormalWindow, {
20
- closable: false,
21
20
  dialogId: dialogId,
22
21
  dialogKey: dialogKey,
23
22
  width: config.width,
@@ -9,4 +9,5 @@ export declare const windowConfig: {
9
9
  fullscreen: false;
10
10
  maximizable: false;
11
11
  resizable: false;
12
+ alwaysOnTop: true;
12
13
  };
@@ -50,5 +50,6 @@ var windowConfig = exports.windowConfig = {
50
50
  height: 340,
51
51
  fullscreen: false,
52
52
  maximizable: false,
53
- resizable: false
53
+ resizable: false,
54
+ alwaysOnTop: true
54
55
  };
@@ -54,6 +54,7 @@ var ParticipantDialog = exports.ParticipantDialog = function ParticipantDialog(_
54
54
  minWidth: windowConfig.minWidth,
55
55
  minHeight: windowConfig.minHeight,
56
56
  maxWidth: windowConfig.maxWidth,
57
- maxHeight: windowConfig.maxHeight
57
+ maxHeight: windowConfig.maxHeight,
58
+ hasSystemShadow: true
58
59
  });
59
60
  };
@@ -0,0 +1,26 @@
1
+ .fcr-device-setting-dialog-wrapper {
2
+ display: flex;
3
+ flex-direction: column;
4
+ height: 100%;
5
+ background: var(--fcr_mobile_ui_scene_color_popup_fill2);
6
+ border-radius: 16px;
7
+ box-shadow: var(--fcr_web_light_dropup);
8
+ border: 1px solid var(--fcr_ui_scene_line1);
9
+ }
10
+
11
+ .fcr-device-setting-dialog-wrapper .frc-window-header {
12
+ cursor: move;
13
+ height: 46px;
14
+ }
15
+
16
+ .fcr-device-setting-dialog-wrapper .fcr-device-settings {
17
+ height: calc(100% - 46px);
18
+ }
19
+ .fcr-device-setting-dialog-wrapper .fcr-device-settings-audio {
20
+ padding: 0;
21
+ }
22
+
23
+ .fcr-device-setting-dialog-wrapper .frc-window-header .frc-window-header__title {
24
+ height: 46px;
25
+ line-height: 46px;
26
+ }
@@ -0,0 +1,6 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import './index.css';
3
+ declare const DeviceSettingDialog: ({ children, onClose }: PropsWithChildren<{
4
+ onClose: () => void;
5
+ }>) => import("react/jsx-runtime").JSX.Element;
6
+ export default DeviceSettingDialog;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ require("core-js/modules/web.timers.js");
10
+ var _env = require("agora-foundation/lib/utilities/env");
11
+ var _i18n = require("agora-ui-foundation/lib/i18n");
12
+ var _constant = require("../../../../utilities/constant");
13
+ var _normalWindow = _interopRequireDefault(require("../../components/normal-window"));
14
+ require("./index.css");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ var ELECTRON_HEIGHT = 556;
17
+ var WEB_HEIGHT = 600;
18
+ var DeviceSettingDialog = function DeviceSettingDialog(_ref) {
19
+ var children = _ref.children,
20
+ onClose = _ref.onClose;
21
+ var t = (0, _i18n.useI18n)();
22
+ var height = (0, _env.isElectron)() ? ELECTRON_HEIGHT : WEB_HEIGHT;
23
+ var config = {
24
+ fullscreen: false,
25
+ maximizable: false,
26
+ trafficLightPosition: {
27
+ x: 10,
28
+ y: 60
29
+ },
30
+ width: 580,
31
+ height: 600,
32
+ minWidth: 580,
33
+ minHeight: 600,
34
+ maxWidth: 670,
35
+ maxHeight: 800,
36
+ title: t('fmt_settings_option_setting'),
37
+ resizable: false
38
+ };
39
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_normalWindow["default"], {
40
+ height: height,
41
+ dialogKey: _constant.FcrUIDialogKey.DEVICE_SETTINGS,
42
+ config: config,
43
+ style: {
44
+ zIndex: 10
45
+ },
46
+ onClose: onClose,
47
+ onOpened: function onOpened(_ref2) {
48
+ var browserWindow = _ref2.browserWindow;
49
+ if (browserWindow) {
50
+ browserWindow.setAlwaysOnTop(true);
51
+ setTimeout(function () {
52
+ browserWindow.show();
53
+ browserWindow.setAlwaysOnTop(false);
54
+ browserWindow.moveTop();
55
+ browserWindow.focus();
56
+ }, 600);
57
+ }
58
+ },
59
+ children: children
60
+ });
61
+ };
62
+ var _default = exports["default"] = DeviceSettingDialog;
@@ -0,0 +1,6 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { FcrUIWebWidgetConfig } from '../../../../type';
3
+ export declare const WidgetElectronDialog: ({ children, params, dialogId, }: PropsWithChildren<{
4
+ params: FcrUIWebWidgetConfig;
5
+ dialogId: string;
6
+ }>) => null;
@@ -0,0 +1,38 @@
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.WidgetElectronDialog = void 0;
8
+ require("core-js/modules/es.function.name.js");
9
+ var _constant = require("../../../../utilities/constant");
10
+ var _useElectron = require("../../hooks/useElectron");
11
+ var WidgetElectronDialog = exports.WidgetElectronDialog = function WidgetElectronDialog(_ref) {
12
+ var _params$popupSize, _params$popupSize2;
13
+ var children = _ref.children,
14
+ params = _ref.params,
15
+ dialogId = _ref.dialogId;
16
+ var width = (_params$popupSize = params.popupSize) !== null && _params$popupSize !== void 0 && _params$popupSize.width ? params.popupSize.width + 2 : undefined;
17
+ var height = (_params$popupSize2 = params.popupSize) !== null && _params$popupSize2 !== void 0 && _params$popupSize2.height ? params.popupSize.height + 76 : undefined;
18
+ var config = {
19
+ fullscreen: false,
20
+ maximizable: false,
21
+ trafficLightPosition: {
22
+ x: 10,
23
+ y: 60
24
+ },
25
+ width: width,
26
+ height: height,
27
+ title: params.name,
28
+ resizable: false
29
+ };
30
+ (0, _useElectron.useElectronDialog)({
31
+ config: config,
32
+ dialogKey: _constant.FcrUIDialogKey.WIDGET,
33
+ dialogId: dialogId,
34
+ children: children,
35
+ hasCustomShadow: false
36
+ });
37
+ return null;
38
+ };
@@ -0,0 +1,14 @@
1
+ export declare function usePopoverWatcher({ wrapperClass, offset, onAdded, onRemoved, }: {
2
+ wrapperClass: string;
3
+ onAdded?: () => void;
4
+ onRemoved?: () => void;
5
+ offset?: {
6
+ vertical: number;
7
+ horizontal: number;
8
+ };
9
+ }): {
10
+ watcher: ({ browserWindow, newRendererWindow, }: {
11
+ browserWindow?: Electron.BrowserWindow;
12
+ newRendererWindow?: Window;
13
+ }) => void;
14
+ };
@@ -0,0 +1,110 @@
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.usePopoverWatcher = usePopoverWatcher;
8
+ require("core-js/modules/es.array.for-each.js");
9
+ require("core-js/modules/es.object.to-string.js");
10
+ require("core-js/modules/esnext.iterator.constructor.js");
11
+ require("core-js/modules/esnext.iterator.for-each.js");
12
+ require("core-js/modules/web.dom-collections.for-each.js");
13
+ var _lodash = require("lodash");
14
+ var _react = require("react");
15
+ function usePopoverWatcher(_ref) {
16
+ var wrapperClass = _ref.wrapperClass,
17
+ _ref$offset = _ref.offset,
18
+ offset = _ref$offset === void 0 ? {
19
+ vertical: 0,
20
+ horizontal: 0
21
+ } : _ref$offset,
22
+ onAdded = _ref.onAdded,
23
+ onRemoved = _ref.onRemoved;
24
+ var observerRef = (0, _react.useRef)();
25
+ var wrapperDomRef = (0, _react.useRef)();
26
+ function watcher(_ref2) {
27
+ var browserWindow = _ref2.browserWindow,
28
+ newRendererWindow = _ref2.newRendererWindow;
29
+ if (!newRendererWindow || !browserWindow) {
30
+ return;
31
+ }
32
+ if (observerRef.current) observerRef.current.disconnect();
33
+ var body = newRendererWindow.document.body;
34
+ var browserWindowBounds = browserWindow.getBounds();
35
+ var threshold = calculateThreshold(browserWindow, body);
36
+ browserWindow.addListener(
37
+ // @ts-ignore
38
+ 'custom-move', (0, _lodash.debounce)(function () {
39
+ threshold = calculateThreshold(browserWindow, body);
40
+ }, 200));
41
+ observerRef.current = new MutationObserver(function (mutationsList) {
42
+ var popover = body.querySelector('.fcr-popover');
43
+ wrapperDomRef.current = body.querySelector(wrapperClass);
44
+ var wrapper = wrapperDomRef.current;
45
+ mutationsList.forEach(function (mutation) {
46
+ if (mutation.type === 'childList') {
47
+ mutation.addedNodes.forEach(function (node) {
48
+ if (node.nodeType === Node.ELEMENT_NODE && node.contains(popover)) {
49
+ if (popover) {
50
+ var wrapperHeight = wrapper.offsetHeight,
51
+ wrapperWidth = wrapper.offsetWidth;
52
+ var offsetHeight = popover.offsetHeight,
53
+ popoverWidth = popover.offsetWidth,
54
+ offsetTop = popover.offsetTop,
55
+ offsetLeft = popover.offsetLeft;
56
+ // 如果 popover 展开,根据 popover 的尺寸调整窗口的尺寸可以正好容纳 popover
57
+ browserWindow.setBounds({
58
+ height: wrapperHeight + offsetHeight + offset.vertical,
59
+ width: wrapperWidth + offset.horizontal,
60
+ y: threshold.placement === 'top' ? threshold.y - offsetHeight : threshold.y
61
+ });
62
+ // if (wrapper) {
63
+ // const rect = wrapper.getBoundingClientRect();
64
+ // wrapper.setAttribute('style', `height: ${rect.height}px;width: ${rect.width}px`);
65
+ // // popover.setAttribute('style', `left: ${offsetLeft}px;top: ${offsetTop}px`);
66
+ // }
67
+ onAdded === null || onAdded === void 0 || onAdded();
68
+ }
69
+ }
70
+ });
71
+ mutation.removedNodes.forEach(function (node) {
72
+ var _classList;
73
+ if ((_classList = node.classList) !== null && _classList !== void 0 && _classList.contains('fcr-popover')) {
74
+ onRemoved === null || onRemoved === void 0 || onRemoved();
75
+ var width = browserWindowBounds.width,
76
+ height = browserWindowBounds.height;
77
+ browserWindow.setBounds({
78
+ width: width,
79
+ height: height,
80
+ y: threshold.y
81
+ });
82
+ browserWindow.setResizable(true);
83
+ }
84
+ });
85
+ }
86
+ });
87
+ });
88
+ observerRef.current.observe(newRendererWindow.document.body, {
89
+ childList: true,
90
+ subtree: true
91
+ });
92
+ }
93
+ return {
94
+ watcher: watcher
95
+ };
96
+ }
97
+ function calculateThreshold(browserWindow, body) {
98
+ var _body$querySelector;
99
+ var bounds = browserWindow.getBounds();
100
+ var nearDisplay = window.runtime.screen.getDisplayNearestPoint(bounds);
101
+ var nearDisplayBounds = nearDisplay.bounds;
102
+ var middleThreshold = nearDisplayBounds.height / 2;
103
+ var placement = bounds.y > middleThreshold ? 'top' : 'bottom';
104
+ (_body$querySelector = body.querySelector('#root')) === null || _body$querySelector === void 0 || _body$querySelector.setAttribute('style', "display: flex;align-items: ".concat(placement === 'top' ? 'flex-end' : 'flex-start'));
105
+ return {
106
+ placement: placement,
107
+ x: bounds.x,
108
+ y: bounds.y
109
+ };
110
+ }
@@ -0,0 +1,28 @@
1
+ import { FcrUIDialogHooksProps } from '../type';
2
+ export declare const DialogInstanceContext: import("react").Context<{
3
+ browserWindow: Electron.BrowserWindow;
4
+ newRendererWindow: Window;
5
+ resizable: boolean;
6
+ baseUrl: string;
7
+ closeDialog: () => void;
8
+ /**
9
+ * @param continueClose - 继续关闭窗口的回调函数
10
+ */
11
+ continueClose: () => void;
12
+ /**
13
+ * 窗口关闭时是否已被拦截,此值只反应状态,不会影响继续关闭的逻辑
14
+ */
15
+ interceptedClose: boolean;
16
+ /**
17
+ * 重置被拦截状态
18
+ */
19
+ setInterceptedClose: (interceptedClose: boolean) => void;
20
+ }>;
21
+ export declare const shadowOffset: number;
22
+ export declare const enterFullScreenHandler: () => void;
23
+ export declare const leaveFullScreenHandler: () => void;
24
+ export declare function useElectronDialog(props: FcrUIDialogHooksProps): {
25
+ store: import("../store").default;
26
+ browserWindow: Electron.BrowserWindow | undefined;
27
+ newRendererWindow: Window | undefined;
28
+ };