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
@@ -60,18 +60,14 @@ var WhiteboardToolbar = exports.WhiteboardToolbar = function WhiteboardToolbar(p
60
60
  onCaptureScreen = props.onCaptureScreen,
61
61
  setProgress = props.setProgress;
62
62
  var t = (0, _i18n.useI18n)();
63
- var _useState = (0, _react.useState)(false),
63
+ var _useState = (0, _react.useState)('right'),
64
64
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
65
- popoverVisible = _useState2[0],
66
- setPopoverVisible = _useState2[1];
67
- var _useState3 = (0, _react.useState)('right'),
65
+ placement = _useState2[0],
66
+ setPlacement = _useState2[1];
67
+ var _useState3 = (0, _react.useState)(-1),
68
68
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
69
- placement = _useState4[0],
70
- setPlacement = _useState4[1];
71
- var _useState5 = (0, _react.useState)(-1),
72
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
73
- coverCount = _useState6[0],
74
- setCoverCount = _useState6[1];
69
+ coverCount = _useState4[0],
70
+ setCoverCount = _useState4[1];
75
71
  var effects = [coverCount, currentTool, currentColor, currentShape, currentStrokeWidth, commonColors, undoSteps, redoSteps, placement];
76
72
  var needHiddenTools = (0, _react.useMemo)(function () {
77
73
  return [/*#__PURE__*/(0, _jsxRuntime.jsx)(_graphicTool.AnnotationGraphicTool, {
@@ -88,9 +84,6 @@ var WhiteboardToolbar = exports.WhiteboardToolbar = function WhiteboardToolbar(p
88
84
  direction: direction
89
85
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
90
86
  size: size,
91
- onVisibleChange: function onVisibleChange() {
92
- return setPopoverVisible(false);
93
- },
94
87
  active: currentTool === _enums.FcrBoardToolType.TEXT,
95
88
  onClick: function onClick() {
96
89
  return setTool(_enums.FcrBoardToolType.TEXT);
@@ -101,9 +94,6 @@ var WhiteboardToolbar = exports.WhiteboardToolbar = function WhiteboardToolbar(p
101
94
  placement: placement
102
95
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
103
96
  size: size,
104
- onVisibleChange: function onVisibleChange() {
105
- return setPopoverVisible(false);
106
- },
107
97
  active: currentTool === _enums.FcrBoardToolType.HAND,
108
98
  onClick: function onClick() {
109
99
  return setTool(_enums.FcrBoardToolType.HAND);
@@ -122,9 +112,6 @@ var WhiteboardToolbar = exports.WhiteboardToolbar = function WhiteboardToolbar(p
122
112
  direction: direction
123
113
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
124
114
  size: size,
125
- onVisibleChange: function onVisibleChange() {
126
- return setPopoverVisible(false);
127
- },
128
115
  active: currentTool === _enums.FcrBoardToolType.ERASER,
129
116
  onClick: function onClick() {
130
117
  return setTool(_enums.FcrBoardToolType.ERASER);
@@ -134,8 +121,6 @@ var WhiteboardToolbar = exports.WhiteboardToolbar = function WhiteboardToolbar(p
134
121
  hideTitle: true,
135
122
  placement: placement
136
123
  }), (0, _env.isElectron)() && onCaptureScreen && commonColors && /*#__PURE__*/(0, _jsxRuntime.jsx)(_captureTool.AnnotationCaptureTool, {
137
- popoverVisible: popoverVisible,
138
- setPopoverVisible: setPopoverVisible,
139
124
  size: size,
140
125
  direction: direction,
141
126
  hideTitle: true,
@@ -143,9 +128,6 @@ var WhiteboardToolbar = exports.WhiteboardToolbar = function WhiteboardToolbar(p
143
128
  onClick: onCaptureScreen
144
129
  }), !commonColors && /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
145
130
  size: size,
146
- onVisibleChange: function onVisibleChange() {
147
- return setPopoverVisible(false);
148
- },
149
131
  onClick: clean,
150
132
  iconType: _type.FcrIconType.FCR_DELETE5,
151
133
  title: t('fmt_screenshare_whiteboard_button_empty'),
@@ -0,0 +1 @@
1
+ export declare const AnnotationButton: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.AnnotationButton = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _tooltipsButton = require("agora-ui-foundation/lib/components/tooltips-button");
11
+ var _i18n = require("agora-ui-foundation/lib/i18n");
12
+ var _type = require("agora-ui-foundation/lib/components/icon/type");
13
+ var _annotationMenu = _interopRequireDefault(require("../../../components/annotation-menu"));
14
+ var _react = require("react");
15
+ var _mobxReact = require("mobx-react");
16
+ var _store = require("../../store");
17
+ var _view = require("../../view");
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ var AnnotationButton = exports.AnnotationButton = (0, _mobxReact.observer)(function () {
20
+ var transI18n = (0, _i18n.useI18n)();
21
+ var _useState = (0, _react.useState)(false),
22
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
23
+ visible = _useState2[0],
24
+ setVisible = _useState2[1];
25
+ var _useContext = (0, _react.useContext)(_view.ControlbarContext),
26
+ browserWindow = _useContext.browserWindow;
27
+ var _useContext2 = (0, _react.useContext)(_store.StoreContext),
28
+ toggleAnnotation = _useContext2.toggleAnnotation,
29
+ hasAnnotationAllowWritePermission = _useContext2.hasAnnotationAllowWritePermission,
30
+ allowAnnotationWriteState = _useContext2.allowAnnotationWriteState,
31
+ setAllAnnotationWrite = _useContext2.setAllAnnotationWrite,
32
+ isSharingScreen = _useContext2.isSharingScreen,
33
+ log = _useContext2.log;
34
+ var handleBlur = function handleBlur() {
35
+ setVisible(false);
36
+ };
37
+ (0, _react.useEffect)(function () {
38
+ browserWindow === null || browserWindow === void 0 || browserWindow.on('blur', handleBlur);
39
+ return function () {
40
+ browserWindow === null || browserWindow === void 0 || browserWindow.off('blur', handleBlur);
41
+ };
42
+ }, [browserWindow]);
43
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltipsButton.FrcTooltipButton, {
44
+ active: visible,
45
+ tooltip: {
46
+ content: transI18n('fmt_screenshare_controlbar_button_annotations'),
47
+ icon: {
48
+ type: _type.FcrIconType.FCR_RENAME,
49
+ size: 32,
50
+ colors: {
51
+ iconPrimary: 'var(--fcr_web_ui_scene_mainicon1)'
52
+ }
53
+ }
54
+ },
55
+ onTooltipButtonClick: isSharingScreen ? toggleAnnotation : function () {
56
+ return log('share screen is starting, please wait a moment to operate');
57
+ },
58
+ withPopover: true,
59
+ popover: {
60
+ content: /*#__PURE__*/(0, _jsxRuntime.jsx)(_annotationMenu["default"], {
61
+ allowAnnotationWriteState: allowAnnotationWriteState,
62
+ hasAnnotationAllowWritePermission: hasAnnotationAllowWritePermission,
63
+ setAllowAnnotationWrite: setAllAnnotationWrite,
64
+ showClear: true
65
+ }),
66
+ onVisibleChange: function onVisibleChange(visible) {
67
+ setVisible(visible);
68
+ },
69
+ visible: visible
70
+ }
71
+ });
72
+ });
@@ -1,6 +1,8 @@
1
- import { PropsWithChildren, FC } from 'react';
2
- type BoundaryDetectorProps = PropsWithChildren<{
1
+ export type DetectorRef = {
2
+ getBoundaries: () => FcrUI.FcrUIRectangle;
3
+ };
4
+ export declare const BoundaryDetector: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<{
3
5
  onBoundariesChanged: (boundaries: FcrUI.FcrUIRectangle) => void;
4
- }>;
5
- export declare const BoundaryDetector: FC<BoundaryDetectorProps>;
6
- export {};
6
+ } & {
7
+ children?: import("react").ReactNode | undefined;
8
+ } & import("react").RefAttributes<DetectorRef>>>;
@@ -9,13 +9,32 @@ var _react = require("react");
9
9
  var _context = require("../context");
10
10
  var _hooks = require("../hooks");
11
11
  var _jsxRuntime = require("react/jsx-runtime");
12
- var BoundaryDetector = exports.BoundaryDetector = /*#__PURE__*/(0, _react.memo)(function (_ref) {
12
+ var BoundaryDetector = exports.BoundaryDetector = /*#__PURE__*/(0, _react.memo)(/*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
13
13
  var children = _ref.children,
14
14
  onBoundariesChanged = _ref.onBoundariesChanged;
15
15
  var _useContext = (0, _react.useContext)(_context.DragContext),
16
16
  position = _useContext.position,
17
17
  isDragging = _useContext.isDragging;
18
18
  var containerRef = (0, _react.useRef)(null);
19
+ (0, _react.useImperativeHandle)(ref, function () {
20
+ return {
21
+ getBoundaries: function getBoundaries() {
22
+ if (!containerRef.current) return {
23
+ x: 0,
24
+ y: 0,
25
+ width: 0,
26
+ height: 0
27
+ };
28
+ var bounds = containerRef.current.getBoundingClientRect();
29
+ return {
30
+ x: bounds.x,
31
+ y: bounds.y,
32
+ width: bounds.width,
33
+ height: bounds.height
34
+ };
35
+ }
36
+ };
37
+ }, []);
19
38
  var boundaryCallbacks = (0, _react.useMemo)(function () {
20
39
  return {
21
40
  onBoundariesChanged: onBoundariesChanged
@@ -24,6 +43,7 @@ var BoundaryDetector = exports.BoundaryDetector = /*#__PURE__*/(0, _react.memo)(
24
43
  (0, _hooks.useBoundaryDetect)(containerRef, boundaryCallbacks);
25
44
  (0, _react.useEffect)(function () {
26
45
  if (!isDragging) {
46
+ if (!containerRef.current) return;
27
47
  var bounds = containerRef.current.getBoundingClientRect();
28
48
  boundaryCallbacks.onBoundariesChanged(bounds);
29
49
  }
@@ -33,4 +53,4 @@ var BoundaryDetector = exports.BoundaryDetector = /*#__PURE__*/(0, _react.memo)(
33
53
  className: "fcr-control-bar__sizer",
34
54
  children: children
35
55
  });
36
- });
56
+ }));
@@ -1 +1,4 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { StopCloudRecordingProps } from '../../action-bar/type';
1
3
  export declare const CloudRecordingButtons: () => import("react/jsx-runtime").JSX.Element;
4
+ export declare const StopCloudRecording: ({ stopCloudRecording, children }: PropsWithChildren<StopCloudRecordingProps>) => import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
- exports.CloudRecordingButtons = void 0;
8
+ exports.StopCloudRecording = exports.CloudRecordingButtons = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
10
  var _mobxReact = require("mobx-react");
9
11
  var _react = require("react");
10
12
  var _type = require("fcr-core/lib/type");
@@ -12,8 +14,10 @@ var _icon = require("agora-ui-foundation/lib/components/icon");
12
14
  var _type2 = require("agora-ui-foundation/lib/components/icon/type");
13
15
  var _tooltip = require("agora-ui-foundation/lib/components/tooltip");
14
16
  var _store = require("../store");
15
- var _stopRecordDialog = require("../../action-bar/components/record/stop-record-dialog");
16
17
  var _i18n = require("agora-ui-foundation/lib/i18n");
18
+ var _boundaryDetector = require("./boundary-detector");
19
+ var _popover = require("agora-ui-foundation/lib/components/popover");
20
+ var _context = require("../context");
17
21
  var _jsxRuntime = require("react/jsx-runtime");
18
22
  var CloudRecordingButtons = exports.CloudRecordingButtons = (0, _mobxReact.observer)(function () {
19
23
  var _useContext = (0, _react.useContext)(_store.StoreContext),
@@ -25,6 +29,7 @@ var CloudRecordingButtons = exports.CloudRecordingButtons = (0, _mobxReact.obser
25
29
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
26
30
  className: "fcr-control-bar-cloud-recording-buttons",
27
31
  children: [cloudRecordingState === _type.FcrRecordingState.Paused ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
32
+ mouseEnterDelay: 0,
28
33
  content: transI18n('fmt_record_button_Cloudrecording_restore'),
29
34
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
30
35
  onClick: resumeCloudRecording,
@@ -37,6 +42,7 @@ var CloudRecordingButtons = exports.CloudRecordingButtons = (0, _mobxReact.obser
37
42
  })
38
43
  })
39
44
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
45
+ mouseEnterDelay: 0,
40
46
  content: transI18n('fmt_settings_options_pausecloudrecording'),
41
47
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
42
48
  onClick: pauseCloudRecording,
@@ -48,9 +54,10 @@ var CloudRecordingButtons = exports.CloudRecordingButtons = (0, _mobxReact.obser
48
54
  }
49
55
  })
50
56
  })
51
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_stopRecordDialog.StopCloudRecording, {
57
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(StopCloudRecording, {
52
58
  stopCloudRecording: stopCloudRecording,
53
59
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
60
+ mouseEnterDelay: 0,
54
61
  content: transI18n('fmt_record_button_Cloudrecording_stop'),
55
62
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
56
63
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
@@ -64,4 +71,62 @@ var CloudRecordingButtons = exports.CloudRecordingButtons = (0, _mobxReact.obser
64
71
  })
65
72
  })]
66
73
  });
74
+ });
75
+
76
+ // TODO: 删除重复的 StopCloudRecording 组件
77
+ var StopCloudRecording = exports.StopCloudRecording = (0, _mobxReact.observer)(function (_ref) {
78
+ var stopCloudRecording = _ref.stopCloudRecording,
79
+ children = _ref.children;
80
+ var _useContext2 = (0, _react.useContext)(_store.StoreContext),
81
+ setPopoverArea = _useContext2.setPopoverArea;
82
+ var _useState = (0, _react.useState)(false),
83
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
84
+ visible = _useState2[0],
85
+ setVisible = _useState2[1];
86
+ var transI18n = (0, _i18n.useI18n)();
87
+ var handleBoundariesChanged = (0, _react.useCallback)(function (boundaries) {
88
+ setPopoverArea(boundaries);
89
+ }, []);
90
+ var _useContext3 = (0, _react.useContext)(_context.ControlBarCalculationContext),
91
+ isShareActionNavHidden = _useContext3.isShareActionNavHidden;
92
+ (0, _react.useEffect)(function () {
93
+ if (isShareActionNavHidden) {
94
+ setVisible(false);
95
+ setPopoverArea({
96
+ x: 0,
97
+ y: 0,
98
+ width: 0,
99
+ height: 0
100
+ });
101
+ }
102
+ }, [isShareActionNavHidden]);
103
+ var content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_boundaryDetector.BoundaryDetector, {
104
+ onBoundariesChanged: handleBoundariesChanged,
105
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
106
+ className: "leave-container",
107
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
108
+ className: "leave-title",
109
+ children: transI18n('fmt_actionbar_record_tips_stoprecord')
110
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
111
+ className: "leave-confirm",
112
+ onClick: stopCloudRecording,
113
+ children: transI18n('fmt_actionbar_record_option_stoprecord')
114
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
115
+ className: "leave-cancel",
116
+ onClick: function onClick() {
117
+ return setVisible(false);
118
+ },
119
+ children: transI18n('fmt_security_buttons_cancel')
120
+ })]
121
+ })
122
+ });
123
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_popover.FcrPopover, {
124
+ showArrow: false,
125
+ overlayClassName: "fcr-stop-cloud-recording-popover",
126
+ visible: visible,
127
+ onVisibleChange: setVisible,
128
+ trigger: "click",
129
+ content: content,
130
+ children: children
131
+ });
67
132
  });
@@ -22,7 +22,8 @@ var useBoundaryDetect = exports.useBoundaryDetect = function useBoundaryDetect(r
22
22
  if (ref.current === null) return;
23
23
  var contentRect = ref.current.getBoundingClientRect();
24
24
  callbacks.onBoundariesChanged(contentRect);
25
- }, 100);
25
+ // 部分气泡动画需要时间渲染完成后才能获取到正确的位置
26
+ }, 300);
26
27
  };
27
28
  restartTask();
28
29
  return function () {
@@ -102,5 +102,6 @@ export default class ControlBarStore implements FcrUIManagedObject {
102
102
  handleLeaveRoom(): void;
103
103
  closeLeaveMeetingDialog(): void;
104
104
  handleMoreClick(actionKey: MoreAction): void;
105
+ updateWindowBounds(): void;
105
106
  }
106
107
  export declare const StoreContext: import("react").Context<ControlBarStore>;
@@ -127,8 +127,10 @@ var ControlBarStore = exports["default"] = /*#__PURE__*/function () {
127
127
  _this.titleHeight = (0, _platform.isWindows)() ? 0 : topOffset !== null && topOffset !== void 0 ? topOffset : 0;
128
128
  (0, _mobx.runInAction)(function () {
129
129
  _this.currentShareDisplayId = _this._renderer.getDisplayNearestPoint(_this.draggableArea).id;
130
+ _this._mouseDetectProvider.setDisplayId(_this.currentShareDisplayId);
130
131
  });
131
132
  _this._mouseDetectProvider.setDetectionPositionOffset(display.bounds);
133
+ _this.updateWindowBounds();
132
134
  },
133
135
  onShareSourceReplaced: function onShareSourceReplaced() {
134
136
  var display = _this._renderer.getDisplayNearestPoint(_this.draggableArea);
@@ -138,6 +140,7 @@ var ControlBarStore = exports["default"] = /*#__PURE__*/function () {
138
140
  _this.titleHeight = (0, _platform.isWindows)() ? 0 : topOffset !== null && topOffset !== void 0 ? topOffset : 0;
139
141
  (0, _mobx.runInAction)(function () {
140
142
  _this.currentShareDisplayId = _this._renderer.getDisplayNearestPoint(_this.draggableArea).id;
143
+ _this._mouseDetectProvider.setDisplayId(_this.currentShareDisplayId);
141
144
  });
142
145
  _this._mouseDetectProvider.setDetectionPositionOffset(display.bounds);
143
146
  },
@@ -146,13 +149,17 @@ var ControlBarStore = exports["default"] = /*#__PURE__*/function () {
146
149
  }
147
150
  });
148
151
  (0, _defineProperty2["default"])(this, "_mouseDetectObserver", {
149
- onMouseEnterDetectArea: function onMouseEnterDetectArea() {
150
- _this._controlBarWindow.setIgnoreMouseEvents(false);
152
+ onMouseEnterDetectArea: function onMouseEnterDetectArea(areaId) {
153
+ if (areaId === _struct.FcrUIDetectAreaID.ControlBar) {
154
+ _this._controlBarWindow.setIgnoreMouseEvents(false);
155
+ }
151
156
  },
152
- onMouseLeaveDetectArea: function onMouseLeaveDetectArea() {
153
- _this._controlBarWindow.setIgnoreMouseEvents(true, {
154
- forward: true
155
- });
157
+ onMouseLeaveDetectArea: function onMouseLeaveDetectArea(areaId) {
158
+ if (areaId === _struct.FcrUIDetectAreaID.ControlBar) {
159
+ _this._controlBarWindow.setIgnoreMouseEvents(true, {
160
+ forward: true
161
+ });
162
+ }
156
163
  }
157
164
  });
158
165
  (0, _defineProperty2["default"])(this, "_stateNavArea", {
@@ -619,6 +626,7 @@ var ControlBarStore = exports["default"] = /*#__PURE__*/function () {
619
626
  this._mainRoomControl.removeObserver(this._roomObserver);
620
627
  this._screenShareProvider.removeObserver(this._screenShareObserver);
621
628
  this._mouseDetectProvider.removeObserver(this._mouseDetectObserver);
629
+ this._mouseDetectProvider.deleteDetectArea(_struct.FcrUIDetectAreaID.ControlBar);
622
630
  }
623
631
  }, {
624
632
  key: "setStateNavArea",
@@ -704,10 +712,16 @@ var ControlBarStore = exports["default"] = /*#__PURE__*/function () {
704
712
  break;
705
713
  }
706
714
  }
715
+ }, {
716
+ key: "updateWindowBounds",
717
+ value: function updateWindowBounds() {
718
+ var sharingDisplayBounds = this._screenShareProvider.sharingDisplayBounds;
719
+ this._controlBarWindow.setBounds(sharingDisplayBounds);
720
+ }
707
721
  }]);
708
722
  }();
709
723
  _ControlBarStore = ControlBarStore;
710
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_ControlBarStore, [[_mobx.observable, 1, "roomDuration"], [_mobx.observable, 1, "startTime"], [_mobx.observable, 1, "cloudRecordingState"], [_mobx.observable, 1, "playUrl"], [_mobx.observable, 1, "liveStreamingState"], [_mobx.observable, 1, "allApplicationWindows"], [_mobx.observable, 1, "boardOwnerUser"], [_mobx.observable, 1, "currentShareDisplayId"], [_mobx.observable, 1, "position"], [_mobx.computed, 3, "hasEndRoomPermission"], [_mobx.computed, 3, "hasGetLiveStreamingUrlPermission"], [_mobx.computed, 3, "hasStartCloudRecordingPermission"], [_mobx.computed, 3, "hasStartLiveStreamingPermission"], [_mobx.computed, 3, "hasChatPermission"], [_mobx.computed, 3, "liveStreamingButtonVisible"], [_mobx.computed, 3, "recordingButtonVisible"], [_mobx.computed, 3, "isConnecting"], [_setCheckedStateMapDecs, 18, "setCheckedStateMap"], [_decorator.bound, 2, "setShareWithAudioState"], [_decorator.bound, 2, "setShareInSmoothMode"], [_showLockedRoomToastDecs, 18, "showLockedRoomToast"], [_handleNewShareDecs, 18, "handleNewShare"], [_handlerStopShareDecs, 18, "handlerStopShare"], [_decorator.bound, 2, "handleMouseEnter"], [_decorator.bound, 2, "handleMouseLeave"], [_decorator.bound, 2, "openLiveStreamingDialog"], [_decorator.bound, 2, "setShareAudioMode"], [_pauseCloudRecordingDecs, 2, "pauseCloudRecording"], [_resumeCloudRecordingDecs, 2, "resumeCloudRecording"], [_stopCloudRecordingDecs, 2, "stopCloudRecording"], [_decorator.bound, 2, "startCloudRecording"], [_decorator.bound, 2, "startLiveStreaming"], [_decorator.bound, 2, "stopLiveStreaming"], [_showToastDecs, 18, "showToast"], [_decorator.bound, 2, "handleOpenParticipant"], [_decorator.bound, 2, "handleOpenLiveStreaming"], [_decorator.bound, 2, "setEnableWaitingRoom"], [_decorator.bound, 2, "getLocalMeetingTime"], [[_decorator.bound, _decorator.trace], 2, "setStateNavArea"], [[_decorator.bound, _decorator.trace], 2, "setControlBarContentArea"], [[_decorator.bound, _decorator.trace], 2, "setPopoverArea"], [_handleLeaveRoomDecs, 18, "handleLeaveRoom"], [_closeLeaveMeetingDialogDecs, 18, "closeLeaveMeetingDialog"], [_handleMoreClickDecs, 18, "handleMoreClick"]], []).e, 10);
724
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_ControlBarStore, [[_mobx.observable, 1, "roomDuration"], [_mobx.observable, 1, "startTime"], [_mobx.observable, 1, "cloudRecordingState"], [_mobx.observable, 1, "playUrl"], [_mobx.observable, 1, "liveStreamingState"], [_mobx.observable, 1, "allApplicationWindows"], [_mobx.observable, 1, "boardOwnerUser"], [_mobx.observable, 1, "currentShareDisplayId"], [_mobx.observable, 1, "position"], [_mobx.computed, 3, "hasEndRoomPermission"], [_mobx.computed, 3, "hasGetLiveStreamingUrlPermission"], [_mobx.computed, 3, "hasStartCloudRecordingPermission"], [_mobx.computed, 3, "hasStartLiveStreamingPermission"], [_mobx.computed, 3, "hasChatPermission"], [_mobx.computed, 3, "liveStreamingButtonVisible"], [_mobx.computed, 3, "recordingButtonVisible"], [_mobx.computed, 3, "isConnecting"], [_setCheckedStateMapDecs, 18, "setCheckedStateMap"], [_decorator.bound, 2, "setShareWithAudioState"], [_decorator.bound, 2, "setShareInSmoothMode"], [_showLockedRoomToastDecs, 18, "showLockedRoomToast"], [_handleNewShareDecs, 18, "handleNewShare"], [_handlerStopShareDecs, 18, "handlerStopShare"], [_decorator.bound, 2, "handleMouseEnter"], [_decorator.bound, 2, "handleMouseLeave"], [_decorator.bound, 2, "openLiveStreamingDialog"], [_decorator.bound, 2, "setShareAudioMode"], [_pauseCloudRecordingDecs, 2, "pauseCloudRecording"], [_resumeCloudRecordingDecs, 2, "resumeCloudRecording"], [_stopCloudRecordingDecs, 2, "stopCloudRecording"], [_decorator.bound, 2, "startCloudRecording"], [_decorator.bound, 2, "startLiveStreaming"], [_decorator.bound, 2, "stopLiveStreaming"], [_showToastDecs, 18, "showToast"], [_decorator.bound, 2, "handleOpenParticipant"], [_decorator.bound, 2, "handleOpenLiveStreaming"], [_decorator.bound, 2, "setEnableWaitingRoom"], [_decorator.bound, 2, "getLocalMeetingTime"], [[_decorator.bound, _decorator.trace], 2, "setStateNavArea"], [[_decorator.bound, _decorator.trace], 2, "setControlBarContentArea"], [[_decorator.bound, _decorator.trace], 2, "setPopoverArea"], [_handleLeaveRoomDecs, 18, "handleLeaveRoom"], [_closeLeaveMeetingDialogDecs, 18, "closeLeaveMeetingDialog"], [_handleMoreClickDecs, 18, "handleMoreClick"], [[_decorator.trace, _decorator.bound], 2, "updateWindowBounds"]], []).e, 10);
711
725
  _init_roomDuration = _applyDecs$e[0];
712
726
  _init_startTime = _applyDecs$e[1];
713
727
  _init_cloudRecordingState = _applyDecs$e[2];
@@ -1,4 +1,3 @@
1
- import { FcrUIObjectManager } from '../../object-manager';
2
1
  import { TransferPosition } from './enums';
3
2
  export interface MorePopoverContentProps {
4
3
  hasChatPermission: boolean;
@@ -13,19 +12,9 @@ export interface ITransferPositionIconProps {
13
12
  currentPosition: TransferPosition;
14
13
  onTransferPositionButtonClick: (targetPosition: TransferPosition) => void;
15
14
  }
16
- export type ControlBarStoreArgs = {
17
- objectManager: FcrUIObjectManager;
15
+ export type CurrentShareBounds = {
16
+ x: number;
17
+ y: number;
18
+ width: number;
19
+ height: number;
18
20
  };
19
- export interface DragState {
20
- position: {
21
- x: number;
22
- y: number;
23
- };
24
- isDragging: boolean;
25
- }
26
- export interface ControlBarCalculation {
27
- isHitBottom: boolean;
28
- isHitTop: boolean;
29
- area: TransferPosition;
30
- isShareActionNavHidden: boolean;
31
- }
@@ -27,6 +27,7 @@ Object.defineProperty(exports, "__esModule", {
27
27
  });
28
28
  exports.View = void 0;
29
29
  require("core-js/modules/es.array.concat.js");
30
+ require("core-js/modules/web.timers.js");
30
31
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
31
32
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
32
33
  var _mobxReact = require("mobx-react");
@@ -61,6 +62,8 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
61
62
  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; }
62
63
  var HIDDEN_TIMEOUT = 3000;
63
64
  var NAV_HEIGHT = 84;
65
+ var WINDOW_RENDER_DELAY = 500;
66
+ var FADE_ANIMATION_DURATION = 350;
64
67
  var View = exports.View = (0, _mobxReact.observer)(function () {
65
68
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(DraggableControlBarProvider, {
66
69
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DraggableContainer, {
@@ -287,11 +290,16 @@ var ControlBar = (0, _mobxReact.observer)(function () {
287
290
  var calculation = (0, _react.useContext)(_context.ControlBarCalculationContext);
288
291
  var _useContext5 = (0, _react.useContext)(_store.StoreContext),
289
292
  draggableArea = _useContext5.draggableArea,
290
- currentShareDisplayId = _useContext5.currentShareDisplayId;
293
+ currentShareDisplayId = _useContext5.currentShareDisplayId,
294
+ updateWindowBounds = _useContext5.updateWindowBounds;
291
295
  var updatePosition = (0, _react.useContext)(_context.DragStateUpdaterContext);
292
296
  var _useContext6 = (0, _react.useContext)(_context.ControlBarCalculationUpdaterContext),
293
297
  setDimensions = _useContext6.setDimensions,
294
298
  setNavPosition = _useContext6.setNavPosition;
299
+ var _useState9 = (0, _react.useState)('hidden'),
300
+ _useState0 = (0, _slicedToArray2["default"])(_useState9, 2),
301
+ visibility = _useState0[0],
302
+ setVisibility = _useState0[1];
295
303
  var rootClassNames = (0, _react.useMemo)(function () {
296
304
  return (0, _classnames["default"])('fcr-flex', 'share-action-nav__container', {
297
305
  'share-action-nav__move_to_bottom': calculation.navPosition === _enums.TransferPosition.BOTTOM,
@@ -301,31 +309,51 @@ var ControlBar = (0, _mobxReact.observer)(function () {
301
309
  'completely-hidden-in-top': calculation.isAttachToTop
302
310
  });
303
311
  }, [calculation]);
312
+ (0, _react.useEffect)(function () {
313
+ var ro = new ResizeObserver(function () {
314
+ if (!containerRef.current) return;
315
+ var bounds = containerRef.current.getBoundingClientRect();
316
+ setDimensions({
317
+ width: bounds.width,
318
+ height: bounds.height
319
+ });
320
+ });
321
+ ro.observe(containerRef.current);
322
+ return function () {
323
+ return ro.disconnect();
324
+ };
325
+ }, []);
326
+ (0, _react.useEffect)(function () {
327
+ setVisibility('hidden');
328
+ }, [currentShareDisplayId]);
304
329
  (0, _react.useLayoutEffect)(function () {
305
- if (currentShareDisplayId) {
306
- var ro = new ResizeObserver(function () {
307
- var bounds = containerRef.current.getBoundingClientRect();
308
- setDimensions({
309
- width: bounds.width,
310
- height: bounds.height
330
+ if (visibility === 'hidden') {
331
+ var timerId = setTimeout(function () {
332
+ updateWindowBounds();
333
+ timerId = setTimeout(function () {
334
+ if (!containerRef.current) return;
335
+ var bounds = containerRef.current.getBoundingClientRect();
336
+ updatePosition({
337
+ position: {
338
+ x: draggableArea.width / 2 - bounds.width / 2,
339
+ y: 0
340
+ }
341
+ });
342
+ setNavPosition(_enums.TransferPosition.TOP);
343
+ setVisibility('visible');
311
344
  });
312
- updatePosition({
313
- position: {
314
- x: draggableArea.width / 2 - bounds.width / 2,
315
- y: 0
316
- }
317
- });
318
- setNavPosition(_enums.TransferPosition.TOP);
319
- });
320
- ro.observe(containerRef.current);
345
+ }, WINDOW_RENDER_DELAY);
321
346
  return function () {
322
- return ro.disconnect();
347
+ return clearTimeout(timerId);
323
348
  };
324
349
  }
325
- }, [currentShareDisplayId]);
350
+ }, [visibility]);
326
351
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
327
352
  ref: containerRef,
328
353
  className: rootClassNames,
354
+ style: {
355
+ visibility: visibility
356
+ },
329
357
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ControlBarContent, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(ShareStateNavigation, {})]
330
358
  });
331
359
  });
@@ -357,8 +385,34 @@ var ControlBarContent = /*#__PURE__*/(0, _react.memo)(function () {
357
385
  console.log('ControlBarContent boundaries changed');
358
386
  setControlBarContentArea(boundaries);
359
387
  }, []);
388
+ var detector = (0, _react.useRef)(null);
389
+ (0, _react.useEffect)(function () {
390
+ var timerId = 0;
391
+ if (calculation.isShareActionNavHidden) {
392
+ timerId = setTimeout(function () {
393
+ setControlBarContentArea({
394
+ x: 0,
395
+ y: 0,
396
+ width: 0,
397
+ height: 0
398
+ });
399
+ }, FADE_ANIMATION_DURATION);
400
+ } else {
401
+ timerId = setTimeout(function () {
402
+ var _detector$current;
403
+ var bounds = (_detector$current = detector.current) === null || _detector$current === void 0 ? void 0 : _detector$current.getBoundaries();
404
+ if (bounds) {
405
+ setControlBarContentArea(bounds);
406
+ }
407
+ }, FADE_ANIMATION_DURATION);
408
+ }
409
+ return function () {
410
+ return clearTimeout(timerId);
411
+ };
412
+ }, [calculation.isShareActionNavHidden]);
360
413
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_boundaryDetector.BoundaryDetector, {
361
414
  onBoundariesChanged: handleBoundariesChanged,
415
+ ref: detector,
362
416
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
363
417
  className: navClassName,
364
418
  onMouseEnter: handleMouseEnterNav,
@@ -414,10 +468,10 @@ var SecurityMenuSection = /*#__PURE__*/(0, _react.memo)(function (_ref4) {
414
468
  setPopoverArea = _useContext0.setPopoverArea;
415
469
  var _useContext1 = (0, _react.useContext)(_context.ControlBarCalculationContext),
416
470
  isShareActionNavHidden = _useContext1.isShareActionNavHidden;
417
- var _useState9 = (0, _react.useState)(false),
418
- _useState0 = (0, _slicedToArray2["default"])(_useState9, 2),
419
- showSecurityPopover = _useState0[0],
420
- setShowSecurityPopover = _useState0[1];
471
+ var _useState1 = (0, _react.useState)(false),
472
+ _useState10 = (0, _slicedToArray2["default"])(_useState1, 2),
473
+ showSecurityPopover = _useState10[0],
474
+ setShowSecurityPopover = _useState10[1];
421
475
  var handleVisibilityChange = (0, _react.useCallback)(function (visible) {
422
476
  setShowSecurityPopover(visible);
423
477
  }, []);
@@ -482,14 +536,14 @@ var ShareScreenSection = /*#__PURE__*/(0, _react.memo)(function () {
482
536
 
483
537
  // 更多操作区块
484
538
  var MoreActionsSection = (0, _mobxReact.observer)(function () {
485
- var _useState1 = (0, _react.useState)(false),
486
- _useState10 = (0, _slicedToArray2["default"])(_useState1, 2),
487
- moreVisible = _useState10[0],
488
- setMoreVisible = _useState10[1];
489
539
  var _useState11 = (0, _react.useState)(false),
490
540
  _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
491
- isShowMeetingDetailPortal = _useState12[0],
492
- setIsShowMeetingDetailPortal = _useState12[1];
541
+ moreVisible = _useState12[0],
542
+ setMoreVisible = _useState12[1];
543
+ var _useState13 = (0, _react.useState)(false),
544
+ _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
545
+ isShowMeetingDetailPortal = _useState14[0],
546
+ setIsShowMeetingDetailPortal = _useState14[1];
493
547
  var _useContext12 = (0, _react.useContext)(_store.StoreContext),
494
548
  newMessageCount = _useContext12.newMessageCount,
495
549
  hasChatPermission = _useContext12.hasChatPermission,
@@ -609,8 +663,22 @@ var ShareStateNavigation = /*#__PURE__*/(0, _react.memo)(function () {
609
663
  console.log('ShareStateNavigation boundaries changed');
610
664
  setStateNavArea(boundaries);
611
665
  }, []);
666
+ var detector = (0, _react.useRef)(null);
667
+ (0, _react.useEffect)(function () {
668
+ var timerId = setTimeout(function () {
669
+ var _detector$current2;
670
+ var bounds = (_detector$current2 = detector.current) === null || _detector$current2 === void 0 ? void 0 : _detector$current2.getBoundaries();
671
+ if (bounds) {
672
+ setStateNavArea(bounds);
673
+ }
674
+ }, FADE_ANIMATION_DURATION);
675
+ return function () {
676
+ return clearTimeout(timerId);
677
+ };
678
+ }, [calculation.isShareActionNavHidden]);
612
679
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_boundaryDetector.BoundaryDetector, {
613
680
  onBoundariesChanged: handleBoundariesChanged,
681
+ ref: detector,
614
682
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_shareStateNav.ShareStateNav, {
615
683
  onMouseEnter: handleMouseEnterNav,
616
684
  onMouseLeave: handleMouseLeaveNav,