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.
- package/installer/icons/icon.png +0 -0
- package/installer/mac/entitlements.mac.plist +1 -5
- package/lib/creator/index.js +12 -6
- package/lib/creator/provider-initializer.browser.js +0 -3
- package/lib/creator/provider-initializer.electron.js +0 -4
- package/lib/creator.d.ts +36 -0
- package/lib/creator.js +465 -0
- package/lib/electron/bootstrap-sdk.js +70 -20
- package/lib/electron/struct.d.ts +7 -1
- package/lib/electron/struct.js +8 -1
- package/lib/electron/until.d.ts +3 -1
- package/lib/electron/until.js +7 -2
- package/lib/modules/action-bar/components/item/index.js +1 -0
- package/lib/modules/action-bar/components/screen-share/submenu.js +1 -1
- package/lib/modules/action-bar/index.d.ts +58 -0
- package/lib/modules/action-bar/index.dev.d.ts +0 -0
- package/lib/modules/action-bar/index.dev.js +94 -0
- package/lib/modules/action-bar/index.js +109 -0
- package/lib/modules/action-bar/store.d.ts +259 -0
- package/lib/modules/action-bar/store.js +1529 -0
- package/lib/modules/action-bar/types.d.ts +90 -0
- package/lib/modules/action-bar/types.js +6 -0
- package/lib/modules/action-bar/view.d.ts +5 -0
- package/lib/modules/action-bar/view.js +112 -0
- package/lib/modules/annotation/annotation-index.d.ts +2 -0
- package/lib/modules/annotation/annotation-index.js +80 -0
- package/lib/modules/annotation/annotation-toolbar-store.d.ts +75 -0
- package/lib/modules/annotation/annotation-toolbar-store.js +459 -0
- package/lib/modules/annotation/board-cursor.css +77 -0
- package/lib/modules/annotation/components/color-picker/components/color.d.ts +5 -0
- package/lib/modules/annotation/components/color-picker/components/color.js +38 -0
- package/lib/modules/annotation/components/color-picker/components/panel.d.ts +1 -0
- package/lib/modules/annotation/components/color-picker/components/panel.js +109 -0
- package/lib/modules/annotation/components/color-picker/components/picker.d.ts +1 -0
- package/lib/modules/annotation/components/color-picker/components/picker.js +75 -0
- package/lib/modules/annotation/components/color-picker/index.d.ts +2 -0
- package/lib/modules/annotation/components/color-picker/index.js +47 -0
- package/lib/modules/annotation/components/eraser-picker.d.ts +4 -0
- package/lib/modules/annotation/components/eraser-picker.js +144 -0
- package/lib/modules/annotation/components/expansion/index.d.ts +1 -0
- package/lib/modules/annotation/components/expansion/index.js +100 -0
- package/lib/modules/annotation/components/extra-tool-picker.d.ts +1 -0
- package/lib/modules/annotation/components/extra-tool-picker.js +62 -0
- package/lib/modules/annotation/components/history.d.ts +2 -0
- package/lib/modules/annotation/components/history.js +78 -0
- package/lib/modules/annotation/components/icons/fold-icon.d.ts +2 -0
- package/lib/modules/annotation/components/icons/fold-icon.js +41 -0
- package/lib/modules/annotation/components/icons/move-icon.d.ts +1 -0
- package/lib/modules/annotation/components/icons/move-icon.js +66 -0
- package/lib/modules/annotation/components/item/index.d.ts +1 -0
- package/lib/modules/annotation/components/item/index.js +43 -0
- package/lib/modules/annotation/components/move-handle.d.ts +5 -0
- package/lib/modules/annotation/components/move-handle.js +134 -0
- package/lib/modules/annotation/components/pen-picker.d.ts +4 -0
- package/lib/modules/annotation/components/pen-picker.js +155 -0
- package/lib/modules/annotation/components/screen-capture-picker.d.ts +4 -0
- package/lib/modules/annotation/components/screen-capture-picker.js +85 -0
- package/lib/modules/annotation/components/shape-picker.d.ts +4 -0
- package/lib/modules/annotation/components/shape-picker.js +210 -0
- package/lib/modules/annotation/hooks/index.d.ts +14 -0
- package/lib/modules/annotation/hooks/index.js +292 -0
- package/lib/modules/annotation/index.d.ts +45 -0
- package/lib/modules/annotation/index.js +168 -0
- package/lib/modules/annotation/store.d.ts +98 -0
- package/lib/modules/annotation/store.js +620 -0
- package/lib/modules/annotation/style.css +36 -0
- package/lib/modules/annotation/view.d.ts +3 -0
- package/lib/modules/annotation/view.js +44 -0
- package/lib/modules/chat/index.css +5 -1
- package/lib/modules/chat/view.js +6 -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.js +26 -7
- package/lib/modules/components/device-control/store.d.ts +42 -0
- package/lib/modules/components/device-control/store.js +241 -0
- package/lib/modules/components/leave-meeting/store.d.ts +39 -0
- package/lib/modules/components/leave-meeting/store.js +270 -0
- 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 +43 -42
- package/lib/modules/components/toolbar/index.js +6 -24
- package/lib/modules/control-bar/components/annotation-button/index.d.ts +1 -0
- package/lib/modules/control-bar/components/annotation-button/index.js +72 -0
- package/lib/modules/control-bar/components/cloud-recording-buttons.d.ts +3 -0
- package/lib/modules/control-bar/components/cloud-recording-buttons.js +65 -3
- package/lib/modules/control-bar/store.js +11 -6
- package/lib/modules/control-bar/types.d.ts +20 -0
- package/lib/modules/control-bar/types.js +6 -0
- 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 +1 -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/end-meeting/index.d.ts +1 -0
- package/lib/modules/dialog/dialogs/end-meeting/index.js +2 -1
- package/lib/modules/dialog/dialogs/participant/index.js +2 -1
- package/lib/modules/dialog/dialogs/pre-setting/index.css +26 -0
- package/lib/modules/dialog/dialogs/pre-setting/index.d.ts +6 -0
- package/lib/modules/dialog/dialogs/pre-setting/index.js +62 -0
- package/lib/modules/dialog/dialogs/widget/electron.d.ts +6 -0
- package/lib/modules/dialog/dialogs/widget/electron.js +38 -0
- package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +14 -0
- package/lib/modules/dialog/hooks/use-popover-watcher.js +110 -0
- package/lib/modules/dialog/hooks/useElectron.d.ts +28 -0
- package/lib/modules/dialog/hooks/useElectron.js +277 -0
- package/lib/modules/dialog/store.d.ts +135 -0
- package/lib/modules/dialog/store.js +616 -0
- package/lib/modules/event-confirm/components/window/index.d.ts +7 -0
- package/lib/modules/event-confirm/components/window/index.js +221 -0
- package/lib/modules/event-confirm/index.css +24 -0
- package/lib/modules/event-confirm/index.d.ts +27 -0
- package/lib/modules/event-confirm/index.js +76 -0
- package/lib/modules/event-confirm/store.d.ts +50 -0
- package/lib/modules/event-confirm/store.js +394 -0
- package/lib/modules/event-confirm/view.d.ts +2 -0
- package/lib/modules/event-confirm/view.js +55 -0
- package/lib/modules/event-toast/store.d.ts +27 -0
- package/lib/modules/event-toast/store.js +205 -0
- package/lib/modules/layout/store.d.ts +176 -0
- package/lib/modules/layout/store.electron.js +1 -1
- package/lib/modules/layout/store.js +1452 -0
- package/lib/modules/participant/store.d.ts +222 -0
- package/lib/modules/participant/store.js +1929 -0
- package/lib/modules/pc-audio-connect/index.d.ts +22 -0
- package/lib/modules/pc-audio-connect/index.js +67 -0
- package/lib/modules/pc-audio-connect/store.d.ts +46 -0
- package/lib/modules/pc-audio-connect/store.js +304 -0
- package/lib/modules/secondary-window/store.d.ts +0 -1
- package/lib/modules/secondary-window/store.js +9 -22
- package/lib/modules/secondary-window/view.js +6 -5
- package/lib/modules/setting/common/advance-link.d.ts +3 -0
- package/lib/modules/setting/common/advance-link.js +27 -0
- package/lib/modules/setting/common/index.css +26 -0
- package/lib/modules/setting/common/useNamespace.d.ts +15 -0
- package/lib/modules/setting/common/useNamespace.js +66 -0
- package/lib/modules/setting/dialog-wrapper.d.ts +2 -0
- package/lib/modules/setting/dialog-wrapper.js +110 -0
- package/lib/modules/setting/index.css +0 -1
- package/lib/modules/setting/store.base.js +6 -0
- package/lib/modules/setting/store.d.ts +261 -0
- package/lib/modules/setting/store.js +1321 -0
- package/lib/modules/setting/view.js +0 -3
- package/lib/modules/share-screen/store.d.ts +148 -0
- package/lib/modules/share-screen/store.electron.js +1 -1
- package/lib/modules/share-screen/store.js +960 -0
- package/lib/modules/share-screen/types.d.ts +26 -0
- package/lib/modules/share-screen/types.js +6 -0
- 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/state-bar/store.d.ts +124 -0
- package/lib/modules/state-bar/store.js +664 -0
- package/lib/modules/video-window/index.css +6 -0
- package/lib/modules/video-window/popover-watcher.d.ts +4 -1
- package/lib/modules/video-window/popover-watcher.js +15 -2
- package/lib/modules/video-window/store.d.ts +18 -1
- package/lib/modules/video-window/store.js +55 -7
- package/lib/modules/whiteboard/components/progress/electron.d.ts +1 -0
- package/lib/modules/whiteboard/components/progress/electron.js +33 -0
- package/lib/modules/whiteboard/store.js +20 -2
- package/lib/modules/widget/store.d.ts +14 -0
- package/lib/modules/widget/store.js +28 -0
- package/lib/object-manager.d.ts +0 -1
- package/lib/object-manager.js +0 -1
- package/lib/providers/annotation-provider.d.ts +124 -0
- package/lib/providers/annotation-provider.js +369 -0
- 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.browser.d.ts +3 -0
- package/lib/providers/board-share/provider.browser.js +21 -3
- package/lib/providers/device-provider.js +5 -1
- package/lib/providers/dialog/provider.electron.js +6 -0
- package/lib/providers/dialog-provider.d.ts +137 -0
- package/lib/providers/dialog-provider.js +194 -0
- package/lib/providers/message-provider.d.ts +69 -0
- package/lib/providers/message-provider.js +140 -0
- package/lib/providers/mouse-detect/provider.d.ts +5 -0
- package/lib/providers/mouse-detect/provider.js +74 -49
- package/lib/providers/multi-display-provider.d.ts +3 -5
- package/lib/providers/multi-display-provider.js +0 -9
- package/lib/providers/room-provider/room-provider.d.ts +3 -14
- package/lib/providers/room-provider/room-provider.js +5 -26
- package/lib/providers/room-provider.d.ts +194 -0
- package/lib/providers/room-provider.js +916 -0
- package/lib/providers/screen-share/stream-state-sync.js +19 -12
- package/lib/providers/screen-share-provider.d.ts +245 -0
- package/lib/providers/screen-share-provider.js +850 -0
- package/lib/providers/sharing-provider.d.ts +42 -0
- package/lib/providers/sharing-provider.js +228 -0
- package/lib/providers/user-setting-storage-provider.d.ts +21 -0
- package/lib/providers/user-setting-storage-provider.js +65 -0
- package/lib/providers/whiteboard-provider.d.ts +24 -0
- package/lib/providers/whiteboard-provider.js +128 -0
- package/lib/providers/window/main-window.d.ts +0 -5
- package/lib/providers/window/main-window.js +0 -44
- package/lib/providers/window/renderer-window.d.ts +1 -0
- package/lib/providers/window/renderer-window.js +9 -1
- package/lib/scenes/main-scene.js +0 -2
- package/lib/shared-data-source/annotation-data.d.ts +17 -0
- package/lib/shared-data-source/annotation-data.js +110 -0
- package/lib/shared-data-source/app-list-data.d.ts +34 -0
- package/lib/shared-data-source/app-list-data.js +133 -0
- package/lib/shared-data-source/chat-data.d.ts +25 -0
- package/lib/shared-data-source/chat-data.js +139 -0
- package/lib/shared-data-source/config.d.ts +35 -0
- package/lib/shared-data-source/config.js +40 -0
- package/lib/shared-data-source/confirm-data.d.ts +44 -0
- package/lib/shared-data-source/confirm-data.js +201 -0
- package/lib/shared-data-source/device-privilege-data.d.ts +8 -0
- package/lib/shared-data-source/device-privilege-data.js +25 -0
- package/lib/shared-data-source/interpreter.d.ts +77 -0
- package/lib/shared-data-source/interpreter.js +247 -0
- package/lib/shared-data-source/layout-data.d.ts +31 -0
- package/lib/shared-data-source/layout-data.js +189 -0
- package/lib/shared-data-source/meeting-time.d.ts +90 -0
- package/lib/shared-data-source/meeting-time.js +416 -0
- package/lib/shared-data-source/member-data.d.ts +139 -0
- package/lib/shared-data-source/member-data.js +517 -0
- package/lib/shared-data-source/pin-data.d.ts +13 -0
- package/lib/shared-data-source/pin-data.js +111 -0
- package/lib/shared-data-source/screen-share-data.d.ts +357 -0
- package/lib/shared-data-source/screen-share-data.js +513 -0
- package/lib/shared-data-source/security-data.d.ts +39 -0
- package/lib/shared-data-source/security-data.js +156 -0
- package/lib/shared-data-source/setting.d.ts +67 -0
- package/lib/shared-data-source/setting.js +220 -0
- package/lib/shared-data-source/speaker-spotlight.d.ts +5 -0
- package/lib/shared-data-source/speaker-spotlight.js +15 -0
- package/lib/shared-data-source/video-window.d.ts +165 -0
- package/lib/shared-data-source/video-window.js +1266 -0
- package/lib/shared-data-source/waiting-room.d.ts +46 -0
- package/lib/shared-data-source/waiting-room.js +222 -0
- package/lib/shared-data-source/whiteboard-data.d.ts +70 -0
- package/lib/{providers/board-share/bar-control.js → shared-data-source/whiteboard-data.js} +62 -104
- package/lib/ui-scene.js +4 -2
- package/lib/utilities/board-context.d.ts +4 -0
- package/lib/utilities/board-context.js +12 -0
- package/lib/utilities/copyText.d.ts +2 -0
- package/lib/utilities/copyText.js +48 -0
- package/lib/utilities/renderer-event.d.ts +10 -0
- package/lib/utilities/renderer-event.js +95 -0
- package/lib/utilities/screen-capture-permission.d.ts +2 -0
- package/lib/utilities/screen-capture-permission.js +24 -0
- package/lib/utilities/screen.d.ts +3 -0
- package/lib/utilities/screen.js +53 -0
- package/lib/utilities/video-track-render-context.d.ts +6 -0
- package/lib/utilities/video-track-render-context.js +9 -0
- package/lib/waiting-room-control-manager.d.ts +28 -0
- package/lib/waiting-room-control-manager.js +230 -0
- package/package.json +5 -5
- package/public/index.html +22 -1
- package/lib/providers/board-share/bar-control.d.ts +0 -51
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export declare function usePopoverWatcher({ rootDom, setVideoWindowSize, resetVideoWindowSize, }: {
|
|
6
6
|
rootDom: HTMLElement | null;
|
|
7
|
-
setVideoWindowSize: (width: number, height: number) =>
|
|
7
|
+
setVideoWindowSize: (width: number, height: number) => {
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
};
|
|
8
11
|
resetVideoWindowSize: () => void;
|
|
9
12
|
}): void;
|
|
@@ -27,12 +27,14 @@ function usePopoverWatcher(_ref) {
|
|
|
27
27
|
var dialogWrapper = rootDom;
|
|
28
28
|
var body = dialogWrapper.ownerDocument.body;
|
|
29
29
|
var popoverClassName = 'fcr-popover';
|
|
30
|
+
var isPopoverOpened = false;
|
|
30
31
|
var observer = new MutationObserver(function (mutationsList) {
|
|
31
32
|
var popover = body.querySelector(".".concat(popoverClassName));
|
|
32
33
|
mutationsList.forEach(function (mutation) {
|
|
33
34
|
if (mutation.type === 'childList') {
|
|
34
35
|
mutation.removedNodes.forEach(function (node) {
|
|
35
36
|
if (node.nodeType === Node.ELEMENT_NODE && node.classList.contains(popoverClassName)) {
|
|
37
|
+
isPopoverOpened = false;
|
|
36
38
|
resetVideoWindowSize();
|
|
37
39
|
}
|
|
38
40
|
});
|
|
@@ -40,10 +42,21 @@ function usePopoverWatcher(_ref) {
|
|
|
40
42
|
return;
|
|
41
43
|
}
|
|
42
44
|
mutation.addedNodes.forEach(function (node) {
|
|
43
|
-
if (node.nodeType === Node.ELEMENT_NODE && node.contains(popover)) {
|
|
45
|
+
if (node.nodeType === Node.ELEMENT_NODE && node.contains(popover) && !isPopoverOpened) {
|
|
46
|
+
isPopoverOpened = true;
|
|
44
47
|
var width = popover.offsetWidth + dialogWrapper.offsetWidth - WIDTH_RIGHT_OFFSET;
|
|
45
48
|
var height = Math.max(popover.offsetHeight + HEAD_HEIGHT_OFFSET, dialogWrapper.offsetHeight);
|
|
46
|
-
setVideoWindowSize(width, height)
|
|
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';
|
|
59
|
+
}
|
|
47
60
|
}
|
|
48
61
|
});
|
|
49
62
|
}
|
|
@@ -62,8 +62,25 @@ export default class VideoWindowStore {
|
|
|
62
62
|
width: number;
|
|
63
63
|
height: number;
|
|
64
64
|
}): void;
|
|
65
|
-
|
|
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
|
+
};
|
|
66
75
|
resetVideoWindowSize(): void;
|
|
76
|
+
/**
|
|
77
|
+
* 计算 video-window 窗口允许设置的最大宽度,窗口左上角距离屏幕右侧边缘的距离和当前的窗口内容宽度中,选择最大值作为允许的最大宽度(不能超过窗口最大化的宽度)
|
|
78
|
+
* @param videoWindowX 视频窗左上角 x 坐标
|
|
79
|
+
* @param videoWindowStyleWidth 视频窗内容的宽度
|
|
80
|
+
* @returns 允许设置的最大宽度
|
|
81
|
+
*/
|
|
82
|
+
private _computedMaxAllowedWidth;
|
|
83
|
+
private _setVideoWindowDialogSize;
|
|
67
84
|
private _onAudioVolumeUpdated;
|
|
68
85
|
private _handleDialogOpen;
|
|
69
86
|
private _handleDialogClose;
|
|
@@ -136,7 +136,7 @@ var VideoWindowStore = exports["default"] = /*#__PURE__*/function () {
|
|
|
136
136
|
return _this.videoWindowPreviewType;
|
|
137
137
|
}, function () {
|
|
138
138
|
var size = _this.videoWindowStyleSize;
|
|
139
|
-
_this.
|
|
139
|
+
_this._setVideoWindowDialogSize(size.width, size.height);
|
|
140
140
|
}), (0, _mobx.reaction)(function () {
|
|
141
141
|
return _this.filterFoldList.length;
|
|
142
142
|
}, function (length, prevLength) {
|
|
@@ -151,7 +151,7 @@ var VideoWindowStore = exports["default"] = /*#__PURE__*/function () {
|
|
|
151
151
|
var videoWindow = _this._windowProvider.getWindowById(_constant.FcrUIDialogKey.VIDEO_WINDOW);
|
|
152
152
|
var bounds = videoWindow.getBounds();
|
|
153
153
|
var width = Math.max(bounds.width, size.width);
|
|
154
|
-
_this.
|
|
154
|
+
_this._setVideoWindowDialogSize(width, size.height);
|
|
155
155
|
}
|
|
156
156
|
}));
|
|
157
157
|
this._streamControl.addObserver({
|
|
@@ -410,21 +410,69 @@ var VideoWindowStore = exports["default"] = /*#__PURE__*/function () {
|
|
|
410
410
|
this._videoWindowSmallTypeStyleSize = size;
|
|
411
411
|
}
|
|
412
412
|
}
|
|
413
|
+
/**
|
|
414
|
+
* @description 如果传入的宽度超过了允许的最大宽度, 则使用允许的最大宽度设置窗口宽度,以避免窗口超出显示器的边缘。
|
|
415
|
+
* @param width 期望设置的视频窗宽度
|
|
416
|
+
* @param height 视频窗高度
|
|
417
|
+
* @returns 实际设置的视频窗尺寸
|
|
418
|
+
*/
|
|
413
419
|
}, {
|
|
414
420
|
key: "setVideoWindowSize",
|
|
415
421
|
value: function setVideoWindowSize(width, height) {
|
|
416
422
|
var videoWindow = this._windowProvider.getWindowById(_constant.FcrUIDialogKey.VIDEO_WINDOW);
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
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,
|
|
420
434
|
height: height
|
|
421
|
-
}
|
|
435
|
+
};
|
|
422
436
|
}
|
|
423
437
|
}, {
|
|
424
438
|
key: "resetVideoWindowSize",
|
|
425
439
|
value: function resetVideoWindowSize() {
|
|
426
440
|
var size = this.videoWindowStyleSize;
|
|
427
|
-
this.
|
|
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);
|
|
470
|
+
}
|
|
471
|
+
this._isWindowApiResize = true;
|
|
472
|
+
(0, _videoWindow.setVideoWindowDialogSize)(videoWindow, {
|
|
473
|
+
width: width,
|
|
474
|
+
height: height
|
|
475
|
+
});
|
|
428
476
|
}
|
|
429
477
|
}, {
|
|
430
478
|
key: "_onAudioVolumeUpdated",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _mobxReact = require("mobx-react");
|
|
4
|
+
var _store = require("../../../dialog/store");
|
|
5
|
+
var _react = require("react");
|
|
6
|
+
var _reactDom = require("react-dom");
|
|
7
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
|
+
var ProgressElectronDialog = (0, _mobxReact.observer)(function (_ref) {
|
|
9
|
+
var children = _ref.children;
|
|
10
|
+
var store = (0, _react.useContext)(_store.StoreContext);
|
|
11
|
+
(0, _react.useEffect)(function () {
|
|
12
|
+
var node;
|
|
13
|
+
window.runtime.openRendererWindow('progress-dialog', function (dom) {
|
|
14
|
+
node = dom;
|
|
15
|
+
(0, _reactDom.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_store.StoreContext.Provider, {
|
|
16
|
+
value: store,
|
|
17
|
+
children: children
|
|
18
|
+
}), dom);
|
|
19
|
+
}, {
|
|
20
|
+
frame: false,
|
|
21
|
+
fullscreen: false,
|
|
22
|
+
maximizable: false,
|
|
23
|
+
width: 290,
|
|
24
|
+
height: 60,
|
|
25
|
+
transparent: true
|
|
26
|
+
});
|
|
27
|
+
return function () {
|
|
28
|
+
(0, _reactDom.unmountComponentAtNode)(node);
|
|
29
|
+
window.runtime.closeRendererWindow('progress-dialog');
|
|
30
|
+
};
|
|
31
|
+
}, []);
|
|
32
|
+
return null;
|
|
33
|
+
});
|
|
@@ -231,10 +231,27 @@ var WhitebaordStoreBase = exports["default"] = /*#__PURE__*/function () {
|
|
|
231
231
|
key: "setBoardContainerDom",
|
|
232
232
|
value: function setBoardContainerDom(boardDom) {
|
|
233
233
|
if (boardDom) {
|
|
234
|
-
this.
|
|
234
|
+
if (this.boardContainer === boardDom) {
|
|
235
|
+
this.logger.warn("set board container dom: container is the same, ignore");
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
this.logger.info("set board container dom: container is mounted");
|
|
235
239
|
this.boardContainer = boardDom;
|
|
240
|
+
if (this._isMounted) {
|
|
241
|
+
this.logger.error("set board container dom: container is already mounted");
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// 切换布局和 pin 时,白板会在 Carousel 和 Gallery 两个组件内切换显示
|
|
246
|
+
// 原先的白板容器会被销毁,新的白板容器会重新创建
|
|
247
|
+
// 这里需要重新挂载白板视图到新的容器内
|
|
248
|
+
if (this._boardView) {
|
|
249
|
+
this._mount(this._boardView);
|
|
250
|
+
}
|
|
236
251
|
} else {
|
|
237
|
-
this.logger.
|
|
252
|
+
this.logger.info("set board container dom: container is unmounted");
|
|
253
|
+
this._isMounted = false;
|
|
254
|
+
this.boardContainer = undefined;
|
|
238
255
|
}
|
|
239
256
|
}
|
|
240
257
|
}, {
|
|
@@ -361,6 +378,7 @@ var WhitebaordStoreBase = exports["default"] = /*#__PURE__*/function () {
|
|
|
361
378
|
var reason = data.reason,
|
|
362
379
|
operatorUser = data.operatorUser;
|
|
363
380
|
this._unmount();
|
|
381
|
+
this._boardView = null;
|
|
364
382
|
var stopByOther = reason === _struct.FcrUIBoardShareStopReason.STOPPED_BY_OTHER;
|
|
365
383
|
var normalStop = reason === _struct.FcrUIBoardShareStopReason.NORMAL_STOP;
|
|
366
384
|
var operatorIsNotMe = (operatorUser === null || operatorUser === void 0 ? void 0 : operatorUser.userId) !== this.localUser.userId;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FcrUIWidgetProvider } from '../../providers/widget-provider';
|
|
2
|
+
import { FcrUIWebWidgetConfig } from '../../type';
|
|
3
|
+
export default class WebWidgetStore {
|
|
4
|
+
private _widgetProvider;
|
|
5
|
+
constructor({ widgetProvider }: {
|
|
6
|
+
widgetProvider: FcrUIWidgetProvider;
|
|
7
|
+
});
|
|
8
|
+
get openedWidgets(): Map<string, import("./type").FcrUIWebWidget>;
|
|
9
|
+
release(): void;
|
|
10
|
+
}
|
|
11
|
+
export declare const StoreContext: import("react").Context<{
|
|
12
|
+
widgetConfig: FcrUIWebWidgetConfig;
|
|
13
|
+
store: WebWidgetStore;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,28 @@
|
|
|
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"] = exports.StoreContext = void 0;
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
var _react = require("react");
|
|
12
|
+
var WebWidgetStore = exports["default"] = /*#__PURE__*/function () {
|
|
13
|
+
function WebWidgetStore(_ref) {
|
|
14
|
+
var widgetProvider = _ref.widgetProvider;
|
|
15
|
+
(0, _classCallCheck2["default"])(this, WebWidgetStore);
|
|
16
|
+
this._widgetProvider = widgetProvider;
|
|
17
|
+
}
|
|
18
|
+
return (0, _createClass2["default"])(WebWidgetStore, [{
|
|
19
|
+
key: "openedWidgets",
|
|
20
|
+
get: function get() {
|
|
21
|
+
return this._widgetProvider.openedWidgets;
|
|
22
|
+
}
|
|
23
|
+
}, {
|
|
24
|
+
key: "release",
|
|
25
|
+
value: function release() {}
|
|
26
|
+
}]);
|
|
27
|
+
}(); // #endregion
|
|
28
|
+
var StoreContext = exports.StoreContext = /*#__PURE__*/(0, _react.createContext)(null);
|
package/lib/object-manager.d.ts
CHANGED
|
@@ -44,7 +44,6 @@ export declare enum FcrUIObjectKeys {
|
|
|
44
44
|
P_MULTI_DISPLAY_PROVIDER = "multiDisplayProvider",
|
|
45
45
|
P_WAITING_ROOM_CONTROL_PROVIDER = "waitingRoomControlProvider",
|
|
46
46
|
P_CURRENT_ROOM_CONTROL_PROVIDER = "currentRoomControlProvider",
|
|
47
|
-
P_CONNECTION_PROVIDER = "connectionProvider",
|
|
48
47
|
P_SESSION_PROVIDER = "sessionProvider",
|
|
49
48
|
P_PHONE_AUDIO_CONNECTOR_PROVIDER = "phoneAudioConnectorProvider",
|
|
50
49
|
P_ANNOTATION_PROVIDER = "annotationProvider",
|
package/lib/object-manager.js
CHANGED
|
@@ -160,7 +160,6 @@ var FcrUIObjectKeys = exports.FcrUIObjectKeys = /*#__PURE__*/function (FcrUIObje
|
|
|
160
160
|
FcrUIObjectKeys["P_MULTI_DISPLAY_PROVIDER"] = "multiDisplayProvider";
|
|
161
161
|
FcrUIObjectKeys["P_WAITING_ROOM_CONTROL_PROVIDER"] = "waitingRoomControlProvider";
|
|
162
162
|
FcrUIObjectKeys["P_CURRENT_ROOM_CONTROL_PROVIDER"] = "currentRoomControlProvider";
|
|
163
|
-
FcrUIObjectKeys["P_CONNECTION_PROVIDER"] = "connectionProvider";
|
|
164
163
|
FcrUIObjectKeys["P_SESSION_PROVIDER"] = "sessionProvider";
|
|
165
164
|
FcrUIObjectKeys["P_PHONE_AUDIO_CONNECTOR_PROVIDER"] = "phoneAudioConnectorProvider";
|
|
166
165
|
FcrUIObjectKeys["P_ANNOTATION_PROVIDER"] = "annotationProvider";
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { FcrAnnotationControl } from 'fcr-core/lib/room-control/whiteboard-control-v2/annotation-control/type';
|
|
2
|
+
import { FcrUIDialogProvider } from './dialog-provider';
|
|
3
|
+
import { CurrentShareScreenTypes } from '../modules/share-screen/types';
|
|
4
|
+
import { FcrUIVideoWindowDataSource } from '../shared-data-source/video-window';
|
|
5
|
+
import { FcrUIVideoWindowData } from '../type';
|
|
6
|
+
import { FcrUIPrivilegeProvider } from './privilege-provider';
|
|
7
|
+
import { FcrUIScreenShareSharedDataSource } from '../shared-data-source/screen-share-data';
|
|
8
|
+
export interface FcrUIAnnotationProvider {
|
|
9
|
+
/**
|
|
10
|
+
* 接收端属性,用于获取当前标注窗口的缩放比例
|
|
11
|
+
*/
|
|
12
|
+
get scalcValue(): number;
|
|
13
|
+
/**
|
|
14
|
+
* 接收端方法,用于获取标注功能的 Control 对象
|
|
15
|
+
*/
|
|
16
|
+
get annotationControl(): FcrAnnotationControl | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* 接收端属性,用于获取当前共享窗口数据
|
|
19
|
+
*/
|
|
20
|
+
get screenShareWindowData(): FcrUIVideoWindowData | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* 接收端属性,用于获取当前标注启动状态
|
|
23
|
+
*/
|
|
24
|
+
get annotationHasStart(): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* 安全中是否允许书写
|
|
27
|
+
*/
|
|
28
|
+
get allowAnnotationWrite(): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* 当前用户是否允许书写
|
|
31
|
+
*/
|
|
32
|
+
get allowAnnotationSelfWrite(): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* 发起端状态,用于获取当前是否正在标注
|
|
35
|
+
*/
|
|
36
|
+
get annotating(): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* 发起端数据,当前共享屏幕信息
|
|
39
|
+
*/
|
|
40
|
+
get currentShareInfo(): CurrentShareScreenTypes;
|
|
41
|
+
/**
|
|
42
|
+
* 是否展示toolbar
|
|
43
|
+
*/
|
|
44
|
+
get isShowToolbar(): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* 设置是否展示toolbar
|
|
47
|
+
*/
|
|
48
|
+
setIsShowToolbar(isShow: boolean): void;
|
|
49
|
+
/**
|
|
50
|
+
* 发起端方法,用于打开关闭标注,由用户触发,此操切换标注工具栏打开状态合窗口的鼠标穿透模式
|
|
51
|
+
*/
|
|
52
|
+
toggleAnnotation(): void;
|
|
53
|
+
/**
|
|
54
|
+
* 发起端方法,启动/初始化标注窗口,在主窗口启动时调用
|
|
55
|
+
*/
|
|
56
|
+
initAnnotationWindow(): void;
|
|
57
|
+
/**
|
|
58
|
+
* 发起端方法,打开标注窗口
|
|
59
|
+
*/
|
|
60
|
+
openAnnotationWindow(): void;
|
|
61
|
+
/**
|
|
62
|
+
* 发起端方法,展示标注窗口
|
|
63
|
+
*/
|
|
64
|
+
showAnnotationWindow(): void;
|
|
65
|
+
/**
|
|
66
|
+
* 发起端方法,用于隐藏标注窗口,不是关闭
|
|
67
|
+
*/
|
|
68
|
+
hideAnnotationWindow(): void;
|
|
69
|
+
/**
|
|
70
|
+
* 发起端方法,用于关闭标注窗口
|
|
71
|
+
*/
|
|
72
|
+
closeAnnotationWindow(): void;
|
|
73
|
+
/**
|
|
74
|
+
* 发起端方法,用于设置当前共享屏幕信息
|
|
75
|
+
*/
|
|
76
|
+
setCurrentShareInfo(info: CurrentShareScreenTypes): void;
|
|
77
|
+
/**
|
|
78
|
+
* 发起端方法,用通知标注窗口更新当前共享屏幕信息
|
|
79
|
+
*/
|
|
80
|
+
setBoundsToAnnotationWindow(info?: CurrentShareScreenTypes): void;
|
|
81
|
+
/**
|
|
82
|
+
* 发起端方法,更新标注白板的viewport
|
|
83
|
+
*/
|
|
84
|
+
updateWindowSize(width: number, height: number): void;
|
|
85
|
+
}
|
|
86
|
+
export declare enum FcrAnnotationState {
|
|
87
|
+
START = "start",
|
|
88
|
+
END = "end"
|
|
89
|
+
}
|
|
90
|
+
export declare class FcrUIAnnotationProviderImpl implements FcrUIAnnotationProvider {
|
|
91
|
+
private _dialogProvider;
|
|
92
|
+
private _videoWindowDataSource;
|
|
93
|
+
private _privilegeProvider;
|
|
94
|
+
private _sharedScreenShareSharedDataSource;
|
|
95
|
+
private _annotationDialogId;
|
|
96
|
+
private _annotationToolDialogId;
|
|
97
|
+
private _disposers;
|
|
98
|
+
protected logger: import("agora-foundation/lib/logger").Logger;
|
|
99
|
+
private _annotationControl;
|
|
100
|
+
accessor annotationState: FcrAnnotationState;
|
|
101
|
+
accessor annotating: boolean;
|
|
102
|
+
accessor isShowToolbar: boolean;
|
|
103
|
+
accessor currentShareInfo: CurrentShareScreenTypes;
|
|
104
|
+
get allowAnnotationSelfWrite(): boolean;
|
|
105
|
+
get screenShareWindowData(): import("../shared-data-source/video-window").FcrUIVideoWindowDataImpl | undefined;
|
|
106
|
+
get scalcValue(): number;
|
|
107
|
+
get annotationControl(): FcrAnnotationControl | undefined;
|
|
108
|
+
get annotationHasStart(): boolean;
|
|
109
|
+
get allowAnnotationWrite(): boolean;
|
|
110
|
+
constructor(_dialogProvider: FcrUIDialogProvider, _videoWindowDataSource: FcrUIVideoWindowDataSource, _privilegeProvider: FcrUIPrivilegeProvider, _sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource);
|
|
111
|
+
updateWindowSize(width: number, height: number): void;
|
|
112
|
+
toggleAnnotation(): Promise<void>;
|
|
113
|
+
setIsShowToolbar(isShow: boolean): void;
|
|
114
|
+
initAnnotationWindow(): void;
|
|
115
|
+
openAnnotationWindow(): void;
|
|
116
|
+
showAnnotationWindow(): void;
|
|
117
|
+
hideAnnotationWindow(): void;
|
|
118
|
+
setCurrentShareInfo(info: CurrentShareScreenTypes): void;
|
|
119
|
+
setBoundsToAnnotationWindow(info?: CurrentShareScreenTypes): Promise<void>;
|
|
120
|
+
closeAnnotationWindow(): void;
|
|
121
|
+
release(): void;
|
|
122
|
+
private _openToolbar;
|
|
123
|
+
private _closeToolbar;
|
|
124
|
+
}
|