fcr-ui-scene 3.7.6 → 3.7.7-rc.1

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 (79) hide show
  1. package/lib/creator/index.js +12 -6
  2. package/lib/creator/provider-initializer.browser.js +0 -3
  3. package/lib/creator/provider-initializer.electron.js +0 -4
  4. package/lib/electron/bootstrap-sdk.js +70 -20
  5. package/lib/electron/struct.d.ts +7 -1
  6. package/lib/electron/struct.js +8 -1
  7. package/lib/electron/until.d.ts +3 -1
  8. package/lib/electron/until.js +7 -2
  9. package/lib/modules/action-bar/components/item/index.js +1 -0
  10. package/lib/modules/action-bar/components/screen-share/submenu.js +1 -1
  11. package/lib/modules/chat/index.css +5 -1
  12. package/lib/modules/chat/view.js +6 -1
  13. package/lib/modules/components/control-bar/components/switch-theme/index.css +2 -0
  14. package/lib/modules/components/control-bar/components/switch-theme/index.js +5 -7
  15. package/lib/modules/components/control-bar/index.js +26 -7
  16. package/lib/modules/components/toolbar/components/capture-tool/index.d.ts +0 -1
  17. package/lib/modules/components/toolbar/components/capture-tool/index.js +1 -2
  18. package/lib/modules/components/toolbar/components/vertical-frame/index.js +2 -2
  19. package/lib/modules/components/toolbar/hooks/use-resize-visible.js +43 -42
  20. package/lib/modules/components/toolbar/index.js +6 -24
  21. package/lib/modules/control-bar/components/cloud-recording-buttons.d.ts +3 -0
  22. package/lib/modules/control-bar/components/cloud-recording-buttons.js +65 -3
  23. package/lib/modules/control-bar/store.js +11 -6
  24. package/lib/modules/dialog/components/dialog-container/component/body.d.ts +1 -0
  25. package/lib/modules/dialog/components/dialog-container/component/body.js +3 -2
  26. package/lib/modules/dialog/components/dialog-container/index.css +1 -1
  27. package/lib/modules/dialog/components/dialog-container/index.d.ts +1 -0
  28. package/lib/modules/dialog/components/dialog-container/index.js +4 -1
  29. package/lib/modules/dialog/components/normal-window/index.d.ts +1 -0
  30. package/lib/modules/dialog/components/normal-window/index.js +3 -1
  31. package/lib/modules/dialog/dialogs/chat/index.js +2 -1
  32. package/lib/modules/dialog/dialogs/control-bar-leave-meeting/index.js +0 -1
  33. package/lib/modules/dialog/dialogs/end-meeting/index.d.ts +1 -0
  34. package/lib/modules/dialog/dialogs/end-meeting/index.js +2 -1
  35. package/lib/modules/dialog/dialogs/participant/index.js +2 -1
  36. package/lib/modules/layout/store.electron.js +1 -1
  37. package/lib/modules/secondary-window/store.d.ts +0 -1
  38. package/lib/modules/secondary-window/store.js +9 -22
  39. package/lib/modules/secondary-window/view.js +6 -5
  40. package/lib/modules/setting/index.css +0 -1
  41. package/lib/modules/setting/store.base.js +6 -0
  42. package/lib/modules/setting/view.js +0 -3
  43. package/lib/modules/share-screen/store.electron.js +1 -1
  44. package/lib/modules/state-bar/layout-config.js +6 -0
  45. package/lib/modules/state-bar/main-scene/store.base.d.ts +2 -0
  46. package/lib/modules/state-bar/main-scene/store.base.js +6 -0
  47. package/lib/modules/video-window/index.css +6 -0
  48. package/lib/modules/video-window/popover-watcher.d.ts +4 -1
  49. package/lib/modules/video-window/popover-watcher.js +15 -2
  50. package/lib/modules/video-window/store.d.ts +18 -1
  51. package/lib/modules/video-window/store.js +55 -7
  52. package/lib/modules/whiteboard/store.js +20 -2
  53. package/lib/object-manager.d.ts +0 -1
  54. package/lib/object-manager.js +0 -1
  55. package/lib/providers/board-share/bar-control/base.d.ts +1 -1
  56. package/lib/providers/board-share/bar-control/base.js +37 -28
  57. package/lib/providers/board-share/bar-control/electron.d.ts +1 -1
  58. package/lib/providers/board-share/bar-control/electron.js +19 -16
  59. package/lib/providers/board-share/provider.browser.d.ts +3 -0
  60. package/lib/providers/board-share/provider.browser.js +21 -3
  61. package/lib/providers/device-provider.js +5 -1
  62. package/lib/providers/dialog/provider.electron.js +6 -0
  63. package/lib/providers/mouse-detect/provider.d.ts +5 -0
  64. package/lib/providers/mouse-detect/provider.js +74 -49
  65. package/lib/providers/multi-display-provider.d.ts +3 -5
  66. package/lib/providers/multi-display-provider.js +0 -9
  67. package/lib/providers/room-provider/room-provider.d.ts +3 -14
  68. package/lib/providers/room-provider/room-provider.js +5 -26
  69. package/lib/providers/screen-share/stream-state-sync.js +19 -12
  70. package/lib/providers/window/main-window.d.ts +0 -5
  71. package/lib/providers/window/main-window.js +0 -44
  72. package/lib/providers/window/renderer-window.d.ts +1 -0
  73. package/lib/providers/window/renderer-window.js +9 -1
  74. package/lib/scenes/main-scene.js +0 -2
  75. package/lib/ui-scene.js +4 -2
  76. package/package.json +5 -5
  77. package/public/index.html +22 -1
  78. package/lib/providers/board-share/bar-control.d.ts +0 -51
  79. package/lib/providers/board-share/bar-control.js +0 -390
package/public/index.html CHANGED
@@ -179,6 +179,8 @@
179
179
 
180
180
  (async () => {
181
181
  let creator;
182
+ let uiScene;
183
+ let sendExitedEventFlag = true;
182
184
  window.cppSdkHelper.onCreatorInit = (config) => {
183
185
  if (creator) {
184
186
  creator.release();
@@ -205,6 +207,19 @@
205
207
  };
206
208
 
207
209
  window.cppSdkHelper.onLaunchMeeting = (launchOptions) => {
210
+ try {
211
+ if (uiScene) {
212
+ console.log('the previous sequence ui scene exists, exit it');
213
+ uiScene.exit();
214
+ sendExitedEventFlag = false;
215
+ }
216
+ } catch (error) {
217
+ // 这里可能会有报错,但是不影响后续的流程
218
+ console.error(
219
+ ' the previous sequence ui scene exists, exit it,but exit has error',
220
+ JSON.stringify(error),
221
+ );
222
+ }
208
223
  setFullScreenFailureComp(false);
209
224
  setLoading(true);
210
225
 
@@ -229,7 +244,7 @@
229
244
  creator.registerWidget(w);
230
245
  });
231
246
  }
232
- const uiScene = creator.launch(
247
+ uiScene = creator.launch(
233
248
  others,
234
249
  () => {
235
250
  console.log('windows_release ui scene closed callback');
@@ -251,6 +266,7 @@
251
266
  uiScene.addObserver({
252
267
  onLaunchSuccess: () => {
253
268
  setLoading(false);
269
+ sendExitedEventFlag = true;
254
270
  const roomProvider = uiScene._objectManager.getObject('roomProvider');
255
271
  if (!roomProvider) {
256
272
  throw new Error('roomProvider not found in uiScene');
@@ -289,7 +305,12 @@
289
305
  },
290
306
 
291
307
  onExited: (roomId, reason) => {
308
+ if (!sendExitedEventFlag) {
309
+ return;
310
+ }
311
+ console.log('the previous sequence ui scene : ui scene exited');
292
312
  window.cppSdkHelper.exitedMeeting(roomId, reason);
313
+ uiScene = null;
293
314
  setTimeout(() => {
294
315
  console.log('windows_release ui scene exited callback');
295
316
  window.runtime.getCurrentBrowserWindow().hide();
@@ -1,51 +0,0 @@
1
- import { FcrBoardToolType, FcrBoardShape } from 'fcr-core/lib/room-control/whiteboard-control/enums';
2
- import { FcrConnectionState, FcrUserInfo } from 'fcr-core/lib/type';
3
- import { FcrToolbarState } from '../../modules/components/toolbar/types';
4
- import { FcrUIMainWindowRenderer, FcrUIMainWindowRendererObserver, WhiteboardToolAction } from '../../modules/secondary-window/type';
5
- import { WhiteboardThemeType } from '../../modules/whiteboard/type';
6
- import { FcrUIPrivilegeProvider } from '../privilege-provider';
7
- import { FcrUIBoardBarControl } from './type';
8
- import { FcrPrivilegedWhiteboardControl } from 'fcr-core/lib/room-control/whiteboard-control-v2/whiteboard-control/type';
9
- export declare class FcrUIBoardControlShareProviderImpl implements FcrUIBoardBarControl {
10
- private readonly _privilegeProvider;
11
- private readonly _boardControl;
12
- private readonly _fcrUIMainWindowRenderer;
13
- protected logger: import("agora-foundation/lib/logger").Logger;
14
- private _showLoading;
15
- private _roomName;
16
- private _disposers;
17
- private _mainWindowRenderer;
18
- private _toolbarStateObserver;
19
- private get _boardMainRoom();
20
- accessor currentTheme: Required<WhiteboardThemeType>;
21
- accessor sharingUserInfo: FcrUserInfo | undefined;
22
- accessor backgroundColor: string;
23
- accessor hasWriteBoardPermission: boolean;
24
- accessor connectionState: FcrConnectionState;
25
- accessor joinSuccess: boolean;
26
- accessor toolbarState: FcrToolbarState;
27
- get toolbarStateObserver(): FcrUIMainWindowRendererObserver;
28
- get showLoading(): boolean;
29
- get canWriteBoard(): boolean;
30
- constructor(_privilegeProvider: FcrUIPrivilegeProvider, _boardControl: FcrPrivilegedWhiteboardControl, _fcrUIMainWindowRenderer: FcrUIMainWindowRenderer);
31
- setControlEnable(enable: boolean): void;
32
- setSharingUser(userInfo: FcrUserInfo): void;
33
- setBackgroundColor(color: string): void;
34
- setWhiteboardTool(tool: {
35
- action: WhiteboardToolAction;
36
- tool: FcrBoardToolType | FcrBoardShape | string | number;
37
- }): void;
38
- setTheme(theme: WhiteboardThemeType): void;
39
- setShowLoading(show: boolean): void;
40
- setCommonColors(colors: string[]): void;
41
- saveDraft(): void;
42
- setProgress(progress: number): void;
43
- setJoinSuccess(success: boolean): void;
44
- inActive(): void;
45
- release(): void;
46
- setIsDualDisplayMode(isDualDisplayMode: boolean): void;
47
- resetWhiteboardTool(): void;
48
- setRoomName(roomName: string): void;
49
- private _handleSubProcessStateUpdated;
50
- private _handleDraftSaved;
51
- }
@@ -1,390 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.symbol.js");
4
- require("core-js/modules/es.symbol.description.js");
5
- require("core-js/modules/es.symbol.to-primitive.js");
6
- require("core-js/modules/es.array.is-array.js");
7
- require("core-js/modules/es.date.to-primitive.js");
8
- require("core-js/modules/es.function.bind.js");
9
- require("core-js/modules/es.function.name.js");
10
- require("core-js/modules/es.map.js");
11
- require("core-js/modules/es.number.constructor.js");
12
- require("core-js/modules/es.object.create.js");
13
- require("core-js/modules/es.object.define-property.js");
14
- require("core-js/modules/es.object.get-own-property-descriptor.js");
15
- require("core-js/modules/esnext.function.metadata.js");
16
- require("core-js/modules/esnext.map.delete-all.js");
17
- require("core-js/modules/esnext.map.emplace.js");
18
- require("core-js/modules/esnext.map.every.js");
19
- require("core-js/modules/esnext.map.filter.js");
20
- require("core-js/modules/esnext.map.find.js");
21
- require("core-js/modules/esnext.map.find-key.js");
22
- require("core-js/modules/esnext.map.includes.js");
23
- require("core-js/modules/esnext.map.key-of.js");
24
- require("core-js/modules/esnext.map.map-keys.js");
25
- require("core-js/modules/esnext.map.map-values.js");
26
- require("core-js/modules/esnext.map.merge.js");
27
- require("core-js/modules/esnext.map.reduce.js");
28
- require("core-js/modules/esnext.map.some.js");
29
- require("core-js/modules/esnext.map.update.js");
30
- require("core-js/modules/esnext.symbol.metadata.js");
31
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
32
- var _typeof = require("@babel/runtime/helpers/typeof");
33
- Object.defineProperty(exports, "__esModule", {
34
- value: true
35
- });
36
- exports.FcrUIBoardControlShareProviderImpl = void 0;
37
- require("core-js/modules/es.error.cause.js");
38
- require("core-js/modules/es.error.to-string.js");
39
- require("core-js/modules/es.array.concat.js");
40
- require("core-js/modules/es.array.find.js");
41
- require("core-js/modules/es.array.for-each.js");
42
- require("core-js/modules/es.array.includes.js");
43
- require("core-js/modules/es.array.iterator.js");
44
- require("core-js/modules/es.array.push.js");
45
- require("core-js/modules/es.object.to-string.js");
46
- require("core-js/modules/es.string.iterator.js");
47
- require("core-js/modules/es.weak-map.js");
48
- require("core-js/modules/esnext.iterator.constructor.js");
49
- require("core-js/modules/esnext.iterator.find.js");
50
- require("core-js/modules/esnext.iterator.for-each.js");
51
- require("core-js/modules/esnext.weak-map.delete-all.js");
52
- require("core-js/modules/esnext.weak-map.emplace.js");
53
- require("core-js/modules/web.dom-collections.for-each.js");
54
- require("core-js/modules/web.dom-collections.iterator.js");
55
- require("core-js/modules/web.timers.js");
56
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
57
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
58
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
59
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
60
- var _imports = require("fcr-core/lib/imports");
61
- var _enums = require("fcr-core/lib/room-control/whiteboard-control/enums");
62
- var _type = require("fcr-core/lib/type");
63
- var _type2 = require("../../modules/secondary-window/type");
64
- var _mobx = require("mobx");
65
- var _theme = _interopRequireDefault(require("../../modules/whiteboard/libs/theme"));
66
- var _utils = require("../../modules/whiteboard/utils");
67
- var _toolbar = require("../../modules/components/toolbar");
68
- var _dayjs = _interopRequireDefault(require("dayjs"));
69
- var _FcrUIBoardControlShareProviderImpl;
70
- var _initProto, _init_currentTheme, _init_sharingUserInfo, _init_backgroundColor, _init_hasWriteBoardPermission, _init_connectionState, _init_joinSuccess, _init_toolbarState, _setControlEnableDecs, _setSharingUserDecs, _setBackgroundColorDecs, _setWhiteboardToolDecs, _setThemeDecs, _setShowLoadingDecs, _setCommonColorsDecs, _setProgressDecs, _setJoinSuccessDecs, _setIsDualDisplayModeDecs, _handleSubProcessStateUpdatedDecs, _handleDraftSavedDecs, _ref;
71
- function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
72
- function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
73
- function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
74
- function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
75
- function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
76
- 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 set(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 k(e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function k(e) { return e[n]; }, (o < 2 || 4 === o) && (F = function F(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 s(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)]; } }; }
77
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
78
- 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); }
79
- 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; }
80
- 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; }
81
- var _A = /*#__PURE__*/new WeakMap();
82
- var _B = /*#__PURE__*/new WeakMap();
83
- var _C = /*#__PURE__*/new WeakMap();
84
- var _D = /*#__PURE__*/new WeakMap();
85
- var _E = /*#__PURE__*/new WeakMap();
86
- var _F = /*#__PURE__*/new WeakMap();
87
- var _G = /*#__PURE__*/new WeakMap();
88
- _ref = (_setControlEnableDecs = [_mobx.action, _mobx.action.bound], _setSharingUserDecs = [_mobx.action, _mobx.action.bound], _setBackgroundColorDecs = [_mobx.action, _mobx.action.bound], _setWhiteboardToolDecs = [_mobx.action, _mobx.action.bound], _setThemeDecs = [_mobx.action, _mobx.action.bound], _setShowLoadingDecs = [_mobx.action, _mobx.action.bound], _setCommonColorsDecs = [_mobx.action, _mobx.action.bound], _setProgressDecs = [_mobx.action, _mobx.action.bound], _setJoinSuccessDecs = [_mobx.action, _mobx.action.bound], _setIsDualDisplayModeDecs = [_mobx.action, _mobx.action.bound], _handleSubProcessStateUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleDraftSavedDecs = [_mobx.action, _mobx.action.bound], "logger");
89
- var FcrUIBoardControlShareProviderImpl = exports.FcrUIBoardControlShareProviderImpl = /*#__PURE__*/function () {
90
- function FcrUIBoardControlShareProviderImpl(_privilegeProvider, _boardControl, _fcrUIMainWindowRenderer) {
91
- var _this = this;
92
- (0, _classCallCheck2["default"])(this, FcrUIBoardControlShareProviderImpl);
93
- (0, _defineProperty2["default"])(this, _ref, (_initProto(this), (0, _imports.createLogger)({
94
- prefix: 'WhiteboardControlStore'
95
- })));
96
- (0, _defineProperty2["default"])(this, "_showLoading", true);
97
- (0, _defineProperty2["default"])(this, "_roomName", '');
98
- (0, _defineProperty2["default"])(this, "_disposers", []);
99
- (0, _defineProperty2["default"])(this, "_toolbarStateObserver", {
100
- onUndoStepsUpdated: function onUndoStepsUpdated(steps) {
101
- _this.toolbarState.undoSteps = steps;
102
- },
103
- onRedoStepsUpdated: function onRedoStepsUpdated(steps) {
104
- _this.toolbarState.redoSteps = steps;
105
- },
106
- onConnectionStateUpdated: this._handleSubProcessStateUpdated,
107
- onDraftSaved: this._handleDraftSaved
108
- });
109
- _classPrivateFieldInitSpec(this, _A, _init_currentTheme(this, (0, _theme["default"])()[0]));
110
- _classPrivateFieldInitSpec(this, _B, _init_sharingUserInfo(this, undefined));
111
- _classPrivateFieldInitSpec(this, _C, _init_backgroundColor(this, '#ffffff'));
112
- _classPrivateFieldInitSpec(this, _D, _init_hasWriteBoardPermission(this, false));
113
- _classPrivateFieldInitSpec(this, _E, _init_connectionState(this, _type.FcrConnectionState.DISCONNECTED));
114
- _classPrivateFieldInitSpec(this, _F, _init_joinSuccess(this, false));
115
- _classPrivateFieldInitSpec(this, _G, _init_toolbarState(this, {
116
- controlEnable: false,
117
- currentTool: _enums.FcrBoardToolType.LASER_POINTER,
118
- currentStrokeWidth: 2,
119
- currentColor: _toolbar.colors[7],
120
- currentShape: _enums.FcrBoardShape.Rectangle,
121
- redoSteps: false,
122
- undoSteps: false,
123
- themeColors: this.currentTheme.colors,
124
- commonColors: [this.currentTheme.colors[2], this.currentTheme.colors[5]],
125
- progress: 0
126
- }));
127
- this._privilegeProvider = _privilegeProvider;
128
- this._boardControl = _boardControl;
129
- this._fcrUIMainWindowRenderer = _fcrUIMainWindowRenderer;
130
- }
131
- return (0, _createClass2["default"])(FcrUIBoardControlShareProviderImpl, [{
132
- key: "_boardMainRoom",
133
- get: function get() {
134
- var boardMainRoom = this._boardControl.getMainWindow();
135
- if (!boardMainRoom) {
136
- throw new Error('Board main room not found');
137
- }
138
- return boardMainRoom;
139
- }
140
- }, {
141
- key: "currentTheme",
142
- get: function get() {
143
- return _classPrivateFieldGet(_A, this);
144
- },
145
- set: function set(v) {
146
- _classPrivateFieldSet(_A, this, v);
147
- }
148
- }, {
149
- key: "sharingUserInfo",
150
- get: function get() {
151
- return _classPrivateFieldGet(_B, this);
152
- },
153
- set: function set(v) {
154
- _classPrivateFieldSet(_B, this, v);
155
- }
156
- }, {
157
- key: "backgroundColor",
158
- get: function get() {
159
- return _classPrivateFieldGet(_C, this);
160
- },
161
- set: function set(v) {
162
- _classPrivateFieldSet(_C, this, v);
163
- }
164
- }, {
165
- key: "hasWriteBoardPermission",
166
- get: function get() {
167
- return _classPrivateFieldGet(_D, this);
168
- },
169
- set: function set(v) {
170
- _classPrivateFieldSet(_D, this, v);
171
- }
172
- }, {
173
- key: "connectionState",
174
- get: function get() {
175
- return _classPrivateFieldGet(_E, this);
176
- },
177
- set: function set(v) {
178
- _classPrivateFieldSet(_E, this, v);
179
- }
180
- }, {
181
- key: "joinSuccess",
182
- get: function get() {
183
- return _classPrivateFieldGet(_F, this);
184
- },
185
- set: function set(v) {
186
- _classPrivateFieldSet(_F, this, v);
187
- }
188
- }, {
189
- key: "toolbarState",
190
- get: function get() {
191
- return _classPrivateFieldGet(_G, this);
192
- },
193
- set: function set(v) {
194
- _classPrivateFieldSet(_G, this, v);
195
- }
196
- }, {
197
- key: "toolbarStateObserver",
198
- get: function get() {
199
- return this._toolbarStateObserver;
200
- }
201
- }, {
202
- key: "showLoading",
203
- get: function get() {
204
- return [_type.FcrConnectionState.CONNECTING, _type.FcrConnectionState.RECONNECTING].includes(this.connectionState) && this._showLoading;
205
- }
206
- }, {
207
- key: "canWriteBoard",
208
- get: function get() {
209
- var canWrite = this._privilegeProvider.hasWriteBoardPermission();
210
- return canWrite;
211
- }
212
- }, {
213
- key: "setControlEnable",
214
- value: function setControlEnable(enable) {
215
- this.toolbarState.controlEnable = enable;
216
- }
217
- }, {
218
- key: "setSharingUser",
219
- value: function setSharingUser(userInfo) {
220
- this.sharingUserInfo = userInfo;
221
- }
222
- }, {
223
- key: "setBackgroundColor",
224
- value: function setBackgroundColor(color) {
225
- this.logger.info("[shared-whiteboard-data-source]: setBackgroundColor ".concat(color));
226
- this.backgroundColor = color;
227
- this._boardControl.setBackgroundColor(color);
228
- if (this._mainWindowRenderer) {
229
- this._mainWindowRenderer.notifyObservers('onBackgroundColorUpdated', color);
230
- }
231
- }
232
- }, {
233
- key: "setWhiteboardTool",
234
- value: function setWhiteboardTool(tool) {
235
- this.logger.info("[shared-whiteboard-data-source]: setWhiteboardTool ".concat(tool));
236
- if (this._mainWindowRenderer) {
237
- this._mainWindowRenderer.notifyObservers('onWhiteboardToolSelected', tool);
238
- }
239
- switch (tool.action) {
240
- case _type2.WhiteboardToolAction.TOOL:
241
- this.toolbarState.currentTool = tool.tool;
242
- break;
243
- case _type2.WhiteboardToolAction.WIDTH:
244
- this.toolbarState.currentStrokeWidth = tool.tool;
245
- break;
246
- case _type2.WhiteboardToolAction.COLOR:
247
- this.toolbarState.currentColor = tool.tool;
248
- break;
249
- case _type2.WhiteboardToolAction.SHAPE:
250
- this.toolbarState.currentShape = tool.tool;
251
- break;
252
- }
253
- }
254
- }, {
255
- key: "setTheme",
256
- value: function setTheme(theme) {
257
- if (this._mainWindowRenderer) {
258
- this._mainWindowRenderer.notifyObservers('onBackgroundColorUpdated', theme.background);
259
- }
260
- this.toolbarState.themeColors = theme.colors;
261
- this.currentTheme = (0, _theme["default"])().find(function (t) {
262
- return t.theme === theme.theme;
263
- });
264
- this._boardControl.setBackgroundColor(theme.background);
265
- }
266
- }, {
267
- key: "setShowLoading",
268
- value: function setShowLoading(show) {
269
- this._showLoading = show;
270
- }
271
- }, {
272
- key: "setCommonColors",
273
- value: function setCommonColors(colors) {
274
- this.toolbarState.commonColors = colors;
275
- }
276
- }, {
277
- key: "saveDraft",
278
- value: function saveDraft() {
279
- if (this._mainWindowRenderer) {
280
- this._mainWindowRenderer.notifyObservers('onSaveDraft');
281
- } else {
282
- this._boardMainRoom.getSnapshotImage().then(this._handleDraftSaved);
283
- }
284
- }
285
- }, {
286
- key: "setProgress",
287
- value: function setProgress(progress) {
288
- this.toolbarState.progress = progress;
289
- }
290
- }, {
291
- key: "setJoinSuccess",
292
- value: function setJoinSuccess(success) {
293
- this.joinSuccess = success;
294
- }
295
- }, {
296
- key: "inActive",
297
- value: function inActive() {
298
- if (this._mainWindowRenderer) {
299
- this._mainWindowRenderer.notifyObservers('onWhiteboardInActive');
300
- }
301
- }
302
- }, {
303
- key: "release",
304
- value: function release() {
305
- this._disposers.forEach(function (disposer) {
306
- return disposer();
307
- });
308
- this._disposers = [];
309
- if (this._mainWindowRenderer) {
310
- this._mainWindowRenderer.removeObserver(this._toolbarStateObserver);
311
- }
312
- this.setJoinSuccess(false);
313
- this.setShowLoading(true);
314
- }
315
- }, {
316
- key: "setIsDualDisplayMode",
317
- value: function setIsDualDisplayMode(isDualDisplayMode) {
318
- var _this2 = this;
319
- if (isDualDisplayMode) {
320
- this._mainWindowRenderer = this._fcrUIMainWindowRenderer;
321
- this._disposers.push((0, _mobx.reaction)(function () {
322
- return _this2.canWriteBoard;
323
- }, function (canWrite) {
324
- var _this2$_mainWindowRen;
325
- (_this2$_mainWindowRen = _this2._mainWindowRenderer) === null || _this2$_mainWindowRen === void 0 || _this2$_mainWindowRen.notifyObservers('onPermissionUpdated', canWrite);
326
- }));
327
- } else {
328
- this._mainWindowRenderer = undefined;
329
- this._disposers.forEach(function (disposer) {
330
- return disposer();
331
- });
332
- this._disposers = [];
333
- }
334
- }
335
- }, {
336
- key: "resetWhiteboardTool",
337
- value: function resetWhiteboardTool() {
338
- this.setWhiteboardTool({
339
- action: _type2.WhiteboardToolAction.TOOL,
340
- tool: _enums.FcrBoardToolType.LASER_POINTER
341
- });
342
- this.setWhiteboardTool({
343
- action: _type2.WhiteboardToolAction.WIDTH,
344
- tool: 2
345
- });
346
- this.setWhiteboardTool({
347
- action: _type2.WhiteboardToolAction.COLOR,
348
- tool: this.currentTheme.colors[2]
349
- });
350
- }
351
- }, {
352
- key: "setRoomName",
353
- value: function setRoomName(roomName) {
354
- this._roomName = roomName;
355
- }
356
- }, {
357
- key: "_handleSubProcessStateUpdated",
358
- value: function _handleSubProcessStateUpdated(state) {
359
- this.connectionState = state;
360
- if (state === _type.FcrConnectionState.CONNECTED) {
361
- this._showLoading = false;
362
- this.joinSuccess = true;
363
- setTimeout(this.resetWhiteboardTool);
364
- }
365
- if (state === _type.FcrConnectionState.CONNECTING || state === _type.FcrConnectionState.DISCONNECTED) {
366
- this._showLoading = true;
367
- this.joinSuccess = false;
368
- }
369
- this.logger.info("[shared-whiteboard-data-source]: onConnectionStateUpdated: ".concat(_type.FcrConnectionState[state], ", joinSuccess: ").concat(this.joinSuccess, ", showLoading: ").concat(this._showLoading));
370
- }
371
- }, {
372
- key: "_handleDraftSaved",
373
- value: function _handleDraftSaved(image) {
374
- var fileName = "".concat(this._roomName, "_").concat((0, _dayjs["default"])().format('YYYYMMDD_HHmmSSS'), ".jpg");
375
- (0, _utils.downloadImageData)(image, fileName);
376
- }
377
- }]);
378
- }();
379
- _FcrUIBoardControlShareProviderImpl = FcrUIBoardControlShareProviderImpl;
380
- var _applyDecs$e = _applyDecs(_FcrUIBoardControlShareProviderImpl, [[_mobx.observable, 1, "currentTheme"], [_mobx.observable, 1, "sharingUserInfo"], [_mobx.observable, 1, "backgroundColor"], [_mobx.observable, 1, "hasWriteBoardPermission"], [_mobx.observable, 1, "connectionState"], [_mobx.observable, 1, "joinSuccess"], [_mobx.observable, 1, "toolbarState"], [_mobx.computed, 3, "canWriteBoard"], [_setControlEnableDecs, 18, "setControlEnable"], [_setSharingUserDecs, 18, "setSharingUser"], [_setBackgroundColorDecs, 18, "setBackgroundColor"], [_setWhiteboardToolDecs, 18, "setWhiteboardTool"], [_setThemeDecs, 18, "setTheme"], [_setShowLoadingDecs, 18, "setShowLoading"], [_setCommonColorsDecs, 18, "setCommonColors"], [_imports.bound, 2, "saveDraft"], [_setProgressDecs, 18, "setProgress"], [_setJoinSuccessDecs, 18, "setJoinSuccess"], [_imports.bound, 2, "inActive"], [_setIsDualDisplayModeDecs, 18, "setIsDualDisplayMode"], [_imports.bound, 2, "resetWhiteboardTool"], [_handleSubProcessStateUpdatedDecs, 18, "_handleSubProcessStateUpdated"], [_handleDraftSavedDecs, 18, "_handleDraftSaved"]], []).e;
381
- var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 8);
382
- _init_currentTheme = _applyDecs$e2[0];
383
- _init_sharingUserInfo = _applyDecs$e2[1];
384
- _init_backgroundColor = _applyDecs$e2[2];
385
- _init_hasWriteBoardPermission = _applyDecs$e2[3];
386
- _init_connectionState = _applyDecs$e2[4];
387
- _init_joinSuccess = _applyDecs$e2[5];
388
- _init_toolbarState = _applyDecs$e2[6];
389
- _initProto = _applyDecs$e2[7];
390
- _applyDecs$e;