fcr-ui-scene 3.8.1 → 3.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (824) hide show
  1. package/lib/modules/dialog/dialogs/connection-gateway/tabs.d.ts +0 -1
  2. package/lib/modules/dialog/dialogs/connection-gateway/tabs.js +2 -13
  3. package/lib/modules/invite/index.d.ts +4 -1
  4. package/lib/modules/invite/index.js +5 -2
  5. package/lib/modules/invite/store.d.ts +4 -0
  6. package/lib/modules/invite/store.js +48 -9
  7. package/lib/modules/invite/view.d.ts +4 -1
  8. package/lib/modules/invite/view.js +25 -10
  9. package/lib/modules/pc-audio-connect/main-scene/index.d.ts +0 -1
  10. package/lib/modules/pc-audio-connect/main-scene/index.js +2 -4
  11. package/lib/modules/pc-audio-connect/main-scene/store.d.ts +0 -3
  12. package/lib/modules/pc-audio-connect/main-scene/store.js +7 -43
  13. package/lib/modules/widget/store.electron.js +1 -1
  14. package/lib/scenes/main-scene.js +3 -2
  15. package/lib-es/assets/mic-loading.gif +0 -0
  16. package/lib-es/base.js +335 -0
  17. package/lib-es/creator/index.js +543 -0
  18. package/lib-es/creator/provider-initializer.browser.js +322 -0
  19. package/lib-es/creator/provider-initializer.electron.js +359 -0
  20. package/lib-es/creator/type.js +1 -0
  21. package/lib-es/electron/app.js +247 -0
  22. package/lib-es/electron/asar-validation.js +106 -0
  23. package/lib-es/electron/bootstrap-dev.js +45 -0
  24. package/lib-es/electron/bootstrap-sdk.js +198 -0
  25. package/lib-es/electron/default-options.js +18 -0
  26. package/lib-es/electron/env.js +8 -0
  27. package/lib-es/electron/exit-codes.js +20 -0
  28. package/lib-es/electron/hang-detection/index.js +2 -0
  29. package/lib-es/electron/hang-detection/manager.js +225 -0
  30. package/lib-es/electron/hang-detection/types.js +1 -0
  31. package/lib-es/electron/index.js +2 -0
  32. package/lib-es/electron/injections.js +830 -0
  33. package/lib-es/electron/ipc/ipc.js +134 -0
  34. package/lib-es/electron/ipc/type.js +22 -0
  35. package/lib-es/electron/ipc-protocol.js +58 -0
  36. package/lib-es/electron/logger.js +57 -0
  37. package/lib-es/electron/main.js +116 -0
  38. package/lib-es/electron/plugins/devtool-shortcut.js +26 -0
  39. package/lib-es/electron/plugins/meeting-state.js +32 -0
  40. package/lib-es/electron/plugins/screenshot.js +46 -0
  41. package/lib-es/electron/preload.js +42 -0
  42. package/lib-es/electron/process-manager/constants.js +1 -0
  43. package/lib-es/electron/process-manager/event-manager.js +242 -0
  44. package/lib-es/electron/process-manager/index.js +842 -0
  45. package/lib-es/electron/process-manager/state-manager.js +354 -0
  46. package/lib-es/electron/process-manager/types.js +78 -0
  47. package/lib-es/electron/sdk-helper.js +305 -0
  48. package/lib-es/electron/struct.js +21 -0
  49. package/lib-es/electron/until.js +64 -0
  50. package/lib-es/electron/window-proxy/browser-window-proxy.js +720 -0
  51. package/lib-es/electron/window-proxy/main-process-handler.js +441 -0
  52. package/lib-es/electron/window.js +91 -0
  53. package/lib-es/fragments/annotation/index.js +130 -0
  54. package/lib-es/fragments/annotation/libs.js +86 -0
  55. package/lib-es/fragments/annotation/store.js +866 -0
  56. package/lib-es/fragments/annotation/style.css +9 -0
  57. package/lib-es/fragments/annotation/toolbar/components/color-tool/color-panel/index.js +40 -0
  58. package/lib-es/fragments/annotation/toolbar/components/color-tool/index.js +48 -0
  59. package/lib-es/fragments/annotation/toolbar/components/graphic-tool/graphic-panel/index.js +55 -0
  60. package/lib-es/fragments/annotation/toolbar/components/graphic-tool/graphic-panel/libs.js +57 -0
  61. package/lib-es/fragments/annotation/toolbar/components/graphic-tool/index.js +62 -0
  62. package/lib-es/fragments/annotation/toolbar/components/item/item.js +106 -0
  63. package/lib-es/fragments/annotation/toolbar/components/item/style.css +45 -0
  64. package/lib-es/fragments/annotation/toolbar/components/panel/index.js +15 -0
  65. package/lib-es/fragments/annotation/toolbar/components/panel/style.css +24 -0
  66. package/lib-es/fragments/annotation/toolbar/components/pen-tool/index.js +54 -0
  67. package/lib-es/fragments/annotation/toolbar/components/pen-tool/pen-panel/index.js +28 -0
  68. package/lib-es/fragments/annotation/toolbar/components/tips/index.js +18 -0
  69. package/lib-es/fragments/annotation/toolbar/components/tips/style.css +19 -0
  70. package/lib-es/fragments/annotation/toolbar/store.js +292 -0
  71. package/lib-es/fragments/annotation/toolbar/style.css +55 -0
  72. package/lib-es/fragments/annotation/toolbar/view.js +140 -0
  73. package/lib-es/fragments/annotation/utils.js +20 -0
  74. package/lib-es/fragments/annotation/view.js +59 -0
  75. package/lib-es/fragments/base.js +40 -0
  76. package/lib-es/fragments/whiteboard/cursor.css +77 -0
  77. package/lib-es/fragments/whiteboard/index.js +80 -0
  78. package/lib-es/fragments/whiteboard/store.js +487 -0
  79. package/lib-es/fragments/whiteboard/style.css +4 -0
  80. package/lib-es/fragments/whiteboard/view.js +24 -0
  81. package/lib-es/global.css +62 -0
  82. package/lib-es/global.d.ts +27 -0
  83. package/lib-es/hooks/i18n.js +10 -0
  84. package/lib-es/index.js +38 -0
  85. package/lib-es/modules/action-bar/components/apps/index.js +43 -0
  86. package/lib-es/modules/action-bar/components/board/index.js +25 -0
  87. package/lib-es/modules/action-bar/components/breakout-room/index.js +23 -0
  88. package/lib-es/modules/action-bar/components/chat/index.css +88 -0
  89. package/lib-es/modules/action-bar/components/chat/index.js +126 -0
  90. package/lib-es/modules/action-bar/components/collapse/index.js +203 -0
  91. package/lib-es/modules/action-bar/components/confirm-leave-meeting/index.js +70 -0
  92. package/lib-es/modules/action-bar/components/interpreter/index.js +34 -0
  93. package/lib-es/modules/action-bar/components/item/index.js +158 -0
  94. package/lib-es/modules/action-bar/components/leave/index.js +118 -0
  95. package/lib-es/modules/action-bar/components/live-streaming/index.js +32 -0
  96. package/lib-es/modules/action-bar/components/more/index.css +114 -0
  97. package/lib-es/modules/action-bar/components/more/index.js +79 -0
  98. package/lib-es/modules/action-bar/components/more/poppover-content.js +410 -0
  99. package/lib-es/modules/action-bar/components/notification-bar/assets/dome.png +0 -0
  100. package/lib-es/modules/action-bar/components/notification-bar/assets/fcr_translateswitch.png +0 -0
  101. package/lib-es/modules/action-bar/components/notification-bar/components/interpreter/index.css +58 -0
  102. package/lib-es/modules/action-bar/components/notification-bar/components/interpreter/index.js +93 -0
  103. package/lib-es/modules/action-bar/components/notification-bar/components/virtual-image/index.css +56 -0
  104. package/lib-es/modules/action-bar/components/notification-bar/components/virtual-image/index.js +25 -0
  105. package/lib-es/modules/action-bar/components/notification-bar/index.css +74 -0
  106. package/lib-es/modules/action-bar/components/notification-bar/index.js +96 -0
  107. package/lib-es/modules/action-bar/components/participants/index.css +21 -0
  108. package/lib-es/modules/action-bar/components/participants/index.js +52 -0
  109. package/lib-es/modules/action-bar/components/placement/index.js +10 -0
  110. package/lib-es/modules/action-bar/components/record/index.css +39 -0
  111. package/lib-es/modules/action-bar/components/record/index.js +89 -0
  112. package/lib-es/modules/action-bar/components/record/popover.js +50 -0
  113. package/lib-es/modules/action-bar/components/record/stop-record-dialog.js +41 -0
  114. package/lib-es/modules/action-bar/components/respond/index.js +25 -0
  115. package/lib-es/modules/action-bar/components/screen-share/index.browser.js +61 -0
  116. package/lib-es/modules/action-bar/components/screen-share/index.electron.js +78 -0
  117. package/lib-es/modules/action-bar/components/screen-share/index.js +4 -0
  118. package/lib-es/modules/action-bar/components/screen-share/submenu.js +219 -0
  119. package/lib-es/modules/action-bar/components/security/index.js +42 -0
  120. package/lib-es/modules/action-bar/components/settings/index.js +29 -0
  121. package/lib-es/modules/action-bar/components/smaller/index.js +45 -0
  122. package/lib-es/modules/action-bar/components/trigger-output-language/fcr_translateswitch.png +0 -0
  123. package/lib-es/modules/action-bar/components/trigger-output-language/index.css +86 -0
  124. package/lib-es/modules/action-bar/components/trigger-output-language/index.js +228 -0
  125. package/lib-es/modules/action-bar/components/trigger-subscribe-language/guide-tooltip/index.css +22 -0
  126. package/lib-es/modules/action-bar/components/trigger-subscribe-language/guide-tooltip/index.js +62 -0
  127. package/lib-es/modules/action-bar/components/trigger-subscribe-language/index.js +216 -0
  128. package/lib-es/modules/action-bar/constants.js +1 -0
  129. package/lib-es/modules/action-bar/enums.js +28 -0
  130. package/lib-es/modules/action-bar/index.css +358 -0
  131. package/lib-es/modules/action-bar/main-scene/index.js +123 -0
  132. package/lib-es/modules/action-bar/main-scene/store.base.js +1486 -0
  133. package/lib-es/modules/action-bar/main-scene/store.browser.js +105 -0
  134. package/lib-es/modules/action-bar/main-scene/store.electron.js +94 -0
  135. package/lib-es/modules/action-bar/main-scene/view.js +105 -0
  136. package/lib-es/modules/action-bar/type.js +6 -0
  137. package/lib-es/modules/action-bar/waiting-scene/index.js +94 -0
  138. package/lib-es/modules/action-bar/waiting-scene/store.base.js +88 -0
  139. package/lib-es/modules/action-bar/waiting-scene/store.browser.js +17 -0
  140. package/lib-es/modules/action-bar/waiting-scene/store.electron.js +37 -0
  141. package/lib-es/modules/action-bar/waiting-scene/view.js +116 -0
  142. package/lib-es/modules/audio-stream/index.js +393 -0
  143. package/lib-es/modules/caption/draggable-container/index.css +10 -0
  144. package/lib-es/modules/caption/draggable-container/index.js +159 -0
  145. package/lib-es/modules/caption/index.js +117 -0
  146. package/lib-es/modules/caption/store.js +352 -0
  147. package/lib-es/modules/caption/type.js +7 -0
  148. package/lib-es/modules/caption/view.css +158 -0
  149. package/lib-es/modules/caption/view.js +266 -0
  150. package/lib-es/modules/chat/chat-room-store.js +923 -0
  151. package/lib-es/modules/chat/components/chat-action/index.js +21 -0
  152. package/lib-es/modules/chat/components/chat-bar/index.css +89 -0
  153. package/lib-es/modules/chat/components/chat-bar/index.js +141 -0
  154. package/lib-es/modules/chat/components/chat-select/index.css +185 -0
  155. package/lib-es/modules/chat/components/chat-select/index.js +100 -0
  156. package/lib-es/modules/chat/components/chat-select/select-input/index.js +27 -0
  157. package/lib-es/modules/chat/components/chat-select/select-item/index.js +150 -0
  158. package/lib-es/modules/chat/components/chat-tabs/index.js +53 -0
  159. package/lib-es/modules/chat/components/message-list/chat-empty/index.js +18 -0
  160. package/lib-es/modules/chat/components/message-list/history-unread-message-button/index.js +48 -0
  161. package/lib-es/modules/chat/components/message-list/index.js +327 -0
  162. package/lib-es/modules/chat/components/message-list/message-item/index.js +343 -0
  163. package/lib-es/modules/chat/components/message-list/scroll-bottom-button/index.js +60 -0
  164. package/lib-es/modules/chat/index.css +124 -0
  165. package/lib-es/modules/chat/index.dev.js +71 -0
  166. package/lib-es/modules/chat/index.js +168 -0
  167. package/lib-es/modules/chat/mock.js +276 -0
  168. package/lib-es/modules/chat/store.js +359 -0
  169. package/lib-es/modules/chat/types.js +12 -0
  170. package/lib-es/modules/chat/util.js +63 -0
  171. package/lib-es/modules/chat/view.js +312 -0
  172. package/lib-es/modules/components/annotation-menu/index.js +104 -0
  173. package/lib-es/modules/components/apps/app-item/index.css +49 -0
  174. package/lib-es/modules/components/apps/app-item/index.js +130 -0
  175. package/lib-es/modules/components/apps/app-list.js +49 -0
  176. package/lib-es/modules/components/apps/index.css +9 -0
  177. package/lib-es/modules/components/apps/types.js +1 -0
  178. package/lib-es/modules/components/caption-menu/index.css +58 -0
  179. package/lib-es/modules/components/caption-menu/index.js +108 -0
  180. package/lib-es/modules/components/caption-menu/participants-privilege-control-options.js +65 -0
  181. package/lib-es/modules/components/caption-menu/steps/index.css +73 -0
  182. package/lib-es/modules/components/caption-menu/steps/index.js +49 -0
  183. package/lib-es/modules/components/caption-menu/translation-setting-options.js +180 -0
  184. package/lib-es/modules/components/control-bar/components/loading/index.css +76 -0
  185. package/lib-es/modules/components/control-bar/components/loading/index.js +56 -0
  186. package/lib-es/modules/components/control-bar/components/loading/loading.png +0 -0
  187. package/lib-es/modules/components/control-bar/components/progress/index.js +36 -0
  188. package/lib-es/modules/components/control-bar/components/progress/style.css +51 -0
  189. package/lib-es/modules/components/control-bar/components/switch-theme/index.css +101 -0
  190. package/lib-es/modules/components/control-bar/components/switch-theme/index.js +86 -0
  191. package/lib-es/modules/components/control-bar/components/switch-theme/item.js +46 -0
  192. package/lib-es/modules/components/control-bar/components/switch-theme/libs.js +24 -0
  193. package/lib-es/modules/components/control-bar/index.css +99 -0
  194. package/lib-es/modules/components/control-bar/index.js +357 -0
  195. package/lib-es/modules/components/device-control/components/audio-menu/index.js +167 -0
  196. package/lib-es/modules/components/device-control/components/carmera/index.js +108 -0
  197. package/lib-es/modules/components/device-control/components/microphone/index.js +182 -0
  198. package/lib-es/modules/components/device-control/components/none-menu/index.js +61 -0
  199. package/lib-es/modules/components/device-control/components/phone-menu/index.js +54 -0
  200. package/lib-es/modules/components/device-control/components/video-menu/index.js +105 -0
  201. package/lib-es/modules/components/device-control/hooks/index.js +34 -0
  202. package/lib-es/modules/components/device-control/index.css +177 -0
  203. package/lib-es/modules/components/device-control/index.js +14 -0
  204. package/lib-es/modules/components/device-control/main-scene/store.js +88 -0
  205. package/lib-es/modules/components/device-control/store.base.js +242 -0
  206. package/lib-es/modules/components/device-control/type.js +1 -0
  207. package/lib-es/modules/components/device-control/waiting-scene/store.js +84 -0
  208. package/lib-es/modules/components/leave-meeting/components/assign-host.js +101 -0
  209. package/lib-es/modules/components/leave-meeting/components/index.css +151 -0
  210. package/lib-es/modules/components/leave-meeting/index.js +148 -0
  211. package/lib-es/modules/components/leave-meeting/main-scene/store.js +107 -0
  212. package/lib-es/modules/components/leave-meeting/portal.js +22 -0
  213. package/lib-es/modules/components/leave-meeting/store.base.js +299 -0
  214. package/lib-es/modules/components/leave-meeting/style.css +9 -0
  215. package/lib-es/modules/components/leave-meeting/type.js +1 -0
  216. package/lib-es/modules/components/leave-meeting/waiting-scene/store.js +98 -0
  217. package/lib-es/modules/components/member-window/components/member-actions/components/audio-control.js +35 -0
  218. package/lib-es/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +162 -0
  219. package/lib-es/modules/components/member-window/components/member-actions/components/icon-status.js +80 -0
  220. package/lib-es/modules/components/member-window/components/member-actions/components/layout/index.js +23 -0
  221. package/lib-es/modules/components/member-window/components/member-actions/components/more-actions.js +128 -0
  222. package/lib-es/modules/components/member-window/components/member-actions/components/share-status.js +34 -0
  223. package/lib-es/modules/components/member-window/components/member-actions/components/user-info.js +105 -0
  224. package/lib-es/modules/components/member-window/components/member-actions/components/user-tag.js +51 -0
  225. package/lib-es/modules/components/member-window/components/member-actions/index.js +98 -0
  226. package/lib-es/modules/components/member-window/components/member-actions/libs/index.js +14 -0
  227. package/lib-es/modules/components/member-window/components/member-actions/provider.js +70 -0
  228. package/lib-es/modules/components/member-window/components/member-actions/store.js +430 -0
  229. package/lib-es/modules/components/member-window/components/mic-volume.js +16 -0
  230. package/lib-es/modules/components/member-window/components/video-player/components/local-video-player-with-zoom.js +104 -0
  231. package/lib-es/modules/components/member-window/components/video-player/components/local-video-player.js +1 -0
  232. package/lib-es/modules/components/member-window/components/video-player/components/remote-video-player-with-zoom.js +60 -0
  233. package/lib-es/modules/components/member-window/components/video-player/components/remote-video-player.js +1 -0
  234. package/lib-es/modules/components/member-window/components/video-player/components/zoomable-container.js +223 -0
  235. package/lib-es/modules/components/member-window/components/video-player/index.js +37 -0
  236. package/lib-es/modules/components/member-window/index.css +502 -0
  237. package/lib-es/modules/components/member-window/index.js +179 -0
  238. package/lib-es/modules/components/member-window/types.js +1 -0
  239. package/lib-es/modules/components/security-menu/index.css +42 -0
  240. package/lib-es/modules/components/security-menu/index.js +472 -0
  241. package/lib-es/modules/components/security-menu/store.js +388 -0
  242. package/lib-es/modules/components/security-menu/type.js +1 -0
  243. package/lib-es/modules/components/tab-frame/index.css +40 -0
  244. package/lib-es/modules/components/tab-frame/index.js +51 -0
  245. package/lib-es/modules/components/toolbar/components/capture-tool/index.js +58 -0
  246. package/lib-es/modules/components/toolbar/components/clean-tool/index.js +63 -0
  247. package/lib-es/modules/components/toolbar/components/color-tool/color-panel/index.js +70 -0
  248. package/lib-es/modules/components/toolbar/components/color-tool/index.js +58 -0
  249. package/lib-es/modules/components/toolbar/components/graphic-tool/graphic-panel/index.js +57 -0
  250. package/lib-es/modules/components/toolbar/components/graphic-tool/graphic-panel/libs.js +57 -0
  251. package/lib-es/modules/components/toolbar/components/graphic-tool/index.js +72 -0
  252. package/lib-es/modules/components/toolbar/components/group-tool/index.js +35 -0
  253. package/lib-es/modules/components/toolbar/components/icons/fold-icon.js +33 -0
  254. package/lib-es/modules/components/toolbar/components/icons/move-icon.js +59 -0
  255. package/lib-es/modules/components/toolbar/components/item/index.js +157 -0
  256. package/lib-es/modules/components/toolbar/components/item/style.css +94 -0
  257. package/lib-es/modules/components/toolbar/components/multiple-color-tool/index.js +67 -0
  258. package/lib-es/modules/components/toolbar/components/panel/index.js +21 -0
  259. package/lib-es/modules/components/toolbar/components/panel/style.css +86 -0
  260. package/lib-es/modules/components/toolbar/components/pen-tool/index.js +54 -0
  261. package/lib-es/modules/components/toolbar/components/pen-tool/pen-panel/index.js +32 -0
  262. package/lib-es/modules/components/toolbar/components/save-draft/index.js +51 -0
  263. package/lib-es/modules/components/toolbar/components/vertical-frame/index.js +176 -0
  264. package/lib-es/modules/components/toolbar/hooks/use-resize-visible.js +64 -0
  265. package/lib-es/modules/components/toolbar/index.js +235 -0
  266. package/lib-es/modules/components/toolbar/style.css +85 -0
  267. package/lib-es/modules/components/toolbar/types.js +1 -0
  268. package/lib-es/modules/connection-gateway/components/computer/index.css +12 -0
  269. package/lib-es/modules/connection-gateway/components/computer/index.js +59 -0
  270. package/lib-es/modules/connection-gateway/components/phone/components/callinfo/index.css +36 -0
  271. package/lib-es/modules/connection-gateway/components/phone/components/callinfo/index.js +71 -0
  272. package/lib-es/modules/connection-gateway/components/phone/components/calling/index.css +72 -0
  273. package/lib-es/modules/connection-gateway/components/phone/components/calling/index.js +51 -0
  274. package/lib-es/modules/connection-gateway/components/phone/components/remeber/index.css +10 -0
  275. package/lib-es/modules/connection-gateway/components/phone/components/remeber/index.js +17 -0
  276. package/lib-es/modules/connection-gateway/components/phone/components/useing/index.css +46 -0
  277. package/lib-es/modules/connection-gateway/components/phone/components/useing/index.js +29 -0
  278. package/lib-es/modules/connection-gateway/components/phone/index.css +49 -0
  279. package/lib-es/modules/connection-gateway/components/phone/index.js +177 -0
  280. package/lib-es/modules/connection-gateway/enums.js +5 -0
  281. package/lib-es/modules/connection-gateway/index.css +6 -0
  282. package/lib-es/modules/connection-gateway/index.js +60 -0
  283. package/lib-es/modules/connection-gateway/store.js +709 -0
  284. package/lib-es/modules/connection-gateway/types.js +1 -0
  285. package/lib-es/modules/connection-gateway/view.js +31 -0
  286. package/lib-es/modules/control-bar/components/apps-popover/index.js +34 -0
  287. package/lib-es/modules/control-bar/components/boundary-detector.js +49 -0
  288. package/lib-es/modules/control-bar/components/carmera/index.js +107 -0
  289. package/lib-es/modules/control-bar/components/cloud-recording-buttons.js +109 -0
  290. package/lib-es/modules/control-bar/components/meeting-details/index.css +133 -0
  291. package/lib-es/modules/control-bar/components/meeting-details/index.js +230 -0
  292. package/lib-es/modules/control-bar/components/microphone/index.js +185 -0
  293. package/lib-es/modules/control-bar/components/more-actions/index.css +103 -0
  294. package/lib-es/modules/control-bar/components/more-actions/index.js +158 -0
  295. package/lib-es/modules/control-bar/components/share-audio/index.css +90 -0
  296. package/lib-es/modules/control-bar/components/share-audio/index.js +142 -0
  297. package/lib-es/modules/control-bar/components/share-state-nav/index.css +79 -0
  298. package/lib-es/modules/control-bar/components/share-state-nav/index.js +122 -0
  299. package/lib-es/modules/control-bar/components/stop-live-streaming/index.js +29 -0
  300. package/lib-es/modules/control-bar/components/stop-live-streaming/stop-button.js +28 -0
  301. package/lib-es/modules/control-bar/components/transfer-position-icon/index.js +34 -0
  302. package/lib-es/modules/control-bar/context.js +5 -0
  303. package/lib-es/modules/control-bar/enums.js +27 -0
  304. package/lib-es/modules/control-bar/hooks.js +168 -0
  305. package/lib-es/modules/control-bar/index.css +340 -0
  306. package/lib-es/modules/control-bar/index.dev.js +37 -0
  307. package/lib-es/modules/control-bar/index.js +144 -0
  308. package/lib-es/modules/control-bar/store.js +781 -0
  309. package/lib-es/modules/control-bar/type.js +1 -0
  310. package/lib-es/modules/control-bar/view.js +663 -0
  311. package/lib-es/modules/device-pretest/assets/virtual-backdound-resources.js +14 -0
  312. package/lib-es/modules/device-pretest/audio-preview/microphone-detection.js +64 -0
  313. package/lib-es/modules/device-pretest/audio-preview/speaker-control.js +58 -0
  314. package/lib-es/modules/device-pretest/audio-preview/speaker-detection.js +63 -0
  315. package/lib-es/modules/device-pretest/index.css +123 -0
  316. package/lib-es/modules/device-pretest/index.js +234 -0
  317. package/lib-es/modules/device-pretest/settings/beauty.js +107 -0
  318. package/lib-es/modules/device-pretest/settings/camera-select.js +45 -0
  319. package/lib-es/modules/device-pretest/settings/video-effect.js +43 -0
  320. package/lib-es/modules/device-pretest/settings/video-settings-basic.js +137 -0
  321. package/lib-es/modules/device-pretest/settings/virtual-background-setting.js +94 -0
  322. package/lib-es/modules/device-pretest/store.js +437 -0
  323. package/lib-es/modules/dialog/components/confirm/index.css +24 -0
  324. package/lib-es/modules/dialog/components/confirm/index.js +154 -0
  325. package/lib-es/modules/dialog/components/dialog-container/component/body.js +103 -0
  326. package/lib-es/modules/dialog/components/dialog-container/index.css +112 -0
  327. package/lib-es/modules/dialog/components/dialog-container/index.js +135 -0
  328. package/lib-es/modules/dialog/components/host-area-container/index.js +146 -0
  329. package/lib-es/modules/dialog/components/normal-window/index.js +53 -0
  330. package/lib-es/modules/dialog/dialogs/annotation-tool/index.js +47 -0
  331. package/lib-es/modules/dialog/dialogs/caption/index.js +35 -0
  332. package/lib-es/modules/dialog/dialogs/chat/components/actions.js +36 -0
  333. package/lib-es/modules/dialog/dialogs/chat/index.js +74 -0
  334. package/lib-es/modules/dialog/dialogs/confirm/index.css +24 -0
  335. package/lib-es/modules/dialog/dialogs/confirm/index.js +51 -0
  336. package/lib-es/modules/dialog/dialogs/confirm-leave-meeting/index.js +38 -0
  337. package/lib-es/modules/dialog/dialogs/connection-gateway/index.js +40 -0
  338. package/lib-es/modules/dialog/dialogs/connection-gateway/tabs.js +40 -0
  339. package/lib-es/modules/dialog/dialogs/control-bar/index.js +29 -0
  340. package/lib-es/modules/dialog/dialogs/control-bar-leave-meeting/index.js +33 -0
  341. package/lib-es/modules/dialog/dialogs/device-setting/index.css +26 -0
  342. package/lib-es/modules/dialog/dialogs/device-setting/index.js +36 -0
  343. package/lib-es/modules/dialog/dialogs/end-meeting/index.js +48 -0
  344. package/lib-es/modules/dialog/dialogs/interpreter/index.css +30 -0
  345. package/lib-es/modules/dialog/dialogs/interpreter/index.js +38 -0
  346. package/lib-es/modules/dialog/dialogs/invite/index.js +51 -0
  347. package/lib-es/modules/dialog/dialogs/live-streaming/index.js +30 -0
  348. package/lib-es/modules/dialog/dialogs/mute-all/index.css +20 -0
  349. package/lib-es/modules/dialog/dialogs/mute-all/index.js +42 -0
  350. package/lib-es/modules/dialog/dialogs/participant/components/actions.js +23 -0
  351. package/lib-es/modules/dialog/dialogs/participant/components/title.js +9 -0
  352. package/lib-es/modules/dialog/dialogs/participant/index.js +52 -0
  353. package/lib-es/modules/dialog/dialogs/rename/index.js +43 -0
  354. package/lib-es/modules/dialog/dialogs/sample-dialog/index.js +48 -0
  355. package/lib-es/modules/dialog/dialogs/share-screen-selection/index.js +32 -0
  356. package/lib-es/modules/dialog/dialogs/sub-window/index.js +31 -0
  357. package/lib-es/modules/dialog/dialogs/subtitles-history/index.js +44 -0
  358. package/lib-es/modules/dialog/dialogs/system-preference/assets/bg1.png +0 -0
  359. package/lib-es/modules/dialog/dialogs/system-preference/assets/bg2.png +0 -0
  360. package/lib-es/modules/dialog/dialogs/system-preference/assets/fcr_png_host.png +0 -0
  361. package/lib-es/modules/dialog/dialogs/system-preference/electron.js +31 -0
  362. package/lib-es/modules/dialog/dialogs/system-preference/index.css +52 -0
  363. package/lib-es/modules/dialog/dialogs/system-preference/index.js +130 -0
  364. package/lib-es/modules/dialog/dialogs/toast/index.js +28 -0
  365. package/lib-es/modules/dialog/dialogs/video-window/index.js +55 -0
  366. package/lib-es/modules/dialog/dialogs/whiteboard/index.js +60 -0
  367. package/lib-es/modules/dialog/dialogs/widget/index.js +40 -0
  368. package/lib-es/modules/dialog/hooks/use-web-drag.js +64 -0
  369. package/lib-es/modules/dialog/index.css +56 -0
  370. package/lib-es/modules/dialog/index.js +70 -0
  371. package/lib-es/modules/dialog/level-config.js +11 -0
  372. package/lib-es/modules/dialog/store.base.js +272 -0
  373. package/lib-es/modules/dialog/store.browser.js +135 -0
  374. package/lib-es/modules/dialog/store.electron.js +284 -0
  375. package/lib-es/modules/dialog/type.js +1 -0
  376. package/lib-es/modules/dialog/view.js +28 -0
  377. package/lib-es/modules/event-sound/enum.js +13 -0
  378. package/lib-es/modules/event-sound/index.js +49 -0
  379. package/lib-es/modules/event-sound/sound-effect-player.js +49 -0
  380. package/lib-es/modules/event-sound/store.js +275 -0
  381. package/lib-es/modules/event-sound/type.js +1 -0
  382. package/lib-es/modules/event-toast/index.css +25 -0
  383. package/lib-es/modules/event-toast/index.js +82 -0
  384. package/lib-es/modules/event-toast/store.base.js +193 -0
  385. package/lib-es/modules/event-toast/store.browser.js +23 -0
  386. package/lib-es/modules/event-toast/store.electron.js +138 -0
  387. package/lib-es/modules/event-toast/type.js +1 -0
  388. package/lib-es/modules/event-toast/view.js +37 -0
  389. package/lib-es/modules/interpreter/action/add-btn/index.css +4 -0
  390. package/lib-es/modules/interpreter/action/add-btn/index.js +35 -0
  391. package/lib-es/modules/interpreter/action/delete-btn/index.css +14 -0
  392. package/lib-es/modules/interpreter/action/delete-btn/index.js +31 -0
  393. package/lib-es/modules/interpreter/action/edit-btn/index.js +39 -0
  394. package/lib-es/modules/interpreter/action/switch-btn/index.css +3 -0
  395. package/lib-es/modules/interpreter/action/switch-btn/index.js +44 -0
  396. package/lib-es/modules/interpreter/dialog-content/index.css +33 -0
  397. package/lib-es/modules/interpreter/dialog-content/index.js +30 -0
  398. package/lib-es/modules/interpreter/footer/index.css +11 -0
  399. package/lib-es/modules/interpreter/footer/index.js +18 -0
  400. package/lib-es/modules/interpreter/index.css +4 -0
  401. package/lib-es/modules/interpreter/index.js +109 -0
  402. package/lib-es/modules/interpreter/interpreter-list/index.css +8 -0
  403. package/lib-es/modules/interpreter/interpreter-list/index.js +30 -0
  404. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/index.css +46 -0
  405. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/index.js +173 -0
  406. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_ar.png +0 -0
  407. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_cn.png +0 -0
  408. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_de.png +0 -0
  409. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_en.png +0 -0
  410. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_es.png +0 -0
  411. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_fr.png +0 -0
  412. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_hi.png +0 -0
  413. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_id.png +0 -0
  414. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_it.png +0 -0
  415. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_jp.png +0 -0
  416. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_ko.png +0 -0
  417. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_ms.png +0 -0
  418. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_pt.png +0 -0
  419. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_ru.png +0 -0
  420. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_th.png +0 -0
  421. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_tr.png +0 -0
  422. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_vi.png +0 -0
  423. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/index.js +169 -0
  424. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-user/index.css +46 -0
  425. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-user/index.js +120 -0
  426. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/components/pick-user/option-Item.js +51 -0
  427. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/index.css +32 -0
  428. package/lib-es/modules/interpreter/interpreter-list/interpreter-item/index.js +40 -0
  429. package/lib-es/modules/interpreter/loading-wrapper/index.css +53 -0
  430. package/lib-es/modules/interpreter/loading-wrapper/index.js +20 -0
  431. package/lib-es/modules/interpreter/store.js +614 -0
  432. package/lib-es/modules/interpreter/tooltip-wrapper/index.js +23 -0
  433. package/lib-es/modules/interpreter/type.js +5 -0
  434. package/lib-es/modules/interpreter/utils.js +54 -0
  435. package/lib-es/modules/interpreter/view.js +62 -0
  436. package/lib-es/modules/invite/components/error-tips.js +11 -0
  437. package/lib-es/modules/invite/components/pstn-invite.js +245 -0
  438. package/lib-es/modules/invite/components/voip-invite.css +26 -0
  439. package/lib-es/modules/invite/components/voip-invite.js +265 -0
  440. package/lib-es/modules/invite/enums.js +27 -0
  441. package/lib-es/modules/invite/index.css +331 -0
  442. package/lib-es/modules/invite/index.js +64 -0
  443. package/lib-es/modules/invite/store.js +578 -0
  444. package/lib-es/modules/invite/types.js +1 -0
  445. package/lib-es/modules/invite/view.js +46 -0
  446. package/lib-es/modules/layout/components/Aside.js +208 -0
  447. package/lib-es/modules/layout/components/Carousel.js +192 -0
  448. package/lib-es/modules/layout/components/CommonVideoRenderer.js +265 -0
  449. package/lib-es/modules/layout/components/Gallery.js +256 -0
  450. package/lib-es/modules/layout/components/index.css +653 -0
  451. package/lib-es/modules/layout/components/index.js +5 -0
  452. package/lib-es/modules/layout/components/utils.js +3 -0
  453. package/lib-es/modules/layout/components/who-is-speaking.js +49 -0
  454. package/lib-es/modules/layout/index.css +59 -0
  455. package/lib-es/modules/layout/index.dev.js +313 -0
  456. package/lib-es/modules/layout/index.js +74 -0
  457. package/lib-es/modules/layout/store.base.js +1468 -0
  458. package/lib-es/modules/layout/store.browser.js +49 -0
  459. package/lib-es/modules/layout/store.electron.js +175 -0
  460. package/lib-es/modules/layout/type.js +59 -0
  461. package/lib-es/modules/layout/view.js +149 -0
  462. package/lib-es/modules/live-streaming/index.css +0 -0
  463. package/lib-es/modules/live-streaming/index.dev.js +56 -0
  464. package/lib-es/modules/live-streaming/index.js +60 -0
  465. package/lib-es/modules/live-streaming/store.js +246 -0
  466. package/lib-es/modules/live-streaming/type.js +1 -0
  467. package/lib-es/modules/live-streaming/view.js +26 -0
  468. package/lib-es/modules/notification/index.css +77 -0
  469. package/lib-es/modules/notification/index.js +59 -0
  470. package/lib-es/modules/notification/interpreter-status/index.css +76 -0
  471. package/lib-es/modules/notification/interpreter-status/index.js +55 -0
  472. package/lib-es/modules/notification/store.js +122 -0
  473. package/lib-es/modules/notification/type.js +1 -0
  474. package/lib-es/modules/notification/view.js +127 -0
  475. package/lib-es/modules/offscreen-pulling/index.js +122 -0
  476. package/lib-es/modules/participant/components/can-moveable/index.js +59 -0
  477. package/lib-es/modules/participant/components/confirm-input/index.css +4 -0
  478. package/lib-es/modules/participant/components/confirm-input/index.js +112 -0
  479. package/lib-es/modules/participant/components/mute-all/index.js +67 -0
  480. package/lib-es/modules/participant/components/operate-waitingroom-member/index.js +40 -0
  481. package/lib-es/modules/participant/components/participants/components/footer/components/buttons.js +45 -0
  482. package/lib-es/modules/participant/components/participants/components/footer/components/drop-menu/index.css +83 -0
  483. package/lib-es/modules/participant/components/participants/components/footer/components/drop-menu/index.js +156 -0
  484. package/lib-es/modules/participant/components/participants/components/footer/components/drop-menu/util.js +21 -0
  485. package/lib-es/modules/participant/components/participants/components/footer/index.js +42 -0
  486. package/lib-es/modules/participant/components/participants/components/merge/index.js +40 -0
  487. package/lib-es/modules/participant/components/participants/components/render-tab/index.js +42 -0
  488. package/lib-es/modules/participant/components/participants/components/render-user/components/attendee/components/interpreter-tag/index.js +40 -0
  489. package/lib-es/modules/participant/components/participants/components/render-user/components/attendee/components/microphone-indicator/index.js +21 -0
  490. package/lib-es/modules/participant/components/participants/components/render-user/components/attendee/components/user-avatar/index.js +32 -0
  491. package/lib-es/modules/participant/components/participants/components/render-user/components/attendee/index.css +87 -0
  492. package/lib-es/modules/participant/components/participants/components/render-user/components/attendee/index.js +138 -0
  493. package/lib-es/modules/participant/components/participants/components/render-user/components/user-action/components/audio-button/index.js +25 -0
  494. package/lib-es/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.js +70 -0
  495. package/lib-es/modules/participant/components/participants/components/render-user/components/user-action/components/move-to-mainroom-button/index.js +20 -0
  496. package/lib-es/modules/participant/components/participants/components/render-user/components/user-action/index.js +70 -0
  497. package/lib-es/modules/participant/components/participants/components/render-user/index.js +16 -0
  498. package/lib-es/modules/participant/components/participants/index.js +71 -0
  499. package/lib-es/modules/participant/index.css +102 -0
  500. package/lib-es/modules/participant/index.dev.js +87 -0
  501. package/lib-es/modules/participant/index.js +137 -0
  502. package/lib-es/modules/participant/member-list-data-source.js +297 -0
  503. package/lib-es/modules/participant/store.base.js +2354 -0
  504. package/lib-es/modules/participant/store.browser.js +117 -0
  505. package/lib-es/modules/participant/store.electron.js +124 -0
  506. package/lib-es/modules/participant/struct.js +55 -0
  507. package/lib-es/modules/participant/type.js +7 -0
  508. package/lib-es/modules/participant/view.js +18 -0
  509. package/lib-es/modules/pc-audio-connect/index.css +12 -0
  510. package/lib-es/modules/pc-audio-connect/main-scene/index.js +67 -0
  511. package/lib-es/modules/pc-audio-connect/main-scene/store.js +313 -0
  512. package/lib-es/modules/pc-audio-connect/types.js +1 -0
  513. package/lib-es/modules/pc-audio-connect/view.js +60 -0
  514. package/lib-es/modules/pc-audio-connect/waiting-scene/index.js +61 -0
  515. package/lib-es/modules/pc-audio-connect/waiting-scene/store.js +293 -0
  516. package/lib-es/modules/phone-audio-connect/components/callinfo/index.css +36 -0
  517. package/lib-es/modules/phone-audio-connect/components/callinfo/index.js +71 -0
  518. package/lib-es/modules/phone-audio-connect/components/calling/index.css +72 -0
  519. package/lib-es/modules/phone-audio-connect/components/calling/index.js +51 -0
  520. package/lib-es/modules/phone-audio-connect/components/remeber/index.css +10 -0
  521. package/lib-es/modules/phone-audio-connect/components/remeber/index.js +17 -0
  522. package/lib-es/modules/phone-audio-connect/components/useing/index.css +46 -0
  523. package/lib-es/modules/phone-audio-connect/components/useing/index.js +29 -0
  524. package/lib-es/modules/phone-audio-connect/enums.js +5 -0
  525. package/lib-es/modules/phone-audio-connect/index.css +56 -0
  526. package/lib-es/modules/phone-audio-connect/index.js +52 -0
  527. package/lib-es/modules/phone-audio-connect/store.js +317 -0
  528. package/lib-es/modules/phone-audio-connect/types.js +1 -0
  529. package/lib-es/modules/phone-audio-connect/view.js +177 -0
  530. package/lib-es/modules/secondary-window/index.js +147 -0
  531. package/lib-es/modules/secondary-window/store.js +502 -0
  532. package/lib-es/modules/secondary-window/type.js +28 -0
  533. package/lib-es/modules/secondary-window/view.js +281 -0
  534. package/lib-es/modules/setting/audio-settings/audio-settings.js +292 -0
  535. package/lib-es/modules/setting/audio-settings/index.css +195 -0
  536. package/lib-es/modules/setting/audio-whiteList/audio-device-adaptation.js +62 -0
  537. package/lib-es/modules/setting/audio-whiteList/audio-whiteList-manager.js +368 -0
  538. package/lib-es/modules/setting/caption_and_transcribing/index.css +88 -0
  539. package/lib-es/modules/setting/caption_and_transcribing/index.js +89 -0
  540. package/lib-es/modules/setting/general-settings/general-settings.js +148 -0
  541. package/lib-es/modules/setting/general-settings/index.css +41 -0
  542. package/lib-es/modules/setting/index.css +112 -0
  543. package/lib-es/modules/setting/index.dev.js +120 -0
  544. package/lib-es/modules/setting/index.js +145 -0
  545. package/lib-es/modules/setting/minutes-settings/index.css +65 -0
  546. package/lib-es/modules/setting/minutes-settings/minutes-settings.js +146 -0
  547. package/lib-es/modules/setting/state/index.css +207 -0
  548. package/lib-es/modules/setting/state/index.js +322 -0
  549. package/lib-es/modules/setting/storage-settings/index.css +91 -0
  550. package/lib-es/modules/setting/storage-settings/storage-settings.js +65 -0
  551. package/lib-es/modules/setting/store.base.js +1440 -0
  552. package/lib-es/modules/setting/store.browser.js +43 -0
  553. package/lib-es/modules/setting/store.electron.js +168 -0
  554. package/lib-es/modules/setting/translate-settings/index.css +47 -0
  555. package/lib-es/modules/setting/translate-settings/language-select.js +40 -0
  556. package/lib-es/modules/setting/translate-settings/translate-settings.js +131 -0
  557. package/lib-es/modules/setting/type.js +14 -0
  558. package/lib-es/modules/setting/video-settings/index.css +357 -0
  559. package/lib-es/modules/setting/video-settings/video-settings-basic.js +131 -0
  560. package/lib-es/modules/setting/video-settings/video-settings.js +167 -0
  561. package/lib-es/modules/setting/view.js +147 -0
  562. package/lib-es/modules/share-screen/components/control-bar/index.css +75 -0
  563. package/lib-es/modules/share-screen/components/control-bar/index.js +92 -0
  564. package/lib-es/modules/share-screen/components/control-bar/items/annotation-edit-btn/index.js +38 -0
  565. package/lib-es/modules/share-screen/components/control-bar/items/full-container-btn/index.js +25 -0
  566. package/lib-es/modules/share-screen/components/control-bar/items/original-size-btn/index.js +25 -0
  567. package/lib-es/modules/share-screen/components/control-bar/items/zoom-in-btn/index.js +25 -0
  568. package/lib-es/modules/share-screen/components/control-bar/items/zoom-out-btn/index.js +25 -0
  569. package/lib-es/modules/share-screen/components/selection/index.css +73 -0
  570. package/lib-es/modules/share-screen/components/selection/index.js +220 -0
  571. package/lib-es/modules/share-screen/components/share-scenario/index.js +40 -0
  572. package/lib-es/modules/share-screen/components/share-state-bar/index.css +76 -0
  573. package/lib-es/modules/share-screen/components/share-state-bar/index.js +90 -0
  574. package/lib-es/modules/share-screen/index.css +0 -0
  575. package/lib-es/modules/share-screen/index.dev.js +90 -0
  576. package/lib-es/modules/share-screen/index.js +99 -0
  577. package/lib-es/modules/share-screen/store.base.js +464 -0
  578. package/lib-es/modules/share-screen/store.browser.js +36 -0
  579. package/lib-es/modules/share-screen/store.electron.js +429 -0
  580. package/lib-es/modules/share-screen/type.js +8 -0
  581. package/lib-es/modules/share-screen/view.js +24 -0
  582. package/lib-es/modules/state-bar/assets/fcr_grid_big.svg +3 -0
  583. package/lib-es/modules/state-bar/assets/fcr_listontop_big.svg +3 -0
  584. package/lib-es/modules/state-bar/assets/live-streaming.gif +0 -0
  585. package/lib-es/modules/state-bar/index.css +706 -0
  586. package/lib-es/modules/state-bar/index.dev.js +78 -0
  587. package/lib-es/modules/state-bar/index.js +41 -0
  588. package/lib-es/modules/state-bar/layout-config.js +168 -0
  589. package/lib-es/modules/state-bar/live-streaming-state.js +169 -0
  590. package/lib-es/modules/state-bar/main-scene/index.js +39 -0
  591. package/lib-es/modules/state-bar/main-scene/store.base.js +137 -0
  592. package/lib-es/modules/state-bar/main-scene/store.browser.js +80 -0
  593. package/lib-es/modules/state-bar/main-scene/store.electron.js +107 -0
  594. package/lib-es/modules/state-bar/meeting-detail.css +137 -0
  595. package/lib-es/modules/state-bar/meeting-details.js +219 -0
  596. package/lib-es/modules/state-bar/meeting-network-state.css +150 -0
  597. package/lib-es/modules/state-bar/meeting-network-state.js +107 -0
  598. package/lib-es/modules/state-bar/meeting-time.js +25 -0
  599. package/lib-es/modules/state-bar/network-quality.js +26 -0
  600. package/lib-es/modules/state-bar/recording.js +103 -0
  601. package/lib-es/modules/state-bar/store.base.electron.js +108 -0
  602. package/lib-es/modules/state-bar/store.base.js +616 -0
  603. package/lib-es/modules/state-bar/subtitles-history-state.js +101 -0
  604. package/lib-es/modules/state-bar/type.js +1 -0
  605. package/lib-es/modules/state-bar/view.js +241 -0
  606. package/lib-es/modules/state-bar/waiting-scene/index.js +39 -0
  607. package/lib-es/modules/state-bar/waiting-scene/store.base.js +48 -0
  608. package/lib-es/modules/state-bar/waiting-scene/store.browser.js +80 -0
  609. package/lib-es/modules/state-bar/waiting-scene/store.electron.js +99 -0
  610. package/lib-es/modules/subtitles-history/components/actions.js +29 -0
  611. package/lib-es/modules/subtitles-history/components/list-item.js +95 -0
  612. package/lib-es/modules/subtitles-history/components/list.js +175 -0
  613. package/lib-es/modules/subtitles-history/components/respond-dialog-content.js +36 -0
  614. package/lib-es/modules/subtitles-history/components/settings/index.css +5 -0
  615. package/lib-es/modules/subtitles-history/components/settings/index.js +46 -0
  616. package/lib-es/modules/subtitles-history/components/timer.js +36 -0
  617. package/lib-es/modules/subtitles-history/components/title.js +8 -0
  618. package/lib-es/modules/subtitles-history/empty.js +14 -0
  619. package/lib-es/modules/subtitles-history/index.css +129 -0
  620. package/lib-es/modules/subtitles-history/index.js +89 -0
  621. package/lib-es/modules/subtitles-history/store.base.js +790 -0
  622. package/lib-es/modules/subtitles-history/store.electron.js +148 -0
  623. package/lib-es/modules/subtitles-history/type.js +1 -0
  624. package/lib-es/modules/subtitles-history/view.js +96 -0
  625. package/lib-es/modules/video-window/components/deviceState/index.js +68 -0
  626. package/lib-es/modules/video-window/components/members/index.css +51 -0
  627. package/lib-es/modules/video-window/components/members/index.js +116 -0
  628. package/lib-es/modules/video-window/components/speaking/index.css +86 -0
  629. package/lib-es/modules/video-window/components/speaking/index.js +40 -0
  630. package/lib-es/modules/video-window/components/topControl/index.css +35 -0
  631. package/lib-es/modules/video-window/components/topControl/index.js +68 -0
  632. package/lib-es/modules/video-window/index.css +21 -0
  633. package/lib-es/modules/video-window/index.js +82 -0
  634. package/lib-es/modules/video-window/popover-watcher.js +69 -0
  635. package/lib-es/modules/video-window/store.js +512 -0
  636. package/lib-es/modules/video-window/type.js +19 -0
  637. package/lib-es/modules/video-window/view.js +107 -0
  638. package/lib-es/modules/waiting-room-layout/index.css +96 -0
  639. package/lib-es/modules/waiting-room-layout/index.js +67 -0
  640. package/lib-es/modules/waiting-room-layout/store.js +231 -0
  641. package/lib-es/modules/waiting-room-layout/view.js +87 -0
  642. package/lib-es/modules/whiteboard/components/control-bar/index.css +52 -0
  643. package/lib-es/modules/whiteboard/components/control-bar/index.js +151 -0
  644. package/lib-es/modules/whiteboard/components/control-bar/store.js +298 -0
  645. package/lib-es/modules/whiteboard/components/loading/index.css +76 -0
  646. package/lib-es/modules/whiteboard/components/loading/index.js +57 -0
  647. package/lib-es/modules/whiteboard/components/loading/loading.png +0 -0
  648. package/lib-es/modules/whiteboard/components/multi-window/index.css +63 -0
  649. package/lib-es/modules/whiteboard/components/multi-window/index.js +31 -0
  650. package/lib-es/modules/whiteboard/components/pagination/index.css +228 -0
  651. package/lib-es/modules/whiteboard/components/pagination/index.js +155 -0
  652. package/lib-es/modules/whiteboard/components/pagination/store.js +10 -0
  653. package/lib-es/modules/whiteboard/components/progress/index.js +36 -0
  654. package/lib-es/modules/whiteboard/components/progress/style.css +51 -0
  655. package/lib-es/modules/whiteboard/components/scene-pagination.js +23 -0
  656. package/lib-es/modules/whiteboard/components/switch-theme/index.css +99 -0
  657. package/lib-es/modules/whiteboard/components/switch-theme/index.js +89 -0
  658. package/lib-es/modules/whiteboard/components/switch-theme/item.js +46 -0
  659. package/lib-es/modules/whiteboard/components/switch-theme/libs.js +24 -0
  660. package/lib-es/modules/whiteboard/components/toolbar/components/color-picker/components/color.js +30 -0
  661. package/lib-es/modules/whiteboard/components/toolbar/components/color-picker/components/panel.js +101 -0
  662. package/lib-es/modules/whiteboard/components/toolbar/components/color-picker/components/picker.js +67 -0
  663. package/lib-es/modules/whiteboard/components/toolbar/components/color-picker/index.js +40 -0
  664. package/lib-es/modules/whiteboard/components/toolbar/components/eraser-picker.js +136 -0
  665. package/lib-es/modules/whiteboard/components/toolbar/components/expansion/index.js +85 -0
  666. package/lib-es/modules/whiteboard/components/toolbar/components/extra-tool-picker.js +46 -0
  667. package/lib-es/modules/whiteboard/components/toolbar/components/history.js +70 -0
  668. package/lib-es/modules/whiteboard/components/toolbar/components/icons/fold-icon.js +33 -0
  669. package/lib-es/modules/whiteboard/components/toolbar/components/icons/move-icon.js +59 -0
  670. package/lib-es/modules/whiteboard/components/toolbar/components/item/index.js +35 -0
  671. package/lib-es/modules/whiteboard/components/toolbar/components/move-handle.js +127 -0
  672. package/lib-es/modules/whiteboard/components/toolbar/components/pen-picker.js +147 -0
  673. package/lib-es/modules/whiteboard/components/toolbar/components/screen-capture-picker.js +78 -0
  674. package/lib-es/modules/whiteboard/components/toolbar/components/shape-picker.js +202 -0
  675. package/lib-es/modules/whiteboard/components/toolbar/hooks/index.js +285 -0
  676. package/lib-es/modules/whiteboard/components/toolbar/index.js +72 -0
  677. package/lib-es/modules/whiteboard/components/toolbar/store.js +484 -0
  678. package/lib-es/modules/whiteboard/components/toolbar/style.css +591 -0
  679. package/lib-es/modules/whiteboard/context.js +28 -0
  680. package/lib-es/modules/whiteboard/index.js +67 -0
  681. package/lib-es/modules/whiteboard/libs/theme.js +24 -0
  682. package/lib-es/modules/whiteboard/store.browser.js +20 -0
  683. package/lib-es/modules/whiteboard/store.electron.js +163 -0
  684. package/lib-es/modules/whiteboard/store.js +457 -0
  685. package/lib-es/modules/whiteboard/style.css +140 -0
  686. package/lib-es/modules/whiteboard/type.js +52 -0
  687. package/lib-es/modules/whiteboard/utils.js +29 -0
  688. package/lib-es/modules/whiteboard/view.js +105 -0
  689. package/lib-es/modules/widget/index.css +9 -0
  690. package/lib-es/modules/widget/index.js +129 -0
  691. package/lib-es/modules/widget/store.base.js +35 -0
  692. package/lib-es/modules/widget/store.browser.js +74 -0
  693. package/lib-es/modules/widget/store.electron.js +127 -0
  694. package/lib-es/modules/widget/type.js +1 -0
  695. package/lib-es/modules/widget/view.js +49 -0
  696. package/lib-es/modules/widget/web-widget.js +263 -0
  697. package/lib-es/object-manager.js +194 -0
  698. package/lib-es/plugins/browser-runtime-plugin.js +0 -0
  699. package/lib-es/plugins/css-preset-plugin.js +18 -0
  700. package/lib-es/plugins/electron-rtc-plugin.js +3 -0
  701. package/lib-es/plugins/module-dev-plugin.js +162 -0
  702. package/lib-es/plugins/multi-lang-plugin.js +18 -0
  703. package/lib-es/plugins/rtm-plugin.js +3 -0
  704. package/lib-es/plugins/web-rtc-plugin.js +3 -0
  705. package/lib-es/providers/ability-provider.js +76 -0
  706. package/lib-es/providers/annotation/provider.js +61 -0
  707. package/lib-es/providers/annotation/type.js +1 -0
  708. package/lib-es/providers/app-list-provider.js +392 -0
  709. package/lib-es/providers/board-share/bar-control/base.js +318 -0
  710. package/lib-es/providers/board-share/bar-control/browser.js +34 -0
  711. package/lib-es/providers/board-share/bar-control/electron.js +211 -0
  712. package/lib-es/providers/board-share/provider.base.js +406 -0
  713. package/lib-es/providers/board-share/provider.browser.js +147 -0
  714. package/lib-es/providers/board-share/provider.electron.js +162 -0
  715. package/lib-es/providers/board-share/struct.js +16 -0
  716. package/lib-es/providers/board-share/type.js +1 -0
  717. package/lib-es/providers/chat-provider.js +166 -0
  718. package/lib-es/providers/device-privilege-provider.js +402 -0
  719. package/lib-es/providers/device-provider.js +2148 -0
  720. package/lib-es/providers/device-stream-provider.js +418 -0
  721. package/lib-es/providers/dialog/provider.base.js +282 -0
  722. package/lib-es/providers/dialog/provider.browser.js +160 -0
  723. package/lib-es/providers/dialog/provider.electron.js +273 -0
  724. package/lib-es/providers/dialog/type.js +8 -0
  725. package/lib-es/providers/event-provider.js +50 -0
  726. package/lib-es/providers/facility/provider.base.js +152 -0
  727. package/lib-es/providers/facility/provider.browser.js +67 -0
  728. package/lib-es/providers/facility/provider.electron.js +83 -0
  729. package/lib-es/providers/facility/struct.js +6 -0
  730. package/lib-es/providers/facility/type.js +1 -0
  731. package/lib-es/providers/interpreter-provider.js +955 -0
  732. package/lib-es/providers/local-storage-provider.js +37 -0
  733. package/lib-es/providers/message/provider.js +97 -0
  734. package/lib-es/providers/message/struct.js +5 -0
  735. package/lib-es/providers/message/type.js +1 -0
  736. package/lib-es/providers/monitor-provider.js +22 -0
  737. package/lib-es/providers/mouse-detect/provider.js +312 -0
  738. package/lib-es/providers/mouse-detect/struct.js +5 -0
  739. package/lib-es/providers/mouse-detect/type.js +1 -0
  740. package/lib-es/providers/multi-display-provider.js +603 -0
  741. package/lib-es/providers/phone-audio-provider.js +512 -0
  742. package/lib-es/providers/privilege-provider.js +1158 -0
  743. package/lib-es/providers/renderer-provider.js +310 -0
  744. package/lib-es/providers/room-provider/room-provider.js +730 -0
  745. package/lib-es/providers/room-provider/waiting-room-control-manager.js +224 -0
  746. package/lib-es/providers/screen-share/constant.js +1 -0
  747. package/lib-es/providers/screen-share/provider.base.js +511 -0
  748. package/lib-es/providers/screen-share/provider.browser.js +290 -0
  749. package/lib-es/providers/screen-share/provider.electron.js +486 -0
  750. package/lib-es/providers/screen-share/strategy/browser.js +306 -0
  751. package/lib-es/providers/screen-share/strategy/electron.js +364 -0
  752. package/lib-es/providers/screen-share/strategy/type.js +31 -0
  753. package/lib-es/providers/screen-share/stream-state-sync.js +312 -0
  754. package/lib-es/providers/screen-share/struct.js +60 -0
  755. package/lib-es/providers/screen-share/type.js +1 -0
  756. package/lib-es/providers/session-provider.js +42 -0
  757. package/lib-es/providers/setting-storage/provider.base.js +6 -0
  758. package/lib-es/providers/setting-storage/provider.browser.js +57 -0
  759. package/lib-es/providers/setting-storage/provider.electron.js +55 -0
  760. package/lib-es/providers/setting-storage/type.js +1 -0
  761. package/lib-es/providers/stt-provider/stt-provider.js +1000 -0
  762. package/lib-es/providers/stt-provider/type.js +14 -0
  763. package/lib-es/providers/widget-provider.js +236 -0
  764. package/lib-es/providers/window/main-window.js +259 -0
  765. package/lib-es/providers/window/provider.js +158 -0
  766. package/lib-es/providers/window/renderer-window.js +576 -0
  767. package/lib-es/providers/window/type.js +1 -0
  768. package/lib-es/runtime.js +1 -0
  769. package/lib-es/scenes/main-scene.js +696 -0
  770. package/lib-es/scenes/type.js +1 -0
  771. package/lib-es/scenes/waiting-scene.js +155 -0
  772. package/lib-es/schema.js +88 -0
  773. package/lib-es/shared-context/board-context.js +7 -0
  774. package/lib-es/shared-context/dialog-context.js +3 -0
  775. package/lib-es/shared-context/video-track-render-context.js +2 -0
  776. package/lib-es/shared-data/app-list-data.js +122 -0
  777. package/lib-es/shared-data/chat-data.js +135 -0
  778. package/lib-es/shared-data/config.js +38 -0
  779. package/lib-es/shared-data/confirm-data.js +195 -0
  780. package/lib-es/shared-data/device-privilege-data.js +18 -0
  781. package/lib-es/shared-data/interpreter.js +235 -0
  782. package/lib-es/shared-data/layout-data.js +211 -0
  783. package/lib-es/shared-data/meeting-time.js +409 -0
  784. package/lib-es/shared-data/member-data.js +482 -0
  785. package/lib-es/shared-data/pin-data.js +107 -0
  786. package/lib-es/shared-data/screen-share/index.js +188 -0
  787. package/lib-es/shared-data/screen-share/type.js +1 -0
  788. package/lib-es/shared-data/security-data.js +153 -0
  789. package/lib-es/shared-data/setting.js +244 -0
  790. package/lib-es/shared-data/speaker-spotlight.js +11 -0
  791. package/lib-es/shared-data/stt-setting.ts/constant.js +27 -0
  792. package/lib-es/shared-data/stt-setting.ts/index.js +195 -0
  793. package/lib-es/shared-data/stt-setting.ts/type.js +7 -0
  794. package/lib-es/shared-data/video-window.js +1248 -0
  795. package/lib-es/shared-data/waiting-room.js +216 -0
  796. package/lib-es/shared-data/widget-data.js +42 -0
  797. package/lib-es/translations/enUS.js +2075 -0
  798. package/lib-es/translations/zhCN.js +2073 -0
  799. package/lib-es/type.js +149 -0
  800. package/lib-es/ui-manager.js +213 -0
  801. package/lib-es/ui-scene-switch.js +572 -0
  802. package/lib-es/utilities/browser-api.js +74 -0
  803. package/lib-es/utilities/constant.js +190 -0
  804. package/lib-es/utilities/debug.js +33 -0
  805. package/lib-es/utilities/default-config.js +89 -0
  806. package/lib-es/utilities/dialog-utils.js +210 -0
  807. package/lib-es/utilities/focus-helper.js +26 -0
  808. package/lib-es/utilities/hooks.js +82 -0
  809. package/lib-es/utilities/i18n-common-data.js +7 -0
  810. package/lib-es/utilities/logger.js +48 -0
  811. package/lib-es/utilities/meeting-detail.js +74 -0
  812. package/lib-es/utilities/mute-action.js +41 -0
  813. package/lib-es/utilities/package-info.js +7 -0
  814. package/lib-es/utilities/parameters.js +47 -0
  815. package/lib-es/utilities/platform.js +7 -0
  816. package/lib-es/utilities/privilege.js +21 -0
  817. package/lib-es/utilities/regex.js +7 -0
  818. package/lib-es/utilities/renderer.js +430 -0
  819. package/lib-es/utilities/shared-storage.js +56 -0
  820. package/lib-es/utilities/tools.js +252 -0
  821. package/lib-es/utilities/ui-resources.js +84 -0
  822. package/lib-es/utilities/useNamespace.js +59 -0
  823. package/lib-es/utilities/validate-params.js +9 -0
  824. package/package.json +11 -9
@@ -0,0 +1,2354 @@
1
+ import "core-js/modules/es.symbol.js";
2
+ import "core-js/modules/es.symbol.description.js";
3
+ import "core-js/modules/es.symbol.to-primitive.js";
4
+ import "core-js/modules/es.error.cause.js";
5
+ import "core-js/modules/es.error.to-string.js";
6
+ import "core-js/modules/es.array.is-array.js";
7
+ import "core-js/modules/es.date.to-primitive.js";
8
+ import "core-js/modules/es.function.name.js";
9
+ import "core-js/modules/es.number.constructor.js";
10
+ import "core-js/modules/es.object.create.js";
11
+ import "core-js/modules/es.object.define-properties.js";
12
+ import "core-js/modules/es.object.define-property.js";
13
+ import "core-js/modules/es.object.get-own-property-descriptor.js";
14
+ import "core-js/modules/es.object.get-own-property-descriptors.js";
15
+ import "core-js/modules/es.object.keys.js";
16
+ import "core-js/modules/esnext.function.metadata.js";
17
+ import "core-js/modules/esnext.symbol.metadata.js";
18
+ import _typeof from "@babel/runtime/helpers/typeof";
19
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
20
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
21
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
22
+ import _createClass from "@babel/runtime/helpers/createClass";
23
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
24
+ var _ParticipantStoreBase;
25
+ var _initProto, _init__isChecked, _init__participantsWindowActive, _init_enableParticipantsJoinWithMute, _init_searchText, _init_currentModal, _init_mergeConfirmDialog, _init_mergeUserId, _init_activeTab, _init_interpreterInputLanguageList, _init_newName, _init_allowUnmute, _init_joinWithMuteAudio, _init_showBecomeHostButton, _init__userCount, _setCurrentModalDecs, _setParticipantsWindowActiveDecs, _handlerSearchUserDecs, _openRemoveAdmitWaitingRoomDialogDecs, _setAllowUnmuteDecs, _setAllowJoinWithMuteAudioDecs, _openMuteAllDialogDecs, _handlerRoomControlActionDecs, _moveToMainRoomByUserIdsDecs, _kickOutWaitingRoomAllMemberDecs, _moveToMainRoomAllMemberDecs, _removeWaitingRoomUserDecs, _handleUserCountUpdatedDecs, _handleConfirmChangeNameDecs, _handleCancelChangeNameDecs, _closeChangeNameDialogDecs, _getOutputLanguageDecs, _handlerUserActionDecs, _handleActiveTabDecs, _moveToWaitingRoomByUserIdDecs, _kickOutUserDecs, _onPeerSessionReceivedDecs, _ref;
26
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
27
+ 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; }
28
+ 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) { _defineProperty(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; }
29
+ import "core-js/modules/es.array.concat.js";
30
+ import "core-js/modules/es.array.filter.js";
31
+ import "core-js/modules/es.array.find.js";
32
+ import "core-js/modules/es.array.for-each.js";
33
+ import "core-js/modules/es.array.includes.js";
34
+ import "core-js/modules/es.array.iterator.js";
35
+ import "core-js/modules/es.array.map.js";
36
+ import "core-js/modules/es.array.push.js";
37
+ import "core-js/modules/es.array.some.js";
38
+ import "core-js/modules/es.date.now.js";
39
+ import "core-js/modules/es.date.to-json.js";
40
+ import "core-js/modules/es.function.bind.js";
41
+ import "core-js/modules/es.json.stringify.js";
42
+ import "core-js/modules/es.map.js";
43
+ import "core-js/modules/es.object.to-string.js";
44
+ import "core-js/modules/es.set.js";
45
+ import "core-js/modules/es.string.includes.js";
46
+ import "core-js/modules/es.string.iterator.js";
47
+ import "core-js/modules/es.weak-map.js";
48
+ import "core-js/modules/esnext.iterator.constructor.js";
49
+ import "core-js/modules/esnext.iterator.filter.js";
50
+ import "core-js/modules/esnext.iterator.find.js";
51
+ import "core-js/modules/esnext.iterator.for-each.js";
52
+ import "core-js/modules/esnext.iterator.map.js";
53
+ import "core-js/modules/esnext.iterator.some.js";
54
+ import "core-js/modules/esnext.map.delete-all.js";
55
+ import "core-js/modules/esnext.map.emplace.js";
56
+ import "core-js/modules/esnext.map.every.js";
57
+ import "core-js/modules/esnext.map.filter.js";
58
+ import "core-js/modules/esnext.map.find.js";
59
+ import "core-js/modules/esnext.map.find-key.js";
60
+ import "core-js/modules/esnext.map.includes.js";
61
+ import "core-js/modules/esnext.map.key-of.js";
62
+ import "core-js/modules/esnext.map.map-keys.js";
63
+ import "core-js/modules/esnext.map.map-values.js";
64
+ import "core-js/modules/esnext.map.merge.js";
65
+ import "core-js/modules/esnext.map.reduce.js";
66
+ import "core-js/modules/esnext.map.some.js";
67
+ import "core-js/modules/esnext.map.update.js";
68
+ import "core-js/modules/esnext.set.add-all.js";
69
+ import "core-js/modules/esnext.set.delete-all.js";
70
+ import "core-js/modules/esnext.set.difference.v2.js";
71
+ import "core-js/modules/esnext.set.difference.js";
72
+ import "core-js/modules/esnext.set.every.js";
73
+ import "core-js/modules/esnext.set.filter.js";
74
+ import "core-js/modules/esnext.set.find.js";
75
+ import "core-js/modules/esnext.set.intersection.v2.js";
76
+ import "core-js/modules/esnext.set.intersection.js";
77
+ import "core-js/modules/esnext.set.is-disjoint-from.v2.js";
78
+ import "core-js/modules/esnext.set.is-disjoint-from.js";
79
+ import "core-js/modules/esnext.set.is-subset-of.v2.js";
80
+ import "core-js/modules/esnext.set.is-subset-of.js";
81
+ import "core-js/modules/esnext.set.is-superset-of.v2.js";
82
+ import "core-js/modules/esnext.set.is-superset-of.js";
83
+ import "core-js/modules/esnext.set.join.js";
84
+ import "core-js/modules/esnext.set.map.js";
85
+ import "core-js/modules/esnext.set.reduce.js";
86
+ import "core-js/modules/esnext.set.some.js";
87
+ import "core-js/modules/esnext.set.symmetric-difference.v2.js";
88
+ import "core-js/modules/esnext.set.symmetric-difference.js";
89
+ import "core-js/modules/esnext.set.union.v2.js";
90
+ import "core-js/modules/esnext.set.union.js";
91
+ import "core-js/modules/esnext.weak-map.delete-all.js";
92
+ import "core-js/modules/esnext.weak-map.emplace.js";
93
+ import "core-js/modules/web.dom-collections.for-each.js";
94
+ import "core-js/modules/web.dom-collections.iterator.js";
95
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
96
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
97
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
98
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
99
+ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
100
+ 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)]; } }; }
101
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
102
+ 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); }
103
+ 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; }
104
+ 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; }
105
+ import { FcrMediaSourceState, FcrRoomConnectorType, FcrVideoSourceType } from 'fcr-core';
106
+ import { FcrUserRole, FcrUserUpdatedReason, FcrStreamPrivilegeOperation } from 'fcr-core/lib/type';
107
+ import { FcrError } from 'fcr-core/lib/utilities/error';
108
+ import { ParticipantActionType } from 'agora-ui-foundation/lib/components/participants/attendee';
109
+ import { action, computed, observable, runInAction, reaction } from 'mobx';
110
+ import { ErrorCode, FcrUIAction, FcrUIDialogKey, FcrUIRoomControlType, SESSION_DURATION } from '../../utilities/constant';
111
+ import { bound } from 'agora-foundation/lib/decorator';
112
+ import { computedFn } from 'mobx-utils';
113
+ import { FcrUISessionKey } from './type';
114
+ import { transI18n } from 'agora-ui-foundation/lib/i18n';
115
+ import { FcrUserKickedOutType } from 'fcr-core/lib/room-control/user-control/type';
116
+ import { FcrSecurityAction } from 'fcr-core/lib/room-control/privilege-control/type';
117
+ import { FcrUIRoomType } from '../../type';
118
+ import { createLogger } from '../../utilities/logger';
119
+ import { FcrUIObjectKeys } from '../../object-manager';
120
+ import { createContext } from 'react';
121
+ import { OperateWaitingRoomMemberDialog } from './components/operate-waitingroom-member';
122
+ import { FcrConfirmInput } from './components/confirm-input';
123
+ import { USER_FORMAT_CONFIG, KICK_OUT_DIALOG_CONFIG } from './struct';
124
+ import { userRoleI18nKey } from '../../hooks/i18n';
125
+ import { jsx as _jsx } from "react/jsx-runtime";
126
+ var _A = /*#__PURE__*/new WeakMap();
127
+ var _B = /*#__PURE__*/new WeakMap();
128
+ var _C = /*#__PURE__*/new WeakMap();
129
+ var _D = /*#__PURE__*/new WeakMap();
130
+ var _E = /*#__PURE__*/new WeakMap();
131
+ var _F = /*#__PURE__*/new WeakMap();
132
+ var _G = /*#__PURE__*/new WeakMap();
133
+ var _H = /*#__PURE__*/new WeakMap();
134
+ var _I = /*#__PURE__*/new WeakMap();
135
+ var _J = /*#__PURE__*/new WeakMap();
136
+ var _K = /*#__PURE__*/new WeakMap();
137
+ var _L = /*#__PURE__*/new WeakMap();
138
+ var _M = /*#__PURE__*/new WeakMap();
139
+ var _N = /*#__PURE__*/new WeakMap();
140
+ _ref = (_setCurrentModalDecs = [action, action.bound], _setParticipantsWindowActiveDecs = [action, action.bound], _handlerSearchUserDecs = [action, action.bound], _openRemoveAdmitWaitingRoomDialogDecs = [action, action.bound], _setAllowUnmuteDecs = [action, action.bound], _setAllowJoinWithMuteAudioDecs = [action, action.bound], _openMuteAllDialogDecs = [action, action.bound], _handlerRoomControlActionDecs = [action, action.bound], _moveToMainRoomByUserIdsDecs = [action, action.bound], _kickOutWaitingRoomAllMemberDecs = [action, action.bound], _moveToMainRoomAllMemberDecs = [action, action.bound], _removeWaitingRoomUserDecs = [action, action.bound], _handleUserCountUpdatedDecs = [action, action.bound], _handleConfirmChangeNameDecs = [action, action.bound], _handleCancelChangeNameDecs = [action, action.bound], _closeChangeNameDialogDecs = [action, action.bound], _getOutputLanguageDecs = [action, action.bound], _handlerUserActionDecs = [action, action.bound], _handleActiveTabDecs = [action, action.bound], _moveToWaitingRoomByUserIdDecs = [action, action.bound], _kickOutUserDecs = [action, action.bound], _onPeerSessionReceivedDecs = [action, action.bound], "logger");
141
+ export var ParticipantStoreBase = /*#__PURE__*/function () {
142
+ // #endregion
143
+
144
+ function ParticipantStoreBase(_ref2) {
145
+ var _this = this;
146
+ var objectManager = _ref2.objectManager;
147
+ _classCallCheck(this, ParticipantStoreBase);
148
+ _defineProperty(this, _ref, (_initProto(this), createLogger({
149
+ prefix: 'ParticipantStore'
150
+ })));
151
+ _defineProperty(this, "_disposers", []);
152
+ _defineProperty(this, "_unmuteAudioTimestamp", new Map());
153
+ _defineProperty(this, "_unmuteVideoTimestamp", new Map());
154
+ _defineProperty(this, "_processedUserOpenDeviceRequests", new Set());
155
+ _defineProperty(this, "_peerSessionObserver", {
156
+ onPeerSessionReceived: this._onPeerSessionReceived,
157
+ onPeerSessionAccepted: this._onPeerSessionAccepted,
158
+ onPeerSessionRejected: this._onPeerSessionRejected
159
+ });
160
+ _defineProperty(this, "_roomStoreObserver", {
161
+ onJoinWaitingRoom: function onJoinWaitingRoom(roomControl) {
162
+ var room = roomControl;
163
+ _this._waitingRoomControl = room;
164
+ var waitingRoomUserControl = room.getUserControl();
165
+ _this._waitingRoomUserControl = waitingRoomUserControl;
166
+ },
167
+ onWaitingRoomManageCanceled: function onWaitingRoomManageCanceled() {
168
+ _this._waitingRoomControl = undefined;
169
+ _this._waitingRoomUserControl = undefined;
170
+ _this.handleActiveTab(FcrUIRoomType.MAIN_ROOM);
171
+ }
172
+ });
173
+ _defineProperty(this, "_privilegeControlObserver", {
174
+ onSecurityInfoUpdated: function onSecurityInfoUpdated(roomId, event) {
175
+ var _event$securityInfo$i;
176
+ if (((_event$securityInfo$i = event.securityInfo.info) === null || _event$securityInfo$i === void 0 ? void 0 : _event$securityInfo$i.action) === FcrSecurityAction.ChangeName) {
177
+ if (!event.securityInfo.enable) {
178
+ _this._closeChangeNameDialog();
179
+ }
180
+ }
181
+ }
182
+ });
183
+ _defineProperty(this, "_userObserver", {
184
+ onRemoteUsersJoined: this._handleRemoteUsersJoined.bind(this),
185
+ onUserPropertiesUpdated: this._handleUserPropertiesUpdated.bind(this),
186
+ onUserInfoUpdated: this._handleUserInfoUpdated.bind(this),
187
+ onAllUserCountUpdated: this._handleUserCountUpdated.bind(this)
188
+ });
189
+ _defineProperty(this, "_whitebaordObderver", {
190
+ onActive: function onActive(ownerId, operatorUser) {
191
+ _this._sharedMemberDataSource.updateMemberListWithBoardState();
192
+ },
193
+ onInactive: function onInactive(reason, operatorUser) {
194
+ _this._sharedMemberDataSource.updateMemberListWithBoardState();
195
+ }
196
+ });
197
+ _defineProperty(this, "_renamingUserId", '');
198
+ _defineProperty(this, "_renamingUserName", '');
199
+ _classPrivateFieldInitSpec(this, _A, _init__isChecked(this, {}));
200
+ _classPrivateFieldInitSpec(this, _B, _init__participantsWindowActive(this, false));
201
+ _classPrivateFieldInitSpec(this, _C, _init_enableParticipantsJoinWithMute(this, false));
202
+ _classPrivateFieldInitSpec(this, _D, _init_searchText(this, ''));
203
+ _classPrivateFieldInitSpec(this, _E, _init_currentModal(this, 'modal'));
204
+ _classPrivateFieldInitSpec(this, _F, _init_mergeConfirmDialog(this, false));
205
+ _classPrivateFieldInitSpec(this, _G, _init_mergeUserId(this, ''));
206
+ _classPrivateFieldInitSpec(this, _H, _init_activeTab(this, FcrUIRoomType.MAIN_ROOM));
207
+ _classPrivateFieldInitSpec(this, _I, _init_interpreterInputLanguageList(this, []));
208
+ _classPrivateFieldInitSpec(this, _J, _init_newName(this, ''));
209
+ _classPrivateFieldInitSpec(this, _K, _init_allowUnmute(this, false));
210
+ _classPrivateFieldInitSpec(this, _L, _init_joinWithMuteAudio(this, false));
211
+ _classPrivateFieldInitSpec(this, _M, _init_showBecomeHostButton(this, false));
212
+ _classPrivateFieldInitSpec(this, _N, _init__userCount(this, 0));
213
+ _defineProperty(this, "allowedOperations", computedFn(function (userId, userRole) {
214
+ return _this.getAllowedOperations(userRole, userId === _this.localUser.userId);
215
+ }));
216
+ _defineProperty(this, "checkIsPin", computedFn(function (userId) {
217
+ var _this$userMap$get;
218
+ return !!((_this$userMap$get = _this.userMap.get(userId)) !== null && _this$userMap$get !== void 0 && _this$userMap$get.streams.some(function (stream) {
219
+ return _this.pinedStreamIds.includes(stream.streamId);
220
+ }));
221
+ }));
222
+ _defineProperty(this, "getAllowedOperations", computedFn(function (targetRole, isSelf) {
223
+ return _this._privilegeProvider.getAllowedOperations(targetRole, isSelf);
224
+ }));
225
+ /**
226
+ * 格式化用户数据为UI显示格式
227
+ * @param user 原始用户数据
228
+ * @returns 格式化后的用户数据
229
+ */
230
+ _defineProperty(this, "_formatUser", function (user) {
231
+ try {
232
+ // 参数验证
233
+ if (!user || !user.userId || !user.userInfo) {
234
+ _this.logger.warn('Invalid user data provided to _formatUser:', user);
235
+ return _this._getDefaultUserData();
236
+ }
237
+ var _user$streams = user.streams,
238
+ userStreams = _user$streams === void 0 ? [] : _user$streams;
239
+ var isSelf = user.userId === _this.localUser.userId;
240
+
241
+ // 获取基础信息
242
+ var baseInfo = _this._getUserBaseInfo(user, isSelf);
243
+
244
+ // 根据连接器类型处理设备信息
245
+ var deviceInfo = _this._getUserDeviceInfo(user, userStreams, isSelf);
246
+
247
+ // 获取流状态信息
248
+ var streamInfo = _this._getUserStreamInfo(user, userStreams);
249
+
250
+ // 组合所有信息
251
+ return _objectSpread(_objectSpread(_objectSpread({}, baseInfo), deviceInfo), streamInfo);
252
+ } catch (error) {
253
+ _this.logger.error('Error formatting user data:', error, 'user:', user);
254
+ return _this._getDefaultUserData();
255
+ }
256
+ });
257
+ // Get all required objects from objectManager
258
+ this._roomStore = objectManager.getObject(FcrUIObjectKeys.P_ROOM_PROVIDER);
259
+ this._roomControl = this._roomStore.currentRoomControl;
260
+ this._streamControl = this._roomControl.getStreamControl();
261
+ this._userControl = this._roomControl.getUserControl();
262
+ this._chatProvider = objectManager.getObject(FcrUIObjectKeys.P_CHAT_PROVIDER);
263
+ this._privilegeProvider = objectManager.getObject(FcrUIObjectKeys.P_PRIVILEGE_PROVIDER);
264
+ this._deviceStore = objectManager.getObject(FcrUIObjectKeys.P_DEVICE_PROVIDER);
265
+ this._deviceStreamStore = objectManager.getObject(FcrUIObjectKeys.P_DEVICE_STREAM_PROVIDER);
266
+ this._dialogProvider = objectManager.getObject(FcrUIObjectKeys.P_DIALOG_PROVIDER);
267
+ this._messageProvider = objectManager.getObject(FcrUIObjectKeys.P_MESSAGE_PROVIDER);
268
+ this._abilityProvider = objectManager.getObject(FcrUIObjectKeys.P_ABILITY_PROVIDER);
269
+ this._eventProvider = objectManager.getObject(FcrUIObjectKeys.P_EVENT_PROVIDER);
270
+ this._screenShareProvider = objectManager.getObject(FcrUIObjectKeys.P_SCREEN_SHARE_PROVIDER);
271
+ this._userCount = this._userControl.getAllUserCount();
272
+
273
+ // Get shared data sources
274
+ this._sharedPinDataSource = objectManager.getObject(FcrUIObjectKeys.S_SHARED_PIN_DATA_SOURCE);
275
+ this._sharedLayoutDataSource = objectManager.getObject(FcrUIObjectKeys.S_SHARED_LAYOUT_DATA_SOURCE);
276
+ this._sharedVideoWindowDataSource = objectManager.getObject(FcrUIObjectKeys.S_SHARED_VIDEO_WINDOW_DATA_SOURCE);
277
+ this._sharedWaitingRoomDataSource = objectManager.getObject(FcrUIObjectKeys.S_SHARED_WAITING_ROOM_DATA_SOURCE);
278
+ this._sharedInterpreterDataSource = objectManager.getObject(FcrUIObjectKeys.S_SHARED_INTERPRETER_DATA_SOURCE);
279
+ this._sharedMemberDataSource = objectManager.getObject(FcrUIObjectKeys.S_SHARED_MEMBER_DATA_SOURCE);
280
+ this._sharedChatDataSource = objectManager.getObject(FcrUIObjectKeys.S_SHARED_CHAT_DATA_SOURCE);
281
+ this._sharedSettingDataSource = objectManager.getObject(FcrUIObjectKeys.S_SHARED_SETTING_DATA_SOURCE);
282
+ this._sharedSecurityDataSource = objectManager.getObject(FcrUIObjectKeys.S_SHARED_SECURITY_DATA_SOURCE);
283
+
284
+ // Try to get session provider if available
285
+ try {
286
+ this._peerSessionControl = objectManager.getObject(FcrUIObjectKeys.P_SESSION_PROVIDER);
287
+ } catch (e) {
288
+ // Session provider may not be available in all contexts
289
+ this._peerSessionControl = undefined;
290
+ }
291
+ this._userControl.addObserver(this._userObserver);
292
+ this._peerSessionControl.addObserver(this._peerSessionObserver);
293
+ this._roomControl.getSharingControl().getBoardControl().addObserver(this._whitebaordObderver);
294
+ this._roomControl.getPrivilegeControl().addObserver(this._privilegeControlObserver);
295
+ this._roomStore.addObserver(this._roomStoreObserver);
296
+ this._eventProvider.addObserver({
297
+ onEvent: this._handleEvent
298
+ });
299
+
300
+ // TODO: 使用 privilegeProvider 中的值代替
301
+ this.allowUnmute = this._privilegeProvider.isUnmuteSelfAudioAllowed();
302
+ this.joinWithMuteAudio = this._privilegeProvider.isJoinWithMutedAudioEnabled();
303
+ this._getOutputLanguage();
304
+ this.showBecomeHostButton = !this._sharedMemberDataSource.memberList.some(function (user) {
305
+ return user.userInfo.userRole === FcrUserRole.HOST;
306
+ });
307
+
308
+ // 设置等候室用户数量监听
309
+ this._setupWaitingRoomUserCountListener();
310
+ }
311
+ return _createClass(ParticipantStoreBase, [{
312
+ key: "_isChecked",
313
+ get: function get() {
314
+ return _classPrivateFieldGet(_A, this);
315
+ },
316
+ set: function set(v) {
317
+ _classPrivateFieldSet(_A, this, v);
318
+ }
319
+ }, {
320
+ key: "_participantsWindowActive",
321
+ get: function get() {
322
+ return _classPrivateFieldGet(_B, this);
323
+ },
324
+ set: function set(v) {
325
+ _classPrivateFieldSet(_B, this, v);
326
+ }
327
+ }, {
328
+ key: "enableParticipantsJoinWithMute",
329
+ get: function get() {
330
+ return _classPrivateFieldGet(_C, this);
331
+ },
332
+ set: function set(v) {
333
+ _classPrivateFieldSet(_C, this, v);
334
+ }
335
+ }, {
336
+ key: "searchText",
337
+ get: function get() {
338
+ return _classPrivateFieldGet(_D, this);
339
+ },
340
+ set: function set(v) {
341
+ _classPrivateFieldSet(_D, this, v);
342
+ }
343
+ }, {
344
+ key: "currentModal",
345
+ get: function get() {
346
+ return _classPrivateFieldGet(_E, this);
347
+ },
348
+ set: function set(v) {
349
+ _classPrivateFieldSet(_E, this, v);
350
+ }
351
+ }, {
352
+ key: "mergeConfirmDialog",
353
+ get: function get() {
354
+ return _classPrivateFieldGet(_F, this);
355
+ },
356
+ set: function set(v) {
357
+ _classPrivateFieldSet(_F, this, v);
358
+ }
359
+ }, {
360
+ key: "mergeUserId",
361
+ get: function get() {
362
+ return _classPrivateFieldGet(_G, this);
363
+ },
364
+ set: function set(v) {
365
+ _classPrivateFieldSet(_G, this, v);
366
+ }
367
+ }, {
368
+ key: "activeTab",
369
+ get: function get() {
370
+ return _classPrivateFieldGet(_H, this);
371
+ },
372
+ set: function set(v) {
373
+ _classPrivateFieldSet(_H, this, v);
374
+ }
375
+ }, {
376
+ key: "interpreterInputLanguageList",
377
+ get: function get() {
378
+ return _classPrivateFieldGet(_I, this);
379
+ },
380
+ set: function set(v) {
381
+ _classPrivateFieldSet(_I, this, v);
382
+ }
383
+ }, {
384
+ key: "newName",
385
+ get: function get() {
386
+ return _classPrivateFieldGet(_J, this);
387
+ },
388
+ set: function set(v) {
389
+ _classPrivateFieldSet(_J, this, v);
390
+ }
391
+ }, {
392
+ key: "allowUnmute",
393
+ get: function get() {
394
+ return _classPrivateFieldGet(_K, this);
395
+ },
396
+ set: function set(v) {
397
+ _classPrivateFieldSet(_K, this, v);
398
+ }
399
+ }, {
400
+ key: "joinWithMuteAudio",
401
+ get: function get() {
402
+ return _classPrivateFieldGet(_L, this);
403
+ },
404
+ set: function set(v) {
405
+ _classPrivateFieldSet(_L, this, v);
406
+ }
407
+ }, {
408
+ key: "showBecomeHostButton",
409
+ get: function get() {
410
+ return _classPrivateFieldGet(_M, this);
411
+ },
412
+ set: function set(v) {
413
+ _classPrivateFieldSet(_M, this, v);
414
+ }
415
+ }, {
416
+ key: "_userCount",
417
+ get: // #region getters
418
+ function get() {
419
+ return _classPrivateFieldGet(_N, this);
420
+ },
421
+ set: function set(v) {
422
+ _classPrivateFieldSet(_N, this, v);
423
+ }
424
+ }, {
425
+ key: "renamingUserName",
426
+ get: function get() {
427
+ return this._renamingUserName;
428
+ }
429
+ }, {
430
+ key: "audioVolumeMap",
431
+ get: function get() {
432
+ return this._sharedMemberDataSource.audioVolumeMap;
433
+ }
434
+ }, {
435
+ key: "localUser",
436
+ get: function get() {
437
+ return this._sharedMemberDataSource.localUser;
438
+ }
439
+ }, {
440
+ key: "localUserRole",
441
+ get: function get() {
442
+ return this._sharedMemberDataSource.localUserRole;
443
+ }
444
+ }, {
445
+ key: "isLocalUserHost",
446
+ get: function get() {
447
+ return this._sharedMemberDataSource.isLocalUserHost;
448
+ }
449
+ }, {
450
+ key: "enableSpotlight",
451
+ get: function get() {
452
+ return this._sharedSettingDataSource.setting.spotlightEnabled;
453
+ }
454
+ }, {
455
+ key: "userListSource",
456
+ get: function get() {
457
+ if (this.activeTab === FcrUIRoomType.MAIN_ROOM) {
458
+ return this._sharedMemberDataSource.memberList;
459
+ } else {
460
+ return this._sharedWaitingRoomDataSource.waitingRoomDataSource.list;
461
+ }
462
+ }
463
+ }, {
464
+ key: "spotlightStreamId",
465
+ get: function get() {
466
+ return this._sharedVideoWindowDataSource.spotlightStreamId;
467
+ }
468
+ }, {
469
+ key: "mergeUserInfo",
470
+ get: function get() {
471
+ var _this$userListSource$,
472
+ _this2 = this;
473
+ return (_this$userListSource$ = this.userListSource.find(function (user) {
474
+ return user.userId === _this2.mergeUserId;
475
+ })) === null || _this$userListSource$ === void 0 ? void 0 : _this$userListSource$.userInfo;
476
+ }
477
+ }, {
478
+ key: "userMap",
479
+ get: function get() {
480
+ var res = new Map();
481
+ this.userListSource.forEach(function (u) {
482
+ res.set(u.userId, u);
483
+ });
484
+ return res;
485
+ }
486
+ }, {
487
+ key: "userCount",
488
+ get: function get() {
489
+ return this._userCount;
490
+ }
491
+ }, {
492
+ key: "allowUnmuteSelfAudio",
493
+ get: function get() {
494
+ return this.checkedStateMap.unmuteYourself;
495
+ }
496
+ }, {
497
+ key: "allowJoinWithMuteAudio",
498
+ get: function get() {
499
+ return this.checkedStateMap.enableJoinWithAudio;
500
+ }
501
+ }, {
502
+ key: "allowUnmuteSelfVideo",
503
+ get: function get() {
504
+ return this.checkedStateMap.startVideo;
505
+ }
506
+ }, {
507
+ key: "isLockRoomEnabled",
508
+ get: function get() {
509
+ return this.checkedStateMap.lockRoom;
510
+ }
511
+ }, {
512
+ key: "isWaitingRoomEnabled",
513
+ get: function get() {
514
+ return this._privilegeProvider.isWaitingRoomEnabled();
515
+ }
516
+ }, {
517
+ key: "allowChangeSelfName",
518
+ get: function get() {
519
+ return this.checkedStateMap.rename;
520
+ }
521
+ }, {
522
+ key: "pinedStreamIds",
523
+ get: function get() {
524
+ var mainList = this._sharedVideoWindowDataSource.mainList;
525
+ return mainList.filter(function (i) {
526
+ return i.isPin;
527
+ }).map(function (i) {
528
+ return i.windowId;
529
+ });
530
+ }
531
+ }, {
532
+ key: "hasPinnedStream",
533
+ get: function get() {
534
+ var mainList = this._sharedVideoWindowDataSource.mainList;
535
+ return mainList.some(function (i) {
536
+ return i.isPin;
537
+ });
538
+ }
539
+ }, {
540
+ key: "userList",
541
+ get: function get() {
542
+ var _this3 = this;
543
+ var list = this.userListSource;
544
+ if (this.searchText.length) {
545
+ list = list.filter(function (user) {
546
+ return user.userInfo.userName.toLocaleLowerCase().includes(_this3.searchText.toLocaleLowerCase());
547
+ });
548
+ }
549
+ var uiDataList = list.map(function (user) {
550
+ return _this3._formatUser(user);
551
+ });
552
+ return uiDataList;
553
+ }
554
+ }, {
555
+ key: "isLocalScreenSharing",
556
+ get: function get() {
557
+ return this._screenShareProvider.isLocalUserScreenSharing;
558
+ }
559
+ }, {
560
+ key: "localMicVolume",
561
+ get: function get() {
562
+ return this._deviceStore.microphoneVolumeLevel;
563
+ }
564
+ }, {
565
+ key: "hasRevokeHostPermission",
566
+ get: function get() {
567
+ return this._privilegeProvider.hasRevokeHostPermission() && this.localUserRole !== FcrUserRole.HOST;
568
+ }
569
+ }, {
570
+ key: "interpreterUserList",
571
+ get: function get() {
572
+ return this._sharedInterpreterDataSource.interpreterUserList;
573
+ }
574
+ }, {
575
+ key: "isInterpreterEnabled",
576
+ get: function get() {
577
+ return this._sharedInterpreterDataSource.isInterpreterEnabled;
578
+ }
579
+ }, {
580
+ key: "waitingRoomUserCount",
581
+ get: function get() {
582
+ return this._sharedWaitingRoomDataSource.totalWaitingRoomUser;
583
+ }
584
+ }, {
585
+ key: "isNewWaitingRoomUserEnter",
586
+ get: function get() {
587
+ return this._sharedWaitingRoomDataSource.unReadState;
588
+ }
589
+ }, {
590
+ key: "isHostKeyEnabled",
591
+ get: function get() {
592
+ return this._roomControl.isHostKeyEnabled();
593
+ }
594
+ }, {
595
+ key: "hasInvite",
596
+ get: function get() {
597
+ return this._abilityProvider.isRoomDetailSupported();
598
+ }
599
+ }, {
600
+ key: "checkedStateMap",
601
+ get: function get() {
602
+ return this._sharedSecurityDataSource.checkedStateMap;
603
+ }
604
+ }, {
605
+ key: "release",
606
+ value: function release() {
607
+ this._userControl.removeObserver(this._userObserver);
608
+ this._peerSessionControl.removeObserver(this._peerSessionObserver);
609
+ this._roomControl.getSharingControl().getBoardControl().removeObserver(this._whitebaordObderver);
610
+ this._roomControl.getPrivilegeControl().removeObserver(this._privilegeControlObserver);
611
+ this._roomStore.removeObserver(this._roomStoreObserver);
612
+ this._eventProvider.removeObserver({
613
+ onEvent: this._handleEvent
614
+ });
615
+ this._disposers.forEach(function (disposer) {
616
+ return disposer();
617
+ });
618
+ }
619
+ }, {
620
+ key: "hasMutePermission",
621
+ value: function hasMutePermission(targetRole) {
622
+ return this._privilegeProvider.hasMutePermission(targetRole);
623
+ }
624
+ }, {
625
+ key: "hasWaitingRoomPermission",
626
+ value: function hasWaitingRoomPermission() {
627
+ return this._privilegeProvider.isWaitingRoomEnabled() && this._privilegeProvider.hasEnableWaitingRoomPermission();
628
+ }
629
+ }, {
630
+ key: "hasUnmutePermission",
631
+ value: function hasUnmutePermission(targetRole) {
632
+ return this._privilegeProvider.hasUnmutePermission(targetRole);
633
+ }
634
+ }, {
635
+ key: "hasRequestStartAudioPermission",
636
+ value: function hasRequestStartAudioPermission(targetRole) {
637
+ return this._privilegeProvider.hasRequestStartAudioPermission(targetRole);
638
+ }
639
+ }, {
640
+ key: "setCurrentModal",
641
+ value: function setCurrentModal(modal) {
642
+ this.currentModal = modal;
643
+ }
644
+ }, {
645
+ key: "closeParticipantsAside",
646
+ value: function closeParticipantsAside() {
647
+ this.setLayoutAsideLayout({
648
+ participant: false
649
+ });
650
+ }
651
+ }, {
652
+ key: "setParticipantsRenderAt",
653
+ value: function setParticipantsRenderAt(renderPosition) {
654
+ this._sharedLayoutDataSource.setParticipantsRenderAt(renderPosition);
655
+ }
656
+ }, {
657
+ key: "setLayoutAsideLayout",
658
+ value: function setLayoutAsideLayout(params) {
659
+ this._sharedLayoutDataSource.setAsideLayout(params);
660
+ }
661
+ }, {
662
+ key: "getLayoutChatRenderAt",
663
+ get: function get() {
664
+ return this._sharedLayoutDataSource.chatRenderAt;
665
+ }
666
+
667
+ // TODO: 这里超级奇怪,传入的变量名是activeTab,但是实际上是roomType
668
+ // 看上去像是有个bug
669
+ }, {
670
+ key: "setChatActiveTab",
671
+ value: function setChatActiveTab(activeTab) {
672
+ this._sharedChatDataSource.activeTab = activeTab;
673
+ }
674
+ }, {
675
+ key: "closeParticipantsWindow",
676
+ value: function closeParticipantsWindow() {
677
+ this.closeDialog(FcrUIDialogKey.PARTICIPANT);
678
+ }
679
+ }, {
680
+ key: "openDialog",
681
+ value: function openDialog(key) {
682
+ this._openDialog(key);
683
+ }
684
+ }, {
685
+ key: "closeDialog",
686
+ value: function closeDialog(key) {
687
+ this._dialogProvider.closeDialog(key);
688
+ }
689
+ }, {
690
+ key: "openConfirmDialog",
691
+ value: function openConfirmDialog(params, key) {
692
+ var _this4 = this;
693
+ var dialogId = this._dialogProvider.openConfirmDialog(_objectSpread(_objectSpread({}, params), {}, {
694
+ key: key,
695
+ onCancel: function onCancel() {
696
+ _this4.closeConfirmDialog(dialogId);
697
+ params.onCancel && params.onCancel();
698
+ },
699
+ onOk: function onOk() {
700
+ _this4.closeConfirmDialog(dialogId);
701
+ params.onOk && params.onOk();
702
+ }
703
+ }));
704
+ this.logger.info("open Confirm Dialog: ".concat(JSON.stringify(params), ",dialogId: ").concat(dialogId));
705
+ return dialogId;
706
+ }
707
+ }, {
708
+ key: "closeConfirmDialog",
709
+ value: function closeConfirmDialog(id) {
710
+ this._dialogProvider.closeConfirmDialog(id);
711
+ }
712
+ }, {
713
+ key: "setParticipantsWindowActive",
714
+ value: function setParticipantsWindowActive(active) {
715
+ var _this5 = this;
716
+ runInAction(function () {
717
+ _this5._participantsWindowActive = active;
718
+ if (!active) {
719
+ _this5.setCurrentModal('modal');
720
+ }
721
+ });
722
+ }
723
+ }, {
724
+ key: "handlerSearchUser",
725
+ value: function handlerSearchUser(searchText) {
726
+ this.searchText = searchText;
727
+ }
728
+ }, {
729
+ key: "onInvite",
730
+ value: function onInvite() {
731
+ this._openDialog(FcrUIDialogKey.INVITE);
732
+ }
733
+ }, {
734
+ key: "setMergeConfirmDialog",
735
+ value: function setMergeConfirmDialog(visible) {
736
+ this.mergeConfirmDialog = visible;
737
+ }
738
+ }, {
739
+ key: "mergeConfirmDialogOk",
740
+ value: function mergeConfirmDialogOk(userId) {
741
+ var _this$userMap$get2;
742
+ this._streamControl.mergeAudioStream(userId);
743
+ this.setMergeConfirmDialog(false);
744
+ this._showToast(transI18n('fmt_PSTN_toast_merged', {
745
+ reason1: (_this$userMap$get2 = this.userMap.get(userId)) === null || _this$userMap$get2 === void 0 ? void 0 : _this$userMap$get2.userInfo.userName
746
+ }));
747
+ }
748
+ }, {
749
+ key: "openRemoveAdmitWaitingRoomDialog",
750
+ value: function openRemoveAdmitWaitingRoomDialog(params) {
751
+ var _this6 = this;
752
+ var buttonTextMap = {
753
+ removeAll: transI18n('fmt_waitingroom_sidebar_button_removeall'),
754
+ admitAll: transI18n('fmt_waitingroom_sidebar_button_admitall'),
755
+ remove: transI18n('fmt_waitingroom_sidebar_popup_button_remove')
756
+ };
757
+ this._isChecked[params.type] = false;
758
+ var dialogId = this.openConfirmDialog({
759
+ title: params.title,
760
+ alignCenter: true,
761
+ content: /*#__PURE__*/_jsx(OperateWaitingRoomMemberDialog, {
762
+ type: params.type,
763
+ userId: params.userId,
764
+ tooltip: params.tooltip,
765
+ title: params.title,
766
+ onChecked: function onChecked(isChecked) {
767
+ _this6._isChecked[params.type] = isChecked;
768
+ }
769
+ }),
770
+ onOk: function onOk() {
771
+ if (params.type === 'remove') {
772
+ _this6.removeWaitingRoomUser(params.userId, _this6._isChecked[params.type] ? FcrUserKickedOutType.Forever : FcrUserKickedOutType.Once);
773
+ }
774
+ if (params.type === 'removeAll') {
775
+ _this6.kickOutWaitingRoomAllMember(_this6._isChecked[params.type] ? FcrUserKickedOutType.Forever : FcrUserKickedOutType.Once);
776
+ }
777
+ if (params.type === 'admitAll') {
778
+ _this6.moveToMainRoomAllMember();
779
+ }
780
+ _this6.closeConfirmDialog(dialogId);
781
+ },
782
+ okText: buttonTextMap[params.type],
783
+ okButtonProps: {
784
+ styleType: params.type === 'remove' || params.type === 'removeAll' ? 'danger' : undefined
785
+ }
786
+ });
787
+ }
788
+ }, {
789
+ key: "setAllowUnmute",
790
+ value: function setAllowUnmute(checked) {
791
+ this.allowUnmute = checked;
792
+ }
793
+ }, {
794
+ key: "setAllowJoinWithMuteAudio",
795
+ value: function setAllowJoinWithMuteAudio(checked) {
796
+ this.joinWithMuteAudio = checked;
797
+ }
798
+ }, {
799
+ key: "openMuteAllDialog",
800
+ value: function openMuteAllDialog() {
801
+ this.allowUnmute = this.allowUnmuteSelfAudio;
802
+ this.joinWithMuteAudio = this.allowJoinWithMuteAudio;
803
+ this._dialogProvider.openDialog(FcrUIDialogKey.MUTE_ALL);
804
+ }
805
+ }, {
806
+ key: "handlerRoomControlAction",
807
+ value: function handlerRoomControlAction(action, data) {
808
+ console.log('handlerRoomControlAction', action, data);
809
+ switch (action) {
810
+ case FcrUIRoomControlType.MUTE_ALL_AUDIO:
811
+ this._muteAllAudio(data.allowUnmute, data.joinWithMuteAudio);
812
+ break;
813
+ case FcrUIRoomControlType.UNMUTE_ALL_AUDIO:
814
+ this._unmuteAllAudio();
815
+ break;
816
+ case FcrUIRoomControlType.ALLOW_ATTENDEE_TO_UNMUTE:
817
+ this._enableSelfUnmute(data);
818
+ break;
819
+ case FcrUIRoomControlType.ALLOW_ATTENDEE_TO_OPEN_CAMERA:
820
+ this._enableOpenVideo(data);
821
+ break;
822
+ case FcrUIRoomControlType.REVOKE_HOST:
823
+ this._revokeHost();
824
+ break;
825
+ case FcrUIRoomControlType.LOCK_ROOM:
826
+ this._lockRoom(data);
827
+ break;
828
+ case FcrUIRoomControlType.RENAME:
829
+ this._enableRename(data);
830
+ break;
831
+ case FcrUIRoomControlType.JOIN_WITH_MUTE_AUDIO:
832
+ this.enableJoinWithMuteAudio(data);
833
+ break;
834
+ case FcrUIRoomControlType.ACTION_REVOKE_HOST_BY_TICKET:
835
+ this._revokeHostByTicket();
836
+ break;
837
+ case FcrUIRoomControlType.ACTION_CHANGE_NAME:
838
+ this._openChangeNameDialog(this.localUser.userId);
839
+ break;
840
+ }
841
+ }
842
+ }, {
843
+ key: "moveParticipantFromDialogToAside",
844
+ value: function moveParticipantFromDialogToAside() {
845
+ this.closeParticipantsWindow();
846
+ this.setParticipantsRenderAt('aside');
847
+ this.setLayoutAsideLayout({
848
+ participant: true
849
+ });
850
+ }
851
+ }, {
852
+ key: "_revokeHostByTicket",
853
+ value: function _revokeHostByTicket() {
854
+ var _this7 = this;
855
+ var hostKey = '';
856
+ var errMessage = {
857
+ '732403104': transI18n('fmt_hostkey_meetingroom_toast_unable_to_claim_host'),
858
+ '732403105': transI18n('fmt_hostkey_input_hostkey_tips_incorrect_key')
859
+ };
860
+ var dialogId = this.openConfirmDialog({
861
+ title: transI18n('fmt_hostkey_input_hostkey_title_enter_key'),
862
+ content: /*#__PURE__*/_jsx(FcrConfirmInput, {
863
+ type: "number",
864
+ placeholder: transI18n('fmt_hostkey_input_hostkey_text_hint_enter_key'),
865
+ onChange: function onChange(value) {
866
+ hostKey = String(value);
867
+ }
868
+ }),
869
+ alignCenter: true,
870
+ closable: false,
871
+ onOk: function () {
872
+ var _onOk = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
873
+ return _regeneratorRuntime.wrap(function (_context) {
874
+ while (1) switch (_context.prev = _context.next) {
875
+ case 0:
876
+ return _context.abrupt("return", _this7._userControl.claimHost(hostKey).then(function (res) {
877
+ _this7._showToast(transI18n('fmt_hostkey_meetingroom_toast_now_host'));
878
+ })["catch"](function (err) {
879
+ if (err.code === '732403105') return {
880
+ message: errMessage === null || errMessage === void 0 ? void 0 : errMessage["".concat(err.code)]
881
+ };
882
+ _this7._showToast(err.code === 0 ? transI18n('fmt_hostkey_meetingroom_toast_now_host') : (errMessage === null || errMessage === void 0 ? void 0 : errMessage["".concat(err.code)]) || err.message, err.code === 0 ? 'normal' : 'error');
883
+ }));
884
+ case 1:
885
+ case "end":
886
+ return _context.stop();
887
+ }
888
+ }, _callee);
889
+ }));
890
+ function onOk() {
891
+ return _onOk.apply(this, arguments);
892
+ }
893
+ return onOk;
894
+ }(),
895
+ onCancel: function onCancel() {
896
+ _this7.closeConfirmDialog(dialogId);
897
+ }
898
+ });
899
+ }
900
+
901
+ // room control actions
902
+ }, {
903
+ key: "_muteAllAudio",
904
+ value: function _muteAllAudio(allowUnmute, JoinWithMuteAudio) {
905
+ var _this8 = this;
906
+ // 使用 runInAction 将所有状态更新包装在一个事务中,避免多次渲染
907
+ runInAction(function () {
908
+ _this8._privilegeProvider.allowJoinWithMutedAudio(JoinWithMuteAudio);
909
+ _this8._privilegeProvider.allowStartAudio(allowUnmute);
910
+ _this8._privilegeProvider.muteAll();
911
+ _this8._sharedSecurityDataSource.setCheckedStateMap(_objectSpread(_objectSpread({}, _this8.checkedStateMap), {
912
+ enableJoinWithAudio: JoinWithMuteAudio,
913
+ unmuteYourself: allowUnmute
914
+ }));
915
+ });
916
+ this._showToast(transI18n('fmt_uimanager_tips_allmuted'));
917
+ }
918
+ }, {
919
+ key: "_unmuteAllAudio",
920
+ value: function _unmuteAllAudio() {
921
+ var _this9 = this;
922
+ this._setPrivilegeAndUpdateUI(function () {
923
+ return _this9._privilegeProvider.allowStartAudio(true);
924
+ }, {
925
+ unmuteYourself: true
926
+ });
927
+ }
928
+
929
+ //允许自我解除静音
930
+ }, {
931
+ key: "_enableSelfUnmute",
932
+ value: function _enableSelfUnmute(enable) {
933
+ var _this0 = this;
934
+ this._setPrivilegeAndUpdateUI(function () {
935
+ return _this0._privilegeProvider.allowStartAudio(enable);
936
+ }, {
937
+ unmuteYourself: enable
938
+ });
939
+ }
940
+ }, {
941
+ key: "_enableOpenVideo",
942
+ value: function _enableOpenVideo(enable) {
943
+ var _this1 = this;
944
+ this._setPrivilegeAndUpdateUI(function () {
945
+ return _this1._privilegeProvider.allowStartVideo(enable);
946
+ }, {
947
+ startVideo: enable
948
+ });
949
+ }
950
+ }, {
951
+ key: "_revokeHost",
952
+ value: function _revokeHost() {
953
+ if (!this._privilegeProvider.hasRevokeHostPermission() || this.localUser.userRole === FcrUserRole.HOST) {
954
+ return;
955
+ }
956
+ this._userControl.revokeHost();
957
+ }
958
+ }, {
959
+ key: "_lockRoom",
960
+ value: function _lockRoom(enable) {
961
+ var _this10 = this;
962
+ this._showToast(enable ? transI18n('fmt_security_tips_lock_meeting_on') : transI18n('fmt_security_tips_lock_meeting_off'), 'info');
963
+ this._setPrivilegeAndUpdateUI(function () {
964
+ return _this10._privilegeProvider.enableLockedRoom(enable);
965
+ }, {
966
+ lockRoom: enable
967
+ });
968
+ }
969
+ }, {
970
+ key: "_enableRename",
971
+ value: function _enableRename(enable) {
972
+ var _this11 = this;
973
+ this._setPrivilegeAndUpdateUI(function () {
974
+ return _this11._privilegeProvider.allowChangeUserName(enable);
975
+ }, {
976
+ rename: enable
977
+ });
978
+ }
979
+
980
+ // 所有人加入会议时静音
981
+ }, {
982
+ key: "enableJoinWithMuteAudio",
983
+ value: function enableJoinWithMuteAudio(enable) {
984
+ var _this12 = this;
985
+ this._setPrivilegeAndUpdateUI(function () {
986
+ return _this12._privilegeProvider.allowJoinWithMutedAudio(enable);
987
+ }, {
988
+ enableJoinWithAudio: enable
989
+ });
990
+ }
991
+ }, {
992
+ key: "moveToMainRoomByUserIds",
993
+ value: function moveToMainRoomByUserIds(userId) {
994
+ if (this._waitingRoomControl) {
995
+ this._waitingRoomControl.moveToMainRoomByUserIds(userId);
996
+ }
997
+ }
998
+ }, {
999
+ key: "kickOutWaitingRoomAllMember",
1000
+ value: function () {
1001
+ var _kickOutWaitingRoomAllMember = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(type) {
1002
+ var _this$_waitingRoomUse;
1003
+ return _regeneratorRuntime.wrap(function (_context2) {
1004
+ while (1) switch (_context2.prev = _context2.next) {
1005
+ case 0:
1006
+ _context2.next = 1;
1007
+ return (_this$_waitingRoomUse = this._waitingRoomUserControl) === null || _this$_waitingRoomUse === void 0 ? void 0 : _this$_waitingRoomUse.kickOutByUserRoles([FcrUserRole.PARTICIPANT], type);
1008
+ case 1:
1009
+ this._showToast(transI18n('fmt_waitingroom_mobile_memberlist_tips_all_removed'));
1010
+ case 2:
1011
+ case "end":
1012
+ return _context2.stop();
1013
+ }
1014
+ }, _callee2, this);
1015
+ }));
1016
+ function kickOutWaitingRoomAllMember(_x) {
1017
+ return _kickOutWaitingRoomAllMember.apply(this, arguments);
1018
+ }
1019
+ return kickOutWaitingRoomAllMember;
1020
+ }()
1021
+ }, {
1022
+ key: "moveToMainRoomAllMember",
1023
+ value: function () {
1024
+ var _moveToMainRoomAllMember = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
1025
+ var _this$_waitingRoomCon;
1026
+ return _regeneratorRuntime.wrap(function (_context3) {
1027
+ while (1) switch (_context3.prev = _context3.next) {
1028
+ case 0:
1029
+ _context3.next = 1;
1030
+ return (_this$_waitingRoomCon = this._waitingRoomControl) === null || _this$_waitingRoomCon === void 0 ? void 0 : _this$_waitingRoomCon.moveToMainRoomByUserRoles([FcrUserRole.PARTICIPANT]);
1031
+ case 1:
1032
+ this._showToast(transI18n('fmt_waitingroom_mobile_memberlist_tips_all_amitted'));
1033
+ case 2:
1034
+ case "end":
1035
+ return _context3.stop();
1036
+ }
1037
+ }, _callee3, this);
1038
+ }));
1039
+ function moveToMainRoomAllMember() {
1040
+ return _moveToMainRoomAllMember.apply(this, arguments);
1041
+ }
1042
+ return moveToMainRoomAllMember;
1043
+ }()
1044
+ }, {
1045
+ key: "removeWaitingRoomUser",
1046
+ value: function removeWaitingRoomUser(userId, type) {
1047
+ var _this$_waitingRoomUse2;
1048
+ (_this$_waitingRoomUse2 = this._waitingRoomUserControl) === null || _this$_waitingRoomUse2 === void 0 || _this$_waitingRoomUse2.kickOutByUserIds([userId], type);
1049
+ }
1050
+ }, {
1051
+ key: "removePin",
1052
+ value: function removePin(userId) {
1053
+ var streamId = this._getPinStreamIdFromUser(userId);
1054
+ if (streamId) {
1055
+ this._sharedPinDataSource.removePin(streamId);
1056
+ }
1057
+ }
1058
+ }, {
1059
+ key: "isHostSupportedByPlatform",
1060
+ value: function isHostSupportedByPlatform(userId) {
1061
+ var _this$userMap$get3;
1062
+ var user = (_this$userMap$get3 = this.userMap.get(userId)) === null || _this$userMap$get3 === void 0 ? void 0 : _this$userMap$get3.userInfo;
1063
+ if (!user) return false;
1064
+ if (!user.platform) return false;
1065
+ return this._abilityProvider.isHostSupportedByPlatform(user.platform);
1066
+ }
1067
+ }, {
1068
+ key: "addPin",
1069
+ value: function addPin(userId) {
1070
+ var shouldHideMyVideo = this._sharedSettingDataSource.setting.shouldHideMyVideo;
1071
+ if (shouldHideMyVideo && userId === this.localUser.userId) {
1072
+ this._showToast(transI18n('fmt_internalsetting_other_hide_my_window_pin_cancelled'), 'error');
1073
+ return;
1074
+ }
1075
+ var streamId = this._getPinStreamIdFromUser(userId);
1076
+ if (streamId) {
1077
+ this._sharedPinDataSource.addPin(streamId);
1078
+ }
1079
+ }
1080
+ }, {
1081
+ key: "_getPinStreamIdFromUser",
1082
+ value: function _getPinStreamIdFromUser(userId) {
1083
+ var _streams$find;
1084
+ var user = this.userMap.get(userId);
1085
+ var isPSTN = (user === null || user === void 0 ? void 0 : user.userInfo.connectorType) === FcrRoomConnectorType.PSTN;
1086
+ var streams = user === null || user === void 0 ? void 0 : user.streams;
1087
+ var streamId = streams === null || streams === void 0 || (_streams$find = streams.find(function (stream) {
1088
+ return stream.videoSourceType === FcrVideoSourceType.CAMERA || isPSTN && stream.videoSourceType === FcrVideoSourceType.NONE;
1089
+ })) === null || _streams$find === void 0 ? void 0 : _streams$find.streamId;
1090
+ return streamId;
1091
+ }
1092
+ }, {
1093
+ key: "_getDefaultUserData",
1094
+ value:
1095
+ /**
1096
+ * 获取默认用户数据(用于错误处理)
1097
+ * @returns 默认用户数据
1098
+ */
1099
+ function _getDefaultUserData() {
1100
+ return {
1101
+ userId: '',
1102
+ userName: '',
1103
+ isHost: false,
1104
+ isMe: false,
1105
+ hasAudio: false,
1106
+ hasVideo: false,
1107
+ isScreenSharing: false,
1108
+ audioDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.AUDIO.NONE,
1109
+ videoDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.VIDEO.NONE,
1110
+ userType: USER_FORMAT_CONFIG.USER_TYPES.NORMAL,
1111
+ userRole: FcrUserRole.PARTICIPANT,
1112
+ isSpotlight: false,
1113
+ isBoardActive: false,
1114
+ allowedOperations: [],
1115
+ isPin: false,
1116
+ hideAudioConnectIcon: false,
1117
+ avatar: ''
1118
+ };
1119
+ }
1120
+
1121
+ /**
1122
+ * 获取用户基础信息
1123
+ * @param user 用户数据
1124
+ * @param isSelf 是否为当前用户
1125
+ * @returns 基础信息对象
1126
+ */
1127
+ }, {
1128
+ key: "_getUserBaseInfo",
1129
+ value: function _getUserBaseInfo(user, isSelf) {
1130
+ return {
1131
+ userId: user.userId,
1132
+ userName: user.userInfo.userName,
1133
+ isHost: user.userInfo.userRole === FcrUserRole.HOST,
1134
+ isMe: isSelf,
1135
+ userRole: user.userInfo.userRole,
1136
+ isBoardActive: user.userInfo.isBoardActive,
1137
+ avatar: user.userInfo.avatar,
1138
+ allowedOperations: this.allowedOperations(user.userId, user.userInfo.userRole),
1139
+ isPin: this.checkIsPin(user.userId),
1140
+ hideAudioConnectIcon: false
1141
+ };
1142
+ }
1143
+
1144
+ /**
1145
+ * 获取用户设备信息
1146
+ * @param user 用户数据
1147
+ * @param userStreams 用户流数据
1148
+ * @param isSelf 是否为当前用户
1149
+ * @returns 设备信息对象
1150
+ */
1151
+ }, {
1152
+ key: "_getUserDeviceInfo",
1153
+ value: function _getUserDeviceInfo(user, userStreams, isSelf) {
1154
+ var connectorType = user.userInfo.connectorType;
1155
+ switch (connectorType) {
1156
+ case FcrRoomConnectorType.NONE:
1157
+ return this._getNormalUserDeviceInfo(userStreams, isSelf);
1158
+ case FcrRoomConnectorType.PSTN:
1159
+ return this._getPstnUserDeviceInfo(userStreams);
1160
+ case FcrRoomConnectorType.SIP:
1161
+ case FcrRoomConnectorType.H323:
1162
+ return this._getSipOrH323UserDeviceInfo(userStreams);
1163
+ default:
1164
+ return this._getDefaultDeviceInfo();
1165
+ }
1166
+ }
1167
+
1168
+ /**
1169
+ * 获取普通用户(电脑客户端)的设备信息
1170
+ * @param userStreams 用户流数据
1171
+ * @param isSelf 是否为当前用户
1172
+ * @returns 设备信息对象
1173
+ */
1174
+ }, {
1175
+ key: "_getNormalUserDeviceInfo",
1176
+ value: function _getNormalUserDeviceInfo(userStreams, isSelf) {
1177
+ var defaultStream = this._findStreamByVideoSourceType(userStreams, FcrVideoSourceType.CAMERA);
1178
+ var pstnStream = this._findStreamByConnectorType(userStreams, FcrRoomConnectorType.PSTN);
1179
+ var hasVideo = isSelf ? this._deviceStore.cameraEnabled : this._hasVideoPublishedAndStarted(defaultStream);
1180
+ if (pstnStream) {
1181
+ // 有PSTN流,使用电话麦克风
1182
+ return {
1183
+ audioDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.AUDIO.PHONE_MIC,
1184
+ videoDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.VIDEO.COMPUTER_CAM,
1185
+ userType: USER_FORMAT_CONFIG.USER_TYPES.NORMAL,
1186
+ hasAudio: pstnStream.audioSourceState === FcrMediaSourceState.OPEN,
1187
+ hasVideo: hasVideo
1188
+ };
1189
+ } else {
1190
+ // 普通电脑客户端
1191
+ return {
1192
+ audioDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.AUDIO.COMPUTER_MIC,
1193
+ videoDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.VIDEO.COMPUTER_CAM,
1194
+ userType: USER_FORMAT_CONFIG.USER_TYPES.NORMAL,
1195
+ hasAudio: isSelf ? this._deviceStore.microphoneEnabled : this._hasAudioPublishedAndStarted(defaultStream),
1196
+ hasVideo: hasVideo
1197
+ };
1198
+ }
1199
+ }
1200
+
1201
+ /**
1202
+ * 获取PSTN电话用户的设备信息
1203
+ * @param userStreams 用户流数据
1204
+ * @returns 设备信息对象
1205
+ */
1206
+ }, {
1207
+ key: "_getPstnUserDeviceInfo",
1208
+ value: function _getPstnUserDeviceInfo(userStreams) {
1209
+ var pstnStream = this._findStreamByConnectorType(userStreams, FcrRoomConnectorType.PSTN);
1210
+ return {
1211
+ audioDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.AUDIO.PHONE_MIC,
1212
+ videoDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.VIDEO.NONE,
1213
+ userType: USER_FORMAT_CONFIG.USER_TYPES.PHONE,
1214
+ hasAudio: this._hasAudioPublishedAndStarted(pstnStream),
1215
+ hasVideo: false
1216
+ };
1217
+ }
1218
+
1219
+ /**
1220
+ * 获取SIP/H323会议系统用户的设备信息
1221
+ * @param userStreams 用户流数据
1222
+ * @returns 设备信息对象
1223
+ */
1224
+ }, {
1225
+ key: "_getSipOrH323UserDeviceInfo",
1226
+ value: function _getSipOrH323UserDeviceInfo(userStreams) {
1227
+ var sipOrH323Stream = this._findSipOrH323Stream(userStreams);
1228
+ return {
1229
+ audioDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.AUDIO.PHONE_MIC,
1230
+ videoDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.VIDEO.COMPUTER_CAM,
1231
+ userType: USER_FORMAT_CONFIG.USER_TYPES.MEETING_SYSTEM,
1232
+ hasAudio: this._hasAudioPublishedAndStarted(sipOrH323Stream),
1233
+ hasVideo: this._hasVideoPublishedAndStarted(sipOrH323Stream)
1234
+ };
1235
+ }
1236
+
1237
+ /**
1238
+ * 获取默认设备信息
1239
+ * @returns 默认设备信息对象
1240
+ */
1241
+ }, {
1242
+ key: "_getDefaultDeviceInfo",
1243
+ value: function _getDefaultDeviceInfo() {
1244
+ return {
1245
+ audioDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.AUDIO.NONE,
1246
+ videoDeviceType: USER_FORMAT_CONFIG.DEVICE_TYPES.VIDEO.NONE,
1247
+ userType: USER_FORMAT_CONFIG.USER_TYPES.NORMAL,
1248
+ hasAudio: false,
1249
+ hasVideo: false
1250
+ };
1251
+ }
1252
+
1253
+ /**
1254
+ * 获取用户流状态信息
1255
+ * @param user 用户数据
1256
+ * @param userStreams 用户流数据
1257
+ * @returns 流状态信息对象
1258
+ */
1259
+ }, {
1260
+ key: "_getUserStreamInfo",
1261
+ value: function _getUserStreamInfo(user, userStreams) {
1262
+ var _this13 = this;
1263
+ var hasShareScreen = userStreams.some(function (stream) {
1264
+ return stream.videoSourceType === FcrVideoSourceType.SCREEN;
1265
+ });
1266
+ var isSpotlight = userStreams.some(function (stream) {
1267
+ return stream.streamId === _this13.spotlightStreamId;
1268
+ });
1269
+ return {
1270
+ isScreenSharing: !!hasShareScreen,
1271
+ isSpotlight: isSpotlight
1272
+ };
1273
+ }
1274
+
1275
+ /**
1276
+ * 根据视频源类型查找流
1277
+ * @param userStreams 用户流数组
1278
+ * @param videoSourceType 视频源类型
1279
+ * @returns 找到的流或undefined
1280
+ */
1281
+ }, {
1282
+ key: "_findStreamByVideoSourceType",
1283
+ value: function _findStreamByVideoSourceType(userStreams, videoSourceType) {
1284
+ return userStreams.find(function (stream) {
1285
+ return stream.videoSourceType === videoSourceType;
1286
+ });
1287
+ }
1288
+
1289
+ /**
1290
+ * 根据连接器类型查找流
1291
+ * @param userStreams 用户流数组
1292
+ * @param connectorType 连接器类型
1293
+ * @returns 找到的流或undefined
1294
+ */
1295
+ }, {
1296
+ key: "_findStreamByConnectorType",
1297
+ value: function _findStreamByConnectorType(userStreams, connectorType) {
1298
+ return userStreams.find(function (stream) {
1299
+ return stream.connectorType === connectorType;
1300
+ });
1301
+ }
1302
+
1303
+ /**
1304
+ * 查找SIP或H323流
1305
+ * @param userStreams 用户流数组
1306
+ * @returns 找到的流或undefined
1307
+ */
1308
+ }, {
1309
+ key: "_findSipOrH323Stream",
1310
+ value: function _findSipOrH323Stream(userStreams) {
1311
+ return userStreams.find(function (stream) {
1312
+ return [FcrRoomConnectorType.SIP, FcrRoomConnectorType.H323].includes(stream.connectorType);
1313
+ });
1314
+ }
1315
+
1316
+ /**
1317
+ * 检查流是否有音频发布并已启动
1318
+ * @param stream 流信息
1319
+ * @returns 是否有音频发布并已启动
1320
+ */
1321
+ }, {
1322
+ key: "_hasAudioPublishedAndStarted",
1323
+ value: function _hasAudioPublishedAndStarted(stream) {
1324
+ return (stream === null || stream === void 0 ? void 0 : stream.audioSourceState) === FcrMediaSourceState.OPEN;
1325
+ }
1326
+
1327
+ /**
1328
+ * 检查流是否有视频发布并已启动
1329
+ * @param stream 流信息
1330
+ * @returns 是否有视频发布并已启动
1331
+ */
1332
+ }, {
1333
+ key: "_hasVideoPublishedAndStarted",
1334
+ value: function _hasVideoPublishedAndStarted(stream) {
1335
+ return (stream === null || stream === void 0 ? void 0 : stream.videoSourceState) === FcrMediaSourceState.OPEN;
1336
+ }
1337
+
1338
+ // [其他所有私有方法的实现...]
1339
+ }, {
1340
+ key: "_handleRemoteUsersJoined",
1341
+ value: function _handleRemoteUsersJoined(roomId, events) {
1342
+ if (events.some(function (user) {
1343
+ return user.userInfo.userRole === FcrUserRole.HOST;
1344
+ })) {
1345
+ this.showBecomeHostButton = false;
1346
+ this._showToast('主持人已进入会议', 'info');
1347
+ }
1348
+ }
1349
+ }, {
1350
+ key: "_handleUserInfoUpdated",
1351
+ value: function _handleUserInfoUpdated(roomId, event) {
1352
+ if (event.reason === FcrUserUpdatedReason.ROLE && event.modifiedUser.userRole === FcrUserRole.HOST) {
1353
+ this.showBecomeHostButton = false;
1354
+ }
1355
+ }
1356
+ }, {
1357
+ key: "_handleUserCountUpdated",
1358
+ value: function _handleUserCountUpdated(roomId, count) {
1359
+ this._userCount = count;
1360
+ }
1361
+ }, {
1362
+ key: "_handleUserPropertiesUpdated",
1363
+ value: function _handleUserPropertiesUpdated() {
1364
+ this._getOutputLanguage();
1365
+ }
1366
+ }, {
1367
+ key: "handleConfirmChangeName",
1368
+ value: function () {
1369
+ var _handleConfirmChangeName = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
1370
+ var _this14 = this;
1371
+ return _regeneratorRuntime.wrap(function (_context4) {
1372
+ while (1) switch (_context4.prev = _context4.next) {
1373
+ case 0:
1374
+ _context4.next = 1;
1375
+ return this._userControl.updateUserName(this._renamingUserId, this.newName);
1376
+ case 1:
1377
+ runInAction(function () {
1378
+ _this14._closeChangeNameDialog();
1379
+ _this14._showToast(transI18n('fmt_additional_tips_nickname_change_success'));
1380
+ });
1381
+ case 2:
1382
+ case "end":
1383
+ return _context4.stop();
1384
+ }
1385
+ }, _callee4, this);
1386
+ }));
1387
+ function handleConfirmChangeName() {
1388
+ return _handleConfirmChangeName.apply(this, arguments);
1389
+ }
1390
+ return handleConfirmChangeName;
1391
+ }()
1392
+ }, {
1393
+ key: "handleCancelChangeName",
1394
+ value: function handleCancelChangeName() {
1395
+ this._closeChangeNameDialog();
1396
+ }
1397
+ }, {
1398
+ key: "_closeChangeNameDialog",
1399
+ value: function _closeChangeNameDialog() {
1400
+ this.newName = '';
1401
+ this._renamingUserId = '';
1402
+ this._renamingUserName = '';
1403
+ this._dialogProvider.closeDialog(FcrUIDialogKey.RENAME);
1404
+ }
1405
+ }, {
1406
+ key: "_getOutputLanguage",
1407
+ value: function () {
1408
+ var _getOutputLanguage2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
1409
+ var _this15 = this;
1410
+ var interpreterInputLanguageList, index, user, language;
1411
+ return _regeneratorRuntime.wrap(function (_context5) {
1412
+ while (1) switch (_context5.prev = _context5.next) {
1413
+ case 0:
1414
+ interpreterInputLanguageList = [];
1415
+ for (index = 0; index < this.userList.length; index++) {
1416
+ user = this.userList[index];
1417
+ language = this._userControl.getUserPropertiesByKeyPath('interpreterLangCode', user.userId);
1418
+ if (language) {
1419
+ interpreterInputLanguageList.push({
1420
+ userId: user.userId,
1421
+ language: language
1422
+ });
1423
+ }
1424
+ }
1425
+ runInAction(function () {
1426
+ _this15.interpreterInputLanguageList = interpreterInputLanguageList;
1427
+ });
1428
+ case 1:
1429
+ case "end":
1430
+ return _context5.stop();
1431
+ }
1432
+ }, _callee5, this);
1433
+ }));
1434
+ function _getOutputLanguage() {
1435
+ return _getOutputLanguage2.apply(this, arguments);
1436
+ }
1437
+ return _getOutputLanguage;
1438
+ }()
1439
+ }, {
1440
+ key: "handlerUserAction",
1441
+ value: function handlerUserAction(action, userId) {
1442
+ this.logger.info("handler User Action: ".concat(action, ", target userId: ").concat(userId));
1443
+ switch (action) {
1444
+ case ParticipantActionType.MUTE_AUDIO:
1445
+ this._muteUserAudio(userId);
1446
+ break;
1447
+ case ParticipantActionType.UNMUTE_AUDIO:
1448
+ this._unmuteUserAudio(userId);
1449
+ break;
1450
+ case ParticipantActionType.MUTE_VIDEO:
1451
+ this._muteUserVideo(userId);
1452
+ break;
1453
+ case ParticipantActionType.UNMUTE_VIDEO:
1454
+ this._unmuteUserVideo(userId);
1455
+ break;
1456
+ case ParticipantActionType.PRIVATE_CHAT:
1457
+ this._privateChat(userId);
1458
+ break;
1459
+ case ParticipantActionType.KICK_OUT:
1460
+ this._kickOutUser(userId);
1461
+ break;
1462
+ case ParticipantActionType.ADD_PIN:
1463
+ this.addPin(userId);
1464
+ break;
1465
+ case ParticipantActionType.REMOVE_PIN:
1466
+ this.removePin(userId);
1467
+ break;
1468
+ case ParticipantActionType.SET_AS_HOST:
1469
+ this._setAsHost(userId);
1470
+ break;
1471
+ case ParticipantActionType.SET_AS_CO_HOST:
1472
+ this._setAsCoHost(userId);
1473
+ break;
1474
+ case ParticipantActionType.SET_AS_ATTENDEE:
1475
+ this._setAsAttendee(userId);
1476
+ break;
1477
+ case ParticipantActionType.RENAME_IN_MEETING:
1478
+ this._openChangeNameDialog(userId);
1479
+ break;
1480
+ case ParticipantActionType.PUT_IN_WAITING_ROOM:
1481
+ this._moveToWaitingRoomByUserId(userId);
1482
+ break;
1483
+ }
1484
+ }
1485
+ }, {
1486
+ key: "handleActiveTab",
1487
+ value: function handleActiveTab(tab) {
1488
+ this.activeTab = tab;
1489
+ if (this.activeTab === FcrUIRoomType.WAITING_ROOM) {
1490
+ this._sharedWaitingRoomDataSource.unReadState = false;
1491
+ }
1492
+ }
1493
+
1494
+ // [所有其他方法的完整实现...]
1495
+
1496
+ /**
1497
+ * 检查是否在会话持续时间内,避免重复发送请求
1498
+ * @param userId 用户ID
1499
+ * @param timestampMap 时间戳映射表
1500
+ * @returns 如果在持续时间内返回true,否则返回false
1501
+ */
1502
+ }, {
1503
+ key: "_isWithinSessionDuration",
1504
+ value: function _isWithinSessionDuration(userId, timestampMap) {
1505
+ var _timestampMap$get;
1506
+ var now = Date.now();
1507
+ return now - ((_timestampMap$get = timestampMap.get(userId)) !== null && _timestampMap$get !== void 0 ? _timestampMap$get : 0) <= SESSION_DURATION * 1000;
1508
+ }
1509
+
1510
+ /**
1511
+ * 设置权限并更新UI状态
1512
+ * 设置权限后需要同步更新UI状态
1513
+ * @param setPrivilege 设置权限的函数
1514
+ * @param uiState 要更新的UI状态
1515
+ */
1516
+ }, {
1517
+ key: "_setPrivilegeAndUpdateUI",
1518
+ value: function _setPrivilegeAndUpdateUI(setPrivilege, uiState) {
1519
+ setPrivilege();
1520
+ this._sharedSecurityDataSource.setCheckedStateMap(_objectSpread(_objectSpread({}, this.checkedStateMap), uiState));
1521
+ }
1522
+
1523
+ /**
1524
+ * 显示toast消息的辅助方法
1525
+ * @param message 消息内容
1526
+ * @param type 消息类型,默认为'normal'
1527
+ */
1528
+ }, {
1529
+ key: "_showToast",
1530
+ value: function _showToast(message) {
1531
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'normal';
1532
+ this._messageProvider.showToast({
1533
+ message: message,
1534
+ type: type
1535
+ });
1536
+ }
1537
+
1538
+ /**
1539
+ * 打开对话框的辅助方法
1540
+ * @param dialogKey 对话框键值
1541
+ */
1542
+ }, {
1543
+ key: "_openDialog",
1544
+ value: function _openDialog(dialogKey, params) {
1545
+ this._dialogProvider.openDialog(dialogKey, params);
1546
+ }
1547
+
1548
+ /**
1549
+ * 更新流发布权限的辅助方法
1550
+ * @param streamId 流ID
1551
+ * @param audioPrivilege 音频权限
1552
+ * @param videoPrivilege 视频权限
1553
+ */
1554
+ }, {
1555
+ key: "_updateStreamPrivilege",
1556
+ value: function _updateStreamPrivilege(streamId, audioPrivilege, videoPrivilege) {
1557
+ this._streamControl.updatePublishPrivilegeOfStreams(_defineProperty({}, streamId, {
1558
+ audioPrivilege: audioPrivilege,
1559
+ videoPrivilege: videoPrivilege
1560
+ }));
1561
+ }
1562
+
1563
+ /**
1564
+ * 获取用户的目标音频流
1565
+ * @param userId 用户ID
1566
+ * @returns 目标流信息,包含硬件设备流和普通客户端流
1567
+ */
1568
+ }, {
1569
+ key: "_getUserTargetAudioStreams",
1570
+ value: function _getUserTargetAudioStreams(userId) {
1571
+ var userStreams = this._streamControl.getStreamsByUserId(userId);
1572
+
1573
+ // 查找硬件设备流(PSTN电话、SIP、H323等外部设备连接)
1574
+ var hardwareDeviceStream = userStreams.find(function (stream) {
1575
+ return stream.connectorType !== FcrRoomConnectorType.NONE;
1576
+ });
1577
+
1578
+ // 查找普通客户端流(来自电脑摄像头/麦克风的流)
1579
+ var normalClientStream = userStreams.find(function (stream) {
1580
+ return stream.videoSourceType === FcrVideoSourceType.CAMERA;
1581
+ });
1582
+ return {
1583
+ hardwareDeviceStream: hardwareDeviceStream,
1584
+ normalClientStream: normalClientStream,
1585
+ isLocalUser: userId === this.localUser.userId
1586
+ };
1587
+ }
1588
+
1589
+ /**
1590
+ * 静音指定用户的音频
1591
+ * @param userId 用户ID
1592
+ */
1593
+ }, {
1594
+ key: "_muteUserAudio",
1595
+ value: function _muteUserAudio(userId) {
1596
+ var _this$_getUserTargetA = this._getUserTargetAudioStreams(userId),
1597
+ hardwareDeviceStream = _this$_getUserTargetA.hardwareDeviceStream,
1598
+ normalClientStream = _this$_getUserTargetA.normalClientStream,
1599
+ isLocalUser = _this$_getUserTargetA.isLocalUser;
1600
+
1601
+ // 如果是本地用户,需要先禁用本地麦克风设备
1602
+ if (isLocalUser) {
1603
+ this._deviceStreamStore.enableMicrophoneWithPreCheck(false);
1604
+ }
1605
+
1606
+ // 优先选择硬件设备流,如果没有则选择普通客户端流
1607
+ var targetStream = hardwareDeviceStream !== null && hardwareDeviceStream !== void 0 ? hardwareDeviceStream : normalClientStream;
1608
+
1609
+ // 如果找到目标流,则更新流的发布权限来静音
1610
+ if (targetStream) {
1611
+ this._updateStreamPrivilege(targetStream.streamId, FcrStreamPrivilegeOperation.NOPRIVILEGE,
1612
+ // 移除音频发布权限(静音)
1613
+ FcrStreamPrivilegeOperation.NOOPERATION // 视频权限保持不变
1614
+ );
1615
+ }
1616
+ }
1617
+
1618
+ /**
1619
+ * 取消静音指定用户的音频
1620
+ * @param userId 用户ID
1621
+ */
1622
+ }, {
1623
+ key: "_unmuteUserAudio",
1624
+ value: function _unmuteUserAudio(userId) {
1625
+ var _this$_getUserTargetA2 = this._getUserTargetAudioStreams(userId),
1626
+ hardwareDeviceStream = _this$_getUserTargetA2.hardwareDeviceStream,
1627
+ isLocalUser = _this$_getUserTargetA2.isLocalUser;
1628
+
1629
+ // 如果是硬件设备流,直接更新流的发布权限来取消静音
1630
+ if (hardwareDeviceStream) {
1631
+ this._updateStreamPrivilege(hardwareDeviceStream.streamId, FcrStreamPrivilegeOperation.HAS_PRIVILEGE, FcrStreamPrivilegeOperation.NOOPERATION);
1632
+ return;
1633
+ }
1634
+
1635
+ // 如果是本地用户,直接启用本地麦克风(上面硬件已经处理了,所以从这里往后都不是硬件设备了)
1636
+ if (isLocalUser) {
1637
+ this._deviceStreamStore.enableMicrophoneWithPreCheck(true);
1638
+ return;
1639
+ }
1640
+ // 邀请对端开启麦克风
1641
+ // 检查是否在会话持续时间内,避免重复发送请求
1642
+ if (this._isWithinSessionDuration(userId, this._unmuteAudioTimestamp)) {
1643
+ return;
1644
+ }
1645
+ this._unmuteAudioTimestamp.set(userId, Date.now());
1646
+ this._peerSessionControl.startPeerSession({
1647
+ sessionKey: FcrUISessionKey.REQUEST_OPEN_MICROPHONE,
1648
+ receiverId: userId,
1649
+ duration: SESSION_DURATION,
1650
+ payload: {
1651
+ sender: this.localUser
1652
+ }
1653
+ });
1654
+ }
1655
+
1656
+ /**
1657
+ * 静音指定用户的视频
1658
+ * @param userId 用户ID
1659
+ */
1660
+ }, {
1661
+ key: "_muteUserVideo",
1662
+ value: function _muteUserVideo(userId) {
1663
+ var isSelf = userId === this.localUser.userId;
1664
+ if (isSelf) {
1665
+ this._deviceStreamStore.enableCameraWithPreCheck(false);
1666
+ return;
1667
+ }
1668
+ var targetUsers = this._streamControl.getStreamsByUserId(userId);
1669
+ var targetUser = targetUsers.find(function (stream) {
1670
+ return stream.videoSourceType === FcrVideoSourceType.CAMERA;
1671
+ });
1672
+ if (!targetUser) {
1673
+ return;
1674
+ }
1675
+ this._updateStreamPrivilege(targetUser.streamId, FcrStreamPrivilegeOperation.NOOPERATION, FcrStreamPrivilegeOperation.NOPRIVILEGE);
1676
+ }
1677
+ }, {
1678
+ key: "_unmuteUserVideo",
1679
+ value: function _unmuteUserVideo(userId) {
1680
+ var isSelf = userId === this.localUser.userId;
1681
+ if (isSelf) {
1682
+ this._deviceStreamStore.enableCameraWithPreCheck(true);
1683
+ return;
1684
+ }
1685
+ if (this._isWithinSessionDuration(userId, this._unmuteVideoTimestamp)) {
1686
+ return;
1687
+ }
1688
+ this._unmuteVideoTimestamp.set(userId, Date.now());
1689
+ this._peerSessionControl.startPeerSession({
1690
+ sessionKey: FcrUISessionKey.REQUEST_OPEN_CAMERA,
1691
+ receiverId: userId,
1692
+ duration: SESSION_DURATION,
1693
+ payload: {
1694
+ sender: this.localUser
1695
+ }
1696
+ });
1697
+ }
1698
+ }, {
1699
+ key: "_privateChat",
1700
+ value: function _privateChat(userId) {
1701
+ var userData = this.userListSource.find(function (u) {
1702
+ return u.userId === userId;
1703
+ });
1704
+ if (userData) {
1705
+ var hasPermissionToSendPrivateMessage = this._privilegeProvider.hasPermissionToSendPrivateMessage(userData.userInfo.userRole);
1706
+ if (!hasPermissionToSendPrivateMessage) {
1707
+ this._showToast(transI18n('fmt_attendies_tips_chat_off'), 'error');
1708
+ return;
1709
+ }
1710
+ if (!this._privilegeProvider.permitPrivateChat(userId)) {
1711
+ return;
1712
+ }
1713
+ this._chatProvider.setPrivateChatTargetUser(userData.userInfo, this.activeTab);
1714
+ // TODO:
1715
+ // if (isElectron() && this.screenSharingOwner?.userId === this.localUser.userId) {
1716
+ // this._sharedLayoutDataSource.setParticipantsRenderAt('dialog');
1717
+ // this._dialogProvider.openDialog(FcrUIDialogKey.CHAT);
1718
+ // return;
1719
+ // }
1720
+ // 打开私聊对话框
1721
+ var res = this.openChatWindow();
1722
+ if (res) {
1723
+ return;
1724
+ }
1725
+ if (this._sharedLayoutDataSource.chatRenderAt !== 'dialog') {
1726
+ this._sharedLayoutDataSource.setAsideLayout({
1727
+ chat: true
1728
+ });
1729
+ this._sharedChatDataSource.activeTab = this.activeTab;
1730
+ } else {
1731
+ this._openDialog(FcrUIDialogKey.CHAT);
1732
+ }
1733
+ }
1734
+ }
1735
+ }, {
1736
+ key: "_setAsHost",
1737
+ value: function _setAsHost(userId) {
1738
+ this._showSetHostDialog(userId, FcrUserRole.HOST);
1739
+ }
1740
+ }, {
1741
+ key: "_setAsCoHost",
1742
+ value: function _setAsCoHost(userId) {
1743
+ this._showSetHostDialog(userId, FcrUserRole.COHOST);
1744
+ }
1745
+
1746
+ /**
1747
+ * 显示设置主持人/联席主持人对话框
1748
+ * @param userId 用户ID
1749
+ * @param type 角色类型
1750
+ */
1751
+ }, {
1752
+ key: "_showSetHostDialog",
1753
+ value: function _showSetHostDialog(userId, type) {
1754
+ var _this16 = this;
1755
+ if ([FcrUserRole.HOST, FcrUserRole.COHOST].includes(type)) {
1756
+ var canSetHost = this.isHostSupportedByPlatform(userId);
1757
+ if (!canSetHost) {
1758
+ var errorMessage = type === FcrUserRole.HOST ? transI18n('fmt_attendies_toast_cant_sethost') : transI18n('fmt_attendies_toast_cant_setcohost');
1759
+ this._showToast(errorMessage, 'error');
1760
+ return;
1761
+ }
1762
+ }
1763
+ var user = this.userMap.get(userId);
1764
+ if (!user) {
1765
+ this._showToast(transI18n('fmt_uimanager_tips_userleaft'), 'error');
1766
+ return;
1767
+ }
1768
+ var username = user.userInfo.userName;
1769
+ var targetRole = this._getRoleDisplayName(type);
1770
+ this.openConfirmDialog({
1771
+ title: transI18n('fmt_uimanager_labels_Setas', {
1772
+ reason1: targetRole
1773
+ }),
1774
+ content: transI18n('fmt_uimanager_tips_designedas', {
1775
+ reason1: username,
1776
+ reason2: targetRole
1777
+ }),
1778
+ onOk: function onOk() {
1779
+ return _this16._handleSetHostConfirmation(userId, type);
1780
+ },
1781
+ okText: transI18n('fmt_uimanager_labels_Setas', {
1782
+ reason1: targetRole
1783
+ }),
1784
+ cancelText: transI18n('fmt_security_buttons_cancel'),
1785
+ closable: false,
1786
+ alignCenter: true
1787
+ }, 'UPDATE_USER_ROLE');
1788
+ }
1789
+
1790
+ /**
1791
+ * 获取角色显示名称
1792
+ * @param type 角色类型
1793
+ * @returns 角色显示名称
1794
+ */
1795
+ }, {
1796
+ key: "_getRoleDisplayName",
1797
+ value: function _getRoleDisplayName(type) {
1798
+ return type === FcrUserRole.HOST ? transI18n('fmt_role_host') : transI18n('fmt_role_cohost');
1799
+ }
1800
+
1801
+ /**
1802
+ * 处理设置主持人确认操作
1803
+ * @param userId 用户ID
1804
+ * @param type 角色类型
1805
+ */
1806
+ }, {
1807
+ key: "_handleSetHostConfirmation",
1808
+ value: (function () {
1809
+ var _handleSetHostConfirmation2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(userId, type) {
1810
+ var _t;
1811
+ return _regeneratorRuntime.wrap(function (_context6) {
1812
+ while (1) switch (_context6.prev = _context6.next) {
1813
+ case 0:
1814
+ if (this.userMap.has(userId)) {
1815
+ _context6.next = 1;
1816
+ break;
1817
+ }
1818
+ this._showToast(transI18n('fmt_uimanager_tips_userleaft'), 'error');
1819
+ return _context6.abrupt("return");
1820
+ case 1:
1821
+ _context6.prev = 1;
1822
+ _context6.next = 2;
1823
+ return this._updateRemoteUserRole(userId, type);
1824
+ case 2:
1825
+ _context6.next = 4;
1826
+ break;
1827
+ case 3:
1828
+ _context6.prev = 3;
1829
+ _t = _context6["catch"](1);
1830
+ this._handleSetHostError(_t);
1831
+ case 4:
1832
+ case "end":
1833
+ return _context6.stop();
1834
+ }
1835
+ }, _callee6, this, [[1, 3]]);
1836
+ }));
1837
+ function _handleSetHostConfirmation(_x2, _x3) {
1838
+ return _handleSetHostConfirmation2.apply(this, arguments);
1839
+ }
1840
+ return _handleSetHostConfirmation;
1841
+ }()
1842
+ /**
1843
+ * 处理设置主持人时的错误
1844
+ * @param error 错误对象
1845
+ */
1846
+ )
1847
+ }, {
1848
+ key: "_handleSetHostError",
1849
+ value: function _handleSetHostError(error) {
1850
+ var _this17 = this;
1851
+ if (error instanceof FcrError) {
1852
+ var errorHandlers = _defineProperty(_defineProperty({}, ErrorCode.FAILED_TO_UPDATE_USER_ROLE_DUE_TO_PRIVILEGE, function () {
1853
+ _this17._messageProvider.showToast({
1854
+ type: 'error',
1855
+ message: transI18n('fmt_attendies_button_revokehost_error')
1856
+ });
1857
+ }), ErrorCode.FAILED_TO_UPDATE_USER_ROLE_DUE_TO_LIMIT_REACHED, function () {
1858
+ _this17._messageProvider.showToast({
1859
+ type: 'error',
1860
+ message: transI18n('fmt_attendies_toast_cohost_upper_limit')
1861
+ });
1862
+ });
1863
+ var handler = errorHandlers[error.code];
1864
+ if (handler) {
1865
+ handler();
1866
+ return;
1867
+ }
1868
+ }
1869
+ this.logger.error('Failed to set up the host:', error);
1870
+ }
1871
+ }, {
1872
+ key: "_updateRemoteUserRole",
1873
+ value: function _updateRemoteUserRole(userId, role) {
1874
+ this._userControl.updateRemoteUserRole(userId, role);
1875
+ }
1876
+ }, {
1877
+ key: "_setAsAttendee",
1878
+ value: function _setAsAttendee(userId) {
1879
+ this._userControl.updateRemoteUserRole(userId, FcrUserRole.PARTICIPANT);
1880
+ }
1881
+
1882
+ /**
1883
+ * 将指定用户移动到等待房间
1884
+ * @param userId 要移动的用户ID
1885
+ */
1886
+ }, {
1887
+ key: "_moveToWaitingRoomByUserId",
1888
+ value: (function () {
1889
+ var _moveToWaitingRoomByUserId2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(userId) {
1890
+ var username, _t2;
1891
+ return _regeneratorRuntime.wrap(function (_context7) {
1892
+ while (1) switch (_context7.prev = _context7.next) {
1893
+ case 0:
1894
+ if (!(!userId || typeof userId !== 'string')) {
1895
+ _context7.next = 1;
1896
+ break;
1897
+ }
1898
+ this.logger.warn('Invalid userId provided to _moveToWaitingRoomByUserId:', userId);
1899
+ return _context7.abrupt("return");
1900
+ case 1:
1901
+ if (this._isUserExists(userId)) {
1902
+ _context7.next = 2;
1903
+ break;
1904
+ }
1905
+ this.logger.warn('User not found for move to waiting room operation:', userId);
1906
+ return _context7.abrupt("return");
1907
+ case 2:
1908
+ username = this._getUserNameById(userId);
1909
+ _context7.prev = 3;
1910
+ this.logger.info('Moving user to waiting room:', {
1911
+ userId: userId,
1912
+ username: username
1913
+ });
1914
+ _context7.next = 4;
1915
+ return this._roomControl.moveToWaitingRoomByUserIds([userId]);
1916
+ case 4:
1917
+ this._showToast(transI18n('fmt_waitingroom_put_in_success', {
1918
+ reason1: username
1919
+ }), 'normal');
1920
+ this.logger.info('Successfully moved user to waiting room:', {
1921
+ userId: userId,
1922
+ username: username
1923
+ });
1924
+ _context7.next = 7;
1925
+ break;
1926
+ case 5:
1927
+ _context7.prev = 5;
1928
+ _t2 = _context7["catch"](3);
1929
+ this.logger.error('Failed to move user to waiting room:', {
1930
+ userId: userId,
1931
+ username: username,
1932
+ error: _t2
1933
+ });
1934
+ if (!(_t2 instanceof FcrError && _t2.code === ErrorCode.FAILED_TO_MOVE_USER_TO_WAITING_ROOM)) {
1935
+ _context7.next = 6;
1936
+ break;
1937
+ }
1938
+ this._showToast(transI18n('fmt_waitingroom_setting_popup_toast_unable_move_creator'), 'error');
1939
+ return _context7.abrupt("return");
1940
+ case 6:
1941
+ this._showToast(transI18n('fmt_waitingroom_setting_popup_toast_move_in_failed'), 'error');
1942
+ case 7:
1943
+ case "end":
1944
+ return _context7.stop();
1945
+ }
1946
+ }, _callee7, this, [[3, 5]]);
1947
+ }));
1948
+ function _moveToWaitingRoomByUserId(_x4) {
1949
+ return _moveToWaitingRoomByUserId2.apply(this, arguments);
1950
+ }
1951
+ return _moveToWaitingRoomByUserId;
1952
+ }()
1953
+ /**
1954
+ * 踢出用户的主入口方法
1955
+ * 根据当前房间类型选择相应的处理逻辑
1956
+ * @param userId 要踢出的用户ID
1957
+ */
1958
+ )
1959
+ }, {
1960
+ key: "_kickOutUser",
1961
+ value: function _kickOutUser(userId) {
1962
+ // 参数验证
1963
+ if (!userId || typeof userId !== 'string') {
1964
+ this.logger.warn('Invalid userId provided to _kickOutUser:', userId);
1965
+ return;
1966
+ }
1967
+
1968
+ // 检查用户是否存在
1969
+ if (!this._isUserExists(userId)) {
1970
+ this.logger.warn('User not found for kick out operation:', userId);
1971
+ return;
1972
+ }
1973
+ var isMainRoom = this.activeTab === FcrUIRoomType.MAIN_ROOM;
1974
+ if (isMainRoom) {
1975
+ this._kickOutUserFromMainRoom(userId);
1976
+ } else {
1977
+ this._kickOutUserFromWaitingRoom(userId);
1978
+ }
1979
+ }
1980
+
1981
+ /**
1982
+ * 从主房间踢出用户
1983
+ * @param userId 用户ID
1984
+ */
1985
+ }, {
1986
+ key: "_kickOutUserFromMainRoom",
1987
+ value: function _kickOutUserFromMainRoom(userId) {
1988
+ var userName = this._getUserNameById(userId);
1989
+ var dialogConfig = this._createMainRoomKickOutDialogConfig(userId, userName);
1990
+ this.openConfirmDialog(dialogConfig, KICK_OUT_DIALOG_CONFIG.MAIN_ROOM.DIALOG_ID);
1991
+ }
1992
+
1993
+ /**
1994
+ * 从等待房间踢出用户
1995
+ * @param userId 用户ID
1996
+ */
1997
+ }, {
1998
+ key: "_kickOutUserFromWaitingRoom",
1999
+ value: function _kickOutUserFromWaitingRoom(userId) {
2000
+ var userName = this._getUserNameById(userId);
2001
+ var dialogConfig = this._createWaitingRoomKickOutDialogConfig(userId, userName);
2002
+ this.openRemoveAdmitWaitingRoomDialog(dialogConfig);
2003
+ }
2004
+
2005
+ /**
2006
+ * 检查用户是否存在
2007
+ * @param userId 用户ID
2008
+ * @returns 用户是否存在
2009
+ */
2010
+ }, {
2011
+ key: "_isUserExists",
2012
+ value: function _isUserExists(userId) {
2013
+ return this.userMap.has(userId);
2014
+ }
2015
+
2016
+ /**
2017
+ * 根据用户ID获取用户名
2018
+ * @param userId 用户ID
2019
+ * @returns 用户名,如果找不到则返回空字符串
2020
+ */
2021
+ }, {
2022
+ key: "_getUserNameById",
2023
+ value: function _getUserNameById(userId) {
2024
+ var _this$userMap$get4;
2025
+ return ((_this$userMap$get4 = this.userMap.get(userId)) === null || _this$userMap$get4 === void 0 ? void 0 : _this$userMap$get4.userInfo.userName) || '';
2026
+ }
2027
+
2028
+ /**
2029
+ * 创建主房间踢出用户的对话框配置
2030
+ * @param userId 用户ID
2031
+ * @param userName 用户名
2032
+ * @returns 对话框配置对象
2033
+ */
2034
+ }, {
2035
+ key: "_createMainRoomKickOutDialogConfig",
2036
+ value: function _createMainRoomKickOutDialogConfig(userId, userName) {
2037
+ var _this18 = this;
2038
+ return {
2039
+ title: '',
2040
+ content: transI18n('fmt_uimanager_tips_Remove', {
2041
+ reason2: userName
2042
+ }),
2043
+ onOk: function onOk() {
2044
+ _this18._executeKickOut(userId, FcrUserKickedOutType.Once);
2045
+ },
2046
+ alignCenter: true,
2047
+ height: KICK_OUT_DIALOG_CONFIG.MAIN_ROOM.HEIGHT
2048
+ };
2049
+ }
2050
+
2051
+ /**
2052
+ * 创建等待房间踢出用户的对话框配置
2053
+ * @param userId 用户ID
2054
+ * @param userName 用户名
2055
+ * @returns 对话框配置对象
2056
+ */
2057
+ }, {
2058
+ key: "_createWaitingRoomKickOutDialogConfig",
2059
+ value: function _createWaitingRoomKickOutDialogConfig(userId, userName) {
2060
+ var _this19 = this;
2061
+ return {
2062
+ userId: userId,
2063
+ type: KICK_OUT_DIALOG_CONFIG.WAITING_ROOM.TYPE,
2064
+ title: transI18n('fmt_waitingroom_sidebar_popup_removeall'),
2065
+ tooltip: transI18n('fmt_waitingroom_sidebar_popup_label_remove', {
2066
+ reason1: userName
2067
+ }),
2068
+ onChecked: function onChecked(isChecked) {
2069
+ _this19._isChecked[KICK_OUT_DIALOG_CONFIG.WAITING_ROOM.TYPE] = isChecked;
2070
+ }
2071
+ };
2072
+ }
2073
+
2074
+ /**
2075
+ * 执行踢出用户操作
2076
+ * @param userId 用户ID
2077
+ * @param kickOutType 踢出类型
2078
+ */
2079
+ }, {
2080
+ key: "_executeKickOut",
2081
+ value: function _executeKickOut(userId, kickOutType) {
2082
+ try {
2083
+ this._userControl.kickOut(userId, kickOutType);
2084
+ this.logger.info('Successfully initiated kick out for user:', userId, 'type:', kickOutType);
2085
+ } catch (error) {
2086
+ this.logger.error('Failed to kick out user:', userId, 'error:', error);
2087
+ }
2088
+ }
2089
+ }, {
2090
+ key: "_onPeerSessionReceived",
2091
+ value: function _onPeerSessionReceived(session) {
2092
+ this.logger.info('participant store onPeerSessionReceived', {
2093
+ sessionId: session.sessionId
2094
+ });
2095
+
2096
+ // 检查是否已经处理过此会话
2097
+ if (this._isSessionAlreadyProcessed(session.sessionId)) {
2098
+ this.logger.info('Session already processed, skipping', {
2099
+ sessionId: session.sessionId
2100
+ });
2101
+ return;
2102
+ }
2103
+
2104
+ // 验证本地用户信息
2105
+ if (!this._validateLocalUser()) {
2106
+ this.logger.warn('Local user validation failed');
2107
+ return;
2108
+ }
2109
+
2110
+ // 标记会话为已处理
2111
+ this._processedUserOpenDeviceRequests.add(session.sessionId);
2112
+
2113
+ // 根据会话类型处理请求
2114
+ this._handleDeviceRequest(session);
2115
+ }
2116
+ }, {
2117
+ key: "_onPeerSessionAccepted",
2118
+ value: function _onPeerSessionAccepted(session) {
2119
+ this._updateSessionTimestamp(session);
2120
+ }
2121
+ }, {
2122
+ key: "_onPeerSessionRejected",
2123
+ value: function _onPeerSessionRejected(session) {
2124
+ this._updateSessionTimestamp(session);
2125
+ }
2126
+ }, {
2127
+ key: "_updateSessionTimestamp",
2128
+ value: function _updateSessionTimestamp(session) {
2129
+ var responderId = session.responderId,
2130
+ sessionKey = session.sessionKey;
2131
+ switch (sessionKey) {
2132
+ case FcrUISessionKey.REQUEST_OPEN_CAMERA:
2133
+ this._unmuteVideoTimestamp["delete"](responderId);
2134
+ break;
2135
+ case FcrUISessionKey.REQUEST_OPEN_MICROPHONE:
2136
+ this._unmuteAudioTimestamp["delete"](responderId);
2137
+ break;
2138
+ }
2139
+ }
2140
+
2141
+ /**
2142
+ * 设置等候室用户数量监听器
2143
+ * 当等候室用户数量为0时 tab自动切换回主房间
2144
+ */
2145
+ }, {
2146
+ key: "_setupWaitingRoomUserCountListener",
2147
+ value: function _setupWaitingRoomUserCountListener() {
2148
+ var _this20 = this;
2149
+ this._disposers.push(reaction(function () {
2150
+ return _this20.waitingRoomUserCount;
2151
+ }, function (userCount) {
2152
+ if (userCount === 0 && _this20.activeTab === FcrUIRoomType.WAITING_ROOM) {
2153
+ _this20.handleActiveTab(FcrUIRoomType.MAIN_ROOM);
2154
+ }
2155
+ }));
2156
+ }
2157
+
2158
+ /**
2159
+ * 检查会话是否已经被处理过
2160
+ * @param sessionId 会话ID
2161
+ * @returns 是否已处理
2162
+ */
2163
+ }, {
2164
+ key: "_isSessionAlreadyProcessed",
2165
+ value: function _isSessionAlreadyProcessed(sessionId) {
2166
+ return this._processedUserOpenDeviceRequests.has(sessionId);
2167
+ }
2168
+
2169
+ /**
2170
+ * 验证本地用户信息
2171
+ * @returns 验证是否通过
2172
+ */
2173
+ }, {
2174
+ key: "_validateLocalUser",
2175
+ value: function _validateLocalUser() {
2176
+ var localUserUid = this.localUser.userId;
2177
+ if (!localUserUid) {
2178
+ this.logger.warn('Local user ID not found');
2179
+ return false;
2180
+ }
2181
+ var localUserStream = this._streamControl.getStreamsByUserId(localUserUid).find(function (user) {
2182
+ return user.videoSourceType === FcrVideoSourceType.CAMERA;
2183
+ });
2184
+ if (!localUserStream) {
2185
+ this.logger.warn('Local user stream not found');
2186
+ return false;
2187
+ }
2188
+ return true;
2189
+ }
2190
+
2191
+ /**
2192
+ * 处理设备请求
2193
+ * @param session 对等会话
2194
+ */
2195
+ }, {
2196
+ key: "_handleDeviceRequest",
2197
+ value: function _handleDeviceRequest(session) {
2198
+ var sessionKey = session.sessionKey,
2199
+ payload = session.payload;
2200
+ var sender = payload.sender;
2201
+ switch (sessionKey) {
2202
+ case FcrUISessionKey.REQUEST_OPEN_CAMERA:
2203
+ this._handleCameraRequest(session, sender);
2204
+ break;
2205
+ case FcrUISessionKey.REQUEST_OPEN_MICROPHONE:
2206
+ this._handleMicrophoneRequest(session, sender);
2207
+ break;
2208
+ default:
2209
+ this.logger.warn('Unknown session key', {
2210
+ sessionKey: sessionKey
2211
+ });
2212
+ }
2213
+ }
2214
+
2215
+ /**
2216
+ * 处理摄像头开启请求
2217
+ * @param session 对等会话
2218
+ * @param sender 发送者信息
2219
+ */
2220
+ }, {
2221
+ key: "_handleCameraRequest",
2222
+ value: function _handleCameraRequest(session, sender) {
2223
+ var localUserHasVideo = this._deviceStore.cameraEnabled;
2224
+ this.logger.info('Handling camera request', {
2225
+ sessionId: session.sessionId,
2226
+ localUserHasVideo: localUserHasVideo
2227
+ });
2228
+
2229
+ // 如果本地用户已经开启摄像头,直接接受请求
2230
+ if (localUserHasVideo) {
2231
+ this._peerSessionControl.acceptPeerSession(session);
2232
+ return;
2233
+ }
2234
+
2235
+ // 显示确认对话框
2236
+ this._showCameraRequestDialog(session, sender);
2237
+ }
2238
+
2239
+ /**
2240
+ * 处理麦克风开启请求
2241
+ * @param session 对等会话
2242
+ * @param sender 发送者信息
2243
+ */
2244
+ }, {
2245
+ key: "_handleMicrophoneRequest",
2246
+ value: function _handleMicrophoneRequest(session, sender) {
2247
+ var localUserHasAudio = this._deviceStore.microphoneEnabled;
2248
+ this.logger.info('Handling microphone request', {
2249
+ sessionId: session.sessionId,
2250
+ localUserHasAudio: localUserHasAudio
2251
+ });
2252
+
2253
+ // 如果本地用户已经开启麦克风,直接接受请求
2254
+ if (localUserHasAudio) {
2255
+ this._peerSessionControl.acceptPeerSession(session);
2256
+ return;
2257
+ }
2258
+
2259
+ // 显示确认对话框
2260
+ this._showMicrophoneRequestDialog(session, sender);
2261
+ }
2262
+
2263
+ /**
2264
+ * 显示摄像头请求确认对话框
2265
+ * @param session 对等会话
2266
+ * @param sender 发送者信息
2267
+ */
2268
+ }, {
2269
+ key: "_showCameraRequestDialog",
2270
+ value: function _showCameraRequestDialog(session, sender) {
2271
+ var _this21 = this;
2272
+ this.openConfirmDialog({
2273
+ height: 166,
2274
+ title: transI18n('fmt_attendies_tips_apply_video_title', {
2275
+ reason1: transI18n(userRoleI18nKey[sender.userRole])
2276
+ }),
2277
+ content: transI18n('fmt_additional_tips_cameraturnon'),
2278
+ okText: transI18n('fmt_additional_button_accept'),
2279
+ cancelText: transI18n('fmt_additional_button_refuse'),
2280
+ closable: false,
2281
+ onOk: function onOk() {
2282
+ _this21._peerSessionControl.acceptPeerSession(session);
2283
+ _this21._deviceStreamStore.enableCameraWithPreCheck(true);
2284
+ },
2285
+ onCancel: function onCancel() {
2286
+ _this21._peerSessionControl.rejectPeerSession(session);
2287
+ }
2288
+ }, FcrUISessionKey.REQUEST_OPEN_CAMERA);
2289
+ }
2290
+
2291
+ /**
2292
+ * 显示麦克风请求确认对话框
2293
+ * @param session 对等会话
2294
+ * @param sender 发送者信息
2295
+ */
2296
+ }, {
2297
+ key: "_showMicrophoneRequestDialog",
2298
+ value: function _showMicrophoneRequestDialog(session, sender) {
2299
+ var _this22 = this;
2300
+ this.openConfirmDialog({
2301
+ title: transI18n('fmt_attendies_tips_apply_audio_title', {
2302
+ reason1: transI18n(userRoleI18nKey[sender.userRole])
2303
+ }),
2304
+ content: transI18n('fmt_additional_tips_agreeturnon'),
2305
+ okText: transI18n('fmt_device_label_audio_unmute'),
2306
+ cancelText: transI18n('fmt_additional_options_Keepsilent'),
2307
+ closable: false,
2308
+ onOk: function onOk() {
2309
+ _this22._processedUserOpenDeviceRequests["delete"](session.sessionId);
2310
+ _this22._peerSessionControl.acceptPeerSession(session);
2311
+ _this22._deviceStreamStore.enableMicrophoneWithPreCheck(true);
2312
+ },
2313
+ onCancel: function onCancel() {
2314
+ _this22._processedUserOpenDeviceRequests["delete"](session.sessionId);
2315
+ _this22._peerSessionControl.rejectPeerSession(session);
2316
+ },
2317
+ height: 166
2318
+ }, FcrUISessionKey.REQUEST_OPEN_MICROPHONE);
2319
+ }
2320
+ }, {
2321
+ key: "_handleEvent",
2322
+ value: function _handleEvent(event, payload) {
2323
+ switch (event) {
2324
+ case FcrUIAction.PARTICIPANT_ACTION:
2325
+ {
2326
+ var actionPayload = payload;
2327
+ this.handlerUserAction(actionPayload.action, actionPayload.userId);
2328
+ break;
2329
+ }
2330
+ case FcrUIAction.CHANGE_PARTICIPANT_TAB:
2331
+ this.handleActiveTab(payload);
2332
+ break;
2333
+ }
2334
+ }
2335
+ }]);
2336
+ }();
2337
+ _ParticipantStoreBase = ParticipantStoreBase;
2338
+ var _applyDecs$e = _slicedToArray(_applyDecs(_ParticipantStoreBase, [[observable, 1, "_isChecked"], [observable, 1, "_participantsWindowActive"], [observable, 1, "enableParticipantsJoinWithMute"], [observable, 1, "searchText"], [observable, 1, "currentModal"], [observable, 1, "mergeConfirmDialog"], [observable, 1, "mergeUserId"], [observable, 1, "activeTab"], [observable, 1, "interpreterInputLanguageList"], [observable, 1, "newName"], [observable, 1, "allowUnmute"], [observable, 1, "joinWithMuteAudio"], [observable, 1, "showBecomeHostButton"], [observable, 1, "_userCount"], [computed, 3, "audioVolumeMap"], [computed, 3, "userListSource"], [computed, 3, "spotlightStreamId"], [computed, 3, "mergeUserInfo"], [computed, 3, "userMap"], [computed, 3, "userCount"], [computed, 3, "pinedStreamIds"], [computed, 3, "hasPinnedStream"], [computed, 3, "userList"], [computed, 3, "localMicVolume"], [computed, 3, "hasRevokeHostPermission"], [computed, 3, "waitingRoomUserCount"], [computed, 3, "isNewWaitingRoomUserEnter"], [bound, 2, "hasMutePermission"], [bound, 2, "hasWaitingRoomPermission"], [bound, 2, "hasUnmutePermission"], [bound, 2, "hasRequestStartAudioPermission"], [_setCurrentModalDecs, 18, "setCurrentModal"], [bound, 2, "closeParticipantsAside"], [bound, 2, "closeDialog"], [_setParticipantsWindowActiveDecs, 18, "setParticipantsWindowActive"], [_handlerSearchUserDecs, 18, "handlerSearchUser"], [bound, 2, "onInvite"], [bound, 2, "setMergeConfirmDialog"], [bound, 2, "mergeConfirmDialogOk"], [_openRemoveAdmitWaitingRoomDialogDecs, 18, "openRemoveAdmitWaitingRoomDialog"], [_setAllowUnmuteDecs, 18, "setAllowUnmute"], [_setAllowJoinWithMuteAudioDecs, 18, "setAllowJoinWithMuteAudio"], [_openMuteAllDialogDecs, 18, "openMuteAllDialog"], [_handlerRoomControlActionDecs, 18, "handlerRoomControlAction"], [bound, 2, "moveParticipantFromDialogToAside"], [_moveToMainRoomByUserIdsDecs, 18, "moveToMainRoomByUserIds"], [_kickOutWaitingRoomAllMemberDecs, 18, "kickOutWaitingRoomAllMember"], [_moveToMainRoomAllMemberDecs, 18, "moveToMainRoomAllMember"], [_removeWaitingRoomUserDecs, 18, "removeWaitingRoomUser"], [bound, 2, "removePin"], [bound, 2, "addPin"], [bound, 2, "_getPinStreamIdFromUser"], [_handleUserCountUpdatedDecs, 18, "_handleUserCountUpdated"], [_handleConfirmChangeNameDecs, 18, "handleConfirmChangeName"], [_handleCancelChangeNameDecs, 18, "handleCancelChangeName"], [_closeChangeNameDialogDecs, 18, "_closeChangeNameDialog"], [_getOutputLanguageDecs, 18, "_getOutputLanguage"], [_handlerUserActionDecs, 18, "handlerUserAction"], [_handleActiveTabDecs, 18, "handleActiveTab"], [_moveToWaitingRoomByUserIdDecs, 18, "_moveToWaitingRoomByUserId"], [_kickOutUserDecs, 18, "_kickOutUser"], [_onPeerSessionReceivedDecs, 18, "_onPeerSessionReceived"], [bound, 2, "_onPeerSessionAccepted"], [bound, 2, "_onPeerSessionRejected"], [bound, 2, "_handleEvent"]], []).e, 15);
2339
+ _init__isChecked = _applyDecs$e[0];
2340
+ _init__participantsWindowActive = _applyDecs$e[1];
2341
+ _init_enableParticipantsJoinWithMute = _applyDecs$e[2];
2342
+ _init_searchText = _applyDecs$e[3];
2343
+ _init_currentModal = _applyDecs$e[4];
2344
+ _init_mergeConfirmDialog = _applyDecs$e[5];
2345
+ _init_mergeUserId = _applyDecs$e[6];
2346
+ _init_activeTab = _applyDecs$e[7];
2347
+ _init_interpreterInputLanguageList = _applyDecs$e[8];
2348
+ _init_newName = _applyDecs$e[9];
2349
+ _init_allowUnmute = _applyDecs$e[10];
2350
+ _init_joinWithMuteAudio = _applyDecs$e[11];
2351
+ _init_showBecomeHostButton = _applyDecs$e[12];
2352
+ _init__userCount = _applyDecs$e[13];
2353
+ _initProto = _applyDecs$e[14];
2354
+ export var StoreContext = /*#__PURE__*/createContext(null);