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.
Files changed (119) hide show
  1. package/lib/base.d.ts +1 -0
  2. package/lib/common/event-store.d.ts +1 -0
  3. package/lib/electron/app.d.ts +1 -0
  4. package/lib/electron/app.js +140 -0
  5. package/lib/electron/default-options.d.ts +2 -0
  6. package/lib/electron/default-options.js +25 -0
  7. package/lib/electron/env.d.ts +5 -0
  8. package/lib/electron/env.js +13 -0
  9. package/lib/electron/index.d.ts +2 -0
  10. package/lib/electron/index.js +20 -0
  11. package/lib/electron/injections.d.ts +45 -0
  12. package/lib/electron/injections.js +689 -0
  13. package/lib/electron/main.d.ts +2 -0
  14. package/lib/electron/main.js +63 -0
  15. package/lib/electron/plugins/screenshot.d.ts +2 -0
  16. package/lib/electron/plugins/screenshot.js +49 -0
  17. package/lib/electron/preload.js +35 -0
  18. package/lib/electron/tools.d.ts +5 -0
  19. package/lib/electron/tools.js +57 -0
  20. package/lib/electron/window.d.ts +12 -0
  21. package/lib/electron/window.js +112 -0
  22. package/lib/fragments/control-bar/index.js +11 -1
  23. package/lib/fragments/share-screen-selection/selection-store.d.ts +1 -0
  24. package/lib/modules/action-bar/leave/assign-host.d.ts +1 -0
  25. package/lib/modules/action-bar/leave/leave-meeting.d.ts +1 -0
  26. package/lib/modules/action-bar/more/poppover-content.d.ts +1 -0
  27. package/lib/modules/chat/chat-select/index.d.ts +1 -0
  28. package/lib/modules/chat/demo-wrapper.d.ts +1 -0
  29. package/lib/modules/device-pretest/audio-preview/speaker-control.d.ts +1 -0
  30. package/lib/modules/device-pretest/index.d.ts +1 -0
  31. package/lib/modules/device-pretest/settings/video-effect.d.ts +1 -0
  32. package/lib/modules/invite/voip-invite.d.ts +1 -0
  33. package/lib/modules/layout/components/Aside.d.ts +1 -0
  34. package/lib/modules/layout/member-window/index.d.ts +1 -0
  35. package/lib/modules/layout/store.d.ts +1 -0
  36. package/lib/modules/whiteboard/index.d.ts +1 -0
  37. package/lib/plugins/browser-runtime-plugin.js +0 -3
  38. package/lib/runtime.d.ts +86 -0
  39. package/package.json +4 -3
  40. package/installer/icons/favicon.ico +0 -0
  41. package/installer/icons/favicon.png +0 -0
  42. package/installer/mac/entitlements.mac.plist +0 -16
  43. package/lib/common/device-streams-store.d.ts +0 -34
  44. package/lib/common/device-streams-store.js +0 -403
  45. package/lib/fragments/participant/context.d.ts +0 -3
  46. package/lib/fragments/participant/context.js +0 -9
  47. package/lib/fragments/participant/index.css +0 -20
  48. package/lib/fragments/participant/index.d.ts +0 -9
  49. package/lib/fragments/participant/index.js +0 -90
  50. package/lib/fragments/participant/room-control-drop-menu/index.css +0 -19
  51. package/lib/fragments/participant/room-control-drop-menu/index.d.ts +0 -2
  52. package/lib/fragments/participant/room-control-drop-menu/index.js +0 -134
  53. package/lib/fragments/participant/store.d.ts +0 -34
  54. package/lib/fragments/participant/store.js +0 -326
  55. package/lib/fragments/participant/view.d.ts +0 -2
  56. package/lib/fragments/participant/view.js +0 -86
  57. package/lib/fragments/state-bar/index.d.ts +0 -9
  58. package/lib/fragments/state-bar/index.js +0 -68
  59. package/lib/fragments/type.d.ts +0 -2
  60. package/lib/fragments/type.js +0 -6
  61. package/lib/modules/connection-gateway/components/computer/menu.d.ts +0 -0
  62. package/lib/modules/connection-gateway/components/computer/menu.js +0 -1
  63. package/lib/modules/device-settings/audio-settings/audio-settings.d.ts +0 -4
  64. package/lib/modules/device-settings/audio-settings/audio-settings.js +0 -297
  65. package/lib/modules/device-settings/audio-settings/index.css +0 -139
  66. package/lib/modules/device-settings/audio-settings/microphone-detection.d.ts +0 -2
  67. package/lib/modules/device-settings/audio-settings/microphone-detection.js +0 -68
  68. package/lib/modules/device-settings/audio-settings/speaker-detection.d.ts +0 -2
  69. package/lib/modules/device-settings/audio-settings/speaker-detection.js +0 -72
  70. package/lib/modules/device-settings/common/advance-link.d.ts +0 -3
  71. package/lib/modules/device-settings/common/advance-link.js +0 -27
  72. package/lib/modules/device-settings/common/index.css +0 -26
  73. package/lib/modules/device-settings/common/useNamespace.d.ts +0 -15
  74. package/lib/modules/device-settings/common/useNamespace.js +0 -66
  75. package/lib/modules/device-settings/context.d.ts +0 -3
  76. package/lib/modules/device-settings/context.js +0 -9
  77. package/lib/modules/device-settings/dialog-wrapper.d.ts +0 -2
  78. package/lib/modules/device-settings/dialog-wrapper.js +0 -110
  79. package/lib/modules/device-settings/general-settings/general-settings.d.ts +0 -4
  80. package/lib/modules/device-settings/general-settings/general-settings.js +0 -66
  81. package/lib/modules/device-settings/general-settings/index.css +0 -26
  82. package/lib/modules/device-settings/index.css +0 -109
  83. package/lib/modules/device-settings/index.d.ts +0 -21
  84. package/lib/modules/device-settings/index.dev.js +0 -112
  85. package/lib/modules/device-settings/index.js +0 -84
  86. package/lib/modules/device-settings/state/index.css +0 -211
  87. package/lib/modules/device-settings/state/index.d.ts +0 -4
  88. package/lib/modules/device-settings/state/index.js +0 -330
  89. package/lib/modules/device-settings/storage-settings/index.css +0 -91
  90. package/lib/modules/device-settings/storage-settings/storage-settings.d.ts +0 -3
  91. package/lib/modules/device-settings/storage-settings/storage-settings.js +0 -84
  92. package/lib/modules/device-settings/store.d.ts +0 -205
  93. package/lib/modules/device-settings/store.js +0 -1035
  94. package/lib/modules/device-settings/video-settings/camera-select.d.ts +0 -2
  95. package/lib/modules/device-settings/video-settings/camera-select.js +0 -51
  96. package/lib/modules/device-settings/video-settings/index.css +0 -327
  97. package/lib/modules/device-settings/video-settings/local-video-player.d.ts +0 -3
  98. package/lib/modules/device-settings/video-settings/local-video-player.js +0 -37
  99. package/lib/modules/device-settings/video-settings/mirror-toggle.d.ts +0 -2
  100. package/lib/modules/device-settings/video-settings/mirror-toggle.js +0 -62
  101. package/lib/modules/device-settings/video-settings/video-settings-basic.d.ts +0 -9
  102. package/lib/modules/device-settings/video-settings/video-settings-basic.js +0 -177
  103. package/lib/modules/device-settings/video-settings/video-settings.d.ts +0 -6
  104. package/lib/modules/device-settings/video-settings/video-settings.js +0 -185
  105. package/lib/modules/device-settings/view.d.ts +0 -10
  106. package/lib/modules/device-settings/view.js +0 -193
  107. package/lib/modules/layout/components/UserWindow.d.ts +0 -8
  108. package/lib/modules/layout/components/UserWindow.js +0 -513
  109. package/lib/modules/layout/hooks.d.ts +0 -14
  110. package/lib/modules/layout/hooks.js +0 -48
  111. package/lib/modules/share-screen/context.d.ts +0 -3
  112. package/lib/modules/share-screen/context.js +0 -9
  113. package/lib/modules/whiteboard/i18n/config.d.ts +0 -1
  114. package/lib/modules/whiteboard/i18n/config.js +0 -15
  115. package/lib/modules/whiteboard/i18n/en/index.d.ts +0 -32
  116. package/lib/modules/whiteboard/i18n/en/index.js +0 -38
  117. package/lib/modules/whiteboard/i18n/zh/index.d.ts +0 -32
  118. package/lib/modules/whiteboard/i18n/zh/index.js +0 -38
  119. /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,2 @@
1
+ import { BrowserWindow } from 'electron';
2
+ export declare const listenScreenshot: (window: BrowserWindow) => void;
@@ -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,5 @@
1
+ export declare function getProcessIds(processName: string): Promise<string[]>;
2
+ export declare function getCpuUsage(): Promise<{
3
+ coreCount: number;
4
+ totalUsage: number;
5
+ }>;
@@ -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 './index.css';
2
3
  interface AssignHostProps {
3
4
  setPopoverOpened: React.Dispatch<React.SetStateAction<boolean>>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.css';
2
3
  interface LeaveMeetingProps {
3
4
  setPopoverOpened: React.Dispatch<React.SetStateAction<boolean>>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.css';
2
3
  interface MenuItemProps {
3
4
  setVisible: React.Dispatch<React.SetStateAction<boolean>>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.css';
2
3
  import { FcrUserInfo } from 'agora-edu-core/lib/type';
3
4
  interface ChatSelectProps {
@@ -1 +1,2 @@
1
+ /// <reference types="react" />
1
2
  export declare const DemoWrapper: React.FC;
@@ -1 +1,2 @@
1
+ /// <reference types="react" />
1
2
  export declare const SpeakerControl: React.FC<{}>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.css';
2
3
  import 'agora-ui-foundation/lib/components/local-video-player/index.css';
3
4
  import '../setting/video-settings/index.css';
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export type TabKeyType = 'basic' | 'virtual-background' | 'beauty-filter';
2
3
  interface IVideoEffect {
3
4
  children?: React.ReactNode;
@@ -1 +1,2 @@
1
+ /// <reference types="react" />
1
2
  export declare const VoipInvite: React.FC;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export interface AsideProps {
2
3
  width: number;
3
4
  onDragHandler: (event: React.PointerEvent<HTMLDivElement>) => void;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { FcrUserRole } from 'agora-edu-core/lib/type';
2
3
  import { FcrUIVideoWindowData } from '../type';
3
4
  import './index.css';
@@ -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,
@@ -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.0",
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;