fcr-ui-scene 3.6.2 → 3.6.3

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 (197) hide show
  1. package/lib/creator.d.ts +1 -0
  2. package/lib/creator.js +38 -26
  3. package/lib/electron/app.js +5 -4
  4. package/lib/electron/bootstrap-dev.js +3 -0
  5. package/lib/electron/injections.d.ts +3 -2
  6. package/lib/electron/injections.js +5 -6
  7. package/lib/electron/main.js +15 -11
  8. package/lib/electron/window.js +0 -3
  9. package/lib/fragments/annotation/index.d.ts +1 -0
  10. package/lib/fragments/annotation/index.js +55 -40
  11. package/lib/fragments/annotation/store.d.ts +7 -2
  12. package/lib/fragments/annotation/store.js +170 -90
  13. package/lib/fragments/annotation/view.d.ts +1 -0
  14. package/lib/fragments/annotation/view.js +10 -2
  15. package/lib/modules/action-bar/index.css +4 -0
  16. package/lib/modules/action-bar/store.d.ts +1 -7
  17. package/lib/modules/action-bar/store.js +35 -82
  18. package/lib/modules/annotation/board-cursor.css +76 -0
  19. package/lib/modules/annotation/components/control-bar/index.js +42 -2
  20. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.js +3 -1
  21. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +1 -0
  22. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.js +11 -5
  23. package/lib/modules/annotation/components/toolbar/components/item/item.d.ts +1 -0
  24. package/lib/modules/annotation/components/toolbar/components/item/item.js +3 -2
  25. package/lib/modules/annotation/index.d.ts +2 -0
  26. package/lib/modules/annotation/index.js +2 -1
  27. package/lib/modules/annotation/store.d.ts +11 -3
  28. package/lib/modules/annotation/store.js +209 -184
  29. package/lib/modules/annotation/style.css +3 -3
  30. package/lib/modules/annotation/view.d.ts +1 -0
  31. package/lib/modules/annotation/view.js +26 -9
  32. package/lib/modules/components/member-window/components/member-actions/components/audio-control.d.ts +0 -1
  33. package/lib/modules/components/member-window/components/member-actions/components/audio-control.js +10 -4
  34. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.d.ts +2 -2
  35. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +4 -4
  36. package/lib/modules/components/member-window/components/member-actions/components/icon-status.d.ts +0 -2
  37. package/lib/modules/components/member-window/components/member-actions/components/icon-status.js +3 -4
  38. package/lib/modules/components/member-window/components/member-actions/components/more-actions.d.ts +0 -3
  39. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +6 -32
  40. package/lib/modules/components/member-window/components/member-actions/components/share-status.js +11 -3
  41. package/lib/modules/components/member-window/components/member-actions/components/user-info.d.ts +0 -1
  42. package/lib/modules/components/member-window/components/member-actions/components/user-info.js +7 -10
  43. package/lib/modules/components/member-window/components/member-actions/components/user-tag.d.ts +0 -1
  44. package/lib/modules/components/member-window/components/member-actions/components/user-tag.js +0 -2
  45. package/lib/modules/components/member-window/components/member-actions/index.js +1 -32
  46. package/lib/modules/components/member-window/components/member-actions/store.d.ts +38 -1
  47. package/lib/modules/components/member-window/components/member-actions/store.js +130 -23
  48. package/lib/modules/components/member-window/index.css +37 -0
  49. package/lib/modules/control-bar/index.d.ts +0 -4
  50. package/lib/modules/control-bar/index.js +0 -32
  51. package/lib/modules/control-bar/store.d.ts +4 -6
  52. package/lib/modules/control-bar/store.js +63 -103
  53. package/lib/modules/control-bar/view.js +45 -3
  54. package/lib/modules/dialog/components/control-bar/index.d.ts +0 -2
  55. package/lib/modules/dialog/components/control-bar/index.js +1 -3
  56. package/lib/modules/dialog/hooks/useElectron.js +3 -2
  57. package/lib/modules/dialog/index.d.ts +0 -3
  58. package/lib/modules/dialog/index.js +1 -25
  59. package/lib/modules/dialog/store.d.ts +6 -8
  60. package/lib/modules/dialog/store.js +21 -55
  61. package/lib/modules/layout/components/CommonVideoRenderer.js +5 -2
  62. package/lib/modules/layout/type.d.ts +7 -0
  63. package/lib/modules/participant/store.js +59 -28
  64. package/lib/modules/setting/index.d.ts +2 -0
  65. package/lib/modules/setting/index.js +3 -3
  66. package/lib/modules/setting/store.d.ts +8 -10
  67. package/lib/modules/setting/store.js +22 -20
  68. package/lib/modules/share-screen/store.d.ts +3 -0
  69. package/lib/modules/share-screen/store.js +63 -54
  70. package/lib/modules/state-bar/index.css +8 -6
  71. package/lib/modules/state-bar/index.d.ts +2 -0
  72. package/lib/modules/state-bar/index.js +2 -1
  73. package/lib/modules/state-bar/layout-config.d.ts +1 -0
  74. package/lib/modules/state-bar/layout-config.js +15 -5
  75. package/lib/modules/state-bar/store.d.ts +5 -1
  76. package/lib/modules/state-bar/store.js +8 -1
  77. package/lib/modules/state-bar/view.js +9 -5
  78. package/lib/modules/whiteboard/components/control-bar/store.js +2 -0
  79. package/lib/modules/whiteboard/components/toolbar/store.d.ts +7 -3
  80. package/lib/modules/whiteboard/components/toolbar/store.js +61 -35
  81. package/lib/modules/whiteboard/index.js +3 -2
  82. package/lib/modules/whiteboard/style.css +0 -4
  83. package/lib/modules/whiteboard/view.js +8 -2
  84. package/lib/providers/annotation-provider.d.ts +63 -12
  85. package/lib/providers/annotation-provider.js +51 -41
  86. package/lib/providers/device-provider.d.ts +3 -3
  87. package/lib/providers/device-provider.js +8 -6
  88. package/lib/providers/event-provider.d.ts +3 -3
  89. package/lib/providers/screen-share-provider.js +53 -60
  90. package/lib/providers/sharing-provider.d.ts +5 -1
  91. package/lib/providers/sharing-provider.js +16 -1
  92. package/lib/providers/user-setting-storage-provider.d.ts +20 -0
  93. package/lib/providers/user-setting-storage-provider.js +74 -0
  94. package/lib/scenes/main-scene.js +2 -3
  95. package/lib/scenes/waiting-scene.js +1 -1
  96. package/lib/shared-data-source/config.d.ts +1 -5
  97. package/lib/shared-data-source/config.js +11 -81
  98. package/lib/shared-data-source/screen-share-data.d.ts +4 -0
  99. package/lib/shared-data-source/screen-share-data.js +1 -0
  100. package/lib/shared-data-source/setting.d.ts +13 -13
  101. package/lib/shared-data-source/setting.js +10 -6
  102. package/lib/shared-data-source/video-window.d.ts +2 -1
  103. package/lib/shared-data-source/video-window.js +56 -36
  104. package/lib/translations/enUS.d.ts +8 -0
  105. package/lib/translations/enUS.js +9 -1
  106. package/lib/translations/zhCN.d.ts +8 -0
  107. package/lib/translations/zhCN.js +11 -3
  108. package/lib/type.d.ts +2 -1
  109. package/lib/ui-scene.js +11 -6
  110. package/lib/utilities/constant.d.ts +2 -1
  111. package/lib/utilities/constant.js +1 -0
  112. package/lib/utilities/setting-config-storage.d.ts +5 -6
  113. package/lib/utilities/setting-config-storage.js +33 -39
  114. package/lib/utilities/tools.d.ts +1 -0
  115. package/lib/utilities/tools.js +3 -2
  116. package/package.json +8 -6
  117. package/dist/132.js +0 -2
  118. package/dist/132.js.LICENSE.txt +0 -311
  119. package/dist/317.js +0 -2
  120. package/dist/317.js.LICENSE.txt +0 -20
  121. package/dist/651.js +0 -2
  122. package/dist/651.js.LICENSE.txt +0 -1
  123. package/dist/689343b64b60bfb7ffff.png +0 -0
  124. package/dist/73.js +0 -1
  125. package/dist/885f9369ea05a8ac0e56.png +0 -0
  126. package/dist/90f383876a6e93e7c7ca.png +0 -0
  127. package/dist/9b37584780995fc5df8c.gif +0 -0
  128. package/dist/annotation.e5cbd3a70b6d42361872.css +0 -1274
  129. package/dist/annotation.html +0 -1
  130. package/dist/annotation.js +0 -2
  131. package/dist/annotation.js.LICENSE.txt +0 -252
  132. package/dist/assets/browser/images/default1.jpg +0 -0
  133. package/dist/assets/browser/images/default2.jpg +0 -0
  134. package/dist/assets/browser/images/default3.jpg +0 -0
  135. package/dist/assets/browser/images/default4.jpg +0 -0
  136. package/dist/assets/browser/images/default5.jpg +0 -0
  137. package/dist/assets/browser/images/default6.jpg +0 -0
  138. package/dist/assets/browser/images/default7.jpg +0 -0
  139. package/dist/assets/browser/sound_effects/pretest.mp3 +0 -0
  140. package/dist/assets/browser/sound_effects/recording_started.mp3 +0 -0
  141. package/dist/assets/browser/sound_effects/remote_user_joined.mp3 +0 -0
  142. package/dist/assets/browser/sound_effects/speaker_test.mp3 +0 -0
  143. package/dist/assets/browser/videos/default8.mp4 +0 -0
  144. package/dist/assets/browser/videos/default9.mp4 +0 -0
  145. package/dist/assets/cursors/fcr_whiteboard_input.ico +0 -0
  146. package/dist/assets/cursors/fcr_whiteboard_pen.ico +0 -0
  147. package/dist/assets/cursors/fcr_whiteboard_shape_-straightline.ico +0 -0
  148. package/dist/assets/cursors/fcr_whiteboard_shape_arrow.ico +0 -0
  149. package/dist/assets/cursors/fcr_whiteboard_shape_circle.ico +0 -0
  150. package/dist/assets/cursors/fcr_whiteboard_shape_rectangle.ico +0 -0
  151. package/dist/assets/cursors/fcr_whiteboard_shape_triangle.ico +0 -0
  152. package/dist/assets/electron/images/default1.jpg +0 -0
  153. package/dist/assets/electron/images/default2.jpg +0 -0
  154. package/dist/assets/electron/sound_effects/pretest.mp3 +0 -0
  155. package/dist/assets/electron/videos/default8.mp4 +0 -0
  156. package/dist/assets/fcr_chat_reddot.svg +0 -5
  157. package/dist/assets/fcr_defaultpage.png +0 -0
  158. package/dist/assets/fcr_grid_big.svg +0 -3
  159. package/dist/assets/fcr_leave2.svg +0 -58
  160. package/dist/assets/fcr_listontop_big.svg +0 -3
  161. package/dist/assets/full-screen-error-boundary-img.png +0 -0
  162. package/dist/assets/leave-meeting.png +0 -0
  163. package/dist/assets/loading.gif +0 -0
  164. package/dist/assets/login_confirm.png +0 -0
  165. package/dist/assets/pretest.mp3 +0 -0
  166. package/dist/assets/state-bar-logo.png +0 -0
  167. package/dist/assets/step-gradient.svg +0 -10
  168. package/dist/b74b002687a3a3346bec.png +0 -0
  169. package/dist/b94869094481702f949b.png +0 -0
  170. package/dist/ebeace75fd46b90d890e.png +0 -0
  171. package/dist/electron/app.js +0 -194
  172. package/dist/electron/bootstrap-dev.js +0 -46
  173. package/dist/electron/bootstrap-sdk.js +0 -211
  174. package/dist/electron/default-options.js +0 -25
  175. package/dist/electron/env.js +0 -13
  176. package/dist/electron/index.js +0 -20
  177. package/dist/electron/injections.js +0 -903
  178. package/dist/electron/ipc/ipc.js +0 -141
  179. package/dist/electron/ipc/type.js +0 -19
  180. package/dist/electron/logger.js +0 -65
  181. package/dist/electron/main.js +0 -94
  182. package/dist/electron/plugins/devtool-shortcut.js +0 -33
  183. package/dist/electron/plugins/meeting-state.js +0 -39
  184. package/dist/electron/plugins/screenshot.js +0 -54
  185. package/dist/electron/preload.js +0 -108
  186. package/dist/electron/tools.js +0 -66
  187. package/dist/electron/window.js +0 -123
  188. package/dist/extensions/agora-extension-virtual-background/agora-wasm.wasm +0 -0
  189. package/dist/extensions/ai-denoiser/denoiser-wasm-simd.wasm +0 -0
  190. package/dist/extensions/ai-denoiser/denoiser-wasm.js +0 -1
  191. package/dist/extensions/ai-denoiser/denoiser-wasm.wasm +0 -0
  192. package/dist/fad688b9135b15d6c405.png +0 -0
  193. package/dist/index.html +0 -224
  194. package/dist/main.393a2a91ab7fc05ffce6.css +0 -15403
  195. package/dist/main.js +0 -2
  196. package/dist/main.js.LICENSE.txt +0 -272
  197. package/dist/worker-entry.worker.js.LICENSE.txt +0 -13
@@ -8,7 +8,6 @@ require("core-js/modules/es.error.cause.js");
8
8
  require("core-js/modules/es.error.to-string.js");
9
9
  require("core-js/modules/es.array.from.js");
10
10
  require("core-js/modules/es.array.is-array.js");
11
- require("core-js/modules/es.array.push.js");
12
11
  require("core-js/modules/es.array.slice.js");
13
12
  require("core-js/modules/es.date.to-primitive.js");
14
13
  require("core-js/modules/es.date.to-string.js");
@@ -47,9 +46,11 @@ require("core-js/modules/es.array.find.js");
47
46
  require("core-js/modules/es.array.for-each.js");
48
47
  require("core-js/modules/es.array.includes.js");
49
48
  require("core-js/modules/es.array.iterator.js");
49
+ require("core-js/modules/es.array.push.js");
50
50
  require("core-js/modules/es.date.to-json.js");
51
51
  require("core-js/modules/es.json.stringify.js");
52
52
  require("core-js/modules/es.object.to-string.js");
53
+ require("core-js/modules/es.promise.js");
53
54
  require("core-js/modules/es.regexp.constructor.js");
54
55
  require("core-js/modules/es.regexp.dot-all.js");
55
56
  require("core-js/modules/es.regexp.exec.js");
@@ -79,11 +80,18 @@ var _constant = require("../../utilities/constant");
79
80
  var _decorator = require("agora-foundation/lib/decorator");
80
81
  var _rendererEvent = require("../../utilities/renderer-event");
81
82
  var _type = require("agora-rte-sdk/lib/core/rtc/type");
83
+ var _annotationProvider = require("../../providers/annotation-provider");
82
84
  var _mobx = require("mobx");
85
+ var _fcrCore = require("fcr-core");
83
86
  var _type2 = require("fcr-core/lib/room-control/sharing-control/type");
87
+ var _store = require("../whiteboard/components/toolbar/store");
88
+ var _i18n = require("agora-ui-foundation/lib/i18n");
84
89
  var _logger = require("../../utilities/logger");
90
+ var _isNumber = _interopRequireDefault(require("lodash/isNumber"));
91
+ var _env = require("agora-foundation/lib/utilities/env");
92
+ var _type3 = require("../whiteboard/type");
85
93
  var _AnnotationStore;
86
- var _initProto, _init_annotationMainWindow, _init_resetToolbarStore, _init_isShowToolbar, _setToolsShowDecs, _zoomInDecs, _zoomOutDecs, _fullContainerDecs, _setOriginScalcDecs, _calcBoardPositionDecs, _handleBoardDomLoadDecs, _handleBoardContainerDomLoadDecs, _mountDecs, _unmountDecs, _ref;
94
+ var _initProto, _init_annotationMainWindow, _init_resetToolbarStore, _init_isShowToolbar, _setToolsShowDecs, _zoomInDecs, _zoomOutDecs, _fullContainerDecs, _setOriginScalcDecs, _drawReceiverBoardDecs, _handleBoardDomLoadDecs, _handleBoardContainerDomLoadDecs, _annotationEndedDecs, _mountDecs, _unmountDecs, _ref;
87
95
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
88
96
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
89
97
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
@@ -100,7 +108,7 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
100
108
  var _A = /*#__PURE__*/new WeakMap();
101
109
  var _B = /*#__PURE__*/new WeakMap();
102
110
  var _C = /*#__PURE__*/new WeakMap();
103
- _ref = (_setToolsShowDecs = [_mobx.action, _mobx.action.bound], _zoomInDecs = [_mobx.action, _mobx.action.bound], _zoomOutDecs = [_mobx.action, _mobx.action.bound], _fullContainerDecs = [_mobx.action, _mobx.action.bound], _setOriginScalcDecs = [_mobx.action, _mobx.action.bound], _calcBoardPositionDecs = [_mobx.action, _mobx.action.bound], _handleBoardDomLoadDecs = [_mobx.action, _mobx.action.bound], _handleBoardContainerDomLoadDecs = [_mobx.action, _mobx.action.bound], _mountDecs = [_mobx.action, _mobx.action.bound], _unmountDecs = [_mobx.action, _mobx.action.bound], "logger");
111
+ _ref = (_setToolsShowDecs = [_mobx.action, _mobx.action.bound], _zoomInDecs = [_mobx.action, _mobx.action.bound], _zoomOutDecs = [_mobx.action, _mobx.action.bound], _fullContainerDecs = [_mobx.action, _mobx.action.bound], _setOriginScalcDecs = [_mobx.action, _mobx.action.bound], _drawReceiverBoardDecs = [_mobx.action, _mobx.action.bound], _handleBoardDomLoadDecs = [_mobx.action, _mobx.action.bound], _handleBoardContainerDomLoadDecs = [_mobx.action, _mobx.action.bound], _annotationEndedDecs = [_mobx.action, _mobx.action.bound], _mountDecs = [_mobx.action, _mobx.action.bound], _unmountDecs = [_mobx.action, _mobx.action.bound], "logger");
104
112
  var AnnotationStore = exports.AnnotationStore = /*#__PURE__*/function () {
105
113
  function AnnotationStore(_ref2) {
106
114
  var _this = this;
@@ -114,7 +122,8 @@ var AnnotationStore = exports.AnnotationStore = /*#__PURE__*/function () {
114
122
  sharedScreenSharedDataSource = _ref2.sharedScreenSharedDataSource,
115
123
  privilegeProvider = _ref2.privilegeProvider,
116
124
  messageProvider = _ref2.messageProvider,
117
- localStorageProvider = _ref2.localStorageProvider;
125
+ localStorageProvider = _ref2.localStorageProvider,
126
+ eventProvider = _ref2.eventProvider;
118
127
  (0, _classCallCheck2["default"])(this, AnnotationStore);
119
128
  (0, _defineProperty2["default"])(this, _ref, (_initProto(this), (0, _logger.createLogger)({
120
129
  prefix: 'AnnotationStore'
@@ -178,123 +187,143 @@ var AnnotationStore = exports.AnnotationStore = /*#__PURE__*/function () {
178
187
  this._roomControl = roomControl;
179
188
  this._sharedSecuritySharedDataSource = sharedSecuritySharedDataSource;
180
189
  this._sharedScreenSharedDataSource = sharedScreenSharedDataSource;
181
- // this._dialogProvider.addObserver(this._dialogObserver);
190
+ this._dialogProvider.addObserver(this._dialogObserver);
182
191
  this._privilegeProvider = privilegeProvider;
183
192
  this._messageProvider = messageProvider;
184
- // this._disposers.push(
185
- // reaction(
186
- // () => this.annotating,
187
- // (annotating) => {
188
- // if (this._isLocalUserSharingOwner) {
189
- // if (annotating) {
190
- // this._removeWindowResizeListenner();
191
- // } else {
192
- // this._addWindowResizeListenner();
193
- // }
194
- // }
195
- // },
196
- // ),
197
- // reaction(
198
- // () => this._memberDataSource.shareScreenVideoRatio,
199
- // (ratio) => {
200
- // if (ratio > 0 && this._boardDom) {
201
- // const { height } = this._boardDom.getBoundingClientRect();
202
- // console.log('annotation current boardDom height:', height);
203
- // const width = height * ratio;
204
- // this._boardOriginWidth = width;
205
- // this._boardDom.style.width = `${width}px`;
206
- // this._boardDom.style.height = `${height}px`;
207
- // }
208
- // },
209
- // ),
210
- // // reaction(
211
- // // () => this._memberDataSource.shareScreenVideoSize,
212
- // // (size) => {
213
- // // if (size && this._boardDom) {
214
- // // this.logger.info('annotation shareScreenVideoSize: ', size);
215
- // // calcAnnotationAreaSize(this._boardDom, size.width, size.height);
216
- // // }
217
- // // },
218
- // // ),
219
- // reaction(
220
- // () => this.isScreenSharing,
221
- // (sharing) => {
222
- // if (this._isLocalUserSharingOwner) {
223
- // if (sharing) {
224
- // this.screenSharingStarted();
225
- // } else {
226
- // this._removeWindowResizeListenner();
227
- // }
228
- // }
229
- // },
230
- // ),
231
- // reaction(
232
- // () => this._annotationProvider.annotationState,
233
- // (state) => {
234
- // this.logger.info('annotation transaction state: ', state);
235
- // if (!this._isLocalUserSharingOwner) {
236
- // if (state === FcrAnnotationState.START) {
237
- // this.logger.info('annotation transaction start');
238
- // this._annotationControl = this._annotationProvider.annotationControl;
239
- // this._toolbarStore = new ToolbarStore(
240
- // this._annotationControl! as FcrWhiteboardControl,
241
- // this._roomControl!,
242
- // this._annotationProvider,
243
- // );
244
- // this.resetToolbarStore = true;
245
- // } else {
246
- // this.logger.info('annotation transaction end');
247
- // this.resetToolbarStore = false;
248
- // this._boardContainerObserver.disconnect();
249
- // this._messageProvider.showToast({
250
- // message: transI18n(
251
- // 'fmt_screenshare_toast_annotation_controls_screen_sharing_disabled',
252
- // ),
253
- // type: 'info',
254
- // });
255
- // this._toolbarStore = undefined;
256
- // this._unmount();
257
- // this.isShowToolbar = false;
258
- // }
259
- // }
260
- // },
261
- // ),
262
- // reaction(
263
- // () => this._sharedScreenSharedDataSource.screenSharingState,
264
- // (state) => {
265
- // if (state === FcrMediaSourceState.CLOSE && this._isLocalUserSharingOwner) {
266
- // console.log('screen sharing state is close');
267
- // this._annotationProvider.hideAnnotationWindow();
268
- // this._removeWindowResizeListenner();
269
- // }
270
- // },
271
- // ),
272
- // reaction(
273
- // () => this.allowAnnotationWriteState,
274
- // (canWrite) => {
275
- // if (!this._isLocalUserSharingOwner) {
276
- // // const toastText = canWrite
277
- // // ? transI18n('fmt_screenshare_toast_host_enabled_annotations')
278
- // // : transI18n('fmt_screenshare_toast_host_disabled_annotations');
279
- // // this._messageProvider.showToast({
280
- // // type: 'info',
281
- // // message: toastText,
282
- // // });
283
- // }
284
- // if (!canWrite) {
285
- // this.isShowToolbar = false;
286
- // }
287
- // },
288
- // ),
289
- // reaction(
290
- // () => this.annotationHasStart,
291
- // (hasStart) => {
292
- // if (!hasStart) {
293
- // this.isShowToolbar = false;
294
- // }
295
- // },
296
- // ),
297
- // );
193
+ this._eventProvider = eventProvider;
194
+ this._disposers.push((0, _mobx.reaction)(function () {
195
+ return _this.annotating;
196
+ }, function (annotating) {
197
+ if (_this._isLocalUserSharingOwner) {
198
+ if (annotating) {
199
+ _this._removeWindowResizeListenner();
200
+ } else {
201
+ _this._addWindowResizeListenner();
202
+ }
203
+ }
204
+ }), (0, _mobx.reaction)(function () {
205
+ return _this.isSeizeStream;
206
+ }, function (state) {
207
+ _this.logger.info('[Annotation]: isSeizeStream changed to ', state);
208
+ if (state) {
209
+ _this._sharedScreenSharedDataSource.setIsSeizeStream(false);
210
+ if (_this._isLocalUserSharingOwner) {
211
+ _this._annotationProvider.hideAnnotationWindow();
212
+ _this._removeWindowResizeListenner();
213
+ } else {
214
+ _this._annotationEnded();
215
+ }
216
+ }
217
+ }), (0, _mobx.reaction)(function () {
218
+ return _this._memberDataSource.shareScreenVideoRatio;
219
+ }, function (ratio) {
220
+ if (ratio > 0) {
221
+ _this.drawReceiverBoard(ratio);
222
+ }
223
+ }),
224
+ // reaction(
225
+ // () => this._memberDataSource.shareScreenVideoSize,
226
+ // (size) => {
227
+ // if (size && this._boardDom) {
228
+ // this.logger.info('annotation shareScreenVideoSize: ', size);
229
+ // calcAnnotationAreaSize(this._boardDom, size.width, size.height);
230
+ // }
231
+ // },
232
+ // ),
233
+ (0, _mobx.reaction)(function () {
234
+ return _this.isScreenSharing;
235
+ }, function (sharing) {
236
+ _this.logger.info("[Annotation]: screen sharing reaction sharing changed to ".concat(sharing, ", isReplaceScreen is ").concat(_this.isReplaceScreen, ", isSeizeStream is ").concat(_this.isSeizeStream));
237
+ // web 开启屏幕共享时不需要走这个逻辑
238
+ if (_this.isReplaceScreen || _this.isSeizeStream || !(0, _env.isElectron)()) return;
239
+ if (_this._isLocalUserSharingOwner) {
240
+ if (sharing) {
241
+ _this.screenSharingStarted();
242
+ } else {
243
+ _this._removeWindowResizeListenner();
244
+ }
245
+ }
246
+ }), (0, _mobx.reaction)(function () {
247
+ return _this.isReplaceScreen;
248
+ }, /*#__PURE__*/function () {
249
+ var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(isReplaceScreen) {
250
+ return _regenerator["default"].wrap(function _callee$(_context) {
251
+ while (1) switch (_context.prev = _context.next) {
252
+ case 0:
253
+ if (!(isReplaceScreen && (0, _env.isElectron)())) {
254
+ _context.next = 9;
255
+ break;
256
+ }
257
+ _context.next = 3;
258
+ return new Promise(function (resolve) {
259
+ // 延迟两秒,等待标注内容清理,清理方法在 sdk 中虽然看起来是同步的,但是实际上会有无法清理的情况出现
260
+ (0, _rendererEvent.sendEvent)({
261
+ action: _type3.ToolbarEvents.CLEAN,
262
+ payload: null
263
+ });
264
+ setTimeout(function () {
265
+ return resolve(true);
266
+ }, 2000);
267
+ });
268
+ case 3:
269
+ _this.logger.info("[Annotation]: isReplaceScreen changed to ".concat(isReplaceScreen, ", currentShareInfo is ").concat(JSON.stringify(_this._currentShareInfo)));
270
+ _this._removeWindowResizeListenner();
271
+ _this._annotationProvider.hideAnnotationWindow();
272
+ _this._annotationProvider.setBoundsToAnnotationWindow();
273
+ setTimeout(_this.screenSharingStarted);
274
+ _this._sharedScreenSharedDataSource.setIsReplaceScreen(false);
275
+ case 9:
276
+ case "end":
277
+ return _context.stop();
278
+ }
279
+ }, _callee);
280
+ }));
281
+ return function (_x) {
282
+ return _ref3.apply(this, arguments);
283
+ };
284
+ }()), (0, _mobx.reaction)(function () {
285
+ return _this._annotationProvider.annotationState;
286
+ }, function (state) {
287
+ _this.logger.info('annotation transaction state: ', state);
288
+ if (!_this._isLocalUserSharingOwner) {
289
+ if (state === _annotationProvider.FcrAnnotationState.START) {
290
+ _this.logger.info('annotation transaction start');
291
+ _this._annotationControl = _this._annotationProvider.annotationControl;
292
+ _this._toolbarStore = new _store.ToolbarStore(_this._annotationControl, _this._roomControl, _this._annotationProvider, eventProvider);
293
+ _this.resetToolbarStore = true;
294
+ } else {
295
+ _this._annotationEnded();
296
+ }
297
+ }
298
+ }), (0, _mobx.reaction)(function () {
299
+ return _this._sharedScreenSharedDataSource.screenSharingState;
300
+ }, function (state) {
301
+ if (state === _fcrCore.FcrMediaSourceState.CLOSE && _this._isLocalUserSharingOwner) {
302
+ _this.logger.info('[Annotation]: screenSharingState is close, isReplaceScreen is ', _this.isReplaceScreen);
303
+ if (!_this.isReplaceScreen && (0, _env.isElectron)()) {
304
+ _this._annotationProvider.hideAnnotationWindow();
305
+ _this._removeWindowResizeListenner();
306
+ }
307
+ }
308
+ }), (0, _mobx.reaction)(function () {
309
+ return _this.allowAnnotationWriteState;
310
+ }, function (canWrite) {
311
+ if (!_this._isLocalUserSharingOwner) {
312
+ var toastText = canWrite ? (0, _i18n.transI18n)('fmt_screenshare_toast_host_enabled_annotations') : (0, _i18n.transI18n)('fmt_screenshare_toast_host_disabled_annotations');
313
+ _this._messageProvider.showToast({
314
+ type: 'info',
315
+ message: toastText
316
+ });
317
+ }
318
+ if (!canWrite) {
319
+ _this.isShowToolbar = false;
320
+ }
321
+ }), (0, _mobx.reaction)(function () {
322
+ return _this.isShowToolbar;
323
+ }, function (isShow) {
324
+ var _this$_toolbarStore;
325
+ (_this$_toolbarStore = _this._toolbarStore) === null || _this$_toolbarStore === void 0 || _this$_toolbarStore.resetToolbarVars();
326
+ }));
298
327
  }
299
328
  return (0, _createClass2["default"])(AnnotationStore, [{
300
329
  key: "annotationMainWindow",
@@ -325,6 +354,16 @@ var AnnotationStore = exports.AnnotationStore = /*#__PURE__*/function () {
325
354
  get: function get() {
326
355
  return this._sharedSecuritySharedDataSource.checkedStateMap.hasAnnotationWritePermission;
327
356
  }
357
+ }, {
358
+ key: "isLocalUserHost",
359
+ get: function get() {
360
+ return this._memberDataSource.isLocalUserHost;
361
+ }
362
+ }, {
363
+ key: "screenSharingOwner",
364
+ get: function get() {
365
+ return this._sharedScreenSharedDataSource.screenSharingOwner;
366
+ }
328
367
  }, {
329
368
  key: "screenShareWindowData",
330
369
  get: function get() {
@@ -378,13 +417,30 @@ var AnnotationStore = exports.AnnotationStore = /*#__PURE__*/function () {
378
417
  }, {
379
418
  key: "allowAnnotationWriteState",
380
419
  get: function get() {
381
- return this._privilegeProvider.allowAnnotationWriteState();
420
+ var _this$screenSharingOw;
421
+ return this._privilegeProvider.allowAnnotationWriteState() || this.isLocalUserHost || ((_this$screenSharingOw = this.screenSharingOwner) === null || _this$screenSharingOw === void 0 ? void 0 : _this$screenSharingOw.userId) === this.localUser.userId;
422
+ }
423
+ }, {
424
+ key: "isReplaceScreen",
425
+ get: function get() {
426
+ return this._sharedScreenSharedDataSource.isReplaceScreen;
427
+ }
428
+ }, {
429
+ key: "isSeizeStream",
430
+ get: function get() {
431
+ return this._sharedScreenSharedDataSource.isSeizeStream;
382
432
  }
383
433
  }, {
384
434
  key: "getToolbarStore",
385
435
  value: function getToolbarStore() {
386
436
  return this._toolbarStore;
387
437
  }
438
+ }, {
439
+ key: "currentTool",
440
+ get: function get() {
441
+ var _this$_toolbarStore2;
442
+ return (_this$_toolbarStore2 = this._toolbarStore) === null || _this$_toolbarStore2 === void 0 ? void 0 : _this$_toolbarStore2.observables.currentTool;
443
+ }
388
444
  }, {
389
445
  key: "setToolsShow",
390
446
  value: function setToolsShow() {
@@ -392,26 +448,17 @@ var AnnotationStore = exports.AnnotationStore = /*#__PURE__*/function () {
392
448
  if (this.allowAnnotationWriteState) {
393
449
  var currentFlag = this.isShowToolbar;
394
450
  this.isShowToolbar = !currentFlag;
395
- if (this._toolbarStore) {
396
- if (currentFlag) {
397
- this._toolbarStore.disableToolbar();
398
- } else {
399
- this._toolbarStore.resumeToolbar();
400
- }
401
- }
402
451
  }
403
452
  }
404
453
  }, {
405
454
  key: "zoomIn",
406
455
  value: function zoomIn() {
407
456
  this._annotationProvider.zoomIn();
408
- this.calcBoardPosition();
409
457
  }
410
458
  }, {
411
459
  key: "zoomOut",
412
460
  value: function zoomOut() {
413
461
  this._annotationProvider.zoomOut();
414
- this.calcBoardPosition();
415
462
  }
416
463
  }, {
417
464
  key: "fullContainer",
@@ -426,30 +473,24 @@ var AnnotationStore = exports.AnnotationStore = /*#__PURE__*/function () {
426
473
  boardHeight = _getBoundingClientRec.height;
427
474
  var scalc = width / boardWidth;
428
475
  this._annotationProvider.fullContainer(scalc);
429
- this.calcBoardPosition();
430
476
  }
431
477
  }
432
478
  }, {
433
479
  key: "setOriginScalc",
434
480
  value: function setOriginScalc() {
435
481
  this._annotationProvider.setOriginScalc();
436
- this.calcBoardPosition();
437
482
  }
438
483
  }, {
439
- key: "calcBoardPosition",
440
- value: function calcBoardPosition() {
484
+ key: "drawReceiverBoard",
485
+ value: function drawReceiverBoard(paramRatio) {
441
486
  if (this._boardContainerDom && this._boardDom) {
442
- var _this$_boardOriginWid;
443
487
  var _this$_boardContainer2 = this._boardContainerDom.getBoundingClientRect(),
444
- width = _this$_boardContainer2.width,
445
488
  height = _this$_boardContainer2.height;
446
- var computWidth = (_this$_boardOriginWid = this._boardOriginWidth) !== null && _this$_boardOriginWid !== void 0 ? _this$_boardOriginWid : width;
447
- var newWidth = computWidth * 1;
448
- var newHeight = height * 1;
489
+ var ratio = (0, _isNumber["default"])(paramRatio) ? paramRatio : this._memberDataSource.shareScreenVideoRatio;
490
+ var newWidth = height * ratio;
491
+ this._boardOriginWidth = newWidth;
449
492
  this._boardDom.style.width = "".concat(newWidth, "px");
450
- this._boardDom.style.height = "".concat(newHeight, "px");
451
- this._boardDom.style.marginLeft = "".concat((this._boardOriginWidth - newWidth) / 2, "px");
452
- this._boardDom.style.marginTop = "".concat((height - newHeight) / 2, "px");
493
+ this._boardDom.style.height = "".concat(height, "px");
453
494
  }
454
495
  }
455
496
  }, {
@@ -478,13 +519,13 @@ var AnnotationStore = exports.AnnotationStore = /*#__PURE__*/function () {
478
519
  key: "screenSharingStarted",
479
520
  value: function screenSharingStarted() {
480
521
  this._currentShareInfo = this._annotationProvider.currentShareInfo;
481
- this.logger.info("screenSharingStarting with currentShareInfo: ".concat(JSON.stringify(this._currentShareInfo)));
522
+ this.logger.info("[Annotation]: screenSharingStarting with currentShareInfo: ".concat(JSON.stringify(this._currentShareInfo)));
482
523
  this._annotationProvider.setBoundsToAnnotationWindow();
483
524
  (0, _rendererEvent.sendEvent)({
484
525
  action: _constant.FcrUIRendererEventAction.SET_ANNOTATION_TO_SHOW,
485
526
  payload: true
486
527
  });
487
- this.logger.info('screenSharingStarted will add window resize listenner');
528
+ this.logger.info('[Annotation]: screenSharingStarted will add window resize listenner');
488
529
  this._addWindowResizeListenner();
489
530
  }
490
531
  }, {
@@ -498,19 +539,36 @@ var AnnotationStore = exports.AnnotationStore = /*#__PURE__*/function () {
498
539
  this._unmount();
499
540
  this._boardContainerObserver.disconnect();
500
541
  }
542
+ }, {
543
+ key: "_annotationEnded",
544
+ value: function _annotationEnded() {
545
+ var _this$_toolbarStore3;
546
+ this.logger.info('[Annotation]: annotation transaction end');
547
+ (_this$_toolbarStore3 = this._toolbarStore) === null || _this$_toolbarStore3 === void 0 || _this$_toolbarStore3.resetToolbarVars();
548
+ this.resetToolbarStore = false;
549
+ this._boardContainerObserver.disconnect();
550
+ this._messageProvider.showToast({
551
+ message: (0, _i18n.transI18n)('fmt_screenshare_toast_annotation_controls_screen_sharing_disabled'),
552
+ type: 'info'
553
+ });
554
+ this.isShowToolbar = false;
555
+ this._toolbarStore = undefined;
556
+ this._unmount();
557
+ }
501
558
  }, {
502
559
  key: "_mount",
503
560
  value: function _mount() {
504
561
  this.logger.info('annotation mount boardMainWindow: ', this._annotationProvider.boardMainWindow);
505
562
  this.logger.info('annotation mount boardDom: ', this._boardDom);
506
563
  if (this._annotationProvider.boardMainWindow && this._boardDom && !this._mounted) {
564
+ var _this$_toolbarStore4;
507
565
  this.logger.info('annotation mount start: ', this._boardDom);
508
566
  this._mounted = true;
509
567
  var view = this._annotationProvider.boardMainWindow.getContentView();
510
568
  this._boardDom.appendChild(view);
511
569
  this.logger.info('annotation mount boardMainWindow contentView append: ', view);
512
570
  this.logger.info('annotation mount success');
513
- this.calcBoardPosition();
571
+ (_this$_toolbarStore4 = this._toolbarStore) === null || _this$_toolbarStore4 === void 0 || _this$_toolbarStore4.resetToolbarVars();
514
572
  }
515
573
  }
516
574
  }, {
@@ -537,53 +595,21 @@ var AnnotationStore = exports.AnnotationStore = /*#__PURE__*/function () {
537
595
  key: "_updateAnnotationBounds",
538
596
  value: function _updateAnnotationBounds(bounds) {
539
597
  if (bounds) this._currentShareInfo.bounds = bounds;
540
- this.logger.info("updateAnnotationBounds ".concat(this._currentShareInfo));
598
+ this.logger.info("[Annotation][updateAnnotationBounds]: bounds: ".concat(JSON.stringify(bounds), ", currentShareInfo: ").concat(JSON.stringify(this._currentShareInfo)));
541
599
  (0, _rendererEvent.sendEvent)({
542
600
  action: _constant.FcrUIRendererEventAction.SET_CURRENT_SHARE_SCREEN_BOUNDS,
543
601
  payload: bounds || this._annotationProvider.currentShareInfo.bounds
544
602
  });
545
603
  }
546
604
 
547
- // 使用 sdk 提供的获取窗口列表功能,但是此 api 性能很差,因为它会生成窗口的缩略图,延迟很高
548
- }, {
549
- key: "_pollActiveWindow",
550
- value: function _pollActiveWindow() {
551
- var _this2 = this;
552
- requestIdleCallback(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
553
- var currentWindows, currentWindow;
554
- return _regenerator["default"].wrap(function _callee$(_context) {
555
- while (1) switch (_context.prev = _context.next) {
556
- case 0:
557
- _context.next = 2;
558
- return _this2._deviceProvider.getWindowList();
559
- case 2:
560
- currentWindows = _context.sent;
561
- currentWindow = currentWindows.find(function (window) {
562
- return window.id === _this2._currentShareInfo.id;
563
- });
564
- if (currentWindow && (currentWindow.bounds.width !== _this2._currentShareInfo.bounds.width || currentWindow.bounds.height !== _this2._currentShareInfo.bounds.height)) {
565
- _this2._updateAnnotationBounds(currentWindow.bounds);
566
- // this.logger.info('The window bounds is the different as the current share bounds');
567
- } else {
568
- // this.logger.info('The window bounds is the same as the current share bounds');
569
- }
570
- _this2._resizeWatcherTimer = setTimeout(_this2._pollActiveWindow, 200);
571
- case 6:
572
- case "end":
573
- return _context.stop();
574
- }
575
- }, _callee);
576
- })));
577
- }
578
-
579
605
  // 使用第三方 node-window-manager 提供的获取窗口列表功能
580
606
  }, {
581
607
  key: "_updateBoundsByActiveWindow",
582
608
  value: function _updateBoundsByActiveWindow() {
583
- var _this3 = this;
609
+ var _this2 = this;
584
610
  var windows = window.runtime.getWindows();
585
611
  var activeWindow = windows.find(function (win) {
586
- return win.id === +_this3._currentShareInfo.id;
612
+ return win.id === +_this2._currentShareInfo.id;
587
613
  });
588
614
  var _this$_currentShareIn = this._currentShareInfo,
589
615
  id = _this$_currentShareIn.id,
@@ -617,15 +643,14 @@ var AnnotationStore = exports.AnnotationStore = /*#__PURE__*/function () {
617
643
  }, {
618
644
  key: "_addWindowResizeListenner",
619
645
  value: function _addWindowResizeListenner() {
620
- var _this4 = this;
646
+ var _this3 = this;
621
647
  var isDisplay = this._currentShareInfo.type === _type.AgoraRtcScreenCaptureType.SCREEN;
622
648
  this.logger.info("current sharing type is screen: ".concat(isDisplay, ", has watch resize timer: ").concat(!!this._resizeWatcherTimer));
623
649
  if (isDisplay) return;
624
650
  if (!this._resizeWatcherTimer) {
625
- // this._pollSdkWindow();
626
651
  this._resizeWatcherTimer = setInterval(function () {
627
- _this4.logger.info("addWindowResizeListenner interval ".concat(_this4._currentShareInfo));
628
- _this4._updateBoundsByActiveWindow();
652
+ _this3.logger.info("addWindowResizeListenner interval ".concat(_this3._currentShareInfo));
653
+ _this3._updateBoundsByActiveWindow();
629
654
  }, 3000);
630
655
  }
631
656
  }
@@ -640,7 +665,7 @@ var AnnotationStore = exports.AnnotationStore = /*#__PURE__*/function () {
640
665
  }]);
641
666
  }();
642
667
  _AnnotationStore = AnnotationStore;
643
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_AnnotationStore, [[_mobx.observable, 1, "annotationMainWindow"], [_mobx.observable, 1, "resetToolbarStore"], [_mobx.observable, 1, "isShowToolbar"], [_mobx.computed, 3, "scalcValue"], [_mobx.computed, 3, "annotating"], [_decorator.bound, 2, "getToolbarStore"], [_setToolsShowDecs, 18, "setToolsShow"], [_zoomInDecs, 18, "zoomIn"], [_zoomOutDecs, 18, "zoomOut"], [_fullContainerDecs, 18, "fullContainer"], [_setOriginScalcDecs, 18, "setOriginScalc"], [_calcBoardPositionDecs, 18, "calcBoardPosition"], [_handleBoardDomLoadDecs, 18, "handleBoardDomLoad"], [_handleBoardContainerDomLoadDecs, 18, "handleBoardContainerDomLoad"], [_decorator.bound, 2, "screenSharingStarted"], [_decorator.bound, 2, "release"], [_mountDecs, 18, "_mount"], [_unmountDecs, 18, "_unmount"], [_decorator.bound, 2, "_close"], [_decorator.bound, 2, "_updateAnnotationBounds"], [_decorator.bound, 2, "_pollActiveWindow"], [_decorator.bound, 2, "_updateBoundsByActiveWindow"], [_decorator.bound, 2, "_addWindowResizeListenner"], [_decorator.bound, 2, "_removeWindowResizeListenner"]], []).e, 4);
668
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_AnnotationStore, [[_mobx.observable, 1, "annotationMainWindow"], [_mobx.observable, 1, "resetToolbarStore"], [_mobx.observable, 1, "isShowToolbar"], [_mobx.computed, 3, "scalcValue"], [_mobx.computed, 3, "annotating"], [_decorator.bound, 2, "getToolbarStore"], [_setToolsShowDecs, 18, "setToolsShow"], [_zoomInDecs, 18, "zoomIn"], [_zoomOutDecs, 18, "zoomOut"], [_fullContainerDecs, 18, "fullContainer"], [_setOriginScalcDecs, 18, "setOriginScalc"], [_drawReceiverBoardDecs, 18, "drawReceiverBoard"], [_handleBoardDomLoadDecs, 18, "handleBoardDomLoad"], [_handleBoardContainerDomLoadDecs, 18, "handleBoardContainerDomLoad"], [_decorator.bound, 2, "screenSharingStarted"], [_decorator.bound, 2, "release"], [_annotationEndedDecs, 18, "_annotationEnded"], [_mountDecs, 18, "_mount"], [_unmountDecs, 18, "_unmount"], [_decorator.bound, 2, "_close"], [_decorator.bound, 2, "_updateAnnotationBounds"], [_decorator.bound, 2, "_updateBoundsByActiveWindow"], [_decorator.bound, 2, "_addWindowResizeListenner"], [_decorator.bound, 2, "_removeWindowResizeListenner"]], []).e, 4);
644
669
  _init_annotationMainWindow = _applyDecs$e[0];
645
670
  _init_resetToolbarStore = _applyDecs$e[1];
646
671
  _init_isShowToolbar = _applyDecs$e[2];
@@ -16,11 +16,11 @@
16
16
  height: 100%;
17
17
  }
18
18
 
19
- .annotation-action-prevent{
20
- width:100%;
19
+ .annotation-action-prevent {
20
+ width: 100%;
21
21
  height: 100%;
22
22
  position: absolute;
23
23
  left: 0px;
24
24
  top: 0px;
25
25
  z-index: 100;
26
- }
26
+ }
@@ -1,2 +1,3 @@
1
1
  import './style.css';
2
+ import './board-cursor.css';
2
3
  export declare const Annotation: () => import("react/jsx-runtime").JSX.Element;