tuikit-atomicx-vue3 3.4.2 → 3.5.0-beta.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 (491) hide show
  1. package/.eslintrc.cjs +1 -0
  2. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-D1G-LitO.js → MessageInput.vue_vue_type_script_setup_true_lang-jPzZ5INK.js} +38 -36
  3. package/dist/baseComp/Modal/Modal.js +431 -23
  4. package/dist/chat/index.d.ts +68 -53
  5. package/dist/chat/server.js +15 -15
  6. package/dist/components/AudioSetting/AudioMediaControl.js +39 -41
  7. package/dist/components/AudioSetting/AudioSettingTab.js +10 -10
  8. package/dist/components/AudioSetting/MicrophoneSelect.js +8 -8
  9. package/dist/components/AudioSetting/SpeakerSelect.js +9 -9
  10. package/dist/components/AudioSettingPanel/i18n/en-US/index.d.ts +1 -0
  11. package/dist/components/AudioSettingPanel/i18n/en-US/index.js +2 -1
  12. package/dist/components/AudioSettingPanel/i18n/zh-CN/index.d.ts +1 -0
  13. package/dist/components/AudioSettingPanel/i18n/zh-CN/index.js +2 -1
  14. package/dist/components/AudioSettingPanel/index.js +81 -73
  15. package/dist/components/BarrageInput/BarrageInputH5.js +9 -9
  16. package/dist/components/BarrageInput/EmojiPicker/EmojiPicker.js +3 -3
  17. package/dist/components/BarrageInput/MessageInputState.d.ts +28 -0
  18. package/dist/components/BarrageInput/MessageInputState.js +82 -0
  19. package/dist/components/BarrageInput/TextEditor/CharacterCountExtension.js +1 -1
  20. package/dist/components/BarrageInput/TextEditor/EditorCore.js +5 -4
  21. package/dist/components/BarrageInput/TextEditor/index.js +7 -7
  22. package/dist/components/BarrageInput/type.d.ts +17 -0
  23. package/dist/components/BarrageInput/type.js +4 -0
  24. package/dist/components/BarrageInput/utils.d.ts +30 -0
  25. package/dist/components/BarrageInput/utils.js +41 -0
  26. package/dist/components/BarrageList/BarrageList.js +80 -110
  27. package/dist/components/BarrageList/BarrageList.vue.d.ts +0 -29
  28. package/dist/components/BarrageList/BarrageListH5.js +95 -122
  29. package/dist/components/BarrageList/BarrageListH5.vue.d.ts +0 -29
  30. package/dist/components/BarrageList/BarrageListState.d.ts +58 -0
  31. package/dist/components/BarrageList/BarrageListState.js +106 -0
  32. package/dist/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.js +16 -24
  33. package/dist/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.vue.d.ts +5 -5
  34. package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.js +48 -73
  35. package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.vue.d.ts +5 -7
  36. package/dist/components/BarrageList/Message/TextMessage/TextMessage.js +70 -76
  37. package/dist/components/BarrageList/Message/TextMessage/TextMessage.vue.d.ts +6 -6
  38. package/dist/components/BarrageList/Message/TextMessage/emoji.d.ts +5 -0
  39. package/dist/components/BarrageList/Message/TextMessage/emoji.js +134 -0
  40. package/dist/components/BarrageList/index.d.ts +0 -36
  41. package/dist/components/CameraButton/index.js +18 -19
  42. package/dist/components/ChatSetting/GroupChatSetting/GroupChatSetting.js +2 -1
  43. package/dist/components/CoGuestPanel/CoGuestPanel.js +60 -60
  44. package/dist/components/CoHostPanel/BattlePanel.js +11 -11
  45. package/dist/components/CoHostPanel/CoHostPanel.js +10 -10
  46. package/dist/components/CoHostPanel/ConfigSettingPanel.js +49 -55
  47. package/dist/components/CoHostPanel/ConnectionPanel.js +132 -123
  48. package/dist/components/CoHostPanel/RecommendHostList.js +39 -36
  49. package/dist/components/CoHostPanel/constants.d.ts +3 -0
  50. package/dist/components/CoHostPanel/constants.js +6 -0
  51. package/dist/components/CoHostPanel/i18n/en-US/index.d.ts +1 -0
  52. package/dist/components/CoHostPanel/i18n/en-US/index.js +2 -1
  53. package/dist/components/CoHostPanel/i18n/zh-CN/index.d.ts +1 -0
  54. package/dist/components/CoHostPanel/i18n/zh-CN/index.js +3 -2
  55. package/dist/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.js +6 -6
  56. package/dist/components/ContactList/ContactInfo/ContactInfo.js +1 -1
  57. package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.js +1 -1
  58. package/dist/components/ContactList/ContactInfo/FriendInfo/FriendInfo.js +9 -9
  59. package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.js +1 -1
  60. package/dist/components/ContactList/ContactInfo/GroupInfo/GroupInfo.js +4 -4
  61. package/dist/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.js +8 -8
  62. package/dist/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.js +7 -7
  63. package/dist/components/ContactList/ContactList.js +7 -7
  64. package/dist/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.js +8 -8
  65. package/dist/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.js +5 -5
  66. package/dist/components/ContactList/ContactListItem/FriendItem/FriendItem.js +5 -5
  67. package/dist/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.js +1 -1
  68. package/dist/components/ContactList/ContactListItem/GroupItem/GroupItem.js +1 -1
  69. package/dist/components/ContactList/ContactSearch/ContactSearch.js +6 -6
  70. package/dist/components/ConversationList/ConversationActions/ConversationActions.js +49 -51
  71. package/dist/components/ConversationList/ConversationCreate/ConversationCreate.js +9 -9
  72. package/dist/components/ConversationList/ConversationList.js +4 -4
  73. package/dist/components/ConversationList/ConversationList.vue.d.ts +10 -10
  74. package/dist/components/ConversationList/ConversationPreview/ConversationPreview.vue.d.ts +10 -10
  75. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTimestamp.js +31 -29
  76. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.js +20 -20
  77. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue.d.ts +2 -2
  78. package/dist/components/ConversationList/ConversationPreview/index.js +1 -1
  79. package/dist/components/ConversationList/index.d.ts +30 -30
  80. package/dist/components/LiveAudienceList/LiveAudienceList.js +44 -45
  81. package/dist/components/LiveAudienceList/LiveAudienceListH5.js +7 -7
  82. package/dist/components/LiveAudienceList/UserActionMenu.js +57 -64
  83. package/dist/components/LiveList/LiveList.js +23 -23
  84. package/dist/components/LiveList/LiveListH5.js +38 -38
  85. package/dist/components/LiveScenePanel/CameraSettingDialog.js +10 -10
  86. package/dist/components/LiveScenePanel/MaterialItem.js +15 -15
  87. package/dist/components/LiveScenePanel/index.js +4 -4
  88. package/dist/components/LiveView/CoreViewDecorate/BattleDecorate.js +58 -58
  89. package/dist/components/LiveView/CoreViewDecorate/BattleUserDecorate.js +6 -6
  90. package/dist/components/LiveView/CoreViewDecorate/CoHostDecorate.js +5 -5
  91. package/dist/components/LiveView/DefaultStreamViewUI.js +44 -41
  92. package/dist/components/LiveView/PlayerControl/AudioControl.js +97 -93
  93. package/dist/components/LiveView/PlayerControl/AudioControl.vue.d.ts +10 -6
  94. package/dist/components/LiveView/PlayerControl/MultiResolution.js +57 -62
  95. package/dist/components/LiveView/PlayerControl/PlayerControl.js +79 -79
  96. package/dist/components/LiveView/PlayerControl/PlayerControlState.d.ts +2 -2
  97. package/dist/components/LiveView/PlayerControl/PlayerControlState.js +164 -209
  98. package/dist/components/LiveView/PlayerControl/utils/domHelpers.d.ts +8 -1
  99. package/dist/components/LiveView/PlayerControl/utils/domHelpers.js +57 -24
  100. package/dist/components/LiveView/i18n/en-US/index.d.ts +2 -2
  101. package/dist/components/LiveView/i18n/en-US/index.js +2 -2
  102. package/dist/components/LiveView/i18n/zh-CN/index.d.ts +2 -2
  103. package/dist/components/LiveView/i18n/zh-CN/index.js +2 -2
  104. package/dist/components/LiveView/index.js +17 -17
  105. package/dist/components/MessageInput/AudioCallPicker/AudioCallPicker.js +63 -65
  106. package/dist/components/MessageInput/EmojiPicker/EmojiPicker.js +88 -84
  107. package/dist/components/MessageInput/MessageInput.js +1 -1
  108. package/dist/components/MessageInput/MessageInput.vue.d.ts +5 -2
  109. package/dist/components/MessageInput/TextEditor/EditorCore.d.ts +3 -1
  110. package/dist/components/MessageInput/TextEditor/EditorCore.js +51 -63
  111. package/dist/components/MessageInput/TextEditor/TextEditor.vue.d.ts +6 -2
  112. package/dist/components/MessageInput/TextEditor/extensions/characterCountExtension.d.ts +19 -0
  113. package/dist/components/MessageInput/TextEditor/extensions/characterCountExtension.js +74 -0
  114. package/dist/components/MessageInput/TextEditor/extensions/imageExtension.d.ts +2 -0
  115. package/dist/components/MessageInput/TextEditor/extensions/imageExtension.js +62 -0
  116. package/dist/components/MessageInput/TextEditor/index.js +45 -35
  117. package/dist/components/MessageInput/VideoCallPicker/VideoCallPicker.js +67 -69
  118. package/dist/components/MessageInput/i18n/index.d.ts +4 -0
  119. package/dist/components/MessageInput/i18n/zh-CN.d.ts +4 -0
  120. package/dist/components/MessageInput/i18n/zh-CN.js +5 -1
  121. package/dist/components/MessageInput/index.d.ts +36 -6
  122. package/dist/components/MessageInput/index.js +1 -1
  123. package/dist/components/MessageList/Message/AudioMessage/WaveForm.js +24 -34
  124. package/dist/components/MessageList/Message/CustomMessage/CallMessage/CallMessage.js +29 -28
  125. package/dist/components/MessageList/Message/GroupTipMessage/index.js +13 -13
  126. package/dist/components/MessageList/Message/Message.vue.d.ts +1 -1
  127. package/dist/components/MessageList/Message/MessageLayout/MessageLayout.js +63 -69
  128. package/dist/components/MessageList/Message/VideoMessage/VideoMessage.js +48 -53
  129. package/dist/components/MessageList/Message/VideoMessage/VideoMessage.vue.d.ts +8 -8
  130. package/dist/components/MessageList/MessageList.js +8 -6
  131. package/dist/components/MessageList/MessageList.vue.d.ts +2 -2
  132. package/dist/components/MessageList/i18n/en-US.d.ts +65 -1
  133. package/dist/components/MessageList/i18n/en-US.js +66 -2
  134. package/dist/components/MessageList/i18n/index.d.ts +128 -0
  135. package/dist/components/MessageList/i18n/index.js +6 -6
  136. package/dist/components/MessageList/i18n/zh-CN.d.ts +65 -1
  137. package/dist/components/MessageList/i18n/zh-CN.js +64 -0
  138. package/dist/components/MessageList/index.d.ts +20 -20
  139. package/dist/components/MicButton/index.js +11 -11
  140. package/dist/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.js +172 -174
  141. package/dist/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.js +58 -60
  142. package/dist/components/Search/SearchAdvanced/SearchAdvanced.js +28 -30
  143. package/dist/components/Search/SearchAdvanced/SearchTab/SearchTab.js +22 -24
  144. package/dist/components/Search/SearchAdvanced/Slider/Slider.js +26 -28
  145. package/dist/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.js +133 -135
  146. package/dist/components/Search/SearchBar/SearchBar.js +56 -58
  147. package/dist/components/StreamMixer/LocalMixer/MixerControl.js +12 -12
  148. package/dist/components/StreamMixer/LocalMixer/index.js +66 -63
  149. package/dist/components/StreamView/Layout/CustomLayout.js +8 -8
  150. package/dist/components/StreamView/Layout/FloatLayout.js +124 -127
  151. package/dist/components/StreamView/Layout/GridLayout.js +5 -5
  152. package/dist/components/StreamView/index.js +25 -33
  153. package/dist/components/StreamView/manager/mediaManager.js +54 -60
  154. package/dist/components/UIKitModal/UIKitModal.d.ts +7 -0
  155. package/dist/components/UIKitModal/UIKitModal.js +156 -0
  156. package/dist/components/UIKitModal/index.d.ts +1 -0
  157. package/dist/components/UIKitModal/index.js +4 -0
  158. package/dist/components/{BarrageList/Message/RecalledMessage/RecalledMessage.vue.d.ts → UIKitModal/index.vue.d.ts} +24 -14
  159. package/dist/components/UIKitModal/type.d.ts +21 -0
  160. package/dist/components/UIKitModal/type.js +1 -0
  161. package/dist/components/UserPicker/UserPicker.js +1 -2
  162. package/dist/components/UserPicker/components/SelectedPanel/SelectedPanel.js +19 -18
  163. package/dist/components/UserPicker/hooks/useSearchFilter.d.ts +2 -2
  164. package/dist/components/UserPicker/hooks/useSearchFilter.js +39 -31
  165. package/dist/components/UserPicker/i18n/en-US.d.ts +1 -0
  166. package/dist/components/UserPicker/i18n/en-US.js +2 -1
  167. package/dist/components/UserPicker/i18n/index.d.ts +2 -0
  168. package/dist/components/UserPicker/i18n/zh-CN.d.ts +1 -0
  169. package/dist/components/UserPicker/i18n/zh-CN.js +2 -1
  170. package/dist/components/UserPicker/index.d.ts +2 -2
  171. package/dist/components/UserPicker/type.d.ts +1 -1
  172. package/dist/components/VideoSetting/CameraSelect.js +8 -8
  173. package/dist/components/VideoSetting/VideoMediaControl.js +10 -10
  174. package/dist/components/VideoSetting/VideoPreview.js +9 -9
  175. package/dist/components/VideoSetting/VideoProfile.js +6 -6
  176. package/dist/components/VideoSetting/VideoSettingTab.js +40 -39
  177. package/dist/components/VideoSettingPanel/CameraSelect.js +8 -8
  178. package/dist/components/VideoSettingPanel/VideoPreview.js +1 -1
  179. package/dist/components/VideoSettingPanel/VideoProfile.js +18 -18
  180. package/dist/hooks/useAudioControl.d.ts +3 -3
  181. package/dist/hooks/useAudioControl.js +32 -30
  182. package/dist/hooks/useRoomEngine.js +6 -6
  183. package/dist/index-B_-9wgM4.js +64 -0
  184. package/dist/{index-Bm-QfV5o.js → index-DMfTuy0v.js} +574 -631
  185. package/dist/{index-D2OVtqc8.js → index-DV6o6s43.js} +946 -915
  186. package/dist/index.d.ts +3 -1
  187. package/dist/index.js +164 -142
  188. package/dist/report/MetricsKey.d.ts +16 -0
  189. package/dist/report/MetricsKey.js +4 -0
  190. package/dist/report/dataReport.d.ts +12 -0
  191. package/dist/report/dataReport.js +45 -0
  192. package/dist/report/index.d.ts +4 -0
  193. package/dist/report/index.js +6 -0
  194. package/dist/rtc/index.d.ts +5 -43
  195. package/dist/rtc/index.js +48 -48
  196. package/dist/rtc/server.js +45 -40
  197. package/dist/states/BarrageState/BarrageState.d.ts +74 -0
  198. package/dist/states/BarrageState/BarrageState.js +80 -0
  199. package/dist/states/BarrageState/index.d.ts +1 -0
  200. package/dist/states/BarrageState/index.js +5 -0
  201. package/dist/states/{BattleState.d.ts → BattleState/BattleState.d.ts} +10 -11
  202. package/dist/states/BattleState/BattleState.js +203 -0
  203. package/dist/states/BattleState/index.d.ts +1 -0
  204. package/dist/states/BattleState/index.js +4 -0
  205. package/dist/states/CoGuestState.d.ts +24 -94
  206. package/dist/states/CoGuestState.js +297 -189
  207. package/dist/states/CoHostState/CoHostState.d.ts +2 -2
  208. package/dist/states/CoHostState/CoHostState.js +135 -131
  209. package/dist/states/{DeviceState.d.ts → DeviceState/DeviceState.d.ts} +25 -13
  210. package/dist/states/DeviceState/DeviceState.js +314 -0
  211. package/dist/states/DeviceState/index.d.ts +1 -0
  212. package/dist/states/DeviceState/index.js +4 -0
  213. package/dist/states/LiveAudienceState.d.ts +3 -1
  214. package/dist/states/LiveAudienceState.js +106 -63
  215. package/dist/states/{LiveState/index.d.ts → LiveListState/LiveListState.d.ts} +13 -8
  216. package/dist/states/LiveListState/LiveListState.js +285 -0
  217. package/dist/states/LiveListState/index.d.ts +1 -0
  218. package/dist/states/LiveListState/index.js +4 -0
  219. package/dist/states/LiveMonitorState/api/http.js +147 -129
  220. package/dist/states/LiveMonitorState/index.js +67 -62
  221. package/dist/states/LiveMonitorState/player/adapters/trtc.js +6 -6
  222. package/dist/states/LiveSeatState/index.d.ts +46 -11
  223. package/dist/states/LiveSeatState/index.js +34 -15
  224. package/dist/states/LiveSeatState/seatEventManager.d.ts +2 -0
  225. package/dist/states/LiveSeatState/seatEventManager.js +63 -42
  226. package/dist/states/LiveSeatState/seatManager.d.ts +34 -5
  227. package/dist/states/LiveSeatState/seatManager.js +131 -29
  228. package/dist/states/LiveSeatState/store.d.ts +5 -5
  229. package/dist/states/LiveSeatState/store.js +12 -10
  230. package/dist/states/LiveSeatState/usePlayStream/RTCStreamManager.js +1 -1
  231. package/dist/states/LiveSeatState/usePlayStream/RTCStreamPlayer.js +1 -1
  232. package/dist/states/LiveSeatState/usePlayStream/index.js +30 -28
  233. package/dist/states/LoginState.d.ts +23 -0
  234. package/dist/states/MessageInputState/MessageInputState.d.ts +41 -7
  235. package/dist/states/MessageInputState/MessageInputState.js +60 -59
  236. package/dist/states/MessageInputState/utils.d.ts +8 -1
  237. package/dist/states/MessageInputState/utils.js +30 -10
  238. package/dist/states/SeatStore.js +82 -83
  239. package/dist/states/UIKitModalState/UIKitModalState.d.ts +17 -0
  240. package/dist/states/UIKitModalState/UIKitModalState.js +63 -0
  241. package/dist/states/UIKitModalState/index.d.ts +1 -0
  242. package/dist/states/UIKitModalState/index.js +4 -0
  243. package/dist/states/{VideoMixerState.d.ts → VideoMixerState/VideoMixerState.d.ts} +1 -1
  244. package/dist/states/VideoMixerState/VideoMixerState.js +269 -0
  245. package/dist/states/VideoMixerState/index.d.ts +1 -0
  246. package/dist/states/VideoMixerState/index.js +4 -0
  247. package/dist/styles/index.css +1 -1
  248. package/dist/types/audience.d.ts +21 -0
  249. package/dist/types/audience.js +4 -1
  250. package/dist/types/battle.d.ts +75 -3
  251. package/dist/types/battle.js +5 -1
  252. package/dist/types/coGuest.d.ts +72 -5
  253. package/dist/types/coGuest.js +4 -2
  254. package/dist/types/device.d.ts +38 -17
  255. package/dist/types/device.js +10 -8
  256. package/dist/types/index.d.ts +2 -2
  257. package/dist/types/index.js +96 -80
  258. package/dist/types/live.d.ts +36 -21
  259. package/dist/types/live.js +6 -4
  260. package/dist/types/seat.d.ts +23 -4
  261. package/dist/types/seat.js +7 -1
  262. package/dist/utils/call.d.ts +1 -1
  263. package/dist/utils/call.js +78 -79
  264. package/dist/utils/eventCenter.d.ts +88 -0
  265. package/dist/utils/eventCenter.js +161 -0
  266. package/package.json +4 -3
  267. package/src/chat/server.ts +0 -1
  268. package/src/components/AudioSetting/AudioMediaControl.vue +1 -3
  269. package/src/components/AudioSetting/AudioSettingTab.vue +1 -2
  270. package/src/components/AudioSetting/MicrophoneSelect.vue +1 -2
  271. package/src/components/AudioSetting/SpeakerSelect.vue +1 -2
  272. package/src/components/AudioSettingPanel/i18n/en-US/index.ts +1 -0
  273. package/src/components/AudioSettingPanel/i18n/zh-CN/index.ts +1 -0
  274. package/src/components/AudioSettingPanel/index.vue +4 -2
  275. package/src/components/BarrageInput/BarrageInputH5.vue +1 -1
  276. package/src/components/BarrageInput/EmojiPicker/EmojiPicker.vue +1 -1
  277. package/src/components/BarrageInput/MessageInputState.ts +160 -0
  278. package/src/components/BarrageInput/TextEditor/TextEditor.vue +1 -1
  279. package/src/components/BarrageInput/type.ts +26 -0
  280. package/src/components/BarrageInput/utils.ts +45 -0
  281. package/src/components/BarrageList/BarrageList.vue +61 -117
  282. package/src/components/BarrageList/BarrageListH5.vue +75 -159
  283. package/src/components/BarrageList/BarrageListState.ts +223 -0
  284. package/src/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.vue +8 -55
  285. package/src/components/BarrageList/Message/MessageLayout/MessageLayout.vue +19 -44
  286. package/src/components/BarrageList/Message/TextMessage/TextMessage.vue +69 -96
  287. package/src/components/BarrageList/Message/TextMessage/emoji.ts +132 -0
  288. package/src/components/CameraButton/index.vue +0 -1
  289. package/src/components/ChatSetting/GroupChatSetting/GroupChatSetting.vue +5 -0
  290. package/src/components/CoGuestPanel/CoGuestPanel.vue +16 -91
  291. package/src/components/CoHostPanel/BattlePanel.vue +1 -4
  292. package/src/components/CoHostPanel/ConfigSettingPanel.vue +2 -8
  293. package/src/components/CoHostPanel/ConnectionPanel.vue +37 -33
  294. package/src/components/CoHostPanel/RecommendHostList.vue +12 -13
  295. package/src/components/CoHostPanel/constants.ts +3 -0
  296. package/src/components/CoHostPanel/i18n/en-US/index.ts +1 -0
  297. package/src/components/CoHostPanel/i18n/zh-CN/index.ts +2 -1
  298. package/src/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.vue +1 -1
  299. package/src/components/ContactList/ContactInfo/ContactInfo.vue +1 -1
  300. package/src/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.vue +1 -1
  301. package/src/components/ContactList/ContactInfo/FriendInfo/FriendInfo.vue +1 -1
  302. package/src/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.vue +1 -1
  303. package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.vue +1 -1
  304. package/src/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.vue +1 -1
  305. package/src/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.vue +1 -1
  306. package/src/components/ContactList/ContactList.vue +1 -1
  307. package/src/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.vue +1 -1
  308. package/src/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.vue +1 -1
  309. package/src/components/ContactList/ContactListItem/FriendItem/FriendItem.vue +1 -1
  310. package/src/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.vue +1 -1
  311. package/src/components/ContactList/ContactListItem/GroupItem/GroupItem.vue +1 -1
  312. package/src/components/ContactList/ContactSearch/ContactSearch.vue +1 -1
  313. package/src/components/ConversationList/ConversationActions/ConversationActions.vue +2 -8
  314. package/src/components/ConversationList/ConversationCreate/ConversationCreate.vue +2 -2
  315. package/src/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.vue +1 -1
  316. package/src/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.vue +1 -1
  317. package/src/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.vue +1 -1
  318. package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.vue +1 -1
  319. package/src/components/ConversationList/ConversationList.vue +2 -2
  320. package/src/components/ConversationList/ConversationListContent/ConversationListContent.vue +1 -1
  321. package/src/components/ConversationList/ConversationListHeader/ConversationListHeader.vue +1 -1
  322. package/src/components/ConversationList/ConversationPlaceHolder/ConversationPlaceHolder.vue +1 -1
  323. package/src/components/ConversationList/ConversationPreview/ConversationPreview.vue +1 -1
  324. package/src/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.vue +1 -1
  325. package/src/components/ConversationList/ConversationPreview/ConversationPreviewTimestamp.vue +4 -4
  326. package/src/components/ConversationList/ConversationPreview/ConversationPreviewTitle.vue +1 -1
  327. package/src/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue +3 -3
  328. package/src/components/ConversationList/ConversationPreview/ConversationPreviewUnread.vue +1 -1
  329. package/src/components/ConversationList/ConversationSearch/ConversationSearch.vue +1 -1
  330. package/src/components/LiveAudienceList/LiveAudienceList.vue +4 -5
  331. package/src/components/LiveAudienceList/LiveAudienceListH5.vue +2 -2
  332. package/src/components/LiveAudienceList/UserActionMenu.vue +7 -48
  333. package/src/components/LiveList/LiveList.vue +5 -5
  334. package/src/components/LiveList/LiveListH5.vue +6 -6
  335. package/src/components/LiveScenePanel/index.vue +2 -2
  336. package/src/components/LiveView/CoreViewDecorate/BattleDecorate.vue +10 -15
  337. package/src/components/LiveView/CoreViewDecorate/BattleUserDecorate.vue +2 -2
  338. package/src/components/LiveView/DefaultStreamViewUI.vue +5 -3
  339. package/src/components/LiveView/PlayerControl/AudioControl.vue +72 -80
  340. package/src/components/LiveView/PlayerControl/MultiResolution.vue +30 -21
  341. package/src/components/LiveView/PlayerControl/PlayerControl.vue +26 -42
  342. package/src/components/LiveView/PlayerControl/PlayerControlState.ts +253 -455
  343. package/src/components/LiveView/PlayerControl/utils/domHelpers.ts +68 -4
  344. package/src/components/LiveView/i18n/en-US/index.ts +2 -2
  345. package/src/components/LiveView/i18n/zh-CN/index.ts +2 -2
  346. package/src/components/LiveView/index.vue +3 -2
  347. package/src/components/MessageInput/AudioCallPicker/AudioCallPicker.vue +8 -6
  348. package/src/components/MessageInput/EmojiPicker/EmojiPicker.vue +7 -3
  349. package/src/components/MessageInput/MessageInput.module.scss +1 -0
  350. package/src/components/MessageInput/MessageInput.vue +3 -1
  351. package/src/components/MessageInput/TextEditor/EditorCore.ts +17 -28
  352. package/src/components/MessageInput/TextEditor/TextEditor.vue +24 -4
  353. package/src/components/MessageInput/TextEditor/extensions/characterCountExtension.ts +159 -0
  354. package/src/components/MessageInput/TextEditor/extensions/imageExtension.ts +79 -0
  355. package/src/components/MessageInput/VideoCallPicker/VideoCallPicker.vue +8 -6
  356. package/src/components/MessageInput/i18n/zh-CN.ts +4 -0
  357. package/src/components/MessageInput/types.d.ts +1 -0
  358. package/src/components/MessageList/Message/AudioMessage/WaveForm.vue +20 -37
  359. package/src/components/MessageList/Message/CustomMessage/CallMessage/CallMessage.vue +5 -3
  360. package/src/components/MessageList/Message/GroupTipMessage/GroupTipMessage.vue +5 -4
  361. package/src/components/MessageList/Message/Message.vue +1 -1
  362. package/src/components/MessageList/Message/MessageLayout/MessageLayout.vue +8 -8
  363. package/src/components/MessageList/Message/VideoMessage/VideoMessage.vue +46 -43
  364. package/src/components/MessageList/Message/VideoMessage/index.ts +1 -1
  365. package/src/components/MessageList/MessageList.vue +2 -0
  366. package/src/components/MessageList/i18n/en-US.ts +66 -0
  367. package/src/components/MessageList/i18n/index.ts +4 -4
  368. package/src/components/MessageList/i18n/zh-CN.ts +66 -0
  369. package/src/components/MicButton/index.vue +3 -3
  370. package/src/components/Search/Search.vue +1 -1
  371. package/src/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.scss +1 -4
  372. package/src/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.vue +1 -1
  373. package/src/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.scss +1 -4
  374. package/src/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.vue +1 -1
  375. package/src/components/Search/SearchAdvanced/SearchAdvanced.scss +1 -4
  376. package/src/components/Search/SearchAdvanced/SearchAdvanced.vue +1 -1
  377. package/src/components/Search/SearchAdvanced/SearchTab/SearchTab.scss +1 -4
  378. package/src/components/Search/SearchAdvanced/SearchTab/SearchTab.vue +1 -1
  379. package/src/components/Search/SearchAdvanced/Slider/Slider.scss +1 -4
  380. package/src/components/Search/SearchAdvanced/Slider/Slider.vue +1 -1
  381. package/src/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.scss +1 -4
  382. package/src/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.vue +1 -1
  383. package/src/components/Search/SearchBar/SearchBar.scss +3 -6
  384. package/src/components/Search/SearchBar/SearchBar.vue +1 -1
  385. package/src/components/Search/SearchResults/EmptyResult/EmptyResult.vue +1 -1
  386. package/src/components/Search/SearchResults/Loading/Loading.vue +1 -1
  387. package/src/components/Search/SearchResults/SearchResults.vue +1 -1
  388. package/src/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.vue +1 -1
  389. package/src/components/Search/SearchResults/SearchResultsItem/Group/Group.vue +1 -1
  390. package/src/components/Search/SearchResults/SearchResultsItem/Message/Message.vue +1 -1
  391. package/src/components/Search/SearchResults/SearchResultsItem/SearchResultsItem.vue +1 -1
  392. package/src/components/Search/SearchResults/SearchResultsItem/User/User.vue +1 -1
  393. package/src/components/StreamMixer/LocalMixer/index.vue +6 -8
  394. package/src/components/StreamView/Layout/CustomLayout.vue +2 -2
  395. package/src/components/StreamView/Layout/FloatLayout.vue +88 -83
  396. package/src/components/StreamView/index.vue +28 -14
  397. package/src/components/StreamView/manager/mediaManager.ts +38 -42
  398. package/src/components/UIKitModal/UIKitModal.ts +71 -0
  399. package/src/components/UIKitModal/index.scss +134 -0
  400. package/src/components/UIKitModal/index.ts +1 -0
  401. package/src/components/UIKitModal/index.vue +160 -0
  402. package/src/components/UIKitModal/type.ts +24 -0
  403. package/src/components/UserPicker/UserPicker.vue +1 -1
  404. package/src/components/UserPicker/components/SelectedPanel/SelectedPanel.vue +1 -0
  405. package/src/components/UserPicker/hooks/useSearchFilter.ts +27 -18
  406. package/src/components/UserPicker/i18n/en-US.ts +1 -0
  407. package/src/components/UserPicker/i18n/zh-CN.ts +1 -0
  408. package/src/components/UserPicker/type.ts +1 -1
  409. package/src/components/VideoSetting/CameraSelect.vue +1 -2
  410. package/src/components/VideoSetting/VideoMediaControl.vue +1 -1
  411. package/src/components/VideoSetting/VideoPreview.vue +1 -2
  412. package/src/components/VideoSetting/VideoProfile.vue +1 -1
  413. package/src/components/VideoSetting/VideoSettingTab.vue +9 -5
  414. package/src/components/VideoSettingPanel/CameraSelect.vue +1 -2
  415. package/src/components/VideoSettingPanel/VideoProfile.vue +7 -7
  416. package/src/hooks/useAudioControl.ts +17 -4
  417. package/src/hooks/useRoomEngine.ts +1 -1
  418. package/src/index.ts +3 -0
  419. package/src/report/MetricsKey.ts +16 -0
  420. package/src/report/dataReport.ts +55 -0
  421. package/src/report/index.ts +7 -0
  422. package/src/rtc/index.ts +7 -9
  423. package/src/rtc/server.ts +4 -0
  424. package/src/types/audience.ts +27 -1
  425. package/src/types/battle.ts +87 -4
  426. package/src/types/coGuest.ts +87 -5
  427. package/src/types/device.ts +41 -16
  428. package/src/types/index.ts +2 -2
  429. package/src/types/live.ts +41 -22
  430. package/src/types/seat.ts +28 -4
  431. package/src/utils/call.ts +26 -27
  432. package/src/utils/eventCenter.ts +249 -0
  433. package/dist/DialogPortal-CvJcEAsn.js +0 -417
  434. package/dist/components/BarrageList/Message/FaceMessage/FaceMessage.js +0 -23
  435. package/dist/components/BarrageList/Message/FaceMessage/FaceMessage.vue.d.ts +0 -30
  436. package/dist/components/BarrageList/Message/FaceMessage/index.d.ts +0 -3
  437. package/dist/components/BarrageList/Message/FaceMessage/index.js +0 -4
  438. package/dist/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.js +0 -4
  439. package/dist/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue.d.ts +0 -16
  440. package/dist/components/BarrageList/Message/GroupTipMessage/index.d.ts +0 -3
  441. package/dist/components/BarrageList/Message/GroupTipMessage/index.js +0 -25
  442. package/dist/components/BarrageList/Message/ImageMessage/ImageMessage.js +0 -71
  443. package/dist/components/BarrageList/Message/ImageMessage/ImageMessage.vue.d.ts +0 -34
  444. package/dist/components/BarrageList/Message/ImageMessage/index.d.ts +0 -3
  445. package/dist/components/BarrageList/Message/ImageMessage/index.js +0 -4
  446. package/dist/components/BarrageList/Message/MergerMessage/MergerMessage.js +0 -9
  447. package/dist/components/BarrageList/Message/MergerMessage/MergerMessage.vue.d.ts +0 -2
  448. package/dist/components/BarrageList/Message/MergerMessage/index.d.ts +0 -3
  449. package/dist/components/BarrageList/Message/MergerMessage/index.js +0 -4
  450. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.js +0 -40
  451. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue.d.ts +0 -54
  452. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.js +0 -26
  453. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.vue.d.ts +0 -15
  454. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/index.d.ts +0 -3
  455. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/index.js +0 -4
  456. package/dist/components/BarrageList/Message/RecalledMessage/RecalledMessage.js +0 -41
  457. package/dist/components/BarrageList/Message/RecalledMessage/index.d.ts +0 -3
  458. package/dist/components/BarrageList/Message/RecalledMessage/index.js +0 -4
  459. package/dist/components/BarrageList/MessageForward/ForwardListItem.js +0 -45
  460. package/dist/components/BarrageList/MessageForward/ForwardListItem.vue.d.ts +0 -17
  461. package/dist/components/BarrageList/MessageForward/MessageForward.js +0 -203
  462. package/dist/components/BarrageList/MessageForward/MessageForward.vue.d.ts +0 -2
  463. package/dist/components/BarrageList/MessageForward/index.d.ts +0 -3
  464. package/dist/components/BarrageList/MessageForward/index.js +0 -4
  465. package/dist/components/StreamView/Layout/MixLayout.js +0 -89
  466. package/dist/components/StreamView/Layout/MixLayout.vue.d.ts +0 -31
  467. package/dist/states/BarrageListState/BarrageListState.d.ts +0 -26
  468. package/dist/states/BarrageListState/BarrageListState.js +0 -122
  469. package/dist/states/BarrageListState/index.d.ts +0 -1
  470. package/dist/states/BarrageListState/index.js +0 -4
  471. package/dist/states/BattleState.js +0 -117
  472. package/dist/states/DeviceState.js +0 -296
  473. package/dist/states/LiveState/index.js +0 -254
  474. package/dist/states/VideoMixerState.js +0 -260
  475. package/src/components/BarrageList/Message/FaceMessage/FaceMessage.vue +0 -43
  476. package/src/components/BarrageList/Message/FaceMessage/index.ts +0 -3
  477. package/src/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue +0 -55
  478. package/src/components/BarrageList/Message/GroupTipMessage/index.ts +0 -3
  479. package/src/components/BarrageList/Message/ImageMessage/ImageMessage.vue +0 -181
  480. package/src/components/BarrageList/Message/ImageMessage/index.ts +0 -3
  481. package/src/components/BarrageList/Message/MergerMessage/MergerMessage.vue +0 -6
  482. package/src/components/BarrageList/Message/MergerMessage/index.ts +0 -3
  483. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue +0 -70
  484. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.vue +0 -40
  485. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/index.ts +0 -3
  486. package/src/components/BarrageList/Message/RecalledMessage/RecalledMessage.vue +0 -82
  487. package/src/components/BarrageList/Message/RecalledMessage/index.ts +0 -3
  488. package/src/components/BarrageList/MessageForward/ForwardListItem.vue +0 -67
  489. package/src/components/BarrageList/MessageForward/MessageForward.vue +0 -388
  490. package/src/components/BarrageList/MessageForward/index.ts +0 -3
  491. package/src/components/StreamView/Layout/MixLayout.vue +0 -144
@@ -5,7 +5,7 @@ import type { UserPickerDataSource, UserPickerNode, UserPickerRow } from '../typ
5
5
  interface UseSearchFilterOptions<T = unknown> {
6
6
  dataSource: Ref<UserPickerDataSource<T>>;
7
7
  isTreeMode?: boolean;
8
- onSearch?: (value: string) => void;
8
+ onSearch?: (dataSource: Array<UserPickerRow<T>>, keyword: string) => Array<UserPickerRow<T>>;
9
9
  debounceTime?: number;
10
10
  }
11
11
 
@@ -33,15 +33,18 @@ function searchTreeNodes<T>(nodes: Array<UserPickerNode<T>>, searchValue: string
33
33
  return nodes;
34
34
  }
35
35
 
36
- // Helper function: check if node matches
36
+ const lowerSearchValue = searchValue.toLowerCase();
37
+
38
+ // Helper function: check if node matches (support both key and label)
37
39
  const isNodeMatched = (node: UserPickerNode<T>): boolean =>
38
- node.label.toLowerCase().includes(searchValue.toLowerCase());
40
+ node.key.toLowerCase().includes(lowerSearchValue)
41
+ || node.label.toLowerCase().includes(lowerSearchValue);
39
42
 
40
43
  // Helper function: recursively search nodes
41
44
  const searchNodes = (nodesList: Array<UserPickerNode<T>>): Array<UserPickerNode<T>> => {
42
45
  const matchedNodes: Array<UserPickerNode<T>> = [];
43
46
 
44
- nodesList.forEach(node => {
47
+ nodesList.forEach((node) => {
45
48
  const isMatched = isNodeMatched(node);
46
49
  let matchedChildren: Array<UserPickerNode<T>> = [];
47
50
 
@@ -64,13 +67,18 @@ function searchTreeNodes<T>(nodes: Array<UserPickerNode<T>>, searchValue: string
64
67
  return searchNodes(nodes);
65
68
  }
66
69
 
67
- // Search list structure
70
+ // Search list structure (default implementation)
68
71
  function searchListItems<T>(items: Array<UserPickerRow<T>>, searchValue: string): Array<UserPickerRow<T>> {
69
72
  if (!searchValue.trim()) {
70
73
  return items;
71
74
  }
72
75
 
73
- return items.filter(item => item.label.toLowerCase().includes(searchValue.toLowerCase()));
76
+ const lowerSearchValue = searchValue.toLowerCase();
77
+
78
+ return items.filter(item =>
79
+ item.key.toLowerCase().includes(lowerSearchValue)
80
+ || item.label.toLowerCase().includes(lowerSearchValue),
81
+ );
74
82
  }
75
83
 
76
84
  export function useSearchFilter<T = unknown>({
@@ -85,35 +93,36 @@ export function useSearchFilter<T = unknown>({
85
93
 
86
94
  // Filter data based on search value
87
95
  const filteredData = computed(() => {
88
- if (!searchValue.value.trim()) {
96
+ const keyword = searchValue.value.trim();
97
+
98
+ // No search keyword, return original data
99
+ if (!keyword) {
89
100
  return dataSource.value;
90
101
  }
91
102
 
103
+ // Tree mode: always use default search (custom search not supported)
92
104
  if (isTreeMode && isTreeDataSource(dataSource.value)) {
93
- return searchTreeNodes(dataSource.value as Array<UserPickerNode<T>>, searchValue.value);
105
+ return searchTreeNodes(dataSource.value as Array<UserPickerNode<T>>, keyword);
106
+ }
107
+
108
+ // List mode: use custom search if provided, otherwise use default search
109
+ if (onSearch) {
110
+ return onSearch(dataSource.value as Array<UserPickerRow<T>>, keyword);
94
111
  }
95
- return searchListItems(dataSource.value as Array<UserPickerRow<T>>, searchValue.value);
112
+
113
+ return searchListItems(dataSource.value as Array<UserPickerRow<T>>, keyword);
96
114
  });
97
115
 
98
116
  // Handle search input
99
117
  const handleSearch = (value: string) => {
100
118
  isSearching.value = true;
101
119
  searchValue.value = value;
102
-
103
- // Trigger external search callback
104
- if (onSearch) {
105
- onSearch(value);
106
- }
107
-
108
120
  isSearching.value = false;
109
121
  };
110
122
 
111
123
  // Clear search
112
124
  const clearSearch = () => {
113
125
  searchValue.value = '';
114
- if (onSearch) {
115
- onSearch('');
116
- }
117
126
  };
118
127
 
119
128
  // Set search value
@@ -3,6 +3,7 @@ const UserPicker = {
3
3
  no_result: 'No result',
4
4
  no_data_available: 'No data available',
5
5
  selected: 'Selected',
6
+ people_unit: 'people',
6
7
  };
7
8
 
8
9
  export default UserPicker;
@@ -3,6 +3,7 @@ const UserPicker = {
3
3
  no_result: '没有结果',
4
4
  no_data_available: '无数据',
5
5
  selected: '已选择',
6
+ people_unit: '人',
6
7
  };
7
8
 
8
9
  export default UserPicker;
@@ -47,7 +47,7 @@ export interface UserPickerProps<T = unknown> {
47
47
  // Search related
48
48
  enableSearch?: boolean; // Whether to enable search
49
49
  searchPlaceholder?: string; // Search placeholder text
50
- onSearch?: (value: string) => void; // Search callback
50
+ onSearch?: (dataSource: Array<UserPickerRow<T>>, keyword: string) => Array<UserPickerRow<T>>; // Custom search function for list mode only
51
51
 
52
52
  // Custom rendering
53
53
  renderItem?: (data: UserPickerRow<T> | UserPickerNode<T>) => any; // Vue render function or component
@@ -22,7 +22,7 @@ import { ref, watch, defineProps, withDefaults, onBeforeMount } from 'vue';
22
22
  import TuiSelect from '../../baseComp/Select';
23
23
  import TuiOption from '../../baseComp/Option';
24
24
  import { TUIDeviceInfo } from '@tencentcloud/tuiroom-engine-js';
25
- import useDeviceState from '../../states/DeviceState';
25
+ import { useDeviceState } from '../../states/DeviceState';
26
26
  const { cameraList, currentCamera, setCurrentCamera, getCameraList } = useDeviceState();
27
27
 
28
28
  interface Props {
@@ -73,4 +73,3 @@ onBeforeMount(async () => {
73
73
  font-size: 14px;
74
74
  }
75
75
  </style>
76
- ../../states/DeviceState
@@ -45,7 +45,7 @@ import {
45
45
  MediaSettingDisplayMode,
46
46
  VideoSettingProps,
47
47
  } from '../../types';
48
- import useDeviceState from '../../states/DeviceState';
48
+ import { useDeviceState } from '../../states/DeviceState';
49
49
  import { DeviceStatus, DeviceError } from '../../types';
50
50
  import useUserState from '../../states/UserState/index';
51
51
  import { useRoomState } from '../../states/RoomState';
@@ -17,7 +17,7 @@ import { onMounted, onUnmounted } from 'vue';
17
17
  import { IconLoading } from '@tencentcloud/uikit-base-component-vue3';
18
18
  import { useI18n } from '../../locales';
19
19
  import TUIRoomEngine from '@tencentcloud/tuiroom-engine-js';
20
- import useDeviceState from '../../states/DeviceState';
20
+ import { useDeviceState } from '../../states/DeviceState';
21
21
 
22
22
  const { t } = useI18n();
23
23
  const { isCameraTesting, isCameraTestLoading, startCameraDeviceTest, stopCameraDeviceTest } = useDeviceState();
@@ -83,4 +83,3 @@ onUnmounted(async () => {
83
83
  }
84
84
  }
85
85
  </style>
86
- ../../states/DeviceState
@@ -22,7 +22,7 @@ import TuiOption from '../../baseComp/Option';
22
22
  import { useI18n } from '../../locales';
23
23
 
24
24
  import { TUIVideoQuality } from '@tencentcloud/tuiroom-engine-js';
25
- import useDeviceState from '../../states/DeviceState';
25
+ import { useDeviceState } from '../../states/DeviceState';
26
26
 
27
27
  const { t } = useI18n();
28
28
 
@@ -20,23 +20,28 @@
20
20
  </template>
21
21
 
22
22
  <script setup lang="ts">
23
- import { watch, inject } from 'vue';
23
+ import { watch, inject, ref } from 'vue';
24
24
  import CameraSelect from './CameraSelect.vue';
25
25
  import VideoProfile from './VideoProfile.vue';
26
26
  import VideoPreview from './VideoPreview.vue';
27
27
  import TuiSwitch from '../../baseComp/TuiSwitch.vue';
28
28
  import { useI18n } from '../../locales';
29
- import useDeviceState from '../../states/DeviceState';
29
+ import { useDeviceState } from '../../states/DeviceState';
30
30
  import { VideoSettingProps } from '../../types';
31
+ import { MirrorType } from '../../types';
32
+
31
33
  const { t } = useI18n();
32
- const { isLocalMirror, switchMirror } = useDeviceState();
34
+ const { switchMirror } = useDeviceState();
35
+
36
+ const isLocalMirror = ref(true);
37
+
33
38
  const videoSettingProps: VideoSettingProps | undefined =
34
39
  inject('videoSettingProps');
35
40
 
36
41
  watch(
37
42
  isLocalMirror,
38
43
  async (val: boolean) => {
39
- switchMirror({ mirror: val });
44
+ switchMirror({ mirror: val ? MirrorType.Auto : MirrorType.Disable });
40
45
  },
41
46
  { immediate: true }
42
47
  );
@@ -91,4 +96,3 @@ watch(
91
96
  }
92
97
  }
93
98
  </style>
94
- ../../states/DeviceState
@@ -21,7 +21,7 @@
21
21
  import { ref, watch, defineProps, withDefaults, onBeforeMount } from 'vue';
22
22
  import { TUISelect, TUIOption } from '@tencentcloud/uikit-base-component-vue3';
23
23
  import { TUIDeviceInfo } from '@tencentcloud/tuiroom-engine-js';
24
- import useDeviceState from '../../states/DeviceState';
24
+ import { useDeviceState } from '../../states/DeviceState';
25
25
  const { cameraList, currentCamera, setCurrentCamera, getCameraList } = useDeviceState();
26
26
 
27
27
  interface Props {
@@ -72,4 +72,3 @@ onBeforeMount(async () => {
72
72
  font-size: 14px;
73
73
  }
74
74
  </style>
75
- ../../states/DeviceState
@@ -18,30 +18,30 @@
18
18
  <script setup lang="ts">
19
19
  import { watch, computed } from 'vue';
20
20
  import type { ComputedRef } from 'vue';
21
- import { TUIVideoQuality } from '@tencentcloud/tuiroom-engine-js';
22
21
  import { TUISelect, TUIOption, useUIKit } from '@tencentcloud/uikit-base-component-vue3';
23
22
  import { useDeviceState } from '../../states/DeviceState';
23
+ import { VideoQuality } from '../../types';
24
24
 
25
25
  const { t } = useUIKit();
26
26
 
27
27
  const videoQualityList: ComputedRef<
28
- { label: string; value: TUIVideoQuality }[]
28
+ { label: string; value: VideoQuality }[]
29
29
  > = computed(() => [
30
- { label: t('Low Definition'), value: TUIVideoQuality.kVideoQuality_360p },
30
+ { label: t('Low Definition'), value: VideoQuality.Quality360P },
31
31
  {
32
32
  label: t('Standard Definition'),
33
- value: TUIVideoQuality.kVideoQuality_540p,
33
+ value: VideoQuality.Quality540P,
34
34
  },
35
- { label: t('High Definition'), value: TUIVideoQuality.kVideoQuality_720p },
35
+ { label: t('High Definition'), value: VideoQuality.Quality720P },
36
36
  {
37
37
  label: t('Super Definition'),
38
- value: TUIVideoQuality.kVideoQuality_1080p,
38
+ value: VideoQuality.Quality1080P,
39
39
  },
40
40
  ]);
41
41
 
42
42
  const { localVideoQuality, updateVideoQuality } = useDeviceState();
43
43
 
44
- watch(localVideoQuality, (val: TUIVideoQuality) => {
44
+ watch(localVideoQuality, (val: VideoQuality) => {
45
45
  updateVideoQuality({ quality: val });
46
46
  });
47
47
  </script>
@@ -12,12 +12,12 @@ const createAudioPlayEvent = (audioId: string) => new CustomEvent(AUDIO_PLAY_EVE
12
12
  detail: { audioId },
13
13
  });
14
14
 
15
- interface IUseAudioControlProps {
15
+ interface UseAudioControlProps {
16
16
  url: string;
17
17
  audioId?: string;
18
18
  }
19
19
 
20
- interface IUseAudioControlReturn {
20
+ interface UseAudioControlReturn {
21
21
  isPlaying: ReturnType<typeof ref<boolean>>;
22
22
  progress: ReturnType<typeof ref<number>>;
23
23
  duration: ReturnType<typeof ref<number | undefined>>;
@@ -36,7 +36,7 @@ interface IUseAudioControlReturn {
36
36
  * @param props Configuration parameters
37
37
  * @returns Audio control related states and methods
38
38
  */
39
- export function useAudioControl(props: IUseAudioControlProps): IUseAudioControlReturn {
39
+ export function useAudioControl(props: UseAudioControlProps): UseAudioControlReturn {
40
40
  const { url } = props;
41
41
 
42
42
  // Generate a unique ID if audioId is not provided
@@ -147,7 +147,20 @@ export function useAudioControl(props: IUseAudioControlProps): IUseAudioControlR
147
147
  if (!audioInstance) {
148
148
  return;
149
149
  }
150
- duration.value = audioInstance.duration;
150
+ if (audioInstance.duration === Infinity) {
151
+ // Jump to a large time
152
+ audioInstance.currentTime = 1e101;
153
+ audioInstance.ontimeupdate = () => {
154
+ if (!audioInstance) {
155
+ return;
156
+ }
157
+ duration.value = audioInstance.duration;
158
+ audioInstance.ontimeupdate = null;
159
+ audioInstance.currentTime = 0;
160
+ };
161
+ } else {
162
+ duration.value = audioInstance.duration;
163
+ }
151
164
  isLoading.value = false;
152
165
  };
153
166
 
@@ -15,7 +15,7 @@ TUIRoomEngine.once('ready', () => {
15
15
  },
16
16
  })
17
17
  );
18
- roomEngine.instance = new TUIRoomEngine();
18
+ roomEngine.instance = new TUIRoomEngine({ isSharedInstance: true });
19
19
  deviceManager.instance = roomEngine.instance?.getMediaDeviceManager();
20
20
  });
21
21
 
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { useLoginState } from './states/LoginState';
2
+ import { useUIKitModalState } from './states/UIKitModalState';
2
3
 
3
4
  export * from './chat';
4
5
  export * from './rtc';
@@ -6,7 +7,9 @@ export * from './i18n';
6
7
  export * from './types';
7
8
  export * from './components/Avatar';
8
9
  export * from './components/UserPicker';
10
+ export * from './components/UIKitModal';
9
11
 
10
12
  export {
11
13
  useLoginState,
14
+ useUIKitModalState,
12
15
  };
@@ -0,0 +1,16 @@
1
+ export enum MetricsKey {
2
+ T_METRICS_STATE_API_CREATE_LIVE_COUNT = 180000, // 统计开播的次数
3
+ T_METRICS_STATE_API_CREATE_LIVE_MOBILE_COUNT = 180001, // 统计移动端 Web 开播的次数
4
+ T_METRICS_STATE_API_JOIN_LIVE_COUNT = 180002, // 统计观看的次数
5
+ T_METRICS_STATE_API_JOIN_LIVE_MOBILE_COUNT = 180003, // 统计移动端 Web 观看的次数
6
+ T_METRICS_STATE_API_LOGIN_COUNT = 180010, // 统计登录次数
7
+ T_METRICS_STATE_API_LOGIN_MOBILE_COUNT = 180011, // 统计移动端 Web 登录次数
8
+ T_METRICS_STATE_API_LIVE_MONITOR_CLOSE_ROOM_COUNT = 180020, // 计监播页解散房间的次数
9
+ T_METRICS_STATE_API_LIVE_MONITOR_START_PLAY_COUNT = 180021, // 统计监播页开始拉流的次数
10
+ T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_CAMERA_COUNT = 180030, // 统计混流时添加摄像头的次数
11
+ T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_SCREEN_COUNT = 180031, // 统计混流时添加屏幕分享的次数
12
+ T_METRICS_STATE_API_BARRAGE_SEND_TEXT_MSG_COUNT = 180040, // 统计发送弹幕消息的次数
13
+ T_METRICS_STATE_API_AUDIENCE_FETCH_LIST_COUNT = 180050, // 统计获取观众列表的次数
14
+ T_METRICS_STATE_API_CO_GUEST_REQUEST_CONNECTION_COUNT = 180060, // 统计观众连麦请求的次数
15
+ T_METRICS_STATE_API_CO_HOST_REQUEST_CONNECTION_COUNT = 180070, // 统计主播连线请求的次数
16
+ }
@@ -0,0 +1,55 @@
1
+ import TUIRoomEngine from '@tencentcloud/tuiroom-engine-js';
2
+ import { MetricsKey } from './MetricsKey';
3
+
4
+ const KEY_METRICS_API = 'KeyMetricsStats';
5
+
6
+ type Task = () => void;
7
+
8
+ export class DataReport {
9
+ private taskQueue: Task[] = [];
10
+ private isReady = false;
11
+
12
+ constructor() {
13
+ this.bindEvent();
14
+ }
15
+
16
+ public reportCount(key: MetricsKey) {
17
+ const task = this.createReportCountTask(key);
18
+ if (!this.isReady) {
19
+ this.taskQueue.push(task);
20
+ } else {
21
+ task();
22
+ }
23
+ }
24
+
25
+ private bindEvent() {
26
+ TUIRoomEngine.once('ready', () => {
27
+ this.isReady = true;
28
+ this.executePendingTasks();
29
+ });
30
+ }
31
+
32
+ private executePendingTasks() {
33
+ this.taskQueue.forEach(task => {
34
+ try {
35
+ task();
36
+ } catch (error) {
37
+ console.error('Task execution failed:', error);
38
+ }
39
+ });
40
+ this.taskQueue = [];
41
+ }
42
+
43
+ private createReportCountTask(key: MetricsKey): Task {
44
+ return () => {
45
+ TUIRoomEngine.callExperimentalAPI(
46
+ JSON.stringify({
47
+ api: KEY_METRICS_API,
48
+ params: { key },
49
+ })
50
+ );
51
+ };
52
+ }
53
+ }
54
+
55
+ export const dataReport = new DataReport();
@@ -0,0 +1,7 @@
1
+ import { dataReport } from "./dataReport";
2
+ import { MetricsKey } from "./MetricsKey";
3
+
4
+ export {
5
+ dataReport,
6
+ MetricsKey,
7
+ }
package/src/rtc/index.ts CHANGED
@@ -7,28 +7,28 @@ import { CameraButton as CameraButtonComponent } from '../components/CameraButto
7
7
  import { CoGuestPanel as CoGuestPanelComponent } from '../components/CoGuestPanel';
8
8
  import { CoHostPanel as CoHostPanelComponent } from '../components/CoHostPanel';
9
9
  import { LiveAudienceList as LiveAudienceListComponent } from '../components/LiveAudienceList';
10
- import { LiveCoreView, LiveView } from '../components/LiveView';
11
10
  import { LiveList as LiveListComponent } from '../components/LiveList';
12
11
  import { LiveMonitorView as LiveMonitorViewComponent } from '../components/LiveMonitorView';
13
12
  import { LiveScenePanel as LiveScenePanelComponent } from '../components/LiveScenePanel';
13
+ import { LiveCoreView, LiveView } from '../components/LiveView';
14
14
  import { MicButton as MicButtonComponent } from '../components/MicButton';
15
15
  import { StreamMixer as StreamMixerComponent } from '../components/StreamMixer';
16
16
  import { StreamView as StreamViewComponent } from '../components/StreamView';
17
17
  import { VideoSetting as VideoSettingComponent } from '../components/VideoSetting';
18
18
  import { VideoSettingPanel as VideoSettingPanelComponent } from '../components/VideoSettingPanel';
19
- import { useBarrageListState as BarrageListState } from '../states/BarrageListState';
19
+ import { useRoomEngine as RoomEngine } from '../hooks/useRoomEngine';
20
+ import { useBarrageState } from '../states/BarrageState';
21
+ import { useBattleState } from '../states/BattleState';
20
22
  import { useCoGuestState as CoGuestState } from '../states/CoGuestState';
21
23
  import { useCoHostState as CoHostState } from '../states/CoHostState';
22
24
  import { useDeviceState as DeviceState } from '../states/DeviceState';
23
25
  import { useLiveAudienceState as LiveAudienceState } from '../states/LiveAudienceState';
26
+ import { useLiveListState } from '../states/LiveListState';
24
27
  import { useLiveMonitorState as LiveMonitorState } from '../states/LiveMonitorState';
25
28
  import { useLiveSeatState as LiveSeatState } from '../states/LiveSeatState';
26
- import { useLiveState as LiveState } from '../states/LiveState';
27
29
  import { useRoomState as RoomState } from '../states/RoomState';
28
30
  import { useUserState as UserState } from '../states/UserState';
29
31
  import { useVideoMixerState as VideoMixerState } from '../states/VideoMixerState';
30
- import { useBattleState } from '../states/BattleState';
31
- import { useRoomEngine as RoomEngine } from '../hooks/useRoomEngine';
32
32
 
33
33
  import RTCLoginServer from './server';
34
34
 
@@ -51,10 +51,8 @@ const StreamView = StreamViewComponent;
51
51
  const AudioSetting = AudioSettingComponent;
52
52
  const VideoSetting = VideoSettingComponent;
53
53
 
54
- const useBarrageListState = BarrageListState;
55
54
  const useLiveMonitorState = LiveMonitorState;
56
55
  const useLiveSeatState = LiveSeatState;
57
- const useLiveState = LiveState;
58
56
  const useUserState = UserState;
59
57
  const useCoGuestState = CoGuestState;
60
58
  const useCoHostState = CoHostState;
@@ -87,7 +85,7 @@ export {
87
85
 
88
86
  // States
89
87
  useRoomEngine,
90
- useLiveState,
88
+ useLiveListState,
91
89
  useRoomState,
92
90
  useUserState,
93
91
  useDeviceState,
@@ -97,6 +95,6 @@ export {
97
95
  useCoHostState,
98
96
  useLiveAudienceState,
99
97
  useLiveMonitorState,
100
- useBarrageListState,
101
98
  useBattleState,
99
+ useBarrageState,
102
100
  };
package/src/rtc/server.ts CHANGED
@@ -3,7 +3,9 @@ import { ref } from 'vue';
3
3
  import TUIChatEngine from '@tencentcloud/chat-uikit-engine';
4
4
  import TUICore, { TUILogin, TUIConstants } from '@tencentcloud/tui-core';
5
5
  import TUIRoomEngine from '@tencentcloud/tuiroom-engine-js';
6
+ import { dataReport, MetricsKey } from '../report';
6
7
  import { useLoginState } from '../states/LoginState';
8
+ import { isMobile } from '../utils';
7
9
 
8
10
  export default class RTCLoginServer {
9
11
  private static instance: RTCLoginServer;
@@ -69,6 +71,8 @@ export default class RTCLoginServer {
69
71
 
70
72
  try {
71
73
  this.isEngineLoggingIn = true;
74
+ const metricsKey = !isMobile ? MetricsKey.T_METRICS_STATE_API_LOGIN_COUNT : MetricsKey.T_METRICS_STATE_API_LOGIN_MOBILE_COUNT;
75
+ dataReport.reportCount(metricsKey);
72
76
  await TUIChatEngine.login({
73
77
  chat,
74
78
  SDKAppID,
@@ -1,4 +1,4 @@
1
- import { TUIRole } from '@tencentcloud/tuiroom-engine-js';
1
+ import type { TUIRole } from '@tencentcloud/tuiroom-engine-js';
2
2
 
3
3
  export interface AudienceInfo {
4
4
  userId: string;
@@ -9,3 +9,29 @@ export interface AudienceInfo {
9
9
  isMessageDisabled: boolean;
10
10
  joinedTimestamp?: number;
11
11
  }
12
+
13
+ export interface LiveUserInfo {
14
+ userId: string;
15
+ userName: string;
16
+ avatarUrl: string;
17
+ }
18
+
19
+ export enum LiveAudienceEvent {
20
+ onAudienceJoined = 'onAudienceJoined',
21
+ onAudienceLeft = 'onAudienceLeft',
22
+ }
23
+
24
+ type AudienceJoinedEventInfo = {
25
+ audience: LiveUserInfo;
26
+ };
27
+
28
+ type AudienceLeftEventInfo = {
29
+ audience: LiveUserInfo;
30
+ };
31
+
32
+ export interface LiveAudienceEventInfo {
33
+ [LiveAudienceEvent.onAudienceJoined]: AudienceJoinedEventInfo;
34
+ [LiveAudienceEvent.onAudienceLeft]: AudienceLeftEventInfo;
35
+ }
36
+
37
+ export type LiveAudienceEventCallback = <T extends LiveAudienceEvent = LiveAudienceEvent>(eventInfo: LiveAudienceEventInfo[T]) => void;
@@ -1,12 +1,95 @@
1
- export type BattleConfig = {
1
+ import type { SeatUserInfo } from './seat';
2
+
3
+ export interface BattleConfig {
2
4
  duration: number;
3
5
  needResponse: boolean;
4
6
  extensionInfo: string;
5
7
  }
6
8
 
7
- export type BattleInfo = {
9
+ export interface BattleInfo {
8
10
  battleId: string;
9
11
  config: BattleConfig;
10
- startTime: number,
12
+ startTime: number;
11
13
  endTime: number;
12
- }
14
+ }
15
+
16
+ export enum BattleEndedReason {
17
+ timeOver = 0,
18
+ allMemberExit = 1,
19
+ }
20
+
21
+ export enum BattleEvent {
22
+ onBattleStarted,
23
+ onBattleEnded,
24
+ onUserJoinBattle,
25
+ onUserExitBattle,
26
+ onBattleRequestReceived,
27
+ onBattleRequestCancelled,
28
+ onBattleRequestTimeout,
29
+ onBattleRequestAccept,
30
+ onBattleRequestReject,
31
+ }
32
+ interface BattleStartedEventInfo {
33
+ battleInfo: BattleInfo;
34
+ inviter: SeatUserInfo;
35
+ invitees: SeatUserInfo[];
36
+ }
37
+
38
+ interface BattleEndedEventInfo {
39
+ battleInfo: BattleInfo;
40
+ reason: BattleEndedReason;
41
+ }
42
+
43
+ interface UserJoinBattleEventInfo {
44
+ battleId: string;
45
+ battleUser: SeatUserInfo;
46
+ }
47
+
48
+ interface UserExitBattleEventInfo {
49
+ battleId: string;
50
+ battleUser: SeatUserInfo;
51
+ }
52
+
53
+ interface BattleRequestReceivedEventInfo {
54
+ battleId: string;
55
+ inviter: SeatUserInfo;
56
+ invitee: SeatUserInfo;
57
+ }
58
+
59
+ interface BattleRequestCancelledEventInfo {
60
+ battleId: string;
61
+ inviter: SeatUserInfo;
62
+ invitee: SeatUserInfo;
63
+ }
64
+
65
+ interface BattleRequestTimeoutEventInfo {
66
+ battleId: string;
67
+ inviter: SeatUserInfo;
68
+ invitee: SeatUserInfo;
69
+ }
70
+
71
+ interface BattleRequestAcceptEventInfo {
72
+ battleId: string;
73
+ inviter: SeatUserInfo;
74
+ invitee: SeatUserInfo;
75
+ }
76
+
77
+ interface BattleRequestRejectEventInfo {
78
+ battleId: string;
79
+ inviter: SeatUserInfo;
80
+ invitee: SeatUserInfo;
81
+ }
82
+
83
+ export type BattleEventInfoMap = {
84
+ [BattleEvent.onBattleStarted]: BattleStartedEventInfo;
85
+ [BattleEvent.onBattleEnded]: BattleEndedEventInfo;
86
+ [BattleEvent.onUserJoinBattle]: UserJoinBattleEventInfo;
87
+ [BattleEvent.onUserExitBattle]: UserExitBattleEventInfo;
88
+ [BattleEvent.onBattleRequestReceived]: BattleRequestReceivedEventInfo;
89
+ [BattleEvent.onBattleRequestCancelled]: BattleRequestCancelledEventInfo;
90
+ [BattleEvent.onBattleRequestTimeout]: BattleRequestTimeoutEventInfo;
91
+ [BattleEvent.onBattleRequestAccept]: BattleRequestAcceptEventInfo;
92
+ [BattleEvent.onBattleRequestReject]: BattleRequestRejectEventInfo;
93
+ };
94
+
95
+ export type BattleEventCallback = <T extends BattleEvent = BattleEvent>(eventInfo: BattleEventInfoMap[T]) => void;