fcr-ui-scene 3.7.5 → 3.7.7

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 (401) hide show
  1. package/installer/icons/icon.png +0 -0
  2. package/installer/mac/entitlements.mac.plist +1 -5
  3. package/lib/creator/index.js +15 -7
  4. package/lib/creator/provider-initializer.browser.js +13 -4
  5. package/lib/creator/provider-initializer.electron.js +22 -10
  6. package/lib/creator.d.ts +36 -0
  7. package/lib/creator.js +465 -0
  8. package/lib/electron/bootstrap-sdk.js +90 -6
  9. package/lib/electron/injections.d.ts +1 -0
  10. package/lib/electron/injections.js +5 -1
  11. package/lib/electron/ipc/type.d.ts +1 -0
  12. package/lib/electron/ipc/type.js +1 -0
  13. package/lib/electron/preload.js +1 -0
  14. package/lib/electron/sdk-helper.d.ts +3 -0
  15. package/lib/electron/sdk-helper.js +53 -19
  16. package/lib/electron/struct.d.ts +7 -1
  17. package/lib/electron/struct.js +8 -1
  18. package/lib/electron/until.d.ts +7 -1
  19. package/lib/electron/until.js +11 -2
  20. package/lib/fragments/annotation/store.js +2 -0
  21. package/lib/modules/action-bar/components/item/index.js +1 -0
  22. package/lib/modules/action-bar/components/more/poppover-content.js +1 -1
  23. package/lib/modules/action-bar/components/screen-share/index.browser.js +4 -2
  24. package/lib/modules/action-bar/components/screen-share/index.electron.js +4 -2
  25. package/lib/modules/action-bar/components/screen-share/submenu.d.ts +5 -1
  26. package/lib/modules/action-bar/components/screen-share/submenu.js +12 -9
  27. package/lib/modules/action-bar/index.d.ts +55 -14
  28. package/lib/modules/action-bar/index.dev.js +94 -0
  29. package/lib/modules/action-bar/index.js +78 -32
  30. package/lib/modules/action-bar/store.d.ts +259 -0
  31. package/lib/modules/action-bar/store.js +1529 -0
  32. package/lib/modules/action-bar/types.d.ts +90 -0
  33. package/lib/modules/action-bar/types.js +6 -0
  34. package/lib/modules/action-bar/view.d.ts +1 -1
  35. package/lib/modules/action-bar/view.js +2 -2
  36. package/lib/modules/annotation/annotation-index.d.ts +2 -0
  37. package/lib/modules/annotation/annotation-index.js +80 -0
  38. package/lib/modules/annotation/annotation-toolbar-store.d.ts +75 -0
  39. package/lib/modules/annotation/annotation-toolbar-store.js +459 -0
  40. package/lib/modules/annotation/board-cursor.css +77 -0
  41. package/lib/modules/annotation/components/color-picker/components/color.d.ts +5 -0
  42. package/lib/modules/annotation/components/color-picker/components/color.js +38 -0
  43. package/lib/modules/annotation/components/color-picker/components/panel.d.ts +1 -0
  44. package/lib/modules/annotation/components/color-picker/components/panel.js +109 -0
  45. package/lib/modules/annotation/components/color-picker/components/picker.d.ts +1 -0
  46. package/lib/modules/annotation/components/color-picker/components/picker.js +75 -0
  47. package/lib/modules/annotation/components/color-picker/index.d.ts +2 -0
  48. package/lib/modules/annotation/components/color-picker/index.js +47 -0
  49. package/lib/modules/annotation/components/eraser-picker.d.ts +4 -0
  50. package/lib/modules/annotation/components/eraser-picker.js +144 -0
  51. package/lib/modules/annotation/components/expansion/index.d.ts +1 -0
  52. package/lib/modules/annotation/components/expansion/index.js +100 -0
  53. package/lib/modules/annotation/components/extra-tool-picker.d.ts +1 -0
  54. package/lib/modules/annotation/components/extra-tool-picker.js +62 -0
  55. package/lib/modules/annotation/components/history.d.ts +2 -0
  56. package/lib/modules/annotation/components/history.js +78 -0
  57. package/lib/modules/annotation/components/icons/fold-icon.d.ts +2 -0
  58. package/lib/modules/annotation/components/icons/fold-icon.js +41 -0
  59. package/lib/modules/annotation/components/icons/move-icon.d.ts +1 -0
  60. package/lib/modules/annotation/components/icons/move-icon.js +66 -0
  61. package/lib/modules/annotation/components/item/index.d.ts +1 -0
  62. package/lib/modules/annotation/components/item/index.js +43 -0
  63. package/lib/modules/annotation/components/move-handle.d.ts +5 -0
  64. package/lib/modules/annotation/components/move-handle.js +134 -0
  65. package/lib/modules/annotation/components/pen-picker.d.ts +4 -0
  66. package/lib/modules/annotation/components/pen-picker.js +155 -0
  67. package/lib/modules/annotation/components/screen-capture-picker.d.ts +4 -0
  68. package/lib/modules/annotation/components/screen-capture-picker.js +85 -0
  69. package/lib/modules/annotation/components/shape-picker.d.ts +4 -0
  70. package/lib/modules/annotation/components/shape-picker.js +210 -0
  71. package/lib/modules/annotation/hooks/index.d.ts +14 -0
  72. package/lib/modules/annotation/hooks/index.js +292 -0
  73. package/lib/modules/annotation/index.d.ts +45 -0
  74. package/lib/modules/annotation/index.js +168 -0
  75. package/lib/modules/annotation/store.d.ts +98 -0
  76. package/lib/modules/annotation/store.js +620 -0
  77. package/lib/modules/annotation/style.css +36 -0
  78. package/lib/modules/annotation/view.d.ts +3 -0
  79. package/lib/modules/annotation/view.js +44 -0
  80. package/lib/modules/audio-stream/index.js +4 -2
  81. package/lib/modules/chat/index.css +8 -0
  82. package/lib/modules/chat/view.js +7 -1
  83. package/lib/modules/components/control-bar/components/switch-theme/index.css +2 -0
  84. package/lib/modules/components/control-bar/components/switch-theme/index.js +5 -7
  85. package/lib/modules/components/control-bar/index.css +0 -2
  86. package/lib/modules/components/control-bar/index.d.ts +1 -0
  87. package/lib/modules/components/control-bar/index.js +51 -15
  88. package/lib/modules/components/device-control/store.d.ts +42 -0
  89. package/lib/modules/components/device-control/store.js +241 -0
  90. package/lib/modules/components/leave-meeting/main-scene/store.d.ts +3 -0
  91. package/lib/modules/components/leave-meeting/main-scene/store.js +12 -0
  92. package/lib/modules/components/leave-meeting/store.base.d.ts +4 -3
  93. package/lib/modules/components/leave-meeting/store.base.js +0 -10
  94. package/lib/modules/components/leave-meeting/store.d.ts +39 -0
  95. package/lib/modules/components/leave-meeting/store.js +270 -0
  96. package/lib/modules/components/leave-meeting/waiting-scene/store.d.ts +5 -1
  97. package/lib/modules/components/leave-meeting/waiting-scene/store.js +17 -3
  98. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +1 -2
  99. package/lib/modules/components/member-window/components/video-player/components/local-video-player-with-zoom.js +4 -3
  100. package/lib/modules/components/member-window/components/video-player/components/zoomable-container.js +18 -32
  101. package/lib/modules/components/toolbar/components/capture-tool/index.d.ts +0 -1
  102. package/lib/modules/components/toolbar/components/capture-tool/index.js +1 -2
  103. package/lib/modules/components/toolbar/components/vertical-frame/index.js +2 -2
  104. package/lib/modules/components/toolbar/hooks/use-resize-visible.js +45 -32
  105. package/lib/modules/components/toolbar/index.js +6 -24
  106. package/lib/modules/control-bar/components/annotation-button/index.d.ts +1 -0
  107. package/lib/modules/control-bar/components/annotation-button/index.js +72 -0
  108. package/lib/modules/control-bar/components/boundary-detector.d.ts +7 -5
  109. package/lib/modules/control-bar/components/boundary-detector.js +22 -2
  110. package/lib/modules/control-bar/components/cloud-recording-buttons.d.ts +3 -0
  111. package/lib/modules/control-bar/components/cloud-recording-buttons.js +68 -3
  112. package/lib/modules/control-bar/hooks.js +2 -1
  113. package/lib/modules/control-bar/store.d.ts +1 -0
  114. package/lib/modules/control-bar/store.js +21 -7
  115. package/lib/modules/control-bar/types.d.ts +5 -16
  116. package/lib/modules/control-bar/view.js +96 -28
  117. package/lib/modules/dialog/components/confirm/index.js +6 -24
  118. package/lib/modules/dialog/components/dialog-container/component/body.d.ts +1 -0
  119. package/lib/modules/dialog/components/dialog-container/component/body.js +3 -2
  120. package/lib/modules/dialog/components/dialog-container/index.css +8 -1
  121. package/lib/modules/dialog/components/dialog-container/index.d.ts +1 -0
  122. package/lib/modules/dialog/components/dialog-container/index.js +4 -1
  123. package/lib/modules/dialog/components/normal-window/index.d.ts +1 -0
  124. package/lib/modules/dialog/components/normal-window/index.js +3 -1
  125. package/lib/modules/dialog/dialogs/chat/index.js +2 -1
  126. package/lib/modules/dialog/dialogs/control-bar-leave-meeting/index.js +0 -1
  127. package/lib/modules/dialog/dialogs/device-setting/index.d.ts +1 -0
  128. package/lib/modules/dialog/dialogs/device-setting/index.js +4 -2
  129. package/lib/modules/dialog/dialogs/end-meeting/index.d.ts +1 -0
  130. package/lib/modules/dialog/dialogs/end-meeting/index.js +2 -1
  131. package/lib/modules/dialog/dialogs/invite/index.d.ts +1 -0
  132. package/lib/modules/dialog/dialogs/invite/index.js +2 -1
  133. package/lib/modules/dialog/dialogs/mute-all/index.d.ts +1 -0
  134. package/lib/modules/dialog/dialogs/mute-all/index.js +2 -1
  135. package/lib/modules/dialog/dialogs/participant/index.js +9 -2
  136. package/lib/modules/dialog/dialogs/pre-setting/index.d.ts +3 -3
  137. package/lib/modules/dialog/dialogs/pre-setting/index.js +25 -20
  138. package/lib/modules/dialog/dialogs/share-screen-selection/index.js +1 -1
  139. package/lib/modules/dialog/dialogs/sub-window/index.js +1 -7
  140. package/lib/modules/dialog/dialogs/toast/index.d.ts +1 -1
  141. package/lib/modules/dialog/dialogs/toast/index.js +1 -1
  142. package/lib/modules/dialog/dialogs/video-window/index.d.ts +4 -1
  143. package/lib/modules/dialog/dialogs/video-window/index.js +5 -2
  144. package/lib/modules/dialog/dialogs/widget/electron.d.ts +6 -0
  145. package/lib/modules/dialog/dialogs/widget/electron.js +38 -0
  146. package/lib/modules/dialog/dialogs/widget/index.d.ts +2 -0
  147. package/lib/modules/dialog/dialogs/widget/index.js +11 -3
  148. package/lib/modules/dialog/hooks/use-popover-watcher.js +1 -3
  149. package/lib/modules/dialog/hooks/useElectron.d.ts +28 -0
  150. package/lib/modules/dialog/hooks/useElectron.js +277 -0
  151. package/lib/modules/dialog/index.css +6 -2
  152. package/lib/modules/dialog/level-config.d.ts +1 -0
  153. package/lib/modules/dialog/level-config.js +2 -1
  154. package/lib/modules/dialog/store.base.d.ts +2 -0
  155. package/lib/modules/dialog/store.browser.d.ts +2 -0
  156. package/lib/modules/dialog/store.browser.js +6 -1
  157. package/lib/modules/dialog/store.d.ts +135 -0
  158. package/lib/modules/dialog/store.electron.d.ts +9 -1
  159. package/lib/modules/dialog/store.electron.js +64 -4
  160. package/lib/modules/dialog/store.js +616 -0
  161. package/lib/modules/dialog/type.d.ts +3 -0
  162. package/lib/modules/event-confirm/components/window/index.d.ts +7 -0
  163. package/lib/modules/event-confirm/components/window/index.js +221 -0
  164. package/lib/modules/event-confirm/index.css +24 -0
  165. package/lib/modules/event-confirm/index.d.ts +27 -0
  166. package/lib/modules/event-confirm/index.js +76 -0
  167. package/lib/modules/event-confirm/store.d.ts +50 -0
  168. package/lib/modules/event-confirm/store.js +394 -0
  169. package/lib/modules/event-confirm/view.d.ts +2 -0
  170. package/lib/modules/event-confirm/view.js +55 -0
  171. package/lib/modules/event-toast/index.css +0 -1
  172. package/lib/modules/event-toast/index.js +1 -0
  173. package/lib/modules/event-toast/store.base.d.ts +2 -0
  174. package/lib/modules/event-toast/store.base.js +40 -21
  175. package/lib/modules/event-toast/store.d.ts +9 -5
  176. package/lib/modules/event-toast/store.electron.d.ts +2 -0
  177. package/lib/modules/event-toast/store.electron.js +19 -9
  178. package/lib/modules/event-toast/store.js +57 -39
  179. package/lib/modules/layout/components/CommonVideoRenderer.js +1 -0
  180. package/lib/modules/layout/store.d.ts +176 -0
  181. package/lib/modules/layout/store.electron.js +1 -1
  182. package/lib/modules/layout/store.js +1452 -0
  183. package/lib/modules/participant/components/confirm-input/index.js +1 -1
  184. package/lib/modules/participant/store.base.d.ts +30 -3
  185. package/lib/modules/participant/store.base.js +249 -96
  186. package/lib/modules/participant/store.browser.js +4 -3
  187. package/lib/modules/participant/store.d.ts +222 -0
  188. package/lib/modules/participant/store.electron.js +5 -3
  189. package/lib/modules/participant/store.js +1929 -0
  190. package/lib/modules/pc-audio-connect/index.d.ts +22 -0
  191. package/lib/modules/pc-audio-connect/index.js +67 -0
  192. package/lib/modules/pc-audio-connect/main-scene/store.js +1 -0
  193. package/lib/modules/pc-audio-connect/store.d.ts +46 -0
  194. package/lib/modules/pc-audio-connect/store.js +304 -0
  195. package/lib/modules/secondary-window/store.d.ts +1 -1
  196. package/lib/modules/secondary-window/store.js +14 -22
  197. package/lib/modules/secondary-window/view.js +10 -10
  198. package/lib/modules/setting/audio-settings/audio-settings.js +0 -17
  199. package/lib/modules/setting/dialog-wrapper.d.ts +2 -0
  200. package/lib/modules/setting/dialog-wrapper.js +110 -0
  201. package/lib/modules/setting/index.js +1 -1
  202. package/lib/modules/setting/state/index.js +1 -1
  203. package/lib/modules/setting/store.base.d.ts +5 -2
  204. package/lib/modules/setting/store.base.js +72 -26
  205. package/lib/modules/setting/store.d.ts +261 -0
  206. package/lib/modules/setting/store.js +1321 -0
  207. package/lib/modules/share-screen/components/selection/index.css +4 -0
  208. package/lib/modules/share-screen/store.base.js +17 -4
  209. package/lib/modules/share-screen/store.d.ts +148 -0
  210. package/lib/modules/share-screen/store.electron.js +5 -2
  211. package/lib/modules/share-screen/store.js +960 -0
  212. package/lib/modules/share-screen/types.d.ts +26 -0
  213. package/lib/modules/share-screen/types.js +6 -0
  214. package/lib/modules/state-bar/layout-config.js +6 -0
  215. package/lib/modules/state-bar/main-scene/store.base.d.ts +2 -0
  216. package/lib/modules/state-bar/main-scene/store.base.js +6 -0
  217. package/lib/modules/state-bar/store.d.ts +124 -0
  218. package/lib/modules/state-bar/store.js +664 -0
  219. package/lib/modules/video-window/index.css +6 -0
  220. package/lib/modules/video-window/popover-watcher.d.ts +5 -10
  221. package/lib/modules/video-window/popover-watcher.js +34 -31
  222. package/lib/modules/video-window/store.d.ts +32 -5
  223. package/lib/modules/video-window/store.js +156 -63
  224. package/lib/modules/video-window/view.js +50 -1
  225. package/lib/modules/whiteboard/components/progress/electron.d.ts +1 -0
  226. package/lib/modules/whiteboard/components/progress/electron.js +33 -0
  227. package/lib/modules/whiteboard/index.d.ts +1 -1
  228. package/lib/modules/whiteboard/index.js +1 -1
  229. package/lib/modules/whiteboard/store.d.ts +3 -0
  230. package/lib/modules/whiteboard/store.js +31 -2
  231. package/lib/modules/whiteboard/view.js +10 -1
  232. package/lib/modules/widget/sdk.js +1 -1
  233. package/lib/modules/widget/store.base.d.ts +1 -0
  234. package/lib/modules/widget/store.browser.d.ts +1 -0
  235. package/lib/modules/widget/store.browser.js +60 -4
  236. package/lib/modules/widget/store.d.ts +5 -8
  237. package/lib/modules/widget/store.electron.d.ts +1 -0
  238. package/lib/modules/widget/store.electron.js +59 -2
  239. package/lib/modules/widget/store.js +4 -47
  240. package/lib/modules/widget/type.d.ts +3 -2
  241. package/lib/modules/widget/view.js +9 -4
  242. package/lib/modules/widget/web-widget.d.ts +2 -1
  243. package/lib/modules/widget/web-widget.js +7 -5
  244. package/lib/object-manager.d.ts +2 -2
  245. package/lib/object-manager.js +1 -1
  246. package/lib/providers/annotation-provider.d.ts +124 -0
  247. package/lib/providers/annotation-provider.js +369 -0
  248. package/lib/providers/board-share/bar-control/base.d.ts +1 -1
  249. package/lib/providers/board-share/bar-control/base.js +37 -28
  250. package/lib/providers/board-share/bar-control/electron.d.ts +1 -1
  251. package/lib/providers/board-share/bar-control/electron.js +19 -16
  252. package/lib/providers/board-share/provider.base.d.ts +8 -1
  253. package/lib/providers/board-share/provider.base.js +12 -2
  254. package/lib/providers/board-share/provider.browser.d.ts +3 -0
  255. package/lib/providers/board-share/provider.browser.js +21 -3
  256. package/lib/providers/device-provider.d.ts +16 -2
  257. package/lib/providers/device-provider.js +53 -60
  258. package/lib/providers/dialog/provider.base.d.ts +1 -0
  259. package/lib/providers/dialog/provider.browser.d.ts +1 -0
  260. package/lib/providers/dialog/provider.browser.js +7 -2
  261. package/lib/providers/dialog/provider.electron.d.ts +4 -1
  262. package/lib/providers/dialog/provider.electron.js +94 -2
  263. package/lib/providers/dialog/type.d.ts +7 -0
  264. package/lib/providers/dialog-provider.d.ts +137 -0
  265. package/lib/providers/dialog-provider.js +194 -0
  266. package/lib/providers/message-provider.d.ts +69 -0
  267. package/lib/providers/message-provider.js +140 -0
  268. package/lib/providers/mouse-detect/provider.d.ts +9 -1
  269. package/lib/providers/mouse-detect/provider.js +119 -5
  270. package/lib/providers/mouse-detect/struct.d.ts +2 -1
  271. package/lib/providers/mouse-detect/struct.js +1 -0
  272. package/lib/providers/mouse-detect/type.d.ts +2 -0
  273. package/lib/providers/multi-display-provider.d.ts +3 -5
  274. package/lib/providers/multi-display-provider.js +0 -9
  275. package/lib/providers/renderer-provider.d.ts +5 -0
  276. package/lib/providers/renderer-provider.js +5 -0
  277. package/lib/providers/room-provider/room-provider.d.ts +4 -14
  278. package/lib/providers/room-provider/room-provider.js +28 -39
  279. package/lib/providers/room-provider.d.ts +194 -0
  280. package/lib/providers/room-provider.js +916 -0
  281. package/lib/providers/screen-share/provider.base.js +3 -11
  282. package/lib/providers/screen-share/provider.browser.js +23 -14
  283. package/lib/providers/screen-share/provider.electron.d.ts +1 -0
  284. package/lib/providers/screen-share/provider.electron.js +44 -17
  285. package/lib/providers/screen-share/strategy/browser.js +16 -13
  286. package/lib/providers/screen-share/strategy/electron.d.ts +2 -2
  287. package/lib/providers/screen-share/strategy/electron.js +15 -10
  288. package/lib/providers/screen-share/strategy/type.d.ts +6 -0
  289. package/lib/providers/screen-share/stream-state-sync.d.ts +3 -2
  290. package/lib/providers/screen-share/stream-state-sync.js +26 -16
  291. package/lib/providers/screen-share/struct.d.ts +9 -7
  292. package/lib/providers/screen-share/struct.js +11 -8
  293. package/lib/providers/screen-share/type.d.ts +7 -1
  294. package/lib/providers/screen-share-provider.d.ts +245 -0
  295. package/lib/providers/screen-share-provider.js +850 -0
  296. package/lib/providers/sharing-provider.d.ts +42 -0
  297. package/lib/providers/sharing-provider.js +228 -0
  298. package/lib/providers/user-setting-storage-provider.d.ts +21 -0
  299. package/lib/providers/user-setting-storage-provider.js +65 -0
  300. package/lib/providers/whiteboard-provider.d.ts +2 -4
  301. package/lib/providers/whiteboard-provider.js +4 -7
  302. package/lib/providers/widget-provider.d.ts +5 -3
  303. package/lib/providers/widget-provider.js +12 -18
  304. package/lib/providers/window/main-window.d.ts +0 -5
  305. package/lib/providers/window/main-window.js +3 -44
  306. package/lib/providers/window/renderer-window.d.ts +1 -0
  307. package/lib/providers/window/renderer-window.js +13 -2
  308. package/lib/runtime.d.ts +1 -0
  309. package/lib/runtime.js +2 -1
  310. package/lib/scenes/main-scene.js +5 -0
  311. package/lib/shared-context/board-context.d.ts +2 -0
  312. package/lib/shared-context/board-context.js +2 -0
  313. package/lib/shared-data/member-data.d.ts +0 -8
  314. package/lib/shared-data/member-data.js +26 -78
  315. package/lib/shared-data/widget-data.d.ts +13 -0
  316. package/lib/shared-data/widget-data.js +50 -0
  317. package/lib/shared-data-source/annotation-data.d.ts +17 -0
  318. package/lib/{modules/action-bar/store.base.js → shared-data-source/annotation-data.js} +34 -41
  319. package/lib/shared-data-source/app-list-data.d.ts +34 -0
  320. package/lib/shared-data-source/app-list-data.js +133 -0
  321. package/lib/shared-data-source/chat-data.d.ts +25 -0
  322. package/lib/shared-data-source/chat-data.js +139 -0
  323. package/lib/shared-data-source/config.d.ts +35 -0
  324. package/lib/shared-data-source/config.js +40 -0
  325. package/lib/shared-data-source/confirm-data.d.ts +44 -0
  326. package/lib/shared-data-source/confirm-data.js +201 -0
  327. package/lib/shared-data-source/device-privilege-data.d.ts +8 -0
  328. package/lib/shared-data-source/device-privilege-data.js +25 -0
  329. package/lib/shared-data-source/interpreter.d.ts +77 -0
  330. package/lib/shared-data-source/interpreter.js +247 -0
  331. package/lib/shared-data-source/layout-data.d.ts +31 -0
  332. package/lib/shared-data-source/layout-data.js +189 -0
  333. package/lib/shared-data-source/meeting-time.d.ts +90 -0
  334. package/lib/shared-data-source/meeting-time.js +416 -0
  335. package/lib/shared-data-source/member-data.d.ts +139 -0
  336. package/lib/shared-data-source/member-data.js +517 -0
  337. package/lib/shared-data-source/pin-data.d.ts +13 -0
  338. package/lib/{modules/action-bar/waiting-scene/store.js → shared-data-source/pin-data.js} +55 -35
  339. package/lib/shared-data-source/screen-share-data.d.ts +357 -0
  340. package/lib/shared-data-source/screen-share-data.js +513 -0
  341. package/lib/shared-data-source/security-data.d.ts +39 -0
  342. package/lib/shared-data-source/security-data.js +156 -0
  343. package/lib/shared-data-source/setting.d.ts +67 -0
  344. package/lib/shared-data-source/setting.js +220 -0
  345. package/lib/shared-data-source/speaker-spotlight.d.ts +5 -0
  346. package/lib/shared-data-source/speaker-spotlight.js +15 -0
  347. package/lib/shared-data-source/video-window.d.ts +165 -0
  348. package/lib/shared-data-source/video-window.js +1266 -0
  349. package/lib/shared-data-source/waiting-room.d.ts +46 -0
  350. package/lib/shared-data-source/waiting-room.js +222 -0
  351. package/lib/{shared-data → shared-data-source}/whiteboard-data.d.ts +2 -2
  352. package/lib/{shared-data → shared-data-source}/whiteboard-data.js +23 -17
  353. package/lib/translations/enUS.d.ts +0 -2
  354. package/lib/translations/enUS.js +4 -6
  355. package/lib/translations/zhCN.d.ts +0 -2
  356. package/lib/translations/zhCN.js +4 -6
  357. package/lib/type.d.ts +5 -0
  358. package/lib/ui-scene.d.ts +2 -4
  359. package/lib/ui-scene.js +31 -42
  360. package/lib/utilities/board-context.d.ts +4 -0
  361. package/lib/utilities/board-context.js +12 -0
  362. package/lib/utilities/constant.d.ts +3 -1
  363. package/lib/utilities/constant.js +5 -2
  364. package/lib/utilities/copyText.d.ts +2 -0
  365. package/lib/utilities/copyText.js +48 -0
  366. package/lib/utilities/default-config.d.ts +18 -0
  367. package/lib/utilities/default-config.js +19 -1
  368. package/lib/utilities/focus-helper.js +10 -3
  369. package/lib/utilities/logger.js +3 -1
  370. package/lib/utilities/renderer-event.d.ts +10 -0
  371. package/lib/utilities/renderer-event.js +95 -0
  372. package/lib/utilities/renderer.d.ts +1 -0
  373. package/lib/utilities/renderer.js +7 -1
  374. package/lib/utilities/screen-capture-permission.d.ts +2 -0
  375. package/lib/utilities/screen-capture-permission.js +24 -0
  376. package/lib/utilities/screen.d.ts +3 -0
  377. package/lib/utilities/screen.js +53 -0
  378. package/lib/utilities/video-track-render-context.d.ts +6 -0
  379. package/lib/utilities/video-track-render-context.js +9 -0
  380. package/lib/waiting-room-control-manager.d.ts +28 -0
  381. package/lib/waiting-room-control-manager.js +230 -0
  382. package/package.json +5 -5
  383. package/public/index.html +35 -4
  384. package/lib/modules/action-bar/store.base.d.ts +0 -15
  385. package/lib/modules/action-bar/waiting-scene/store.d.ts +0 -6
  386. package/lib/providers/board-share/bar-control.d.ts +0 -51
  387. package/lib/providers/board-share/bar-control.js +0 -390
  388. package/lib/providers/board-share/provider.d.ts +0 -66
  389. package/lib/providers/board-share/provider.js +0 -456
  390. package/lib/providers/screen-share/provider.d.ts +0 -69
  391. package/lib/providers/screen-share/provider.js +0 -615
  392. package/lib/providers/window/browser-window-proxy.js +0 -1
  393. package/lib/providers/window/ipc-protocol.d.ts +0 -0
  394. package/lib/providers/window/ipc-protocol.js +0 -1
  395. package/lib/providers/window/main-process-handler.d.ts +0 -0
  396. package/lib/providers/window/main-process-handler.js +0 -1
  397. package/lib/providers/window/main-process-integration.d.ts +0 -0
  398. package/lib/providers/window/main-process-integration.js +0 -1
  399. package/lib/utilities/ipc-protocol.d.ts +0 -91
  400. package/lib/utilities/ipc-protocol.js +0 -61
  401. /package/lib/{providers/window/browser-window-proxy.d.ts → modules/action-bar/index.dev.d.ts} +0 -0
package/lib/creator.js ADDED
@@ -0,0 +1,465 @@
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.array.for-each.js");
7
+ require("core-js/modules/es.array.is-array.js");
8
+ require("core-js/modules/es.array.push.js");
9
+ require("core-js/modules/es.date.to-primitive.js");
10
+ require("core-js/modules/es.function.bind.js");
11
+ require("core-js/modules/es.function.name.js");
12
+ require("core-js/modules/es.number.constructor.js");
13
+ require("core-js/modules/es.object.create.js");
14
+ require("core-js/modules/es.object.define-properties.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/es.object.get-own-property-descriptors.js");
18
+ require("core-js/modules/esnext.function.metadata.js");
19
+ require("core-js/modules/esnext.iterator.for-each.js");
20
+ require("core-js/modules/esnext.symbol.metadata.js");
21
+ require("core-js/modules/web.dom-collections.for-each.js");
22
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
23
+ var _typeof = require("@babel/runtime/helpers/typeof");
24
+ Object.defineProperty(exports, "__esModule", {
25
+ value: true
26
+ });
27
+ exports.FcrUISceneCreator = void 0;
28
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
29
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
30
+ require("core-js/modules/es.error.cause.js");
31
+ require("core-js/modules/es.error.to-string.js");
32
+ require("core-js/modules/es.array.filter.js");
33
+ require("core-js/modules/es.array.find.js");
34
+ require("core-js/modules/es.array.iterator.js");
35
+ require("core-js/modules/es.array.map.js");
36
+ require("core-js/modules/es.date.to-json.js");
37
+ require("core-js/modules/es.json.stringify.js");
38
+ require("core-js/modules/es.map.js");
39
+ require("core-js/modules/es.object.keys.js");
40
+ require("core-js/modules/es.object.to-string.js");
41
+ require("core-js/modules/es.string.iterator.js");
42
+ require("core-js/modules/es.weak-map.js");
43
+ require("core-js/modules/esnext.iterator.constructor.js");
44
+ require("core-js/modules/esnext.iterator.filter.js");
45
+ require("core-js/modules/esnext.iterator.find.js");
46
+ require("core-js/modules/esnext.iterator.map.js");
47
+ require("core-js/modules/esnext.json.parse.js");
48
+ require("core-js/modules/esnext.map.delete-all.js");
49
+ require("core-js/modules/esnext.map.emplace.js");
50
+ require("core-js/modules/esnext.map.every.js");
51
+ require("core-js/modules/esnext.map.filter.js");
52
+ require("core-js/modules/esnext.map.find.js");
53
+ require("core-js/modules/esnext.map.find-key.js");
54
+ require("core-js/modules/esnext.map.includes.js");
55
+ require("core-js/modules/esnext.map.key-of.js");
56
+ require("core-js/modules/esnext.map.map-keys.js");
57
+ require("core-js/modules/esnext.map.map-values.js");
58
+ require("core-js/modules/esnext.map.merge.js");
59
+ require("core-js/modules/esnext.map.reduce.js");
60
+ require("core-js/modules/esnext.map.some.js");
61
+ require("core-js/modules/esnext.map.update.js");
62
+ require("core-js/modules/esnext.weak-map.delete-all.js");
63
+ require("core-js/modules/esnext.weak-map.emplace.js");
64
+ require("core-js/modules/web.dom-collections.iterator.js");
65
+ require("core-js/modules/web.timers.js");
66
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
67
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
68
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
69
+ var _uiScene = require("./ui-scene");
70
+ var _validateParams = _interopRequireDefault(require("./utilities/validate-params"));
71
+ var _schema = require("./schema");
72
+ var _decorator = require("agora-foundation/lib/decorator");
73
+ var _mobx = require("mobx");
74
+ var _store = _interopRequireDefault(require("./modules/setting/store"));
75
+ var _reactDom = _interopRequireDefault(require("react-dom"));
76
+ var _view = require("./modules/setting/view");
77
+ var _deviceProvider = require("./providers/device-provider");
78
+ var _fcrCore = require("fcr-core");
79
+ var _dialogProvider = require("./providers/dialog-provider");
80
+ var _eventProvider = require("./providers/event-provider");
81
+ var _messageProvider = require("./providers/message-provider");
82
+ var _monitorProvider = require("./providers/monitor-provider");
83
+ var _config2 = require("./shared-data-source/config");
84
+ var _setting = require("./shared-data-source/setting");
85
+ var _parameters = require("./utilities/parameters");
86
+ var _defaultConfig = require("./utilities/default-config");
87
+ var _imports = require("fcr-core/lib/imports");
88
+ var _localStorageProvider = require("./providers/local-storage-provider");
89
+ var _logger = require("./utilities/logger");
90
+ var _uiResources = require("./utilities/ui-resources");
91
+ var _userSettingStorageProvider = require("./providers/user-setting-storage-provider");
92
+ var _layoutData = require("./shared-data-source/layout-data");
93
+ var _packageInfo = require("./utilities/package-info");
94
+ var _jsxRuntime = require("react/jsx-runtime");
95
+ var _excluded = ["rtc.microphone.keep.recording"];
96
+ var _FcrUISceneCreator;
97
+ var _initProto, _init_observableSettingStore, _launchDecs, _ref;
98
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
99
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
100
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
101
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
102
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
103
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
104
+ 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"); }
105
+ 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)]; } }; }
106
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
107
+ 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); }
108
+ 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; }
109
+ 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; }
110
+ var _A = /*#__PURE__*/new WeakMap();
111
+ _ref = (_launchDecs = [_decorator.trace, (0, _validateParams["default"])(_schema.fcrUISceneConfigSchema, _schema.fcrUISceneCallbackSchema, _schema.fcrUISceneCallbackSchema, _schema.fcrUISceneFailureCallbackSchema, _schema.fcrRenderViewSchema)], "_engine");
112
+ var FcrUISceneCreator = exports.FcrUISceneCreator = /*#__PURE__*/function () {
113
+ function FcrUISceneCreator(_config) {
114
+ (0, _classCallCheck2["default"])(this, FcrUISceneCreator);
115
+ // @internal
116
+ (0, _defineProperty2["default"])(this, _ref, void _initProto(this));
117
+ _classPrivateFieldInitSpec(this, _A, _init_observableSettingStore(this, {
118
+ value: null
119
+ }));
120
+ (0, _defineProperty2["default"])(this, "logger", (0, _logger.createLogger)({
121
+ prefix: 'FcrUISceneCreator'
122
+ }));
123
+ (0, _defineProperty2["default"])(this, "_registeredWidgetConfigs", new Map([]));
124
+ (0, _defineProperty2["default"])(this, "_released", false);
125
+ (0, _defineProperty2["default"])(this, "_scene", null);
126
+ (0, _defineProperty2["default"])(this, "_microphoneKeepRecording", false);
127
+ (0, _defineProperty2["default"])(this, "_sceneObserver", null);
128
+ this._config = _config;
129
+ this.logger.info("creator config: ".concat(JSON.stringify(_config)));
130
+ this._localStorageProvider = new _localStorageProvider.FcrUILocalStorageProviderImpl();
131
+ this._userSettingStorageProvider = new _userSettingStorageProvider.FcrUIUserSettingStorageProviderImpl();
132
+ this._sharedSettingDataSource = new _setting.FcrUISharedSettingDataSourceImpl(this._config, this._userSettingStorageProvider);
133
+ this._setKeepRecordingValueFromParameters(this._config.parameters || {});
134
+ var filteredParameters = this._filterKeepRecordingValueFromParameters(this._config.parameters || {});
135
+ this.logger.info("[MicrophoneKeepRecording][initSettingStore] filteredParameters ==> ".concat(JSON.stringify(filteredParameters)));
136
+ var dualCameraVideoStreamConfigFromParameters = (0, _parameters.getDualCameraVideoStreamConfig)(filteredParameters);
137
+ var dualScreenVideoStreamConfigFromParameters = (0, _parameters.getDualScreenVideoStreamConfig)(filteredParameters);
138
+ (0, _defaultConfig.mergeDefaultDualStreamConfig)(dualCameraVideoStreamConfigFromParameters, dualScreenVideoStreamConfigFromParameters);
139
+ var dualCameraVideoStreamConfig = {
140
+ lowVideoEncoderConfig: _defaultConfig.cameraVideoLowStreamEncoderConfig,
141
+ highVideoEncoderConfig: _defaultConfig.cameraVideoHighStreamEncoderConfig,
142
+ enableDualStreamMode: (0, _defaultConfig.isCameraDualStreamModeEnabled)()
143
+ };
144
+ var dualScreenVideoStreamConfig = {
145
+ lowVideoEncoderConfig: _defaultConfig.screenCaptureLowStreamEncoderConfig,
146
+ highVideoEncoderConfig: _defaultConfig.screenCaptureHighStreamEncoderConfig,
147
+ enableDualStreamMode: (0, _defaultConfig.isScreenDualStreamModeEnabled)()
148
+ };
149
+ var config = {
150
+ appId: this._config.appId,
151
+ userId: this._config.userId,
152
+ parameters: filteredParameters,
153
+ token: this._config.token,
154
+ region: _fcrCore.FcrRegion.CN,
155
+ dualCameraVideoStreamConfig: dualCameraVideoStreamConfig,
156
+ dualScreenVideoStreamConfig: dualScreenVideoStreamConfig
157
+ };
158
+ this.logger.info("create core engine with config: ".concat((0, _imports.jsonstring)(config)));
159
+ var engine = new _imports.FcrCoreEngine(config);
160
+
161
+ // @ts-ignore
162
+ window.__core_engine = engine;
163
+ this._engine = engine;
164
+ this._initProviders();
165
+ this._createSettingStore();
166
+ }
167
+ return (0, _createClass2["default"])(FcrUISceneCreator, [{
168
+ key: "observableSettingStore",
169
+ get: function get() {
170
+ return _classPrivateFieldGet(_A, this);
171
+ },
172
+ set: function set(v) {
173
+ _classPrivateFieldSet(_A, this, v);
174
+ }
175
+ }, {
176
+ key: "_initProviders",
177
+ value: function _initProviders() {
178
+ this._eventProvider = new _eventProvider.FcrUIEventProviderImpl();
179
+ this._messageProvider = new _messageProvider.FcrUIMessageProviderImpl();
180
+ this._dialogProvider = new _dialogProvider.FcrUIDialogProviderImpl();
181
+ this._deviceProvider = new _deviceProvider.FcrUIDeviceProviderImpl(this._eventProvider, this._engine.getDesktopMediaControl(), this._sharedSettingDataSource);
182
+ this._sharedConfigDataSource = new _config2.FcrUISharedConfigDataSourceImpl({
183
+ creatorConfig: this._config
184
+ });
185
+ this._monitorProvider = new _monitorProvider.FcrUIMonitorProviderImpl(this._engine.getMonitorControl());
186
+ this._sharedLayoutDataSource = new _layoutData.FcrUISharedLayoutDataSourceImpl(this._sharedConfigDataSource);
187
+ var openDefaultCamera = (0, _parameters.isOpenDefaultCamera)(this._config.parameters);
188
+ var openDefaultMicrophone = (0, _parameters.isOpenDefaultMicrophone)(this._config.parameters);
189
+ if (openDefaultCamera) {
190
+ this._sharedSettingDataSource.setMedia({
191
+ cameraExpectedOff: false
192
+ });
193
+ }
194
+ if (openDefaultMicrophone) {
195
+ this._sharedSettingDataSource.setMedia({
196
+ autoConnectAudio: true,
197
+ microphoneExpectedOff: false
198
+ });
199
+ }
200
+ this._deviceProvider.loadUiResources((0, _uiResources.getNormalDownloadResources)(this._config.resource));
201
+ }
202
+ }, {
203
+ key: "launch",
204
+ value: function launch(config, onCancel, onSuccess, onFailure, dom) {
205
+ var _this = this;
206
+ this._precheckState();
207
+ if (this._scene) {
208
+ throw new Error('scene is launched, please exit it before launching a new one.');
209
+ }
210
+
211
+ // changeLanguage(config.language);
212
+
213
+ var scene = new _uiScene.FcrUIDefaultScene({
214
+ config: config,
215
+ creatorConfig: this._config,
216
+ dom: dom,
217
+ registeredWidgetConfigs: this._registeredWidgetConfigs,
218
+ engine: this._engine,
219
+ eventProvider: this._eventProvider,
220
+ monitorProvider: this._monitorProvider,
221
+ deviceProvider: this._deviceProvider,
222
+ messageProvider: this._messageProvider,
223
+ dialogProvider: this._dialogProvider,
224
+ localStorageProvider: this._localStorageProvider,
225
+ sharedConfigDataSource: this._sharedConfigDataSource,
226
+ sharedSettingDataSource: this._sharedSettingDataSource,
227
+ sharedLayoutDataSource: this._sharedLayoutDataSource
228
+ });
229
+ var observer = {
230
+ onLaunchSuccess: function onLaunchSuccess() {
231
+ if (_this._microphoneKeepRecording) {
232
+ var parameters = {
233
+ rtc: [JSON.stringify({
234
+ 'rtc.microphone.keep.recording': true
235
+ })]
236
+ };
237
+ _this.logger.info("[MicrophoneKeepRecording][onLaunchSuccess] parameters ==> ".concat(JSON.stringify(parameters)));
238
+ _this._engine.setParameters(parameters);
239
+ }
240
+ onSuccess.apply(void 0, arguments);
241
+ },
242
+ onLaunchFailure: function onLaunchFailure() {
243
+ onFailure.apply(void 0, arguments);
244
+ _this._resetScene();
245
+ },
246
+ onLaunchCancel: function onLaunchCancel() {
247
+ onCancel.apply(void 0, arguments);
248
+ _this._resetScene();
249
+ },
250
+ onSettingStore: function onSettingStore(store) {
251
+ var _this$observableSetti;
252
+ (_this$observableSetti = _this.observableSettingStore.value) === null || _this$observableSetti === void 0 || _this$observableSetti.release();
253
+ _this.observableSettingStore.value = store;
254
+ _this.closeSetting();
255
+ },
256
+ onExited: function onExited() {
257
+ if (_this._microphoneKeepRecording) {
258
+ var parameters = {
259
+ rtc: [JSON.stringify({
260
+ 'rtc.microphone.keep.recording': false
261
+ })]
262
+ };
263
+ _this.logger.info("[MicrophoneKeepRecording][onExited] parameters ==> ".concat(JSON.stringify(parameters)));
264
+ _this._engine.setParameters(parameters);
265
+ }
266
+ _this.closeSetting();
267
+ _this._releaseProviders();
268
+ _this._initProviders();
269
+ _this._createSettingStore();
270
+ _this._resetScene();
271
+ },
272
+ onOpenSettingDialog: function onOpenSettingDialog() {
273
+ _this.openSetting();
274
+ }
275
+ };
276
+ this._sceneObserver = observer;
277
+ scene.addObserver(this._sceneObserver);
278
+ scene.launch();
279
+ this._scene = scene;
280
+ return scene;
281
+ }
282
+ }, {
283
+ key: "getSettingConfig",
284
+ value: function getSettingConfig() {
285
+ this._precheckState();
286
+ return this._sharedSettingDataSource.settingConfig;
287
+ }
288
+ }, {
289
+ key: "registerWidget",
290
+ value: function registerWidget(config) {
291
+ this._precheckState();
292
+ this._registeredWidgetConfigs.set(config.id, config);
293
+ }
294
+ }, {
295
+ key: "unregisterWidget",
296
+ value: function unregisterWidget(widgetId) {
297
+ this._precheckState();
298
+ this._registeredWidgetConfigs["delete"](widgetId);
299
+ }
300
+ }, {
301
+ key: "renewUserToken",
302
+ value: function renewUserToken(token) {
303
+ this._engine.renewUserToken(token);
304
+ }
305
+ }, {
306
+ key: "setParameters",
307
+ value: function setParameters(parameters) {
308
+ var _this$_engine;
309
+ this._precheckState();
310
+ var filteredParameters = parameters;
311
+ this.logger.info("[MicrophoneKeepRecording][setParameters] parameters has no rtc ==> ".concat(JSON.stringify(parameters)));
312
+ if (parameters.rtc) {
313
+ this._setKeepRecordingValueFromParameters(parameters);
314
+ filteredParameters = this._filterKeepRecordingValueFromParameters(parameters);
315
+ this.logger.info("[MicrophoneKeepRecording][setParameters] rtc filtered ==> ".concat(JSON.stringify(filteredParameters)));
316
+ }
317
+ (_this$_engine = this._engine) === null || _this$_engine === void 0 || _this$_engine.setParameters(filteredParameters);
318
+ this._sharedConfigDataSource.setParameters(parameters);
319
+ }
320
+ }, {
321
+ key: "getVersion",
322
+ value: function getVersion() {
323
+ return (0, _packageInfo.getVersion)();
324
+ }
325
+ }, {
326
+ key: "getDependencyVersions",
327
+ value: function getDependencyVersions() {
328
+ return _objectSpread({
329
+ core: this._engine.getVersion()
330
+ }, this._engine.getDependencyVersions());
331
+ }
332
+ }, {
333
+ key: "openSetting",
334
+ value: function openSetting() {
335
+ var _this$observableSetti2,
336
+ _this2 = this;
337
+ this._precheckState();
338
+ this.closeSetting();
339
+ (_this$observableSetti2 = this.observableSettingStore.value) === null || _this$observableSetti2 === void 0 || _this$observableSetti2.initSettingConfig();
340
+ setTimeout(function () {
341
+ var settingContainer = document.createElement('div');
342
+ settingContainer.setAttribute('id', 'setting-container');
343
+ var body = document.querySelector('body');
344
+ body === null || body === void 0 || body.appendChild(settingContainer);
345
+ // this._renderSettingsViewe()
346
+ var dom = document.querySelector('#setting-container');
347
+ _reactDom["default"].render(/*#__PURE__*/(0, _jsxRuntime.jsx)(_view.SettingsView, {
348
+ onClose: _this2.closeSetting,
349
+ store: _this2.observableSettingStore
350
+ }), dom);
351
+ }, 400);
352
+ }
353
+ }, {
354
+ key: "closeSetting",
355
+ value: function closeSetting() {
356
+ this._precheckState();
357
+ var settingContainer = document.querySelector('#setting-container');
358
+ if (settingContainer) {
359
+ _reactDom["default"].unmountComponentAtNode(settingContainer);
360
+ document.body.removeChild(settingContainer);
361
+ }
362
+ }
363
+ }, {
364
+ key: "_releaseProviders",
365
+ value: function _releaseProviders() {
366
+ this._eventProvider.release();
367
+ this._deviceProvider.release();
368
+ }
369
+ }, {
370
+ key: "release",
371
+ value: function release() {
372
+ var _this$_engine2;
373
+ this._releaseProviders();
374
+ (_this$_engine2 = this._engine) === null || _this$_engine2 === void 0 || _this$_engine2.release();
375
+ this._released = true;
376
+ this._resetScene();
377
+ }
378
+ }, {
379
+ key: "_resetScene",
380
+ value: function _resetScene() {
381
+ if (this._sceneObserver) {
382
+ var _this$_scene;
383
+ (_this$_scene = this._scene) === null || _this$_scene === void 0 || _this$_scene.removeObserver(this._sceneObserver);
384
+ }
385
+ this._scene = null;
386
+ }
387
+ }, {
388
+ key: "_precheckState",
389
+ value: function _precheckState() {
390
+ if (this._released) {
391
+ throw new Error('FcrUISceneCreator has been released.');
392
+ }
393
+ }
394
+ }, {
395
+ key: "_filterKeepRecordingValueFromParameters",
396
+ value: function _filterKeepRecordingValueFromParameters(parameters) {
397
+ if (!(parameters !== null && parameters !== void 0 && parameters.rtc)) return parameters;
398
+ try {
399
+ var rtc = (parameters === null || parameters === void 0 ? void 0 : parameters.rtc).map(function (item) {
400
+ var _JSON$parse = JSON.parse(item),
401
+ _ = _JSON$parse['rtc.microphone.keep.recording'],
402
+ rest = (0, _objectWithoutProperties2["default"])(_JSON$parse, _excluded);
403
+ return Object.keys(rest).length > 0 ? JSON.stringify(rest) : null;
404
+ }).filter(function (item) {
405
+ return item !== null;
406
+ });
407
+ return _objectSpread(_objectSpread({}, parameters), {}, {
408
+ rtc: rtc
409
+ });
410
+ } catch (e) {
411
+ this.logger.error("[MicrophoneKeepRecording][filterKeepRecordingValueFromParameters] error: ".concat(e));
412
+ return parameters;
413
+ }
414
+ }
415
+ }, {
416
+ key: "_setKeepRecordingValueFromParameters",
417
+ value: function _setKeepRecordingValueFromParameters(parameters) {
418
+ if (!(parameters !== null && parameters !== void 0 && parameters.rtc)) return;
419
+ try {
420
+ var rtcs = parameters === null || parameters === void 0 ? void 0 : parameters.rtc;
421
+ var keepRecording = rtcs.find(function (item) {
422
+ return typeof JSON.parse(item)['rtc.microphone.keep.recording'] === 'boolean';
423
+ });
424
+ if (keepRecording) {
425
+ var keepRecordingValue = JSON.parse(keepRecording)['rtc.microphone.keep.recording'];
426
+ this._microphoneKeepRecording = !!keepRecordingValue;
427
+ this.logger.info("[MicrophoneKeepRecording][setParameters] keepRecording value is ==> ".concat(JSON.stringify(parameters)));
428
+ }
429
+ } catch (e) {
430
+ this.logger.error("[MicrophoneKeepRecording][setParameters] error: ".concat(e));
431
+ }
432
+ }
433
+ }, {
434
+ key: "_createSettingStore",
435
+ value: function _createSettingStore() {
436
+ var _this$observableSetti3;
437
+ var eventProvider = this._eventProvider;
438
+ var deviceProvider = this._deviceProvider;
439
+ var dialogProvider = this._dialogProvider;
440
+ var messageProvider = this._messageProvider;
441
+ var sharedConfigDataSource = this._sharedConfigDataSource;
442
+ var sharedSettingDataSource = this._sharedSettingDataSource;
443
+ var monitorProvider = this._monitorProvider;
444
+ var sharedLayoutDataSource = this._sharedLayoutDataSource;
445
+ (_this$observableSetti3 = this.observableSettingStore.value) === null || _this$observableSetti3 === void 0 || _this$observableSetti3.release();
446
+ this.logger.debug('create SettingStore');
447
+ this.observableSettingStore.value = new _store["default"]({
448
+ eventProvider: eventProvider,
449
+ deviceProvider: deviceProvider,
450
+ monitorProvider: monitorProvider,
451
+ sharedConfigDataSource: sharedConfigDataSource,
452
+ messageProvider: messageProvider,
453
+ sharedSettingDataSource: sharedSettingDataSource,
454
+ dialogProvider: dialogProvider,
455
+ sharedLayoutDataSource: sharedLayoutDataSource
456
+ });
457
+ }
458
+ }]);
459
+ }();
460
+ _FcrUISceneCreator = FcrUISceneCreator;
461
+ var _applyDecs$e = _applyDecs(_FcrUISceneCreator, [[_mobx.observable, 1, "observableSettingStore"], [_launchDecs, 2, "launch"], [_decorator.trace, 2, "getSettingConfig"], [_decorator.trace, 2, "registerWidget"], [_decorator.trace, 2, "unregisterWidget"], [_decorator.trace, 2, "renewUserToken"], [_decorator.trace, 2, "setParameters"], [[_decorator.trace, _decorator.bound], 2, "openSetting"], [[_decorator.trace, _decorator.bound], 2, "closeSetting"], [_decorator.trace, 2, "release"], [_decorator.bound, 2, "_resetScene"]], []).e;
462
+ var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 2);
463
+ _init_observableSettingStore = _applyDecs$e2[0];
464
+ _initProto = _applyDecs$e2[1];
465
+ _applyDecs$e;
@@ -48,6 +48,8 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
48
48
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
49
49
  var mainWindow;
50
50
  var mainWindowReady = false;
51
+ var userMinimize = false;
52
+ var mainWindowDisplayState = _struct.DisplayState.HIDE;
51
53
  (0, _main.initialize)();
52
54
  var port = (_process$argv$find = process.argv.find(function (arg) {
53
55
  return arg.startsWith('--port=');
@@ -102,10 +104,17 @@ ipcClient.addObserver({
102
104
  mainWindow.moveTop();
103
105
  var platform = _os["default"].platform();
104
106
  if (platform === 'win32') {
105
- mainWindow.setAlwaysOnTop(true);
107
+ (0, _logger.getLogger)().info('windows_index setAlwaysOnTop in bootstrap-sdk');
108
+ mainWindow.setAlwaysOnTop(true, 'pop-up-menu');
106
109
  setTimeout(function () {
107
- mainWindow.setAlwaysOnTop(false);
108
- }, 100);
110
+ (0, _logger.getLogger)().info("windows_index set main window in bootstrap-sdk,current display state: ".concat(mainWindowDisplayState));
111
+ if (mainWindowDisplayState === _struct.DisplayState.SHOW) {
112
+ mainWindow.moveTop();
113
+ mainWindow.show();
114
+ mainWindow.focus();
115
+ }
116
+ }, 300);
117
+ mainWindow.setAlwaysOnTop(false, 'pop-up-menu');
109
118
  }
110
119
  }
111
120
  break;
@@ -252,10 +261,10 @@ _electron.app.addListener('ready', function () {
252
261
  cmd: _type.IPCMessageCMD.ExitedMeeting,
253
262
  data: {
254
263
  roomId: roomId,
255
- reason: _struct.FcrUISceneLaunchEndReason.CRASHED
264
+ reason: _until.crashedErrorCode
256
265
  }
257
266
  });
258
- _eventManager.eventManager.onExitedMeeting(roomId, 'exited-meeting');
267
+ _eventManager.eventManager.onExitedMeeting(roomId, _struct.FcrUISceneLaunchEndReason.CRASHED);
259
268
  });
260
269
  mainWindow.webContents.addListener('did-finish-load', function () {
261
270
  mainWindowReady = true;
@@ -264,8 +273,47 @@ _electron.app.addListener('ready', function () {
264
273
  data: {}
265
274
  });
266
275
  });
276
+ mainWindow.addListener('minimize', function () {
277
+ (0, _logger.getLogger)().info('windows_release main window minimized');
278
+ mainWindowDisplayState = _struct.DisplayState.MINIMIZE;
279
+ userMinimize = true;
280
+ });
281
+ mainWindow.addListener('show', function () {
282
+ (0, _logger.getLogger)().info('windows_release main window show');
283
+ mainWindowDisplayState = _struct.DisplayState.SHOW;
284
+ mainWindow.focus();
285
+ userMinimize = false;
286
+ });
287
+ mainWindow.addListener('always-on-top-changed', function (event, alwaysOnTop) {
288
+ (0, _logger.getLogger)().info("windows_index main window always-on-top-changed: ".concat(alwaysOnTop));
289
+ });
267
290
  mainWindow.addListener('hide', function () {
268
291
  (0, _logger.getLogger)().info("windows_release main window hidden, current launch state: ".concat(_struct.FcrUISceneLaunchState[_eventManager.eventManager.launchState]));
292
+ mainWindowDisplayState = _struct.DisplayState.HIDE;
293
+ if (userMinimize) {
294
+ (0, _logger.getLogger)().info('windows_release main window hidden, but user minimize, ignore this event');
295
+ return;
296
+ }
297
+
298
+ // if (
299
+ // eventManager.launchState === LaunchState.END &&
300
+ // eventManager.endReason === FcrUISceneLaunchEndReason.LAUNCH_SUCCESS
301
+ // ) {
302
+ // getLogger().info(
303
+ // 'windows_release main window hidden, but launch state is END, send error Event',
304
+ // );
305
+
306
+ // ipcClient.sendMessage({
307
+ // cmd: IPCMessageCMD.Error,
308
+ // data: {
309
+ // roomId: eventManager.roomId,
310
+ // errorCode: mainWindowHiddenOnLaunchSuccessErrorCode,
311
+ // message: 'main window hidden on launch success',
312
+ // },
313
+ // });
314
+ // return;
315
+ // }
316
+
269
317
  if (_eventManager.eventManager.launchState !== _struct.FcrUISceneLaunchState.PROCESSING) {
270
318
  return;
271
319
  }
@@ -285,6 +333,7 @@ _electron.app.addListener('ready', function () {
285
333
  _electron.app.exit(_exitCodes.AppExitCode.NORMAL_EXIT);
286
334
  });
287
335
  mainWindow.addListener('close', function (e) {
336
+ mainWindowDisplayState = _struct.DisplayState.HIDE;
288
337
  var closeListenerCount = mainWindow.listenerCount('close');
289
338
  (0, _logger.getLogger)().info("windows_release main window close listener count: ".concat(closeListenerCount, ", isInMeeting: ").concat(_meetingState.isInMeeting));
290
339
  if (_meetingState.isInMeeting === 0) {
@@ -310,6 +359,14 @@ _electron.app.addListener('ready', function () {
310
359
  }, 300);
311
360
  }
312
361
  });
362
+ mainWindow.addListener('unresponsive', function () {
363
+ (0, _logger.getLogger)().warn("main window unresponsive in bootstrap-sdk");
364
+ handleUnresponsive();
365
+ });
366
+ mainWindow.addListener('responsive', function () {
367
+ (0, _logger.getLogger)().warn("main window responsive in bootstrap-sdk");
368
+ handleResponsive();
369
+ });
313
370
  if (_env.isDev) {
314
371
  mainWindow.webContents.openDevTools({
315
372
  mode: 'detach'
@@ -336,4 +393,31 @@ _electron.app.addListener('quit', function (event, exitCode) {
336
393
  (0, _logger.getLogger)().info("app quit event triggered with exit code: ".concat(exitCode));
337
394
  // 清理 EventManager 资源
338
395
  _eventManager.eventManager.dispose();
339
- });
396
+ });
397
+ var HANG_DETECTION_TIMEOUT = 60 * 1000; // 1分钟(毫s秒)
398
+ var hangDetectionTimer = null;
399
+ function handleUnresponsive() {
400
+ (0, _logger.getLogger)().warn('Window became unresponsive, starting hang detection timer');
401
+ clearHangDetectionTimer();
402
+ hangDetectionTimer = setTimeout(function () {
403
+ (0, _logger.getLogger)().error('Window has been unresponsive for 1 minute, forcing application exit');
404
+ _eventManager.eventManager.onExitedMeeting(_eventManager.eventManager.roomId, _struct.FcrUISceneLaunchEndReason.HANG_DETECTION);
405
+ ipcClient.sendMessage({
406
+ cmd: _type.IPCMessageCMD.ExitedMeeting,
407
+ data: {
408
+ roomId: _eventManager.eventManager.roomId,
409
+ reason: _until.hangDetectionErrorCode
410
+ }
411
+ });
412
+ }, HANG_DETECTION_TIMEOUT);
413
+ }
414
+ function handleResponsive() {
415
+ (0, _logger.getLogger)().info('Window became responsive again, clearing hang detection timer');
416
+ clearHangDetectionTimer();
417
+ }
418
+ function clearHangDetectionTimer() {
419
+ if (hangDetectionTimer) {
420
+ clearTimeout(hangDetectionTimer);
421
+ hangDetectionTimer = null;
422
+ }
423
+ }
@@ -19,6 +19,7 @@ export declare const captureScreen: (options?: {
19
19
  hideWindow?: boolean;
20
20
  alwaysHide?: boolean;
21
21
  }) => void;
22
+ export declare const getBaseUrl: () => string;
22
23
  export declare const openRendererWindow: (frameName: string, callback: (dom: HTMLElement, windowId: string, newRendererWindow: Window) => void, windowOptions: BrowserWindowConstructorOptions) => Promise<void>;
23
24
  export declare const checkMediaPermission: (mediaType: "microphone" | "camera" | "sharing") => Promise<any>;
24
25
  export declare const openSystemPreferences: (mediaType: "microphone" | "camera" | "sharing") => void;
@@ -6,7 +6,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
6
6
  Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
- exports.showItemInFolder = exports.setUserSettingData = exports.setFragmentOptions = exports.setFragmentBaseUrl = exports.sendEvent = exports.screen = exports.restartApp = exports.removeEventListener = exports.quitApp = exports.openSystemPreferences = exports.openRendererWindow = exports.openLinkInDefaultBrowser = exports.openDirectory = exports.open = exports.loadBuiltinResources = exports.initialize = exports.getUserSettingData = exports.getSystemMemorySize = exports.getSystemCpuInfo = exports.getResourceByFileType = exports.getPrimaryDisplay = exports.getNetworkType = exports.getMediaSourceIdList = exports.getDisplayNearestPoint = exports.getDisplayMatching = exports.getCursorScreenPoint = exports.getCurrentBrowserWindow = exports.getBrowserWindowById = exports.getAllDisplays = exports.fileToBlob = exports.fileToBase64 = exports.createBrowserWindowProxy = exports.close = exports.checkMediaPermission = exports.captureScreen = exports.addEventListener = void 0;
9
+ exports.showItemInFolder = exports.setUserSettingData = exports.setFragmentOptions = exports.setFragmentBaseUrl = exports.sendEvent = exports.screen = exports.restartApp = exports.removeEventListener = exports.quitApp = exports.openSystemPreferences = exports.openRendererWindow = exports.openLinkInDefaultBrowser = exports.openDirectory = exports.open = exports.loadBuiltinResources = exports.initialize = exports.getUserSettingData = exports.getSystemMemorySize = exports.getSystemCpuInfo = exports.getResourceByFileType = exports.getPrimaryDisplay = exports.getNetworkType = exports.getMediaSourceIdList = exports.getDisplayNearestPoint = exports.getDisplayMatching = exports.getCursorScreenPoint = exports.getCurrentBrowserWindow = exports.getBrowserWindowById = exports.getBaseUrl = exports.getAllDisplays = exports.fileToBlob = exports.fileToBase64 = exports.createBrowserWindowProxy = exports.close = exports.checkMediaPermission = exports.captureScreen = exports.addEventListener = void 0;
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
@@ -69,6 +69,7 @@ var _promises = _interopRequireDefault(require("fs/promises"));
69
69
  var _jszip = _interopRequireDefault(require("jszip"));
70
70
  var _exitCodes = require("./exit-codes");
71
71
  var _browserWindowProxy = require("./window-proxy/browser-window-proxy");
72
+ var _env = require("./env");
72
73
  // import { windowManager as wm } from 'node-window-manager';
73
74
 
74
75
  var USER_SETTING_DATA_FILE_NAME = 'UserSettingData.json';
@@ -160,6 +161,9 @@ var captureScreen = exports.captureScreen = function captureScreen(options) {
160
161
  // return wm.getWindows();
161
162
  // };
162
163
 
164
+ var getBaseUrl = exports.getBaseUrl = function getBaseUrl() {
165
+ return _env.isDev ? _env.devPageUrl : '.';
166
+ };
163
167
  var openRendererWindow = exports.openRendererWindow = /*#__PURE__*/function () {
164
168
  var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(frameName, callback, windowOptions) {
165
169
  var isAlreadyOpened, windowConstructorOptionsString, newRendererWindow, windowId, windowIdStr, htmlTemplate, renderDom, parentWindow, parentHead, parentStyles, parentStyleLinks, stylesLoadedPromises, presetWindoStyle, observer, parentRoot, parentRootStyles, _renderDom;
@@ -6,6 +6,7 @@ export declare enum IPCMessageCMD {
6
6
  WidgetClicked = "widget-clicked",
7
7
  TokenWillExpire = "user-token-will-expire",
8
8
  ExitUiSceneFromMainProcess = "exit-ui-scene-from-main-process",
9
+ Error = "error",
9
10
  LaunchMeeting = "launch-meeting",
10
11
  InitCreator = "init-creator",
11
12
  OpenSetting = "open-setting",