fcr-core 3.7.8 → 3.8.0-alpha

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 (108) hide show
  1. package/lib/chat-connection/index.d.ts +1 -1
  2. package/lib/engine/index.js +6 -5
  3. package/lib/imports.d.ts +7 -2
  4. package/lib/imports.js +25 -4
  5. package/lib/index.d.ts +2 -2
  6. package/lib/index.js +12 -0
  7. package/lib/media-control/desktop.js +4 -4
  8. package/lib/media-control/mobile.js +20 -20
  9. package/lib/media-control/type.d.ts +8 -0
  10. package/lib/plugins/chatroom.js +19 -3
  11. package/lib/room-control/ability-control/type.d.ts +4 -1
  12. package/lib/room-control/ability-control/type.js +3 -0
  13. package/lib/room-control/helpers/constants.d.ts +4 -0
  14. package/lib/room-control/helpers/constants.js +5 -1
  15. package/lib/room-control/index.js +16 -5
  16. package/lib/room-control/interpreter-control/index.js +2 -4
  17. package/lib/room-control/mainroom-control/index.js +66 -1
  18. package/lib/room-control/privilege-control/index.js +43 -3
  19. package/lib/room-control/privilege-control/type.d.ts +57 -10
  20. package/lib/room-control/privilege-control/type.js +17 -0
  21. package/lib/room-control/room-control-factory.js +1 -1
  22. package/lib/room-control/room-session/index.js +23 -13
  23. package/lib/room-control/room-session/type.d.ts +2 -2
  24. package/lib/room-control/sharing-control/index.d.ts +5 -5
  25. package/lib/room-control/sharing-control/index.js +43 -13
  26. package/lib/room-control/sharing-control/type.d.ts +9 -5
  27. package/lib/room-control/sharing-control/type.js +6 -1
  28. package/lib/room-control/stream-control/index.d.ts +8 -1
  29. package/lib/room-control/stream-control/index.js +139 -36
  30. package/lib/room-control/stream-control/type.d.ts +6 -0
  31. package/lib/room-control/stt-control/de-compress-gzip.d.ts +1 -0
  32. package/lib/room-control/stt-control/de-compress-gzip.js +49 -0
  33. package/lib/room-control/stt-control/index.d.ts +1 -0
  34. package/lib/room-control/stt-control/index.js +353 -0
  35. package/lib/room-control/stt-control/type.d.ts +142 -0
  36. package/lib/room-control/stt-control/type.js +16 -0
  37. package/lib/room-control/type.d.ts +15 -0
  38. package/lib/room-control/type.js +13 -1
  39. package/lib/room-control/whiteboard-control/enum.d.ts +15 -0
  40. package/lib/room-control/whiteboard-control/{types.js → enum.js} +12 -1
  41. package/lib/room-control/whiteboard-control/type.d.ts +38 -0
  42. package/lib/room-control/whiteboard-control/type.js +15 -0
  43. package/lib/room-control/whiteboard-control/utils.d.ts +3 -0
  44. package/lib/room-control/whiteboard-control/utils.js +23 -0
  45. package/lib/room-control/whiteboard-control-v1/board-subwindow.d.ts +6 -0
  46. package/lib/room-control/whiteboard-control-v1/board-subwindow.js +26 -0
  47. package/lib/room-control/whiteboard-control-v1/board-window.d.ts +58 -0
  48. package/lib/room-control/whiteboard-control-v1/board-window.js +571 -0
  49. package/lib/room-control/{whiteboard-control/enums.d.ts → whiteboard-control-v1/enum.d.ts} +3 -17
  50. package/lib/room-control/{whiteboard-control/enums.js → whiteboard-control-v1/enum.js} +3 -20
  51. package/lib/room-control/whiteboard-control-v1/factory.d.ts +9 -0
  52. package/lib/room-control/whiteboard-control-v1/factory.js +22 -0
  53. package/lib/room-control/whiteboard-control-v1/index.d.ts +1 -0
  54. package/lib/room-control/whiteboard-control-v1/index.js +440 -0
  55. package/lib/room-control/whiteboard-control-v1/mount-manager.d.ts +4 -0
  56. package/lib/room-control/whiteboard-control-v1/mount-manager.js +15 -0
  57. package/lib/room-control/whiteboard-control-v1/type.d.ts +300 -0
  58. package/lib/room-control/whiteboard-control-v1/type.js +13 -0
  59. package/lib/room-control/whiteboard-control-v1/utils.d.ts +53 -0
  60. package/lib/room-control/whiteboard-control-v1/utils.js +290 -0
  61. package/lib/room-control/whiteboard-control-v2/annotation-control/control.d.ts +17 -31
  62. package/lib/room-control/whiteboard-control-v2/annotation-control/control.js +39 -233
  63. package/lib/room-control/whiteboard-control-v2/annotation-control/factory.d.ts +10 -0
  64. package/lib/room-control/whiteboard-control-v2/annotation-control/factory.js +48 -0
  65. package/lib/room-control/whiteboard-control-v2/annotation-control/type.d.ts +11 -19
  66. package/lib/room-control/whiteboard-control-v2/annotation-control/type.js +1 -3
  67. package/lib/room-control/whiteboard-control-v2/base/index.d.ts +42 -0
  68. package/lib/room-control/whiteboard-control-v2/base/index.js +317 -0
  69. package/lib/room-control/whiteboard-control-v2/{main-window.d.ts → base/main-window.d.ts} +6 -4
  70. package/lib/room-control/whiteboard-control-v2/{main-window.js → base/main-window.js} +31 -18
  71. package/lib/room-control/whiteboard-control-v2/constant.d.ts +6 -0
  72. package/lib/room-control/whiteboard-control-v2/constant.js +15 -0
  73. package/lib/room-control/whiteboard-control-v2/enum.d.ts +26 -0
  74. package/lib/room-control/whiteboard-control-v2/enum.js +34 -0
  75. package/lib/room-control/{whiteboard-control/types.d.ts → whiteboard-control-v2/type.d.ts} +51 -165
  76. package/lib/room-control/whiteboard-control-v2/type.js +5 -0
  77. package/lib/room-control/whiteboard-control-v2/utils.d.ts +5 -4
  78. package/lib/room-control/whiteboard-control-v2/utils.js +22 -21
  79. package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.d.ts +34 -33
  80. package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.js +124 -191
  81. package/lib/room-control/whiteboard-control-v2/whiteboard-control/factory.d.ts +11 -0
  82. package/lib/room-control/whiteboard-control-v2/{annotation-control/index.js → whiteboard-control/factory.js} +35 -44
  83. package/lib/room-control/whiteboard-control-v2/whiteboard-control/type.d.ts +18 -30
  84. package/lib/room-control/whiteboard-control-v2/whiteboard-control/type.js +1 -9
  85. package/lib/room-router/index.js +4 -0
  86. package/lib/schema.d.ts +23 -9
  87. package/lib/schema.js +10 -4
  88. package/lib/service/api.d.ts +75 -19
  89. package/lib/service/api.js +193 -24
  90. package/lib/type.d.ts +15 -2
  91. package/lib/type.js +13 -0
  92. package/lib/utilities/error-helpers.d.ts +2 -1
  93. package/lib/utilities/error-helpers.js +1 -0
  94. package/lib/utilities/error.d.ts +1 -0
  95. package/lib/utilities/error.js +1 -0
  96. package/lib/utilities/logger.d.ts +2 -2
  97. package/lib/utilities/shared-storage.d.ts +3 -1
  98. package/lib/utilities/shared-storage.js +9 -1
  99. package/package.json +11 -5
  100. package/lib/room-control/whiteboard-control-v2/annotation-control/index.d.ts +0 -19
  101. package/lib/room-control/whiteboard-control-v2/annotation-control/privilege-control.d.ts +0 -36
  102. package/lib/room-control/whiteboard-control-v2/annotation-control/privilege-control.js +0 -262
  103. package/lib/room-control/whiteboard-control-v2/index.d.ts +0 -38
  104. package/lib/room-control/whiteboard-control-v2/index.js +0 -286
  105. package/lib/room-control/whiteboard-control-v2/whiteboard-control/index.d.ts +0 -17
  106. package/lib/room-control/whiteboard-control-v2/whiteboard-control/index.js +0 -32
  107. package/lib/room-control/whiteboard-control-v2/whiteboard-control/privilege-control.d.ts +0 -36
  108. package/lib/room-control/whiteboard-control-v2/whiteboard-control/privilege-control.js +0 -252
@@ -0,0 +1,571 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.description.js");
4
+ require("core-js/modules/es.error.cause.js");
5
+ require("core-js/modules/es.array.push.js");
6
+ 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
+ require("core-js/modules/esnext.map.delete-all.js");
10
+ require("core-js/modules/esnext.map.emplace.js");
11
+ require("core-js/modules/esnext.map.every.js");
12
+ require("core-js/modules/esnext.map.filter.js");
13
+ require("core-js/modules/esnext.map.find.js");
14
+ require("core-js/modules/esnext.map.find-key.js");
15
+ require("core-js/modules/esnext.map.includes.js");
16
+ require("core-js/modules/esnext.map.key-of.js");
17
+ require("core-js/modules/esnext.map.map-keys.js");
18
+ require("core-js/modules/esnext.map.map-values.js");
19
+ require("core-js/modules/esnext.map.merge.js");
20
+ require("core-js/modules/esnext.map.reduce.js");
21
+ require("core-js/modules/esnext.map.some.js");
22
+ require("core-js/modules/esnext.map.update.js");
23
+ require("core-js/modules/esnext.symbol.metadata.js");
24
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
25
+ Object.defineProperty(exports, "__esModule", {
26
+ value: true
27
+ });
28
+ exports.FcrBoardMainWindowImpl = void 0;
29
+ require("core-js/modules/es.promise.finally.js");
30
+ require("core-js/modules/esnext.iterator.constructor.js");
31
+ 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
+ require("core-js/modules/web.url-search-params.delete.js");
37
+ require("core-js/modules/web.url-search-params.has.js");
38
+ require("core-js/modules/web.url-search-params.size.js");
39
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
40
+ var _whiteSnapshot = require("@netless/white-snapshot");
41
+ var _windowManager = require("@netless/window-manager");
42
+ var _appliancePlugin = require("@netless/appliance-plugin");
43
+ require("@netless/appliance-plugin/dist/style.css");
44
+ require("@netless/window-manager/dist/style.css");
45
+ var _utils = require("./utils");
46
+ var _mountManager = require("./mount-manager");
47
+ var _jsMd = require("js-md5");
48
+ var _logger = require("../../utilities/logger");
49
+ var _imports = require("../../imports");
50
+ var _boardSubwindow = require("./board-subwindow");
51
+ var _fullWorker = _interopRequireDefault(require("@netless/appliance-plugin/dist/fullWorker.js?raw"));
52
+ var _subWorker = _interopRequireDefault(require("@netless/appliance-plugin/dist/subWorker.js?raw"));
53
+ var _lodash = require("lodash");
54
+ var _imports2 = require("agora-rte-sdk/lib/imports");
55
+ var _FcrBoardMainWindowImpl;
56
+ let _initProto; //@ts-ignore
57
+ //@ts-ignore
58
+ 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; }
59
+ 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; }
60
+ 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)]; } }; }
61
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
62
+ 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); }
63
+ 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; }
64
+ 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; }
65
+ class FcrBoardMainWindowImpl {
66
+ constructor(room) {
67
+ (0, _defineProperty2.default)(this, "logger", (_initProto(this), (0, _logger.createLogger)({
68
+ prefix: 'FcrBoardMainWindowImpl'
69
+ })));
70
+ (0, _defineProperty2.default)(this, "_memberState", {});
71
+ (0, _defineProperty2.default)(this, "_observable", new _imports.AgoraObservable());
72
+ (0, _defineProperty2.default)(this, "_destroyed", false);
73
+ this._whiteBoardroom = room;
74
+ this._whiteView = document.createElement('div');
75
+ this._initView();
76
+ this._addLogObserver();
77
+ }
78
+ async getSnapshotImage() {
79
+ this._preCheck({
80
+ wm: false
81
+ });
82
+ const whiteRoom = this._whiteBoardroom;
83
+ let result = new ImageData(1, 1);
84
+ if (whiteRoom) {
85
+ const sceneMap = whiteRoom.entireScenes();
86
+ const scenes = Object.keys(sceneMap);
87
+ if (scenes.length) {
88
+ const _room = Object.create(whiteRoom);
89
+ _room.state.cameraState = {
90
+ width: 2038,
91
+ height: 940
92
+ }; // 创建一个宽高
93
+
94
+ const cps = sceneMap['/'].map(scene => {
95
+ return () => (0, _whiteSnapshot.snapshot)(_room, {
96
+ scenePath: '/' + scene.name,
97
+ crossorigin: true,
98
+ background: '#fff',
99
+ src2dataurl: _utils.src2DataURL
100
+ });
101
+ });
102
+ try {
103
+ const merged = await (0, _utils.mergeCanvasImage)(cps);
104
+ const ctx = merged.getContext('2d');
105
+ if (ctx) {
106
+ result = ctx.getImageData(0, 0, merged.width, merged.height);
107
+ return result;
108
+ }
109
+ } catch (e) {
110
+ this.logger.error('[FcrBoardMainWindow] failed to take snapshot', e);
111
+ }
112
+ }
113
+ }
114
+ return result;
115
+ }
116
+ addObserver(observer) {
117
+ this._observable.addObserver(observer);
118
+ }
119
+ removeObserver(observer) {
120
+ this._observable.removeObserver(observer);
121
+ }
122
+ getContentView() {
123
+ return this._whiteView;
124
+ }
125
+ setScale(value) {
126
+ var _this$_windowManager;
127
+ const scale = Math.max(Math.min(value, 3), -3);
128
+ (_this$_windowManager = this._windowManager) === null || _this$_windowManager === void 0 || _this$_windowManager.moveCamera({
129
+ scale
130
+ });
131
+ }
132
+ async openSubWindowWithTaskId(title, taskId, urlPrefix) {
133
+ var _this$_windowManager2;
134
+ const appId = await ((_this$_windowManager2 = this._windowManager) === null || _this$_windowManager2 === void 0 ? void 0 : _this$_windowManager2.addApp({
135
+ kind: 'Slide',
136
+ options: {
137
+ scenePath: "/ppt".concat(taskId),
138
+ title
139
+ },
140
+ attributes: {
141
+ taskId,
142
+ url: urlPrefix
143
+ }
144
+ }));
145
+ if (appId) {
146
+ var _this$_windowManager3;
147
+ 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];
148
+ return app ? new _boardSubwindow.FcrBoardSubWindowImpl(appId) : undefined;
149
+ }
150
+ }
151
+ async openSubWindowWithPageList(title, pageList) {
152
+ var _this$_windowManager4;
153
+ const scenePath = "/".concat(Date.now());
154
+ const appId = await ((_this$_windowManager4 = this._windowManager) === null || _this$_windowManager4 === void 0 ? void 0 : _this$_windowManager4.addApp({
155
+ kind: _windowManager.BuiltinApps.DocsViewer,
156
+ options: {
157
+ scenePath,
158
+ title,
159
+ scenes: this._convertToScenes(pageList)
160
+ }
161
+ }));
162
+ if (appId) {
163
+ var _this$_windowManager5;
164
+ 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];
165
+ return app ? new _boardSubwindow.FcrBoardSubWindowImpl(appId) : undefined;
166
+ }
167
+ }
168
+ async setContainerSizeRatio(ratio) {
169
+ var _this$_windowManager6;
170
+ this._preCheck();
171
+ (_this$_windowManager6 = this._windowManager) === null || _this$_windowManager6 === void 0 || _this$_windowManager6.setContainerSizeRatio(ratio);
172
+ }
173
+ getPageInfo() {
174
+ this._preCheck();
175
+ const windowManager = this._windowManager;
176
+ return {
177
+ showIndex: (windowManager === null || windowManager === void 0 ? void 0 : windowManager.mainViewSceneIndex) || 0,
178
+ count: (windowManager === null || windowManager === void 0 ? void 0 : windowManager.mainViewScenesLength) || 0
179
+ };
180
+ }
181
+ async addPage() {
182
+ var _this$_windowManager7;
183
+ this._preCheck();
184
+ if ((_this$_windowManager7 = this._windowManager) !== null && _this$_windowManager7 !== void 0 && _this$_windowManager7.addPage) {
185
+ await this._windowManager.addPage();
186
+ await this._windowManager.nextPage();
187
+ }
188
+ }
189
+ async removePage() {
190
+ var _this$_windowManager8;
191
+ this._preCheck();
192
+ if ((_this$_windowManager8 = this._windowManager) !== null && _this$_windowManager8 !== void 0 && _this$_windowManager8.removePage) {
193
+ await this._windowManager.removePage();
194
+ }
195
+ }
196
+ async prevPage() {
197
+ var _this$_windowManager9;
198
+ this._preCheck();
199
+ if ((_this$_windowManager9 = this._windowManager) !== null && _this$_windowManager9 !== void 0 && _this$_windowManager9.prevPage) {
200
+ await this._windowManager.prevPage();
201
+ }
202
+ }
203
+ async nextPage() {
204
+ var _this$_windowManager0;
205
+ this._preCheck();
206
+ if ((_this$_windowManager0 = this._windowManager) !== null && _this$_windowManager0 !== void 0 && _this$_windowManager0.nextPage) {
207
+ await this._windowManager.nextPage();
208
+ }
209
+ }
210
+ async undo() {
211
+ this._preCheck({
212
+ wm: false
213
+ });
214
+ this._whiteBoardroom.undo();
215
+ }
216
+ async redo() {
217
+ this._preCheck({
218
+ wm: false
219
+ });
220
+ this._whiteBoardroom.redo();
221
+ }
222
+ async clean(retainPpt) {
223
+ this._preCheck({
224
+ wm: false
225
+ });
226
+ // this._whiteBoardroom?.cleanScene?.(true); // new version methods
227
+ this._whiteBoardroom.cleanCurrentScene(retainPpt);
228
+ }
229
+ async setToolType(type) {
230
+ this._preCheck({
231
+ wm: false
232
+ });
233
+ const [tool, shape] = (0, _utils.convertToNetlessBoardTool)(type);
234
+ const strokeType = (0, _utils.convertToNetlessStorkeType)(type);
235
+ const change = {
236
+ currentApplianceName: tool,
237
+ shapeType: shape,
238
+ strokeType
239
+ };
240
+ this._memberState = _objectSpread(_objectSpread({}, this._memberState), change);
241
+ if (this._windowManager) {
242
+ var _this$_appliancePlugi;
243
+ (_this$_appliancePlugi = this._appliancePluginInstance) === null || _this$_appliancePlugi === void 0 || _this$_appliancePlugi.setMemberState(change);
244
+ }
245
+ }
246
+ async setStrokeWidth(strokeWidth) {
247
+ this._preCheck();
248
+ const change = {
249
+ strokeWidth
250
+ };
251
+ this._memberState = _objectSpread(_objectSpread({}, this._memberState), change);
252
+ if (this._windowManager) {
253
+ this._whiteBoardroom.setMemberState(change);
254
+ }
255
+ }
256
+ async setStrokeColor(color) {
257
+ var _color$a;
258
+ this._preCheck();
259
+ const change = {
260
+ strokeColor: [color.r, color.g, color.b],
261
+ strokeOpacity: (_color$a = color.a) !== null && _color$a !== void 0 ? _color$a : 1
262
+ };
263
+ this._memberState = _objectSpread(_objectSpread({}, this._memberState), change);
264
+ if (this._windowManager) {
265
+ this._whiteBoardroom.setMemberState(change);
266
+ }
267
+ }
268
+ async setTextColor(color) {
269
+ var _color$a2;
270
+ this._preCheck();
271
+ const change = {
272
+ textColor: [color.r, color.g, color.b],
273
+ textOpacity: (_color$a2 = color.a) !== null && _color$a2 !== void 0 ? _color$a2 : 1
274
+ };
275
+ this._memberState = _objectSpread(_objectSpread({}, this._memberState), change);
276
+ if (this._windowManager) {
277
+ this._whiteBoardroom.setMemberState(change);
278
+ }
279
+ }
280
+ async setTextSize(size) {
281
+ this._preCheck();
282
+ const change = {
283
+ textSize: size
284
+ };
285
+ this._memberState = _objectSpread(_objectSpread({}, this._memberState), change);
286
+ if (this._windowManager) {
287
+ this._whiteBoardroom.setMemberState(change);
288
+ }
289
+ }
290
+ async setFillColor(fillColor) {
291
+ var _fillColor$a;
292
+ this._preCheck();
293
+ const change = {
294
+ fillColor: [fillColor.r, fillColor.g, fillColor.b],
295
+ fillOpacity: (_fillColor$a = fillColor.a) !== null && _fillColor$a !== void 0 ? _fillColor$a : 1
296
+ };
297
+ this._memberState = _objectSpread(_objectSpread({}, this._memberState), change);
298
+ if (this._windowManager) {
299
+ this._whiteBoardroom.setMemberState(change);
300
+ }
301
+ }
302
+ async setEraserSize(size) {
303
+ this._preCheck();
304
+ const change = {
305
+ pencilEraserSize: size
306
+ };
307
+ this._memberState = _objectSpread(_objectSpread({}, this._memberState), change);
308
+ if (this._windowManager) {
309
+ this._whiteBoardroom.setMemberState(change);
310
+ }
311
+ }
312
+ async setBackgroundColor(color) {
313
+ var _this$_whiteView$quer;
314
+ this._preCheck();
315
+ this._backgroundColor = color;
316
+ (_this$_whiteView$quer = this._whiteView.querySelector('.netless-whiteboard')) === null || _this$_whiteView$quer === void 0 || _this$_whiteView$quer.style.setProperty('background-color', color);
317
+ }
318
+ async insertImage(resourceUrl, x, y, width, height) {
319
+ const room = this._whiteBoardroom;
320
+ const windowManager = this._windowManager;
321
+ const preX = x;
322
+ const preY = y;
323
+ const preWidth = width;
324
+ const preHeight = height;
325
+ if (windowManager) {
326
+ var _this$_whiteView$clie, _this$_whiteView, _this$_whiteView$clie2, _this$_whiteView2;
327
+ let originX = 0;
328
+ let originY = 0;
329
+ if (this._whiteView) {
330
+ originX = this._whiteView.clientWidth / 2;
331
+ originY = this._whiteView.clientHeight / 2;
332
+ }
333
+ const {
334
+ x,
335
+ y
336
+ } = windowManager.mainView.convertToPointInWorld({
337
+ x: preX !== null && preX !== void 0 ? preX : originX,
338
+ y: preY !== null && preY !== void 0 ? preY : originY
339
+ });
340
+ const containerSize = {
341
+ 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,
342
+ 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
343
+ };
344
+ const uuid = (0, _jsMd.md5)(resourceUrl);
345
+ const {
346
+ width,
347
+ height
348
+ } = await (0, _utils.fetchImageInfoByUrl)(resourceUrl, containerSize);
349
+ const imageInfo = {
350
+ uuid: uuid,
351
+ centerX: x,
352
+ centerY: y,
353
+ width: preWidth !== null && preWidth !== void 0 ? preWidth : width,
354
+ height: preHeight !== null && preHeight !== void 0 ? preHeight : height,
355
+ locked: false
356
+ };
357
+ windowManager.switchMainViewToWriter();
358
+ room.insertImage(imageInfo);
359
+ room.completeImageUpload(uuid, resourceUrl);
360
+ }
361
+ }
362
+ async insertMedia(resourceUrl, title) {
363
+ const windowManager = this._windowManager;
364
+ const room = this._whiteBoardroom;
365
+ if (windowManager) {
366
+ windowManager.addApp({
367
+ kind: _windowManager.BuiltinApps.MediaPlayer,
368
+ src: resourceUrl,
369
+ options: {
370
+ title: title
371
+ },
372
+ attributes: {
373
+ url: resourceUrl
374
+ }
375
+ });
376
+ }
377
+ }
378
+ destroy() {
379
+ if (this._windowManager) {
380
+ this._windowManager.destroy();
381
+ this._windowManager = undefined;
382
+ }
383
+ this._destroyed = true;
384
+ }
385
+ getWritable() {
386
+ return this._whiteBoardroom.isWritable;
387
+ }
388
+ _convertToScenes(pageList) {
389
+ return pageList.map(page => ({
390
+ name: page.name,
391
+ ppt: {
392
+ src: page.contentUrl,
393
+ width: page.contentWidth,
394
+ height: page.contentHeight,
395
+ previewURL: page.previewUrl
396
+ }
397
+ }));
398
+ }
399
+ _preCheck() {
400
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
401
+ const {
402
+ privilege = true,
403
+ wm = true
404
+ } = options;
405
+ if (privilege && !this._whiteBoardroom.isWritable) {
406
+ this.logger.warn('Try to operate on board window without operation privilege');
407
+ }
408
+ if (wm && !this._windowManager) {
409
+ this.logger.warn('Try to operate on board window when board window not mounted');
410
+ }
411
+ }
412
+ _addWindowManagerEventListeners() {
413
+ const windowManager = this._windowManager;
414
+ windowManager === null || windowManager === void 0 || windowManager.emitter.on('mainViewSceneIndexChange', showIndex => {
415
+ const state = {
416
+ showIndex: showIndex,
417
+ count: (windowManager === null || windowManager === void 0 ? void 0 : windowManager.mainViewScenesLength) || 0
418
+ };
419
+ this._observable.notifyObservers('onPageInfoUpdated', state);
420
+ });
421
+ windowManager === null || windowManager === void 0 || windowManager.emitter.on('mainViewScenesLengthChange', count => {
422
+ const state = {
423
+ showIndex: (windowManager === null || windowManager === void 0 ? void 0 : windowManager.mainViewSceneIndex) || 0,
424
+ count: count
425
+ };
426
+ this._observable.notifyObservers('onPageInfoUpdated', state);
427
+ });
428
+ windowManager === null || windowManager === void 0 || windowManager.emitter.on('canUndoStepsChange', steps => {
429
+ this._observable.notifyObservers('onUndoStateUpdated', steps > 0);
430
+ });
431
+ windowManager === null || windowManager === void 0 || windowManager.emitter.on('canRedoStepsChange', steps => {
432
+ this._observable.notifyObservers('onRedoStateUpdated', steps > 0);
433
+ });
434
+ }
435
+
436
+ // don't remove, used by FcrWhiteboardControl
437
+ async _mount() {
438
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
439
+ let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
440
+ this._whiteboardPrivateParameters = params;
441
+ if (this._whiteBoardroom) {
442
+ var _this$_whiteboardPriv, _this$_whiteboardPriv2, _this$_whiteboardPriv3, _this$_whiteboardPriv4, _this$_whiteboardPriv5, _this$_whiteboardPriv6, _this$_whiteboardPriv7, _this$_whiteboardPriv8;
443
+ this._destroyed = false;
444
+ if (_mountManager.BoardMountManager.isMounting) {
445
+ this.logger.info('[FcrBoardMainWindow] wait for previous board window mounted, white room id:', this._whiteBoardroom.uuid);
446
+ // await when(() => !BoardMountManager.isMounting);
447
+ this.logger.info('[FcrBoardMainWindow] previous board window mounted, start mount current board window, white room id:', this._whiteBoardroom.uuid);
448
+ }
449
+ if (this._destroyed) {
450
+ this.logger.info('[FcrBoardMainWindow] current board window has been destroyed, white room id:', this._whiteBoardroom.uuid);
451
+ return;
452
+ }
453
+ _mountManager.BoardMountManager.setIsMounting(true);
454
+ this.logger.info('start mount board window, white room id:', this._whiteBoardroom.uuid);
455
+ const extras = (_this$_whiteboardPriv = (_this$_whiteboardPriv2 = this._whiteboardPrivateParameters) === null || _this$_whiteboardPriv2 === void 0 ? void 0 : _this$_whiteboardPriv2.extras) !== null && _this$_whiteboardPriv !== void 0 ? _this$_whiteboardPriv : {};
456
+ const cursor = (_this$_whiteboardPriv3 = (_this$_whiteboardPriv4 = this._whiteboardPrivateParameters) === null || _this$_whiteboardPriv4 === void 0 ? void 0 : _this$_whiteboardPriv4.cursor) !== null && _this$_whiteboardPriv3 !== void 0 ? _this$_whiteboardPriv3 : true;
457
+ const extendClass = (_this$_whiteboardPriv5 = this._whiteboardPrivateParameters) === null || _this$_whiteboardPriv5 === void 0 ? void 0 : _this$_whiteboardPriv5.extendClass;
458
+ const containerElement = (_this$_whiteboardPriv6 = this._whiteboardPrivateParameters) === null || _this$_whiteboardPriv6 === void 0 ? void 0 : _this$_whiteboardPriv6.containerElement;
459
+ let windowManagerParams = (_this$_whiteboardPriv7 = (_this$_whiteboardPriv8 = this._whiteboardPrivateParameters) === null || _this$_whiteboardPriv8 === void 0 ? void 0 : _this$_whiteboardPriv8.windowManagerParams) !== null && _this$_whiteboardPriv7 !== void 0 ? _this$_whiteboardPriv7 : {};
460
+ this.logger.info("set whiteboard extendClass: ".concat(extendClass));
461
+ this.logger.info("set whiteboard cursor: ".concat(cursor));
462
+ this.logger.info("set whiteboard extras: ".concat((0, _imports2.jsonstring)(extras)));
463
+ this.logger.info("set whiteboard windowManagerParams: ".concat((0, _imports2.jsonstring)(windowManagerParams)));
464
+ if (!(0, _lodash.isPlainObject)(windowManagerParams)) {
465
+ this.logger.warn('windowManagerParams is not a plain object');
466
+ windowManagerParams = {};
467
+ }
468
+
469
+ // 提前将 view 挂载到 containerElement 上,避免白板初始化时无法获取到正确的宽高
470
+ if (containerElement) {
471
+ containerElement.appendChild(this._whiteView);
472
+ }
473
+ await _windowManager.WindowManager.mount(_objectSpread({
474
+ debug: true,
475
+ room: this._whiteBoardroom,
476
+ container: this._whiteView,
477
+ cursor: cursor,
478
+ chessboard: false,
479
+ collectorContainer: options.collectorContainer,
480
+ containerSizeRatio: options.containerSizeRatio,
481
+ supportAppliancePlugin: true
482
+ }, windowManagerParams), extendClass).then(async wm => {
483
+ if (this._destroyed) {
484
+ wm.destroy();
485
+ return;
486
+ }
487
+ //@ts-ignore
488
+ window._wm = wm;
489
+ this._windowManager = wm;
490
+ this._windowManager.mainView.disableCameraTransform = true;
491
+ this._addWindowManagerEventListeners();
492
+ if (this._backgroundColor) {
493
+ var _this$_whiteView$quer2;
494
+ (_this$_whiteView$quer2 = this._whiteView.querySelector('.netless-whiteboard')) === null || _this$_whiteView$quer2 === void 0 || _this$_whiteView$quer2.style.setProperty('background-color', this._backgroundColor);
495
+ }
496
+ const fullWorkerBlob = new Blob([_fullWorker.default], {
497
+ type: 'text/javascript'
498
+ });
499
+ const fullWorkerUrl = URL.createObjectURL(fullWorkerBlob);
500
+ const subWorkerBlob = new Blob([_subWorker.default], {
501
+ type: 'text/javascript'
502
+ });
503
+ const subWorkerUrl = URL.createObjectURL(subWorkerBlob);
504
+ await this._windowManager.switchMainViewToWriter();
505
+ const appliancePluginInstance = await _appliancePlugin.ApplianceMultiPlugin.getInstance(wm, {
506
+ options: {
507
+ cdn: {
508
+ fullWorkerUrl,
509
+ subWorkerUrl
510
+ },
511
+ extras
512
+ }
513
+ });
514
+
515
+ //@ts-ignore
516
+ window.appliancePluginInstance = appliancePluginInstance;
517
+ this._appliancePluginInstance = appliancePluginInstance;
518
+ if (appliancePluginInstance.injectMethodToObject) {
519
+ appliancePluginInstance.injectMethodToObject(window, 'requestIdleCallback');
520
+ appliancePluginInstance.injectMethodToObject(window, 'cancelIdleCallback');
521
+ }
522
+ appliancePluginInstance.addListener('forceStop', reason => {
523
+ if (reason == 'longPencil') {
524
+ window.postMessage({
525
+ type: 'white-board-error',
526
+ data: {
527
+ reason: 'longPencil'
528
+ }
529
+ }, '*');
530
+ }
531
+ });
532
+ const hasPermission = this._whiteBoardroom.isWritable;
533
+ this.logger.info("after mount, isWritable: ".concat(hasPermission));
534
+ if (hasPermission) {
535
+ this._whiteBoardroom.setMemberState(this._memberState);
536
+ appliancePluginInstance.setMemberState({
537
+ strokeType: _appliancePlugin.EStrokeType.Normal
538
+ });
539
+ }
540
+ }).catch(e => {
541
+ this.logger.error('[FcrBoardMainWindow] failed to mount', e);
542
+ }).finally(() => {
543
+ this.logger.info('[FcrBoardMainWindow] finish mount board window, white room id:', this._whiteBoardroom.uuid);
544
+ _mountManager.BoardMountManager.setIsMounting(false);
545
+ });
546
+ }
547
+ }
548
+ _initView() {
549
+ this._whiteView.style.width = '100%';
550
+ this._whiteView.style.height = '100%';
551
+ this._whiteView.classList.add('fcr-whiteboard-window-view');
552
+ }
553
+
554
+ // don't remove, used by FcrWhiteboardControl
555
+ async _setRoom(room, options, params) {
556
+ this._whiteBoardroom = room;
557
+ if (this._windowManager) {
558
+ this.logger.info('destroy previous window manager');
559
+ this._windowManager.destroy();
560
+ }
561
+ await this._mount(options, params);
562
+ this.logger.info('restore member state');
563
+ room.setMemberState(this._memberState);
564
+ }
565
+ _addLogObserver() {
566
+ this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onWritable', 'onPageInfoUpdated', 'onUndoStateUpdated', 'onRedoStateUpdated']));
567
+ }
568
+ }
569
+ exports.FcrBoardMainWindowImpl = FcrBoardMainWindowImpl;
570
+ _FcrBoardMainWindowImpl = FcrBoardMainWindowImpl;
571
+ [_initProto] = _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"], [[_imports.bound, _imports.trace], 2, "clean"], [[_imports.bound, _imports.trace], 2, "setToolType"], [[_imports.bound, _imports.trace], 2, "setStrokeWidth"], [[_imports.bound, _imports.trace], 2, "setStrokeColor"], [[_imports.bound, _imports.trace], 2, "setTextColor"], [[_imports.bound, _imports.trace], 2, "setTextSize"], [[_imports.bound, _imports.trace], 2, "setFillColor"], [[_imports.bound, _imports.trace], 2, "setEraserSize"], [[_imports.bound, _imports.trace], 2, "setBackgroundColor"], [[_imports.bound, _imports.trace], 2, "insertImage"], [[_imports.bound, _imports.trace], 2, "insertMedia"], [_imports.trace, 2, "destroy"], [_imports.trace, 2, "getWritable"], [_imports.trace, 2, "_mount"], [_imports.trace, 2, "_setRoom"]], []).e;
@@ -1,10 +1,3 @@
1
- export declare enum FcrBoardRegion {
2
- CN = "cn-hz",
3
- US = "us-sv",
4
- IN = "in-mum",
5
- SG = "sg",
6
- GB = "gb-lon"
7
- }
8
1
  export declare enum FcrBoardShape {
9
2
  Curve = 1,
10
3
  Straight = 2,
@@ -37,11 +30,6 @@ export declare enum RoomPhase {
37
30
  */
38
31
  Disconnected = "disconnected"
39
32
  }
40
- export declare enum FcrBoardMainWindowFailureReason {
41
- ResourceWindowAlreadyOpened = "resource-window-already-opened",
42
- SnapshotFailure = "snapshot-failure",
43
- MountFailure = "mount-failure"
44
- }
45
33
  export declare enum ViewMode {
46
34
  /**
47
35
  * 自由模式。不跟随任何人,也不被任何人跟随,自己可以自由操作视角。
@@ -142,10 +130,6 @@ export declare enum ShapeType {
142
130
  */
143
131
  SpeechBalloon = "speechBalloon"
144
132
  }
145
- export declare enum FcrSharePermissionState {
146
- ON = 1,
147
- OFF = 0
148
- }
149
133
  export declare enum FcrBoardToolType {
150
134
  NONE = 0,
151
135
  SELECTOR = 1,
@@ -160,5 +144,7 @@ export declare enum FcrBoardToolType {
160
144
  TRIANGLE = 10,
161
145
  RHOMBUS = 11,
162
146
  PENTAGRAM = 12,
163
- ELLIPSE = 13
147
+ ELLIPSE = 13,
148
+ DOTTED_LINE = 14,
149
+ LONG_DOTTED_LINE = 15
164
150
  }
@@ -3,15 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ViewMode = exports.ShapeType = exports.RoomPhase = exports.FcrSharePermissionState = exports.FcrBoardToolType = exports.FcrBoardShape = exports.FcrBoardRegion = exports.FcrBoardMainWindowFailureReason = exports.DeviceType = exports.ApplianceNames = void 0;
7
- let FcrBoardRegion = exports.FcrBoardRegion = /*#__PURE__*/function (FcrBoardRegion) {
8
- FcrBoardRegion["CN"] = "cn-hz";
9
- FcrBoardRegion["US"] = "us-sv";
10
- FcrBoardRegion["IN"] = "in-mum";
11
- FcrBoardRegion["SG"] = "sg";
12
- FcrBoardRegion["GB"] = "gb-lon";
13
- return FcrBoardRegion;
14
- }({});
6
+ exports.ViewMode = exports.ShapeType = exports.RoomPhase = exports.FcrBoardToolType = exports.FcrBoardShape = exports.DeviceType = exports.ApplianceNames = void 0;
15
7
  let FcrBoardShape = exports.FcrBoardShape = /*#__PURE__*/function (FcrBoardShape) {
16
8
  FcrBoardShape[FcrBoardShape["Curve"] = 1] = "Curve";
17
9
  FcrBoardShape[FcrBoardShape["Straight"] = 2] = "Straight";
@@ -46,12 +38,6 @@ let RoomPhase = exports.RoomPhase = /*#__PURE__*/function (RoomPhase) {
46
38
  RoomPhase["Disconnected"] = "disconnected";
47
39
  return RoomPhase;
48
40
  }({});
49
- let FcrBoardMainWindowFailureReason = exports.FcrBoardMainWindowFailureReason = /*#__PURE__*/function (FcrBoardMainWindowFailureReason) {
50
- FcrBoardMainWindowFailureReason["ResourceWindowAlreadyOpened"] = "resource-window-already-opened";
51
- FcrBoardMainWindowFailureReason["SnapshotFailure"] = "snapshot-failure";
52
- FcrBoardMainWindowFailureReason["MountFailure"] = "mount-failure";
53
- return FcrBoardMainWindowFailureReason;
54
- }({});
55
41
  let ViewMode = exports.ViewMode = /*#__PURE__*/function (ViewMode) {
56
42
  /**
57
43
  * 自由模式。不跟随任何人,也不被任何人跟随,自己可以自由操作视角。
@@ -156,11 +142,6 @@ let ShapeType = exports.ShapeType = /*#__PURE__*/function (ShapeType) {
156
142
  ShapeType["SpeechBalloon"] = "speechBalloon";
157
143
  return ShapeType;
158
144
  }({});
159
- let FcrSharePermissionState = exports.FcrSharePermissionState = /*#__PURE__*/function (FcrSharePermissionState) {
160
- FcrSharePermissionState[FcrSharePermissionState["ON"] = 1] = "ON";
161
- FcrSharePermissionState[FcrSharePermissionState["OFF"] = 0] = "OFF";
162
- return FcrSharePermissionState;
163
- }({});
164
145
  let FcrBoardToolType = exports.FcrBoardToolType = /*#__PURE__*/function (FcrBoardToolType) {
165
146
  FcrBoardToolType[FcrBoardToolType["NONE"] = 0] = "NONE";
166
147
  FcrBoardToolType[FcrBoardToolType["SELECTOR"] = 1] = "SELECTOR";
@@ -176,5 +157,7 @@ let FcrBoardToolType = exports.FcrBoardToolType = /*#__PURE__*/function (FcrBoar
176
157
  FcrBoardToolType[FcrBoardToolType["RHOMBUS"] = 11] = "RHOMBUS";
177
158
  FcrBoardToolType[FcrBoardToolType["PENTAGRAM"] = 12] = "PENTAGRAM";
178
159
  FcrBoardToolType[FcrBoardToolType["ELLIPSE"] = 13] = "ELLIPSE";
160
+ FcrBoardToolType[FcrBoardToolType["DOTTED_LINE"] = 14] = "DOTTED_LINE";
161
+ FcrBoardToolType[FcrBoardToolType["LONG_DOTTED_LINE"] = 15] = "LONG_DOTTED_LINE";
179
162
  return FcrBoardToolType;
180
163
  }({});
@@ -0,0 +1,9 @@
1
+ import { AgoraRteScene } from 'agora-rte-sdk';
2
+ import { FcrCoreServiceApi } from '../../service/api';
3
+ import { FcrSharedCache } from '../shared-cache';
4
+ import { FcrWhiteboardControl, FcrWhiteboardControlFactory } from './type';
5
+ export declare class FcrWhiteboardControlFactoryImpl implements FcrWhiteboardControlFactory {
6
+ protected logger: import("agora-foundation/lib/logger").Logger;
7
+ constructor();
8
+ createForMainProcess(hasOperationPrivilege: boolean, scene: AgoraRteScene, api: FcrCoreServiceApi, sharedCache: FcrSharedCache): FcrWhiteboardControl;
9
+ }