fcr-core 3.10.5 → 3.10.6
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/engine/index.js +108 -102
- package/lib/imports.js +0 -1
- package/lib/index.d.ts +1 -1
- package/lib/media-control/desktop.js +13 -22
- package/lib/media-control/mobile.js +13 -22
- package/lib/monitor-control/index.js +7 -17
- package/lib/peer-session/index.js +121 -120
- package/lib/plugins/chat/chatroom.js +96 -119
- package/lib/plugins/chat/connector.js +48 -69
- package/lib/remote-control/index.js +216 -194
- package/lib/room-control/ability-control/index.js +10 -20
- package/lib/room-control/application-control/index.js +75 -82
- package/lib/room-control/group-control/index.js +30 -31
- package/lib/room-control/helpers/board-init-info-helper.js +10 -16
- package/lib/room-control/helpers/validation-helper.js +1 -1
- package/lib/room-control/index.js +51 -70
- package/lib/room-control/infinity-room-control/index.js +19 -27
- package/lib/room-control/interpreter-control/index.js +65 -77
- package/lib/room-control/interpreter-control/room.js +4 -6
- package/lib/room-control/join-before-host-waitingroom-control/index.js +4 -6
- package/lib/room-control/mainroom-control/index.js +25 -37
- package/lib/room-control/privilege-control/helper.js +13 -28
- package/lib/room-control/privilege-control/index.js +28 -36
- package/lib/room-control/room-connector-control/index.js +47 -52
- package/lib/room-control/room-control-factory.js +12 -10
- package/lib/room-control/room-session/index.js +74 -77
- package/lib/room-control/shared-cache.js +56 -63
- package/lib/room-control/sharing-control/index.js +57 -65
- package/lib/room-control/stream-control/index.js +238 -203
- package/lib/room-control/stream-control/type.d.ts +11 -1
- package/lib/room-control/stt-control/de-compress-gzip.js +0 -10
- package/lib/room-control/stt-control/index.js +86 -93
- package/lib/room-control/user-control/index.js +155 -162
- package/lib/room-control/waitingroom-control/index.js +9 -18
- package/lib/room-control/whiteboard-control/utils.js +2 -4
- package/lib/room-control/whiteboard-control-v1/board-subwindow.js +1 -2
- package/lib/room-control/whiteboard-control-v1/board-window.js +103 -120
- package/lib/room-control/whiteboard-control-v1/factory.js +4 -7
- package/lib/room-control/whiteboard-control-v1/index.js +67 -80
- package/lib/room-control/whiteboard-control-v1/mount-manager.js +2 -4
- package/lib/room-control/whiteboard-control-v1/utils.js +14 -17
- package/lib/room-control/whiteboard-control-v2/annotation-control/control.js +10 -14
- package/lib/room-control/whiteboard-control-v2/annotation-control/factory.js +8 -17
- package/lib/room-control/whiteboard-control-v2/base/index.js +53 -61
- package/lib/room-control/whiteboard-control-v2/base/main-window.js +30 -39
- package/lib/room-control/whiteboard-control-v2/utils.js +10 -10
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.js +33 -45
- package/lib/room-control/whiteboard-control-v2/whiteboard-control/factory.js +11 -27
- package/lib/room-control/widget-control/index.js +33 -43
- package/lib/room-router/index.js +58 -66
- package/lib/service/api.js +548 -446
- package/lib/struct.js +2 -5
- package/lib/type.d.ts +1 -1
- package/lib/utilities/abortable-retry.js +0 -3
- package/lib/utilities/collection.js +11 -15
- package/lib/utilities/error-helpers.js +27 -34
- package/lib/utilities/error.js +3 -4
- package/lib/utilities/join-helper.js +31 -37
- package/lib/utilities/logger.js +5 -8
- package/lib/utilities/parameters.js +10 -21
- package/lib/utilities/retry-helpers.js +0 -1
- package/lib/utilities/stream.js +11 -16
- package/lib/utilities/user.js +3 -4
- package/lib/utilities/validate-params.js +1 -1
- package/lib/utilities/video-encoder-config.js +5 -10
- package/lib-es/engine/index.js +108 -102
- package/lib-es/media-control/desktop.js +13 -22
- package/lib-es/media-control/mobile.js +13 -22
- package/lib-es/monitor-control/index.js +7 -16
- package/lib-es/peer-session/index.js +121 -120
- package/lib-es/plugins/chat/chatroom.js +95 -118
- package/lib-es/plugins/chat/connector.js +47 -67
- package/lib-es/remote-control/index.js +216 -194
- package/lib-es/room-control/ability-control/index.js +10 -19
- package/lib-es/room-control/application-control/index.js +75 -81
- package/lib-es/room-control/group-control/index.js +30 -31
- package/lib-es/room-control/helpers/board-init-info-helper.js +10 -15
- package/lib-es/room-control/helpers/validation-helper.js +1 -1
- package/lib-es/room-control/index.js +51 -69
- package/lib-es/room-control/infinity-room-control/index.js +19 -26
- package/lib-es/room-control/interpreter-control/index.js +65 -77
- package/lib-es/room-control/interpreter-control/room.js +4 -5
- package/lib-es/room-control/join-before-host-waitingroom-control/index.js +4 -5
- package/lib-es/room-control/mainroom-control/index.js +25 -37
- package/lib-es/room-control/privilege-control/helper.js +13 -27
- package/lib-es/room-control/privilege-control/index.js +28 -36
- package/lib-es/room-control/room-connector-control/index.js +47 -52
- package/lib-es/room-control/room-control-factory.js +12 -10
- package/lib-es/room-control/room-session/index.js +74 -77
- package/lib-es/room-control/shared-cache.js +56 -62
- package/lib-es/room-control/sharing-control/index.js +57 -64
- package/lib-es/room-control/stream-control/index.js +240 -205
- package/lib-es/room-control/stt-control/de-compress-gzip.js +0 -10
- package/lib-es/room-control/stt-control/index.js +86 -93
- package/lib-es/room-control/user-control/index.js +155 -162
- package/lib-es/room-control/waitingroom-control/index.js +9 -18
- package/lib-es/room-control/whiteboard-control/utils.js +2 -4
- package/lib-es/room-control/whiteboard-control-v1/board-subwindow.js +1 -2
- package/lib-es/room-control/whiteboard-control-v1/board-window.js +103 -120
- package/lib-es/room-control/whiteboard-control-v1/factory.js +4 -6
- package/lib-es/room-control/whiteboard-control-v1/index.js +67 -80
- package/lib-es/room-control/whiteboard-control-v1/mount-manager.js +2 -3
- package/lib-es/room-control/whiteboard-control-v1/utils.js +14 -17
- package/lib-es/room-control/whiteboard-control-v2/annotation-control/control.js +10 -13
- package/lib-es/room-control/whiteboard-control-v2/annotation-control/factory.js +8 -16
- package/lib-es/room-control/whiteboard-control-v2/base/index.js +53 -60
- package/lib-es/room-control/whiteboard-control-v2/base/main-window.js +30 -39
- package/lib-es/room-control/whiteboard-control-v2/utils.js +10 -10
- package/lib-es/room-control/whiteboard-control-v2/whiteboard-control/control.js +33 -45
- package/lib-es/room-control/whiteboard-control-v2/whiteboard-control/factory.js +11 -26
- package/lib-es/room-control/widget-control/index.js +33 -42
- package/lib-es/room-router/index.js +58 -66
- package/lib-es/service/api.js +548 -445
- package/lib-es/struct.js +2 -4
- package/lib-es/utilities/abortable-retry.js +0 -3
- package/lib-es/utilities/collection.js +11 -14
- package/lib-es/utilities/error-helpers.js +26 -33
- package/lib-es/utilities/error.js +3 -4
- package/lib-es/utilities/join-helper.js +29 -36
- package/lib-es/utilities/logger.js +5 -7
- package/lib-es/utilities/parameters.js +10 -21
- package/lib-es/utilities/retry-helpers.js +0 -1
- package/lib-es/utilities/stream.js +11 -15
- package/lib-es/utilities/user.js +3 -4
- package/lib-es/utilities/validate-params.js +1 -1
- package/lib-es/utilities/video-encoder-config.js +5 -10
- package/package.json +4 -4
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.symbol.description.js");
|
|
4
3
|
require("core-js/modules/es.array.push.js");
|
|
5
4
|
require("core-js/modules/esnext.function.metadata.js");
|
|
6
5
|
require("core-js/modules/esnext.map.delete-all.js");
|
|
@@ -18,17 +17,11 @@ require("core-js/modules/esnext.map.reduce.js");
|
|
|
18
17
|
require("core-js/modules/esnext.map.some.js");
|
|
19
18
|
require("core-js/modules/esnext.map.update.js");
|
|
20
19
|
require("core-js/modules/esnext.symbol.metadata.js");
|
|
21
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
22
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
23
20
|
Object.defineProperty(exports, "__esModule", {
|
|
24
21
|
value: true
|
|
25
22
|
});
|
|
26
23
|
exports.FcrBaseWhiteboardControlImpl = void 0;
|
|
27
|
-
require("core-js/modules/es.error.cause.js");
|
|
28
24
|
require("core-js/modules/es.json.stringify.js");
|
|
29
|
-
require("core-js/modules/es.regexp.exec.js");
|
|
30
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
31
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
32
25
|
var _forgeRoom = require("@netless/forge-room");
|
|
33
26
|
var _forgeRtm = require("@netless/forge-rtm");
|
|
34
27
|
var _forgeWhiteboard = require("@netless/forge-whiteboard");
|
|
@@ -38,7 +31,6 @@ var _error = require("../../../utilities/error");
|
|
|
38
31
|
var _logger = require("../../../utilities/logger");
|
|
39
32
|
var _constant = require("../constant");
|
|
40
33
|
var _mainWindow = require("./main-window");
|
|
41
|
-
var _FcrBaseWhiteboardControlImpl;
|
|
42
34
|
let _initProto;
|
|
43
35
|
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 (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 (e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function (e) { return e[n]; }, (o < 2 || 4 === o) && (F = function (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 (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)]; } }; }
|
|
44
36
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
@@ -49,31 +41,34 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
|
|
|
49
41
|
|
|
50
42
|
const WHITEBOARD_ROOM_JOIN_TIMEOUT = 20000;
|
|
51
43
|
class FcrBaseWhiteboardControlImpl {
|
|
44
|
+
static {
|
|
45
|
+
[_initProto] = _applyDecs(this, [[_imports.trace, 2, "open"], [_imports.trace, 2, "close"], [_imports.trace, 2, "release"], [_imports.trace, 2, "getConnectionState"], [_imports.trace, 2, "getMainWindow"]], []).e;
|
|
46
|
+
}
|
|
47
|
+
logger = (_initProto(this), (0, _logger.createLogger)({
|
|
48
|
+
prefix: 'FcrBaseWhiteboardControl'
|
|
49
|
+
}));
|
|
50
|
+
observable = new _imports.AgoraObservable();
|
|
51
|
+
boardView = null;
|
|
52
|
+
boardRoom = null;
|
|
53
|
+
whiteboard = null;
|
|
54
|
+
connectState = _type.FcrConnectionState.DISCONNECTED;
|
|
55
|
+
boardRoomConfig = null;
|
|
56
|
+
_waitPromise = null;
|
|
57
|
+
_waitPromiseResolve = null;
|
|
58
|
+
_waitPromiseReject = null;
|
|
59
|
+
_openAbortController = null;
|
|
60
|
+
_openState = {
|
|
61
|
+
isOpen: false,
|
|
62
|
+
isNeedLaunch: undefined
|
|
63
|
+
};
|
|
52
64
|
constructor(rtmClient, config, boardRoomConfigFetcher, api) {
|
|
53
|
-
(0, _defineProperty2.default)(this, "logger", (_initProto(this), (0, _logger.createLogger)({
|
|
54
|
-
prefix: 'FcrBaseWhiteboardControl'
|
|
55
|
-
})));
|
|
56
|
-
(0, _defineProperty2.default)(this, "observable", new _imports.AgoraObservable());
|
|
57
|
-
(0, _defineProperty2.default)(this, "boardView", null);
|
|
58
|
-
(0, _defineProperty2.default)(this, "boardRoom", null);
|
|
59
|
-
(0, _defineProperty2.default)(this, "whiteboard", null);
|
|
60
|
-
(0, _defineProperty2.default)(this, "connectState", _type.FcrConnectionState.DISCONNECTED);
|
|
61
|
-
(0, _defineProperty2.default)(this, "boardRoomConfig", null);
|
|
62
|
-
(0, _defineProperty2.default)(this, "_waitPromise", null);
|
|
63
|
-
(0, _defineProperty2.default)(this, "_waitPromiseResolve", null);
|
|
64
|
-
(0, _defineProperty2.default)(this, "_waitPromiseReject", null);
|
|
65
|
-
(0, _defineProperty2.default)(this, "_openAbortController", null);
|
|
66
|
-
(0, _defineProperty2.default)(this, "_openState", {
|
|
67
|
-
isOpen: false,
|
|
68
|
-
isNeedLaunch: undefined
|
|
69
|
-
});
|
|
70
65
|
this.rtmClient = rtmClient;
|
|
71
66
|
this.config = config;
|
|
72
67
|
this.api = api;
|
|
73
68
|
this.boardRoomConfigFetcherTask = _imports.AgoraScheduler.shared.addPollingTask(async () => {
|
|
74
69
|
const boardRoomConfig = await boardRoomConfigFetcher();
|
|
75
70
|
this.boardRoomConfig = boardRoomConfig;
|
|
76
|
-
this.logger.info(
|
|
71
|
+
this.logger.info(`fetch board room config success, config: ${(0, _imports.jsonstring)(boardRoomConfig)}`);
|
|
77
72
|
this.boardRoomConfigFetcherTask.stop();
|
|
78
73
|
if (this._openState.isOpen) {
|
|
79
74
|
this.connect(this._openState.isNeedLaunch);
|
|
@@ -158,7 +153,7 @@ class FcrBaseWhiteboardControlImpl {
|
|
|
158
153
|
}
|
|
159
154
|
const oldState = this.connectState;
|
|
160
155
|
this.connectState = state;
|
|
161
|
-
this.logger.info(
|
|
156
|
+
this.logger.info(`Connection state updated: ${_type.FcrConnectionState[oldState]} -> ${_type.FcrConnectionState[state]}`);
|
|
162
157
|
this.observable.notifyObservers('onConnectionStateUpdated', state);
|
|
163
158
|
}
|
|
164
159
|
async connect(isNeedLaunch) {
|
|
@@ -173,15 +168,18 @@ class FcrBaseWhiteboardControlImpl {
|
|
|
173
168
|
abortController.signal.addEventListener('abort', () => {
|
|
174
169
|
reject(new Error('join board aborted'));
|
|
175
170
|
});
|
|
176
|
-
const
|
|
177
|
-
userId
|
|
178
|
-
userName
|
|
179
|
-
ipList
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
171
|
+
const {
|
|
172
|
+
userId,
|
|
173
|
+
userName,
|
|
174
|
+
ipList
|
|
175
|
+
} = this.config;
|
|
176
|
+
const {
|
|
177
|
+
boardAppId,
|
|
178
|
+
boardId,
|
|
179
|
+
boardRegion,
|
|
180
|
+
boardToken
|
|
181
|
+
// boardPerformance = false,
|
|
182
|
+
} = this.boardRoomConfig || {};
|
|
185
183
|
if (!boardAppId) {
|
|
186
184
|
throw (0, _error.generateFcrCoreClientError)(_imports.ErrorModuleCode.FCR_ROOM_WHITEBOARD, _imports.DetailErrorCode.UNDEFINED_ERROR, 'boardAppId is required');
|
|
187
185
|
}
|
|
@@ -195,21 +193,21 @@ class FcrBaseWhiteboardControlImpl {
|
|
|
195
193
|
let width = whiteboardOption.width;
|
|
196
194
|
let height = whiteboardOption.height;
|
|
197
195
|
if (!width) {
|
|
198
|
-
this.logger.warn(
|
|
196
|
+
this.logger.warn(`board width is a invalid vlaue: ${width}, using default value 800`);
|
|
199
197
|
whiteboardOption.width = 800;
|
|
200
198
|
}
|
|
201
199
|
if (!height) {
|
|
202
|
-
this.logger.warn(
|
|
200
|
+
this.logger.warn(`board height is a invalid value: ${height}, using default value 600`);
|
|
203
201
|
whiteboardOption.height = 600;
|
|
204
202
|
}
|
|
205
|
-
this.logger.info(
|
|
203
|
+
this.logger.info(`open board with boardId: ${boardId}, boardToken: ${boardToken}, region: ${boardRegion}, appIdentifier: ${boardAppId} whiteboardOption: ${(0, _imports.jsonstring)(whiteboardOption)}`);
|
|
206
204
|
let endpoint = undefined;
|
|
207
205
|
if (ipList !== undefined) {
|
|
208
206
|
if (Array.isArray(ipList) && ipList[0]) {
|
|
209
|
-
this.logger.info(
|
|
207
|
+
this.logger.info(`use ipList from config: ${(0, _imports.jsonstring)(ipList)}`);
|
|
210
208
|
endpoint = ipList[0];
|
|
211
209
|
} else {
|
|
212
|
-
this.logger.error(
|
|
210
|
+
this.logger.error(`ipList in config is empty or invalid: ${(0, _imports.jsonstring)(ipList)}, ignore ipList config`);
|
|
213
211
|
}
|
|
214
212
|
}
|
|
215
213
|
const rtmProvider = new _forgeRtm.RTMProvider_2_2(this.rtmClient);
|
|
@@ -228,14 +226,14 @@ class FcrBaseWhiteboardControlImpl {
|
|
|
228
226
|
// 第一个开启白板的人需要调用 launch 方法, 其他人监听 launch 事件获取白板实例
|
|
229
227
|
if (isNeedLaunch) {
|
|
230
228
|
getWhiteboard = () => {
|
|
231
|
-
this.logger.info(
|
|
229
|
+
this.logger.info(`ApplicationManager.launchApplication calling, appId: ${appId}, option: ${(0, _imports.jsonstring)(whiteboardOption)}`);
|
|
232
230
|
return wbRoom.applicationManager.launchApplication(_forgeWhiteboard.WhiteboardApplication, whiteboardOption, appId);
|
|
233
231
|
};
|
|
234
232
|
} else {
|
|
235
233
|
const launchPromise = new Promise((launchPromseResolve, launchPromseReject) => {
|
|
236
234
|
this.logger.info('ApplicationManager.once launch event listening');
|
|
237
235
|
wbRoom.applicationManager.once('launch', (appId, app) => {
|
|
238
|
-
this.logger.info(
|
|
236
|
+
this.logger.info(`ApplicationManager.launch event received, appId: ${appId}`);
|
|
239
237
|
launchPromseResolve(app);
|
|
240
238
|
});
|
|
241
239
|
});
|
|
@@ -243,7 +241,7 @@ class FcrBaseWhiteboardControlImpl {
|
|
|
243
241
|
return launchPromise;
|
|
244
242
|
};
|
|
245
243
|
}
|
|
246
|
-
|
|
244
|
+
[error] = await (0, _imports.to)((0, _imports.retryAttempt)(async () => {
|
|
247
245
|
const joinRoomParams = {
|
|
248
246
|
userId,
|
|
249
247
|
nickName: userName || userId,
|
|
@@ -256,7 +254,7 @@ class FcrBaseWhiteboardControlImpl {
|
|
|
256
254
|
writable: true
|
|
257
255
|
// verboseLog: true,
|
|
258
256
|
};
|
|
259
|
-
this.logger.info(
|
|
257
|
+
this.logger.info(`Room.joinRoom calling, params: ${(0, _imports.jsonstring)(joinRoomParams)}, timeout: ${WHITEBOARD_ROOM_JOIN_TIMEOUT}`);
|
|
260
258
|
|
|
261
259
|
// 20 秒超时
|
|
262
260
|
await wbRoom.joinRoom(joinRoomParams, WHITEBOARD_ROOM_JOIN_TIMEOUT);
|
|
@@ -265,29 +263,28 @@ class FcrBaseWhiteboardControlImpl {
|
|
|
265
263
|
if (isNeedLaunch) {
|
|
266
264
|
// 在同一个房间内只有第一次调用 launchApplication 时传入的宽高参数会生效, 后续的调用不会生效, 所以需要在这里更新宽高
|
|
267
265
|
// 只有 launch 的用户需要更新宽、高, 白板会自动同步给后加入的用户
|
|
268
|
-
this.logger.info(
|
|
266
|
+
this.logger.info(`Whiteboard.updateViewport calling, width: ${width}, height: ${height}`);
|
|
269
267
|
whiteboard.updateViewport(width, height);
|
|
270
268
|
}
|
|
271
269
|
}, [], {
|
|
272
270
|
retriesMax: 0
|
|
273
|
-
}).fail(async
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
271
|
+
}).fail(async ({
|
|
272
|
+
error,
|
|
273
|
+
timeFn,
|
|
274
|
+
currentRetry
|
|
275
|
+
}) => {
|
|
277
276
|
if (abortController.signal.aborted) {
|
|
278
277
|
throw new Error('join board aborted');
|
|
279
278
|
}
|
|
280
|
-
this.logger.error(
|
|
279
|
+
this.logger.error(`failed to join board, error: ${error.message}, current retry: ${currentRetry}`, error);
|
|
281
280
|
await timeFn();
|
|
282
281
|
return true;
|
|
283
282
|
}).exec());
|
|
284
|
-
var _await$to2 = (0, _slicedToArray2.default)(_await$to, 1);
|
|
285
|
-
error = _await$to2[0];
|
|
286
283
|
if (abortController.signal.aborted) {
|
|
287
284
|
throw new Error('join board aborted');
|
|
288
285
|
}
|
|
289
286
|
if (error) {
|
|
290
|
-
this.logger.error(
|
|
287
|
+
this.logger.error(`join board failed, ${error.message}-${JSON.stringify(error)}`);
|
|
291
288
|
throw error;
|
|
292
289
|
}
|
|
293
290
|
this.logger.info('Whiteboard camera settings: enableCameraByMouse=false, enableCameraByTouch=false');
|
|
@@ -315,7 +312,7 @@ class FcrBaseWhiteboardControlImpl {
|
|
|
315
312
|
this._clearWaitPromise();
|
|
316
313
|
}
|
|
317
314
|
} catch (e) {
|
|
318
|
-
this.logger.error(
|
|
315
|
+
this.logger.error(`join board failed`);
|
|
319
316
|
this.updateConnectionState(_type.FcrConnectionState.DISCONNECTED);
|
|
320
317
|
reject(e);
|
|
321
318
|
if (this._waitPromiseReject) {
|
|
@@ -355,9 +352,4 @@ class FcrBaseWhiteboardControlImpl {
|
|
|
355
352
|
this._waitPromise = null;
|
|
356
353
|
}
|
|
357
354
|
}
|
|
358
|
-
exports.FcrBaseWhiteboardControlImpl = FcrBaseWhiteboardControlImpl;
|
|
359
|
-
_FcrBaseWhiteboardControlImpl = FcrBaseWhiteboardControlImpl;
|
|
360
|
-
var _applyDecs$e = _applyDecs(_FcrBaseWhiteboardControlImpl, [[_imports.trace, 2, "open"], [_imports.trace, 2, "close"], [_imports.trace, 2, "release"], [_imports.trace, 2, "getConnectionState"], [_imports.trace, 2, "getMainWindow"]], []).e;
|
|
361
|
-
var _applyDecs$e2 = (0, _slicedToArray2.default)(_applyDecs$e, 1);
|
|
362
|
-
_initProto = _applyDecs$e2[0];
|
|
363
|
-
_applyDecs$e;
|
|
355
|
+
exports.FcrBaseWhiteboardControlImpl = FcrBaseWhiteboardControlImpl;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.symbol.description.js");
|
|
4
3
|
require("core-js/modules/es.array.push.js");
|
|
5
4
|
require("core-js/modules/esnext.function.metadata.js");
|
|
6
5
|
require("core-js/modules/esnext.map.delete-all.js");
|
|
@@ -18,15 +17,11 @@ require("core-js/modules/esnext.map.reduce.js");
|
|
|
18
17
|
require("core-js/modules/esnext.map.some.js");
|
|
19
18
|
require("core-js/modules/esnext.map.update.js");
|
|
20
19
|
require("core-js/modules/esnext.symbol.metadata.js");
|
|
21
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
22
20
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
23
21
|
Object.defineProperty(exports, "__esModule", {
|
|
24
22
|
value: true
|
|
25
23
|
});
|
|
26
24
|
exports.FcrBoardMainWindowImpl = void 0;
|
|
27
|
-
require("core-js/modules/es.error.cause.js");
|
|
28
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
29
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
30
25
|
var _observable = require("agora-foundation/lib/utilities/observable");
|
|
31
26
|
var _utils = require("../utils");
|
|
32
27
|
var _logger = require("../../../utilities/logger");
|
|
@@ -38,24 +33,25 @@ var _decorator = require("agora-foundation/lib/decorator");
|
|
|
38
33
|
var _type = require("../../../type");
|
|
39
34
|
var _error = require("../../../utilities/error");
|
|
40
35
|
var _imports = require("../../../imports");
|
|
41
|
-
|
|
42
|
-
let _initProto, _setBackgroundColorDecs, _setToolTypeDecs, _setStrokeWidthDecs, _setStrokeColorDecs, _setTextColorDecs, _setTextSizeDecs, _insertImageDecs, _setContainerSizeRatioDecs, _setBoardTransparentDecs, _updateWindowSizeDecs, _setAutoCancelDrawDecs, _handleApplicationLaunchDecs, _handleApplicationTerminalDecs, _enableAutoCancelDecs, _ref;
|
|
36
|
+
let _initProto, _setBackgroundColorDecs, _setToolTypeDecs, _setStrokeWidthDecs, _setStrokeColorDecs, _setTextColorDecs, _setTextSizeDecs, _insertImageDecs, _setContainerSizeRatioDecs, _setBoardTransparentDecs, _updateWindowSizeDecs, _setAutoCancelDrawDecs, _handleApplicationLaunchDecs, _handleApplicationTerminalDecs, _enableAutoCancelDecs;
|
|
43
37
|
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 (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 (e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function (e) { return e[n]; }, (o < 2 || 4 === o) && (F = function (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 (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)]; } }; }
|
|
44
38
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
45
39
|
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); }
|
|
46
40
|
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; }
|
|
47
41
|
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; }
|
|
48
|
-
_ref = (_setBackgroundColorDecs = [(0, _log.trace)(['color']), (0, _validateParams.default)(_schema.stringSchema)], _setToolTypeDecs = [(0, _log.trace)(['type']), (0, _validateParams.default)(_schema2.fcrBoardToolTypeSchema)], _setStrokeWidthDecs = [(0, _log.trace)(['strokeWidth']), (0, _validateParams.default)(_schema2.numberSchema)], _setStrokeColorDecs = [(0, _log.trace)(['color']), (0, _validateParams.default)(_schema2.z.union([_schema2.colorSchema, _schema.stringSchema]))], _setTextColorDecs = [(0, _log.trace)(['color']), (0, _validateParams.default)(_schema2.colorSchema)], _setTextSizeDecs = [(0, _log.trace)(['textSize']), (0, _validateParams.default)(_schema2.numberSchema)], _insertImageDecs = [(0, _log.trace)(['resourceUrl', 'x', 'y', 'width', 'height']), (0, _validateParams.default)(_schema.stringSchema, _schema2.numberSchema, _schema2.numberSchema, _schema2.numberSchema, _schema2.numberSchema)], _setContainerSizeRatioDecs = [(0, _log.trace)(['ratio']), (0, _validateParams.default)(_schema2.numberSchema)], _setBoardTransparentDecs = [(0, _log.trace)(['isTransparent']), (0, _validateParams.default)(_schema2.booleanSchema)], _updateWindowSizeDecs = [(0, _log.trace)(['size']), (0, _validateParams.default)(_schema2.fcrSizeSchema)], _setAutoCancelDrawDecs = [(0, _log.trace)(['enable']), (0, _validateParams.default)(_schema2.booleanSchema)], _handleApplicationLaunchDecs = [_decorator.bound, (0, _log.trace)(['appId', 'app'])], _handleApplicationTerminalDecs = [_decorator.bound, (0, _log.trace)(['appId', 'app'])], _enableAutoCancelDecs = (0, _log.trace)(['enable']), "logger");
|
|
49
42
|
class FcrBoardMainWindowImpl {
|
|
43
|
+
static {
|
|
44
|
+
[_initProto] = _applyDecs(this, [[_log.trace, 2, "addPage"], [_log.trace, 2, "removePage"], [_log.trace, 2, "undo"], [_log.trace, 2, "redo"], [_log.trace, 2, "clean"], [_log.trace, 2, "getSnapshotImage"], [_setBackgroundColorDecs, 2, "setBackgroundColor"], [_log.trace, 2, "getPageInfo"], [_log.trace, 2, "prevPage"], [_log.trace, 2, "nextPage"], [_setToolTypeDecs, 2, "setToolType"], [_setStrokeWidthDecs, 2, "setStrokeWidth"], [_setStrokeColorDecs, 2, "setStrokeColor"], [_setTextColorDecs, 2, "setTextColor"], [_setTextSizeDecs, 2, "setTextSize"], [_insertImageDecs, 2, "insertImage"], [_log.trace, 2, "getContentView"], [_setContainerSizeRatioDecs, 2, "setContainerSizeRatio"], [_setBoardTransparentDecs, 2, "setBoardTransparent"], [_updateWindowSizeDecs, 2, "updateWindowSize"], [_setAutoCancelDrawDecs, 2, "setAutoCancelDraw"], [_log.trace, 2, "getWritable"], [_handleApplicationLaunchDecs, 2, "_handleApplicationLaunch"], [_handleApplicationTerminalDecs, 2, "_handleApplicationTerminal"], [_enableAutoCancelDecs, 2, "_enableAutoCancel"]], []).e;
|
|
45
|
+
}
|
|
46
|
+
[(_setBackgroundColorDecs = [(0, _log.trace)(['color']), (0, _validateParams.default)(_schema.stringSchema)], _setToolTypeDecs = [(0, _log.trace)(['type']), (0, _validateParams.default)(_schema2.fcrBoardToolTypeSchema)], _setStrokeWidthDecs = [(0, _log.trace)(['strokeWidth']), (0, _validateParams.default)(_schema2.numberSchema)], _setStrokeColorDecs = [(0, _log.trace)(['color']), (0, _validateParams.default)(_schema2.z.union([_schema2.colorSchema, _schema.stringSchema]))], _setTextColorDecs = [(0, _log.trace)(['color']), (0, _validateParams.default)(_schema2.colorSchema)], _setTextSizeDecs = [(0, _log.trace)(['textSize']), (0, _validateParams.default)(_schema2.numberSchema)], _insertImageDecs = [(0, _log.trace)(['resourceUrl', 'x', 'y', 'width', 'height']), (0, _validateParams.default)(_schema.stringSchema, _schema2.numberSchema, _schema2.numberSchema, _schema2.numberSchema, _schema2.numberSchema)], _setContainerSizeRatioDecs = [(0, _log.trace)(['ratio']), (0, _validateParams.default)(_schema2.numberSchema)], _setBoardTransparentDecs = [(0, _log.trace)(['isTransparent']), (0, _validateParams.default)(_schema2.booleanSchema)], _updateWindowSizeDecs = [(0, _log.trace)(['size']), (0, _validateParams.default)(_schema2.fcrSizeSchema)], _setAutoCancelDrawDecs = [(0, _log.trace)(['enable']), (0, _validateParams.default)(_schema2.booleanSchema)], _handleApplicationLaunchDecs = [_decorator.bound, (0, _log.trace)(['appId', 'app'])], _handleApplicationTerminalDecs = [_decorator.bound, (0, _log.trace)(['appId', 'app'])], _enableAutoCancelDecs = (0, _log.trace)(['enable']), "logger")] = (_initProto(this), (0, _logger.createLogger)({
|
|
47
|
+
prefix: 'FcrBoardMainWindowImpl'
|
|
48
|
+
}));
|
|
49
|
+
_observable = new _observable.AgoraObservable();
|
|
50
|
+
_currentPage = 0;
|
|
51
|
+
_background = 'rgba(0, 0, 0, 0)';
|
|
52
|
+
_isAutoCancelEnabled = false;
|
|
53
|
+
_isWritable = false;
|
|
50
54
|
constructor(whiteboard, boardRoom, appId, _roomId, _userId, _api) {
|
|
51
|
-
(0, _defineProperty2.default)(this, _ref, (_initProto(this), (0, _logger.createLogger)({
|
|
52
|
-
prefix: 'FcrBoardMainWindowImpl'
|
|
53
|
-
})));
|
|
54
|
-
(0, _defineProperty2.default)(this, "_observable", new _observable.AgoraObservable());
|
|
55
|
-
(0, _defineProperty2.default)(this, "_currentPage", 0);
|
|
56
|
-
(0, _defineProperty2.default)(this, "_background", 'rgba(0, 0, 0, 0)');
|
|
57
|
-
(0, _defineProperty2.default)(this, "_isAutoCancelEnabled", false);
|
|
58
|
-
(0, _defineProperty2.default)(this, "_isWritable", false);
|
|
59
55
|
this._roomId = _roomId;
|
|
60
56
|
this._userId = _userId;
|
|
61
57
|
this._api = _api;
|
|
@@ -63,8 +59,8 @@ class FcrBoardMainWindowImpl {
|
|
|
63
59
|
this._boardView = document.createElement('div');
|
|
64
60
|
this._boardView.classList.add('fcr-whiteboard-window-view');
|
|
65
61
|
this._boardView.appendChild(whiteboard.view);
|
|
66
|
-
this._boardView.style.height =
|
|
67
|
-
this._boardView.style.width =
|
|
62
|
+
this._boardView.style.height = `100%`;
|
|
63
|
+
this._boardView.style.width = `100%`;
|
|
68
64
|
this._boardView.setAttribute('data-app-id', appId);
|
|
69
65
|
this._whiteboard = whiteboard;
|
|
70
66
|
this._boardRoom = boardRoom;
|
|
@@ -74,17 +70,17 @@ class FcrBoardMainWindowImpl {
|
|
|
74
70
|
boardRoom.applicationManager.on('terminal', this._handleApplicationTerminal);
|
|
75
71
|
|
|
76
72
|
// @ts-ignore
|
|
77
|
-
this.logger.info(
|
|
73
|
+
this.logger.info(`initialized, room: ${boardRoom.roomId}`);
|
|
78
74
|
}
|
|
79
75
|
internalSetWritable(isWritable) {
|
|
80
|
-
this.logger.info(
|
|
76
|
+
this.logger.info(`internalSetWritable called, isWritable: ${isWritable}, previous state: ${this._isWritable}`);
|
|
81
77
|
this._boardRoom.setWritable(isWritable);
|
|
82
78
|
this._isWritable = isWritable;
|
|
83
79
|
this._observable.notifyObservers('onWritable', isWritable);
|
|
84
|
-
this.logger.info(
|
|
80
|
+
this.logger.info(`Writable state updated to ${isWritable}`);
|
|
85
81
|
}
|
|
86
82
|
async setWritable(isWritable) {
|
|
87
|
-
this.logger.info(
|
|
83
|
+
this.logger.info(`setWritable called, isWritable: ${isWritable}, current state: ${this._isWritable}`);
|
|
88
84
|
if (!this._api) {
|
|
89
85
|
// api deops not exist in sub process, directly set writable state
|
|
90
86
|
this.internalSetWritable(isWritable);
|
|
@@ -94,8 +90,8 @@ class FcrBoardMainWindowImpl {
|
|
|
94
90
|
roomId: this._roomId,
|
|
95
91
|
userId: this._userId,
|
|
96
92
|
state: isWritable ? 1 : 0
|
|
97
|
-
}), _imports.ErrorModuleCode.FCR_ROOM_WHITEBOARD,
|
|
98
|
-
this.logger.info(
|
|
93
|
+
}), _imports.ErrorModuleCode.FCR_ROOM_WHITEBOARD, `set whiteboard write permission to ${isWritable} failed`);
|
|
94
|
+
this.logger.info(`Set writable to ${isWritable} successfully`);
|
|
99
95
|
this.internalSetWritable(isWritable);
|
|
100
96
|
return _type.FcrReturnCode.SUCCESS;
|
|
101
97
|
}
|
|
@@ -149,7 +145,7 @@ class FcrBoardMainWindowImpl {
|
|
|
149
145
|
}
|
|
150
146
|
async setBackgroundColor(color) {
|
|
151
147
|
this._background = color;
|
|
152
|
-
this.logger.info(
|
|
148
|
+
this.logger.info(`set canvas background color: ${this._background}`);
|
|
153
149
|
this._whiteboard.setCanvasBackgroundColor(color);
|
|
154
150
|
return _type.FcrReturnCode.SUCCESS;
|
|
155
151
|
}
|
|
@@ -185,7 +181,7 @@ class FcrBoardMainWindowImpl {
|
|
|
185
181
|
return _type.FcrReturnCode.SUCCESS;
|
|
186
182
|
}
|
|
187
183
|
async setStrokeColor(color) {
|
|
188
|
-
const c = typeof color === 'string' ? color :
|
|
184
|
+
const c = typeof color === 'string' ? color : `rgb(${color.r},${color.g},${color.b})`;
|
|
189
185
|
if (this._whiteboard) {
|
|
190
186
|
this._whiteboard.strokeColor = c;
|
|
191
187
|
} else {
|
|
@@ -194,7 +190,7 @@ class FcrBoardMainWindowImpl {
|
|
|
194
190
|
return _type.FcrReturnCode.SUCCESS;
|
|
195
191
|
}
|
|
196
192
|
async setTextColor(color) {
|
|
197
|
-
const c = typeof color === 'string' ? color :
|
|
193
|
+
const c = typeof color === 'string' ? color : `rgb(${color.r},${color.g},${color.b})`;
|
|
198
194
|
if (this._whiteboard) {
|
|
199
195
|
this._whiteboard.fillColor = c;
|
|
200
196
|
} else {
|
|
@@ -262,7 +258,7 @@ class FcrBoardMainWindowImpl {
|
|
|
262
258
|
this._whiteboard = app;
|
|
263
259
|
this._setBoardViewStyle(app.view);
|
|
264
260
|
if (this._background) {
|
|
265
|
-
this.logger.info(
|
|
261
|
+
this.logger.info(`set canvas background color: ${this._background}`);
|
|
266
262
|
this._whiteboard.setCanvasBackgroundColor(this._background);
|
|
267
263
|
}
|
|
268
264
|
this._enableAutoCancel(this._isAutoCancelEnabled);
|
|
@@ -277,19 +273,19 @@ class FcrBoardMainWindowImpl {
|
|
|
277
273
|
_handleApplicationTerminal(appId, app) {
|
|
278
274
|
try {
|
|
279
275
|
if (this._boardView.contains(app.view)) {
|
|
280
|
-
this.logger.info(
|
|
276
|
+
this.logger.info(`remove application view: ${appId}`);
|
|
281
277
|
this._boardView.removeChild(app.view);
|
|
282
278
|
} else {
|
|
283
|
-
this.logger.warn(
|
|
279
|
+
this.logger.warn(`application view not found in board view: ${appId}`);
|
|
284
280
|
}
|
|
285
281
|
} catch (e) {
|
|
286
|
-
this.logger.error(
|
|
282
|
+
this.logger.error(`failed to handle terminal: ${appId}`, e);
|
|
287
283
|
}
|
|
288
284
|
return _type.FcrReturnCode.SUCCESS;
|
|
289
285
|
}
|
|
290
286
|
_setBoardViewStyle(view) {
|
|
291
|
-
view.style.height =
|
|
292
|
-
view.style.width =
|
|
287
|
+
view.style.height = `100%`;
|
|
288
|
+
view.style.width = `100%`;
|
|
293
289
|
view.style.backgroundColor = 'rgba(0, 0, 0, 0)';
|
|
294
290
|
}
|
|
295
291
|
_enableAutoCancel(enable) {
|
|
@@ -303,9 +299,4 @@ class FcrBoardMainWindowImpl {
|
|
|
303
299
|
this.addObserver((0, _logger.generateLogObserver)(this.logger, [['onWritable', ['isWritable']], ['onPageInfoUpdated', ['info']], ['onUndoStateUpdated', ['enable']], ['onRedoStateUpdated', ['enable']]]));
|
|
304
300
|
}
|
|
305
301
|
}
|
|
306
|
-
exports.FcrBoardMainWindowImpl = FcrBoardMainWindowImpl;
|
|
307
|
-
_FcrBoardMainWindowImpl = FcrBoardMainWindowImpl;
|
|
308
|
-
var _applyDecs$e = _applyDecs(_FcrBoardMainWindowImpl, [[_log.trace, 2, "addPage"], [_log.trace, 2, "removePage"], [_log.trace, 2, "undo"], [_log.trace, 2, "redo"], [_log.trace, 2, "clean"], [_log.trace, 2, "getSnapshotImage"], [_setBackgroundColorDecs, 2, "setBackgroundColor"], [_log.trace, 2, "getPageInfo"], [_log.trace, 2, "prevPage"], [_log.trace, 2, "nextPage"], [_setToolTypeDecs, 2, "setToolType"], [_setStrokeWidthDecs, 2, "setStrokeWidth"], [_setStrokeColorDecs, 2, "setStrokeColor"], [_setTextColorDecs, 2, "setTextColor"], [_setTextSizeDecs, 2, "setTextSize"], [_insertImageDecs, 2, "insertImage"], [_log.trace, 2, "getContentView"], [_setContainerSizeRatioDecs, 2, "setContainerSizeRatio"], [_setBoardTransparentDecs, 2, "setBoardTransparent"], [_updateWindowSizeDecs, 2, "updateWindowSize"], [_setAutoCancelDrawDecs, 2, "setAutoCancelDraw"], [_log.trace, 2, "getWritable"], [_handleApplicationLaunchDecs, 2, "_handleApplicationLaunch"], [_handleApplicationTerminalDecs, 2, "_handleApplicationTerminal"], [_enableAutoCancelDecs, 2, "_enableAutoCancel"]], []).e;
|
|
309
|
-
var _applyDecs$e2 = (0, _slicedToArray2.default)(_applyDecs$e, 1);
|
|
310
|
-
_initProto = _applyDecs$e2[0];
|
|
311
|
-
_applyDecs$e;
|
|
302
|
+
exports.FcrBoardMainWindowImpl = FcrBoardMainWindowImpl;
|
|
@@ -48,11 +48,11 @@ const getAnnotationConfigFromRoomProperties = (properties, logger) => {
|
|
|
48
48
|
let width = (0, _imports.get)(properties, 'widgets.annotation.size.width');
|
|
49
49
|
let height = (0, _imports.get)(properties, 'widgets.annotation.size.height');
|
|
50
50
|
if (typeof width !== 'number') {
|
|
51
|
-
logger.warn(
|
|
51
|
+
logger.warn(`got invalid width for annotation board, width: ${width}`);
|
|
52
52
|
width = 0;
|
|
53
53
|
}
|
|
54
54
|
if (typeof height !== 'number') {
|
|
55
|
-
logger.warn(
|
|
55
|
+
logger.warn(`got invalid height for annotation board, height: ${height}`);
|
|
56
56
|
height = 0;
|
|
57
57
|
}
|
|
58
58
|
const boardWidthVal = width;
|
|
@@ -60,20 +60,21 @@ const getAnnotationConfigFromRoomProperties = (properties, logger) => {
|
|
|
60
60
|
let boardWidth = 0;
|
|
61
61
|
let boardHeight = 0;
|
|
62
62
|
if (boardWidthVal !== 0 && boardHeightVal !== 0) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
({
|
|
64
|
+
width: boardWidth,
|
|
65
|
+
height: boardHeight
|
|
66
|
+
} = resizeToMax(boardWidthVal, boardHeightVal, FCR_ANNOTATION_SCALE_BASE));
|
|
66
67
|
} else {
|
|
67
|
-
logger.warn(
|
|
68
|
+
logger.warn(`got invalid width or height for annotation board, skip resizing, width: ${boardWidthVal}, height: ${boardHeightVal}`);
|
|
68
69
|
}
|
|
69
|
-
logger.info(
|
|
70
|
+
logger.info(`got board config info, ${(0, _imports.jsonstring)({
|
|
70
71
|
boardAppId,
|
|
71
72
|
boardId,
|
|
72
73
|
boardToken,
|
|
73
74
|
boardRegion,
|
|
74
75
|
boardWidth,
|
|
75
76
|
boardHeight
|
|
76
|
-
}))
|
|
77
|
+
})}`);
|
|
77
78
|
return {
|
|
78
79
|
size: {
|
|
79
80
|
width: boardWidth,
|
|
@@ -88,8 +89,7 @@ const getAnnotationConfigFromRoomProperties = (properties, logger) => {
|
|
|
88
89
|
};
|
|
89
90
|
};
|
|
90
91
|
exports.getAnnotationConfigFromRoomProperties = getAnnotationConfigFromRoomProperties;
|
|
91
|
-
const resizeToMax =
|
|
92
|
-
let scaleBase = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : FCR_ANNOTATION_SCALE_BASE;
|
|
92
|
+
const resizeToMax = (w, h, scaleBase = FCR_ANNOTATION_SCALE_BASE) => {
|
|
93
93
|
const scale = scaleBase / Math.max(w, h);
|
|
94
94
|
return {
|
|
95
95
|
width: Math.round(w * scale),
|