fcr-ui-scene 3.4.1 → 3.4.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 (567) hide show
  1. package/lib/base.d.ts +40 -5
  2. package/lib/base.js +237 -22
  3. package/lib/common/device-store.d.ts +14 -23
  4. package/lib/common/device-store.js +252 -361
  5. package/lib/common/device-stream-store.d.ts +14 -8
  6. package/lib/common/device-stream-store.js +116 -254
  7. package/lib/common/event-store.d.ts +10 -35
  8. package/lib/common/event-store.js +13 -64
  9. package/lib/common/security-store.d.ts +39 -47
  10. package/lib/common/security-store.js +379 -335
  11. package/lib/creator.d.ts +1 -1
  12. package/lib/creator.js +4 -9
  13. package/lib/electron/app.js +4 -2
  14. package/lib/electron/bootstrap-dev.js +0 -7
  15. package/lib/electron/bootstrap-sdk.js +10 -0
  16. package/lib/electron/injections.d.ts +2 -0
  17. package/lib/electron/injections.js +17 -2
  18. package/lib/electron/logger.d.ts +0 -4
  19. package/lib/electron/logger.js +2 -5
  20. package/lib/electron/main.js +1 -1
  21. package/lib/electron/plugins/devtool-shortcut.js +10 -1
  22. package/lib/electron/plugins/meeting-state.js +1 -1
  23. package/lib/electron/preload.js +3 -1
  24. package/lib/fragments/control-bar/cloud-recording-buttons.js +1 -1
  25. package/lib/fragments/control-bar/control-bar-store.d.ts +1 -44
  26. package/lib/fragments/control-bar/control-bar-store.js +80 -457
  27. package/lib/fragments/control-bar/device/index.js +3 -5
  28. package/lib/fragments/control-bar/index.css +10 -15
  29. package/lib/fragments/control-bar/index.js +0 -24
  30. package/lib/fragments/control-bar/more-actions/index.css +0 -53
  31. package/lib/fragments/control-bar/more-actions/index.js +38 -73
  32. package/lib/fragments/control-bar/security-content/index.css +0 -75
  33. package/lib/fragments/control-bar/security-content/index.js +19 -105
  34. package/lib/fragments/control-bar/share-state-nav/index.js +1 -1
  35. package/lib/fragments/control-bar/view.js +8 -23
  36. package/lib/fragments/live-streaming/store.d.ts +1 -1
  37. package/lib/fragments/live-streaming/store.js +1 -1
  38. package/lib/fragments/live-streaming/view.js +2 -4
  39. package/lib/fragments/share-screen-selection/selection-store.d.ts +1 -1
  40. package/lib/fragments/share-screen-selection/selection-store.js +1 -1
  41. package/lib/fragments/share-screen-selection/view.js +20 -20
  42. package/lib/fragments/toolbar/components/eraser-picker.js +1 -1
  43. package/lib/fragments/toolbar/components/pen-picker.js +1 -1
  44. package/lib/fragments/toolbar/components/shape-picker.js +1 -1
  45. package/lib/fragments/toolbar/components/wrapper.js +1 -1
  46. package/lib/fragments/toolbar/hooks.js +1 -1
  47. package/lib/fragments/toolbar/store.d.ts +1 -1
  48. package/lib/global.css +5 -0
  49. package/lib/index.d.ts +1 -0
  50. package/lib/index.js +7 -4
  51. package/lib/login-confirm-dialog.d.ts +1 -0
  52. package/lib/login-confirm-dialog.js +7 -2
  53. package/lib/modules/Interpreter/action/delete-btn/index.d.ts +2 -2
  54. package/lib/modules/Interpreter/action/edit-btn/index.js +2 -2
  55. package/lib/modules/Interpreter/action/switch-btn/index.js +5 -5
  56. package/lib/modules/Interpreter/dialog-content/index.d.ts +2 -2
  57. package/lib/modules/Interpreter/dialog-content/index.js +4 -4
  58. package/lib/modules/Interpreter/index.d.ts +11 -4
  59. package/lib/modules/Interpreter/index.js +23 -8
  60. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/index.d.ts +2 -2
  61. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/index.js +3 -3
  62. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-user/index.d.ts +2 -2
  63. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-user/index.js +14 -14
  64. package/lib/modules/Interpreter/interpreter-list/interpreter-item/index.d.ts +2 -2
  65. package/lib/modules/Interpreter/interpreter-list/interpreter-item/index.js +2 -2
  66. package/lib/modules/Interpreter/store.d.ts +23 -84
  67. package/lib/modules/Interpreter/store.js +204 -1216
  68. package/lib/modules/Interpreter/type.d.ts +12 -29
  69. package/lib/modules/Interpreter/type.js +2 -10
  70. package/lib/modules/Interpreter/utils.d.ts +1 -5
  71. package/lib/modules/Interpreter/utils.js +28 -86
  72. package/lib/modules/Interpreter/view.js +19 -3
  73. package/lib/modules/action-bar/action-bar-collapes-items.d.ts +1 -4
  74. package/lib/modules/action-bar/action-bar-collapes-items.js +21 -38
  75. package/lib/modules/action-bar/chat/index.js +8 -8
  76. package/lib/modules/action-bar/components/apps/app-item/index.css +1 -2
  77. package/lib/modules/action-bar/components/apps/app-item/index.d.ts +1 -10
  78. package/lib/modules/action-bar/components/apps/appitems.d.ts +1 -3
  79. package/lib/modules/action-bar/components/apps/index.css +2 -2
  80. package/lib/modules/action-bar/components/apps/index.js +2 -3
  81. package/lib/modules/action-bar/components/collapse/index.d.ts +8 -0
  82. package/lib/modules/action-bar/components/collapse/index.js +222 -0
  83. package/lib/modules/action-bar/components/interpreter/index.d.ts +1 -5
  84. package/lib/modules/action-bar/components/item/index.d.ts +9 -0
  85. package/lib/modules/action-bar/components/item/index.js +164 -0
  86. package/lib/modules/action-bar/components/leave/assign-host.d.ts +1 -8
  87. package/lib/modules/action-bar/components/leave/assign-host.js +1 -1
  88. package/lib/modules/action-bar/components/leave/index.js +9 -24
  89. package/lib/modules/action-bar/components/leave/leave-meeting.d.ts +1 -16
  90. package/lib/modules/action-bar/components/more/index.js +13 -9
  91. package/lib/modules/action-bar/components/more/poppover-content.d.ts +1 -4
  92. package/lib/modules/action-bar/components/more/poppover-content.js +28 -5
  93. package/lib/modules/action-bar/components/notification-bar/assets/dome.png +0 -0
  94. package/lib/modules/action-bar/components/notification-bar/assets/fcr_translateswitch.png +0 -0
  95. package/lib/modules/action-bar/components/notification-bar/components/interpreter/index.css +58 -0
  96. package/lib/modules/action-bar/components/notification-bar/components/interpreter/index.d.ts +8 -0
  97. package/lib/modules/action-bar/components/notification-bar/components/interpreter/index.js +100 -0
  98. package/lib/modules/action-bar/components/notification-bar/components/virtual-image/index.css +56 -0
  99. package/lib/modules/action-bar/components/notification-bar/components/virtual-image/index.d.ts +5 -0
  100. package/lib/modules/action-bar/components/notification-bar/components/virtual-image/index.js +33 -0
  101. package/lib/modules/action-bar/components/notification-bar/index.css +74 -0
  102. package/lib/modules/action-bar/components/notification-bar/index.d.ts +2 -0
  103. package/lib/modules/action-bar/components/notification-bar/index.js +99 -0
  104. package/lib/modules/action-bar/components/participants/index.js +2 -2
  105. package/lib/modules/action-bar/components/placement/index.d.ts +4 -0
  106. package/lib/modules/action-bar/components/placement/index.js +18 -0
  107. package/lib/modules/action-bar/components/record/stop-record-dialog.d.ts +1 -3
  108. package/lib/modules/action-bar/components/screen-share/submenu.js +25 -2
  109. package/lib/modules/action-bar/components/security/index.js +3 -1
  110. package/lib/modules/action-bar/components/smaller/index.d.ts +1 -0
  111. package/lib/modules/action-bar/components/smaller/index.js +52 -0
  112. package/lib/modules/action-bar/components/trigger-input-language-room/fcr_translateswitch.png +0 -0
  113. package/lib/modules/action-bar/components/trigger-input-language-room/index.css +86 -0
  114. package/lib/modules/action-bar/components/trigger-input-language-room/index.d.ts +3 -0
  115. package/lib/modules/action-bar/components/trigger-input-language-room/index.js +215 -0
  116. package/lib/modules/action-bar/components/trigger-output-language/fcr_translateswitch.png +0 -0
  117. package/lib/modules/action-bar/components/trigger-output-language/index.css +86 -0
  118. package/lib/modules/action-bar/components/trigger-output-language/index.d.ts +2 -0
  119. package/lib/modules/action-bar/components/trigger-output-language/index.js +230 -0
  120. package/lib/modules/action-bar/components/trigger-output-language-room/constant.d.ts +10 -0
  121. package/lib/modules/action-bar/components/trigger-output-language-room/constant.js +8 -0
  122. package/lib/modules/action-bar/components/trigger-output-language-room/guide-tooltip/index.css +22 -0
  123. package/lib/modules/action-bar/components/trigger-output-language-room/guide-tooltip/index.d.ts +3 -0
  124. package/lib/modules/action-bar/components/trigger-output-language-room/guide-tooltip/index.js +75 -0
  125. package/lib/modules/action-bar/components/trigger-output-language-room/index.d.ts +8 -0
  126. package/lib/modules/action-bar/components/trigger-output-language-room/index.js +98 -0
  127. package/lib/modules/action-bar/components/trigger-output-language-room/trigger-language-room.d.ts +5 -0
  128. package/lib/modules/action-bar/components/trigger-output-language-room/trigger-language-room.js +66 -0
  129. package/lib/modules/action-bar/components/trigger-output-language-room/trigger-main-room.d.ts +5 -0
  130. package/lib/modules/action-bar/components/trigger-output-language-room/trigger-main-room.js +37 -0
  131. package/lib/modules/action-bar/components/trigger-output-language-room/useChangeOutputRoomTool.d.ts +12 -0
  132. package/lib/modules/action-bar/components/trigger-output-language-room/useChangeOutputRoomTool.js +138 -0
  133. package/lib/modules/action-bar/components/trigger-subscribe-language/guide-tooltip/index.css +22 -0
  134. package/lib/modules/action-bar/components/trigger-subscribe-language/guide-tooltip/index.d.ts +3 -0
  135. package/lib/modules/action-bar/components/trigger-subscribe-language/guide-tooltip/index.js +70 -0
  136. package/lib/modules/action-bar/components/trigger-subscribe-language/index.d.ts +5 -0
  137. package/lib/modules/action-bar/components/trigger-subscribe-language/index.js +209 -0
  138. package/lib/modules/action-bar/device/index.css +2 -7
  139. package/lib/modules/action-bar/device/index.js +24 -22
  140. package/lib/modules/action-bar/enums.d.ts +23 -0
  141. package/lib/modules/action-bar/enums.js +35 -0
  142. package/lib/modules/action-bar/index.d.ts +36 -6
  143. package/lib/modules/action-bar/index.dev.d.ts +0 -1
  144. package/lib/modules/action-bar/index.dev.js +94 -121
  145. package/lib/modules/action-bar/index.js +46 -18
  146. package/lib/modules/action-bar/leave/assign-host.d.ts +0 -3
  147. package/lib/modules/action-bar/leave/assign-host.js +4 -2
  148. package/lib/modules/action-bar/leave/index.css +0 -10
  149. package/lib/modules/action-bar/leave/index.js +34 -84
  150. package/lib/modules/action-bar/leave/leave-meeting.d.ts +1 -13
  151. package/lib/modules/action-bar/leave/leave-meeting.js +19 -37
  152. package/lib/modules/action-bar/live-streaming/index.js +3 -3
  153. package/lib/modules/action-bar/more/index.js +6 -9
  154. package/lib/modules/action-bar/more/poppover-content.js +16 -37
  155. package/lib/modules/action-bar/participants/index.css +0 -12
  156. package/lib/modules/action-bar/participants/index.js +16 -23
  157. package/lib/modules/action-bar/record/index.js +4 -4
  158. package/lib/modules/action-bar/screen-share/index.js +5 -14
  159. package/lib/modules/action-bar/screen-share/submenu.js +26 -20
  160. package/lib/modules/action-bar/security/drop-menu.js +22 -137
  161. package/lib/modules/action-bar/security/index.js +6 -12
  162. package/lib/modules/action-bar/settings/index.js +4 -4
  163. package/lib/modules/action-bar/smaller.js +5 -5
  164. package/lib/modules/action-bar/store.d.ts +84 -98
  165. package/lib/modules/action-bar/store.js +567 -707
  166. package/lib/modules/action-bar/types.d.ts +94 -0
  167. package/lib/modules/action-bar/types.js +6 -0
  168. package/lib/modules/action-bar/view.d.ts +1 -2
  169. package/lib/modules/action-bar/view.js +11 -11
  170. package/lib/modules/audio-stream/index.d.ts +22 -10
  171. package/lib/modules/audio-stream/index.js +78 -82
  172. package/lib/modules/chat/chat-bar/index.css +0 -6
  173. package/lib/modules/chat/chat-bar/index.d.ts +3 -3
  174. package/lib/modules/chat/chat-bar/index.js +39 -51
  175. package/lib/modules/chat/chat-room-store.d.ts +135 -0
  176. package/lib/modules/chat/chat-room-store.js +954 -0
  177. package/lib/modules/chat/chat-select/index.css +7 -27
  178. package/lib/modules/chat/chat-select/index.d.ts +1 -1
  179. package/lib/modules/chat/chat-select/index.js +4 -18
  180. package/lib/modules/chat/chat.d.ts +2 -1
  181. package/lib/modules/chat/chat.js +128 -196
  182. package/lib/modules/chat/components/chat-action/index.d.ts +1 -0
  183. package/lib/modules/chat/components/chat-action/index.js +28 -0
  184. package/lib/modules/chat/components/chat-bar/index.css +85 -0
  185. package/lib/modules/chat/components/chat-bar/index.d.ts +3 -0
  186. package/lib/modules/chat/components/chat-bar/index.js +145 -0
  187. package/lib/modules/chat/components/chat-select/index.css +185 -0
  188. package/lib/modules/chat/components/chat-select/index.d.ts +3 -0
  189. package/lib/modules/chat/components/chat-select/index.js +237 -0
  190. package/lib/modules/chat/components/message-list/index.d.ts +4 -0
  191. package/lib/modules/chat/components/message-list/index.js +650 -0
  192. package/lib/modules/chat/index.d.ts +13 -5
  193. package/lib/modules/chat/index.dev.d.ts +0 -1
  194. package/lib/modules/chat/index.dev.js +71 -72
  195. package/lib/modules/chat/index.js +45 -22
  196. package/lib/modules/chat/message-list.js +51 -68
  197. package/lib/modules/chat/mock.d.ts +1 -1
  198. package/lib/modules/chat/store.d.ts +17 -162
  199. package/lib/modules/chat/store.js +95 -963
  200. package/lib/modules/chat/types.d.ts +70 -0
  201. package/lib/modules/chat/types.js +17 -0
  202. package/lib/modules/chat/view.d.ts +10 -0
  203. package/lib/modules/chat/view.js +372 -0
  204. package/lib/modules/components/device-control/components/audio-menu/index.js +2 -2
  205. package/lib/modules/components/device-control/components/microphone/index.js +7 -7
  206. package/lib/modules/components/device-control/store.d.ts +11 -12
  207. package/lib/modules/components/device-control/store.js +46 -49
  208. package/lib/modules/components/dialog-container/component/body.js +2 -1
  209. package/lib/modules/components/dialog-container/index.d.ts +2 -2
  210. package/lib/modules/components/leave-meeting/components/assign-host.d.ts +3 -0
  211. package/lib/modules/components/leave-meeting/components/assign-host.js +70 -0
  212. package/lib/modules/components/leave-meeting/components/index.css +125 -0
  213. package/lib/modules/components/leave-meeting/index.d.ts +4 -0
  214. package/lib/modules/components/leave-meeting/index.js +147 -0
  215. package/lib/modules/components/leave-meeting/store.d.ts +31 -0
  216. package/lib/modules/components/leave-meeting/store.js +292 -0
  217. package/lib/modules/components/member-window/index.d.ts +1 -1
  218. package/lib/modules/components/member-window/index.js +12 -6
  219. package/lib/modules/components/security-menu/index.d.ts +2 -0
  220. package/lib/modules/components/security-menu/index.js +34 -35
  221. package/lib/modules/components/tab-frame/index.d.ts +2 -2
  222. package/lib/modules/components/tab-frame/index.js +26 -5
  223. package/lib/modules/connection-gateway/components/computer/index.js +4 -4
  224. package/lib/modules/connection-gateway/components/phone/components/callinfo/index.d.ts +1 -1
  225. package/lib/modules/connection-gateway/components/phone/index.js +2 -2
  226. package/lib/modules/connection-gateway/components/tabs/index.js +1 -2
  227. package/lib/modules/connection-gateway/enums.d.ts +4 -0
  228. package/lib/modules/connection-gateway/enums.js +12 -0
  229. package/lib/modules/connection-gateway/index.d.ts +13 -4
  230. package/lib/modules/connection-gateway/index.js +25 -15
  231. package/lib/modules/connection-gateway/store.d.ts +22 -18
  232. package/lib/modules/connection-gateway/store.js +60 -36
  233. package/lib/modules/connection-gateway/types.d.ts +4 -0
  234. package/lib/modules/connection-gateway/types.js +6 -0
  235. package/lib/modules/connection-gateway/view.js +2 -2
  236. package/lib/modules/control-bar/components/meeting-details/index.js +30 -25
  237. package/lib/modules/control-bar/components/more-actions/index.css +18 -0
  238. package/lib/modules/control-bar/components/more-actions/index.d.ts +1 -5
  239. package/lib/modules/control-bar/components/more-actions/index.js +58 -9
  240. package/lib/modules/control-bar/components/share-state-nav/index.d.ts +1 -7
  241. package/lib/modules/control-bar/components/share-state-nav/index.js +2 -1
  242. package/lib/modules/control-bar/components/stop-live-streaming/stop-button.d.ts +1 -1
  243. package/lib/modules/control-bar/components/stop-live-streaming/stop-button.js +2 -2
  244. package/lib/modules/control-bar/components/transfer-position-icon/index.d.ts +1 -10
  245. package/lib/modules/control-bar/components/transfer-position-icon/index.js +7 -12
  246. package/lib/modules/control-bar/enums.d.ts +21 -0
  247. package/lib/modules/control-bar/enums.js +31 -0
  248. package/lib/modules/control-bar/index.d.ts +30 -7
  249. package/lib/modules/control-bar/index.js +46 -27
  250. package/lib/modules/control-bar/store.d.ts +38 -26
  251. package/lib/modules/control-bar/store.js +172 -282
  252. package/lib/modules/control-bar/types.d.ts +20 -0
  253. package/lib/modules/control-bar/types.js +6 -0
  254. package/lib/modules/control-bar/view.js +68 -34
  255. package/lib/modules/device-pretest/index.js +4 -4
  256. package/lib/modules/device-pretest/settings/video-settings-basic.js +1 -1
  257. package/lib/modules/device-pretest/store.d.ts +8 -9
  258. package/lib/modules/device-pretest/store.js +52 -36
  259. package/lib/modules/dialog/components/Interpreter/electron.js +21 -15
  260. package/lib/modules/dialog/components/Interpreter/index.js +2 -2
  261. package/lib/modules/dialog/components/chat/electron.d.ts +1 -1
  262. package/lib/modules/dialog/components/chat/electron.js +19 -10
  263. package/lib/modules/dialog/components/chat/index.js +2 -2
  264. package/lib/modules/dialog/components/confirm/electron.d.ts +1 -1
  265. package/lib/modules/dialog/components/confirm/electron.js +68 -38
  266. package/lib/modules/dialog/components/confirm/index.js +1 -1
  267. package/lib/modules/dialog/components/connection-gateway/electron.d.ts +1 -1
  268. package/lib/modules/dialog/components/connection-gateway/electron.js +8 -10
  269. package/lib/modules/dialog/components/connection-gateway/index.css +2 -0
  270. package/lib/modules/dialog/components/connection-gateway/index.d.ts +3 -1
  271. package/lib/modules/dialog/components/connection-gateway/index.js +20 -7
  272. package/lib/modules/dialog/components/connection-gateway/tabs.d.ts +6 -0
  273. package/lib/modules/dialog/components/connection-gateway/tabs.js +44 -0
  274. package/lib/modules/dialog/components/control-bar/index.d.ts +5 -1
  275. package/lib/modules/dialog/components/control-bar/index.js +122 -9
  276. package/lib/modules/dialog/components/device-setting/electron.js +6 -2
  277. package/lib/modules/dialog/components/device-setting/index.js +2 -2
  278. package/lib/modules/dialog/components/dialog-container/component/body.d.ts +7 -0
  279. package/lib/modules/dialog/components/dialog-container/component/body.js +77 -0
  280. package/lib/modules/dialog/components/dialog-container/index.css +81 -0
  281. package/lib/modules/dialog/components/dialog-container/index.d.ts +16 -0
  282. package/lib/modules/dialog/components/dialog-container/index.js +112 -0
  283. package/lib/modules/dialog/components/invite/index.js +32 -7
  284. package/lib/modules/dialog/components/live-streaming/index.js +9 -5
  285. package/lib/modules/dialog/components/participant/electron.js +11 -5
  286. package/lib/modules/dialog/components/participant/index.js +4 -3
  287. package/lib/modules/dialog/components/share-screen-selection/index.js +9 -5
  288. package/lib/modules/dialog/components/system-preference/electron.js +1 -1
  289. package/lib/modules/dialog/components/toast/index.js +1 -1
  290. package/lib/modules/dialog/components/video-window/index.d.ts +2 -0
  291. package/lib/modules/dialog/components/video-window/index.js +148 -0
  292. package/lib/modules/dialog/components/whiteboard/index.js +2 -2
  293. package/lib/modules/dialog/dialogs.d.ts +2 -5
  294. package/lib/modules/dialog/dialogs.js +2 -157
  295. package/lib/modules/dialog/hooks/useElectron.d.ts +3 -25
  296. package/lib/modules/dialog/hooks/useElectron.js +91 -35
  297. package/lib/modules/dialog/index.d.ts +30 -4
  298. package/lib/modules/dialog/index.js +62 -6
  299. package/lib/modules/dialog/store.d.ts +46 -12
  300. package/lib/modules/dialog/store.js +121 -65
  301. package/lib/modules/dialog/types/index.d.ts +14 -3
  302. package/lib/modules/event-confirm/index.css +1 -1
  303. package/lib/modules/event-confirm/index.d.ts +13 -6
  304. package/lib/modules/event-confirm/index.js +28 -11
  305. package/lib/modules/event-confirm/store.d.ts +9 -3
  306. package/lib/modules/event-confirm/store.js +16 -7
  307. package/lib/modules/event-confirm/view.js +5 -1
  308. package/lib/modules/event-toast/index.d.ts +7 -6
  309. package/lib/modules/event-toast/index.js +19 -8
  310. package/lib/modules/event-toast/store.d.ts +8 -3
  311. package/lib/modules/event-toast/store.js +15 -6
  312. package/lib/modules/invite/components/error-tips.d.ts +4 -0
  313. package/lib/modules/invite/components/error-tips.js +18 -0
  314. package/lib/modules/invite/components/pstn-invite.d.ts +2 -0
  315. package/lib/modules/invite/components/pstn-invite.js +297 -0
  316. package/lib/modules/invite/components/voip-invite.d.ts +1 -0
  317. package/lib/modules/invite/components/voip-invite.js +276 -0
  318. package/lib/modules/invite/enums.d.ts +22 -0
  319. package/lib/modules/invite/enums.js +33 -0
  320. package/lib/modules/invite/index.d.ts +7 -8
  321. package/lib/modules/invite/index.js +17 -15
  322. package/lib/modules/invite/pstn-invite.js +9 -7
  323. package/lib/modules/invite/store.d.ts +11 -26
  324. package/lib/modules/invite/store.js +55 -25
  325. package/lib/modules/invite/types.d.ts +14 -0
  326. package/lib/modules/invite/types.js +6 -0
  327. package/lib/modules/invite/view.d.ts +0 -4
  328. package/lib/modules/invite/view.js +7 -11
  329. package/lib/modules/invite/voip-invite.js +6 -5
  330. package/lib/modules/layout/components/Aside.js +34 -17
  331. package/lib/modules/layout/components/Carousel.js +1 -1
  332. package/lib/modules/layout/components/Gallery.js +1 -1
  333. package/lib/modules/layout/components/index.d.ts +1 -1
  334. package/lib/modules/layout/components/index.js +4 -4
  335. package/lib/modules/layout/components/who-is-speaking.d.ts +2 -0
  336. package/lib/modules/layout/components/who-is-speaking.js +60 -0
  337. package/lib/modules/layout/index.d.ts +26 -4
  338. package/lib/modules/layout/index.dev.d.ts +0 -1
  339. package/lib/modules/layout/index.dev.js +312 -386
  340. package/lib/modules/layout/index.js +25 -10
  341. package/lib/modules/layout/member-window/index.css +18 -116
  342. package/lib/modules/layout/member-window/index.d.ts +3 -10
  343. package/lib/modules/layout/member-window/index.js +115 -227
  344. package/lib/modules/layout/store.d.ts +61 -71
  345. package/lib/modules/layout/store.js +311 -573
  346. package/lib/modules/layout/view.d.ts +2 -0
  347. package/lib/modules/layout/view.js +127 -2
  348. package/lib/modules/live-streaming/index.d.ts +15 -7
  349. package/lib/modules/live-streaming/index.dev.js +13 -13
  350. package/lib/modules/live-streaming/index.js +20 -15
  351. package/lib/modules/live-streaming/store.d.ts +21 -14
  352. package/lib/modules/live-streaming/store.js +84 -144
  353. package/lib/modules/live-streaming/view.js +2 -2
  354. package/lib/modules/notification/index.d.ts +9 -11
  355. package/lib/modules/notification/index.js +21 -14
  356. package/lib/modules/notification/interpreter-status/index.js +1 -2
  357. package/lib/modules/notification/store.d.ts +5 -11
  358. package/lib/modules/notification/store.js +12 -62
  359. package/lib/modules/notification/view.d.ts +5 -3
  360. package/lib/modules/notification/view.js +8 -5
  361. package/lib/modules/offscreen-pulling/index.js +1 -1
  362. package/lib/modules/participant/attendee/index.css +51 -0
  363. package/lib/modules/participant/attendee/index.d.ts +5 -8
  364. package/lib/modules/participant/attendee/index.js +15 -61
  365. package/lib/modules/participant/components/attendee/components/microphone-indicator/index.d.ts +6 -0
  366. package/lib/modules/participant/components/attendee/components/microphone-indicator/index.js +28 -0
  367. package/lib/modules/participant/components/attendee/components/user-avatar/index.d.ts +7 -0
  368. package/lib/modules/participant/components/attendee/components/user-avatar/index.js +39 -0
  369. package/lib/modules/participant/components/attendee/index.css +69 -0
  370. package/lib/modules/participant/components/attendee/index.d.ts +4 -0
  371. package/lib/modules/participant/components/attendee/index.js +337 -0
  372. package/lib/modules/participant/components/can-moveable/index.d.ts +1 -0
  373. package/lib/modules/participant/components/can-moveable/index.js +68 -0
  374. package/lib/modules/participant/components/drop-menu/index.js +8 -8
  375. package/lib/modules/participant/components/footer/buttons.d.ts +2 -3
  376. package/lib/modules/participant/components/footer/buttons.js +2 -3
  377. package/lib/modules/participant/components/footer/index.js +2 -2
  378. package/lib/modules/participant/components/mute-all/index.d.ts +3 -4
  379. package/lib/modules/participant/components/mute-all/index.js +31 -44
  380. package/lib/modules/participant/components/operate-waitingroom-member/index.d.ts +2 -0
  381. package/lib/modules/participant/components/operate-waitingroom-member/index.js +48 -0
  382. package/lib/modules/participant/components/participants/index.js +27 -50
  383. package/lib/modules/participant/components/user-action/index.d.ts +17 -0
  384. package/lib/modules/participant/components/user-action/index.js +169 -0
  385. package/lib/modules/participant/index.d.ts +34 -7
  386. package/lib/modules/participant/index.dev.d.ts +0 -1
  387. package/lib/modules/participant/index.dev.js +87 -116
  388. package/lib/modules/participant/index.js +39 -13
  389. package/lib/modules/participant/member-list-data-source.d.ts +4 -1
  390. package/lib/modules/participant/member-list-data-source.js +58 -31
  391. package/lib/modules/participant/room-control-drop-menu/index.css +0 -37
  392. package/lib/modules/participant/store.d.ts +58 -25
  393. package/lib/modules/participant/store.js +321 -298
  394. package/lib/modules/participant/type.d.ts +45 -1
  395. package/lib/modules/participant/type.js +15 -1
  396. package/lib/modules/pc-audio-connect/index.css +12 -0
  397. package/lib/modules/pc-audio-connect/index.d.ts +22 -0
  398. package/lib/modules/pc-audio-connect/index.js +68 -0
  399. package/lib/modules/pc-audio-connect/store.d.ts +46 -0
  400. package/lib/modules/pc-audio-connect/store.js +301 -0
  401. package/lib/modules/pc-audio-connect/types.d.ts +0 -0
  402. package/lib/modules/pc-audio-connect/types.js +1 -0
  403. package/lib/modules/pc-audio-connect/view.d.ts +3 -0
  404. package/lib/modules/pc-audio-connect/view.js +66 -0
  405. package/lib/modules/phone-audio-connect/components/callinfo/index.css +36 -0
  406. package/lib/modules/phone-audio-connect/components/callinfo/index.d.ts +10 -0
  407. package/lib/modules/phone-audio-connect/components/callinfo/index.js +77 -0
  408. package/lib/modules/phone-audio-connect/components/calling/index.css +72 -0
  409. package/lib/modules/phone-audio-connect/components/calling/index.d.ts +7 -0
  410. package/lib/modules/phone-audio-connect/components/calling/index.js +58 -0
  411. package/lib/modules/phone-audio-connect/components/remeber/index.css +10 -0
  412. package/lib/modules/phone-audio-connect/components/remeber/index.d.ts +5 -0
  413. package/lib/modules/phone-audio-connect/components/remeber/index.js +24 -0
  414. package/lib/modules/phone-audio-connect/components/useing/index.css +46 -0
  415. package/lib/modules/phone-audio-connect/components/useing/index.d.ts +3 -0
  416. package/lib/modules/phone-audio-connect/components/useing/index.js +36 -0
  417. package/lib/modules/phone-audio-connect/enums.d.ts +4 -0
  418. package/lib/modules/phone-audio-connect/enums.js +12 -0
  419. package/lib/modules/phone-audio-connect/index.css +56 -0
  420. package/lib/modules/phone-audio-connect/index.d.ts +16 -0
  421. package/lib/modules/phone-audio-connect/index.js +63 -0
  422. package/lib/modules/phone-audio-connect/store.d.ts +46 -0
  423. package/lib/modules/phone-audio-connect/store.js +320 -0
  424. package/lib/modules/phone-audio-connect/types.d.ts +4 -0
  425. package/lib/modules/phone-audio-connect/types.js +6 -0
  426. package/lib/modules/phone-audio-connect/view.d.ts +3 -0
  427. package/lib/modules/phone-audio-connect/view.js +184 -0
  428. package/lib/modules/setting/audio-settings/audio-settings.js +5 -5
  429. package/lib/modules/setting/index.d.ts +25 -5
  430. package/lib/modules/setting/index.dev.d.ts +0 -1
  431. package/lib/modules/setting/index.dev.js +120 -81
  432. package/lib/modules/setting/index.js +35 -9
  433. package/lib/modules/setting/minutes-settings/minutes-settings.js +1 -1
  434. package/lib/modules/setting/state/index.js +3 -3
  435. package/lib/modules/setting/store.d.ts +48 -14
  436. package/lib/modules/setting/store.js +105 -114
  437. package/lib/modules/setting/translate-settings/translate-settings.js +3 -3
  438. package/lib/modules/setting/video-settings/video-settings-basic.js +19 -22
  439. package/lib/modules/setting/view.js +6 -35
  440. package/lib/modules/share-screen/components/selection/index.css +70 -0
  441. package/lib/modules/share-screen/components/selection/index.d.ts +2 -0
  442. package/lib/modules/share-screen/components/selection/index.js +267 -0
  443. package/lib/modules/share-screen/components/share-state-bar/index.css +76 -0
  444. package/lib/modules/share-screen/components/share-state-bar/index.d.ts +4 -0
  445. package/lib/modules/share-screen/components/share-state-bar/index.js +98 -0
  446. package/lib/modules/share-screen/index.d.ts +15 -18
  447. package/lib/modules/share-screen/index.dev.d.ts +0 -1
  448. package/lib/modules/share-screen/index.dev.js +90 -91
  449. package/lib/modules/share-screen/index.js +22 -22
  450. package/lib/modules/share-screen/selection/index.css +0 -4
  451. package/lib/modules/share-screen/selection/index.js +129 -126
  452. package/lib/modules/share-screen/share-state-bar/index.js +1 -1
  453. package/lib/modules/share-screen/store.d.ts +36 -32
  454. package/lib/modules/share-screen/store.js +250 -219
  455. package/lib/modules/share-screen/types.d.ts +27 -0
  456. package/lib/modules/share-screen/types.js +6 -0
  457. package/lib/modules/share-screen/view.js +1 -1
  458. package/lib/modules/sound-effect/index.d.ts +9 -4
  459. package/lib/modules/sound-effect/index.js +72 -40
  460. package/lib/modules/sound-effect/sound-effect-player.js +1 -1
  461. package/lib/modules/state-bar/index.d.ts +16 -13
  462. package/lib/modules/state-bar/index.dev.d.ts +0 -1
  463. package/lib/modules/state-bar/index.dev.js +78 -83
  464. package/lib/modules/state-bar/index.js +23 -7
  465. package/lib/modules/state-bar/meeting-details.js +24 -12
  466. package/lib/modules/state-bar/meeting-network-state.js +1 -1
  467. package/lib/modules/state-bar/store.d.ts +20 -10
  468. package/lib/modules/state-bar/store.js +84 -87
  469. package/lib/modules/state-bar/view.js +2 -2
  470. package/lib/modules/video-window/deviceState/index.d.ts +2 -2
  471. package/lib/modules/video-window/deviceState/index.js +4 -6
  472. package/lib/modules/video-window/index.css +1 -4
  473. package/lib/modules/video-window/index.d.ts +33 -6
  474. package/lib/modules/video-window/index.js +63 -15
  475. package/lib/modules/video-window/members/index.css +1 -0
  476. package/lib/modules/video-window/members/index.js +25 -11
  477. package/lib/modules/video-window/store.d.ts +58 -27
  478. package/lib/modules/video-window/store.js +166 -161
  479. package/lib/modules/waiting-room-layout/index.d.ts +11 -4
  480. package/lib/modules/waiting-room-layout/index.js +26 -13
  481. package/lib/modules/waiting-room-layout/store.d.ts +6 -3
  482. package/lib/modules/waiting-room-layout/store.js +17 -15
  483. package/lib/modules/whiteboard/components/control-bar/store.d.ts +4 -4
  484. package/lib/modules/whiteboard/components/control-bar/store.js +8 -8
  485. package/lib/modules/whiteboard/index.d.ts +20 -14
  486. package/lib/modules/whiteboard/index.js +250 -223
  487. package/lib/modules/whiteboard/view.d.ts +2 -0
  488. package/lib/modules/whiteboard/view.js +49 -0
  489. package/lib/plugins/browser-runtime-plugin.js +5 -1
  490. package/lib/providers/chat-provider.d.ts +71 -0
  491. package/lib/providers/chat-provider.js +91 -0
  492. package/lib/providers/device-privilege-provider.d.ts +52 -6
  493. package/lib/providers/device-privilege-provider.js +212 -183
  494. package/lib/providers/device-provider.d.ts +203 -45
  495. package/lib/providers/device-provider.js +486 -398
  496. package/lib/providers/device-stream-provider.d.ts +12 -13
  497. package/lib/providers/device-stream-provider.js +86 -193
  498. package/lib/providers/dialog-provider.d.ts +135 -0
  499. package/lib/providers/dialog-provider.js +204 -0
  500. package/lib/providers/event-provider.d.ts +1 -21
  501. package/lib/providers/event-provider.js +19 -57
  502. package/lib/providers/interpreter-provider.d.ts +218 -7
  503. package/lib/providers/interpreter-provider.js +1072 -80
  504. package/lib/providers/local-storage-provider.d.ts +9 -0
  505. package/lib/providers/message-provider.d.ts +69 -0
  506. package/lib/providers/message-provider.js +98 -0
  507. package/lib/providers/monitor-provider.d.ts +5 -0
  508. package/lib/providers/phone-audio-provider.d.ts +131 -0
  509. package/lib/providers/phone-audio-provider.js +515 -0
  510. package/lib/providers/privilege-provider.d.ts +325 -12
  511. package/lib/providers/privilege-provider.js +111 -295
  512. package/lib/providers/renderer-provider.d.ts +46 -4
  513. package/lib/providers/renderer-provider.js +57 -60
  514. package/lib/providers/room-provider.d.ts +113 -6
  515. package/lib/providers/room-provider.js +667 -87
  516. package/lib/providers/screen-share-provider.d.ts +65 -0
  517. package/lib/providers/screen-share-provider.js +238 -0
  518. package/lib/providers/session-provider.d.ts +30 -0
  519. package/lib/runtime.d.ts +2 -0
  520. package/lib/scenes/main-scene.d.ts +41 -3
  521. package/lib/scenes/main-scene.js +407 -246
  522. package/lib/scenes/waiting-scene.d.ts +34 -4
  523. package/lib/scenes/waiting-scene.js +163 -56
  524. package/lib/shared-data-source/chat-data.d.ts +14 -0
  525. package/lib/shared-data-source/chat-data.js +130 -0
  526. package/lib/shared-data-source/device-privilege-data.d.ts +8 -0
  527. package/lib/shared-data-source/device-privilege-data.js +25 -0
  528. package/lib/shared-data-source/interpreter.d.ts +63 -0
  529. package/lib/shared-data-source/interpreter.js +248 -0
  530. package/lib/shared-data-source/layout-data.d.ts +29 -0
  531. package/lib/shared-data-source/layout-data.js +181 -0
  532. package/lib/shared-data-source/pin-data.d.ts +9 -0
  533. package/lib/shared-data-source/pin-data.js +24 -0
  534. package/lib/shared-data-source/setting.d.ts +32 -0
  535. package/lib/shared-data-source/setting.js +153 -0
  536. package/lib/shared-data-source/speaker-spotlight.d.ts +5 -0
  537. package/lib/shared-data-source/speaker-spotlight.js +15 -0
  538. package/lib/shared-data-source/video-window.d.ts +161 -0
  539. package/lib/shared-data-source/video-window.js +1202 -0
  540. package/lib/shared-data-source/waiting-room.d.ts +19 -0
  541. package/lib/shared-data-source/waiting-room.js +158 -0
  542. package/lib/translations/enUS.d.ts +43 -17
  543. package/lib/translations/enUS.js +59 -33
  544. package/lib/translations/zhCN.d.ts +43 -17
  545. package/lib/translations/zhCN.js +57 -31
  546. package/lib/type.d.ts +270 -25
  547. package/lib/type.js +67 -2
  548. package/lib/ui-manager.d.ts +20 -16
  549. package/lib/ui-manager.js +59 -795
  550. package/lib/ui-scene.d.ts +6 -1
  551. package/lib/ui-scene.js +372 -42
  552. package/lib/utilities/constant.d.ts +63 -86
  553. package/lib/utilities/constant.js +151 -175
  554. package/lib/utilities/copyText.js +8 -7
  555. package/lib/utilities/extract.d.ts +1 -1
  556. package/lib/utilities/privilege.d.ts +4 -0
  557. package/lib/utilities/privilege.js +31 -0
  558. package/lib/utilities/setting-config-storage.d.ts +12 -0
  559. package/lib/utilities/setting-config-storage.js +102 -0
  560. package/lib/utilities/tools.d.ts +35 -3
  561. package/lib/utilities/tools.js +104 -2
  562. package/lib/utilities/video-track-render-context.d.ts +3 -4
  563. package/lib/utilities/video-track-render-context.js +1 -1
  564. package/package.json +5 -5
  565. package/public/assets/full-screen-error-boundary-img.png +0 -0
  566. package/public/assets/leave-meeting.png +0 -0
  567. package/public/index.html +24 -14
@@ -1,17 +1,67 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.object.define-properties.js");
3
5
  require("core-js/modules/es.object.define-property.js");
6
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
7
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
8
+ require("core-js/modules/es.object.keys.js");
4
9
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
10
  Object.defineProperty(exports, "__esModule", {
6
11
  value: true
7
12
  });
8
13
  exports.FcrUIInterpreterProviderImpl = void 0;
9
14
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
+ require("core-js/modules/es.array.concat.js");
16
+ require("core-js/modules/es.array.filter.js");
17
+ require("core-js/modules/es.array.find.js");
18
+ require("core-js/modules/es.array.for-each.js");
19
+ require("core-js/modules/es.array.from.js");
20
+ require("core-js/modules/es.array.includes.js");
21
+ require("core-js/modules/es.array.iterator.js");
10
22
  require("core-js/modules/es.array.join.js");
11
23
  require("core-js/modules/es.array.map.js");
12
- require("core-js/modules/es.object.keys.js");
24
+ require("core-js/modules/es.array.push.js");
25
+ require("core-js/modules/es.object.to-string.js");
26
+ require("core-js/modules/es.set.js");
27
+ require("core-js/modules/es.string.includes.js");
28
+ require("core-js/modules/es.string.iterator.js");
29
+ require("core-js/modules/esnext.async-iterator.filter.js");
30
+ require("core-js/modules/esnext.async-iterator.find.js");
31
+ require("core-js/modules/esnext.async-iterator.for-each.js");
13
32
  require("core-js/modules/esnext.async-iterator.map.js");
33
+ require("core-js/modules/esnext.iterator.constructor.js");
34
+ require("core-js/modules/esnext.iterator.filter.js");
35
+ require("core-js/modules/esnext.iterator.find.js");
36
+ require("core-js/modules/esnext.iterator.for-each.js");
14
37
  require("core-js/modules/esnext.iterator.map.js");
38
+ require("core-js/modules/esnext.set.add-all.js");
39
+ require("core-js/modules/esnext.set.delete-all.js");
40
+ require("core-js/modules/esnext.set.difference.v2.js");
41
+ require("core-js/modules/esnext.set.difference.js");
42
+ require("core-js/modules/esnext.set.every.js");
43
+ require("core-js/modules/esnext.set.filter.js");
44
+ require("core-js/modules/esnext.set.find.js");
45
+ require("core-js/modules/esnext.set.intersection.v2.js");
46
+ require("core-js/modules/esnext.set.intersection.js");
47
+ require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
48
+ require("core-js/modules/esnext.set.is-disjoint-from.js");
49
+ require("core-js/modules/esnext.set.is-subset-of.v2.js");
50
+ require("core-js/modules/esnext.set.is-subset-of.js");
51
+ require("core-js/modules/esnext.set.is-superset-of.v2.js");
52
+ require("core-js/modules/esnext.set.is-superset-of.js");
53
+ require("core-js/modules/esnext.set.join.js");
54
+ require("core-js/modules/esnext.set.map.js");
55
+ require("core-js/modules/esnext.set.reduce.js");
56
+ require("core-js/modules/esnext.set.some.js");
57
+ require("core-js/modules/esnext.set.symmetric-difference.v2.js");
58
+ require("core-js/modules/esnext.set.symmetric-difference.js");
59
+ require("core-js/modules/esnext.set.union.v2.js");
60
+ require("core-js/modules/esnext.set.union.js");
61
+ require("core-js/modules/web.dom-collections.for-each.js");
62
+ require("core-js/modules/web.dom-collections.iterator.js");
63
+ require("core-js/modules/web.timers.js");
64
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
65
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
66
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
67
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -20,122 +70,1051 @@ var _logger = require("agora-foundation/lib/logger");
20
70
  var _observable = require("agora-foundation/lib/utilities/observable");
21
71
  var _base = require("../base");
22
72
  var _fcrCore = require("fcr-core");
73
+ var _interpreter = require("../shared-data-source/interpreter");
74
+ var _type = require("../modules/interpreter/type");
75
+ var _imports = require("fcr-core/lib/imports");
76
+ var _type2 = require("agora-rte-sdk/lib/type");
77
+ var _type3 = require("fcr-core/lib/type");
78
+ var _utils = require("../modules/interpreter/utils");
79
+ var _constant = require("../utilities/constant");
80
+ var _enums = require("../modules/action-bar/enums");
81
+ var _i18n = require("agora-ui-foundation/lib/i18n");
82
+ var _lodash = require("lodash");
83
+ 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; }
84
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
85
+ var getRoomJoinOptions = function getRoomJoinOptions(localUser) {
86
+ var roomJoinOptions = {
87
+ userName: localUser.userName,
88
+ userRole: _type3.FcrUserRole.PARTICIPANT,
89
+ roomToken: '',
90
+ streamLatency: _fcrCore.FcrStreamLatencyLevel.ULTRA_LOW,
91
+ createStreamConfigs: [{
92
+ videoSourceState: _imports.AgoraRtcMediaSourceState.CLOSE,
93
+ audioSourceState: _imports.AgoraRtcMediaSourceState.CLOSE,
94
+ videoSourceId: '',
95
+ audioSourceId: '',
96
+ streamName: 'default',
97
+ streamType: _imports.AgoraRteMediaStreamType.NONE,
98
+ videoSourceType: _type2.AgoraRteVideoSourceType.CAMERA,
99
+ audioSourceType: _type2.AgoraRteAudioSourceType.MICROPHONE
100
+ }]
101
+ };
102
+ return roomJoinOptions;
103
+ };
23
104
  var FcrUIInterpreterProviderImpl = exports.FcrUIInterpreterProviderImpl = /*#__PURE__*/function () {
24
- function FcrUIInterpreterProviderImpl() {
105
+ function FcrUIInterpreterProviderImpl(params) {
106
+ var _this = this;
25
107
  (0, _classCallCheck2["default"])(this, FcrUIInterpreterProviderImpl);
26
108
  // @internal
27
109
  (0, _defineProperty2["default"])(this, "logger", (0, _logger.getLogger)());
28
110
  (0, _defineProperty2["default"])(this, "_observable", new _observable.AgoraObservable());
111
+ (0, _defineProperty2["default"])(this, "_languageRoomListByStatus", []);
112
+ (0, _defineProperty2["default"])(this, "_indicateTimerId", null);
113
+ (0, _defineProperty2["default"])(this, "_volumeTimerId", null);
114
+ (0, _defineProperty2["default"])(this, "_hasSubscribedLanguageList", new Set([_interpreter.ORIGIN]));
115
+ (0, _defineProperty2["default"])(this, "_observerStream", {
116
+ onStreamVolumeIndicationUpdated: (0, _lodash.throttle)(function (roomId, streamId, volume) {
117
+ _this._onStreamVolumeIndicationUpdated(roomId, streamId, volume);
118
+ }, 500)
119
+ });
120
+ (0, _defineProperty2["default"])(this, "_observerMicrophoneChanged", {
121
+ onMicrophoneChanged: function onMicrophoneChanged(microphoneId) {
122
+ _this._languageRoomListByStatus.forEach(function (room) {
123
+ if (room.status === _type.UpdateType.JOIN) {
124
+ _this._bindLocalMicrophoneId(room, microphoneId);
125
+ }
126
+ });
127
+ }
128
+ });
129
+ (0, _defineProperty2["default"])(this, "_observerInterpreter", {
130
+ onInterpreterStateUpdated: function () {
131
+ var _onInterpreterStateUpdated = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(roomId, state, operatorUser) {
132
+ var interpreterList, languageList;
133
+ return _regenerator["default"].wrap(function _callee$(_context) {
134
+ while (1) switch (_context.prev = _context.next) {
135
+ case 0:
136
+ _context.next = 2;
137
+ return _this._update();
138
+ case 2:
139
+ _this._publishEvent();
140
+ if (state.enable) {
141
+ interpreterList = _this.getInterpreterList();
142
+ if (interpreterList) {
143
+ _this._observable.notifyObservers('onInterpretationEnabled', interpreterList, operatorUser);
144
+ }
145
+ languageList = _this.getSubscribeLanguageList();
146
+ _this._observable.notifyObservers('onSubscribeLanguageListUpdated', languageList);
147
+ } else {
148
+ _this._observable.notifyObservers('onInterpretationDisabled', operatorUser);
149
+ }
150
+ case 4:
151
+ case "end":
152
+ return _context.stop();
153
+ }
154
+ }, _callee);
155
+ }));
156
+ function onInterpreterStateUpdated(_x, _x2, _x3) {
157
+ return _onInterpreterStateUpdated.apply(this, arguments);
158
+ }
159
+ return onInterpreterStateUpdated;
160
+ }(),
161
+ onInterpreterUsersUpdated: function () {
162
+ var _onInterpreterUsersUpdated = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(roomId, users, operatorUser) {
163
+ var _this$_sharedInterpre, preInterpreterInfo, interpreterInfo, localInterpreterUpdate, outputLanguage, languageList;
164
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
165
+ while (1) switch (_context2.prev = _context2.next) {
166
+ case 0:
167
+ _this$_sharedInterpre = _this._sharedInterpreterDataSource, preInterpreterInfo = _this$_sharedInterpre.preInterpreterInfo, interpreterInfo = _this$_sharedInterpre.interpreterInfo;
168
+ localInterpreterUpdate = preInterpreterInfo && interpreterInfo && (interpreterInfo.sourceLanguage !== preInterpreterInfo.sourceLanguage || interpreterInfo.targetLanguage !== preInterpreterInfo.targetLanguage);
169
+ if (localInterpreterUpdate && _this._sharedInterpreterDataSource.outputLanguage && (operatorUser === null || operatorUser === void 0 ? void 0 : operatorUser.userId) !== _this._userControl.getLocalUser().userId) {
170
+ _this._observable.notifyObservers('onLocalInterpreterWillUpdate', _this._sharedInterpreterDataSource.outputLanguage);
171
+ }
172
+ _context2.next = 5;
173
+ return _this._update();
174
+ case 5:
175
+ outputLanguage = _this._sharedInterpreterDataSource.outputLanguage;
176
+ if (interpreterInfo && localInterpreterUpdate && outputLanguage) {
177
+ _this._observable.notifyObservers('onLocalInterpreterUpdated', [interpreterInfo.sourceLanguage, interpreterInfo.targetLanguage], outputLanguage);
178
+ }
179
+ _this._publishEvent();
180
+ if (users && operatorUser) {
181
+ _this._observable.notifyObservers('onInterpreterListUpdated', users, operatorUser);
182
+ }
183
+ languageList = _this.getSubscribeLanguageList();
184
+ _this._observable.notifyObservers('onSubscribeLanguageListUpdated', languageList);
185
+ if (preInterpreterInfo && !interpreterInfo) {
186
+ _this._observable.notifyObservers('onLocalNotInterpreter');
187
+ }
188
+ case 12:
189
+ case "end":
190
+ return _context2.stop();
191
+ }
192
+ }, _callee2);
193
+ }));
194
+ function onInterpreterUsersUpdated(_x4, _x5, _x6) {
195
+ return _onInterpreterUsersUpdated.apply(this, arguments);
196
+ }
197
+ return onInterpreterUsersUpdated;
198
+ }()
199
+ });
200
+ (0, _defineProperty2["default"])(this, "_retryTask", {
201
+ timerId: null,
202
+ isAllowRetry: true
203
+ });
204
+ var privilegeProvider = params.privilegeProvider,
205
+ interpreterControl = params.interpreterControl,
206
+ userControl = params.userControl,
207
+ sharedInterpreterDataSource = params.sharedInterpreterDataSource,
208
+ eventProvider = params.eventProvider,
209
+ streamControl = params.streamControl,
210
+ deviceProvider = params.deviceProvider,
211
+ devicePrivilegeProvider = params.devicePrivilegeProvider;
212
+ this._privilegeProvider = privilegeProvider;
213
+ this._interpreterControl = interpreterControl;
214
+ this._userControl = userControl;
215
+ this._sharedInterpreterDataSource = sharedInterpreterDataSource;
216
+ this._eventProvider = eventProvider;
217
+ this._mainStreamControl = streamControl;
218
+ this._deviceProvider = deviceProvider;
219
+ this._devicePrivilegeProvider = devicePrivilegeProvider;
220
+ this._deviceProvider.addObserver(this._observerMicrophoneChanged);
221
+ this._interpreterControl.addObserver(this._observerInterpreter);
222
+ this._mount();
29
223
  }
30
224
  return (0, _createClass2["default"])(FcrUIInterpreterProviderImpl, [{
31
- key: "joinInterpreterRoom",
32
- value: // 加入语言房间
33
- function () {
34
- var _joinInterpreterRoom = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(param) {
35
- var control, roomJoinOptions;
36
- return _regenerator["default"].wrap(function _callee$(_context) {
37
- while (1) switch (_context.prev = _context.next) {
225
+ key: "_publishEvent",
226
+ value: function _publishEvent() {
227
+ var _this$_sharedInterpre2 = this._sharedInterpreterDataSource,
228
+ preInterpreterInfo = _this$_sharedInterpre2.preInterpreterInfo,
229
+ interpreterInfo = _this$_sharedInterpre2.interpreterInfo,
230
+ outputLanguage = _this$_sharedInterpre2.outputLanguage;
231
+ if (interpreterInfo) {
232
+ if (!preInterpreterInfo) {
233
+ var _supportedLanguages = [interpreterInfo.sourceLanguage, interpreterInfo.targetLanguage];
234
+ this._observable.notifyObservers('onLocalBecomeInterpreter', _supportedLanguages, outputLanguage || interpreterInfo.targetLanguage);
235
+ }
236
+ }
237
+ }
238
+ }, {
239
+ key: "_triggerDvicePrivilege",
240
+ value: function _triggerDvicePrivilege() {
241
+ var interpreterInfo = this._sharedInterpreterDataSource.interpreterInfo;
242
+ if (interpreterInfo) {
243
+ this._devicePrivilegeProvider.setAlwaysHasMicrophonePrivilege(true);
244
+ this._devicePrivilegeProvider.setAutoUpdateAudioStreamPrivilege(false);
245
+ } else {
246
+ this._devicePrivilegeProvider.setAlwaysHasMicrophonePrivilege(false);
247
+ this._devicePrivilegeProvider.setAutoUpdateAudioStreamPrivilege(true);
248
+ }
249
+ }
250
+ }, {
251
+ key: "_mount",
252
+ value: function () {
253
+ var _mount2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
254
+ var _this2 = this;
255
+ var initLanguageRoomListByStatus, interpreterInfo, targetLanguage, sourceLanguage;
256
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
257
+ while (1) switch (_context3.prev = _context3.next) {
38
258
  case 0:
39
- control = param.control, roomJoinOptions = param.roomJoinOptions;
40
- _context.prev = 1;
41
- this._observable.notifyObservers('onJoinInterpretingRoom', param);
42
- _context.next = 5;
43
- return control.join(roomJoinOptions);
44
- case 5:
45
- this.logger.info("interpreterLog-joinInterpreterRoom succeed", param.language);
46
- this._observable.notifyObservers('onJoinInterpretingRoomSuccess', param);
47
- _context.next = 13;
48
- break;
259
+ initLanguageRoomListByStatus = function initLanguageRoomListByStatus() {
260
+ if (_this2._interpreterControl) {
261
+ var rooms = _this2._interpreterControl.getInterpreterRoomList(); //语言房间列表
262
+ if (rooms) {
263
+ var languageRoomLisByStatus = rooms.map(function (ele) {
264
+ return _objectSpread(_objectSpread({}, ele), {}, {
265
+ status: _type.UpdateType.LEFT,
266
+ control: _this2._interpreterControl.createRoomControl(ele.roomId)
267
+ });
268
+ });
269
+ _this2._updateLanguageRoomListByStatus(languageRoomLisByStatus);
270
+ }
271
+ }
272
+ };
273
+ this._triggerDvicePrivilege();
274
+ interpreterInfo = this._sharedInterpreterDataSource.interpreterInfo;
275
+ initLanguageRoomListByStatus();
276
+ _context3.next = 6;
277
+ return this._updateOutputLanguage((interpreterInfo === null || interpreterInfo === void 0 ? void 0 : interpreterInfo.targetLanguage) || null);
278
+ case 6:
279
+ _context3.next = 8;
280
+ return this._updateSubscribeLanguage([_interpreter.ORIGIN]);
281
+ case 8:
282
+ if (interpreterInfo) {
283
+ targetLanguage = interpreterInfo.targetLanguage, sourceLanguage = interpreterInfo.sourceLanguage;
284
+ this._observable.notifyObservers('onLocalBecameInterpreter', [targetLanguage, sourceLanguage], targetLanguage);
285
+ }
49
286
  case 9:
50
- _context.prev = 9;
51
- _context.t0 = _context["catch"](1);
52
- this.logger.info("interpreterLog-joinInterpreterRoom fail", param.language);
53
- this._observable.notifyObservers('onJoinInterpretingRoomFailed', param);
54
- case 13:
55
287
  case "end":
56
- return _context.stop();
288
+ return _context3.stop();
289
+ }
290
+ }, _callee3, this);
291
+ }));
292
+ function _mount() {
293
+ return _mount2.apply(this, arguments);
294
+ }
295
+ return _mount;
296
+ }()
297
+ }, {
298
+ key: "_update",
299
+ value: function () {
300
+ var _update2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
301
+ var _this3 = this;
302
+ var _this$_sharedInterpre3, interpreterInfo, subscribeLanguageList, outputLanguage, subscribeLanguageOptionList, rooms, copyLanguageRoomListByStatus, outputLanguageList, language, languageList;
303
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
304
+ while (1) switch (_context4.prev = _context4.next) {
305
+ case 0:
306
+ this._triggerDvicePrivilege();
307
+ _this$_sharedInterpre3 = this._sharedInterpreterDataSource, interpreterInfo = _this$_sharedInterpre3.interpreterInfo, subscribeLanguageList = _this$_sharedInterpre3.subscribeLanguageList, outputLanguage = _this$_sharedInterpre3.outputLanguage, subscribeLanguageOptionList = _this$_sharedInterpre3.subscribeLanguageOptionList;
308
+ rooms = this._interpreterControl.getInterpreterRoomList(); //语言房间列表
309
+ if (rooms) {
310
+ copyLanguageRoomListByStatus = (0, _toConsumableArray2["default"])(this._languageRoomListByStatus);
311
+ rooms.forEach(function (ele) {
312
+ var languageRomm = copyLanguageRoomListByStatus.find(function (item) {
313
+ return item.language === ele.language;
314
+ });
315
+ if (languageRomm) {
316
+ return;
317
+ } else {
318
+ copyLanguageRoomListByStatus.push(_objectSpread(_objectSpread({}, ele), {}, {
319
+ status: _type.UpdateType.LEFT,
320
+ control: _this3._interpreterControl.createRoomControl(ele.roomId)
321
+ }));
322
+ }
323
+ });
324
+ this._languageRoomListByStatus = copyLanguageRoomListByStatus;
325
+ }
326
+ outputLanguageList = [];
327
+ if (interpreterInfo) {
328
+ outputLanguageList.push(interpreterInfo.sourceLanguage, interpreterInfo.targetLanguage);
329
+ }
330
+ language = outputLanguageList.includes(outputLanguage) ? outputLanguage : (interpreterInfo === null || interpreterInfo === void 0 ? void 0 : interpreterInfo.targetLanguage) || null;
331
+ _context4.next = 9;
332
+ return this._updateOutputLanguage(language);
333
+ case 9:
334
+ languageList = subscribeLanguageList.filter(function (ele) {
335
+ return subscribeLanguageOptionList.includes(ele);
336
+ });
337
+ _context4.next = 12;
338
+ return this._updateSubscribeLanguage(languageList);
339
+ case 12:
340
+ case "end":
341
+ return _context4.stop();
342
+ }
343
+ }, _callee4, this);
344
+ }));
345
+ function _update() {
346
+ return _update2.apply(this, arguments);
347
+ }
348
+ return _update;
349
+ }()
350
+ }, {
351
+ key: "_unload",
352
+ value: function _unload() {}
353
+ }, {
354
+ key: "_clearTimer",
355
+ value: function _clearTimer() {
356
+ if (this._indicateTimerId) {
357
+ clearTimeout(this._indicateTimerId);
358
+ this._indicateTimerId = null;
359
+ }
360
+ if (this._volumeTimerId) {
361
+ clearInterval(this._volumeTimerId);
362
+ this._volumeTimerId = null;
363
+ }
364
+ }
365
+ }, {
366
+ key: "_onStreamVolumeIndicationUpdated",
367
+ value: function _onStreamVolumeIndicationUpdated(roomId, streamId, volume) {
368
+ var _this4 = this;
369
+ var setMainRoomVolume = function setMainRoomVolume(volume) {
370
+ _this4._mainStreamControl.getStreamList().forEach(function (stream) {
371
+ var needSetVolume = [_imports.AgoraRteMediaStreamType.AUDIO, _imports.AgoraRteMediaStreamType.BOTH].includes(stream.streamType);
372
+ if (needSetVolume) _this4._mainStreamControl.adjustRemoteAudioStreamVolume(stream.streamId, volume);
373
+ });
374
+ };
375
+ var restoreVolumeByMainRoom = function restoreVolumeByMainRoom() {
376
+ if (_this4._volumeTimerId) return;
377
+ var startValue = 25; // 主房间初始音量
378
+ var endValue = 100; // 最大音量
379
+ var duration = 2000; // 在 2 秒内逐渐放大
380
+ var interval = 50; // 更新间隔为 50ms
381
+
382
+ var volume = startValue;
383
+ var steps = (endValue - startValue) / (duration / interval);
384
+ _this4._volumeTimerId = setInterval(function () {
385
+ volume += steps;
386
+ if (volume >= endValue) {
387
+ volume = endValue;
388
+ _this4._clearTimer();
389
+ }
390
+ setMainRoomVolume(volume);
391
+ }, interval);
392
+ };
393
+
394
+ // HLD: 判断 volume > 10 ,避免波动, 则认为是在说话
395
+ var isSpeaking = Math.floor(volume / 255 * 100) > 10;
396
+ if (isSpeaking) {
397
+ // HLD: 主房输出音量设置为25,语言房间设置输出音频为100
398
+ this._observable.notifyObservers('onSubscribeLanguageVolumePrioritized', isSpeaking);
399
+ setMainRoomVolume(25);
400
+ this._clearTimer();
401
+ } else {
402
+ // PRD: 参会人听到的是译员的声音及轻微的原始音频声音。当语言频道内 6 秒内没有译员发言,原始音频的音量将在接下来的 2 秒内逐渐放大到正常音量。
403
+ this._indicateTimerId = setTimeout(function () {
404
+ _this4._observable.notifyObservers('onSubscribeLanguageVolumePrioritized', isSpeaking);
405
+ restoreVolumeByMainRoom();
406
+ }, 6000);
407
+ }
408
+ }
409
+ }, {
410
+ key: "_updateLanguageRoomListByStatus",
411
+ value: function _updateLanguageRoomListByStatus(executeRoomList) {
412
+ this._languageRoomListByStatus = (0, _utils.mergeArrays)(this._languageRoomListByStatus, executeRoomList, 'language');
413
+ }
414
+ }, {
415
+ key: "_clearRetryTaskTimer",
416
+ value: function _clearRetryTaskTimer() {
417
+ this._retryTask.isAllowRetry = false;
418
+ if (this._retryTask.timerId) {
419
+ clearTimeout(this._retryTask.timerId);
420
+ this._retryTask.timerId = null;
421
+ }
422
+ }
423
+ }, {
424
+ key: "_getRoomInfo",
425
+ value: function _getRoomInfo(language) {
426
+ var room = this._languageRoomListByStatus.find(function (languageRoom) {
427
+ return languageRoom.language === language;
428
+ });
429
+ return room;
430
+ }
431
+ }, {
432
+ key: "_bindLocalMicrophoneId",
433
+ value: function _bindLocalMicrophoneId(room, _microphoneId) {
434
+ var microphoneId = _microphoneId || this._deviceProvider.currentDeviceId.microphoneDeviceId;
435
+ if (microphoneId) {
436
+ var streamList = room.control.getStreamControl().getStreamsByUserId(room.control.getUserControl().getLocalUser().userId);
437
+ var micStream = streamList.find(function (stream) {
438
+ return stream.audioSourceType === _fcrCore.FcrAudioSourceType.MICROPHONE;
439
+ });
440
+ if (micStream && micStream.audioSourceId !== microphoneId) {
441
+ var _room$control$getRoom;
442
+ this.logger.info("bind local microphone id to stream: [".concat(micStream.streamId, "], room: ").concat((_room$control$getRoom = room.control.getRoomInfo()) === null || _room$control$getRoom === void 0 ? void 0 : _room$control$getRoom.roomId));
443
+ room.control.getStreamControl().bindLocalStreams([{
444
+ streamId: micStream.streamId,
445
+ audioSourceId: microphoneId
446
+ }]);
447
+ }
448
+ }
449
+ }
450
+ }, {
451
+ key: "_joinInterpreterRoom",
452
+ value: function () {
453
+ var _joinInterpreterRoom2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(_ref) {
454
+ var language, _ref$isToggleInterper, isToggleInterperterRemoteAudio, room, roomJoinOptions, _params;
455
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
456
+ while (1) switch (_context5.prev = _context5.next) {
457
+ case 0:
458
+ language = _ref.language, _ref$isToggleInterper = _ref.isToggleInterperterRemoteAudio, isToggleInterperterRemoteAudio = _ref$isToggleInterper === void 0 ? true : _ref$isToggleInterper;
459
+ room = this._getRoomInfo(language);
460
+ if (!(room && room.status !== _type.UpdateType.JOIN)) {
461
+ _context5.next = 17;
462
+ break;
463
+ }
464
+ roomJoinOptions = getRoomJoinOptions(this._userControl.getLocalUser());
465
+ _params = _objectSpread(_objectSpread({}, room), {}, {
466
+ isToggleInterperterRemoteAudio: isToggleInterperterRemoteAudio,
467
+ roomJoinOptions: roomJoinOptions
468
+ });
469
+ _context5.prev = 5;
470
+ this._observable.notifyObservers('onJoinInterpretingRoom', _params);
471
+ _context5.next = 9;
472
+ return room.control.join(roomJoinOptions);
473
+ case 9:
474
+ this._observable.notifyObservers('onJoinInterpretingRoomSuccess', _params);
475
+
476
+ //TODO 更新房间状态
477
+ this._updateLanguageRoomListByStatus([_objectSpread(_objectSpread({}, room), {}, {
478
+ status: _type.UpdateType.JOIN
479
+ })]);
480
+ //TODO 绑定本地麦克风
481
+ this._bindLocalMicrophoneId(room);
482
+ _context5.next = 17;
483
+ break;
484
+ case 14:
485
+ _context5.prev = 14;
486
+ _context5.t0 = _context5["catch"](5);
487
+ this._observable.notifyObservers('onJoinInterpretingRoomFailed', _params);
488
+ case 17:
489
+ case "end":
490
+ return _context5.stop();
57
491
  }
58
- }, _callee, this, [[1, 9]]);
492
+ }, _callee5, this, [[5, 14]]);
59
493
  }));
60
- function joinInterpreterRoom(_x) {
61
- return _joinInterpreterRoom.apply(this, arguments);
494
+ function _joinInterpreterRoom(_x7) {
495
+ return _joinInterpreterRoom2.apply(this, arguments);
62
496
  }
63
- return joinInterpreterRoom;
64
- }() // 离开语言房间
497
+ return _joinInterpreterRoom;
498
+ }()
65
499
  }, {
66
- key: "leaveInterpreterRoom",
500
+ key: "_leaveInterpreterRoom",
67
501
  value: function () {
68
- var _leaveInterpreterRoom = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(param) {
69
- var control;
70
- return _regenerator["default"].wrap(function _callee2$(_context2) {
71
- while (1) switch (_context2.prev = _context2.next) {
502
+ var _leaveInterpreterRoom2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6(_ref2) {
503
+ var language, room, control;
504
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
505
+ while (1) switch (_context6.prev = _context6.next) {
72
506
  case 0:
73
- control = param.control;
74
- _context2.prev = 1;
75
- this._observable.notifyObservers('onLeaveInterpretingRoom', param);
76
- _context2.next = 5;
507
+ language = _ref2.language;
508
+ room = this._getRoomInfo(language);
509
+ if (!(room && room.status === _type.UpdateType.JOIN)) {
510
+ _context6.next = 15;
511
+ break;
512
+ }
513
+ control = room.control;
514
+ _context6.prev = 4;
515
+ this._observable.notifyObservers('onLeaveInterpretingRoom', room);
516
+ _context6.next = 8;
77
517
  return control.leave();
78
- case 5:
79
- this.logger.info("interpreterLog-leaveInterpreterRoom succeed", param.language);
80
- this._observable.notifyObservers('onLeaveInterpretingRoomSuccess', param);
81
- _context2.next = 13;
518
+ case 8:
519
+ this._observable.notifyObservers('onLeaveInterpretingRoomSuccess', room);
520
+ _context6.next = 14;
82
521
  break;
83
- case 9:
84
- _context2.prev = 9;
85
- _context2.t0 = _context2["catch"](1);
86
- this.logger.info("interpreterLog-leaveInterpreterRoom fail", param.language);
87
- this._observable.notifyObservers('onLeaveInterpretingRoomFailed', param);
522
+ case 11:
523
+ _context6.prev = 11;
524
+ _context6.t0 = _context6["catch"](4);
525
+ this._observable.notifyObservers('onLeaveInterpretingRoomFailed', room);
526
+ case 14:
527
+ this._updateLanguageRoomListByStatus([_objectSpread(_objectSpread({}, room), {}, {
528
+ status: _type.UpdateType.LEFT
529
+ })]);
530
+ case 15:
531
+ case "end":
532
+ return _context6.stop();
533
+ }
534
+ }, _callee6, this, [[4, 11]]);
535
+ }));
536
+ function _leaveInterpreterRoom(_x8) {
537
+ return _leaveInterpreterRoom2.apply(this, arguments);
538
+ }
539
+ return _leaveInterpreterRoom;
540
+ }()
541
+ }, {
542
+ key: "_setMainRoomStream",
543
+ value: function () {
544
+ var _setMainRoomStream2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7(open) {
545
+ var _this5 = this;
546
+ var localStreamList, micStreams, streamId, streamInfo, hasAudioPublishPrivilege, streamsConfig;
547
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
548
+ while (1) switch (_context7.prev = _context7.next) {
549
+ case 0:
550
+ localStreamList = this._mainStreamControl.getStreamsByUserId(this._userControl.getLocalUser().userId);
551
+ micStreams = localStreamList.filter(function (ele) {
552
+ return ele.audioSourceType === _type2.AgoraRteAudioSourceType.MICROPHONE;
553
+ });
554
+ streamId = !!micStreams.length ? micStreams[0].streamId : null;
555
+ if (!streamId) {
556
+ _context7.next = 10;
557
+ break;
558
+ }
559
+ streamInfo = this._mainStreamControl.getStreamByStreamId(streamId);
560
+ hasAudioPublishPrivilege = streamInfo && (streamInfo.streamType === _fcrCore.FcrStreamType.BOTH || streamInfo.streamType === _fcrCore.FcrStreamType.AUDIO);
561
+ if (!hasAudioPublishPrivilege) {
562
+ _context7.next = 10;
563
+ break;
564
+ }
565
+ streamsConfig = (0, _defineProperty2["default"])({}, streamId, {
566
+ audioPrivilege: open ? _fcrCore.FcrStreamPrivilegeOperation.HAS_PRIVILEGE : _fcrCore.FcrStreamPrivilegeOperation.NOPRIVILEGE,
567
+ videoPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOOPERATION
568
+ });
569
+ _context7.next = 10;
570
+ return (0, _utils.retryTask)(function () {
571
+ return _this5._mainStreamControl.updatePublishPrivilegeOfStreams(streamsConfig);
572
+ }, this._retryTask);
573
+ case 10:
574
+ case "end":
575
+ return _context7.stop();
576
+ }
577
+ }, _callee7, this);
578
+ }));
579
+ function _setMainRoomStream(_x9) {
580
+ return _setMainRoomStream2.apply(this, arguments);
581
+ }
582
+ return _setMainRoomStream;
583
+ }()
584
+ }, {
585
+ key: "_updateOutputLanguage",
586
+ value: function () {
587
+ var _updateOutputLanguage2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee10(language, isLocalOperation) {
588
+ var _this6 = this;
589
+ var setUiOutputLanguage, setInterpreterRoomStreams, _this$_sharedInterpre4, outputLanguage, preInterpreterInfo, interpreterInfo, subscribeLanguageList, isToggleInterperterRemoteAudio, outputLanguageList, preOutputLanguageList, closeOutputLanguageList, index, languageRoom;
590
+ return _regenerator["default"].wrap(function _callee10$(_context10) {
591
+ while (1) switch (_context10.prev = _context10.next) {
592
+ case 0:
593
+ setUiOutputLanguage = /*#__PURE__*/function () {
594
+ var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8(language) {
595
+ var interpreterLangCode;
596
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
597
+ while (1) switch (_context8.prev = _context8.next) {
598
+ case 0:
599
+ _this6._sharedInterpreterDataSource.outputLanguage = language;
600
+ _context8.prev = 1;
601
+ interpreterLangCode = _this6._userControl.getUserPropertiesByKeyPath('interpreterLangCode', _this6._userControl.getLocalUser().userId);
602
+ if (!(!language && !interpreterLangCode)) {
603
+ _context8.next = 5;
604
+ break;
605
+ }
606
+ return _context8.abrupt("return");
607
+ case 5:
608
+ _context8.next = 7;
609
+ return _this6._userControl.updateUserProperties({
610
+ interpreterLangCode: language
611
+ }, {}, _this6._userControl.getLocalUser().userId);
612
+ case 7:
613
+ _this6.logger.info("interpreterLog- _updateUserProperties interpreterLangCode:".concat(language, " succeed"));
614
+ _context8.next = 13;
615
+ break;
616
+ case 10:
617
+ _context8.prev = 10;
618
+ _context8.t0 = _context8["catch"](1);
619
+ _this6.logger.info("interpreterLog- _updateUserProperties interpreterLangCode:".concat(language, " fail"));
620
+ case 13:
621
+ case "end":
622
+ return _context8.stop();
623
+ }
624
+ }, _callee8, null, [[1, 10]]);
625
+ }));
626
+ return function setUiOutputLanguage(_x12) {
627
+ return _ref3.apply(this, arguments);
628
+ };
629
+ }();
630
+ setInterpreterRoomStreams = /*#__PURE__*/function () {
631
+ var _ref4 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9(language, open) {
632
+ var room, control, streamControl, streamList, stream;
633
+ return _regenerator["default"].wrap(function _callee9$(_context9) {
634
+ while (1) switch (_context9.prev = _context9.next) {
635
+ case 0:
636
+ room = _this6._getRoomInfo(language);
637
+ if (!(room && room.status === _type.UpdateType.JOIN)) {
638
+ _context9.next = 9;
639
+ break;
640
+ }
641
+ control = room.control;
642
+ streamControl = control.getStreamControl();
643
+ streamList = streamControl.getStreamsByUserId(_this6._userControl.getLocalUser().userId);
644
+ if (!(streamList.length > 0)) {
645
+ _context9.next = 9;
646
+ break;
647
+ }
648
+ stream = streamList[0];
649
+ _context9.next = 9;
650
+ return streamControl.updatePublishPrivilegeOfStreams((0, _defineProperty2["default"])({}, stream.streamId, {
651
+ videoPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOOPERATION,
652
+ audioPrivilege: open ? _fcrCore.FcrStreamPrivilegeOperation.HAS_PRIVILEGE : _fcrCore.FcrStreamPrivilegeOperation.NOPRIVILEGE
653
+ }));
654
+ case 9:
655
+ case "end":
656
+ return _context9.stop();
657
+ }
658
+ }, _callee9);
659
+ }));
660
+ return function setInterpreterRoomStreams(_x13, _x14) {
661
+ return _ref4.apply(this, arguments);
662
+ };
663
+ }();
664
+ this._clearRetryTaskTimer(); // 清除当前重试任务
665
+ _this$_sharedInterpre4 = this._sharedInterpreterDataSource, outputLanguage = _this$_sharedInterpre4.outputLanguage, preInterpreterInfo = _this$_sharedInterpre4.preInterpreterInfo, interpreterInfo = _this$_sharedInterpre4.interpreterInfo, subscribeLanguageList = _this$_sharedInterpre4.subscribeLanguageList;
666
+ _context10.next = 6;
667
+ return this._setMainRoomStream(language ? false : true);
668
+ case 6:
669
+ isToggleInterperterRemoteAudio = false; // 开启
670
+ if (!language) {
671
+ _context10.next = 19;
672
+ break;
673
+ }
674
+ if (!outputLanguage) {
675
+ _context10.next = 15;
676
+ break;
677
+ }
678
+ _context10.next = 11;
679
+ return this._joinInterpreterRoom({
680
+ language: language,
681
+ isToggleInterperterRemoteAudio: isToggleInterperterRemoteAudio
682
+ });
683
+ case 11:
684
+ _context10.next = 13;
685
+ return setInterpreterRoomStreams(language, true);
88
686
  case 13:
687
+ _context10.next = 19;
688
+ break;
689
+ case 15:
690
+ _context10.next = 17;
691
+ return (0, _utils.retryTask)(function () {
692
+ return _this6._joinInterpreterRoom({
693
+ language: language,
694
+ isToggleInterperterRemoteAudio: isToggleInterperterRemoteAudio
695
+ });
696
+ }, this._retryTask);
697
+ case 17:
698
+ _context10.next = 19;
699
+ return (0, _utils.retryTask)(function () {
700
+ return setInterpreterRoomStreams(language, true);
701
+ }, this._retryTask);
702
+ case 19:
703
+ // 关闭
704
+ outputLanguageList = [];
705
+ preOutputLanguageList = [];
706
+ if (interpreterInfo) {
707
+ outputLanguageList.push(interpreterInfo.sourceLanguage, interpreterInfo.targetLanguage);
708
+ }
709
+ if (preInterpreterInfo) {
710
+ preOutputLanguageList.push(preInterpreterInfo.sourceLanguage, preInterpreterInfo.targetLanguage);
711
+ }
712
+ closeOutputLanguageList = [].concat((0, _toConsumableArray2["default"])(outputLanguageList.filter(function (ele) {
713
+ return ele !== language;
714
+ })), (0, _toConsumableArray2["default"])(preOutputLanguageList.filter(function (ele) {
715
+ return ele !== language;
716
+ })));
717
+ closeOutputLanguageList = Array.from(new Set(closeOutputLanguageList));
718
+ index = 0;
719
+ case 26:
720
+ if (!(index < closeOutputLanguageList.length)) {
721
+ _context10.next = 38;
722
+ break;
723
+ }
724
+ languageRoom = closeOutputLanguageList[index];
725
+ if (!(outputLanguageList.includes(languageRoom) || subscribeLanguageList.includes(languageRoom))) {
726
+ _context10.next = 33;
727
+ break;
728
+ }
729
+ _context10.next = 31;
730
+ return setInterpreterRoomStreams(languageRoom, false);
731
+ case 31:
732
+ _context10.next = 35;
733
+ break;
734
+ case 33:
735
+ _context10.next = 35;
736
+ return this._leaveInterpreterRoom({
737
+ language: languageRoom
738
+ });
739
+ case 35:
740
+ index++;
741
+ _context10.next = 26;
742
+ break;
743
+ case 38:
744
+ setUiOutputLanguage(language);
745
+
746
+ // if (localInterpreterUpdate) {
747
+ // this._observable.notifyObservers(
748
+ // 'onLocalInterpreterUpdated',
749
+ // [interpreterInfo.sourceLanguage, interpreterInfo.targetLanguage],
750
+ // language,
751
+ // );
752
+ // }
753
+ case 39:
89
754
  case "end":
90
- return _context2.stop();
755
+ return _context10.stop();
91
756
  }
92
- }, _callee2, this, [[1, 9]]);
757
+ }, _callee10, this);
93
758
  }));
94
- function leaveInterpreterRoom(_x2) {
95
- return _leaveInterpreterRoom.apply(this, arguments);
759
+ function _updateOutputLanguage(_x10, _x11) {
760
+ return _updateOutputLanguage2.apply(this, arguments);
96
761
  }
97
- return leaveInterpreterRoom;
98
- }() // 控制翻译房间输出流权限
762
+ return _updateOutputLanguage;
763
+ }()
99
764
  }, {
100
- key: "updateInterpreterRoomStreams",
765
+ key: "_updateSubscribeLanguage",
101
766
  value: function () {
102
- var _updateInterpreterRoomStreams = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(roomControl, open) {
103
- var streamControl, streamMap, streamList, stream;
104
- return _regenerator["default"].wrap(function _callee3$(_context3) {
105
- while (1) switch (_context3.prev = _context3.next) {
767
+ var _updateSubscribeLanguage2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee12(languageList) {
768
+ var _this7 = this;
769
+ var handlesubscribeLanguage, updateLanguageList, index, languageRoom, subscribeLanguageList, closeSubscribeLanguageList, _index, _languageRoom;
770
+ return _regenerator["default"].wrap(function _callee12$(_context12) {
771
+ while (1) switch (_context12.prev = _context12.next) {
106
772
  case 0:
107
- if (!roomControl) {
108
- _context3.next = 9;
773
+ handlesubscribeLanguage = /*#__PURE__*/function () {
774
+ var _ref6 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee11(_ref5) {
775
+ var language, event, room, interpreterInfo;
776
+ return _regenerator["default"].wrap(function _callee11$(_context11) {
777
+ while (1) switch (_context11.prev = _context11.next) {
778
+ case 0:
779
+ language = _ref5.language, event = _ref5.event;
780
+ room = _this7._getRoomInfo(language);
781
+ interpreterInfo = _this7._sharedInterpreterDataSource.interpreterInfo;
782
+ if (!room) {
783
+ _context11.next = 21;
784
+ break;
785
+ }
786
+ if (!(room.status === _type.UpdateType.JOIN)) {
787
+ _context11.next = 8;
788
+ break;
789
+ }
790
+ _this7._eventProvider.sendEvent(_constant.FcrUIAction.TOGGLE_INTERPRETER_REMOTE_AUDIO, {
791
+ roomControl: room.control,
792
+ event: event
793
+ });
794
+ _context11.next = 21;
795
+ break;
796
+ case 8:
797
+ if (!(event === _enums.EventType.STOP)) {
798
+ _context11.next = 18;
799
+ break;
800
+ }
801
+ if (!((interpreterInfo === null || interpreterInfo === void 0 ? void 0 : interpreterInfo.sourceLanguage) === language || (interpreterInfo === null || interpreterInfo === void 0 ? void 0 : interpreterInfo.targetLanguage) === language)) {
802
+ _context11.next = 13;
803
+ break;
804
+ }
805
+ _this7._eventProvider.sendEvent(_constant.FcrUIAction.TOGGLE_INTERPRETER_REMOTE_AUDIO, {
806
+ roomControl: room.control,
807
+ event: event
808
+ });
809
+ _context11.next = 15;
810
+ break;
811
+ case 13:
812
+ _context11.next = 15;
813
+ return (0, _utils.retryTask)(function () {
814
+ return _this7._leaveInterpreterRoom({
815
+ language: language
816
+ });
817
+ }, _this7._retryTask);
818
+ case 15:
819
+ // TODO 移除监听音量变化
820
+ room.control.getStreamControl().removeObserver(_this7._observerStream);
821
+ _context11.next = 21;
822
+ break;
823
+ case 18:
824
+ _context11.next = 20;
825
+ return (0, _utils.retryTask)(function () {
826
+ return _this7._joinInterpreterRoom({
827
+ language: language
828
+ });
829
+ }, _this7._retryTask);
830
+ case 20:
831
+ // TODO 设置监听音量变化
832
+ room.control.getStreamControl().addObserver(_this7._observerStream);
833
+ case 21:
834
+ case "end":
835
+ return _context11.stop();
836
+ }
837
+ }, _callee11);
838
+ }));
839
+ return function handlesubscribeLanguage(_x16) {
840
+ return _ref6.apply(this, arguments);
841
+ };
842
+ }();
843
+ this._clearRetryTaskTimer();
844
+ updateLanguageList = languageList.length === 0 ? [_interpreter.ORIGIN] : languageList;
845
+ index = 0;
846
+ case 4:
847
+ if (!(index < languageList.length)) {
848
+ _context12.next = 15;
849
+ break;
850
+ }
851
+ languageRoom = languageList[index];
852
+ if (!(languageRoom === _interpreter.ORIGIN)) {
853
+ _context12.next = 10;
109
854
  break;
110
855
  }
111
- streamControl = roomControl.getStreamControl();
112
- streamMap = streamControl.getStreams();
113
- streamList = Object.keys(streamMap).map(function (key) {
114
- return streamMap[key];
856
+ this._eventProvider.sendEvent(_constant.FcrUIAction.TOGGLE_MAINROOM_REMOTE_AUDIO, {
857
+ event: _enums.EventType.START
115
858
  });
116
- if (!(streamList.length > 0)) {
117
- _context3.next = 9;
859
+ _context12.next = 12;
860
+ break;
861
+ case 10:
862
+ _context12.next = 12;
863
+ return handlesubscribeLanguage({
864
+ language: languageRoom,
865
+ event: _enums.EventType.START
866
+ });
867
+ case 12:
868
+ index++;
869
+ _context12.next = 4;
870
+ break;
871
+ case 15:
872
+ subscribeLanguageList = this._sharedInterpreterDataSource.subscribeLanguageList;
873
+ closeSubscribeLanguageList = subscribeLanguageList.filter(function (ele) {
874
+ return !languageList.includes(ele);
875
+ });
876
+ _index = 0;
877
+ case 18:
878
+ if (!(_index < closeSubscribeLanguageList.length)) {
879
+ _context12.next = 29;
118
880
  break;
119
881
  }
120
- stream = streamList[0][0];
121
- _context3.next = 8;
122
- return streamControl.updatePublishPrivilegeOfStreams((0, _defineProperty2["default"])({}, stream.streamId, {
123
- videoPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOOPERATION,
124
- audioPrivilege: open ? _fcrCore.FcrStreamPrivilegeOperation.HAS_PRIVILEGE : _fcrCore.FcrStreamPrivilegeOperation.NOPRIVILEGE
125
- }));
126
- case 8:
127
- this.logger.info("interpreterLog- ".concat(open ? 'ON' : 'OFF', " interpreterRoom input streams"), stream.streamId);
882
+ _languageRoom = closeSubscribeLanguageList[_index];
883
+ if (!(_languageRoom === _interpreter.ORIGIN)) {
884
+ _context12.next = 24;
885
+ break;
886
+ }
887
+ this._eventProvider.sendEvent(_constant.FcrUIAction.TOGGLE_MAINROOM_REMOTE_AUDIO, {
888
+ event: _enums.EventType.STOP
889
+ });
890
+ _context12.next = 26;
891
+ break;
892
+ case 24:
893
+ _context12.next = 26;
894
+ return handlesubscribeLanguage({
895
+ language: _languageRoom,
896
+ event: _enums.EventType.STOP
897
+ });
898
+ case 26:
899
+ _index++;
900
+ _context12.next = 18;
901
+ break;
902
+ case 29:
903
+ this._sharedInterpreterDataSource.preSubscribeLanguageList = subscribeLanguageList;
904
+ this._sharedInterpreterDataSource.subscribeLanguageList = updateLanguageList;
905
+ case 31:
906
+ case "end":
907
+ return _context12.stop();
908
+ }
909
+ }, _callee12, this);
910
+ }));
911
+ function _updateSubscribeLanguage(_x15) {
912
+ return _updateSubscribeLanguage2.apply(this, arguments);
913
+ }
914
+ return _updateSubscribeLanguage;
915
+ }()
916
+ }, {
917
+ key: "setOutputLanguage",
918
+ value: function () {
919
+ var _setOutputLanguage = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee13(language, successCallback, failureCallback) {
920
+ var _this$_sharedInterpre5, interpreterInfo, outputLanguage;
921
+ return _regenerator["default"].wrap(function _callee13$(_context13) {
922
+ while (1) switch (_context13.prev = _context13.next) {
923
+ case 0:
924
+ _this$_sharedInterpre5 = this._sharedInterpreterDataSource, interpreterInfo = _this$_sharedInterpre5.interpreterInfo, outputLanguage = _this$_sharedInterpre5.outputLanguage;
925
+ _context13.prev = 1;
926
+ if (!interpreterInfo) {
927
+ _context13.next = 7;
928
+ break;
929
+ }
930
+ _context13.next = 5;
931
+ return this._updateOutputLanguage(language, true);
932
+ case 5:
933
+ successCallback && successCallback();
934
+
935
+ // TODO 触发麦克风关闭提示
936
+ if (!this._deviceProvider.microphoneEnabled) {
937
+ this._eventProvider.showToast({
938
+ type: 'info',
939
+ message: (0, _i18n.transI18n)('fmt_interpretation_interpreter_toast_label_open_micro')
940
+ });
941
+ }
942
+ case 7:
943
+ _context13.next = 12;
944
+ break;
128
945
  case 9:
946
+ _context13.prev = 9;
947
+ _context13.t0 = _context13["catch"](1);
948
+ failureCallback && failureCallback(_context13.t0);
949
+ case 12:
950
+ return _context13.abrupt("return", !!interpreterInfo);
951
+ case 13:
129
952
  case "end":
130
- return _context3.stop();
953
+ return _context13.stop();
131
954
  }
132
- }, _callee3, this);
955
+ }, _callee13, this, [[1, 9]]);
956
+ }));
957
+ function setOutputLanguage(_x17, _x18, _x19) {
958
+ return _setOutputLanguage.apply(this, arguments);
959
+ }
960
+ return setOutputLanguage;
961
+ }()
962
+ }, {
963
+ key: "subscribeLanguage",
964
+ value: function () {
965
+ var _subscribeLanguage = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee14(language, successCallback, failureCallback) {
966
+ var subscribeLanguageList, languageList, removeLanguage;
967
+ return _regenerator["default"].wrap(function _callee14$(_context14) {
968
+ while (1) switch (_context14.prev = _context14.next) {
969
+ case 0:
970
+ _context14.prev = 0;
971
+ subscribeLanguageList = this._sharedInterpreterDataSource.subscribeLanguageList;
972
+ languageList = [];
973
+ if (subscribeLanguageList.length === 2 && language !== _interpreter.ORIGIN) {
974
+ languageList = [_interpreter.ORIGIN];
975
+ }
976
+ _context14.next = 6;
977
+ return this._updateSubscribeLanguage([].concat((0, _toConsumableArray2["default"])(languageList), [language]));
978
+ case 6:
979
+ successCallback && successCallback();
980
+
981
+ // TODO
982
+ // 该方法会使`该方法会使` 时只有一种语言, 之前有的语言移除
983
+ if (this._hasSubscribedLanguageList.size === 1) {
984
+ this._hasSubscribedLanguageList.clear();
985
+ this._hasSubscribedLanguageList.add(language);
986
+ }
987
+ removeLanguage = subscribeLanguageList.find(function (ele) {
988
+ return ele !== _interpreter.ORIGIN && ele !== language;
989
+ });
990
+ if (removeLanguage) {
991
+ this._observable.notifyObservers('onLanguageUnsubscribed', removeLanguage);
992
+ }
993
+ this._observable.notifyObservers('onLanguageSubscribed', language);
994
+ _context14.next = 16;
995
+ break;
996
+ case 13:
997
+ _context14.prev = 13;
998
+ _context14.t0 = _context14["catch"](0);
999
+ failureCallback && failureCallback(_context14.t0);
1000
+ case 16:
1001
+ case "end":
1002
+ return _context14.stop();
1003
+ }
1004
+ }, _callee14, this, [[0, 13]]);
133
1005
  }));
134
- function updateInterpreterRoomStreams(_x3, _x4) {
135
- return _updateInterpreterRoomStreams.apply(this, arguments);
1006
+ function subscribeLanguage(_x20, _x21, _x22) {
1007
+ return _subscribeLanguage.apply(this, arguments);
136
1008
  }
137
- return updateInterpreterRoomStreams;
1009
+ return subscribeLanguage;
138
1010
  }()
1011
+ }, {
1012
+ key: "subscribeExtraOriginLanguage",
1013
+ value: function subscribeExtraOriginLanguage(subscribe) {
1014
+ if (subscribe) {
1015
+ // TODO
1016
+ if (!this._hasSubscribedLanguageList.has(_interpreter.ORIGIN)) {
1017
+ this._hasSubscribedLanguageList.add(_interpreter.ORIGIN);
1018
+ this._observable.notifyObservers('onLanguageSubscribed', _interpreter.ORIGIN);
1019
+ }
1020
+ } else {
1021
+ if (this._hasSubscribedLanguageList.size === 2 && this._hasSubscribedLanguageList.has(_interpreter.ORIGIN)) {
1022
+ this._hasSubscribedLanguageList["delete"](_interpreter.ORIGIN);
1023
+ this._observable.notifyObservers('onLanguageUnsubscribed', _interpreter.ORIGIN);
1024
+ }
1025
+ }
1026
+ }
1027
+ }, {
1028
+ key: "getHasSubscribedLanguageList",
1029
+ value: function getHasSubscribedLanguageList() {
1030
+ this.subscribeExtraOriginLanguage(true);
1031
+ var hasSubscribedLanguageList = [];
1032
+ this._hasSubscribedLanguageList.forEach(function (ele) {
1033
+ hasSubscribedLanguageList.push(ele);
1034
+ });
1035
+ return hasSubscribedLanguageList;
1036
+ }
1037
+ }, {
1038
+ key: "userIsInterpreter",
1039
+ value: function userIsInterpreter(userId) {
1040
+ var interpreterUsers = this._sharedInterpreterDataSource.interpreterUsers;
1041
+ return !!(interpreterUsers !== null && interpreterUsers !== void 0 && interpreterUsers.find(function (ele) {
1042
+ return ele.userId === userId;
1043
+ }));
1044
+ }
1045
+ }, {
1046
+ key: "getUserOutputLanguage",
1047
+ value: function getUserOutputLanguage(userId) {
1048
+ var isUserIsInterpreter = this.userIsInterpreter(userId);
1049
+ if (!isUserIsInterpreter) {
1050
+ return _interpreter.ORIGIN;
1051
+ } else {
1052
+ if (this._userControl.getLocalUser().userId === userId) {
1053
+ return this._sharedInterpreterDataSource.outputLanguage;
1054
+ } else {
1055
+ return this._userControl.getUserPropertiesByKeyPath('interpreterLangCode', userId);
1056
+ }
1057
+ }
1058
+ }
1059
+ }, {
1060
+ key: "getSubscribeLanguageList",
1061
+ value: function getSubscribeLanguageList() {
1062
+ var interpreterUsers = this._interpreterControl.getInterpreterUserList();
1063
+ var subscribeLanguageList = [_interpreter.ORIGIN];
1064
+ interpreterUsers === null || interpreterUsers === void 0 || interpreterUsers.forEach(function (ele) {
1065
+ subscribeLanguageList.push(ele.sourceLanguage, ele.targetLanguage);
1066
+ });
1067
+ return subscribeLanguageList;
1068
+ }
1069
+ }, {
1070
+ key: "getOutputLanguageOptionList",
1071
+ value: function getOutputLanguageOptionList() {
1072
+ return this._interpreterControl.getInterpreterLanguageList();
1073
+ }
1074
+ }, {
1075
+ key: "setInterpreterUsers",
1076
+ value: function () {
1077
+ var _setInterpreterUsers = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee15(params, successCallback, failureCallback) {
1078
+ return _regenerator["default"].wrap(function _callee15$(_context15) {
1079
+ while (1) switch (_context15.prev = _context15.next) {
1080
+ case 0:
1081
+ _context15.prev = 0;
1082
+ _context15.next = 3;
1083
+ return this._interpreterControl.setInterpreterUsers(params);
1084
+ case 3:
1085
+ successCallback && successCallback();
1086
+ _context15.next = 9;
1087
+ break;
1088
+ case 6:
1089
+ _context15.prev = 6;
1090
+ _context15.t0 = _context15["catch"](0);
1091
+ failureCallback && failureCallback(_context15.t0);
1092
+ case 9:
1093
+ case "end":
1094
+ return _context15.stop();
1095
+ }
1096
+ }, _callee15, this, [[0, 6]]);
1097
+ }));
1098
+ function setInterpreterUsers(_x23, _x24, _x25) {
1099
+ return _setInterpreterUsers.apply(this, arguments);
1100
+ }
1101
+ return setInterpreterUsers;
1102
+ }()
1103
+ }, {
1104
+ key: "disableInterpretation",
1105
+ value: function disableInterpretation() {
1106
+ this._interpreterControl.close();
1107
+ }
1108
+ }, {
1109
+ key: "getInterpretationState",
1110
+ value: function getInterpretationState() {
1111
+ return this._interpreterControl.getState().enable;
1112
+ }
1113
+ }, {
1114
+ key: "getInterpreterList",
1115
+ value: function getInterpreterList() {
1116
+ return this._interpreterControl.getInterpreterUserList();
1117
+ }
139
1118
  }, {
140
1119
  key: "addObserver",
141
1120
  value: function addObserver(observer) {
@@ -146,6 +1125,19 @@ var FcrUIInterpreterProviderImpl = exports.FcrUIInterpreterProviderImpl = /*#__P
146
1125
  value: function removeObserver(observer) {
147
1126
  this._observable.removeObserver(observer);
148
1127
  }
1128
+ }, {
1129
+ key: "canEnableInterpretation",
1130
+ value: function canEnableInterpretation() {
1131
+ return this._privilegeProvider.hasEnableInterpreterPermission();
1132
+ }
1133
+ }, {
1134
+ key: "release",
1135
+ value: function release() {
1136
+ this._clearRetryTaskTimer();
1137
+ this._clearTimer();
1138
+ this._deviceProvider.removeObserver(this._observerMicrophoneChanged);
1139
+ this._interpreterControl.removeObserver(this._observerInterpreter);
1140
+ }
149
1141
  }]);
150
1142
  }();
151
1143
  (0, _base.registerDependency)('interpreterProvider');