fcr-ui-scene 3.7.7 → 3.7.8-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/creator/index.js +13 -19
- package/lib/creator/provider-initializer.browser.js +2 -2
- package/lib/creator/provider-initializer.electron.js +2 -2
- package/lib/electron/bootstrap-sdk.js +89 -35
- package/lib/electron/hang-detection/index.d.ts +3 -0
- package/lib/electron/hang-detection/index.js +15 -0
- package/lib/electron/hang-detection/manager.d.ts +28 -0
- package/lib/electron/hang-detection/manager.js +231 -0
- package/lib/electron/hang-detection/types.d.ts +14 -0
- package/lib/electron/sdk-helper.js +6 -2
- package/lib/electron/until.d.ts +1 -4
- package/lib/electron/until.js +12 -4
- package/lib/index.js +8 -1
- package/lib/modules/action-bar/components/screen-share/index.electron.js +1 -1
- package/lib/modules/components/control-bar/components/switch-theme/index.js +4 -2
- package/lib/modules/components/control-bar/index.js +1 -3
- package/lib/modules/components/leave-meeting/store.base.d.ts +1 -0
- package/lib/modules/components/leave-meeting/store.base.js +46 -5
- package/lib/modules/dialog/dialogs/confirm-leave-meeting/index.d.ts +1 -0
- package/lib/modules/dialog/dialogs/confirm-leave-meeting/index.js +2 -1
- package/lib/modules/dialog/dialogs/share-screen-selection/index.js +0 -12
- package/lib/modules/participant/store.base.js +0 -1
- package/lib/modules/share-screen/store.base.js +0 -2
- package/lib/modules/share-screen/store.electron.js +54 -22
- package/lib/modules/state-bar/store.base.electron.js +6 -2
- package/lib/modules/video-window/popover-watcher.js +4 -1
- package/lib/modules/video-window/store.js +7 -1
- package/lib/modules/video-window/view.js +14 -4
- package/lib/providers/board-share/bar-control/base.d.ts +2 -0
- package/lib/providers/board-share/bar-control/base.js +13 -3
- package/lib/providers/board-share/bar-control/electron.d.ts +1 -0
- package/lib/providers/board-share/bar-control/electron.js +15 -4
- package/lib/providers/board-share/provider.base.d.ts +1 -0
- package/lib/providers/board-share/provider.base.js +3 -1
- package/lib/providers/board-share/provider.electron.d.ts +1 -0
- package/lib/providers/board-share/provider.electron.js +8 -2
- package/lib/providers/board-share/type.d.ts +2 -0
- package/lib/providers/dialog/provider.electron.js +10 -2
- package/lib/providers/screen-share/strategy/browser.js +51 -4
- package/lib/providers/screen-share/strategy/electron.js +77 -8
- package/lib/providers/screen-share/stream-state-sync.d.ts +3 -1
- package/lib/providers/screen-share/stream-state-sync.js +133 -40
- package/lib/providers/window/main-window.js +0 -3
- package/lib/providers/window/renderer-window.d.ts +3 -0
- package/lib/providers/window/renderer-window.js +47 -4
- package/lib/providers/window/type.d.ts +1 -0
- package/lib/scenes/main-scene.d.ts +1 -0
- package/lib/scenes/main-scene.js +32 -1
- package/lib/utilities/logger.js +1 -1
- package/package.json +5 -5
- package/public/index.html +2 -149
- package/public/meeting-manager.js +391 -0
- package/installer/icons/favicon.ico +0 -0
- package/installer/icons/favicon.png +0 -0
- package/installer/icons/icon.png +0 -0
- package/installer/mac/entitlements.mac.plist +0 -16
- package/lib/creator.d.ts +0 -36
- package/lib/creator.js +0 -465
- package/lib/modules/action-bar/index.d.ts +0 -58
- package/lib/modules/action-bar/index.dev.d.ts +0 -0
- package/lib/modules/action-bar/index.dev.js +0 -94
- package/lib/modules/action-bar/index.js +0 -109
- package/lib/modules/action-bar/store.d.ts +0 -259
- package/lib/modules/action-bar/store.js +0 -1529
- package/lib/modules/action-bar/types.d.ts +0 -90
- package/lib/modules/action-bar/view.d.ts +0 -5
- package/lib/modules/action-bar/view.js +0 -112
- package/lib/modules/annotation/annotation-index.d.ts +0 -2
- package/lib/modules/annotation/annotation-index.js +0 -80
- package/lib/modules/annotation/annotation-toolbar-store.d.ts +0 -75
- package/lib/modules/annotation/annotation-toolbar-store.js +0 -459
- package/lib/modules/annotation/board-cursor.css +0 -77
- package/lib/modules/annotation/components/color-picker/components/color.d.ts +0 -5
- package/lib/modules/annotation/components/color-picker/components/color.js +0 -38
- package/lib/modules/annotation/components/color-picker/components/panel.d.ts +0 -1
- package/lib/modules/annotation/components/color-picker/components/panel.js +0 -109
- package/lib/modules/annotation/components/color-picker/components/picker.d.ts +0 -1
- package/lib/modules/annotation/components/color-picker/components/picker.js +0 -75
- package/lib/modules/annotation/components/color-picker/index.d.ts +0 -2
- package/lib/modules/annotation/components/color-picker/index.js +0 -47
- package/lib/modules/annotation/components/eraser-picker.d.ts +0 -4
- package/lib/modules/annotation/components/eraser-picker.js +0 -144
- package/lib/modules/annotation/components/expansion/index.d.ts +0 -1
- package/lib/modules/annotation/components/expansion/index.js +0 -100
- package/lib/modules/annotation/components/extra-tool-picker.d.ts +0 -1
- package/lib/modules/annotation/components/extra-tool-picker.js +0 -62
- package/lib/modules/annotation/components/history.d.ts +0 -2
- package/lib/modules/annotation/components/history.js +0 -78
- package/lib/modules/annotation/components/icons/fold-icon.d.ts +0 -2
- package/lib/modules/annotation/components/icons/fold-icon.js +0 -41
- package/lib/modules/annotation/components/icons/move-icon.d.ts +0 -1
- package/lib/modules/annotation/components/icons/move-icon.js +0 -66
- package/lib/modules/annotation/components/item/index.d.ts +0 -1
- package/lib/modules/annotation/components/item/index.js +0 -43
- package/lib/modules/annotation/components/move-handle.d.ts +0 -5
- package/lib/modules/annotation/components/move-handle.js +0 -134
- package/lib/modules/annotation/components/pen-picker.d.ts +0 -4
- package/lib/modules/annotation/components/pen-picker.js +0 -155
- package/lib/modules/annotation/components/screen-capture-picker.d.ts +0 -4
- package/lib/modules/annotation/components/screen-capture-picker.js +0 -85
- package/lib/modules/annotation/components/shape-picker.d.ts +0 -4
- package/lib/modules/annotation/components/shape-picker.js +0 -210
- package/lib/modules/annotation/hooks/index.d.ts +0 -14
- package/lib/modules/annotation/hooks/index.js +0 -292
- package/lib/modules/annotation/index.d.ts +0 -45
- package/lib/modules/annotation/index.js +0 -168
- package/lib/modules/annotation/store.d.ts +0 -98
- package/lib/modules/annotation/store.js +0 -620
- package/lib/modules/annotation/style.css +0 -36
- package/lib/modules/annotation/view.d.ts +0 -3
- package/lib/modules/annotation/view.js +0 -44
- package/lib/modules/components/device-control/store.d.ts +0 -42
- package/lib/modules/components/device-control/store.js +0 -241
- package/lib/modules/components/leave-meeting/store.d.ts +0 -39
- package/lib/modules/components/leave-meeting/store.js +0 -270
- package/lib/modules/control-bar/components/annotation-button/index.d.ts +0 -1
- package/lib/modules/control-bar/components/annotation-button/index.js +0 -72
- package/lib/modules/control-bar/reactor.d.ts +0 -2
- package/lib/modules/control-bar/reactor.js +0 -8
- package/lib/modules/control-bar/types.d.ts +0 -20
- package/lib/modules/control-bar/types.js +0 -6
- package/lib/modules/dialog/dialogs/pre-setting/index.css +0 -26
- package/lib/modules/dialog/dialogs/pre-setting/index.d.ts +0 -6
- package/lib/modules/dialog/dialogs/pre-setting/index.js +0 -62
- package/lib/modules/dialog/dialogs/widget/electron.d.ts +0 -6
- package/lib/modules/dialog/dialogs/widget/electron.js +0 -38
- package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +0 -14
- package/lib/modules/dialog/hooks/use-popover-watcher.js +0 -110
- package/lib/modules/dialog/hooks/useElectron.d.ts +0 -28
- package/lib/modules/dialog/hooks/useElectron.js +0 -277
- package/lib/modules/dialog/store.d.ts +0 -135
- package/lib/modules/dialog/store.js +0 -616
- package/lib/modules/event-confirm/components/window/index.d.ts +0 -7
- package/lib/modules/event-confirm/components/window/index.js +0 -221
- package/lib/modules/event-confirm/index.css +0 -24
- package/lib/modules/event-confirm/index.d.ts +0 -27
- package/lib/modules/event-confirm/index.js +0 -76
- package/lib/modules/event-confirm/store.d.ts +0 -50
- package/lib/modules/event-confirm/store.js +0 -394
- package/lib/modules/event-confirm/view.d.ts +0 -2
- package/lib/modules/event-confirm/view.js +0 -55
- package/lib/modules/event-toast/store.d.ts +0 -27
- package/lib/modules/event-toast/store.js +0 -205
- package/lib/modules/layout/store.d.ts +0 -176
- package/lib/modules/layout/store.js +0 -1452
- package/lib/modules/participant/store.d.ts +0 -222
- package/lib/modules/participant/store.js +0 -1929
- package/lib/modules/pc-audio-connect/index.d.ts +0 -22
- package/lib/modules/pc-audio-connect/index.js +0 -67
- package/lib/modules/pc-audio-connect/store.d.ts +0 -46
- package/lib/modules/pc-audio-connect/store.js +0 -304
- package/lib/modules/setting/common/advance-link.d.ts +0 -3
- package/lib/modules/setting/common/advance-link.js +0 -27
- package/lib/modules/setting/common/index.css +0 -26
- package/lib/modules/setting/common/useNamespace.d.ts +0 -15
- package/lib/modules/setting/common/useNamespace.js +0 -66
- package/lib/modules/setting/dialog-wrapper.d.ts +0 -2
- package/lib/modules/setting/dialog-wrapper.js +0 -110
- package/lib/modules/setting/store.d.ts +0 -261
- package/lib/modules/setting/store.js +0 -1321
- package/lib/modules/share-screen/store.d.ts +0 -148
- package/lib/modules/share-screen/store.js +0 -960
- package/lib/modules/share-screen/types.d.ts +0 -26
- package/lib/modules/share-screen/types.js +0 -6
- package/lib/modules/state-bar/store.d.ts +0 -124
- package/lib/modules/state-bar/store.js +0 -664
- package/lib/modules/whiteboard/components/progress/electron.d.ts +0 -1
- package/lib/modules/whiteboard/components/progress/electron.js +0 -33
- package/lib/modules/widget/store.d.ts +0 -14
- package/lib/modules/widget/store.js +0 -28
- package/lib/providers/annotation-provider.d.ts +0 -124
- package/lib/providers/annotation-provider.js +0 -369
- package/lib/providers/dialog-provider.d.ts +0 -137
- package/lib/providers/dialog-provider.js +0 -194
- package/lib/providers/message-provider.d.ts +0 -69
- package/lib/providers/message-provider.js +0 -140
- package/lib/providers/room-provider.d.ts +0 -194
- package/lib/providers/room-provider.js +0 -916
- package/lib/providers/screen-share-provider.d.ts +0 -245
- package/lib/providers/screen-share-provider.js +0 -850
- package/lib/providers/sharing-provider.d.ts +0 -42
- package/lib/providers/sharing-provider.js +0 -228
- package/lib/providers/user-setting-storage-provider.d.ts +0 -21
- package/lib/providers/user-setting-storage-provider.js +0 -65
- package/lib/providers/whiteboard-provider.d.ts +0 -24
- package/lib/providers/whiteboard-provider.js +0 -128
- package/lib/shared-data-source/annotation-data.d.ts +0 -17
- package/lib/shared-data-source/annotation-data.js +0 -110
- package/lib/shared-data-source/app-list-data.d.ts +0 -34
- package/lib/shared-data-source/app-list-data.js +0 -133
- package/lib/shared-data-source/chat-data.d.ts +0 -25
- package/lib/shared-data-source/chat-data.js +0 -139
- package/lib/shared-data-source/config.d.ts +0 -35
- package/lib/shared-data-source/config.js +0 -40
- package/lib/shared-data-source/confirm-data.d.ts +0 -44
- package/lib/shared-data-source/confirm-data.js +0 -201
- package/lib/shared-data-source/device-privilege-data.d.ts +0 -8
- package/lib/shared-data-source/device-privilege-data.js +0 -25
- package/lib/shared-data-source/interpreter.d.ts +0 -77
- package/lib/shared-data-source/interpreter.js +0 -247
- package/lib/shared-data-source/layout-data.d.ts +0 -31
- package/lib/shared-data-source/layout-data.js +0 -189
- package/lib/shared-data-source/meeting-time.d.ts +0 -90
- package/lib/shared-data-source/meeting-time.js +0 -416
- package/lib/shared-data-source/member-data.d.ts +0 -139
- package/lib/shared-data-source/member-data.js +0 -517
- package/lib/shared-data-source/pin-data.d.ts +0 -13
- package/lib/shared-data-source/pin-data.js +0 -111
- package/lib/shared-data-source/screen-share-data.d.ts +0 -357
- package/lib/shared-data-source/screen-share-data.js +0 -513
- package/lib/shared-data-source/security-data.d.ts +0 -39
- package/lib/shared-data-source/security-data.js +0 -156
- package/lib/shared-data-source/setting.d.ts +0 -67
- package/lib/shared-data-source/setting.js +0 -220
- package/lib/shared-data-source/speaker-spotlight.d.ts +0 -5
- package/lib/shared-data-source/speaker-spotlight.js +0 -15
- package/lib/shared-data-source/video-window.d.ts +0 -165
- package/lib/shared-data-source/video-window.js +0 -1266
- package/lib/shared-data-source/waiting-room.d.ts +0 -46
- package/lib/shared-data-source/waiting-room.js +0 -222
- package/lib/shared-data-source/whiteboard-data.d.ts +0 -70
- package/lib/shared-data-source/whiteboard-data.js +0 -348
- package/lib/utilities/board-context.d.ts +0 -4
- package/lib/utilities/board-context.js +0 -12
- package/lib/utilities/copyText.d.ts +0 -2
- package/lib/utilities/copyText.js +0 -48
- package/lib/utilities/renderer-event.d.ts +0 -10
- package/lib/utilities/renderer-event.js +0 -95
- package/lib/utilities/screen-capture-permission.d.ts +0 -2
- package/lib/utilities/screen-capture-permission.js +0 -24
- package/lib/utilities/screen.d.ts +0 -3
- package/lib/utilities/screen.js +0 -53
- package/lib/utilities/video-track-render-context.d.ts +0 -6
- package/lib/utilities/video-track-render-context.js +0 -9
- package/lib/waiting-room-control-manager.d.ts +0 -28
- package/lib/waiting-room-control-manager.js +0 -230
- /package/lib/{modules/action-bar → electron/hang-detection}/types.js +0 -0
|
@@ -1,7 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/es.symbol.js");
|
|
4
|
+
require("core-js/modules/es.symbol.description.js");
|
|
5
|
+
require("core-js/modules/es.symbol.to-primitive.js");
|
|
6
|
+
require("core-js/modules/es.array.is-array.js");
|
|
7
|
+
require("core-js/modules/es.array.iterator.js");
|
|
8
|
+
require("core-js/modules/es.array.push.js");
|
|
9
|
+
require("core-js/modules/es.date.to-primitive.js");
|
|
10
|
+
require("core-js/modules/es.function.bind.js");
|
|
11
|
+
require("core-js/modules/es.function.name.js");
|
|
12
|
+
require("core-js/modules/es.map.js");
|
|
13
|
+
require("core-js/modules/es.number.constructor.js");
|
|
14
|
+
require("core-js/modules/es.object.create.js");
|
|
3
15
|
require("core-js/modules/es.object.define-property.js");
|
|
16
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
17
|
+
require("core-js/modules/es.string.iterator.js");
|
|
18
|
+
require("core-js/modules/esnext.function.metadata.js");
|
|
19
|
+
require("core-js/modules/esnext.map.delete-all.js");
|
|
20
|
+
require("core-js/modules/esnext.map.emplace.js");
|
|
21
|
+
require("core-js/modules/esnext.map.every.js");
|
|
22
|
+
require("core-js/modules/esnext.map.filter.js");
|
|
23
|
+
require("core-js/modules/esnext.map.find.js");
|
|
24
|
+
require("core-js/modules/esnext.map.find-key.js");
|
|
25
|
+
require("core-js/modules/esnext.map.includes.js");
|
|
26
|
+
require("core-js/modules/esnext.map.key-of.js");
|
|
27
|
+
require("core-js/modules/esnext.map.map-keys.js");
|
|
28
|
+
require("core-js/modules/esnext.map.map-values.js");
|
|
29
|
+
require("core-js/modules/esnext.map.merge.js");
|
|
30
|
+
require("core-js/modules/esnext.map.reduce.js");
|
|
31
|
+
require("core-js/modules/esnext.map.some.js");
|
|
32
|
+
require("core-js/modules/esnext.map.update.js");
|
|
33
|
+
require("core-js/modules/esnext.symbol.metadata.js");
|
|
34
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
4
35
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
36
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
37
|
Object.defineProperty(exports, "__esModule", {
|
|
6
38
|
value: true
|
|
7
39
|
});
|
|
@@ -9,9 +41,13 @@ exports.FcrUIScreenStreamSync = void 0;
|
|
|
9
41
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
42
|
require("core-js/modules/es.error.cause.js");
|
|
11
43
|
require("core-js/modules/es.error.to-string.js");
|
|
44
|
+
require("core-js/modules/es.array.find.js");
|
|
12
45
|
require("core-js/modules/es.object.to-string.js");
|
|
13
46
|
require("core-js/modules/es.promise.js");
|
|
47
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
48
|
+
require("core-js/modules/esnext.iterator.find.js");
|
|
14
49
|
require("core-js/modules/web.timers.js");
|
|
50
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
51
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
16
52
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
17
53
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
@@ -19,17 +55,27 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
19
55
|
var _type = require("fcr-core/lib/type");
|
|
20
56
|
var _objectManager = require("../../object-manager");
|
|
21
57
|
var _logger = require("../../utilities/logger");
|
|
58
|
+
var _decorator = require("agora-foundation/lib/decorator");
|
|
59
|
+
var _FcrUIScreenStreamSync;
|
|
60
|
+
var _initProto;
|
|
61
|
+
function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function set(e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O["static"] = l, O["private"] = f, f ? 2 === o ? k = function k(e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function k(e) { return e[n]; }, (o < 2 || 4 === o) && (F = function F(e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == _typeof(P) && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol["for"]("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function s(t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
|
|
62
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
63
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
64
|
+
function _setFunctionName(e, t, n) { "symbol" == _typeof(t) && (t = (t = t.description) ? "[" + t + "]" : ""); try { Object.defineProperty(e, "name", { configurable: !0, value: n ? n + " " + t : t }); } catch (e) {} return e; }
|
|
65
|
+
function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side of 'in' should be an object, got " + (null !== e ? _typeof(e) : "null")); return e; }
|
|
22
66
|
var FcrUIScreenStreamSync = exports.FcrUIScreenStreamSync = /*#__PURE__*/function () {
|
|
23
67
|
function FcrUIScreenStreamSync(objectManager) {
|
|
24
68
|
var _this = this;
|
|
25
69
|
(0, _classCallCheck2["default"])(this, FcrUIScreenStreamSync);
|
|
26
|
-
(0, _defineProperty2["default"])(this, "logger", (0, _logger.createLogger)({
|
|
70
|
+
(0, _defineProperty2["default"])(this, "logger", (_initProto(this), (0, _logger.createLogger)({
|
|
27
71
|
prefix: 'FcrUIScreenStreamSync'
|
|
28
|
-
}));
|
|
72
|
+
})));
|
|
29
73
|
// 我的屏幕共享流id
|
|
30
74
|
(0, _defineProperty2["default"])(this, "_myCurrentScreenShareStreamId", null);
|
|
31
75
|
(0, _defineProperty2["default"])(this, "_released", false);
|
|
76
|
+
(0, _defineProperty2["default"])(this, "_isStopped", false);
|
|
32
77
|
var sharedConfigDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_CONFIG_DATA_SOURCE);
|
|
78
|
+
this._videoWindowDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_VIDEO_WINDOW_DATA_SOURCE);
|
|
33
79
|
var roomProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_ROOM_PROVIDER);
|
|
34
80
|
var userId = sharedConfigDataSource.creatorConfig.userId;
|
|
35
81
|
this._sharingControl = roomProvider.currentRoomControl.getSharingControl();
|
|
@@ -59,7 +105,7 @@ var FcrUIScreenStreamSync = exports.FcrUIScreenStreamSync = /*#__PURE__*/functio
|
|
|
59
105
|
}, {
|
|
60
106
|
key: "checkIfMyScreenShareStreamExists",
|
|
61
107
|
value: function checkIfMyScreenShareStreamExists() {
|
|
62
|
-
return this._myCurrentScreenShareStreamId;
|
|
108
|
+
return !!this._myCurrentScreenShareStreamId;
|
|
63
109
|
}
|
|
64
110
|
}, {
|
|
65
111
|
key: "startScreenStream",
|
|
@@ -76,23 +122,24 @@ var FcrUIScreenStreamSync = exports.FcrUIScreenStreamSync = /*#__PURE__*/functio
|
|
|
76
122
|
}
|
|
77
123
|
throw new Error("there's already a screen share stream owned by me");
|
|
78
124
|
case 1:
|
|
79
|
-
|
|
80
|
-
_context.
|
|
125
|
+
this._isStopped = false;
|
|
126
|
+
_context.prev = 2;
|
|
127
|
+
_context.next = 3;
|
|
81
128
|
return this._sharingControl.startScreenSharing(createConfig, encoderConfig.dimensions);
|
|
82
|
-
case
|
|
129
|
+
case 3:
|
|
83
130
|
screenStreamId = _context.sent;
|
|
84
131
|
this._streamControl.setVideoEncoderConfig(screenStreamId, encoderConfig, _type.FcrVideoStreamType.HIGH_STREAM);
|
|
85
|
-
_context.next =
|
|
132
|
+
_context.next = 5;
|
|
86
133
|
break;
|
|
87
|
-
case 3:
|
|
88
|
-
_context.prev = 3;
|
|
89
|
-
_t = _context["catch"](1);
|
|
90
|
-
throw new Error("failed to start screen share stream, error: ".concat(_t));
|
|
91
134
|
case 4:
|
|
135
|
+
_context.prev = 4;
|
|
136
|
+
_t = _context["catch"](2);
|
|
137
|
+
throw new Error("failed to start screen share stream, error: ".concat(_t));
|
|
138
|
+
case 5:
|
|
92
139
|
case "end":
|
|
93
140
|
return _context.stop();
|
|
94
141
|
}
|
|
95
|
-
}, _callee, this, [[
|
|
142
|
+
}, _callee, this, [[2, 4]]);
|
|
96
143
|
}));
|
|
97
144
|
function startScreenStream(_x, _x2) {
|
|
98
145
|
return _startScreenStream.apply(this, arguments);
|
|
@@ -103,7 +150,7 @@ var FcrUIScreenStreamSync = exports.FcrUIScreenStreamSync = /*#__PURE__*/functio
|
|
|
103
150
|
key: "stopScreenStream",
|
|
104
151
|
value: function () {
|
|
105
152
|
var _stopScreenStream = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
106
|
-
var _t2;
|
|
153
|
+
var screenVideoWindowData, screenStream, _t2;
|
|
107
154
|
return _regenerator["default"].wrap(function (_context2) {
|
|
108
155
|
while (1) switch (_context2.prev = _context2.next) {
|
|
109
156
|
case 0:
|
|
@@ -114,55 +161,96 @@ var FcrUIScreenStreamSync = exports.FcrUIScreenStreamSync = /*#__PURE__*/functio
|
|
|
114
161
|
this.logger.warn('no screen share stream owned by me, cannot stop screen share stream');
|
|
115
162
|
return _context2.abrupt("return");
|
|
116
163
|
case 1:
|
|
164
|
+
if (!this._isStopped) {
|
|
165
|
+
_context2.next = 2;
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
this.logger.warn('the screen share stream is stopped, no need to stop again');
|
|
169
|
+
return _context2.abrupt("return");
|
|
170
|
+
case 2:
|
|
171
|
+
this._isStopped = true;
|
|
172
|
+
this._myCurrentScreenShareStreamId = null;
|
|
173
|
+
case 3:
|
|
117
174
|
if (!true) {
|
|
118
|
-
_context2.next =
|
|
175
|
+
_context2.next = 12;
|
|
119
176
|
break;
|
|
120
177
|
}
|
|
121
178
|
if (!this._released) {
|
|
122
|
-
_context2.next =
|
|
179
|
+
_context2.next = 4;
|
|
123
180
|
break;
|
|
124
181
|
}
|
|
125
182
|
return _context2.abrupt("return");
|
|
126
|
-
case 2:
|
|
127
|
-
_context2.prev = 2;
|
|
128
|
-
_context2.next = 3;
|
|
129
|
-
return this._sharingControl.stop();
|
|
130
|
-
case 3:
|
|
131
|
-
return _context2.abrupt("continue", 9);
|
|
132
183
|
case 4:
|
|
133
184
|
_context2.prev = 4;
|
|
134
|
-
|
|
185
|
+
_context2.next = 5;
|
|
186
|
+
return this._sharingControl.stop();
|
|
187
|
+
case 5:
|
|
188
|
+
return _context2.abrupt("continue", 12);
|
|
189
|
+
case 6:
|
|
190
|
+
_context2.prev = 6;
|
|
191
|
+
_t2 = _context2["catch"](4);
|
|
135
192
|
if (!(_t2 instanceof _type.FcrError && _t2.code === 720404300)) {
|
|
136
|
-
_context2.next =
|
|
193
|
+
_context2.next = 8;
|
|
137
194
|
break;
|
|
138
195
|
}
|
|
139
|
-
this.logger.error("the screen share stream does not exist
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
196
|
+
this.logger.error("the screen share stream does not exist");
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* TODO: 这里加删除 videoWindowData 的逻辑是因为,如果在屏幕共享时主持人结束了房间,在用户点击确认离开房间前,可以看到窗口上显示 “你正在屏幕共享” 的标识。
|
|
200
|
+
* TODO: 主持人在结束会议后,在点击确认离开房间前,窗口保留着最后的操作画面应该是正常的情况,那还是否有必要加这段逻辑,或者有更好的处理方式?
|
|
201
|
+
*
|
|
202
|
+
* 有 3 种场景会调用到 stopScreenStream。
|
|
203
|
+
* 1. 用户主动停止屏幕共享
|
|
204
|
+
* 2. 用户的屏幕共享被其他人抢占
|
|
205
|
+
* 3. 主持人结束房间
|
|
206
|
+
*
|
|
207
|
+
* 场景 2 的流程:
|
|
208
|
+
* 其他人抢占屏幕共享 > 当前共享用户会收到 FcrStreamControl 的 onStreamsRemoved 事件 > 调用 screenTrack.stop() > SourceMnager.stopScreenCapture
|
|
209
|
+
* > RtcEngine 发出 onLocalVideoStateChanged 事件 > ... > 这里的 stopScreenStream
|
|
210
|
+
*
|
|
211
|
+
* 场景 3 的流程:
|
|
212
|
+
* 主持人结束房间 > RtcEngine 发出 onLocalVideoStateChanged 事件 > ... > 这里的 stopScreenStream
|
|
213
|
+
*
|
|
214
|
+
* 在主持人结束房间的场景下,服务端已经不存在这条流,所以调用 stop 接口会报流不存在的错,所以这里把流对应的 videoWindowData 删除掉。
|
|
215
|
+
*
|
|
216
|
+
*/
|
|
217
|
+
screenVideoWindowData = this._videoWindowDataSource.mainList.find(function (stream) {
|
|
218
|
+
return stream.videoSourceType === _type.FcrVideoSourceType.SCREEN;
|
|
146
219
|
});
|
|
147
|
-
|
|
148
|
-
_context2.prev = 6;
|
|
149
|
-
if (this._myCurrentScreenShareStreamId) {
|
|
220
|
+
if (screenVideoWindowData) {
|
|
150
221
|
_context2.next = 7;
|
|
151
222
|
break;
|
|
152
223
|
}
|
|
153
|
-
return _context2.abrupt("continue",
|
|
224
|
+
return _context2.abrupt("continue", 12);
|
|
154
225
|
case 7:
|
|
155
|
-
|
|
226
|
+
screenStream = screenVideoWindowData.getVideoStream();
|
|
227
|
+
if (screenStream) {
|
|
228
|
+
this._videoWindowDataSource["delete"](screenStream);
|
|
229
|
+
}
|
|
230
|
+
return _context2.abrupt("continue", 12);
|
|
156
231
|
case 8:
|
|
157
|
-
|
|
158
|
-
|
|
232
|
+
this.logger.error("failed to stop screen share stream, error: ".concat(_t2, ", retry in 1000ms"), _t2);
|
|
233
|
+
_context2.next = 9;
|
|
234
|
+
return new Promise(function (resolve) {
|
|
235
|
+
return setTimeout(resolve, 1000);
|
|
236
|
+
});
|
|
159
237
|
case 9:
|
|
160
|
-
|
|
238
|
+
_context2.prev = 9;
|
|
239
|
+
if (this._myCurrentScreenShareStreamId) {
|
|
240
|
+
_context2.next = 10;
|
|
241
|
+
break;
|
|
242
|
+
}
|
|
243
|
+
return _context2.abrupt("continue", 12);
|
|
161
244
|
case 10:
|
|
245
|
+
return _context2.finish(9);
|
|
246
|
+
case 11:
|
|
247
|
+
_context2.next = 3;
|
|
248
|
+
break;
|
|
249
|
+
case 12:
|
|
162
250
|
case "end":
|
|
163
251
|
return _context2.stop();
|
|
164
252
|
}
|
|
165
|
-
}, _callee2, this, [[
|
|
253
|
+
}, _callee2, this, [[4, 6, 9, 11]]);
|
|
166
254
|
}));
|
|
167
255
|
function stopScreenStream() {
|
|
168
256
|
return _stopScreenStream.apply(this, arguments);
|
|
@@ -221,4 +309,9 @@ var FcrUIScreenStreamSync = exports.FcrUIScreenStreamSync = /*#__PURE__*/functio
|
|
|
221
309
|
return this._myCurrentScreenShareStreamId !== null;
|
|
222
310
|
}
|
|
223
311
|
}]);
|
|
224
|
-
}();
|
|
312
|
+
}();
|
|
313
|
+
_FcrUIScreenStreamSync = FcrUIScreenStreamSync;
|
|
314
|
+
var _applyDecs$e = _applyDecs(_FcrUIScreenStreamSync, [[_decorator.trace, 2, "checkIfMyScreenShareStreamExists"], [_decorator.trace, 2, "startScreenStream"], [_decorator.trace, 2, "stopScreenStream"], [_decorator.trace, 2, "updateStream"], [_decorator.trace, 2, "isLocalScreenStreamCreated"]], []).e;
|
|
315
|
+
var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 1);
|
|
316
|
+
_initProto = _applyDecs$e2[0];
|
|
317
|
+
_applyDecs$e;
|
|
@@ -145,9 +145,6 @@ var FcrUICurrentWindowImpl = exports.FcrUICurrentWindowImpl = /*#__PURE__*/funct
|
|
|
145
145
|
}, {
|
|
146
146
|
key: "setAlwaysOnTop",
|
|
147
147
|
value: function setAlwaysOnTop(flag) {
|
|
148
|
-
// 这里目前没有地方调用,因为annotation调用了setAlwaysOnTop,并且设置了pop-up-menu
|
|
149
|
-
// 窗口在windows上设置的是pop-up-menu,看看是不是要成对出现
|
|
150
|
-
this.logger.info('windows_index setAlwaysOnTop in main-window');
|
|
151
148
|
this.browserWindow.setAlwaysOnTop(flag);
|
|
152
149
|
}
|
|
153
150
|
}, {
|
|
@@ -22,6 +22,8 @@ export declare class FcrUIWindowImpl implements FcrUIWindow, FcrUIManagedObject
|
|
|
22
22
|
private _alwaysOnTop?;
|
|
23
23
|
private _alwaysOnTopLevel?;
|
|
24
24
|
private _relativeLevel?;
|
|
25
|
+
private _visibleOnAllWorkspaces?;
|
|
26
|
+
private _visibleOnAllWorkspacesOptions?;
|
|
25
27
|
private _resizable?;
|
|
26
28
|
private _aspectRatio?;
|
|
27
29
|
private _minimumSize?;
|
|
@@ -56,6 +58,7 @@ export declare class FcrUIWindowImpl implements FcrUIWindow, FcrUIManagedObject
|
|
|
56
58
|
forward: boolean;
|
|
57
59
|
}): void;
|
|
58
60
|
setAlwaysOnTop(flag: boolean, level?: 'normal' | 'floating' | 'torn-off-menu' | 'modal-panel' | 'main-menu' | 'status' | 'pop-up-menu' | 'screen-saver', relativeLevel?: number): void;
|
|
61
|
+
setVisibleOnAllWorkspaces(visible: boolean, options?: Electron.VisibleOnAllWorkspacesOptions): void;
|
|
59
62
|
setTitle(title: string): void;
|
|
60
63
|
getTitle(): string;
|
|
61
64
|
maximize(): void;
|
|
@@ -116,7 +116,8 @@ var FcrUIWindowImpl = exports.FcrUIWindowImpl = /*#__PURE__*/function () {
|
|
|
116
116
|
dom.append(_this.rootNode);
|
|
117
117
|
_this._rendererWindow = rendererWindow;
|
|
118
118
|
_this._windowId = windowId;
|
|
119
|
-
_this.logger.info("
|
|
119
|
+
_this.logger.info("renderer window is opened, windowId: ".concat(windowId, ", windowName: ").concat(windowName));
|
|
120
|
+
|
|
120
121
|
// 创建代理对象,使用从 window 对象获取的 ID
|
|
121
122
|
_this._browserWindowProxy = renderer.createWindowProxy(windowId);
|
|
122
123
|
_this._setupEventListeners();
|
|
@@ -141,6 +142,7 @@ var FcrUIWindowImpl = exports.FcrUIWindowImpl = /*#__PURE__*/function () {
|
|
|
141
142
|
}, options);
|
|
142
143
|
this._addLogObserver();
|
|
143
144
|
this._rootNode = document.createElement('div');
|
|
145
|
+
this.logger.info("initialized, windowName: ".concat(windowName));
|
|
144
146
|
}
|
|
145
147
|
return (0, _createClass2["default"])(FcrUIWindowImpl, [{
|
|
146
148
|
key: "setResizable",
|
|
@@ -289,10 +291,18 @@ var FcrUIWindowImpl = exports.FcrUIWindowImpl = /*#__PURE__*/function () {
|
|
|
289
291
|
this._alwaysOnTopLevel = level;
|
|
290
292
|
this._relativeLevel = relativeLevel;
|
|
291
293
|
if (this._isBrowserWindowReady) {
|
|
292
|
-
this.logger.info('windows_index setAlwaysOnTop in renderer-window');
|
|
293
294
|
this.browserWindow.setAlwaysOnTop(flag, level, relativeLevel);
|
|
294
295
|
}
|
|
295
296
|
}
|
|
297
|
+
}, {
|
|
298
|
+
key: "setVisibleOnAllWorkspaces",
|
|
299
|
+
value: function setVisibleOnAllWorkspaces(visible, options) {
|
|
300
|
+
this._visibleOnAllWorkspaces = visible;
|
|
301
|
+
this._visibleOnAllWorkspacesOptions = options;
|
|
302
|
+
if (this._isBrowserWindowReady) {
|
|
303
|
+
this.browserWindow.setVisibleOnAllWorkspaces(visible, options);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
296
306
|
}, {
|
|
297
307
|
key: "setTitle",
|
|
298
308
|
value: function setTitle(title) {
|
|
@@ -330,7 +340,10 @@ var FcrUIWindowImpl = exports.FcrUIWindowImpl = /*#__PURE__*/function () {
|
|
|
330
340
|
}, {
|
|
331
341
|
key: "isVisible",
|
|
332
342
|
value: function isVisible() {
|
|
333
|
-
|
|
343
|
+
if (this._isBrowserWindowReady) {
|
|
344
|
+
return this.browserWindow.isVisible();
|
|
345
|
+
}
|
|
346
|
+
return this._visible;
|
|
334
347
|
}
|
|
335
348
|
}, {
|
|
336
349
|
key: "show",
|
|
@@ -447,62 +460,92 @@ var FcrUIWindowImpl = exports.FcrUIWindowImpl = /*#__PURE__*/function () {
|
|
|
447
460
|
value: function _synBrowserWindowStateToInnerState() {
|
|
448
461
|
this.browserWindow.webContents.setBackgroundThrottling(false);
|
|
449
462
|
if (this._isClosed) {
|
|
463
|
+
this.logger.info('window is marked as closed, closing the browser window.');
|
|
450
464
|
this.browserWindow.close();
|
|
451
465
|
return;
|
|
452
466
|
}
|
|
467
|
+
|
|
468
|
+
// 重置 visibleOnAllWorkspaces
|
|
469
|
+
this.browserWindow.setVisibleOnAllWorkspaces(false, {
|
|
470
|
+
skipTransformProcessType: true
|
|
471
|
+
});
|
|
472
|
+
if ((0, _isBoolean["default"])(this._visibleOnAllWorkspaces)) {
|
|
473
|
+
var _this$_visibleOnAllWo;
|
|
474
|
+
this.logger.info('setting the browser window visible on all workspaces.');
|
|
475
|
+
this.browserWindow.setVisibleOnAllWorkspaces(this._visibleOnAllWorkspaces, {
|
|
476
|
+
visibleOnFullScreen: (_this$_visibleOnAllWo = this._visibleOnAllWorkspacesOptions) === null || _this$_visibleOnAllWo === void 0 ? void 0 : _this$_visibleOnAllWo.visibleOnFullScreen,
|
|
477
|
+
skipTransformProcessType: true
|
|
478
|
+
});
|
|
479
|
+
}
|
|
453
480
|
if (this._visible) {
|
|
481
|
+
this.logger.info('window is marked as visible, showing the browser window.');
|
|
454
482
|
this.browserWindowProxy.setPreventClose(this._preventClose);
|
|
455
483
|
if (this._showInactive) {
|
|
484
|
+
this.logger.info('showing the browser window as inactive.');
|
|
456
485
|
this.browserWindow.showInactive();
|
|
457
486
|
} else {
|
|
487
|
+
this.logger.info('showing and focusing the browser window.');
|
|
458
488
|
this.browserWindow.show();
|
|
459
489
|
this.browserWindow.focus();
|
|
460
490
|
this.browserWindow.moveTop();
|
|
461
491
|
}
|
|
462
492
|
} else {
|
|
493
|
+
this.logger.info('window is marked as hidden, hiding the browser window.');
|
|
463
494
|
this.browserWindow.hide();
|
|
464
495
|
}
|
|
465
496
|
if (this._backgroundColor) {
|
|
497
|
+
this.logger.info('setting the browser window background color.');
|
|
466
498
|
this.browserWindow.setBackgroundColor(this._backgroundColor);
|
|
467
499
|
}
|
|
468
500
|
if (this._bounds) {
|
|
501
|
+
this.logger.info('setting the browser window bounds.');
|
|
469
502
|
this.browserWindow.setBounds(this._bounds);
|
|
470
503
|
}
|
|
471
504
|
if (this._title) {
|
|
505
|
+
this.logger.info('setting the browser window title.');
|
|
472
506
|
this.browserWindow.setTitle(this._title);
|
|
473
507
|
}
|
|
474
508
|
if ((0, _isBoolean["default"])(this._ignoreMouseEvents)) {
|
|
509
|
+
this.logger.info('setting the browser window ignore mouse events.');
|
|
475
510
|
this.browserWindow.setIgnoreMouseEvents(this._ignoreMouseEvents, this._ignoreMouseEventsOptions);
|
|
476
511
|
}
|
|
477
512
|
if ((0, _isBoolean["default"])(this._alwaysOnTop)) {
|
|
513
|
+
this.logger.info('setting the browser window always on top.');
|
|
478
514
|
this.browserWindow.setAlwaysOnTop(this._alwaysOnTop, this._alwaysOnTopLevel, this._relativeLevel);
|
|
479
515
|
}
|
|
480
516
|
if ((0, _isBoolean["default"])(this._resizable)) {
|
|
517
|
+
this.logger.info('setting the browser window resizable.');
|
|
481
518
|
this.browserWindow.setResizable(this._resizable);
|
|
482
519
|
}
|
|
483
520
|
if ((0, _isBoolean["default"])(this._aspectRatio)) {
|
|
521
|
+
this.logger.info('setting the browser window aspect ratio.');
|
|
484
522
|
this.browserWindow.setAspectRatio(this._aspectRatio);
|
|
485
523
|
}
|
|
486
524
|
if (this._minimumSize) {
|
|
487
525
|
var _this$_minimumSize = this._minimumSize,
|
|
488
526
|
width = _this$_minimumSize.width,
|
|
489
527
|
height = _this$_minimumSize.height;
|
|
528
|
+
this.logger.info('setting the browser window minimum size.');
|
|
490
529
|
this.browserWindow.setMinimumSize(width, height);
|
|
491
530
|
}
|
|
492
531
|
if (this._maximumSize) {
|
|
493
532
|
var _this$_maximumSize = this._maximumSize,
|
|
494
533
|
_width = _this$_maximumSize.width,
|
|
495
534
|
_height = _this$_maximumSize.height;
|
|
535
|
+
this.logger.info('setting the browser window maximum size.');
|
|
496
536
|
this.browserWindow.setMaximumSize(_width, _height);
|
|
497
537
|
}
|
|
498
538
|
if ((0, _isBoolean["default"])(this._isMaximized)) {
|
|
499
539
|
if (this._isMaximized) {
|
|
540
|
+
this.logger.info('maximizing the browser window.');
|
|
500
541
|
this.browserWindow.maximize();
|
|
501
542
|
} else {
|
|
543
|
+
this.logger.info('unmaximizing the browser window.');
|
|
502
544
|
this.browserWindow.unmaximize();
|
|
503
545
|
}
|
|
504
546
|
}
|
|
505
547
|
if ((0, _isBoolean["default"])(this._fullscreen)) {
|
|
548
|
+
this.logger.info('setting the browser window fullscreen state.');
|
|
506
549
|
this.browserWindow.setFullScreen(this._fullscreen);
|
|
507
550
|
}
|
|
508
551
|
}
|
|
@@ -514,7 +557,7 @@ var FcrUIWindowImpl = exports.FcrUIWindowImpl = /*#__PURE__*/function () {
|
|
|
514
557
|
}]);
|
|
515
558
|
}();
|
|
516
559
|
_FcrUIWindowImpl = FcrUIWindowImpl;
|
|
517
|
-
var _applyDecs$e = _applyDecs(_FcrUIWindowImpl, [[_log.trace, 2, "moveTop"], [_log.trace, 2, "setPosition"], [_log.trace, 2, "getPosition"], [_log.trace, 2, "getRootNode"], [_log.trace, 2, "close"], [_log.trace, 2, "isFullScreen"], [_log.trace, 2, "setFullScreen"], [_log.trace, 2, "setIgnoreMouseEvents"], [_log.trace, 2, "setAlwaysOnTop"], [_log.trace, 2, "setTitle"], [_log.trace, 2, "getTitle"], [_log.trace, 2, "maximize"], [_log.trace, 2, "unmaximize"], [_log.trace, 2, "isMaximized"], [_log.trace, 2, "isVisible"], [_log.trace, 2, "show"], [_log.trace, 2, "hide"], [_log.trace, 2, "focus"], [_log.trace, 2, "setBounds"], [_log.trace, 2, "getBounds"], [_log.trace, 2, "setPreventClose"], [_log.trace, 2, "isPreventClose"], [_log.trace, 2, "addObserver"], [_log.trace, 2, "removeObserver"], [_log.trace, 2, "release"]], []).e;
|
|
560
|
+
var _applyDecs$e = _applyDecs(_FcrUIWindowImpl, [[_log.trace, 2, "moveTop"], [_log.trace, 2, "setPosition"], [_log.trace, 2, "getPosition"], [_log.trace, 2, "getRootNode"], [_log.trace, 2, "close"], [_log.trace, 2, "isFullScreen"], [_log.trace, 2, "setFullScreen"], [_log.trace, 2, "setIgnoreMouseEvents"], [_log.trace, 2, "setAlwaysOnTop"], [_log.trace, 2, "setVisibleOnAllWorkspaces"], [_log.trace, 2, "setTitle"], [_log.trace, 2, "getTitle"], [_log.trace, 2, "maximize"], [_log.trace, 2, "unmaximize"], [_log.trace, 2, "isMaximized"], [_log.trace, 2, "isVisible"], [_log.trace, 2, "show"], [_log.trace, 2, "hide"], [_log.trace, 2, "focus"], [_log.trace, 2, "setBounds"], [_log.trace, 2, "getBounds"], [_log.trace, 2, "setPreventClose"], [_log.trace, 2, "isPreventClose"], [_log.trace, 2, "addObserver"], [_log.trace, 2, "removeObserver"], [_log.trace, 2, "release"]], []).e;
|
|
518
561
|
var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 1);
|
|
519
562
|
_initProto = _applyDecs$e2[0];
|
|
520
563
|
_applyDecs$e;
|
|
@@ -61,6 +61,7 @@ export interface FcrUIWindow {
|
|
|
61
61
|
forward: boolean;
|
|
62
62
|
}): void;
|
|
63
63
|
setAlwaysOnTop(flag: boolean, level?: 'normal' | 'floating' | 'torn-off-menu' | 'modal-panel' | 'main-menu' | 'status' | 'pop-up-menu' | 'screen-saver', relativeLevel?: number): void;
|
|
64
|
+
setVisibleOnAllWorkspaces(visible: boolean, options?: Electron.VisibleOnAllWorkspacesOptions): void;
|
|
64
65
|
setPreventClose(prevent: boolean): void;
|
|
65
66
|
setResizable(resizable: boolean): void;
|
|
66
67
|
setAspectRatio(aspectRatio: number): void;
|
|
@@ -4,6 +4,7 @@ export declare class FcrMainUIScene extends FcrBaseUIScene {
|
|
|
4
4
|
protected logger: import("agora-foundation/lib/logger").Logger;
|
|
5
5
|
private _isWaitingRoomNotify;
|
|
6
6
|
private _roomObserver;
|
|
7
|
+
private _windowObserver;
|
|
7
8
|
constructor(args: FcrMainUISceneArgs);
|
|
8
9
|
mount(dom: HTMLElement): void;
|
|
9
10
|
unmount(dom: HTMLElement): void;
|
package/lib/scenes/main-scene.js
CHANGED
|
@@ -75,6 +75,8 @@ var _shareScreenSelection = require("../modules/dialog/dialogs/share-screen-sele
|
|
|
75
75
|
var _mainScene3 = require("../modules/state-bar/main-scene");
|
|
76
76
|
var _muteAll = require("../modules/dialog/dialogs/mute-all");
|
|
77
77
|
var _controlBarLeaveMeeting = require("../modules/dialog/dialogs/control-bar-leave-meeting");
|
|
78
|
+
var _platform = require("../utilities/platform");
|
|
79
|
+
var _env = require("agora-foundation/lib/utilities/env");
|
|
78
80
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
79
81
|
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)); }
|
|
80
82
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
@@ -140,6 +142,26 @@ var FcrMainUIScene = exports.FcrMainUIScene = /*#__PURE__*/function (_FcrBaseUIS
|
|
|
140
142
|
waitingRoomUserControl.addObserver(waitingRoomUserObserver);
|
|
141
143
|
}
|
|
142
144
|
};
|
|
145
|
+
_this._windowObserver = {
|
|
146
|
+
onWindowCreated: function onWindowCreated(dialogKey, _, window) {
|
|
147
|
+
if (dialogKey === _constant.FcrUIDialogKey.SHARE_SCREEN_SELECTION) {
|
|
148
|
+
window.setAlwaysOnTop(true, (0, _platform.isMac)() ? 'floating' : 'normal');
|
|
149
|
+
if ((0, _platform.isMac)()) {
|
|
150
|
+
window.setVisibleOnAllWorkspaces(true, {
|
|
151
|
+
visibleOnFullScreen: true
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (dialogKey === _constant.FcrUIDialogKey.LEAVE_MEETING) {
|
|
156
|
+
window.setAlwaysOnTop(true, (0, _platform.isMac)() ? 'floating' : 'normal');
|
|
157
|
+
if ((0, _platform.isMac)()) {
|
|
158
|
+
window.setVisibleOnAllWorkspaces(true, {
|
|
159
|
+
visibleOnFullScreen: true
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
};
|
|
143
165
|
return _this;
|
|
144
166
|
}
|
|
145
167
|
(0, _inherits2["default"])(FcrMainUIScene, _FcrBaseUIScene);
|
|
@@ -505,14 +527,23 @@ var FcrMainUIScene = exports.FcrMainUIScene = /*#__PURE__*/function (_FcrBaseUIS
|
|
|
505
527
|
var objectManager = this.objectManager;
|
|
506
528
|
var roomProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_ROOM_PROVIDER);
|
|
507
529
|
roomProvider.addObserver(this._roomObserver);
|
|
530
|
+
if ((0, _env.isElectron)()) {
|
|
531
|
+
var windowProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_WINDOW_PROVIDER);
|
|
532
|
+
windowProvider.addObserver(this._windowObserver);
|
|
533
|
+
}
|
|
508
534
|
this._runSettingConfig();
|
|
509
535
|
}
|
|
510
536
|
}, {
|
|
511
537
|
key: "onNodeWillInactive",
|
|
512
538
|
value: function onNodeWillInactive() {
|
|
513
539
|
this._closeDialogs();
|
|
514
|
-
var
|
|
540
|
+
var objectManager = this.objectManager;
|
|
541
|
+
var roomProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_ROOM_PROVIDER);
|
|
515
542
|
roomProvider.removeObserver(this._roomObserver);
|
|
543
|
+
if ((0, _env.isElectron)()) {
|
|
544
|
+
var windowProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_WINDOW_PROVIDER);
|
|
545
|
+
windowProvider.removeObserver(this._windowObserver);
|
|
546
|
+
}
|
|
516
547
|
}
|
|
517
548
|
}, {
|
|
518
549
|
key: "_runSettingConfig",
|
package/lib/utilities/logger.js
CHANGED
|
@@ -48,7 +48,7 @@ var generateLogObserver = exports.generateLogObserver = function generateLogObse
|
|
|
48
48
|
return observer;
|
|
49
49
|
};
|
|
50
50
|
window.addEventListener('error', function (e) {
|
|
51
|
-
getLogger().error('window error event:', JSON.stringify(e));
|
|
51
|
+
getLogger().error('window error event:', JSON.stringify(e), e.error, e.message, e.lineno, e.colno, e.filename);
|
|
52
52
|
});
|
|
53
53
|
window.addEventListener('unhandledrejection', function (e) {
|
|
54
54
|
getLogger().error('window unhandledrejection event:', e.reason);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fcr-ui-scene",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.8-rc.2",
|
|
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",
|
|
@@ -22,13 +22,13 @@
|
|
|
22
22
|
"@react-spring/web": "^9.7.3",
|
|
23
23
|
"@use-gesture/react": "^10.3.1",
|
|
24
24
|
"agora-electron-sdk": "4.3.2-build.156-rc.1",
|
|
25
|
-
"agora-foundation": "~3.7.
|
|
26
|
-
"agora-ui-foundation": "~3.7.
|
|
25
|
+
"agora-foundation": "~3.7.8-rc.2",
|
|
26
|
+
"agora-ui-foundation": "~3.7.8-rc.2",
|
|
27
27
|
"classnames": "^2.5.1",
|
|
28
28
|
"core-js": "^3.33.3",
|
|
29
29
|
"dayjs": "^1.10.4",
|
|
30
30
|
"electron-screenshots": "^0.5.26",
|
|
31
|
-
"fcr-core": "~3.7.
|
|
31
|
+
"fcr-core": "~3.7.8-rc.2",
|
|
32
32
|
"js-md5": "^0.8.3",
|
|
33
33
|
"jszip": "^3.10.1",
|
|
34
34
|
"lodash": "^4.17.21",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"@types/react-dom": "^17.0.11",
|
|
60
60
|
"@types/react-virtualized": "^9.21.30",
|
|
61
61
|
"@types/tinycolor2": "^1.4.6",
|
|
62
|
-
"agora-toolchain": "~3.7.
|
|
62
|
+
"agora-toolchain": "~3.7.8-rc.2",
|
|
63
63
|
"core-js": "^3.33.3",
|
|
64
64
|
"electron": "22.3.27",
|
|
65
65
|
"husky": "^9.0.11",
|