fcr-ui-scene 3.7.8 → 3.7.9-alpha

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