fcr-ui-scene 3.2.0 → 3.3.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 (356) hide show
  1. package/dist/electron/app.js +148 -0
  2. package/dist/electron/bootstrap-dev.js +51 -0
  3. package/dist/electron/bootstrap-sdk.js +56 -0
  4. package/dist/electron/default-options.js +25 -0
  5. package/dist/electron/env.js +13 -0
  6. package/dist/electron/index.js +20 -0
  7. package/dist/electron/injections.js +702 -0
  8. package/dist/electron/logger.js +66 -0
  9. package/dist/electron/main.js +67 -0
  10. package/dist/electron/plugins/meeting-state.js +39 -0
  11. package/dist/electron/plugins/screenshot.js +49 -0
  12. package/dist/electron/preload.js +36 -0
  13. package/dist/electron/tools.js +66 -0
  14. package/dist/electron/window.js +124 -0
  15. package/installer/icons/favicon.ico +0 -0
  16. package/installer/icons/favicon.png +0 -0
  17. package/installer/mac/entitlements.mac.plist +16 -0
  18. package/lib/common/device-store.d.ts +1 -1
  19. package/lib/common/device-store.js +11 -3
  20. package/lib/common/event-store.d.ts +17 -1
  21. package/lib/common/event-store.js +38 -5
  22. package/lib/common/room-store.d.ts +55 -0
  23. package/lib/common/room-store.js +395 -0
  24. package/lib/common/security-store.d.ts +14 -4
  25. package/lib/common/security-store.js +149 -30
  26. package/lib/creator.js +2 -0
  27. package/lib/electron/app.js +8 -0
  28. package/lib/electron/bootstrap-dev.d.ts +1 -0
  29. package/lib/electron/bootstrap-dev.js +51 -0
  30. package/lib/electron/bootstrap-sdk.d.ts +1 -0
  31. package/lib/electron/bootstrap-sdk.js +57 -0
  32. package/lib/electron/bootstrap.d.ts +1 -0
  33. package/lib/electron/bootstrap.js +56 -0
  34. package/lib/electron/default-options.js +1 -1
  35. package/lib/electron/dev.d.ts +1 -0
  36. package/lib/electron/dev.js +51 -0
  37. package/lib/electron/injections.d.ts +2 -1
  38. package/lib/electron/injections.js +6 -6
  39. package/lib/electron/main.js +4 -16
  40. package/lib/electron/plugins/meeting-state.d.ts +2 -0
  41. package/lib/electron/plugins/meeting-state.js +39 -0
  42. package/lib/electron/preload.js +2 -1
  43. package/lib/fragments/control-bar/control-bar-store.d.ts +34 -1
  44. package/lib/fragments/control-bar/control-bar-store.js +371 -79
  45. package/lib/fragments/control-bar/device/index.js +5 -3
  46. package/lib/fragments/control-bar/index.css +15 -10
  47. package/lib/fragments/control-bar/index.js +18 -0
  48. package/lib/fragments/control-bar/meeting-details/meeting-detail.css +109 -0
  49. package/lib/fragments/control-bar/meeting-details/meeting-details-portal.d.ts +3 -0
  50. package/lib/fragments/control-bar/meeting-details/meeting-details-portal.js +60 -0
  51. package/lib/fragments/control-bar/meeting-details/meeting-details.d.ts +2 -0
  52. package/lib/fragments/control-bar/meeting-details/meeting-details.js +179 -0
  53. package/lib/fragments/control-bar/more-actions/index.css +53 -0
  54. package/lib/fragments/control-bar/more-actions/index.js +72 -37
  55. package/lib/fragments/control-bar/security-content/index.css +10 -0
  56. package/lib/fragments/control-bar/security-content/index.js +40 -18
  57. package/lib/fragments/control-bar/view.js +8 -2
  58. package/lib/login-confirm-dialog.d.ts +12 -0
  59. package/lib/login-confirm-dialog.js +80 -0
  60. package/lib/modules/Interpreter/add-button/index.css +4 -0
  61. package/lib/modules/Interpreter/add-button/index.d.ts +11 -0
  62. package/lib/modules/Interpreter/add-button/index.js +41 -0
  63. package/lib/modules/Interpreter/config.d.ts +16 -0
  64. package/lib/modules/Interpreter/config.js +17 -0
  65. package/lib/modules/Interpreter/constant.d.ts +44 -0
  66. package/lib/modules/Interpreter/constant.js +60 -0
  67. package/lib/modules/Interpreter/context.d.ts +2 -0
  68. package/lib/modules/Interpreter/context.js +9 -0
  69. package/lib/modules/Interpreter/dialog-content/index.css +33 -0
  70. package/lib/modules/Interpreter/dialog-content/index.d.ts +8 -0
  71. package/lib/modules/Interpreter/dialog-content/index.js +34 -0
  72. package/lib/modules/Interpreter/footer/components/interpreter-btn/index.d.ts +5 -0
  73. package/lib/modules/Interpreter/footer/components/interpreter-btn/index.js +56 -0
  74. package/lib/modules/Interpreter/footer/components/set-btn/index.d.ts +5 -0
  75. package/lib/modules/Interpreter/footer/components/set-btn/index.js +46 -0
  76. package/lib/modules/Interpreter/footer/components/tooltip-wrapper/index.d.ts +6 -0
  77. package/lib/modules/Interpreter/footer/components/tooltip-wrapper/index.js +28 -0
  78. package/lib/modules/Interpreter/footer/index.css +10 -0
  79. package/lib/modules/Interpreter/footer/index.d.ts +3 -0
  80. package/lib/modules/Interpreter/footer/index.js +35 -0
  81. package/lib/modules/Interpreter/index.css +8 -0
  82. package/lib/modules/Interpreter/index.d.ts +21 -0
  83. package/lib/modules/Interpreter/index.js +110 -0
  84. package/lib/modules/Interpreter/interpreter-list/index.css +21 -0
  85. package/lib/modules/Interpreter/interpreter-list/index.d.ts +3 -0
  86. package/lib/modules/Interpreter/interpreter-list/index.js +65 -0
  87. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/index.css +31 -0
  88. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/index.d.ts +11 -0
  89. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/index.js +141 -0
  90. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_ar.png +0 -0
  91. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_cn.png +0 -0
  92. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_de.png +0 -0
  93. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_en.png +0 -0
  94. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_es.png +0 -0
  95. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_fr.png +0 -0
  96. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_hi.png +0 -0
  97. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_id.png +0 -0
  98. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_it.png +0 -0
  99. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_jp.png +0 -0
  100. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_ko.png +0 -0
  101. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_ms.png +0 -0
  102. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_pt.png +0 -0
  103. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_ru.png +0 -0
  104. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_th.png +0 -0
  105. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_tr.png +0 -0
  106. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/images/fcr_vi.png +0 -0
  107. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/index.d.ts +11 -0
  108. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-language/useLanguageConfig/index.js +119 -0
  109. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-user/index.css +41 -0
  110. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-user/index.d.ts +12 -0
  111. package/lib/modules/Interpreter/interpreter-list/interpreter-item/components/pick-user/index.js +118 -0
  112. package/lib/modules/Interpreter/interpreter-list/interpreter-item/index.css +34 -0
  113. package/lib/modules/Interpreter/interpreter-list/interpreter-item/index.d.ts +8 -0
  114. package/lib/modules/Interpreter/interpreter-list/interpreter-item/index.js +65 -0
  115. package/lib/modules/Interpreter/loading-wrapper/index.css +53 -0
  116. package/lib/modules/Interpreter/loading-wrapper/index.d.ts +6 -0
  117. package/lib/modules/Interpreter/loading-wrapper/index.js +28 -0
  118. package/lib/modules/Interpreter/store.d.ts +82 -0
  119. package/lib/modules/Interpreter/store.js +1382 -0
  120. package/lib/modules/Interpreter/view.d.ts +3 -0
  121. package/lib/modules/Interpreter/view.js +32 -0
  122. package/lib/modules/action-bar/Interpreter/index.d.ts +6 -0
  123. package/lib/modules/action-bar/Interpreter/index.js +44 -0
  124. package/lib/modules/action-bar/action-bar-collapes-items.js +5 -5
  125. package/lib/modules/action-bar/apps/appitems.d.ts +2 -0
  126. package/lib/modules/action-bar/apps/appitems.js +40 -0
  127. package/lib/modules/action-bar/apps/index.css +6 -0
  128. package/lib/modules/action-bar/apps/index.d.ts +4 -0
  129. package/lib/modules/action-bar/apps/index.js +58 -0
  130. package/lib/modules/action-bar/chat/index.js +5 -5
  131. package/lib/modules/action-bar/device/index.css +7 -2
  132. package/lib/modules/action-bar/device/index.js +4 -4
  133. package/lib/modules/action-bar/index.css +59 -12
  134. package/lib/modules/action-bar/index.d.ts +3 -2
  135. package/lib/modules/action-bar/index.dev.js +1 -1
  136. package/lib/modules/action-bar/index.js +21 -0
  137. package/lib/modules/action-bar/leave/assign-host.d.ts +3 -0
  138. package/lib/modules/action-bar/leave/assign-host.js +2 -4
  139. package/lib/modules/action-bar/leave/index.js +29 -6
  140. package/lib/modules/action-bar/leave/leave-meeting.d.ts +11 -0
  141. package/lib/modules/action-bar/leave/leave-meeting.js +25 -16
  142. package/lib/modules/action-bar/more/poppover-content.js +4 -4
  143. package/lib/modules/action-bar/participants/index.css +12 -0
  144. package/lib/modules/action-bar/participants/index.js +21 -14
  145. package/lib/modules/action-bar/screen-share/index.js +5 -1
  146. package/lib/modules/action-bar/screen-share/submenu.js +16 -22
  147. package/lib/modules/action-bar/security/drop-menu.js +90 -13
  148. package/lib/modules/action-bar/store.d.ts +38 -6
  149. package/lib/modules/action-bar/store.js +487 -95
  150. package/lib/modules/action-bar/switch-input-language-room/fcr_translateswitch.png +0 -0
  151. package/lib/modules/action-bar/switch-input-language-room/index.css +86 -0
  152. package/lib/modules/action-bar/switch-input-language-room/index.d.ts +17 -0
  153. package/lib/modules/action-bar/switch-input-language-room/index.js +145 -0
  154. package/lib/modules/action-bar/switch-output-language-room/drop-menu.d.ts +1 -0
  155. package/lib/modules/action-bar/switch-output-language-room/drop-menu.js +197 -0
  156. package/lib/modules/action-bar/switch-output-language-room/guide-tooltip/index.css +18 -0
  157. package/lib/modules/action-bar/switch-output-language-room/guide-tooltip/index.d.ts +8 -0
  158. package/lib/modules/action-bar/switch-output-language-room/guide-tooltip/index.js +59 -0
  159. package/lib/modules/action-bar/switch-output-language-room/index.d.ts +12 -0
  160. package/lib/modules/action-bar/switch-output-language-room/index.js +238 -0
  161. package/lib/modules/action-bar/switch-output-language-room/notification-bar/components/interpreter/index.css +54 -0
  162. package/lib/modules/action-bar/switch-output-language-room/notification-bar/components/interpreter/index.d.ts +8 -0
  163. package/lib/modules/action-bar/switch-output-language-room/notification-bar/components/interpreter/index.js +94 -0
  164. package/lib/modules/action-bar/switch-output-language-room/notification-bar/components/virtual-image/index.css +8 -0
  165. package/lib/modules/action-bar/switch-output-language-room/notification-bar/components/virtual-image/index.d.ts +4 -0
  166. package/lib/modules/action-bar/switch-output-language-room/notification-bar/components/virtual-image/index.js +31 -0
  167. package/lib/modules/action-bar/switch-output-language-room/notification-bar/dome.png +0 -0
  168. package/lib/modules/action-bar/switch-output-language-room/notification-bar/fcr_translateswitch.png +0 -0
  169. package/lib/modules/action-bar/switch-output-language-room/notification-bar/index.css +71 -0
  170. package/lib/modules/action-bar/switch-output-language-room/notification-bar/index.d.ts +2 -0
  171. package/lib/modules/action-bar/switch-output-language-room/notification-bar/index.js +82 -0
  172. package/lib/modules/action-bar/view.js +65 -42
  173. package/lib/modules/chat/chat-bar/index.js +39 -27
  174. package/lib/modules/chat/chat-select/index.css +14 -4
  175. package/lib/modules/chat/chat.d.ts +1 -2
  176. package/lib/modules/chat/chat.js +184 -105
  177. package/lib/modules/chat/index.css +49 -0
  178. package/lib/modules/chat/index.d.ts +2 -2
  179. package/lib/modules/chat/index.dev.js +1 -1
  180. package/lib/modules/chat/index.js +13 -8
  181. package/lib/modules/chat/message-list.js +59 -48
  182. package/lib/modules/chat/store.d.ts +48 -2
  183. package/lib/modules/chat/store.js +258 -45
  184. package/lib/modules/connection-gateway/index.d.ts +2 -1
  185. package/lib/modules/connection-gateway/store.d.ts +6 -3
  186. package/lib/modules/connection-gateway/store.js +5 -1
  187. package/lib/modules/device-pretest/audio-preview/speaker-control.js +1 -1
  188. package/lib/modules/device-pretest/index.css +0 -4
  189. package/lib/modules/device-pretest/settings/beauty.js +17 -6
  190. package/lib/modules/device-pretest/store.js +7 -11
  191. package/lib/modules/dialog/components/Interpreter/electron.d.ts +2 -0
  192. package/lib/modules/dialog/components/Interpreter/electron.js +72 -0
  193. package/lib/modules/dialog/components/Interpreter/index.css +30 -0
  194. package/lib/modules/dialog/components/Interpreter/index.d.ts +4 -0
  195. package/lib/modules/dialog/components/Interpreter/index.js +61 -0
  196. package/lib/modules/dialog/components/Interpreter/user-queue/index.css +36 -0
  197. package/lib/modules/dialog/components/Interpreter/user-queue/index.d.ts +3 -0
  198. package/lib/modules/dialog/components/Interpreter/user-queue/index.js +47 -0
  199. package/lib/modules/dialog/components/chat/electron.js +2 -1
  200. package/lib/modules/dialog/components/confirm/electron.js +5 -3
  201. package/lib/modules/dialog/components/connection-gateway/electron.js +3 -1
  202. package/lib/modules/dialog/components/connection-gateway/index.css +0 -2
  203. package/lib/modules/dialog/components/device-setting/electron.js +3 -1
  204. package/lib/modules/dialog/components/device-setting/index.css +0 -1
  205. package/lib/modules/dialog/components/operation-waiting-room/electron.d.ts +5 -0
  206. package/lib/modules/dialog/components/operation-waiting-room/electron.js +89 -0
  207. package/lib/modules/dialog/components/operation-waiting-room/index.css +44 -0
  208. package/lib/modules/dialog/components/operation-waiting-room/index.d.ts +5 -0
  209. package/lib/modules/dialog/components/operation-waiting-room/index.js +156 -0
  210. package/lib/modules/dialog/components/participant/electron.js +2 -1
  211. package/lib/modules/dialog/components/remove-admit-waiting-room/electron.d.ts +5 -0
  212. package/lib/modules/dialog/components/remove-admit-waiting-room/electron.js +89 -0
  213. package/lib/modules/dialog/components/remove-admit-waiting-room/index.css +50 -0
  214. package/lib/modules/dialog/components/remove-admit-waiting-room/index.d.ts +5 -0
  215. package/lib/modules/dialog/components/remove-admit-waiting-room/index.js +90 -0
  216. package/lib/modules/dialog/components/switch-language-channels/electron.d.ts +2 -0
  217. package/lib/modules/dialog/components/switch-language-channels/electron.js +72 -0
  218. package/lib/modules/dialog/components/switch-language-channels/index.css +30 -0
  219. package/lib/modules/dialog/components/switch-language-channels/index.d.ts +4 -0
  220. package/lib/modules/dialog/components/switch-language-channels/index.js +63 -0
  221. package/lib/modules/dialog/components/switch-language-channels/user-queue/index.css +36 -0
  222. package/lib/modules/dialog/components/switch-language-channels/user-queue/index.d.ts +3 -0
  223. package/lib/modules/dialog/components/switch-language-channels/user-queue/index.js +47 -0
  224. package/lib/modules/dialog/components/whiteboard/index.js +2 -1
  225. package/lib/modules/dialog/dialogs.js +17 -13
  226. package/lib/modules/dialog/index.css +2 -0
  227. package/lib/modules/dialog/store.d.ts +4 -0
  228. package/lib/modules/dialog/store.js +16 -2
  229. package/lib/modules/event-notification/context.d.ts +2 -0
  230. package/lib/modules/event-notification/context.js +9 -0
  231. package/lib/modules/event-notification/index.css +58 -0
  232. package/lib/modules/event-notification/index.d.ts +13 -0
  233. package/lib/modules/event-notification/index.js +48 -0
  234. package/lib/modules/event-notification/store.d.ts +17 -0
  235. package/lib/modules/event-notification/store.js +133 -0
  236. package/lib/modules/event-notification/view.d.ts +5 -0
  237. package/lib/modules/event-notification/view.js +114 -0
  238. package/lib/modules/invite/index.css +4 -4
  239. package/lib/modules/invite/pstn-invite.js +1 -0
  240. package/lib/modules/layout/components/Gallery.js +7 -1
  241. package/lib/modules/layout/components/Layout.js +82 -57
  242. package/lib/modules/layout/components/index.css +33 -6
  243. package/lib/modules/layout/index.css +30 -0
  244. package/lib/modules/layout/member-window/index.js +9 -3
  245. package/lib/modules/layout/store.d.ts +19 -2
  246. package/lib/modules/layout/store.js +177 -70
  247. package/lib/modules/layout/video-window-datasource.d.ts +1 -1
  248. package/lib/modules/layout/video-window-datasource.js +1 -1
  249. package/lib/modules/live-streaming/index.dev.js +1 -1
  250. package/lib/modules/notification/context.d.ts +2 -0
  251. package/lib/modules/notification/context.js +9 -0
  252. package/lib/modules/notification/index.css +58 -0
  253. package/lib/modules/notification/index.d.ts +15 -0
  254. package/lib/modules/notification/index.js +51 -0
  255. package/lib/modules/notification/interpreter-status/index.css +72 -0
  256. package/lib/modules/notification/interpreter-status/index.d.ts +3 -0
  257. package/lib/modules/notification/interpreter-status/index.js +59 -0
  258. package/lib/modules/notification/store.d.ts +16 -0
  259. package/lib/modules/notification/store.js +127 -0
  260. package/lib/modules/notification/view.d.ts +10 -0
  261. package/lib/modules/notification/view.js +116 -0
  262. package/lib/modules/participant/attendee/index.d.ts +12 -3
  263. package/lib/modules/participant/attendee/index.js +132 -30
  264. package/lib/modules/participant/index.css +20 -0
  265. package/lib/modules/participant/index.d.ts +5 -2
  266. package/lib/modules/participant/index.dev.js +1 -1
  267. package/lib/modules/participant/index.js +27 -0
  268. package/lib/modules/participant/room-control-drop-menu/index.css +37 -0
  269. package/lib/modules/participant/store.d.ts +30 -5
  270. package/lib/modules/participant/store.js +347 -74
  271. package/lib/modules/participant/view.js +133 -34
  272. package/lib/modules/setting/index.css +1 -5
  273. package/lib/modules/setting/index.dev.js +1 -1
  274. package/lib/modules/setting/store.d.ts +2 -2
  275. package/lib/modules/setting/store.js +3 -8
  276. package/lib/modules/setting/translate-settings/translate-settings.js +1 -1
  277. package/lib/modules/setting/video-settings/index.css +9 -6
  278. package/lib/modules/share-screen/index.d.ts +2 -0
  279. package/lib/modules/share-screen/index.dev.js +3 -2
  280. package/lib/modules/share-screen/selection/index.css +2 -0
  281. package/lib/modules/share-screen/store.d.ts +6 -3
  282. package/lib/modules/share-screen/store.js +170 -129
  283. package/lib/modules/state-bar/index.css +2 -2
  284. package/lib/modules/state-bar/index.d.ts +2 -2
  285. package/lib/modules/state-bar/index.dev.js +1 -1
  286. package/lib/modules/state-bar/meeting-detail.css +6 -4
  287. package/lib/modules/state-bar/meeting-details.js +32 -5
  288. package/lib/modules/state-bar/meeting-network-state.css +14 -3
  289. package/lib/modules/state-bar/meeting-network-state.js +10 -4
  290. package/lib/modules/state-bar/recording.js +3 -5
  291. package/lib/modules/state-bar/store.d.ts +5 -2
  292. package/lib/modules/state-bar/store.js +32 -5
  293. package/lib/modules/state-bar/view.js +7 -10
  294. package/lib/modules/video-window/index.css +1 -0
  295. package/lib/modules/video-window/store.d.ts +2 -2
  296. package/lib/modules/video-window/store.js +14 -11
  297. package/lib/modules/waiting-room-layout/context.d.ts +2 -0
  298. package/lib/modules/waiting-room-layout/context.js +9 -0
  299. package/lib/modules/waiting-room-layout/index.css +71 -0
  300. package/lib/modules/waiting-room-layout/index.d.ts +8 -0
  301. package/lib/modules/waiting-room-layout/index.js +47 -0
  302. package/lib/modules/waiting-room-layout/store.d.ts +30 -0
  303. package/lib/modules/waiting-room-layout/store.js +189 -0
  304. package/lib/modules/waiting-room-layout/type.d.ts +0 -0
  305. package/lib/modules/waiting-room-layout/type.js +1 -0
  306. package/lib/modules/waiting-room-layout/view.d.ts +3 -0
  307. package/lib/modules/waiting-room-layout/view.js +67 -0
  308. package/lib/modules/whiteboard/app.js +0 -6
  309. package/lib/modules/whiteboard/components/control-bar/index.css +3 -0
  310. package/lib/modules/whiteboard/components/multi-window/index.js +6 -1
  311. package/lib/modules/whiteboard/components/progress/electron.js +2 -1
  312. package/lib/modules/whiteboard/components/switch-theme/index.css +4 -0
  313. package/lib/modules/whiteboard/components/switch-theme/index.d.ts +2 -1
  314. package/lib/modules/whiteboard/components/switch-theme/index.js +20 -15
  315. package/lib/modules/whiteboard/components/switch-theme/item.d.ts +1 -0
  316. package/lib/modules/whiteboard/components/switch-theme/item.js +9 -2
  317. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +14 -10
  318. package/lib/modules/whiteboard/components/toolbar/store.d.ts +1 -0
  319. package/lib/modules/whiteboard/components/toolbar/store.js +3 -0
  320. package/lib/modules/whiteboard/context.d.ts +4 -0
  321. package/lib/modules/whiteboard/context.js +4 -2
  322. package/lib/modules/whiteboard/index.js +22 -6
  323. package/lib/plugins/browser-runtime-plugin.js +4 -1
  324. package/lib/plugins/module-dev-plugin.js +8 -6
  325. package/lib/runtime.d.ts +2 -1
  326. package/lib/translations/enUS.d.ts +449 -6
  327. package/lib/translations/enUS.js +485 -32
  328. package/lib/translations/zhCN.d.ts +447 -6
  329. package/lib/translations/zhCN.js +468 -17
  330. package/lib/type.d.ts +6 -2
  331. package/lib/ui-manager.d.ts +7 -3
  332. package/lib/ui-manager.js +576 -139
  333. package/lib/ui-scene.d.ts +1 -0
  334. package/lib/ui-scene.js +26 -21
  335. package/lib/utilities/constant.d.ts +43 -4
  336. package/lib/utilities/constant.js +41 -1
  337. package/lib/utilities/parameters.js +2 -2
  338. package/lib/utilities/renderer.d.ts +1 -0
  339. package/lib/utilities/renderer.js +6 -2
  340. package/package.json +14 -14
  341. package/public/assets/fcr_defaultpage.png +0 -0
  342. package/public/assets/login_confirm.png +0 -0
  343. package/public/index.html +34 -11
  344. package/dist/132.js +0 -2
  345. package/dist/132.js.LICENSE.txt +0 -311
  346. package/dist/651.js +0 -2
  347. package/dist/651.js.LICENSE.txt +0 -1
  348. package/dist/73.js +0 -1
  349. package/dist/index.html +0 -13
  350. package/dist/main.da7c203ab32d15742cfe.css +0 -11760
  351. package/dist/main.js +0 -2
  352. package/dist/main.js.LICENSE.txt +0 -254
  353. package/dist/worker-entry.worker.js.LICENSE.txt +0 -13
  354. package/lib/modules/device-pretest/settings/index.css +0 -15
  355. package/lib/modules/participant/attendee/participants-more-action.d.ts +0 -18
  356. package/lib/modules/participant/attendee/participants-more-action.js +0 -278
@@ -0,0 +1,702 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ require("core-js/modules/es.regexp.exec.js");
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.showItemInFolder = exports.setInMeetingState = exports.setFragmentOptions = exports.setFragmentBaseUrl = exports.setAlwaysOnTop = exports.sendEvent = exports.screen = exports.removeEventListener = exports.releaseSubAllWindowRefs = exports.registerListenerReady = exports.quitApp = exports.openRendererWindow = exports.openLinkInDefaultBrowser = exports.openDirectory = exports.open = exports.launch = exports.getVirtualBgResource = exports.getSystemMemorySize = exports.getSystemCpuInfo = exports.getRendererProcessUsage = exports.getNetworkType = exports.getMediaSourceIdList = exports.getLaunchOptions = exports.getBrowserWindowById = exports.getAssetUrl = exports.fileToBase64 = exports.closeRendererWindow = exports.close = exports.captureScreen = exports.browserWindow = exports.addEventListener = void 0;
10
+ require("core-js/modules/es.error.cause.js");
11
+ require("core-js/modules/es.error.to-string.js");
12
+ require("core-js/modules/es.array.concat.js");
13
+ require("core-js/modules/es.array.filter.js");
14
+ require("core-js/modules/es.array.find.js");
15
+ require("core-js/modules/es.array.for-each.js");
16
+ require("core-js/modules/es.array.includes.js");
17
+ require("core-js/modules/es.array.iterator.js");
18
+ require("core-js/modules/es.array.map.js");
19
+ require("core-js/modules/es.array.push.js");
20
+ require("core-js/modules/es.array.reduce.js");
21
+ require("core-js/modules/es.date.now.js");
22
+ require("core-js/modules/es.date.to-json.js");
23
+ require("core-js/modules/es.json.stringify.js");
24
+ require("core-js/modules/es.object.entries.js");
25
+ require("core-js/modules/es.object.keys.js");
26
+ require("core-js/modules/es.object.to-string.js");
27
+ require("core-js/modules/es.promise.js");
28
+ require("core-js/modules/es.promise.all-settled.js");
29
+ require("core-js/modules/es.promise.finally.js");
30
+ require("core-js/modules/es.string.includes.js");
31
+ require("core-js/modules/es.string.iterator.js");
32
+ require("core-js/modules/es.string.starts-with.js");
33
+ require("core-js/modules/es.string.trim.js");
34
+ require("core-js/modules/esnext.async-iterator.filter.js");
35
+ require("core-js/modules/esnext.async-iterator.find.js");
36
+ require("core-js/modules/esnext.async-iterator.for-each.js");
37
+ require("core-js/modules/esnext.async-iterator.map.js");
38
+ require("core-js/modules/esnext.async-iterator.reduce.js");
39
+ require("core-js/modules/esnext.iterator.constructor.js");
40
+ require("core-js/modules/esnext.iterator.filter.js");
41
+ require("core-js/modules/esnext.iterator.find.js");
42
+ require("core-js/modules/esnext.iterator.for-each.js");
43
+ require("core-js/modules/esnext.iterator.map.js");
44
+ require("core-js/modules/esnext.iterator.reduce.js");
45
+ require("core-js/modules/web.dom-collections.for-each.js");
46
+ require("core-js/modules/web.dom-collections.iterator.js");
47
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
48
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
49
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
50
+ var _electron = require("electron");
51
+ var _remote = require("@electron/remote");
52
+ var _os = _interopRequireDefault(require("os"));
53
+ var _child_process = require("child_process");
54
+ var _path2 = _interopRequireDefault(require("path"));
55
+ var _fs2 = _interopRequireDefault(require("fs"));
56
+ var _jszip = _interopRequireDefault(require("jszip"));
57
+ var openDirectory = exports.openDirectory = /*#__PURE__*/function () {
58
+ var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
59
+ var _yield$dialog$showOpe, filePaths;
60
+ return _regenerator["default"].wrap(function _callee$(_context) {
61
+ while (1) switch (_context.prev = _context.next) {
62
+ case 0:
63
+ _context.next = 2;
64
+ return _remote.dialog.showOpenDialog((0, _remote.getCurrentWindow)(), {
65
+ properties: ['openDirectory']
66
+ });
67
+ case 2:
68
+ _yield$dialog$showOpe = _context.sent;
69
+ filePaths = _yield$dialog$showOpe.filePaths;
70
+ return _context.abrupt("return", filePaths[0]);
71
+ case 5:
72
+ case "end":
73
+ return _context.stop();
74
+ }
75
+ }, _callee);
76
+ }));
77
+ return function openDirectory() {
78
+ return _ref.apply(this, arguments);
79
+ };
80
+ }();
81
+ var showItemInFolder = exports.showItemInFolder = function showItemInFolder(path) {
82
+ _remote.shell.showItemInFolder(path);
83
+ };
84
+ var sendEvent = exports.sendEvent = function sendEvent(event) {
85
+ _remote.BrowserWindow.getAllWindows().forEach(function (window) {
86
+ var currentWindow = (0, _remote.getCurrentWindow)();
87
+ if (window.id !== currentWindow.id) {
88
+ window.webContents.send('custom-event', event);
89
+ }
90
+ });
91
+ };
92
+ var addEventListener = exports.addEventListener = function addEventListener(listener) {
93
+ _electron.ipcRenderer.addListener('custom-event', listener);
94
+ };
95
+ var removeEventListener = exports.removeEventListener = function removeEventListener(listener) {
96
+ _electron.ipcRenderer.removeListener('custom-event', listener);
97
+ };
98
+ var setFragmentOptions = exports.setFragmentOptions = function setFragmentOptions(entryPath, windowOptions, webPreferences) {
99
+ _electron.ipcRenderer.send('setFragmentOptions', entryPath, windowOptions, webPreferences);
100
+ };
101
+ var getLaunchOptions = exports.getLaunchOptions = /*#__PURE__*/function () {
102
+ var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
103
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
104
+ while (1) switch (_context2.prev = _context2.next) {
105
+ case 0:
106
+ return _context2.abrupt("return", _electron.ipcRenderer.invoke('get-launch-options'));
107
+ case 1:
108
+ case "end":
109
+ return _context2.stop();
110
+ }
111
+ }, _callee2);
112
+ }));
113
+ return function getLaunchOptions() {
114
+ return _ref2.apply(this, arguments);
115
+ };
116
+ }();
117
+ var openLinkInDefaultBrowser = exports.openLinkInDefaultBrowser = function openLinkInDefaultBrowser(url) {
118
+ _remote.shell.openExternal(url);
119
+ };
120
+ var getBrowserWindowById = exports.getBrowserWindowById = function getBrowserWindowById(id) {
121
+ return _remote.BrowserWindow.getAllWindows().find(function (wind) {
122
+ return wind.id === id;
123
+ });
124
+ };
125
+ var browserWindow = exports.browserWindow = (0, _remote.getCurrentWindow)();
126
+ var screen = exports.screen = _remote.screen;
127
+ var open = exports.open = function open(entryPath, dialogId) {
128
+ _electron.ipcRenderer.send('open', entryPath, dialogId);
129
+ };
130
+ var close = exports.close = function close(entryPath, dialogId) {
131
+ _electron.ipcRenderer.send('close', entryPath, dialogId);
132
+ };
133
+ var setFragmentBaseUrl = exports.setFragmentBaseUrl = function setFragmentBaseUrl(isDev, baseUrl) {
134
+ _electron.ipcRenderer.send('setFragmentBaseUrl', isDev, baseUrl);
135
+ };
136
+ var registerListenerReady = exports.registerListenerReady = function registerListenerReady() {
137
+ _electron.ipcRenderer.send('registerListenerReady');
138
+ };
139
+ var captureScreen = exports.captureScreen = function captureScreen(options) {
140
+ _electron.ipcRenderer.send('short-cut-capture', "short-cut-capture-reply-".concat(Date.now()), options);
141
+ };
142
+ var rendererWindows = {};
143
+ var rendererWindowMutationObservers = {};
144
+ var openRendererWindow = exports.openRendererWindow = /*#__PURE__*/function () {
145
+ var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(frameName, renderFn, windowOptions) {
146
+ var rendererWindow, windowConstructorOptionsString, newRendererWindow, windowId, _browserWindow, renderDom, parentWindow, parentHead, parentStyles, parentStyleLinks, stylesLoadedPromises, oldenObserver, observer, parentRoot, parentRootStyles, _windowId, _browserWindow2, _newRendererWindow, _renderDom;
147
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
148
+ while (1) switch (_context3.prev = _context3.next) {
149
+ case 0:
150
+ rendererWindow = rendererWindows[frameName];
151
+ if (rendererWindow) {
152
+ _context3.next = 36;
153
+ break;
154
+ }
155
+ windowConstructorOptionsString = Object.entries(windowOptions).reduce(function (acc, _ref4) {
156
+ var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2),
157
+ key = _ref5[0],
158
+ value = _ref5[1];
159
+ if (typeof value === 'string') {
160
+ return "".concat(acc, ",").concat(key, "=").concat(value);
161
+ }
162
+ return "".concat(acc, ",").concat(key, "=").concat(JSON.stringify(value));
163
+ }, '');
164
+ newRendererWindow = window.open('', frameName, windowConstructorOptionsString);
165
+ _context3.next = 6;
166
+ return _electron.ipcRenderer.invoke('getBrowserWindowId', frameName);
167
+ case 6:
168
+ windowId = _context3.sent;
169
+ if (windowId) {
170
+ _context3.next = 10;
171
+ break;
172
+ }
173
+ console.error('windowId not found');
174
+ return _context3.abrupt("return");
175
+ case 10:
176
+ _browserWindow = _remote.BrowserWindow.getAllWindows().find(function (win) {
177
+ return win.id === windowId;
178
+ });
179
+ if (!newRendererWindow) {
180
+ _context3.next = 34;
181
+ break;
182
+ }
183
+ newRendererWindow.document.write('<div id="root"></div>');
184
+ renderDom = newRendererWindow.document.getElementById('root');
185
+ if (renderDom) {
186
+ _context3.next = 16;
187
+ break;
188
+ }
189
+ return _context3.abrupt("return");
190
+ case 16:
191
+ // copy styles from parent window
192
+ parentWindow = window;
193
+ parentHead = parentWindow.document.head;
194
+ parentStyles = parentHead.querySelectorAll('style');
195
+ parentStyleLinks = parentHead.querySelectorAll('link[rel="stylesheet"]');
196
+ stylesLoadedPromises = [];
197
+ parentStyles.forEach(function (style) {
198
+ newRendererWindow === null || newRendererWindow === void 0 || newRendererWindow.document.head.appendChild(style.cloneNode(true));
199
+ });
200
+ parentStyleLinks.forEach(function (style) {
201
+ var linkNode = style.cloneNode(true);
202
+ newRendererWindow === null || newRendererWindow === void 0 || newRendererWindow.document.head.appendChild(linkNode);
203
+ stylesLoadedPromises.push(new Promise(function (resolve, reject) {
204
+ linkNode.addEventListener('load', function () {
205
+ return resolve();
206
+ });
207
+ linkNode.addEventListener('error', function () {
208
+ return reject("failed to load style: ".concat(linkNode.href));
209
+ });
210
+ }));
211
+ });
212
+ oldenObserver = rendererWindowMutationObservers[frameName];
213
+ if (oldenObserver) {
214
+ oldenObserver.disconnect();
215
+ }
216
+ observer = new MutationObserver(function (mutations) {
217
+ mutations.forEach(function (mutation) {
218
+ if (mutation.type === 'childList') {
219
+ mutation.addedNodes.forEach(function (node) {
220
+ if (node.nodeType === Node.ELEMENT_NODE && node.tagName === 'STYLE') {
221
+ newRendererWindow === null || newRendererWindow === void 0 || newRendererWindow.document.head.appendChild(node.cloneNode(true));
222
+ }
223
+ });
224
+ }
225
+ });
226
+ });
227
+ observer.observe(document.head, {
228
+ childList: true
229
+ });
230
+ rendererWindowMutationObservers[frameName] = observer;
231
+ // copy css variables from parent window
232
+ parentRoot = parentWindow.document.documentElement;
233
+ parentRootStyles = parentRoot.style.cssText;
234
+ newRendererWindow.document.documentElement.style.cssText = parentRootStyles;
235
+ rendererWindows[frameName] = newRendererWindow;
236
+ newRendererWindow.onclose = function () {
237
+ delete rendererWindows[frameName];
238
+ };
239
+ Promise.allSettled(stylesLoadedPromises)["finally"](function () {
240
+ renderFn(renderDom, _browserWindow);
241
+ });
242
+ case 34:
243
+ _context3.next = 51;
244
+ break;
245
+ case 36:
246
+ _context3.next = 38;
247
+ return _electron.ipcRenderer.invoke('getBrowserWindowId', frameName);
248
+ case 38:
249
+ _windowId = _context3.sent;
250
+ if (_windowId) {
251
+ _context3.next = 42;
252
+ break;
253
+ }
254
+ console.error('windowId not found');
255
+ return _context3.abrupt("return");
256
+ case 42:
257
+ _browserWindow2 = _remote.BrowserWindow.getAllWindows().find(function (win) {
258
+ return win.id === _windowId;
259
+ });
260
+ _newRendererWindow = rendererWindows[frameName];
261
+ _renderDom = _newRendererWindow.document.getElementById('root');
262
+ if (_renderDom) {
263
+ _context3.next = 47;
264
+ break;
265
+ }
266
+ return _context3.abrupt("return");
267
+ case 47:
268
+ renderFn(_renderDom, _browserWindow2);
269
+ _browserWindow2 === null || _browserWindow2 === void 0 || _browserWindow2.show();
270
+ _browserWindow2 === null || _browserWindow2 === void 0 || _browserWindow2.focus();
271
+ _browserWindow2 === null || _browserWindow2 === void 0 || _browserWindow2.moveTop();
272
+ case 51:
273
+ case "end":
274
+ return _context3.stop();
275
+ }
276
+ }, _callee3);
277
+ }));
278
+ return function openRendererWindow(_x, _x2, _x3) {
279
+ return _ref3.apply(this, arguments);
280
+ };
281
+ }();
282
+ var closeRendererWindow = exports.closeRendererWindow = /*#__PURE__*/function () {
283
+ var _ref6 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(frameName) {
284
+ var windowId, _browserWindow3;
285
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
286
+ while (1) switch (_context4.prev = _context4.next) {
287
+ case 0:
288
+ _context4.next = 2;
289
+ return _electron.ipcRenderer.invoke('getBrowserWindowId', frameName);
290
+ case 2:
291
+ windowId = _context4.sent;
292
+ if (windowId) {
293
+ _browserWindow3 = _remote.BrowserWindow.getAllWindows().find(function (win) {
294
+ return win.id === windowId;
295
+ });
296
+ if (_browserWindow3 && !_browserWindow3.isDestroyed()) {
297
+ _browserWindow3.emit('will-close');
298
+ }
299
+ }
300
+ case 4:
301
+ case "end":
302
+ return _context4.stop();
303
+ }
304
+ }, _callee4);
305
+ }));
306
+ return function closeRendererWindow(_x4) {
307
+ return _ref6.apply(this, arguments);
308
+ };
309
+ }();
310
+ var launch = exports.launch = /*#__PURE__*/function () {
311
+ var _ref7 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(options) {
312
+ var res;
313
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
314
+ while (1) switch (_context5.prev = _context5.next) {
315
+ case 0:
316
+ _context5.next = 2;
317
+ return _electron.ipcRenderer.invoke('launch', options);
318
+ case 2:
319
+ res = _context5.sent;
320
+ return _context5.abrupt("return", res);
321
+ case 4:
322
+ case "end":
323
+ return _context5.stop();
324
+ }
325
+ }, _callee5);
326
+ }));
327
+ return function launch(_x5) {
328
+ return _ref7.apply(this, arguments);
329
+ };
330
+ }();
331
+ var setAlwaysOnTop = exports.setAlwaysOnTop = function setAlwaysOnTop() {
332
+ var _app$dock;
333
+ _remote.app.dock && _remote.app.dock.hide();
334
+ var browserWindow = (0, _remote.getCurrentWindow)();
335
+ browserWindow.setVisibleOnAllWorkspaces(true, {
336
+ visibleOnFullScreen: true
337
+ });
338
+ browserWindow.setAlwaysOnTop(true);
339
+ browserWindow.show();
340
+ browserWindow.focus();
341
+ if (!((_app$dock = _remote.app.dock) !== null && _app$dock !== void 0 && _app$dock.isVisible())) {
342
+ _remote.app.dock && _remote.app.dock.show();
343
+ }
344
+ };
345
+ var quitApp = exports.quitApp = function quitApp() {
346
+ _remote.app.quit();
347
+ };
348
+ var getSystemMemorySize = exports.getSystemMemorySize = function getSystemMemorySize() {
349
+ return _os["default"].totalmem();
350
+ };
351
+ var getSystemCpuInfo = exports.getSystemCpuInfo = function getSystemCpuInfo() {
352
+ return _os["default"].cpus();
353
+ };
354
+ var getNetworkType = exports.getNetworkType = function getNetworkType() {
355
+ var resolve = function resolve(res) {};
356
+ var p = new Promise(function (_resolve) {
357
+ resolve = _resolve;
358
+ });
359
+ var platform = _os["default"].platform();
360
+ if (platform === 'darwin') {
361
+ // macos
362
+ (0, _child_process.exec)('networksetup -getairportnetwork en0', function (error, stdout, stderr) {
363
+ if (error || stderr) {
364
+ resolve({
365
+ isWifiConnected: false,
366
+ connection: ''
367
+ });
368
+ return;
369
+ }
370
+ if (stdout.includes('You are not associated with an AirPort network.')) {
371
+ resolve({
372
+ isWifiConnected: false,
373
+ connection: ''
374
+ });
375
+ } else {
376
+ var network = stdout.split(': ')[1].trim();
377
+ resolve({
378
+ isWifiConnected: true,
379
+ connection: network
380
+ });
381
+ }
382
+ });
383
+ } else if (platform === 'win32') {
384
+ // windows
385
+ (0, _child_process.exec)('netsh wlan show interfaces', function (error, stdout, stderr) {
386
+ if (error || stderr) {
387
+ resolve({
388
+ isWifiConnected: false,
389
+ connection: ''
390
+ });
391
+ return;
392
+ }
393
+ var lines = stdout.split('\n');
394
+ lines.forEach(function (line) {
395
+ if (line.includes('State') && line.includes('connected') && line.includes('SSID')) {
396
+ var ssid = line.split(': ')[1].trim();
397
+ resolve({
398
+ isWifiConnected: true,
399
+ connection: ssid
400
+ });
401
+ }
402
+ });
403
+ resolve({
404
+ isWifiConnected: false,
405
+ connection: ''
406
+ });
407
+ });
408
+ } else if (platform === 'linux') {
409
+ // linux
410
+ (0, _child_process.exec)('nmcli -t -f TYPE,STATE,CONNECTION device status', function (error, stdout, stderr) {
411
+ if (error || stderr) {
412
+ resolve({
413
+ isWifiConnected: false,
414
+ connection: ''
415
+ });
416
+ return;
417
+ }
418
+ var devices = stdout.split('\n');
419
+ devices.forEach(function (device) {
420
+ var _device$split = device.split(':'),
421
+ _device$split2 = (0, _slicedToArray2["default"])(_device$split, 3),
422
+ type = _device$split2[0],
423
+ state = _device$split2[1],
424
+ connection = _device$split2[2];
425
+ if (type === 'wifi' && state === 'connected') {
426
+ resolve({
427
+ isWifiConnected: true,
428
+ connection: connection
429
+ });
430
+ }
431
+ });
432
+ resolve({
433
+ isWifiConnected: false,
434
+ connection: ''
435
+ });
436
+ });
437
+ } else {
438
+ resolve({
439
+ isWifiConnected: false,
440
+ connection: ''
441
+ });
442
+ }
443
+ return p;
444
+ };
445
+ var getAssetUrl = exports.getAssetUrl = function getAssetUrl(path) {
446
+ var isDevMode = process.env.DEV === 'true';
447
+ if (isDevMode) {
448
+ return _path2["default"].resolve(process.cwd(), 'public', path);
449
+ }
450
+ return _path2["default"].resolve(_remote.app.getAppPath(), '..', path);
451
+ };
452
+ var getRendererProcessUsage = exports.getRendererProcessUsage = /*#__PURE__*/function () {
453
+ var _ref8 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6() {
454
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
455
+ while (1) switch (_context6.prev = _context6.next) {
456
+ case 0:
457
+ return _context6.abrupt("return", {
458
+ memoryUsage: 0,
459
+ cpuUsage: 0,
460
+ totalMemoryUsage: 0,
461
+ totalCpuUsage: 0
462
+ });
463
+ case 1:
464
+ case "end":
465
+ return _context6.stop();
466
+ }
467
+ }, _callee6);
468
+ }));
469
+ return function getRendererProcessUsage() {
470
+ return _ref8.apply(this, arguments);
471
+ };
472
+ }();
473
+ var userDataPath = _remote.app.getPath('userData');
474
+ var cachePath = _path2["default"].resolve(userDataPath, 'cache');
475
+ var imageExtensions = ['.png', '.jpg'];
476
+ var videoExtensions = ['.mp4'];
477
+ var zipExtensions = ['.zip'];
478
+ var getZipCachePath = function getZipCachePath(type) {
479
+ return _path2["default"].resolve(cachePath, "fcr_scene/virtual_bg_".concat(type, "s"));
480
+ };
481
+ var getResourcePath = function getResourcePath(type, md5Url) {
482
+ return _path2["default"].resolve(userDataPath, "fcr_scene/virtual_bg_".concat(type, "s/").concat(md5Url));
483
+ };
484
+
485
+ // 解压 zip 文件并保存
486
+ var unZipAndSaveFile = /*#__PURE__*/function () {
487
+ var _ref9 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8(zipFile, outputPath, type) {
488
+ var zipBuffer, zip, fileNames;
489
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
490
+ while (1) switch (_context8.prev = _context8.next) {
491
+ case 0:
492
+ zipBuffer = _fs2["default"].readFileSync(zipFile);
493
+ _context8.next = 3;
494
+ return _jszip["default"].loadAsync(zipBuffer);
495
+ case 3:
496
+ zip = _context8.sent;
497
+ fileNames = [];
498
+ _context8.next = 7;
499
+ return Promise.all(Object.keys(zip.files).filter(function (filename) {
500
+ // 忽略目录、扩展文件或不需要的文件
501
+ var isDirectory = zip.files[filename].dir;
502
+ var isExtensionFile = filename.includes('__MACOSX') || filename.includes('.DS_Store') || filename.startsWith('.') ||
503
+ // 忽略以.开头的文件(隐藏文件)
504
+ filename.includes('Thumbs.db'); // 忽略 Windows 的缩略图数据库文件
505
+
506
+ var isImageOrVideo = type === 'image' ? imageExtensions.includes(_path2["default"].extname(filename)) : videoExtensions.includes(_path2["default"].extname(filename));
507
+ return !isDirectory && !isExtensionFile && isImageOrVideo;
508
+ }).map(/*#__PURE__*/function () {
509
+ var _ref10 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7(filenameTmp) {
510
+ var fileData, realFileName, outputFile;
511
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
512
+ while (1) switch (_context7.prev = _context7.next) {
513
+ case 0:
514
+ _context7.next = 2;
515
+ return zip.files[filenameTmp].async('nodebuffer');
516
+ case 2:
517
+ fileData = _context7.sent;
518
+ realFileName = _path2["default"].basename(filenameTmp);
519
+ outputFile = _path2["default"].resolve(outputPath, realFileName);
520
+ _fs2["default"].mkdirSync(_path2["default"].dirname(outputFile), {
521
+ recursive: true
522
+ });
523
+ _fs2["default"].writeFileSync(outputFile, fileData);
524
+ fileNames.push(outputFile);
525
+ case 8:
526
+ case "end":
527
+ return _context7.stop();
528
+ }
529
+ }, _callee7);
530
+ }));
531
+ return function (_x9) {
532
+ return _ref10.apply(this, arguments);
533
+ };
534
+ }()));
535
+ case 7:
536
+ // 删除 zip 文件
537
+ _fs2["default"].unlinkSync(zipFile);
538
+ return _context8.abrupt("return", fileNames);
539
+ case 9:
540
+ case "end":
541
+ return _context8.stop();
542
+ }
543
+ }, _callee8);
544
+ }));
545
+ return function unZipAndSaveFile(_x6, _x7, _x8) {
546
+ return _ref9.apply(this, arguments);
547
+ };
548
+ }();
549
+
550
+ // 检查指定路径下是否有指定的文件
551
+ function getSpecificFiles(directory, extensions, fileName) {
552
+ // 检查目录是否存在
553
+ if (!_fs2["default"].existsSync(directory)) {
554
+ // 如果目录不存在,则创建目录
555
+ _fs2["default"].mkdirSync(directory, {
556
+ recursive: true
557
+ });
558
+ return [];
559
+ }
560
+ try {
561
+ var files = _fs2["default"].readdirSync(directory);
562
+
563
+ // 筛选出符合扩展名的文件
564
+ var filteredFiles = files.filter(function (file) {
565
+ var ext = _path2["default"].extname(file).toLowerCase();
566
+ return extensions.includes(ext);
567
+ });
568
+
569
+ // 如果传入了文件名,则只返回符合条件的文件
570
+ if (fileName) {
571
+ filteredFiles = filteredFiles.filter(function (file) {
572
+ return file === fileName;
573
+ });
574
+ }
575
+
576
+ // 符合条件的文件
577
+ return filteredFiles.length > 0 ? filteredFiles.map(function (file) {
578
+ return _path2["default"].resolve(directory, file);
579
+ }) : [];
580
+ } catch (err) {
581
+ console.error("Error reading directory: ".concat(err === null || err === void 0 ? void 0 : err.message));
582
+ return [];
583
+ }
584
+ }
585
+ function downloadFile(_x10, _x11) {
586
+ return _downloadFile.apply(this, arguments);
587
+ } // 获取资源
588
+ function _downloadFile() {
589
+ _downloadFile = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee10(url, destination) {
590
+ return _regenerator["default"].wrap(function _callee10$(_context10) {
591
+ while (1) switch (_context10.prev = _context10.next) {
592
+ case 0:
593
+ return _context10.abrupt("return", new Promise(function (resolve, reject) {
594
+ var request = _remote.net.request(url);
595
+ request.on('response', function (response) {
596
+ var fileStream = _fs2["default"].createWriteStream(destination);
597
+ fileStream.on('finish', function () {
598
+ resolve();
599
+ });
600
+ response.on('data', function (chunk) {
601
+ fileStream.write(chunk);
602
+ });
603
+ response.on('end', function () {
604
+ fileStream.end();
605
+ });
606
+ response.on('error', function (err) {
607
+ reject(new Error("Download failed: ".concat(err.message)));
608
+ });
609
+ });
610
+ request.on('error', function (err) {
611
+ reject(new Error("Request failed: ".concat(err.message)));
612
+ });
613
+ request.end();
614
+ }));
615
+ case 1:
616
+ case "end":
617
+ return _context10.stop();
618
+ }
619
+ }, _callee10);
620
+ }));
621
+ return _downloadFile.apply(this, arguments);
622
+ }
623
+ var getVirtualBgResource = exports.getVirtualBgResource = /*#__PURE__*/function () {
624
+ var _ref11 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9(url, md5Url, type) {
625
+ var resourcePath, extensions, cachedFiles, zipFileName, zipCacheDir, zipFiles, tempZipPath, zipPath;
626
+ return _regenerator["default"].wrap(function _callee9$(_context9) {
627
+ while (1) switch (_context9.prev = _context9.next) {
628
+ case 0:
629
+ resourcePath = getResourcePath(type, md5Url);
630
+ extensions = type === 'image' ? imageExtensions : videoExtensions; // 已有背景文件,直接使用
631
+ cachedFiles = getSpecificFiles(resourcePath, extensions);
632
+ if (!(cachedFiles.length > 0)) {
633
+ _context9.next = 5;
634
+ break;
635
+ }
636
+ return _context9.abrupt("return", cachedFiles);
637
+ case 5:
638
+ // 已有 zip
639
+ zipFileName = "".concat(md5Url, ".zip");
640
+ zipCacheDir = getZipCachePath(type);
641
+ zipFiles = getSpecificFiles(zipCacheDir, zipExtensions, zipFileName); // 没有 zip,需要下载
642
+ if (!(zipFiles.length <= 0)) {
643
+ _context9.next = 15;
644
+ break;
645
+ }
646
+ tempZipPath = _path2["default"].resolve("".concat(zipCacheDir, "/").concat(md5Url, ".temp"));
647
+ zipPath = _path2["default"].resolve("".concat(zipCacheDir, "/").concat(zipFileName));
648
+ _context9.next = 13;
649
+ return downloadFile(url, tempZipPath);
650
+ case 13:
651
+ // temp 文件重命名为 zip
652
+ _fs2["default"].renameSync(tempZipPath, zipPath);
653
+ zipFiles = getSpecificFiles(zipCacheDir, zipExtensions, zipFileName);
654
+ case 15:
655
+ if (!(!zipFiles || zipFiles.length <= 0)) {
656
+ _context9.next = 17;
657
+ break;
658
+ }
659
+ return _context9.abrupt("return", []);
660
+ case 17:
661
+ _context9.next = 19;
662
+ return unZipAndSaveFile(zipFiles[0], resourcePath, type);
663
+ case 19:
664
+ return _context9.abrupt("return", _context9.sent);
665
+ case 20:
666
+ case "end":
667
+ return _context9.stop();
668
+ }
669
+ }, _callee9);
670
+ }));
671
+ return function getVirtualBgResource(_x12, _x13, _x14) {
672
+ return _ref11.apply(this, arguments);
673
+ };
674
+ }();
675
+
676
+ // UI 层拿到 file path 需要转为 base64
677
+ var fileToBase64 = exports.fileToBase64 = function fileToBase64(file, type) {
678
+ var data = _fs2["default"].readFileSync(file, {
679
+ encoding: 'base64'
680
+ });
681
+ if (type === 'video') {
682
+ return "data:video/mp4;base64,".concat(data);
683
+ } else {
684
+ return "data:image/jpeg;base64,".concat(data);
685
+ }
686
+ };
687
+ var releaseSubAllWindowRefs = exports.releaseSubAllWindowRefs = function releaseSubAllWindowRefs() {
688
+ _electron.ipcRenderer.send('closeAllSubWindows');
689
+ rendererWindows = {};
690
+ rendererWindowMutationObservers = {};
691
+ };
692
+ var getMediaSourceIdList = exports.getMediaSourceIdList = function getMediaSourceIdList() {
693
+ return _remote.BrowserWindow.getAllWindows().map(function (window) {
694
+ return {
695
+ title: window.title,
696
+ mediaSourceId: window.getMediaSourceId()
697
+ };
698
+ });
699
+ };
700
+ var setInMeetingState = exports.setInMeetingState = function setInMeetingState(state) {
701
+ _electron.ipcRenderer.send('set-in-meeting-state', state);
702
+ };