fcr-ui-scene 3.1.0 → 3.1.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/base.d.ts +1 -0
- package/lib/common/event-store.d.ts +1 -0
- package/lib/electron/app.d.ts +1 -0
- package/lib/electron/app.js +140 -0
- package/lib/electron/default-options.d.ts +2 -0
- package/lib/electron/default-options.js +25 -0
- package/lib/electron/env.d.ts +5 -0
- package/lib/electron/env.js +13 -0
- package/lib/electron/index.d.ts +2 -0
- package/lib/electron/index.js +20 -0
- package/lib/electron/injections.d.ts +45 -0
- package/lib/electron/injections.js +689 -0
- package/lib/electron/main.d.ts +2 -0
- package/lib/electron/main.js +63 -0
- package/lib/electron/plugins/screenshot.d.ts +2 -0
- package/lib/electron/plugins/screenshot.js +49 -0
- package/lib/electron/preload.js +35 -0
- package/lib/electron/tools.d.ts +5 -0
- package/lib/electron/tools.js +57 -0
- package/lib/electron/window.d.ts +12 -0
- package/lib/electron/window.js +112 -0
- package/lib/fragments/control-bar/index.js +11 -1
- package/lib/fragments/share-screen-selection/selection-store.d.ts +1 -0
- package/lib/modules/action-bar/leave/assign-host.d.ts +1 -0
- package/lib/modules/action-bar/leave/leave-meeting.d.ts +1 -0
- package/lib/modules/action-bar/more/poppover-content.d.ts +1 -0
- package/lib/modules/chat/chat-select/index.d.ts +1 -0
- package/lib/modules/chat/demo-wrapper.d.ts +1 -0
- package/lib/modules/device-pretest/audio-preview/speaker-control.d.ts +1 -0
- package/lib/modules/device-pretest/index.d.ts +1 -0
- package/lib/modules/device-pretest/settings/video-effect.d.ts +1 -0
- package/lib/modules/invite/voip-invite.d.ts +1 -0
- package/lib/modules/layout/components/Aside.d.ts +1 -0
- package/lib/modules/layout/member-window/index.d.ts +1 -0
- package/lib/modules/layout/store.d.ts +1 -0
- package/lib/modules/whiteboard/index.d.ts +1 -0
- package/lib/plugins/browser-runtime-plugin.js +0 -3
- package/lib/runtime.d.ts +86 -0
- package/package.json +4 -3
- package/installer/icons/favicon.ico +0 -0
- package/installer/icons/favicon.png +0 -0
- package/installer/mac/entitlements.mac.plist +0 -16
- package/lib/common/device-streams-store.d.ts +0 -34
- package/lib/common/device-streams-store.js +0 -403
- package/lib/fragments/participant/context.d.ts +0 -3
- package/lib/fragments/participant/context.js +0 -9
- package/lib/fragments/participant/index.css +0 -20
- package/lib/fragments/participant/index.d.ts +0 -9
- package/lib/fragments/participant/index.js +0 -90
- package/lib/fragments/participant/room-control-drop-menu/index.css +0 -19
- package/lib/fragments/participant/room-control-drop-menu/index.d.ts +0 -2
- package/lib/fragments/participant/room-control-drop-menu/index.js +0 -134
- package/lib/fragments/participant/store.d.ts +0 -34
- package/lib/fragments/participant/store.js +0 -326
- package/lib/fragments/participant/view.d.ts +0 -2
- package/lib/fragments/participant/view.js +0 -86
- package/lib/fragments/state-bar/index.d.ts +0 -9
- package/lib/fragments/state-bar/index.js +0 -68
- package/lib/fragments/type.d.ts +0 -2
- package/lib/fragments/type.js +0 -6
- package/lib/modules/connection-gateway/components/computer/menu.d.ts +0 -0
- package/lib/modules/connection-gateway/components/computer/menu.js +0 -1
- package/lib/modules/device-settings/audio-settings/audio-settings.d.ts +0 -4
- package/lib/modules/device-settings/audio-settings/audio-settings.js +0 -297
- package/lib/modules/device-settings/audio-settings/index.css +0 -139
- package/lib/modules/device-settings/audio-settings/microphone-detection.d.ts +0 -2
- package/lib/modules/device-settings/audio-settings/microphone-detection.js +0 -68
- package/lib/modules/device-settings/audio-settings/speaker-detection.d.ts +0 -2
- package/lib/modules/device-settings/audio-settings/speaker-detection.js +0 -72
- package/lib/modules/device-settings/common/advance-link.d.ts +0 -3
- package/lib/modules/device-settings/common/advance-link.js +0 -27
- package/lib/modules/device-settings/common/index.css +0 -26
- package/lib/modules/device-settings/common/useNamespace.d.ts +0 -15
- package/lib/modules/device-settings/common/useNamespace.js +0 -66
- package/lib/modules/device-settings/context.d.ts +0 -3
- package/lib/modules/device-settings/context.js +0 -9
- package/lib/modules/device-settings/dialog-wrapper.d.ts +0 -2
- package/lib/modules/device-settings/dialog-wrapper.js +0 -110
- package/lib/modules/device-settings/general-settings/general-settings.d.ts +0 -4
- package/lib/modules/device-settings/general-settings/general-settings.js +0 -66
- package/lib/modules/device-settings/general-settings/index.css +0 -26
- package/lib/modules/device-settings/index.css +0 -109
- package/lib/modules/device-settings/index.d.ts +0 -21
- package/lib/modules/device-settings/index.dev.js +0 -112
- package/lib/modules/device-settings/index.js +0 -84
- package/lib/modules/device-settings/state/index.css +0 -211
- package/lib/modules/device-settings/state/index.d.ts +0 -4
- package/lib/modules/device-settings/state/index.js +0 -330
- package/lib/modules/device-settings/storage-settings/index.css +0 -91
- package/lib/modules/device-settings/storage-settings/storage-settings.d.ts +0 -3
- package/lib/modules/device-settings/storage-settings/storage-settings.js +0 -84
- package/lib/modules/device-settings/store.d.ts +0 -205
- package/lib/modules/device-settings/store.js +0 -1035
- package/lib/modules/device-settings/video-settings/camera-select.d.ts +0 -2
- package/lib/modules/device-settings/video-settings/camera-select.js +0 -51
- package/lib/modules/device-settings/video-settings/index.css +0 -327
- package/lib/modules/device-settings/video-settings/local-video-player.d.ts +0 -3
- package/lib/modules/device-settings/video-settings/local-video-player.js +0 -37
- package/lib/modules/device-settings/video-settings/mirror-toggle.d.ts +0 -2
- package/lib/modules/device-settings/video-settings/mirror-toggle.js +0 -62
- package/lib/modules/device-settings/video-settings/video-settings-basic.d.ts +0 -9
- package/lib/modules/device-settings/video-settings/video-settings-basic.js +0 -177
- package/lib/modules/device-settings/video-settings/video-settings.d.ts +0 -6
- package/lib/modules/device-settings/video-settings/video-settings.js +0 -185
- package/lib/modules/device-settings/view.d.ts +0 -10
- package/lib/modules/device-settings/view.js +0 -193
- package/lib/modules/layout/components/UserWindow.d.ts +0 -8
- package/lib/modules/layout/components/UserWindow.js +0 -513
- package/lib/modules/layout/hooks.d.ts +0 -14
- package/lib/modules/layout/hooks.js +0 -48
- package/lib/modules/share-screen/context.d.ts +0 -3
- package/lib/modules/share-screen/context.js +0 -9
- package/lib/modules/whiteboard/i18n/config.d.ts +0 -1
- package/lib/modules/whiteboard/i18n/config.js +0 -15
- package/lib/modules/whiteboard/i18n/en/index.d.ts +0 -32
- package/lib/modules/whiteboard/i18n/en/index.js +0 -38
- package/lib/modules/whiteboard/i18n/zh/index.d.ts +0 -32
- package/lib/modules/whiteboard/i18n/zh/index.js +0 -38
- /package/lib/{modules/device-settings/index.dev.d.ts → electron/preload.d.ts} +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
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.hookWindow = void 0;
|
|
8
|
+
require("core-js/modules/es.array.concat.js");
|
|
9
|
+
require("core-js/modules/web.timers.js");
|
|
10
|
+
var _window = require("./window");
|
|
11
|
+
var _screenshot = require("./plugins/screenshot");
|
|
12
|
+
var hookWindow = exports.hookWindow = function hookWindow(mainWindow) {
|
|
13
|
+
mainWindow.webContents.addListener('did-start-loading', function () {
|
|
14
|
+
console.log('main window is gone, close all windows');
|
|
15
|
+
(0, _window.closeAllWindows)();
|
|
16
|
+
(0, _window.clearAllRendererWindows)();
|
|
17
|
+
});
|
|
18
|
+
mainWindow.webContents.addListener('did-create-window', function (window, details) {
|
|
19
|
+
console.log('browser window is opened, frameName:', details.frameName);
|
|
20
|
+
(0, _window.putRendererWindow)(details.frameName, window);
|
|
21
|
+
window.webContents.addListener('destroyed', function () {
|
|
22
|
+
console.log('browser window is destroyed, frameName:', details.frameName);
|
|
23
|
+
(0, _window.deleteRendererWindow)(details.frameName);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
// prevent the close event to keep the window alive and renderer process will take charge of when to close the window
|
|
27
|
+
// renderer process will receive the will-close event, do some clean up and then call window.close() to close the window
|
|
28
|
+
window.addListener('close', function (event) {
|
|
29
|
+
event.preventDefault();
|
|
30
|
+
console.log("Window [".concat(window.title, ":").concat(window.id, "] is closed by shortcut CMD + W, send 'will-close' event to that window"));
|
|
31
|
+
window.emit('will-close');
|
|
32
|
+
});
|
|
33
|
+
attachEventOnMethod(window, 'hide', 'CALL_HIDE');
|
|
34
|
+
attachEventOnMethod(window, 'show', 'CALL_SHOW');
|
|
35
|
+
});
|
|
36
|
+
mainWindow.webContents.addListener('render-process-gone', function (event, details) {
|
|
37
|
+
console.log('main window render-process-gone, details', details);
|
|
38
|
+
console.log('will reload main window');
|
|
39
|
+
(0, _window.closeAllWindows)();
|
|
40
|
+
(0, _window.clearAllRendererWindows)();
|
|
41
|
+
setTimeout(function () {
|
|
42
|
+
console.log('reload main window...');
|
|
43
|
+
mainWindow.reload();
|
|
44
|
+
}, 1000);
|
|
45
|
+
});
|
|
46
|
+
(0, _screenshot.listenScreenshot)(mainWindow);
|
|
47
|
+
};
|
|
48
|
+
var attachEventOnMethod = function attachEventOnMethod(browserWindow, method, action) {
|
|
49
|
+
var func = browserWindow[method];
|
|
50
|
+
if (typeof func === 'function') {
|
|
51
|
+
// @ts-ignore
|
|
52
|
+
browserWindow[method] = function () {
|
|
53
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
54
|
+
args[_key] = arguments[_key];
|
|
55
|
+
}
|
|
56
|
+
// @ts-ignore
|
|
57
|
+
func.apply(this, args);
|
|
58
|
+
this.webContents.send('custom-event', {
|
|
59
|
+
action: action
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
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.listenScreenshot = void 0;
|
|
9
|
+
var _electron = require("electron");
|
|
10
|
+
var _electronScreenshots = _interopRequireDefault(require("electron-screenshots"));
|
|
11
|
+
var listenScreenshot = exports.listenScreenshot = function listenScreenshot(window) {
|
|
12
|
+
var shortcutCapture = new _electronScreenshots["default"]();
|
|
13
|
+
var isCapturing = false,
|
|
14
|
+
module = '';
|
|
15
|
+
var stopScreen = function stopScreen() {
|
|
16
|
+
window.show();
|
|
17
|
+
isCapturing = false;
|
|
18
|
+
};
|
|
19
|
+
shortcutCapture.on('ok', function () {
|
|
20
|
+
stopScreen();
|
|
21
|
+
});
|
|
22
|
+
shortcutCapture.on('finish', function () {
|
|
23
|
+
stopScreen();
|
|
24
|
+
});
|
|
25
|
+
shortcutCapture.on('cancel', function () {
|
|
26
|
+
stopScreen();
|
|
27
|
+
});
|
|
28
|
+
shortcutCapture.on('save', function () {
|
|
29
|
+
stopScreen();
|
|
30
|
+
});
|
|
31
|
+
var showScreenShot = function showScreenShot() {
|
|
32
|
+
if (shortcutCapture) {
|
|
33
|
+
shortcutCapture.startCapture();
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
_electron.ipcMain.addListener('short-cut-capture', function (_, event, payload) {
|
|
37
|
+
if (!isCapturing) {
|
|
38
|
+
isCapturing = true;
|
|
39
|
+
var hideWindow = false;
|
|
40
|
+
hideWindow = payload.hideWindow;
|
|
41
|
+
module = payload.module;
|
|
42
|
+
hideWindow && window.hide();
|
|
43
|
+
if (!shortcutCapture) {
|
|
44
|
+
shortcutCapture = new _electronScreenshots["default"]();
|
|
45
|
+
}
|
|
46
|
+
showScreenShot();
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _injections = require("./injections");
|
|
4
|
+
window.runtime = {
|
|
5
|
+
open: _injections.open,
|
|
6
|
+
close: _injections.close,
|
|
7
|
+
openRendererWindow: _injections.openRendererWindow,
|
|
8
|
+
closeRendererWindow: _injections.closeRendererWindow,
|
|
9
|
+
sendEvent: _injections.sendEvent,
|
|
10
|
+
addEventListener: _injections.addEventListener,
|
|
11
|
+
removeEventListener: _injections.removeEventListener,
|
|
12
|
+
getBrowserWindowById: _injections.getBrowserWindowById,
|
|
13
|
+
captureScreen: _injections.captureScreen,
|
|
14
|
+
browserWindow: _injections.browserWindow,
|
|
15
|
+
setFragmentOptions: _injections.setFragmentOptions,
|
|
16
|
+
openLinkInDefaultBrowser: _injections.openLinkInDefaultBrowser,
|
|
17
|
+
openDirectory: _injections.openDirectory,
|
|
18
|
+
showItemInFolder: _injections.showItemInFolder,
|
|
19
|
+
screen: _injections.screen,
|
|
20
|
+
launch: _injections.launch,
|
|
21
|
+
setAlwaysOnTop: _injections.setAlwaysOnTop,
|
|
22
|
+
quitApp: _injections.quitApp,
|
|
23
|
+
getLaunchOptions: _injections.getLaunchOptions,
|
|
24
|
+
getSystemMemorySize: _injections.getSystemMemorySize,
|
|
25
|
+
getSystemCpuInfo: _injections.getSystemCpuInfo,
|
|
26
|
+
getNetworkType: _injections.getNetworkType,
|
|
27
|
+
getAssetUrl: _injections.getAssetUrl,
|
|
28
|
+
getRendererProcessUsage: _injections.getRendererProcessUsage,
|
|
29
|
+
setFragmentBaseUrl: _injections.setFragmentBaseUrl,
|
|
30
|
+
getVirtualBgResource: _injections.getVirtualBgResource,
|
|
31
|
+
fileToBase64: _injections.fileToBase64,
|
|
32
|
+
registerListenerReady: _injections.registerListenerReady,
|
|
33
|
+
releaseSubAllWindowRefs: _injections.releaseSubAllWindowRefs,
|
|
34
|
+
getMediaSourceIdList: _injections.getMediaSourceIdList
|
|
35
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
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.getCpuUsage = getCpuUsage;
|
|
9
|
+
exports.getProcessIds = getProcessIds;
|
|
10
|
+
require("core-js/modules/es.array.concat.js");
|
|
11
|
+
require("core-js/modules/es.array.filter.js");
|
|
12
|
+
require("core-js/modules/es.array.for-each.js");
|
|
13
|
+
require("core-js/modules/es.array.includes.js");
|
|
14
|
+
require("core-js/modules/es.array.map.js");
|
|
15
|
+
require("core-js/modules/es.array.reduce.js");
|
|
16
|
+
require("core-js/modules/es.function.name.js");
|
|
17
|
+
require("core-js/modules/es.number.to-fixed.js");
|
|
18
|
+
require("core-js/modules/es.object.to-string.js");
|
|
19
|
+
require("core-js/modules/es.promise.js");
|
|
20
|
+
require("core-js/modules/es.string.includes.js");
|
|
21
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
22
|
+
var _systeminformation = _interopRequireDefault(require("systeminformation"));
|
|
23
|
+
function getProcessIds(processName) {
|
|
24
|
+
return new Promise(function (resolve, reject) {
|
|
25
|
+
_systeminformation["default"].processes().then(function (processes) {
|
|
26
|
+
var appProcess = processes.list.filter(function (process) {
|
|
27
|
+
return process.name.includes(processName);
|
|
28
|
+
});
|
|
29
|
+
var processIds = appProcess.map(function (item) {
|
|
30
|
+
return String(item.pid);
|
|
31
|
+
});
|
|
32
|
+
console.log("Process IDs for ".concat(processName, ":"), processIds);
|
|
33
|
+
resolve(processIds);
|
|
34
|
+
})["catch"](function (err) {
|
|
35
|
+
return reject(err);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function getCpuUsage() {
|
|
40
|
+
return new Promise(function (resolve, reject) {
|
|
41
|
+
_systeminformation["default"].currentLoad().then(function (data) {
|
|
42
|
+
var total = data.cpus.reduce(function (prev, curr) {
|
|
43
|
+
return prev + curr.load;
|
|
44
|
+
}, 0);
|
|
45
|
+
console.log("Total CPU Usage: ".concat(data.currentLoad.toFixed(2), "%, total: ").concat(total, ", average: ").concat(total / data.cpus.length));
|
|
46
|
+
data.cpus.forEach(function (cpu, index) {
|
|
47
|
+
console.log("Core ".concat(index, " - CPU Usage: ").concat(cpu.load.toFixed(2), "%"));
|
|
48
|
+
});
|
|
49
|
+
resolve({
|
|
50
|
+
coreCount: data.cpus.length,
|
|
51
|
+
totalUsage: total
|
|
52
|
+
});
|
|
53
|
+
})["catch"](function (err) {
|
|
54
|
+
return reject(err);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Electron, { BrowserWindow } from 'electron';
|
|
2
|
+
export declare const windowOptionsMap: Record<string, Electron.BrowserWindowConstructorOptions>;
|
|
3
|
+
export declare const webPreferencesMap: Record<string, Electron.WebPreferences>;
|
|
4
|
+
export declare const open: (entryPath: string, dialogId?: string) => void;
|
|
5
|
+
export declare const close: (entryPath: string, dialogId?: string) => void;
|
|
6
|
+
export declare const getWindowKeyById: (windowId: number) => string;
|
|
7
|
+
export declare const closeAllWindows: () => void;
|
|
8
|
+
export declare const putRendererWindow: (entryPath: string, browserWindow: Electron.BrowserWindow) => void;
|
|
9
|
+
export declare const deleteRendererWindow: (entryPath: string) => void;
|
|
10
|
+
export declare const getRendererWindow: (entryPath: string) => Electron.BrowserWindow;
|
|
11
|
+
export declare const clearAllRendererWindows: () => void;
|
|
12
|
+
export declare const setFragmentBaseUrl: (_isDev: boolean, _baseUrl: string) => void;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
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.iterator.js");
|
|
7
|
+
require("core-js/modules/es.array.push.js");
|
|
8
|
+
require("core-js/modules/es.object.define-properties.js");
|
|
9
|
+
require("core-js/modules/es.object.define-property.js");
|
|
10
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
11
|
+
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
12
|
+
require("core-js/modules/es.object.keys.js");
|
|
13
|
+
require("core-js/modules/es.object.to-string.js");
|
|
14
|
+
require("core-js/modules/es.string.iterator.js");
|
|
15
|
+
require("core-js/modules/es.weak-map.js");
|
|
16
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
17
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
18
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
19
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
20
|
+
Object.defineProperty(exports, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
});
|
|
23
|
+
exports.windowOptionsMap = exports.webPreferencesMap = exports.setFragmentBaseUrl = exports.putRendererWindow = exports.open = exports.getWindowKeyById = exports.getRendererWindow = exports.deleteRendererWindow = exports.closeAllWindows = exports.close = exports.clearAllRendererWindows = void 0;
|
|
24
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
require("core-js/modules/es.array.concat.js");
|
|
26
|
+
var _electron = require("electron");
|
|
27
|
+
var _defaultOptions = require("./default-options");
|
|
28
|
+
var env = _interopRequireWildcard(require("./env"));
|
|
29
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
30
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
31
|
+
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; }
|
|
32
|
+
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; }
|
|
33
|
+
var windowOptionsMap = exports.windowOptionsMap = {};
|
|
34
|
+
var webPreferencesMap = exports.webPreferencesMap = {};
|
|
35
|
+
var windows = {};
|
|
36
|
+
var rendererWindows = {};
|
|
37
|
+
var windowKeyById = {};
|
|
38
|
+
var isDev = env.isDev;
|
|
39
|
+
var baseUrl = env.devPageUrl;
|
|
40
|
+
var loadFragment = function loadFragment(browserWindow, path) {
|
|
41
|
+
var url = isDev ? "".concat(baseUrl, "/").concat(path, ".html") : "dist/".concat(path, ".html");
|
|
42
|
+
if (isDev) {
|
|
43
|
+
return browserWindow.loadURL(url);
|
|
44
|
+
} else {
|
|
45
|
+
return browserWindow.loadFile(url);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
var open = exports.open = function open(entryPath, dialogId) {
|
|
49
|
+
var _windowOptionsMap$ent;
|
|
50
|
+
var key = entryPath + (dialogId ? dialogId : '');
|
|
51
|
+
var browserWindow = windows[key];
|
|
52
|
+
if (!browserWindow) {
|
|
53
|
+
browserWindow = new _electron.BrowserWindow(_objectSpread(_objectSpread(_objectSpread({}, _defaultOptions.defaultWindowOptions), windowOptionsMap[entryPath]), {}, {
|
|
54
|
+
webPreferences: _objectSpread(_objectSpread({}, _defaultOptions.defaultWebPreferences), webPreferencesMap[entryPath])
|
|
55
|
+
}));
|
|
56
|
+
var windowId = browserWindow.id;
|
|
57
|
+
browserWindow.addListener('closed', function () {
|
|
58
|
+
delete windows[key];
|
|
59
|
+
delete windowKeyById[windowId];
|
|
60
|
+
});
|
|
61
|
+
browserWindow.webContents.addListener('render-process-gone', function (event, arg) {
|
|
62
|
+
console.log('browserWindow render-process-gone', arg);
|
|
63
|
+
});
|
|
64
|
+
loadFragment(browserWindow, entryPath);
|
|
65
|
+
windows[key] = browserWindow;
|
|
66
|
+
windowKeyById[windowId] = entryPath;
|
|
67
|
+
}
|
|
68
|
+
if ((_windowOptionsMap$ent = windowOptionsMap[entryPath].show) !== null && _windowOptionsMap$ent !== void 0 ? _windowOptionsMap$ent : true) {
|
|
69
|
+
browserWindow.show();
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
var close = exports.close = function close(entryPath, dialogId) {
|
|
73
|
+
var key = entryPath + (dialogId ? dialogId : '');
|
|
74
|
+
if (key in windows) {
|
|
75
|
+
var browserWindow = windows[key];
|
|
76
|
+
if (browserWindow) {
|
|
77
|
+
browserWindow.close();
|
|
78
|
+
delete windows[key];
|
|
79
|
+
delete windowKeyById[browserWindow.id];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
var getWindowKeyById = exports.getWindowKeyById = function getWindowKeyById(windowId) {
|
|
84
|
+
return windowKeyById[windowId];
|
|
85
|
+
};
|
|
86
|
+
var closeAllWindows = exports.closeAllWindows = function closeAllWindows() {
|
|
87
|
+
for (var key in windows) {
|
|
88
|
+
windows[key].destroy();
|
|
89
|
+
}
|
|
90
|
+
windows = {};
|
|
91
|
+
windowKeyById = {};
|
|
92
|
+
};
|
|
93
|
+
var putRendererWindow = exports.putRendererWindow = function putRendererWindow(entryPath, browserWindow) {
|
|
94
|
+
rendererWindows[entryPath] = browserWindow;
|
|
95
|
+
};
|
|
96
|
+
var deleteRendererWindow = exports.deleteRendererWindow = function deleteRendererWindow(entryPath) {
|
|
97
|
+
delete rendererWindows[entryPath];
|
|
98
|
+
};
|
|
99
|
+
var getRendererWindow = exports.getRendererWindow = function getRendererWindow(entryPath) {
|
|
100
|
+
return rendererWindows[entryPath];
|
|
101
|
+
};
|
|
102
|
+
var clearAllRendererWindows = exports.clearAllRendererWindows = function clearAllRendererWindows() {
|
|
103
|
+
for (var key in rendererWindows) {
|
|
104
|
+
rendererWindows[key].emit('will-close');
|
|
105
|
+
rendererWindows[key].destroy();
|
|
106
|
+
}
|
|
107
|
+
rendererWindows = {};
|
|
108
|
+
};
|
|
109
|
+
var setFragmentBaseUrl = exports.setFragmentBaseUrl = function setFragmentBaseUrl(_isDev, _baseUrl) {
|
|
110
|
+
isDev = _isDev;
|
|
111
|
+
baseUrl = _baseUrl;
|
|
112
|
+
};
|
|
@@ -18,6 +18,9 @@ var _context = require("./context");
|
|
|
18
18
|
var _controlBarStore = _interopRequireDefault(require("./control-bar-store"));
|
|
19
19
|
require("./index.css");
|
|
20
20
|
var _view = require("./view");
|
|
21
|
+
var _react = _interopRequireDefault(require("react"));
|
|
22
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
23
|
+
var _root = require("react-hot-loader/root");
|
|
21
24
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
25
|
var _window;
|
|
23
26
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
@@ -220,4 +223,11 @@ var windowOptions = exports.windowOptions = {
|
|
|
220
223
|
var webPreferences = exports.webPreferences = {
|
|
221
224
|
nodeIntegration: true
|
|
222
225
|
};
|
|
223
|
-
var title = exports.title = 'Control Bar';
|
|
226
|
+
var title = exports.title = 'Control Bar';
|
|
227
|
+
var $$fragment = new ControlBar(window.runtime);
|
|
228
|
+
var App = (0, _root.hot)(function () {
|
|
229
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_react["default"].Fragment, {
|
|
230
|
+
children: $$fragment.component
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
_reactDom["default"].render( /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {}), document.getElementById('root'));
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { AgoraRtcDisplayInfo, AgoraRtcScreenCaptureType, AgoraRtcWindowInfo } from 'agora-rte-sdk/lib/core/rtc/type';
|
|
2
3
|
import { AudioProcessingChannel } from 'agora-ui-foundation/lib/components/room-screen-share-state-bar/share-audio';
|
|
3
4
|
import { FcrUserInfo, FcrUserRole } from 'agora-edu-core/lib/type';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { FcrDesktopMediaControl, FcrStreamControl, FcrUserControl } from 'agora-edu-core';
|
|
2
3
|
import { FcrChatRoomConnectionState, FcrPrivilegeUserRole, FcrUserInfo, FcrUserRole, FcrUserUpdatedEvent } from 'agora-edu-core/lib/type';
|
|
3
4
|
import { FcrVideoWindowPreviewType } from '../video-window/type';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { FcrUserControl } from 'agora-edu-core/lib/room-control/user-control';
|
|
2
3
|
import { FcrUIEventStore } from '../../common/event-store';
|
|
3
4
|
import { FcrBoardRegion, ToolbarEvents, WhiteboardBaseEvents, WhiteboardControlbarEvents, WhiteboardRoomEvents, WhiteboardUIEvents } from './type';
|
|
@@ -36,9 +36,6 @@ if (!window.runtime) {
|
|
|
36
36
|
});
|
|
37
37
|
},
|
|
38
38
|
quitApp: function quitApp() {},
|
|
39
|
-
getBundleType: function getBundleType() {
|
|
40
|
-
return Promise.resolve('JS_BUNDLE');
|
|
41
|
-
},
|
|
42
39
|
getRendererProcessUsage: function getRendererProcessUsage() {
|
|
43
40
|
return Promise.resolve({
|
|
44
41
|
cpuUsage: 0,
|
package/lib/runtime.d.ts
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { CpuInfo } from 'os';
|
|
2
|
+
|
|
3
|
+
declare global {
|
|
4
|
+
interface NetworkType {
|
|
5
|
+
isWifiConnected: boolean;
|
|
6
|
+
connection: string;
|
|
7
|
+
}
|
|
8
|
+
interface Fragment {
|
|
9
|
+
get name(): string;
|
|
10
|
+
|
|
11
|
+
get component(): import('react').JSX.Element;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
interface RendererCustomEvent {
|
|
15
|
+
action: string;
|
|
16
|
+
payload: unknown;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface MethodCallEvent {
|
|
20
|
+
targetId: string;
|
|
21
|
+
methodName: string;
|
|
22
|
+
params: unknown[];
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
interface WindowPool {
|
|
26
|
+
getWindow(): import('electron').BrowserWindow | undefined;
|
|
27
|
+
putWindow(window: import('electron').BrowserWindow): void;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
interface Runtime {
|
|
31
|
+
sendEvent: (event: RendererCustomEvent) => void;
|
|
32
|
+
open(entryPath: string, dialogId?: string): void;
|
|
33
|
+
close(entryPath: string, dialogId?: string): void;
|
|
34
|
+
openRendererWindow(
|
|
35
|
+
frameName: string,
|
|
36
|
+
renderFn: (dom: Element, browserWindow: Electron.BrowserWindow) => void,
|
|
37
|
+
windowOptions: import('electron').BrowserWindowConstructorOptions,
|
|
38
|
+
): void;
|
|
39
|
+
closeRendererWindow(frameName: string): void;
|
|
40
|
+
addEventListener(
|
|
41
|
+
listener: (ipcEvent: import('electron').IpcRendererEvent, event: RendererCustomEvent) => void,
|
|
42
|
+
): void;
|
|
43
|
+
removeEventListener(
|
|
44
|
+
listener: (ipcEvent: import('electron').IpcRendererEvent, event: RendererCustomEvent) => void,
|
|
45
|
+
): void;
|
|
46
|
+
|
|
47
|
+
browserWindow: import('electron').BrowserWindow;
|
|
48
|
+
captureScreen(options?: { hideWindow?: boolean }): void;
|
|
49
|
+
setFragmentOptions(
|
|
50
|
+
entryPath: string,
|
|
51
|
+
windowOptions: import('electron').BrowserWindowConstructorOptions,
|
|
52
|
+
webPreferences: import('electron').WebPreferences,
|
|
53
|
+
): void;
|
|
54
|
+
getLaunchOptions?(): Promise<Record<string, any>>;
|
|
55
|
+
openLinkInDefaultBrowser(url: string): void;
|
|
56
|
+
openDirectory(): Promise<string | undefined>;
|
|
57
|
+
showItemInFolder(path: string): void;
|
|
58
|
+
screen: Electron.Screen;
|
|
59
|
+
launch?(options: any): void;
|
|
60
|
+
setAlwaysOnTop(): void;
|
|
61
|
+
quitApp(): void;
|
|
62
|
+
getSystemMemorySize(): number;
|
|
63
|
+
getSystemCpuInfo(): CpuInfo[];
|
|
64
|
+
getNetworkType(): Promise<NetworkType>;
|
|
65
|
+
getAssetUrl(path: string): string;
|
|
66
|
+
getRendererProcessUsage(): Promise<{
|
|
67
|
+
cpuUsage: number;
|
|
68
|
+
memoryUsage: number;
|
|
69
|
+
totalMemoryUsage: number;
|
|
70
|
+
totalCpuUsage: number;
|
|
71
|
+
}>;
|
|
72
|
+
setFragmentBaseUrl(isDev: boolean, baseUrl: string): void;
|
|
73
|
+
getBrowserWindowById(id: number): import('electron').BrowserWindow | undefined;
|
|
74
|
+
getVirtualBgResource(url: string, md5Url: string, type: 'image' | 'video'): Promise<string[]>;
|
|
75
|
+
fileToBase64(filePath: string, type: 'image' | 'video'): string;
|
|
76
|
+
registerListenerReady(): void;
|
|
77
|
+
releaseSubAllWindowRefs(): void;
|
|
78
|
+
getMediaSourceIdList(): { title: string; mediaSourceId: string }[];
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
interface Window {
|
|
82
|
+
runtime: Runtime;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fcr-ui-scene",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.1",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"repository": "ssh://git@git.agoralab.co/aduc/fcr-ui-scene-desktop.git",
|
|
6
6
|
"author": "agora.io",
|
|
@@ -37,7 +37,8 @@
|
|
|
37
37
|
"tinycolor2": "^1.6.0",
|
|
38
38
|
"electron-screenshots": "^0.5.26",
|
|
39
39
|
"pidusage": "^3.0.2",
|
|
40
|
-
"systeminformation": "^5.22.11"
|
|
40
|
+
"systeminformation": "^5.22.11",
|
|
41
|
+
"jszip": "^3.10.1"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
44
|
"electron": "24.8.8",
|
|
@@ -67,4 +68,4 @@
|
|
|
67
68
|
"electron_version": "24.8.8",
|
|
68
69
|
"prebuilt": true
|
|
69
70
|
}
|
|
70
|
-
}
|
|
71
|
+
}
|
|
Binary file
|
|
Binary file
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
-
<plist version="1.0">
|
|
4
|
-
<dict>
|
|
5
|
-
<key>com.apple.security.cs.allow-jit</key>
|
|
6
|
-
<true/>
|
|
7
|
-
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
|
8
|
-
<true/>
|
|
9
|
-
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
|
10
|
-
<true/>
|
|
11
|
-
<key>com.apple.security.device.audio-input</key>
|
|
12
|
-
<true/>
|
|
13
|
-
<key>com.apple.security.device.camera</key>
|
|
14
|
-
<true/>
|
|
15
|
-
</dict>
|
|
16
|
-
</plist>
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { FcrDesktopMediaControl } from 'agora-edu-core';
|
|
2
|
-
import { FcrRoomControl } from 'agora-edu-core/lib/room-control';
|
|
3
|
-
import { FcrSecurityStore } from './security-store';
|
|
4
|
-
import { FcrDeviceStore } from './device-store';
|
|
5
|
-
export interface FcrDeviceStreamsStoreParams {
|
|
6
|
-
mediaControl: FcrDesktopMediaControl;
|
|
7
|
-
roomControl: FcrRoomControl;
|
|
8
|
-
securityStore: FcrSecurityStore;
|
|
9
|
-
deviceStore: FcrDeviceStore;
|
|
10
|
-
}
|
|
11
|
-
export declare class FcrDeviceStreamsStore {
|
|
12
|
-
protected logger: import("agora-foundation/lib/logger").Logger;
|
|
13
|
-
private _mediaControl;
|
|
14
|
-
private _roomControl;
|
|
15
|
-
private _securityStore;
|
|
16
|
-
private _deviceStore;
|
|
17
|
-
private _listeners;
|
|
18
|
-
private get _localUser();
|
|
19
|
-
private get _localCameraStream();
|
|
20
|
-
private get _canStartLocalVideo();
|
|
21
|
-
private get _canStartLocalAudio();
|
|
22
|
-
constructor({ mediaControl, roomControl, securityStore, deviceStore, }: FcrDeviceStreamsStoreParams);
|
|
23
|
-
bindLocalAudioStream(): void;
|
|
24
|
-
bindLocalVideoStream(): void;
|
|
25
|
-
enableCameraWithStream(enable: boolean): Promise<void>;
|
|
26
|
-
enableMicrophoneWithStream(enable: boolean): Promise<void>;
|
|
27
|
-
private _initLocalStream;
|
|
28
|
-
private _handleCameraChanged;
|
|
29
|
-
private _handleMicrophoneChanged;
|
|
30
|
-
private _handleCameraEnabledChanged;
|
|
31
|
-
private _handleMicrophoneEnabledChanged;
|
|
32
|
-
private _publishLocalStream;
|
|
33
|
-
}
|
|
34
|
-
export declare const matchVirtualSoundCardPattern: (deviceName: string) => boolean;
|