fcr-core 3.4.2 → 3.4.3
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/chat-connection/index.js +20 -38
- package/lib/engine/index.js +39 -41
- package/lib/imports.js +0 -1
- package/lib/media-control/desktop.js +3 -11
- package/lib/media-control/mobile.js +6 -13
- package/lib/peer-session/index.js +34 -47
- package/lib/plugins/chatroom.js +99 -113
- package/lib/room-control/group-control/index.js +11 -22
- package/lib/room-control/index.js +56 -82
- package/lib/room-control/interpreter-control/index.js +9 -17
- package/lib/room-control/interpreter-control/room.js +4 -6
- package/lib/room-control/mainroom-control/index.js +21 -41
- package/lib/room-control/privilege-control/helper.js +5 -10
- package/lib/room-control/privilege-control/index.js +12 -21
- package/lib/room-control/privilege-control/type.js +1 -0
- package/lib/room-control/room-connector-control/index.js +13 -24
- package/lib/room-control/room-session/index.js +36 -49
- package/lib/room-control/stream-control/index.js +140 -151
- package/lib/room-control/user-control/index.js +119 -135
- package/lib/room-control/waitingroom-control/index.js +8 -16
- package/lib/room-control/whiteboard-control/board-subwindow.js +1 -2
- package/lib/room-control/whiteboard-control/board-window.js +49 -57
- package/lib/room-control/whiteboard-control/enums.js +84 -0
- package/lib/room-control/whiteboard-control/index.js +22 -35
- package/lib/room-control/whiteboard-control/mount-manager.js +2 -4
- package/lib/room-control/whiteboard-control/utils.js +14 -17
- package/lib/room-control/whiteboard-control-v2/index.js +19 -33
- package/lib/room-control/whiteboard-control-v2/main-window.js +12 -23
- package/lib/service/api.js +76 -82
- package/lib/type.js +4 -2
- package/lib/utilities/collection.js +2 -3
- package/lib/utilities/error.js +3 -5
- package/lib/utilities/logger.js +1 -2
- package/lib/utilities/parameters.js +4 -8
- package/lib/utilities/stream.js +12 -20
- package/lib/utilities/user.js +1 -1
- package/package.json +4 -4
- package/lib/room-control/chatroom-control/index.d.ts +0 -1
- package/lib/room-control/chatroom-control/index.js +0 -385
|
@@ -1,14 +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
|
-
require("core-js/modules/esnext.async-iterator.filter.js");
|
|
7
|
-
require("core-js/modules/esnext.async-iterator.for-each.js");
|
|
8
4
|
require("core-js/modules/esnext.function.metadata.js");
|
|
9
|
-
require("core-js/modules/esnext.iterator.constructor.js");
|
|
10
|
-
require("core-js/modules/esnext.iterator.filter.js");
|
|
11
|
-
require("core-js/modules/esnext.iterator.for-each.js");
|
|
12
5
|
require("core-js/modules/esnext.map.delete-all.js");
|
|
13
6
|
require("core-js/modules/esnext.map.emplace.js");
|
|
14
7
|
require("core-js/modules/esnext.map.every.js");
|
|
@@ -24,16 +17,12 @@ require("core-js/modules/esnext.map.reduce.js");
|
|
|
24
17
|
require("core-js/modules/esnext.map.some.js");
|
|
25
18
|
require("core-js/modules/esnext.map.update.js");
|
|
26
19
|
require("core-js/modules/esnext.symbol.metadata.js");
|
|
27
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
28
20
|
Object.defineProperty(exports, "__esModule", {
|
|
29
21
|
value: true
|
|
30
22
|
});
|
|
31
23
|
exports.FcrBoardMainWindowImpl = void 0;
|
|
32
|
-
require("core-js/modules/
|
|
33
|
-
require("core-js/modules/esnext.async-iterator.map.js");
|
|
24
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
34
25
|
require("core-js/modules/esnext.iterator.map.js");
|
|
35
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
36
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
37
26
|
var _whiteSnapshot = require("@netless/white-snapshot");
|
|
38
27
|
var _windowManager = require("@netless/window-manager");
|
|
39
28
|
require("@netless/window-manager/dist/style.css");
|
|
@@ -42,22 +31,20 @@ var _mountManager = require("./mount-manager");
|
|
|
42
31
|
var _jsMd = require("js-md5");
|
|
43
32
|
var _logger = require("../../utilities/logger");
|
|
44
33
|
var _imports = require("../../imports");
|
|
45
|
-
var _FcrBoardMainWindowImpl;
|
|
46
34
|
let _initProto;
|
|
47
|
-
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; }
|
|
48
|
-
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; }
|
|
49
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)]; } }; }
|
|
50
36
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
51
37
|
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); }
|
|
52
38
|
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; }
|
|
53
39
|
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; }
|
|
54
40
|
class FcrBoardMainWindowImpl {
|
|
41
|
+
static #_ = (() => [_initProto] = _applyDecs(this, [[[_imports.bound, _logger.trace], 2, "getSnapshotImage"], [_logger.trace, 2, "addObserver"], [_logger.trace, 2, "removeObserver"], [_logger.trace, 2, "getContentView"], [_logger.trace, 2, "setContainerSizeRatio"], [_logger.trace, 2, "getPageInfo"], [[_imports.bound, _logger.trace], 2, "addPage"], [[_imports.bound, _logger.trace], 2, "removePage"], [_logger.trace, 2, "prevPage"], [_logger.trace, 2, "nextPage"], [[_imports.bound, _logger.trace], 2, "undo"], [[_imports.bound, _logger.trace], 2, "redo"], [[_imports.bound, _logger.trace], 2, "clean"], [[_imports.bound, _logger.trace], 2, "setToolType"], [[_imports.bound, _logger.trace], 2, "setStrokeWidth"], [[_imports.bound, _logger.trace], 2, "setStrokeColor"], [[_imports.bound, _logger.trace], 2, "setTextColor"], [[_imports.bound, _logger.trace], 2, "setTextSize"], [[_imports.bound, _logger.trace], 2, "setBackgroundColor"], [[_imports.bound, _logger.trace], 2, "insertImage"], [_logger.trace, 2, "destroy"], [_imports.bound, 2, "_updateOperationPrivilege"], [_imports.bound, 2, "_mount"]], []).e)();
|
|
42
|
+
logger = (() => (_initProto(this), (0, _logger.getLogger)()))();
|
|
43
|
+
_hasOperationPrivilege = false;
|
|
44
|
+
_memberState = {};
|
|
45
|
+
_observable = (() => new _imports.AgoraObservable())();
|
|
46
|
+
_destroyed = false;
|
|
55
47
|
constructor(room, privilegeControl) {
|
|
56
|
-
(0, _defineProperty2.default)(this, "logger", (_initProto(this), (0, _logger.getLogger)()));
|
|
57
|
-
(0, _defineProperty2.default)(this, "_hasOperationPrivilege", false);
|
|
58
|
-
(0, _defineProperty2.default)(this, "_memberState", {});
|
|
59
|
-
(0, _defineProperty2.default)(this, "_observable", new _imports.AgoraObservable());
|
|
60
|
-
(0, _defineProperty2.default)(this, "_destroyed", false);
|
|
61
48
|
this._whiteBoardroom = room;
|
|
62
49
|
this._whiteView = document.createElement('div');
|
|
63
50
|
this._initView();
|
|
@@ -112,44 +99,39 @@ class FcrBoardMainWindowImpl {
|
|
|
112
99
|
return this._whiteView;
|
|
113
100
|
}
|
|
114
101
|
async setContainerSizeRatio(ratio) {
|
|
115
|
-
var _this$_windowManager;
|
|
116
102
|
this._preCheck();
|
|
117
|
-
|
|
103
|
+
this._windowManager?.setContainerSizeRatio(ratio);
|
|
118
104
|
}
|
|
119
105
|
getPageInfo() {
|
|
120
106
|
this._preCheck();
|
|
121
107
|
const windowManager = this._windowManager;
|
|
122
108
|
return {
|
|
123
|
-
showIndex:
|
|
124
|
-
count:
|
|
109
|
+
showIndex: windowManager?.mainViewSceneIndex || 0,
|
|
110
|
+
count: windowManager?.mainViewScenesLength || 0
|
|
125
111
|
};
|
|
126
112
|
}
|
|
127
113
|
async addPage() {
|
|
128
|
-
var _this$_windowManager2;
|
|
129
114
|
this._preCheck();
|
|
130
|
-
if (
|
|
115
|
+
if (this._windowManager?.addPage) {
|
|
131
116
|
await this._windowManager.addPage();
|
|
132
117
|
await this._windowManager.nextPage();
|
|
133
118
|
}
|
|
134
119
|
}
|
|
135
120
|
async removePage() {
|
|
136
|
-
var _this$_windowManager3;
|
|
137
121
|
this._preCheck();
|
|
138
|
-
if (
|
|
122
|
+
if (this._windowManager?.removePage) {
|
|
139
123
|
await this._windowManager.removePage();
|
|
140
124
|
}
|
|
141
125
|
}
|
|
142
126
|
async prevPage() {
|
|
143
|
-
var _this$_windowManager4;
|
|
144
127
|
this._preCheck();
|
|
145
|
-
if (
|
|
128
|
+
if (this._windowManager?.prevPage) {
|
|
146
129
|
await this._windowManager.prevPage();
|
|
147
130
|
}
|
|
148
131
|
}
|
|
149
132
|
async nextPage() {
|
|
150
|
-
var _this$_windowManager5;
|
|
151
133
|
this._preCheck();
|
|
152
|
-
if (
|
|
134
|
+
if (this._windowManager?.nextPage) {
|
|
153
135
|
await this._windowManager.nextPage();
|
|
154
136
|
}
|
|
155
137
|
}
|
|
@@ -181,7 +163,10 @@ class FcrBoardMainWindowImpl {
|
|
|
181
163
|
currentApplianceName: tool,
|
|
182
164
|
shapeType: shape
|
|
183
165
|
};
|
|
184
|
-
this._memberState =
|
|
166
|
+
this._memberState = {
|
|
167
|
+
...this._memberState,
|
|
168
|
+
...change
|
|
169
|
+
};
|
|
185
170
|
if (this._windowManager) {
|
|
186
171
|
this._whiteBoardroom.setMemberState(change);
|
|
187
172
|
}
|
|
@@ -191,7 +176,10 @@ class FcrBoardMainWindowImpl {
|
|
|
191
176
|
const change = {
|
|
192
177
|
strokeWidth
|
|
193
178
|
};
|
|
194
|
-
this._memberState =
|
|
179
|
+
this._memberState = {
|
|
180
|
+
...this._memberState,
|
|
181
|
+
...change
|
|
182
|
+
};
|
|
195
183
|
if (this._windowManager) {
|
|
196
184
|
this._whiteBoardroom.setMemberState(change);
|
|
197
185
|
}
|
|
@@ -201,7 +189,10 @@ class FcrBoardMainWindowImpl {
|
|
|
201
189
|
const change = {
|
|
202
190
|
strokeColor: [color.r, color.g, color.b]
|
|
203
191
|
};
|
|
204
|
-
this._memberState =
|
|
192
|
+
this._memberState = {
|
|
193
|
+
...this._memberState,
|
|
194
|
+
...change
|
|
195
|
+
};
|
|
205
196
|
if (this._windowManager) {
|
|
206
197
|
this._whiteBoardroom.setMemberState(change);
|
|
207
198
|
}
|
|
@@ -211,7 +202,10 @@ class FcrBoardMainWindowImpl {
|
|
|
211
202
|
const change = {
|
|
212
203
|
textColor: [color.r, color.g, color.b]
|
|
213
204
|
};
|
|
214
|
-
this._memberState =
|
|
205
|
+
this._memberState = {
|
|
206
|
+
...this._memberState,
|
|
207
|
+
...change
|
|
208
|
+
};
|
|
215
209
|
if (this._windowManager) {
|
|
216
210
|
this._whiteBoardroom.setMemberState(change);
|
|
217
211
|
}
|
|
@@ -221,16 +215,18 @@ class FcrBoardMainWindowImpl {
|
|
|
221
215
|
const change = {
|
|
222
216
|
textSize: size
|
|
223
217
|
};
|
|
224
|
-
this._memberState =
|
|
218
|
+
this._memberState = {
|
|
219
|
+
...this._memberState,
|
|
220
|
+
...change
|
|
221
|
+
};
|
|
225
222
|
if (this._windowManager) {
|
|
226
223
|
this._whiteBoardroom.setMemberState(change);
|
|
227
224
|
}
|
|
228
225
|
}
|
|
229
226
|
async setBackgroundColor(color) {
|
|
230
|
-
var _this$_whiteView$quer;
|
|
231
227
|
this._preCheck();
|
|
232
228
|
this._backgroundColor = color;
|
|
233
|
-
|
|
229
|
+
this._whiteView.querySelector('.netless-whiteboard')?.style.setProperty('background-color', color);
|
|
234
230
|
}
|
|
235
231
|
async insertImage(resourceUrl, x, y, width, height) {
|
|
236
232
|
const room = this._whiteBoardroom;
|
|
@@ -240,7 +236,6 @@ class FcrBoardMainWindowImpl {
|
|
|
240
236
|
const preWidth = width;
|
|
241
237
|
const preHeight = height;
|
|
242
238
|
if (windowManager) {
|
|
243
|
-
var _this$_whiteView$clie, _this$_whiteView, _this$_whiteView$clie2, _this$_whiteView2;
|
|
244
239
|
let originX = 0;
|
|
245
240
|
let originY = 0;
|
|
246
241
|
if (this._whiteView) {
|
|
@@ -251,12 +246,12 @@ class FcrBoardMainWindowImpl {
|
|
|
251
246
|
x,
|
|
252
247
|
y
|
|
253
248
|
} = windowManager.mainView.convertToPointInWorld({
|
|
254
|
-
x: preX
|
|
255
|
-
y: preY
|
|
249
|
+
x: preX ?? originX,
|
|
250
|
+
y: preY ?? originY
|
|
256
251
|
});
|
|
257
252
|
const containerSize = {
|
|
258
|
-
width:
|
|
259
|
-
height:
|
|
253
|
+
width: this._whiteView?.clientWidth ?? window.innerWidth,
|
|
254
|
+
height: this._whiteView?.clientHeight ?? window.innerHeight
|
|
260
255
|
};
|
|
261
256
|
const uuid = (0, _jsMd.md5)(resourceUrl);
|
|
262
257
|
const {
|
|
@@ -267,8 +262,8 @@ class FcrBoardMainWindowImpl {
|
|
|
267
262
|
uuid: uuid,
|
|
268
263
|
centerX: x,
|
|
269
264
|
centerY: y,
|
|
270
|
-
width: preWidth
|
|
271
|
-
height: preHeight
|
|
265
|
+
width: preWidth ?? width,
|
|
266
|
+
height: preHeight ?? height,
|
|
272
267
|
locked: false
|
|
273
268
|
};
|
|
274
269
|
windowManager.switchMainViewToWriter();
|
|
@@ -311,24 +306,24 @@ class FcrBoardMainWindowImpl {
|
|
|
311
306
|
}
|
|
312
307
|
_addWindowManagerEventListeners() {
|
|
313
308
|
const windowManager = this._windowManager;
|
|
314
|
-
windowManager
|
|
309
|
+
windowManager?.emitter.on('mainViewSceneIndexChange', showIndex => {
|
|
315
310
|
const state = {
|
|
316
311
|
showIndex: showIndex,
|
|
317
|
-
count:
|
|
312
|
+
count: windowManager?.mainViewScenesLength || 0
|
|
318
313
|
};
|
|
319
314
|
this._observable.notifyObservers('onPageInfoUpdated', state);
|
|
320
315
|
});
|
|
321
|
-
windowManager
|
|
316
|
+
windowManager?.emitter.on('mainViewScenesLengthChange', count => {
|
|
322
317
|
const state = {
|
|
323
|
-
showIndex:
|
|
318
|
+
showIndex: windowManager?.mainViewSceneIndex || 0,
|
|
324
319
|
count: count
|
|
325
320
|
};
|
|
326
321
|
this._observable.notifyObservers('onPageInfoUpdated', state);
|
|
327
322
|
});
|
|
328
|
-
windowManager
|
|
323
|
+
windowManager?.emitter.on('canUndoStepsChange', steps => {
|
|
329
324
|
this._observable.notifyObservers('onUndoStateUpdated', steps > 0);
|
|
330
325
|
});
|
|
331
|
-
windowManager
|
|
326
|
+
windowManager?.emitter.on('canRedoStepsChange', steps => {
|
|
332
327
|
this._observable.notifyObservers('onRedoStateUpdated', steps > 0);
|
|
333
328
|
});
|
|
334
329
|
}
|
|
@@ -374,8 +369,7 @@ class FcrBoardMainWindowImpl {
|
|
|
374
369
|
this._updateOperationPrivilege(true);
|
|
375
370
|
this._whiteBoardroom.setMemberState(this._memberState);
|
|
376
371
|
if (this._backgroundColor) {
|
|
377
|
-
|
|
378
|
-
(_this$_whiteView$quer2 = this._whiteView.querySelector('.netless-whiteboard')) === null || _this$_whiteView$quer2 === void 0 || _this$_whiteView$quer2.style.setProperty('background-color', this._backgroundColor);
|
|
372
|
+
this._whiteView.querySelector('.netless-whiteboard')?.style.setProperty('background-color', this._backgroundColor);
|
|
379
373
|
}
|
|
380
374
|
}).catch(e => {
|
|
381
375
|
this.logger.error('[FcrBoardMainWindow] failed to mount', e);
|
|
@@ -394,6 +388,4 @@ class FcrBoardMainWindowImpl {
|
|
|
394
388
|
this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onPageInfoUpdated', 'onPageInfoUpdated', 'onUndoStateUpdated', 'onRedoStateUpdated']));
|
|
395
389
|
}
|
|
396
390
|
}
|
|
397
|
-
exports.FcrBoardMainWindowImpl = FcrBoardMainWindowImpl;
|
|
398
|
-
_FcrBoardMainWindowImpl = FcrBoardMainWindowImpl;
|
|
399
|
-
[_initProto] = _applyDecs(_FcrBoardMainWindowImpl, [[[_imports.bound, _logger.trace], 2, "getSnapshotImage"], [_logger.trace, 2, "addObserver"], [_logger.trace, 2, "removeObserver"], [_logger.trace, 2, "getContentView"], [_logger.trace, 2, "setContainerSizeRatio"], [_logger.trace, 2, "getPageInfo"], [[_imports.bound, _logger.trace], 2, "addPage"], [[_imports.bound, _logger.trace], 2, "removePage"], [_logger.trace, 2, "prevPage"], [_logger.trace, 2, "nextPage"], [[_imports.bound, _logger.trace], 2, "undo"], [[_imports.bound, _logger.trace], 2, "redo"], [[_imports.bound, _logger.trace], 2, "clean"], [[_imports.bound, _logger.trace], 2, "setToolType"], [[_imports.bound, _logger.trace], 2, "setStrokeWidth"], [[_imports.bound, _logger.trace], 2, "setStrokeColor"], [[_imports.bound, _logger.trace], 2, "setTextColor"], [[_imports.bound, _logger.trace], 2, "setTextSize"], [[_imports.bound, _logger.trace], 2, "setBackgroundColor"], [[_imports.bound, _logger.trace], 2, "insertImage"], [_logger.trace, 2, "destroy"], [_imports.bound, 2, "_updateOperationPrivilege"], [_imports.bound, 2, "_mount"]], []).e;
|
|
391
|
+
exports.FcrBoardMainWindowImpl = FcrBoardMainWindowImpl;
|
|
@@ -24,10 +24,25 @@ let FcrBoardShape = exports.FcrBoardShape = /*#__PURE__*/function (FcrBoardShape
|
|
|
24
24
|
return FcrBoardShape;
|
|
25
25
|
}({});
|
|
26
26
|
let RoomPhase = exports.RoomPhase = /*#__PURE__*/function (RoomPhase) {
|
|
27
|
+
/**
|
|
28
|
+
* 连接中
|
|
29
|
+
*/
|
|
27
30
|
RoomPhase["Connecting"] = "connecting";
|
|
31
|
+
/**
|
|
32
|
+
* 已连接
|
|
33
|
+
*/
|
|
28
34
|
RoomPhase["Connected"] = "connected";
|
|
35
|
+
/**
|
|
36
|
+
* 正在重连
|
|
37
|
+
*/
|
|
29
38
|
RoomPhase["Reconnecting"] = "reconnecting";
|
|
39
|
+
/**
|
|
40
|
+
* 断开连接中
|
|
41
|
+
*/
|
|
30
42
|
RoomPhase["Disconnecting"] = "disconnecting";
|
|
43
|
+
/**
|
|
44
|
+
* 已断开连接
|
|
45
|
+
*/
|
|
31
46
|
RoomPhase["Disconnected"] = "disconnected";
|
|
32
47
|
return RoomPhase;
|
|
33
48
|
}({});
|
|
@@ -38,37 +53,106 @@ let FcrBoardMainWindowFailureReason = exports.FcrBoardMainWindowFailureReason =
|
|
|
38
53
|
return FcrBoardMainWindowFailureReason;
|
|
39
54
|
}({});
|
|
40
55
|
let ViewMode = exports.ViewMode = /*#__PURE__*/function (ViewMode) {
|
|
56
|
+
/**
|
|
57
|
+
* 自由模式。不跟随任何人,也不被任何人跟随,自己可以自由操作视角。
|
|
58
|
+
*/
|
|
41
59
|
ViewMode["Freedom"] = "freedom";
|
|
60
|
+
/**
|
|
61
|
+
* 跟随模式。跟随当前房间的主播视角。
|
|
62
|
+
*/
|
|
42
63
|
ViewMode["Follower"] = "follower";
|
|
64
|
+
/**
|
|
65
|
+
* 主播模式。可以自由操作视角,但房间中处于跟随模式的人会跟随。
|
|
66
|
+
*/
|
|
43
67
|
ViewMode["Broadcaster"] = "broadcaster";
|
|
44
68
|
return ViewMode;
|
|
45
69
|
}({});
|
|
46
70
|
let DeviceType = exports.DeviceType = /*#__PURE__*/function (DeviceType) {
|
|
71
|
+
/**
|
|
72
|
+
* 桌面设备,使用键盘鼠标
|
|
73
|
+
*/
|
|
47
74
|
DeviceType["Desktop"] = "desktop";
|
|
75
|
+
/**
|
|
76
|
+
* 触碰板设备,比如只能手机、平板电脑
|
|
77
|
+
*/
|
|
48
78
|
DeviceType["Touch"] = "touch";
|
|
79
|
+
/**
|
|
80
|
+
* 同时支持键盘、鼠标、触碰板的设备
|
|
81
|
+
*/
|
|
49
82
|
DeviceType["Surface"] = "surface";
|
|
50
83
|
return DeviceType;
|
|
51
84
|
}({});
|
|
52
85
|
let ApplianceNames = exports.ApplianceNames = /*#__PURE__*/function (ApplianceNames) {
|
|
86
|
+
/**
|
|
87
|
+
* 选择工具
|
|
88
|
+
*/
|
|
53
89
|
ApplianceNames["selector"] = "selector";
|
|
90
|
+
/**
|
|
91
|
+
* 互动工具(无默认行为,可供 plugin 自定义)
|
|
92
|
+
*/
|
|
54
93
|
ApplianceNames["clicker"] = "clicker";
|
|
94
|
+
/**
|
|
95
|
+
* 激光笔
|
|
96
|
+
*/
|
|
55
97
|
ApplianceNames["laserPointer"] = "laserPointer";
|
|
98
|
+
/**
|
|
99
|
+
* 铅笔工具
|
|
100
|
+
*/
|
|
56
101
|
ApplianceNames["pencil"] = "pencil";
|
|
102
|
+
/**
|
|
103
|
+
* 矩形工具
|
|
104
|
+
*/
|
|
57
105
|
ApplianceNames["rectangle"] = "rectangle";
|
|
106
|
+
/**
|
|
107
|
+
* 圆形工具
|
|
108
|
+
*/
|
|
58
109
|
ApplianceNames["ellipse"] = "ellipse";
|
|
110
|
+
/**
|
|
111
|
+
* 图形工具
|
|
112
|
+
*/
|
|
59
113
|
ApplianceNames["shape"] = "shape";
|
|
114
|
+
/**
|
|
115
|
+
* 橡皮工具
|
|
116
|
+
*/
|
|
60
117
|
ApplianceNames["eraser"] = "eraser";
|
|
118
|
+
/**
|
|
119
|
+
* 橡皮工具(用来擦除铅笔笔迹的局部)
|
|
120
|
+
*/
|
|
61
121
|
ApplianceNames["pencilEraser"] = "pencilEraser";
|
|
122
|
+
/**
|
|
123
|
+
* 文字工具
|
|
124
|
+
*/
|
|
62
125
|
ApplianceNames["text"] = "text";
|
|
126
|
+
/**
|
|
127
|
+
* 直线工具
|
|
128
|
+
*/
|
|
63
129
|
ApplianceNames["straight"] = "straight";
|
|
130
|
+
/**
|
|
131
|
+
* 箭头工具
|
|
132
|
+
*/
|
|
64
133
|
ApplianceNames["arrow"] = "arrow";
|
|
134
|
+
/**
|
|
135
|
+
* 抓手工具
|
|
136
|
+
*/
|
|
65
137
|
ApplianceNames["hand"] = "hand";
|
|
66
138
|
return ApplianceNames;
|
|
67
139
|
}({});
|
|
68
140
|
let ShapeType = exports.ShapeType = /*#__PURE__*/function (ShapeType) {
|
|
141
|
+
/**
|
|
142
|
+
* 三角形
|
|
143
|
+
*/
|
|
69
144
|
ShapeType["Triangle"] = "triangle";
|
|
145
|
+
/**
|
|
146
|
+
* 菱形
|
|
147
|
+
*/
|
|
70
148
|
ShapeType["Rhombus"] = "rhombus";
|
|
149
|
+
/**
|
|
150
|
+
* 五角星
|
|
151
|
+
*/
|
|
71
152
|
ShapeType["Pentagram"] = "pentagram";
|
|
153
|
+
/**
|
|
154
|
+
* 说话泡泡
|
|
155
|
+
*/
|
|
72
156
|
ShapeType["SpeechBalloon"] = "speechBalloon";
|
|
73
157
|
return ShapeType;
|
|
74
158
|
}({});
|
|
@@ -1,7 +1,5 @@
|
|
|
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
5
|
require("core-js/modules/esnext.map.delete-all.js");
|
|
@@ -21,16 +19,12 @@ require("core-js/modules/esnext.map.update.js");
|
|
|
21
19
|
require("core-js/modules/esnext.symbol.metadata.js");
|
|
22
20
|
require("core-js/modules/esnext.weak-map.delete-all.js");
|
|
23
21
|
require("core-js/modules/esnext.weak-map.emplace.js");
|
|
24
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
25
22
|
Object.defineProperty(exports, "__esModule", {
|
|
26
23
|
value: true
|
|
27
24
|
});
|
|
28
25
|
exports.FcrWhiteboardControlImpl = void 0;
|
|
29
|
-
require("core-js/modules/
|
|
30
|
-
require("core-js/modules/esnext.async-iterator.map.js");
|
|
26
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
31
27
|
require("core-js/modules/esnext.iterator.map.js");
|
|
32
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
33
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
34
28
|
var _whiteWebSdk = require("white-web-sdk");
|
|
35
29
|
var netlessVideoPlugin = _interopRequireWildcard(require("@netless/video-js-plugin"));
|
|
36
30
|
var _windowManager = require("@netless/window-manager");
|
|
@@ -44,7 +38,6 @@ var _user = require("../../utilities/user");
|
|
|
44
38
|
var _2 = require("../..");
|
|
45
39
|
var _logger = require("../../utilities/logger");
|
|
46
40
|
var _error = require("../../utilities/error");
|
|
47
|
-
var _FcrWhiteboardControlImpl;
|
|
48
41
|
let _initProto;
|
|
49
42
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
50
43
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -57,30 +50,29 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
|
|
|
57
50
|
* @internal
|
|
58
51
|
*/
|
|
59
52
|
class FcrWhiteboardControlImpl {
|
|
53
|
+
static #_ = (() => [_initProto] = _applyDecs(this, [[[_decorator.bound, _logger.trace], 2, "active"], [[_decorator.bound, _logger.trace], 2, "inactive"], [[_decorator.bound, _logger.trace], 2, "open"], [[_decorator.bound, _logger.trace], 2, "close"], [[_decorator.bound, _logger.trace], 2, "setBackgroundColor"], [[_decorator.bound, _logger.trace], 2, "getActivity"], [[_decorator.bound, _logger.trace], 2, "getOwnerId"], [[_decorator.bound, _logger.trace], 2, "getBackgroundColor"], [[_decorator.bound, _logger.trace], 2, "getConnectionState"], [[_decorator.bound, _logger.trace], 2, "getMainWindow"], [[_decorator.bound, _logger.trace], 2, "addObserver"], [[_decorator.bound, _logger.trace], 2, "removeObserver"], [_decorator.bound, 2, "getBoardActiveInfo"], [_logger.trace, 2, "leave"], [_decorator.bound, 2, "_getToken"], [_decorator.bound, 2, "_handleRoomStateUpdated"], [_decorator.bound, 2, "_updateConnnectionState"], [_decorator.bound, 2, "_handleConnectionStateUpdated"]], []).e)();
|
|
54
|
+
logger = (() => (_initProto(this), (0, _logger.getLogger)()))();
|
|
55
|
+
_client = (() => ({}))();
|
|
56
|
+
_joined = false;
|
|
57
|
+
_connectState = (() => _2.FcrConnectionState.DISCONNECTED)();
|
|
58
|
+
_observable = (() => new _observable.AgoraObservable())();
|
|
59
|
+
_options = {
|
|
60
|
+
debug: false
|
|
61
|
+
};
|
|
60
62
|
constructor(_scene, _privilegeControl, _api) {
|
|
61
|
-
(0, _defineProperty2.default)(this, "logger", (_initProto(this), (0, _logger.getLogger)()));
|
|
62
|
-
(0, _defineProperty2.default)(this, "_client", {});
|
|
63
|
-
(0, _defineProperty2.default)(this, "_joined", false);
|
|
64
|
-
(0, _defineProperty2.default)(this, "_connectState", _2.FcrConnectionState.DISCONNECTED);
|
|
65
|
-
(0, _defineProperty2.default)(this, "_observable", new _observable.AgoraObservable());
|
|
66
|
-
(0, _defineProperty2.default)(this, "_options", {
|
|
67
|
-
debug: false
|
|
68
|
-
});
|
|
69
63
|
this._scene = _scene;
|
|
70
64
|
this._privilegeControl = _privilegeControl;
|
|
71
65
|
this._api = _api;
|
|
72
66
|
_scene.addObserver({
|
|
73
67
|
onScenePropertiesUpdated: (_, event) => {
|
|
74
|
-
var _event$cause;
|
|
75
68
|
const operatorUser = (0, _user.convertRteUserToFcrUser)(event.operatorUser);
|
|
76
|
-
if (
|
|
77
|
-
var _ref, _event$cause$data$wid2;
|
|
69
|
+
if (event.cause?.cmd === 10) {
|
|
78
70
|
const {
|
|
79
71
|
state,
|
|
80
72
|
extra: {
|
|
81
73
|
backgroundColor: bgColor
|
|
82
74
|
}
|
|
83
|
-
} =
|
|
75
|
+
} = _scene.getScenePropertiesByKeyPath('widgets.netlessBoard') ?? {
|
|
84
76
|
state: 0,
|
|
85
77
|
extra: {
|
|
86
78
|
backgroundColor: '#fff'
|
|
@@ -90,10 +82,9 @@ class FcrWhiteboardControlImpl {
|
|
|
90
82
|
this._observable.notifyObservers('onActive', _scene.getScenePropertiesByKeyPath('widgets.netlessBoard').ownerUserUuid, operatorUser);
|
|
91
83
|
}
|
|
92
84
|
if (state === 0) {
|
|
93
|
-
|
|
94
|
-
this._observable.notifyObservers('onInactive', (_event$cause$data$wid = event.cause.data.widgetCause) === null || _event$cause$data$wid === void 0 || (_event$cause$data$wid = _event$cause$data$wid.data) === null || _event$cause$data$wid === void 0 ? void 0 : _event$cause$data$wid.reason, operatorUser);
|
|
85
|
+
this._observable.notifyObservers('onInactive', event.cause.data.widgetCause?.data?.reason, operatorUser);
|
|
95
86
|
}
|
|
96
|
-
if (
|
|
87
|
+
if (event.cause.data.widgetCause?.cmd === 100101) {
|
|
97
88
|
this._observable.notifyObservers('onBackgroundColorUpdated', bgColor, operatorUser);
|
|
98
89
|
}
|
|
99
90
|
}
|
|
@@ -108,11 +99,10 @@ class FcrWhiteboardControlImpl {
|
|
|
108
99
|
return (0, _error.handleRequestError)(() => this._api.toggleWhiteboardActivityState(this._scene.sceneId, _enums.FcrSharePermissionState.OFF), _error.FcrErrorModuleCode.ROOM_WHITEBOARD, 'inactive failed');
|
|
109
100
|
}
|
|
110
101
|
async open() {
|
|
111
|
-
var _this$_scene$getUser;
|
|
112
102
|
// 白板权限禁用状态下,主持人和联席主持人仍然可以发起共享,所以,不能根据是否禁用状态直接拒绝
|
|
113
103
|
const roomId = this._scene.sceneId;
|
|
114
104
|
const userId = this._scene.localUser.getLocalUserId();
|
|
115
|
-
const cursorName =
|
|
105
|
+
const cursorName = this._scene.getUser(userId)?.userName;
|
|
116
106
|
const {
|
|
117
107
|
data
|
|
118
108
|
} = await this._getToken(roomId, userId);
|
|
@@ -182,17 +172,17 @@ class FcrWhiteboardControlImpl {
|
|
|
182
172
|
this._updateConnnectionState(_2.FcrConnectionState.CONNECTED);
|
|
183
173
|
}, [], {
|
|
184
174
|
retriesMax
|
|
185
|
-
}).fail(async
|
|
175
|
+
}).fail(async _ref => {
|
|
186
176
|
let {
|
|
187
177
|
error,
|
|
188
178
|
timeFn,
|
|
189
179
|
currentRetry
|
|
190
|
-
} =
|
|
191
|
-
this.logger.info(
|
|
180
|
+
} = _ref;
|
|
181
|
+
this.logger.info(`failed to join board room, error: ${error.message}, current retry: ${currentRetry}`);
|
|
192
182
|
if (this._joined) {
|
|
193
183
|
await timeFn();
|
|
194
184
|
}
|
|
195
|
-
this.logger.info(
|
|
185
|
+
this.logger.info(`continue attemptting? ${this._joined}`);
|
|
196
186
|
return this._joined;
|
|
197
187
|
}).abort(() => {
|
|
198
188
|
this._updateConnnectionState(_2.FcrConnectionState.DISCONNECTED);
|
|
@@ -266,11 +256,10 @@ class FcrWhiteboardControlImpl {
|
|
|
266
256
|
};
|
|
267
257
|
}
|
|
268
258
|
async leave() {
|
|
269
|
-
var _this$_boardView, _this$_room;
|
|
270
259
|
//@ts-ignore
|
|
271
|
-
|
|
260
|
+
this._boardView?.destroy();
|
|
272
261
|
this._boardView = undefined;
|
|
273
|
-
|
|
262
|
+
this._room?.disconnect();
|
|
274
263
|
this._room = undefined;
|
|
275
264
|
}
|
|
276
265
|
_createPlugins() {
|
|
@@ -342,6 +331,4 @@ class FcrWhiteboardControlImpl {
|
|
|
342
331
|
this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onActive', 'onInactive', 'onBackgroundColorUpdated', 'onConnectionStateUpdated']));
|
|
343
332
|
}
|
|
344
333
|
}
|
|
345
|
-
exports.FcrWhiteboardControlImpl = FcrWhiteboardControlImpl;
|
|
346
|
-
_FcrWhiteboardControlImpl = FcrWhiteboardControlImpl;
|
|
347
|
-
[_initProto] = _applyDecs(_FcrWhiteboardControlImpl, [[[_decorator.bound, _logger.trace], 2, "active"], [[_decorator.bound, _logger.trace], 2, "inactive"], [[_decorator.bound, _logger.trace], 2, "open"], [[_decorator.bound, _logger.trace], 2, "close"], [[_decorator.bound, _logger.trace], 2, "setBackgroundColor"], [[_decorator.bound, _logger.trace], 2, "getActivity"], [[_decorator.bound, _logger.trace], 2, "getOwnerId"], [[_decorator.bound, _logger.trace], 2, "getBackgroundColor"], [[_decorator.bound, _logger.trace], 2, "getConnectionState"], [[_decorator.bound, _logger.trace], 2, "getMainWindow"], [[_decorator.bound, _logger.trace], 2, "addObserver"], [[_decorator.bound, _logger.trace], 2, "removeObserver"], [_decorator.bound, 2, "getBoardActiveInfo"], [_logger.trace, 2, "leave"], [_decorator.bound, 2, "_getToken"], [_decorator.bound, 2, "_handleRoomStateUpdated"], [_decorator.bound, 2, "_updateConnnectionState"], [_decorator.bound, 2, "_handleConnectionStateUpdated"]], []).e;
|
|
334
|
+
exports.FcrWhiteboardControlImpl = FcrWhiteboardControlImpl;
|
|
@@ -1,15 +1,13 @@
|
|
|
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.BoardMountManager = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
7
|
class BoardMountManager {
|
|
8
|
+
static isMounting = false;
|
|
10
9
|
static setIsMounting(isMounting) {
|
|
11
10
|
BoardMountManager.isMounting = isMounting;
|
|
12
11
|
}
|
|
13
12
|
}
|
|
14
|
-
exports.BoardMountManager = BoardMountManager;
|
|
15
|
-
(0, _defineProperty2.default)(BoardMountManager, "isMounting", false);
|
|
13
|
+
exports.BoardMountManager = BoardMountManager;
|
|
@@ -5,9 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.windowClassName = exports.widgetContainerClassName = exports.videoRowClassName = exports.verticalPadding = exports.toolbarClassName = exports.textColors = exports.src2DataURL = exports.sceneNavHeight = exports.mergeCanvasImage = exports.mediaMimeTypes = exports.layoutContentClassName = exports.hexColorToWhiteboardColor = exports.heightPerTool = exports.heightPerColor = exports.getImageSize = exports.fetchImageInfoByUrl = exports.defaultToolsRetain = exports.defaultTextSize = exports.defaultStrokeColor = exports.convertToNetlessBoardTool = exports.convertToFcrBoardToolShape = exports.WINDOW_TITLE_HEIGHT = exports.WINDOW_REMAIN_SIZE = exports.WINDOW_REMAIN_POSITION = exports.WINDOW_MIN_SIZE = exports.WINDOW_ASPECT_RATIO = void 0;
|
|
7
7
|
require("core-js/modules/es.array.push.js");
|
|
8
|
-
require("core-js/modules/es.regexp.exec.js");
|
|
9
|
-
require("core-js/modules/es.string.replace.js");
|
|
10
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
11
8
|
var _jsMd = require("js-md5");
|
|
12
9
|
var _enums = require("./enums");
|
|
13
10
|
const heightPerTool = exports.heightPerTool = 36;
|
|
@@ -133,8 +130,8 @@ const mergeCanvasImage = async scenes => {
|
|
|
133
130
|
canvasArray.push(canvas);
|
|
134
131
|
}
|
|
135
132
|
}
|
|
136
|
-
bigCanvas.setAttribute('width',
|
|
137
|
-
bigCanvas.setAttribute('height',
|
|
133
|
+
bigCanvas.setAttribute('width', `${width}`);
|
|
134
|
+
bigCanvas.setAttribute('height', `${height * canvasArray.length}`);
|
|
138
135
|
canvasArray.forEach((canvas, index) => {
|
|
139
136
|
ctx && ctx.drawImage(canvas, 0, index * height, width, height);
|
|
140
137
|
});
|
|
@@ -216,22 +213,22 @@ const convertToFcrBoardToolShape = (tool, shape) => {
|
|
|
216
213
|
case _enums.ApplianceNames.hand:
|
|
217
214
|
return [_enums.FcrBoardToolType.HAND];
|
|
218
215
|
}
|
|
219
|
-
switch (
|
|
220
|
-
case
|
|
216
|
+
switch (`${tool || ''}${shape || ''}`) {
|
|
217
|
+
case `${_enums.ApplianceNames.rectangle}`:
|
|
221
218
|
return [, _enums.FcrBoardShape.Rectangle];
|
|
222
|
-
case
|
|
219
|
+
case `${_enums.ApplianceNames.ellipse}`:
|
|
223
220
|
return [, _enums.FcrBoardShape.Ellipse];
|
|
224
|
-
case
|
|
221
|
+
case `${_enums.ApplianceNames.straight}`:
|
|
225
222
|
return [, _enums.FcrBoardShape.Straight];
|
|
226
|
-
case
|
|
223
|
+
case `${_enums.ApplianceNames.arrow}`:
|
|
227
224
|
return [, _enums.FcrBoardShape.Arrow];
|
|
228
|
-
case
|
|
225
|
+
case `${_enums.ApplianceNames.pencil}`:
|
|
229
226
|
return [, _enums.FcrBoardShape.Curve];
|
|
230
|
-
case
|
|
227
|
+
case `${_enums.ApplianceNames.shape}${_enums.ShapeType.Triangle}`:
|
|
231
228
|
return [, _enums.FcrBoardShape.Triangle];
|
|
232
|
-
case
|
|
229
|
+
case `${_enums.ApplianceNames.shape, _enums.ShapeType.Pentagram}`:
|
|
233
230
|
return [, _enums.FcrBoardShape.Pentagram];
|
|
234
|
-
case
|
|
231
|
+
case `${_enums.ApplianceNames.shape}${_enums.ShapeType.Rhombus}`:
|
|
235
232
|
return [, _enums.FcrBoardShape.Rhombus];
|
|
236
233
|
}
|
|
237
234
|
return [];
|
|
@@ -258,9 +255,9 @@ const src2DataURL = src => {
|
|
|
258
255
|
const ctx = canvas.getContext('2d');
|
|
259
256
|
const image = new Image();
|
|
260
257
|
image.onload = () => {
|
|
261
|
-
canvas.setAttribute('width',
|
|
262
|
-
canvas.setAttribute('height',
|
|
263
|
-
ctx
|
|
258
|
+
canvas.setAttribute('width', `${image.width}`);
|
|
259
|
+
canvas.setAttribute('height', `${image.height}`);
|
|
260
|
+
ctx?.drawImage(image, 0, 0);
|
|
264
261
|
resolve(canvas.toDataURL('image/jpeg', 0.8));
|
|
265
262
|
};
|
|
266
263
|
image.onerror = () => {
|