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
@@ -1,6 +1,6 @@
1
+ import { watch } from 'vue';
1
2
  import TUIRoomEngine, {
2
3
  TUIRoomEvents,
3
- TUIChangeReason,
4
4
  TUIVideoStreamType,
5
5
  TRTCVideoStreamType,
6
6
  TRTCVideoFillMode,
@@ -9,23 +9,23 @@ import TUIRoomEngine, {
9
9
  TRTCVideoResolution,
10
10
  TRTCVideoResolutionMode,
11
11
  } from '@tencentcloud/tuiroom-engine-js';
12
- import { isMobile } from '../../../utils/environment';
12
+ import useRoomEngine from '../../../hooks/useRoomEngine';
13
+ import { useLiveListState } from '../../../states/LiveListState';
13
14
  import useUserState from '../../../states/UserState/index';
14
15
  import { innerUserStore } from '../../../states/UserState/store';
15
- import { DeviceStatus, LiveStatus, StreamPlayStatus } from '../../../types';
16
- import useRoomEngine from '../../../hooks/useRoomEngine';
17
- import useLiveState from '../../../states/LiveState';
18
16
  import { useVideoMixerState } from '../../../states/VideoMixerState';
19
- import { watch } from 'vue';
17
+ import { DeviceStatus, StreamPlayStatus } from '../../../types';
18
+ import { isMobile } from '../../../utils/environment';
19
+ import type {
20
+ TUIChangeReason } from '@tencentcloud/tuiroom-engine-js';
20
21
 
21
22
  const { localUser } = useUserState();
22
23
  const { isVideoMixerEnabled } = useVideoMixerState();
23
- const { localLiveStatus } = useLiveState();
24
24
  const roomEngine = useRoomEngine();
25
25
  const playDomMap = new Map<string, Map<HTMLElement, TUIVideoStreamType>>();
26
26
 
27
27
  // todo: 这里退出房间之后需要清空
28
- function setPlayDomMap(params1: {userId: string, streamType: TUIVideoStreamType}, params2: {view: HTMLElement, streamType: TUIVideoStreamType}) {
28
+ function setPlayDomMap(params1: { userId: string; streamType: TUIVideoStreamType }, params2: { view: HTMLElement; streamType: TUIVideoStreamType }) {
29
29
  const playDomInfo = playDomMap.get(`${params1.userId}-${params1.streamType}`);
30
30
  if (!playDomInfo) {
31
31
  playDomMap.set(`${params1.userId}-${params1.streamType}`, new Map());
@@ -33,27 +33,23 @@ function setPlayDomMap(params1: {userId: string, streamType: TUIVideoStreamType}
33
33
  playDomMap.get(`${params1.userId}-${params1.streamType}`)?.set(params2.view, params2.streamType);
34
34
  }
35
35
 
36
- function getPlayDomMap(params: {userId: string, streamType: TUIVideoStreamType}) {
36
+ function getPlayDomMap(params: { userId: string; streamType: TUIVideoStreamType }) {
37
37
  return playDomMap.get(`${params.userId}-${params.streamType}`);
38
38
  }
39
39
 
40
- watch(localLiveStatus, (newVal) => {
41
- if (newVal === LiveStatus.IDLE) {
42
- playDomMap.clear();
43
- }
44
- });
45
-
46
- function updateStreamPlayStatus(params: {userId: string, streamType: TUIVideoStreamType, playStatus: StreamPlayStatus}) {
40
+ function updateStreamPlayStatus(params: { userId: string; streamType: TUIVideoStreamType; playStatus: StreamPlayStatus }) {
47
41
  if (params.userId === 'local_fake_user') {
48
42
  return;
49
43
  }
50
44
  const { userId, streamType, playStatus } = params;
51
- const assignObj = streamType === TUIVideoStreamType.kScreenStream ? {
52
- screenPlayStatus: playStatus
53
- } : {
54
- cameraPlayStatus: playStatus
55
- }
56
- innerUserStore.updateUserInfo({ userId, ...assignObj })
45
+ const assignObj = streamType === TUIVideoStreamType.kScreenStream
46
+ ? {
47
+ screenPlayStatus: playStatus,
48
+ }
49
+ : {
50
+ cameraPlayStatus: playStatus,
51
+ };
52
+ innerUserStore.updateUserInfo({ userId, ...assignObj });
57
53
  }
58
54
 
59
55
  interface ObserverData {
@@ -97,7 +93,7 @@ export class MediaManager {
97
93
  userId,
98
94
  streamType,
99
95
  view,
100
- observerViewInVisible
96
+ observerViewInVisible,
101
97
  );
102
98
  // if (userId.indexOf('livekit_') !== 0) {
103
99
  // const hasVideo =
@@ -120,7 +116,7 @@ export class MediaManager {
120
116
  Object.assign(this.observerDataMap.get(view) || {}, {
121
117
  userId,
122
118
  streamType,
123
- })
119
+ }),
124
120
  );
125
121
  this.intersectionObserver?.observe(view);
126
122
 
@@ -164,8 +160,8 @@ export class MediaManager {
164
160
 
165
161
  private initIntersectionObserver() {
166
162
  if (
167
- !this.intersectionObserver ||
168
- document.getElementById('roomContainer') !== this.observerRoot
163
+ !this.intersectionObserver
164
+ || document.getElementById('roomContainer') !== this.observerRoot
169
165
  ) {
170
166
  const observerRoot = document.getElementById('roomContainer');
171
167
  this.intersectionObserver = new IntersectionObserver(
@@ -173,7 +169,7 @@ export class MediaManager {
173
169
  {
174
170
  root: observerRoot,
175
171
  rootMargin: '0px',
176
- }
172
+ },
177
173
  );
178
174
  this.observerDataMap = new Map();
179
175
  this.observerRoot = observerRoot;
@@ -200,11 +196,11 @@ export class MediaManager {
200
196
  } else {
201
197
  observerData.isIntersection = false;
202
198
  const isContinuePlay = Array.from(
203
- playDomInfo?.keys() || []
199
+ playDomInfo?.keys() || [],
204
200
  ).find(
205
201
  item =>
206
- !this.observerDataMap.get(item) ||
207
- this.observerDataMap.get(item)?.isIntersection
202
+ !this.observerDataMap.get(item)
203
+ || this.observerDataMap.get(item)?.isIntersection,
208
204
  );
209
205
  if (!isContinuePlay) {
210
206
  this.doStopPlayVideo({ userId, streamType });
@@ -238,14 +234,14 @@ export class MediaManager {
238
234
  return;
239
235
  }
240
236
  const playStreamType = this.getPlayStreamType(userId, streamType);
241
- const viewIdList = Array.from(playDomInfo.keys()).map(item => {
237
+ const viewIdList = Array.from(playDomInfo.keys()).map((item) => {
242
238
  if (item instanceof HTMLElement) {
243
239
  return item?.id;
244
240
  }
245
241
  return item;
246
242
  });
247
243
 
248
- updateStreamPlayStatus({ userId, streamType, playStatus: StreamPlayStatus.Loading })
244
+ updateStreamPlayStatus({ userId, streamType, playStatus: StreamPlayStatus.Loading });
249
245
  if (userId === localUser.value?.userId) {
250
246
  if (streamType === TUIVideoStreamType.kCameraStream) {
251
247
  if (isVideoMixerEnabled.value) {
@@ -284,7 +280,7 @@ export class MediaManager {
284
280
  streamType: playStreamType,
285
281
  });
286
282
  }
287
- updateStreamPlayStatus({ userId, streamType, playStatus: StreamPlayStatus.Playing })
283
+ updateStreamPlayStatus({ userId, streamType, playStatus: StreamPlayStatus.Playing });
288
284
  }
289
285
 
290
286
  private async setVideoRenderParams(options: {
@@ -294,8 +290,8 @@ export class MediaManager {
294
290
  const { userId, streamType } = options;
295
291
  if (userId !== localUser.value?.userId) {
296
292
  const trtcCloud = roomEngine.instance?.getTRTCCloud();
297
- const trtcStreamType =
298
- streamType === TUIVideoStreamType.kScreenStream
293
+ const trtcStreamType
294
+ = streamType === TUIVideoStreamType.kScreenStream
299
295
  ? TRTCVideoStreamType.TRTCVideoStreamTypeSub
300
296
  : TRTCVideoStreamType.TRTCVideoStreamTypeBig;
301
297
  // todo: 确认这里的 cdn 流渲染模式
@@ -334,10 +330,10 @@ export class MediaManager {
334
330
  if (userId === localUser.value?.userId && isVideoMixerEnabled.value) {
335
331
  return;
336
332
  }
337
- updateStreamPlayStatus({ userId, streamType, playStatus: StreamPlayStatus.Stopped })
333
+ updateStreamPlayStatus({ userId, streamType, playStatus: StreamPlayStatus.Stopped });
338
334
  if (
339
- userId === localUser.value?.userId &&
340
- streamType === TUIVideoStreamType.kCameraStream
335
+ userId === localUser.value?.userId
336
+ && streamType === TUIVideoStreamType.kCameraStream
341
337
  ) {
342
338
  roomEngine.instance?.setLocalVideoView({ view: null });
343
339
  } else {
@@ -412,11 +408,11 @@ export class MediaManager {
412
408
  TUIRoomEngine.once('ready', () => {
413
409
  roomEngine.instance?.on(
414
410
  TUIRoomEvents.onUserVideoStateChanged,
415
- this.onUserVideoStateChanged.bind(this)
411
+ this.onUserVideoStateChanged.bind(this),
416
412
  );
417
413
  roomEngine.instance?.on(
418
414
  TUIRoomEvents.onUserAudioStateChanged,
419
- this.onUserAudioStateChanged.bind(this)
415
+ this.onUserAudioStateChanged.bind(this),
420
416
  );
421
417
  });
422
418
  }
@@ -424,11 +420,11 @@ export class MediaManager {
424
420
  private unbindRoomEngineEvents() {
425
421
  roomEngine.instance?.off(
426
422
  TUIRoomEvents.onUserVideoStateChanged,
427
- this.onUserVideoStateChanged
423
+ this.onUserVideoStateChanged,
428
424
  );
429
425
  roomEngine.instance?.off(
430
426
  TUIRoomEvents.onUserAudioStateChanged,
431
- this.onUserAudioStateChanged
427
+ this.onUserAudioStateChanged,
432
428
  );
433
429
  }
434
430
  }
@@ -0,0 +1,71 @@
1
+ import { createApp } from 'vue';
2
+ import { useUIKitModalState } from '../../states/UIKitModalState';
3
+ import UIKitModalComponent from './index.vue';
4
+ import type { UIKitModalOptions } from './type';
5
+
6
+ let instance: any = null;
7
+
8
+ const { openModal: openModalState, closeModal } = useUIKitModalState();
9
+
10
+ const isLocalEnvironment = (): boolean => {
11
+ const host = window.location.hostname;
12
+ const href = window.location.href;
13
+ if (host === 'localhost' || host === '127.0.0.1' || host.startsWith('192.168.')) {
14
+ return true;
15
+ }
16
+ if (href.startsWith('https://web.sdk.qcloud.com/trtc/livekit')) {
17
+ return true;
18
+ }
19
+ return false;
20
+ };
21
+
22
+ const cleanup = () => {
23
+ if (instance) {
24
+ instance.unmount();
25
+ instance = null;
26
+ }
27
+ };
28
+
29
+ const createUIKitModal = (options: UIKitModalOptions): Promise<{ action: string }> => new Promise((resolve) => {
30
+ cleanup();
31
+
32
+ openModalState({
33
+ id: options.id,
34
+ title: options.title,
35
+ content: options.content,
36
+ type: options.type,
37
+ onConfirm: options.onConfirm,
38
+ onCancel: options.onCancel,
39
+ });
40
+
41
+ if (!isLocalEnvironment()) {
42
+ resolve({ action: 'confirm' });
43
+ return;
44
+ }
45
+
46
+ const handleAction = (action: 'confirm' | 'cancel') => {
47
+ closeModal(action);
48
+ cleanup();
49
+ resolve({ action });
50
+ };
51
+
52
+ const props = {
53
+ ...options,
54
+ visible: true,
55
+ onConfirm: () => {
56
+ options.onConfirm?.();
57
+ handleAction('confirm');
58
+ },
59
+ onCancel: () => {
60
+ options.onCancel?.();
61
+ handleAction('cancel');
62
+ },
63
+ };
64
+
65
+ instance = createApp(UIKitModalComponent, props);
66
+ instance.mount(document.createElement('div'));
67
+ });
68
+
69
+ export const UIKitModal = {
70
+ openModal: (config: UIKitModalOptions) => createUIKitModal(config),
71
+ };
@@ -0,0 +1,134 @@
1
+ .uikit-modal-mask {
2
+ position: fixed;
3
+ top: 0;
4
+ left: 0;
5
+ width: 100vw;
6
+ height: 100vh;
7
+ background: var(--uikit-color-black-3);
8
+ z-index: 9999;
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ }
13
+
14
+ .no-mask {
15
+ background: transparent;
16
+ }
17
+
18
+ .fade-enter-active, .fade-leave-active {
19
+ transition: opacity 0.3s;
20
+ }
21
+
22
+ .fade-enter-from, .fade-leave-to {
23
+ opacity: 0;
24
+ }
25
+
26
+ .uikit-modal-default {
27
+ width: 480px;
28
+ max-width: calc(100% - 40px);
29
+ border-radius: var(--tui-dialog-round-radius);
30
+ box-shadow: 0 2px 12px rgba(0,0,0,0.15);
31
+ }
32
+
33
+ .uikit-modal-container {
34
+ box-sizing: border-box;
35
+ background: var(--bg-color-dialog);
36
+ position: absolute;
37
+ display: flex;
38
+ flex-direction: column;
39
+ overflow: hidden;
40
+ padding: 24px;
41
+ }
42
+
43
+ .uikit-modal-header {
44
+ display: flex;
45
+ justify-content: space-between;
46
+ align-items: center;
47
+ padding-bottom: 20px;
48
+
49
+ .uikit-modal-type-icon {
50
+ margin-right: 6px;
51
+ }
52
+ }
53
+
54
+ .uikit-modal-close-icon {
55
+ position: absolute;
56
+ top: 24px;
57
+ right: 24px;
58
+ cursor: pointer;
59
+ color: var(--text-color-primary);
60
+ }
61
+
62
+ .uikit-modal-title {
63
+ font-size: 16px;
64
+ line-height: 24px;
65
+ font-weight: 600;
66
+ color: var(--text-color-primary);
67
+ flex: 1;
68
+ }
69
+
70
+ .uikit-modal-body {
71
+ flex: 1;
72
+ display: block;
73
+ font-size: 14px;
74
+ font-weight: 400;
75
+ line-height: 22px;
76
+ color: var(--text-color-primary);
77
+ word-break: break-word;
78
+
79
+ :deep(.uikit-modal-link) {
80
+ color: var(--text-color-link);
81
+ text-decoration: none;
82
+ transition: all 0.2s ease;
83
+ cursor: pointer;
84
+ border-bottom: 1px solid transparent;
85
+ margin: 0 0.2em;
86
+ }
87
+ }
88
+
89
+ .uikit-modal-footer {
90
+ padding-top: 20px;
91
+ box-sizing: border-box;
92
+ display: flex;
93
+ justify-content: flex-end;
94
+ gap: 12px;
95
+ }
96
+
97
+ .uikit-modal-header:not(:has(:not(:empty))),
98
+ .uikit-modal-body:not(:has(:not(:empty))),
99
+ .uikit-modal-footer:not(:has(:not(:empty))) {
100
+ padding: 0;
101
+ }
102
+
103
+ .uikit-modal-container-mobile {
104
+ padding: 0;
105
+ .uikit-modal-header {
106
+ padding: 0;
107
+ justify-content: center;
108
+ }
109
+ .uikit-modal-header .uikit-modal-title:not(:empty) {
110
+ padding: 20px 20px 0;
111
+ }
112
+ .uikit-modal-body{
113
+ justify-content: center;
114
+ }
115
+ .uikit-modal-body:not(:has(*)) {
116
+ padding: 20px;
117
+ }
118
+ .uikit-modal-footer {
119
+ padding: 0;
120
+ border-top: 0.5px solid var(--stroke-color-module);
121
+ gap: 12px;
122
+ .uikit-modal-footer-btn {
123
+ flex: 1;
124
+ border-radius: 0;
125
+ border: 0;
126
+ height: 56px;
127
+ }
128
+ .uikit-modal-footer-btn + .uikit-modal-footer-btn {
129
+ margin: 0;
130
+ border-left: 0.5px solid var(--stroke-color-module);
131
+ }
132
+ }
133
+ }
134
+
@@ -0,0 +1 @@
1
+ export { UIKitModal } from './UIKitModal';
@@ -0,0 +1,160 @@
1
+ <template>
2
+ <teleport to="body">
3
+ <transition name="fade">
4
+ <div
5
+ v-if="visible"
6
+ class="uikit-modal-mask"
7
+ @click.self="handleConfirm"
8
+ >
9
+ <div class="uikit-modal-default uikit-modal-container">
10
+ <div class="uikit-modal-header">
11
+ <IconSuccessToast
12
+ v-if="type === 'success'"
13
+ class="uikit-modal-type-icon"
14
+ />
15
+ <IconInfoToast
16
+ v-if="type === 'info'"
17
+ class="uikit-modal-type-icon"
18
+ />
19
+ <IconErrorToast
20
+ v-if="type === 'error'"
21
+ class="uikit-modal-type-icon"
22
+ />
23
+ <IconWarningToast
24
+ v-if="type === 'warning'"
25
+ class="uikit-modal-type-icon"
26
+ />
27
+ <span class="uikit-modal-title">{{ title }}</span>
28
+ <IconClose
29
+ v-if="IS_PC"
30
+ class="uikit-modal-close-icon"
31
+ @click="handleCancel"
32
+ />
33
+ </div>
34
+ <div
35
+ class="uikit-modal-body"
36
+ v-html="processedContent"
37
+ />
38
+ <div class="uikit-modal-footer">
39
+ <TUIButton
40
+ type="default"
41
+ style="min-width: 88px"
42
+ @click="handleCancel"
43
+ >
44
+ {{ t('Cancel') }}
45
+ </TUIButton>
46
+ <TUIButton
47
+ type="primary"
48
+ style="min-width: 88px"
49
+ @click="handleConfirm"
50
+ >
51
+ {{ t('Confirm') }}
52
+ </TUIButton>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </transition>
57
+ </teleport>
58
+ </template>
59
+
60
+ <script lang="ts" setup>
61
+ import {
62
+ withDefaults,
63
+ defineProps,
64
+ defineEmits,
65
+ computed,
66
+ } from 'vue';
67
+ import {
68
+ TUIButton,
69
+ IconClose,
70
+ IconSuccessToast,
71
+ IconInfoToast,
72
+ IconErrorToast,
73
+ IconWarningToast,
74
+ } from '@tencentcloud/uikit-base-component-vue3';
75
+ import { getPlatform } from '@tencentcloud/universal-api';
76
+ import { useI18n } from '../../locales';
77
+ import type { UIKitModalOptions } from './type';
78
+
79
+ const IS_PC = getPlatform() === 'pc';
80
+ const { t } = useI18n();
81
+
82
+ interface Props extends UIKitModalOptions {
83
+ visible: boolean;
84
+ }
85
+
86
+ const props = withDefaults(defineProps<Props>(), {
87
+ type: 'info',
88
+ title: '',
89
+ content: '',
90
+ visible: false,
91
+ });
92
+
93
+ const emit = defineEmits<{
94
+ (_e: 'confirm'): void;
95
+ (_e: 'cancel'): void;
96
+ }>();
97
+
98
+ const URL_REGEX = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/i;
99
+ const FULL_URL_REGEX = /(https?:\/\/[^\s]+)/g;
100
+
101
+ const processedContent = computed(() => {
102
+ const { content } = props;
103
+
104
+ if (!content || typeof content !== 'string') {
105
+ return content;
106
+ }
107
+
108
+ if (URL_REGEX.test(content.trim())) {
109
+ const url = content.trim();
110
+ const href = url.startsWith('http') ? url : `https://${url}`;
111
+ return `<a href="${escapeHtml(href)}" target="_blank" rel="noopener noreferrer" class="uikit-modal-link">${escapeHtml(url)}</a>`;
112
+ }
113
+
114
+ if (content.includes('<a ') || content.includes('<a>')) {
115
+ return processAnchorTags(content);
116
+ }
117
+
118
+ if (FULL_URL_REGEX.test(content)) {
119
+ return escapeHtml(content).replace(FULL_URL_REGEX, url => `<a href="${url}" target="_blank" rel="noopener noreferrer" class="uikit-modal-link">${url}</a>`);
120
+ }
121
+
122
+ return escapeHtml(content);
123
+ });
124
+
125
+ function escapeHtml(text: string): string {
126
+ const div = document.createElement('div');
127
+ div.textContent = text;
128
+ return div.innerHTML;
129
+ }
130
+
131
+ function processAnchorTags(content: string): string {
132
+ const parser = new DOMParser();
133
+ const doc = parser.parseFromString(content, 'text/html');
134
+ const anchors = doc.querySelectorAll('a');
135
+ anchors.forEach((anchor) => {
136
+ const href = anchor.getAttribute('href');
137
+ if (href) {
138
+ anchor.setAttribute('target', '_blank');
139
+ anchor.setAttribute('rel', 'noopener noreferrer');
140
+ anchor.classList.add('uikit-modal-link');
141
+ const originalText = anchor.textContent || '';
142
+ anchor.innerHTML = `<span style="padding: 0 0.2em; display: inline-block; color: var(--text-color-link)">${originalText}</span>`;
143
+ }
144
+ });
145
+
146
+ return doc.body.innerHTML;
147
+ }
148
+
149
+ function handleConfirm() {
150
+ props.onConfirm?.();
151
+ emit('confirm');
152
+ }
153
+
154
+ function handleCancel() {
155
+ props.onCancel?.();
156
+ emit('cancel');
157
+ }
158
+ </script>
159
+
160
+ <style lang="scss" src="./index.scss"></style>
@@ -0,0 +1,24 @@
1
+ import type { VNode } from 'vue';
2
+
3
+ export type ButtonType = 'primary' | 'default' | 'text';
4
+ export type Action = 'cancel' | 'confirm' | 'close' | 'mask';
5
+
6
+ export interface UIKitModalEvents {
7
+ onConfirm?: () => void;
8
+ onCancel?: () => void;
9
+ }
10
+
11
+ export interface UIKitModalOptions extends UIKitModalEvents {
12
+ id: number;
13
+ title: string;
14
+ content: string | VNode;
15
+ type: 'info' | 'warning' | 'error' | 'success';
16
+ }
17
+
18
+ export interface IUIKitModalBtn {
19
+ type?: ButtonType;
20
+ text?: string;
21
+ customClasses?: string[];
22
+ action?: () => void;
23
+ disabled?: boolean;
24
+ }
@@ -102,7 +102,7 @@ const selectionManager = useSelection<any>({
102
102
  const searchManager = useSearchFilter<any>({
103
103
  dataSource: internalDataSource,
104
104
  isTreeMode: isTreeMode.value,
105
- onSearch: props.onSearch || (() => {}),
105
+ onSearch: props.onSearch,
106
106
  });
107
107
 
108
108
  // Use custom hook to manage tree state (if in tree mode)
@@ -8,6 +8,7 @@
8
8
  <span :class="$style.selected__count">
9
9
  {{ leafItems.length }}
10
10
  <template v-if="maxCount < InfinityValue"> / {{ maxCount }} </template>
11
+ {{ t('UserPicker.people_unit') }}
11
12
  </span>
12
13
  </div>
13
14
  <div :class="$style.selected__list">