fcr-ui-scene 3.7.9-alpha → 3.8.0

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 (394) hide show
  1. package/lib/creator/index.d.ts +6 -3
  2. package/lib/creator/index.js +38 -20
  3. package/lib/creator/provider-initializer.browser.js +30 -2
  4. package/lib/creator/provider-initializer.electron.js +34 -6
  5. package/lib/electron/app.js +0 -1
  6. package/lib/electron/bootstrap-sdk.d.ts +3 -1
  7. package/lib/electron/bootstrap-sdk.js +93 -375
  8. package/lib/electron/exit-codes.d.ts +6 -1
  9. package/lib/electron/exit-codes.js +5 -0
  10. package/lib/electron/injections.d.ts +10 -4
  11. package/lib/electron/injections.js +116 -74
  12. package/lib/electron/ipc/ipc.js +13 -11
  13. package/lib/electron/ipc/type.d.ts +3 -1
  14. package/lib/electron/ipc/type.js +2 -0
  15. package/lib/electron/main.js +3 -1
  16. package/lib/electron/preload.js +2 -1
  17. package/lib/electron/process-manager/constants.d.ts +1 -0
  18. package/lib/electron/process-manager/constants.js +8 -0
  19. package/lib/electron/{event-manager.d.ts → process-manager/event-manager.d.ts} +3 -4
  20. package/lib/electron/{event-manager.js → process-manager/event-manager.js} +38 -30
  21. package/lib/electron/process-manager/index.d.ts +179 -0
  22. package/lib/electron/process-manager/index.js +848 -0
  23. package/lib/electron/process-manager/state-manager.d.ts +135 -0
  24. package/lib/electron/process-manager/state-manager.js +358 -0
  25. package/lib/electron/process-manager/types.d.ts +80 -0
  26. package/lib/electron/process-manager/types.js +79 -0
  27. package/lib/electron/sdk-helper.d.ts +4 -0
  28. package/lib/electron/sdk-helper.js +39 -2
  29. package/lib/fragments/annotation/libs.d.ts +1 -1
  30. package/lib/fragments/annotation/libs.js +12 -12
  31. package/lib/fragments/annotation/store.d.ts +1 -1
  32. package/lib/fragments/annotation/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +1 -1
  33. package/lib/fragments/annotation/toolbar/components/graphic-tool/graphic-panel/libs.js +21 -21
  34. package/lib/fragments/annotation/toolbar/components/pen-tool/index.js +3 -3
  35. package/lib/fragments/annotation/toolbar/store.d.ts +1 -1
  36. package/lib/fragments/annotation/toolbar/store.js +10 -10
  37. package/lib/fragments/annotation/toolbar/view.js +7 -7
  38. package/lib/fragments/whiteboard/store.d.ts +2 -2
  39. package/lib/fragments/whiteboard/store.js +28 -22
  40. package/lib/fragments/whiteboard/view.js +2 -2
  41. package/lib/index.d.ts +1 -1
  42. package/lib/index.js +2 -2
  43. package/lib/modules/action-bar/components/apps/index.js +1 -37
  44. package/lib/modules/action-bar/components/collapse/index.d.ts +2 -1
  45. package/lib/modules/action-bar/components/collapse/index.js +11 -2
  46. package/lib/modules/action-bar/components/item/index.js +2 -2
  47. package/lib/modules/action-bar/components/screen-share/index.browser.js +21 -14
  48. package/lib/modules/action-bar/components/screen-share/index.electron.js +38 -24
  49. package/lib/modules/action-bar/components/screen-share/submenu.js +6 -5
  50. package/lib/modules/action-bar/components/security/index.js +2 -2
  51. package/lib/modules/action-bar/index.css +26 -0
  52. package/lib/modules/action-bar/main-scene/store.base.d.ts +6 -4
  53. package/lib/modules/action-bar/main-scene/store.base.js +41 -46
  54. package/lib/modules/action-bar/type.d.ts +0 -10
  55. package/lib/modules/audio-stream/index.d.ts +1 -1
  56. package/lib/modules/audio-stream/index.js +22 -8
  57. package/lib/modules/caption/draggable-container/index.css +10 -0
  58. package/lib/modules/caption/draggable-container/index.d.ts +4 -0
  59. package/lib/modules/caption/draggable-container/index.js +167 -0
  60. package/lib/modules/caption/index.d.ts +10 -0
  61. package/lib/modules/caption/index.js +127 -0
  62. package/lib/modules/caption/store.d.ts +53 -0
  63. package/lib/modules/caption/store.js +358 -0
  64. package/lib/modules/caption/type.d.ts +13 -0
  65. package/lib/modules/caption/type.js +14 -0
  66. package/lib/modules/caption/view.css +158 -0
  67. package/lib/modules/caption/view.d.ts +4 -0
  68. package/lib/modules/caption/view.js +281 -0
  69. package/lib/modules/chat/chat-room-store.d.ts +1 -1
  70. package/lib/modules/chat/chat-room-store.js +6 -6
  71. package/lib/modules/chat/components/message-list/message-item/index.js +60 -18
  72. package/lib/modules/chat/index.css +7 -0
  73. package/lib/modules/chat/store.d.ts +1 -0
  74. package/lib/modules/chat/store.js +3 -3
  75. package/lib/modules/components/apps/app-item/index.css +16 -1
  76. package/lib/modules/components/apps/app-item/index.js +102 -35
  77. package/lib/modules/components/apps/app-list.js +17 -1
  78. package/lib/modules/components/apps/types.d.ts +11 -1
  79. package/lib/modules/components/caption-menu/index.css +58 -0
  80. package/lib/modules/components/caption-menu/index.d.ts +43 -0
  81. package/lib/modules/components/caption-menu/index.js +115 -0
  82. package/lib/modules/components/caption-menu/participants-privilege-control-options.d.ts +2 -0
  83. package/lib/modules/components/caption-menu/participants-privilege-control-options.js +73 -0
  84. package/lib/modules/components/caption-menu/steps/index.css +73 -0
  85. package/lib/modules/components/caption-menu/steps/index.d.ts +11 -0
  86. package/lib/modules/components/caption-menu/steps/index.js +56 -0
  87. package/lib/modules/components/caption-menu/translation-setting-options.d.ts +17 -0
  88. package/lib/modules/components/caption-menu/translation-setting-options.js +188 -0
  89. package/lib/modules/components/control-bar/index.d.ts +3 -3
  90. package/lib/modules/components/control-bar/index.js +10 -10
  91. package/lib/modules/components/device-control/components/audio-menu/index.js +17 -0
  92. package/lib/modules/components/device-control/components/carmera/index.js +3 -0
  93. package/lib/modules/components/device-control/components/microphone/index.js +4 -1
  94. package/lib/modules/components/device-control/index.css +12 -4
  95. package/lib/modules/components/device-control/store.base.d.ts +1 -0
  96. package/lib/modules/components/device-control/store.base.js +2 -0
  97. package/lib/modules/components/security-menu/index.js +147 -65
  98. package/lib/modules/components/security-menu/store.d.ts +15 -0
  99. package/lib/modules/components/security-menu/store.js +78 -16
  100. package/lib/modules/components/toolbar/components/clean-tool/index.d.ts +1 -1
  101. package/lib/modules/components/toolbar/components/clean-tool/index.js +4 -4
  102. package/lib/modules/components/toolbar/components/color-tool/index.d.ts +1 -1
  103. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/index.d.ts +1 -1
  104. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +1 -1
  105. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/libs.js +21 -21
  106. package/lib/modules/components/toolbar/components/graphic-tool/index.d.ts +1 -1
  107. package/lib/modules/components/toolbar/components/multiple-color-tool/index.d.ts +1 -1
  108. package/lib/modules/components/toolbar/components/pen-tool/index.d.ts +1 -1
  109. package/lib/modules/components/toolbar/components/pen-tool/index.js +3 -3
  110. package/lib/modules/components/toolbar/index.d.ts +2 -2
  111. package/lib/modules/components/toolbar/index.js +35 -34
  112. package/lib/modules/components/toolbar/style.css +1 -1
  113. package/lib/modules/components/toolbar/types.d.ts +1 -1
  114. package/lib/modules/connection-gateway/store.d.ts +1 -0
  115. package/lib/modules/connection-gateway/store.js +5 -0
  116. package/lib/modules/control-bar/components/apps-popover/index.d.ts +3 -0
  117. package/lib/modules/control-bar/components/apps-popover/index.js +41 -0
  118. package/lib/modules/control-bar/components/carmera/index.js +7 -39
  119. package/lib/modules/control-bar/components/cloud-recording-buttons.js +18 -33
  120. package/lib/modules/control-bar/components/microphone/index.js +3 -43
  121. package/lib/modules/control-bar/components/more-actions/index.js +9 -1
  122. package/lib/modules/control-bar/components/share-audio/index.d.ts +2 -0
  123. package/lib/modules/control-bar/components/share-audio/index.js +4 -10
  124. package/lib/modules/control-bar/enums.d.ts +2 -1
  125. package/lib/modules/control-bar/enums.js +1 -0
  126. package/lib/modules/control-bar/hooks.d.ts +1 -0
  127. package/lib/modules/control-bar/hooks.js +140 -1
  128. package/lib/modules/control-bar/store.d.ts +9 -5
  129. package/lib/modules/control-bar/store.js +92 -41
  130. package/lib/modules/control-bar/type.d.ts +3 -0
  131. package/lib/modules/control-bar/view.js +46 -58
  132. package/lib/modules/dialog/components/confirm/index.js +0 -1
  133. package/lib/modules/dialog/components/dialog-container/component/body.d.ts +8 -0
  134. package/lib/modules/dialog/components/dialog-container/component/body.js +44 -5
  135. package/lib/modules/dialog/components/dialog-container/index.css +4 -1
  136. package/lib/modules/dialog/components/dialog-container/index.d.ts +1 -0
  137. package/lib/modules/dialog/components/dialog-container/index.js +8 -1
  138. package/lib/modules/dialog/components/normal-window/index.d.ts +1 -0
  139. package/lib/modules/dialog/components/normal-window/index.js +3 -1
  140. package/lib/modules/dialog/dialogs/caption/index.d.ts +21 -0
  141. package/lib/modules/dialog/dialogs/caption/index.js +42 -0
  142. package/lib/modules/dialog/dialogs/chat/components/actions.js +2 -2
  143. package/lib/modules/dialog/dialogs/confirm/index.js +1 -1
  144. package/lib/modules/dialog/dialogs/participant/components/actions.js +2 -2
  145. package/lib/modules/dialog/dialogs/subtitles-history/index.d.ts +27 -0
  146. package/lib/modules/dialog/dialogs/subtitles-history/index.js +51 -0
  147. package/lib/modules/dialog/store.base.d.ts +1 -1
  148. package/lib/modules/dialog/store.browser.d.ts +1 -1
  149. package/lib/modules/dialog/store.electron.d.ts +1 -3
  150. package/lib/modules/dialog/store.electron.js +0 -9
  151. package/lib/modules/event-sound/enum.d.ts +5 -0
  152. package/lib/modules/event-sound/enum.js +20 -0
  153. package/lib/modules/event-sound/index.d.ts +0 -10
  154. package/lib/modules/event-sound/index.js +1 -12
  155. package/lib/modules/event-sound/store.d.ts +2 -2
  156. package/lib/modules/event-sound/store.js +21 -22
  157. package/lib/modules/event-toast/index.js +7 -1
  158. package/lib/modules/interpreter/store.js +4 -2
  159. package/lib/modules/layout/components/Aside.d.ts +2 -1
  160. package/lib/modules/layout/components/Aside.js +97 -58
  161. package/lib/modules/layout/components/CommonVideoRenderer.js +1 -2
  162. package/lib/modules/layout/components/index.css +15 -2
  163. package/lib/modules/layout/store.base.d.ts +12 -1
  164. package/lib/modules/layout/store.base.js +149 -54
  165. package/lib/modules/layout/store.electron.js +7 -3
  166. package/lib/modules/layout/type.d.ts +4 -0
  167. package/lib/modules/layout/view.js +27 -5
  168. package/lib/modules/notification/index.css +4 -4
  169. package/lib/modules/notification/store.d.ts +5 -3
  170. package/lib/modules/notification/store.js +9 -2
  171. package/lib/modules/notification/view.d.ts +1 -0
  172. package/lib/modules/notification/view.js +33 -2
  173. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.css +0 -1
  174. package/lib/modules/participant/components/participants/components/footer/index.js +1 -1
  175. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.js +2 -2
  176. package/lib/modules/participant/components/participants/components/render-user/components/user-action/index.d.ts +6 -1
  177. package/lib/modules/participant/components/participants/components/render-user/index.d.ts +1 -1
  178. package/lib/modules/participant/components/participants/index.js +13 -1
  179. package/lib/modules/participant/store.base.d.ts +1 -2
  180. package/lib/modules/participant/store.base.js +78 -81
  181. package/lib/modules/participant/type.d.ts +3 -1
  182. package/lib/modules/participant/type.js +2 -0
  183. package/lib/modules/pc-audio-connect/main-scene/store.d.ts +1 -0
  184. package/lib/modules/pc-audio-connect/main-scene/store.js +5 -0
  185. package/lib/modules/pc-audio-connect/waiting-scene/store.d.ts +2 -0
  186. package/lib/modules/pc-audio-connect/waiting-scene/store.js +10 -6
  187. package/lib/modules/phone-audio-connect/store.d.ts +1 -0
  188. package/lib/modules/phone-audio-connect/store.js +5 -0
  189. package/lib/modules/secondary-window/store.d.ts +1 -2
  190. package/lib/modules/secondary-window/store.js +22 -14
  191. package/lib/modules/secondary-window/type.d.ts +1 -1
  192. package/lib/modules/secondary-window/view.js +7 -8
  193. package/lib/modules/setting/audio-whiteList/audio-device-adaptation.d.ts +46 -0
  194. package/lib/modules/setting/audio-whiteList/audio-device-adaptation.js +70 -0
  195. package/lib/modules/setting/audio-whiteList/audio-whiteList-manager.d.ts +52 -0
  196. package/lib/modules/setting/audio-whiteList/audio-whiteList-manager.js +374 -0
  197. package/lib/modules/setting/caption_and_transcribing/index.css +88 -0
  198. package/lib/modules/setting/caption_and_transcribing/index.d.ts +3 -0
  199. package/lib/modules/setting/caption_and_transcribing/index.js +96 -0
  200. package/lib/modules/setting/general-settings/general-settings.d.ts +4 -0
  201. package/lib/modules/setting/general-settings/general-settings.js +3 -3
  202. package/lib/modules/setting/index.d.ts +1 -0
  203. package/lib/modules/setting/index.js +14 -9
  204. package/lib/modules/setting/state/index.js +5 -3
  205. package/lib/modules/setting/store.base.d.ts +33 -6
  206. package/lib/modules/setting/store.base.js +133 -32
  207. package/lib/modules/setting/store.browser.js +4 -9
  208. package/lib/modules/setting/store.electron.d.ts +11 -0
  209. package/lib/modules/setting/store.electron.js +106 -1
  210. package/lib/modules/setting/type.d.ts +2 -1
  211. package/lib/modules/setting/type.js +1 -0
  212. package/lib/modules/setting/video-settings/video-settings-basic.js +1 -7
  213. package/lib/modules/setting/view.js +12 -4
  214. package/lib/modules/share-screen/store.base.d.ts +1 -1
  215. package/lib/modules/share-screen/store.base.js +3 -0
  216. package/lib/modules/share-screen/store.electron.d.ts +3 -1
  217. package/lib/modules/share-screen/store.electron.js +158 -23
  218. package/lib/modules/state-bar/index.css +73 -2
  219. package/lib/modules/state-bar/main-scene/store.base.d.ts +2 -0
  220. package/lib/modules/state-bar/main-scene/store.base.js +7 -1
  221. package/lib/modules/state-bar/main-scene/store.browser.js +1 -1
  222. package/lib/modules/state-bar/main-scene/store.electron.js +1 -1
  223. package/lib/modules/state-bar/store.base.d.ts +5 -0
  224. package/lib/modules/state-bar/store.base.js +29 -2
  225. package/lib/modules/state-bar/subtitles-history-state.d.ts +7 -0
  226. package/lib/modules/state-bar/subtitles-history-state.js +108 -0
  227. package/lib/modules/state-bar/view.js +16 -1
  228. package/lib/modules/state-bar/waiting-scene/store.base.d.ts +1 -0
  229. package/lib/modules/state-bar/waiting-scene/store.base.js +5 -0
  230. package/lib/modules/subtitles-history/components/actions.d.ts +5 -0
  231. package/lib/modules/subtitles-history/components/actions.js +36 -0
  232. package/lib/modules/subtitles-history/components/list-item.d.ts +12 -0
  233. package/lib/modules/subtitles-history/components/list-item.js +102 -0
  234. package/lib/modules/subtitles-history/components/list.d.ts +10 -0
  235. package/lib/modules/subtitles-history/components/list.js +182 -0
  236. package/lib/modules/subtitles-history/components/respond-dialog-content.d.ts +5 -0
  237. package/lib/modules/subtitles-history/components/respond-dialog-content.js +44 -0
  238. package/lib/modules/subtitles-history/components/settings/index.css +5 -0
  239. package/lib/modules/subtitles-history/components/settings/index.d.ts +2 -0
  240. package/lib/modules/subtitles-history/components/settings/index.js +53 -0
  241. package/lib/modules/subtitles-history/components/timer.d.ts +3 -0
  242. package/lib/modules/subtitles-history/components/timer.js +44 -0
  243. package/lib/modules/subtitles-history/components/title.d.ts +1 -0
  244. package/lib/modules/subtitles-history/components/title.js +15 -0
  245. package/lib/modules/subtitles-history/empty.d.ts +2 -0
  246. package/lib/modules/subtitles-history/empty.js +22 -0
  247. package/lib/modules/subtitles-history/index.css +129 -0
  248. package/lib/modules/subtitles-history/index.d.ts +13 -0
  249. package/lib/modules/subtitles-history/index.js +107 -0
  250. package/lib/modules/subtitles-history/store.base.d.ts +76 -0
  251. package/lib/modules/subtitles-history/store.base.js +796 -0
  252. package/lib/modules/subtitles-history/store.electron.d.ts +15 -0
  253. package/lib/modules/subtitles-history/store.electron.js +154 -0
  254. package/lib/modules/subtitles-history/type.d.ts +4 -0
  255. package/lib/modules/subtitles-history/type.js +6 -0
  256. package/lib/modules/subtitles-history/view.d.ts +1 -0
  257. package/lib/modules/subtitles-history/view.js +104 -0
  258. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/picker.js +2 -2
  259. package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.js +5 -5
  260. package/lib/modules/whiteboard/components/toolbar/components/pen-picker.js +15 -15
  261. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +21 -21
  262. package/lib/modules/whiteboard/components/toolbar/hooks/index.js +23 -21
  263. package/lib/modules/whiteboard/components/toolbar/store.d.ts +7 -6
  264. package/lib/modules/whiteboard/components/toolbar/store.js +14 -15
  265. package/lib/modules/whiteboard/store.d.ts +2 -3
  266. package/lib/modules/whiteboard/store.electron.d.ts +2 -0
  267. package/lib/modules/whiteboard/store.electron.js +35 -0
  268. package/lib/modules/whiteboard/store.js +14 -2
  269. package/lib/modules/whiteboard/type.d.ts +0 -35
  270. package/lib/modules/whiteboard/type.js +1 -26
  271. package/lib/modules/widget/type.d.ts +3 -66
  272. package/lib/object-manager.d.ts +3 -1
  273. package/lib/object-manager.js +2 -0
  274. package/lib/providers/ability-provider.d.ts +24 -0
  275. package/lib/providers/ability-provider.js +21 -0
  276. package/lib/providers/app-list-provider.d.ts +90 -4
  277. package/lib/providers/app-list-provider.js +157 -13
  278. package/lib/providers/board-share/bar-control/base.d.ts +4 -5
  279. package/lib/providers/board-share/bar-control/base.js +4 -4
  280. package/lib/providers/board-share/bar-control/browser.d.ts +2 -2
  281. package/lib/providers/board-share/bar-control/electron.d.ts +4 -5
  282. package/lib/providers/board-share/bar-control/electron.js +2 -0
  283. package/lib/providers/board-share/provider.base.d.ts +6 -6
  284. package/lib/providers/board-share/provider.base.js +20 -3
  285. package/lib/providers/board-share/provider.browser.js +2 -2
  286. package/lib/providers/board-share/provider.electron.js +1 -2
  287. package/lib/providers/board-share/type.d.ts +1 -2
  288. package/lib/providers/device-provider.d.ts +15 -5
  289. package/lib/providers/device-provider.js +199 -145
  290. package/lib/providers/dialog/provider.base.js +1 -1
  291. package/lib/providers/dialog/provider.electron.js +3 -0
  292. package/lib/providers/interpreter-provider.js +4 -9
  293. package/lib/providers/multi-display-provider.d.ts +1 -1
  294. package/lib/providers/privilege-provider.d.ts +241 -139
  295. package/lib/providers/privilege-provider.js +577 -318
  296. package/lib/providers/room-provider/waiting-room-control-manager.d.ts +1 -1
  297. package/lib/providers/screen-share/constant.d.ts +1 -0
  298. package/lib/providers/screen-share/constant.js +8 -0
  299. package/lib/providers/screen-share/provider.base.d.ts +9 -7
  300. package/lib/providers/screen-share/provider.base.js +20 -27
  301. package/lib/providers/screen-share/provider.browser.js +14 -18
  302. package/lib/providers/screen-share/provider.electron.d.ts +3 -0
  303. package/lib/providers/screen-share/provider.electron.js +66 -25
  304. package/lib/providers/screen-share/strategy/electron.d.ts +2 -1
  305. package/lib/providers/screen-share/strategy/electron.js +64 -56
  306. package/lib/providers/screen-share/strategy/type.d.ts +2 -2
  307. package/lib/providers/screen-share/stream-state-sync.js +5 -3
  308. package/lib/providers/screen-share/struct.d.ts +14 -4
  309. package/lib/providers/screen-share/struct.js +16 -5
  310. package/lib/providers/screen-share/type.d.ts +16 -2
  311. package/lib/providers/stt-provider/stt-provider.d.ts +88 -0
  312. package/lib/providers/stt-provider/stt-provider.js +1007 -0
  313. package/lib/providers/stt-provider/type.d.ts +160 -0
  314. package/lib/providers/stt-provider/type.js +19 -0
  315. package/lib/providers/window/main-window.d.ts +1 -0
  316. package/lib/providers/window/main-window.js +6 -1
  317. package/lib/providers/window/renderer-window.d.ts +4 -0
  318. package/lib/providers/window/renderer-window.js +19 -1
  319. package/lib/providers/window/type.d.ts +4 -0
  320. package/lib/runtime.d.ts +8 -7
  321. package/lib/runtime.js +1 -2
  322. package/lib/scenes/main-scene.js +112 -66
  323. package/lib/schema.d.ts +70 -8
  324. package/lib/schema.js +7 -2
  325. package/lib/shared-data/app-list-data.d.ts +4 -0
  326. package/lib/shared-data/app-list-data.js +21 -1
  327. package/lib/shared-data/config.d.ts +5 -1
  328. package/lib/shared-data/layout-data.d.ts +5 -0
  329. package/lib/shared-data/layout-data.js +35 -9
  330. package/lib/shared-data/member-data.d.ts +2 -3
  331. package/lib/shared-data/screen-share/index.d.ts +0 -2
  332. package/lib/shared-data/screen-share/index.js +20 -36
  333. package/lib/shared-data/screen-share/type.d.ts +0 -8
  334. package/lib/shared-data/security-data.d.ts +4 -0
  335. package/lib/shared-data/security-data.js +14 -10
  336. package/lib/shared-data/setting.d.ts +16 -1
  337. package/lib/shared-data/setting.js +33 -6
  338. package/lib/shared-data/stt-setting.ts/constant.d.ts +29 -0
  339. package/lib/shared-data/stt-setting.ts/constant.js +35 -0
  340. package/lib/shared-data/stt-setting.ts/index.d.ts +67 -0
  341. package/lib/shared-data/stt-setting.ts/index.js +202 -0
  342. package/lib/shared-data/stt-setting.ts/type.d.ts +10 -0
  343. package/lib/shared-data/stt-setting.ts/type.js +14 -0
  344. package/lib/shared-data/video-window.d.ts +1 -2
  345. package/lib/shared-data/video-window.js +20 -32
  346. package/lib/translations/enUS.d.ts +9 -0
  347. package/lib/translations/enUS.js +21 -4
  348. package/lib/translations/zhCN.d.ts +9 -0
  349. package/lib/translations/zhCN.js +21 -4
  350. package/lib/type.d.ts +20 -15
  351. package/lib/type.js +1 -0
  352. package/lib/{ui-scene.d.ts → ui-scene-switch.d.ts} +1 -1
  353. package/lib/{ui-scene.js → ui-scene-switch.js} +29 -9
  354. package/lib/utilities/constant.d.ts +6 -2
  355. package/lib/utilities/constant.js +5 -1
  356. package/lib/utilities/default-config.d.ts +3 -3
  357. package/lib/utilities/default-config.js +7 -17
  358. package/lib/utilities/focus-helper.js +18 -11
  359. package/lib/utilities/renderer.d.ts +4 -6
  360. package/lib/utilities/renderer.js +10 -4
  361. package/lib/utilities/tools.d.ts +1 -0
  362. package/lib/utilities/tools.js +6 -1
  363. package/lib/utilities/ui-resources.d.ts +9 -2
  364. package/lib/utilities/ui-resources.js +36 -12
  365. package/package.json +13 -8
  366. package/public/index.html +1 -0
  367. package/public/meeting-manager.js +23 -9
  368. package/installer/icons/favicon.ico +0 -0
  369. package/installer/icons/favicon.png +0 -0
  370. package/installer/icons/icon.png +0 -0
  371. package/installer/mac/entitlements.mac.plist +0 -16
  372. package/lib/modules/participant/components/participants/components/footer/components/footer/index.css +0 -17
  373. package/lib/modules/participant/components/participants/components/footer/components/footer/index.d.ts +0 -5
  374. package/lib/modules/participant/components/participants/components/footer/components/footer/index.js +0 -242
  375. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.css +0 -192
  376. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.d.ts +0 -4
  377. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.js +0 -206
  378. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.css +0 -57
  379. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.d.ts +0 -5
  380. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.js +0 -229
  381. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.d.ts +0 -5
  382. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.js +0 -68
  383. package/lib/modules/participant/components/participants/components/participants/index.css +0 -105
  384. package/lib/modules/participant/components/participants/components/participants/index.d.ts +0 -3
  385. package/lib/modules/participant/components/participants/components/participants/index.js +0 -117
  386. package/lib/modules/participant/components/participants/types.d.ts +0 -101
  387. package/lib/modules/participant/components/participants/types.js +0 -37
  388. package/lib/modules/setting/config.d.ts +0 -36
  389. package/lib/modules/setting/config.js +0 -36
  390. package/lib/modules/widget/sdk.d.ts +0 -30
  391. package/lib/modules/widget/sdk.js +0 -224
  392. package/lib/widget-sdk.d.ts +0 -2
  393. package/lib/widget-sdk.js +0 -13
  394. /package/public/assets/electron/sound_effects/{pretest.mp3 → speakerTest.mp3} +0 -0
@@ -0,0 +1,1007 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.symbol.description.js");
5
+ require("core-js/modules/es.symbol.to-primitive.js");
6
+ require("core-js/modules/es.error.cause.js");
7
+ require("core-js/modules/es.error.to-string.js");
8
+ require("core-js/modules/es.array.filter.js");
9
+ require("core-js/modules/es.array.is-array.js");
10
+ require("core-js/modules/es.date.to-primitive.js");
11
+ require("core-js/modules/es.function.bind.js");
12
+ require("core-js/modules/es.function.name.js");
13
+ require("core-js/modules/es.number.constructor.js");
14
+ require("core-js/modules/es.object.create.js");
15
+ require("core-js/modules/es.object.define-properties.js");
16
+ require("core-js/modules/es.object.define-property.js");
17
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
18
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
19
+ require("core-js/modules/es.object.keys.js");
20
+ require("core-js/modules/esnext.function.metadata.js");
21
+ require("core-js/modules/esnext.iterator.filter.js");
22
+ require("core-js/modules/esnext.symbol.metadata.js");
23
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
24
+ var _typeof = require("@babel/runtime/helpers/typeof");
25
+ Object.defineProperty(exports, "__esModule", {
26
+ value: true
27
+ });
28
+ exports.FcrUISttProviderImpl = void 0;
29
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
30
+ require("core-js/modules/es.array.concat.js");
31
+ require("core-js/modules/es.array.find-index.js");
32
+ require("core-js/modules/es.array.find-last-index.js");
33
+ require("core-js/modules/es.array.for-each.js");
34
+ require("core-js/modules/es.array.includes.js");
35
+ require("core-js/modules/es.array.iterator.js");
36
+ require("core-js/modules/es.array.push.js");
37
+ require("core-js/modules/es.array.splice.js");
38
+ require("core-js/modules/es.date.now.js");
39
+ require("core-js/modules/es.map.js");
40
+ require("core-js/modules/es.object.to-string.js");
41
+ require("core-js/modules/es.promise.js");
42
+ require("core-js/modules/es.string.includes.js");
43
+ require("core-js/modules/es.string.iterator.js");
44
+ require("core-js/modules/es.weak-map.js");
45
+ require("core-js/modules/esnext.iterator.constructor.js");
46
+ require("core-js/modules/esnext.iterator.for-each.js");
47
+ require("core-js/modules/esnext.map.delete-all.js");
48
+ require("core-js/modules/esnext.map.emplace.js");
49
+ require("core-js/modules/esnext.map.every.js");
50
+ require("core-js/modules/esnext.map.filter.js");
51
+ require("core-js/modules/esnext.map.find.js");
52
+ require("core-js/modules/esnext.map.find-key.js");
53
+ require("core-js/modules/esnext.map.includes.js");
54
+ require("core-js/modules/esnext.map.key-of.js");
55
+ require("core-js/modules/esnext.map.map-keys.js");
56
+ require("core-js/modules/esnext.map.map-values.js");
57
+ require("core-js/modules/esnext.map.merge.js");
58
+ require("core-js/modules/esnext.map.reduce.js");
59
+ require("core-js/modules/esnext.map.some.js");
60
+ require("core-js/modules/esnext.map.update.js");
61
+ require("core-js/modules/esnext.weak-map.delete-all.js");
62
+ require("core-js/modules/esnext.weak-map.emplace.js");
63
+ require("core-js/modules/web.dom-collections.for-each.js");
64
+ require("core-js/modules/web.dom-collections.iterator.js");
65
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
66
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
67
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
68
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
69
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
70
+ var _imports = require("fcr-core/lib/imports");
71
+ var _type = require("fcr-core/lib/room-control/stt-control/type");
72
+ var _type2 = require("fcr-core/lib/type");
73
+ var _mobx = require("mobx");
74
+ var _type3 = require("./type");
75
+ var _type4 = require("../../modules/participant/type");
76
+ var _i18n = require("agora-ui-foundation/lib/i18n");
77
+ var _translationSettingOptions = require("../../modules/components/caption-menu/translation-setting-options");
78
+ var _interpreter = require("../../shared-data/interpreter");
79
+ var _FcrUISttProviderImpl;
80
+ var _initProto, _init__captionState, _init__transcribingState, _init__openOrStopTranscribingUser, _init__hasEverEnabledTranscribing, _init__languageOptions, _init__sourceLanguage, _init__translateLanguage, _init__transcribingList, _init__captionSentence, _init__isCaptionOpening;
81
+ 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; }
82
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
83
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
84
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
85
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
86
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
87
+ 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"); }
88
+ 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)]; } }; }
89
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
90
+ 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); }
91
+ 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; }
92
+ 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; }
93
+ var createSentence = function createSentence(id, userId, transcript, translation) {
94
+ return {
95
+ type: 'sentence',
96
+ id: id,
97
+ userId: userId,
98
+ transcript: transcript,
99
+ translation: translation,
100
+ startTs: transcript.timestamp
101
+ };
102
+ };
103
+ var _A = /*#__PURE__*/new WeakMap();
104
+ var _B = /*#__PURE__*/new WeakMap();
105
+ var _C = /*#__PURE__*/new WeakMap();
106
+ var _D = /*#__PURE__*/new WeakMap();
107
+ var _E = /*#__PURE__*/new WeakMap();
108
+ var _F = /*#__PURE__*/new WeakMap();
109
+ var _G = /*#__PURE__*/new WeakMap();
110
+ var _H = /*#__PURE__*/new WeakMap();
111
+ var _I = /*#__PURE__*/new WeakMap();
112
+ var _J = /*#__PURE__*/new WeakMap();
113
+ var FcrUISttProviderImpl = exports.FcrUISttProviderImpl = /*#__PURE__*/function () {
114
+ function FcrUISttProviderImpl(_ref) {
115
+ var _this = this;
116
+ var sttControl = _ref.sttControl,
117
+ roomSessionControl = _ref.roomSessionControl,
118
+ roomControl = _ref.roomControl,
119
+ localUserId = _ref.localUserId,
120
+ messageProvider = _ref.messageProvider,
121
+ dialogProvider = _ref.dialogProvider,
122
+ sharedSecurityDataSource = _ref.sharedSecurityDataSource,
123
+ privilegeProvider = _ref.privilegeProvider,
124
+ sharedInterpreterDataSource = _ref.sharedInterpreterDataSource;
125
+ (0, _classCallCheck2["default"])(this, FcrUISttProviderImpl);
126
+ (0, _defineProperty2["default"])(this, "_logger", (_initProto(this), (0, _imports.createLogger)({
127
+ prefix: 'FcrUISttProviderImpl'
128
+ })));
129
+ (0, _defineProperty2["default"])(this, "_observable", new _imports.AgoraObservable());
130
+ (0, _defineProperty2["default"])(this, "_disposer", []);
131
+ (0, _defineProperty2["default"])(this, "_sentenceMap", new Map());
132
+ (0, _defineProperty2["default"])(this, "_effectiveTranslateLanguage", null);
133
+ (0, _defineProperty2["default"])(this, "_privilegeObserver", {
134
+ onSecurityInfoUpdated: function onSecurityInfoUpdated(roomId, event) {
135
+ var securityInfo = event.securityInfo,
136
+ operatorUser = event.operatorUser;
137
+ var enable = securityInfo.enable,
138
+ info = securityInfo.info;
139
+ var targetRoles = info === null || info === void 0 ? void 0 : info.targetRoles;
140
+ var self = _this._roomControl.getUserControl().getLocalUser();
141
+ var selfRole = _this._roomControl.getUserControl().getLocalUser().userRole;
142
+ var isHostOrCohost = [_type2.FcrUserRole.HOST, _type2.FcrUserRole.COHOST].includes(selfRole);
143
+ var isSelfOperator = (operatorUser === null || operatorUser === void 0 ? void 0 : operatorUser.userId) === self.userId;
144
+
145
+ // 不响应自己的操作
146
+ if (isSelfOperator) {
147
+ return;
148
+ }
149
+
150
+ // 主持人或联合主持人显示允许开启、关闭(字幕、转写)的提示
151
+ if (isHostOrCohost) {
152
+ var _securityInfo$info;
153
+ switch ((_securityInfo$info = securityInfo.info) === null || _securityInfo$info === void 0 ? void 0 : _securityInfo$info.action) {
154
+ case _type2.FcrSecurityAction.SttStartTranscribe:
155
+ _this._messageProvider.showToast({
156
+ type: 'normal',
157
+ message: enable ? (0, _i18n.transI18n)('fmt_ai_rtt_toast_host_enabled_rtt') : (0, _i18n.transI18n)('fmt_ai_rtt_toast_host_not_permitted_start_stop_rtt')
158
+ });
159
+ break;
160
+ case _type2.FcrSecurityAction.SttStartCaption:
161
+ _this._messageProvider.showToast({
162
+ type: 'normal',
163
+ message: enable ? (0, _i18n.transI18n)('fmt_ai_subtitles_toast_host_enabled_captions') : (0, _i18n.transI18n)('fmt_ai_subtitles_toast_host_disabled_subtitles')
164
+ });
165
+ break;
166
+ }
167
+ } else if (targetRoles !== null && targetRoles !== void 0 && targetRoles.includes(selfRole)) {
168
+ var _securityInfo$info2;
169
+ // 普通与会者只在主持人或联合主持人禁止使用, 且自己正在使用时, 才显示提示
170
+ switch ((_securityInfo$info2 = securityInfo.info) === null || _securityInfo$info2 === void 0 ? void 0 : _securityInfo$info2.action) {
171
+ case _type2.FcrSecurityAction.SttStartTranscribe:
172
+ if (!enable && _this.transcribingState) {
173
+ _this._messageProvider.showToast({
174
+ type: 'normal',
175
+ message: (0, _i18n.transI18n)('fmt_ai_rtt_toast_host_not_permitted_start_stop_rtt')
176
+ });
177
+ }
178
+ break;
179
+ case _type2.FcrSecurityAction.SttStartCaption:
180
+ if (!enable && _this.captionState) {
181
+ _this._messageProvider.showToast({
182
+ type: 'normal',
183
+ message: (0, _i18n.transI18n)('fmt_ai_subtitles_toast_host_disabled_subtitles')
184
+ });
185
+
186
+ // 主持人或联合主持人在安全中不允许使用字幕时, 停止字幕
187
+ _this.stopCaption(true);
188
+ }
189
+ break;
190
+ }
191
+ }
192
+ }
193
+ });
194
+ (0, _defineProperty2["default"])(this, "_roomControlObserver", {
195
+ onRoomPropertiesUpdated: function onRoomPropertiesUpdated(roomId, properties) {
196
+ if ((0, _imports.get)(properties, 'changedProperties.stt.transcribingChanged') === true) {
197
+ (0, _mobx.runInAction)(function () {
198
+ _this._hasEverEnabledTranscribing = true;
199
+ });
200
+ }
201
+ }
202
+ });
203
+ (0, _defineProperty2["default"])(this, "_sttObserver", {
204
+ onSttEventReceived: this._handleSttEventReceived,
205
+ onLocalCaptionStateUpdated: function onLocalCaptionStateUpdated(roomId, state, operatorUser) {
206
+ var captionState = state === _type.FcrCaptionState.STARTED;
207
+ _this._captionState = captionState;
208
+ _this._isCaptionOpening = false;
209
+ _this._captionSentence = null;
210
+ if (captionState && !_this.transcribingState) {
211
+ if (_this._privilegeProvider.hasSetSourceLanguagePermission()) {
212
+ _this._updateSourceLanguage(_this._sourceLanguage);
213
+ }
214
+ _this.subscribeTranslateLanguage(_this._translateLanguage);
215
+ }
216
+ },
217
+ onTranscribingStateUpdated: function onTranscribingStateUpdated(roomId, state, operatorUser) {
218
+ (0, _mobx.runInAction)(function () {
219
+ _this._transcribingState = state === _type.FcrTranscribingState.STARTED;
220
+ if (operatorUser) {
221
+ _this._openOrStopTranscribingUser = operatorUser;
222
+ } else {
223
+ _this._openOrStopTranscribingUser = null;
224
+ _this._logger.error('onTranscribingStateUpdated: operatorUser is null');
225
+ }
226
+ if (_this._transcribingState && !_this.transcribingState) {
227
+ if (_this._privilegeProvider.hasSetSourceLanguagePermission()) {
228
+ _this._updateSourceLanguage(_this._sourceLanguage);
229
+ }
230
+ _this.subscribeTranslateLanguage(_this._translateLanguage);
231
+ }
232
+ });
233
+ },
234
+ onSourceLanguageUpdated: function onSourceLanguageUpdated(roomId, operatorUser) {
235
+ var sourceLanguage = _this._sttControl.getSourceLanguage();
236
+ if (sourceLanguage === null) {
237
+ _this._logger.error('onSourceLanguageUpdated: _sttControl.getSourceLanguage return null, unable to update');
238
+ } else {
239
+ _this._sourceLanguage = sourceLanguage;
240
+ var reason2 = _translationSettingOptions.SourceLanguageMapGenerateI18nKey[sourceLanguage];
241
+ var message = '';
242
+ if ((operatorUser === null || operatorUser === void 0 ? void 0 : operatorUser.userId) === _this._localUserId) {
243
+ message = (0, _i18n.transI18n)('fmt_ai_subtitles_toast_change_language_self', {
244
+ reason1: reason2 ? (0, _i18n.transI18n)(reason2) : sourceLanguage
245
+ });
246
+ } else {
247
+ message = (0, _i18n.transI18n)('fmt_ai_subtitles_toast_change_language_attendees', {
248
+ reason1: operatorUser === null || operatorUser === void 0 ? void 0 : operatorUser.userName,
249
+ reason2: reason2 ? (0, _i18n.transI18n)(reason2) : sourceLanguage
250
+ });
251
+ }
252
+ _this._messageProvider.showToast({
253
+ type: 'normal',
254
+ message: message,
255
+ duration: 2000
256
+ });
257
+ }
258
+ }
259
+ });
260
+ _classPrivateFieldInitSpec(this, _A, _init__captionState(this));
261
+ _classPrivateFieldInitSpec(this, _B, _init__transcribingState(this));
262
+ _classPrivateFieldInitSpec(this, _C, _init__openOrStopTranscribingUser(this));
263
+ _classPrivateFieldInitSpec(this, _D, _init__hasEverEnabledTranscribing(this));
264
+ _classPrivateFieldInitSpec(this, _E, _init__languageOptions(this));
265
+ _classPrivateFieldInitSpec(this, _F, _init__sourceLanguage(this, _type2.FcrLanguage.ZH));
266
+ _classPrivateFieldInitSpec(this, _G, _init__translateLanguage(this, null));
267
+ _classPrivateFieldInitSpec(this, _H, _init__transcribingList(this, []));
268
+ _classPrivateFieldInitSpec(this, _I, _init__captionSentence(this, null));
269
+ _classPrivateFieldInitSpec(this, _J, _init__isCaptionOpening(this, false));
270
+ (0, _defineProperty2["default"])(this, "_handleSourceLanguageUpdated", function () {
271
+ _this._observable.notifyObservers('onSourceLanguageUpdated', _this._sourceLanguage);
272
+ });
273
+ (0, _defineProperty2["default"])(this, "_handleTranslateLanguageUpdated", function () {
274
+ _this._observable.notifyObservers('onTranslateLanguageUpdated', _this._translateLanguage);
275
+ });
276
+ this._sttControl = sttControl;
277
+ this._roomSessionControl = roomSessionControl;
278
+ this._roomControl = roomControl;
279
+ this._dialogProvider = dialogProvider;
280
+ this._localUserId = localUserId;
281
+ this._messageProvider = messageProvider;
282
+ this._sharedSecurityDataSource = sharedSecurityDataSource;
283
+ this._privilegeProvider = privilegeProvider;
284
+ this._privilegeControl = roomControl.getPrivilegeControl();
285
+ this._privilegeControl.addObserver(this._privilegeObserver);
286
+ this._interpreterDataSource = sharedInterpreterDataSource;
287
+ this._captionState = this._sttControl.getLocalCaptionState() === _type.FcrCaptionState.STARTED;
288
+ this._transcribingState = this._sttControl.getTranscribingState() === _type.FcrTranscribingState.STARTED;
289
+ this._openOrStopTranscribingUser = null;
290
+ this._hasEverEnabledTranscribing = roomControl.getRoomPropertiesByKeyPath('stt.transcribingChanged') === true;
291
+ var config = this._sttControl.getConfig();
292
+ if (config) {
293
+ this._languageOptions = {
294
+ sourceList: config.sourceLanguages,
295
+ translateList: config.translateLanguages
296
+ };
297
+ this._cacheMaxLimit = config.cacheMaxLimit;
298
+ } else {
299
+ this._languageOptions = {
300
+ sourceList: [],
301
+ translateList: []
302
+ };
303
+ this._cacheMaxLimit = 500;
304
+ }
305
+ var _sourceLanguage = this._sttControl.getSourceLanguage();
306
+ if (_sourceLanguage) {
307
+ this._sourceLanguage = _sourceLanguage;
308
+ }
309
+ this._disposer.push((0, _mobx.reaction)(function () {
310
+ return _this.sourceLanguage;
311
+ }, this._handleSourceLanguageUpdated), (0, _mobx.reaction)(function () {
312
+ return _this.translateLanguage;
313
+ }, this._handleTranslateLanguageUpdated));
314
+ sttControl.addObserver(this._sttObserver);
315
+ roomControl.addObserver(this._roomControlObserver);
316
+ }
317
+ return (0, _createClass2["default"])(FcrUISttProviderImpl, [{
318
+ key: "_captionState",
319
+ get: function get() {
320
+ return _classPrivateFieldGet(_A, this);
321
+ },
322
+ set: function set(v) {
323
+ _classPrivateFieldSet(_A, this, v);
324
+ }
325
+ }, {
326
+ key: "_transcribingState",
327
+ get: function get() {
328
+ return _classPrivateFieldGet(_B, this);
329
+ },
330
+ set: function set(v) {
331
+ _classPrivateFieldSet(_B, this, v);
332
+ }
333
+ }, {
334
+ key: "_openOrStopTranscribingUser",
335
+ get: function get() {
336
+ return _classPrivateFieldGet(_C, this);
337
+ },
338
+ set: function set(v) {
339
+ _classPrivateFieldSet(_C, this, v);
340
+ }
341
+ }, {
342
+ key: "_hasEverEnabledTranscribing",
343
+ get: function get() {
344
+ return _classPrivateFieldGet(_D, this);
345
+ },
346
+ set: function set(v) {
347
+ _classPrivateFieldSet(_D, this, v);
348
+ }
349
+ }, {
350
+ key: "_languageOptions",
351
+ get: function get() {
352
+ return _classPrivateFieldGet(_E, this);
353
+ },
354
+ set: function set(v) {
355
+ _classPrivateFieldSet(_E, this, v);
356
+ }
357
+ }, {
358
+ key: "_sourceLanguage",
359
+ get: function get() {
360
+ return _classPrivateFieldGet(_F, this);
361
+ },
362
+ set: function set(v) {
363
+ _classPrivateFieldSet(_F, this, v);
364
+ }
365
+ }, {
366
+ key: "_translateLanguage",
367
+ get: function get() {
368
+ return _classPrivateFieldGet(_G, this);
369
+ },
370
+ set: function set(v) {
371
+ _classPrivateFieldSet(_G, this, v);
372
+ }
373
+ }, {
374
+ key: "_transcribingList",
375
+ get: function get() {
376
+ return _classPrivateFieldGet(_H, this);
377
+ },
378
+ set: function set(v) {
379
+ _classPrivateFieldSet(_H, this, v);
380
+ }
381
+ }, {
382
+ key: "_captionSentence",
383
+ get: function get() {
384
+ return _classPrivateFieldGet(_I, this);
385
+ },
386
+ set: function set(v) {
387
+ _classPrivateFieldSet(_I, this, v);
388
+ }
389
+ }, {
390
+ key: "_isCaptionOpening",
391
+ get: function get() {
392
+ return _classPrivateFieldGet(_J, this);
393
+ },
394
+ set: function set(v) {
395
+ _classPrivateFieldSet(_J, this, v);
396
+ }
397
+ }, {
398
+ key: "captionState",
399
+ get: function get() {
400
+ return this._captionState;
401
+ }
402
+ }, {
403
+ key: "transcribingState",
404
+ get: function get() {
405
+ return this._transcribingState;
406
+ }
407
+ }, {
408
+ key: "openOrStopTranscribingUser",
409
+ get: function get() {
410
+ if (this._openOrStopTranscribingUser === null) {
411
+ return null;
412
+ }
413
+ return _objectSpread(_objectSpread({}, this._openOrStopTranscribingUser), {}, {
414
+ isSelf: this._openOrStopTranscribingUser.userId === this._localUserId
415
+ });
416
+ }
417
+ }, {
418
+ key: "hasEverEnabledTranscribing",
419
+ get: function get() {
420
+ return this._hasEverEnabledTranscribing;
421
+ }
422
+ }, {
423
+ key: "languageOptions",
424
+ get: function get() {
425
+ return this._languageOptions;
426
+ }
427
+ }, {
428
+ key: "sourceLanguage",
429
+ get: function get() {
430
+ return this._sourceLanguage;
431
+ }
432
+ }, {
433
+ key: "translateLanguage",
434
+ get: function get() {
435
+ return this._translateLanguage;
436
+ }
437
+ }, {
438
+ key: "isCaptionOpening",
439
+ get: function get() {
440
+ return this._isCaptionOpening;
441
+ }
442
+ }, {
443
+ key: "transcribingList",
444
+ get: function get() {
445
+ return this._transcribingList;
446
+ }
447
+ }, {
448
+ key: "captionSentence",
449
+ get: function get() {
450
+ return this._captionSentence;
451
+ }
452
+ }, {
453
+ key: "release",
454
+ value: function release() {
455
+ this._sttControl.removeObserver(this._sttObserver);
456
+ this._roomControl.removeObserver(this._roomControlObserver);
457
+ this._privilegeControl.removeObserver(this._privilegeObserver);
458
+ this._disposer.forEach(function (disposer) {
459
+ return disposer();
460
+ });
461
+ this._disposer = [];
462
+ this._sentenceMap.clear();
463
+ this._transcribingList = [];
464
+ }
465
+ }, {
466
+ key: "requestOpenTranscribing",
467
+ value: function () {
468
+ var _requestOpenTranscribing = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
469
+ return _regenerator["default"].wrap(function (_context) {
470
+ while (1) switch (_context.prev = _context.next) {
471
+ case 0:
472
+ _context.next = 1;
473
+ return this._roomSessionControl.startRoomSession({
474
+ sessionKey: _type4.FcrUISessionKey.REQUEST_OPEN_TRANSCRIBING,
475
+ duration: _type3.FcrUISttConstants.REQUEST_OPEN_TRANSCRIBING_DURATION,
476
+ // 主持人有10s倒计时,这个时间不影响主持人
477
+ payload: {}
478
+ }, [_type2.FcrPrivilegeUserRole.HOST]);
479
+ case 1:
480
+ return _context.abrupt("return", _context.sent);
481
+ case 2:
482
+ case "end":
483
+ return _context.stop();
484
+ }
485
+ }, _callee, this);
486
+ }));
487
+ function requestOpenTranscribing() {
488
+ return _requestOpenTranscribing.apply(this, arguments);
489
+ }
490
+ return requestOpenTranscribing;
491
+ }()
492
+ }, {
493
+ key: "acceptOpenTranscribing",
494
+ value: function () {
495
+ var _acceptOpenTranscribing = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(session) {
496
+ return _regenerator["default"].wrap(function (_context2) {
497
+ while (1) switch (_context2.prev = _context2.next) {
498
+ case 0:
499
+ return _context2.abrupt("return", Promise.all([this._roomSessionControl.acceptRoomSession({
500
+ sessionId: session.sessionId,
501
+ sessionKey: _type4.FcrUISessionKey.REQUEST_OPEN_TRANSCRIBING,
502
+ senderId: session.senderId,
503
+ duration: 1,
504
+ payload: {},
505
+ timestamp: Date.now(),
506
+ interval: 0
507
+ }, {}), this.startTranscribing()]));
508
+ case 1:
509
+ case "end":
510
+ return _context2.stop();
511
+ }
512
+ }, _callee2, this);
513
+ }));
514
+ function acceptOpenTranscribing(_x) {
515
+ return _acceptOpenTranscribing.apply(this, arguments);
516
+ }
517
+ return acceptOpenTranscribing;
518
+ }()
519
+ }, {
520
+ key: "rejectOpenTranscribing",
521
+ value: function () {
522
+ var _rejectOpenTranscribing = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(session) {
523
+ return _regenerator["default"].wrap(function (_context3) {
524
+ while (1) switch (_context3.prev = _context3.next) {
525
+ case 0:
526
+ return _context3.abrupt("return", Promise.all([
527
+ // 响应发起请求的用户
528
+ // 在此期间其他用户可能也发起过请求, 但是因为只会 reject 收到的第一个 session 的请求
529
+ // 所以还需要调用 startRoomSession 通知其他发起请求的用户请求被拒绝
530
+ // this._roomSessionControl.rejectRoomSession(
531
+ // {
532
+ // sessionId: session.sessionId,
533
+ // sessionKey: FcrUISessionKey.REJECT_OPEN_TRANSCRIBING,
534
+ // senderId: session.senderId,
535
+ // duration: 1,
536
+ // payload: {},
537
+ // timestamp: Date.now(),
538
+ // interval: 0,
539
+ // },
540
+ // {},
541
+ // ),
542
+
543
+ // 通知所有用户请求被拒绝, 主持人和其他发起请求的用户需要在收到该通知后, 需要自行判断自己身份、是否发起过请求来决定是否需要处理此通知
544
+ this._roomSessionControl.startRoomSession({
545
+ sessionKey: _type4.FcrUISessionKey.REJECT_OPEN_TRANSCRIBING,
546
+ duration: 1,
547
+ payload: {
548
+ rejected_userId: session.senderId,
549
+ rejected_sessionId: session.sessionId
550
+ }
551
+ })]));
552
+ case 1:
553
+ case "end":
554
+ return _context3.stop();
555
+ }
556
+ }, _callee3, this);
557
+ }));
558
+ function rejectOpenTranscribing(_x2) {
559
+ return _rejectOpenTranscribing.apply(this, arguments);
560
+ }
561
+ return rejectOpenTranscribing;
562
+ }()
563
+ }, {
564
+ key: "startCaption",
565
+ value: function startCaption() {
566
+ this._isCaptionOpening = true;
567
+ var config = {
568
+ sourceLanguage: this._sourceLanguage
569
+ };
570
+ if (this._translateLanguage) {
571
+ config.targetLanguage = this._translateLanguage;
572
+ }
573
+ return this._sttControl.startCaption(config);
574
+ }
575
+ }, {
576
+ key: "stopCaption",
577
+ value: function () {
578
+ var _stopCaption = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
579
+ var isCallbackTriggered,
580
+ _args4 = arguments;
581
+ return _regenerator["default"].wrap(function (_context4) {
582
+ while (1) switch (_context4.prev = _context4.next) {
583
+ case 0:
584
+ isCallbackTriggered = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : false;
585
+ _context4.next = 1;
586
+ return this._sttControl.stopCaption();
587
+ case 1:
588
+ if (!isCallbackTriggered) {
589
+ this._messageProvider.showToast({
590
+ type: 'normal',
591
+ message: (0, _i18n.transI18n)('fmt_ai_subtitles_toast_you_turned_off_subtitles'),
592
+ duration: 2000
593
+ });
594
+ }
595
+ this._isCaptionOpening = false;
596
+ case 2:
597
+ case "end":
598
+ return _context4.stop();
599
+ }
600
+ }, _callee4, this);
601
+ }));
602
+ function stopCaption() {
603
+ return _stopCaption.apply(this, arguments);
604
+ }
605
+ return stopCaption;
606
+ }()
607
+ }, {
608
+ key: "startTranscribing",
609
+ value: function () {
610
+ var _startTranscribing = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
611
+ return _regenerator["default"].wrap(function (_context5) {
612
+ while (1) switch (_context5.prev = _context5.next) {
613
+ case 0:
614
+ _context5.next = 1;
615
+ return this._sttControl.startTranscribing({
616
+ sourceLanguage: this.sourceLanguage
617
+ });
618
+ case 1:
619
+ _context5.next = 2;
620
+ return this._markHasEverEnabledTranscribing();
621
+ case 2:
622
+ case "end":
623
+ return _context5.stop();
624
+ }
625
+ }, _callee5, this);
626
+ }));
627
+ function startTranscribing() {
628
+ return _startTranscribing.apply(this, arguments);
629
+ }
630
+ return startTranscribing;
631
+ }()
632
+ }, {
633
+ key: "stopTranscribing",
634
+ value: function () {
635
+ var _stopTranscribing = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6() {
636
+ return _regenerator["default"].wrap(function (_context6) {
637
+ while (1) switch (_context6.prev = _context6.next) {
638
+ case 0:
639
+ _context6.next = 1;
640
+ return this._sttControl.stopTranscribing();
641
+ case 1:
642
+ return _context6.abrupt("return", _context6.sent);
643
+ case 2:
644
+ case "end":
645
+ return _context6.stop();
646
+ }
647
+ }, _callee6, this);
648
+ }));
649
+ function stopTranscribing() {
650
+ return _stopTranscribing.apply(this, arguments);
651
+ }
652
+ return stopTranscribing;
653
+ }()
654
+ }, {
655
+ key: "updateSourceLanguage",
656
+ value: function () {
657
+ var _updateSourceLanguage2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7(language) {
658
+ var _this2 = this;
659
+ var isSTTEnabled, reason1, dialogId;
660
+ return _regenerator["default"].wrap(function (_context7) {
661
+ while (1) switch (_context7.prev = _context7.next) {
662
+ case 0:
663
+ isSTTEnabled = this.captionState || this.transcribingState;
664
+ if (isSTTEnabled) {
665
+ _context7.next = 1;
666
+ break;
667
+ }
668
+ this._sourceLanguage = language;
669
+ return _context7.abrupt("return");
670
+ case 1:
671
+ reason1 = _translationSettingOptions.SourceLanguageMapGenerateI18nKey[language];
672
+ dialogId = this._dialogProvider.openConfirmDialog({
673
+ title: (0, _i18n.transI18n)('fmt_ai_subtitles_window_label_change_language'),
674
+ content: (0, _i18n.transI18n)('fmt_ai_subtitles_window_label_change_language_content', {
675
+ reason1: reason1 ? (0, _i18n.transI18n)(reason1) : language
676
+ }),
677
+ alignCenter: true,
678
+ closable: false,
679
+ onOk: function onOk() {
680
+ _this2._dialogProvider.closeConfirmDialog(dialogId);
681
+ _this2._updateSourceLanguage(language);
682
+ },
683
+ onCancel: function onCancel() {
684
+ _this2._dialogProvider.closeConfirmDialog(dialogId);
685
+ },
686
+ cancelText: (0, _i18n.transI18n)('fmt_ai_subtitles_window_button_cancel'),
687
+ okText: (0, _i18n.transI18n)('fmt_ai_subtitles_window_button_modify'),
688
+ width: 320
689
+ });
690
+ case 2:
691
+ case "end":
692
+ return _context7.stop();
693
+ }
694
+ }, _callee7, this);
695
+ }));
696
+ function updateSourceLanguage(_x3) {
697
+ return _updateSourceLanguage2.apply(this, arguments);
698
+ }
699
+ return updateSourceLanguage;
700
+ }()
701
+ }, {
702
+ key: "subscribeTranslateLanguage",
703
+ value: function () {
704
+ var _subscribeTranslateLanguage2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8(language) {
705
+ var isSTTEnabled;
706
+ return _regenerator["default"].wrap(function (_context8) {
707
+ while (1) switch (_context8.prev = _context8.next) {
708
+ case 0:
709
+ isSTTEnabled = this.captionState || this.transcribingState;
710
+ if (isSTTEnabled) {
711
+ _context8.next = 1;
712
+ break;
713
+ }
714
+ this._translateLanguage = language;
715
+ return _context8.abrupt("return");
716
+ case 1:
717
+ if (!language) {
718
+ _context8.next = 3;
719
+ break;
720
+ }
721
+ _context8.next = 2;
722
+ return this._subscribeTranslateLanguage(language);
723
+ case 2:
724
+ _context8.next = 4;
725
+ break;
726
+ case 3:
727
+ _context8.next = 4;
728
+ return this._unsubscribeTranslateLanguage();
729
+ case 4:
730
+ case "end":
731
+ return _context8.stop();
732
+ }
733
+ }, _callee8, this);
734
+ }));
735
+ function subscribeTranslateLanguage(_x4) {
736
+ return _subscribeTranslateLanguage2.apply(this, arguments);
737
+ }
738
+ return subscribeTranslateLanguage;
739
+ }()
740
+ }, {
741
+ key: "clearCaptionSentence",
742
+ value: function clearCaptionSentence() {
743
+ this._captionSentence = null;
744
+ }
745
+ }, {
746
+ key: "allowStartTranscribe",
747
+ value: function allowStartTranscribe(enable) {
748
+ this._sharedSecurityDataSource.setCheckedStateMap(_objectSpread(_objectSpread({}, this._sharedSecurityDataSource.checkedStateMap), {}, {
749
+ isStartTranscribeAllowed: enable
750
+ }));
751
+ this._privilegeProvider.allowStartTranscribe(enable);
752
+ }
753
+ }, {
754
+ key: "allowStartCaption",
755
+ value: function allowStartCaption(enable) {
756
+ this._sharedSecurityDataSource.setCheckedStateMap(_objectSpread(_objectSpread({}, this._sharedSecurityDataSource.checkedStateMap), {}, {
757
+ isStartCaptionAllowed: enable
758
+ }));
759
+ this._privilegeProvider.allowStartCaption(enable);
760
+ }
761
+ }, {
762
+ key: "allowSetSourceLanguage",
763
+ value: function allowSetSourceLanguage(enable) {
764
+ this._sharedSecurityDataSource.setCheckedStateMap(_objectSpread(_objectSpread({}, this._sharedSecurityDataSource.checkedStateMap), {}, {
765
+ isSetSourceLanguageAllowed: enable
766
+ }));
767
+ this._privilegeProvider.allowSetSourceLanguage(enable);
768
+ }
769
+ }, {
770
+ key: "addObserver",
771
+ value: function addObserver(observer) {
772
+ this._observable.addObserver(observer);
773
+ }
774
+ }, {
775
+ key: "removeObserver",
776
+ value: function removeObserver(observer) {
777
+ this._observable.removeObserver(observer);
778
+ }
779
+ }, {
780
+ key: "_updateSourceLanguage",
781
+ value: function _updateSourceLanguage(language) {
782
+ if (!this._privilegeProvider.hasSetSourceLanguagePermission()) {
783
+ this._logger.error('updateSourceLanguage: no permission to update source language');
784
+ return;
785
+ }
786
+ var previous = this._sourceLanguage;
787
+ if (language === previous) {
788
+ this._logger.warn('updateSourceLanguage: language is the same as previous, no need to update');
789
+ return;
790
+ }
791
+ try {
792
+ this._sttControl.updateSourceLanguage(language);
793
+ } catch (error) {
794
+ this._sourceLanguage = this._sttControl.getSourceLanguage() || _type2.FcrLanguage.ZH;
795
+ throw error;
796
+ }
797
+ }
798
+ }, {
799
+ key: "_getTranslation",
800
+ value: function _getTranslation(translation, owner, timestamp) {
801
+ // 声源语言和翻译语言相同, 则视为没有开启翻译
802
+ if (this._translateLanguage === null || this._sourceLanguage === this._translateLanguage) {
803
+ return undefined;
804
+ }
805
+ if (translation) {
806
+ return translation;
807
+ }
808
+ return {
809
+ id: '',
810
+ text: '',
811
+ timestamp: timestamp,
812
+ owner: owner,
813
+ isFinal: false,
814
+ language: this._translateLanguage
815
+ };
816
+ }
817
+
818
+ // TODO: 转写和字幕拆分处理, 分别按需订阅此事件
819
+ }, {
820
+ key: "_handleSttEventReceived",
821
+ value: function _handleSttEventReceived(roomId, event) {
822
+ var isInterpreterEnabled = this._interpreterDataSource.isInterpreterEnabled && !this._interpreterDataSource.hasSubscribedLanguageList.includes(_interpreter.ORIGIN);
823
+ if (isInterpreterEnabled) {
824
+ return;
825
+ }
826
+ var translation = this._translateLanguage ? event.translations.get(this._translateLanguage) : undefined;
827
+ var id = event.transcript.id;
828
+ var sentence = this._sentenceMap.get(id);
829
+ if (sentence === undefined) {
830
+ sentence = createSentence(id, event.transcript.owner.userId, event.transcript, this._getTranslation(translation, event.transcript.owner, event.transcript.timestamp));
831
+ if (this._sentenceMap.size >= this._cacheMaxLimit) {
832
+ var index = this._transcribingList.findIndex(function (item) {
833
+ return item.type === 'sentence';
834
+ });
835
+ if (index === -1) {
836
+ this._logger.error('transcribing list is full, but no sentence item found to remove');
837
+ } else {
838
+ this._transcribingList.splice(0, index + 1);
839
+ }
840
+ }
841
+ if (this._transcribingState) {
842
+ this._transcribingList.push(sentence);
843
+ this._sentenceMap.set(id, sentence);
844
+ }
845
+ } else {
846
+ sentence = _objectSpread(_objectSpread({}, sentence), {}, {
847
+ transcript: event.transcript,
848
+ translation: sentence.translation ? this._getTranslation(translation, event.transcript.owner, event.transcript.timestamp) : undefined
849
+ });
850
+ var _index = this._transcribingList.findLastIndex(function (item) {
851
+ return item.id === id;
852
+ });
853
+ if (_index !== -1) {
854
+ this._transcribingList.splice(_index, 1, sentence);
855
+ } else {
856
+ this._logger.error('unable to find sentence in transcribing list to update');
857
+ }
858
+ }
859
+ if (this.captionState) {
860
+ this._captionSentence = sentence;
861
+ }
862
+ }
863
+ }, {
864
+ key: "_subscribeTranslateLanguage",
865
+ value: function () {
866
+ var _subscribeTranslateLanguage3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9(language) {
867
+ var previous, now, sentence, _t;
868
+ return _regenerator["default"].wrap(function (_context9) {
869
+ while (1) switch (_context9.prev = _context9.next) {
870
+ case 0:
871
+ previous = this._effectiveTranslateLanguage;
872
+ if (!(language === previous)) {
873
+ _context9.next = 1;
874
+ break;
875
+ }
876
+ this._logger.warn('subscribeTranslateLanguage: language is the same as previous, no need to update');
877
+ return _context9.abrupt("return");
878
+ case 1:
879
+ this._translateLanguage = language;
880
+ now = Date.now();
881
+ sentence = {
882
+ type: 'action',
883
+ id: "".concat(_type3.FcrUISttActionType.START_TRANSLATION, "-").concat(now),
884
+ actionType: _type3.FcrUISttActionType.START_TRANSLATION,
885
+ startTs: now
886
+ };
887
+ this._transcribingList.push(sentence);
888
+ _context9.prev = 2;
889
+ _context9.next = 3;
890
+ return this._sttControl.subscribeTranscribingLanguage(language);
891
+ case 3:
892
+ this._effectiveTranslateLanguage = language;
893
+ _context9.next = 5;
894
+ break;
895
+ case 4:
896
+ _context9.prev = 4;
897
+ _t = _context9["catch"](2);
898
+ // 订阅失败, 恢复之前的值
899
+ this._translateLanguage = previous;
900
+ throw _t;
901
+ case 5:
902
+ case "end":
903
+ return _context9.stop();
904
+ }
905
+ }, _callee9, this, [[2, 4]]);
906
+ }));
907
+ function _subscribeTranslateLanguage(_x5) {
908
+ return _subscribeTranslateLanguage3.apply(this, arguments);
909
+ }
910
+ return _subscribeTranslateLanguage;
911
+ }()
912
+ }, {
913
+ key: "_unsubscribeTranslateLanguage",
914
+ value: function () {
915
+ var _unsubscribeTranslateLanguage2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee0() {
916
+ var previous, now, sentence, _t2;
917
+ return _regenerator["default"].wrap(function (_context0) {
918
+ while (1) switch (_context0.prev = _context0.next) {
919
+ case 0:
920
+ previous = this._effectiveTranslateLanguage;
921
+ if (previous) {
922
+ _context0.next = 1;
923
+ break;
924
+ }
925
+ this._logger.warn('unsubscribeTranslateLanguage: language is already null, no need to unsubscribe');
926
+ return _context0.abrupt("return");
927
+ case 1:
928
+ this._translateLanguage = null;
929
+ now = Date.now();
930
+ sentence = {
931
+ type: 'action',
932
+ id: "".concat(_type3.FcrUISttActionType.STOP_TRANSLATION, "-").concat(now),
933
+ actionType: _type3.FcrUISttActionType.STOP_TRANSLATION,
934
+ startTs: now
935
+ };
936
+ this._transcribingList.push(sentence);
937
+ _context0.prev = 2;
938
+ _context0.next = 3;
939
+ return this._sttControl.unsubscribeTranscribingLanguage();
940
+ case 3:
941
+ this._effectiveTranslateLanguage = null;
942
+ _context0.next = 5;
943
+ break;
944
+ case 4:
945
+ _context0.prev = 4;
946
+ _t2 = _context0["catch"](2);
947
+ // 取消订阅失败, 恢复之前的值
948
+ this._translateLanguage = previous;
949
+ throw _t2;
950
+ case 5:
951
+ case "end":
952
+ return _context0.stop();
953
+ }
954
+ }, _callee0, this, [[2, 4]]);
955
+ }));
956
+ function _unsubscribeTranslateLanguage() {
957
+ return _unsubscribeTranslateLanguage2.apply(this, arguments);
958
+ }
959
+ return _unsubscribeTranslateLanguage;
960
+ }() /** 标记开启过转写 */
961
+ }, {
962
+ key: "_markHasEverEnabledTranscribing",
963
+ value: (function () {
964
+ var _markHasEverEnabledTranscribing2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee1() {
965
+ return _regenerator["default"].wrap(function (_context1) {
966
+ while (1) switch (_context1.prev = _context1.next) {
967
+ case 0:
968
+ if (!(this._roomControl.getRoomPropertiesByKeyPath('stt.transcribingChanged') === true)) {
969
+ _context1.next = 1;
970
+ break;
971
+ }
972
+ return _context1.abrupt("return");
973
+ case 1:
974
+ _context1.next = 2;
975
+ return this._roomControl.updateRoomProperties({
976
+ 'stt.transcribingChanged': true
977
+ });
978
+ case 2:
979
+ this._hasEverEnabledTranscribing = true;
980
+ case 3:
981
+ case "end":
982
+ return _context1.stop();
983
+ }
984
+ }, _callee1, this);
985
+ }));
986
+ function _markHasEverEnabledTranscribing() {
987
+ return _markHasEverEnabledTranscribing2.apply(this, arguments);
988
+ }
989
+ return _markHasEverEnabledTranscribing;
990
+ }())
991
+ }]);
992
+ }();
993
+ _FcrUISttProviderImpl = FcrUISttProviderImpl;
994
+ var _applyDecs$e = _applyDecs(_FcrUISttProviderImpl, [[_mobx.observable, 1, "_captionState"], [_mobx.observable, 1, "_transcribingState"], [_mobx.observable, 1, "_openOrStopTranscribingUser"], [_mobx.observable, 1, "_hasEverEnabledTranscribing"], [_mobx.observable, 1, "_languageOptions"], [_mobx.observable, 1, "_sourceLanguage"], [_mobx.observable, 1, "_translateLanguage"], [_mobx.observable, 1, "_transcribingList"], [_mobx.observable, 1, "_captionSentence"], [_mobx.observable, 1, "_isCaptionOpening"], [_imports.bound, 2, "acceptOpenTranscribing"], [_imports.bound, 2, "rejectOpenTranscribing"], [_imports.bound, 2, "startCaption"], [_imports.bound, 2, "stopCaption"], [_imports.bound, 2, "startTranscribing"], [_imports.bound, 2, "stopTranscribing"], [_imports.bound, 2, "updateSourceLanguage"], [_imports.bound, 2, "subscribeTranslateLanguage"], [_imports.bound, 2, "clearCaptionSentence"], [_imports.bound, 2, "allowStartTranscribe"], [_imports.bound, 2, "allowStartCaption"], [_imports.bound, 2, "allowSetSourceLanguage"], [_imports.bound, 2, "_handleSttEventReceived"]], []).e;
995
+ var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 11);
996
+ _init__captionState = _applyDecs$e2[0];
997
+ _init__transcribingState = _applyDecs$e2[1];
998
+ _init__openOrStopTranscribingUser = _applyDecs$e2[2];
999
+ _init__hasEverEnabledTranscribing = _applyDecs$e2[3];
1000
+ _init__languageOptions = _applyDecs$e2[4];
1001
+ _init__sourceLanguage = _applyDecs$e2[5];
1002
+ _init__translateLanguage = _applyDecs$e2[6];
1003
+ _init__transcribingList = _applyDecs$e2[7];
1004
+ _init__captionSentence = _applyDecs$e2[8];
1005
+ _init__isCaptionOpening = _applyDecs$e2[9];
1006
+ _initProto = _applyDecs$e2[10];
1007
+ _applyDecs$e;