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.
Files changed (39) hide show
  1. package/lib/chat-connection/index.js +20 -38
  2. package/lib/engine/index.js +39 -41
  3. package/lib/imports.js +0 -1
  4. package/lib/media-control/desktop.js +3 -11
  5. package/lib/media-control/mobile.js +6 -13
  6. package/lib/peer-session/index.js +34 -47
  7. package/lib/plugins/chatroom.js +99 -113
  8. package/lib/room-control/group-control/index.js +11 -22
  9. package/lib/room-control/index.js +56 -82
  10. package/lib/room-control/interpreter-control/index.js +9 -17
  11. package/lib/room-control/interpreter-control/room.js +4 -6
  12. package/lib/room-control/mainroom-control/index.js +21 -41
  13. package/lib/room-control/privilege-control/helper.js +5 -10
  14. package/lib/room-control/privilege-control/index.js +12 -21
  15. package/lib/room-control/privilege-control/type.js +1 -0
  16. package/lib/room-control/room-connector-control/index.js +13 -24
  17. package/lib/room-control/room-session/index.js +36 -49
  18. package/lib/room-control/stream-control/index.js +140 -151
  19. package/lib/room-control/user-control/index.js +119 -135
  20. package/lib/room-control/waitingroom-control/index.js +8 -16
  21. package/lib/room-control/whiteboard-control/board-subwindow.js +1 -2
  22. package/lib/room-control/whiteboard-control/board-window.js +49 -57
  23. package/lib/room-control/whiteboard-control/enums.js +84 -0
  24. package/lib/room-control/whiteboard-control/index.js +22 -35
  25. package/lib/room-control/whiteboard-control/mount-manager.js +2 -4
  26. package/lib/room-control/whiteboard-control/utils.js +14 -17
  27. package/lib/room-control/whiteboard-control-v2/index.js +19 -33
  28. package/lib/room-control/whiteboard-control-v2/main-window.js +12 -23
  29. package/lib/service/api.js +76 -82
  30. package/lib/type.js +4 -2
  31. package/lib/utilities/collection.js +2 -3
  32. package/lib/utilities/error.js +3 -5
  33. package/lib/utilities/logger.js +1 -2
  34. package/lib/utilities/parameters.js +4 -8
  35. package/lib/utilities/stream.js +12 -20
  36. package/lib/utilities/user.js +1 -1
  37. package/package.json +4 -4
  38. package/lib/room-control/chatroom-control/index.d.ts +0 -1
  39. 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/es.promise.finally.js");
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
- (_this$_windowManager = this._windowManager) === null || _this$_windowManager === void 0 || _this$_windowManager.setContainerSizeRatio(ratio);
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: (windowManager === null || windowManager === void 0 ? void 0 : windowManager.mainViewSceneIndex) || 0,
124
- count: (windowManager === null || windowManager === void 0 ? void 0 : windowManager.mainViewScenesLength) || 0
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 ((_this$_windowManager2 = this._windowManager) !== null && _this$_windowManager2 !== void 0 && _this$_windowManager2.addPage) {
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 ((_this$_windowManager3 = this._windowManager) !== null && _this$_windowManager3 !== void 0 && _this$_windowManager3.removePage) {
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 ((_this$_windowManager4 = this._windowManager) !== null && _this$_windowManager4 !== void 0 && _this$_windowManager4.prevPage) {
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 ((_this$_windowManager5 = this._windowManager) !== null && _this$_windowManager5 !== void 0 && _this$_windowManager5.nextPage) {
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 = _objectSpread(_objectSpread({}, this._memberState), change);
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 = _objectSpread(_objectSpread({}, this._memberState), change);
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 = _objectSpread(_objectSpread({}, this._memberState), change);
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 = _objectSpread(_objectSpread({}, this._memberState), change);
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 = _objectSpread(_objectSpread({}, this._memberState), change);
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
- (_this$_whiteView$quer = this._whiteView.querySelector('.netless-whiteboard')) === null || _this$_whiteView$quer === void 0 || _this$_whiteView$quer.style.setProperty('background-color', color);
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 !== null && preX !== void 0 ? preX : originX,
255
- y: preY !== null && preY !== void 0 ? preY : originY
249
+ x: preX ?? originX,
250
+ y: preY ?? originY
256
251
  });
257
252
  const containerSize = {
258
- width: (_this$_whiteView$clie = (_this$_whiteView = this._whiteView) === null || _this$_whiteView === void 0 ? void 0 : _this$_whiteView.clientWidth) !== null && _this$_whiteView$clie !== void 0 ? _this$_whiteView$clie : window.innerWidth,
259
- height: (_this$_whiteView$clie2 = (_this$_whiteView2 = this._whiteView) === null || _this$_whiteView2 === void 0 ? void 0 : _this$_whiteView2.clientHeight) !== null && _this$_whiteView$clie2 !== void 0 ? _this$_whiteView$clie2 : window.innerHeight
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 !== null && preWidth !== void 0 ? preWidth : width,
271
- height: preHeight !== null && preHeight !== void 0 ? preHeight : height,
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 === null || windowManager === void 0 || windowManager.emitter.on('mainViewSceneIndexChange', showIndex => {
309
+ windowManager?.emitter.on('mainViewSceneIndexChange', showIndex => {
315
310
  const state = {
316
311
  showIndex: showIndex,
317
- count: (windowManager === null || windowManager === void 0 ? void 0 : windowManager.mainViewScenesLength) || 0
312
+ count: windowManager?.mainViewScenesLength || 0
318
313
  };
319
314
  this._observable.notifyObservers('onPageInfoUpdated', state);
320
315
  });
321
- windowManager === null || windowManager === void 0 || windowManager.emitter.on('mainViewScenesLengthChange', count => {
316
+ windowManager?.emitter.on('mainViewScenesLengthChange', count => {
322
317
  const state = {
323
- showIndex: (windowManager === null || windowManager === void 0 ? void 0 : windowManager.mainViewSceneIndex) || 0,
318
+ showIndex: windowManager?.mainViewSceneIndex || 0,
324
319
  count: count
325
320
  };
326
321
  this._observable.notifyObservers('onPageInfoUpdated', state);
327
322
  });
328
- windowManager === null || windowManager === void 0 || windowManager.emitter.on('canUndoStepsChange', steps => {
323
+ windowManager?.emitter.on('canUndoStepsChange', steps => {
329
324
  this._observable.notifyObservers('onUndoStateUpdated', steps > 0);
330
325
  });
331
- windowManager === null || windowManager === void 0 || windowManager.emitter.on('canRedoStepsChange', steps => {
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
- var _this$_whiteView$quer2;
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/es.regexp.exec.js");
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 (((_event$cause = event.cause) === null || _event$cause === void 0 ? void 0 : _event$cause.cmd) === 10) {
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
- } = (_ref = _scene.getScenePropertiesByKeyPath('widgets.netlessBoard')) !== null && _ref !== void 0 ? _ref : {
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
- var _event$cause$data$wid;
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 (((_event$cause$data$wid2 = event.cause.data.widgetCause) === null || _event$cause$data$wid2 === void 0 ? void 0 : _event$cause$data$wid2.cmd) === 100101) {
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 = (_this$_scene$getUser = this._scene.getUser(userId)) === null || _this$_scene$getUser === void 0 ? void 0 : _this$_scene$getUser.userName;
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 _ref2 => {
175
+ }).fail(async _ref => {
186
176
  let {
187
177
  error,
188
178
  timeFn,
189
179
  currentRetry
190
- } = _ref2;
191
- this.logger.info("failed to join board room, error: ".concat(error.message, ", current retry: ").concat(currentRetry));
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("continue attemptting? ".concat(this._joined));
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
- (_this$_boardView = this._boardView) === null || _this$_boardView === void 0 || _this$_boardView.destroy();
260
+ this._boardView?.destroy();
272
261
  this._boardView = undefined;
273
- (_this$_room = this._room) === null || _this$_room === void 0 || _this$_room.disconnect();
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', "".concat(width));
137
- bigCanvas.setAttribute('height', "".concat(height * canvasArray.length));
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 ("".concat(tool || '').concat(shape || '')) {
220
- case "".concat(_enums.ApplianceNames.rectangle):
216
+ switch (`${tool || ''}${shape || ''}`) {
217
+ case `${_enums.ApplianceNames.rectangle}`:
221
218
  return [, _enums.FcrBoardShape.Rectangle];
222
- case "".concat(_enums.ApplianceNames.ellipse):
219
+ case `${_enums.ApplianceNames.ellipse}`:
223
220
  return [, _enums.FcrBoardShape.Ellipse];
224
- case "".concat(_enums.ApplianceNames.straight):
221
+ case `${_enums.ApplianceNames.straight}`:
225
222
  return [, _enums.FcrBoardShape.Straight];
226
- case "".concat(_enums.ApplianceNames.arrow):
223
+ case `${_enums.ApplianceNames.arrow}`:
227
224
  return [, _enums.FcrBoardShape.Arrow];
228
- case "".concat(_enums.ApplianceNames.pencil):
225
+ case `${_enums.ApplianceNames.pencil}`:
229
226
  return [, _enums.FcrBoardShape.Curve];
230
- case "".concat(_enums.ApplianceNames.shape).concat(_enums.ShapeType.Triangle):
227
+ case `${_enums.ApplianceNames.shape}${_enums.ShapeType.Triangle}`:
231
228
  return [, _enums.FcrBoardShape.Triangle];
232
- case "".concat((_enums.ApplianceNames.shape, _enums.ShapeType.Pentagram)):
229
+ case `${_enums.ApplianceNames.shape, _enums.ShapeType.Pentagram}`:
233
230
  return [, _enums.FcrBoardShape.Pentagram];
234
- case "".concat(_enums.ApplianceNames.shape).concat(_enums.ShapeType.Rhombus):
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', "".concat(image.width));
262
- canvas.setAttribute('height', "".concat(image.height));
263
- ctx === null || ctx === void 0 || ctx.drawImage(image, 0, 0);
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 = () => {