fcr-ui-scene 3.4.0 → 3.4.1

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 (324) hide show
  1. package/lib/ scenes/base.d.ts +10 -0
  2. package/lib/ scenes/base.js +75 -0
  3. package/lib/ scenes/main-scene.d.ts +43 -0
  4. package/lib/ scenes/main-scene.js +368 -0
  5. package/lib/ scenes/waiting-scene.d.ts +31 -0
  6. package/lib/ scenes/waiting-scene.js +119 -0
  7. package/lib/common/device-store.d.ts +1 -2
  8. package/lib/common/device-store.js +169 -153
  9. package/lib/common/device-stream-store.d.ts +5 -29
  10. package/lib/common/device-stream-store.js +47 -93
  11. package/lib/common/room-store.js +4 -4
  12. package/lib/common/security-store.d.ts +6 -16
  13. package/lib/common/security-store.js +16 -17
  14. package/lib/common/type.d.ts +8 -0
  15. package/lib/common/type.js +6 -0
  16. package/lib/creator.js +3 -3
  17. package/lib/electron/app.js +21 -5
  18. package/lib/electron/bootstrap-sdk.js +1 -2
  19. package/lib/electron/injections.d.ts +1 -1
  20. package/lib/error-fallback.css +62 -0
  21. package/lib/error-fallback.d.ts +2 -0
  22. package/lib/error-fallback.js +19 -0
  23. package/lib/modules/Interpreter/action/delete-btn/index.d.ts +1 -1
  24. package/lib/modules/Interpreter/action/edit-btn/index.d.ts +0 -1
  25. package/lib/modules/Interpreter/action/edit-btn/index.js +0 -2
  26. package/lib/modules/Interpreter/action/switch-btn/index.css +3 -0
  27. package/lib/modules/Interpreter/action/switch-btn/index.d.ts +2 -4
  28. package/lib/modules/Interpreter/action/switch-btn/index.js +3 -3
  29. package/lib/modules/Interpreter/footer/index.css +4 -3
  30. package/lib/modules/Interpreter/index.d.ts +2 -17
  31. package/lib/modules/Interpreter/index.js +2 -18
  32. package/lib/modules/Interpreter/interpreter-list/index.css +5 -1
  33. package/lib/modules/Interpreter/interpreter-list/index.d.ts +1 -0
  34. package/lib/modules/Interpreter/interpreter-list/index.js +3 -1
  35. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/index.css +0 -6
  36. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/index.d.ts +1 -1
  37. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-user/index.css +1 -3
  38. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-user/index.d.ts +1 -6
  39. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-user/index.js +55 -81
  40. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-user/option-Item.d.ts +6 -0
  41. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-user/option-Item.js +58 -0
  42. package/lib/modules/Interpreter/interpreter-list/interpreter-item/index.d.ts +1 -1
  43. package/lib/modules/Interpreter/store.d.ts +36 -29
  44. package/lib/modules/Interpreter/store.js +575 -606
  45. package/lib/modules/Interpreter/type.d.ts +41 -0
  46. package/lib/modules/Interpreter/type.js +20 -0
  47. package/lib/modules/Interpreter/utils.d.ts +12 -0
  48. package/lib/modules/Interpreter/utils.js +139 -0
  49. package/lib/modules/Interpreter/view.d.ts +0 -1
  50. package/lib/modules/Interpreter/view.js +3 -5
  51. package/lib/modules/action-bar/action-bar-collapes-items.d.ts +1 -1
  52. package/lib/modules/action-bar/action-bar-collapes-items.js +11 -11
  53. package/lib/modules/action-bar/apps/useInterpreter.js +4 -2
  54. package/lib/modules/action-bar/components/apps/app-item/index.css +35 -0
  55. package/lib/modules/action-bar/components/apps/app-item/index.d.ts +12 -0
  56. package/lib/modules/action-bar/components/apps/app-item/index.js +61 -0
  57. package/lib/modules/action-bar/components/apps/appitems.d.ts +5 -0
  58. package/lib/modules/action-bar/components/apps/appitems.js +45 -0
  59. package/lib/modules/action-bar/components/apps/index.css +8 -0
  60. package/lib/modules/action-bar/components/apps/index.d.ts +4 -0
  61. package/lib/modules/action-bar/components/apps/index.js +57 -0
  62. package/lib/modules/action-bar/components/apps/useAppItemOptions.d.ts +9 -0
  63. package/lib/modules/action-bar/components/apps/useAppItemOptions.js +29 -0
  64. package/lib/modules/action-bar/components/apps/useBeautyBackground.d.ts +10 -0
  65. package/lib/modules/action-bar/components/apps/useBeautyBackground.js +36 -0
  66. package/lib/modules/action-bar/components/apps/useInterpreter.d.ts +14 -0
  67. package/lib/modules/action-bar/components/apps/useInterpreter.js +37 -0
  68. package/lib/modules/action-bar/components/apps/useLiveStreaming.d.ts +16 -0
  69. package/lib/modules/action-bar/components/apps/useLiveStreaming.js +41 -0
  70. package/lib/modules/action-bar/components/board/index.d.ts +4 -0
  71. package/lib/modules/action-bar/components/board/index.js +34 -0
  72. package/lib/modules/action-bar/components/breakout-room/index.d.ts +4 -0
  73. package/lib/modules/action-bar/components/breakout-room/index.js +32 -0
  74. package/lib/modules/action-bar/components/chat/index.css +80 -0
  75. package/lib/modules/action-bar/components/chat/index.d.ts +5 -0
  76. package/lib/modules/action-bar/components/chat/index.js +154 -0
  77. package/lib/modules/action-bar/components/device/index.css +162 -0
  78. package/lib/modules/action-bar/components/device/index.d.ts +8 -0
  79. package/lib/modules/action-bar/components/device/index.js +611 -0
  80. package/lib/modules/action-bar/components/interpreter/index.d.ts +6 -0
  81. package/lib/modules/action-bar/components/interpreter/index.js +41 -0
  82. package/lib/modules/action-bar/components/item.d.ts +27 -0
  83. package/lib/modules/action-bar/components/item.js +164 -0
  84. package/lib/modules/action-bar/components/leave/assign-host.d.ts +10 -0
  85. package/lib/modules/action-bar/components/leave/assign-host.js +64 -0
  86. package/lib/modules/action-bar/components/leave/index.css +126 -0
  87. package/lib/modules/action-bar/components/leave/index.d.ts +3 -0
  88. package/lib/modules/action-bar/components/leave/index.js +159 -0
  89. package/lib/modules/action-bar/components/leave/leave-meeting.d.ts +18 -0
  90. package/lib/modules/action-bar/components/leave/leave-meeting.js +153 -0
  91. package/lib/modules/action-bar/components/live-streaming/index.d.ts +4 -0
  92. package/lib/modules/action-bar/components/live-streaming/index.js +39 -0
  93. package/lib/modules/action-bar/components/more/index.css +114 -0
  94. package/lib/modules/action-bar/components/more/index.d.ts +5 -0
  95. package/lib/modules/action-bar/components/more/index.js +83 -0
  96. package/lib/modules/action-bar/components/more/poppover-content.d.ts +8 -0
  97. package/lib/modules/action-bar/components/more/poppover-content.js +400 -0
  98. package/lib/modules/action-bar/components/participants/index.css +21 -0
  99. package/lib/modules/action-bar/components/participants/index.d.ts +5 -0
  100. package/lib/modules/action-bar/components/participants/index.js +83 -0
  101. package/lib/modules/action-bar/components/record/index.css +39 -0
  102. package/lib/modules/action-bar/components/record/index.d.ts +5 -0
  103. package/lib/modules/action-bar/components/record/index.js +166 -0
  104. package/lib/modules/action-bar/components/record/stop-record-dialog.d.ts +5 -0
  105. package/lib/modules/action-bar/components/record/stop-record-dialog.js +48 -0
  106. package/lib/modules/action-bar/components/respond/index.d.ts +4 -0
  107. package/lib/modules/action-bar/components/respond/index.js +32 -0
  108. package/lib/modules/action-bar/components/screen-share/index.d.ts +4 -0
  109. package/lib/modules/action-bar/components/screen-share/index.js +106 -0
  110. package/lib/modules/action-bar/components/screen-share/submenu.d.ts +1 -0
  111. package/lib/modules/action-bar/components/screen-share/submenu.js +154 -0
  112. package/lib/modules/action-bar/components/security/index.d.ts +4 -0
  113. package/lib/modules/action-bar/components/security/index.js +58 -0
  114. package/lib/modules/action-bar/components/settings/index.d.ts +4 -0
  115. package/lib/modules/action-bar/components/settings/index.js +42 -0
  116. package/lib/modules/action-bar/index.css +23 -1
  117. package/lib/modules/action-bar/index.d.ts +2 -22
  118. package/lib/modules/action-bar/index.dev.js +37 -16
  119. package/lib/modules/action-bar/notification-bar/components/interpreter/index.css +58 -0
  120. package/lib/modules/action-bar/notification-bar/components/interpreter/index.d.ts +8 -0
  121. package/lib/modules/action-bar/notification-bar/components/interpreter/index.js +100 -0
  122. package/lib/modules/action-bar/notification-bar/components/virtual-image/index.css +56 -0
  123. package/lib/modules/action-bar/notification-bar/components/virtual-image/index.d.ts +5 -0
  124. package/lib/modules/action-bar/notification-bar/components/virtual-image/index.js +33 -0
  125. package/lib/modules/action-bar/notification-bar/dome.png +0 -0
  126. package/lib/modules/action-bar/notification-bar/fcr_translateswitch.png +0 -0
  127. package/lib/modules/action-bar/notification-bar/index.css +74 -0
  128. package/lib/modules/action-bar/notification-bar/index.d.ts +2 -0
  129. package/lib/modules/action-bar/notification-bar/index.js +99 -0
  130. package/lib/modules/action-bar/screen-share/index.js +5 -0
  131. package/lib/modules/action-bar/security/index.js +1 -0
  132. package/lib/modules/action-bar/smaller.js +2 -2
  133. package/lib/modules/action-bar/store.d.ts +6 -7
  134. package/lib/modules/action-bar/store.js +114 -128
  135. package/lib/modules/action-bar/trigger-input-language-room/fcr_translateswitch.png +0 -0
  136. package/lib/modules/action-bar/trigger-input-language-room/index.css +86 -0
  137. package/lib/modules/action-bar/trigger-input-language-room/index.d.ts +15 -0
  138. package/lib/modules/action-bar/trigger-input-language-room/index.js +220 -0
  139. package/lib/modules/action-bar/trigger-output-language-room/constant.d.ts +10 -0
  140. package/lib/modules/action-bar/trigger-output-language-room/constant.js +8 -0
  141. package/lib/modules/action-bar/trigger-output-language-room/guide-tooltip/index.css +22 -0
  142. package/lib/modules/action-bar/trigger-output-language-room/guide-tooltip/index.d.ts +14 -0
  143. package/lib/modules/action-bar/trigger-output-language-room/guide-tooltip/index.js +75 -0
  144. package/lib/modules/action-bar/trigger-output-language-room/index.d.ts +4 -0
  145. package/lib/modules/action-bar/trigger-output-language-room/index.js +98 -0
  146. package/lib/modules/action-bar/trigger-output-language-room/trigger-language-room.d.ts +5 -0
  147. package/lib/modules/action-bar/trigger-output-language-room/trigger-language-room.js +66 -0
  148. package/lib/modules/action-bar/trigger-output-language-room/trigger-main-room.d.ts +5 -0
  149. package/lib/modules/action-bar/trigger-output-language-room/trigger-main-room.js +36 -0
  150. package/lib/modules/action-bar/trigger-output-language-room/useChangeOutputRoomTool.d.ts +12 -0
  151. package/lib/modules/action-bar/trigger-output-language-room/useChangeOutputRoomTool.js +138 -0
  152. package/lib/modules/action-bar/view.js +6 -6
  153. package/lib/modules/audio-stream/index.d.ts +2 -15
  154. package/lib/modules/audio-stream/index.js +1 -3
  155. package/lib/modules/chat/chat-bar/index.css +5 -0
  156. package/lib/modules/chat/chat-bar/index.js +16 -14
  157. package/lib/modules/chat/chat-select/index.css +6 -3
  158. package/lib/modules/chat/chat.js +7 -6
  159. package/lib/modules/chat/index.css +10 -0
  160. package/lib/modules/chat/index.d.ts +2 -12
  161. package/lib/modules/chat/index.dev.js +14 -3
  162. package/lib/modules/chat/index.js +7 -20
  163. package/lib/modules/chat/message-list.js +1 -0
  164. package/lib/modules/chat/store.js +1 -1
  165. package/lib/modules/components/device-control/components/audio-menu/index.js +4 -4
  166. package/lib/modules/components/device-control/index.css +3 -0
  167. package/lib/modules/components/dialog-container/component/body.d.ts +7 -0
  168. package/lib/modules/components/dialog-container/component/body.js +46 -0
  169. package/lib/modules/components/dialog-container/index.css +78 -0
  170. package/lib/modules/components/dialog-container/index.d.ts +11 -0
  171. package/lib/modules/components/dialog-container/index.js +110 -0
  172. package/lib/modules/components/member-window/index.css +419 -0
  173. package/lib/modules/components/member-window/index.d.ts +76 -0
  174. package/lib/modules/components/member-window/index.js +888 -0
  175. package/lib/modules/components/security-menu/index.css +9 -0
  176. package/lib/modules/components/security-menu/index.js +74 -23
  177. package/lib/modules/components/tab-frame/index.css +40 -0
  178. package/lib/modules/components/tab-frame/index.d.ts +12 -0
  179. package/lib/modules/components/tab-frame/index.js +57 -0
  180. package/lib/modules/connection-gateway/components/computer/index.css +1 -0
  181. package/lib/modules/connection-gateway/components/phone/index.css +1 -1
  182. package/lib/modules/connection-gateway/index.d.ts +2 -9
  183. package/lib/modules/connection-gateway/store.d.ts +3 -11
  184. package/lib/modules/connection-gateway/store.js +1 -17
  185. package/lib/modules/connection-gateway/view.js +21 -4
  186. package/lib/modules/control-bar/components/cloud-recording-buttons.js +1 -1
  187. package/lib/modules/control-bar/index.d.ts +2 -16
  188. package/lib/modules/control-bar/index.js +10 -19
  189. package/lib/modules/control-bar/store.d.ts +3 -16
  190. package/lib/modules/control-bar/store.js +23 -5
  191. package/lib/modules/control-bar/view.js +17 -10
  192. package/lib/modules/device-pretest/settings/virtual-background-setting.js +1 -1
  193. package/lib/modules/dialog/components/Interpreter/electron.js +3 -25
  194. package/lib/modules/dialog/components/Interpreter/index.js +14 -43
  195. package/lib/modules/dialog/components/chat/electron.d.ts +1 -1
  196. package/lib/modules/dialog/components/chat/electron.js +6 -13
  197. package/lib/modules/dialog/components/chat/index.d.ts +1 -4
  198. package/lib/modules/dialog/components/chat/index.js +35 -41
  199. package/lib/modules/dialog/components/confirm/index.js +6 -7
  200. package/lib/modules/dialog/components/connection-gateway/electron.d.ts +1 -1
  201. package/lib/modules/dialog/components/connection-gateway/electron.js +9 -28
  202. package/lib/modules/dialog/components/connection-gateway/index.d.ts +0 -1
  203. package/lib/modules/dialog/components/connection-gateway/index.js +11 -56
  204. package/lib/modules/dialog/components/control-bar/index.js +6 -7
  205. package/lib/modules/dialog/components/device-setting/electron.js +4 -26
  206. package/lib/modules/dialog/components/device-setting/index.js +13 -41
  207. package/lib/modules/dialog/components/invite/index.js +16 -35
  208. package/lib/modules/dialog/components/live-streaming/index.js +18 -53
  209. package/lib/modules/dialog/components/participant/electron.js +4 -17
  210. package/lib/modules/dialog/components/participant/index.js +35 -26
  211. package/lib/modules/dialog/components/remove-admit-waiting-room/electron.js +3 -6
  212. package/lib/modules/dialog/components/remove-admit-waiting-room/index.d.ts +1 -1
  213. package/lib/modules/dialog/components/remove-admit-waiting-room/index.js +4 -14
  214. package/lib/modules/dialog/components/share-screen-selection/index.js +20 -5
  215. package/lib/modules/dialog/components/system-preference/electron.js +5 -8
  216. package/lib/modules/dialog/components/system-preference/index.js +4 -15
  217. package/lib/modules/dialog/components/toast/index.js +8 -12
  218. package/lib/modules/dialog/dialogs.js +2 -1
  219. package/lib/modules/dialog/hooks/useElectron.d.ts +6 -0
  220. package/lib/modules/dialog/hooks/useElectron.js +51 -9
  221. package/lib/modules/dialog/index.css +0 -2
  222. package/lib/modules/dialog/index.d.ts +2 -17
  223. package/lib/modules/dialog/store.d.ts +7 -39
  224. package/lib/modules/dialog/store.js +53 -152
  225. package/lib/modules/dialog/types/index.d.ts +59 -0
  226. package/lib/modules/event-confirm/view.js +4 -1
  227. package/lib/modules/invite/view.d.ts +4 -0
  228. package/lib/modules/invite/view.js +18 -22
  229. package/lib/modules/invite/voip-invite.js +3 -3
  230. package/lib/modules/layout/components/Aside.js +11 -1
  231. package/lib/modules/layout/components/Carousel.js +1 -1
  232. package/lib/modules/layout/components/Layout.js +7 -4
  233. package/lib/modules/layout/components/index.css +6 -1
  234. package/lib/modules/layout/index.js +8 -7
  235. package/lib/modules/layout/member-window/index.css +22 -9
  236. package/lib/modules/layout/member-window/index.js +16 -3
  237. package/lib/modules/layout/store.d.ts +1 -1
  238. package/lib/modules/layout/store.js +1 -7
  239. package/lib/modules/layout/video-window-datasource.js +11 -3
  240. package/lib/modules/notification/index.css +1 -0
  241. package/lib/modules/participant/attendee/index.css +1 -0
  242. package/lib/modules/participant/attendee/index.js +2 -1
  243. package/lib/modules/participant/components/drop-menu/index.css +1 -0
  244. package/lib/modules/participant/components/drop-menu/index.js +9 -9
  245. package/lib/modules/participant/index.css +5 -0
  246. package/lib/modules/participant/index.d.ts +2 -17
  247. package/lib/modules/participant/index.dev.js +38 -27
  248. package/lib/modules/participant/store.d.ts +4 -17
  249. package/lib/modules/participant/store.js +13 -13
  250. package/lib/modules/setting/audio-settings/audio-settings.js +13 -10
  251. package/lib/modules/setting/audio-settings/index.css +26 -1
  252. package/lib/modules/setting/general-settings/index.css +1 -1
  253. package/lib/modules/setting/index.css +2 -1
  254. package/lib/modules/setting/index.d.ts +2 -15
  255. package/lib/modules/setting/index.dev.js +19 -10
  256. package/lib/modules/setting/store.d.ts +5 -18
  257. package/lib/modules/setting/store.js +48 -20
  258. package/lib/modules/setting/translate-settings/index.css +3 -1
  259. package/lib/modules/setting/video-settings/index.css +5 -2
  260. package/lib/modules/share-screen/index.dev.js +20 -19
  261. package/lib/modules/share-screen/selection/index.css +2 -0
  262. package/lib/modules/share-screen/selection/index.js +83 -97
  263. package/lib/modules/share-screen/store.js +16 -36
  264. package/lib/modules/sound-effect/index.d.ts +2 -13
  265. package/lib/modules/sound-effect/index.js +1 -2
  266. package/lib/modules/state-bar/index.css +13 -2
  267. package/lib/modules/state-bar/index.d.ts +1 -5
  268. package/lib/modules/state-bar/index.dev.js +1 -1
  269. package/lib/modules/state-bar/index.js +0 -27
  270. package/lib/modules/state-bar/layout-config.js +1 -1
  271. package/lib/modules/state-bar/meeting-network-state.css +1 -1
  272. package/lib/modules/state-bar/recording.js +7 -4
  273. package/lib/modules/state-bar/view.js +1 -1
  274. package/lib/modules/video-window/index.d.ts +2 -2
  275. package/lib/modules/video-window/store.d.ts +2 -1
  276. package/lib/modules/video-window/store.js +2 -2
  277. package/lib/modules/waiting-room-layout/index.css +1 -3
  278. package/lib/modules/waiting-room-layout/index.d.ts +3 -1
  279. package/lib/modules/waiting-room-layout/index.js +10 -3
  280. package/lib/modules/whiteboard/index.d.ts +2 -13
  281. package/lib/modules/whiteboard/index.js +4 -5
  282. package/lib/providers/device-privilege-provider.d.ts +30 -0
  283. package/lib/providers/device-privilege-provider.js +386 -0
  284. package/lib/providers/device-provider.d.ts +246 -0
  285. package/lib/providers/device-provider.js +1741 -0
  286. package/lib/providers/device-stream-provider.d.ts +36 -0
  287. package/lib/providers/device-stream-provider.js +460 -0
  288. package/lib/providers/event-provider.d.ts +108 -0
  289. package/lib/providers/event-provider.js +288 -0
  290. package/lib/providers/interpreter-provider.d.ts +25 -0
  291. package/lib/providers/interpreter-provider.js +151 -0
  292. package/lib/providers/local-storage-provider.d.ts +8 -0
  293. package/lib/providers/local-storage-provider.js +31 -0
  294. package/lib/providers/monitor-provider.d.ts +15 -0
  295. package/lib/providers/monitor-provider.js +29 -0
  296. package/lib/providers/privilege-provider.d.ts +216 -0
  297. package/lib/providers/privilege-provider.js +966 -0
  298. package/lib/providers/renderer-provider.d.ts +43 -0
  299. package/lib/providers/renderer-provider.js +245 -0
  300. package/lib/providers/room-provider.d.ts +79 -0
  301. package/lib/providers/room-provider.js +439 -0
  302. package/lib/providers/session-provider.d.ts +26 -0
  303. package/lib/providers/session-provider.js +49 -0
  304. package/lib/runtime.d.ts +1 -1
  305. package/lib/scenes/base.d.ts +10 -0
  306. package/lib/scenes/base.js +75 -0
  307. package/lib/scenes/main-scene.d.ts +48 -0
  308. package/lib/scenes/main-scene.js +390 -0
  309. package/lib/scenes/waiting-scene.d.ts +31 -0
  310. package/lib/scenes/waiting-scene.js +129 -0
  311. package/lib/shared-data-source/config.d.ts +16 -0
  312. package/lib/shared-data-source/config.js +21 -0
  313. package/lib/type.d.ts +26 -1
  314. package/lib/ui-manager.d.ts +3 -0
  315. package/lib/ui-manager.js +154 -233
  316. package/lib/ui-node.d.ts +25 -0
  317. package/lib/ui-node.js +156 -0
  318. package/lib/utilities/constant.d.ts +15 -15
  319. package/lib/utilities/constant.js +15 -15
  320. package/lib/utilities/tools.d.ts +2 -0
  321. package/lib/utilities/tools.js +42 -10
  322. package/package.json +12 -11
  323. package/public/assets/fcr_leave2.svg +58 -0
  324. package/public/index.html +150 -13
@@ -0,0 +1,966 @@
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.every.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.name.js");
12
+ require("core-js/modules/es.map.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-property.js");
16
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
17
+ require("core-js/modules/esnext.async-iterator.every.js");
18
+ require("core-js/modules/esnext.function.metadata.js");
19
+ require("core-js/modules/esnext.iterator.every.js");
20
+ require("core-js/modules/esnext.map.delete-all.js");
21
+ require("core-js/modules/esnext.map.emplace.js");
22
+ require("core-js/modules/esnext.map.every.js");
23
+ require("core-js/modules/esnext.map.filter.js");
24
+ require("core-js/modules/esnext.map.find.js");
25
+ require("core-js/modules/esnext.map.find-key.js");
26
+ require("core-js/modules/esnext.map.includes.js");
27
+ require("core-js/modules/esnext.map.key-of.js");
28
+ require("core-js/modules/esnext.map.map-keys.js");
29
+ require("core-js/modules/esnext.map.map-values.js");
30
+ require("core-js/modules/esnext.map.merge.js");
31
+ require("core-js/modules/esnext.map.reduce.js");
32
+ require("core-js/modules/esnext.map.some.js");
33
+ require("core-js/modules/esnext.map.update.js");
34
+ require("core-js/modules/esnext.symbol.metadata.js");
35
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
36
+ var _typeof = require("@babel/runtime/helpers/typeof");
37
+ Object.defineProperty(exports, "__esModule", {
38
+ value: true
39
+ });
40
+ exports.FcrUIPrivilegeProviderImpl = void 0;
41
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
42
+ require("core-js/modules/es.array.concat.js");
43
+ require("core-js/modules/es.array.find.js");
44
+ require("core-js/modules/es.array.for-each.js");
45
+ require("core-js/modules/es.array.includes.js");
46
+ require("core-js/modules/es.array.iterator.js");
47
+ require("core-js/modules/es.array.push.js");
48
+ require("core-js/modules/es.array.some.js");
49
+ require("core-js/modules/es.date.to-json.js");
50
+ require("core-js/modules/es.function.bind.js");
51
+ require("core-js/modules/es.json.stringify.js");
52
+ require("core-js/modules/es.object.keys.js");
53
+ require("core-js/modules/es.object.to-string.js");
54
+ require("core-js/modules/es.object.values.js");
55
+ require("core-js/modules/es.string.includes.js");
56
+ require("core-js/modules/es.string.iterator.js");
57
+ require("core-js/modules/es.weak-map.js");
58
+ require("core-js/modules/esnext.async-iterator.find.js");
59
+ require("core-js/modules/esnext.async-iterator.for-each.js");
60
+ require("core-js/modules/esnext.async-iterator.some.js");
61
+ require("core-js/modules/esnext.iterator.constructor.js");
62
+ require("core-js/modules/esnext.iterator.find.js");
63
+ require("core-js/modules/esnext.iterator.for-each.js");
64
+ require("core-js/modules/esnext.iterator.some.js");
65
+ require("core-js/modules/esnext.weak-map.delete-all.js");
66
+ require("core-js/modules/esnext.weak-map.emplace.js");
67
+ require("core-js/modules/web.dom-collections.for-each.js");
68
+ require("core-js/modules/web.dom-collections.iterator.js");
69
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
70
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
71
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
72
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
73
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
74
+ var _fcrCore = require("fcr-core");
75
+ var _type = require("fcr-core/lib/type");
76
+ var _decorator = require("agora-foundation/lib/decorator");
77
+ var _mobx = require("mobx");
78
+ var _mobxUtils = require("mobx-utils");
79
+ var _lodash = require("lodash");
80
+ var _user = require("fcr-core/lib/utilities/user");
81
+ var _toast = require("agora-ui-foundation/lib/components/toast");
82
+ var _enums = require("fcr-core/lib/room-control/whiteboard-control/enums");
83
+ var _logger = require("agora-foundation/lib/logger");
84
+ var _type2 = require("agora-ui-foundation/lib/components/icon/type");
85
+ var _i18n = require("agora-ui-foundation/lib/i18n");
86
+ var _type3 = require("fcr-core/lib/room-control/privilege-control/type");
87
+ var _type4 = require("../modules/whiteboard/type");
88
+ var _constant = require("../utilities/constant");
89
+ var _base = require("../base");
90
+ var _FcrUIPrivilegeProviderImpl;
91
+ var _initProto, _init_securityInfos, _init_permissionInfos, _init_privilegeOperator, _init_boardOwnerUser, _handlePermissionUpdatedDecs, _handleSecurityUpdatedDecs, _isLocalUserInterpreterDecs, _ref;
92
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
93
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
94
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
95
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
96
+ 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"); }
97
+ 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)]; } }; }
98
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
99
+ 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); }
100
+ 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; }
101
+ 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; }
102
+ var _A = /*#__PURE__*/new WeakMap();
103
+ var _B = /*#__PURE__*/new WeakMap();
104
+ var _C = /*#__PURE__*/new WeakMap();
105
+ var _D = /*#__PURE__*/new WeakMap();
106
+ _ref = (_handlePermissionUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleSecurityUpdatedDecs = [_mobx.action, _mobx.action.bound], _isLocalUserInterpreterDecs = [_mobx.action, _mobx.action.bound], "logger");
107
+ var FcrUIPrivilegeProviderImpl = exports.FcrUIPrivilegeProviderImpl = /*#__PURE__*/function () {
108
+ function FcrUIPrivilegeProviderImpl(_eventProvider, _privilegeControl, _userControl, _streamControl, _interpterControl) {
109
+ var _this = this;
110
+ (0, _classCallCheck2["default"])(this, FcrUIPrivilegeProviderImpl);
111
+ (0, _defineProperty2["default"])(this, _ref, (_initProto(this), (0, _logger.getLogger)()));
112
+ (0, _defineProperty2["default"])(this, "_disposers", []);
113
+ _classPrivateFieldInitSpec(this, _A, _init_securityInfos(this));
114
+ _classPrivateFieldInitSpec(this, _B, _init_permissionInfos(this));
115
+ _classPrivateFieldInitSpec(this, _C, _init_privilegeOperator(this));
116
+ _classPrivateFieldInitSpec(this, _D, _init_boardOwnerUser(this));
117
+ (0, _defineProperty2["default"])(this, "allowChangeSelfName", (0, _mobxUtils.computedFn)(function () {
118
+ var info = _this.securityInfos.find(function (_ref2) {
119
+ var info = _ref2.info;
120
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.ChangeName;
121
+ });
122
+ return !!(info !== null && info !== void 0 && info.enable);
123
+ }));
124
+ (0, _defineProperty2["default"])(this, "allowChat", (0, _mobxUtils.computedFn)(function () {
125
+ var info = _this.securityInfos.find(function (_ref3) {
126
+ var info = _ref3.info;
127
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.SendChat;
128
+ });
129
+ return !!(info !== null && info !== void 0 && info.enable);
130
+ }));
131
+ (0, _defineProperty2["default"])(this, "getWaterMarkContent", function () {
132
+ return _this._userControl.getWaterMarkContent() || 'Watermark';
133
+ });
134
+ (0, _defineProperty2["default"])(this, "convertSendChatPayload", function (payload) {
135
+ return {
136
+ "public": !!payload["public"],
137
+ "private": {
138
+ host: !!payload["private"].host,
139
+ cohost: !!payload["private"].cohost,
140
+ participant: !!payload["private"].participant
141
+ }
142
+ };
143
+ });
144
+ // 允许发送公聊和私聊
145
+ (0, _defineProperty2["default"])(this, "allowedAllChat", (0, _mobxUtils.computedFn)(function () {
146
+ var info = _this.securityInfos.find(function (_ref4) {
147
+ var info = _ref4.info;
148
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.SendChat;
149
+ });
150
+ var payload = info && info.info && _this.convertSendChatPayload(info.info.payload);
151
+ return !!(!!(info !== null && info !== void 0 && info.enable) && payload && payload["public"] && payload["private"].host && payload["private"].cohost && payload["private"].participant);
152
+ }));
153
+ // 允许发送公聊,禁止发送私聊
154
+ (0, _defineProperty2["default"])(this, "allowedPublicChatAndDisallowedPrivateChat", (0, _mobxUtils.computedFn)(function () {
155
+ var info = _this.securityInfos.find(function (_ref5) {
156
+ var info = _ref5.info;
157
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.SendChat;
158
+ });
159
+ var payload = info && info.info && _this.convertSendChatPayload(info.info.payload);
160
+ return !!(!!(info !== null && info !== void 0 && info.enable) && payload && payload["public"] && payload["private"].host && !payload["private"].cohost && !payload["private"].participant);
161
+ }));
162
+ // 禁止发送公聊,只能私聊给主持人和联席主持人
163
+ (0, _defineProperty2["default"])(this, "disallowedPublicChatAndDisallowedPrivateChatToParticipant", (0, _mobxUtils.computedFn)(function () {
164
+ var info = _this.securityInfos.find(function (_ref6) {
165
+ var info = _ref6.info;
166
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.SendChat;
167
+ });
168
+ var payload = info && info.info && _this.convertSendChatPayload(info.info.payload);
169
+ return !!(!!(info !== null && info !== void 0 && info.enable) && payload && !payload["public"] && payload["private"].host && payload["private"].cohost && !payload["private"].participant);
170
+ }));
171
+ // 禁止发送所有聊天
172
+ (0, _defineProperty2["default"])(this, "disallowedAllChat", (0, _mobxUtils.computedFn)(function () {
173
+ var info = _this.securityInfos.find(function (_ref7) {
174
+ var info = _ref7.info;
175
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.SendChat;
176
+ });
177
+ var payload = info && info.info && _this.convertSendChatPayload(info.info.payload);
178
+ return !!(!(info !== null && info !== void 0 && info.enable) || payload && !payload["public"] && !payload["private"].host && !payload["private"].cohost && !payload["private"].participant);
179
+ }));
180
+ (0, _defineProperty2["default"])(this, "allowJoinWithMuteAudio", (0, _mobxUtils.computedFn)(function () {
181
+ var info = _this.securityInfos.find(function (_ref8) {
182
+ var info = _ref8.info;
183
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.JoinWithMuteAudio;
184
+ });
185
+ return !!(info !== null && info !== void 0 && info.enable);
186
+ }));
187
+ (0, _defineProperty2["default"])(this, "allowShareScreen", (0, _mobxUtils.computedFn)(function () {
188
+ var info = _this.securityInfos.find(function (_ref9) {
189
+ var info = _ref9.info;
190
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.ShareScreen;
191
+ });
192
+ return !!(info !== null && info !== void 0 && info.enable);
193
+ }));
194
+ (0, _defineProperty2["default"])(this, "allowScreenShareAndBoard", (0, _mobxUtils.computedFn)(function () {
195
+ var _info$info;
196
+ var info = _this.securityInfos.find(function (_ref10) {
197
+ var info = _ref10.info;
198
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.Sharing;
199
+ });
200
+ var shareState = info === null || info === void 0 || (_info$info = info.info) === null || _info$info === void 0 ? void 0 : _info$info.payload;
201
+ var screenShareState = (shareState === null || shareState === void 0 ? void 0 : shareState.screen) === _enums.FcrSharePermissionState.ON;
202
+ return screenShareState;
203
+ }));
204
+ (0, _defineProperty2["default"])(this, "allowBoardWrite", (0, _mobxUtils.computedFn)(function () {
205
+ var _info$info2, _shareState$board;
206
+ var info = _this.securityInfos.find(function (_ref11) {
207
+ var info = _ref11.info;
208
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.Sharing;
209
+ });
210
+ var shareState = info === null || info === void 0 || (_info$info2 = info.info) === null || _info$info2 === void 0 ? void 0 : _info$info2.payload;
211
+ var boardWriteState = (shareState === null || shareState === void 0 || (_shareState$board = shareState.board) === null || _shareState$board === void 0 ? void 0 : _shareState$board.write) === _enums.FcrSharePermissionState.ON;
212
+ return boardWriteState;
213
+ }));
214
+ (0, _defineProperty2["default"])(this, "allowUnmuteSelfVideo", (0, _mobxUtils.computedFn)(function () {
215
+ var info = _this.securityInfos.find(function (_ref12) {
216
+ var info = _ref12.info;
217
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.StartVideo;
218
+ });
219
+ return !!(info !== null && info !== void 0 && info.enable);
220
+ }));
221
+ (0, _defineProperty2["default"])(this, "allowUnmuteSelfAudio", (0, _mobxUtils.computedFn)(function () {
222
+ var info = _this.securityInfos.find(function (_ref13) {
223
+ var info = _ref13.info;
224
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.StartAudio;
225
+ });
226
+ return !!(info !== null && info !== void 0 && info.enable);
227
+ }));
228
+ (0, _defineProperty2["default"])(this, "isLockRoomEnabled", (0, _mobxUtils.computedFn)(function () {
229
+ var info = _this.securityInfos.find(function (_ref14) {
230
+ var info = _ref14.info;
231
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.LockedRoom;
232
+ });
233
+ return !!(info !== null && info !== void 0 && info.enable);
234
+ }));
235
+ (0, _defineProperty2["default"])(this, "isWaitingRoomEnabled", (0, _mobxUtils.computedFn)(function () {
236
+ var info = _this.securityInfos.find(function (_ref15) {
237
+ var info = _ref15.info;
238
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.WaitingRoom;
239
+ });
240
+ return !!(info !== null && info !== void 0 && info.enable);
241
+ }));
242
+ (0, _defineProperty2["default"])(this, "isWaterMarkEnabled", (0, _mobxUtils.computedFn)(function () {
243
+ var info = _this.securityInfos.find(function (_ref16) {
244
+ var info = _ref16.info;
245
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.WaterMark;
246
+ });
247
+ return !!(info !== null && info !== void 0 && info.enable);
248
+ }));
249
+ (0, _defineProperty2["default"])(this, "hasWaitingRoomPermission", function () {
250
+ var role = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _type3.FcrPrivilegeUserRole.PARTICIPANT;
251
+ return _this._hasPermission(_type3.FcrPermissionAction.WaitingRoomOpen, role);
252
+ });
253
+ (0, _defineProperty2["default"])(this, "hasMutePermission", function (targetRole) {
254
+ return _this._hasPermission(_type3.FcrPermissionAction.StreamMuteAudio, targetRole);
255
+ });
256
+ (0, _defineProperty2["default"])(this, "hasUnmutePermission", function (targetRole) {
257
+ return _this._hasPermission(_type3.FcrPermissionAction.StreamStartAudio, targetRole);
258
+ });
259
+ (0, _defineProperty2["default"])(this, "hasRequestStartAudioPermission", function (targetRole) {
260
+ return _this._hasPermission(_type3.FcrPermissionAction.StreamRequestStartAudio, targetRole);
261
+ });
262
+ (0, _defineProperty2["default"])(this, "hasRequestStartVideoPermission", function (targetRole) {
263
+ return _this._hasPermission(_type3.FcrPermissionAction.StreamRequestStartVideo, targetRole);
264
+ });
265
+ (0, _defineProperty2["default"])(this, "hasStartVideoPermission", function (targetRole) {
266
+ return _this._hasPermission(_type3.FcrPermissionAction.StreamStartVideo, targetRole);
267
+ });
268
+ (0, _defineProperty2["default"])(this, "hasStopVideoPermission", function (targetRole) {
269
+ return _this._hasPermission(_type3.FcrPermissionAction.StreamStopVideo, targetRole);
270
+ });
271
+ (0, _defineProperty2["default"])(this, "hasSelfMutePermission", function () {
272
+ return _this._hasPermission(_type3.FcrPermissionAction.StreamMuteAudio, _type3.FcrPrivilegeUserRole.SELF);
273
+ });
274
+ (0, _defineProperty2["default"])(this, "hasAllMutePermission", function () {
275
+ return _this._hasPermission(_type3.FcrPermissionAction.StreamMuteAudio, _type3.FcrPrivilegeUserRole.PARTICIPANT);
276
+ });
277
+ (0, _defineProperty2["default"])(this, "hasSelfUnmutePermission", function () {
278
+ return _this._hasPermission(_type3.FcrPermissionAction.StreamStartAudio, _type3.FcrPrivilegeUserRole.SELF);
279
+ });
280
+ (0, _defineProperty2["default"])(this, "hasAllUnmutePermission", function () {
281
+ return _this._hasPermission(_type3.FcrPermissionAction.StreamStartAudio, _type3.FcrPrivilegeUserRole.PARTICIPANT);
282
+ });
283
+ (0, _defineProperty2["default"])(this, "hasRevokeHostPermission", function () {
284
+ return _this._hasPermission(_type3.FcrPermissionAction.UserRevokeRole, _type3.FcrPrivilegeUserRole.HOST);
285
+ });
286
+ (0, _defineProperty2["default"])(this, "hasKickOutPermission", function (targetRole) {
287
+ return _this._hasPermission(_type3.FcrPermissionAction.UserKickOut, targetRole);
288
+ });
289
+ (0, _defineProperty2["default"])(this, "hasCallMergePermission", function () {
290
+ return _this._hasPermission(_type3.FcrPermissionAction.CallMerge, _type3.FcrPrivilegeUserRole.PARTICIPANT);
291
+ });
292
+ (0, _defineProperty2["default"])(this, "hasCallSplitPermission", function () {
293
+ return _this._hasPermission(_type3.FcrPermissionAction.CallSplit, _type3.FcrPrivilegeUserRole.PARTICIPANT);
294
+ });
295
+ (0, _defineProperty2["default"])(this, "hasStartScreenSharePermission", function () {
296
+ return _this._hasPermission(_type3.FcrPermissionAction.StreamStartScreenShare, _type3.FcrPrivilegeUserRole.SELF);
297
+ });
298
+ (0, _defineProperty2["default"])(this, "hasChatSendPublicPermission", function () {
299
+ return _this._hasPermission(_type3.FcrPermissionAction.ChatSendPublic, _type3.FcrPrivilegeUserRole.SELF);
300
+ });
301
+ (0, _defineProperty2["default"])(this, "hasChatSendPublicPermissionByTargetRole", function (targetRole) {
302
+ return _this._hasPermission(_type3.FcrPermissionAction.ChatSendPublic, targetRole);
303
+ });
304
+ // 是否有权限发送私信息
305
+ (0, _defineProperty2["default"])(this, "hasPermissionToSendPrivateMessage", function (targetRole) {
306
+ return _this._hasPermission(_type3.FcrPermissionAction.ChatSendPrivate, targetRole);
307
+ });
308
+ // 是否有“控制发送所有人消息”的权限
309
+ (0, _defineProperty2["default"])(this, "hasPermissionToControlAllowSendAll", function () {
310
+ return _this._hasPermission(_type3.FcrPermissionAction.ChatAllowSendPublic, _type3.FcrPrivilegeUserRole.PARTICIPANT);
311
+ });
312
+ // 是否有“控制禁止发送所有人消息”的权限
313
+ (0, _defineProperty2["default"])(this, "hasPermissionToControlDisallowSendAll", function () {
314
+ return _this._hasPermission(_type3.FcrPermissionAction.ChatDisallowSendPublic, _type3.FcrPrivilegeUserRole.SELF);
315
+ });
316
+ // 是否有“控制发送私信”的权限
317
+ (0, _defineProperty2["default"])(this, "hasPermissionToControlAllowSendPrivate", function () {
318
+ return _this._hasPermission(_type3.FcrPermissionAction.ChatAllowSendPrivate, _type3.FcrPrivilegeUserRole.SELF);
319
+ });
320
+ // 是否有“控制禁止发送私信”的权限
321
+ (0, _defineProperty2["default"])(this, "hasPermissionToControlDisallowSendPrivate", function () {
322
+ return _this._hasPermission(_type3.FcrPermissionAction.ChatDisallowSendPrivate, _type3.FcrPrivilegeUserRole.SELF);
323
+ });
324
+ // 是否有设置角色的权限
325
+ (0, _defineProperty2["default"])(this, "hasSetRolePermission", function (targetRole, setToRole) {
326
+ return _this._hasPermissionWithParams(_type3.FcrPermissionAction.UserSetRole, targetRole, {
327
+ role: (0, _user.convertFcrPrivilegeRoleToStringPrivilegeRole)(setToRole)
328
+ });
329
+ });
330
+ (0, _defineProperty2["default"])(this, "hasStartCloudRecordingPermission", function () {
331
+ return _this._hasPermission(_type3.FcrPermissionAction.RecordStartCloudRecording, _type3.FcrPrivilegeUserRole.SELF);
332
+ });
333
+ (0, _defineProperty2["default"])(this, "hasStartLiveStreamingPermission", function () {
334
+ return _this._hasPermission(_type3.FcrPermissionAction.LiveStart, _type3.FcrPrivilegeUserRole.SELF);
335
+ });
336
+ (0, _defineProperty2["default"])(this, "hasStopLiveStreamingPermission", function () {
337
+ return _this._hasPermission(_type3.FcrPermissionAction.LiveStop, _type3.FcrPrivilegeUserRole.SELF);
338
+ });
339
+ (0, _defineProperty2["default"])(this, "hasGetLiveStreamingLinkPermission", function () {
340
+ return _this._hasPermission(_type3.FcrPermissionAction.LiveGetLink, _type3.FcrPrivilegeUserRole.SELF);
341
+ });
342
+ (0, _defineProperty2["default"])(this, "hasEnableStartAudioPermission", function () {
343
+ return _this._hasPermission(_type3.FcrPermissionAction.StreamEnableStartAudio, _type3.FcrPrivilegeUserRole.PARTICIPANT);
344
+ });
345
+ (0, _defineProperty2["default"])(this, "hasEnableChangeNamePermission", function () {
346
+ return _this._hasPermission(_type3.FcrPermissionAction.UserEnableChangeName, _type3.FcrPrivilegeUserRole.PARTICIPANT);
347
+ });
348
+ (0, _defineProperty2["default"])(this, "hasEnableStartVideoPermission", function () {
349
+ return _this._hasPermission(_type3.FcrPermissionAction.StreamEnableStartVideo, _type3.FcrPrivilegeUserRole.PARTICIPANT);
350
+ });
351
+ (0, _defineProperty2["default"])(this, "hasEnableJoinWithAudioPermission", function () {
352
+ return _this._hasPermission(_type3.FcrPermissionAction.StreamEnableJoinWithAudio, _type3.FcrPrivilegeUserRole.PARTICIPANT);
353
+ });
354
+ (0, _defineProperty2["default"])(this, "hasEnableStartScreenSharePermission", function () {
355
+ return _this._hasPermission(_type3.FcrPermissionAction.StreamEnableStartScreenShare, _type3.FcrPrivilegeUserRole.PARTICIPANT);
356
+ });
357
+ (0, _defineProperty2["default"])(this, "hasLockRoomPermission", function () {
358
+ return _this._hasPermission(_type3.FcrPermissionAction.RoomLock, _type3.FcrPrivilegeUserRole.PARTICIPANT);
359
+ });
360
+ (0, _defineProperty2["default"])(this, "hasWatermarkEnablePermission", function () {
361
+ return _this._hasPermission(_type3.FcrPermissionAction.RoomEnableWatermark, _type3.FcrPrivilegeUserRole.PARTICIPANT);
362
+ });
363
+ (0, _defineProperty2["default"])(this, "hasWatermarkDisablePermission", function () {
364
+ return _this._hasPermission(_type3.FcrPermissionAction.RoomDisableWatermark, _type3.FcrPrivilegeUserRole.PARTICIPANT);
365
+ });
366
+ (0, _defineProperty2["default"])(this, "hasEndRoomPermission", function () {
367
+ return _this._hasPermission(_type3.FcrPermissionAction.RoomEnd, _type3.FcrPrivilegeUserRole.PARTICIPANT);
368
+ });
369
+ (0, _defineProperty2["default"])(this, "hasAssignHostBeforeLeavingPermission", function (role) {
370
+ return _this._hasPermissionWithParams(_type3.FcrPermissionAction.UserSetRole, _type3.FcrPrivilegeUserRole.PARTICIPANT, {
371
+ role: (0, _user.convertFcrPrivilegeRoleToStringPrivilegeRole)(role)
372
+ });
373
+ });
374
+ (0, _defineProperty2["default"])(this, "hasStartBoardPermission", function () {
375
+ return _this._hasPermission(_type3.FcrPermissionAction.BoardStart, _type3.FcrPrivilegeUserRole.SELF);
376
+ });
377
+ (0, _defineProperty2["default"])(this, "hasCloseBoardPermission", function () {
378
+ return _this._hasPermission(_type3.FcrPermissionAction.BoardClose, _type3.FcrPrivilegeUserRole.SELF);
379
+ });
380
+ (0, _defineProperty2["default"])(this, "hasWriteBoardPermission", function () {
381
+ return _this._hasPermission(_type3.FcrPermissionAction.BoardWrite, _type3.FcrPrivilegeUserRole.SELF);
382
+ });
383
+ (0, _defineProperty2["default"])(this, "hasAllowStartBoardPermission", function () {
384
+ return _this._hasPermission(_type3.FcrPermissionAction.BoardAllowStart, _type3.FcrPrivilegeUserRole.SELF);
385
+ });
386
+ (0, _defineProperty2["default"])(this, "hasDisallowStartBoardPermission", function () {
387
+ return _this._hasPermission(_type3.FcrPermissionAction.BoardDisallowStart, _type3.FcrPrivilegeUserRole.SELF);
388
+ });
389
+ (0, _defineProperty2["default"])(this, "hasAllowWriteBoardPermission", function () {
390
+ return _this._hasPermission(_type3.FcrPermissionAction.BoardAllowWrite, _type3.FcrPrivilegeUserRole.SELF);
391
+ });
392
+ (0, _defineProperty2["default"])(this, "hasDisallowWriteBoardPermission", function () {
393
+ return _this._hasPermission(_type3.FcrPermissionAction.BoardDisallowWrite, _type3.FcrPrivilegeUserRole.SELF);
394
+ });
395
+ (0, _defineProperty2["default"])(this, "hasAllowScreenShareAndBoardPermission", function () {
396
+ var _this$_privilegeContr;
397
+ return (_this$_privilegeContr = _this._privilegeControl.getSecurityInfo(_type3.FcrSecurityAction.Sharing)) === null || _this$_privilegeContr === void 0 ? void 0 : _this$_privilegeContr.enable;
398
+ });
399
+ (0, _defineProperty2["default"])(this, "hasAllowWaterMarkPermission", function () {
400
+ var _this$_privilegeContr2;
401
+ return (_this$_privilegeContr2 = _this._privilegeControl.getSecurityInfo(_type3.FcrSecurityAction.WaterMark)) === null || _this$_privilegeContr2 === void 0 ? void 0 : _this$_privilegeContr2.enable;
402
+ });
403
+ (0, _defineProperty2["default"])(this, "hasEnableInterpreterPermission", function () {
404
+ return _this._hasPermission(_type3.FcrPermissionAction.InterpreterStart, _type3.FcrPrivilegeUserRole.SELF);
405
+ });
406
+ (0, _defineProperty2["default"])(this, "hasDisableInterpreterPermission", function () {
407
+ return _this._hasPermission(_type3.FcrPermissionAction.InterpreterStop, _type3.FcrPrivilegeUserRole.SELF);
408
+ });
409
+ (0, _defineProperty2["default"])(this, "hasAllowChangeNamePermission", function () {
410
+ return _this._privilegeControl.getLocalUserPermissionInfo(_type3.FcrPermissionAction.UserAllowChangeName).enable;
411
+ });
412
+ (0, _defineProperty2["default"])(this, "hasDisallowChangeNamePermission", function () {
413
+ return _this._privilegeControl.getLocalUserPermissionInfo(_type3.FcrPermissionAction.UserDisallowChangeName).enable;
414
+ });
415
+ (0, _defineProperty2["default"])(this, "hasChangeNamePermission", function (targetRole) {
416
+ return _this._hasPermission(_type3.FcrPermissionAction.UserChangeName, targetRole);
417
+ });
418
+ (0, _defineProperty2["default"])(this, "isMulti", (0, _mobxUtils.computedFn)(function () {
419
+ var _info$info3;
420
+ var info = _this.securityInfos.find(function (_ref17) {
421
+ var info = _ref17.info;
422
+ return (info === null || info === void 0 ? void 0 : info.action) === _type3.FcrSecurityAction.WaterMark;
423
+ });
424
+ return (info === null || info === void 0 || (_info$info3 = info.info) === null || _info$info3 === void 0 ? void 0 : _info$info3.payload.lineType) === _type.FcrLineType.MULTI_ROW;
425
+ }));
426
+ (0, _defineProperty2["default"])(this, "getAllowedOperations", function (targetUserRole, isSelf) {
427
+ var operations = [];
428
+ if (_this.hasRequestStartVideoPermission(targetUserRole)) {
429
+ //请求开启摄像头权限
430
+ operations.push('request_start_video');
431
+ }
432
+ if (_this.hasStartVideoPermission(isSelf ? _type3.FcrPrivilegeUserRole.SELF : targetUserRole)) {
433
+ //开启摄像头权限
434
+ operations.push('start_video');
435
+ }
436
+ if (_this.hasStopVideoPermission(isSelf ? _type3.FcrPrivilegeUserRole.SELF : targetUserRole)) {
437
+ //关闭摄像头权限
438
+ operations.push('stop_video');
439
+ }
440
+ if (_this.hasPermissionToSendPrivateMessage(targetUserRole)) {
441
+ //私聊权限
442
+ operations.push('private_chat');
443
+ }
444
+ operations.push('pin');
445
+ if (_this.hasSetRolePermission(targetUserRole, _type3.FcrPrivilegeUserRole.HOST)) {
446
+ //设为主持人权限
447
+ operations.push('set_as_host');
448
+ }
449
+ if (_this.hasSetRolePermission(targetUserRole, _type3.FcrPrivilegeUserRole.COHOST)) {
450
+ //设为联席主持人权限
451
+ operations.push('set_as_co_host');
452
+ }
453
+ if (_this.hasSetRolePermission(targetUserRole, _type3.FcrPrivilegeUserRole.PARTICIPANT)) {
454
+ //撤销联席主持人权限
455
+ operations.push('revoke_co_host');
456
+ }
457
+ if (_this.hasCallMergePermission()) {
458
+ //与视频合并权限
459
+ operations.push('merge_video');
460
+ }
461
+ if (_this.hasKickOutPermission(targetUserRole)) {
462
+ //移除房间权限
463
+ operations.push('kick_out');
464
+ }
465
+ if (_this.hasWaitingRoomPermission(targetUserRole)) {
466
+ operations.push('put_into_waiting_room');
467
+ }
468
+ if (_this.hasChangeNamePermission(isSelf ? _type3.FcrPrivilegeUserRole.SELF : targetUserRole)) {
469
+ operations.push('change_name');
470
+ }
471
+ return operations;
472
+ });
473
+ (0, _defineProperty2["default"])(this, "allowShare", /*#__PURE__*/function () {
474
+ var _ref18 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(state) {
475
+ var enable;
476
+ return _regenerator["default"].wrap(function _callee$(_context) {
477
+ while (1) switch (_context.prev = _context.next) {
478
+ case 0:
479
+ enable = state === _enums.FcrSharePermissionState.ON;
480
+ _context.next = 3;
481
+ return _this._privilegeControl.allowShare(enable, [_type3.FcrPrivilegeUserRole.PARTICIPANT]);
482
+ case 3:
483
+ return _context.abrupt("return", _context.sent);
484
+ case 4:
485
+ case "end":
486
+ return _context.stop();
487
+ }
488
+ }, _callee);
489
+ }));
490
+ return function (_x) {
491
+ return _ref18.apply(this, arguments);
492
+ };
493
+ }());
494
+ (0, _defineProperty2["default"])(this, "setAllowWriteBoard", /*#__PURE__*/function () {
495
+ var _ref19 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(state) {
496
+ var enable;
497
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
498
+ while (1) switch (_context2.prev = _context2.next) {
499
+ case 0:
500
+ enable = typeof state === 'boolean' ? state : state === _enums.FcrSharePermissionState.ON;
501
+ _context2.next = 3;
502
+ return _this._privilegeControl.allowWriteBoard(enable, [_type3.FcrPrivilegeUserRole.PARTICIPANT]);
503
+ case 3:
504
+ return _context2.abrupt("return", _context2.sent);
505
+ case 4:
506
+ case "end":
507
+ return _context2.stop();
508
+ }
509
+ }, _callee2);
510
+ }));
511
+ return function (_x2) {
512
+ return _ref19.apply(this, arguments);
513
+ };
514
+ }());
515
+ //全体静音
516
+ (0, _defineProperty2["default"])(this, "muteAll", function () {
517
+ _this._streamControl.updatePublishPrivilegeOfStreams({
518
+ audioPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOPRIVILEGE,
519
+ videoPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOOPERATION
520
+ }, {
521
+ targetRoleType: [_type.FcrUserRole.PARTICIPANT],
522
+ targetRoleTypeIsInclude: true
523
+ });
524
+ });
525
+ //要求所有人解除静音
526
+ (0, _defineProperty2["default"])(this, "unmuteAll", function () {
527
+ _this._streamControl.updatePublishPrivilegeOfStreams({
528
+ audioPrivilege: _fcrCore.FcrStreamPrivilegeOperation.HAS_PRIVILEGE,
529
+ videoPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOOPERATION
530
+ }, {
531
+ targetRoleType: [_type.FcrUserRole.PARTICIPANT],
532
+ targetRoleTypeIsInclude: true
533
+ });
534
+ });
535
+ (0, _defineProperty2["default"])(this, "setLockRoomEnabled", function (enable) {
536
+ _this._privilegeControl.enableLockedRoom(enable, [_type3.FcrPrivilegeUserRole.HOST, _type3.FcrPrivilegeUserRole.PARTICIPANT]);
537
+ });
538
+ (0, _defineProperty2["default"])(this, "setWaitingRoomEnabled", function () {
539
+ // this._privilegeControl.enableWaitingRoom(true);
540
+ });
541
+ (0, _defineProperty2["default"])(this, "setAllowChangeSelfName", function (enable) {
542
+ _this._privilegeControl.allowChangeUserName(enable, [_type3.FcrPrivilegeUserRole.PARTICIPANT]);
543
+ });
544
+ //设置是否允许聊天
545
+ (0, _defineProperty2["default"])(this, "setAllowChat", function (enable) {
546
+ var payload = {
547
+ "public": enable,
548
+ "private": {
549
+ host: enable,
550
+ cohost: enable,
551
+ participant: enable
552
+ }
553
+ };
554
+ _this._privilegeControl.allowSendChat(enable, [_type3.FcrPrivilegeUserRole.PARTICIPANT], payload);
555
+ });
556
+ (0, _defineProperty2["default"])(this, "setAllowChatWithPayload", function (enable, payload) {
557
+ _this._privilegeControl.allowSendChat(enable, [_type3.FcrPrivilegeUserRole.PARTICIPANT], payload);
558
+ });
559
+ //设置成允许公聊但不允许私聊
560
+ (0, _defineProperty2["default"])(this, "setAllowedPublicChatAndDisallowedPrivateChat", function () {
561
+ _this.setAllowChatWithPayload(true, {
562
+ "public": true,
563
+ "private": {
564
+ host: true,
565
+ cohost: false,
566
+ participant: false
567
+ }
568
+ });
569
+ });
570
+ //设置成不允许公聊,只允许私聊给主持人和联席主持人
571
+ (0, _defineProperty2["default"])(this, "setDisallowedPublicChatAndDisallowedPrivateChatToParticipant", function () {
572
+ _this.setAllowChatWithPayload(true, {
573
+ "public": false,
574
+ "private": {
575
+ host: true,
576
+ cohost: true,
577
+ participant: false
578
+ }
579
+ });
580
+ });
581
+ //所有人加入会议时静音
582
+ (0, _defineProperty2["default"])(this, "setAllowJoinWithMuteAudio", function (enable) {
583
+ _this._privilegeControl.allowJoinWithMutedAudio(enable, [_type3.FcrPrivilegeUserRole.PARTICIPANT, _type3.FcrPrivilegeUserRole.COHOST]);
584
+ });
585
+ //允许屏幕共享
586
+ (0, _defineProperty2["default"])(this, "setAllowShareScreen", function (state) {
587
+ _this._privilegeControl.allowShare(state, [_type3.FcrPrivilegeUserRole.PARTICIPANT]);
588
+ });
589
+ //允许开启视频
590
+ (0, _defineProperty2["default"])(this, "setAllowUnmuteSelfVideo", function (enable) {
591
+ _this._privilegeControl.allowStartVideo(enable, [_type3.FcrPrivilegeUserRole.PARTICIPANT]);
592
+ });
593
+ //允许自我解除静音
594
+ (0, _defineProperty2["default"])(this, "setAllowUnmuteSelfAudio", function (enable) {
595
+ _this._privilegeControl.allowStartAudio(enable, [_type3.FcrPrivilegeUserRole.PARTICIPANT]);
596
+ });
597
+ (0, _defineProperty2["default"])(this, "hasSendAllChatPermission", function () {
598
+ var _this$_privilegeContr3;
599
+ return (_this$_privilegeContr3 = _this._privilegeControl.getLocalUserPermissionInfo(_type3.FcrPermissionAction.ChatSendPublic)) === null || _this$_privilegeContr3 === void 0 ? void 0 : _this$_privilegeContr3.enable;
600
+ });
601
+ (0, _defineProperty2["default"])(this, "_hasPermission", (0, _mobxUtils.computedFn)(function (action, targetRole) {
602
+ var _this$permissionInfos;
603
+ var convertedRole = targetRole === _type3.FcrPrivilegeUserRole.SELF ? [_this.localUser.userRole, _type3.FcrPrivilegeUserRole.SELF] : [targetRole];
604
+ var info = (_this$permissionInfos = _this.permissionInfos) === null || _this$permissionInfos === void 0 ? void 0 : _this$permissionInfos.find(function (_ref20) {
605
+ var _info$targetRoles;
606
+ var info = _ref20.info;
607
+ return (info === null || info === void 0 ? void 0 : info.action) === action && ((info === null || info === void 0 || (_info$targetRoles = info.targetRoles) === null || _info$targetRoles === void 0 ? void 0 : _info$targetRoles.length) === 0 || convertedRole.some(function (role) {
608
+ var _info$targetRoles2;
609
+ return info === null || info === void 0 || (_info$targetRoles2 = info.targetRoles) === null || _info$targetRoles2 === void 0 ? void 0 : _info$targetRoles2.includes(role);
610
+ }));
611
+ });
612
+ return !!(info !== null && info !== void 0 && info.enable);
613
+ }));
614
+ (0, _defineProperty2["default"])(this, "_hasPermissionWithParams", (0, _mobxUtils.computedFn)(function (action, targetRole, params) {
615
+ var _this$permissionInfos2;
616
+ var convertedRole = targetRole === _type3.FcrPrivilegeUserRole.SELF ? [_this.localUser.userRole, _type3.FcrPrivilegeUserRole.SELF] : [targetRole];
617
+ var matchParams = function matchParams(_params) {
618
+ return (0, _lodash.every)(Object.keys(params), function (key) {
619
+ return _params && _params[key].includes(params[key]);
620
+ });
621
+ };
622
+ var info = (_this$permissionInfos2 = _this.permissionInfos) === null || _this$permissionInfos2 === void 0 ? void 0 : _this$permissionInfos2.find(function (_ref21) {
623
+ var _info$targetRoles3, _info$params;
624
+ var info = _ref21.info;
625
+ return (info === null || info === void 0 ? void 0 : info.action) === action && ((info === null || info === void 0 || (_info$targetRoles3 = info.targetRoles) === null || _info$targetRoles3 === void 0 ? void 0 : _info$targetRoles3.length) === 0 || convertedRole.some(function (role) {
626
+ var _info$targetRoles4;
627
+ return info === null || info === void 0 || (_info$targetRoles4 = info.targetRoles) === null || _info$targetRoles4 === void 0 ? void 0 : _info$targetRoles4.includes(role);
628
+ })) && matchParams((_info$params = info.params) !== null && _info$params !== void 0 ? _info$params : {});
629
+ });
630
+ return !!(info !== null && info !== void 0 && info.enable);
631
+ }));
632
+ this._eventProvider = _eventProvider;
633
+ this._privilegeControl = _privilegeControl;
634
+ this._userControl = _userControl;
635
+ this._streamControl = _streamControl;
636
+ this._interpterControl = _interpterControl;
637
+ this.securityInfos = this._privilegeControl.getAllSecurityInfo();
638
+ this.permissionInfos = this._privilegeControl.getAllLocalUserPermissionInfo() || [];
639
+ this._eventProvider.addObserver({
640
+ onEvent: function onEvent(action, payload) {
641
+ if (action === _constant.FcrUIAction.WHITEBOARD_CHANGED) {
642
+ if (payload.action === _type4.WhiteboardBaseEvents.SET_OWNER_USER_ID) {
643
+ var _this$_userControl;
644
+ _this.boardOwnerUser = Object.values(_this === null || _this === void 0 || (_this$_userControl = _this._userControl) === null || _this$_userControl === void 0 ? void 0 : _this$_userControl.getUsers()).find(function (u) {
645
+ return u.userId === payload.payload;
646
+ });
647
+ }
648
+ }
649
+ }
650
+ });
651
+ this._privilegeControl.addObserver({
652
+ onLocalUserPermissionInfoAdded: this._handlePermissionUpdated.bind(this),
653
+ onLocalUserPermissionInfoDeleted: this._handlePermissionUpdated.bind(this),
654
+ onSecurityInfoUpdated: this._handleSecurityUpdated.bind(this)
655
+ });
656
+
657
+ //@ts-ignore
658
+ window.securityStore = this;
659
+ }
660
+
661
+ // for debug use
662
+ return (0, _createClass2["default"])(FcrUIPrivilegeProviderImpl, [{
663
+ key: "securityInfos",
664
+ get: function get() {
665
+ return _classPrivateFieldGet(_A, this);
666
+ },
667
+ set: function set(v) {
668
+ _classPrivateFieldSet(_A, this, v);
669
+ }
670
+ }, {
671
+ key: "permissionInfos",
672
+ get: function get() {
673
+ return _classPrivateFieldGet(_B, this);
674
+ },
675
+ set: function set(v) {
676
+ _classPrivateFieldSet(_B, this, v);
677
+ }
678
+ }, {
679
+ key: "privilegeOperator",
680
+ get: function get() {
681
+ return _classPrivateFieldGet(_C, this);
682
+ },
683
+ set: function set(v) {
684
+ _classPrivateFieldSet(_C, this, v);
685
+ }
686
+ }, {
687
+ key: "boardOwnerUser",
688
+ get: function get() {
689
+ return _classPrivateFieldGet(_D, this);
690
+ },
691
+ set: function set(v) {
692
+ _classPrivateFieldSet(_D, this, v);
693
+ }
694
+ }, {
695
+ key: "hasSecurityPermission",
696
+ get: function get() {
697
+ return this.hasEnableStartScreenSharePermission() || this.hasPermissionToControlAllowSendAll() || this.hasEnableStartAudioPermission() || this.hasEnableChangeNamePermission() || this.hasEnableStartVideoPermission() || this.hasLockRoomPermission();
698
+ }
699
+ }, {
700
+ key: "printAllPermissions",
701
+ value: function printAllPermissions() {
702
+ this.logger.debug(JSON.stringify((0, _mobx.toJS)(this.permissionInfos)));
703
+ }
704
+ }, {
705
+ key: "release",
706
+ value: function release() {
707
+ this._disposers.forEach(function (d) {
708
+ return d();
709
+ });
710
+ this._disposers = [];
711
+ }
712
+ }, {
713
+ key: "localUser",
714
+ get: function get() {
715
+ return this._userControl.getLocalUser();
716
+ }
717
+ }, {
718
+ key: "_handlePermissionUpdated",
719
+ value: function _handlePermissionUpdated() {
720
+ this.permissionInfos = this._privilegeControl.getAllLocalUserPermissionInfo() || [];
721
+ }
722
+ }, {
723
+ key: "_handleSecurityUpdated",
724
+ value: function _handleSecurityUpdated(roomId, event) {
725
+ var _event$operatorUser,
726
+ _event$operatorUser2,
727
+ _this$privilegeOperat,
728
+ _securityInfo$info,
729
+ _securityInfo$info2,
730
+ _securityInfo$info3,
731
+ _securityInfo$info4,
732
+ _securityInfo$info5,
733
+ _securityInfo$info6,
734
+ _this2 = this,
735
+ _event$securityInfo$i,
736
+ _event$securityInfo$i2;
737
+ this.securityInfos = this._privilegeControl.getAllSecurityInfo();
738
+ this.privilegeOperator = event.operatorUser;
739
+ var securityInfo = event.securityInfo;
740
+ var enable = securityInfo.enable;
741
+ var isPersonalOperation = this.localUser.userId === ((_event$operatorUser = event.operatorUser) === null || _event$operatorUser === void 0 ? void 0 : _event$operatorUser.userId);
742
+ var toastType = isPersonalOperation ? 'normal' : 'info';
743
+ var operator = isPersonalOperation ? (0, _i18n.transI18n)('fmt_settings_labels_you') : (((_event$operatorUser2 = event.operatorUser) === null || _event$operatorUser2 === void 0 ? void 0 : _event$operatorUser2.userRole) === _type.FcrUserRole.HOST ? (0, _i18n.transI18n)('fmt_role_host') : (0, _i18n.transI18n)('fmt_role_cohost')) + " ".concat((_this$privilegeOperat = this.privilegeOperator) === null || _this$privilegeOperat === void 0 ? void 0 : _this$privilegeOperat.userName, " ");
744
+ if (((_securityInfo$info = securityInfo.info) === null || _securityInfo$info === void 0 ? void 0 : _securityInfo$info.action) === _type3.FcrSecurityAction.JoinWithMuteAudio) {
745
+ if (enable) {
746
+ this._eventProvider.showToast({
747
+ type: toastType,
748
+ message: (0, _i18n.transI18n)('fmt_settings_tips_muteallwhilejoin', {
749
+ reason1: operator
750
+ })
751
+ });
752
+ }
753
+ } else if (((_securityInfo$info2 = securityInfo.info) === null || _securityInfo$info2 === void 0 ? void 0 : _securityInfo$info2.action) === _type3.FcrSecurityAction.StartAudio) {
754
+ var toastMessage = enable ? (0, _i18n.transI18n)('fmt_settings_tips_allowedselfunmuting', {
755
+ reason1: operator
756
+ }) : (0, _i18n.transI18n)('fmt_settings_tips_disabledselfunmuting', {
757
+ reason1: operator
758
+ });
759
+ if (!this._isLocalUserInterpreter()) {
760
+ this._eventProvider.showToast({
761
+ type: toastType,
762
+ message: toastMessage
763
+ });
764
+ }
765
+ } else if (((_securityInfo$info3 = securityInfo.info) === null || _securityInfo$info3 === void 0 ? void 0 : _securityInfo$info3.action) === _type3.FcrSecurityAction.StartVideo) {
766
+ var _toastMessage = enable ? (0, _i18n.transI18n)('fmt_settings_tips_videoenabled', {
767
+ reason1: operator
768
+ }) : (0, _i18n.transI18n)('fmt_settings_tips_disabledvideo', {
769
+ reason1: operator
770
+ });
771
+ this._eventProvider.showToast({
772
+ type: toastType,
773
+ message: _toastMessage
774
+ });
775
+ } else if (((_securityInfo$info4 = securityInfo.info) === null || _securityInfo$info4 === void 0 ? void 0 : _securityInfo$info4.action) === _type3.FcrSecurityAction.ShareScreen) {
776
+ var _toastMessage2 = enable ? (0, _i18n.transI18n)('fmt_settings_tips_allowedScreensharing', {
777
+ reason1: operator
778
+ }) : (0, _i18n.transI18n)('fmt_settings_tips_disabledScreensharing', {
779
+ reason1: operator
780
+ });
781
+ this._eventProvider.showToast({
782
+ type: toastType,
783
+ message: _toastMessage2
784
+ });
785
+ } else if (((_securityInfo$info5 = securityInfo.info) === null || _securityInfo$info5 === void 0 ? void 0 : _securityInfo$info5.action) === _type3.FcrSecurityAction.SendChat) {
786
+ var _toastMessage3 = enable ? (0, _i18n.transI18n)('fmt_settings_tips_allowedchat', {
787
+ reason1: operator
788
+ }) : (0, _i18n.transI18n)('fmt_settings_tips_banedchat', {
789
+ reason1: operator
790
+ });
791
+ this._eventProvider.showToast({
792
+ type: toastType,
793
+ message: _toastMessage3
794
+ });
795
+ } else if (((_securityInfo$info6 = securityInfo.info) === null || _securityInfo$info6 === void 0 ? void 0 : _securityInfo$info6.action) === _type3.FcrSecurityAction.Sharing && !enable) {
796
+ var _this$boardOwnerUser, _this$boardOwnerUser2;
797
+ if (!this.boardOwnerUser) return;
798
+ var isHost = [_type.FcrUserRole.HOST, _type.FcrUserRole.COHOST].includes((_this$boardOwnerUser = this.boardOwnerUser) === null || _this$boardOwnerUser === void 0 ? void 0 : _this$boardOwnerUser.userRole);
799
+ if (!isHost) {
800
+ this._eventProvider.sendEvent(_constant.FcrUIAction.CLOSE_WHITEBOARD);
801
+ } else {
802
+ return;
803
+ }
804
+ if (((_this$boardOwnerUser2 = this.boardOwnerUser) === null || _this$boardOwnerUser2 === void 0 ? void 0 : _this$boardOwnerUser2.userId) !== this.localUser.userId) {
805
+ this._eventProvider.showToast({
806
+ type: toastType,
807
+ message: (0, _i18n.transI18n)('fmt_screenshare_whiteboard_tips_alreadyopend')
808
+ });
809
+ } else {
810
+ var dialogKey = this._eventProvider.openConfirmDialog({
811
+ title: (0, _i18n.transI18n)('fmt_screenshare_whiteboard_tips_stoppedboard'),
812
+ content: (0, _i18n.transI18n)('fmt_settings_tips_sharingprohibited', {
813
+ reason1: operator
814
+ }),
815
+ icon: _type2.FcrIconType.FCR_SCREENSHARING,
816
+ okText: (0, _i18n.transI18n)('fmt_screenshare_whiteboard_button_gotit'),
817
+ showCancel: false,
818
+ onOk: function onOk() {
819
+ _this2._eventProvider.closeDialog(dialogKey);
820
+ },
821
+ onCancel: function onCancel() {
822
+ _this2._eventProvider.closeDialog(dialogKey);
823
+ },
824
+ width: 400,
825
+ height: 160
826
+ });
827
+ }
828
+ } else if (((_event$securityInfo$i = event.securityInfo.info) === null || _event$securityInfo$i === void 0 ? void 0 : _event$securityInfo$i.action) === _type3.FcrSecurityAction.WaitingRoom) {
829
+ var _event$operatorUser3, _event$operatorUser4;
830
+ var _isSelf = this.localUser.userId === ((_event$operatorUser3 = event.operatorUser) === null || _event$operatorUser3 === void 0 ? void 0 : _event$operatorUser3.userId);
831
+ var userName = (_event$operatorUser4 = event.operatorUser) === null || _event$operatorUser4 === void 0 ? void 0 : _event$operatorUser4.userName;
832
+ if (!_isSelf) {
833
+ if (enable) {
834
+ this._eventProvider.showToast({
835
+ type: toastType,
836
+ message: "".concat(userName).concat((0, _i18n.transI18n)('fmt_waitingroom_setting_tips_enable'))
837
+ });
838
+ } else {
839
+ this._eventProvider.showToast({
840
+ type: toastType,
841
+ message: "".concat(userName).concat((0, _i18n.transI18n)('fmt_waitingroom_mobile_setting_label_disable'))
842
+ });
843
+ }
844
+ }
845
+ } else if (((_event$securityInfo$i2 = event.securityInfo.info) === null || _event$securityInfo$i2 === void 0 ? void 0 : _event$securityInfo$i2.action) == _type3.FcrSecurityAction.WaterMark) {
846
+ var _event$securityInfo$i3;
847
+ var _enable = event.securityInfo.enable;
848
+ if (this._prevWaterMarkEnable !== _enable) {
849
+ var _event$operatorUser5;
850
+ var toastText = '';
851
+ var roleValue = (_event$operatorUser5 = event.operatorUser) === null || _event$operatorUser5 === void 0 ? void 0 : _event$operatorUser5.userRole;
852
+ var canTriggerToast = roleValue === _type.FcrUserRole.HOST || roleValue === _type.FcrUserRole.COHOST;
853
+ if (canTriggerToast) {
854
+ if (_enable) {
855
+ if (roleValue === _type.FcrUserRole.HOST) {
856
+ toastText = (0, _i18n.transI18n)('fmt_security_setting_popup_toast_facilitator_watermark');
857
+ } else if (roleValue === _type.FcrUserRole.COHOST) {
858
+ toastText = (0, _i18n.transI18n)('fmt_security_setting_popup_toast_co_facilitator_watermark');
859
+ }
860
+ } else {
861
+ toastText = (0, _i18n.transI18n)('fmt_security_setting_popup_toast_turn_off_watermark');
862
+ }
863
+ this._prevWaterMarkEnable = _enable;
864
+ if (toastText) {
865
+ this._eventProvider.showToast({
866
+ type: toastType,
867
+ message: toastText
868
+ });
869
+ }
870
+ }
871
+ }
872
+ this._eventProvider.sendEvent(_constant.FcrUIAction.WATERMARK_INFO_UPDATE, {
873
+ enable: _enable,
874
+ lineType: (_event$securityInfo$i3 = event.securityInfo.info) === null || _event$securityInfo$i3 === void 0 ? void 0 : _event$securityInfo$i3.payload.lineType
875
+ });
876
+ }
877
+ }
878
+ }, {
879
+ key: "permitPrivateChat",
880
+ value: function permitPrivateChat(userId) {
881
+ var _this$_userControl$ge;
882
+ var localUserRole = (_this$_userControl$ge = this._userControl.getLocalUser()) === null || _this$_userControl$ge === void 0 ? void 0 : _this$_userControl$ge.userRole;
883
+ // 参会者才需要权限控制
884
+ if (localUserRole === _type.FcrUserRole.PARTICIPANT) {
885
+ var _this$_userControl$ge2;
886
+ var toastObj = {
887
+ id: 'private-toast',
888
+ toastProps: {
889
+ type: 'error',
890
+ content: (0, _i18n.transI18n)('fmt_settings_tips_Blockallchat'),
891
+ size: 'small'
892
+ },
893
+ customRootClass: 'participants-container'
894
+ };
895
+ var needToast = false;
896
+ // 禁止所有聊天
897
+ if (!this.allowChat() || this.disallowedAllChat()) {
898
+ needToast = true;
899
+ }
900
+ var _targetUserRole = (_this$_userControl$ge2 = this._userControl.getUser(userId)) === null || _this$_userControl$ge2 === void 0 ? void 0 : _this$_userControl$ge2.userRole;
901
+
902
+ // 公聊但允许私聊主持人和联席主持人
903
+ if (this.allowedPublicChatAndDisallowedPrivateChat() && _targetUserRole === _type.FcrUserRole.PARTICIPANT) {
904
+ toastObj.toastProps.content = (0, _i18n.transI18n)('fmt_settings_tips_groupchatonly');
905
+ needToast = true;
906
+ }
907
+
908
+ // 仅允许私聊主持人和联席主持人
909
+ if (this.disallowedPublicChatAndDisallowedPrivateChatToParticipant() && _targetUserRole === _type.FcrUserRole.PARTICIPANT) {
910
+ toastObj.toastProps.content = (0, _i18n.transI18n)('fmt_settings_tips_hostchatonly');
911
+ needToast = true;
912
+ }
913
+ if (needToast) {
914
+ _toast.FcrToastApi.open(toastObj);
915
+ return false;
916
+ }
917
+ return true;
918
+ }
919
+ return true;
920
+ }
921
+ }, {
922
+ key: "setAllowWaterMark",
923
+ value: function () {
924
+ var _setAllowWaterMark = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(state, lineType) {
925
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
926
+ while (1) switch (_context3.prev = _context3.next) {
927
+ case 0:
928
+ _context3.next = 2;
929
+ return this._privilegeControl.allowWatermark(state, [_type3.FcrPrivilegeUserRole.PARTICIPANT], lineType);
930
+ case 2:
931
+ return _context3.abrupt("return", _context3.sent);
932
+ case 3:
933
+ case "end":
934
+ return _context3.stop();
935
+ }
936
+ }, _callee3, this);
937
+ }));
938
+ function setAllowWaterMark(_x3, _x4) {
939
+ return _setAllowWaterMark.apply(this, arguments);
940
+ }
941
+ return setAllowWaterMark;
942
+ }()
943
+ }, {
944
+ key: "_isLocalUserInterpreter",
945
+ value: function _isLocalUserInterpreter() {
946
+ var _this$_interpterContr,
947
+ _this3 = this;
948
+ var interpreterUsers = (_this$_interpterContr = this._interpterControl) === null || _this$_interpterContr === void 0 ? void 0 : _this$_interpterContr.getInterpreterUserList(); //翻译官列表
949
+ if (interpreterUsers) {
950
+ var interpreter = interpreterUsers.find(function (ele) {
951
+ return ele.userId === _this3.localUser.userId;
952
+ }); //本地用户关联的翻译官信息
953
+ return interpreter;
954
+ }
955
+ return null;
956
+ }
957
+ }]);
958
+ }();
959
+ _FcrUIPrivilegeProviderImpl = FcrUIPrivilegeProviderImpl;
960
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIPrivilegeProviderImpl, [[_mobx.observable, 1, "securityInfos"], [_mobx.observable, 1, "permissionInfos"], [_mobx.observable, 1, "privilegeOperator"], [_mobx.observable, 1, "boardOwnerUser"], [_handlePermissionUpdatedDecs, 18, "_handlePermissionUpdated"], [_handleSecurityUpdatedDecs, 18, "_handleSecurityUpdated"], [_decorator.bound, 2, "setAllowWaterMark"], [_isLocalUserInterpreterDecs, 18, "_isLocalUserInterpreter"]], []).e, 5);
961
+ _init_securityInfos = _applyDecs$e[0];
962
+ _init_permissionInfos = _applyDecs$e[1];
963
+ _init_privilegeOperator = _applyDecs$e[2];
964
+ _init_boardOwnerUser = _applyDecs$e[3];
965
+ _initProto = _applyDecs$e[4];
966
+ (0, _base.registerDependency)('privilegeProvider');