fcr-ui-scene 3.6.2 → 3.6.4

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 (374) hide show
  1. package/lib/base.js +0 -3
  2. package/lib/creator.d.ts +1 -0
  3. package/lib/creator.js +64 -50
  4. package/lib/electron/app.js +33 -14
  5. package/lib/electron/bootstrap-dev.js +5 -3
  6. package/lib/electron/bootstrap-sdk.js +4 -10
  7. package/lib/electron/exit-codes.d.ts +14 -0
  8. package/lib/electron/exit-codes.js +22 -0
  9. package/lib/electron/injections.d.ts +3 -2
  10. package/lib/electron/injections.js +122 -124
  11. package/lib/electron/ipc/ipc.js +0 -1
  12. package/lib/electron/main.js +57 -12
  13. package/lib/electron/tools.js +0 -4
  14. package/lib/electron/window.js +1 -7
  15. package/lib/fragments/annotation/index.d.ts +1 -0
  16. package/lib/fragments/annotation/index.js +54 -40
  17. package/lib/fragments/annotation/store.d.ts +7 -2
  18. package/lib/fragments/annotation/store.js +181 -102
  19. package/lib/fragments/annotation/view.d.ts +1 -0
  20. package/lib/fragments/annotation/view.js +10 -2
  21. package/lib/modules/action-bar/components/apps/app-item/index.js +0 -2
  22. package/lib/modules/action-bar/components/apps/app-list.js +2 -5
  23. package/lib/modules/action-bar/components/apps/useAppItemOptions.js +0 -3
  24. package/lib/modules/action-bar/components/apps/useWidgetList.js +2 -1
  25. package/lib/modules/action-bar/components/collapse/index.js +0 -4
  26. package/lib/modules/action-bar/components/item/index.js +0 -2
  27. package/lib/modules/action-bar/components/leave/index.js +0 -2
  28. package/lib/modules/action-bar/components/more/poppover-content.js +0 -4
  29. package/lib/modules/action-bar/components/notification-bar/components/interpreter/index.js +2 -1
  30. package/lib/modules/action-bar/components/notification-bar/index.js +0 -2
  31. package/lib/modules/action-bar/components/screen-share/index.js +0 -1
  32. package/lib/modules/action-bar/components/screen-share/submenu.js +0 -3
  33. package/lib/modules/action-bar/components/trigger-output-language/index.js +11 -14
  34. package/lib/modules/action-bar/components/trigger-subscribe-language/index.js +8 -11
  35. package/lib/modules/action-bar/index.css +4 -0
  36. package/lib/modules/action-bar/index.js +1 -2
  37. package/lib/modules/action-bar/store.d.ts +1 -7
  38. package/lib/modules/action-bar/store.js +67 -118
  39. package/lib/modules/annotation/board-cursor.css +76 -0
  40. package/lib/modules/annotation/components/control-bar/index.js +43 -2
  41. package/lib/modules/annotation/components/toolbar/components/color-tool/color-panel/index.js +2 -1
  42. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.js +5 -2
  43. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +1 -0
  44. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.js +11 -5
  45. package/lib/modules/annotation/components/toolbar/components/graphic-tool/index.js +0 -2
  46. package/lib/modules/annotation/components/toolbar/components/item/item.d.ts +1 -0
  47. package/lib/modules/annotation/components/toolbar/components/item/item.js +3 -2
  48. package/lib/modules/annotation/components/toolbar/components/pen-tool/pen-panel/index.js +1 -0
  49. package/lib/modules/annotation/components/toolbar/store.js +0 -1
  50. package/lib/modules/annotation/index.d.ts +4 -0
  51. package/lib/modules/annotation/index.js +3 -1
  52. package/lib/modules/annotation/store.d.ts +15 -5
  53. package/lib/modules/annotation/store.js +222 -205
  54. package/lib/modules/annotation/style.css +3 -3
  55. package/lib/modules/annotation/view.d.ts +1 -0
  56. package/lib/modules/annotation/view.js +26 -9
  57. package/lib/modules/audio-stream/index.js +0 -4
  58. package/lib/modules/chat/chat-room-store.js +6 -10
  59. package/lib/modules/chat/components/chat-bar/index.js +0 -2
  60. package/lib/modules/chat/components/chat-select/index.js +0 -1
  61. package/lib/modules/chat/components/chat-select/select-item/index.js +2 -5
  62. package/lib/modules/chat/components/message-list/index.js +1 -3
  63. package/lib/modules/chat/components/message-list/message-item/index.js +11 -13
  64. package/lib/modules/chat/index.js +13 -14
  65. package/lib/modules/chat/store.js +0 -1
  66. package/lib/modules/chat/view.js +11 -15
  67. package/lib/modules/components/annotation-menu/index.js +0 -3
  68. package/lib/modules/components/device-control/components/audio-menu/index.js +2 -1
  69. package/lib/modules/components/device-control/components/video-menu/index.js +2 -1
  70. package/lib/modules/components/device-control/store.js +0 -1
  71. package/lib/modules/components/leave-meeting/components/assign-host.js +4 -5
  72. package/lib/modules/components/leave-meeting/store.js +11 -12
  73. package/lib/modules/components/member-window/components/member-actions/components/audio-control.d.ts +0 -1
  74. package/lib/modules/components/member-window/components/member-actions/components/audio-control.js +10 -4
  75. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.d.ts +2 -2
  76. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +4 -4
  77. package/lib/modules/components/member-window/components/member-actions/components/icon-status.d.ts +0 -2
  78. package/lib/modules/components/member-window/components/member-actions/components/icon-status.js +3 -4
  79. package/lib/modules/components/member-window/components/member-actions/components/layout/index.js +1 -2
  80. package/lib/modules/components/member-window/components/member-actions/components/more-actions.d.ts +0 -3
  81. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +7 -34
  82. package/lib/modules/components/member-window/components/member-actions/components/share-status.js +11 -3
  83. package/lib/modules/components/member-window/components/member-actions/components/user-info.d.ts +0 -1
  84. package/lib/modules/components/member-window/components/member-actions/components/user-info.js +8 -13
  85. package/lib/modules/components/member-window/components/member-actions/components/user-tag.d.ts +0 -1
  86. package/lib/modules/components/member-window/components/member-actions/components/user-tag.js +0 -2
  87. package/lib/modules/components/member-window/components/member-actions/index.js +1 -33
  88. package/lib/modules/components/member-window/components/member-actions/provider.js +1 -2
  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 +120 -13
  91. package/lib/modules/components/member-window/components/video-player/components/local-video-player.d.ts +3 -0
  92. package/lib/modules/components/member-window/components/video-player/components/local-video-player.js +16 -3
  93. package/lib/modules/components/member-window/components/video-player/index.d.ts +2 -0
  94. package/lib/modules/components/member-window/components/video-player/index.js +3 -3
  95. package/lib/modules/components/member-window/index.css +37 -0
  96. package/lib/modules/components/member-window/index.js +1 -0
  97. package/lib/modules/components/security-menu/index.js +1 -4
  98. package/lib/modules/components/tab-frame/index.js +0 -4
  99. package/lib/modules/connection-gateway/components/phone/components/callinfo/index.js +2 -1
  100. package/lib/modules/connection-gateway/components/phone/index.js +5 -4
  101. package/lib/modules/connection-gateway/index.js +1 -2
  102. package/lib/modules/connection-gateway/store.js +23 -26
  103. package/lib/modules/control-bar/components/more-actions/index.js +0 -3
  104. package/lib/modules/control-bar/index.d.ts +0 -4
  105. package/lib/modules/control-bar/index.js +1 -34
  106. package/lib/modules/control-bar/store.d.ts +5 -6
  107. package/lib/modules/control-bar/store.js +70 -104
  108. package/lib/modules/control-bar/view.js +53 -13
  109. package/lib/modules/device-pretest/settings/beauty.js +1 -2
  110. package/lib/modules/device-pretest/settings/virtual-background-setting.js +2 -1
  111. package/lib/modules/device-pretest/store.js +2 -4
  112. package/lib/modules/dialog/components/control-bar/index.d.ts +0 -2
  113. package/lib/modules/dialog/components/control-bar/index.js +4 -6
  114. package/lib/modules/dialog/components/dialog-container/component/body.js +0 -2
  115. package/lib/modules/dialog/components/dialog-container/index.js +1 -2
  116. package/lib/modules/dialog/components/host-area-container/index.js +0 -3
  117. package/lib/modules/dialog/components/pre-setting-container/component/body.js +0 -2
  118. package/lib/modules/dialog/components/pre-setting-container/index.js +1 -2
  119. package/lib/modules/dialog/components/system-preference/index.js +2 -5
  120. package/lib/modules/dialog/components/video-window/index.js +0 -2
  121. package/lib/modules/dialog/hooks/use-popover-watcher.js +0 -1
  122. package/lib/modules/dialog/hooks/useElectron.js +3 -4
  123. package/lib/modules/dialog/index.d.ts +0 -3
  124. package/lib/modules/dialog/index.js +2 -28
  125. package/lib/modules/dialog/store.d.ts +6 -8
  126. package/lib/modules/dialog/store.js +22 -60
  127. package/lib/modules/dialog/view.js +2 -1
  128. package/lib/modules/event-confirm/components/window/index.js +0 -2
  129. package/lib/modules/event-confirm/index.js +1 -2
  130. package/lib/modules/event-confirm/store.js +4 -7
  131. package/lib/modules/event-confirm/view.js +2 -1
  132. package/lib/modules/event-sound/index.js +1 -2
  133. package/lib/modules/event-sound/sound-effect-player.js +2 -2
  134. package/lib/modules/event-toast/index.js +1 -2
  135. package/lib/modules/event-toast/store.js +0 -2
  136. package/lib/modules/event-toast/view.js +2 -1
  137. package/lib/modules/interpreter/index.js +1 -2
  138. package/lib/modules/interpreter/interpreter-list/index.js +3 -4
  139. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/index.js +2 -5
  140. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/index.js +0 -2
  141. package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-user/index.js +0 -4
  142. package/lib/modules/interpreter/store.js +5 -10
  143. package/lib/modules/interpreter/utils.js +15 -14
  144. package/lib/modules/invite/components/pstn-invite.js +22 -23
  145. package/lib/modules/invite/components/voip-invite.js +7 -7
  146. package/lib/modules/invite/enums.js +1 -0
  147. package/lib/modules/invite/index.js +1 -2
  148. package/lib/modules/invite/store.js +46 -45
  149. package/lib/modules/layout/components/CommonVideoRenderer.js +7 -3
  150. package/lib/modules/layout/components/Gallery.js +5 -3
  151. package/lib/modules/layout/components/index.js +0 -1
  152. package/lib/modules/layout/index.js +1 -2
  153. package/lib/modules/layout/store.d.ts +3 -0
  154. package/lib/modules/layout/store.js +38 -14
  155. package/lib/modules/layout/type.d.ts +7 -0
  156. package/lib/modules/layout/type.js +9 -0
  157. package/lib/modules/live-streaming/index.dev.js +6 -6
  158. package/lib/modules/live-streaming/index.js +1 -2
  159. package/lib/modules/live-streaming/store.js +19 -19
  160. package/lib/modules/notification/index.js +1 -2
  161. package/lib/modules/notification/interpreter-status/index.js +2 -1
  162. package/lib/modules/notification/view.js +1 -2
  163. package/lib/modules/offscreen-pulling/index.js +0 -1
  164. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.js +1 -4
  165. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.js +0 -2
  166. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.js +0 -2
  167. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.js +1 -4
  168. package/lib/modules/participant/components/participants/components/participants/index.js +0 -2
  169. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/interpreter-tag/index.js +0 -1
  170. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.js +0 -2
  171. package/lib/modules/participant/index.js +1 -4
  172. package/lib/modules/participant/member-list-data-source.js +0 -3
  173. package/lib/modules/participant/store.js +140 -114
  174. package/lib/modules/pc-audio-connect/index.js +1 -2
  175. package/lib/modules/pc-audio-connect/store.js +9 -10
  176. package/lib/modules/phone-audio-connect/components/callinfo/index.js +2 -1
  177. package/lib/modules/phone-audio-connect/index.js +1 -2
  178. package/lib/modules/phone-audio-connect/store.js +0 -3
  179. package/lib/modules/phone-audio-connect/view.js +5 -4
  180. package/lib/modules/setting/audio-settings/audio-settings.js +1 -4
  181. package/lib/modules/setting/general-settings/general-settings.js +1 -2
  182. package/lib/modules/setting/index.d.ts +2 -0
  183. package/lib/modules/setting/index.js +4 -5
  184. package/lib/modules/setting/minutes-settings/minutes-settings.js +1 -2
  185. package/lib/modules/setting/state/index.js +0 -4
  186. package/lib/modules/setting/storage-settings/storage-settings.js +4 -4
  187. package/lib/modules/setting/store.d.ts +8 -10
  188. package/lib/modules/setting/store.js +33 -35
  189. package/lib/modules/setting/translate-settings/translate-settings.js +1 -1
  190. package/lib/modules/setting/video-settings/video-settings.js +1 -2
  191. package/lib/modules/setting/view.js +1 -2
  192. package/lib/modules/share-screen/components/selection/index.js +16 -9
  193. package/lib/modules/share-screen/index.d.ts +2 -0
  194. package/lib/modules/share-screen/index.js +3 -3
  195. package/lib/modules/share-screen/store.d.ts +12 -2
  196. package/lib/modules/share-screen/store.js +149 -136
  197. package/lib/modules/state-bar/index.css +8 -6
  198. package/lib/modules/state-bar/index.d.ts +2 -0
  199. package/lib/modules/state-bar/index.js +3 -3
  200. package/lib/modules/state-bar/layout-config.d.ts +1 -0
  201. package/lib/modules/state-bar/layout-config.js +17 -6
  202. package/lib/modules/state-bar/live-streaming-state.js +0 -3
  203. package/lib/modules/state-bar/store.d.ts +5 -1
  204. package/lib/modules/state-bar/store.js +8 -2
  205. package/lib/modules/state-bar/view.js +9 -5
  206. package/lib/modules/video-window/components/members/index.js +2 -1
  207. package/lib/modules/video-window/components/topControl/index.js +0 -3
  208. package/lib/modules/video-window/index.js +1 -2
  209. package/lib/modules/video-window/store.js +0 -4
  210. package/lib/modules/waiting-room-layout/index.js +1 -2
  211. package/lib/modules/whiteboard/components/control-bar/store.js +2 -1
  212. package/lib/modules/whiteboard/components/switch-theme/index.js +0 -2
  213. package/lib/modules/whiteboard/components/switch-theme/item.js +2 -1
  214. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/panel.js +2 -1
  215. package/lib/modules/whiteboard/components/toolbar/components/color-picker/index.js +2 -1
  216. package/lib/modules/whiteboard/components/toolbar/components/expansion/index.js +1 -4
  217. package/lib/modules/whiteboard/components/toolbar/components/extra-tool-picker.js +2 -3
  218. package/lib/modules/whiteboard/components/toolbar/components/move-handle.js +0 -2
  219. package/lib/modules/whiteboard/components/toolbar/components/pen-picker.js +1 -2
  220. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +1 -3
  221. package/lib/modules/whiteboard/components/toolbar/hooks/index.js +2 -4
  222. package/lib/modules/whiteboard/components/toolbar/index.js +1 -1
  223. package/lib/modules/whiteboard/components/toolbar/store.d.ts +7 -3
  224. package/lib/modules/whiteboard/components/toolbar/store.js +64 -37
  225. package/lib/modules/whiteboard/index.js +5 -8
  226. package/lib/modules/whiteboard/style.css +12 -4
  227. package/lib/modules/whiteboard/view.js +10 -2
  228. package/lib/modules/widget/index.js +1 -2
  229. package/lib/modules/widget/web-widget.js +1 -1
  230. package/lib/plugins/browser-runtime-plugin.js +1 -1
  231. package/lib/plugins/module-dev-plugin.js +13 -13
  232. package/lib/providers/ability-provider.d.ts +12 -1
  233. package/lib/providers/ability-provider.js +8 -1
  234. package/lib/providers/annotation-provider.d.ts +63 -12
  235. package/lib/providers/annotation-provider.js +52 -46
  236. package/lib/providers/device-privilege-provider.js +81 -83
  237. package/lib/providers/device-provider.d.ts +3 -3
  238. package/lib/providers/device-provider.js +201 -204
  239. package/lib/providers/device-stream-provider.js +24 -27
  240. package/lib/providers/event-provider.d.ts +3 -3
  241. package/lib/providers/event-provider.js +0 -2
  242. package/lib/providers/interpreter-provider.js +195 -197
  243. package/lib/providers/message-provider.js +0 -2
  244. package/lib/providers/phone-audio-provider.js +17 -19
  245. package/lib/providers/privilege-provider.js +53 -58
  246. package/lib/providers/renderer-provider.d.ts +3 -1
  247. package/lib/providers/renderer-provider.js +18 -4
  248. package/lib/providers/room-provider.js +31 -33
  249. package/lib/providers/screen-share-provider.d.ts +1 -0
  250. package/lib/providers/screen-share-provider.js +97 -103
  251. package/lib/providers/sharing-provider.d.ts +5 -1
  252. package/lib/providers/sharing-provider.js +17 -1
  253. package/lib/providers/user-setting-storage-provider.d.ts +20 -0
  254. package/lib/providers/user-setting-storage-provider.js +72 -0
  255. package/lib/providers/widget-provider.js +0 -1
  256. package/lib/scenes/main-scene.js +13 -16
  257. package/lib/scenes/waiting-scene.js +4 -4
  258. package/lib/shared-data-source/chat-data.js +0 -2
  259. package/lib/shared-data-source/config.d.ts +1 -5
  260. package/lib/shared-data-source/config.js +11 -81
  261. package/lib/shared-data-source/interpreter.js +0 -2
  262. package/lib/shared-data-source/layout-data.js +1 -4
  263. package/lib/shared-data-source/member-data.js +0 -4
  264. package/lib/shared-data-source/pin-data.js +0 -1
  265. package/lib/shared-data-source/screen-share-data.d.ts +6 -2
  266. package/lib/shared-data-source/screen-share-data.js +2 -2
  267. package/lib/shared-data-source/security-data.js +0 -1
  268. package/lib/shared-data-source/setting.d.ts +13 -13
  269. package/lib/shared-data-source/setting.js +10 -8
  270. package/lib/shared-data-source/video-window.d.ts +2 -1
  271. package/lib/shared-data-source/video-window.js +82 -66
  272. package/lib/shared-data-source/waiting-room.js +0 -2
  273. package/lib/translations/enUS.d.ts +8 -0
  274. package/lib/translations/enUS.js +9 -1
  275. package/lib/translations/zhCN.d.ts +8 -0
  276. package/lib/translations/zhCN.js +11 -3
  277. package/lib/type.d.ts +2 -1
  278. package/lib/type.js +14 -0
  279. package/lib/ui-scene.js +18 -14
  280. package/lib/utilities/constant.d.ts +2 -1
  281. package/lib/utilities/constant.js +8 -0
  282. package/lib/utilities/copyText.js +12 -12
  283. package/lib/utilities/hooks.js +1 -2
  284. package/lib/utilities/logger.js +0 -1
  285. package/lib/utilities/parameters.js +2 -2
  286. package/lib/utilities/privilege.js +0 -3
  287. package/lib/utilities/renderer-event.js +0 -2
  288. package/lib/utilities/setting-config-storage.d.ts +7 -6
  289. package/lib/utilities/setting-config-storage.js +55 -41
  290. package/lib/utilities/tools.d.ts +1 -0
  291. package/lib/utilities/tools.js +9 -12
  292. package/lib/waiting-room-control-manager.js +26 -28
  293. package/package.json +8 -6
  294. package/dist/132.js +0 -2
  295. package/dist/132.js.LICENSE.txt +0 -311
  296. package/dist/317.js +0 -2
  297. package/dist/317.js.LICENSE.txt +0 -20
  298. package/dist/651.js +0 -2
  299. package/dist/651.js.LICENSE.txt +0 -1
  300. package/dist/689343b64b60bfb7ffff.png +0 -0
  301. package/dist/73.js +0 -1
  302. package/dist/885f9369ea05a8ac0e56.png +0 -0
  303. package/dist/90f383876a6e93e7c7ca.png +0 -0
  304. package/dist/9b37584780995fc5df8c.gif +0 -0
  305. package/dist/annotation.e5cbd3a70b6d42361872.css +0 -1274
  306. package/dist/annotation.html +0 -1
  307. package/dist/annotation.js +0 -2
  308. package/dist/annotation.js.LICENSE.txt +0 -252
  309. package/dist/assets/browser/images/default1.jpg +0 -0
  310. package/dist/assets/browser/images/default2.jpg +0 -0
  311. package/dist/assets/browser/images/default3.jpg +0 -0
  312. package/dist/assets/browser/images/default4.jpg +0 -0
  313. package/dist/assets/browser/images/default5.jpg +0 -0
  314. package/dist/assets/browser/images/default6.jpg +0 -0
  315. package/dist/assets/browser/images/default7.jpg +0 -0
  316. package/dist/assets/browser/sound_effects/pretest.mp3 +0 -0
  317. package/dist/assets/browser/sound_effects/recording_started.mp3 +0 -0
  318. package/dist/assets/browser/sound_effects/remote_user_joined.mp3 +0 -0
  319. package/dist/assets/browser/sound_effects/speaker_test.mp3 +0 -0
  320. package/dist/assets/browser/videos/default8.mp4 +0 -0
  321. package/dist/assets/browser/videos/default9.mp4 +0 -0
  322. package/dist/assets/cursors/fcr_whiteboard_input.ico +0 -0
  323. package/dist/assets/cursors/fcr_whiteboard_pen.ico +0 -0
  324. package/dist/assets/cursors/fcr_whiteboard_shape_-straightline.ico +0 -0
  325. package/dist/assets/cursors/fcr_whiteboard_shape_arrow.ico +0 -0
  326. package/dist/assets/cursors/fcr_whiteboard_shape_circle.ico +0 -0
  327. package/dist/assets/cursors/fcr_whiteboard_shape_rectangle.ico +0 -0
  328. package/dist/assets/cursors/fcr_whiteboard_shape_triangle.ico +0 -0
  329. package/dist/assets/electron/images/default1.jpg +0 -0
  330. package/dist/assets/electron/images/default2.jpg +0 -0
  331. package/dist/assets/electron/sound_effects/pretest.mp3 +0 -0
  332. package/dist/assets/electron/videos/default8.mp4 +0 -0
  333. package/dist/assets/fcr_chat_reddot.svg +0 -5
  334. package/dist/assets/fcr_defaultpage.png +0 -0
  335. package/dist/assets/fcr_grid_big.svg +0 -3
  336. package/dist/assets/fcr_leave2.svg +0 -58
  337. package/dist/assets/fcr_listontop_big.svg +0 -3
  338. package/dist/assets/full-screen-error-boundary-img.png +0 -0
  339. package/dist/assets/leave-meeting.png +0 -0
  340. package/dist/assets/loading.gif +0 -0
  341. package/dist/assets/login_confirm.png +0 -0
  342. package/dist/assets/pretest.mp3 +0 -0
  343. package/dist/assets/state-bar-logo.png +0 -0
  344. package/dist/assets/step-gradient.svg +0 -10
  345. package/dist/b74b002687a3a3346bec.png +0 -0
  346. package/dist/b94869094481702f949b.png +0 -0
  347. package/dist/ebeace75fd46b90d890e.png +0 -0
  348. package/dist/electron/app.js +0 -194
  349. package/dist/electron/bootstrap-dev.js +0 -46
  350. package/dist/electron/bootstrap-sdk.js +0 -211
  351. package/dist/electron/default-options.js +0 -25
  352. package/dist/electron/env.js +0 -13
  353. package/dist/electron/index.js +0 -20
  354. package/dist/electron/injections.js +0 -903
  355. package/dist/electron/ipc/ipc.js +0 -141
  356. package/dist/electron/ipc/type.js +0 -19
  357. package/dist/electron/logger.js +0 -65
  358. package/dist/electron/main.js +0 -94
  359. package/dist/electron/plugins/devtool-shortcut.js +0 -33
  360. package/dist/electron/plugins/meeting-state.js +0 -39
  361. package/dist/electron/plugins/screenshot.js +0 -54
  362. package/dist/electron/preload.js +0 -108
  363. package/dist/electron/tools.js +0 -66
  364. package/dist/electron/window.js +0 -123
  365. package/dist/extensions/agora-extension-virtual-background/agora-wasm.wasm +0 -0
  366. package/dist/extensions/ai-denoiser/denoiser-wasm-simd.wasm +0 -0
  367. package/dist/extensions/ai-denoiser/denoiser-wasm.js +0 -1
  368. package/dist/extensions/ai-denoiser/denoiser-wasm.wasm +0 -0
  369. package/dist/fad688b9135b15d6c405.png +0 -0
  370. package/dist/index.html +0 -224
  371. package/dist/main.393a2a91ab7fc05ffce6.css +0 -15403
  372. package/dist/main.js +0 -2
  373. package/dist/main.js.LICENSE.txt +0 -272
  374. package/dist/worker-entry.worker.js.LICENSE.txt +0 -13
@@ -40,6 +40,7 @@ Object.defineProperty(exports, "__esModule", {
40
40
  });
41
41
  exports.FcrUIScreenShareProviderImpl = void 0;
42
42
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
43
+ require("core-js/modules/es.array.concat.js");
43
44
  require("core-js/modules/es.array.find.js");
44
45
  require("core-js/modules/es.array.includes.js");
45
46
  require("core-js/modules/es.array.push.js");
@@ -48,10 +49,7 @@ require("core-js/modules/es.date.to-json.js");
48
49
  require("core-js/modules/es.json.stringify.js");
49
50
  require("core-js/modules/es.object.to-string.js");
50
51
  require("core-js/modules/es.promise.js");
51
- require("core-js/modules/es.promise.finally.js");
52
52
  require("core-js/modules/es.string.includes.js");
53
- require("core-js/modules/esnext.async-iterator.find.js");
54
- require("core-js/modules/esnext.async-iterator.some.js");
55
53
  require("core-js/modules/esnext.iterator.constructor.js");
56
54
  require("core-js/modules/esnext.iterator.find.js");
57
55
  require("core-js/modules/esnext.iterator.some.js");
@@ -76,13 +74,13 @@ var _i18n = require("agora-ui-foundation/lib/i18n");
76
74
  var _constant = require("../utilities/constant");
77
75
  var _lodash = require("lodash");
78
76
  var _FcrUIScreenShareProviderImpl;
79
- var _initProto, _handleScreenCaptureStateUpdatedDecs, _handleShareStopWithAudioDecs, _handleStreamUpdateDecs, _handleStreamPublicDecs, _releaseDecs, _startShareScreenDecs, _handleShareStartWithAudioDecs, _ref;
77
+ var _initProto, _handleScreenCaptureStateUpdatedDecs, _handleShareStopWithAudioDecs, _replaceScreenShareDecs, _handleStreamUpdateDecs, _handleStreamPublicDecs, _releaseDecs, _startShareScreenDecs, _handleShareStartWithAudioDecs, _ref;
80
78
  function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function set(e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O["static"] = l, O["private"] = f, f ? 2 === o ? k = function k(e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function k(e) { return e[n]; }, (o < 2 || 4 === o) && (F = function F(e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == _typeof(P) && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol["for"]("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function s(t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
81
79
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
82
80
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
83
81
  function _setFunctionName(e, t, n) { "symbol" == _typeof(t) && (t = (t = t.description) ? "[" + t + "]" : ""); try { Object.defineProperty(e, "name", { configurable: !0, value: n ? n + " " + t : t }); } catch (e) {} return e; }
84
82
  function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side of 'in' should be an object, got " + (null !== e ? _typeof(e) : "null")); return e; }
85
- _ref = (_handleScreenCaptureStateUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleShareStopWithAudioDecs = [_mobx.action, _mobx.action.bound], _handleStreamUpdateDecs = [_mobx.action, _mobx.action.bound], _handleStreamPublicDecs = [_mobx.action, _mobx.action.bound], _releaseDecs = [_mobx.action, _mobx.action.bound], _startShareScreenDecs = [_mobx.action, _mobx.action.bound], _handleShareStartWithAudioDecs = [_mobx.action, _mobx.action.bound], "logger");
83
+ _ref = (_handleScreenCaptureStateUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleShareStopWithAudioDecs = [_mobx.action, _mobx.action.bound], _replaceScreenShareDecs = [_mobx.action, _mobx.action.bound], _handleStreamUpdateDecs = [_mobx.action, _mobx.action.bound], _handleStreamPublicDecs = [_mobx.action, _mobx.action.bound], _releaseDecs = [_mobx.action, _mobx.action.bound], _startShareScreenDecs = [_mobx.action, _mobx.action.bound], _handleShareStartWithAudioDecs = [_mobx.action, _mobx.action.bound], "logger");
86
84
  var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__PURE__*/function () {
87
85
  function FcrUIScreenShareProviderImpl(_deviceProvider, _eventProvider, _roomProvider, _sharingProvider, _sharedScreenShareSharedDataSource, _sharedMemberDataSource) {
88
86
  var _this = this,
@@ -110,6 +108,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
110
108
  (0, _defineProperty2["default"])(this, "_screenCaptureObserver", {
111
109
  onScreenCaptureStateUpdated: (0, _env.isElectron)() ? this._handleScreenCaptureStateUpdated : this._handleWebScreenCaptureStateUpdated
112
110
  });
111
+ (0, _defineProperty2["default"])(this, "_hasStop", false);
113
112
  this._deviceProvider = _deviceProvider;
114
113
  this._eventProvider = _eventProvider;
115
114
  this._roomProvider = _roomProvider;
@@ -149,11 +148,15 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
149
148
  }, {
150
149
  key: "stop",
151
150
  value: function stop() {
152
- this._observable.notifyObservers('onScreenCaptureStopped');
151
+ if (!this._hasStop) {
152
+ this._observable.notifyObservers('onScreenCaptureStopped');
153
+ this._hasStop = true;
154
+ }
153
155
  }
154
156
  }, {
155
157
  key: "bootstrap",
156
158
  value: function bootstrap() {
159
+ this._hasStop = false;
157
160
  this._observable.notifyObservers('onScreenCaptureStarted');
158
161
  }
159
162
  }, {
@@ -161,33 +164,32 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
161
164
  value: function () {
162
165
  var _handleWebScreenCaptureStateUpdated2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(sourceId, state) {
163
166
  var streamId, _this$screenTrack;
164
- return _regenerator["default"].wrap(function _callee$(_context) {
167
+ return _regenerator["default"].wrap(function (_context) {
165
168
  while (1) switch (_context.prev = _context.next) {
166
169
  case 0:
167
170
  this._sharedScreenShareSharedDataSource.setScreenSharingState(state);
168
171
  if (!(state === _fcrCore.FcrMediaSourceState.OPEN)) {
169
- _context.next = 7;
172
+ _context.next = 2;
170
173
  break;
171
174
  }
172
- this.setShareLock(true);
173
- _context.next = 5;
175
+ _context.next = 1;
174
176
  return this.createScreenShareWithSelectionId(this.currentShareId, this.currentSelectionBounds);
175
- case 5:
177
+ case 1:
176
178
  streamId = _context.sent;
177
179
  if (streamId) {
178
180
  this._sharedScreenShareSharedDataSource.setCurrentShareStreamId(streamId);
179
181
  }
180
- case 7:
182
+ case 2:
181
183
  if (state === _fcrCore.FcrMediaSourceState.CLOSE) {
182
- this.setShareLock(false);
183
184
  (_this$screenTrack = this.screenTrack) === null || _this$screenTrack === void 0 || _this$screenTrack.removeObserver(this._screenCaptureObserver);
184
185
  this.isReplaceScreen ? this._screenTrackStop() : this.stop();
186
+ this.logger.info("[Annotation][web]: _handleScreenCaptureStateUpdated: CLOSE, set replaceScreen to: ".concat(this.isReplaceScreen));
185
187
  }
186
188
  if (state === _fcrCore.FcrMediaSourceState.ERROR) {
187
189
  this.setShareLock(false);
188
190
  this._setIsReplaceScreen(false);
189
191
  }
190
- case 9:
192
+ case 3:
191
193
  case "end":
192
194
  return _context.stop();
193
195
  }
@@ -201,13 +203,14 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
201
203
  }, {
202
204
  key: "_handleScreenCaptureStateUpdated",
203
205
  value: function _handleScreenCaptureStateUpdated(sourceId, state) {
204
- this.logger.info('screen-share-provider _handleScreenCaptureStateUpdated: ', sourceId, ' ==== ', state);
206
+ this.logger.info("[handleScreenCaptureStateUpdated]: ".concat(sourceId, " ==== ").concat(state));
205
207
  if (state === _fcrCore.FcrMediaSourceState.CLOSE) {
206
208
  var _this$screenTrack2;
207
209
  this.stopRenderSharePreview(this.screenTrack);
208
210
  (_this$screenTrack2 = this.screenTrack) === null || _this$screenTrack2 === void 0 || _this$screenTrack2.removeObserver(this._screenCaptureObserver);
209
211
  this.isReplaceScreen ? this._screenTrackStop() : this.stop();
210
- this._setIsReplaceScreen(false);
212
+ // this._setIsReplaceScreen(false); // 如果是替换的逻辑,暂时不把是否是替换屏幕的值设置为false,改为在结束屏幕共享时重置
213
+ this.logger.info("[Annotation][electron]: _handleScreenCaptureStateUpdated: CLOSE, set replaceScreen to: ".concat(this.isReplaceScreen));
211
214
  }
212
215
  if (state === _fcrCore.FcrMediaSourceState.ERROR) {
213
216
  this.stop();
@@ -231,27 +234,28 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
231
234
  key: "replaceScreenShare",
232
235
  value: function replaceScreenShare(id, type, withAudio, bounds) {
233
236
  var _this2 = this;
237
+ this.logger.info('screen-share-provider: replaceScreenShare start');
234
238
  var shareWithAudio = (0, _lodash.isBoolean)(withAudio) ? withAudio : this._sharedScreenShareSharedDataSource.shareWithAudio;
235
239
  this.toggleScreenshareWithAudio(shareWithAudio);
236
240
  this._sharedScreenShareSharedDataSource.setIsReplaceScreen(true);
237
241
  if (this.screenTrack) {
238
- var _this$screenTrack3;
242
+ this.screenTrack.removeObserver(this._screenCaptureObserver);
239
243
  var _observer = {
240
244
  onScreenCaptureStateUpdated: function () {
241
245
  var _onScreenCaptureStateUpdated = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(sourceId, state) {
242
246
  var _this2$screenTrack;
243
- return _regenerator["default"].wrap(function _callee2$(_context2) {
247
+ return _regenerator["default"].wrap(function (_context2) {
244
248
  while (1) switch (_context2.prev = _context2.next) {
245
249
  case 0:
246
250
  if (!(state === _fcrCore.FcrMediaSourceState.CLOSE)) {
247
- _context2.next = 7;
251
+ _context2.next = 2;
248
252
  break;
249
253
  }
250
254
  _this2._observable.notifyObservers('onScreenShareReplaceBegin', id, type, bounds);
251
255
  (_this2$screenTrack = _this2.screenTrack) === null || _this2$screenTrack === void 0 || _this2$screenTrack.removeObserver(_observer);
252
- _context2.next = 5;
256
+ _context2.next = 1;
253
257
  return _this2.startShareScreen(id, type, withAudio, true);
254
- case 5:
258
+ case 1:
255
259
  _this2._sharedScreenShareSharedDataSource.setCurrentShareIdInfos(id, type, bounds);
256
260
  if (_this2.currentShareStreamId && _this2._streamControl) {
257
261
  _this2._streamControl.bindLocalStreams([{
@@ -260,7 +264,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
260
264
  videoSourceId: id
261
265
  }]);
262
266
  }
263
- case 7:
267
+ case 2:
264
268
  case "end":
265
269
  return _context2.stop();
266
270
  }
@@ -272,7 +276,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
272
276
  return onScreenCaptureStateUpdated;
273
277
  }()
274
278
  };
275
- (_this$screenTrack3 = this.screenTrack) === null || _this$screenTrack3 === void 0 || _this$screenTrack3.addObserver(_observer);
279
+ this.screenTrack.addObserver(_observer);
276
280
  this._screenTrackStop();
277
281
  this.stopRenderSharePreview(this.screenTrack);
278
282
  }
@@ -331,32 +335,28 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
331
335
  key: "createScreenShareWithSelectionId",
332
336
  value: function () {
333
337
  var _createScreenShareWithSelectionId = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(videoSourceId, bounds) {
334
- var _this3 = this;
335
338
  var audioSourceId, _this$_sharingControl, streamId;
336
- return _regenerator["default"].wrap(function _callee3$(_context3) {
339
+ return _regenerator["default"].wrap(function (_context3) {
337
340
  while (1) switch (_context3.prev = _context3.next) {
338
341
  case 0:
339
- this.logger.info('screen-share-provider: createScreenShareWithSelectionId: ', videoSourceId);
340
- this.setShareLock(true);
342
+ this.logger.info("screen-share-provider: createScreenShareWithSelectionId: ".concat(videoSourceId, ", annotation-use-bounds-width: ").concat(bounds.width, ", annotation-use-bounds-height: ").concat(bounds.height));
341
343
  audioSourceId = this.loopbackAudioSourceId;
342
344
  if (!this._sharingControl) {
343
- _context3.next = 10;
345
+ _context3.next = 2;
344
346
  break;
345
347
  }
346
- _context3.next = 6;
348
+ _context3.next = 1;
347
349
  return (_this$_sharingControl = this._sharingControl) === null || _this$_sharingControl === void 0 ? void 0 : _this$_sharingControl.startScreenSharing({
348
350
  streamType: _imports.AgoraRteMediaStreamType.BOTH,
349
351
  videoSourceId: videoSourceId,
350
352
  audioSourceId: audioSourceId
351
- }, bounds)["finally"](function () {
352
- _this3.setShareLock(false);
353
- });
354
- case 6:
353
+ }, bounds);
354
+ case 1:
355
355
  streamId = _context3.sent;
356
356
  return _context3.abrupt("return", Promise.resolve(streamId));
357
- case 10:
357
+ case 2:
358
358
  return _context3.abrupt("return", Promise.reject());
359
- case 11:
359
+ case 3:
360
360
  case "end":
361
361
  return _context3.stop();
362
362
  }
@@ -370,10 +370,10 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
370
370
  }, {
371
371
  key: "_isStoppedFor",
372
372
  value: function _isStoppedFor(events, reason) {
373
- var _this4 = this;
373
+ var _this3 = this;
374
374
  return events && events.find(function (event) {
375
375
  var _event$cause;
376
- return ((_event$cause = event.cause) === null || _event$cause === void 0 || (_event$cause = _event$cause.data) === null || _event$cause === void 0 ? void 0 : _event$cause.reason) === reason && event.modifiedStream.owner.userId === _this4.localUserId;
376
+ return ((_event$cause = event.cause) === null || _event$cause === void 0 || (_event$cause = _event$cause.data) === null || _event$cause === void 0 ? void 0 : _event$cause.reason) === reason && event.modifiedStream.owner.userId === _this3.localUserId;
377
377
  });
378
378
  }
379
379
  }, {
@@ -390,9 +390,9 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
390
390
  key: "_syncShareStreamState",
391
391
  value: function _syncShareStreamState() {
392
392
  var _this$_streamControl3,
393
- _this5 = this;
393
+ _this4 = this;
394
394
  var currentShareStreamId = this.currentShareStreamId || ((_this$_streamControl3 = this._streamControl) === null || _this$_streamControl3 === void 0 || (_this$_streamControl3 = _this$_streamControl3.getStreamList().find(function (stream) {
395
- return stream.videoSourceType === _type.AgoraRteVideoSourceType.SCREEN && stream.owner.userId === _this5.localUserId;
395
+ return stream.videoSourceType === _type.AgoraRteVideoSourceType.SCREEN && stream.owner.userId === _this4.localUserId;
396
396
  })) === null || _this$_streamControl3 === void 0 ? void 0 : _this$_streamControl3.streamId);
397
397
  if (this._sharedScreenShareSharedDataSource.screenSharingState !== _fcrCore.FcrMediaSourceState.OPEN && currentShareStreamId) {
398
398
  this.stop();
@@ -401,7 +401,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
401
401
  }, {
402
402
  key: "_handleStreamUpdate",
403
403
  value: function _handleStreamUpdate(process, events) {
404
- var _this6 = this;
404
+ var _this5 = this;
405
405
  this._handleStreamPublic();
406
406
  var isClosedByOther = this._isStoppedFor(events, _types.FcrBoardInactiveReason.CLOSE);
407
407
  var isSeizedByOther = this._isStoppedFor(events, _types.FcrBoardInactiveReason.SEIZE);
@@ -418,11 +418,13 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
418
418
  });
419
419
  switch (process) {
420
420
  case 'add':
421
- var newsStreamsHaveScreenShare = events.some(function (event) {
422
- return event.modifiedStream.videoSourceType === _type.AgoraRteVideoSourceType.SCREEN;
423
- });
424
- var isSeizeStreamAdd = newsStreamsHaveScreenShare && this._sharedScreenShareSharedDataSource.isSharingScreen;
425
- this._sharedScreenShareSharedDataSource.setIsSeizeStream(isSeizeStreamAdd);
421
+ // 抢占流添加时,不设置抢占流状态,因为抢占发生时,会触发 remove 事件,此时判断 reason===seize 的结果设置抢占流状态
422
+ // const newsStreamsHaveScreenShare = events.some(
423
+ // (event) => event.modifiedStream.videoSourceType === AgoraRteVideoSourceType.SCREEN,
424
+ // );
425
+ // const isSeizeStreamAdd =
426
+ // newsStreamsHaveScreenShare && this._sharedScreenShareSharedDataSource.isSharingScreen;
427
+ // this._sharedScreenShareSharedDataSource.setIsSeizeStream(isSeizeStreamAdd);
426
428
  break;
427
429
  case 'remove':
428
430
  var isSeizeStreamRemove = events.some(function (event) {
@@ -430,14 +432,15 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
430
432
  return event.modifiedStream.videoSourceType === _type.AgoraRteVideoSourceType.SCREEN && ((_event$cause2 = event.cause) === null || _event$cause2 === void 0 || (_event$cause2 = _event$cause2.data) === null || _event$cause2 === void 0 ? void 0 : _event$cause2.reason) === _types.FcrBoardInactiveReason.SEIZE && ((_event$operatorUser = event.operatorUser) === null || _event$operatorUser === void 0 ? void 0 : _event$operatorUser.userId) !== event.modifiedStream.owner.userId;
431
433
  });
432
434
  this._sharedScreenShareSharedDataSource.setIsSeizeStream(isSeizeStreamRemove);
433
- this.logger.info('screen-share-provider: stream update remove', isSeizeStreamRemove);
435
+ this.logger.info('stream update remove', isSeizeStreamRemove);
434
436
  if (events.some(function (event) {
435
- return event.modifiedStream.videoSourceType === _type.AgoraRteVideoSourceType.SCREEN && event.modifiedStream.owner.userId === _this6.localUserId;
437
+ return event.modifiedStream.videoSourceType === _type.AgoraRteVideoSourceType.SCREEN && event.modifiedStream.owner.userId === _this5.localUserId;
436
438
  })) {
437
439
  if (!(0, _env.isElectron)() && this.isReplaceScreen) {
440
+ // web下的替换流不需要停止采集
438
441
  this._setIsReplaceScreen(false);
439
442
  return;
440
- } // web 下如果是替换的逻辑,不需要关闭分享
443
+ }
441
444
  this.logger.info('screen-share-provider: current user stream remove');
442
445
  this._screenTrackStop();
443
446
  }
@@ -517,70 +520,71 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
517
520
  key: "startShareScreen",
518
521
  value: function () {
519
522
  var _startShareScreen = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(id, type, withAudio, isReplace) {
520
- var _this$screenTrack4, _this$screenTrack5, streamId, screenTrack;
521
- return _regenerator["default"].wrap(function _callee4$(_context4) {
523
+ var _this$screenTrack3, _this$screenTrack4, streamId, screenTrack, _t, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
524
+ return _regenerator["default"].wrap(function (_context4) {
522
525
  while (1) switch (_context4.prev = _context4.next) {
523
526
  case 0:
524
- _context4.prev = 0;
527
+ this.setShareLock(true);
528
+ _context4.prev = 1;
525
529
  this.logger.info('screen-share-provider: enter startShareScreen');
526
530
  if (!((0, _env.isElectron)() && !isReplace)) {
527
- _context4.next = 7;
531
+ _context4.next = 3;
528
532
  break;
529
533
  }
530
- _context4.next = 5;
534
+ _context4.next = 2;
531
535
  return this.createScreenShareWithSelectionId(id, this.currentSelectionBounds);
532
- case 5:
536
+ case 2:
533
537
  streamId = _context4.sent;
534
538
  if (streamId) {
535
539
  this._sharedScreenShareSharedDataSource.setCurrentShareStreamId(streamId);
536
540
  }
537
- case 7:
541
+ case 3:
538
542
  this._sharedScreenShareSharedDataSource.setShareWithAudio(withAudio);
539
543
  this.toggleScreenshareWithAudio(withAudio);
540
544
  screenTrack = this._deviceProvider.getScreenTrack(id);
541
545
  this.setScreenTrack(screenTrack);
542
546
  this.logger.info('screen-share-provider: start share screen with track start');
543
- (_this$screenTrack4 = this.screenTrack) === null || _this$screenTrack4 === void 0 || _this$screenTrack4.addObserver(this._screenCaptureObserver);
544
- _context4.t0 = (_this$screenTrack5 = this.screenTrack) === null || _this$screenTrack5 === void 0;
545
- if (_context4.t0) {
546
- _context4.next = 28;
547
+ (_this$screenTrack3 = this.screenTrack) === null || _this$screenTrack3 === void 0 || _this$screenTrack3.addObserver(this._screenCaptureObserver);
548
+ _t = (_this$screenTrack4 = this.screenTrack) === null || _this$screenTrack4 === void 0;
549
+ if (_t) {
550
+ _context4.next = 7;
547
551
  break;
548
552
  }
549
- _context4.t1 = _this$screenTrack5;
550
- _context4.t2 = type;
551
- _context4.t3 = withAudio;
553
+ _t2 = _this$screenTrack4;
554
+ _t3 = type;
555
+ _t4 = withAudio;
552
556
  if (!(0, _env.isElectron)()) {
553
- _context4.next = 24;
557
+ _context4.next = 5;
554
558
  break;
555
559
  }
556
- _context4.next = 21;
560
+ _context4.next = 4;
557
561
  return this._getExcludeWindows();
558
- case 21:
559
- _context4.t4 = _context4.sent;
560
- _context4.next = 25;
562
+ case 4:
563
+ _t5 = _context4.sent;
564
+ _context4.next = 6;
561
565
  break;
562
- case 24:
563
- _context4.t4 = undefined;
564
- case 25:
565
- _context4.t5 = _context4.t4;
566
- _context4.t6 = {
567
- withAudio: _context4.t3,
568
- excludeWindows: _context4.t5
566
+ case 5:
567
+ _t5 = undefined;
568
+ case 6:
569
+ _t6 = _t5;
570
+ _t7 = {
571
+ withAudio: _t4,
572
+ excludeWindows: _t6
569
573
  };
570
- _context4.t1.start.call(_context4.t1, _context4.t2, _context4.t6);
571
- case 28:
574
+ _t2.start.call(_t2, _t3, _t7);
575
+ case 7:
572
576
  return _context4.abrupt("return", Promise.resolve(this.screenTrack));
573
- case 31:
574
- _context4.prev = 31;
575
- _context4.t7 = _context4["catch"](0);
576
- return _context4.abrupt("return", Promise.reject(_context4.t7));
577
- case 34:
577
+ case 8:
578
+ _context4.prev = 8;
579
+ _t8 = _context4["catch"](1);
580
+ return _context4.abrupt("return", Promise.reject(_t8));
581
+ case 9:
578
582
  case "end":
579
583
  return _context4.stop();
580
584
  }
581
- }, _callee4, this, [[0, 31]]);
585
+ }, _callee4, this, [[1, 8]]);
582
586
  }));
583
- function startShareScreen(_x7, _x8, _x9, _x10) {
587
+ function startShareScreen(_x7, _x8, _x9, _x0) {
584
588
  return _startShareScreen.apply(this, arguments);
585
589
  }
586
590
  return startShareScreen;
@@ -590,16 +594,9 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
590
594
  value: function stopShareScreen(targetScreenTrack) {
591
595
  this.logger.info('screen-share-provider: stopShareScreen');
592
596
  var screenTrack = targetScreenTrack !== null && targetScreenTrack !== void 0 ? targetScreenTrack : this.screenTrack;
593
- this.setShareLock(false);
594
597
  this.stopRenderSharePreview(screenTrack);
595
- if ((0, _env.isElectron)()) {
596
- this._screenTrackStop();
597
- this.removeScreenStream();
598
- } else {
599
- this.removeScreenStream();
600
- this._screenTrackStop();
601
- }
602
- this._sharedScreenShareSharedDataSource.setCurrentShareId('');
598
+ this.removeScreenStream();
599
+ this._screenTrackStop();
603
600
  }
604
601
  }, {
605
602
  key: "_handleShareStartWithAudio",
@@ -631,11 +628,11 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
631
628
  value: function () {
632
629
  var _getExcludeWindows2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
633
630
  var excludeWindows;
634
- return _regenerator["default"].wrap(function _callee5$(_context5) {
631
+ return _regenerator["default"].wrap(function (_context5) {
635
632
  while (1) switch (_context5.prev = _context5.next) {
636
633
  case 0:
637
634
  excludeWindows = [];
638
- _context5.next = 3;
635
+ _context5.next = 1;
639
636
  return (0, _tools.waitUntil)(function () {
640
637
  var _getControlBarMediaSo, _getVideoWindowMediaS, _getAnnotationMediaSo, _getAnnotationMediaSo2;
641
638
  var windowId = (_getControlBarMediaSo = (0, _rendererEvent.getControlBarMediaSourceId)()) !== null && _getControlBarMediaSo !== void 0 ? _getControlBarMediaSo : '';
@@ -668,10 +665,10 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
668
665
  }
669
666
  return !!videoWindowId && !!controlBarWindowId;
670
667
  }, 'control bar is open');
671
- case 3:
668
+ case 1:
672
669
  this.logger.info('exclude win:', JSON.stringify(excludeWindows));
673
670
  return _context5.abrupt("return", excludeWindows);
674
- case 5:
671
+ case 2:
675
672
  case "end":
676
673
  return _context5.stop();
677
674
  }
@@ -685,10 +682,6 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
685
682
  }, {
686
683
  key: "removeScreenStream",
687
684
  value: function removeScreenStream() {
688
- var streamId = this.currentShareStreamId;
689
- if (!streamId) {
690
- return false;
691
- }
692
685
  try {
693
686
  var _this$_streamControl5;
694
687
  this.logger.info('screen-share-provider: remove screen streams');
@@ -703,13 +696,14 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
703
696
  }, {
704
697
  key: "_screenTrackStop",
705
698
  value: function _screenTrackStop() {
706
- var _this$screenTrack6;
699
+ var _this$screenTrack5;
707
700
  this.logger.info('screen-share-provider: current screen track stop');
708
- (_this$screenTrack6 = this.screenTrack) === null || _this$screenTrack6 === void 0 || _this$screenTrack6.stop();
701
+ (_this$screenTrack5 = this.screenTrack) === null || _this$screenTrack5 === void 0 || _this$screenTrack5.stop();
702
+ this.setShareLock(false);
709
703
  }
710
704
  }]);
711
705
  }();
712
706
  _FcrUIScreenShareProviderImpl = FcrUIScreenShareProviderImpl;
713
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIScreenShareProviderImpl, [[_decorator.bound, 2, "getCurrentScreenSharingOwner"], [_decorator.bound, 2, "stop"], [_decorator.bound, 2, "bootstrap"], [_decorator.bound, 2, "_handleWebScreenCaptureStateUpdated"], [_handleScreenCaptureStateUpdatedDecs, 18, "_handleScreenCaptureStateUpdated"], [_handleShareStopWithAudioDecs, 18, "_handleShareStopWithAudio"], [_decorator.bound, 2, "_syncShareStreamState"], [_handleStreamUpdateDecs, 18, "_handleStreamUpdate"], [_decorator.bound, 2, "startRenderSharePreview"], [_decorator.bound, 2, "stopRenderSharePreview"], [_handleStreamPublicDecs, 18, "_handleStreamPublic"], [_releaseDecs, 18, "release"], [_startShareScreenDecs, 18, "startShareScreen"], [_handleShareStartWithAudioDecs, 18, "_handleShareStartWithAudio"], [_decorator.bound, 2, "_getExcludeWindows"], [_decorator.bound, 2, "_screenTrackStop"]], []).e, 1);
707
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIScreenShareProviderImpl, [[_decorator.bound, 2, "getCurrentScreenSharingOwner"], [_decorator.bound, 2, "stop"], [_decorator.bound, 2, "bootstrap"], [_decorator.bound, 2, "_handleWebScreenCaptureStateUpdated"], [_handleScreenCaptureStateUpdatedDecs, 18, "_handleScreenCaptureStateUpdated"], [_handleShareStopWithAudioDecs, 18, "_handleShareStopWithAudio"], [_replaceScreenShareDecs, 18, "replaceScreenShare"], [_decorator.bound, 2, "_syncShareStreamState"], [_handleStreamUpdateDecs, 18, "_handleStreamUpdate"], [_decorator.bound, 2, "startRenderSharePreview"], [_decorator.bound, 2, "stopRenderSharePreview"], [_handleStreamPublicDecs, 18, "_handleStreamPublic"], [_releaseDecs, 18, "release"], [_startShareScreenDecs, 18, "startShareScreen"], [_handleShareStartWithAudioDecs, 18, "_handleShareStartWithAudio"], [_decorator.bound, 2, "_getExcludeWindows"], [_decorator.bound, 2, "_screenTrackStop"]], []).e, 1);
714
708
  _initProto = _applyDecs$e[0];
715
709
  (0, _base.registerDependency)('screenShareProvider');
@@ -1,5 +1,6 @@
1
1
  import { FcrScreenSharingState, FcrSharingControl, FcrWhiteboardState } from 'fcr-core/lib/room-control/sharing-control/type';
2
2
  import { FcrScreenStreamCreateConfig } from 'fcr-core/lib/room-control/stream-control/type';
3
+ import { FcrUIScreenShareSharedDataSource } from '../shared-data-source/screen-share-data';
3
4
  export interface FcrUISharingProvider {
4
5
  get screenSharingOwnerId(): string;
5
6
  get whiteboardOwnerId(): string;
@@ -15,13 +16,16 @@ export interface FcrUISharingProvider {
15
16
  }
16
17
  export declare class FcrUISharingProviderImpl implements FcrUISharingProvider {
17
18
  private _sharingControl;
19
+ private _sharedScreenShareSharedDataSource;
18
20
  protected logger: import("agora-foundation/lib/logger").Logger;
19
21
  private _observer;
20
22
  accessor screenSharingOwnerId: string;
21
23
  accessor whiteboardOwnerId: string;
22
24
  accessor screenSharingState: FcrScreenSharingState;
23
25
  accessor whiteboardState: FcrWhiteboardState;
24
- constructor(_sharingControl: FcrSharingControl);
26
+ get isReplaceScreen(): boolean;
27
+ get isSeizeStream(): boolean;
28
+ constructor(_sharingControl: FcrSharingControl, _sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource);
25
29
  startScreenSharing(config: FcrScreenStreamCreateConfig): void;
26
30
  startWhiteboard(): void;
27
31
  updateScreenSharing(enableAnnotation: boolean): void;
@@ -53,6 +53,7 @@ var _type = require("fcr-core/lib/room-control/sharing-control/type");
53
53
  var _mobx = require("mobx");
54
54
  var _base = require("../base");
55
55
  var _logger = require("../utilities/logger");
56
+ var _env = require("agora-foundation/lib/utilities/env");
56
57
  var _FcrUISharingProviderImpl;
57
58
  var _initProto, _init_screenSharingOwnerId, _init_whiteboardOwnerId, _init_screenSharingState, _init_whiteboardState;
58
59
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
@@ -70,7 +71,7 @@ var _B = /*#__PURE__*/new WeakMap();
70
71
  var _C = /*#__PURE__*/new WeakMap();
71
72
  var _D = /*#__PURE__*/new WeakMap();
72
73
  var FcrUISharingProviderImpl = exports.FcrUISharingProviderImpl = /*#__PURE__*/function () {
73
- function FcrUISharingProviderImpl(_sharingControl) {
74
+ function FcrUISharingProviderImpl(_sharingControl, _sharedScreenShareSharedDataSource) {
74
75
  var _this = this;
75
76
  (0, _classCallCheck2["default"])(this, FcrUISharingProviderImpl);
76
77
  (0, _defineProperty2["default"])(this, "logger", (_initProto(this), (0, _logger.createLogger)({
@@ -80,6 +81,10 @@ var FcrUISharingProviderImpl = exports.FcrUISharingProviderImpl = /*#__PURE__*/f
80
81
  onScreenSharingUpdated: function onScreenSharingUpdated(ownerId, state) {
81
82
  _this.screenSharingOwnerId = ownerId;
82
83
  _this.screenSharingState = state;
84
+ if (state === _type.FcrScreenSharingState.END && (0, _env.isElectron)()) {
85
+ _this.isReplaceScreen && _this._sharedScreenShareSharedDataSource.setIsReplaceScreen(false);
86
+ _this.isSeizeStream && _this._sharedScreenShareSharedDataSource.setIsSeizeStream(false);
87
+ }
83
88
  },
84
89
  onWhiteboardStarted: function onWhiteboardStarted(ownerId, operatorUser) {
85
90
  _this.whiteboardOwnerId = ownerId;
@@ -94,6 +99,7 @@ var FcrUISharingProviderImpl = exports.FcrUISharingProviderImpl = /*#__PURE__*/f
94
99
  _classPrivateFieldInitSpec(this, _C, _init_screenSharingState(this, _type.FcrScreenSharingState.END));
95
100
  _classPrivateFieldInitSpec(this, _D, _init_whiteboardState(this, _type.FcrWhiteboardState.END));
96
101
  this._sharingControl = _sharingControl;
102
+ this._sharedScreenShareSharedDataSource = _sharedScreenShareSharedDataSource;
97
103
  // @ts-ignore
98
104
  // this._sharingControl.getToken();
99
105
  this._sharingControl.addObserver(this._observer);
@@ -130,6 +136,16 @@ var FcrUISharingProviderImpl = exports.FcrUISharingProviderImpl = /*#__PURE__*/f
130
136
  set: function set(v) {
131
137
  _classPrivateFieldSet(_D, this, v);
132
138
  }
139
+ }, {
140
+ key: "isReplaceScreen",
141
+ get: function get() {
142
+ return this._sharedScreenShareSharedDataSource.isReplaceScreen;
143
+ }
144
+ }, {
145
+ key: "isSeizeStream",
146
+ get: function get() {
147
+ return this._sharedScreenShareSharedDataSource.isSeizeStream;
148
+ }
133
149
  }, {
134
150
  key: "startScreenSharing",
135
151
  value: function startScreenSharing(config) {
@@ -0,0 +1,20 @@
1
+ import { FcrUISettingConfig } from '../type';
2
+ export interface FcrUIUserSettingStorageProvider {
3
+ /**
4
+ * 写入本地存储
5
+ * @param key
6
+ * @param value
7
+ */
8
+ write(value: Partial<FcrUISettingConfig>): number;
9
+ /**
10
+ * 从本地存储读取
11
+ * @param key
12
+ */
13
+ read(): FcrUISettingConfig | null;
14
+ }
15
+ export declare class FcrUIUserSettingStorageProviderImpl implements FcrUIUserSettingStorageProvider {
16
+ private _isElectron;
17
+ constructor();
18
+ write(value: Partial<FcrUISettingConfig>): number;
19
+ read(): any;
20
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.array.filter.js");
5
+ require("core-js/modules/es.array.for-each.js");
6
+ require("core-js/modules/es.array.push.js");
7
+ require("core-js/modules/es.object.define-properties.js");
8
+ require("core-js/modules/es.object.define-property.js");
9
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
10
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
11
+ require("core-js/modules/es.object.to-string.js");
12
+ require("core-js/modules/esnext.iterator.constructor.js");
13
+ require("core-js/modules/esnext.iterator.filter.js");
14
+ require("core-js/modules/esnext.iterator.for-each.js");
15
+ require("core-js/modules/web.dom-collections.for-each.js");
16
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
17
+ Object.defineProperty(exports, "__esModule", {
18
+ value: true
19
+ });
20
+ exports.FcrUIUserSettingStorageProviderImpl = void 0;
21
+ require("core-js/modules/es.date.to-json.js");
22
+ require("core-js/modules/es.json.stringify.js");
23
+ require("core-js/modules/es.object.keys.js");
24
+ require("core-js/modules/esnext.json.parse.js");
25
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
26
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
27
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
28
+ var _base = require("../base");
29
+ var _env = require("agora-foundation/lib/utilities/env");
30
+ var _settingConfigStorage = require("../utilities/setting-config-storage");
31
+ 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; }
32
+ 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; }
33
+ var FcrUIUserSettingStorageProviderImpl = exports.FcrUIUserSettingStorageProviderImpl = /*#__PURE__*/function () {
34
+ function FcrUIUserSettingStorageProviderImpl() {
35
+ (0, _classCallCheck2["default"])(this, FcrUIUserSettingStorageProviderImpl);
36
+ (0, _defineProperty2["default"])(this, "_isElectron", false);
37
+ this._isElectron = (0, _env.isElectron)();
38
+ }
39
+ return (0, _createClass2["default"])(FcrUIUserSettingStorageProviderImpl, [{
40
+ key: "write",
41
+ value: function write(value) {
42
+ var userSetting = this.read();
43
+ if (userSetting) {
44
+ value = _objectSpread(_objectSpread({}, userSetting), value);
45
+ }
46
+ if (this._isElectron) {
47
+ window.runtime.setUserSettingData(value);
48
+ } else {
49
+ localStorage.setItem(_settingConfigStorage.settingConfigStorageKey, JSON.stringify(value));
50
+ }
51
+ return 1;
52
+ }
53
+ }, {
54
+ key: "read",
55
+ value: function read() {
56
+ if (this._isElectron) {
57
+ return window.runtime.getUserSettingData();
58
+ } else {
59
+ var getItem = localStorage.getItem(_settingConfigStorage.settingConfigStorageKey);
60
+ return getItem ? JSON.parse(getItem) : null;
61
+ }
62
+ }
63
+
64
+ // remove(key: string) {
65
+ // localStorage.removeItem(key);
66
+ // }
67
+ }]);
68
+ }(); // export enum FcrLocalStorageSettingKey {
69
+ // SpotlightEnabled = 'spotlightEnabled',
70
+ // ShouldHideNonVideoParticipants = 'shouldHideNonVideoParticipants',
71
+ // }
72
+ (0, _base.registerDependency)('userSettingStorageProvider');