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,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.symbol.description.js");
|
|
4
|
-
require("core-js/modules/es.error.cause.js");
|
|
5
3
|
require("core-js/modules/es.array.push.js");
|
|
6
4
|
require("core-js/modules/esnext.function.metadata.js");
|
|
7
|
-
require("core-js/modules/esnext.iterator.filter.js");
|
|
8
|
-
require("core-js/modules/esnext.iterator.for-each.js");
|
|
9
5
|
require("core-js/modules/esnext.map.delete-all.js");
|
|
10
6
|
require("core-js/modules/esnext.map.emplace.js");
|
|
11
7
|
require("core-js/modules/esnext.map.every.js");
|
|
@@ -26,18 +22,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
26
22
|
value: true
|
|
27
23
|
});
|
|
28
24
|
exports.FcrBoardMainWindowImpl = void 0;
|
|
29
|
-
require("core-js/modules/es.promise.finally.js");
|
|
30
25
|
require("core-js/modules/esnext.iterator.constructor.js");
|
|
31
26
|
require("core-js/modules/esnext.iterator.map.js");
|
|
32
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
33
|
-
require("core-js/modules/web.url.js");
|
|
34
|
-
require("core-js/modules/web.url.to-json.js");
|
|
35
|
-
require("core-js/modules/web.url-search-params.js");
|
|
36
27
|
require("core-js/modules/web.url-search-params.delete.js");
|
|
37
28
|
require("core-js/modules/web.url-search-params.has.js");
|
|
38
29
|
require("core-js/modules/web.url-search-params.size.js");
|
|
39
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
40
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
41
30
|
var _whiteSnapshot = require("@netless/white-snapshot");
|
|
42
31
|
var _windowManager = require("@netless/window-manager");
|
|
43
32
|
var _appliancePlugin = require("@netless/appliance-plugin");
|
|
@@ -54,25 +43,24 @@ var _subWorker = _interopRequireDefault(require("@netless/appliance-plugin/dist/
|
|
|
54
43
|
var _type = require("../../type");
|
|
55
44
|
var _lodash = require("lodash");
|
|
56
45
|
var _imports2 = require("agora-rte-sdk/lib/imports");
|
|
57
|
-
|
|
58
|
-
let _initProto, _cleanDecs, _setToolTypeDecs, _setStrokeWidthDecs, _setStrokeColorDecs, _setTextColorDecs, _setTextSizeDecs, _setFillColorDecs, _setEraserSizeDecs, _setBackgroundColorDecs, _insertImageDecs, _insertMediaDecs, _mountDecs, _ref; //@ts-ignore
|
|
46
|
+
let _initProto, _cleanDecs, _setToolTypeDecs, _setStrokeWidthDecs, _setStrokeColorDecs, _setTextColorDecs, _setTextSizeDecs, _setFillColorDecs, _setEraserSizeDecs, _setBackgroundColorDecs, _insertImageDecs, _insertMediaDecs, _mountDecs; //@ts-ignore
|
|
59
47
|
//@ts-ignore
|
|
60
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
61
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
62
48
|
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)]; } }; }
|
|
63
49
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
64
50
|
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); }
|
|
65
51
|
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; }
|
|
66
52
|
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; }
|
|
67
|
-
_ref = (_cleanDecs = [_imports.bound, (0, _imports.trace)(['retainPpt'])], _setToolTypeDecs = [_imports.bound, (0, _imports.trace)(['type'])], _setStrokeWidthDecs = [_imports.bound, (0, _imports.trace)(['strokeWidth'])], _setStrokeColorDecs = [_imports.bound, (0, _imports.trace)(['color'])], _setTextColorDecs = [_imports.bound, (0, _imports.trace)(['color'])], _setTextSizeDecs = [_imports.bound, (0, _imports.trace)(['size'])], _setFillColorDecs = [_imports.bound, (0, _imports.trace)(['fillColor'])], _setEraserSizeDecs = [_imports.bound, (0, _imports.trace)(['size'])], _setBackgroundColorDecs = [_imports.bound, (0, _imports.trace)(['color'])], _insertImageDecs = [_imports.bound, (0, _imports.trace)(['resourceUrl', 'x', 'y', 'width', 'height'])], _insertMediaDecs = [_imports.bound, (0, _imports.trace)(['resourceUrl', 'title'])], _mountDecs = (0, _imports.trace)(['options', 'params']), "logger");
|
|
68
53
|
class FcrBoardMainWindowImpl {
|
|
54
|
+
static {
|
|
55
|
+
[_initProto] = _applyDecs(this, [[[_imports.bound, _imports.trace], 2, "getSnapshotImage"], [_imports.trace, 2, "addObserver"], [_imports.trace, 2, "removeObserver"], [_imports.trace, 2, "getContentView"], [_imports.bound, 2, "setScale"], [_imports.bound, 2, "openSubWindowWithTaskId"], [_imports.bound, 2, "openSubWindowWithPageList"], [_imports.trace, 2, "getPageInfo"], [[_imports.bound, _imports.trace], 2, "addPage"], [[_imports.bound, _imports.trace], 2, "removePage"], [_imports.trace, 2, "prevPage"], [_imports.trace, 2, "nextPage"], [[_imports.bound, _imports.trace], 2, "undo"], [[_imports.bound, _imports.trace], 2, "redo"], [_cleanDecs, 2, "clean"], [_setToolTypeDecs, 2, "setToolType"], [_setStrokeWidthDecs, 2, "setStrokeWidth"], [_setStrokeColorDecs, 2, "setStrokeColor"], [_setTextColorDecs, 2, "setTextColor"], [_setTextSizeDecs, 2, "setTextSize"], [_setFillColorDecs, 2, "setFillColor"], [_setEraserSizeDecs, 2, "setEraserSize"], [_setBackgroundColorDecs, 2, "setBackgroundColor"], [_insertImageDecs, 2, "insertImage"], [_insertMediaDecs, 2, "insertMedia"], [_imports.trace, 2, "destroy"], [_imports.trace, 2, "getWritable"], [_mountDecs, 2, "_mount"], [_imports.trace, 2, "_setRoom"]], []).e;
|
|
56
|
+
}
|
|
57
|
+
[(_cleanDecs = [_imports.bound, (0, _imports.trace)(['retainPpt'])], _setToolTypeDecs = [_imports.bound, (0, _imports.trace)(['type'])], _setStrokeWidthDecs = [_imports.bound, (0, _imports.trace)(['strokeWidth'])], _setStrokeColorDecs = [_imports.bound, (0, _imports.trace)(['color'])], _setTextColorDecs = [_imports.bound, (0, _imports.trace)(['color'])], _setTextSizeDecs = [_imports.bound, (0, _imports.trace)(['size'])], _setFillColorDecs = [_imports.bound, (0, _imports.trace)(['fillColor'])], _setEraserSizeDecs = [_imports.bound, (0, _imports.trace)(['size'])], _setBackgroundColorDecs = [_imports.bound, (0, _imports.trace)(['color'])], _insertImageDecs = [_imports.bound, (0, _imports.trace)(['resourceUrl', 'x', 'y', 'width', 'height'])], _insertMediaDecs = [_imports.bound, (0, _imports.trace)(['resourceUrl', 'title'])], _mountDecs = (0, _imports.trace)(['options', 'params']), "logger")] = (_initProto(this), (0, _logger.createLogger)({
|
|
58
|
+
prefix: 'FcrBoardMainWindowImpl'
|
|
59
|
+
}));
|
|
60
|
+
_memberState = {};
|
|
61
|
+
_observable = new _imports.AgoraObservable();
|
|
62
|
+
_destroyed = false;
|
|
69
63
|
constructor(room) {
|
|
70
|
-
(0, _defineProperty2.default)(this, _ref, (_initProto(this), (0, _logger.createLogger)({
|
|
71
|
-
prefix: 'FcrBoardMainWindowImpl'
|
|
72
|
-
})));
|
|
73
|
-
(0, _defineProperty2.default)(this, "_memberState", {});
|
|
74
|
-
(0, _defineProperty2.default)(this, "_observable", new _imports.AgoraObservable());
|
|
75
|
-
(0, _defineProperty2.default)(this, "_destroyed", false);
|
|
76
64
|
this._whiteBoardroom = room;
|
|
77
65
|
this._whiteView = document.createElement('div');
|
|
78
66
|
this._initView();
|
|
@@ -128,90 +116,80 @@ class FcrBoardMainWindowImpl {
|
|
|
128
116
|
return this._whiteView;
|
|
129
117
|
}
|
|
130
118
|
setScale(value) {
|
|
131
|
-
var _this$_windowManager;
|
|
132
119
|
const scale = Math.max(Math.min(value, 3), -3);
|
|
133
|
-
|
|
120
|
+
this._windowManager?.moveCamera({
|
|
134
121
|
scale
|
|
135
122
|
});
|
|
136
123
|
}
|
|
137
124
|
async openSubWindowWithTaskId(title, taskId, urlPrefix) {
|
|
138
|
-
|
|
139
|
-
const appId = await ((_this$_windowManager2 = this._windowManager) === null || _this$_windowManager2 === void 0 ? void 0 : _this$_windowManager2.addApp({
|
|
125
|
+
const appId = await this._windowManager?.addApp({
|
|
140
126
|
kind: 'Slide',
|
|
141
127
|
options: {
|
|
142
|
-
scenePath:
|
|
128
|
+
scenePath: `/ppt${taskId}`,
|
|
143
129
|
title
|
|
144
130
|
},
|
|
145
131
|
attributes: {
|
|
146
132
|
taskId,
|
|
147
133
|
url: urlPrefix
|
|
148
134
|
}
|
|
149
|
-
})
|
|
135
|
+
});
|
|
150
136
|
if (appId) {
|
|
151
|
-
|
|
152
|
-
const app = (_this$_windowManager3 = this._windowManager) === null || _this$_windowManager3 === void 0 || (_this$_windowManager3 = _this$_windowManager3.apps) === null || _this$_windowManager3 === void 0 ? void 0 : _this$_windowManager3[appId];
|
|
137
|
+
const app = this._windowManager?.apps?.[appId];
|
|
153
138
|
return app ? new _boardSubwindow.FcrBoardSubWindowImpl(appId) : undefined;
|
|
154
139
|
}
|
|
155
140
|
}
|
|
156
141
|
async openSubWindowWithPageList(title, pageList) {
|
|
157
|
-
|
|
158
|
-
const
|
|
159
|
-
const appId = await ((_this$_windowManager4 = this._windowManager) === null || _this$_windowManager4 === void 0 ? void 0 : _this$_windowManager4.addApp({
|
|
142
|
+
const scenePath = `/${Date.now()}`;
|
|
143
|
+
const appId = await this._windowManager?.addApp({
|
|
160
144
|
kind: _windowManager.BuiltinApps.DocsViewer,
|
|
161
145
|
options: {
|
|
162
146
|
scenePath,
|
|
163
147
|
title,
|
|
164
148
|
scenes: this._convertToScenes(pageList)
|
|
165
149
|
}
|
|
166
|
-
})
|
|
150
|
+
});
|
|
167
151
|
if (appId) {
|
|
168
|
-
|
|
169
|
-
const app = (_this$_windowManager5 = this._windowManager) === null || _this$_windowManager5 === void 0 || (_this$_windowManager5 = _this$_windowManager5.apps) === null || _this$_windowManager5 === void 0 ? void 0 : _this$_windowManager5[appId];
|
|
152
|
+
const app = this._windowManager?.apps?.[appId];
|
|
170
153
|
return app ? new _boardSubwindow.FcrBoardSubWindowImpl(appId) : undefined;
|
|
171
154
|
}
|
|
172
155
|
}
|
|
173
156
|
async setContainerSizeRatio(ratio) {
|
|
174
|
-
var _this$_windowManager6;
|
|
175
157
|
this._preCheck();
|
|
176
|
-
|
|
158
|
+
this._windowManager?.setContainerSizeRatio(ratio);
|
|
177
159
|
}
|
|
178
160
|
getPageInfo() {
|
|
179
161
|
this._preCheck();
|
|
180
162
|
const windowManager = this._windowManager;
|
|
181
163
|
return {
|
|
182
|
-
showIndex:
|
|
183
|
-
count:
|
|
164
|
+
showIndex: windowManager?.mainViewSceneIndex || 0,
|
|
165
|
+
count: windowManager?.mainViewScenesLength || 0
|
|
184
166
|
};
|
|
185
167
|
}
|
|
186
168
|
async addPage() {
|
|
187
|
-
var _this$_windowManager7;
|
|
188
169
|
this._preCheck();
|
|
189
|
-
if (
|
|
170
|
+
if (this._windowManager?.addPage) {
|
|
190
171
|
await this._windowManager.addPage();
|
|
191
172
|
await this._windowManager.nextPage();
|
|
192
173
|
}
|
|
193
174
|
return _type.FcrReturnCode.SUCCESS;
|
|
194
175
|
}
|
|
195
176
|
async removePage() {
|
|
196
|
-
var _this$_windowManager8;
|
|
197
177
|
this._preCheck();
|
|
198
|
-
if (
|
|
178
|
+
if (this._windowManager?.removePage) {
|
|
199
179
|
await this._windowManager.removePage();
|
|
200
180
|
}
|
|
201
181
|
return _type.FcrReturnCode.SUCCESS;
|
|
202
182
|
}
|
|
203
183
|
async prevPage() {
|
|
204
|
-
var _this$_windowManager9;
|
|
205
184
|
this._preCheck();
|
|
206
|
-
if (
|
|
185
|
+
if (this._windowManager?.prevPage) {
|
|
207
186
|
await this._windowManager.prevPage();
|
|
208
187
|
}
|
|
209
188
|
return _type.FcrReturnCode.SUCCESS;
|
|
210
189
|
}
|
|
211
190
|
async nextPage() {
|
|
212
|
-
var _this$_windowManager0;
|
|
213
191
|
this._preCheck();
|
|
214
|
-
if (
|
|
192
|
+
if (this._windowManager?.nextPage) {
|
|
215
193
|
await this._windowManager.nextPage();
|
|
216
194
|
}
|
|
217
195
|
return _type.FcrReturnCode.SUCCESS;
|
|
@@ -240,20 +218,19 @@ class FcrBoardMainWindowImpl {
|
|
|
240
218
|
this._preCheck({
|
|
241
219
|
wm: false
|
|
242
220
|
});
|
|
243
|
-
const
|
|
244
|
-
_convertToNetlessBoar2 = (0, _slicedToArray2.default)(_convertToNetlessBoar, 2),
|
|
245
|
-
tool = _convertToNetlessBoar2[0],
|
|
246
|
-
shape = _convertToNetlessBoar2[1];
|
|
221
|
+
const [tool, shape] = (0, _utils.convertToNetlessBoardTool)(type);
|
|
247
222
|
const strokeType = (0, _utils.convertToNetlessStorkeType)(type);
|
|
248
223
|
const change = {
|
|
249
224
|
currentApplianceName: tool,
|
|
250
225
|
shapeType: shape,
|
|
251
226
|
strokeType
|
|
252
227
|
};
|
|
253
|
-
this._memberState =
|
|
228
|
+
this._memberState = {
|
|
229
|
+
...this._memberState,
|
|
230
|
+
...change
|
|
231
|
+
};
|
|
254
232
|
if (this._windowManager) {
|
|
255
|
-
|
|
256
|
-
(_this$_appliancePlugi = this._appliancePluginInstance) === null || _this$_appliancePlugi === void 0 || _this$_appliancePlugi.setMemberState(change);
|
|
233
|
+
this._appliancePluginInstance?.setMemberState(change);
|
|
257
234
|
}
|
|
258
235
|
return _type.FcrReturnCode.SUCCESS;
|
|
259
236
|
}
|
|
@@ -262,33 +239,40 @@ class FcrBoardMainWindowImpl {
|
|
|
262
239
|
const change = {
|
|
263
240
|
strokeWidth
|
|
264
241
|
};
|
|
265
|
-
this._memberState =
|
|
242
|
+
this._memberState = {
|
|
243
|
+
...this._memberState,
|
|
244
|
+
...change
|
|
245
|
+
};
|
|
266
246
|
if (this._windowManager) {
|
|
267
247
|
this._whiteBoardroom.setMemberState(change);
|
|
268
248
|
}
|
|
269
249
|
return _type.FcrReturnCode.SUCCESS;
|
|
270
250
|
}
|
|
271
251
|
async setStrokeColor(color) {
|
|
272
|
-
var _color$a;
|
|
273
252
|
this._preCheck();
|
|
274
253
|
const change = {
|
|
275
254
|
strokeColor: [color.r, color.g, color.b],
|
|
276
|
-
strokeOpacity:
|
|
255
|
+
strokeOpacity: color.a ?? 1
|
|
256
|
+
};
|
|
257
|
+
this._memberState = {
|
|
258
|
+
...this._memberState,
|
|
259
|
+
...change
|
|
277
260
|
};
|
|
278
|
-
this._memberState = _objectSpread(_objectSpread({}, this._memberState), change);
|
|
279
261
|
if (this._windowManager) {
|
|
280
262
|
this._whiteBoardroom.setMemberState(change);
|
|
281
263
|
}
|
|
282
264
|
return _type.FcrReturnCode.SUCCESS;
|
|
283
265
|
}
|
|
284
266
|
async setTextColor(color) {
|
|
285
|
-
var _color$a2;
|
|
286
267
|
this._preCheck();
|
|
287
268
|
const change = {
|
|
288
269
|
textColor: [color.r, color.g, color.b],
|
|
289
|
-
textOpacity:
|
|
270
|
+
textOpacity: color.a ?? 1
|
|
271
|
+
};
|
|
272
|
+
this._memberState = {
|
|
273
|
+
...this._memberState,
|
|
274
|
+
...change
|
|
290
275
|
};
|
|
291
|
-
this._memberState = _objectSpread(_objectSpread({}, this._memberState), change);
|
|
292
276
|
if (this._windowManager) {
|
|
293
277
|
this._whiteBoardroom.setMemberState(change);
|
|
294
278
|
}
|
|
@@ -299,20 +283,25 @@ class FcrBoardMainWindowImpl {
|
|
|
299
283
|
const change = {
|
|
300
284
|
textSize: size
|
|
301
285
|
};
|
|
302
|
-
this._memberState =
|
|
286
|
+
this._memberState = {
|
|
287
|
+
...this._memberState,
|
|
288
|
+
...change
|
|
289
|
+
};
|
|
303
290
|
if (this._windowManager) {
|
|
304
291
|
this._whiteBoardroom.setMemberState(change);
|
|
305
292
|
}
|
|
306
293
|
return _type.FcrReturnCode.SUCCESS;
|
|
307
294
|
}
|
|
308
295
|
async setFillColor(fillColor) {
|
|
309
|
-
var _fillColor$a;
|
|
310
296
|
this._preCheck();
|
|
311
297
|
const change = {
|
|
312
298
|
fillColor: [fillColor.r, fillColor.g, fillColor.b],
|
|
313
|
-
fillOpacity:
|
|
299
|
+
fillOpacity: fillColor.a ?? 1
|
|
300
|
+
};
|
|
301
|
+
this._memberState = {
|
|
302
|
+
...this._memberState,
|
|
303
|
+
...change
|
|
314
304
|
};
|
|
315
|
-
this._memberState = _objectSpread(_objectSpread({}, this._memberState), change);
|
|
316
305
|
if (this._windowManager) {
|
|
317
306
|
this._whiteBoardroom.setMemberState(change);
|
|
318
307
|
}
|
|
@@ -323,17 +312,19 @@ class FcrBoardMainWindowImpl {
|
|
|
323
312
|
const change = {
|
|
324
313
|
pencilEraserSize: size
|
|
325
314
|
};
|
|
326
|
-
this._memberState =
|
|
315
|
+
this._memberState = {
|
|
316
|
+
...this._memberState,
|
|
317
|
+
...change
|
|
318
|
+
};
|
|
327
319
|
if (this._windowManager) {
|
|
328
320
|
this._whiteBoardroom.setMemberState(change);
|
|
329
321
|
}
|
|
330
322
|
return _type.FcrReturnCode.SUCCESS;
|
|
331
323
|
}
|
|
332
324
|
async setBackgroundColor(color) {
|
|
333
|
-
var _this$_whiteView$quer;
|
|
334
325
|
this._preCheck();
|
|
335
326
|
this._backgroundColor = color;
|
|
336
|
-
|
|
327
|
+
this._whiteView.querySelector('.netless-whiteboard')?.style.setProperty('background-color', color);
|
|
337
328
|
return _type.FcrReturnCode.SUCCESS;
|
|
338
329
|
}
|
|
339
330
|
async insertImage(resourceUrl, x, y, width, height) {
|
|
@@ -344,33 +335,34 @@ class FcrBoardMainWindowImpl {
|
|
|
344
335
|
const preWidth = width;
|
|
345
336
|
const preHeight = height;
|
|
346
337
|
if (windowManager) {
|
|
347
|
-
var _this$_whiteView$clie, _this$_whiteView, _this$_whiteView$clie2, _this$_whiteView2;
|
|
348
338
|
let originX = 0;
|
|
349
339
|
let originY = 0;
|
|
350
340
|
if (this._whiteView) {
|
|
351
341
|
originX = this._whiteView.clientWidth / 2;
|
|
352
342
|
originY = this._whiteView.clientHeight / 2;
|
|
353
343
|
}
|
|
354
|
-
const
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
x
|
|
359
|
-
y
|
|
344
|
+
const {
|
|
345
|
+
x,
|
|
346
|
+
y
|
|
347
|
+
} = windowManager.mainView.convertToPointInWorld({
|
|
348
|
+
x: preX ?? originX,
|
|
349
|
+
y: preY ?? originY
|
|
350
|
+
});
|
|
360
351
|
const containerSize = {
|
|
361
|
-
width:
|
|
362
|
-
height:
|
|
352
|
+
width: this._whiteView?.clientWidth ?? window.innerWidth,
|
|
353
|
+
height: this._whiteView?.clientHeight ?? window.innerHeight
|
|
363
354
|
};
|
|
364
355
|
const uuid = (0, _jsMd.md5)(resourceUrl);
|
|
365
|
-
const
|
|
366
|
-
width
|
|
367
|
-
height
|
|
356
|
+
const {
|
|
357
|
+
width,
|
|
358
|
+
height
|
|
359
|
+
} = await (0, _utils.fetchImageInfoByUrl)(resourceUrl, containerSize);
|
|
368
360
|
const imageInfo = {
|
|
369
361
|
uuid: uuid,
|
|
370
362
|
centerX: x,
|
|
371
363
|
centerY: y,
|
|
372
|
-
width: preWidth
|
|
373
|
-
height: preHeight
|
|
364
|
+
width: preWidth ?? width,
|
|
365
|
+
height: preHeight ?? height,
|
|
374
366
|
locked: false
|
|
375
367
|
};
|
|
376
368
|
windowManager.switchMainViewToWriter();
|
|
@@ -418,12 +410,11 @@ class FcrBoardMainWindowImpl {
|
|
|
418
410
|
}
|
|
419
411
|
}));
|
|
420
412
|
}
|
|
421
|
-
_preCheck() {
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
wm = _options$wm === void 0 ? true : _options$wm;
|
|
413
|
+
_preCheck(options = {}) {
|
|
414
|
+
const {
|
|
415
|
+
privilege = true,
|
|
416
|
+
wm = true
|
|
417
|
+
} = options;
|
|
427
418
|
if (privilege && !this._whiteBoardroom.isWritable) {
|
|
428
419
|
this.logger.warn('Try to operate on board window without operation privilege');
|
|
429
420
|
}
|
|
@@ -433,35 +424,32 @@ class FcrBoardMainWindowImpl {
|
|
|
433
424
|
}
|
|
434
425
|
_addWindowManagerEventListeners() {
|
|
435
426
|
const windowManager = this._windowManager;
|
|
436
|
-
windowManager
|
|
427
|
+
windowManager?.emitter.on('mainViewSceneIndexChange', showIndex => {
|
|
437
428
|
const state = {
|
|
438
429
|
showIndex: showIndex,
|
|
439
|
-
count:
|
|
430
|
+
count: windowManager?.mainViewScenesLength || 0
|
|
440
431
|
};
|
|
441
432
|
this._observable.notifyObservers('onPageInfoUpdated', state);
|
|
442
433
|
});
|
|
443
|
-
windowManager
|
|
434
|
+
windowManager?.emitter.on('mainViewScenesLengthChange', count => {
|
|
444
435
|
const state = {
|
|
445
|
-
showIndex:
|
|
436
|
+
showIndex: windowManager?.mainViewSceneIndex || 0,
|
|
446
437
|
count: count
|
|
447
438
|
};
|
|
448
439
|
this._observable.notifyObservers('onPageInfoUpdated', state);
|
|
449
440
|
});
|
|
450
|
-
windowManager
|
|
441
|
+
windowManager?.emitter.on('canUndoStepsChange', steps => {
|
|
451
442
|
this._observable.notifyObservers('onUndoStateUpdated', steps > 0);
|
|
452
443
|
});
|
|
453
|
-
windowManager
|
|
444
|
+
windowManager?.emitter.on('canRedoStepsChange', steps => {
|
|
454
445
|
this._observable.notifyObservers('onRedoStateUpdated', steps > 0);
|
|
455
446
|
});
|
|
456
447
|
}
|
|
457
448
|
|
|
458
449
|
// don't remove, used by FcrWhiteboardControl
|
|
459
|
-
async _mount() {
|
|
460
|
-
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
461
|
-
let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
450
|
+
async _mount(options = {}, params = {}) {
|
|
462
451
|
this._whiteboardPrivateParameters = params;
|
|
463
452
|
if (this._whiteBoardroom) {
|
|
464
|
-
var _this$_whiteboardPriv, _this$_whiteboardPriv2, _this$_whiteboardPriv3, _this$_whiteboardPriv4, _this$_whiteboardPriv5, _this$_whiteboardPriv6, _this$_whiteboardPriv7, _this$_whiteboardPriv8;
|
|
465
453
|
this._destroyed = false;
|
|
466
454
|
if (_mountManager.BoardMountManager.isMounting) {
|
|
467
455
|
this.logger.info('[FcrBoardMainWindow] wait for previous board window mounted, white room id:', this._whiteBoardroom.uuid);
|
|
@@ -474,15 +462,15 @@ class FcrBoardMainWindowImpl {
|
|
|
474
462
|
}
|
|
475
463
|
_mountManager.BoardMountManager.setIsMounting(true);
|
|
476
464
|
this.logger.info('start mount board window, white room id:', this._whiteBoardroom.uuid);
|
|
477
|
-
const extras =
|
|
478
|
-
const cursor =
|
|
479
|
-
const extendClass =
|
|
480
|
-
const containerElement =
|
|
481
|
-
let windowManagerParams =
|
|
482
|
-
this.logger.info(
|
|
483
|
-
this.logger.info(
|
|
484
|
-
this.logger.info(
|
|
485
|
-
this.logger.info(
|
|
465
|
+
const extras = this._whiteboardPrivateParameters?.extras ?? {};
|
|
466
|
+
const cursor = this._whiteboardPrivateParameters?.cursor ?? true;
|
|
467
|
+
const extendClass = this._whiteboardPrivateParameters?.extendClass;
|
|
468
|
+
const containerElement = this._whiteboardPrivateParameters?.containerElement;
|
|
469
|
+
let windowManagerParams = this._whiteboardPrivateParameters?.windowManagerParams ?? {};
|
|
470
|
+
this.logger.info(`set whiteboard extendClass: ${extendClass}`);
|
|
471
|
+
this.logger.info(`set whiteboard cursor: ${cursor}`);
|
|
472
|
+
this.logger.info(`set whiteboard extras: ${(0, _imports2.jsonstring)(extras)}`);
|
|
473
|
+
this.logger.info(`set whiteboard windowManagerParams: ${(0, _imports2.jsonstring)(windowManagerParams)}`);
|
|
486
474
|
if (!(0, _lodash.isPlainObject)(windowManagerParams)) {
|
|
487
475
|
this.logger.warn('windowManagerParams is not a plain object');
|
|
488
476
|
windowManagerParams = {};
|
|
@@ -492,7 +480,7 @@ class FcrBoardMainWindowImpl {
|
|
|
492
480
|
if (containerElement) {
|
|
493
481
|
containerElement.appendChild(this._whiteView);
|
|
494
482
|
}
|
|
495
|
-
await _windowManager.WindowManager.mount(
|
|
483
|
+
await _windowManager.WindowManager.mount({
|
|
496
484
|
debug: true,
|
|
497
485
|
room: this._whiteBoardroom,
|
|
498
486
|
container: this._whiteView,
|
|
@@ -500,8 +488,9 @@ class FcrBoardMainWindowImpl {
|
|
|
500
488
|
chessboard: false,
|
|
501
489
|
collectorContainer: options.collectorContainer,
|
|
502
490
|
containerSizeRatio: options.containerSizeRatio,
|
|
503
|
-
supportAppliancePlugin: true
|
|
504
|
-
|
|
491
|
+
supportAppliancePlugin: true,
|
|
492
|
+
...windowManagerParams
|
|
493
|
+
}, extendClass).then(async wm => {
|
|
505
494
|
if (this._destroyed) {
|
|
506
495
|
wm.destroy();
|
|
507
496
|
return;
|
|
@@ -512,8 +501,7 @@ class FcrBoardMainWindowImpl {
|
|
|
512
501
|
this._windowManager.mainView.disableCameraTransform = true;
|
|
513
502
|
this._addWindowManagerEventListeners();
|
|
514
503
|
if (this._backgroundColor) {
|
|
515
|
-
|
|
516
|
-
(_this$_whiteView$quer2 = this._whiteView.querySelector('.netless-whiteboard')) === null || _this$_whiteView$quer2 === void 0 || _this$_whiteView$quer2.style.setProperty('background-color', this._backgroundColor);
|
|
504
|
+
this._whiteView.querySelector('.netless-whiteboard')?.style.setProperty('background-color', this._backgroundColor);
|
|
517
505
|
}
|
|
518
506
|
const fullWorkerBlob = new Blob([_fullWorker.default], {
|
|
519
507
|
type: 'text/javascript'
|
|
@@ -552,7 +540,7 @@ class FcrBoardMainWindowImpl {
|
|
|
552
540
|
}
|
|
553
541
|
});
|
|
554
542
|
const hasPermission = this._whiteBoardroom.isWritable;
|
|
555
|
-
this.logger.info(
|
|
543
|
+
this.logger.info(`after mount, isWritable: ${hasPermission}`);
|
|
556
544
|
if (hasPermission) {
|
|
557
545
|
this._whiteBoardroom.setMemberState(this._memberState);
|
|
558
546
|
appliancePluginInstance.setMemberState({
|
|
@@ -588,9 +576,4 @@ class FcrBoardMainWindowImpl {
|
|
|
588
576
|
this.addObserver((0, _logger.generateLogObserver)(this.logger, [['onWritable', ['isWritable']], ['onPageInfoUpdated', ['info']], ['onUndoStateUpdated', ['enable']], ['onRedoStateUpdated', ['enable']]]));
|
|
589
577
|
}
|
|
590
578
|
}
|
|
591
|
-
exports.FcrBoardMainWindowImpl = FcrBoardMainWindowImpl;
|
|
592
|
-
_FcrBoardMainWindowImpl = FcrBoardMainWindowImpl;
|
|
593
|
-
var _applyDecs$e = _applyDecs(_FcrBoardMainWindowImpl, [[[_imports.bound, _imports.trace], 2, "getSnapshotImage"], [_imports.trace, 2, "addObserver"], [_imports.trace, 2, "removeObserver"], [_imports.trace, 2, "getContentView"], [_imports.bound, 2, "setScale"], [_imports.bound, 2, "openSubWindowWithTaskId"], [_imports.bound, 2, "openSubWindowWithPageList"], [_imports.trace, 2, "getPageInfo"], [[_imports.bound, _imports.trace], 2, "addPage"], [[_imports.bound, _imports.trace], 2, "removePage"], [_imports.trace, 2, "prevPage"], [_imports.trace, 2, "nextPage"], [[_imports.bound, _imports.trace], 2, "undo"], [[_imports.bound, _imports.trace], 2, "redo"], [_cleanDecs, 2, "clean"], [_setToolTypeDecs, 2, "setToolType"], [_setStrokeWidthDecs, 2, "setStrokeWidth"], [_setStrokeColorDecs, 2, "setStrokeColor"], [_setTextColorDecs, 2, "setTextColor"], [_setTextSizeDecs, 2, "setTextSize"], [_setFillColorDecs, 2, "setFillColor"], [_setEraserSizeDecs, 2, "setEraserSize"], [_setBackgroundColorDecs, 2, "setBackgroundColor"], [_insertImageDecs, 2, "insertImage"], [_insertMediaDecs, 2, "insertMedia"], [_imports.trace, 2, "destroy"], [_imports.trace, 2, "getWritable"], [_mountDecs, 2, "_mount"], [_imports.trace, 2, "_setRoom"]], []).e;
|
|
594
|
-
var _applyDecs$e2 = (0, _slicedToArray2.default)(_applyDecs$e, 1);
|
|
595
|
-
_initProto = _applyDecs$e2[0];
|
|
596
|
-
_applyDecs$e;
|
|
579
|
+
exports.FcrBoardMainWindowImpl = FcrBoardMainWindowImpl;
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.FcrWhiteboardControlFactoryImpl = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
7
|
var _ = require(".");
|
|
10
8
|
var _logger = require("../../utilities/logger");
|
|
11
9
|
class FcrWhiteboardControlFactoryImpl {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
10
|
+
logger = (0, _logger.createLogger)({
|
|
11
|
+
prefix: 'FcrWhiteboardControlFactory'
|
|
12
|
+
});
|
|
13
|
+
constructor() {}
|
|
17
14
|
createForMainProcess(hasOperationPrivilege, scene, api, sharedCache) {
|
|
18
15
|
this.logger.info('create for main process, use old whiteboard control');
|
|
19
16
|
return new _.FcrWhiteboardControlImpl(scene, api, sharedCache, hasOperationPrivilege);
|