tuikit-atomicx-vue3 3.4.2 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/.eslintrc.cjs +1 -0
  2. package/dist/baseComp/Modal/Modal.js +431 -23
  3. package/dist/chat/index.d.ts +18 -18
  4. package/dist/components/AudioSetting/AudioMediaControl.js +39 -41
  5. package/dist/components/AudioSetting/AudioSettingTab.js +10 -10
  6. package/dist/components/AudioSetting/MicrophoneSelect.js +8 -8
  7. package/dist/components/AudioSetting/SpeakerSelect.js +9 -9
  8. package/dist/components/AudioSettingPanel/i18n/en-US/index.d.ts +1 -0
  9. package/dist/components/AudioSettingPanel/i18n/en-US/index.js +2 -1
  10. package/dist/components/AudioSettingPanel/i18n/zh-CN/index.d.ts +1 -0
  11. package/dist/components/AudioSettingPanel/i18n/zh-CN/index.js +2 -1
  12. package/dist/components/AudioSettingPanel/index.js +81 -73
  13. package/dist/components/BarrageInput/BarrageInputH5.js +9 -9
  14. package/dist/components/BarrageInput/EmojiPicker/EmojiPicker.js +3 -3
  15. package/dist/components/BarrageInput/MessageInputState.d.ts +28 -0
  16. package/dist/components/BarrageInput/MessageInputState.js +82 -0
  17. package/dist/components/BarrageInput/TextEditor/CharacterCountExtension.js +1 -1
  18. package/dist/components/BarrageInput/TextEditor/EditorCore.js +2 -2
  19. package/dist/components/BarrageInput/TextEditor/index.js +7 -7
  20. package/dist/components/BarrageInput/type.d.ts +17 -0
  21. package/dist/components/BarrageInput/type.js +4 -0
  22. package/dist/components/BarrageInput/utils.d.ts +30 -0
  23. package/dist/components/BarrageInput/utils.js +41 -0
  24. package/dist/components/BarrageList/BarrageList.js +80 -110
  25. package/dist/components/BarrageList/BarrageList.vue.d.ts +0 -29
  26. package/dist/components/BarrageList/BarrageListH5.js +95 -122
  27. package/dist/components/BarrageList/BarrageListH5.vue.d.ts +0 -29
  28. package/dist/components/BarrageList/BarrageListState.d.ts +58 -0
  29. package/dist/components/BarrageList/BarrageListState.js +106 -0
  30. package/dist/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.js +16 -24
  31. package/dist/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.vue.d.ts +5 -5
  32. package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.js +48 -73
  33. package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.vue.d.ts +5 -7
  34. package/dist/components/BarrageList/Message/TextMessage/TextMessage.js +70 -76
  35. package/dist/components/BarrageList/Message/TextMessage/TextMessage.vue.d.ts +6 -6
  36. package/dist/components/BarrageList/Message/TextMessage/emoji.d.ts +5 -0
  37. package/dist/components/BarrageList/Message/TextMessage/emoji.js +134 -0
  38. package/dist/components/BarrageList/index.d.ts +0 -36
  39. package/dist/components/CameraButton/index.js +18 -19
  40. package/dist/components/CoGuestPanel/CoGuestPanel.js +60 -60
  41. package/dist/components/CoHostPanel/BattlePanel.js +11 -11
  42. package/dist/components/CoHostPanel/CoHostPanel.js +10 -10
  43. package/dist/components/CoHostPanel/ConfigSettingPanel.js +49 -55
  44. package/dist/components/CoHostPanel/ConnectionPanel.js +132 -123
  45. package/dist/components/CoHostPanel/RecommendHostList.js +39 -36
  46. package/dist/components/CoHostPanel/constants.d.ts +3 -0
  47. package/dist/components/CoHostPanel/constants.js +6 -0
  48. package/dist/components/CoHostPanel/i18n/en-US/index.d.ts +1 -0
  49. package/dist/components/CoHostPanel/i18n/en-US/index.js +2 -1
  50. package/dist/components/CoHostPanel/i18n/zh-CN/index.d.ts +1 -0
  51. package/dist/components/CoHostPanel/i18n/zh-CN/index.js +3 -2
  52. package/dist/components/LiveAudienceList/LiveAudienceList.js +44 -45
  53. package/dist/components/LiveAudienceList/LiveAudienceListH5.js +7 -7
  54. package/dist/components/LiveAudienceList/UserActionMenu.js +57 -64
  55. package/dist/components/LiveList/LiveList.js +23 -23
  56. package/dist/components/LiveList/LiveListH5.js +38 -38
  57. package/dist/components/LiveScenePanel/CameraSettingDialog.js +10 -10
  58. package/dist/components/LiveScenePanel/MaterialItem.js +15 -15
  59. package/dist/components/LiveScenePanel/index.js +4 -4
  60. package/dist/components/LiveView/CoreViewDecorate/BattleDecorate.js +58 -58
  61. package/dist/components/LiveView/CoreViewDecorate/BattleUserDecorate.js +6 -6
  62. package/dist/components/LiveView/CoreViewDecorate/CoHostDecorate.js +5 -5
  63. package/dist/components/LiveView/DefaultStreamViewUI.js +44 -41
  64. package/dist/components/LiveView/PlayerControl/AudioControl.js +20 -20
  65. package/dist/components/LiveView/PlayerControl/MultiResolution.js +49 -48
  66. package/dist/components/LiveView/PlayerControl/MultiResolution.vue.d.ts +7 -1
  67. package/dist/components/LiveView/PlayerControl/PlayerControl.js +90 -86
  68. package/dist/components/LiveView/PlayerControl/PlayerControlState.js +127 -131
  69. package/dist/components/LiveView/PlayerControl/utils/domHelpers.d.ts +6 -0
  70. package/dist/components/LiveView/PlayerControl/utils/domHelpers.js +54 -22
  71. package/dist/components/LiveView/i18n/en-US/index.d.ts +2 -2
  72. package/dist/components/LiveView/i18n/en-US/index.js +2 -2
  73. package/dist/components/LiveView/i18n/zh-CN/index.d.ts +2 -2
  74. package/dist/components/LiveView/i18n/zh-CN/index.js +2 -2
  75. package/dist/components/LiveView/index.js +17 -17
  76. package/dist/components/MessageInput/TextEditor/EditorCore.js +2 -2
  77. package/dist/components/MessageList/MessageList.vue.d.ts +2 -2
  78. package/dist/components/MessageList/index.d.ts +18 -18
  79. package/dist/components/MicButton/index.js +11 -11
  80. package/dist/components/StreamMixer/LocalMixer/MixerControl.js +12 -12
  81. package/dist/components/StreamMixer/LocalMixer/index.js +66 -63
  82. package/dist/components/StreamView/Layout/CustomLayout.js +8 -8
  83. package/dist/components/StreamView/Layout/FloatLayout.js +124 -127
  84. package/dist/components/StreamView/Layout/GridLayout.js +5 -5
  85. package/dist/components/StreamView/index.js +25 -33
  86. package/dist/components/StreamView/manager/mediaManager.js +54 -60
  87. package/dist/components/VideoSetting/CameraSelect.js +8 -8
  88. package/dist/components/VideoSetting/VideoMediaControl.js +10 -10
  89. package/dist/components/VideoSetting/VideoPreview.js +9 -9
  90. package/dist/components/VideoSetting/VideoProfile.js +6 -6
  91. package/dist/components/VideoSetting/VideoSettingTab.js +40 -39
  92. package/dist/components/VideoSettingPanel/CameraSelect.js +8 -8
  93. package/dist/components/VideoSettingPanel/VideoPreview.js +1 -1
  94. package/dist/components/VideoSettingPanel/VideoProfile.js +18 -18
  95. package/dist/hooks/useRoomEngine.js +6 -6
  96. package/dist/{index-D2OVtqc8.js → index-BfIEeWMg.js} +191 -181
  97. package/dist/{index-Bm-QfV5o.js → index-DTi1fL-x.js} +460 -457
  98. package/dist/index.js +162 -144
  99. package/dist/report/MetricsKey.d.ts +16 -0
  100. package/dist/report/MetricsKey.js +4 -0
  101. package/dist/report/dataReport.d.ts +12 -0
  102. package/dist/report/dataReport.js +45 -0
  103. package/dist/report/index.d.ts +4 -0
  104. package/dist/report/index.js +6 -0
  105. package/dist/rtc/index.d.ts +5 -43
  106. package/dist/rtc/index.js +48 -48
  107. package/dist/states/BarrageState/BarrageState.d.ts +74 -0
  108. package/dist/states/BarrageState/BarrageState.js +80 -0
  109. package/dist/states/BarrageState/index.d.ts +1 -0
  110. package/dist/states/BarrageState/index.js +5 -0
  111. package/dist/states/{BattleState.d.ts → BattleState/BattleState.d.ts} +10 -11
  112. package/dist/states/BattleState/BattleState.js +203 -0
  113. package/dist/states/BattleState/index.d.ts +1 -0
  114. package/dist/states/BattleState/index.js +4 -0
  115. package/dist/states/CoGuestState.d.ts +24 -94
  116. package/dist/states/CoGuestState.js +297 -189
  117. package/dist/states/CoHostState/CoHostState.d.ts +2 -2
  118. package/dist/states/CoHostState/CoHostState.js +135 -131
  119. package/dist/states/{DeviceState.d.ts → DeviceState/DeviceState.d.ts} +25 -13
  120. package/dist/states/DeviceState/DeviceState.js +314 -0
  121. package/dist/states/DeviceState/index.d.ts +1 -0
  122. package/dist/states/DeviceState/index.js +4 -0
  123. package/dist/states/LiveAudienceState.d.ts +3 -1
  124. package/dist/states/LiveAudienceState.js +106 -63
  125. package/dist/states/{LiveState/index.d.ts → LiveListState/LiveListState.d.ts} +13 -8
  126. package/dist/states/LiveListState/LiveListState.js +285 -0
  127. package/dist/states/LiveListState/index.d.ts +1 -0
  128. package/dist/states/LiveListState/index.js +4 -0
  129. package/dist/states/LiveMonitorState/api/http.js +147 -129
  130. package/dist/states/LiveMonitorState/index.js +67 -62
  131. package/dist/states/LiveSeatState/index.d.ts +46 -11
  132. package/dist/states/LiveSeatState/index.js +34 -15
  133. package/dist/states/LiveSeatState/seatEventManager.d.ts +2 -0
  134. package/dist/states/LiveSeatState/seatEventManager.js +63 -42
  135. package/dist/states/LiveSeatState/seatManager.d.ts +34 -5
  136. package/dist/states/LiveSeatState/seatManager.js +131 -29
  137. package/dist/states/LiveSeatState/store.d.ts +5 -5
  138. package/dist/states/LiveSeatState/store.js +12 -10
  139. package/dist/states/LiveSeatState/usePlayStream/RTCStreamManager.js +1 -1
  140. package/dist/states/LiveSeatState/usePlayStream/RTCStreamPlayer.js +1 -1
  141. package/dist/states/LiveSeatState/usePlayStream/index.js +30 -28
  142. package/dist/states/LoginState.js +39 -34
  143. package/dist/states/SeatStore.js +82 -83
  144. package/dist/states/{VideoMixerState.d.ts → VideoMixerState/VideoMixerState.d.ts} +1 -1
  145. package/dist/states/VideoMixerState/VideoMixerState.js +269 -0
  146. package/dist/states/VideoMixerState/index.d.ts +1 -0
  147. package/dist/states/VideoMixerState/index.js +4 -0
  148. package/dist/styles/index.css +1 -1
  149. package/dist/types/audience.d.ts +21 -0
  150. package/dist/types/audience.js +4 -1
  151. package/dist/types/battle.d.ts +75 -3
  152. package/dist/types/battle.js +5 -1
  153. package/dist/types/coGuest.d.ts +72 -5
  154. package/dist/types/coGuest.js +4 -2
  155. package/dist/types/device.d.ts +38 -17
  156. package/dist/types/device.js +10 -8
  157. package/dist/types/index.d.ts +2 -2
  158. package/dist/types/index.js +96 -80
  159. package/dist/types/live.d.ts +36 -21
  160. package/dist/types/live.js +6 -4
  161. package/dist/types/seat.d.ts +23 -4
  162. package/dist/types/seat.js +7 -1
  163. package/dist/utils/eventCenter.d.ts +88 -0
  164. package/dist/utils/eventCenter.js +161 -0
  165. package/package.json +2 -2
  166. package/src/components/AudioSetting/AudioMediaControl.vue +1 -3
  167. package/src/components/AudioSetting/AudioSettingTab.vue +1 -2
  168. package/src/components/AudioSetting/MicrophoneSelect.vue +1 -2
  169. package/src/components/AudioSetting/SpeakerSelect.vue +1 -2
  170. package/src/components/AudioSettingPanel/i18n/en-US/index.ts +1 -0
  171. package/src/components/AudioSettingPanel/i18n/zh-CN/index.ts +1 -0
  172. package/src/components/AudioSettingPanel/index.vue +4 -2
  173. package/src/components/BarrageInput/BarrageInputH5.vue +1 -1
  174. package/src/components/BarrageInput/EmojiPicker/EmojiPicker.vue +1 -1
  175. package/src/components/BarrageInput/MessageInputState.ts +160 -0
  176. package/src/components/BarrageInput/TextEditor/TextEditor.vue +1 -1
  177. package/src/components/BarrageInput/type.ts +26 -0
  178. package/src/components/BarrageInput/utils.ts +45 -0
  179. package/src/components/BarrageList/BarrageList.vue +61 -117
  180. package/src/components/BarrageList/BarrageListH5.vue +75 -159
  181. package/src/components/BarrageList/BarrageListState.ts +223 -0
  182. package/src/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.vue +8 -55
  183. package/src/components/BarrageList/Message/MessageLayout/MessageLayout.vue +19 -44
  184. package/src/components/BarrageList/Message/TextMessage/TextMessage.vue +69 -96
  185. package/src/components/BarrageList/Message/TextMessage/emoji.ts +132 -0
  186. package/src/components/CameraButton/index.vue +0 -1
  187. package/src/components/CoGuestPanel/CoGuestPanel.vue +16 -91
  188. package/src/components/CoHostPanel/BattlePanel.vue +1 -4
  189. package/src/components/CoHostPanel/ConfigSettingPanel.vue +2 -8
  190. package/src/components/CoHostPanel/ConnectionPanel.vue +37 -33
  191. package/src/components/CoHostPanel/RecommendHostList.vue +12 -13
  192. package/src/components/CoHostPanel/constants.ts +3 -0
  193. package/src/components/CoHostPanel/i18n/en-US/index.ts +1 -0
  194. package/src/components/CoHostPanel/i18n/zh-CN/index.ts +2 -1
  195. package/src/components/LiveAudienceList/LiveAudienceList.vue +4 -5
  196. package/src/components/LiveAudienceList/LiveAudienceListH5.vue +2 -2
  197. package/src/components/LiveAudienceList/UserActionMenu.vue +7 -48
  198. package/src/components/LiveList/LiveList.vue +5 -5
  199. package/src/components/LiveList/LiveListH5.vue +6 -6
  200. package/src/components/LiveScenePanel/index.vue +2 -2
  201. package/src/components/LiveView/CoreViewDecorate/BattleDecorate.vue +10 -15
  202. package/src/components/LiveView/CoreViewDecorate/BattleUserDecorate.vue +2 -2
  203. package/src/components/LiveView/DefaultStreamViewUI.vue +5 -3
  204. package/src/components/LiveView/PlayerControl/AudioControl.vue +1 -1
  205. package/src/components/LiveView/PlayerControl/MultiResolution.vue +9 -3
  206. package/src/components/LiveView/PlayerControl/PlayerControl.vue +10 -2
  207. package/src/components/LiveView/PlayerControl/PlayerControlState.ts +233 -259
  208. package/src/components/LiveView/PlayerControl/utils/domHelpers.ts +64 -0
  209. package/src/components/LiveView/i18n/en-US/index.ts +2 -2
  210. package/src/components/LiveView/i18n/zh-CN/index.ts +2 -2
  211. package/src/components/LiveView/index.vue +2 -2
  212. package/src/components/MicButton/index.vue +3 -3
  213. package/src/components/StreamMixer/LocalMixer/index.vue +6 -8
  214. package/src/components/StreamView/Layout/CustomLayout.vue +2 -2
  215. package/src/components/StreamView/Layout/FloatLayout.vue +88 -83
  216. package/src/components/StreamView/index.vue +28 -14
  217. package/src/components/StreamView/manager/mediaManager.ts +38 -42
  218. package/src/components/VideoSetting/CameraSelect.vue +1 -2
  219. package/src/components/VideoSetting/VideoMediaControl.vue +1 -1
  220. package/src/components/VideoSetting/VideoPreview.vue +1 -2
  221. package/src/components/VideoSetting/VideoProfile.vue +1 -1
  222. package/src/components/VideoSetting/VideoSettingTab.vue +9 -5
  223. package/src/components/VideoSettingPanel/CameraSelect.vue +1 -2
  224. package/src/components/VideoSettingPanel/VideoProfile.vue +7 -7
  225. package/src/hooks/useRoomEngine.ts +1 -1
  226. package/src/report/MetricsKey.ts +16 -0
  227. package/src/report/dataReport.ts +55 -0
  228. package/src/report/index.ts +7 -0
  229. package/src/rtc/index.ts +7 -9
  230. package/src/types/audience.ts +27 -1
  231. package/src/types/battle.ts +87 -4
  232. package/src/types/coGuest.ts +87 -5
  233. package/src/types/device.ts +41 -16
  234. package/src/types/index.ts +2 -2
  235. package/src/types/live.ts +41 -22
  236. package/src/types/seat.ts +28 -4
  237. package/src/utils/eventCenter.ts +249 -0
  238. package/dist/DialogPortal-CvJcEAsn.js +0 -417
  239. package/dist/components/BarrageList/Message/FaceMessage/FaceMessage.js +0 -23
  240. package/dist/components/BarrageList/Message/FaceMessage/FaceMessage.vue.d.ts +0 -30
  241. package/dist/components/BarrageList/Message/FaceMessage/index.d.ts +0 -3
  242. package/dist/components/BarrageList/Message/FaceMessage/index.js +0 -4
  243. package/dist/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.js +0 -4
  244. package/dist/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue.d.ts +0 -16
  245. package/dist/components/BarrageList/Message/GroupTipMessage/index.d.ts +0 -3
  246. package/dist/components/BarrageList/Message/GroupTipMessage/index.js +0 -25
  247. package/dist/components/BarrageList/Message/ImageMessage/ImageMessage.js +0 -71
  248. package/dist/components/BarrageList/Message/ImageMessage/ImageMessage.vue.d.ts +0 -34
  249. package/dist/components/BarrageList/Message/ImageMessage/index.d.ts +0 -3
  250. package/dist/components/BarrageList/Message/ImageMessage/index.js +0 -4
  251. package/dist/components/BarrageList/Message/MergerMessage/MergerMessage.js +0 -9
  252. package/dist/components/BarrageList/Message/MergerMessage/MergerMessage.vue.d.ts +0 -2
  253. package/dist/components/BarrageList/Message/MergerMessage/index.d.ts +0 -3
  254. package/dist/components/BarrageList/Message/MergerMessage/index.js +0 -4
  255. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.js +0 -40
  256. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue.d.ts +0 -54
  257. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.js +0 -26
  258. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.vue.d.ts +0 -15
  259. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/index.d.ts +0 -3
  260. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/index.js +0 -4
  261. package/dist/components/BarrageList/Message/RecalledMessage/RecalledMessage.js +0 -41
  262. package/dist/components/BarrageList/Message/RecalledMessage/RecalledMessage.vue.d.ts +0 -35
  263. package/dist/components/BarrageList/Message/RecalledMessage/index.d.ts +0 -3
  264. package/dist/components/BarrageList/Message/RecalledMessage/index.js +0 -4
  265. package/dist/components/BarrageList/MessageForward/ForwardListItem.js +0 -45
  266. package/dist/components/BarrageList/MessageForward/ForwardListItem.vue.d.ts +0 -17
  267. package/dist/components/BarrageList/MessageForward/MessageForward.js +0 -203
  268. package/dist/components/BarrageList/MessageForward/MessageForward.vue.d.ts +0 -2
  269. package/dist/components/BarrageList/MessageForward/index.d.ts +0 -3
  270. package/dist/components/BarrageList/MessageForward/index.js +0 -4
  271. package/dist/components/StreamView/Layout/MixLayout.js +0 -89
  272. package/dist/components/StreamView/Layout/MixLayout.vue.d.ts +0 -31
  273. package/dist/states/BarrageListState/BarrageListState.d.ts +0 -26
  274. package/dist/states/BarrageListState/BarrageListState.js +0 -122
  275. package/dist/states/BarrageListState/index.d.ts +0 -1
  276. package/dist/states/BarrageListState/index.js +0 -4
  277. package/dist/states/BattleState.js +0 -117
  278. package/dist/states/DeviceState.js +0 -296
  279. package/dist/states/LiveState/index.js +0 -254
  280. package/dist/states/VideoMixerState.js +0 -260
  281. package/src/components/BarrageList/Message/FaceMessage/FaceMessage.vue +0 -43
  282. package/src/components/BarrageList/Message/FaceMessage/index.ts +0 -3
  283. package/src/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue +0 -55
  284. package/src/components/BarrageList/Message/GroupTipMessage/index.ts +0 -3
  285. package/src/components/BarrageList/Message/ImageMessage/ImageMessage.vue +0 -181
  286. package/src/components/BarrageList/Message/ImageMessage/index.ts +0 -3
  287. package/src/components/BarrageList/Message/MergerMessage/MergerMessage.vue +0 -6
  288. package/src/components/BarrageList/Message/MergerMessage/index.ts +0 -3
  289. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue +0 -70
  290. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.vue +0 -40
  291. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/index.ts +0 -3
  292. package/src/components/BarrageList/Message/RecalledMessage/RecalledMessage.vue +0 -82
  293. package/src/components/BarrageList/Message/RecalledMessage/index.ts +0 -3
  294. package/src/components/BarrageList/MessageForward/ForwardListItem.vue +0 -67
  295. package/src/components/BarrageList/MessageForward/MessageForward.vue +0 -388
  296. package/src/components/BarrageList/MessageForward/index.ts +0 -3
  297. package/src/components/StreamView/Layout/MixLayout.vue +0 -144
@@ -1,181 +0,0 @@
1
- <script lang="ts" setup>
2
- import { ref, computed, onMounted, onUnmounted, watch } from 'vue';
3
- import cs from 'classnames';
4
- import type { IMessageModel } from '@tencentcloud/chat-uikit-engine';
5
-
6
- interface IImageMessageProps {
7
- message: IMessageModel;
8
- isLastInChunk?: boolean;
9
- }
10
-
11
- interface IImageMessageContent {
12
- url: string;
13
- width: number;
14
- height: number;
15
- showName: string;
16
- }
17
-
18
- const props = withDefaults(defineProps<IImageMessageProps>(), {
19
- isLastInChunk: false,
20
- message: () => ({} as IMessageModel),
21
- });
22
-
23
- const messageContent = props.message.getMessageContent() as IImageMessageContent;
24
-
25
- const windowResize = ref(false);
26
- const loaded = ref(false);
27
- const naturalSize = ref<{ height: number; aspectRatio: number } | null>(
28
- messageContent.width && messageContent.height
29
- ? { height: messageContent.height, aspectRatio: messageContent.width / messageContent.height }
30
- : null,
31
- );
32
-
33
- const isMessageOwner = computed(() => props.message.flow === 'out');
34
-
35
- // Calculate final display size
36
- const displaySize = computed(() => {
37
- const MAX_HEIGHT = 400;
38
- const DEFAULT_RATIO = 3 / 4;
39
-
40
- if (!naturalSize.value) {
41
- return {
42
- height: MAX_HEIGHT,
43
- aspectRatio: DEFAULT_RATIO,
44
- };
45
- }
46
-
47
- const { aspectRatio } = naturalSize.value;
48
-
49
- if (aspectRatio > 1) {
50
- // If image is horizontal, reduce height to 200
51
- return {
52
- aspectRatio,
53
- height: 200,
54
- };
55
- }
56
- // If image is vertical, fix height to 400
57
- return {
58
- aspectRatio,
59
- height: 400,
60
- };
61
- });
62
-
63
- const onResize = () => {
64
- windowResize.value = true;
65
- };
66
-
67
- const onImageLoad = (e: Event) => {
68
- const img = e.target as HTMLImageElement;
69
- naturalSize.value = {
70
- aspectRatio: img.naturalWidth / img.naturalHeight,
71
- height: img.naturalHeight,
72
- };
73
- loaded.value = true;
74
- };
75
-
76
- onMounted(() => {
77
- window.addEventListener('resize', onResize);
78
- });
79
-
80
- onUnmounted(() => {
81
- window.removeEventListener('resize', onResize);
82
- });
83
-
84
- // Reset loading state when message ID changes
85
- watch(() => props.message.ID, () => {
86
- loaded.value = false;
87
- naturalSize.value = messageContent.width && messageContent.height
88
- ? { height: messageContent.height, aspectRatio: messageContent.width / messageContent.height }
89
- : null;
90
- });
91
- </script>
92
-
93
- <template>
94
- <div
95
- :class="cs('image-message', {
96
- 'image-message--last--self': isMessageOwner && isLastInChunk,
97
- 'image-message--last--other': !isMessageOwner && isLastInChunk,
98
- 'image-message--loaded': loaded
99
- })"
100
- :style="{
101
- minHeight: windowResize ? 'auto' : `${displaySize.height}px`,
102
- maxHeight: `${displaySize.height}px`,
103
- aspectRatio: naturalSize ? `${displaySize.aspectRatio}` : 'auto',
104
- width: !loaded ? `${displaySize.height * displaySize.aspectRatio}px` : undefined
105
- }"
106
- >
107
- <div
108
- v-if="!loaded"
109
- class="image-placeholder"
110
- />
111
- <img
112
- :src="messageContent.url"
113
- :class="cs('image', {
114
- 'image--loaded': loaded
115
- })"
116
- @load="onImageLoad"
117
- >
118
- </div>
119
- </template>
120
-
121
- <style lang="scss" scoped>
122
- .image-message {
123
- display: flex;
124
- align-items: center;
125
- justify-content: center;
126
- position: relative;
127
- border-radius: 8px;
128
- overflow: hidden;
129
- background-color: #f5f5f5;
130
- width: 100%;
131
-
132
- &--last--self {
133
- border-bottom-right-radius: 4px;
134
- }
135
-
136
- &--last--other {
137
- border-bottom-left-radius: 4px;
138
- }
139
- }
140
-
141
- .image-placeholder {
142
- position: absolute;
143
- top: 0;
144
- left: 0;
145
- width: 100%;
146
- height: 100%;
147
- background:
148
- linear-gradient(
149
- 90deg,
150
- rgba(245, 245, 245, 100%) 0%,
151
- rgba(235, 235, 235, 100%) 50%,
152
- rgba(245, 245, 245, 100%) 100%
153
- );
154
- background-size: 200% 100%;
155
- animation: shimmer 1.5s infinite;
156
- }
157
-
158
- .image {
159
- max-width: 100%; // Ensure image doesn't exceed container
160
- max-height: 100%;
161
- width: 100%; // Keep original image ratio
162
- height: auto;
163
- object-fit: contain;
164
- opacity: 0;
165
- transition: opacity 0.2s ease;
166
-
167
- &--loaded {
168
- opacity: 1;
169
- }
170
- }
171
-
172
- @keyframes shimmer {
173
- 0% {
174
- background-position: 200% 0;
175
- }
176
-
177
- 100% {
178
- background-position: -200% 0;
179
- }
180
- }
181
- </style>
@@ -1,3 +0,0 @@
1
- import ImageMessage from './ImageMessage.vue';
2
-
3
- export { ImageMessage };
@@ -1,6 +0,0 @@
1
- <script lang='ts' setup>
2
- </script>
3
-
4
- <template>
5
- [Merger Message]
6
- </template>
@@ -1,3 +0,0 @@
1
- import MergerMessage from "./MergerMessage.vue";
2
-
3
- export { MergerMessage };
@@ -1,70 +0,0 @@
1
- <template>
2
- <div
3
- :class="cs('message-meta', props.class)"
4
- :style="props.style"
5
- >
6
- <span
7
- v-if="props.isShowTime"
8
- class="message-meta__time"
9
- >{{ getTimeStampAuto(props.timestamp) }}</span>
10
- <div
11
- v-if="showStatus"
12
- class="message-meta__status"
13
- >
14
- <MessageStatusIcon :status="props.status" />
15
- </div>
16
- </div>
17
- </template>
18
-
19
- <script lang="ts" setup>
20
- import { computed } from 'vue';
21
- import cs from 'classnames';
22
- import { getTimeStampAuto } from '../../../../../utils/time';
23
- import MessageStatusIcon from './MessageStatusIcon.vue';
24
-
25
- interface IMessageMetaProps {
26
- timestamp: number;
27
- /**
28
- * - unSend: not sent
29
- * - success: sent successfully
30
- * - fail: sending failed
31
- */
32
- isShowSendStatus?: boolean;
33
- isShowReadStatus?: boolean;
34
- isShowTime?: boolean;
35
- status?: string;
36
- class?: string;
37
- style?: Record<string, any>;
38
- }
39
-
40
- const props = withDefaults(defineProps<IMessageMetaProps>(), {
41
- isShowSendStatus: false,
42
- isShowReadStatus: false,
43
- isShowTime: false,
44
- status: '',
45
- class: undefined,
46
- style: undefined,
47
- });
48
-
49
- const showStatus = computed(() => (props.status && props.isShowSendStatus) || props.status === 'fail');
50
- </script>
51
-
52
- <style lang="scss" scoped>
53
- .message-meta {
54
- display: flex;
55
- flex-direction: row;
56
- align-items: center;
57
- gap: 4px;
58
- font-size: 12px;
59
- color: #999;
60
- margin-top: 4px;
61
-
62
- .time {
63
- line-height: 1;
64
- }
65
-
66
- &__status {
67
- color: #2a7bfa;
68
- }
69
- }
70
- </style>
@@ -1,40 +0,0 @@
1
- <script lang="ts" setup>
2
- import { IconErrorToast, IconLoading, IconSuccess } from '@tencentcloud/uikit-base-component-vue3';
3
-
4
- defineProps<{
5
- status: string;
6
- }>();
7
- </script>
8
-
9
- <template>
10
- <IconLoading
11
- v-if="status === 'unSend'"
12
- class="message-meta__status--unSend"
13
- :size="14"
14
- />
15
- <IconSuccess
16
- v-else-if="status === 'success'"
17
- name="&#xe60a;"
18
- :size="14"
19
- />
20
- <IconErrorToast
21
- v-else-if="status === 'fail'"
22
- :size="14"
23
- />
24
- </template>
25
-
26
- <style lang="scss" scoped>
27
- .message-meta__status--unSend {
28
- animation: rotate-infinite 1s linear infinite;
29
- }
30
-
31
- @keyframes rotate-infinite {
32
- from {
33
- transform: rotate(0deg);
34
- }
35
-
36
- to {
37
- transform: rotate(360deg);
38
- }
39
- }
40
- </style>
@@ -1,3 +0,0 @@
1
- import MessageMeta from './MessageMeta.vue';
2
-
3
- export { MessageMeta };
@@ -1,82 +0,0 @@
1
- <template>
2
- <div
3
- :class="cs('recalled-message', props.class)"
4
- :style="props.style"
5
- >
6
- <template v-if="isMessageOwner">
7
- {{ t('TUIChat.You') }}{{ t('TUIChat.recalled a message') }}
8
- <div
9
- v-if="isTextMessage"
10
- role="button"
11
- class="recalled-message__button"
12
- @click="recallMessageToInput"
13
- >
14
- {{ t('TUIChat.Re-edit') }}
15
- </div>
16
- </template>
17
- <template v-else>
18
- {{ otherDisplayName }} {{ t('TUIChat.recalled a message') }}
19
- </template>
20
- </div>
21
- </template>
22
-
23
- <script lang="ts" setup>
24
- import { computed } from 'vue';
25
- import TUIChatEngine from '@tencentcloud/chat-uikit-engine';
26
- import { useUIKit } from '@tencentcloud/uikit-base-component-vue3';
27
- import cs from 'classnames';
28
- import type { IMessageModel } from '@tencentcloud/chat-uikit-engine';
29
-
30
- interface IRecalledMessageProps {
31
- message: IMessageModel;
32
- class?: string;
33
- style?: Record<string, any>;
34
- }
35
-
36
- const props = withDefaults(defineProps<IRecalledMessageProps>(), {
37
- class: undefined,
38
- style: undefined,
39
- });
40
-
41
- const { t } = useUIKit();
42
-
43
- // Assuming Vue version has similar inputStore
44
- // Need to implement or import the corresponding store when actually used
45
- const setInputValue = (text: string) => {
46
- // Implement logic to set input value
47
- console.log('Set input value:', text);
48
- };
49
- const inputElementRef = {
50
- current: null as HTMLElement | null,
51
- };
52
-
53
- const isTextMessage = computed(() => props.message.type === TUIChatEngine.TYPES.MSG_TEXT);
54
- const isMessageOwner = computed(() => props.message.flow === 'out');
55
- const otherDisplayName = computed(() => props.message.nick || props.message.from || '');
56
-
57
- function recallMessageToInput() {
58
- // Assuming Vue version has similar transformTextWithEmojiKeyToName function
59
- // Need to implement or import the corresponding function when actually used
60
- const transformedText = props.message.payload.text;
61
- setInputValue(transformedText);
62
- inputElementRef.current?.focus();
63
- }
64
- </script>
65
-
66
- <style lang="scss" scoped>
67
- .recalled-message {
68
- display: flex;
69
- flex-direction: row;
70
- align-self: center;
71
- justify-content: center;
72
- font-size: 14px;
73
- white-space: pre-wrap;
74
- color: var(--text-color-secondary);
75
-
76
- &__button {
77
- cursor: pointer;
78
- text-decoration: underline;
79
- color: var(--text-color-link);
80
- }
81
- }
82
- </style>
@@ -1,3 +0,0 @@
1
- import RecalledMessage from "./RecalledMessage.vue";
2
-
3
- export { RecalledMessage };
@@ -1,67 +0,0 @@
1
- <script lang="ts" setup>
2
- import { defineProps, computed } from 'vue';
3
- import { IconCheckSm } from '@tencentcloud/uikit-base-component-vue3';
4
- import cs from 'classnames';
5
- import { Avatar } from '../../Avatar';
6
- import { useConversationListState } from '../../../states/ConversationListState';
7
-
8
- const props = defineProps<{
9
- conversationID: string;
10
- isSelected: boolean;
11
- }>();
12
-
13
- const { conversationList } = useConversationListState();
14
-
15
- const conversation = computed(() =>
16
- conversationList.value?.find(_conversation => _conversation.conversationID === props.conversationID)
17
- );
18
-
19
- const conversationName = computed(() => conversation.value?.getShowName() || conversation.value?.conversationID || '');
20
-
21
- const conversationAvatar = computed(() => conversation.value?.getAvatar());
22
- </script>
23
-
24
- <template>
25
- <div :class="cs('forward-list-item', { 'forward-list-item--selected': props.isSelected })">
26
- <Avatar :src="conversationAvatar" :style="{ marginRight: '8px' }" />
27
- <div class="forward-item__info">
28
- <div class="forward-item__name">
29
- {{ conversationName }}
30
- </div>
31
- </div>
32
- <IconCheckSm v-if="props.isSelected" class="forward-item__checkbox" />
33
- </div>
34
- </template>
35
-
36
- <style lang="scss" scoped>
37
- @use '../../../styles/mixins/index' as mixin;
38
-
39
- .forward-list-item {
40
- display: flex;
41
- flex-direction: row;
42
- align-items: center;
43
- padding: 12px 8px;
44
- border-radius: 8px;
45
- cursor: pointer;
46
-
47
- &:hover {
48
- background-color: var(--dropdown-color-hover);
49
- }
50
- }
51
-
52
- .forward-item {
53
- &__info {
54
- flex: 1;
55
- margin-left: 12px;
56
- }
57
-
58
- &__name {
59
- font-size: 14px;
60
- font-weight: 500;
61
- }
62
-
63
- &__checkbox {
64
- color: #1890ff;
65
- }
66
- }
67
- </style>