@trtc/calls-uikit-vue 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/README-zh_CN.md +83 -0
  2. package/README.md +89 -0
  3. package/debug/GenerateTestUserSig-es.js +26 -0
  4. package/debug/lib-generate-test-usersig-es.min.js +2 -0
  5. package/package.json +42 -0
  6. package/src/Components/TUICallKit.vue +334 -0
  7. package/src/Components/assets/MicrophoneVolume/desktop/mic-off.svg +5 -0
  8. package/src/Components/assets/MicrophoneVolume/desktop/mic-on.svg +5 -0
  9. package/src/Components/assets/base/close.svg +1 -0
  10. package/src/Components/assets/base/error.svg +1 -0
  11. package/src/Components/assets/base/info.svg +1 -0
  12. package/src/Components/assets/base/loading-circle.svg +1 -0
  13. package/src/Components/assets/base/success.svg +1 -0
  14. package/src/Components/assets/base/waring.svg +1 -0
  15. package/src/Components/assets/button/accept.svg +1 -0
  16. package/src/Components/assets/button/background-blur-close.svg +1 -0
  17. package/src/Components/assets/button/background-blur-open.svg +1 -0
  18. package/src/Components/assets/button/camera-close.svg +1 -0
  19. package/src/Components/assets/button/camera-open.svg +1 -0
  20. package/src/Components/assets/button/desktop/arrow.png +0 -0
  21. package/src/Components/assets/button/desktop/fullScreen.svg +4 -0
  22. package/src/Components/assets/button/desktop/inviteUser.svg +1 -0
  23. package/src/Components/assets/button/desktop/minimize.svg +6 -0
  24. package/src/Components/assets/button/hangup.svg +1 -0
  25. package/src/Components/assets/button/microphone-close.svg +1 -0
  26. package/src/Components/assets/button/microphone-open.svg +1 -0
  27. package/src/Components/assets/button/mobile/down.svg +1 -0
  28. package/src/Components/assets/button/mobile/inviteUser.svg +1 -0
  29. package/src/Components/assets/button/mobile/minimize.svg +1 -0
  30. package/src/Components/assets/button/mobile/switch-camera.svg +1 -0
  31. package/src/Components/assets/button/mobile/up.svg +1 -0
  32. package/src/Components/assets/button/speaker-close.svg +1 -0
  33. package/src/Components/assets/button/speaker-open.svg +1 -0
  34. package/src/Components/assets/button/switch-audio.svg +1 -0
  35. package/src/Components/assets/common/arrows.svg +1 -0
  36. package/src/Components/assets/common/call.svg +1 -0
  37. package/src/Components/assets/common/close.svg +1 -0
  38. package/src/Components/assets/common/defaultAvatar.svg +1 -0
  39. package/src/Components/assets/common/loading-audio.svg +1 -0
  40. package/src/Components/assets/common/loading-video.png +0 -0
  41. package/src/Components/assets/common/microphone-volumn-close.svg +1 -0
  42. package/src/Components/assets/desktop/acceptAudio.svg +4 -0
  43. package/src/Components/assets/desktop/acceptVideo.svg +8 -0
  44. package/src/Components/assets/desktop/arrow.png +0 -0
  45. package/src/Components/assets/desktop/camera-false.svg +5 -0
  46. package/src/Components/assets/desktop/camera.svg +6 -0
  47. package/src/Components/assets/desktop/floatCallEnd.svg +3 -0
  48. package/src/Components/assets/desktop/floatFullScreen.svg +3 -0
  49. package/src/Components/assets/desktop/floatMicrophone.svg +4 -0
  50. package/src/Components/assets/desktop/floatMicrophoneClosed.svg +3 -0
  51. package/src/Components/assets/desktop/fullScreen.svg +4 -0
  52. package/src/Components/assets/desktop/hangup.svg +4 -0
  53. package/src/Components/assets/desktop/invite_user.svg +5 -0
  54. package/src/Components/assets/desktop/microphone-false.svg +8 -0
  55. package/src/Components/assets/desktop/microphone.svg +9 -0
  56. package/src/Components/assets/desktop/minimize.svg +6 -0
  57. package/src/Components/assets/desktop/permission/index.ts +11 -0
  58. package/src/Components/assets/desktop/permission/mac/permit-en.jpg +0 -0
  59. package/src/Components/assets/desktop/permission/mac/permit-zh.jpg +0 -0
  60. package/src/Components/assets/desktop/permission/win/permit-en.png +0 -0
  61. package/src/Components/assets/desktop/permission/win/permit-zh.png +0 -0
  62. package/src/Components/assets/desktop/switchScreen.svg +5 -0
  63. package/src/Components/assets/desktop/trans.svg +6 -0
  64. package/src/Components/assets/floatingWindow/desktop/floatCallEnd.svg +3 -0
  65. package/src/Components/assets/floatingWindow/desktop/floatFullScreen.svg +3 -0
  66. package/src/Components/assets/floatingWindow/desktop/floatMicrophone.svg +4 -0
  67. package/src/Components/assets/floatingWindow/desktop/floatMicrophoneClosed.svg +3 -0
  68. package/src/Components/assets/floatingWindow/mobile/camera-close.svg +1 -0
  69. package/src/Components/assets/floatingWindow/mobile/camera-open.svg +1 -0
  70. package/src/Components/assets/floatingWindow/mobile/earphone.svg +1 -0
  71. package/src/Components/assets/floatingWindow/mobile/microphone-close.svg +1 -0
  72. package/src/Components/assets/floatingWindow/mobile/microphone-open.svg +1 -0
  73. package/src/Components/assets/permission/desktop/index.ts +11 -0
  74. package/src/Components/assets/permission/desktop/mac/permit-en.jpg +0 -0
  75. package/src/Components/assets/permission/desktop/mac/permit-zh.jpg +0 -0
  76. package/src/Components/assets/permission/desktop/win/permit-en.png +0 -0
  77. package/src/Components/assets/permission/desktop/win/permit-zh.png +0 -0
  78. package/src/Components/assets/streamInfo/mobile/mic-off-h5.svg +1 -0
  79. package/src/Components/assets/streamInfo/mobile/mic-on-h5.svg +1 -0
  80. package/src/Components/assets/streamInfo/mobile/microphone-close-group.svg +1 -0
  81. package/src/Components/assets/streamInfo/mobile/microphone-close-single.svg +1 -0
  82. package/src/Components/assets/streamInfo/mobile/volumn.svg +1 -0
  83. package/src/Components/assets/streamInfo/networkStatus.png +0 -0
  84. package/src/Components/components/GroupCall/BackGround/BackGround.vue +20 -0
  85. package/src/Components/components/GroupCall/GroupCall.vue +129 -0
  86. package/src/Components/components/GroupCall/MediaContainer/MediaContainer.vue +267 -0
  87. package/src/Components/components/GroupCall/MediaContainer/StreamLoading/StreamLoading.vue +22 -0
  88. package/src/Components/components/SingleCall/MediaContainer/MediaContainer.vue +165 -0
  89. package/src/Components/components/SingleCall/SingleCall.vue +28 -0
  90. package/src/Components/components/SingleCall/hooks/useGetLargeViewName.ts +32 -0
  91. package/src/Components/components/base/Avatar/Avatar.ts +38 -0
  92. package/src/Components/components/base/Avatar/Avatar.vue +53 -0
  93. package/src/Components/components/base/Avatar/style/Avatar.scss +40 -0
  94. package/src/Components/components/base/Button/Button.ts +60 -0
  95. package/src/Components/components/base/Button/Button.vue +61 -0
  96. package/src/Components/components/base/Button/style/Button.scss +42 -0
  97. package/src/Components/components/base/Grid/Grid.ts +26 -0
  98. package/src/Components/components/base/Grid/Grid.vue +40 -0
  99. package/src/Components/components/base/Grid/GridItem/GridItem.vue +81 -0
  100. package/src/Components/components/base/Grid/GridItem/style/GridItem.scss +13 -0
  101. package/src/Components/components/base/Icon/Icon.ts +9 -0
  102. package/src/Components/components/base/Icon/Icon.vue +21 -0
  103. package/src/Components/components/base/Layout/Col/Col.ts +23 -0
  104. package/src/Components/components/base/Layout/Col/Col.vue +46 -0
  105. package/src/Components/components/base/Layout/Col/style/Col.scss +9 -0
  106. package/src/Components/components/base/Layout/Row/Row.ts +23 -0
  107. package/src/Components/components/base/Layout/Row/Row.vue +38 -0
  108. package/src/Components/components/base/Layout/Row/style/Row.scss +10 -0
  109. package/src/Components/components/base/Layout/constant.ts +1 -0
  110. package/src/Components/components/base/Loading/Circle/Circle.ts +13 -0
  111. package/src/Components/components/base/Loading/Circle/Circle.vue +36 -0
  112. package/src/Components/components/base/Loading/Circle/style/Circle.scss +26 -0
  113. package/src/Components/components/base/Loading/Dot/Dot.ts +13 -0
  114. package/src/Components/components/base/Loading/Dot/Dot.vue +44 -0
  115. package/src/Components/components/base/Loading/Dot/style/Dot.scss +61 -0
  116. package/src/Components/components/base/Loading/Loading.ts +29 -0
  117. package/src/Components/components/base/Loading/Loading.vue +36 -0
  118. package/src/Components/components/base/Loading/style/Loading.scss +18 -0
  119. package/src/Components/components/base/Message/Message.ts +117 -0
  120. package/src/Components/components/base/Message/Message.vue +60 -0
  121. package/src/Components/components/base/Message/style/Message.scss +49 -0
  122. package/src/Components/components/base/MessageGroup/MessageGroup.vue +37 -0
  123. package/src/Components/components/base/Overlay/Overlay.ts +46 -0
  124. package/src/Components/components/base/Overlay/Overlay.vue +75 -0
  125. package/src/Components/components/base/Overlay/style/Overlay.scss +40 -0
  126. package/src/Components/components/base/Popover/Popover.ts +36 -0
  127. package/src/Components/components/base/Popover/Popover.vue +40 -0
  128. package/src/Components/components/base/Popover/PopoverWeb/PopoverWeb.vue +110 -0
  129. package/src/Components/components/base/Popover/PopoverWx/PopoverWx.vue +15 -0
  130. package/src/Components/components/base/Popover/style/Popover.scss +30 -0
  131. package/src/Components/components/base/Popover/utils/calculatePosition.ts +50 -0
  132. package/src/Components/components/base/Portal/Portal.ts +14 -0
  133. package/src/Components/components/base/Portal/Portal.vue +22 -0
  134. package/src/Components/components/base/Portal/miniprogram/Portal.vue +20 -0
  135. package/src/Components/components/base/Portal/vue2/Portal.vue +53 -0
  136. package/src/Components/components/base/Portal/vue3/Portal.vue +19 -0
  137. package/src/Components/components/base/TKImage/TKImage.ts +34 -0
  138. package/src/Components/components/base/TKImage/TKImage.vue +77 -0
  139. package/src/Components/components/base/TKImage/style/TKImage.scss +20 -0
  140. package/src/Components/components/base/TKText/TKText.ts +24 -0
  141. package/src/Components/components/base/TKText/TKText.vue +43 -0
  142. package/src/Components/components/base/TKText/style/TKText.scss +19 -0
  143. package/src/Components/components/base/ToggleWindow/ToggleWindow.ts +19 -0
  144. package/src/Components/components/base/ToggleWindow/ToggleWindow.vue +46 -0
  145. package/src/Components/components/base/ToggleWindow/ToggleWindowItem/ToggleWindowItem.ts +5 -0
  146. package/src/Components/components/base/ToggleWindow/ToggleWindowItem/ToggleWindowItem.vue +62 -0
  147. package/src/Components/components/base/ToggleWindow/ToggleWindowItem/style/ToggleWindowItem.scss +38 -0
  148. package/src/Components/components/base/ToggleWindow/constant.ts +1 -0
  149. package/src/Components/components/base/ToggleWindow/style/ToggleWindow.scss +7 -0
  150. package/src/Components/components/base/assets/message/close.svg +5 -0
  151. package/src/Components/components/base/assets/message/error.svg +1 -0
  152. package/src/Components/components/base/assets/message/info.svg +1 -0
  153. package/src/Components/components/base/assets/message/success.svg +1 -0
  154. package/src/Components/components/base/assets/message/warning.svg +1 -0
  155. package/src/Components/components/base/constants/index.ts +8 -0
  156. package/src/Components/components/base/hooks/useListenerEvent.ts +36 -0
  157. package/src/Components/components/base/hooks/useOnClickOutSide.ts +27 -0
  158. package/src/Components/components/base/styles/common.scss +43 -0
  159. package/src/Components/components/base/styles/var.scss +132 -0
  160. package/src/Components/components/base/util/checkEnv.ts +51 -0
  161. package/src/Components/components/base/util/checkVueVersion.ts +11 -0
  162. package/src/Components/components/base/util/classNames.ts +34 -0
  163. package/src/Components/components/base/util/filterObject.ts +11 -0
  164. package/src/Components/components/base/util/index.ts +10 -0
  165. package/src/Components/components/common/AudioStream/AudioStream.ts +29 -0
  166. package/src/Components/components/common/AudioStream/AudioStream.vue +65 -0
  167. package/src/Components/components/common/Button/Accept.vue +66 -0
  168. package/src/Components/components/common/Button/Camera.vue +115 -0
  169. package/src/Components/components/common/Button/FullScreen.vue +32 -0
  170. package/src/Components/components/common/Button/Hangup.vue +57 -0
  171. package/src/Components/components/common/Button/InviteUser.vue +52 -0
  172. package/src/Components/components/common/Button/Microphone.vue +109 -0
  173. package/src/Components/components/common/Button/Minimize.vue +39 -0
  174. package/src/Components/components/common/Button/Reject.vue +52 -0
  175. package/src/Components/components/common/Button/Speaker.vue +98 -0
  176. package/src/Components/components/common/Button/SwitchCamera.vue +58 -0
  177. package/src/Components/components/common/Button/ToggleButtonPanel.vue +44 -0
  178. package/src/Components/components/common/Button/VirtualBackground.vue +76 -0
  179. package/src/Components/components/common/Button/hooks/useConfig.ts +33 -0
  180. package/src/Components/components/common/Button/props/Button.ts +15 -0
  181. package/src/Components/components/common/Button/style/common.scss +5 -0
  182. package/src/Components/components/common/Button/style/desktop.scss +49 -0
  183. package/src/Components/components/common/Button/style/index.scss +2 -0
  184. package/src/Components/components/common/Button/style/mobile.scss +63 -0
  185. package/src/Components/components/common/ButtonPanel/ButtonPanel.vue +238 -0
  186. package/src/Components/components/common/ButtonPanel/config/InitConfig.ts +248 -0
  187. package/src/Components/components/common/ButtonPanel/config/VirtualBackgroundMobileConfig.ts +29 -0
  188. package/src/Components/components/common/ButtonPanel/hooks/useButtonPanelLayout.ts +63 -0
  189. package/src/Components/components/common/DeviceSelect/DeviceSelect.ts +11 -0
  190. package/src/Components/components/common/DeviceSelect/DeviceSelect.vue +158 -0
  191. package/src/Components/components/common/FloatWindow/FloatWindow.vue +64 -0
  192. package/src/Components/components/common/FloatWindow/desktop/FloatWindow.vue +106 -0
  193. package/src/Components/components/common/FloatWindow/mobile/FloatWindow.vue +28 -0
  194. package/src/Components/components/common/FloatWindow/mobile/FloatWindowGroupCall.vue +141 -0
  195. package/src/Components/components/common/FloatWindow/mobile/FloatWindowSingleCall.vue +109 -0
  196. package/src/Components/components/common/JoinGroupCard/JoinGroupCard.vue +51 -0
  197. package/src/Components/components/common/JoinGroupCard/desktop/JoinGroupCard.scss +80 -0
  198. package/src/Components/components/common/JoinGroupCard/desktop/JoinGroupCard.vue +57 -0
  199. package/src/Components/components/common/JoinGroupCard/mobile/JoinGroupCard.scss +60 -0
  200. package/src/Components/components/common/JoinGroupCard/mobile/JoinGroupCard.vue +65 -0
  201. package/src/Components/components/common/MicVolume/MicVolume.vue +37 -0
  202. package/src/Components/components/common/MicVolume/MicVolumeClosed.vue +11 -0
  203. package/src/Components/components/common/MicrophoneVolume/MicrophoneVolume.ts +10 -0
  204. package/src/Components/components/common/MicrophoneVolume/MicrophoneVolume.vue +61 -0
  205. package/src/Components/components/common/OverlayStream/OverlayStream.ts +102 -0
  206. package/src/Components/components/common/OverlayStream/OverlayStream.vue +104 -0
  207. package/src/Components/components/common/OverlayStream/style/OverlayStream.scss +12 -0
  208. package/src/Components/components/common/OverlayStream/style/mobile.scss +32 -0
  209. package/src/Components/components/common/OverlayStream/style/pc.scss +21 -0
  210. package/src/Components/components/common/PermitTip/CloseIcon.vue +3 -0
  211. package/src/Components/components/common/PermitTip/PermitTip.ts +33 -0
  212. package/src/Components/components/common/PermitTip/PermitTip.vue +62 -0
  213. package/src/Components/components/common/PermitTip/SystemPermitTip.vue +160 -0
  214. package/src/Components/components/common/Player/Player.ts +18 -0
  215. package/src/Components/components/common/Player/Player.vue +59 -0
  216. package/src/Components/components/common/Player/WeChatPlayer/WeChatPlayer.vue +101 -0
  217. package/src/Components/components/common/Player/WeChatPlayer/style/index.scss +38 -0
  218. package/src/Components/components/common/Popover/Popover.vue +85 -0
  219. package/src/Components/components/common/Pusher/Pusher.ts +18 -0
  220. package/src/Components/components/common/Pusher/Pusher.vue +78 -0
  221. package/src/Components/components/common/Pusher/WeChatPusher/WeChatPusher.vue +70 -0
  222. package/src/Components/components/common/Pusher/WeChatPusher/style/index.scss +37 -0
  223. package/src/Components/components/common/SelectUser/SelectUser.vue +74 -0
  224. package/src/Components/components/common/SelectUser/components/Dialog/TDialog.vue +94 -0
  225. package/src/Components/components/common/SelectUser/components/Dialog/style/color.css +43 -0
  226. package/src/Components/components/common/SelectUser/components/Dialog/style/dialog.css +3 -0
  227. package/src/Components/components/common/SelectUser/components/Dialog/style/h5.css +49 -0
  228. package/src/Components/components/common/SelectUser/components/Dialog/style/web.css +55 -0
  229. package/src/Components/components/common/SelectUser/components/Icon/TIcon.vue +44 -0
  230. package/src/Components/components/common/SelectUser/components/Icon/style/icon.css +6 -0
  231. package/src/Components/components/common/SelectUser/components/Transfer/TTransfer.vue +304 -0
  232. package/src/Components/components/common/SelectUser/components/Transfer/icon/back.svg +16 -0
  233. package/src/Components/components/common/SelectUser/components/Transfer/icon/cancel.svg +23 -0
  234. package/src/Components/components/common/SelectUser/components/Transfer/icon/selected.svg +27 -0
  235. package/src/Components/components/common/SelectUser/components/Transfer/style/color.css +64 -0
  236. package/src/Components/components/common/SelectUser/components/Transfer/style/h5.css +86 -0
  237. package/src/Components/components/common/SelectUser/components/Transfer/style/transfer.css +17 -0
  238. package/src/Components/components/common/SelectUser/components/Transfer/style/web.css +146 -0
  239. package/src/Components/components/common/SelectUser/index.ts +12 -0
  240. package/src/Components/components/common/Swiper/Swiper.vue +145 -0
  241. package/src/Components/components/common/Swiper/SwiperSlider.vue +55 -0
  242. package/src/Components/components/common/Swiper/index.ts +10 -0
  243. package/src/Components/components/common/Swiper/useSlide.ts +56 -0
  244. package/src/Components/components/common/Swiper/useSwiperSliders.ts +34 -0
  245. package/src/Components/components/common/SwiperWx/Swiper.vue +123 -0
  246. package/src/Components/components/common/SwiperWx/SwiperSlider.vue +87 -0
  247. package/src/Components/components/common/SwiperWx/index.ts +5 -0
  248. package/src/Components/components/common/TKStreamInfo/StreamInfo.ts +34 -0
  249. package/src/Components/components/common/TKStreamInfo/StreamInfoMobile.vue +82 -0
  250. package/src/Components/components/common/TKStreamInfo/StreamInfoPC.vue +58 -0
  251. package/src/Components/components/common/TKStreamInfo/TKStreamInfo.vue +43 -0
  252. package/src/Components/components/common/Timer/Timer.ts +14 -0
  253. package/src/Components/components/common/Timer/Timer.vue +24 -0
  254. package/src/Components/components/common/Tip/Tip.ts +5 -0
  255. package/src/Components/components/common/Tip/Tip.vue +67 -0
  256. package/src/Components/components/common/Toast/Toast.ts +84 -0
  257. package/src/Components/components/common/Toast/Toast.vue +133 -0
  258. package/src/Components/components/common/Toast/index.ts +6 -0
  259. package/src/Components/components/common/Toast/type.ts +16 -0
  260. package/src/Components/components/common/TopBar/TopBar.ts +8 -0
  261. package/src/Components/components/common/TopBar/TopBar.vue +116 -0
  262. package/src/Components/components/common/Waiting/Waiting.vue +126 -0
  263. package/src/Components/components/config/button/ClosedPanelUI.ts +109 -0
  264. package/src/Components/components/config/button/DefaultUI.ts +544 -0
  265. package/src/Components/components/config/button/index.ts +2 -0
  266. package/src/Components/context/ButtonPanelContext.ts +6 -0
  267. package/src/Components/context/CallInfoContext.ts +15 -0
  268. package/src/Components/context/CallerUserInfoContext.ts +9 -0
  269. package/src/Components/context/CustomUIConfigContext.ts +1 -0
  270. package/src/Components/context/FloatWindowContext.ts +5 -0
  271. package/src/Components/context/FocusItemContext.ts +1 -0
  272. package/src/Components/context/IsClickableContext.ts +1 -0
  273. package/src/Components/context/PopoverContext.ts +1 -0
  274. package/src/Components/context/TranslateContext.ts +1 -0
  275. package/src/Components/context/UserInfoContextExcludeVolume.ts +8 -0
  276. package/src/Components/context/index.ts +10 -0
  277. package/src/Components/hooks/index.ts +20 -0
  278. package/src/Components/hooks/useButtonPanelStatus.ts +6 -0
  279. package/src/Components/hooks/useCallDuration.ts +32 -0
  280. package/src/Components/hooks/useCallInfoContext.ts +6 -0
  281. package/src/Components/hooks/useCallerUserInfoContext.ts +6 -0
  282. package/src/Components/hooks/useCustomUI.ts +7 -0
  283. package/src/Components/hooks/useCustomUIButtonConfig.ts +96 -0
  284. package/src/Components/hooks/useDeviceList.ts +51 -0
  285. package/src/Components/hooks/useFloatWindowContext.ts +6 -0
  286. package/src/Components/hooks/useFocusContext.ts +6 -0
  287. package/src/Components/hooks/useGetVolumeMap.ts +59 -0
  288. package/src/Components/hooks/useGroupCallLayout.ts +142 -0
  289. package/src/Components/hooks/useIsClickableContext.ts +6 -0
  290. package/src/Components/hooks/useJoinGroupCall.ts +69 -0
  291. package/src/Components/hooks/useNetWorkStatus.ts +30 -0
  292. package/src/Components/hooks/usePlayer.ts +32 -0
  293. package/src/Components/hooks/usePopover.ts +6 -0
  294. package/src/Components/hooks/useTip.ts +42 -0
  295. package/src/Components/hooks/useTranslate.ts +7 -0
  296. package/src/Components/hooks/useUserInfoContextExcludeVolume.ts +6 -0
  297. package/src/Components/hooks/useViewBackgroundConfig.ts +12 -0
  298. package/src/Components/util/deepClone.ts +15 -0
  299. package/src/Components/util/findValues.ts +21 -0
  300. package/src/Components/util/index.ts +6 -0
  301. package/src/Components/util/isEmpty.ts +15 -0
  302. package/src/Components/util/isEqual.ts +40 -0
  303. package/src/Components/util/isObject.ts +3 -0
  304. package/src/Components/util/stringToPath.ts +78 -0
  305. package/src/Components/util/toggleScreen.ts +10 -0
  306. package/src/Components/util/uiConfig.ts +74 -0
  307. package/src/TUICallService/CallService/UIDesign.ts +174 -0
  308. package/src/TUICallService/CallService/bellContext.ts +88 -0
  309. package/src/TUICallService/CallService/chatCombine.ts +313 -0
  310. package/src/TUICallService/CallService/engineEventHandler.ts +404 -0
  311. package/src/TUICallService/CallService/index.ts +799 -0
  312. package/src/TUICallService/CallService/miniProgram.ts +65 -0
  313. package/src/TUICallService/CallService/utils.ts +281 -0
  314. package/src/TUICallService/TUIGlobal/tuiGlobal.ts +43 -0
  315. package/src/TUICallService/TUIStore/callStore.ts +93 -0
  316. package/src/TUICallService/TUIStore/tuiStore.ts +167 -0
  317. package/src/TUICallService/assets/phone_dialing.mp3 +0 -0
  318. package/src/TUICallService/assets/phone_ringing.mp3 +0 -0
  319. package/src/TUICallService/const/call.ts +157 -0
  320. package/src/TUICallService/const/error.ts +20 -0
  321. package/src/TUICallService/const/index.ts +103 -0
  322. package/src/TUICallService/const/log.ts +9 -0
  323. package/src/TUICallService/index.ts +37 -0
  324. package/src/TUICallService/interface/ICallService.ts +70 -0
  325. package/src/TUICallService/interface/ICallStore.ts +55 -0
  326. package/src/TUICallService/interface/ITUIGlobal.ts +36 -0
  327. package/src/TUICallService/interface/ITUIStore.ts +87 -0
  328. package/src/TUICallService/interface/index.ts +4 -0
  329. package/src/TUICallService/locales/en.ts +135 -0
  330. package/src/TUICallService/locales/index.ts +57 -0
  331. package/src/TUICallService/locales/ja_JP.ts +134 -0
  332. package/src/TUICallService/locales/zh-cn.ts +130 -0
  333. package/src/TUICallService/serve/callManager.ts +109 -0
  334. package/src/TUICallService/utils/common-utils.ts +269 -0
  335. package/src/TUICallService/utils/decorators/promise-retry.ts +51 -0
  336. package/src/TUICallService/utils/env.ts +51 -0
  337. package/src/TUICallService/utils/index.ts +32 -0
  338. package/src/TUICallService/utils/is-empty.ts +31 -0
  339. package/src/TUICallService/utils/retry.ts +88 -0
  340. package/src/TUICallService/utils/timer.ts +162 -0
  341. package/src/TUICallService/utils/validate/avoidRepeatedCall.ts +39 -0
  342. package/src/TUICallService/utils/validate/index.ts +7 -0
  343. package/src/adapter-vue.ts +4 -0
  344. package/src/index.ts +65 -0
  345. package/stats.html +4949 -0
  346. package/tuicall-uikit-vue.es.js +8568 -0
  347. package/tuicall-uikit-vue.umd.js +2 -0
  348. package/types/Components/assets/desktop/permission/index.d.ts +5 -0
  349. package/types/Components/assets/permission/desktop/index.d.ts +5 -0
  350. package/types/Components/components/SingleCall/hooks/useGetLargeViewName.d.ts +2 -0
  351. package/types/Components/components/base/Avatar/Avatar.d.ts +34 -0
  352. package/types/Components/components/base/Button/Button.d.ts +56 -0
  353. package/types/Components/components/base/Grid/Grid.d.ts +23 -0
  354. package/types/Components/components/base/Icon/Icon.d.ts +9 -0
  355. package/types/Components/components/base/Layout/Col/Col.d.ts +20 -0
  356. package/types/Components/components/base/Layout/Row/Row.d.ts +20 -0
  357. package/types/Components/components/base/Layout/constant.d.ts +1 -0
  358. package/types/Components/components/base/Loading/Circle/Circle.d.ts +13 -0
  359. package/types/Components/components/base/Loading/Dot/Dot.d.ts +13 -0
  360. package/types/Components/components/base/Loading/Loading.d.ts +26 -0
  361. package/types/Components/components/base/Message/Message.d.ts +50 -0
  362. package/types/Components/components/base/Overlay/Overlay.d.ts +45 -0
  363. package/types/Components/components/base/Popover/Popover.d.ts +34 -0
  364. package/types/Components/components/base/Popover/utils/calculatePosition.d.ts +4 -0
  365. package/types/Components/components/base/Portal/Portal.d.ts +14 -0
  366. package/types/Components/components/base/TKImage/TKImage.d.ts +33 -0
  367. package/types/Components/components/base/TKText/TKText.d.ts +24 -0
  368. package/types/Components/components/base/ToggleWindow/ToggleWindow.d.ts +18 -0
  369. package/types/Components/components/base/ToggleWindow/ToggleWindowItem/ToggleWindowItem.d.ts +5 -0
  370. package/types/Components/components/base/ToggleWindow/constant.d.ts +1 -0
  371. package/types/Components/components/base/constants/index.d.ts +7 -0
  372. package/types/Components/components/base/hooks/useListenerEvent.d.ts +13 -0
  373. package/types/Components/components/base/hooks/useOnClickOutSide.d.ts +1 -0
  374. package/types/Components/components/base/util/checkEnv.d.ts +10 -0
  375. package/types/Components/components/base/util/checkVueVersion.d.ts +4 -0
  376. package/types/Components/components/base/util/classNames.d.ts +1 -0
  377. package/types/Components/components/base/util/filterObject.d.ts +1 -0
  378. package/types/Components/components/base/util/index.d.ts +5 -0
  379. package/types/Components/components/common/AudioStream/AudioStream.d.ts +29 -0
  380. package/types/Components/components/common/Button/hooks/useConfig.d.ts +2 -0
  381. package/types/Components/components/common/Button/props/Button.d.ts +15 -0
  382. package/types/Components/components/common/ButtonPanel/config/InitConfig.d.ts +89 -0
  383. package/types/Components/components/common/ButtonPanel/config/VirtualBackgroundMobileConfig.d.ts +66 -0
  384. package/types/Components/components/common/ButtonPanel/hooks/useButtonPanelLayout.d.ts +4 -0
  385. package/types/Components/components/common/DeviceSelect/DeviceSelect.d.ts +11 -0
  386. package/types/Components/components/common/MicrophoneVolume/MicrophoneVolume.d.ts +10 -0
  387. package/types/Components/components/common/OverlayStream/OverlayStream.d.ts +92 -0
  388. package/types/Components/components/common/PermitTip/PermitTip.d.ts +3 -0
  389. package/types/Components/components/common/Player/Player.d.ts +18 -0
  390. package/types/Components/components/common/Pusher/Pusher.d.ts +18 -0
  391. package/types/Components/components/common/SelectUser/index.d.ts +6 -0
  392. package/types/Components/components/common/Swiper/index.d.ts +7 -0
  393. package/types/Components/components/common/Swiper/useSlide.d.ts +7 -0
  394. package/types/Components/components/common/Swiper/useSwiperSliders.d.ts +1 -0
  395. package/types/Components/components/common/SwiperWx/index.d.ts +4 -0
  396. package/types/Components/components/common/TKStreamInfo/StreamInfo.d.ts +34 -0
  397. package/types/Components/components/common/Timer/Timer.d.ts +14 -0
  398. package/types/Components/components/common/Tip/Tip.d.ts +5 -0
  399. package/types/Components/components/common/Toast/Toast.d.ts +4 -0
  400. package/types/Components/components/common/Toast/index.d.ts +2 -0
  401. package/types/Components/components/common/Toast/type.d.ts +16 -0
  402. package/types/Components/components/common/TopBar/TopBar.d.ts +8 -0
  403. package/types/Components/components/config/button/ClosedPanelUI.d.ts +3380 -0
  404. package/types/Components/components/config/button/DefaultUI.d.ts +14751 -0
  405. package/types/Components/components/config/button/index.d.ts +2 -0
  406. package/types/Components/context/ButtonPanelContext.d.ts +4 -0
  407. package/types/Components/context/CallInfoContext.d.ts +13 -0
  408. package/types/Components/context/CallerUserInfoContext.d.ts +8 -0
  409. package/types/Components/context/CustomUIConfigContext.d.ts +1 -0
  410. package/types/Components/context/FloatWindowContext.d.ts +4 -0
  411. package/types/Components/context/FocusItemContext.d.ts +1 -0
  412. package/types/Components/context/IsClickableContext.d.ts +1 -0
  413. package/types/Components/context/PopoverContext.d.ts +1 -0
  414. package/types/Components/context/TranslateContext.d.ts +1 -0
  415. package/types/Components/context/UserInfoContextExcludeVolume.d.ts +6 -0
  416. package/types/Components/context/index.d.ts +10 -0
  417. package/types/Components/hooks/index.d.ts +20 -0
  418. package/types/Components/hooks/useButtonPanelStatus.d.ts +2 -0
  419. package/types/Components/hooks/useCallDuration.d.ts +3 -0
  420. package/types/Components/hooks/useCallInfoContext.d.ts +2 -0
  421. package/types/Components/hooks/useCallerUserInfoContext.d.ts +2 -0
  422. package/types/Components/hooks/useCustomUI.d.ts +3 -0
  423. package/types/Components/hooks/useCustomUIButtonConfig.d.ts +1 -0
  424. package/types/Components/hooks/useDeviceList.d.ts +7 -0
  425. package/types/Components/hooks/useFloatWindowContext.d.ts +2 -0
  426. package/types/Components/hooks/useFocusContext.d.ts +1 -0
  427. package/types/Components/hooks/useGetVolumeMap.d.ts +1 -0
  428. package/types/Components/hooks/useGroupCallLayout.d.ts +1 -0
  429. package/types/Components/hooks/useIsClickableContext.d.ts +2 -0
  430. package/types/Components/hooks/useJoinGroupCall.d.ts +9 -0
  431. package/types/Components/hooks/useNetWorkStatus.d.ts +3 -0
  432. package/types/Components/hooks/usePlayer.d.ts +1 -0
  433. package/types/Components/hooks/usePopover.d.ts +2 -0
  434. package/types/Components/hooks/useTip.d.ts +5 -0
  435. package/types/Components/hooks/useTranslate.d.ts +2 -0
  436. package/types/Components/hooks/useUserInfoContextExcludeVolume.d.ts +2 -0
  437. package/types/Components/hooks/useViewBackgroundConfig.d.ts +1 -0
  438. package/types/Components/util/deepClone.d.ts +1 -0
  439. package/types/Components/util/findValues.d.ts +1 -0
  440. package/types/Components/util/index.d.ts +6 -0
  441. package/types/Components/util/isEmpty.d.ts +1 -0
  442. package/types/Components/util/isEqual.d.ts +1 -0
  443. package/types/Components/util/isObject.d.ts +1 -0
  444. package/types/Components/util/stringToPath.d.ts +12 -0
  445. package/types/Components/util/toggleScreen.d.ts +1 -0
  446. package/types/Components/util/uiConfig.d.ts +3 -0
  447. package/types/TUICallService/CallService/UIDesign.d.ts +28 -0
  448. package/types/TUICallService/CallService/bellContext.d.ts +19 -0
  449. package/types/TUICallService/CallService/chatCombine.d.ts +50 -0
  450. package/types/TUICallService/CallService/engineEventHandler.d.ts +35 -0
  451. package/types/TUICallService/CallService/index.d.ts +98 -0
  452. package/types/TUICallService/CallService/miniProgram.d.ts +7 -0
  453. package/types/TUICallService/CallService/utils.d.ts +42 -0
  454. package/types/TUICallService/TUIGlobal/tuiGlobal.d.ts +21 -0
  455. package/types/TUICallService/TUIStore/callStore.d.ts +10 -0
  456. package/types/TUICallService/TUIStore/tuiStore.d.ts +57 -0
  457. package/types/TUICallService/const/call.d.ts +141 -0
  458. package/types/TUICallService/const/error.d.ts +2 -0
  459. package/types/TUICallService/const/index.d.ts +27 -0
  460. package/types/TUICallService/const/log.d.ts +7 -0
  461. package/types/TUICallService/index.d.ts +5 -0
  462. package/types/TUICallService/interface/ICallService.d.ts +69 -0
  463. package/types/TUICallService/interface/ICallStore.d.ts +47 -0
  464. package/types/TUICallService/interface/ITUIGlobal.d.ts +36 -0
  465. package/types/TUICallService/interface/ITUIStore.d.ts +83 -0
  466. package/types/TUICallService/interface/index.d.ts +4 -0
  467. package/types/TUICallService/locales/en.d.ts +128 -0
  468. package/types/TUICallService/locales/index.d.ts +10 -0
  469. package/types/TUICallService/locales/ja_JP.d.ts +127 -0
  470. package/types/TUICallService/locales/zh-cn.d.ts +123 -0
  471. package/types/TUICallService/serve/callManager.d.ts +11 -0
  472. package/types/TUICallService/utils/common-utils.d.ts +62 -0
  473. package/types/TUICallService/utils/decorators/promise-retry.d.ts +32 -0
  474. package/types/TUICallService/utils/env.d.ts +10 -0
  475. package/types/TUICallService/utils/index.d.ts +2 -0
  476. package/types/TUICallService/utils/is-empty.d.ts +2 -0
  477. package/types/TUICallService/utils/retry.d.ts +36 -0
  478. package/types/TUICallService/utils/timer.d.ts +64 -0
  479. package/types/TUICallService/utils/validate/avoidRepeatedCall.d.ts +10 -0
  480. package/types/TUICallService/utils/validate/index.d.ts +2 -0
  481. package/types/adapter-vue.d.ts +4 -0
  482. package/types/index.d.ts +11 -0
  483. package/types/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,5 @@
1
+ <svg color="red" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" class="design-iconfont">
2
+ <rect width="40" height="40" rx="20" fill="#DADADA" fill-opacity=".3"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M20 12C19.4477 12 19 12.4477 19 13V19H13C12.4477 19 12 19.4477 12 20C12 20.5523 12.4477 21 13 21H19V27C19 27.5523 19.4477 28 20 28C20.5523 28 21 27.5523 21 27V21H27C27.5523 21 28 20.5523 28 20C28 19.4477 27.5523 19 27 19H21V13C21 12.4477 20.5523 12 20 12Z" fill="#fff"/>
4
+ </svg>
5
+
@@ -0,0 +1,8 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" class="design-iconfont">
2
+ <rect opacity=".3" width="40" height="40" rx="20" fill="#fff" />
3
+ <path fill-rule="evenodd" clip-rule="evenodd"
4
+ d="M20 11.5C18.0697 11.5 16.5 12.9678 16.5 14.7727V19.6818C16.5 20.2623 16.6623 20.8078 16.9468 21.281L23.4997 14.7281C23.4741 12.9437 21.9143 11.5 20 11.5ZM23.5 18.9704L19.5436 22.9269C19.693 22.9451 19.8453 22.9545 20 22.9545C21.9303 22.9545 23.5 21.4867 23.5 19.6818V18.9704ZM15.7321 22.4957C15.1207 21.7452 14.75 20.8727 14.75 20.0171V18.8636L14.7432 18.761C14.6892 18.3575 14.3211 18.0454 13.875 18.0454C13.3918 18.0454 13 18.4117 13 18.8636V20.0171L13.0047 20.2215C13.0611 21.4647 13.6284 22.6883 14.5245 23.7033L15.7321 22.4957ZM16.9482 25.5222L18.2094 24.261C18.7777 24.4715 19.3834 24.5909 20 24.5909C22.6589 24.5909 25.1138 22.3716 25.2445 20.1981L25.25 20.0171V18.8811C25.25 18.4293 25.6418 18.0629 26.125 18.0629C26.5711 18.0629 26.9392 18.3751 26.9932 18.7785L27 18.8811V20.0171C27 23.1518 23.6976 26.2272 20 26.2272C18.9256 26.2272 17.8845 25.9676 16.9482 25.5222ZM16.5 28.6818C16.5 28.2294 16.892 27.8636 17.375 27.8636H22.625C23.1089 27.8636 23.5 28.2294 23.5 28.6818C23.5 29.1343 23.1089 29.5 22.625 29.5H17.375C16.892 29.5 16.5 29.1343 16.5 28.6818Z"
5
+ fill="#fff" />
6
+ <rect x="27.249" y="11.7688" width="1.5" height="22" rx=".75" transform="rotate(45 27.249 11.7688)"
7
+ fill="#FE3C44" />
8
+ </svg>
@@ -0,0 +1,9 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" class="design-iconfont">
2
+ <rect width="40" height="40" rx="20" fill="#DADADA" fill-opacity=".3" />
3
+ <path fill-rule="evenodd" clip-rule="evenodd"
4
+ d="M16.6665 14.1667C16.6665 12.3284 18.1615 10.8334 19.9998 10.8334C21.8382 10.8334 23.3332 12.3284 23.3332 14.1667V19.1667C23.3332 21.005 21.8382 22.5 19.9998 22.5C18.1615 22.5 16.6665 21.005 16.6665 19.1667V14.1667ZM16.6665 28.3334C16.6665 27.8725 17.0398 27.5 17.4998 27.5H22.4998C22.9607 27.5 23.3332 27.8725 23.3332 28.3334C23.3332 28.7942 22.9607 29.1667 22.4998 29.1667H17.4998C17.0398 29.1667 16.6665 28.7942 16.6665 28.3334Z"
5
+ fill="#fff" />
6
+ <path
7
+ d="M25.8332 18.3512V19.5083C25.8332 22.0811 23.2215 25 19.9998 25C16.7782 25 14.1665 22.0811 14.1665 19.5083V18.3334"
8
+ stroke="#fff" stroke-width="1.66667" stroke-linecap="round" />
9
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.769231" y="0.769231" width="18.4615" height="18.4615" rx="0.769231" stroke="white" stroke-width="1.53846"/>
3
+ <path d="M11.5385 12.3077C11.5385 11.8829 11.8829 11.5385 12.3077 11.5385H19.2308V18.4615C19.2308 18.8864 18.8864 19.2308 18.4616 19.2308H11.5385V12.3077Z" stroke="white" stroke-width="1.53846"/>
4
+ <path d="M0.769287 0.769226L8.9723 8.92412" stroke="white" stroke-width="1.53846"/>
5
+ <path d="M9.4967 4.71716V9.4486H4.74146" stroke="white" stroke-width="1.53846" stroke-linecap="round" stroke-linejoin="round"/>
6
+ </svg>
@@ -0,0 +1,11 @@
1
+ import MacPermitZhPng from './mac/permit-zh.jpg';
2
+ import MacPermitEnPng from './mac/permit-en.jpg';
3
+ import WinPermitZhPng from './win/permit-zh.png';
4
+ import WinPermitEnPng from './win/permit-en.png';
5
+
6
+ export {
7
+ MacPermitZhPng,
8
+ MacPermitEnPng,
9
+ WinPermitZhPng,
10
+ WinPermitEnPng,
11
+ };
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" class="design-iconfont">
2
+ <path
3
+ d="M13.733 6.99996C13.7997 6.99996 13.933 6.99996 13.9997 6.93329C14.133 6.86663 14.2663 6.73329 14.333 6.59996C14.3997 6.46663 14.3997 6.26663 14.333 6.06663C14.2663 5.99996 14.2663 5.93329 14.1997 5.86663L10.1997 1.86663C9.93301 1.59996 9.53301 1.59996 9.26634 1.86663C8.99967 2.13329 8.99967 2.53329 9.26634 2.79996L12.133 5.66663H1.99967C1.59967 5.66663 1.33301 5.93329 1.33301 6.33329C1.33301 6.73329 1.59967 6.99996 1.99967 6.99996H13.733ZM13.9997 8.99996H2.26634C2.19967 8.99996 2.06634 8.99996 1.99967 9.06663C1.86634 9.13329 1.73301 9.26663 1.66634 9.39996C1.59967 9.53329 1.59967 9.73329 1.66634 9.93329C1.73301 9.99996 1.73301 10.0666 1.79967 10.1333L5.79967 14.1333C5.93301 14.2666 6.13301 14.3333 6.26634 14.3333C6.39967 14.3333 6.59967 14.2666 6.73301 14.1333C6.99967 13.8666 6.99967 13.4666 6.73301 13.2L3.86634 10.3333H13.9997C14.3997 10.3333 14.6663 10.0666 14.6663 9.66663C14.6663 9.26663 14.3997 8.99996 13.9997 8.99996Z"
4
+ fill="#fff" />
5
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" class="design-iconfont">
2
+ <rect width="40" height="40" rx="20" fill="#DADADA" fill-opacity=".3" />
3
+ <path d="M17.7311 15.7485C17.7311 15.4339 18.1333 15.289 18.3596 15.507L22.9808 19.6831C23.1314 19.828 23.1314 20.0453 22.9808 20.166L18.3341 24.3435C18.1086 24.5608 17.7063 24.3917 17.7063 24.102V22.3396C17.7063 22.1464 17.5303 22.0016 17.3296 22.0016C14.2147 22.074 12.4319 22.8707 10.649 24.5366C10.3726 24.778 9.89538 24.5366 10.0205 24.1986C11.1007 21.1565 12.9345 18.4042 17.7311 17.8006V15.7485Z" fill="#fff" />
4
+ <path d="M24.7603 17.0411C26.4103 18.6911 26.4328 21.3438 24.8106 22.9661C24.5788 23.1978 24.1999 23.1946 23.9642 22.9589C23.7284 22.7232 23.7252 22.3442 23.957 22.1124C25.1157 20.9537 25.0996 19.0589 23.9211 17.8803C23.6853 17.6446 23.6821 17.2656 23.9139 17.0339C24.1456 16.8021 24.5246 16.8053 24.7603 17.0411Z" fill="#fff" />
5
+ <path d="M26.8765 14.925C29.7051 17.7536 29.7437 22.3011 26.9627 25.0821C26.731 25.3138 26.352 25.3106 26.1163 25.0749C25.8806 24.8392 25.8773 24.4602 26.1091 24.2285C28.4266 21.911 28.3944 18.1214 26.0373 15.7642C25.8016 15.5285 25.7983 15.1495 26.0301 14.9178C26.2618 14.686 26.6408 14.6893 26.8765 14.925Z" fill="#fff" />
6
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M18.4437 12.449C18.4437 14.1142 18.2336 15.3515 21.5089 15.7126C24.7875 16.0737 24.3666 13.6794 24.3662 12.0669C24.3649 10.2061 20.0602 7.61895 13.2726 7.6173C6.48662 7.61735 2.1789 10.205 2.17888 12.067C2.17887 13.68 1.75621 16.0726 5.03315 15.7123C8.31009 15.3537 8.10005 14.1155 8.09837 12.4495C8.10134 11.2862 10.7587 11.0316 13.2725 11.0298C15.7863 11.0281 18.4454 11.2844 18.4437 12.449Z" fill="#FE3C44"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M2.33337 9.33331H0.333374V0.99998C0.333374 0.63179 0.631851 0.333313 1.00004 0.333313L9.33338 0.333313V2.33331H3.74758L10.0405 8.62624L8.62627 10.0404L2.33337 3.74753V9.33331ZM18.3331 11.3333H20.3331V19.6666C20.3331 20.0348 20.0347 20.3333 19.6665 20.3333L11.3331 20.3333L11.3331 18.3333H16.9189L10.626 12.0403L12.0402 10.6261L18.3331 16.919V11.3333Z" fill="#101419"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M6.66666 4.16668C6.66666 2.32834 8.16166 0.833344 9.99999 0.833344C11.8383 0.833344 13.3333 2.32834 13.3333 4.16668V9.16668C13.3333 11.005 11.8383 12.5 9.99999 12.5C8.16166 12.5 6.66666 11.005 6.66666 9.16668V4.16668ZM6.66666 18.3333C6.66666 17.8725 7.03999 17.5 7.49999 17.5H12.5C12.9608 17.5 13.3333 17.8725 13.3333 18.3333C13.3333 18.7942 12.9608 19.1667 12.5 19.1667H7.49999C7.03999 19.1667 6.66666 18.7942 6.66666 18.3333Z" fill="#101419"/>
3
+ <path d="M15.8333 8.3512V9.50825C15.8333 12.081 13.2217 15 9.99999 15C6.77833 15 4.16666 12.081 4.16666 9.50825V8.33334" stroke="#101419" stroke-width="1.66667" stroke-linecap="round"/>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="15" height="21" viewBox="0 0 15 21" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M14.6247 0.719168C14.1934 0.374158 13.5641 0.44408 13.2191 0.875342L10.8168 3.83203C10.1789 3.02455 9.15387 2.50004 8.00001 2.50004C6.06976 2.50004 4.50001 3.96785 4.50001 5.77276V10.6819C4.50001 10.9563 4.5363 11.2229 4.60463 11.4778L3.388 12.9752C2.98449 12.3433 2.75001 11.6522 2.75001 10.9717V9.81819L2.74319 9.71556C2.6892 9.31213 2.32108 9.00001 1.87501 9.00001C1.39176 9.00001 1.00001 9.36632 1.00001 9.81819V10.9717L1.00466 11.1761C1.05557 12.2968 1.52161 13.4016 2.26939 14.3519L0.219137 16.8753L0.146861 16.9782C-0.112977 17.4017 -0.0227767 17.9624 0.375311 18.2809C0.806573 18.6259 1.43587 18.556 1.78088 18.1247L3.71661 15.7423C3.71849 15.7437 3.72038 15.745 3.72227 15.7464L4.2997 15.0246L8.28088 10.1247L14.7809 2.12473L14.8532 2.02191C15.113 1.59834 15.0228 1.03764 14.6247 0.719168ZM7.72499 13.9446L11.5 9.22582V10.6819C11.5 12.4868 9.93026 13.9546 8.00001 13.9546C7.90746 13.9546 7.81575 13.9512 7.72499 13.9446ZM6.60445 15.3453L5.50798 16.7159C6.29225 17.0136 7.13532 17.1818 8.00001 17.1818C11.6976 17.1818 15 14.1064 15 10.9717V9.83572L14.9932 9.73309C14.9392 9.32966 14.5711 9.01754 14.125 9.01754C13.6418 9.01754 13.25 9.38385 13.25 9.83572V10.9717L13.2445 11.1527C13.1138 13.3262 10.6589 15.5455 8.00001 15.5455C7.52424 15.5455 7.05501 15.4744 6.60445 15.3453ZM5.37501 18.8637C4.89201 18.8637 4.50001 19.2294 4.50001 19.6819C4.50001 20.1343 4.89201 20.5 5.37501 20.5H10.625C11.1089 20.5 11.5 20.1343 11.5 19.6819C11.5 19.2294 11.1089 18.8637 10.625 18.8637H5.37501Z" fill="#101419"/>
3
+ </svg>
@@ -0,0 +1 @@
1
+ <svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.672 5.777a.6.6 0 0 0-.331.536v2.693a.6.6 0 0 0 .33.536l2.803 1.406a.2.2 0 0 0 .29-.179V4.55a.2.2 0 0 0-.29-.178l-2.802 1.406z" fill="#ADADAD"/><g filter="url(#a)"><rect x=".667" y="2.553" width="10.667" height="10.213" rx="1.5" fill="#ADADAD"/></g><defs><filter id="a" x="-7.333" y="-5.447" width="26.667" height="26.213" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feGaussianBlur in="BackgroundImageFix" stdDeviation="4"/><feComposite in2="SourceAlpha" operator="in" result="effect1_backgroundBlur_131_1449"/><feBlend in="SourceGraphic" in2="effect1_backgroundBlur_131_1449" result="shape"/></filter></defs></svg>
@@ -0,0 +1 @@
1
+ <svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.672 6.117a.6.6 0 0 0-.331.536v2.693a.6.6 0 0 0 .33.537l2.803 1.405a.2.2 0 0 0 .29-.178V4.89a.2.2 0 0 0-.29-.179l-2.802 1.406z" fill="#12B969"/><g filter="url(#a)"><rect x=".667" y="2.894" width="10.667" height="10.213" rx="1.5" fill="#12B969"/></g><defs><filter id="a" x="-7.333" y="-5.106" width="26.667" height="26.213" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feGaussianBlur in="BackgroundImageFix" stdDeviation="4"/><feComposite in2="SourceAlpha" operator="in" result="effect1_backgroundBlur_1977_11630"/><feBlend in="SourceGraphic" in2="effect1_backgroundBlur_1977_11630" result="shape"/></filter></defs></svg>
@@ -0,0 +1 @@
1
+ <svg width="28" height="28" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M.761 9.332C.001 7.134.963 4.773 2.833 3.39 4.252 2.343 5.676 1.285 6.49.681a.912.912 0 0 1 1.24.141l4.429 5.21c.29.34.29.841 0 1.182l-2.716 3.198a.893.893 0 0 0-.093 1.034 19.946 19.946 0 0 0 3.151 4.048 19.62 19.62 0 0 0 4.064 3.137.895.895 0 0 0 1.033-.094l3.186-2.702a.913.913 0 0 1 1.181 0l5.214 4.431c.366.311.429.852.143 1.238l-2.727 3.69c-1.372 1.855-3.714 2.798-5.895 2.047a28.865 28.865 0 0 1-11.04-6.908A28.855 28.855 0 0 1 .761 9.332z" fill="#12B969"/></svg>
@@ -0,0 +1 @@
1
+ <svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.917 7.57v-.731h1.5v.73a4.583 4.583 0 1 0 9.166 0v-.73h1.5v.73a6.084 6.084 0 0 1-5.333 6.038v1.302h-1.5v-1.302a6.084 6.084 0 0 1-5.333-6.038z" fill="#ADADAD"/><rect x="4.667" y="1.091" width="6.667" height="9.897" rx="3.333" fill="#ADADAD"/></svg>
@@ -0,0 +1 @@
1
+ <svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.917 7.57v-.731h1.5v.73a4.583 4.583 0 1 0 9.166 0v-.73h1.5v.73a6.084 6.084 0 0 1-5.333 6.038v1.302h-1.5v-1.302a6.084 6.084 0 0 1-5.333-6.038z" fill="#12B969"/><rect x="4.667" y="1.091" width="6.667" height="9.897" rx="3.333" fill="#12B969"/></svg>
@@ -0,0 +1,11 @@
1
+ import MacPermitZhPng from './mac/permit-zh.jpg';
2
+ import MacPermitEnPng from './mac/permit-en.jpg';
3
+ import WinPermitZhPng from './win/permit-zh.png';
4
+ import WinPermitEnPng from './win/permit-en.png';
5
+
6
+ export {
7
+ MacPermitZhPng,
8
+ MacPermitEnPng,
9
+ WinPermitZhPng,
10
+ WinPermitEnPng,
11
+ };
@@ -0,0 +1 @@
1
+ <svg width="28" height="28" fill="none" xmlns="http://www.w3.org/2000/svg"><g filter="url(#a)"><circle cx="14" cy="14" r="12" fill="#fff"/></g><path fill-rule="evenodd" clip-rule="evenodd" d="M10.667 10a3.333 3.333 0 0 1 5.937-2.08l-5.872 7.073a3.345 3.345 0 0 1-.065-.66V10zM9.63 16.321a4.782 4.782 0 0 1-.43-1.988v-1H8.133v1c0 1.047.275 2.03.755 2.881l.742-.893zm1.283 3.002.69-.83a4.8 4.8 0 0 0 7.198-4.16v-1h1.066v1a5.867 5.867 0 0 1-5.334 5.843V22h-1.066v-1.824a5.831 5.831 0 0 1-2.554-.853zm1.646-1.983 4.774-5.751v2.744a3.333 3.333 0 0 1-4.774 3.007z" fill="#E6395C"/><path d="m9.423 18.845 8.36-10.067" stroke="#E6395C" stroke-width="1.067" stroke-linecap="square" stroke-linejoin="round"/><defs><filter id="a" x="0" y="0" width="28" height="28" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset/><feGaussianBlur stdDeviation="1"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_1741_10678"/><feBlend in="SourceGraphic" in2="effect1_dropShadow_1741_10678" result="shape"/></filter></defs></svg>
@@ -0,0 +1 @@
1
+ <svg width="28" height="28" fill="none" xmlns="http://www.w3.org/2000/svg"><g filter="url(#a)"><circle cx="14" cy="14" r="12" fill="#fff"/></g><path fill-rule="evenodd" clip-rule="evenodd" d="M15.812 22.538c4.716-4.715 4.716-12.36 0-17.076l-1.767 1.767a9.575 9.575 0 0 1 0 13.541l1.767 1.768z" fill="#1C66E5"/><path fill-rule="evenodd" clip-rule="evenodd" d="M12.188 19.136a7.264 7.264 0 0 0 0-10.273l-1.768 1.768a4.764 4.764 0 0 1 0 6.737l1.768 1.768zM9.121 16.07a2.927 2.927 0 0 0 0-4.14l-2.018 2.018a.073.073 0 0 1 0 .103l2.018 2.018z" fill="#1C66E5"/><defs><filter id="a" x="0" y="0" width="28" height="28" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset/><feGaussianBlur stdDeviation="1"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_124_647"/><feBlend in="SourceGraphic" in2="effect1_dropShadow_124_647" result="shape"/></filter></defs></svg>
@@ -0,0 +1 @@
1
+ <svg width="28" height="28" fill="none" xmlns="http://www.w3.org/2000/svg"><g filter="url(#a)"><circle cx="14" cy="14" r="12" fill="#fff"/></g><path fill-rule="evenodd" clip-rule="evenodd" d="M10.667 10a3.333 3.333 0 0 1 5.937-2.08l-5.872 7.073a3.345 3.345 0 0 1-.065-.66V10zM9.63 16.321a4.782 4.782 0 0 1-.43-1.988v-1H8.133v1c0 1.047.275 2.03.755 2.881l.742-.893zm1.283 3.002.69-.83a4.8 4.8 0 0 0 7.198-4.16v-1h1.066v1a5.867 5.867 0 0 1-5.334 5.843V22h-1.066v-1.824a5.831 5.831 0 0 1-2.554-.853zm1.646-1.983 4.774-5.751v2.744a3.333 3.333 0 0 1-4.774 3.007z" fill="#E6395C"/><path d="m9.423 18.845 8.36-10.067" stroke="#E6395C" stroke-width="1.067" stroke-linecap="square" stroke-linejoin="round"/><defs><filter id="a" x="0" y="0" width="28" height="28" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset/><feGaussianBlur stdDeviation="1"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_1741_10678"/><feBlend in="SourceGraphic" in2="effect1_dropShadow_1741_10678" result="shape"/></filter></defs></svg>
@@ -0,0 +1 @@
1
+ <svg width="20" height="20" fill="none" xmlns="http://www.w3.org/2000/svg"><g opacity=".8"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.833 5A4.167 4.167 0 0 1 13.7 3.083l-7.503 9.039a4.152 4.152 0 0 1-.364-1.705V5zm-.772 8.49a5.79 5.79 0 0 1-.878-3.073v-1.25h-1.7v1.25c0 1.659.538 3.192 1.448 4.435l1.13-1.361zm2.011 3.852 1.15-1.385a5.817 5.817 0 0 0 7.595-5.54v-1.25h1.7v1.25a7.518 7.518 0 0 1-6.684 7.47V20H9.167v-2.112a7.468 7.468 0 0 1-2.095-.546zm2.326-2.802 4.769-5.745v1.622a4.167 4.167 0 0 1-4.77 4.123z" fill="#D5E0F2"/><path d="M5.041 16.654 15.325 4.27" stroke="#D5E0F2" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg width="28" height="28" fill="none" xmlns="http://www.w3.org/2000/svg"><g filter="url(#a)"><circle cx="14" cy="14" r="12" fill="#fff"/></g><path fill-rule="evenodd" clip-rule="evenodd" d="M15.812 22.538c4.716-4.715 4.716-12.36 0-17.076l-1.767 1.767a9.575 9.575 0 0 1 0 13.541l1.767 1.768z" fill="#1C66E5"/><path fill-rule="evenodd" clip-rule="evenodd" d="M12.188 19.136a7.264 7.264 0 0 0 0-10.273l-1.768 1.768a4.764 4.764 0 0 1 0 6.737l1.768 1.768zM9.121 16.07a2.927 2.927 0 0 0 0-4.14l-2.018 2.018a.073.073 0 0 1 0 .103l2.018 2.018z" fill="#1C66E5"/><defs><filter id="a" x="0" y="0" width="28" height="28" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset/><feGaussianBlur stdDeviation="1"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_124_647"/><feBlend in="SourceGraphic" in2="effect1_dropShadow_124_647" result="shape"/></filter></defs></svg>
@@ -0,0 +1,20 @@
1
+ <template>
2
+ <Overlay
3
+ bgColor="#22262ed9"
4
+ :bgImage="defaultAvatarSrc"
5
+ :customStyle="{ position: 'absolute', zIndex: 0 }"
6
+ />
7
+ </template>
8
+
9
+ <script lang="ts">
10
+ export default {
11
+ options: {
12
+ virtualHost: true
13
+ }
14
+ }
15
+ </script>
16
+
17
+ <script lang="ts" setup>
18
+ import Overlay from '../../base/Overlay/Overlay.vue';
19
+ import defaultAvatarSrc from '../../../assets/common/defaultAvatar.svg';
20
+ </script>
@@ -0,0 +1,129 @@
1
+ <template>
2
+ <div class="groupcall-container">
3
+ <TopBar />
4
+ <Waiting v-if="callStatus === CallStatus.CALLING && callRole === CallRole.CALLEE && !isFloatWindow" />
5
+ <MediaContainer />
6
+ <Tip />
7
+ <ButtonPanel />
8
+ <BackGround />
9
+ <SelectUser
10
+ v-if="showSelectUser"
11
+ :isNeedSearch="true"
12
+ :userList="groupMemberList"
13
+ :isPC="TUIGlobal.isPC"
14
+ :total="memberCount"
15
+ @confirm="handleSelectedResult"
16
+ @cancel="handleCancel"
17
+ @getMore="getMoreMemberList"
18
+ @search="handleSearch"
19
+ />
20
+ </div>
21
+ </template>
22
+
23
+ <script lang="ts" setup>
24
+ import { ref, provide, toRefs, onMounted, onUnmounted } from '../../../adapter-vue';
25
+ import TopBar from '../common/TopBar/TopBar.vue';
26
+ import Waiting from '../common/Waiting/Waiting.vue';
27
+ import MediaContainer from './MediaContainer/MediaContainer.vue';
28
+ import Tip from '../common/Tip/Tip.vue';
29
+ import ButtonPanel from '../common/ButtonPanel/ButtonPanel.vue';
30
+ import SelectUser from '../common/SelectUser/SelectUser.vue';
31
+ import BackGround from './BackGround/BackGround.vue';
32
+ import { ButtonPanelContextKey, FocusContextKey } from '../../context';
33
+ import { useCallInfoContext, useFloatWindowContext, useUserInfoExcludeVolumeContext } from '../../hooks';
34
+ import { CallRole, CallStatus, TUIGlobal, TUIStore, TUICallKitAPI, StoreName, NAME } from '../../../TUICallService';
35
+
36
+ const focusElement = ref(null);
37
+ const buttonPanelStatus = ref('open');
38
+ const showSelectUser = ref(false);
39
+ const memberCount = ref(0);
40
+ const groupMemberList = ref([]);
41
+ const backupGroupMemberList = ref([]);
42
+ const offset = ref(0);
43
+ const count: number = 30;
44
+
45
+ const FocusContextValue = focusElement;
46
+ const ButtonPanelContextValue = { status: buttonPanelStatus };
47
+
48
+
49
+ const { callRole, callStatus } = toRefs(useCallInfoContext());
50
+ const { isFloatWindow } = toRefs(useFloatWindowContext());
51
+ const { localUserInfoExcludeVolume, remoteUserListExcludeVolume } = toRefs(useUserInfoExcludeVolumeContext());
52
+
53
+ const handleShowSelectUser = async (value: boolean) => {
54
+ showSelectUser.value = value;
55
+ if (showSelectUser.value) {
56
+ await getGroupMemberList();
57
+ const groupProfile = await TUICallKitAPI.getGroupProfile();
58
+ memberCount.value = groupProfile.memberCount;
59
+ }
60
+ }
61
+ const handleCancel = () => {
62
+ showSelectUser.value = false;
63
+ TUIStore.update(StoreName.CALL, NAME.SHOW_SELECT_USER, false);
64
+ offset.value = 0;
65
+ groupMemberList.value = [];
66
+ }
67
+ const getMoreMemberList = async () => {
68
+ offset.value += count;
69
+ await getGroupMemberList();
70
+ }
71
+ const getGroupMemberList = async () => {
72
+ const memberList = await TUICallKitAPI.getGroupMemberList(count, offset.value);
73
+ const inCallUserIdList = [...remoteUserListExcludeVolume.value, localUserInfoExcludeVolume.value].map(obj => obj.userId);
74
+ groupMemberList.value.push(...memberList);
75
+ groupMemberList.value = groupMemberList.value.map(obj => {
76
+ if (inCallUserIdList.includes(obj.userID)) {
77
+ obj = { ...obj, isDisabled: true };
78
+ }
79
+ return obj;
80
+ });
81
+ backupGroupMemberList.value = groupMemberList.value;
82
+ };
83
+ const handleSelectedResult = async (selectedUserInfoList: Array<any>) => {
84
+ try {
85
+ if (selectedUserInfoList.length <= 0) {
86
+ return ;
87
+ }
88
+ showSelectUser.value = false;
89
+ TUIStore.update(StoreName.CALL, NAME.SHOW_SELECT_USER, false);
90
+ offset.value = 0;
91
+ const userIDList = selectedUserInfoList.map(obj => obj.userID);
92
+ await TUICallKitAPI.inviteUser({userIDList});
93
+ groupMemberList.value = [];
94
+ } catch (error) {
95
+ console.debug(error);
96
+ }
97
+ };
98
+ const handleSearch = (searchValue: string) => {
99
+ if (searchValue) {
100
+ groupMemberList.value = groupMemberList.value.filter(obj => {
101
+ return obj.userID.includes(searchValue) || obj.nick.includes(searchValue)
102
+ });
103
+ } else {
104
+ groupMemberList.value = backupGroupMemberList.value;
105
+ }
106
+ };
107
+
108
+ const watchOptions = {
109
+ [NAME.SHOW_SELECT_USER]: handleShowSelectUser,
110
+ };
111
+
112
+ onMounted(() => {
113
+ TUIStore.watch(StoreName.CALL, watchOptions, { notifyRangeWhenWatch: NAME.MYSELF });
114
+ });
115
+ onUnmounted(() => {
116
+ TUIStore.unwatch(StoreName.CALL, watchOptions);
117
+ });
118
+
119
+ ButtonPanelContextValue.status = ref('open');
120
+ FocusContextValue.value = null;
121
+ provide(ButtonPanelContextKey, ButtonPanelContextValue);
122
+ provide(FocusContextKey, FocusContextValue);
123
+ </script>
124
+
125
+ <style lang="scss" scoped>
126
+ .groupcall-container {
127
+ height: 100%;
128
+ }
129
+ </style>
@@ -0,0 +1,267 @@
1
+ <template>
2
+ <Portal id="source" :disabled="!isFloatWindow" source="#source" to="body">
3
+ <FloatWindow>
4
+ <div
5
+ :class="groupMediaContainerClassName"
6
+ :style="[mediaContainerStyle]"
7
+ >
8
+ <Grid
9
+ :unit="unit"
10
+ :enable-focus="enableFocus"
11
+ :focus="focus"
12
+ :length="streamLength"
13
+ :layout="layout"
14
+ @toggle="changeFocus"
15
+ >
16
+ <GridItem :index="0" :key="localUserInfoExcludeVolume.userId">
17
+ <Pusher
18
+ :domId="localUserInfoExcludeVolume.domId"
19
+ :show-audio-stream="!localUserInfoExcludeVolume.isVideoAvailable"
20
+ :show="visibleStreamIdList.includes(localUserInfoExcludeVolume.domId) && showStream"
21
+ >
22
+ <template v-slot:audio-stream>
23
+ <AudioStream
24
+ :user-id="localUserInfoExcludeVolume.userId"
25
+ :username="localUserInfoExcludeVolume.displayUserInfo"
26
+ :avatar="localUserInfoExcludeVolume.avatar"
27
+ :is-video-available="localUserInfoExcludeVolume.isVideoAvailable"
28
+ />
29
+ </template>
30
+ <template v-slot:loading>
31
+ <StreamLoading v-if="isPusherLoading" />
32
+ </template>
33
+ <template v-slot:stream-info>
34
+ <TKStreamInfo
35
+ v-if="!isFloatWindow"
36
+ :is-self="true"
37
+ :show-nick-name="showNickName"
38
+ :showSwitchCameraButton="showSwitchCameraButton"
39
+ :showVirtualBackgroundButton="showVirtualBackgroundButton"
40
+ :showNetWorkStatus="isShowNetWork(localUserInfoExcludeVolume.userId)"
41
+ :nickName="localUserInfoExcludeVolume.displayUserInfo"
42
+ :isMuted="!localUserInfoExcludeVolume.isAudioAvailable"
43
+ :volume="volumeMap && volumeMap[localUserInfoExcludeVolume.domId]"
44
+ />
45
+ </template>
46
+ </Pusher>
47
+ </GridItem>
48
+ <GridItem v-for="(remoteStreamItem, index) in remoteUserListExcludeVolume" :key="remoteStreamItem.userId" :index="index + 1">
49
+ <Player
50
+ :domId="remoteStreamItem.domId"
51
+ :show-audio-stream="isShowAudioStream(remoteStreamItem)"
52
+ :show="visibleStreamIdList.includes(remoteStreamItem.domId) && showStream"
53
+ >
54
+ <template v-slot:audio-stream>
55
+ <AudioStream
56
+ :user-id="remoteStreamItem.userId"
57
+ :username="remoteStreamItem.displayUserInfo"
58
+ :avatar="remoteStreamItem.avatar"
59
+ />
60
+ </template>
61
+ <template v-slot:loading>
62
+ <StreamLoading v-if="!remoteStreamItem.isEnter" />
63
+ </template>
64
+ <template v-slot:stream-info>
65
+ <TKStreamInfo
66
+ v-if="!isFloatWindow"
67
+ :show-nick-name="TUIGlobal.isPC || String(focus) === String(index + 1)"
68
+ :show-control-button="false"
69
+ :showNetWorkStatus="isShowNetWork(remoteStreamItem.userId)"
70
+ :nickName="remoteStreamItem.displayUserInfo"
71
+ :is-muted="isMute(remoteStreamItem)"
72
+ :volume="volumeMap && volumeMap[remoteStreamItem.domId]"
73
+ />
74
+ </template>
75
+ </Player>
76
+ </GridItem>
77
+ </Grid>
78
+ </div>
79
+ </FloatWindow>
80
+ </Portal>
81
+
82
+ </template>
83
+
84
+ <script lang="ts">
85
+ export default {
86
+ options: {
87
+ virtualHost: true,
88
+ },
89
+ };
90
+ </script>
91
+
92
+ <script setup lang="ts">
93
+ import { ref, watch, toRefs, computed } from '../../../../adapter-vue';
94
+ import { CallMediaType, CallStatus, TUIGlobal, CallRole } from '../../../../TUICallService';
95
+ import Pusher from '../../common/Pusher/Pusher.vue';
96
+ import Player from '../../common/Player/Player.vue';
97
+ import Grid from '../../base/Grid/Grid.vue';
98
+ import GridItem from '../../base/Grid/GridItem/GridItem.vue';
99
+ import AudioStream from '../../common/AudioStream/AudioStream.vue';
100
+ import TKStreamInfo from '../../common/TKStreamInfo/TKStreamInfo.vue';
101
+ import FloatWindow from '../../common/FloatWindow/FloatWindow.vue';
102
+ import Portal from '../../base/Portal/Portal.vue';
103
+ import {
104
+ useUserInfoExcludeVolumeContext,
105
+ useCallInfoContext,
106
+ usePlayer,
107
+ useGetVolumeMap,
108
+ useFloatWindowContext,
109
+ useFocusContext,
110
+ useButtonPanelStatus,
111
+ useGroupCallLayout,
112
+ useCustomUI,
113
+ useNetWorkStatus
114
+ } from '../../../hooks';
115
+ import { classNames } from '../../base/util';
116
+ import StreamLoading from './StreamLoading/StreamLoading.vue';
117
+
118
+ const bigWindow = ref('local');
119
+ const showSmallWindow = ref(false);
120
+ const customUI = useCustomUI();
121
+
122
+ const { localUserInfoExcludeVolume, remoteUserListExcludeVolume } = toRefs(useUserInfoExcludeVolumeContext());
123
+ const { callStatus, callType, isShowEnableVirtualBackground, callRole } = toRefs(useCallInfoContext());
124
+ const focus = ref(TUIGlobal.isPC
125
+ ? null
126
+ : callType.value === CallMediaType.VIDEO ? 0 : null); // video call localView default big
127
+ const { netWorkQualityList } = useNetWorkStatus();
128
+ const streamLength = computed(() => remoteUserListExcludeVolume.value.length + 1);
129
+ const wxPlayer = usePlayer();
130
+ const layout = useGroupCallLayout(focus, streamLength);
131
+ const volumeMap = useGetVolumeMap();
132
+ const { isFloatWindow } = toRefs(useFloatWindowContext());
133
+ const focusElement = useFocusContext();
134
+ const { status: panelStatus } = useButtonPanelStatus() || {};
135
+ const enableFocus = !TUIGlobal.isPC;
136
+ const isCurrentUserStreamZoomIn = computed(() => String(focus.value) === '0');
137
+ const showControlButton = computed(() => !TUIGlobal.isPC && isCurrentUserStreamZoomIn.value && localUserInfoExcludeVolume.value.isVideoAvailable)
138
+
139
+ const showSwitchCameraButton = computed(() => showControlButton.value);
140
+ const showVirtualBackgroundButton = computed(() => showControlButton.value && isShowEnableVirtualBackground.value && TUIGlobal.isWeChat);
141
+ const showNickName = computed(() => TUIGlobal.isPC || isCurrentUserStreamZoomIn.value);
142
+ const unit = computed(() => (TUIGlobal.isPC || isFloatWindow.value) ? '%' : 'vw');
143
+ const visibleStreamIdList = computed(() => {
144
+ return [localUserInfoExcludeVolume.value, ...remoteUserListExcludeVolume.value].map((stream) => {
145
+ if (isFloatWindow.value) {
146
+ if (volumeMap.value?.[stream.domId] >= 10) {
147
+ return stream.domId;
148
+ }
149
+ } else {
150
+ return stream.domId;
151
+ }
152
+ });
153
+ });
154
+ const showStream = computed(() => !(
155
+ callRole.value === CallRole.CALLEE
156
+ && callStatus.value === CallStatus.CALLING
157
+ && !isFloatWindow.value
158
+ ));
159
+
160
+ const mediaContainerStyle = computed(() => {
161
+ let visibility = '';
162
+
163
+ if (callRole.value === CallRole.CALLEE && callStatus.value === CallStatus.CALLING && !isFloatWindow.value) {
164
+ visibility = 'hidden';
165
+ }
166
+
167
+ return {
168
+ visibility,
169
+ }
170
+ });
171
+
172
+ function changeFocus(value) {
173
+ focus.value = value;
174
+ focusElement.value = value;
175
+ panelStatus.value = value !== null ? 'close' : 'open';
176
+ }
177
+
178
+ function isShowAudioStream(stream) {
179
+ return !stream.isVideoAvailable;
180
+ }
181
+
182
+ function isMute(stream) {
183
+ return !stream.isAudioAvailable;
184
+ }
185
+
186
+ function isShowNetWork(userId) {
187
+ if(!netWorkQualityList.value) return;
188
+ const isRemoteUser = userId !== localUserInfoExcludeVolume.value.userId;
189
+ if(!TUIGlobal.isWeChat && isRemoteUser) return;
190
+ const targetNetwork = netWorkQualityList.value.find(item => item.userId === userId);
191
+ return targetNetwork && targetNetwork?.quality >= 4;
192
+ }
193
+
194
+ watch([remoteUserListExcludeVolume, callType], () => {
195
+ if (remoteUserListExcludeVolume.value?.[0]?.isEnter) {
196
+ bigWindow.value = 'remote';
197
+ }
198
+
199
+ if (callType.value === CallMediaType.AUDIO) {
200
+ showSmallWindow.value = false;
201
+ } else {
202
+ showSmallWindow.value = true;
203
+ }
204
+ });
205
+ const groupMediaContainerClassName = computed(() => classNames([
206
+ 'groupcall-media-container',
207
+ {
208
+ mobile: !TUIGlobal.isPC,
209
+ pc: TUIGlobal.isPC,
210
+ 'two-layout': streamLength.value === 2 && focus.value === null,
211
+ float: isFloatWindow.value,
212
+ }
213
+ ]));
214
+ const isPusherLoading = computed(() => {
215
+ if (callStatus.value === CallStatus.CALLING) {
216
+ if ((callType.value === CallMediaType.AUDIO && !localUserInfoExcludeVolume.value.isAudioAvailable)
217
+ || (callType.value === CallMediaType.VIDEO && !localUserInfoExcludeVolume.value.isVideoAvailable)) {
218
+ return true;
219
+ }
220
+ }
221
+
222
+ return false;
223
+ });
224
+ </script>
225
+
226
+ <style lang="scss" scoped>
227
+ .groupcall-media-container {
228
+ width: 100%;
229
+ height: 100%;
230
+ position: absolute;
231
+ z-index: 1;
232
+
233
+ &.pc {
234
+ border-radius: 12px;
235
+ overflow: hidden;
236
+
237
+ &.two-layout {
238
+ margin-top: 20%;
239
+ }
240
+
241
+ .tk-toggle-window-item--small {
242
+ top: 2%;
243
+ left: 2%;
244
+ width: 22%;
245
+ height: 21%;
246
+ border-radius: 12px;
247
+ overflow: hidden;
248
+ }
249
+ }
250
+
251
+ &.mobile {
252
+ margin-top: 5.5vh;
253
+
254
+ &.float {
255
+ margin-top: 0;
256
+ }
257
+
258
+ &.two-layout {
259
+ margin-top: 15vh;
260
+
261
+ &.float {
262
+ margin-top: 0;
263
+ }
264
+ }
265
+ }
266
+ }
267
+ </style>
@@ -0,0 +1,22 @@
1
+
2
+ <template>
3
+ <div class="stream-loading-container">
4
+ <Loading mode="dot" color="#FFF" loadingWidth="50px" loadingHeight="50px" />
5
+ </div>
6
+ </template>
7
+
8
+ <script lang="ts" setup>
9
+ import Loading from '../../../base/Loading/Loading.vue';
10
+ </script>
11
+
12
+ <style scoped>
13
+ .stream-loading-container {
14
+ width: 100%;
15
+ height: 100%;
16
+ position: absolute;
17
+ z-index: 1;
18
+ display: flex;
19
+ align-items: center;
20
+ justify-content: center;
21
+ }
22
+ </style>