fcr-ui-scene 3.6.1 → 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 (257) hide show
  1. package/lib/creator.d.ts +6 -0
  2. package/lib/creator.js +125 -24
  3. package/lib/electron/app.js +5 -4
  4. package/lib/electron/bootstrap-dev.js +3 -0
  5. package/lib/electron/bootstrap-sdk.js +4 -0
  6. package/lib/electron/injections.d.ts +5 -0
  7. package/lib/electron/injections.js +36 -8
  8. package/lib/electron/ipc/ipc.d.ts +1 -0
  9. package/lib/electron/ipc/ipc.js +4 -0
  10. package/lib/electron/main.js +16 -8
  11. package/lib/electron/plugins/screenshot.js +4 -2
  12. package/lib/electron/preload.js +7 -2
  13. package/lib/electron/window.js +4 -6
  14. package/lib/fragments/annotation/index.d.ts +11 -0
  15. package/lib/fragments/annotation/index.js +121 -0
  16. package/lib/fragments/annotation/libs.d.ts +55 -0
  17. package/lib/fragments/annotation/libs.js +93 -0
  18. package/lib/fragments/annotation/store.d.ts +30 -0
  19. package/lib/fragments/annotation/store.js +565 -0
  20. package/lib/fragments/annotation/view.d.ts +3 -0
  21. package/lib/fragments/annotation/view.js +31 -0
  22. package/lib/fragments/base.d.ts +10 -0
  23. package/lib/fragments/base.js +44 -0
  24. package/lib/modules/action-bar/components/screen-share/submenu.js +7 -6
  25. package/lib/modules/action-bar/index.css +11 -0
  26. package/lib/modules/action-bar/index.d.ts +2 -0
  27. package/lib/modules/action-bar/index.js +1 -0
  28. package/lib/modules/action-bar/store.d.ts +7 -9
  29. package/lib/modules/action-bar/store.js +49 -90
  30. package/lib/modules/annotation/board-cursor.css +76 -0
  31. package/lib/modules/annotation/components/control-bar/index.css +48 -0
  32. package/lib/modules/annotation/components/control-bar/index.d.ts +3 -0
  33. package/lib/modules/annotation/components/control-bar/index.js +141 -0
  34. package/lib/modules/annotation/components/toolbar/components/color-tool/color-panel/index.d.ts +3 -0
  35. package/lib/modules/annotation/components/toolbar/components/color-tool/color-panel/index.js +46 -0
  36. package/lib/modules/annotation/components/toolbar/components/color-tool/index.d.ts +1 -0
  37. package/lib/modules/annotation/components/toolbar/components/color-tool/index.js +52 -0
  38. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.d.ts +3 -0
  39. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.js +61 -0
  40. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +12 -0
  41. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.js +65 -0
  42. package/lib/modules/annotation/components/toolbar/components/graphic-tool/index.d.ts +1 -0
  43. package/lib/modules/annotation/components/toolbar/components/graphic-tool/index.js +68 -0
  44. package/lib/modules/annotation/components/toolbar/components/item/item.d.ts +18 -0
  45. package/lib/modules/annotation/components/toolbar/components/item/item.js +116 -0
  46. package/lib/modules/annotation/components/toolbar/components/item/style.css +43 -0
  47. package/lib/modules/annotation/components/toolbar/components/panel/index.d.ts +5 -0
  48. package/lib/modules/annotation/components/toolbar/components/panel/index.js +22 -0
  49. package/lib/modules/annotation/components/toolbar/components/panel/style.css +24 -0
  50. package/lib/modules/annotation/components/toolbar/components/pen-tool/index.d.ts +1 -0
  51. package/lib/modules/annotation/components/toolbar/components/pen-tool/index.js +58 -0
  52. package/lib/modules/annotation/components/toolbar/components/pen-tool/pen-panel/index.d.ts +3 -0
  53. package/lib/modules/annotation/components/toolbar/components/pen-tool/pen-panel/index.js +34 -0
  54. package/lib/modules/annotation/components/toolbar/components/tips/index.d.ts +2 -0
  55. package/lib/modules/annotation/components/toolbar/components/tips/index.js +25 -0
  56. package/lib/modules/annotation/components/toolbar/components/tips/style.css +19 -0
  57. package/lib/modules/annotation/components/toolbar/index.d.ts +0 -0
  58. package/lib/modules/annotation/components/toolbar/index.js +1 -0
  59. package/lib/modules/annotation/components/toolbar/store.d.ts +40 -0
  60. package/lib/modules/annotation/components/toolbar/store.js +279 -0
  61. package/lib/modules/annotation/components/toolbar/style.css +55 -0
  62. package/lib/modules/annotation/components/toolbar/view.d.ts +2 -0
  63. package/lib/modules/annotation/components/toolbar/view.js +120 -0
  64. package/lib/modules/annotation/index.d.ts +38 -0
  65. package/lib/modules/annotation/index.js +169 -0
  66. package/lib/modules/annotation/store.d.ts +93 -0
  67. package/lib/modules/annotation/store.js +673 -0
  68. package/lib/modules/annotation/style.css +26 -0
  69. package/lib/modules/annotation/view.d.ts +3 -0
  70. package/lib/modules/annotation/view.js +49 -0
  71. package/lib/modules/chat/view.js +112 -100
  72. package/lib/modules/components/annotation-menu/index.d.ts +7 -0
  73. package/lib/modules/components/annotation-menu/index.js +119 -0
  74. package/lib/modules/components/leave-meeting/components/assign-host.js +26 -23
  75. package/lib/modules/components/member-window/components/member-actions/components/audio-control.d.ts +0 -1
  76. package/lib/modules/components/member-window/components/member-actions/components/audio-control.js +10 -4
  77. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.d.ts +4 -2
  78. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +10 -6
  79. package/lib/modules/components/member-window/components/member-actions/components/icon-status.d.ts +0 -2
  80. package/lib/modules/components/member-window/components/member-actions/components/icon-status.js +3 -4
  81. package/lib/modules/components/member-window/components/member-actions/components/more-actions.d.ts +0 -3
  82. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +6 -32
  83. package/lib/modules/components/member-window/components/member-actions/components/share-status.js +11 -3
  84. package/lib/modules/components/member-window/components/member-actions/components/user-info.d.ts +0 -1
  85. package/lib/modules/components/member-window/components/member-actions/components/user-info.js +7 -10
  86. package/lib/modules/components/member-window/components/member-actions/components/user-tag.d.ts +0 -1
  87. package/lib/modules/components/member-window/components/member-actions/components/user-tag.js +0 -2
  88. package/lib/modules/components/member-window/components/member-actions/index.js +1 -32
  89. package/lib/modules/components/member-window/components/member-actions/store.d.ts +38 -1
  90. package/lib/modules/components/member-window/components/member-actions/store.js +130 -23
  91. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.d.ts +2 -1
  92. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.js +6 -1
  93. package/lib/modules/components/member-window/components/video-player/index.d.ts +1 -0
  94. package/lib/modules/components/member-window/index.css +37 -0
  95. package/lib/modules/components/member-window/index.d.ts +1 -1
  96. package/lib/modules/components/member-window/index.js +8 -5
  97. package/lib/modules/components/member-window/types.d.ts +2 -0
  98. package/lib/modules/components/security-menu/index.js +7 -6
  99. package/lib/modules/control-bar/components/annotation-button/index.d.ts +1 -0
  100. package/lib/modules/control-bar/components/annotation-button/index.js +59 -0
  101. package/lib/modules/control-bar/index.d.ts +6 -6
  102. package/lib/modules/control-bar/index.js +5 -34
  103. package/lib/modules/control-bar/store.d.ts +27 -13
  104. package/lib/modules/control-bar/store.js +121 -126
  105. package/lib/modules/control-bar/view.js +50 -4
  106. package/lib/modules/dialog/components/annotation-tool/index.d.ts +4 -0
  107. package/lib/modules/dialog/components/annotation-tool/index.js +53 -0
  108. package/lib/modules/dialog/components/chat/index.js +1 -1
  109. package/lib/modules/dialog/components/control-bar/index.d.ts +0 -2
  110. package/lib/modules/dialog/components/control-bar/index.js +1 -3
  111. package/lib/modules/dialog/components/host-area-container/index.d.ts +12 -0
  112. package/lib/modules/dialog/components/host-area-container/index.js +214 -0
  113. package/lib/modules/dialog/components/participant/index.js +1 -1
  114. package/lib/modules/dialog/components/system-preference/index.js +1 -1
  115. package/lib/modules/dialog/components/video-window/index.js +1 -0
  116. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +14 -0
  117. package/lib/modules/dialog/hooks/use-popover-watcher.js +112 -0
  118. package/lib/modules/dialog/hooks/useElectron.d.ts +1 -0
  119. package/lib/modules/dialog/hooks/useElectron.js +13 -3
  120. package/lib/modules/dialog/index.d.ts +2 -3
  121. package/lib/modules/dialog/index.js +3 -26
  122. package/lib/modules/dialog/store.d.ts +14 -9
  123. package/lib/modules/dialog/store.js +56 -50
  124. package/lib/modules/event-confirm/components/window/index.d.ts +7 -0
  125. package/lib/modules/event-confirm/components/window/index.js +188 -0
  126. package/lib/modules/event-confirm/index.d.ts +4 -4
  127. package/lib/modules/event-confirm/index.js +6 -4
  128. package/lib/modules/event-confirm/store.d.ts +4 -5
  129. package/lib/modules/event-confirm/store.js +35 -26
  130. package/lib/modules/event-confirm/view.js +23 -171
  131. package/lib/modules/event-sound/index.js +1 -1
  132. package/lib/modules/layout/components/CommonVideoRenderer.js +33 -16
  133. package/lib/modules/layout/index.d.ts +4 -0
  134. package/lib/modules/layout/index.js +2 -0
  135. package/lib/modules/layout/store.d.ts +14 -2
  136. package/lib/modules/layout/store.js +77 -45
  137. package/lib/modules/layout/type.d.ts +7 -0
  138. package/lib/modules/participant/index.d.ts +2 -0
  139. package/lib/modules/participant/index.js +2 -1
  140. package/lib/modules/participant/store.d.ts +5 -2
  141. package/lib/modules/participant/store.js +73 -25
  142. package/lib/modules/setting/audio-settings/audio-settings.js +3 -14
  143. package/lib/modules/setting/index.d.ts +2 -0
  144. package/lib/modules/setting/index.js +3 -3
  145. package/lib/modules/setting/store.d.ts +8 -10
  146. package/lib/modules/setting/store.js +22 -20
  147. package/lib/modules/share-screen/components/selection/index.js +18 -42
  148. package/lib/modules/share-screen/index.d.ts +6 -2
  149. package/lib/modules/share-screen/index.js +4 -2
  150. package/lib/modules/share-screen/store.d.ts +41 -46
  151. package/lib/modules/share-screen/store.js +297 -718
  152. package/lib/modules/share-screen/view.js +2 -2
  153. package/lib/modules/state-bar/assets/fcr_grid_big.svg +1 -1
  154. package/lib/modules/state-bar/assets/fcr_listontop_big.svg +1 -1
  155. package/lib/modules/state-bar/index.css +8 -6
  156. package/lib/modules/state-bar/index.d.ts +4 -0
  157. package/lib/modules/state-bar/index.js +3 -1
  158. package/lib/modules/state-bar/layout-config.d.ts +1 -0
  159. package/lib/modules/state-bar/layout-config.js +15 -5
  160. package/lib/modules/state-bar/store.d.ts +9 -1
  161. package/lib/modules/state-bar/store.js +17 -2
  162. package/lib/modules/state-bar/view.js +9 -4
  163. package/lib/modules/video-window/components/members/index.js +2 -1
  164. package/lib/modules/waiting-room-layout/store.js +1 -1
  165. package/lib/modules/whiteboard/components/control-bar/store.d.ts +5 -1
  166. package/lib/modules/whiteboard/components/control-bar/store.js +10 -1
  167. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/picker.js +16 -5
  168. package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.js +67 -12
  169. package/lib/modules/whiteboard/components/toolbar/components/expansion/index.js +22 -2
  170. package/lib/modules/whiteboard/components/toolbar/components/history.js +46 -14
  171. package/lib/modules/whiteboard/components/toolbar/components/item/index.js +3 -2
  172. package/lib/modules/whiteboard/components/toolbar/components/move-handle.js +1 -1
  173. package/lib/modules/whiteboard/components/toolbar/components/pen-picker.js +58 -16
  174. package/lib/modules/whiteboard/components/toolbar/components/screen-capture-picker.js +15 -4
  175. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +45 -2
  176. package/lib/modules/whiteboard/components/toolbar/hooks/index.d.ts +14 -0
  177. package/lib/modules/whiteboard/components/toolbar/hooks/index.js +235 -7
  178. package/lib/modules/whiteboard/components/toolbar/index.d.ts +1 -1
  179. package/lib/modules/whiteboard/components/toolbar/index.js +1 -1
  180. package/lib/modules/whiteboard/components/toolbar/store.d.ts +13 -2
  181. package/lib/modules/whiteboard/components/toolbar/store.js +74 -24
  182. package/lib/modules/whiteboard/components/toolbar/{ style.css → style.css} +1 -0
  183. package/lib/modules/whiteboard/index.d.ts +2 -0
  184. package/lib/modules/whiteboard/index.js +22 -21
  185. package/lib/modules/whiteboard/style.css +0 -4
  186. package/lib/modules/whiteboard/view.js +8 -2
  187. package/lib/plugins/browser-runtime-plugin.js +10 -1
  188. package/lib/providers/annotation-provider.d.ts +128 -0
  189. package/lib/providers/annotation-provider.js +421 -0
  190. package/lib/providers/device-provider.d.ts +3 -3
  191. package/lib/providers/device-provider.js +8 -6
  192. package/lib/providers/event-provider.d.ts +3 -3
  193. package/lib/providers/interpreter-provider.d.ts +1 -0
  194. package/lib/providers/interpreter-provider.js +182 -154
  195. package/lib/providers/privilege-provider.d.ts +35 -6
  196. package/lib/providers/privilege-provider.js +105 -49
  197. package/lib/providers/renderer-provider.js +3 -7
  198. package/lib/providers/room-provider.d.ts +13 -1
  199. package/lib/providers/room-provider.js +21 -7
  200. package/lib/providers/screen-share-provider.d.ts +131 -34
  201. package/lib/providers/screen-share-provider.js +554 -173
  202. package/lib/providers/sharing-provider.d.ts +37 -0
  203. package/lib/{shared-data-source/screen-share-data-source.js → providers/sharing-provider.js} +102 -39
  204. package/lib/providers/user-setting-storage-provider.d.ts +20 -0
  205. package/lib/providers/user-setting-storage-provider.js +74 -0
  206. package/lib/runtime.d.ts +6 -1
  207. package/lib/scenes/main-scene.d.ts +7 -2
  208. package/lib/scenes/main-scene.js +55 -27
  209. package/lib/scenes/waiting-scene.d.ts +6 -0
  210. package/lib/scenes/waiting-scene.js +15 -5
  211. package/lib/shared-data-source/config.d.ts +1 -5
  212. package/lib/shared-data-source/config.js +11 -81
  213. package/lib/shared-data-source/member-data.d.ts +21 -5
  214. package/lib/shared-data-source/member-data.js +69 -17
  215. package/lib/shared-data-source/screen-share-data.d.ts +274 -0
  216. package/lib/shared-data-source/screen-share-data.js +390 -0
  217. package/lib/shared-data-source/security-data.d.ts +4 -1
  218. package/lib/shared-data-source/security-data.js +5 -2
  219. package/lib/shared-data-source/setting.d.ts +13 -13
  220. package/lib/shared-data-source/setting.js +16 -10
  221. package/lib/shared-data-source/video-window.d.ts +2 -1
  222. package/lib/shared-data-source/video-window.js +56 -36
  223. package/lib/translations/enUS.d.ts +8 -0
  224. package/lib/translations/enUS.js +9 -1
  225. package/lib/translations/zhCN.d.ts +8 -0
  226. package/lib/translations/zhCN.js +11 -3
  227. package/lib/type.d.ts +55 -1
  228. package/lib/ui-manager.d.ts +3 -2
  229. package/lib/ui-manager.js +6 -4
  230. package/lib/ui-scene.js +70 -50
  231. package/lib/utilities/constant.d.ts +10 -2
  232. package/lib/utilities/constant.js +8 -0
  233. package/lib/utilities/logger.d.ts +4 -0
  234. package/lib/utilities/logger.js +8 -1
  235. package/lib/utilities/renderer-event.d.ts +3 -0
  236. package/lib/utilities/renderer-event.js +14 -1
  237. package/lib/utilities/screen.js +2 -1
  238. package/lib/utilities/setting-config-storage.d.ts +5 -6
  239. package/lib/utilities/setting-config-storage.js +33 -39
  240. package/lib/utilities/tools.d.ts +19 -1
  241. package/lib/utilities/tools.js +51 -4
  242. package/package.json +9 -7
  243. package/public/assets/cursors/fcr_whiteboard_input.ico +0 -0
  244. package/public/assets/cursors/fcr_whiteboard_pen.ico +0 -0
  245. package/public/assets/cursors/fcr_whiteboard_shape_-straightline.ico +0 -0
  246. package/public/assets/cursors/fcr_whiteboard_shape_arrow.ico +0 -0
  247. package/public/assets/cursors/fcr_whiteboard_shape_circle.ico +0 -0
  248. package/public/assets/cursors/fcr_whiteboard_shape_rectangle.ico +0 -0
  249. package/public/assets/cursors/fcr_whiteboard_shape_triangle.ico +0 -0
  250. package/public/assets/fcr_chat_reddot.svg +3 -3
  251. package/public/assets/fcr_grid_big.svg +1 -1
  252. package/public/assets/fcr_leave2.svg +14 -14
  253. package/public/assets/fcr_listontop_big.svg +1 -1
  254. package/public/assets/step-gradient.svg +1 -1
  255. package/public/fragment.html +10 -0
  256. package/public/index.html +3 -1
  257. package/lib/shared-data-source/screen-share-data-source.d.ts +0 -37
package/lib/creator.d.ts CHANGED
@@ -9,9 +9,12 @@ export declare class FcrUISceneCreator {
9
9
  accessor observableSettingStore: FcrObservableSettingStore;
10
10
  protected logger: import("agora-foundation/lib/logger").Logger;
11
11
  private _settingConfigStorage;
12
+ private _userSettingStorageProvider;
12
13
  private _registeredWidgetConfigs;
13
14
  private _released;
14
15
  private _scene;
16
+ private _microphoneKeepRecording;
17
+ private _parameters;
15
18
  constructor(_config: FcrUISceneCreatorConfig);
16
19
  launch(config: FcrUISceneConfig, onCancel: FcrUISceneCancelCallback, onSuccess: FcrUISceneSuccessCallback, onFailure: FcrUISceneFailureCallback, dom: HTMLElement): FcrUIDefaultScene;
17
20
  getSettingConfig(): FcrUISettingConfig;
@@ -23,5 +26,8 @@ export declare class FcrUISceneCreator {
23
26
  openSetting(): void;
24
27
  closeSetting(): void;
25
28
  release(): void;
29
+ private _resetScene;
26
30
  private _precheckState;
31
+ private _filterKeepRecordingValueFromParameters;
32
+ private _setKeepRecordingValueFromParameters;
27
33
  }
package/lib/creator.js CHANGED
@@ -3,6 +3,7 @@
3
3
  require("core-js/modules/es.symbol.js");
4
4
  require("core-js/modules/es.symbol.description.js");
5
5
  require("core-js/modules/es.symbol.to-primitive.js");
6
+ require("core-js/modules/es.array.for-each.js");
6
7
  require("core-js/modules/es.array.is-array.js");
7
8
  require("core-js/modules/es.array.push.js");
8
9
  require("core-js/modules/es.date.to-primitive.js");
@@ -10,26 +11,45 @@ require("core-js/modules/es.function.bind.js");
10
11
  require("core-js/modules/es.function.name.js");
11
12
  require("core-js/modules/es.number.constructor.js");
12
13
  require("core-js/modules/es.object.create.js");
14
+ require("core-js/modules/es.object.define-properties.js");
13
15
  require("core-js/modules/es.object.define-property.js");
14
16
  require("core-js/modules/es.object.get-own-property-descriptor.js");
17
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
18
+ require("core-js/modules/esnext.async-iterator.for-each.js");
15
19
  require("core-js/modules/esnext.function.metadata.js");
20
+ require("core-js/modules/esnext.iterator.for-each.js");
16
21
  require("core-js/modules/esnext.symbol.metadata.js");
22
+ require("core-js/modules/web.dom-collections.for-each.js");
17
23
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
18
24
  var _typeof = require("@babel/runtime/helpers/typeof");
19
25
  Object.defineProperty(exports, "__esModule", {
20
26
  value: true
21
27
  });
22
28
  exports.FcrUISceneCreator = void 0;
29
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
30
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
23
31
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
24
32
  require("core-js/modules/es.error.cause.js");
25
33
  require("core-js/modules/es.error.to-string.js");
34
+ require("core-js/modules/es.array.filter.js");
35
+ require("core-js/modules/es.array.find.js");
26
36
  require("core-js/modules/es.array.iterator.js");
37
+ require("core-js/modules/es.array.map.js");
27
38
  require("core-js/modules/es.date.to-json.js");
28
39
  require("core-js/modules/es.json.stringify.js");
29
40
  require("core-js/modules/es.map.js");
41
+ require("core-js/modules/es.object.keys.js");
30
42
  require("core-js/modules/es.object.to-string.js");
31
43
  require("core-js/modules/es.string.iterator.js");
32
44
  require("core-js/modules/es.weak-map.js");
45
+ require("core-js/modules/esnext.async-iterator.filter.js");
46
+ require("core-js/modules/esnext.async-iterator.find.js");
47
+ require("core-js/modules/esnext.async-iterator.map.js");
48
+ require("core-js/modules/esnext.iterator.constructor.js");
49
+ require("core-js/modules/esnext.iterator.filter.js");
50
+ require("core-js/modules/esnext.iterator.find.js");
51
+ require("core-js/modules/esnext.iterator.map.js");
52
+ require("core-js/modules/esnext.json.parse.js");
33
53
  require("core-js/modules/esnext.map.delete-all.js");
34
54
  require("core-js/modules/esnext.map.emplace.js");
35
55
  require("core-js/modules/esnext.map.every.js");
@@ -48,7 +68,6 @@ require("core-js/modules/esnext.weak-map.delete-all.js");
48
68
  require("core-js/modules/esnext.weak-map.emplace.js");
49
69
  require("core-js/modules/web.dom-collections.iterator.js");
50
70
  require("core-js/modules/web.timers.js");
51
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
52
71
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
53
72
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
54
73
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -75,11 +94,15 @@ var _parameters = require("./utilities/parameters");
75
94
  var _defaultConfig = require("./utilities/default-config");
76
95
  var _imports = require("fcr-core/lib/imports");
77
96
  var _localStorageProvider = require("./providers/local-storage-provider");
78
- var _uiResources = require("./utilities/ui-resources");
79
97
  var _logger = require("./utilities/logger");
98
+ var _uiResources = require("./utilities/ui-resources");
99
+ var _userSettingStorageProvider = require("./providers/user-setting-storage-provider");
80
100
  var _jsxRuntime = require("react/jsx-runtime");
101
+ var _excluded = ["rtc.microphone.keep.recording"];
81
102
  var _FcrUISceneCreator;
82
103
  var _initProto, _init_observableSettingStore, _launchDecs, _ref;
104
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
105
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
83
106
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
84
107
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
85
108
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
@@ -107,14 +130,21 @@ var FcrUISceneCreator = exports.FcrUISceneCreator = /*#__PURE__*/function () {
107
130
  (0, _defineProperty2["default"])(this, "_registeredWidgetConfigs", new Map([]));
108
131
  (0, _defineProperty2["default"])(this, "_released", false);
109
132
  (0, _defineProperty2["default"])(this, "_scene", null);
133
+ (0, _defineProperty2["default"])(this, "_microphoneKeepRecording", true);
134
+ (0, _defineProperty2["default"])(this, "_parameters", {});
110
135
  this._config = _config;
111
136
  this.logger.info("creator config: ".concat(JSON.stringify(_config)));
112
137
  this._localStorageProvider = new _localStorageProvider.FcrUILocalStorageProviderImpl();
138
+ this._userSettingStorageProvider = new _userSettingStorageProvider.FcrUIUserSettingStorageProviderImpl();
139
+ this._localStorageProvider.write('annotation_rtm_app_id', this._config.appId);
113
140
  this._settingConfigStorage = new _settingConfigStorage.FcrSettingConfigStorage({
114
- localStorageProvider: this._localStorageProvider
141
+ userSettingStorageProvider: this._userSettingStorageProvider
115
142
  });
116
- var dualCameraVideoStreamConfigFromParameters = (0, _parameters.getDualCameraVideoStreamConfig)(this._config.parameters);
117
- var dualScreenVideoStreamConfigFromParameters = (0, _parameters.getDualScreenVideoStreamConfig)(this._config.parameters);
143
+ this._setKeepRecordingValueFromParameters(this._config.parameters || {});
144
+ var filteredParameters = this._filterKeepRecordingValueFromParameters(this._config.parameters || {});
145
+ this.logger.info("[MicrophoneKeepRecording][initSettingStore] filteredParameters ==> ".concat(JSON.stringify(filteredParameters)));
146
+ var dualCameraVideoStreamConfigFromParameters = (0, _parameters.getDualCameraVideoStreamConfig)(filteredParameters);
147
+ var dualScreenVideoStreamConfigFromParameters = (0, _parameters.getDualScreenVideoStreamConfig)(filteredParameters);
118
148
  (0, _defaultConfig.mergeDefaultDualStreamConfig)(dualCameraVideoStreamConfigFromParameters, dualScreenVideoStreamConfigFromParameters);
119
149
  var dualCameraVideoStreamConfig = {
120
150
  lowVideoEncoderConfig: _defaultConfig.cameraVideoLowStreamEncoderConfig,
@@ -129,7 +159,7 @@ var FcrUISceneCreator = exports.FcrUISceneCreator = /*#__PURE__*/function () {
129
159
  var config = {
130
160
  appId: this._config.appId,
131
161
  userId: this._config.userId,
132
- parameters: this._config.parameters,
162
+ parameters: filteredParameters,
133
163
  token: this._config.token,
134
164
  region: _fcrCore.FcrRegion.CN,
135
165
  dualCameraVideoStreamConfig: dualCameraVideoStreamConfig,
@@ -161,8 +191,18 @@ var FcrUISceneCreator = exports.FcrUISceneCreator = /*#__PURE__*/function () {
161
191
  }
162
192
  (0, _i18n.changeLanguage)(config.language);
163
193
  var scene = new _uiScene.FcrUIDefaultScene(config, this._config, dom, this._settingConfigStorage, this._registeredWidgetConfigs, this._engine);
194
+ var onLaunchSuccess = function onLaunchSuccess() {
195
+ var parameters = _objectSpread(_objectSpread({}, _this._parameters), {}, {
196
+ rtc: [JSON.stringify({
197
+ 'rtc.microphone.keep.recording': _this._microphoneKeepRecording
198
+ })]
199
+ });
200
+ _this.logger.info("[MicrophoneKeepRecording][onLaunchSuccess] parameters ==> ".concat(JSON.stringify(parameters)));
201
+ _this._engine.setParameters(parameters);
202
+ return onSuccess;
203
+ };
164
204
  scene.addObserver({
165
- onLaunchSuccess: onSuccess,
205
+ onLaunchSuccess: onLaunchSuccess(),
166
206
  onLaunchFailure: onFailure,
167
207
  onLaunchCancel: onCancel,
168
208
  onSettingStore: function onSettingStore(store) {
@@ -170,20 +210,25 @@ var FcrUISceneCreator = exports.FcrUISceneCreator = /*#__PURE__*/function () {
170
210
  _this.closeSetting();
171
211
  },
172
212
  onExited: function onExited() {
213
+ var parameters = _objectSpread(_objectSpread({}, _this._parameters), {}, {
214
+ rtc: [JSON.stringify({
215
+ 'rtc.microphone.keep.recording': false
216
+ })]
217
+ });
218
+ _this.logger.info("[MicrophoneKeepRecording][onExited] parameters ==> ".concat(JSON.stringify(parameters)));
219
+ _this._engine.setParameters(parameters);
173
220
  _this.closeSetting();
174
221
  _this._initSettingStore();
222
+ _this._resetScene();
175
223
  },
176
224
  onOpenSettingDialog: function onOpenSettingDialog() {
177
225
  _this.openSetting();
178
226
  }
179
227
  });
180
- var resetScene = function resetScene() {
181
- _this._scene = null;
182
- };
183
228
  scene.addObserver({
184
- onLaunchFailure: resetScene,
185
- onLaunchCancel: resetScene,
186
- onExited: resetScene
229
+ onLaunchFailure: this._resetScene,
230
+ onLaunchCancel: this._resetScene,
231
+ onExited: this._resetScene
187
232
  });
188
233
  scene.launch();
189
234
  this._scene = scene;
@@ -215,9 +260,21 @@ var FcrUISceneCreator = exports.FcrUISceneCreator = /*#__PURE__*/function () {
215
260
  }, {
216
261
  key: "setParameters",
217
262
  value: function setParameters(parameters) {
218
- var _this$_engine;
219
263
  this._precheckState();
220
- (_this$_engine = this._engine) === null || _this$_engine === void 0 || _this$_engine.setParameters(parameters);
264
+ if (parameters.rtc) {
265
+ var _this$_engine;
266
+ this.logger.info("[MicrophoneKeepRecording][setParameters] parameters has rtc ==> ".concat(JSON.stringify(parameters)));
267
+ this._setKeepRecordingValueFromParameters(parameters);
268
+ var filteredParameters = this._filterKeepRecordingValueFromParameters(parameters);
269
+ this.logger.info("[MicrophoneKeepRecording][setParameters] rtc filtered ==> ".concat(JSON.stringify(filteredParameters)));
270
+ this._parameters = filteredParameters;
271
+ (_this$_engine = this._engine) === null || _this$_engine === void 0 || _this$_engine.setParameters(filteredParameters);
272
+ } else {
273
+ var _this$_engine2;
274
+ this.logger.info("[MicrophoneKeepRecording][setParameters] parameters has no rtc ==> ".concat(JSON.stringify(parameters)));
275
+ this._parameters = parameters;
276
+ (_this$_engine2 = this._engine) === null || _this$_engine2 === void 0 || _this$_engine2.setParameters(parameters);
277
+ }
221
278
  }
222
279
  }, {
223
280
  key: "_initSettingStore",
@@ -230,13 +287,12 @@ var FcrUISceneCreator = exports.FcrUISceneCreator = /*#__PURE__*/function () {
230
287
  this._eventProvider = new _eventProvider.FcrUIEventProviderImpl();
231
288
  this._messageProvider = new _messageProvider.FcrUIMessageProviderImpl();
232
289
  this._dialogProvider = new _dialogProvider.FcrUIDialogProviderImpl();
233
- this._deviceProvider = new _deviceProvider.FcrUIDeviceProviderImpl(this._eventProvider, this._engine.getDesktopMediaControl(), this._settingConfigStorage.media, this._localStorageProvider);
290
+ this._deviceProvider = new _deviceProvider.FcrUIDeviceProviderImpl(this._eventProvider, this._engine.getDesktopMediaControl(), this._settingConfigStorage.media, this._userSettingStorageProvider);
234
291
  this._sharedConfigDataSource = new _config2.FcrUISharedConfigDataSourceImpl({
235
292
  creatorConfig: this._config,
236
- settingConfig: this._settingConfigStorage,
237
- localStorageProvider: this._localStorageProvider
293
+ settingConfig: this._settingConfigStorage
238
294
  });
239
- this._sharedSettingDataSource = new _setting.FcrUISharedSettingDataSourceImpl(this._config, this._localStorageProvider);
295
+ this._sharedSettingDataSource = new _setting.FcrUISharedSettingDataSourceImpl(this._config, this._userSettingStorageProvider);
240
296
  openDefaultCamera = (0, _parameters.isOpenDefaultCamera)(this._config.parameters);
241
297
  openDefaultMicrophone = (0, _parameters.isOpenDefaultMicrophone)(this._config.parameters);
242
298
  if (openDefaultCamera) {
@@ -267,8 +323,8 @@ var FcrUISceneCreator = exports.FcrUISceneCreator = /*#__PURE__*/function () {
267
323
  sharedSettingDataSource: sharedSettingDataSource,
268
324
  dialogProvider: dialogProvider,
269
325
  settingConfig: sharedConfigDataSource.settingConfig,
270
- localStorageProvider: this._localStorageProvider,
271
- userId: this._config.userId
326
+ userId: this._config.userId,
327
+ userSettingStorageProvider: this._userSettingStorageProvider
272
328
  });
273
329
  case 21:
274
330
  case "end":
@@ -313,9 +369,15 @@ var FcrUISceneCreator = exports.FcrUISceneCreator = /*#__PURE__*/function () {
313
369
  }, {
314
370
  key: "release",
315
371
  value: function release() {
316
- var _this$_engine2;
317
- (_this$_engine2 = this._engine) === null || _this$_engine2 === void 0 || _this$_engine2.release();
372
+ var _this$_engine3;
373
+ (_this$_engine3 = this._engine) === null || _this$_engine3 === void 0 || _this$_engine3.release();
318
374
  this._released = true;
375
+ this._resetScene();
376
+ }
377
+ }, {
378
+ key: "_resetScene",
379
+ value: function _resetScene() {
380
+ this._scene = null;
319
381
  }
320
382
  }, {
321
383
  key: "_precheckState",
@@ -324,10 +386,49 @@ var FcrUISceneCreator = exports.FcrUISceneCreator = /*#__PURE__*/function () {
324
386
  throw new Error('FcrUISceneCreator has been released.');
325
387
  }
326
388
  }
389
+ }, {
390
+ key: "_filterKeepRecordingValueFromParameters",
391
+ value: function _filterKeepRecordingValueFromParameters(parameters) {
392
+ if (!(parameters !== null && parameters !== void 0 && parameters.rtc)) return parameters;
393
+ try {
394
+ var rtc = (parameters === null || parameters === void 0 ? void 0 : parameters.rtc).map(function (item) {
395
+ var _JSON$parse = JSON.parse(item),
396
+ _ = _JSON$parse['rtc.microphone.keep.recording'],
397
+ rest = (0, _objectWithoutProperties2["default"])(_JSON$parse, _excluded);
398
+ return Object.keys(rest).length > 0 ? JSON.stringify(rest) : null;
399
+ }).filter(function (item) {
400
+ return item !== null;
401
+ });
402
+ return _objectSpread(_objectSpread({}, parameters), {}, {
403
+ rtc: rtc
404
+ });
405
+ } catch (e) {
406
+ this.logger.error("[MicrophoneKeepRecording][filterKeepRecordingValueFromParameters] error: ".concat(e));
407
+ return parameters;
408
+ }
409
+ }
410
+ }, {
411
+ key: "_setKeepRecordingValueFromParameters",
412
+ value: function _setKeepRecordingValueFromParameters(parameters) {
413
+ if (!(parameters !== null && parameters !== void 0 && parameters.rtc)) return;
414
+ try {
415
+ var rtcs = parameters === null || parameters === void 0 ? void 0 : parameters.rtc;
416
+ var keepRecording = rtcs.find(function (item) {
417
+ return typeof JSON.parse(item)['rtc.microphone.keep.recording'] === 'boolean';
418
+ });
419
+ if (keepRecording) {
420
+ var keepRecordingValue = JSON.parse(keepRecording)['rtc.microphone.keep.recording'];
421
+ this._microphoneKeepRecording = !!keepRecordingValue;
422
+ this.logger.info("[MicrophoneKeepRecording][setParameters] keepRecording value is ==> ".concat(JSON.stringify(parameters)));
423
+ }
424
+ } catch (e) {
425
+ this.logger.error("[MicrophoneKeepRecording][setParameters] error: ".concat(e));
426
+ }
427
+ }
327
428
  }]);
328
429
  }();
329
430
  _FcrUISceneCreator = FcrUISceneCreator;
330
- var _applyDecs$e = _applyDecs(_FcrUISceneCreator, [[_mobx.observable, 1, "observableSettingStore"], [_launchDecs, 2, "launch"], [_decorator.trace, 2, "getSettingConfig"], [_decorator.trace, 2, "registerWidget"], [_decorator.trace, 2, "unregisterWidget"], [_decorator.trace, 2, "renewUserToken"], [_decorator.trace, 2, "setParameters"], [[_decorator.trace, _decorator.bound], 2, "openSetting"], [[_decorator.trace, _decorator.bound], 2, "closeSetting"]], []).e;
431
+ var _applyDecs$e = _applyDecs(_FcrUISceneCreator, [[_mobx.observable, 1, "observableSettingStore"], [_launchDecs, 2, "launch"], [_decorator.trace, 2, "getSettingConfig"], [_decorator.trace, 2, "registerWidget"], [_decorator.trace, 2, "unregisterWidget"], [_decorator.trace, 2, "renewUserToken"], [_decorator.trace, 2, "setParameters"], [[_decorator.trace, _decorator.bound], 2, "openSetting"], [[_decorator.trace, _decorator.bound], 2, "closeSetting"], [_decorator.bound, 2, "_resetScene"]], []).e;
331
432
  var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 2);
332
433
  _init_observableSettingStore = _applyDecs$e2[0];
333
434
  _initProto = _applyDecs$e2[1];
@@ -9,11 +9,10 @@ Object.defineProperty(exports, "__esModule", {
9
9
  exports.hookApp = void 0;
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
+ require("core-js/modules/es.array.concat.js");
12
13
  require("core-js/modules/es.array.find.js");
13
14
  require("core-js/modules/es.array.for-each.js");
14
15
  require("core-js/modules/es.array.join.js");
15
- require("core-js/modules/es.date.to-json.js");
16
- require("core-js/modules/es.json.stringify.js");
17
16
  require("core-js/modules/es.object.keys.js");
18
17
  require("core-js/modules/es.object.to-string.js");
19
18
  require("core-js/modules/es.string.starts-with.js");
@@ -38,6 +37,8 @@ var hookApp = exports.hookApp = function hookApp(app) {
38
37
  app.commandLine.appendSwitch('ignore-certificate-errors');
39
38
  app.addListener('browser-window-created', function (_, window) {
40
39
  var windowId = window.id;
40
+ var windowTitle = window.getTitle();
41
+ logger.info("browser window is created, id: ".concat(windowId, ", title: ").concat(windowTitle));
41
42
  window.addListener('close', function () {
42
43
  _electron.BrowserWindow.getAllWindows().forEach(function (window) {
43
44
  if (!isWindowDestroyed(window)) {
@@ -48,8 +49,8 @@ var hookApp = exports.hookApp = function hookApp(app) {
48
49
  }
49
50
  });
50
51
  });
51
- window.webContents.addListener('render-process-gone', function (event, arg) {
52
- logger.info("render-process-gone: ".concat(JSON.stringify(arg)));
52
+ window.webContents.addListener('render-process-gone', function (event, details) {
53
+ logger.info("rowser window render-process-gone, window id: ".concat(windowId, ", window title: ").concat(windowTitle, ", details.exitCode: ").concat(details.exitCode, ", details.reason: ").concat(details.reason));
53
54
  });
54
55
  window.webContents.addListener('did-finish-load', function () {
55
56
  setTimeout(function () {
@@ -28,6 +28,9 @@ var _devtoolShortcut = require("./plugins/devtool-shortcut");
28
28
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
29
29
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
30
30
  (0, _main.initialize)();
31
+ _electron.crashReporter.start({
32
+ uploadToServer: false
33
+ });
31
34
  (0, _app.hookApp)(_electron.app);
32
35
  _electron.app.addListener('ready', function () {
33
36
  var mainWindow = new _electron.BrowserWindow(_objectSpread(_objectSpread({}, _defaultOptions.defaultWindowOptions), {}, {
@@ -63,6 +63,10 @@ ipcClient.addObserver({
63
63
  });
64
64
  }
65
65
  },
66
+ onDisconnected: function onDisconnected() {
67
+ (0, _logger.getLogger)().info('IPC client disconnected from server');
68
+ _electron.app.exit(0);
69
+ },
66
70
  onMessageReceived: function onMessageReceived(message) {
67
71
  switch (message.cmd) {
68
72
  case _type.IPCMessageCMD.LaunchMeeting:
@@ -1,6 +1,7 @@
1
1
  import { IpcRendererEvent } from 'electron';
2
2
  import { BrowserWindowConstructorOptions } from 'electron/renderer';
3
3
  import os from 'os';
4
+ import type { WindowManager } from '../type';
4
5
  export declare enum FcrNumericExitReason {
5
6
  LEAVE_ROOM = 1,// 自己离开而退出
6
7
  CLOSE_ROOM = 2,// 房间关闭而退出
@@ -25,7 +26,10 @@ export declare const setFragmentBaseUrl: (isDev: boolean, baseUrl: string) => vo
25
26
  export declare const registerListenerReady: () => void;
26
27
  export declare const captureScreen: (options?: {
27
28
  hideWindow?: boolean;
29
+ alwaysHide?: boolean;
28
30
  }) => void;
31
+ export declare const getActiveWindow: () => WindowManager;
32
+ export declare const getWindows: () => WindowManager[];
29
33
  export declare const openRendererWindow: (frameName: string, renderFn: (dom: Element, browserWindow: Electron.BrowserWindow, newRendererWindow: Window) => void, windowOptions: BrowserWindowConstructorOptions) => Promise<void>;
30
34
  export declare const checkMediaPermission: (mediaType: "microphone" | "camera" | "sharing") => Promise<any>;
31
35
  export declare const openSystemPreferences: (mediaType: "microphone" | "camera") => void;
@@ -59,3 +63,4 @@ export declare const launchSuccess: (roomId: string) => void;
59
63
  export declare const launchFailure: (roomId: string, errorCode: number) => void;
60
64
  export declare const setParameters: (parameters: string) => void;
61
65
  export declare const exitedMeeting: (roomId: string, reason: string) => void;
66
+ export declare const getIsMeetingLaunched: () => Promise<any>;
@@ -6,7 +6,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
6
6
  Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
- exports.showItemInFolder = exports.setUserSettingData = exports.setParameters = exports.setInMeetingState = exports.setFragmentOptions = exports.setFragmentBaseUrl = exports.sendEvent = exports.screen = exports.restartApp = exports.removeEventListener = exports.releaseSubAllWindowRefs = exports.registerListenerReady = exports.quitApp = exports.openSystemPreferences = exports.openSetting = exports.openRendererWindow = exports.openLinkInDefaultBrowser = exports.openDirectory = exports.open = exports.loadBuiltinResources = exports.launchSuccess = exports.launchFailure = exports.launch = exports.initSDK = exports.getUserSettingData = exports.getSystemMemorySize = exports.getSystemCpuInfo = exports.getResourceByFileType = exports.getNetworkType = exports.getMediaSourceIdList = exports.getLaunchOptions = exports.getIsSDKReady = exports.getBundleType = exports.getBrowserWindowById = exports.fileToBlob = exports.fileToBase64 = exports.exitedMeeting = exports.closeRendererWindow = exports.close = exports.checkMediaPermission = exports.captureScreen = exports.browserWindow = exports.addEventListener = exports.FcrNumericExitReason = void 0;
9
+ exports.showItemInFolder = exports.setUserSettingData = exports.setParameters = exports.setInMeetingState = exports.setFragmentOptions = exports.setFragmentBaseUrl = exports.sendEvent = exports.screen = exports.restartApp = exports.removeEventListener = exports.releaseSubAllWindowRefs = exports.registerListenerReady = exports.quitApp = exports.openSystemPreferences = exports.openSetting = exports.openRendererWindow = exports.openLinkInDefaultBrowser = exports.openDirectory = exports.open = exports.loadBuiltinResources = exports.launchSuccess = exports.launchFailure = exports.launch = exports.initSDK = exports.getWindows = exports.getUserSettingData = exports.getSystemMemorySize = exports.getSystemCpuInfo = exports.getResourceByFileType = exports.getNetworkType = exports.getMediaSourceIdList = exports.getLaunchOptions = exports.getIsSDKReady = exports.getIsMeetingLaunched = exports.getBundleType = exports.getBrowserWindowById = exports.getActiveWindow = exports.fileToBlob = exports.fileToBase64 = exports.exitedMeeting = exports.closeRendererWindow = exports.close = exports.checkMediaPermission = exports.captureScreen = exports.browserWindow = exports.addEventListener = exports.FcrNumericExitReason = void 0;
10
10
  require("core-js/modules/es.error.cause.js");
11
11
  require("core-js/modules/es.error.to-string.js");
12
12
  require("core-js/modules/es.array.concat.js");
@@ -57,6 +57,7 @@ var _path2 = _interopRequireDefault(require("path"));
57
57
  var _fs2 = _interopRequireDefault(require("fs"));
58
58
  var _promises = _interopRequireDefault(require("fs/promises"));
59
59
  var _jszip = _interopRequireDefault(require("jszip"));
60
+ var _nodeWindowManager = require("node-window-manager");
60
61
  var USER_SETTING_DATA_FILE_NAME = 'UserSettingData.json';
61
62
 
62
63
  // Numeric exit reason enum
@@ -162,6 +163,14 @@ var registerListenerReady = exports.registerListenerReady = function registerLis
162
163
  var captureScreen = exports.captureScreen = function captureScreen(options) {
163
164
  _electron.ipcRenderer.send('short-cut-capture', "short-cut-capture-reply-".concat(Date.now()), options);
164
165
  };
166
+ var getActiveWindow = exports.getActiveWindow = function getActiveWindow() {
167
+ return _nodeWindowManager.windowManager.getActiveWindow();
168
+ //return undefined;
169
+ };
170
+ var getWindows = exports.getWindows = function getWindows() {
171
+ return _nodeWindowManager.windowManager.getWindows();
172
+ //return [];
173
+ };
165
174
  var rendererWindows = {};
166
175
  var rendererWindowMutationObservers = {};
167
176
  var openRendererWindow = exports.openRendererWindow = /*#__PURE__*/function () {
@@ -606,11 +615,11 @@ function downloadFile(_x11, _x12) {
606
615
  return _downloadFile.apply(this, arguments);
607
616
  } // 获取资源
608
617
  function _downloadFile() {
609
- _downloadFile = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee13(url, destination) {
610
- return _regenerator["default"].wrap(function _callee13$(_context13) {
611
- while (1) switch (_context13.prev = _context13.next) {
618
+ _downloadFile = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee14(url, destination) {
619
+ return _regenerator["default"].wrap(function _callee14$(_context14) {
620
+ while (1) switch (_context14.prev = _context14.next) {
612
621
  case 0:
613
- return _context13.abrupt("return", new Promise(function (resolve, reject) {
622
+ return _context14.abrupt("return", new Promise(function (resolve, reject) {
614
623
  var request = _remote.net.request(url);
615
624
  request.on('response', function (response) {
616
625
  var fileStream = _fs2["default"].createWriteStream(destination);
@@ -634,9 +643,9 @@ function _downloadFile() {
634
643
  }));
635
644
  case 1:
636
645
  case "end":
637
- return _context13.stop();
646
+ return _context14.stop();
638
647
  }
639
- }, _callee13);
648
+ }, _callee14);
640
649
  }));
641
650
  return _downloadFile.apply(this, arguments);
642
651
  }
@@ -871,4 +880,23 @@ var setParameters = exports.setParameters = function setParameters(parameters) {
871
880
  var exitedMeeting = exports.exitedMeeting = function exitedMeeting(roomId, reason) {
872
881
  var numericReason = exitReasonMap[reason];
873
882
  _electron.ipcRenderer.send('exited-meeting', roomId, numericReason);
874
- };
883
+ };
884
+ var getIsMeetingLaunched = exports.getIsMeetingLaunched = /*#__PURE__*/function () {
885
+ var _ref15 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee13() {
886
+ return _regenerator["default"].wrap(function _callee13$(_context13) {
887
+ while (1) switch (_context13.prev = _context13.next) {
888
+ case 0:
889
+ _context13.next = 2;
890
+ return _electron.ipcRenderer.invoke('getIsMeetingLaunched');
891
+ case 2:
892
+ return _context13.abrupt("return", _context13.sent);
893
+ case 3:
894
+ case "end":
895
+ return _context13.stop();
896
+ }
897
+ }, _callee13);
898
+ }));
899
+ return function getIsMeetingLaunched() {
900
+ return _ref15.apply(this, arguments);
901
+ };
902
+ }();
@@ -6,6 +6,7 @@ interface IPCMessage {
6
6
  interface IPCClientObserver {
7
7
  onConnected: () => void;
8
8
  onMessageReceived: (message: IPCMessage) => void;
9
+ onDisconnected: () => void;
9
10
  onError: (error: Error) => void;
10
11
  }
11
12
  export declare class IPCClient {
@@ -58,6 +58,10 @@ var IPCClient = exports.IPCClient = /*#__PURE__*/function () {
58
58
  this._socket.on('end', function () {
59
59
  _this._logger.info('disconnected from server');
60
60
  });
61
+ this._socket.on('close', function () {
62
+ _this._logger.info('disconnected from server');
63
+ _this._observable.emit('onDisconnected');
64
+ });
61
65
  this._socket.on('data', function (data) {
62
66
  // 将新数据追加到现有缓冲区
63
67
  _this._buffer = Buffer.concat([_this._buffer, data]);
@@ -16,15 +16,15 @@ var _meetingState = require("./plugins/meeting-state");
16
16
  var logger = (0, _logger.getLogger)();
17
17
  var hookWindow = exports.hookWindow = function hookWindow(mainWindow) {
18
18
  mainWindow.webContents.addListener('did-create-window', function (window, details) {
19
- logger.info("browser window is opened, frameName: ".concat(details.frameName));
20
- var builtinFrameNames = ['device-settings', 'chat', 'live-streaming', 'participant', 'share-screen-selection', 'invite', 'video-window', 'confirm', 'connection-gateway', 'whiteboard', 'progress-dialog', 'operation-waiting-room', 'operation-waiting-room', 'interpreter-setting', 'waiting-room-single-remove', 'waiting-room-all-remove', 'waiting-room-all-admit', 'control-bar', 'show-toast', 'system-preference', 'rename', 'leave-meeting'];
19
+ logger.info("[electron][window]: browser window is opened, frameName: ".concat(details.frameName));
20
+ var builtinFrameNames = ['device-settings', 'chat', 'live-streaming', 'participant', 'share-screen-selection', 'invite', 'video-window', 'confirm', 'connection-gateway', 'whiteboard', 'progress-dialog', 'operation-waiting-room', 'operation-waiting-room', 'interpreter-setting', 'waiting-room-single-remove', 'waiting-room-all-remove', 'waiting-room-all-admit', 'control-bar', 'show-toast', 'system-preference', 'rename', 'annotation-tool', 'leave-meeting'];
21
21
  if (!builtinFrameNames.includes(details.frameName) && !details.frameName.startsWith('widget')) {
22
- logger.info("frameName [".concat(details.frameName, "] is not in builtinFrameNames, ignore it"));
22
+ logger.info("[electron][window]: frameName [".concat(details.frameName, "] is not in builtinFrameNames, ignore it"));
23
23
  return;
24
24
  }
25
25
  (0, _window.putRendererWindow)(details.frameName, window);
26
26
  window.webContents.addListener('destroyed', function () {
27
- logger.info("browser window is destroyed, frameName: ".concat(details.frameName));
27
+ logger.info("[electron][window]: browser window is destroyed, frameName: ".concat(details.frameName));
28
28
  (0, _window.deleteRendererWindow)(details.frameName);
29
29
  });
30
30
 
@@ -32,14 +32,21 @@ var hookWindow = exports.hookWindow = function hookWindow(mainWindow) {
32
32
  // renderer process will receive the will-close event, do some clean up and then call window.close() to close the window
33
33
  window.addListener('close', function (event) {
34
34
  event.preventDefault();
35
- logger.info("Window [".concat(window.title, ":").concat(window.id, "] is closed by shortcut CMD + W, send 'will-close' event to that window"));
35
+ logger.info("[electron][window]: Window [".concat(window.title, ":").concat(window.id, "] is closed by shortcut CMD + W, send 'will-close' event to that window"));
36
36
  window.emit('will-close');
37
37
  });
38
38
  window.addListener('will-resize', function (event, newBounds, details) {
39
- logger.info("Window [".concat(window.title, ":").concat(window.id, "] is resized, send 'will-resize' event to that window"));
39
+ logger.info("[electron][window]: Window [".concat(window.title, ":").concat(window.id, "] is resized, send 'custom-resize' event to that window"));
40
40
  window.emit('custom-resize', event, newBounds, details);
41
41
  });
42
42
 
43
+ // window.addListener('move', () => {
44
+ // logger.info(
45
+ // `Window [${window.title}:${window.id}] is move, send 'custom-move' event to that window`,
46
+ // );
47
+ // window.emit('custom-move');
48
+ // });
49
+
43
50
  // screen?.addListener('display-metrics-changed', (event, display, changedMetrics) => {
44
51
  // logger.info(
45
52
  // `Screen metrics [${window.title}:${window.id}] is changed, send 'display-metrics-changed' event to that window`,
@@ -51,11 +58,11 @@ var hookWindow = exports.hookWindow = function hookWindow(mainWindow) {
51
58
  attachEventOnMethod(window, 'show', 'CALL_SHOW');
52
59
  });
53
60
  mainWindow.webContents.addListener('render-process-gone', function (event, details) {
54
- logger.info("main window render-process-gone, details: ".concat(details));
61
+ logger.info("[electron][window]: main window render-process-gone, details.exitCode: ".concat(details.exitCode, ", details.reason: ").concat(details.reason));
55
62
  (0, _window.closeAllWindows)();
56
63
  (0, _window.clearAllRendererWindows)();
57
64
  setTimeout(function () {
58
- logger.info('start reloading main window...');
65
+ logger.info('[electron][window]: start reloading main window...');
59
66
  mainWindow.reload();
60
67
  }, 1000);
61
68
  });
@@ -74,6 +81,7 @@ var hookWindow = exports.hookWindow = function hookWindow(mainWindow) {
74
81
  };
75
82
  var attachEventOnMethod = function attachEventOnMethod(browserWindow, method, action) {
76
83
  var func = browserWindow[method];
84
+ logger.info("[electron][window]: attachEventOnMethod, method: ".concat(String(method), ", action: ").concat(action));
77
85
  if (typeof func === 'function') {
78
86
  // @ts-ignore
79
87
  browserWindow[method] = function () {
@@ -12,10 +12,11 @@ var _electronScreenshots = _interopRequireDefault(require("electron-screenshots"
12
12
  var listenScreenshot = exports.listenScreenshot = function listenScreenshot(window) {
13
13
  var shortcutCapture = new _electronScreenshots["default"]();
14
14
  var isCapturing = false,
15
- module = '';
15
+ module = '',
16
+ alwaysHide = false;
16
17
  var timer = null;
17
18
  var stopScreen = function stopScreen() {
18
- window.setOpacity(1);
19
+ !alwaysHide && window.setOpacity(1);
19
20
  isCapturing = false;
20
21
  timer && clearTimeout(timer);
21
22
  };
@@ -42,6 +43,7 @@ var listenScreenshot = exports.listenScreenshot = function listenScreenshot(wind
42
43
  var hideWindow = false;
43
44
  hideWindow = payload.hideWindow;
44
45
  module = payload.module;
46
+ alwaysHide = !!(payload !== null && payload !== void 0 && payload.alwaysHide);
45
47
  hideWindow && window.setOpacity(0);
46
48
  if (!shortcutCapture) {
47
49
  shortcutCapture = new _electronScreenshots["default"]();
@@ -40,6 +40,8 @@ window.runtime = {
40
40
  openSystemPreferences: _injections.openSystemPreferences,
41
41
  getUserSettingData: _injections.getUserSettingData,
42
42
  setUserSettingData: _injections.setUserSettingData,
43
+ getActiveWindow: _injections.getActiveWindow,
44
+ getWindows: _injections.getWindows,
43
45
  initSDK: _injections.initSDK,
44
46
  getIsSDKReady: _injections.getIsSDKReady,
45
47
  openSetting: _injections.openSetting,
@@ -47,13 +49,16 @@ window.runtime = {
47
49
  launchSuccess: _injections.launchSuccess,
48
50
  launchFailure: _injections.launchFailure,
49
51
  setParameters: _injections.setParameters,
50
- exitedMeeting: _injections.exitedMeeting
52
+ exitedMeeting: _injections.exitedMeeting,
53
+ getIsMeetingLaunched: _injections.getIsMeetingLaunched
51
54
  };
52
55
  _renderer.ipcRenderer.on(_type.IPCMessageCMD.InitCreator, function (_event, value) {
53
56
  if (window.runtime.onCreatorInit) {
54
57
  var data = value;
55
58
  try {
56
- data = JSON.parse(value);
59
+ if (typeof value == 'string') {
60
+ data = JSON.parse(value);
61
+ }
57
62
  } catch (e) {
58
63
  console.error('Failed to parse init options:', e);
59
64
  }