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,850 +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.array.iterator.js");
8
- require("core-js/modules/es.date.to-primitive.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/es.string.iterator.js");
16
- require("core-js/modules/esnext.function.metadata.js");
17
- require("core-js/modules/esnext.map.delete-all.js");
18
- require("core-js/modules/esnext.map.emplace.js");
19
- require("core-js/modules/esnext.map.every.js");
20
- require("core-js/modules/esnext.map.filter.js");
21
- require("core-js/modules/esnext.map.find.js");
22
- require("core-js/modules/esnext.map.find-key.js");
23
- require("core-js/modules/esnext.map.includes.js");
24
- require("core-js/modules/esnext.map.key-of.js");
25
- require("core-js/modules/esnext.map.map-keys.js");
26
- require("core-js/modules/esnext.map.map-values.js");
27
- require("core-js/modules/esnext.map.merge.js");
28
- require("core-js/modules/esnext.map.reduce.js");
29
- require("core-js/modules/esnext.map.some.js");
30
- require("core-js/modules/esnext.map.update.js");
31
- require("core-js/modules/esnext.symbol.metadata.js");
32
- require("core-js/modules/web.dom-collections.iterator.js");
33
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
34
- var _typeof = require("@babel/runtime/helpers/typeof");
35
- Object.defineProperty(exports, "__esModule", {
36
- value: true
37
- });
38
- exports.FcrUIScreenShareProviderImpl = void 0;
39
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
40
- require("core-js/modules/es.error.cause.js");
41
- require("core-js/modules/es.error.to-string.js");
42
- require("core-js/modules/es.array.concat.js");
43
- require("core-js/modules/es.array.find.js");
44
- require("core-js/modules/es.array.for-each.js");
45
- require("core-js/modules/es.array.includes.js");
46
- require("core-js/modules/es.array.push.js");
47
- require("core-js/modules/es.array.some.js");
48
- require("core-js/modules/es.date.to-json.js");
49
- require("core-js/modules/es.function.bind.js");
50
- require("core-js/modules/es.json.stringify.js");
51
- require("core-js/modules/es.object.to-string.js");
52
- require("core-js/modules/es.promise.js");
53
- require("core-js/modules/es.string.includes.js");
54
- require("core-js/modules/esnext.iterator.constructor.js");
55
- require("core-js/modules/esnext.iterator.find.js");
56
- require("core-js/modules/esnext.iterator.for-each.js");
57
- require("core-js/modules/esnext.iterator.some.js");
58
- require("core-js/modules/web.dom-collections.for-each.js");
59
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
60
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
61
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
62
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
63
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
64
- var _observable = require("agora-foundation/lib/utilities/observable");
65
- var _fcrCore = require("fcr-core");
66
- var _base = require("../base");
67
- var _mobx = require("mobx");
68
- var _env = require("agora-foundation/lib/utilities/env");
69
- var _logger = require("../utilities/logger");
70
- var _imports = require("fcr-core/lib/imports");
71
- var _decorator = require("agora-foundation/lib/decorator");
72
- var _types = require("fcr-core/lib/room-control/whiteboard-control/types");
73
- var _rendererEvent = require("../utilities/renderer-event");
74
- var _tools = require("../utilities/tools");
75
- var _type = require("fcr-core/lib/type");
76
- var _i18n = require("agora-ui-foundation/lib/i18n");
77
- var _constant = require("../utilities/constant");
78
- var _lodash = require("lodash");
79
- var _config = require("../modules/setting/config");
80
- var _FcrUIScreenShareProviderImpl;
81
- var _initProto, _zoomOutDecs, _zoomInDecs, _fullContainerDecs, _setOriginScalcDecs, _handleScreenCaptureStateUpdatedDecs, _replaceScreenShareDecs, _handleRemoteVideoStatsUpdatedDecs, _handleStreamUpdateDecs, _syncScreenShareStreamInfosDecs, _releaseDecs, _startShareScreenDecs, _updateShareAudioPrivilegeDecs, _handleShareStopWithAudioDecs, _handleShareStartWithAudioDecs, _ref;
82
- 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)]; } }; }
83
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
84
- 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); }
85
- 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; }
86
- 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; }
87
- _ref = (_zoomOutDecs = [_mobx.action, _mobx.action.bound], _zoomInDecs = [_mobx.action, _mobx.action.bound], _fullContainerDecs = [_mobx.action, _mobx.action.bound], _setOriginScalcDecs = [_mobx.action, _mobx.action.bound], _handleScreenCaptureStateUpdatedDecs = [_mobx.action, _mobx.action.bound], _replaceScreenShareDecs = [_mobx.action, _mobx.action.bound], _handleRemoteVideoStatsUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleStreamUpdateDecs = [_mobx.action, _mobx.action.bound], _syncScreenShareStreamInfosDecs = [_mobx.action, _mobx.action.bound], _releaseDecs = [_mobx.action, _mobx.action.bound], _startShareScreenDecs = [_mobx.action, _mobx.action.bound], _updateShareAudioPrivilegeDecs = [_mobx.action, _mobx.action.bound], _handleShareStopWithAudioDecs = [_mobx.action, _mobx.action.bound], _handleShareStartWithAudioDecs = [_mobx.action, _mobx.action.bound], "logger");
88
- var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__PURE__*/function () {
89
- function FcrUIScreenShareProviderImpl(_deviceProvider, _eventProvider, _roomProvider, _sharingProvider, _sharedScreenShareSharedDataSource, _sharedMemberDataSource, _privilegeProvider) {
90
- var _this = this;
91
- (0, _classCallCheck2["default"])(this, FcrUIScreenShareProviderImpl);
92
- (0, _defineProperty2["default"])(this, _ref, (_initProto(this), (0, _logger.createLogger)({
93
- prefix: 'FcrUIScreenShareProviderImpl'
94
- })));
95
- (0, _defineProperty2["default"])(this, "shareLock", false);
96
- (0, _defineProperty2["default"])(this, "_previewDom", null);
97
- (0, _defineProperty2["default"])(this, "_prevFullScalc", {
98
- width: document.body.offsetWidth,
99
- height: document.body.offsetHeight,
100
- scalc: 1
101
- });
102
- (0, _defineProperty2["default"])(this, "_observable", new _observable.AgoraObservable());
103
- (0, _defineProperty2["default"])(this, "_streamObserver", {
104
- onStreamsAdded: function onStreamsAdded(_, events) {
105
- return _this._handleStreamUpdate('add', events);
106
- },
107
- onStreamsRemoved: function onStreamsRemoved(_, events) {
108
- return _this._handleStreamUpdate('remove', events);
109
- },
110
- onStreamsUpdated: function onStreamsUpdated(_, events) {
111
- return _this._handleStreamUpdate('update', events);
112
- },
113
- onRemoteVideoStatsUpdated: this._handleRemoteVideoStatsUpdated.bind(this)
114
- });
115
- (0, _defineProperty2["default"])(this, "_screenCaptureObserver", {
116
- onScreenCaptureStateUpdated: (0, _env.isElectron)() ? this._handleScreenCaptureStateUpdated : this._handleWebScreenCaptureStateUpdated
117
- });
118
- (0, _defineProperty2["default"])(this, "_maxScalcValue", 4);
119
- (0, _defineProperty2["default"])(this, "_minScalcValue", 1);
120
- (0, _defineProperty2["default"])(this, "_diffScalcValue", 0.5);
121
- (0, _defineProperty2["default"])(this, "_hasStop", false);
122
- (0, _defineProperty2["default"])(this, "_isReplaceScreen", false);
123
- this._deviceProvider = _deviceProvider;
124
- this._eventProvider = _eventProvider;
125
- this._roomProvider = _roomProvider;
126
- this._sharingProvider = _sharingProvider;
127
- this._sharedScreenShareSharedDataSource = _sharedScreenShareSharedDataSource;
128
- this._sharedMemberDataSource = _sharedMemberDataSource;
129
- this._privilegeProvider = _privilegeProvider;
130
- this._sharingControl = this._currentRoomControl.getSharingControl();
131
- this._streamControl = this._currentRoomControl.getStreamControl();
132
- this._streamControl.addObserver(this._streamObserver);
133
- this._syncScreenShareStreamInfos();
134
- this._addEventListeners();
135
- this._syncShareStreamState();
136
- }
137
- return (0, _createClass2["default"])(FcrUIScreenShareProviderImpl, [{
138
- key: "shareWithAudio",
139
- get: function get() {
140
- return this._sharedScreenShareSharedDataSource.shareWithAudio;
141
- }
142
- }, {
143
- key: "audioSourceId",
144
- get: function get() {
145
- return this._deviceProvider.speakerId;
146
- }
147
- }, {
148
- key: "screenShareScalcValue",
149
- get: function get() {
150
- return this._sharedScreenShareSharedDataSource.screenShareScalcValue;
151
- }
152
- }, {
153
- key: "screenShareVideoRatio",
154
- get: function get() {
155
- return this._sharedScreenShareSharedDataSource.screenShareVideoRatio;
156
- }
157
- }, {
158
- key: "screenShareSpeakerViewSize",
159
- get: function get() {
160
- return this._sharedScreenShareSharedDataSource.screenShareSpeakerViewSize;
161
- }
162
- }, {
163
- key: "screenShareScenarioType",
164
- get: function get() {
165
- return this._sharedScreenShareSharedDataSource.screenShareScenarioType;
166
- }
167
- }, {
168
- key: "_currentRoomControl",
169
- get: function get() {
170
- var currentRoomControl = this._roomProvider.currentRoomControl;
171
- if (!currentRoomControl) {
172
- throw new Error('currentRoomControl is not initialized');
173
- }
174
- return currentRoomControl;
175
- }
176
- }, {
177
- key: "setSharingInReplace",
178
- value: function setSharingInReplace(isInReplace) {
179
- this._sharedScreenShareSharedDataSource.setSharingInReplace(isInReplace);
180
- }
181
- }, {
182
- key: "zoomOut",
183
- value: function zoomOut() {
184
- if (this.screenShareScalcValue < this._maxScalcValue) {
185
- this._sharedScreenShareSharedDataSource.setScreenShareScalcValue(this.screenShareScalcValue + this._diffScalcValue);
186
- }
187
- }
188
- }, {
189
- key: "zoomIn",
190
- value: function zoomIn() {
191
- if (this.screenShareScalcValue > this._minScalcValue) {
192
- this._sharedScreenShareSharedDataSource.setScreenShareScalcValue(this.screenShareScalcValue - this._diffScalcValue);
193
- }
194
- }
195
- }, {
196
- key: "fullContainer",
197
- value: function fullContainer() {
198
- // = 外层容器的宽/(外层容器的高 * 屏幕共享的宽高比)
199
- var _this$screenShareSpea = this.screenShareSpeakerViewSize,
200
- width = _this$screenShareSpea.width,
201
- height = _this$screenShareSpea.height;
202
- var scalc = width / (height * this.screenShareVideoRatio);
203
- this._prevFullScalc = {
204
- width: width,
205
- height: height,
206
- scalc: scalc
207
- };
208
- this._sharedScreenShareSharedDataSource.setScreenShareScalcValue(scalc);
209
- }
210
- }, {
211
- key: "isAspectRatioPreserved",
212
- get: function get() {
213
- var _this$screenShareSpea2 = this.screenShareSpeakerViewSize,
214
- width = _this$screenShareSpea2.width,
215
- height = _this$screenShareSpea2.height;
216
- var _this$_prevFullScalc = this._prevFullScalc,
217
- prevWidth = _this$_prevFullScalc.width,
218
- prevHeight = _this$_prevFullScalc.height,
219
- prevScalc = _this$_prevFullScalc.scalc;
220
- var isAspectRatio = width === prevWidth && height === prevHeight && this.screenShareScalcValue == prevScalc;
221
- return isAspectRatio;
222
- }
223
- }, {
224
- key: "setOriginScalc",
225
- value: function setOriginScalc() {
226
- this._sharedScreenShareSharedDataSource.setScreenShareScalcValue(this._minScalcValue);
227
- }
228
- }, {
229
- key: "currentScreenSharingOwner",
230
- get: function get() {
231
- var allStreams = this._streamControl.getStreamList();
232
- var screenShareStream = allStreams.find(function (stream) {
233
- return stream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN && (stream.streamType === _type.FcrStreamType.BOTH || stream.streamType === _type.FcrStreamType.VIDEO);
234
- });
235
- if (screenShareStream) {
236
- return screenShareStream.owner;
237
- } else {
238
- return null;
239
- }
240
- }
241
- }, {
242
- key: "currentScreenSharingOwnerIsMySelf",
243
- get: function get() {
244
- var _this$currentScreenSh;
245
- return ((_this$currentScreenSh = this.currentScreenSharingOwner) === null || _this$currentScreenSh === void 0 ? void 0 : _this$currentScreenSh.userId) === this._sharedMemberDataSource.localUserId;
246
- }
247
- }, {
248
- key: "stop",
249
- value: function stop() {
250
- if (!this._hasStop) {
251
- this._hasStop = true;
252
- this._observable.notifyObservers('onScreenCaptureStopped');
253
- }
254
- }
255
- }, {
256
- key: "bootstrap",
257
- value: function bootstrap() {
258
- this._hasStop = false;
259
- this._observable.notifyObservers('onScreenCaptureStarted');
260
- }
261
- }, {
262
- key: "_handleWebScreenCaptureStateUpdated",
263
- value: function () {
264
- var _handleWebScreenCaptureStateUpdated2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(sourceId, state) {
265
- var streamId, _this$screenTrack;
266
- return _regenerator["default"].wrap(function (_context) {
267
- while (1) switch (_context.prev = _context.next) {
268
- case 0:
269
- this._sharedScreenShareSharedDataSource.setLocalUserScreenSharingState(state);
270
- if (!(state === _fcrCore.FcrMediaSourceState.OPEN)) {
271
- _context.next = 3;
272
- break;
273
- }
274
- if (this._privilegeProvider.hasStartScreenSharePermission()) {
275
- _context.next = 1;
276
- break;
277
- }
278
- this._eventProvider.sendEvent(_constant.FcrUIAction.SHOW_TOAST, {
279
- type: 'error',
280
- message: (0, _i18n.transI18n)('fmt_screenshare_cohost_can_not_share_remind')
281
- });
282
- this.stop();
283
- return _context.abrupt("return");
284
- case 1:
285
- _context.next = 2;
286
- return this.createScreenShareWithSelectionId(this.currentShareId, this.currentSelectionBounds);
287
- case 2:
288
- streamId = _context.sent;
289
- if (streamId) {
290
- this._sharedScreenShareSharedDataSource.setCurrentShareStreamId(streamId);
291
- }
292
- case 3:
293
- if (state === _fcrCore.FcrMediaSourceState.CLOSE) {
294
- (_this$screenTrack = this.screenTrack) === null || _this$screenTrack === void 0 || _this$screenTrack.removeObserver(this._screenCaptureObserver);
295
- this._isReplaceScreen ? this._stopScreenTrack() : this.stop();
296
- this.logger.info("[Annotation][web]: _handleScreenCaptureStateUpdated: CLOSE, set replaceScreen to: ".concat(this._isReplaceScreen));
297
- }
298
- if (state === _fcrCore.FcrMediaSourceState.ERROR) {
299
- this.stop();
300
- this.setShareLock(false);
301
- this._isReplaceScreen = false;
302
- }
303
- case 4:
304
- case "end":
305
- return _context.stop();
306
- }
307
- }, _callee, this);
308
- }));
309
- function _handleWebScreenCaptureStateUpdated(_x, _x2) {
310
- return _handleWebScreenCaptureStateUpdated2.apply(this, arguments);
311
- }
312
- return _handleWebScreenCaptureStateUpdated;
313
- }()
314
- }, {
315
- key: "_handleScreenCaptureStateUpdated",
316
- value: function _handleScreenCaptureStateUpdated(sourceId, state) {
317
- this.logger.info("[handleScreenCaptureStateUpdated]: ".concat(sourceId, " ==== ").concat(state));
318
- if (state === _fcrCore.FcrMediaSourceState.CLOSE) {
319
- var _this$screenTrack2;
320
- this.stopRenderSharePreview(this.screenTrack);
321
- if (!this._isReplaceScreen) {
322
- this.stop();
323
- }
324
- (_this$screenTrack2 = this.screenTrack) === null || _this$screenTrack2 === void 0 || _this$screenTrack2.removeObserver(this._screenCaptureObserver);
325
- this.logger.info("[Annotation][electron]: _handleScreenCaptureStateUpdated: CLOSE, set replaceScreen to: ".concat(this._isReplaceScreen));
326
- }
327
- if (state === _fcrCore.FcrMediaSourceState.ERROR) {
328
- this.stop();
329
- this._sharedScreenShareSharedDataSource.setLocalUserScreenSharingState(_fcrCore.FcrMediaSourceState.CLOSE);
330
- this._isReplaceScreen = false;
331
- return;
332
- }
333
- this._sharedScreenShareSharedDataSource.setLocalUserScreenSharingState(state);
334
- }
335
- }, {
336
- key: "replaceScreenShare",
337
- value: function replaceScreenShare(id, type, withAudio, bounds) {
338
- var _this2 = this;
339
- this.logger.info('screen-share-provider: replaceScreenShare start');
340
- var shareWithAudio = (0, _lodash.isBoolean)(withAudio) ? withAudio : this._sharedScreenShareSharedDataSource.shareWithAudio;
341
- this._sharedScreenShareSharedDataSource.setShareWithAudio(shareWithAudio);
342
- this._isReplaceScreen = true;
343
- this.setSharingInReplace(true);
344
- if (this.screenTrack) {
345
- this.screenTrack.removeObserver(this._screenCaptureObserver);
346
- var _observer = {
347
- onScreenCaptureStateUpdated: function () {
348
- var _onScreenCaptureStateUpdated = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(sourceId, state) {
349
- var _this2$screenTrack, loopbackAudioSourceId, bindConfig;
350
- return _regenerator["default"].wrap(function (_context2) {
351
- while (1) switch (_context2.prev = _context2.next) {
352
- case 0:
353
- if (!(state === _fcrCore.FcrMediaSourceState.CLOSE)) {
354
- _context2.next = 2;
355
- break;
356
- }
357
- _this2._observable.notifyObservers('onScreenShareReplaceBegin', id, type, bounds);
358
- (_this2$screenTrack = _this2.screenTrack) === null || _this2$screenTrack === void 0 || _this2$screenTrack.removeObserver(_observer);
359
- _context2.next = 1;
360
- return _this2.startShareScreen(id, type, withAudio, true);
361
- case 1:
362
- _this2._sharedScreenShareSharedDataSource.setCurrentShareIdInfos(id, type, bounds);
363
- if (_this2.currentShareStreamId) {
364
- loopbackAudioSourceId = _this2._sharedScreenShareSharedDataSource.getLoopbackDeviceId();
365
- bindConfig = {
366
- streamId: _this2.currentShareStreamId,
367
- videoSourceId: id
368
- };
369
- if (loopbackAudioSourceId) {
370
- bindConfig.audioSourceId = loopbackAudioSourceId;
371
- } else {
372
- _this2.logger.warn('cannot get loopbackAudioSourceId before calling bindLocalStreams');
373
- }
374
- _this2._streamControl.bindLocalStreams([bindConfig]);
375
- _this2.toggleScreenshareWithAudio(shareWithAudio);
376
- } else {
377
- _this2.logger.error('currentShareStreamId is not set');
378
- }
379
- case 2:
380
- case "end":
381
- return _context2.stop();
382
- }
383
- }, _callee2);
384
- }));
385
- function onScreenCaptureStateUpdated(_x3, _x4) {
386
- return _onScreenCaptureStateUpdated.apply(this, arguments);
387
- }
388
- return onScreenCaptureStateUpdated;
389
- }()
390
- };
391
- this.screenTrack.addObserver(_observer);
392
- this._stopScreenTrack();
393
- this.stopRenderSharePreview(this.screenTrack);
394
- }
395
- }
396
- }, {
397
- key: "_handleRemoteVideoStatsUpdated",
398
- value: function _handleRemoteVideoStatsUpdated(roomId, streamId, videoStats) {
399
- var stream = this._streamControl.getStreamByStreamId(streamId);
400
- if ((stream === null || stream === void 0 ? void 0 : stream.videoSourceType) === _fcrCore.FcrVideoSourceType.SCREEN) {
401
- var _videoStats$dimension = videoStats.dimensions,
402
- width = _videoStats$dimension.width,
403
- height = _videoStats$dimension.height;
404
- if (width !== 0 && height !== 0) {
405
- var shareScreenVideoRatio = width / height;
406
- var shareScreenVideoSize = videoStats.dimensions;
407
- this._sharedScreenShareSharedDataSource.setScreenShareVideoRatio(shareScreenVideoRatio);
408
- this._sharedScreenShareSharedDataSource.setScreenShareVideoSize(shareScreenVideoSize);
409
- }
410
- }
411
- }
412
- }, {
413
- key: "localUserId",
414
- get: function get() {
415
- return this._sharedMemberDataSource.localUser.userId;
416
- }
417
- }, {
418
- key: "shareAudioTrack",
419
- get: function get() {
420
- return this._sharedScreenShareSharedDataSource.shareWithAudioTrack;
421
- }
422
- }, {
423
- key: "currentShareId",
424
- get: function get() {
425
- return this._sharedScreenShareSharedDataSource.currentShareId;
426
- }
427
- }, {
428
- key: "screenTrack",
429
- get: function get() {
430
- return this._sharedScreenShareSharedDataSource.screenTrack;
431
- }
432
- }, {
433
- key: "currentShareStreamId",
434
- get: function get() {
435
- return this._sharedScreenShareSharedDataSource.currentShareStreamId;
436
- }
437
- }, {
438
- key: "currentSelectionBounds",
439
- get: function get() {
440
- return this._sharedScreenShareSharedDataSource.currentSelectionBounds;
441
- }
442
- }, {
443
- key: "setShareLock",
444
- value: function setShareLock(lock) {
445
- this.shareLock = lock;
446
- }
447
- }, {
448
- key: "createScreenShareWithSelectionId",
449
- value: function () {
450
- var _createScreenShareWithSelectionId = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(videoSourceId, bounds) {
451
- var loopbackAudioSourceId, targetEncoderConfig, shareWithAudio, streamCreateConfig, streamId;
452
- return _regenerator["default"].wrap(function (_context3) {
453
- while (1) switch (_context3.prev = _context3.next) {
454
- case 0:
455
- this.logger.info("screen-share-provider: createScreenShareWithSelectionId: ".concat(videoSourceId, ", annotation-use-bounds-width: ").concat(bounds.width, ", annotation-use-bounds-height: ").concat(bounds.height));
456
- loopbackAudioSourceId = this._sharedScreenShareSharedDataSource.getLoopbackDeviceId();
457
- targetEncoderConfig = this.screenShareScenarioType === _imports.FcrScreenScenarioType.CLEARITY ? _config.clearityEncoderConfig : _config.smoothEncoderConfig;
458
- this._streamControl.setScreenScenario(this.screenShareScenarioType);
459
- shareWithAudio = this._sharedScreenShareSharedDataSource.shareWithAudio;
460
- streamCreateConfig = {
461
- streamType: shareWithAudio ? _type.FcrStreamType.BOTH : _type.FcrStreamType.VIDEO,
462
- videoSourceId: videoSourceId
463
- };
464
- if (loopbackAudioSourceId) {
465
- streamCreateConfig.audioSourceId = loopbackAudioSourceId;
466
- } else {
467
- this.logger.warn('cannot get loopbackAudioSourceId before calling startScreenSharing');
468
- }
469
- _context3.next = 1;
470
- return this._sharingControl.startScreenSharing(streamCreateConfig, bounds);
471
- case 1:
472
- streamId = _context3.sent;
473
- if (shareWithAudio) {
474
- this._updateShareAudioPrivilege(streamId, true);
475
- this._handleShareStartWithAudio();
476
- }
477
- this._streamControl.setVideoEncoderConfig(streamId, targetEncoderConfig, _type.FcrVideoStreamType.HIGH_STREAM);
478
- return _context3.abrupt("return", Promise.resolve(streamId));
479
- case 2:
480
- case "end":
481
- return _context3.stop();
482
- }
483
- }, _callee3, this);
484
- }));
485
- function createScreenShareWithSelectionId(_x5, _x6) {
486
- return _createScreenShareWithSelectionId.apply(this, arguments);
487
- }
488
- return createScreenShareWithSelectionId;
489
- }()
490
- }, {
491
- key: "_isStoppedFor",
492
- value: function _isStoppedFor(events, reason) {
493
- var _this3 = this;
494
- return events && events.find(function (event) {
495
- var _event$cause;
496
- return ((_event$cause = event.cause) === null || _event$cause === void 0 || (_event$cause = _event$cause.data) === null || _event$cause === void 0 ? void 0 : _event$cause.reason) === reason && event.modifiedStream.owner.userId === _this3.localUserId;
497
- });
498
- }
499
- }, {
500
- key: "_addEventListeners",
501
- value: function _addEventListeners() {
502
- window.addEventListener('online', this._syncShareStreamState);
503
- }
504
- }, {
505
- key: "_removeEventListeners",
506
- value: function _removeEventListeners() {
507
- window.removeEventListener('online', this._syncShareStreamState);
508
- }
509
- }, {
510
- key: "_syncShareStreamState",
511
- value: function _syncShareStreamState() {
512
- var _this$_sharedScreenSh;
513
- if (this._sharedScreenShareSharedDataSource.localUserScreenSharingState !== _fcrCore.FcrMediaSourceState.OPEN && ((_this$_sharedScreenSh = this._sharedScreenShareSharedDataSource.screenSharingOwner) === null || _this$_sharedScreenSh === void 0 ? void 0 : _this$_sharedScreenSh.userId) === this.localUserId) {
514
- this._hasStop = false;
515
- this.stop();
516
- }
517
- }
518
- }, {
519
- key: "_handleStreamUpdate",
520
- value: function _handleStreamUpdate(process, events) {
521
- var _seizeStream$operator,
522
- _this4 = this;
523
- this._syncScreenShareStreamInfos();
524
- var isClosedByOther = this._isStoppedFor(events, _types.FcrBoardInactiveReason.CLOSE);
525
- var isSeizedByOther = this._isStoppedFor(events, _types.FcrBoardInactiveReason.SEIZE);
526
- var operatorUser = (isSeizedByOther === null || isSeizedByOther === void 0 ? void 0 : isSeizedByOther.operatorUser) || (isClosedByOther === null || isClosedByOther === void 0 ? void 0 : isClosedByOther.operatorUser);
527
- var ownerUser = (isSeizedByOther === null || isSeizedByOther === void 0 ? void 0 : isSeizedByOther.modifiedStream.owner) || (isClosedByOther === null || isClosedByOther === void 0 ? void 0 : isClosedByOther.modifiedStream.owner);
528
- var selfOperated = (operatorUser === null || operatorUser === void 0 ? void 0 : operatorUser.userId) === this.localUserId;
529
- var isMyOwnShare = this.localUserId === (ownerUser === null || ownerUser === void 0 ? void 0 : ownerUser.userId);
530
- isClosedByOther && !selfOperated && isMyOwnShare && this._eventProvider.sendEvent(_constant.FcrUIAction.SHOW_TOAST, {
531
- type: 'info',
532
- message: (0, _i18n.transI18n)('fmt_share_tips_sharingdisabled')
533
- });
534
- if ((isSeizedByOther || isClosedByOther) && !selfOperated) {
535
- if ((0, _env.isElectron)()) {
536
- this.stop();
537
- } else {
538
- this._stopScreenTrack();
539
- }
540
- return;
541
- }
542
- switch (process) {
543
- case 'add':
544
- // 抢占流添加时,不设置抢占流状态,因为抢占发生时,会触发 remove 事件,此时判断 reason===seize 的结果设置抢占流状态
545
- // const newsStreamsHaveScreenShare = events.some(
546
- // (event) => event.modifiedStream.videoSourceType === AgoraRteVideoSourceType.SCREEN,
547
- // );
548
- // const isSeizeStreamAdd =
549
- // newsStreamsHaveScreenShare && this._sharedScreenShareSharedDataSource.isSharingScreen;
550
- // this._sharedScreenShareSharedDataSource.setIsSeizeStream(isSeizeStreamAdd);
551
- break;
552
- case 'remove':
553
- var seizeStream = events.find(function (event) {
554
- var _event$cause2, _event$operatorUser;
555
- return event.modifiedStream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN && ((_event$cause2 = event.cause) === null || _event$cause2 === void 0 || (_event$cause2 = _event$cause2.data) === null || _event$cause2 === void 0 ? void 0 : _event$cause2.reason) === _types.FcrBoardInactiveReason.SEIZE && ((_event$operatorUser = event.operatorUser) === null || _event$operatorUser === void 0 ? void 0 : _event$operatorUser.userId) !== event.modifiedStream.owner.userId;
556
- });
557
- if ((seizeStream === null || seizeStream === void 0 || (_seizeStream$operator = seizeStream.operatorUser) === null || _seizeStream$operator === void 0 ? void 0 : _seizeStream$operator.userId) !== this.localUserId && (seizeStream === null || seizeStream === void 0 ? void 0 : seizeStream.modifiedStream.owner.userId) === this.localUserId) {
558
- this._observable.notifyObservers('onScreenShareSeize');
559
- this._sharedScreenShareSharedDataSource.setIsSeizeStream(true);
560
- }
561
- var mySharingScreenRemoved = events.some(function (event) {
562
- return event.modifiedStream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN && event.modifiedStream.owner.userId === _this4.localUserId;
563
- });
564
- if (mySharingScreenRemoved) {
565
- this.setSharingInReplace(false);
566
- if (!(0, _env.isElectron)() && this._isReplaceScreen) {
567
- // web下的替换流不需要停止采集
568
- this._isReplaceScreen = false;
569
- return;
570
- }
571
- this.logger.info('screen-share-provider: current user stream remove');
572
- this._stopScreenTrack();
573
- }
574
- break;
575
- }
576
- }
577
- }, {
578
- key: "startRenderSharePreview",
579
- value: function startRenderSharePreview(dom, targetScreenTrack) {
580
- this._previewDom = dom;
581
- var screenTrack = targetScreenTrack !== null && targetScreenTrack !== void 0 ? targetScreenTrack : this.screenTrack;
582
- if (dom) {
583
- screenTrack === null || screenTrack === void 0 || screenTrack.startPreview({
584
- renderMode: 1,
585
- isMirror: false
586
- }, dom);
587
- } else {
588
- screenTrack === null || screenTrack === void 0 || screenTrack.stopPreview(dom);
589
- this._previewDom = null;
590
- }
591
- }
592
- }, {
593
- key: "stopRenderSharePreview",
594
- value: function stopRenderSharePreview(targetScreenTrack) {
595
- var screenTrack = targetScreenTrack !== null && targetScreenTrack !== void 0 ? targetScreenTrack : this.screenTrack;
596
- this._previewDom && (screenTrack === null || screenTrack === void 0 ? void 0 : screenTrack.stopPreview(this._previewDom));
597
- }
598
- }, {
599
- key: "_syncScreenShareStreamInfos",
600
- value: function _syncScreenShareStreamInfos() {
601
- var _this$_roomProvider$c, _streams$find;
602
- var streams = (_this$_roomProvider$c = this._roomProvider.currentRoomControl) === null || _this$_roomProvider$c === void 0 ? void 0 : _this$_roomProvider$c.getStreamControl().getStreamList();
603
- var isSharingScreen = streams === null || streams === void 0 ? void 0 : streams.some(function (stream) {
604
- return stream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN;
605
- });
606
- this._sharedScreenShareSharedDataSource.setIsSharingScreen(!!isSharingScreen);
607
- var screenSharingOwner = streams === null || streams === void 0 || (_streams$find = streams.find(function (stream) {
608
- return stream.videoSourceType === _fcrCore.FcrVideoSourceType.SCREEN;
609
- })) === null || _streams$find === void 0 ? void 0 : _streams$find.owner;
610
- this._sharedScreenShareSharedDataSource.setScreenSharingOwner(screenSharingOwner);
611
- }
612
- }, {
613
- key: "setScreenTrack",
614
- value: function setScreenTrack(screenTrack) {
615
- this._sharedScreenShareSharedDataSource.setScreenTrack(screenTrack);
616
- }
617
- }, {
618
- key: "addObserver",
619
- value: function addObserver(observer) {
620
- this._observable.addObserver(observer);
621
- }
622
- }, {
623
- key: "removeObserver",
624
- value: function removeObserver(observer) {
625
- this._observable.removeObserver(observer);
626
- }
627
- }, {
628
- key: "startShareWhiteboard",
629
- value: function startShareWhiteboard() {
630
- var _this$_sharingProvide;
631
- (_this$_sharingProvide = this._sharingProvider) === null || _this$_sharingProvide === void 0 || _this$_sharingProvide.startWhiteboard();
632
- }
633
- }, {
634
- key: "release",
635
- value: function release() {
636
- this.logger.info('[screen-share-provider] in release');
637
- this._hasStop = false;
638
- this.stop();
639
- this._streamControl.removeObserver(this._streamObserver);
640
- this._removeEventListeners();
641
- }
642
- }, {
643
- key: "startShareScreen",
644
- value: function () {
645
- var _startShareScreen = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(id, type, withAudio, isReplace) {
646
- var _this$screenTrack3, _this$screenTrack4, frameRate, excludeWindows, streamId, screenTrack, _t, _t2;
647
- return _regenerator["default"].wrap(function (_context4) {
648
- while (1) switch (_context4.prev = _context4.next) {
649
- case 0:
650
- this.setShareLock(true);
651
- _context4.prev = 1;
652
- this.logger.info('screen-share-provider: enter startShareScreen');
653
- frameRate = this._sharedScreenShareSharedDataSource.screenShareScenarioType === _imports.FcrScreenScenarioType.SMOOTH ? 25 : 15;
654
- if (!(0, _env.isElectron)()) {
655
- _context4.next = 3;
656
- break;
657
- }
658
- _context4.next = 2;
659
- return this._getExcludeWindows();
660
- case 2:
661
- _t = _context4.sent;
662
- _context4.next = 4;
663
- break;
664
- case 3:
665
- _t = undefined;
666
- case 4:
667
- excludeWindows = _t;
668
- this._sharedScreenShareSharedDataSource.setShareWithAudio(withAudio);
669
- if (!((0, _env.isElectron)() && !isReplace)) {
670
- _context4.next = 6;
671
- break;
672
- }
673
- _context4.next = 5;
674
- return this.createScreenShareWithSelectionId(id, this.currentSelectionBounds);
675
- case 5:
676
- streamId = _context4.sent;
677
- if (streamId) {
678
- this._sharedScreenShareSharedDataSource.setCurrentShareStreamId(streamId);
679
- }
680
- case 6:
681
- screenTrack = this._deviceProvider.getScreenTrack(id);
682
- this.setScreenTrack(screenTrack);
683
- this.logger.info("[screen-share-provider]: start share screen with track start, excludeWindows: ".concat(JSON.stringify(excludeWindows)));
684
- (_this$screenTrack3 = this.screenTrack) === null || _this$screenTrack3 === void 0 || _this$screenTrack3.addObserver(this._screenCaptureObserver);
685
- // this.screenTrack?.start(type, {
686
- // withAudio,
687
- // excludeWindows,
688
- // frameRate,
689
- // });
690
- (_this$screenTrack4 = this.screenTrack) === null || _this$screenTrack4 === void 0 || _this$screenTrack4.start(type, excludeWindows !== null && excludeWindows !== void 0 ? excludeWindows : []);
691
- _context4.next = 8;
692
- break;
693
- case 7:
694
- _context4.prev = 7;
695
- _t2 = _context4["catch"](1);
696
- this.setShareLock(false);
697
- throw _t2;
698
- case 8:
699
- case "end":
700
- return _context4.stop();
701
- }
702
- }, _callee4, this, [[1, 7]]);
703
- }));
704
- function startShareScreen(_x7, _x8, _x9, _x0) {
705
- return _startShareScreen.apply(this, arguments);
706
- }
707
- return startShareScreen;
708
- }()
709
- }, {
710
- key: "stopShareScreen",
711
- value: function stopShareScreen(targetScreenTrack) {
712
- this.logger.info('screen-share-provider: stopShareScreen');
713
- var screenTrack = targetScreenTrack !== null && targetScreenTrack !== void 0 ? targetScreenTrack : this.screenTrack;
714
- this._handleShareStopWithAudio();
715
- this._cleanShareWithAudioDataSource();
716
- this.stopRenderSharePreview(screenTrack);
717
- this.removeScreenStream();
718
- this._stopScreenTrack();
719
- }
720
- }, {
721
- key: "stopShareScreenByExitRoom",
722
- value: function stopShareScreenByExitRoom(targetScreenTrack) {
723
- this.logger.info('screen-share-provider: stopShareScreenByExitRoom');
724
- var screenTrack = targetScreenTrack !== null && targetScreenTrack !== void 0 ? targetScreenTrack : this.screenTrack;
725
- this.stopRenderSharePreview(screenTrack);
726
- this._stopScreenTrack();
727
- this._cleanShareWithAudioDataSource();
728
- }
729
- }, {
730
- key: "_updateShareAudioPrivilege",
731
- value: function _updateShareAudioPrivilege(streamId, withAudio) {
732
- this._streamControl.updatePublishPrivilegeOfStreams((0, _defineProperty2["default"])({}, streamId, {
733
- audioPrivilege: withAudio ? _fcrCore.FcrStreamPrivilegeOperation.HAS_PRIVILEGE : _fcrCore.FcrStreamPrivilegeOperation.NOPRIVILEGE,
734
- videoPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOOPERATION
735
- }));
736
- }
737
- }, {
738
- key: "_handleShareStopWithAudio",
739
- value: function _handleShareStopWithAudio() {
740
- if (!this.shareAudioTrack) {
741
- return;
742
- }
743
- if (this._deviceProvider.isCapabilitySupported(_fcrCore.FcrCapability.LOOPBACK_CAPTURE)) {
744
- this.logger.info('[screen-share-provider][handleShareStopWithAudio] shareAudioTrack.stop');
745
- this.shareAudioTrack.stop();
746
- }
747
- }
748
- }, {
749
- key: "_handleShareStartWithAudio",
750
- value: function _handleShareStartWithAudio() {
751
- var loopbackAudioSourceId = this._sharedScreenShareSharedDataSource.getLoopbackDeviceId();
752
- if (!loopbackAudioSourceId) {
753
- this.logger.error('cannot get loopbackAudioSourceId before calling getLoopbackTrack');
754
- return;
755
- }
756
- var shareAudioTrack = this._deviceProvider.getLoopbackTrack(loopbackAudioSourceId);
757
- this._sharedScreenShareSharedDataSource.setShareWithAudioTrack(shareAudioTrack);
758
- if (this._deviceProvider.isCapabilitySupported(_fcrCore.FcrCapability.LOOPBACK_CAPTURE) && this.shareAudioTrack && this.shareAudioTrack.getState() === _fcrCore.FcrMediaSourceState.CLOSE) {
759
- this.shareAudioTrack.start();
760
- }
761
- }
762
- }, {
763
- key: "toggleScreenshareWithAudio",
764
- value: function toggleScreenshareWithAudio(withAudio) {
765
- this._sharedScreenShareSharedDataSource.setShareWithAudio(withAudio);
766
- this.logger.info("[screen-share-provider] current-share with audio: ".concat(withAudio));
767
- if (this.currentShareStreamId) {
768
- this._updateShareAudioPrivilege(this.currentShareStreamId, withAudio);
769
- if (withAudio) {
770
- this._handleShareStartWithAudio();
771
- } else {
772
- this._handleShareStopWithAudio();
773
- }
774
- } else {
775
- this.logger.error('currentShareStreamId is not set');
776
- }
777
- }
778
- }, {
779
- key: "_getExcludeWindows",
780
- value: function () {
781
- var _getExcludeWindows2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
782
- var excludeWindows, windowNames;
783
- return _regenerator["default"].wrap(function (_context5) {
784
- while (1) switch (_context5.prev = _context5.next) {
785
- case 0:
786
- excludeWindows = [];
787
- windowNames = [];
788
- _context5.next = 1;
789
- return (0, _tools.waitUntil)(function () {
790
- var windowsIds = (0, _rendererEvent.getMediaSourcesIdByTitle)(['Control Bar', 'Video Window', 'Annotation', 'Annotation tool bar']);
791
- windowsIds === null || windowsIds === void 0 || windowsIds.forEach(function (windowInfo) {
792
- var windowName = windowInfo.windowName,
793
- windowId = windowInfo.windowId;
794
- if (windowId && !excludeWindows.includes(windowId)) {
795
- excludeWindows.push(windowId);
796
- }
797
- if (windowName && !windowNames.includes(windowName)) {
798
- windowNames.push(windowName);
799
- }
800
- });
801
- return windowNames.includes('Control Bar') && windowNames.includes('Video Window');
802
- }, 'control bar is open');
803
- case 1:
804
- this.logger.info("[screen-share-provider] windowNames: ".concat(JSON.stringify(windowNames), ", excludeWindows: ").concat(JSON.stringify(excludeWindows)));
805
- return _context5.abrupt("return", excludeWindows);
806
- case 2:
807
- case "end":
808
- return _context5.stop();
809
- }
810
- }, _callee5, this);
811
- }));
812
- function _getExcludeWindows() {
813
- return _getExcludeWindows2.apply(this, arguments);
814
- }
815
- return _getExcludeWindows;
816
- }()
817
- }, {
818
- key: "removeScreenStream",
819
- value: function removeScreenStream() {
820
- try {
821
- this.logger.info('screen-share-provider: remove screen streams');
822
- this._streamControl.removeScreenStream();
823
- this._sharedScreenShareSharedDataSource.setCurrentShareStreamId(undefined);
824
- return true;
825
- } catch (error) {
826
- this.logger.error('removeScreenStream error', error);
827
- return false;
828
- }
829
- }
830
- }, {
831
- key: "_stopScreenTrack",
832
- value: function _stopScreenTrack() {
833
- var _this$screenTrack5;
834
- this.logger.info('screen-share-provider: current screen track stop');
835
- (_this$screenTrack5 = this.screenTrack) === null || _this$screenTrack5 === void 0 || _this$screenTrack5.stop();
836
- this.setShareLock(false);
837
- }
838
- }, {
839
- key: "_cleanShareWithAudioDataSource",
840
- value: function _cleanShareWithAudioDataSource() {
841
- this.logger.info('[screen-share-provider][cleanShareWithAudioDataSource] reset done !');
842
- this._sharedScreenShareSharedDataSource.setShareWithAudioTrack(null);
843
- this._sharedScreenShareSharedDataSource.setShareWithAudio(!(0, _env.isElectron)());
844
- }
845
- }]);
846
- }();
847
- _FcrUIScreenShareProviderImpl = FcrUIScreenShareProviderImpl;
848
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIScreenShareProviderImpl, [[_decorator.bound, 2, "setSharingInReplace"], [_zoomOutDecs, 18, "zoomOut"], [_zoomInDecs, 18, "zoomIn"], [_fullContainerDecs, 18, "fullContainer"], [_mobx.computed, 3, "isAspectRatioPreserved"], [_setOriginScalcDecs, 18, "setOriginScalc"], [_decorator.bound, 2, "stop"], [_decorator.bound, 2, "bootstrap"], [_decorator.bound, 2, "_handleWebScreenCaptureStateUpdated"], [_handleScreenCaptureStateUpdatedDecs, 18, "_handleScreenCaptureStateUpdated"], [_replaceScreenShareDecs, 18, "replaceScreenShare"], [_handleRemoteVideoStatsUpdatedDecs, 18, "_handleRemoteVideoStatsUpdated"], [_decorator.bound, 2, "_syncShareStreamState"], [_handleStreamUpdateDecs, 18, "_handleStreamUpdate"], [_decorator.bound, 2, "startRenderSharePreview"], [_decorator.bound, 2, "stopRenderSharePreview"], [_syncScreenShareStreamInfosDecs, 18, "_syncScreenShareStreamInfos"], [_releaseDecs, 18, "release"], [_startShareScreenDecs, 18, "startShareScreen"], [_decorator.bound, 2, "stopShareScreen"], [_decorator.bound, 2, "stopShareScreenByExitRoom"], [_updateShareAudioPrivilegeDecs, 18, "_updateShareAudioPrivilege"], [_handleShareStopWithAudioDecs, 18, "_handleShareStopWithAudio"], [_handleShareStartWithAudioDecs, 18, "_handleShareStartWithAudio"], [_decorator.bound, 2, "toggleScreenshareWithAudio"], [_decorator.bound, 2, "_getExcludeWindows"], [_decorator.bound, 2, "removeScreenStream"], [_decorator.bound, 2, "_stopScreenTrack"], [_decorator.bound, 2, "_cleanShareWithAudioDataSource"]], []).e, 1);
849
- _initProto = _applyDecs$e[0];
850
- (0, _base.registerDependency)('screenShareProvider');