fcr-ui-scene 3.7.7 → 3.7.8-rc.2

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 (237) hide show
  1. package/lib/creator/index.js +13 -19
  2. package/lib/creator/provider-initializer.browser.js +2 -2
  3. package/lib/creator/provider-initializer.electron.js +2 -2
  4. package/lib/electron/bootstrap-sdk.js +89 -35
  5. package/lib/electron/hang-detection/index.d.ts +3 -0
  6. package/lib/electron/hang-detection/index.js +15 -0
  7. package/lib/electron/hang-detection/manager.d.ts +28 -0
  8. package/lib/electron/hang-detection/manager.js +231 -0
  9. package/lib/electron/hang-detection/types.d.ts +14 -0
  10. package/lib/electron/sdk-helper.js +6 -2
  11. package/lib/electron/until.d.ts +1 -4
  12. package/lib/electron/until.js +12 -4
  13. package/lib/index.js +8 -1
  14. package/lib/modules/action-bar/components/screen-share/index.electron.js +1 -1
  15. package/lib/modules/components/control-bar/components/switch-theme/index.js +4 -2
  16. package/lib/modules/components/control-bar/index.js +1 -3
  17. package/lib/modules/components/leave-meeting/store.base.d.ts +1 -0
  18. package/lib/modules/components/leave-meeting/store.base.js +46 -5
  19. package/lib/modules/dialog/dialogs/confirm-leave-meeting/index.d.ts +1 -0
  20. package/lib/modules/dialog/dialogs/confirm-leave-meeting/index.js +2 -1
  21. package/lib/modules/dialog/dialogs/share-screen-selection/index.js +0 -12
  22. package/lib/modules/participant/store.base.js +0 -1
  23. package/lib/modules/share-screen/store.base.js +0 -2
  24. package/lib/modules/share-screen/store.electron.js +54 -22
  25. package/lib/modules/state-bar/store.base.electron.js +6 -2
  26. package/lib/modules/video-window/popover-watcher.js +4 -1
  27. package/lib/modules/video-window/store.js +7 -1
  28. package/lib/modules/video-window/view.js +14 -4
  29. package/lib/providers/board-share/bar-control/base.d.ts +2 -0
  30. package/lib/providers/board-share/bar-control/base.js +13 -3
  31. package/lib/providers/board-share/bar-control/electron.d.ts +1 -0
  32. package/lib/providers/board-share/bar-control/electron.js +15 -4
  33. package/lib/providers/board-share/provider.base.d.ts +1 -0
  34. package/lib/providers/board-share/provider.base.js +3 -1
  35. package/lib/providers/board-share/provider.electron.d.ts +1 -0
  36. package/lib/providers/board-share/provider.electron.js +8 -2
  37. package/lib/providers/board-share/type.d.ts +2 -0
  38. package/lib/providers/dialog/provider.electron.js +10 -2
  39. package/lib/providers/screen-share/strategy/browser.js +51 -4
  40. package/lib/providers/screen-share/strategy/electron.js +77 -8
  41. package/lib/providers/screen-share/stream-state-sync.d.ts +3 -1
  42. package/lib/providers/screen-share/stream-state-sync.js +133 -40
  43. package/lib/providers/window/main-window.js +0 -3
  44. package/lib/providers/window/renderer-window.d.ts +3 -0
  45. package/lib/providers/window/renderer-window.js +47 -4
  46. package/lib/providers/window/type.d.ts +1 -0
  47. package/lib/scenes/main-scene.d.ts +1 -0
  48. package/lib/scenes/main-scene.js +32 -1
  49. package/lib/utilities/logger.js +1 -1
  50. package/package.json +5 -5
  51. package/public/index.html +2 -149
  52. package/public/meeting-manager.js +391 -0
  53. package/installer/icons/favicon.ico +0 -0
  54. package/installer/icons/favicon.png +0 -0
  55. package/installer/icons/icon.png +0 -0
  56. package/installer/mac/entitlements.mac.plist +0 -16
  57. package/lib/creator.d.ts +0 -36
  58. package/lib/creator.js +0 -465
  59. package/lib/modules/action-bar/index.d.ts +0 -58
  60. package/lib/modules/action-bar/index.dev.d.ts +0 -0
  61. package/lib/modules/action-bar/index.dev.js +0 -94
  62. package/lib/modules/action-bar/index.js +0 -109
  63. package/lib/modules/action-bar/store.d.ts +0 -259
  64. package/lib/modules/action-bar/store.js +0 -1529
  65. package/lib/modules/action-bar/types.d.ts +0 -90
  66. package/lib/modules/action-bar/view.d.ts +0 -5
  67. package/lib/modules/action-bar/view.js +0 -112
  68. package/lib/modules/annotation/annotation-index.d.ts +0 -2
  69. package/lib/modules/annotation/annotation-index.js +0 -80
  70. package/lib/modules/annotation/annotation-toolbar-store.d.ts +0 -75
  71. package/lib/modules/annotation/annotation-toolbar-store.js +0 -459
  72. package/lib/modules/annotation/board-cursor.css +0 -77
  73. package/lib/modules/annotation/components/color-picker/components/color.d.ts +0 -5
  74. package/lib/modules/annotation/components/color-picker/components/color.js +0 -38
  75. package/lib/modules/annotation/components/color-picker/components/panel.d.ts +0 -1
  76. package/lib/modules/annotation/components/color-picker/components/panel.js +0 -109
  77. package/lib/modules/annotation/components/color-picker/components/picker.d.ts +0 -1
  78. package/lib/modules/annotation/components/color-picker/components/picker.js +0 -75
  79. package/lib/modules/annotation/components/color-picker/index.d.ts +0 -2
  80. package/lib/modules/annotation/components/color-picker/index.js +0 -47
  81. package/lib/modules/annotation/components/eraser-picker.d.ts +0 -4
  82. package/lib/modules/annotation/components/eraser-picker.js +0 -144
  83. package/lib/modules/annotation/components/expansion/index.d.ts +0 -1
  84. package/lib/modules/annotation/components/expansion/index.js +0 -100
  85. package/lib/modules/annotation/components/extra-tool-picker.d.ts +0 -1
  86. package/lib/modules/annotation/components/extra-tool-picker.js +0 -62
  87. package/lib/modules/annotation/components/history.d.ts +0 -2
  88. package/lib/modules/annotation/components/history.js +0 -78
  89. package/lib/modules/annotation/components/icons/fold-icon.d.ts +0 -2
  90. package/lib/modules/annotation/components/icons/fold-icon.js +0 -41
  91. package/lib/modules/annotation/components/icons/move-icon.d.ts +0 -1
  92. package/lib/modules/annotation/components/icons/move-icon.js +0 -66
  93. package/lib/modules/annotation/components/item/index.d.ts +0 -1
  94. package/lib/modules/annotation/components/item/index.js +0 -43
  95. package/lib/modules/annotation/components/move-handle.d.ts +0 -5
  96. package/lib/modules/annotation/components/move-handle.js +0 -134
  97. package/lib/modules/annotation/components/pen-picker.d.ts +0 -4
  98. package/lib/modules/annotation/components/pen-picker.js +0 -155
  99. package/lib/modules/annotation/components/screen-capture-picker.d.ts +0 -4
  100. package/lib/modules/annotation/components/screen-capture-picker.js +0 -85
  101. package/lib/modules/annotation/components/shape-picker.d.ts +0 -4
  102. package/lib/modules/annotation/components/shape-picker.js +0 -210
  103. package/lib/modules/annotation/hooks/index.d.ts +0 -14
  104. package/lib/modules/annotation/hooks/index.js +0 -292
  105. package/lib/modules/annotation/index.d.ts +0 -45
  106. package/lib/modules/annotation/index.js +0 -168
  107. package/lib/modules/annotation/store.d.ts +0 -98
  108. package/lib/modules/annotation/store.js +0 -620
  109. package/lib/modules/annotation/style.css +0 -36
  110. package/lib/modules/annotation/view.d.ts +0 -3
  111. package/lib/modules/annotation/view.js +0 -44
  112. package/lib/modules/components/device-control/store.d.ts +0 -42
  113. package/lib/modules/components/device-control/store.js +0 -241
  114. package/lib/modules/components/leave-meeting/store.d.ts +0 -39
  115. package/lib/modules/components/leave-meeting/store.js +0 -270
  116. package/lib/modules/control-bar/components/annotation-button/index.d.ts +0 -1
  117. package/lib/modules/control-bar/components/annotation-button/index.js +0 -72
  118. package/lib/modules/control-bar/reactor.d.ts +0 -2
  119. package/lib/modules/control-bar/reactor.js +0 -8
  120. package/lib/modules/control-bar/types.d.ts +0 -20
  121. package/lib/modules/control-bar/types.js +0 -6
  122. package/lib/modules/dialog/dialogs/pre-setting/index.css +0 -26
  123. package/lib/modules/dialog/dialogs/pre-setting/index.d.ts +0 -6
  124. package/lib/modules/dialog/dialogs/pre-setting/index.js +0 -62
  125. package/lib/modules/dialog/dialogs/widget/electron.d.ts +0 -6
  126. package/lib/modules/dialog/dialogs/widget/electron.js +0 -38
  127. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +0 -14
  128. package/lib/modules/dialog/hooks/use-popover-watcher.js +0 -110
  129. package/lib/modules/dialog/hooks/useElectron.d.ts +0 -28
  130. package/lib/modules/dialog/hooks/useElectron.js +0 -277
  131. package/lib/modules/dialog/store.d.ts +0 -135
  132. package/lib/modules/dialog/store.js +0 -616
  133. package/lib/modules/event-confirm/components/window/index.d.ts +0 -7
  134. package/lib/modules/event-confirm/components/window/index.js +0 -221
  135. package/lib/modules/event-confirm/index.css +0 -24
  136. package/lib/modules/event-confirm/index.d.ts +0 -27
  137. package/lib/modules/event-confirm/index.js +0 -76
  138. package/lib/modules/event-confirm/store.d.ts +0 -50
  139. package/lib/modules/event-confirm/store.js +0 -394
  140. package/lib/modules/event-confirm/view.d.ts +0 -2
  141. package/lib/modules/event-confirm/view.js +0 -55
  142. package/lib/modules/event-toast/store.d.ts +0 -27
  143. package/lib/modules/event-toast/store.js +0 -205
  144. package/lib/modules/layout/store.d.ts +0 -176
  145. package/lib/modules/layout/store.js +0 -1452
  146. package/lib/modules/participant/store.d.ts +0 -222
  147. package/lib/modules/participant/store.js +0 -1929
  148. package/lib/modules/pc-audio-connect/index.d.ts +0 -22
  149. package/lib/modules/pc-audio-connect/index.js +0 -67
  150. package/lib/modules/pc-audio-connect/store.d.ts +0 -46
  151. package/lib/modules/pc-audio-connect/store.js +0 -304
  152. package/lib/modules/setting/common/advance-link.d.ts +0 -3
  153. package/lib/modules/setting/common/advance-link.js +0 -27
  154. package/lib/modules/setting/common/index.css +0 -26
  155. package/lib/modules/setting/common/useNamespace.d.ts +0 -15
  156. package/lib/modules/setting/common/useNamespace.js +0 -66
  157. package/lib/modules/setting/dialog-wrapper.d.ts +0 -2
  158. package/lib/modules/setting/dialog-wrapper.js +0 -110
  159. package/lib/modules/setting/store.d.ts +0 -261
  160. package/lib/modules/setting/store.js +0 -1321
  161. package/lib/modules/share-screen/store.d.ts +0 -148
  162. package/lib/modules/share-screen/store.js +0 -960
  163. package/lib/modules/share-screen/types.d.ts +0 -26
  164. package/lib/modules/share-screen/types.js +0 -6
  165. package/lib/modules/state-bar/store.d.ts +0 -124
  166. package/lib/modules/state-bar/store.js +0 -664
  167. package/lib/modules/whiteboard/components/progress/electron.d.ts +0 -1
  168. package/lib/modules/whiteboard/components/progress/electron.js +0 -33
  169. package/lib/modules/widget/store.d.ts +0 -14
  170. package/lib/modules/widget/store.js +0 -28
  171. package/lib/providers/annotation-provider.d.ts +0 -124
  172. package/lib/providers/annotation-provider.js +0 -369
  173. package/lib/providers/dialog-provider.d.ts +0 -137
  174. package/lib/providers/dialog-provider.js +0 -194
  175. package/lib/providers/message-provider.d.ts +0 -69
  176. package/lib/providers/message-provider.js +0 -140
  177. package/lib/providers/room-provider.d.ts +0 -194
  178. package/lib/providers/room-provider.js +0 -916
  179. package/lib/providers/screen-share-provider.d.ts +0 -245
  180. package/lib/providers/screen-share-provider.js +0 -850
  181. package/lib/providers/sharing-provider.d.ts +0 -42
  182. package/lib/providers/sharing-provider.js +0 -228
  183. package/lib/providers/user-setting-storage-provider.d.ts +0 -21
  184. package/lib/providers/user-setting-storage-provider.js +0 -65
  185. package/lib/providers/whiteboard-provider.d.ts +0 -24
  186. package/lib/providers/whiteboard-provider.js +0 -128
  187. package/lib/shared-data-source/annotation-data.d.ts +0 -17
  188. package/lib/shared-data-source/annotation-data.js +0 -110
  189. package/lib/shared-data-source/app-list-data.d.ts +0 -34
  190. package/lib/shared-data-source/app-list-data.js +0 -133
  191. package/lib/shared-data-source/chat-data.d.ts +0 -25
  192. package/lib/shared-data-source/chat-data.js +0 -139
  193. package/lib/shared-data-source/config.d.ts +0 -35
  194. package/lib/shared-data-source/config.js +0 -40
  195. package/lib/shared-data-source/confirm-data.d.ts +0 -44
  196. package/lib/shared-data-source/confirm-data.js +0 -201
  197. package/lib/shared-data-source/device-privilege-data.d.ts +0 -8
  198. package/lib/shared-data-source/device-privilege-data.js +0 -25
  199. package/lib/shared-data-source/interpreter.d.ts +0 -77
  200. package/lib/shared-data-source/interpreter.js +0 -247
  201. package/lib/shared-data-source/layout-data.d.ts +0 -31
  202. package/lib/shared-data-source/layout-data.js +0 -189
  203. package/lib/shared-data-source/meeting-time.d.ts +0 -90
  204. package/lib/shared-data-source/meeting-time.js +0 -416
  205. package/lib/shared-data-source/member-data.d.ts +0 -139
  206. package/lib/shared-data-source/member-data.js +0 -517
  207. package/lib/shared-data-source/pin-data.d.ts +0 -13
  208. package/lib/shared-data-source/pin-data.js +0 -111
  209. package/lib/shared-data-source/screen-share-data.d.ts +0 -357
  210. package/lib/shared-data-source/screen-share-data.js +0 -513
  211. package/lib/shared-data-source/security-data.d.ts +0 -39
  212. package/lib/shared-data-source/security-data.js +0 -156
  213. package/lib/shared-data-source/setting.d.ts +0 -67
  214. package/lib/shared-data-source/setting.js +0 -220
  215. package/lib/shared-data-source/speaker-spotlight.d.ts +0 -5
  216. package/lib/shared-data-source/speaker-spotlight.js +0 -15
  217. package/lib/shared-data-source/video-window.d.ts +0 -165
  218. package/lib/shared-data-source/video-window.js +0 -1266
  219. package/lib/shared-data-source/waiting-room.d.ts +0 -46
  220. package/lib/shared-data-source/waiting-room.js +0 -222
  221. package/lib/shared-data-source/whiteboard-data.d.ts +0 -70
  222. package/lib/shared-data-source/whiteboard-data.js +0 -348
  223. package/lib/utilities/board-context.d.ts +0 -4
  224. package/lib/utilities/board-context.js +0 -12
  225. package/lib/utilities/copyText.d.ts +0 -2
  226. package/lib/utilities/copyText.js +0 -48
  227. package/lib/utilities/renderer-event.d.ts +0 -10
  228. package/lib/utilities/renderer-event.js +0 -95
  229. package/lib/utilities/screen-capture-permission.d.ts +0 -2
  230. package/lib/utilities/screen-capture-permission.js +0 -24
  231. package/lib/utilities/screen.d.ts +0 -3
  232. package/lib/utilities/screen.js +0 -53
  233. package/lib/utilities/video-track-render-context.d.ts +0 -6
  234. package/lib/utilities/video-track-render-context.js +0 -9
  235. package/lib/waiting-room-control-manager.d.ts +0 -28
  236. package/lib/waiting-room-control-manager.js +0 -230
  237. /package/lib/{modules/action-bar → electron/hang-detection}/types.js +0 -0
@@ -116,6 +116,7 @@ var FcrUIBoardShareProviderBase = exports.FcrUIBoardShareProviderBase = /*#__PUR
116
116
  this._sharingControl.addObserver(this._observer);
117
117
  this._addLogger();
118
118
  this.boardState = this._sharingControl.getWhiteboardState();
119
+ this._userId = this._userControl.getLocalUser().userId;
119
120
  if (this.isActive) {
120
121
  this._boardControl.open();
121
122
  }
@@ -198,7 +199,7 @@ var FcrUIBoardShareProviderBase = exports.FcrUIBoardShareProviderBase = /*#__PUR
198
199
  key: "isMyBoard",
199
200
  get: function get() {
200
201
  if (this.isActive) {
201
- return this.ownerUser.userId === this._userControl.getLocalUser().userId;
202
+ return this.ownerUser.userId === this._userId;
202
203
  } else {
203
204
  throw new Error('get isMyBoard failed, no user is sharing board currently');
204
205
  }
@@ -372,6 +373,7 @@ var FcrUIBoardShareProviderBase = exports.FcrUIBoardShareProviderBase = /*#__PUR
372
373
  });
373
374
  if (theme) {
374
375
  this.boardBarControl.toolbarState.themeColors = theme.colors;
376
+ this.boardBarControl.setCurrentTheme(theme);
375
377
  } else {
376
378
  this.logger.warn("setBackgroundColor ".concat(color, " not match in theme"));
377
379
  }
@@ -19,4 +19,5 @@ export declare class FcrUIBoardShareProviderImpl extends FcrUIBoardShareProvider
19
19
  private _handleRedoStateUpdated;
20
20
  private _handleUndoStateUpdated;
21
21
  private _resetWhiteboardTool;
22
+ private _handleBackgroundColorUpdatedForSubProcess;
22
23
  }
@@ -83,7 +83,8 @@ var FcrUIBoardShareProviderImpl = exports.FcrUIBoardShareProviderImpl = /*#__PUR
83
83
  onUndoStateUpdated: _this._handleUndoStateUpdated
84
84
  });
85
85
  (0, _defineProperty2["default"])(_this, "_boardControlObserver", {
86
- onConnectionStateUpdated: _this._handleStateUpdated
86
+ onConnectionStateUpdated: _this._handleStateUpdated,
87
+ onBackgroundColorUpdated: _this._handleBackgroundColorUpdatedForSubProcess
87
88
  });
88
89
  _this._objectManager = _objectManager;
89
90
  _this._mainWindowRenderer = _mainWindowRenderer;
@@ -154,10 +155,15 @@ var FcrUIBoardShareProviderImpl = exports.FcrUIBoardShareProviderImpl = /*#__PUR
154
155
  this.boardMainWindow.setStrokeColor(this._boardBarControl.currentTheme.colors[2]);
155
156
  this.boardBarControl.resetWhiteboardTool();
156
157
  }
158
+ }, {
159
+ key: "_handleBackgroundColorUpdatedForSubProcess",
160
+ value: function _handleBackgroundColorUpdatedForSubProcess(color) {
161
+ this._boardBarControl.updateSubProcessBackgroundColor(color);
162
+ }
157
163
  }]);
158
164
  }(_provider.FcrUIBoardShareProviderBase);
159
165
  _FcrUIBoardShareProviderImpl = FcrUIBoardShareProviderImpl;
160
- var _applyDecs$e = _applyDecs(_FcrUIBoardShareProviderImpl, [[_decorator.bound, 2, "captureScreen"], [_handleStateUpdatedDecs, 18, "_handleStateUpdated"], [_handleRedoStateUpdatedDecs, 18, "_handleRedoStateUpdated"], [_handleUndoStateUpdatedDecs, 18, "_handleUndoStateUpdated"], [_decorator.bound, 2, "_resetWhiteboardTool"]], [], 0, void 0, _provider.FcrUIBoardShareProviderBase).e;
166
+ var _applyDecs$e = _applyDecs(_FcrUIBoardShareProviderImpl, [[_decorator.bound, 2, "captureScreen"], [_handleStateUpdatedDecs, 18, "_handleStateUpdated"], [_handleRedoStateUpdatedDecs, 18, "_handleRedoStateUpdated"], [_handleUndoStateUpdatedDecs, 18, "_handleUndoStateUpdated"], [_decorator.bound, 2, "_resetWhiteboardTool"], [_decorator.bound, 2, "_handleBackgroundColorUpdatedForSubProcess"]], [], 0, void 0, _provider.FcrUIBoardShareProviderBase).e;
161
167
  var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 1);
162
168
  _initProto = _applyDecs$e2[0];
163
169
  _applyDecs$e;
@@ -142,12 +142,14 @@ export interface FcrUIBoardBarControl {
142
142
  get toolbarState(): FcrToolbarState;
143
143
  release(): void;
144
144
  setSharingUser: (userInfo: FcrUserInfo) => void;
145
+ updateSubProcessBackgroundColor: (color: string) => void;
145
146
  setBackgroundColor: (color: string) => void;
146
147
  setWhiteboardTool: (tool: {
147
148
  action: WhiteboardToolAction;
148
149
  tool: FcrBoardToolType | FcrBoardShape | string | number;
149
150
  }) => void;
150
151
  setTheme: (theme: WhiteboardThemeType) => void;
152
+ setCurrentTheme: (theme: Required<WhiteboardThemeType>) => void;
151
153
  setControlEnable: (enable: boolean) => void;
152
154
  setShowLoading: (show: boolean) => void;
153
155
  setCommonColors: (colors: string[]) => void;
@@ -48,6 +48,7 @@ require("core-js/modules/es.string.includes.js");
48
48
  require("core-js/modules/esnext.iterator.constructor.js");
49
49
  require("core-js/modules/esnext.iterator.find.js");
50
50
  require("core-js/modules/web.dom-collections.iterator.js");
51
+ require("core-js/modules/web.timers.js");
51
52
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
52
53
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
53
54
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -221,6 +222,7 @@ var FcrUIElectronDialogProviderImpl = exports.FcrUIElectronDialogProviderImpl =
221
222
  }
222
223
  },
223
224
  onClosed: function onClosed() {
225
+ _this2.logger.warn("dialog provider openWithKeyAndId onClosed dialogKey: ".concat(dialogKey, " dialogId: ").concat(dialogId));
224
226
  window.removeObserver(windowObserver);
225
227
  _this2.dialogKeyMap["delete"](dialogKey);
226
228
  _this2.dialogIdMap["delete"](dialogId);
@@ -241,9 +243,15 @@ var FcrUIElectronDialogProviderImpl = exports.FcrUIElectronDialogProviderImpl =
241
243
  window.addObserver(windowObserver);
242
244
  window.setPreventClose(true);
243
245
  window.show(showOptions);
244
- if (params !== null && params !== void 0 && params.alwaysOnTop) {
246
+ if (params && params.alwaysOnTop) {
245
247
  window.setAlwaysOnTop(true, 'pop-up-menu');
246
248
  }
249
+ setTimeout(function () {
250
+ _this2.logger.warn("dialog provider openWithKeyAndId setTimeout dialogKey: ".concat(dialogKey, " dialogId: ").concat(dialogId, ",title: ").concat(window.getTitle(), ",isVisible: ").concat(window.isVisible(), ",showOptions: ").concat((0, _imports.jsonstring)(showOptions)));
251
+ if (!window.isVisible() && _this2.dialogKeyMap.has(dialogKey) && _this2.dialogIdMap.has(dialogId)) {
252
+ window.show(showOptions);
253
+ }
254
+ }, 1000);
247
255
  this.observable.notifyObservers('onDialogOpen', dialogKey, dialogId, params);
248
256
  }
249
257
  }, {
@@ -263,7 +271,7 @@ var FcrUIElectronDialogProviderImpl = exports.FcrUIElectronDialogProviderImpl =
263
271
  }]);
264
272
  }(_provider.FcrUIDialogProviderBase);
265
273
  _FcrUIElectronDialogProviderImpl = FcrUIElectronDialogProviderImpl;
266
- var _applyDecs$e = _applyDecs(_FcrUIElectronDialogProviderImpl, [[_decorator.trace, 2, "openDialog"], [_decorator.trace, 2, "openDialogWithId"], [_decorator.trace, 2, "closeDialog"], [_decorator.trace, 2, "closeDialogById"], [_decorator.trace, 2, "setSharingDisplayBounds"]], [], 0, void 0, _provider.FcrUIDialogProviderBase).e;
274
+ var _applyDecs$e = _applyDecs(_FcrUIElectronDialogProviderImpl, [[_decorator.trace, 2, "openDialog"], [_decorator.trace, 2, "openDialogWithId"], [_decorator.trace, 2, "closeDialog"], [_decorator.trace, 2, "closeDialogById"], [_decorator.trace, 2, "openWithKeyAndId"], [_decorator.trace, 2, "setSharingDisplayBounds"]], [], 0, void 0, _provider.FcrUIDialogProviderBase).e;
267
275
  var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 1);
268
276
  _initProto = _applyDecs$e2[0];
269
277
  _applyDecs$e;
@@ -1,8 +1,40 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.symbol.description.js");
5
+ require("core-js/modules/es.symbol.to-primitive.js");
6
+ require("core-js/modules/es.array.is-array.js");
7
+ require("core-js/modules/es.array.iterator.js");
8
+ require("core-js/modules/es.array.push.js");
9
+ require("core-js/modules/es.date.to-primitive.js");
10
+ require("core-js/modules/es.function.bind.js");
11
+ require("core-js/modules/es.function.name.js");
12
+ require("core-js/modules/es.map.js");
13
+ require("core-js/modules/es.number.constructor.js");
14
+ require("core-js/modules/es.object.create.js");
3
15
  require("core-js/modules/es.object.define-property.js");
16
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
4
17
  require("core-js/modules/es.reflect.construct.js");
18
+ require("core-js/modules/es.string.iterator.js");
19
+ require("core-js/modules/esnext.function.metadata.js");
20
+ require("core-js/modules/esnext.map.delete-all.js");
21
+ require("core-js/modules/esnext.map.emplace.js");
22
+ require("core-js/modules/esnext.map.every.js");
23
+ require("core-js/modules/esnext.map.filter.js");
24
+ require("core-js/modules/esnext.map.find.js");
25
+ require("core-js/modules/esnext.map.find-key.js");
26
+ require("core-js/modules/esnext.map.includes.js");
27
+ require("core-js/modules/esnext.map.key-of.js");
28
+ require("core-js/modules/esnext.map.map-keys.js");
29
+ require("core-js/modules/esnext.map.map-values.js");
30
+ require("core-js/modules/esnext.map.merge.js");
31
+ require("core-js/modules/esnext.map.reduce.js");
32
+ require("core-js/modules/esnext.map.some.js");
33
+ require("core-js/modules/esnext.map.update.js");
34
+ require("core-js/modules/esnext.symbol.metadata.js");
35
+ require("core-js/modules/web.dom-collections.iterator.js");
5
36
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
37
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
38
  Object.defineProperty(exports, "__esModule", {
7
39
  value: true
8
40
  });
@@ -12,6 +44,7 @@ require("core-js/modules/es.error.cause.js");
12
44
  require("core-js/modules/es.error.to-string.js");
13
45
  require("core-js/modules/es.object.to-string.js");
14
46
  require("core-js/modules/es.promise.js");
47
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
48
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
49
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
50
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -25,16 +58,24 @@ var _type = require("./type");
25
58
  var _objectManager2 = require("../../../object-manager");
26
59
  var _type2 = require("fcr-core/lib/type");
27
60
  var _defaultConfig = require("../../../utilities/default-config");
61
+ var _decorator = require("agora-foundation/lib/decorator");
62
+ var _FcrUIBrowserScreenShareStrategy;
63
+ var _initProto;
28
64
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
29
65
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
66
+ 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)]; } }; }
67
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
68
+ 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); }
69
+ 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; }
70
+ 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; }
30
71
  var FcrUIBrowserScreenShareStrategy = exports.FcrUIBrowserScreenShareStrategy = /*#__PURE__*/function (_FcrUIScreenShareStra) {
31
72
  function FcrUIBrowserScreenShareStrategy(_objectManager) {
32
73
  var _this;
33
74
  (0, _classCallCheck2["default"])(this, FcrUIBrowserScreenShareStrategy);
34
75
  _this = _callSuper(this, FcrUIBrowserScreenShareStrategy);
35
- (0, _defineProperty2["default"])(_this, "logger", (0, _logger.createLogger)({
76
+ (0, _defineProperty2["default"])(_this, "logger", (_initProto(_this), (0, _logger.createLogger)({
36
77
  prefix: 'BrowserScreenShareStrategy'
37
- }));
78
+ })));
38
79
  (0, _defineProperty2["default"])(_this, "_screenTrack", null);
39
80
  (0, _defineProperty2["default"])(_this, "_loopbackDeviceId", 'default');
40
81
  (0, _defineProperty2["default"])(_this, "_isReplacing", false);
@@ -60,6 +101,7 @@ var FcrUIBrowserScreenShareStrategy = exports.FcrUIBrowserScreenShareStrategy =
60
101
  }
61
102
  }
62
103
  };
104
+ _this.addObserver((0, _logger.generateLogObserver)(_this.logger, ['onScreenCaptureError', 'onScreenCaptureReplaced', 'onScreenCaptureStarted', 'onScreenCaptureStopped']));
63
105
  return _this;
64
106
  }
65
107
  (0, _inherits2["default"])(FcrUIBrowserScreenShareStrategy, _FcrUIScreenShareStra);
@@ -207,7 +249,7 @@ var FcrUIBrowserScreenShareStrategy = exports.FcrUIBrowserScreenShareStrategy =
207
249
  });
208
250
  screenTrack.addObserver(this._screenTrackObserver);
209
251
  screenTrack.setCaptureParams({
210
- withAudio: true,
252
+ withAudio: false,
211
253
  dimensions: _defaultConfig.screenCaptureHighStreamEncoderConfig.dimensions,
212
254
  frameRate: _defaultConfig.screenCaptureHighStreamEncoderConfig.frameRate,
213
255
  bitrate: _defaultConfig.screenCaptureHighStreamEncoderConfig.bitrate
@@ -263,4 +305,9 @@ var FcrUIBrowserScreenShareStrategy = exports.FcrUIBrowserScreenShareStrategy =
263
305
  return _stopTrackAndWaitUntilSuccess;
264
306
  }()
265
307
  }]);
266
- }(_type.FcrUIScreenShareStrategy);
308
+ }(_type.FcrUIScreenShareStrategy);
309
+ _FcrUIBrowserScreenShareStrategy = FcrUIBrowserScreenShareStrategy;
310
+ var _applyDecs$e = _applyDecs(_FcrUIBrowserScreenShareStrategy, [[_decorator.trace, 2, "startLoopbackCapture"], [_decorator.trace, 2, "stopLoopbackCapture"], [_decorator.trace, 2, "replaceScreenCaptureSource"], [_decorator.trace, 2, "startScreenCapture"], [_decorator.trace, 2, "stopScreenCapture"]], [], 0, void 0, _type.FcrUIScreenShareStrategy).e;
311
+ var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 1);
312
+ _initProto = _applyDecs$e2[0];
313
+ _applyDecs$e;
@@ -1,8 +1,40 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.symbol.description.js");
5
+ require("core-js/modules/es.symbol.to-primitive.js");
6
+ require("core-js/modules/es.array.is-array.js");
7
+ require("core-js/modules/es.array.iterator.js");
8
+ require("core-js/modules/es.array.push.js");
9
+ require("core-js/modules/es.date.to-primitive.js");
10
+ require("core-js/modules/es.function.bind.js");
11
+ require("core-js/modules/es.function.name.js");
12
+ require("core-js/modules/es.map.js");
13
+ require("core-js/modules/es.number.constructor.js");
14
+ require("core-js/modules/es.object.create.js");
3
15
  require("core-js/modules/es.object.define-property.js");
16
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
4
17
  require("core-js/modules/es.reflect.construct.js");
18
+ require("core-js/modules/es.string.iterator.js");
19
+ require("core-js/modules/esnext.function.metadata.js");
20
+ require("core-js/modules/esnext.map.delete-all.js");
21
+ require("core-js/modules/esnext.map.emplace.js");
22
+ require("core-js/modules/esnext.map.every.js");
23
+ require("core-js/modules/esnext.map.filter.js");
24
+ require("core-js/modules/esnext.map.find.js");
25
+ require("core-js/modules/esnext.map.find-key.js");
26
+ require("core-js/modules/esnext.map.includes.js");
27
+ require("core-js/modules/esnext.map.key-of.js");
28
+ require("core-js/modules/esnext.map.map-keys.js");
29
+ require("core-js/modules/esnext.map.map-values.js");
30
+ require("core-js/modules/esnext.map.merge.js");
31
+ require("core-js/modules/esnext.map.reduce.js");
32
+ require("core-js/modules/esnext.map.some.js");
33
+ require("core-js/modules/esnext.map.update.js");
34
+ require("core-js/modules/esnext.symbol.metadata.js");
35
+ require("core-js/modules/web.dom-collections.iterator.js");
5
36
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
37
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
38
  Object.defineProperty(exports, "__esModule", {
7
39
  value: true
8
40
  });
@@ -13,6 +45,7 @@ require("core-js/modules/es.error.to-string.js");
13
45
  require("core-js/modules/es.array.concat.js");
14
46
  require("core-js/modules/es.object.to-string.js");
15
47
  require("core-js/modules/es.promise.js");
48
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
16
49
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
50
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
18
51
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -24,16 +57,24 @@ var _logger = require("../../../utilities/logger");
24
57
  var _type = require("./type");
25
58
  var _objectManager2 = require("../../../object-manager");
26
59
  var _fcrCore = require("fcr-core");
60
+ var _decorator = require("agora-foundation/lib/decorator");
61
+ var _FcrUIElectronScreenShareStrategy;
62
+ var _initProto;
27
63
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
28
64
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
65
+ 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)]; } }; }
66
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
67
+ 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); }
68
+ 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; }
69
+ 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; }
29
70
  var FcrUIElectronScreenShareStrategy = exports.FcrUIElectronScreenShareStrategy = /*#__PURE__*/function (_FcrUIScreenShareStra) {
30
71
  function FcrUIElectronScreenShareStrategy(_objectManager) {
31
72
  var _this;
32
73
  (0, _classCallCheck2["default"])(this, FcrUIElectronScreenShareStrategy);
33
74
  _this = _callSuper(this, FcrUIElectronScreenShareStrategy);
34
- (0, _defineProperty2["default"])(_this, "logger", (0, _logger.createLogger)({
75
+ (0, _defineProperty2["default"])(_this, "logger", (_initProto(_this), (0, _logger.createLogger)({
35
76
  prefix: 'ElectronScreenShareStrategy'
36
- }));
77
+ })));
37
78
  (0, _defineProperty2["default"])(_this, "_screenTrack", null);
38
79
  (0, _defineProperty2["default"])(_this, "_loopbackTrack", null);
39
80
  (0, _defineProperty2["default"])(_this, "_isReplacing", false);
@@ -43,10 +84,16 @@ var FcrUIElectronScreenShareStrategy = exports.FcrUIElectronScreenShareStrategy
43
84
  _this._screenTrackObserver = {
44
85
  onScreenCaptureStateUpdated: function onScreenCaptureStateUpdated(sourceId, state) {
45
86
  if (state === _fcrCore.FcrMediaSourceState.ERROR) {
87
+ if (_this._screenTrack) {
88
+ _this._screenTrack.removeObserver(_this._screenTrackObserver);
89
+ }
46
90
  _this._screenTrack = null;
47
91
  _this.observable.notifyObservers('onScreenCaptureError', sourceId, _type.FcrUIScreenShareCaptureError.UNKNOWN);
48
92
  }
49
93
  if (state === _fcrCore.FcrMediaSourceState.CLOSE) {
94
+ if (_this._screenTrack) {
95
+ _this._screenTrack.removeObserver(_this._screenTrackObserver);
96
+ }
50
97
  _this._screenTrack = null;
51
98
  if (!_this._isReplacing) {
52
99
  _this.observable.notifyObservers('onScreenCaptureStopped', sourceId);
@@ -62,6 +109,7 @@ var FcrUIElectronScreenShareStrategy = exports.FcrUIElectronScreenShareStrategy
62
109
  }
63
110
  }
64
111
  };
112
+ _this.addObserver((0, _logger.generateLogObserver)(_this.logger, ['onScreenCaptureError', 'onScreenCaptureReplaced', 'onScreenCaptureStarted', 'onScreenCaptureStopped']));
65
113
  return _this;
66
114
  }
67
115
  (0, _inherits2["default"])(FcrUIElectronScreenShareStrategy, _FcrUIScreenShareStra);
@@ -214,6 +262,13 @@ var FcrUIElectronScreenShareStrategy = exports.FcrUIElectronScreenShareStrategy
214
262
  frameRate = _args4.length > 4 ? _args4[4] : undefined;
215
263
  bitrate = _args4.length > 5 ? _args4[5] : undefined;
216
264
  this._screenTrack = screenTrack;
265
+ if (!(screenTrack.getState() === _fcrCore.FcrMediaSourceState.OPEN)) {
266
+ _context4.next = 1;
267
+ break;
268
+ }
269
+ this.logger.info('the screen track is already started');
270
+ return _context4.abrupt("return");
271
+ case 1:
217
272
  p = new Promise(function (resolve, reject) {
218
273
  var waitObserver = {
219
274
  onScreenCaptureStateUpdated: function onScreenCaptureStateUpdated(sourceId, state) {
@@ -239,9 +294,9 @@ var FcrUIElectronScreenShareStrategy = exports.FcrUIElectronScreenShareStrategy
239
294
  bitrate: bitrate
240
295
  });
241
296
  screenTrack.start(captureType, excludeWindows);
242
- _context4.next = 1;
297
+ _context4.next = 2;
243
298
  return p;
244
- case 1:
299
+ case 2:
245
300
  case "end":
246
301
  return _context4.stop();
247
302
  }
@@ -261,6 +316,15 @@ var FcrUIElectronScreenShareStrategy = exports.FcrUIElectronScreenShareStrategy
261
316
  return _regenerator["default"].wrap(function (_context5) {
262
317
  while (1) switch (_context5.prev = _context5.next) {
263
318
  case 0:
319
+ if (!(screenTrack.getState() === _fcrCore.FcrMediaSourceState.CLOSE)) {
320
+ _context5.next = 1;
321
+ break;
322
+ }
323
+ this.logger.info('the screen track is already stopped');
324
+ screenTrack.removeObserver(this._screenTrackObserver);
325
+ this._screenTrack = null;
326
+ return _context5.abrupt("return");
327
+ case 1:
264
328
  p = new Promise(function (resolve) {
265
329
  var waitObserver = {
266
330
  onScreenCaptureStateUpdated: function onScreenCaptureStateUpdated(sourceId, state) {
@@ -274,12 +338,12 @@ var FcrUIElectronScreenShareStrategy = exports.FcrUIElectronScreenShareStrategy
274
338
  screenTrack.addObserver(waitObserver);
275
339
  });
276
340
  screenTrack.stop();
277
- _context5.next = 1;
341
+ _context5.next = 2;
278
342
  return p;
279
- case 1:
343
+ case 2:
280
344
  screenTrack.removeObserver(this._screenTrackObserver);
281
345
  this._screenTrack = null;
282
- case 2:
346
+ case 3:
283
347
  case "end":
284
348
  return _context5.stop();
285
349
  }
@@ -291,4 +355,9 @@ var FcrUIElectronScreenShareStrategy = exports.FcrUIElectronScreenShareStrategy
291
355
  return _stopTrackAndWaitUntilSuccess;
292
356
  }()
293
357
  }]);
294
- }(_type.FcrUIScreenShareStrategy);
358
+ }(_type.FcrUIScreenShareStrategy);
359
+ _FcrUIElectronScreenShareStrategy = FcrUIElectronScreenShareStrategy;
360
+ var _applyDecs$e = _applyDecs(_FcrUIElectronScreenShareStrategy, [[_decorator.trace, 2, "startScreenCapture"], [_decorator.trace, 2, "stopScreenCapture"], [_decorator.trace, 2, "startLoopbackCapture"], [_decorator.trace, 2, "stopLoopbackCapture"], [_decorator.trace, 2, "replaceScreenCaptureSource"]], [], 0, void 0, _type.FcrUIScreenShareStrategy).e;
361
+ var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 1);
362
+ _initProto = _applyDecs$e2[0];
363
+ _applyDecs$e;
@@ -4,13 +4,15 @@ import { FcrVideoEncoderConfig } from 'fcr-core/lib/type';
4
4
  import { FcrUIScreenStreamUpdateParams } from './type';
5
5
  export declare class FcrUIScreenStreamSync implements FcrUIManagedObject {
6
6
  protected logger: import("agora-foundation/lib/logger").Logger;
7
+ private _videoWindowDataSource;
7
8
  private _myCurrentScreenShareStreamId;
8
9
  private _sharingControl;
9
10
  private _streamControl;
10
11
  private _released;
12
+ private _isStopped;
11
13
  constructor(objectManager: FcrUIObjectManager);
12
14
  release(): void;
13
- checkIfMyScreenShareStreamExists(): string | null;
15
+ checkIfMyScreenShareStreamExists(): boolean;
14
16
  startScreenStream(createConfig: FcrScreenStreamCreateConfig, encoderConfig: FcrVideoEncoderConfig): Promise<void>;
15
17
  stopScreenStream(): Promise<void>;
16
18
  updateStream({ videoSourceId, audioPublishPrivilege, videoPublishPrivilege, }: FcrUIScreenStreamUpdateParams): Promise<void>;