fcr-core 3.8.2 → 3.9.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 (159) hide show
  1. package/lib/chat-connector/type.d.ts +40 -0
  2. package/lib/{chat-connection → chat-connector}/type.js +1 -1
  3. package/lib/engine/index.d.ts +10 -11
  4. package/lib/engine/index.js +63 -72
  5. package/lib/engine/type.d.ts +96 -0
  6. package/lib/engine/type.js +5 -0
  7. package/lib/imports.d.ts +7 -4
  8. package/lib/imports.js +30 -4
  9. package/lib/index.d.ts +3 -2
  10. package/lib/index.js +21 -2
  11. package/lib/media-control/desktop.js +12 -12
  12. package/lib/media-control/mobile.js +4 -0
  13. package/lib/media-control/type.d.ts +32 -33
  14. package/lib/monitor-control/index.js +3 -3
  15. package/lib/peer-session/index.js +14 -14
  16. package/lib/peer-session/type.d.ts +1 -1
  17. package/lib/plugins/chat/chatroom.js +417 -0
  18. package/lib/{chat-connection → plugins/chat}/config.d.ts +1 -0
  19. package/lib/{chat-connection → plugins/chat}/config.js +2 -1
  20. package/lib/plugins/chat/connector.d.ts +38 -0
  21. package/lib/{chat-connection/index.js → plugins/chat/connector.js} +181 -61
  22. package/lib/room-control/ability-control/index.js +5 -4
  23. package/lib/room-control/ability-control/type.d.ts +5 -1
  24. package/lib/room-control/ability-control/type.js +4 -0
  25. package/lib/room-control/chatroom-control/type.d.ts +44 -35
  26. package/lib/room-control/group-control/index.js +9 -9
  27. package/lib/room-control/index.js +37 -22
  28. package/lib/room-control/interpreter-control/index.js +7 -4
  29. package/lib/room-control/interpreter-control/room.js +3 -3
  30. package/lib/room-control/interpreter-control/types.d.ts +2 -2
  31. package/lib/room-control/join-before-host-waitingroom-control/index.js +3 -3
  32. package/lib/room-control/mainroom-control/index.js +15 -13
  33. package/lib/room-control/privilege-control/index.js +39 -24
  34. package/lib/room-control/privilege-control/type.d.ts +15 -15
  35. package/lib/room-control/room-connector-control/index.js +7 -5
  36. package/lib/room-control/room-connector-control/type.d.ts +1 -1
  37. package/lib/room-control/room-control-factory.d.ts +3 -3
  38. package/lib/room-control/room-control-factory.js +7 -7
  39. package/lib/room-control/room-session/index.js +17 -15
  40. package/lib/room-control/room-session/type.d.ts +3 -3
  41. package/lib/room-control/sharing-control/index.js +13 -7
  42. package/lib/room-control/stream-control/index.js +18 -16
  43. package/lib/room-control/stream-control/type.d.ts +5 -5
  44. package/lib/room-control/stt-control/index.js +38 -31
  45. package/lib/room-control/type.d.ts +19 -19
  46. package/lib/room-control/user-control/index.js +20 -22
  47. package/lib/room-control/user-control/type.d.ts +1 -1
  48. package/lib/room-control/waitingroom-control/index.js +11 -11
  49. package/lib/room-control/whiteboard-control-v1/board-window.d.ts +21 -20
  50. package/lib/room-control/whiteboard-control-v1/board-window.js +27 -8
  51. package/lib/room-control/whiteboard-control-v1/factory.js +1 -1
  52. package/lib/room-control/whiteboard-control-v1/index.js +26 -18
  53. package/lib/room-control/whiteboard-control-v1/type.d.ts +26 -25
  54. package/lib/room-control/whiteboard-control-v1/type.js +1 -0
  55. package/lib/room-control/whiteboard-control-v2/annotation-control/control.d.ts +15 -6
  56. package/lib/room-control/whiteboard-control-v2/annotation-control/control.js +39 -5
  57. package/lib/room-control/whiteboard-control-v2/annotation-control/factory.d.ts +4 -5
  58. package/lib/room-control/whiteboard-control-v2/annotation-control/factory.js +6 -5
  59. package/lib/room-control/whiteboard-control-v2/annotation-control/type.d.ts +7 -1
  60. package/lib/room-control/whiteboard-control-v2/base/index.d.ts +9 -8
  61. package/lib/room-control/whiteboard-control-v2/base/index.js +84 -42
  62. package/lib/room-control/whiteboard-control-v2/base/main-window.d.ts +16 -15
  63. package/lib/room-control/whiteboard-control-v2/base/main-window.js +23 -4
  64. package/lib/room-control/whiteboard-control-v2/type.d.ts +17 -17
  65. package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.d.ts +12 -6
  66. package/lib/room-control/whiteboard-control-v2/whiteboard-control/control.js +64 -18
  67. package/lib/room-control/whiteboard-control-v2/whiteboard-control/factory.d.ts +2 -2
  68. package/lib/room-control/whiteboard-control-v2/whiteboard-control/factory.js +10 -10
  69. package/lib/room-control/whiteboard-control-v2/whiteboard-control/type.d.ts +1 -1
  70. package/lib/room-router/index.js +10 -7
  71. package/lib/room-router/type.d.ts +1 -1
  72. package/lib/schema.d.ts +24 -46
  73. package/lib/schema.js +1 -2
  74. package/lib/service/api.d.ts +5 -3
  75. package/lib/service/api.js +17 -12
  76. package/lib/type.d.ts +64 -45
  77. package/lib/type.js +76 -11
  78. package/lib/utilities/abortable-retry.d.ts +38 -0
  79. package/lib/utilities/abortable-retry.js +61 -0
  80. package/lib/utilities/dual-video-stream-config.d.ts +6 -0
  81. package/lib/utilities/dual-video-stream-config.js +25 -0
  82. package/lib/utilities/error-helpers.d.ts +10 -9
  83. package/lib/utilities/error-helpers.js +12 -11
  84. package/lib/utilities/error.d.ts +4 -40
  85. package/lib/utilities/error.js +20 -77
  86. package/lib/utilities/join-helper.js +2 -2
  87. package/lib/utilities/logger.d.ts +2 -2
  88. package/lib/utilities/logger.js +6 -25
  89. package/lib/utilities/package-info.d.ts +1 -2
  90. package/lib/utilities/package-info.js +4 -8
  91. package/lib/utilities/parameters.js +88 -15
  92. package/lib/utilities/validate-params.js +1 -1
  93. package/lib/utilities/video-encoder-config.d.ts +9 -0
  94. package/lib/utilities/video-encoder-config.js +109 -0
  95. package/lib-es/{chat-connection → chat-connector}/type.js +1 -1
  96. package/lib-es/engine/index.js +46 -56
  97. package/lib-es/engine/type.js +1 -0
  98. package/lib-es/imports.js +5 -3
  99. package/lib-es/index.js +2 -1
  100. package/lib-es/media-control/desktop.js +12 -12
  101. package/lib-es/media-control/mobile.js +4 -0
  102. package/lib-es/monitor-control/index.js +3 -3
  103. package/lib-es/peer-session/index.js +16 -15
  104. package/lib-es/plugins/chat/chatroom.js +409 -0
  105. package/lib-es/{chat-connection → plugins/chat}/config.js +2 -1
  106. package/lib-es/{chat-connection/index.js → plugins/chat/connector.js} +178 -58
  107. package/lib-es/room-control/ability-control/index.js +5 -4
  108. package/lib-es/room-control/ability-control/type.js +4 -0
  109. package/lib-es/room-control/group-control/index.js +11 -10
  110. package/lib-es/room-control/index.js +40 -26
  111. package/lib-es/room-control/interpreter-control/index.js +10 -5
  112. package/lib-es/room-control/interpreter-control/room.js +3 -3
  113. package/lib-es/room-control/join-before-host-waitingroom-control/index.js +4 -3
  114. package/lib-es/room-control/mainroom-control/index.js +16 -17
  115. package/lib-es/room-control/privilege-control/index.js +43 -29
  116. package/lib-es/room-control/room-connector-control/index.js +9 -6
  117. package/lib-es/room-control/room-control-factory.js +6 -6
  118. package/lib-es/room-control/room-session/index.js +21 -22
  119. package/lib-es/room-control/sharing-control/index.js +13 -7
  120. package/lib-es/room-control/stream-control/index.js +21 -18
  121. package/lib-es/room-control/stt-control/index.js +23 -15
  122. package/lib-es/room-control/user-control/index.js +23 -23
  123. package/lib-es/room-control/waitingroom-control/index.js +10 -9
  124. package/lib-es/room-control/whiteboard-control-v1/board-window.js +27 -8
  125. package/lib-es/room-control/whiteboard-control-v1/factory.js +1 -1
  126. package/lib-es/room-control/whiteboard-control-v1/index.js +26 -17
  127. package/lib-es/room-control/whiteboard-control-v1/type.js +1 -0
  128. package/lib-es/room-control/whiteboard-control-v2/annotation-control/control.js +39 -5
  129. package/lib-es/room-control/whiteboard-control-v2/annotation-control/factory.js +7 -6
  130. package/lib-es/room-control/whiteboard-control-v2/base/index.js +86 -42
  131. package/lib-es/room-control/whiteboard-control-v2/base/main-window.js +23 -4
  132. package/lib-es/room-control/whiteboard-control-v2/whiteboard-control/control.js +60 -13
  133. package/lib-es/room-control/whiteboard-control-v2/whiteboard-control/factory.js +10 -10
  134. package/lib-es/room-router/index.js +10 -6
  135. package/lib-es/schema.js +1 -2
  136. package/lib-es/service/api.js +17 -12
  137. package/lib-es/type.js +70 -18
  138. package/lib-es/utilities/abortable-retry.js +54 -0
  139. package/lib-es/utilities/dual-video-stream-config.js +19 -0
  140. package/lib-es/utilities/error-helpers.js +13 -12
  141. package/lib-es/utilities/error.js +9 -75
  142. package/lib-es/utilities/join-helper.js +4 -3
  143. package/lib-es/utilities/logger.js +7 -23
  144. package/lib-es/utilities/package-info.js +4 -6
  145. package/lib-es/utilities/parameters.js +88 -15
  146. package/lib-es/utilities/validate-params.js +3 -2
  147. package/lib-es/utilities/video-encoder-config.js +103 -0
  148. package/package.json +7 -7
  149. package/lib/chat-connection/index.d.ts +0 -24
  150. package/lib/chat-connection/type.d.ts +0 -17
  151. package/lib/plugins/chatroom.js +0 -454
  152. package/lib/room-control/chatroom-control/config.d.ts +0 -51
  153. package/lib/room-control/chatroom-control/config.js +0 -105
  154. package/lib/utilities/storage.d.ts +0 -8
  155. package/lib/utilities/storage.js +0 -33
  156. package/lib-es/plugins/chatroom.js +0 -446
  157. package/lib-es/room-control/chatroom-control/config.js +0 -100
  158. package/lib-es/utilities/storage.js +0 -27
  159. /package/lib/plugins/{chatroom.d.ts → chat/chatroom.d.ts} +0 -0
@@ -33,7 +33,8 @@ var _schema = require("agora-foundation/lib/utilities/schema");
33
33
  var _validateParams = _interopRequireDefault(require("../../../utilities/validate-params"));
34
34
  var _schema2 = require("../../../schema");
35
35
  var _decorator = require("agora-foundation/lib/decorator");
36
- let _initProto, _setBackgroundColorDecs, _setToolTypeDecs, _setStrokeWidthDecs, _setStrokeColorDecs, _setTextColorDecs, _setTextSizeDecs, _insertImageDecs, _setContainerSizeRatioDecs, _setBoardTransparentDecs, _updateWindowSizeDecs, _setAutoCancelDrawDecs;
36
+ var _type = require("../../../type");
37
+ let _initProto, _setBackgroundColorDecs, _setToolTypeDecs, _setStrokeWidthDecs, _setStrokeColorDecs, _setTextColorDecs, _setTextSizeDecs, _insertImageDecs, _setContainerSizeRatioDecs, _setBoardTransparentDecs, _updateWindowSizeDecs, _setAutoCancelDrawDecs, _handleApplicationLaunchDecs, _handleApplicationTerminalDecs, _enableAutoCancelDecs;
37
38
  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)]; } }; }
38
39
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
39
40
  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); }
@@ -41,9 +42,9 @@ function _setFunctionName(e, t, n) { "symbol" == typeof t && (t = (t = t.descrip
41
42
  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; }
42
43
  class FcrBoardMainWindowImpl {
43
44
  static {
44
- [_initProto] = _applyDecs(this, [[_log.trace, 2, "addPage"], [_log.trace, 2, "removePage"], [_log.trace, 2, "undo"], [_log.trace, 2, "redo"], [_log.trace, 2, "clean"], [_log.trace, 2, "getSnapshotImage"], [_setBackgroundColorDecs, 2, "setBackgroundColor"], [_log.trace, 2, "getPageInfo"], [_log.trace, 2, "prevPage"], [_log.trace, 2, "nextPage"], [_setToolTypeDecs, 2, "setToolType"], [_setStrokeWidthDecs, 2, "setStrokeWidth"], [_setStrokeColorDecs, 2, "setStrokeColor"], [_setTextColorDecs, 2, "setTextColor"], [_setTextSizeDecs, 2, "setTextSize"], [_insertImageDecs, 2, "insertImage"], [_log.trace, 2, "getContentView"], [_setContainerSizeRatioDecs, 2, "setContainerSizeRatio"], [_setBoardTransparentDecs, 2, "setBoardTransparent"], [_updateWindowSizeDecs, 2, "updateWindowSize"], [_setAutoCancelDrawDecs, 2, "setAutoCancelDraw"], [_log.trace, 2, "getWritable"], [[_decorator.bound, _log.trace], 2, "_handleApplicationLaunch"], [[_decorator.bound, _log.trace], 2, "_handleApplicationTerminal"], [_log.trace, 2, "_enableAutoCancel"]], []).e;
45
+ [_initProto] = _applyDecs(this, [[_log.trace, 2, "addPage"], [_log.trace, 2, "removePage"], [_log.trace, 2, "undo"], [_log.trace, 2, "redo"], [_log.trace, 2, "clean"], [_log.trace, 2, "getSnapshotImage"], [_setBackgroundColorDecs, 2, "setBackgroundColor"], [_log.trace, 2, "getPageInfo"], [_log.trace, 2, "prevPage"], [_log.trace, 2, "nextPage"], [_setToolTypeDecs, 2, "setToolType"], [_setStrokeWidthDecs, 2, "setStrokeWidth"], [_setStrokeColorDecs, 2, "setStrokeColor"], [_setTextColorDecs, 2, "setTextColor"], [_setTextSizeDecs, 2, "setTextSize"], [_insertImageDecs, 2, "insertImage"], [_log.trace, 2, "getContentView"], [_setContainerSizeRatioDecs, 2, "setContainerSizeRatio"], [_setBoardTransparentDecs, 2, "setBoardTransparent"], [_updateWindowSizeDecs, 2, "updateWindowSize"], [_setAutoCancelDrawDecs, 2, "setAutoCancelDraw"], [_log.trace, 2, "getWritable"], [_handleApplicationLaunchDecs, 2, "_handleApplicationLaunch"], [_handleApplicationTerminalDecs, 2, "_handleApplicationTerminal"], [_enableAutoCancelDecs, 2, "_enableAutoCancel"]], []).e;
45
46
  }
46
- [(_setBackgroundColorDecs = [_log.trace, (0, _validateParams.default)(_schema.stringSchema)], _setToolTypeDecs = [_log.trace, (0, _validateParams.default)(_schema2.fcrBoardToolTypeSchema)], _setStrokeWidthDecs = [_log.trace, (0, _validateParams.default)(_schema2.numberSchema)], _setStrokeColorDecs = [_log.trace, (0, _validateParams.default)(_schema2.z.union([_schema2.colorSchema, _schema.stringSchema]))], _setTextColorDecs = [_log.trace, (0, _validateParams.default)(_schema2.colorSchema)], _setTextSizeDecs = [_log.trace, (0, _validateParams.default)(_schema2.numberSchema)], _insertImageDecs = [_log.trace, (0, _validateParams.default)(_schema.stringSchema, _schema2.numberSchema, _schema2.numberSchema, _schema2.numberSchema, _schema2.numberSchema)], _setContainerSizeRatioDecs = [_log.trace, (0, _validateParams.default)(_schema2.numberSchema)], _setBoardTransparentDecs = [_log.trace, (0, _validateParams.default)(_schema2.booleanSchema)], _updateWindowSizeDecs = [_log.trace, (0, _validateParams.default)(_schema2.fcrSizeSchema)], _setAutoCancelDrawDecs = [_log.trace, (0, _validateParams.default)(_schema2.booleanSchema)], "logger")] = (_initProto(this), (0, _logger.createLogger)({
47
+ [(_setBackgroundColorDecs = [(0, _log.trace)(['color']), (0, _validateParams.default)(_schema.stringSchema)], _setToolTypeDecs = [(0, _log.trace)(['type']), (0, _validateParams.default)(_schema2.fcrBoardToolTypeSchema)], _setStrokeWidthDecs = [(0, _log.trace)(['strokeWidth']), (0, _validateParams.default)(_schema2.numberSchema)], _setStrokeColorDecs = [(0, _log.trace)(['color']), (0, _validateParams.default)(_schema2.z.union([_schema2.colorSchema, _schema.stringSchema]))], _setTextColorDecs = [(0, _log.trace)(['color']), (0, _validateParams.default)(_schema2.colorSchema)], _setTextSizeDecs = [(0, _log.trace)(['textSize']), (0, _validateParams.default)(_schema2.numberSchema)], _insertImageDecs = [(0, _log.trace)(['resourceUrl', 'x', 'y', 'width', 'height']), (0, _validateParams.default)(_schema.stringSchema, _schema2.numberSchema, _schema2.numberSchema, _schema2.numberSchema, _schema2.numberSchema)], _setContainerSizeRatioDecs = [(0, _log.trace)(['ratio']), (0, _validateParams.default)(_schema2.numberSchema)], _setBoardTransparentDecs = [(0, _log.trace)(['isTransparent']), (0, _validateParams.default)(_schema2.booleanSchema)], _updateWindowSizeDecs = [(0, _log.trace)(['size']), (0, _validateParams.default)(_schema2.fcrSizeSchema)], _setAutoCancelDrawDecs = [(0, _log.trace)(['enable']), (0, _validateParams.default)(_schema2.booleanSchema)], _handleApplicationLaunchDecs = [_decorator.bound, (0, _log.trace)(['appId', 'app'])], _handleApplicationTerminalDecs = [_decorator.bound, (0, _log.trace)(['appId', 'app'])], _enableAutoCancelDecs = (0, _log.trace)(['enable']), "logger")] = (_initProto(this), (0, _logger.createLogger)({
47
48
  prefix: 'FcrBoardMainWindowImpl'
48
49
  }));
49
50
  _observable = new _observable.AgoraObservable();
@@ -69,18 +70,23 @@ class FcrBoardMainWindowImpl {
69
70
  }
70
71
  async addPage() {
71
72
  this._whiteboard.addPage('next');
73
+ return _type.FcrReturnCode.SUCCESS;
72
74
  }
73
75
  async removePage() {
74
76
  this._whiteboard.deletePage('current');
77
+ return _type.FcrReturnCode.SUCCESS;
75
78
  }
76
79
  async undo() {
77
80
  this._whiteboard.undo();
81
+ return _type.FcrReturnCode.SUCCESS;
78
82
  }
79
83
  async redo() {
80
84
  this._whiteboard.redo();
85
+ return _type.FcrReturnCode.SUCCESS;
81
86
  }
82
87
  async clean() {
83
88
  this._whiteboard.clearPage();
89
+ return _type.FcrReturnCode.SUCCESS;
84
90
  }
85
91
  async getSnapshotImage() {
86
92
  if (this._whiteboard) {
@@ -114,6 +120,7 @@ class FcrBoardMainWindowImpl {
114
120
  this._background = color;
115
121
  this.logger.info(`set canvas background color: ${this._background}`);
116
122
  this._whiteboard.setCanvasBackgroundColor(color);
123
+ return _type.FcrReturnCode.SUCCESS;
117
124
  }
118
125
  getPageInfo() {
119
126
  return {
@@ -123,9 +130,11 @@ class FcrBoardMainWindowImpl {
123
130
  }
124
131
  async prevPage() {
125
132
  this._whiteboard.indexedNavigation.prevPage();
133
+ return _type.FcrReturnCode.SUCCESS;
126
134
  }
127
135
  async nextPage() {
128
136
  this._whiteboard.indexedNavigation.nextPage();
137
+ return _type.FcrReturnCode.SUCCESS;
129
138
  }
130
139
  async setToolType(type) {
131
140
  if (this._whiteboard) {
@@ -134,6 +143,7 @@ class FcrBoardMainWindowImpl {
134
143
  } else {
135
144
  throw new Error('Whiteboard is not initialized');
136
145
  }
146
+ return _type.FcrReturnCode.SUCCESS;
137
147
  }
138
148
  async setStrokeWidth(strokeWidth) {
139
149
  if (this._whiteboard) {
@@ -141,6 +151,7 @@ class FcrBoardMainWindowImpl {
141
151
  } else {
142
152
  throw new Error('Whiteboard is not initialized');
143
153
  }
154
+ return _type.FcrReturnCode.SUCCESS;
144
155
  }
145
156
  async setStrokeColor(color) {
146
157
  const c = typeof color === 'string' ? color : `rgb(${color.r},${color.g},${color.b})`;
@@ -149,6 +160,7 @@ class FcrBoardMainWindowImpl {
149
160
  } else {
150
161
  throw new Error('Whiteboard is not initialized');
151
162
  }
163
+ return _type.FcrReturnCode.SUCCESS;
152
164
  }
153
165
  async setTextColor(color) {
154
166
  const c = typeof color === 'string' ? color : `rgb(${color.r},${color.g},${color.b})`;
@@ -157,6 +169,7 @@ class FcrBoardMainWindowImpl {
157
169
  } else {
158
170
  throw new Error('Whiteboard is not initialized');
159
171
  }
172
+ return _type.FcrReturnCode.SUCCESS;
160
173
  }
161
174
  async setTextSize(textSize) {
162
175
  if (this._whiteboard) {
@@ -164,6 +177,7 @@ class FcrBoardMainWindowImpl {
164
177
  } else {
165
178
  throw new Error('Whiteboard is not initialized');
166
179
  }
180
+ return _type.FcrReturnCode.SUCCESS;
167
181
  }
168
182
  async insertImage(resourceUrl, x, y, width, height) {}
169
183
  getContentView() {
@@ -173,10 +187,12 @@ class FcrBoardMainWindowImpl {
173
187
  async setBoardTransparent(isTransparent) {}
174
188
  updateWindowSize(size) {
175
189
  size && this._whiteboard.updateViewport(size.width, size.height);
190
+ return _type.FcrReturnCode.SUCCESS;
176
191
  }
177
192
  setAutoCancelDraw(enable) {
178
193
  this._isAutoCancelEnabled = enable;
179
194
  this._enableAutoCancel(enable);
195
+ return _type.FcrReturnCode.SUCCESS;
180
196
  }
181
197
  getWritable() {
182
198
  return this._whiteboard.permissions.getPermissionFlags().some(flag => {
@@ -227,6 +243,7 @@ class FcrBoardMainWindowImpl {
227
243
  }
228
244
  this._boardView.setAttribute('data-app-id', appId);
229
245
  this._boardView.appendChild(app.view);
246
+ return _type.FcrReturnCode.SUCCESS;
230
247
  }
231
248
  _handleApplicationTerminal(appId, app) {
232
249
  try {
@@ -239,6 +256,7 @@ class FcrBoardMainWindowImpl {
239
256
  } catch (e) {
240
257
  this.logger.error(`failed to handle terminal: ${appId}`, e);
241
258
  }
259
+ return _type.FcrReturnCode.SUCCESS;
242
260
  }
243
261
  _setBoardViewStyle(view) {
244
262
  view.style.height = `100%`;
@@ -250,9 +268,10 @@ class FcrBoardMainWindowImpl {
250
268
  this._whiteboard.__setMainCanvasVisible(!enable);
251
269
  // @ts-ignore
252
270
  this._whiteboard.__delayTranslateOut = enable ? 4000 : -1;
271
+ return _type.FcrReturnCode.SUCCESS;
253
272
  }
254
273
  _addLogObserver() {
255
- this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onWritable', 'onPageInfoUpdated', 'onUndoStateUpdated', 'onRedoStateUpdated']));
274
+ this.addObserver((0, _logger.generateLogObserver)(this.logger, [['onWritable', ['isWritable']], ['onPageInfoUpdated', ['info']], ['onUndoStateUpdated', ['enable']], ['onRedoStateUpdated', ['enable']]]));
256
275
  }
257
276
  }
258
277
  exports.FcrBoardMainWindowImpl = FcrBoardMainWindowImpl;
@@ -10,7 +10,7 @@ export interface FcrBaseWhiteboardControl<T extends FcrBaseWhiteboardObserver> {
10
10
  /**
11
11
  * Closes the whiteboard and releases the main window.
12
12
  */
13
- close(): Promise<void>;
13
+ close(): Promise<number>;
14
14
  /**
15
15
  * Gets the connection state of the whiteboard.
16
16
  */
@@ -23,7 +23,7 @@ export interface FcrBaseWhiteboardControl<T extends FcrBaseWhiteboardObserver> {
23
23
  * Sets whether the current user has operation privilege.
24
24
  * @param hasOperationPrivilege
25
25
  */
26
- setOperationPrivilege(hasOperationPrivilege: boolean): void;
26
+ setOperationPrivilege(hasOperationPrivilege: boolean): number;
27
27
  /**
28
28
  * Adds an observer to the whiteboard.
29
29
  * @param observer
@@ -56,61 +56,61 @@ export interface FcrBoardMainWindow {
56
56
  /**
57
57
  * Adds a page.
58
58
  */
59
- addPage(): Promise<void>;
59
+ addPage(): Promise<number>;
60
60
  /**
61
61
  * Removes a page.
62
62
  */
63
- removePage(): Promise<void>;
63
+ removePage(): Promise<number>;
64
64
  /**
65
65
  * Navigates to the previous page.
66
66
  */
67
- prevPage(): Promise<void>;
67
+ prevPage(): Promise<number>;
68
68
  /**
69
69
  * Navigate to the next page.
70
70
  */
71
- nextPage(): Promise<void>;
71
+ nextPage(): Promise<number>;
72
72
  /**
73
73
  * Undoes the operation.
74
74
  */
75
- undo(): Promise<void>;
75
+ undo(): Promise<number>;
76
76
  /**
77
77
  * Redoes the operation.
78
78
  */
79
- redo(): Promise<void>;
79
+ redo(): Promise<number>;
80
80
  /**
81
81
  * Cleans the whiteboard.
82
82
  */
83
- clean(): Promise<void>;
83
+ clean(): Promise<number>;
84
84
  /**
85
85
  * Sets the tool type.
86
86
  * @param type
87
87
  */
88
- setToolType(type: FcrBoardToolType): Promise<void>;
88
+ setToolType(type: FcrBoardToolType): Promise<number>;
89
89
  /**
90
90
  * Sets the stroke width.
91
91
  * @param strokeWidth
92
92
  */
93
- setStrokeWidth(strokeWidth: number): Promise<void>;
93
+ setStrokeWidth(strokeWidth: number): Promise<number>;
94
94
  /**
95
95
  * Sets the stroke color.
96
96
  * @param color
97
97
  */
98
- setStrokeColor(color: FcrColor): Promise<void>;
98
+ setStrokeColor(color: FcrColor): Promise<number>;
99
99
  /**
100
100
  * Sets the text color.
101
101
  * @param color
102
102
  */
103
- setTextColor(color: FcrColor): Promise<void>;
103
+ setTextColor(color: FcrColor): Promise<number>;
104
104
  /**
105
105
  * Sets the text size.
106
106
  * @param textSize
107
107
  */
108
- setTextSize(textSize: number): Promise<void>;
108
+ setTextSize(textSize: number): Promise<number>;
109
109
  /**
110
110
  * Sets the background color of the whiteboard.
111
111
  * @param color
112
112
  */
113
- setBackgroundColor(color: string): Promise<void>;
113
+ setBackgroundColor(color: string): Promise<number>;
114
114
  /**
115
115
  * Sets the board background to transparent.
116
116
  */
@@ -137,12 +137,12 @@ export interface FcrBoardMainWindow {
137
137
  * Update the board canvas size.
138
138
  * @param ratio
139
139
  */
140
- updateWindowSize(size: FcrSize): void;
140
+ updateWindowSize(size: FcrSize): number;
141
141
  /**
142
142
  * Sets auto cancel draw
143
143
  * @param enable
144
144
  */
145
- setAutoCancelDraw(enable: boolean): void;
145
+ setAutoCancelDraw(enable: boolean): number;
146
146
  /**
147
147
  * Checks if the current user has write permission.
148
148
  */
@@ -1,12 +1,13 @@
1
- import { FcrObjectForgeInitConfig } from '../type';
2
- import { AgoraRteScene } from '../../../imports';
1
+ import { WhiteboardOption } from '@netless/forge-whiteboard';
3
2
  import type { RTMClient } from 'agora-rtm';
3
+ import { AgoraRteScene } from '../../../imports';
4
4
  import { FcrCoreServiceApi } from '../../../service/api';
5
+ import { FcrReturnCode } from '../../../type';
5
6
  import { FcrSharedCache } from '../../shared-cache';
6
- import { FcrBoardConfig, FcrStandaloneWhiteboardControl, FcrWhiteboardControl, FcrWhiteboardObserver } from './type';
7
- import { FcrBaseWhiteboardControlImpl } from '../base';
8
7
  import { FcrBoardActiveInfo } from '../../whiteboard-control/type';
9
- import { WhiteboardOption } from '@netless/forge-whiteboard';
8
+ import { FcrBaseWhiteboardControlImpl } from '../base';
9
+ import { FcrBoardMainWindow, FcrObjectForgeInitConfig } from '../type';
10
+ import { FcrBoardConfig, FcrStandaloneWhiteboardControl, FcrWhiteboardControl, FcrWhiteboardObserver } from './type';
10
11
  export declare class FcrWhiteboardControlImpl extends FcrBaseWhiteboardControlImpl<FcrWhiteboardObserver> implements FcrWhiteboardControl {
11
12
  private _scene;
12
13
  private _api;
@@ -15,20 +16,25 @@ export declare class FcrWhiteboardControlImpl extends FcrBaseWhiteboardControlIm
15
16
  private _backgroundColor;
16
17
  private _isActive;
17
18
  private _ownerId;
19
+ private _preloadLock;
18
20
  private _notifyObservers;
19
21
  constructor(rtmClient: RTMClient, config: FcrBoardConfig, hasOperationPrivilege: boolean, sharedCache: FcrSharedCache, forgeInitConfigFetcher: () => Promise<FcrObjectForgeInitConfig>, _scene: AgoraRteScene, _api: FcrCoreServiceApi);
22
+ open(): Promise<FcrBoardMainWindow>;
23
+ close(): Promise<number>;
20
24
  active(): Promise<void>;
21
25
  inactive(): Promise<void>;
22
26
  getBoardActiveInfo(): FcrBoardActiveInfo;
23
- setBackgroundColor(backgroundColor: string): Promise<void>;
27
+ setBackgroundColor(backgroundColor: string): Promise<FcrReturnCode>;
24
28
  getBackgroundColor(): string;
25
29
  getActivity(): boolean;
26
30
  getOwnerId(): string | null;
31
+ protected getApplicationId(): string;
27
32
  private _onScenePropertiesUpdated;
28
33
  protected getWhiteboardOption(): WhiteboardOption;
29
34
  protected addLogObserver(): void;
30
35
  }
31
36
  export declare class FcrStandaloneWhiteboardControlImpl extends FcrBaseWhiteboardControlImpl<FcrWhiteboardObserver> implements FcrStandaloneWhiteboardControl {
37
+ open(): Promise<FcrBoardMainWindow>;
32
38
  protected getApplicationId(): string;
33
39
  protected getWhiteboardOption(): WhiteboardOption;
34
40
  }
@@ -23,19 +23,20 @@ Object.defineProperty(exports, "__esModule", {
23
23
  });
24
24
  exports.FcrWhiteboardControlImpl = exports.FcrStandaloneWhiteboardControlImpl = void 0;
25
25
  var _imports = require("../../../imports");
26
- var _user = require("../../../utilities/user");
27
- var _error = require("../../../utilities/error");
28
26
  var _schema = require("../../../schema");
27
+ var _type = require("../../../type");
28
+ var _error = require("../../../utilities/error");
29
+ var _logger = require("../../../utilities/logger");
29
30
  var _packageInfo = require("../../../utilities/package-info");
31
+ var _user = require("../../../utilities/user");
30
32
  var _validateParams = _interopRequireDefault(require("../../../utilities/validate-params"));
33
+ var _type2 = require("../../sharing-control/type");
34
+ var _type3 = require("../../whiteboard-control/type");
31
35
  var _base = require("../base");
32
36
  var _constant = require("../constant");
33
- var _type = require("../../whiteboard-control/type");
34
- var _type2 = require("../../sharing-control/type");
35
- var _logger = require("../../../utilities/logger");
36
37
  var _utils = require("../utils");
37
- var _ref;
38
- let _initProto, _setBackgroundColorDecs;
38
+ var _ref, _ref2;
39
+ let _initProto, _setBackgroundColorDecs, _initProto2;
39
40
  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)]; } }; }
40
41
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
41
42
  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); }
@@ -43,14 +44,15 @@ function _setFunctionName(e, t, n) { "symbol" == typeof t && (t = (t = t.descrip
43
44
  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; }
44
45
  class FcrWhiteboardControlImpl extends (_ref = _base.FcrBaseWhiteboardControlImpl) {
45
46
  static {
46
- [_initProto] = _applyDecs(this, [[_imports.trace, 2, "active"], [_imports.trace, 2, "inactive"], [_setBackgroundColorDecs, 2, "setBackgroundColor"], [_imports.trace, 2, "getBackgroundColor"], [_imports.trace, 2, "getActivity"], [_imports.trace, 2, "getOwnerId"], [_imports.bound, 2, "_onScenePropertiesUpdated"]], [], 0, void 0, _ref).e;
47
+ [_initProto] = _applyDecs(this, [[_imports.trace, 2, "open"], [_imports.trace, 2, "close"], [_imports.trace, 2, "active"], [_imports.trace, 2, "inactive"], [_setBackgroundColorDecs, 2, "setBackgroundColor"], [_imports.trace, 2, "getBackgroundColor"], [_imports.trace, 2, "getActivity"], [_imports.trace, 2, "getOwnerId"], [_imports.bound, 2, "_onScenePropertiesUpdated"]], [], 0, void 0, _ref).e;
47
48
  }
48
- [(_setBackgroundColorDecs = [_imports.trace, (0, _validateParams.default)(_schema.stringSchema)], "logger")] = (_initProto(this), (0, _logger.createLogger)({
49
+ [(_setBackgroundColorDecs = [(0, _imports.trace)(['backgroundColor']), (0, _validateParams.default)(_schema.stringSchema)], "logger")] = (_initProto(this), (0, _logger.createLogger)({
49
50
  prefix: 'FcrWhiteboardControlImpl'
50
51
  }));
51
52
  _backgroundColor = '#ffffff';
52
53
  _isActive = false;
53
54
  _ownerId = null;
55
+ _preloadLock = false;
54
56
  _notifyObservers = {
55
57
  onScenePropertiesUpdated: this._onScenePropertiesUpdated
56
58
  };
@@ -72,18 +74,48 @@ class FcrWhiteboardControlImpl extends (_ref = _base.FcrBaseWhiteboardControlImp
72
74
  }
73
75
  this.logger.info(`initialized, hasOperationPrivilege: ${hasOperationPrivilege}`);
74
76
  }
77
+ async open() {
78
+ const boardActiveInfo = this.getBoardActiveInfo();
79
+ if (!boardActiveInfo.isActive) {
80
+ await (0, _error.handleRequestError)(() => this._api.toggleWhiteboardPreloadState(this.config.roomId, _type2.FcrSharePermissionState.ON), _imports.ErrorModuleCode.FCR_ROOM_WHITEBOARD, 'lock failed when open whiteboard');
81
+
82
+ // 标记白板锁状态, 关闭白板时判断是否需要解锁
83
+ this._preloadLock = true;
84
+ try {
85
+ this._isActive = true;
86
+ return await super.internalOpen(true);
87
+ } catch (error) {
88
+ // 开启失败, 释放锁
89
+ this._preloadLock = false;
90
+ this._isActive = false;
91
+ await (0, _error.handleRequestError)(() => this._api.toggleWhiteboardPreloadState(this.config.roomId, _type2.FcrSharePermissionState.OFF), _imports.ErrorModuleCode.FCR_ROOM_WHITEBOARD, 'unlock failed when open whiteboard');
92
+ throw error;
93
+ }
94
+ } else {
95
+ return await super.internalOpen(false);
96
+ }
97
+ }
98
+ async close() {
99
+ const result = await super.close();
100
+ if (this._preloadLock) {
101
+ // 释放白板锁
102
+ await (0, _error.handleRequestError)(() => this._api.toggleWhiteboardPreloadState(this.config.roomId, _type2.FcrSharePermissionState.OFF), _imports.ErrorModuleCode.FCR_ROOM_WHITEBOARD, 'unlock failed when close whiteboard');
103
+ this._preloadLock = false;
104
+ }
105
+ return result;
106
+ }
75
107
  async active() {
76
- return (0, _error.handleRequestError)(() => this._api.toggleWhiteboardActivityState(this.config.roomId, _type2.FcrSharePermissionState.ON), _error.FcrErrorModuleCode.ROOM_WHITEBOARD, 'active failed');
108
+ return (0, _error.handleRequestError)(() => this._api.toggleWhiteboardActivityState(this.config.roomId, _type2.FcrSharePermissionState.ON), _imports.ErrorModuleCode.FCR_ROOM_WHITEBOARD, 'active failed');
77
109
  }
78
110
  async inactive() {
79
- return (0, _error.handleRequestError)(() => this._api.toggleWhiteboardActivityState(this.config.roomId, _type2.FcrSharePermissionState.OFF), _error.FcrErrorModuleCode.ROOM_WHITEBOARD, 'inactive failed');
111
+ return (0, _error.handleRequestError)(() => this._api.toggleWhiteboardActivityState(this.config.roomId, _type2.FcrSharePermissionState.OFF), _imports.ErrorModuleCode.FCR_ROOM_WHITEBOARD, 'inactive failed');
80
112
  }
81
113
  getBoardActiveInfo() {
82
114
  const {
83
115
  state,
84
116
  ownerUserUuid: ownerUserId
85
117
  } = this._scene.getScenePropertiesByKeyPath('widgets.netlessBoard');
86
- if (state === _type.FcrBoardPropertiesState.ACTIVE) {
118
+ if (state === _type3.FcrBoardPropertiesState.ACTIVE) {
87
119
  return {
88
120
  isActive: true,
89
121
  ownerUserId
@@ -104,6 +136,7 @@ class FcrWhiteboardControlImpl extends (_ref = _base.FcrBaseWhiteboardControlImp
104
136
  if (this.boardView) {
105
137
  this.boardView.setBackgroundColor(backgroundColor);
106
138
  }
139
+ return _type.FcrReturnCode.SUCCESS;
107
140
  }
108
141
  getBackgroundColor() {
109
142
  return this._backgroundColor;
@@ -114,26 +147,29 @@ class FcrWhiteboardControlImpl extends (_ref = _base.FcrBaseWhiteboardControlImp
114
147
  getOwnerId() {
115
148
  return this._ownerId;
116
149
  }
150
+ getApplicationId() {
151
+ return _constant.WHITEBOARD_APP_ID;
152
+ }
117
153
  _onScenePropertiesUpdated(sceneId, event) {
118
154
  const operatorUser = (0, _user.convertRteUserToFcrUser)(event.operatorUser, this._roomCache);
119
155
  const getByKeyPath = value => this._scene.getScenePropertiesByKeyPath(value);
120
156
  if (event.cause && event.cause.cmd === 10) {
121
- const state = getByKeyPath('widgets.netlessBoard.state') ?? _type.FcrBoardPropertiesState.INACTIVE;
157
+ const state = getByKeyPath('widgets.netlessBoard.state') ?? _type3.FcrBoardPropertiesState.INACTIVE;
122
158
  const backgroundColor = getByKeyPath('widgets.netlessBoard.extra.backgroundColor');
123
159
  const widgetCauseReason = (0, _imports.get)(event.cause.data, 'widgetCause.data.reason');
124
160
  const widgetCauseCmd = (0, _imports.get)(event.cause.data, 'widgetCause.cmd');
125
- if (state === _type.FcrBoardPropertiesState.ACTIVE) {
161
+ if (state === _type3.FcrBoardPropertiesState.ACTIVE) {
126
162
  const ownerUserId = getByKeyPath('widgets.netlessBoard.ownerUserUuid');
127
163
  this._ownerId = ownerUserId;
128
164
  this._isActive = true;
129
165
  this.observable.notifyObservers('onActive', ownerUserId, operatorUser);
130
166
  }
131
- if (state === _type.FcrBoardPropertiesState.INACTIVE) {
167
+ if (state === _type3.FcrBoardPropertiesState.INACTIVE) {
132
168
  this._ownerId = null;
133
169
  this._isActive = false;
134
170
  this.observable.notifyObservers('onInactive', widgetCauseReason, operatorUser);
135
171
  }
136
- if (widgetCauseCmd === _type.FcrBoardPropertiesState.BACKGROUND_COLOR_UPDATED) {
172
+ if (widgetCauseCmd === _type3.FcrBoardPropertiesState.BACKGROUND_COLOR_UPDATED) {
137
173
  this._backgroundColor = backgroundColor;
138
174
  this.observable.notifyObservers('onBackgroundColorUpdated', backgroundColor, operatorUser);
139
175
  }
@@ -147,11 +183,21 @@ class FcrWhiteboardControlImpl extends (_ref = _base.FcrBaseWhiteboardControlImp
147
183
  };
148
184
  }
149
185
  addLogObserver() {
150
- this.addObserver((0, _logger.generateLogObserver)(this.logger, ['onConnectionStateUpdated', 'onActive', 'onInactive', 'onBackgroundColorUpdated']));
186
+ this.addObserver((0, _logger.generateLogObserver)(this.logger, [['onConnectionStateUpdated', ['state']], ['onActive', ['ownerId', 'operatorUser']], ['onInactive', ['reason', 'operatorUser']], ['onBackgroundColorUpdated', ['color', 'operatorUser']]]));
151
187
  }
152
188
  }
153
189
  exports.FcrWhiteboardControlImpl = FcrWhiteboardControlImpl;
154
- class FcrStandaloneWhiteboardControlImpl extends _base.FcrBaseWhiteboardControlImpl {
190
+ class FcrStandaloneWhiteboardControlImpl extends (_ref2 = _base.FcrBaseWhiteboardControlImpl) {
191
+ static {
192
+ [_initProto2] = _applyDecs(this, [[_imports.trace, 2, "open"]], [], 0, void 0, _ref2).e;
193
+ }
194
+ constructor(...args) {
195
+ super(...args);
196
+ _initProto2(this);
197
+ }
198
+ async open() {
199
+ return await super.internalOpen(false);
200
+ }
155
201
  getApplicationId() {
156
202
  return _constant.WHITEBOARD_APP_ID;
157
203
  }
@@ -1,8 +1,8 @@
1
+ import { AgoraRteScene } from 'agora-rte-sdk';
2
+ import type { RTMClient } from 'agora-rtm';
1
3
  import { FcrCoreServiceApi } from '../../../service/api';
2
4
  import { FcrSharedCache } from '../../shared-cache';
3
5
  import { FcrBoardConfig, FcrStandaloneWhiteboardControl, FcrWhiteboardControl, FcrWhiteboardControlFactory } from './type';
4
- import type { RTMClient } from 'agora-rtm';
5
- import { AgoraRteScene } from 'agora-rte-sdk';
6
6
  export declare class FcrWhiteboardControlFactoryImpl implements FcrWhiteboardControlFactory {
7
7
  protected logger: import("agora-foundation/lib/logger").Logger;
8
8
  createForSubProcess(rtmClient: RTMClient, hasOperationPrivilege: boolean, boardConfig: FcrBoardConfig): FcrStandaloneWhiteboardControl;
@@ -21,13 +21,13 @@ Object.defineProperty(exports, "__esModule", {
21
21
  value: true
22
22
  });
23
23
  exports.FcrWhiteboardControlFactoryImpl = void 0;
24
- var _logger = require("../../../utilities/logger");
25
- var _error = require("../../../utilities/error");
26
24
  var _log = require("agora-foundation/lib/decorator/log");
27
- var _base = require("../base");
28
- var _control = require("./control");
25
+ var _errorCode = require("agora-foundation/lib/utilities/error/error-code");
26
+ var _error = require("../../../utilities/error");
27
+ var _logger = require("../../../utilities/logger");
29
28
  var _sharedStorage = require("../../../utilities/shared-storage");
30
- let _initProto;
29
+ var _control = require("./control");
30
+ let _initProto, _createForSubProcessDecs, _createForMainProcessDecs;
31
31
  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)]; } }; }
32
32
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
33
33
  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); }
@@ -35,16 +35,16 @@ function _setFunctionName(e, t, n) { "symbol" == typeof t && (t = (t = t.descrip
35
35
  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; }
36
36
  class FcrWhiteboardControlFactoryImpl {
37
37
  static {
38
- [_initProto] = _applyDecs(this, [[_log.trace, 2, "createForSubProcess"], [_log.trace, 2, "createForMainProcess"]], []).e;
38
+ [_initProto] = _applyDecs(this, [[_createForSubProcessDecs, 2, "createForSubProcess"], [_createForMainProcessDecs, 2, "createForMainProcess"]], []).e;
39
39
  }
40
- logger = (_initProto(this), (0, _logger.createLogger)({
40
+ [(_createForSubProcessDecs = (0, _log.trace)(['rtmClient', 'hasOperationPrivilege', 'boardConfig']), _createForMainProcessDecs = (0, _log.trace)(['rtmClient', 'hasOperationPrivilege', 'boardConfig', 'scene', 'api', 'sharedCache']), "logger")] = (_initProto(this), (0, _logger.createLogger)({
41
41
  prefix: 'FcrWhiteboardControlFactory'
42
42
  }));
43
43
  createForSubProcess(rtmClient, hasOperationPrivilege, boardConfig) {
44
- return new _base.FcrBaseWhiteboardControlImpl(rtmClient, boardConfig, hasOperationPrivilege, () => {
44
+ return new _control.FcrStandaloneWhiteboardControlImpl(rtmClient, boardConfig, hasOperationPrivilege, () => {
45
45
  const forgeInitConfig = (0, _sharedStorage.getWhiteboardOptions)();
46
46
  if (!forgeInitConfig) {
47
- throw (0, _error.generateFcrCoreClientError)(_error.FcrErrorModuleCode.ROOM_WHITEBOARD, _error.FcrErrorCode.UNDEFINED_ERROR, `whiteboard init config is not exist`, new Error(`whiteboard init config is not exist`));
47
+ throw (0, _error.generateFcrCoreClientError)(_errorCode.ErrorModuleCode.FCR_ROOM_WHITEBOARD, _errorCode.DetailErrorCode.UNDEFINED_ERROR, `whiteboard init config is not exist`, new Error(`whiteboard init config is not exist`));
48
48
  }
49
49
  return Promise.resolve(forgeInitConfig);
50
50
  });
@@ -57,7 +57,7 @@ class FcrWhiteboardControlFactoryImpl {
57
57
  return await (0, _error.handleRequestError)(() => api.getWhiteboardToken({
58
58
  roomId,
59
59
  userId
60
- }), _error.FcrErrorModuleCode.ROOM_WHITEBOARD, 'get whiteboard token failed');
60
+ }), _errorCode.ErrorModuleCode.FCR_ROOM_WHITEBOARD, 'get whiteboard token failed');
61
61
  };
62
62
  return async () => {
63
63
  const response = await getObjectInitConfig(roomId, userId);
@@ -13,7 +13,7 @@ export interface FcrWhiteboardControl extends FcrBaseWhiteboardControl<FcrWhiteb
13
13
  getActivity(): boolean;
14
14
  getOwnerId(): string | null;
15
15
  getBackgroundColor(): string;
16
- setBackgroundColor(color: string): Promise<void>;
16
+ setBackgroundColor(color: string): Promise<number>;
17
17
  }
18
18
  export interface FcrWhiteboardObserver extends FcrBaseWhiteboardObserver {
19
19
  /**