fcr-ui-scene 3.7.7 → 3.7.8-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 (212) hide show
  1. package/installer/icons/icon.png +0 -0
  2. package/installer/mac/entitlements.mac.plist +5 -1
  3. package/lib/creator/provider-initializer.browser.js +2 -2
  4. package/lib/creator/provider-initializer.electron.js +2 -2
  5. package/lib/electron/bootstrap-sdk.js +70 -33
  6. package/lib/electron/hang-detection/index.d.ts +3 -0
  7. package/lib/electron/hang-detection/index.js +15 -0
  8. package/lib/electron/hang-detection/manager.d.ts +28 -0
  9. package/lib/electron/hang-detection/manager.js +231 -0
  10. package/lib/electron/hang-detection/types.d.ts +14 -0
  11. package/lib/electron/until.d.ts +1 -4
  12. package/lib/electron/until.js +9 -4
  13. package/lib/modules/action-bar/components/screen-share/index.electron.js +1 -1
  14. package/lib/modules/components/control-bar/components/switch-theme/index.js +4 -2
  15. package/lib/modules/components/control-bar/index.js +1 -3
  16. package/lib/modules/participant/store.base.js +0 -1
  17. package/lib/modules/share-screen/store.electron.js +9 -0
  18. package/lib/modules/state-bar/store.base.electron.js +6 -2
  19. package/lib/providers/board-share/bar-control/base.d.ts +2 -0
  20. package/lib/providers/board-share/bar-control/base.js +13 -3
  21. package/lib/providers/board-share/bar-control/electron.d.ts +1 -0
  22. package/lib/providers/board-share/bar-control/electron.js +15 -4
  23. package/lib/providers/board-share/provider.base.d.ts +1 -0
  24. package/lib/providers/board-share/provider.base.js +3 -1
  25. package/lib/providers/board-share/provider.electron.d.ts +1 -0
  26. package/lib/providers/board-share/provider.electron.js +8 -2
  27. package/lib/providers/board-share/type.d.ts +2 -0
  28. package/lib/providers/dialog/provider.electron.js +10 -2
  29. package/lib/providers/screen-share/strategy/browser.js +50 -3
  30. package/lib/providers/screen-share/strategy/electron.js +77 -8
  31. package/lib/providers/screen-share/stream-state-sync.d.ts +3 -1
  32. package/lib/providers/screen-share/stream-state-sync.js +133 -40
  33. package/package.json +5 -5
  34. package/lib/creator.d.ts +0 -36
  35. package/lib/creator.js +0 -465
  36. package/lib/modules/action-bar/index.d.ts +0 -58
  37. package/lib/modules/action-bar/index.dev.d.ts +0 -0
  38. package/lib/modules/action-bar/index.dev.js +0 -94
  39. package/lib/modules/action-bar/index.js +0 -109
  40. package/lib/modules/action-bar/store.d.ts +0 -259
  41. package/lib/modules/action-bar/store.js +0 -1529
  42. package/lib/modules/action-bar/types.d.ts +0 -90
  43. package/lib/modules/action-bar/view.d.ts +0 -5
  44. package/lib/modules/action-bar/view.js +0 -112
  45. package/lib/modules/annotation/annotation-index.d.ts +0 -2
  46. package/lib/modules/annotation/annotation-index.js +0 -80
  47. package/lib/modules/annotation/annotation-toolbar-store.d.ts +0 -75
  48. package/lib/modules/annotation/annotation-toolbar-store.js +0 -459
  49. package/lib/modules/annotation/board-cursor.css +0 -77
  50. package/lib/modules/annotation/components/color-picker/components/color.d.ts +0 -5
  51. package/lib/modules/annotation/components/color-picker/components/color.js +0 -38
  52. package/lib/modules/annotation/components/color-picker/components/panel.d.ts +0 -1
  53. package/lib/modules/annotation/components/color-picker/components/panel.js +0 -109
  54. package/lib/modules/annotation/components/color-picker/components/picker.d.ts +0 -1
  55. package/lib/modules/annotation/components/color-picker/components/picker.js +0 -75
  56. package/lib/modules/annotation/components/color-picker/index.d.ts +0 -2
  57. package/lib/modules/annotation/components/color-picker/index.js +0 -47
  58. package/lib/modules/annotation/components/eraser-picker.d.ts +0 -4
  59. package/lib/modules/annotation/components/eraser-picker.js +0 -144
  60. package/lib/modules/annotation/components/expansion/index.d.ts +0 -1
  61. package/lib/modules/annotation/components/expansion/index.js +0 -100
  62. package/lib/modules/annotation/components/extra-tool-picker.d.ts +0 -1
  63. package/lib/modules/annotation/components/extra-tool-picker.js +0 -62
  64. package/lib/modules/annotation/components/history.d.ts +0 -2
  65. package/lib/modules/annotation/components/history.js +0 -78
  66. package/lib/modules/annotation/components/icons/fold-icon.d.ts +0 -2
  67. package/lib/modules/annotation/components/icons/fold-icon.js +0 -41
  68. package/lib/modules/annotation/components/icons/move-icon.d.ts +0 -1
  69. package/lib/modules/annotation/components/icons/move-icon.js +0 -66
  70. package/lib/modules/annotation/components/item/index.d.ts +0 -1
  71. package/lib/modules/annotation/components/item/index.js +0 -43
  72. package/lib/modules/annotation/components/move-handle.d.ts +0 -5
  73. package/lib/modules/annotation/components/move-handle.js +0 -134
  74. package/lib/modules/annotation/components/pen-picker.d.ts +0 -4
  75. package/lib/modules/annotation/components/pen-picker.js +0 -155
  76. package/lib/modules/annotation/components/screen-capture-picker.d.ts +0 -4
  77. package/lib/modules/annotation/components/screen-capture-picker.js +0 -85
  78. package/lib/modules/annotation/components/shape-picker.d.ts +0 -4
  79. package/lib/modules/annotation/components/shape-picker.js +0 -210
  80. package/lib/modules/annotation/hooks/index.d.ts +0 -14
  81. package/lib/modules/annotation/hooks/index.js +0 -292
  82. package/lib/modules/annotation/index.d.ts +0 -45
  83. package/lib/modules/annotation/index.js +0 -168
  84. package/lib/modules/annotation/store.d.ts +0 -98
  85. package/lib/modules/annotation/store.js +0 -620
  86. package/lib/modules/annotation/style.css +0 -36
  87. package/lib/modules/annotation/view.d.ts +0 -3
  88. package/lib/modules/annotation/view.js +0 -44
  89. package/lib/modules/components/device-control/store.d.ts +0 -42
  90. package/lib/modules/components/device-control/store.js +0 -241
  91. package/lib/modules/components/leave-meeting/store.d.ts +0 -39
  92. package/lib/modules/components/leave-meeting/store.js +0 -270
  93. package/lib/modules/control-bar/components/annotation-button/index.d.ts +0 -1
  94. package/lib/modules/control-bar/components/annotation-button/index.js +0 -72
  95. package/lib/modules/control-bar/types.d.ts +0 -20
  96. package/lib/modules/control-bar/types.js +0 -6
  97. package/lib/modules/dialog/dialogs/pre-setting/index.css +0 -26
  98. package/lib/modules/dialog/dialogs/pre-setting/index.d.ts +0 -6
  99. package/lib/modules/dialog/dialogs/pre-setting/index.js +0 -62
  100. package/lib/modules/dialog/dialogs/widget/electron.d.ts +0 -6
  101. package/lib/modules/dialog/dialogs/widget/electron.js +0 -38
  102. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +0 -14
  103. package/lib/modules/dialog/hooks/use-popover-watcher.js +0 -110
  104. package/lib/modules/dialog/hooks/useElectron.d.ts +0 -28
  105. package/lib/modules/dialog/hooks/useElectron.js +0 -277
  106. package/lib/modules/dialog/store.d.ts +0 -135
  107. package/lib/modules/dialog/store.js +0 -616
  108. package/lib/modules/event-confirm/components/window/index.d.ts +0 -7
  109. package/lib/modules/event-confirm/components/window/index.js +0 -221
  110. package/lib/modules/event-confirm/index.css +0 -24
  111. package/lib/modules/event-confirm/index.d.ts +0 -27
  112. package/lib/modules/event-confirm/index.js +0 -76
  113. package/lib/modules/event-confirm/store.d.ts +0 -50
  114. package/lib/modules/event-confirm/store.js +0 -394
  115. package/lib/modules/event-confirm/view.d.ts +0 -2
  116. package/lib/modules/event-confirm/view.js +0 -55
  117. package/lib/modules/event-toast/store.d.ts +0 -27
  118. package/lib/modules/event-toast/store.js +0 -205
  119. package/lib/modules/layout/store.d.ts +0 -176
  120. package/lib/modules/layout/store.js +0 -1452
  121. package/lib/modules/participant/store.d.ts +0 -222
  122. package/lib/modules/participant/store.js +0 -1929
  123. package/lib/modules/pc-audio-connect/index.d.ts +0 -22
  124. package/lib/modules/pc-audio-connect/index.js +0 -67
  125. package/lib/modules/pc-audio-connect/store.d.ts +0 -46
  126. package/lib/modules/pc-audio-connect/store.js +0 -304
  127. package/lib/modules/setting/common/advance-link.d.ts +0 -3
  128. package/lib/modules/setting/common/advance-link.js +0 -27
  129. package/lib/modules/setting/common/index.css +0 -26
  130. package/lib/modules/setting/common/useNamespace.d.ts +0 -15
  131. package/lib/modules/setting/common/useNamespace.js +0 -66
  132. package/lib/modules/setting/dialog-wrapper.d.ts +0 -2
  133. package/lib/modules/setting/dialog-wrapper.js +0 -110
  134. package/lib/modules/setting/store.d.ts +0 -261
  135. package/lib/modules/setting/store.js +0 -1321
  136. package/lib/modules/share-screen/store.d.ts +0 -148
  137. package/lib/modules/share-screen/store.js +0 -960
  138. package/lib/modules/share-screen/types.d.ts +0 -26
  139. package/lib/modules/share-screen/types.js +0 -6
  140. package/lib/modules/state-bar/store.d.ts +0 -124
  141. package/lib/modules/state-bar/store.js +0 -664
  142. package/lib/modules/whiteboard/components/progress/electron.d.ts +0 -1
  143. package/lib/modules/whiteboard/components/progress/electron.js +0 -33
  144. package/lib/modules/widget/store.d.ts +0 -14
  145. package/lib/modules/widget/store.js +0 -28
  146. package/lib/providers/annotation-provider.d.ts +0 -124
  147. package/lib/providers/annotation-provider.js +0 -369
  148. package/lib/providers/dialog-provider.d.ts +0 -137
  149. package/lib/providers/dialog-provider.js +0 -194
  150. package/lib/providers/message-provider.d.ts +0 -69
  151. package/lib/providers/message-provider.js +0 -140
  152. package/lib/providers/room-provider.d.ts +0 -194
  153. package/lib/providers/room-provider.js +0 -916
  154. package/lib/providers/screen-share-provider.d.ts +0 -245
  155. package/lib/providers/screen-share-provider.js +0 -850
  156. package/lib/providers/sharing-provider.d.ts +0 -42
  157. package/lib/providers/sharing-provider.js +0 -228
  158. package/lib/providers/user-setting-storage-provider.d.ts +0 -21
  159. package/lib/providers/user-setting-storage-provider.js +0 -65
  160. package/lib/providers/whiteboard-provider.d.ts +0 -24
  161. package/lib/providers/whiteboard-provider.js +0 -128
  162. package/lib/shared-data-source/annotation-data.d.ts +0 -17
  163. package/lib/shared-data-source/annotation-data.js +0 -110
  164. package/lib/shared-data-source/app-list-data.d.ts +0 -34
  165. package/lib/shared-data-source/app-list-data.js +0 -133
  166. package/lib/shared-data-source/chat-data.d.ts +0 -25
  167. package/lib/shared-data-source/chat-data.js +0 -139
  168. package/lib/shared-data-source/config.d.ts +0 -35
  169. package/lib/shared-data-source/config.js +0 -40
  170. package/lib/shared-data-source/confirm-data.d.ts +0 -44
  171. package/lib/shared-data-source/confirm-data.js +0 -201
  172. package/lib/shared-data-source/device-privilege-data.d.ts +0 -8
  173. package/lib/shared-data-source/device-privilege-data.js +0 -25
  174. package/lib/shared-data-source/interpreter.d.ts +0 -77
  175. package/lib/shared-data-source/interpreter.js +0 -247
  176. package/lib/shared-data-source/layout-data.d.ts +0 -31
  177. package/lib/shared-data-source/layout-data.js +0 -189
  178. package/lib/shared-data-source/meeting-time.d.ts +0 -90
  179. package/lib/shared-data-source/meeting-time.js +0 -416
  180. package/lib/shared-data-source/member-data.d.ts +0 -139
  181. package/lib/shared-data-source/member-data.js +0 -517
  182. package/lib/shared-data-source/pin-data.d.ts +0 -13
  183. package/lib/shared-data-source/pin-data.js +0 -111
  184. package/lib/shared-data-source/screen-share-data.d.ts +0 -357
  185. package/lib/shared-data-source/screen-share-data.js +0 -513
  186. package/lib/shared-data-source/security-data.d.ts +0 -39
  187. package/lib/shared-data-source/security-data.js +0 -156
  188. package/lib/shared-data-source/setting.d.ts +0 -67
  189. package/lib/shared-data-source/setting.js +0 -220
  190. package/lib/shared-data-source/speaker-spotlight.d.ts +0 -5
  191. package/lib/shared-data-source/speaker-spotlight.js +0 -15
  192. package/lib/shared-data-source/video-window.d.ts +0 -165
  193. package/lib/shared-data-source/video-window.js +0 -1266
  194. package/lib/shared-data-source/waiting-room.d.ts +0 -46
  195. package/lib/shared-data-source/waiting-room.js +0 -222
  196. package/lib/shared-data-source/whiteboard-data.d.ts +0 -70
  197. package/lib/shared-data-source/whiteboard-data.js +0 -348
  198. package/lib/utilities/board-context.d.ts +0 -4
  199. package/lib/utilities/board-context.js +0 -12
  200. package/lib/utilities/copyText.d.ts +0 -2
  201. package/lib/utilities/copyText.js +0 -48
  202. package/lib/utilities/renderer-event.d.ts +0 -10
  203. package/lib/utilities/renderer-event.js +0 -95
  204. package/lib/utilities/screen-capture-permission.d.ts +0 -2
  205. package/lib/utilities/screen-capture-permission.js +0 -24
  206. package/lib/utilities/screen.d.ts +0 -3
  207. package/lib/utilities/screen.js +0 -53
  208. package/lib/utilities/video-track-render-context.d.ts +0 -6
  209. package/lib/utilities/video-track-render-context.js +0 -9
  210. package/lib/waiting-room-control-manager.d.ts +0 -28
  211. package/lib/waiting-room-control-manager.js +0 -230
  212. /package/lib/{modules/action-bar → electron/hang-detection}/types.js +0 -0
@@ -1,7 +1,39 @@
1
1
  "use strict";
2
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.array.iterator.js");
8
+ require("core-js/modules/es.array.push.js");
9
+ require("core-js/modules/es.date.to-primitive.js");
10
+ require("core-js/modules/es.function.bind.js");
11
+ require("core-js/modules/es.function.name.js");
12
+ require("core-js/modules/es.map.js");
13
+ require("core-js/modules/es.number.constructor.js");
14
+ require("core-js/modules/es.object.create.js");
3
15
  require("core-js/modules/es.object.define-property.js");
16
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
17
+ require("core-js/modules/es.string.iterator.js");
18
+ require("core-js/modules/esnext.function.metadata.js");
19
+ require("core-js/modules/esnext.map.delete-all.js");
20
+ require("core-js/modules/esnext.map.emplace.js");
21
+ require("core-js/modules/esnext.map.every.js");
22
+ require("core-js/modules/esnext.map.filter.js");
23
+ require("core-js/modules/esnext.map.find.js");
24
+ require("core-js/modules/esnext.map.find-key.js");
25
+ require("core-js/modules/esnext.map.includes.js");
26
+ require("core-js/modules/esnext.map.key-of.js");
27
+ require("core-js/modules/esnext.map.map-keys.js");
28
+ require("core-js/modules/esnext.map.map-values.js");
29
+ require("core-js/modules/esnext.map.merge.js");
30
+ require("core-js/modules/esnext.map.reduce.js");
31
+ require("core-js/modules/esnext.map.some.js");
32
+ require("core-js/modules/esnext.map.update.js");
33
+ require("core-js/modules/esnext.symbol.metadata.js");
34
+ require("core-js/modules/web.dom-collections.iterator.js");
4
35
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
36
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
37
  Object.defineProperty(exports, "__esModule", {
6
38
  value: true
7
39
  });
@@ -9,9 +41,13 @@ exports.FcrUIScreenStreamSync = void 0;
9
41
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
42
  require("core-js/modules/es.error.cause.js");
11
43
  require("core-js/modules/es.error.to-string.js");
44
+ require("core-js/modules/es.array.find.js");
12
45
  require("core-js/modules/es.object.to-string.js");
13
46
  require("core-js/modules/es.promise.js");
47
+ require("core-js/modules/esnext.iterator.constructor.js");
48
+ require("core-js/modules/esnext.iterator.find.js");
14
49
  require("core-js/modules/web.timers.js");
50
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
51
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
52
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
53
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -19,17 +55,27 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
19
55
  var _type = require("fcr-core/lib/type");
20
56
  var _objectManager = require("../../object-manager");
21
57
  var _logger = require("../../utilities/logger");
58
+ var _decorator = require("agora-foundation/lib/decorator");
59
+ var _FcrUIScreenStreamSync;
60
+ var _initProto;
61
+ 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)]; } }; }
62
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
63
+ 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); }
64
+ 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; }
65
+ 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; }
22
66
  var FcrUIScreenStreamSync = exports.FcrUIScreenStreamSync = /*#__PURE__*/function () {
23
67
  function FcrUIScreenStreamSync(objectManager) {
24
68
  var _this = this;
25
69
  (0, _classCallCheck2["default"])(this, FcrUIScreenStreamSync);
26
- (0, _defineProperty2["default"])(this, "logger", (0, _logger.createLogger)({
70
+ (0, _defineProperty2["default"])(this, "logger", (_initProto(this), (0, _logger.createLogger)({
27
71
  prefix: 'FcrUIScreenStreamSync'
28
- }));
72
+ })));
29
73
  // 我的屏幕共享流id
30
74
  (0, _defineProperty2["default"])(this, "_myCurrentScreenShareStreamId", null);
31
75
  (0, _defineProperty2["default"])(this, "_released", false);
76
+ (0, _defineProperty2["default"])(this, "_isStopped", false);
32
77
  var sharedConfigDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_CONFIG_DATA_SOURCE);
78
+ this._videoWindowDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_VIDEO_WINDOW_DATA_SOURCE);
33
79
  var roomProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_ROOM_PROVIDER);
34
80
  var userId = sharedConfigDataSource.creatorConfig.userId;
35
81
  this._sharingControl = roomProvider.currentRoomControl.getSharingControl();
@@ -59,7 +105,7 @@ var FcrUIScreenStreamSync = exports.FcrUIScreenStreamSync = /*#__PURE__*/functio
59
105
  }, {
60
106
  key: "checkIfMyScreenShareStreamExists",
61
107
  value: function checkIfMyScreenShareStreamExists() {
62
- return this._myCurrentScreenShareStreamId;
108
+ return !!this._myCurrentScreenShareStreamId;
63
109
  }
64
110
  }, {
65
111
  key: "startScreenStream",
@@ -76,23 +122,24 @@ var FcrUIScreenStreamSync = exports.FcrUIScreenStreamSync = /*#__PURE__*/functio
76
122
  }
77
123
  throw new Error("there's already a screen share stream owned by me");
78
124
  case 1:
79
- _context.prev = 1;
80
- _context.next = 2;
125
+ this._isStopped = false;
126
+ _context.prev = 2;
127
+ _context.next = 3;
81
128
  return this._sharingControl.startScreenSharing(createConfig, encoderConfig.dimensions);
82
- case 2:
129
+ case 3:
83
130
  screenStreamId = _context.sent;
84
131
  this._streamControl.setVideoEncoderConfig(screenStreamId, encoderConfig, _type.FcrVideoStreamType.HIGH_STREAM);
85
- _context.next = 4;
132
+ _context.next = 5;
86
133
  break;
87
- case 3:
88
- _context.prev = 3;
89
- _t = _context["catch"](1);
90
- throw new Error("failed to start screen share stream, error: ".concat(_t));
91
134
  case 4:
135
+ _context.prev = 4;
136
+ _t = _context["catch"](2);
137
+ throw new Error("failed to start screen share stream, error: ".concat(_t));
138
+ case 5:
92
139
  case "end":
93
140
  return _context.stop();
94
141
  }
95
- }, _callee, this, [[1, 3]]);
142
+ }, _callee, this, [[2, 4]]);
96
143
  }));
97
144
  function startScreenStream(_x, _x2) {
98
145
  return _startScreenStream.apply(this, arguments);
@@ -103,7 +150,7 @@ var FcrUIScreenStreamSync = exports.FcrUIScreenStreamSync = /*#__PURE__*/functio
103
150
  key: "stopScreenStream",
104
151
  value: function () {
105
152
  var _stopScreenStream = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
106
- var _t2;
153
+ var screenVideoWindowData, screenStream, _t2;
107
154
  return _regenerator["default"].wrap(function (_context2) {
108
155
  while (1) switch (_context2.prev = _context2.next) {
109
156
  case 0:
@@ -114,55 +161,96 @@ var FcrUIScreenStreamSync = exports.FcrUIScreenStreamSync = /*#__PURE__*/functio
114
161
  this.logger.warn('no screen share stream owned by me, cannot stop screen share stream');
115
162
  return _context2.abrupt("return");
116
163
  case 1:
164
+ if (!this._isStopped) {
165
+ _context2.next = 2;
166
+ break;
167
+ }
168
+ this.logger.warn('the screen share stream is stopped, no need to stop again');
169
+ return _context2.abrupt("return");
170
+ case 2:
171
+ this._isStopped = true;
172
+ this._myCurrentScreenShareStreamId = null;
173
+ case 3:
117
174
  if (!true) {
118
- _context2.next = 9;
175
+ _context2.next = 12;
119
176
  break;
120
177
  }
121
178
  if (!this._released) {
122
- _context2.next = 2;
179
+ _context2.next = 4;
123
180
  break;
124
181
  }
125
182
  return _context2.abrupt("return");
126
- case 2:
127
- _context2.prev = 2;
128
- _context2.next = 3;
129
- return this._sharingControl.stop();
130
- case 3:
131
- return _context2.abrupt("continue", 9);
132
183
  case 4:
133
184
  _context2.prev = 4;
134
- _t2 = _context2["catch"](2);
185
+ _context2.next = 5;
186
+ return this._sharingControl.stop();
187
+ case 5:
188
+ return _context2.abrupt("continue", 12);
189
+ case 6:
190
+ _context2.prev = 6;
191
+ _t2 = _context2["catch"](4);
135
192
  if (!(_t2 instanceof _type.FcrError && _t2.code === 720404300)) {
136
- _context2.next = 5;
193
+ _context2.next = 8;
137
194
  break;
138
195
  }
139
- this.logger.error("the screen share stream does not exist,");
140
- return _context2.abrupt("continue", 9);
141
- case 5:
142
- this.logger.error("failed to stop screen share stream, error: ".concat(_t2, ", retry in 1000ms"), _t2);
143
- _context2.next = 6;
144
- return new Promise(function (resolve) {
145
- return setTimeout(resolve, 1000);
196
+ this.logger.error("the screen share stream does not exist");
197
+
198
+ /**
199
+ * TODO: 这里加删除 videoWindowData 的逻辑是因为,如果在屏幕共享时主持人结束了房间,在用户点击确认离开房间前,可以看到窗口上显示 “你正在屏幕共享” 的标识。
200
+ * TODO: 主持人在结束会议后,在点击确认离开房间前,窗口保留着最后的操作画面应该是正常的情况,那还是否有必要加这段逻辑,或者有更好的处理方式?
201
+ *
202
+ * 3 种场景会调用到 stopScreenStream。
203
+ * 1. 用户主动停止屏幕共享
204
+ * 2. 用户的屏幕共享被其他人抢占
205
+ * 3. 主持人结束房间
206
+ *
207
+ * 场景 2 的流程:
208
+ * 其他人抢占屏幕共享 > 当前共享用户会收到 FcrStreamControl 的 onStreamsRemoved 事件 > 调用 screenTrack.stop() > SourceMnager.stopScreenCapture
209
+ * > RtcEngine 发出 onLocalVideoStateChanged 事件 > ... > 这里的 stopScreenStream
210
+ *
211
+ * 场景 3 的流程:
212
+ * 主持人结束房间 > RtcEngine 发出 onLocalVideoStateChanged 事件 > ... > 这里的 stopScreenStream
213
+ *
214
+ * 在主持人结束房间的场景下,服务端已经不存在这条流,所以调用 stop 接口会报流不存在的错,所以这里把流对应的 videoWindowData 删除掉。
215
+ *
216
+ */
217
+ screenVideoWindowData = this._videoWindowDataSource.mainList.find(function (stream) {
218
+ return stream.videoSourceType === _type.FcrVideoSourceType.SCREEN;
146
219
  });
147
- case 6:
148
- _context2.prev = 6;
149
- if (this._myCurrentScreenShareStreamId) {
220
+ if (screenVideoWindowData) {
150
221
  _context2.next = 7;
151
222
  break;
152
223
  }
153
- return _context2.abrupt("continue", 9);
224
+ return _context2.abrupt("continue", 12);
154
225
  case 7:
155
- return _context2.finish(6);
226
+ screenStream = screenVideoWindowData.getVideoStream();
227
+ if (screenStream) {
228
+ this._videoWindowDataSource["delete"](screenStream);
229
+ }
230
+ return _context2.abrupt("continue", 12);
156
231
  case 8:
157
- _context2.next = 1;
158
- break;
232
+ this.logger.error("failed to stop screen share stream, error: ".concat(_t2, ", retry in 1000ms"), _t2);
233
+ _context2.next = 9;
234
+ return new Promise(function (resolve) {
235
+ return setTimeout(resolve, 1000);
236
+ });
159
237
  case 9:
160
- this._myCurrentScreenShareStreamId = null;
238
+ _context2.prev = 9;
239
+ if (this._myCurrentScreenShareStreamId) {
240
+ _context2.next = 10;
241
+ break;
242
+ }
243
+ return _context2.abrupt("continue", 12);
161
244
  case 10:
245
+ return _context2.finish(9);
246
+ case 11:
247
+ _context2.next = 3;
248
+ break;
249
+ case 12:
162
250
  case "end":
163
251
  return _context2.stop();
164
252
  }
165
- }, _callee2, this, [[2, 4, 6, 8]]);
253
+ }, _callee2, this, [[4, 6, 9, 11]]);
166
254
  }));
167
255
  function stopScreenStream() {
168
256
  return _stopScreenStream.apply(this, arguments);
@@ -221,4 +309,9 @@ var FcrUIScreenStreamSync = exports.FcrUIScreenStreamSync = /*#__PURE__*/functio
221
309
  return this._myCurrentScreenShareStreamId !== null;
222
310
  }
223
311
  }]);
224
- }();
312
+ }();
313
+ _FcrUIScreenStreamSync = FcrUIScreenStreamSync;
314
+ var _applyDecs$e = _applyDecs(_FcrUIScreenStreamSync, [[_decorator.trace, 2, "checkIfMyScreenShareStreamExists"], [_decorator.trace, 2, "startScreenStream"], [_decorator.trace, 2, "stopScreenStream"], [_decorator.trace, 2, "updateStream"], [_decorator.trace, 2, "isLocalScreenStreamCreated"]], []).e;
315
+ var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 1);
316
+ _initProto = _applyDecs$e2[0];
317
+ _applyDecs$e;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fcr-ui-scene",
3
- "version": "3.7.7",
3
+ "version": "3.7.8-rc.1",
4
4
  "main": "lib/index.js",
5
5
  "repository": "ssh://git@git.agoralab.co/aduc/fcr-ui-scene-desktop.git",
6
6
  "author": "agora.io",
@@ -22,13 +22,13 @@
22
22
  "@react-spring/web": "^9.7.3",
23
23
  "@use-gesture/react": "^10.3.1",
24
24
  "agora-electron-sdk": "4.3.2-build.156-rc.1",
25
- "agora-foundation": "~3.7.7",
26
- "agora-ui-foundation": "~3.7.7",
25
+ "agora-foundation": "~3.7.8-rc.1",
26
+ "agora-ui-foundation": "~3.7.8-rc.1",
27
27
  "classnames": "^2.5.1",
28
28
  "core-js": "^3.33.3",
29
29
  "dayjs": "^1.10.4",
30
30
  "electron-screenshots": "^0.5.26",
31
- "fcr-core": "~3.7.7",
31
+ "fcr-core": "~3.7.8-rc.1",
32
32
  "js-md5": "^0.8.3",
33
33
  "jszip": "^3.10.1",
34
34
  "lodash": "^4.17.21",
@@ -59,7 +59,7 @@
59
59
  "@types/react-dom": "^17.0.11",
60
60
  "@types/react-virtualized": "^9.21.30",
61
61
  "@types/tinycolor2": "^1.4.6",
62
- "agora-toolchain": "~3.7.7",
62
+ "agora-toolchain": "~3.7.8-rc.1",
63
63
  "core-js": "^3.33.3",
64
64
  "electron": "22.3.27",
65
65
  "husky": "^9.0.11",
package/lib/creator.d.ts DELETED
@@ -1,36 +0,0 @@
1
- import { FcrUISceneCancelCallback, FcrUISceneConfig, FcrUISceneCreatorConfig, FcrUISceneFailureCallback, FcrUISceneSuccessCallback, FcrUISettingConfig, FcrUIWebWidgetConfig } from './type';
2
- import { FcrUIDefaultScene } from './ui-scene';
3
- import SettingStore from './modules/setting/store';
4
- export interface FcrObservableSettingStore {
5
- value: SettingStore | null;
6
- }
7
- export declare class FcrUISceneCreator {
8
- private _config;
9
- accessor observableSettingStore: FcrObservableSettingStore;
10
- protected logger: import("agora-foundation/lib/logger").Logger;
11
- private _userSettingStorageProvider;
12
- private _registeredWidgetConfigs;
13
- private _released;
14
- private _scene;
15
- private _microphoneKeepRecording;
16
- private _sceneObserver;
17
- constructor(_config: FcrUISceneCreatorConfig);
18
- private _initProviders;
19
- launch(config: FcrUISceneConfig, onCancel: FcrUISceneCancelCallback, onSuccess: FcrUISceneSuccessCallback, onFailure: FcrUISceneFailureCallback, dom: HTMLElement): FcrUIDefaultScene;
20
- getSettingConfig(): FcrUISettingConfig;
21
- registerWidget(config: FcrUIWebWidgetConfig): void;
22
- unregisterWidget(widgetId: string): void;
23
- renewUserToken(token: string): void;
24
- setParameters(parameters: Record<string, unknown>): void;
25
- getVersion(): string;
26
- getDependencyVersions(): Record<string, string>;
27
- openSetting(): void;
28
- closeSetting(): void;
29
- private _releaseProviders;
30
- release(): void;
31
- private _resetScene;
32
- private _precheckState;
33
- private _filterKeepRecordingValueFromParameters;
34
- private _setKeepRecordingValueFromParameters;
35
- private _createSettingStore;
36
- }