fcr-ui-scene 3.7.5 → 3.7.7-rc.1
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.
- package/lib/creator/index.js +15 -7
- package/lib/creator/provider-initializer.browser.js +13 -4
- package/lib/creator/provider-initializer.electron.js +22 -10
- package/lib/electron/bootstrap-sdk.js +90 -6
- package/lib/electron/injections.d.ts +1 -0
- package/lib/electron/injections.js +5 -1
- package/lib/electron/ipc/type.d.ts +1 -0
- package/lib/electron/ipc/type.js +1 -0
- package/lib/electron/preload.js +1 -0
- package/lib/electron/sdk-helper.d.ts +3 -0
- package/lib/electron/sdk-helper.js +53 -19
- package/lib/electron/struct.d.ts +7 -1
- package/lib/electron/struct.js +8 -1
- package/lib/electron/until.d.ts +7 -1
- package/lib/electron/until.js +11 -2
- package/lib/fragments/annotation/store.js +2 -0
- package/lib/modules/action-bar/components/item/index.js +1 -0
- package/lib/modules/action-bar/components/more/poppover-content.js +1 -1
- package/lib/modules/action-bar/components/screen-share/index.browser.js +4 -2
- package/lib/modules/action-bar/components/screen-share/index.electron.js +4 -2
- package/lib/modules/action-bar/components/screen-share/submenu.d.ts +5 -1
- package/lib/modules/action-bar/components/screen-share/submenu.js +12 -9
- package/lib/modules/audio-stream/index.js +4 -2
- package/lib/modules/chat/index.css +8 -0
- package/lib/modules/chat/view.js +7 -1
- package/lib/modules/components/control-bar/components/switch-theme/index.css +2 -0
- package/lib/modules/components/control-bar/components/switch-theme/index.js +5 -7
- package/lib/modules/components/control-bar/index.css +0 -2
- package/lib/modules/components/control-bar/index.d.ts +1 -0
- package/lib/modules/components/control-bar/index.js +51 -15
- package/lib/modules/components/leave-meeting/main-scene/store.d.ts +3 -0
- package/lib/modules/components/leave-meeting/main-scene/store.js +12 -0
- package/lib/modules/components/leave-meeting/store.base.d.ts +4 -3
- package/lib/modules/components/leave-meeting/store.base.js +0 -10
- package/lib/modules/components/leave-meeting/waiting-scene/store.d.ts +5 -1
- package/lib/modules/components/leave-meeting/waiting-scene/store.js +17 -3
- package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +1 -2
- package/lib/modules/components/member-window/components/video-player/components/local-video-player-with-zoom.js +4 -3
- package/lib/modules/components/member-window/components/video-player/components/zoomable-container.js +18 -32
- package/lib/modules/components/toolbar/components/capture-tool/index.d.ts +0 -1
- package/lib/modules/components/toolbar/components/capture-tool/index.js +1 -2
- package/lib/modules/components/toolbar/components/vertical-frame/index.js +2 -2
- package/lib/modules/components/toolbar/hooks/use-resize-visible.js +45 -32
- package/lib/modules/components/toolbar/index.js +6 -24
- package/lib/modules/control-bar/components/boundary-detector.d.ts +7 -5
- package/lib/modules/control-bar/components/boundary-detector.js +22 -2
- package/lib/modules/control-bar/components/cloud-recording-buttons.d.ts +3 -0
- package/lib/modules/control-bar/components/cloud-recording-buttons.js +68 -3
- package/lib/modules/control-bar/hooks.js +2 -1
- package/lib/modules/control-bar/store.d.ts +1 -0
- package/lib/modules/control-bar/store.js +21 -7
- package/lib/modules/control-bar/view.js +96 -28
- package/lib/modules/dialog/components/confirm/index.js +6 -24
- package/lib/modules/dialog/components/dialog-container/component/body.d.ts +1 -0
- package/lib/modules/dialog/components/dialog-container/component/body.js +3 -2
- package/lib/modules/dialog/components/dialog-container/index.css +8 -1
- package/lib/modules/dialog/components/dialog-container/index.d.ts +1 -0
- package/lib/modules/dialog/components/dialog-container/index.js +4 -1
- package/lib/modules/dialog/components/normal-window/index.d.ts +1 -0
- package/lib/modules/dialog/components/normal-window/index.js +3 -1
- package/lib/modules/dialog/dialogs/chat/index.js +2 -1
- package/lib/modules/dialog/dialogs/control-bar-leave-meeting/index.js +0 -1
- package/lib/modules/dialog/dialogs/device-setting/index.d.ts +1 -0
- package/lib/modules/dialog/dialogs/device-setting/index.js +4 -2
- package/lib/modules/dialog/dialogs/end-meeting/index.d.ts +1 -0
- package/lib/modules/dialog/dialogs/end-meeting/index.js +2 -1
- package/lib/modules/dialog/dialogs/invite/index.d.ts +1 -0
- package/lib/modules/dialog/dialogs/invite/index.js +2 -1
- package/lib/modules/dialog/dialogs/mute-all/index.d.ts +1 -0
- package/lib/modules/dialog/dialogs/mute-all/index.js +2 -1
- package/lib/modules/dialog/dialogs/participant/index.js +9 -2
- package/lib/modules/dialog/dialogs/share-screen-selection/index.js +1 -1
- package/lib/modules/dialog/dialogs/sub-window/index.js +1 -7
- package/lib/modules/dialog/dialogs/toast/index.d.ts +1 -1
- package/lib/modules/dialog/dialogs/toast/index.js +1 -1
- package/lib/modules/dialog/dialogs/video-window/index.d.ts +4 -1
- package/lib/modules/dialog/dialogs/video-window/index.js +5 -2
- package/lib/modules/dialog/dialogs/widget/index.d.ts +2 -0
- package/lib/modules/dialog/dialogs/widget/index.js +11 -3
- package/lib/modules/dialog/index.css +6 -2
- package/lib/modules/dialog/level-config.d.ts +1 -0
- package/lib/modules/dialog/level-config.js +2 -1
- package/lib/modules/dialog/store.base.d.ts +2 -0
- package/lib/modules/dialog/store.browser.d.ts +2 -0
- package/lib/modules/dialog/store.browser.js +6 -1
- package/lib/modules/dialog/store.electron.d.ts +9 -1
- package/lib/modules/dialog/store.electron.js +64 -4
- package/lib/modules/dialog/type.d.ts +3 -0
- package/lib/modules/event-toast/index.css +0 -1
- package/lib/modules/event-toast/index.js +1 -0
- package/lib/modules/event-toast/store.base.d.ts +2 -0
- package/lib/modules/event-toast/store.base.js +40 -21
- package/lib/modules/event-toast/store.electron.d.ts +2 -0
- package/lib/modules/event-toast/store.electron.js +19 -9
- package/lib/modules/layout/components/CommonVideoRenderer.js +1 -0
- package/lib/modules/layout/store.electron.js +1 -1
- package/lib/modules/participant/components/confirm-input/index.js +1 -1
- package/lib/modules/participant/store.base.d.ts +30 -3
- package/lib/modules/participant/store.base.js +249 -96
- package/lib/modules/participant/store.browser.js +4 -3
- package/lib/modules/participant/store.electron.js +5 -3
- package/lib/modules/pc-audio-connect/main-scene/store.js +1 -0
- package/lib/modules/secondary-window/store.d.ts +1 -1
- package/lib/modules/secondary-window/store.js +14 -22
- package/lib/modules/secondary-window/view.js +10 -10
- package/lib/modules/setting/audio-settings/audio-settings.js +0 -17
- package/lib/modules/setting/index.js +1 -1
- package/lib/modules/setting/state/index.js +1 -1
- package/lib/modules/setting/store.base.d.ts +5 -2
- package/lib/modules/setting/store.base.js +72 -26
- package/lib/modules/share-screen/components/selection/index.css +4 -0
- package/lib/modules/share-screen/store.base.js +17 -4
- package/lib/modules/share-screen/store.electron.js +5 -2
- package/lib/modules/state-bar/layout-config.js +6 -0
- package/lib/modules/state-bar/main-scene/store.base.d.ts +2 -0
- package/lib/modules/state-bar/main-scene/store.base.js +6 -0
- package/lib/modules/video-window/index.css +6 -0
- package/lib/modules/video-window/popover-watcher.d.ts +5 -10
- package/lib/modules/video-window/popover-watcher.js +34 -31
- package/lib/modules/video-window/store.d.ts +32 -5
- package/lib/modules/video-window/store.js +156 -63
- package/lib/modules/video-window/view.js +50 -1
- package/lib/modules/whiteboard/index.d.ts +1 -1
- package/lib/modules/whiteboard/index.js +1 -1
- package/lib/modules/whiteboard/store.d.ts +3 -0
- package/lib/modules/whiteboard/store.js +31 -2
- package/lib/modules/whiteboard/view.js +10 -1
- package/lib/modules/widget/sdk.js +1 -1
- package/lib/modules/widget/store.base.d.ts +1 -0
- package/lib/modules/widget/store.browser.d.ts +1 -0
- package/lib/modules/widget/store.browser.js +60 -4
- package/lib/modules/widget/store.electron.d.ts +1 -0
- package/lib/modules/widget/store.electron.js +59 -2
- package/lib/modules/widget/type.d.ts +3 -2
- package/lib/modules/widget/view.js +9 -4
- package/lib/modules/widget/web-widget.d.ts +2 -1
- package/lib/modules/widget/web-widget.js +7 -5
- package/lib/object-manager.d.ts +2 -2
- package/lib/object-manager.js +1 -1
- package/lib/providers/board-share/bar-control/base.d.ts +1 -1
- package/lib/providers/board-share/bar-control/base.js +37 -28
- package/lib/providers/board-share/bar-control/electron.d.ts +1 -1
- package/lib/providers/board-share/bar-control/electron.js +19 -16
- package/lib/providers/board-share/provider.base.d.ts +8 -1
- package/lib/providers/board-share/provider.base.js +12 -2
- package/lib/providers/board-share/provider.browser.d.ts +3 -0
- package/lib/providers/board-share/provider.browser.js +21 -3
- package/lib/providers/device-provider.d.ts +16 -2
- package/lib/providers/device-provider.js +53 -60
- package/lib/providers/dialog/provider.base.d.ts +1 -0
- package/lib/providers/dialog/provider.browser.d.ts +1 -0
- package/lib/providers/dialog/provider.browser.js +7 -2
- package/lib/providers/dialog/provider.electron.d.ts +4 -1
- package/lib/providers/dialog/provider.electron.js +94 -2
- package/lib/providers/dialog/type.d.ts +7 -0
- package/lib/providers/mouse-detect/provider.d.ts +9 -1
- package/lib/providers/mouse-detect/provider.js +119 -5
- package/lib/providers/mouse-detect/struct.d.ts +2 -1
- package/lib/providers/mouse-detect/struct.js +1 -0
- package/lib/providers/mouse-detect/type.d.ts +2 -0
- package/lib/providers/multi-display-provider.d.ts +3 -5
- package/lib/providers/multi-display-provider.js +0 -9
- package/lib/providers/renderer-provider.d.ts +5 -0
- package/lib/providers/renderer-provider.js +5 -0
- package/lib/providers/room-provider/room-provider.d.ts +4 -14
- package/lib/providers/room-provider/room-provider.js +28 -39
- package/lib/providers/screen-share/provider.base.js +3 -11
- package/lib/providers/screen-share/provider.browser.js +23 -14
- package/lib/providers/screen-share/provider.electron.d.ts +1 -0
- package/lib/providers/screen-share/provider.electron.js +44 -17
- package/lib/providers/screen-share/strategy/browser.js +16 -13
- package/lib/providers/screen-share/strategy/electron.d.ts +2 -2
- package/lib/providers/screen-share/strategy/electron.js +15 -10
- package/lib/providers/screen-share/strategy/type.d.ts +6 -0
- package/lib/providers/screen-share/stream-state-sync.d.ts +3 -2
- package/lib/providers/screen-share/stream-state-sync.js +26 -16
- package/lib/providers/screen-share/struct.d.ts +9 -7
- package/lib/providers/screen-share/struct.js +11 -8
- package/lib/providers/screen-share/type.d.ts +7 -1
- package/lib/providers/widget-provider.d.ts +5 -3
- package/lib/providers/widget-provider.js +12 -18
- package/lib/providers/window/main-window.d.ts +0 -5
- package/lib/providers/window/main-window.js +3 -44
- package/lib/providers/window/renderer-window.d.ts +1 -0
- package/lib/providers/window/renderer-window.js +13 -2
- package/lib/runtime.d.ts +1 -0
- package/lib/runtime.js +2 -1
- package/lib/scenes/main-scene.js +5 -0
- package/lib/shared-context/board-context.d.ts +2 -0
- package/lib/shared-context/board-context.js +2 -0
- package/lib/shared-data/member-data.d.ts +0 -8
- package/lib/shared-data/member-data.js +26 -78
- package/lib/shared-data/widget-data.d.ts +13 -0
- package/lib/shared-data/widget-data.js +50 -0
- package/lib/translations/enUS.d.ts +0 -2
- package/lib/translations/enUS.js +4 -6
- package/lib/translations/zhCN.d.ts +0 -2
- package/lib/translations/zhCN.js +4 -6
- package/lib/type.d.ts +5 -0
- package/lib/ui-scene.d.ts +2 -4
- package/lib/ui-scene.js +31 -42
- package/lib/utilities/constant.d.ts +3 -1
- package/lib/utilities/constant.js +5 -2
- package/lib/utilities/default-config.d.ts +18 -0
- package/lib/utilities/default-config.js +19 -1
- package/lib/utilities/focus-helper.js +10 -3
- package/lib/utilities/logger.js +3 -1
- package/lib/utilities/renderer.d.ts +1 -0
- package/lib/utilities/renderer.js +7 -1
- package/package.json +5 -5
- package/public/index.html +35 -4
- package/lib/modules/action-bar/index.d.ts +0 -17
- package/lib/modules/action-bar/index.js +0 -63
- package/lib/modules/action-bar/store.base.d.ts +0 -15
- package/lib/modules/action-bar/store.base.js +0 -117
- package/lib/modules/action-bar/view.d.ts +0 -5
- package/lib/modules/action-bar/view.js +0 -112
- package/lib/modules/action-bar/waiting-scene/store.d.ts +0 -6
- package/lib/modules/action-bar/waiting-scene/store.js +0 -91
- package/lib/modules/control-bar/types.d.ts +0 -31
- package/lib/modules/control-bar/types.js +0 -6
- package/lib/modules/dialog/dialogs/pre-setting/index.css +0 -26
- package/lib/modules/dialog/dialogs/pre-setting/index.d.ts +0 -6
- package/lib/modules/dialog/dialogs/pre-setting/index.js +0 -57
- package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +0 -14
- package/lib/modules/dialog/hooks/use-popover-watcher.js +0 -112
- package/lib/modules/event-toast/store.d.ts +0 -23
- package/lib/modules/event-toast/store.js +0 -187
- package/lib/modules/setting/common/advance-link.d.ts +0 -3
- package/lib/modules/setting/common/advance-link.js +0 -27
- package/lib/modules/setting/common/index.css +0 -26
- package/lib/modules/setting/common/useNamespace.d.ts +0 -15
- package/lib/modules/setting/common/useNamespace.js +0 -66
- package/lib/modules/widget/store.d.ts +0 -17
- package/lib/modules/widget/store.js +0 -71
- package/lib/providers/board-share/bar-control.d.ts +0 -51
- package/lib/providers/board-share/bar-control.js +0 -390
- package/lib/providers/board-share/provider.d.ts +0 -66
- package/lib/providers/board-share/provider.js +0 -456
- package/lib/providers/screen-share/provider.d.ts +0 -69
- package/lib/providers/screen-share/provider.js +0 -615
- package/lib/providers/whiteboard-provider.d.ts +0 -26
- package/lib/providers/whiteboard-provider.js +0 -131
- package/lib/providers/window/browser-window-proxy.d.ts +0 -0
- package/lib/providers/window/browser-window-proxy.js +0 -1
- package/lib/providers/window/ipc-protocol.d.ts +0 -0
- package/lib/providers/window/ipc-protocol.js +0 -1
- package/lib/providers/window/main-process-handler.d.ts +0 -0
- package/lib/providers/window/main-process-handler.js +0 -1
- package/lib/providers/window/main-process-integration.d.ts +0 -0
- package/lib/providers/window/main-process-integration.js +0 -1
- package/lib/shared-data/whiteboard-data.d.ts +0 -70
- package/lib/shared-data/whiteboard-data.js +0 -342
- package/lib/utilities/ipc-protocol.d.ts +0 -91
- package/lib/utilities/ipc-protocol.js +0 -61
|
@@ -76,10 +76,16 @@ var StateBarMainSceneStoreBase = exports.StateBarMainSceneStoreBase = /*#__PURE_
|
|
|
76
76
|
_this._sharedMemberDataSource = args.objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_MEMBER_DATA_SOURCE);
|
|
77
77
|
_this._abilityProvider = args.objectManager.getObject(_objectManager.FcrUIObjectKeys.P_ABILITY_PROVIDER);
|
|
78
78
|
_this._sharedVideoWindowDataSource = args.objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_VIDEO_WINDOW_DATA_SOURCE);
|
|
79
|
+
_this._screenShareProvider = args.objectManager.getObject(_objectManager.FcrUIObjectKeys.P_SCREEN_SHARE_PROVIDER);
|
|
79
80
|
return _this;
|
|
80
81
|
}
|
|
81
82
|
(0, _inherits2["default"])(StateBarMainSceneStoreBase, _StateBarStoreBase);
|
|
82
83
|
return (0, _createClass2["default"])(StateBarMainSceneStoreBase, [{
|
|
84
|
+
key: "isSharingScreen",
|
|
85
|
+
get: function get() {
|
|
86
|
+
return this._screenShareProvider.isLocalUserScreenSharing || this._screenShareProvider.isRemoteUserScreenSharing;
|
|
87
|
+
}
|
|
88
|
+
}, {
|
|
83
89
|
key: "localUser",
|
|
84
90
|
get: function get() {
|
|
85
91
|
return this._sharedMemberDataSource.localUser;
|
|
@@ -13,3 +13,9 @@
|
|
|
13
13
|
border-radius: 0 !important;
|
|
14
14
|
background: transparent !important;
|
|
15
15
|
}
|
|
16
|
+
|
|
17
|
+
/* 供 popover-watcher 使用 */
|
|
18
|
+
#fcr-video-window-diaolog-wrapper_popover-align-right {
|
|
19
|
+
--video-window-popover-left: 0px;
|
|
20
|
+
left: var(--video-window-popover-left) !important;
|
|
21
|
+
}
|
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
import { FcrVideoWindowPreviewType } from './type';
|
|
2
1
|
/**
|
|
3
2
|
* popoverWatcher 监听 popover 的出现和消失,并通过回调通知外部如何调整窗口
|
|
4
3
|
*
|
|
5
4
|
*/
|
|
6
|
-
export declare function usePopoverWatcher({ rootDom,
|
|
5
|
+
export declare function usePopoverWatcher({ rootDom, setVideoWindowSize, resetVideoWindowSize, }: {
|
|
7
6
|
rootDom: HTMLElement | null;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
width: number;
|
|
12
|
-
height: number;
|
|
13
|
-
}) => void;
|
|
14
|
-
onResetSize: () => void;
|
|
15
|
-
onSetResizable: (resizable: boolean) => void;
|
|
7
|
+
setVideoWindowSize: (width: number, height: number) => {
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
16
10
|
};
|
|
11
|
+
resetVideoWindowSize: () => void;
|
|
17
12
|
}): void;
|
|
@@ -5,66 +5,69 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.usePopoverWatcher = usePopoverWatcher;
|
|
8
|
-
require("core-js/modules/es.array.concat.js");
|
|
9
8
|
require("core-js/modules/es.array.for-each.js");
|
|
10
9
|
require("core-js/modules/es.object.to-string.js");
|
|
11
10
|
require("core-js/modules/esnext.iterator.constructor.js");
|
|
12
11
|
require("core-js/modules/esnext.iterator.for-each.js");
|
|
13
12
|
require("core-js/modules/web.dom-collections.for-each.js");
|
|
14
13
|
var _react = require("react");
|
|
15
|
-
var
|
|
14
|
+
var HEAD_HEIGHT_OFFSET = 150;
|
|
15
|
+
var WIDTH_RIGHT_OFFSET = 30;
|
|
16
|
+
|
|
16
17
|
/**
|
|
17
18
|
* popoverWatcher 监听 popover 的出现和消失,并通过回调通知外部如何调整窗口
|
|
18
19
|
*
|
|
19
20
|
*/
|
|
20
21
|
function usePopoverWatcher(_ref) {
|
|
21
22
|
var rootDom = _ref.rootDom,
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
setVideoWindowSize = _ref.setVideoWindowSize,
|
|
24
|
+
resetVideoWindowSize = _ref.resetVideoWindowSize;
|
|
24
25
|
(0, _react.useEffect)(function () {
|
|
25
26
|
if (rootDom === null) return;
|
|
26
|
-
var
|
|
27
|
-
var
|
|
27
|
+
var dialogWrapper = rootDom;
|
|
28
|
+
var body = dialogWrapper.ownerDocument.body;
|
|
29
|
+
var popoverClassName = 'fcr-popover';
|
|
30
|
+
var isPopoverOpened = false;
|
|
28
31
|
var observer = new MutationObserver(function (mutationsList) {
|
|
29
|
-
var popover =
|
|
30
|
-
var wrapper = rootDom.querySelector('.fcr-video-window-dialog-wrapper');
|
|
32
|
+
var popover = body.querySelector(".".concat(popoverClassName));
|
|
31
33
|
mutationsList.forEach(function (mutation) {
|
|
32
34
|
if (mutation.type === 'childList') {
|
|
33
|
-
mutation.
|
|
34
|
-
if (node.nodeType === Node.ELEMENT_NODE && node.contains(
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
wrapperWidth = wrapper.offsetWidth;
|
|
38
|
-
var popoverHeight = popover.offsetHeight,
|
|
39
|
-
popoverWidth = popover.offsetWidth;
|
|
40
|
-
// 通过回调通知外部调整窗口尺寸
|
|
41
|
-
callbacks.onResize({
|
|
42
|
-
height: Math.max(wrapperHeight, popoverHeight + HEAD_HEIGHT_OFFSET),
|
|
43
|
-
width: wrapperWidth + popoverWidth - WIDTH_RIGHT_OFFSET
|
|
44
|
-
});
|
|
45
|
-
var rect = wrapper.getBoundingClientRect();
|
|
46
|
-
wrapper.setAttribute('style', "height: ".concat(rect.height, "px;width: ").concat(rect.width, "px"));
|
|
47
|
-
}
|
|
35
|
+
mutation.removedNodes.forEach(function (node) {
|
|
36
|
+
if (node.nodeType === Node.ELEMENT_NODE && node.classList.contains(popoverClassName)) {
|
|
37
|
+
isPopoverOpened = false;
|
|
38
|
+
resetVideoWindowSize();
|
|
48
39
|
}
|
|
49
40
|
});
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
41
|
+
if (!popover) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
mutation.addedNodes.forEach(function (node) {
|
|
45
|
+
if (node.nodeType === Node.ELEMENT_NODE && node.contains(popover) && !isPopoverOpened) {
|
|
46
|
+
isPopoverOpened = true;
|
|
47
|
+
var width = popover.offsetWidth + dialogWrapper.offsetWidth - WIDTH_RIGHT_OFFSET;
|
|
48
|
+
var height = Math.max(popover.offsetHeight + HEAD_HEIGHT_OFFSET, dialogWrapper.offsetHeight);
|
|
49
|
+
var _setVideoWindowSize = setVideoWindowSize(width, height),
|
|
50
|
+
videoWidth = _setVideoWindowSize.width;
|
|
51
|
+
if (videoWidth < width) {
|
|
52
|
+
// 说明右侧的宽度不够放下 popover,此时 popover 会自动翻转到左侧。
|
|
53
|
+
// 需要把手动调整左侧的距离,使其贴靠在窗口的最右侧。
|
|
54
|
+
|
|
55
|
+
// popover 会自动计算并设置 style 的 left 值,此处如果直接设置 left 会被 popover 内覆盖。
|
|
56
|
+
// 所以通过设置 css 变量的方式传递给 fcr-video-window-diaolog-wrapper_popover-align-right 使用。
|
|
57
|
+
popover.style.setProperty('--video-window-popover-left', "".concat(videoWidth - popover.offsetWidth, "px"));
|
|
58
|
+
popover.id = 'fcr-video-window-diaolog-wrapper_popover-align-right';
|
|
56
59
|
}
|
|
57
60
|
}
|
|
58
61
|
});
|
|
59
62
|
}
|
|
60
63
|
});
|
|
61
64
|
});
|
|
62
|
-
observer.observe(
|
|
65
|
+
observer.observe(dialogWrapper.ownerDocument.body, {
|
|
63
66
|
childList: true,
|
|
64
67
|
subtree: true
|
|
65
68
|
});
|
|
66
69
|
return function () {
|
|
67
70
|
observer.disconnect();
|
|
68
71
|
};
|
|
69
|
-
}, [rootDom
|
|
72
|
+
}, [rootDom]);
|
|
70
73
|
}
|
|
@@ -19,7 +19,9 @@ export default class VideoWindowStore {
|
|
|
19
19
|
private _dialogProvider;
|
|
20
20
|
private _videoRenderContext;
|
|
21
21
|
private _dialogObserver;
|
|
22
|
-
private
|
|
22
|
+
private _windowOpened;
|
|
23
|
+
private _isWindowApiResize;
|
|
24
|
+
private accessor _videoWindowSmallTypeStyleSize;
|
|
23
25
|
accessor userVolumeMap: Map<string, number>;
|
|
24
26
|
accessor wrapperHovering: boolean;
|
|
25
27
|
accessor videoWindowPreviewType: FcrVideoWindowPreviewType;
|
|
@@ -33,10 +35,13 @@ export default class VideoWindowStore {
|
|
|
33
35
|
get hasPinnedStream(): boolean;
|
|
34
36
|
get interpreterUserList(): import("fcr-core/lib/room-control/interpreter-control/types").FcrInterpreterUserInfo[] | null;
|
|
35
37
|
get isInterpreterEnabled(): boolean;
|
|
36
|
-
get shouldHaveListView(): boolean;
|
|
37
38
|
get localUserRole(): FcrUserRole;
|
|
38
39
|
get deviceMicrophoneEnabled(): boolean;
|
|
39
40
|
get deviceCameraEnabled(): boolean;
|
|
41
|
+
get videoWindowStyleSize(): {
|
|
42
|
+
width: number;
|
|
43
|
+
height: number;
|
|
44
|
+
};
|
|
40
45
|
constructor({ objectManager }: VideoWindowStoreArgs);
|
|
41
46
|
setVideoOrientation(): void;
|
|
42
47
|
release(): void;
|
|
@@ -53,9 +58,31 @@ export default class VideoWindowStore {
|
|
|
53
58
|
setVideoWindowPreviewType(type: FcrVideoWindowPreviewType): void;
|
|
54
59
|
setWrapperHover(hover: boolean): void;
|
|
55
60
|
getAllowedOperations(targetRole: FcrUserRole, isSelf: boolean): string[];
|
|
56
|
-
|
|
61
|
+
handleVideowWindowResize(size: {
|
|
62
|
+
width: number;
|
|
63
|
+
height: number;
|
|
64
|
+
}): void;
|
|
65
|
+
/**
|
|
66
|
+
* @description 如果传入的宽度超过了允许的最大宽度, 则使用允许的最大宽度设置窗口宽度,以避免窗口超出显示器的边缘。
|
|
67
|
+
* @param width 期望设置的视频窗宽度
|
|
68
|
+
* @param height 视频窗高度
|
|
69
|
+
* @returns 实际设置的视频窗尺寸
|
|
70
|
+
*/
|
|
71
|
+
setVideoWindowSize(width: number, height: number): {
|
|
72
|
+
width: number;
|
|
73
|
+
height: number;
|
|
74
|
+
};
|
|
75
|
+
resetVideoWindowSize(): void;
|
|
76
|
+
/**
|
|
77
|
+
* 计算 video-window 窗口允许设置的最大宽度,窗口左上角距离屏幕右侧边缘的距离和当前的窗口内容宽度中,选择最大值作为允许的最大宽度(不能超过窗口最大化的宽度)
|
|
78
|
+
* @param videoWindowX 视频窗左上角 x 坐标
|
|
79
|
+
* @param videoWindowStyleWidth 视频窗内容的宽度
|
|
80
|
+
* @returns 允许设置的最大宽度
|
|
81
|
+
*/
|
|
82
|
+
private _computedMaxAllowedWidth;
|
|
83
|
+
private _setVideoWindowDialogSize;
|
|
57
84
|
private _onAudioVolumeUpdated;
|
|
58
|
-
private
|
|
59
|
-
private
|
|
85
|
+
private _handleDialogOpen;
|
|
86
|
+
private _handleDialogClose;
|
|
60
87
|
}
|
|
61
88
|
export declare const StoreContext: import("react").Context<VideoWindowStore>;
|
|
@@ -70,7 +70,7 @@ var _react = require("react");
|
|
|
70
70
|
var _type3 = require("../../type");
|
|
71
71
|
var _videoWindow = require("../dialog/dialogs/video-window");
|
|
72
72
|
var _VideoWindowStore;
|
|
73
|
-
var _initProto, _init_userVolumeMap, _init_wrapperHovering, _init_videoWindowPreviewType, _setVideoWindowPreviewTypeDecs, _setWrapperHoverDecs, _getAllowedOperationsDecs, _onAudioVolumeUpdatedDecs, _ref;
|
|
73
|
+
var _initProto, _init__videoWindowSmallTypeStyleSize, _init_userVolumeMap, _init_wrapperHovering, _init_videoWindowPreviewType, _setVideoWindowPreviewTypeDecs, _setWrapperHoverDecs, _getAllowedOperationsDecs, _handleVideowWindowResizeDecs, _onAudioVolumeUpdatedDecs, _ref;
|
|
74
74
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
|
75
75
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
|
76
76
|
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
|
@@ -84,7 +84,8 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
|
|
|
84
84
|
var _A = /*#__PURE__*/new WeakMap();
|
|
85
85
|
var _B = /*#__PURE__*/new WeakMap();
|
|
86
86
|
var _C = /*#__PURE__*/new WeakMap();
|
|
87
|
-
|
|
87
|
+
var _D = /*#__PURE__*/new WeakMap();
|
|
88
|
+
_ref = (_setVideoWindowPreviewTypeDecs = [_mobx.action, _mobx.action.bound], _setWrapperHoverDecs = [_mobx.action, _mobx.action.bound], _getAllowedOperationsDecs = [_mobx.action, _mobx.action.bound], _handleVideowWindowResizeDecs = [_mobx.action, _mobx.action.bound], _onAudioVolumeUpdatedDecs = [_mobx.action, _mobx.action.bound], "_subscriptions");
|
|
88
89
|
var VideoWindowStore = exports["default"] = /*#__PURE__*/function () {
|
|
89
90
|
function VideoWindowStore(_ref2) {
|
|
90
91
|
var _this = this;
|
|
@@ -92,20 +93,18 @@ var VideoWindowStore = exports["default"] = /*#__PURE__*/function () {
|
|
|
92
93
|
(0, _classCallCheck2["default"])(this, VideoWindowStore);
|
|
93
94
|
(0, _defineProperty2["default"])(this, _ref, (_initProto(this), []));
|
|
94
95
|
(0, _defineProperty2["default"])(this, "_dialogObserver", {
|
|
95
|
-
onDialogOpen:
|
|
96
|
-
|
|
97
|
-
},
|
|
98
|
-
onDialogClose: function onDialogClose(dialogKey) {
|
|
99
|
-
return _this._handleDialogSwitch(dialogKey, false);
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
(0, _defineProperty2["default"])(this, "_sharedVideoWindowDataSourceObserver", {
|
|
103
|
-
onFoldListAdded: this._handleFoldListUpdated,
|
|
104
|
-
onFoldListRemoved: this._handleFoldListUpdated
|
|
96
|
+
onDialogOpen: this._handleDialogOpen,
|
|
97
|
+
onDialogClose: this._handleDialogClose
|
|
105
98
|
});
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
_classPrivateFieldInitSpec(this,
|
|
99
|
+
(0, _defineProperty2["default"])(this, "_windowOpened", false);
|
|
100
|
+
(0, _defineProperty2["default"])(this, "_isWindowApiResize", false);
|
|
101
|
+
_classPrivateFieldInitSpec(this, _A, _init__videoWindowSmallTypeStyleSize(this, {
|
|
102
|
+
width: _type.DefaultVideoWindowWidth,
|
|
103
|
+
height: _type.DefaultVideoWindowSmallTypeHeight
|
|
104
|
+
}));
|
|
105
|
+
_classPrivateFieldInitSpec(this, _B, _init_userVolumeMap(this, new Map()));
|
|
106
|
+
_classPrivateFieldInitSpec(this, _C, _init_wrapperHovering(this, false));
|
|
107
|
+
_classPrivateFieldInitSpec(this, _D, _init_videoWindowPreviewType(this, _type.FcrVideoWindowPreviewType.SMALL));
|
|
109
108
|
// Get all required objects from objectManager
|
|
110
109
|
this._eventProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_EVENT_PROVIDER);
|
|
111
110
|
this._deviceStore = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_DEVICE_PROVIDER);
|
|
@@ -133,6 +132,27 @@ var VideoWindowStore = exports["default"] = /*#__PURE__*/function () {
|
|
|
133
132
|
(0, _mobx.runInAction)(function () {
|
|
134
133
|
_this.userVolumeMap.set('0', volume);
|
|
135
134
|
});
|
|
135
|
+
}), (0, _mobx.reaction)(function () {
|
|
136
|
+
return _this.videoWindowPreviewType;
|
|
137
|
+
}, function () {
|
|
138
|
+
var size = _this.videoWindowStyleSize;
|
|
139
|
+
_this._setVideoWindowDialogSize(size.width, size.height);
|
|
140
|
+
}), (0, _mobx.reaction)(function () {
|
|
141
|
+
return _this.filterFoldList.length;
|
|
142
|
+
}, function (length, prevLength) {
|
|
143
|
+
if (!_this._windowOpened) return;
|
|
144
|
+
var isList = _this.videoWindowPreviewType === _type.FcrVideoWindowPreviewType.LIST;
|
|
145
|
+
if (length === 1 && isList) {
|
|
146
|
+
_this.setVideoWindowPreviewType(_type.FcrVideoWindowPreviewType.SMALL);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (isList && length !== prevLength) {
|
|
150
|
+
var size = _this.videoWindowStyleSize;
|
|
151
|
+
var videoWindow = _this._windowProvider.getWindowById(_constant.FcrUIDialogKey.VIDEO_WINDOW);
|
|
152
|
+
var bounds = videoWindow.getBounds();
|
|
153
|
+
var width = Math.max(bounds.width, size.width);
|
|
154
|
+
_this._setVideoWindowDialogSize(width, size.height);
|
|
155
|
+
}
|
|
136
156
|
}));
|
|
137
157
|
this._streamControl.addObserver({
|
|
138
158
|
onStreamVolumeIndicationUpdated: this._onAudioVolumeUpdated
|
|
@@ -140,7 +160,7 @@ var VideoWindowStore = exports["default"] = /*#__PURE__*/function () {
|
|
|
140
160
|
this._dialogProvider.addObserver(this._dialogObserver);
|
|
141
161
|
}
|
|
142
162
|
return (0, _createClass2["default"])(VideoWindowStore, [{
|
|
143
|
-
key: "
|
|
163
|
+
key: "_videoWindowSmallTypeStyleSize",
|
|
144
164
|
get: function get() {
|
|
145
165
|
return _classPrivateFieldGet(_A, this);
|
|
146
166
|
},
|
|
@@ -148,7 +168,7 @@ var VideoWindowStore = exports["default"] = /*#__PURE__*/function () {
|
|
|
148
168
|
_classPrivateFieldSet(_A, this, v);
|
|
149
169
|
}
|
|
150
170
|
}, {
|
|
151
|
-
key: "
|
|
171
|
+
key: "userVolumeMap",
|
|
152
172
|
get: function get() {
|
|
153
173
|
return _classPrivateFieldGet(_B, this);
|
|
154
174
|
},
|
|
@@ -156,13 +176,21 @@ var VideoWindowStore = exports["default"] = /*#__PURE__*/function () {
|
|
|
156
176
|
_classPrivateFieldSet(_B, this, v);
|
|
157
177
|
}
|
|
158
178
|
}, {
|
|
159
|
-
key: "
|
|
179
|
+
key: "wrapperHovering",
|
|
160
180
|
get: function get() {
|
|
161
181
|
return _classPrivateFieldGet(_C, this);
|
|
162
182
|
},
|
|
163
183
|
set: function set(v) {
|
|
164
184
|
_classPrivateFieldSet(_C, this, v);
|
|
165
185
|
}
|
|
186
|
+
}, {
|
|
187
|
+
key: "videoWindowPreviewType",
|
|
188
|
+
get: function get() {
|
|
189
|
+
return _classPrivateFieldGet(_D, this);
|
|
190
|
+
},
|
|
191
|
+
set: function set(v) {
|
|
192
|
+
_classPrivateFieldSet(_D, this, v);
|
|
193
|
+
}
|
|
166
194
|
}, {
|
|
167
195
|
key: "foldList",
|
|
168
196
|
get: function get() {
|
|
@@ -228,11 +256,6 @@ var VideoWindowStore = exports["default"] = /*#__PURE__*/function () {
|
|
|
228
256
|
get: function get() {
|
|
229
257
|
return this._sharedInterpreterDataSource.isInterpreterEnabled;
|
|
230
258
|
}
|
|
231
|
-
}, {
|
|
232
|
-
key: "shouldHaveListView",
|
|
233
|
-
get: function get() {
|
|
234
|
-
return this.filterFoldList.length > 1;
|
|
235
|
-
}
|
|
236
259
|
}, {
|
|
237
260
|
key: "localUserRole",
|
|
238
261
|
get: function get() {
|
|
@@ -248,6 +271,19 @@ var VideoWindowStore = exports["default"] = /*#__PURE__*/function () {
|
|
|
248
271
|
get: function get() {
|
|
249
272
|
return this._deviceStore.cameraEnabled;
|
|
250
273
|
}
|
|
274
|
+
}, {
|
|
275
|
+
key: "videoWindowStyleSize",
|
|
276
|
+
get: function get() {
|
|
277
|
+
if (this.videoWindowPreviewType === _type.FcrVideoWindowPreviewType.SMALL) {
|
|
278
|
+
return this._videoWindowSmallTypeStyleSize;
|
|
279
|
+
} else {
|
|
280
|
+
var height = this.computedVideoWindowHeight();
|
|
281
|
+
return {
|
|
282
|
+
width: _type.DefaultVideoWindowWidth,
|
|
283
|
+
height: height
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
}
|
|
251
287
|
}, {
|
|
252
288
|
key: "setVideoOrientation",
|
|
253
289
|
value: function setVideoOrientation() {
|
|
@@ -263,7 +299,6 @@ var VideoWindowStore = exports["default"] = /*#__PURE__*/function () {
|
|
|
263
299
|
onStreamVolumeIndicationUpdated: this._onAudioVolumeUpdated
|
|
264
300
|
});
|
|
265
301
|
this._dialogProvider.removeObserver(this._dialogObserver);
|
|
266
|
-
this._sharedVideoWindowDataSource.removeObserver(this._sharedVideoWindowDataSourceObserver);
|
|
267
302
|
}
|
|
268
303
|
}, {
|
|
269
304
|
key: "removePin",
|
|
@@ -348,9 +383,11 @@ var VideoWindowStore = exports["default"] = /*#__PURE__*/function () {
|
|
|
348
383
|
return;
|
|
349
384
|
}
|
|
350
385
|
this.videoWindowPreviewType = type;
|
|
351
|
-
this.
|
|
352
|
-
|
|
353
|
-
|
|
386
|
+
var videoWindow = this._windowProvider.getWindowById(_constant.FcrUIDialogKey.VIDEO_WINDOW);
|
|
387
|
+
var resizable = type === _type.FcrVideoWindowPreviewType.SMALL;
|
|
388
|
+
videoWindow.setResizable(resizable);
|
|
389
|
+
videoWindow.setAspectRatio(resizable ? _type.VideoWindowRadio : 0);
|
|
390
|
+
videoWindow.setMinimumSize(_type.DefaultVideoWindowWidth, resizable ? _type.DefaultVideoWindowSmallTypeHeight : _type.DefaultVideoWindowHeight);
|
|
354
391
|
}
|
|
355
392
|
}, {
|
|
356
393
|
key: "setWrapperHover",
|
|
@@ -363,22 +400,79 @@ var VideoWindowStore = exports["default"] = /*#__PURE__*/function () {
|
|
|
363
400
|
return this._privilegeProvider.getAllowedOperations(targetRole, isSelf);
|
|
364
401
|
}
|
|
365
402
|
}, {
|
|
366
|
-
key: "
|
|
367
|
-
value: function
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
403
|
+
key: "handleVideowWindowResize",
|
|
404
|
+
value: function handleVideowWindowResize(size) {
|
|
405
|
+
if (this._isWindowApiResize) {
|
|
406
|
+
this._isWindowApiResize = false;
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
409
|
+
if (this.videoWindowPreviewType === _type.FcrVideoWindowPreviewType.SMALL) {
|
|
410
|
+
this._videoWindowSmallTypeStyleSize = size;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* @description 如果传入的宽度超过了允许的最大宽度, 则使用允许的最大宽度设置窗口宽度,以避免窗口超出显示器的边缘。
|
|
415
|
+
* @param width 期望设置的视频窗宽度
|
|
416
|
+
* @param height 视频窗高度
|
|
417
|
+
* @returns 实际设置的视频窗尺寸
|
|
418
|
+
*/
|
|
419
|
+
}, {
|
|
420
|
+
key: "setVideoWindowSize",
|
|
421
|
+
value: function setVideoWindowSize(width, height) {
|
|
374
422
|
var videoWindow = this._windowProvider.getWindowById(_constant.FcrUIDialogKey.VIDEO_WINDOW);
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
423
|
+
var _videoWindow$getBound = videoWindow.getBounds(),
|
|
424
|
+
videoWindowX = _videoWindow$getBound.x;
|
|
425
|
+
var videoWindowStyleWidth = this.videoWindowStyleSize.width;
|
|
426
|
+
var maxAllowedWidth = this._computedMaxAllowedWidth(videoWindowX, videoWindowStyleWidth);
|
|
427
|
+
|
|
428
|
+
// 在最大宽度限制内,使用期望的宽度
|
|
429
|
+
// 超出最大宽度限制,使用允许的最大宽度
|
|
430
|
+
var finalWidth = Math.min(maxAllowedWidth, width);
|
|
431
|
+
this._setVideoWindowDialogSize(finalWidth, height, videoWindow);
|
|
432
|
+
return {
|
|
433
|
+
width: finalWidth,
|
|
434
|
+
height: height
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
}, {
|
|
438
|
+
key: "resetVideoWindowSize",
|
|
439
|
+
value: function resetVideoWindowSize() {
|
|
440
|
+
var size = this.videoWindowStyleSize;
|
|
441
|
+
this._setVideoWindowDialogSize(size.width, size.height);
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* 计算 video-window 窗口允许设置的最大宽度,窗口左上角距离屏幕右侧边缘的距离和当前的窗口内容宽度中,选择最大值作为允许的最大宽度(不能超过窗口最大化的宽度)
|
|
446
|
+
* @param videoWindowX 视频窗左上角 x 坐标
|
|
447
|
+
* @param videoWindowStyleWidth 视频窗内容的宽度
|
|
448
|
+
* @returns 允许设置的最大宽度
|
|
449
|
+
*/
|
|
450
|
+
}, {
|
|
451
|
+
key: "_computedMaxAllowedWidth",
|
|
452
|
+
value: function _computedMaxAllowedWidth(videoWindowX, videoWindowStyleWidth) {
|
|
453
|
+
var sharingDisplayBounds = this._screenShareProvider.sharingDisplayBounds;
|
|
454
|
+
var displayX = sharingDisplayBounds.x,
|
|
455
|
+
displayWidth = sharingDisplayBounds.width;
|
|
456
|
+
var displayRightEdge = displayX + displayWidth;
|
|
457
|
+
var distanceToRightEdge = displayRightEdge - videoWindowX;
|
|
458
|
+
|
|
459
|
+
// 如果窗口左上角距离屏幕边缘的距离小于当前的窗口内容宽度,则使用当前窗口内容宽度作为允许的最大宽度,避免窗口收窄导致内容显示异常
|
|
460
|
+
var maxAllowedWidth = Math.max(distanceToRightEdge, videoWindowStyleWidth);
|
|
461
|
+
|
|
462
|
+
// 如果最大允许宽度超出了窗口最大化的宽度,则使用窗口最大化的宽度作为允许设置的宽度
|
|
463
|
+
return Math.min(maxAllowedWidth, _type.VideoWindowZoomMaxWidth);
|
|
464
|
+
}
|
|
465
|
+
}, {
|
|
466
|
+
key: "_setVideoWindowDialogSize",
|
|
467
|
+
value: function _setVideoWindowDialogSize(width, height, videoWindow) {
|
|
468
|
+
if (!videoWindow) {
|
|
469
|
+
videoWindow = this._windowProvider.getWindowById(_constant.FcrUIDialogKey.VIDEO_WINDOW);
|
|
380
470
|
}
|
|
381
|
-
|
|
471
|
+
this._isWindowApiResize = true;
|
|
472
|
+
(0, _videoWindow.setVideoWindowDialogSize)(videoWindow, {
|
|
473
|
+
width: width,
|
|
474
|
+
height: height
|
|
475
|
+
});
|
|
382
476
|
}
|
|
383
477
|
}, {
|
|
384
478
|
key: "_onAudioVolumeUpdated",
|
|
@@ -386,33 +480,32 @@ var VideoWindowStore = exports["default"] = /*#__PURE__*/function () {
|
|
|
386
480
|
this.userVolumeMap.set(streamId, Math.floor(volume / 255 * 100));
|
|
387
481
|
}
|
|
388
482
|
}, {
|
|
389
|
-
key: "
|
|
390
|
-
value: function
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
this.setVideoWindowPreviewType(_type.FcrVideoWindowPreviewType.SMALL);
|
|
394
|
-
} else {
|
|
395
|
-
this._updateWindowProperties();
|
|
396
|
-
}
|
|
483
|
+
key: "_handleDialogOpen",
|
|
484
|
+
value: function _handleDialogOpen(dialogKey) {
|
|
485
|
+
if (dialogKey !== _constant.FcrUIDialogKey.VIDEO_WINDOW) return;
|
|
486
|
+
this._windowOpened = true;
|
|
397
487
|
}
|
|
398
488
|
}, {
|
|
399
|
-
key: "
|
|
400
|
-
value: function
|
|
489
|
+
key: "_handleDialogClose",
|
|
490
|
+
value: function _handleDialogClose(dialogKey) {
|
|
491
|
+
var _this4 = this;
|
|
401
492
|
if (dialogKey !== _constant.FcrUIDialogKey.VIDEO_WINDOW) return;
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
493
|
+
this._windowOpened = false;
|
|
494
|
+
(0, _mobx.runInAction)(function () {
|
|
495
|
+
_this4._videoWindowSmallTypeStyleSize = {
|
|
496
|
+
width: _type.DefaultVideoWindowWidth,
|
|
497
|
+
height: _type.DefaultVideoWindowSmallTypeHeight
|
|
498
|
+
};
|
|
499
|
+
_this4.setVideoWindowPreviewType(_type.FcrVideoWindowPreviewType.SMALL);
|
|
500
|
+
});
|
|
409
501
|
}
|
|
410
502
|
}]);
|
|
411
503
|
}();
|
|
412
504
|
_VideoWindowStore = VideoWindowStore;
|
|
413
|
-
var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_VideoWindowStore, [[_mobx.observable, 1, "userVolumeMap"], [_mobx.observable, 1, "wrapperHovering"], [_mobx.observable, 1, "videoWindowPreviewType"], [_mobx.computed, 3, "foldListRenderData"], [_mobx.computed, 3, "spotlightStreamId"], [_mobx.computed, 3, "findSpotlightUser"], [_mobx.computed, 3, "hasPinnedStream"], [_mobx.computed, 3, "
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
505
|
+
var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_VideoWindowStore, [[_mobx.observable, 1, "_videoWindowSmallTypeStyleSize"], [_mobx.observable, 1, "userVolumeMap"], [_mobx.observable, 1, "wrapperHovering"], [_mobx.observable, 1, "videoWindowPreviewType"], [_mobx.computed, 3, "foldListRenderData"], [_mobx.computed, 3, "spotlightStreamId"], [_mobx.computed, 3, "findSpotlightUser"], [_mobx.computed, 3, "hasPinnedStream"], [_mobx.computed, 3, "videoWindowStyleSize"], [_decorator.bound, 2, "setVideoOrientation"], [_decorator.bound, 2, "removePin"], [_decorator.bound, 2, "addPin"], [_decorator.bound, 2, "sendParticipantEvent"], [_decorator.bound, 2, "muteAudio"], [_decorator.bound, 2, "computedVideoWindowHeight"], [_decorator.bound, 2, "openPrivateChat"], [_decorator.bound, 2, "openRenameDialog"], [_decorator.bound, 2, "hasMutePermission"], [_decorator.bound, 2, "hasUnmutePermission"], [_decorator.bound, 2, "hasRequestStartAudioPermission"], [_setVideoWindowPreviewTypeDecs, 18, "setVideoWindowPreviewType"], [_setWrapperHoverDecs, 18, "setWrapperHover"], [_getAllowedOperationsDecs, 18, "getAllowedOperations"], [_handleVideowWindowResizeDecs, 18, "handleVideowWindowResize"], [_decorator.bound, 2, "setVideoWindowSize"], [_decorator.bound, 2, "resetVideoWindowSize"], [_onAudioVolumeUpdatedDecs, 18, "_onAudioVolumeUpdated"], [_decorator.bound, 2, "_handleDialogOpen"], [_decorator.bound, 2, "_handleDialogClose"]], []).e, 5);
|
|
506
|
+
_init__videoWindowSmallTypeStyleSize = _applyDecs$e[0];
|
|
507
|
+
_init_userVolumeMap = _applyDecs$e[1];
|
|
508
|
+
_init_wrapperHovering = _applyDecs$e[2];
|
|
509
|
+
_init_videoWindowPreviewType = _applyDecs$e[3];
|
|
510
|
+
_initProto = _applyDecs$e[4];
|
|
418
511
|
var StoreContext = exports.StoreContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/es.symbol.js");
|
|
4
|
+
require("core-js/modules/es.array.filter.js");
|
|
5
|
+
require("core-js/modules/es.array.for-each.js");
|
|
6
|
+
require("core-js/modules/es.array.push.js");
|
|
7
|
+
require("core-js/modules/es.object.define-properties.js");
|
|
3
8
|
require("core-js/modules/es.object.define-property.js");
|
|
9
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
10
|
+
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
11
|
+
require("core-js/modules/es.object.keys.js");
|
|
12
|
+
require("core-js/modules/es.object.to-string.js");
|
|
13
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
14
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
15
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
16
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
4
17
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
18
|
Object.defineProperty(exports, "__esModule", {
|
|
6
19
|
value: true
|
|
7
20
|
});
|
|
8
21
|
exports.View = void 0;
|
|
9
22
|
require("core-js/modules/web.timers.js");
|
|
23
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
24
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
25
|
var _mobxReact = require("mobx-react");
|
|
12
26
|
var _react = require("react");
|
|
@@ -15,8 +29,11 @@ var _store = require("./store");
|
|
|
15
29
|
var _topControl = _interopRequireDefault(require("./components/topControl"));
|
|
16
30
|
var _speaking = _interopRequireDefault(require("./components/speaking"));
|
|
17
31
|
require("./index.css");
|
|
32
|
+
var _popoverWatcher = require("./popover-watcher");
|
|
18
33
|
var _videoTrackRenderContext = require("../../shared-context/video-track-render-context");
|
|
19
34
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
35
|
+
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; }
|
|
36
|
+
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; }
|
|
20
37
|
var View = exports.View = (0, _mobxReact.observer)(function () {
|
|
21
38
|
var divRef = (0, _react.useRef)(null);
|
|
22
39
|
var _useState = (0, _react.useState)(false),
|
|
@@ -25,7 +42,11 @@ var View = exports.View = (0, _mobxReact.observer)(function () {
|
|
|
25
42
|
setIsHover = _useState2[1];
|
|
26
43
|
var _useContext = (0, _react.useContext)(_store.StoreContext),
|
|
27
44
|
setWrapperHover = _useContext.setWrapperHover,
|
|
28
|
-
videoRenderContext = _useContext.videoRenderContext
|
|
45
|
+
videoRenderContext = _useContext.videoRenderContext,
|
|
46
|
+
setVideoWindowSize = _useContext.setVideoWindowSize,
|
|
47
|
+
resetVideoWindowSize = _useContext.resetVideoWindowSize,
|
|
48
|
+
videoWindowStyleSize = _useContext.videoWindowStyleSize,
|
|
49
|
+
handleVideowWindowResize = _useContext.handleVideowWindowResize;
|
|
29
50
|
(0, _react.useEffect)(function () {
|
|
30
51
|
if (!isHover) {
|
|
31
52
|
var timer = setTimeout(function () {
|
|
@@ -38,8 +59,36 @@ var View = exports.View = (0, _mobxReact.observer)(function () {
|
|
|
38
59
|
setWrapperHover(true);
|
|
39
60
|
}
|
|
40
61
|
}, [isHover]);
|
|
62
|
+
(0, _react.useEffect)(function () {
|
|
63
|
+
if (divRef.current === null) return;
|
|
64
|
+
var ownerDocument = divRef.current.ownerDocument;
|
|
65
|
+
var defaultView = ownerDocument.defaultView;
|
|
66
|
+
var body = ownerDocument.body;
|
|
67
|
+
var onResize = function onResize() {
|
|
68
|
+
handleVideowWindowResize({
|
|
69
|
+
width: body.offsetWidth,
|
|
70
|
+
height: body.offsetHeight
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
if (defaultView) {
|
|
74
|
+
defaultView.addEventListener('resize', onResize);
|
|
75
|
+
} else {
|
|
76
|
+
console.error('dialogWrapper.ownerDocument.defaultView is null');
|
|
77
|
+
}
|
|
78
|
+
return function () {
|
|
79
|
+
if (defaultView) {
|
|
80
|
+
defaultView.removeEventListener('resize', onResize);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
}, [divRef.current]);
|
|
84
|
+
(0, _popoverWatcher.usePopoverWatcher)({
|
|
85
|
+
rootDom: divRef.current,
|
|
86
|
+
setVideoWindowSize: setVideoWindowSize,
|
|
87
|
+
resetVideoWindowSize: resetVideoWindowSize
|
|
88
|
+
});
|
|
41
89
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
42
90
|
ref: divRef,
|
|
91
|
+
style: _objectSpread({}, videoWindowStyleSize),
|
|
43
92
|
onMouseEnter: function onMouseEnter() {
|
|
44
93
|
setIsHover(true);
|
|
45
94
|
},
|
|
@@ -65,7 +65,7 @@ var FcrWhiteboardUIModule = exports.FcrWhiteboardUIModule = /*#__PURE__*/functio
|
|
|
65
65
|
}
|
|
66
66
|
}, {
|
|
67
67
|
key: "getComponent",
|
|
68
|
-
value: function getComponent(
|
|
68
|
+
value: function getComponent() {
|
|
69
69
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_store.WhiteboardStoreContext.Provider, {
|
|
70
70
|
value: this.store,
|
|
71
71
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_view.Whiteboard, {})
|