tuikit-atomicx-vue3 4.4.0 → 4.5.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 (641) hide show
  1. package/.eslintrc.cjs +6 -2
  2. package/dist/DurationSelector.vue_vue_type_script_setup_true_lang-RndH6NtJ.js +54 -0
  3. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-D9jiYNFu.js → MessageInput.vue_vue_type_script_setup_true_lang-jPzZ5INK.js} +31 -29
  4. package/dist/TimezoneSelector.vue_vue_type_script_setup_true_lang-C-lovW-l.js +62 -0
  5. package/dist/baseComp/AudioIcon.js +7 -7
  6. package/dist/baseComp/Input/InputH5.vue.d.ts +1 -1
  7. package/dist/baseComp/Input/InputPC.vue.d.ts +1 -1
  8. package/dist/baseComp/Input/InputWX.vue.d.ts +1 -1
  9. package/dist/baseComp/Input/index.d.ts +15 -15
  10. package/dist/changeNameCardDialog.vue_vue_type_script_setup_true_lang-a4FmKskP.js +41 -0
  11. package/dist/chat/index.d.ts +490 -475
  12. package/dist/components/AudioSetting/AudioMediaControl.js +23 -23
  13. package/dist/components/AudioSetting/AudioRequestDialog.js +86 -2
  14. package/dist/components/AudioSetting/AudioSettingTab.js +32 -33
  15. package/dist/components/AudioSetting/MicrophoneSelect.js +14 -15
  16. package/dist/components/AudioSetting/SpeakerSelect.js +16 -17
  17. package/dist/components/AudioSetting/index.js +29 -3
  18. package/dist/components/AudioSettingPanel/MicrophoneSelect.js +61 -0
  19. package/dist/components/AudioSettingPanel/MicrophoneSelect.vue.d.ts +29 -0
  20. package/dist/components/AudioSettingPanel/SpeakerSelect.js +61 -0
  21. package/dist/components/AudioSettingPanel/SpeakerSelect.vue.d.ts +29 -0
  22. package/dist/components/AudioSettingPanel/i18n/en-US/index.d.ts +12 -6
  23. package/dist/components/AudioSettingPanel/i18n/en-US/index.js +12 -6
  24. package/dist/components/AudioSettingPanel/i18n/zh-CN/index.d.ts +12 -6
  25. package/dist/components/AudioSettingPanel/i18n/zh-CN/index.js +12 -6
  26. package/dist/components/AudioSettingPanel/index.d.ts +49 -2
  27. package/dist/components/AudioSettingPanel/index.js +127 -94
  28. package/dist/components/AudioSettingPanel/index.vue.d.ts +49 -1
  29. package/dist/components/BarrageInput/TextEditor/CharacterCountExtension.js +1 -1
  30. package/dist/components/BarrageInput/TextEditor/EditorCore.js +5 -4
  31. package/dist/components/BarrageInput/TextEditor/TextEditor.vue.d.ts +1 -1
  32. package/dist/components/BarrageInput/index.d.ts +6 -6
  33. package/dist/components/BarrageList/BarrageList.js +7 -7
  34. package/dist/components/BarrageList/BarrageListH5.js +7 -7
  35. package/dist/components/BarrageList/BarrageListState.d.ts +5 -27
  36. package/dist/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.js +4 -4
  37. package/dist/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.vue.d.ts +1 -1
  38. package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.js +11 -11
  39. package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.vue.d.ts +1 -1
  40. package/dist/components/BarrageList/Message/TextMessage/TextMessage.js +4 -4
  41. package/dist/components/BarrageList/Message/TextMessage/TextMessage.vue.d.ts +1 -1
  42. package/dist/components/CameraButton/index.js +7 -7
  43. package/dist/components/ChatSetting/GroupChatSetting/GroupChatSetting.js +2 -1
  44. package/dist/components/ChatSetting/SettingItem/SettingItem.vue.d.ts +2 -2
  45. package/dist/components/ConversationList/ConversationActions/ConversationActions.js +49 -51
  46. package/dist/components/ConversationList/ConversationList.vue.d.ts +190 -190
  47. package/dist/components/ConversationList/ConversationPreview/ConversationPreview.vue.d.ts +82 -82
  48. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTimestamp.js +31 -29
  49. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue.d.ts +16 -16
  50. package/dist/components/ConversationList/ConversationSearch/ConversationSearch.vue.d.ts +36 -36
  51. package/dist/components/ConversationList/index.d.ts +442 -442
  52. package/dist/components/FreeBeautyPanel/FreeBeautyPanel.js +257 -0
  53. package/dist/components/FreeBeautyPanel/FreeBeautyPanel.vue.d.ts +6 -0
  54. package/dist/components/FreeBeautyPanel/i18n/en-US/index.d.ts +15 -0
  55. package/dist/components/FreeBeautyPanel/i18n/en-US/index.js +19 -0
  56. package/dist/components/FreeBeautyPanel/i18n/index.d.ts +4 -0
  57. package/dist/components/FreeBeautyPanel/i18n/index.js +6 -0
  58. package/dist/components/FreeBeautyPanel/i18n/zh-CN/index.d.ts +15 -0
  59. package/dist/components/FreeBeautyPanel/i18n/zh-CN/index.js +19 -0
  60. package/dist/components/FreeBeautyPanel/index.d.ts +6 -0
  61. package/dist/components/FreeBeautyPanel/index.js +10 -0
  62. package/dist/components/LiveMonitorView/LiveMonitorView.js +11 -11
  63. package/dist/components/LiveScenePanel/index.d.ts +1 -2
  64. package/dist/components/LiveScenePanel/index.js +44 -43
  65. package/dist/components/LiveView/DefaultStreamViewUI.js +10 -10
  66. package/dist/components/LiveView/PlayerControl/AudioControl.js +97 -93
  67. package/dist/components/LiveView/PlayerControl/AudioControl.vue.d.ts +10 -6
  68. package/dist/components/LiveView/PlayerControl/MultiResolution.js +58 -64
  69. package/dist/components/LiveView/PlayerControl/MultiResolution.vue.d.ts +1 -7
  70. package/dist/components/LiveView/PlayerControl/PlayerControl.js +82 -83
  71. package/dist/components/LiveView/PlayerControl/PlayerControlState.d.ts +6 -6
  72. package/dist/components/LiveView/PlayerControl/PlayerControlState.js +153 -194
  73. package/dist/components/LiveView/index.d.ts +37 -2
  74. package/dist/components/LiveView/index.js +29 -29
  75. package/dist/components/MessageInput/AudioCallPicker/AudioCallPicker.js +63 -65
  76. package/dist/components/MessageInput/MessageInput.js +1 -1
  77. package/dist/components/MessageInput/MessageInput.vue.d.ts +4 -1
  78. package/dist/components/MessageInput/TextEditor/EditorCore.d.ts +2 -1
  79. package/dist/components/MessageInput/TextEditor/EditorCore.js +47 -61
  80. package/dist/components/MessageInput/TextEditor/TextEditor.vue.d.ts +5 -1
  81. package/dist/components/MessageInput/TextEditor/extensions/characterCountExtension.d.ts +19 -0
  82. package/dist/components/MessageInput/TextEditor/extensions/characterCountExtension.js +74 -0
  83. package/dist/components/MessageInput/TextEditor/extensions/imageExtension.d.ts +2 -0
  84. package/dist/components/MessageInput/TextEditor/extensions/imageExtension.js +62 -0
  85. package/dist/components/MessageInput/TextEditor/index.js +48 -39
  86. package/dist/components/MessageInput/VideoCallPicker/VideoCallPicker.js +67 -69
  87. package/dist/components/MessageInput/i18n/index.d.ts +4 -0
  88. package/dist/components/MessageInput/i18n/zh-CN.d.ts +4 -0
  89. package/dist/components/MessageInput/i18n/zh-CN.js +5 -1
  90. package/dist/components/MessageInput/index.d.ts +60 -30
  91. package/dist/components/MessageInput/index.js +1 -1
  92. package/dist/components/MessageList/Message/CustomMessage/CallMessage/CallMessage.js +18 -18
  93. package/dist/components/MessageList/Message/GroupTipMessage/index.js +13 -13
  94. package/dist/components/MessageList/Message/MessageLayout/MessageLayout.js +63 -69
  95. package/dist/components/MessageList/Message/VideoMessage/VideoMessage.js +48 -53
  96. package/dist/components/MessageList/Message/VideoMessage/VideoMessage.vue.d.ts +8 -8
  97. package/dist/components/MessageList/i18n/en-US.d.ts +65 -1
  98. package/dist/components/MessageList/i18n/en-US.js +66 -2
  99. package/dist/components/MessageList/i18n/index.d.ts +128 -0
  100. package/dist/components/MessageList/i18n/index.js +6 -6
  101. package/dist/components/MessageList/i18n/zh-CN.d.ts +65 -1
  102. package/dist/components/MessageList/i18n/zh-CN.js +64 -0
  103. package/dist/components/MicButton/index.js +13 -13
  104. package/dist/components/RoomParticipantList/ParticipantAction.js +78 -0
  105. package/dist/components/RoomParticipantList/ParticipantAction.vue.d.ts +17 -0
  106. package/dist/components/RoomParticipantList/ParticipantItem.js +82 -0
  107. package/dist/components/RoomParticipantList/ParticipantItem.vue.d.ts +27 -0
  108. package/dist/components/RoomParticipantList/PendingParticipantItem.js +75 -0
  109. package/dist/components/RoomParticipantList/PendingParticipantItem.vue.d.ts +16 -0
  110. package/dist/components/RoomParticipantList/RoomAction.js +89 -0
  111. package/dist/components/RoomParticipantList/RoomAction.vue.d.ts +2 -0
  112. package/dist/components/RoomParticipantList/i18n/en-US/index.d.ts +66 -0
  113. package/dist/components/RoomParticipantList/i18n/en-US/index.js +69 -0
  114. package/dist/components/RoomParticipantList/i18n/index.d.ts +2 -0
  115. package/dist/components/RoomParticipantList/i18n/index.js +6 -0
  116. package/dist/components/RoomParticipantList/i18n/zh-CN/index.d.ts +66 -0
  117. package/dist/components/RoomParticipantList/i18n/zh-CN/index.js +69 -0
  118. package/dist/components/RoomParticipantList/index.d.ts +2 -0
  119. package/dist/components/RoomParticipantList/index.js +171 -0
  120. package/dist/components/RoomParticipantList/index.vue.d.ts +2 -0
  121. package/dist/components/RoomParticipantList/useParticpantAction/index.d.ts +15 -0
  122. package/dist/components/RoomParticipantList/useParticpantAction/index.js +71 -0
  123. package/dist/components/RoomParticipantList/useParticpantAction/useAdminAction.d.ts +19 -0
  124. package/dist/components/RoomParticipantList/useParticpantAction/useAdminAction.js +36 -0
  125. package/dist/components/RoomParticipantList/useParticpantAction/useAudioAction.d.ts +19 -0
  126. package/dist/components/RoomParticipantList/useParticpantAction/useAudioAction.js +42 -0
  127. package/dist/components/RoomParticipantList/useParticpantAction/useKickAction.d.ts +11 -0
  128. package/dist/components/RoomParticipantList/useParticpantAction/useKickAction.js +34 -0
  129. package/dist/components/RoomParticipantList/useParticpantAction/useMessageAction.d.ts +11 -0
  130. package/dist/components/RoomParticipantList/useParticpantAction/useMessageAction.js +31 -0
  131. package/dist/components/RoomParticipantList/useParticpantAction/useNameCardAction/changeNameCardDialog.js +4 -0
  132. package/dist/components/RoomParticipantList/useParticpantAction/useNameCardAction/changeNameCardDialog.vue.d.ts +17 -0
  133. package/dist/components/RoomParticipantList/useParticpantAction/useNameCardAction/index.d.ts +11 -0
  134. package/dist/components/RoomParticipantList/useParticpantAction/useNameCardAction/index.js +61 -0
  135. package/dist/components/RoomParticipantList/useParticpantAction/useTransferOwnerAction.d.ts +11 -0
  136. package/dist/components/RoomParticipantList/useParticpantAction/useTransferOwnerAction.js +54 -0
  137. package/dist/components/RoomParticipantList/useParticpantAction/useVideoAction.d.ts +19 -0
  138. package/dist/components/RoomParticipantList/useParticpantAction/useVideoAction.js +40 -0
  139. package/dist/components/RoomParticipantList/useRoomAction/index.d.ts +8 -0
  140. package/dist/components/RoomParticipantList/useRoomAction/index.js +20 -0
  141. package/dist/components/RoomParticipantList/useRoomAction/useRoomAudioAction.d.ts +5 -0
  142. package/dist/components/RoomParticipantList/useRoomAction/useRoomAudioAction.js +51 -0
  143. package/dist/components/RoomParticipantList/useRoomAction/useRoomScreenAction.d.ts +8 -0
  144. package/dist/components/RoomParticipantList/useRoomAction/useRoomScreenAction.js +60 -0
  145. package/dist/components/RoomParticipantList/useRoomAction/useRoomVideoAction.d.ts +5 -0
  146. package/dist/components/RoomParticipantList/useRoomAction/useRoomVideoAction.js +50 -0
  147. package/dist/components/RoomParticipantView/StreamPlay.js +74 -0
  148. package/dist/components/RoomParticipantView/StreamPlay.vue.d.ts +66 -0
  149. package/dist/components/RoomParticipantView/StreamPlayManager/LazyLoadManager.d.ts +56 -0
  150. package/dist/components/RoomParticipantView/StreamPlayManager/LazyLoadManager.js +94 -0
  151. package/dist/components/RoomParticipantView/StreamPlayManager/StreamInfoManager.d.ts +58 -0
  152. package/dist/components/RoomParticipantView/StreamPlayManager/StreamInfoManager.js +97 -0
  153. package/dist/components/RoomParticipantView/StreamPlayManager/StreamPlayer.d.ts +46 -0
  154. package/dist/components/RoomParticipantView/StreamPlayManager/StreamPlayer.js +100 -0
  155. package/dist/components/RoomParticipantView/StreamPlayManager/VideoQualityManager.d.ts +92 -0
  156. package/dist/components/RoomParticipantView/StreamPlayManager/VideoQualityManager.js +177 -0
  157. package/dist/components/RoomParticipantView/StreamPlayManager/index.d.ts +119 -0
  158. package/dist/components/RoomParticipantView/StreamPlayManager/index.js +298 -0
  159. package/dist/components/RoomParticipantView/StreamPlayManager/types.d.ts +14 -0
  160. package/dist/components/RoomParticipantView/StreamPlayManager/types.js +4 -0
  161. package/dist/components/RoomParticipantView/index.d.ts +99 -0
  162. package/dist/components/RoomParticipantView/index.js +32 -0
  163. package/dist/components/RoomParticipantView/index.vue.d.ts +34 -0
  164. package/dist/components/RoomView/ArrowStroke.js +43 -0
  165. package/dist/components/RoomView/ArrowStroke.vue.d.ts +20 -0
  166. package/dist/components/RoomView/GridLayout.js +119 -0
  167. package/dist/components/RoomView/GridLayout.vue.d.ts +20 -0
  168. package/dist/components/RoomView/SpeakerLayout.js +141 -0
  169. package/dist/components/RoomView/SpeakerLayout.vue.d.ts +32 -0
  170. package/dist/components/RoomView/index.d.ts +52 -0
  171. package/dist/components/RoomView/index.js +49 -0
  172. package/dist/components/RoomView/index.vue.d.ts +46 -0
  173. package/dist/components/RoomView/useRoomToolbar.d.ts +5 -0
  174. package/dist/components/RoomView/useRoomToolbar.js +36 -0
  175. package/dist/components/RoomView/useRoomView.d.ts +13 -0
  176. package/dist/components/RoomView/useRoomView.js +40 -0
  177. package/dist/components/RoomView/useStreamItemDimensions.d.ts +30 -0
  178. package/dist/components/RoomView/useStreamItemDimensions.js +57 -0
  179. package/dist/components/ScheduleRoomPanel/Datepicker.js +162 -0
  180. package/dist/components/ScheduleRoomPanel/Datepicker.vue.d.ts +18 -0
  181. package/dist/components/ScheduleRoomPanel/DurationSelector.js +4 -0
  182. package/dist/components/ScheduleRoomPanel/DurationSelector.vue.d.ts +39 -0
  183. package/dist/components/ScheduleRoomPanel/RoomDetail.js +113 -0
  184. package/dist/components/ScheduleRoomPanel/RoomDetail.vue.d.ts +31 -0
  185. package/dist/components/ScheduleRoomPanel/RoomEdit.js +281 -0
  186. package/dist/components/ScheduleRoomPanel/RoomEdit.vue.d.ts +23 -0
  187. package/dist/components/ScheduleRoomPanel/RoomShare.js +110 -0
  188. package/dist/components/ScheduleRoomPanel/RoomShare.vue.d.ts +16 -0
  189. package/dist/components/ScheduleRoomPanel/ScheduleRoomPanel.js +385 -0
  190. package/dist/components/ScheduleRoomPanel/ScheduleRoomPanel.vue.d.ts +40 -0
  191. package/dist/components/ScheduleRoomPanel/ScheduledRoomList.js +345 -0
  192. package/dist/components/ScheduleRoomPanel/ScheduledRoomList.vue.d.ts +8 -0
  193. package/dist/components/ScheduleRoomPanel/Timepicker.js +65 -0
  194. package/dist/components/ScheduleRoomPanel/Timepicker.vue.d.ts +18 -0
  195. package/dist/components/ScheduleRoomPanel/TimezoneSelector.js +4 -0
  196. package/dist/components/ScheduleRoomPanel/TimezoneSelector.vue.d.ts +18 -0
  197. package/dist/components/ScheduleRoomPanel/i18n/en-US/index.d.ts +108 -0
  198. package/dist/components/ScheduleRoomPanel/i18n/en-US/index.js +111 -0
  199. package/dist/components/ScheduleRoomPanel/i18n/index.d.ts +4 -0
  200. package/dist/components/ScheduleRoomPanel/i18n/index.js +6 -0
  201. package/dist/components/ScheduleRoomPanel/i18n/zh-CN/index.d.ts +108 -0
  202. package/dist/components/ScheduleRoomPanel/i18n/zh-CN/index.js +111 -0
  203. package/dist/components/ScheduleRoomPanel/index.d.ts +34 -0
  204. package/dist/components/ScheduleRoomPanel/index.js +12 -0
  205. package/dist/components/ScheduleRoomPanel/type.d.ts +7 -0
  206. package/dist/components/ScheduleRoomPanel/type.js +1 -0
  207. package/dist/components/ScheduleRoomPanel/utils.d.ts +46 -0
  208. package/dist/components/ScheduleRoomPanel/utils.js +123 -0
  209. package/dist/components/Search/Search.vue.d.ts +12 -12
  210. package/dist/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.js +172 -174
  211. package/dist/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.js +58 -60
  212. package/dist/components/Search/SearchAdvanced/SearchAdvanced.js +28 -30
  213. package/dist/components/Search/SearchAdvanced/SearchTab/SearchTab.js +22 -24
  214. package/dist/components/Search/SearchAdvanced/Slider/Slider.js +26 -28
  215. package/dist/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.js +133 -135
  216. package/dist/components/Search/SearchBar/SearchBar.js +56 -58
  217. package/dist/components/Search/index.d.ts +18 -18
  218. package/dist/components/StreamMixer/LocalMixer/index.js +25 -22
  219. package/dist/components/StreamMixer/index.d.ts +1 -2
  220. package/dist/components/StreamMixer/index.js +9 -8
  221. package/dist/components/StreamView/Layout/CustomLayout.js +53 -53
  222. package/dist/components/StreamView/Layout/CustomLayout.vue.d.ts +1 -2
  223. package/dist/components/StreamView/Layout/FloatLayout.vue.d.ts +1 -2
  224. package/dist/components/StreamView/Layout/GridLayout.js +47 -51
  225. package/dist/components/StreamView/Layout/GridLayout.vue.d.ts +1 -2
  226. package/dist/components/StreamView/Layout/MeetingLayout.js +10 -10
  227. package/dist/components/StreamView/Layout/MeetingLayout.vue.d.ts +1 -1
  228. package/dist/components/StreamView/common/StreamList/index.vue.d.ts +1 -1
  229. package/dist/components/StreamView/common/StreamRegion/StreamRegionPC.vue.d.ts +2 -2
  230. package/dist/components/StreamView/index.d.ts +90 -3
  231. package/dist/components/StreamView/index.js +4 -4
  232. package/dist/components/StreamView/index.vue.d.ts +1 -1
  233. package/dist/components/StreamView/manager/mediaManager.js +9 -9
  234. package/dist/components/UIKitModal/UIKitModal.d.ts +7 -0
  235. package/dist/components/UIKitModal/UIKitModal.js +156 -0
  236. package/dist/components/UIKitModal/index.d.ts +2 -0
  237. package/dist/components/UIKitModal/index.js +6 -0
  238. package/dist/components/UIKitModal/index.vue.d.ts +45 -0
  239. package/dist/components/UIKitModal/type.d.ts +21 -0
  240. package/dist/components/UIKitModal/type.js +1 -0
  241. package/dist/components/UIKitModal/useRoomModal/i18n/en-US/index.d.ts +17 -0
  242. package/dist/components/UIKitModal/useRoomModal/i18n/en-US/index.js +21 -0
  243. package/dist/components/UIKitModal/useRoomModal/i18n/index.d.ts +4 -0
  244. package/dist/components/UIKitModal/useRoomModal/i18n/index.js +6 -0
  245. package/dist/components/UIKitModal/useRoomModal/i18n/zh-CN/index.d.ts +17 -0
  246. package/dist/components/UIKitModal/useRoomModal/i18n/zh-CN/index.js +21 -0
  247. package/dist/components/UIKitModal/useRoomModal/index.d.ts +6 -0
  248. package/dist/components/UIKitModal/useRoomModal/index.js +11 -0
  249. package/dist/components/UIKitModal/useRoomModal/useRoomModal.d.ts +21 -0
  250. package/dist/components/UIKitModal/useRoomModal/useRoomModal.js +79 -0
  251. package/dist/components/UserList/AllUserActions/indexH5.js +21 -21
  252. package/dist/components/UserList/AllUserActions/useIndexHooks.d.ts +0 -2
  253. package/dist/components/UserList/AllUserActions/useIndexHooks.js +24 -25
  254. package/dist/components/UserList/UserItem/UserInfo/index.js +19 -19
  255. package/dist/components/UserPicker/UserPicker.js +1 -2
  256. package/dist/components/UserPicker/components/SelectedPanel/SelectedPanel.js +19 -18
  257. package/dist/components/UserPicker/hooks/useSearchFilter.d.ts +2 -2
  258. package/dist/components/UserPicker/hooks/useSearchFilter.js +39 -31
  259. package/dist/components/UserPicker/i18n/en-US.d.ts +1 -0
  260. package/dist/components/UserPicker/i18n/en-US.js +2 -1
  261. package/dist/components/UserPicker/i18n/index.d.ts +2 -0
  262. package/dist/components/UserPicker/i18n/zh-CN.d.ts +1 -0
  263. package/dist/components/UserPicker/i18n/zh-CN.js +2 -1
  264. package/dist/components/UserPicker/index.d.ts +2 -2
  265. package/dist/components/UserPicker/type.d.ts +1 -1
  266. package/dist/components/VideoSetting/CameraSelect.js +6 -7
  267. package/dist/components/VideoSetting/VideoMediaControl.js +45 -44
  268. package/dist/components/VideoSetting/VideoPreview.js +24 -25
  269. package/dist/components/VideoSetting/VideoProfile.js +22 -23
  270. package/dist/components/VideoSetting/VideoSettingTab.js +24 -24
  271. package/dist/components/VideoSetting/index.js +32 -3
  272. package/dist/components/VideoSettingPanel/CameraSelect.js +28 -25
  273. package/dist/components/VideoSettingPanel/VideoPreview.js +13 -13
  274. package/dist/components/VideoSettingPanel/VideoProfile.js +27 -27
  275. package/dist/components/VideoSettingPanel/i18n/en-US/index.d.ts +13 -10
  276. package/dist/components/VideoSettingPanel/i18n/en-US/index.js +13 -10
  277. package/dist/components/VideoSettingPanel/i18n/zh-CN/index.d.ts +13 -10
  278. package/dist/components/VideoSettingPanel/i18n/zh-CN/index.js +13 -10
  279. package/dist/components/VideoSettingPanel/index.d.ts +9 -0
  280. package/dist/components/VideoSettingPanel/index.js +56 -44
  281. package/dist/components/VideoSettingPanel/index.vue.d.ts +9 -0
  282. package/dist/components/VirtualBackgroundPanel/VirtualBackgroundPanel.js +169 -0
  283. package/dist/components/VirtualBackgroundPanel/VirtualBackgroundPanel.vue.d.ts +33 -0
  284. package/dist/components/VirtualBackgroundPanel/i18n/en-US/index.d.ts +10 -0
  285. package/dist/components/VirtualBackgroundPanel/i18n/en-US/index.js +14 -0
  286. package/dist/components/VirtualBackgroundPanel/i18n/index.d.ts +4 -0
  287. package/dist/components/VirtualBackgroundPanel/i18n/index.js +6 -0
  288. package/dist/components/VirtualBackgroundPanel/i18n/zh-CN/index.d.ts +10 -0
  289. package/dist/components/VirtualBackgroundPanel/i18n/zh-CN/index.js +14 -0
  290. package/dist/components/VirtualBackgroundPanel/index.d.ts +20 -0
  291. package/dist/components/VirtualBackgroundPanel/index.js +10 -0
  292. package/dist/hooks/useRoomActions/index.d.ts +1 -1
  293. package/dist/hooks/useRoomActions/index.js +10 -11
  294. package/dist/hooks/useRoomActions/useRoomAudioAction.d.ts +1 -3
  295. package/dist/hooks/useRoomActions/useRoomAudioAction.js +30 -31
  296. package/dist/hooks/useRoomActions/useRoomScreenAction.d.ts +0 -2
  297. package/dist/hooks/useRoomActions/useRoomScreenAction.js +20 -20
  298. package/dist/hooks/useRoomActions/useRoomVideoAction.d.ts +1 -8
  299. package/dist/hooks/useRoomActions/useRoomVideoAction.js +26 -28
  300. package/dist/hooks/useRoomEngine.d.ts +2 -2
  301. package/dist/hooks/useUserActions/index.d.ts +7 -23
  302. package/dist/hooks/useUserActions/index.js +11 -11
  303. package/dist/hooks/useUserActions/useChangeNameCardAction/index.d.ts +1 -9
  304. package/dist/hooks/useUserActions/useKickUserAction.d.ts +1 -9
  305. package/dist/hooks/useUserActions/useSeatAction.d.ts +1 -1
  306. package/dist/hooks/useUserActions/useSeatAction.js +3 -3
  307. package/dist/hooks/useUserActions/useTransferOwnerAction.d.ts +2 -10
  308. package/dist/hooks/useUserActions/useTransferOwnerAction.js +22 -20
  309. package/dist/hooks/useUserActions/useVideoAction.d.ts +1 -9
  310. package/dist/index-7vNB_Vx8.js +64 -0
  311. package/dist/{index-BfIEeWMg.js → index-Do-2CngU.js} +1894 -1759
  312. package/dist/{index-DTi1fL-x.js → index-ZILx4LYk.js} +1210 -1512
  313. package/dist/index.d.ts +3 -6
  314. package/dist/index.js +255 -194
  315. package/dist/report/MetricsKey.d.ts +27 -14
  316. package/dist/report/MetricsKey.js +1 -1
  317. package/dist/report/dataReport.js +12 -8
  318. package/dist/states/ASRState/ASRState.d.ts +61 -0
  319. package/dist/states/ASRState/ASRState.js +79 -0
  320. package/dist/states/ASRState/index.d.ts +1 -0
  321. package/dist/states/ASRState/index.js +4 -0
  322. package/dist/states/BarrageState/BarrageState.d.ts +70 -44
  323. package/dist/states/BarrageState/BarrageState.js +29 -31
  324. package/dist/states/BarrageState/index.js +2 -3
  325. package/dist/states/BattleState/BattleState.d.ts +101 -5
  326. package/dist/states/C2CSettingState/C2CSettingState.d.ts +107 -0
  327. package/dist/states/CoGuestState.d.ts +53 -1
  328. package/dist/states/CoGuestState.js +15 -15
  329. package/dist/states/CoHostState/CoHostState.d.ts +120 -0
  330. package/dist/states/ContactListState/ContactListState.d.ts +56 -0
  331. package/dist/states/ConversationListState/ConversationListState.d.ts +36 -0
  332. package/dist/states/DeviceState/DeviceState.d.ts +68 -10
  333. package/dist/states/DeviceState/DeviceState.js +233 -189
  334. package/dist/states/DeviceState/mediaAbality.d.ts +2 -0
  335. package/dist/states/DeviceState/mediaAbality.js +11 -0
  336. package/dist/states/FreeBeautyState/FreeBeautyState.d.ts +11 -0
  337. package/dist/states/FreeBeautyState/FreeBeautyState.js +103 -0
  338. package/dist/states/FreeBeautyState/index.d.ts +1 -0
  339. package/dist/states/FreeBeautyState/index.js +4 -0
  340. package/dist/states/GroupSettingState/GroupSettingState.d.ts +59 -0
  341. package/dist/states/LiveAudienceState.d.ts +42 -4
  342. package/dist/states/LiveListState/LiveListState.d.ts +2 -2
  343. package/dist/states/LiveListState/LiveListState.js +5 -5
  344. package/dist/states/LiveMonitorState/index.d.ts +42 -0
  345. package/dist/states/LiveMonitorState/player/adapters/trtc.js +6 -6
  346. package/dist/states/LiveSeatState/index.d.ts +58 -8
  347. package/dist/states/LiveSeatState/index.js +20 -18
  348. package/dist/states/LiveSeatState/seatManager.d.ts +293 -6
  349. package/dist/states/LiveSeatState/seatManager.js +283 -0
  350. package/dist/states/LiveSeatState/store.d.ts +0 -2
  351. package/dist/states/LiveSeatState/usePlayStream/RTCStreamManager.js +13 -13
  352. package/dist/states/LiveSeatState/usePlayStream/RTCStreamPlayer.js +7 -7
  353. package/dist/states/LiveSeatState/usePlayStream/index.d.ts +4 -7
  354. package/dist/states/LiveSeatState/usePlayStream/index.js +65 -54
  355. package/dist/states/LoginState.d.ts +45 -0
  356. package/dist/states/MessageActionState/MessageActionState.d.ts +36 -2
  357. package/dist/states/MessageActionState/MessageActionState.js +142 -22
  358. package/dist/states/MessageListState/MessageListState.d.ts +39 -0
  359. package/dist/states/RoomParticipantState/callEventManager.d.ts +10 -0
  360. package/dist/states/RoomParticipantState/callEventManager.js +49 -0
  361. package/dist/states/RoomParticipantState/common.d.ts +14 -0
  362. package/dist/states/RoomParticipantState/common.js +76 -0
  363. package/dist/states/RoomParticipantState/index.d.ts +4 -0
  364. package/dist/states/RoomParticipantState/index.js +93 -0
  365. package/dist/states/RoomParticipantState/participantEventManager.d.ts +66 -0
  366. package/dist/states/RoomParticipantState/participantEventManager.js +326 -0
  367. package/dist/states/RoomParticipantState/participantManager.d.ts +311 -0
  368. package/dist/states/RoomParticipantState/participantManager.js +440 -0
  369. package/dist/states/RoomParticipantState/scheduleEventManager.d.ts +7 -0
  370. package/dist/states/RoomParticipantState/scheduleEventManager.js +37 -0
  371. package/dist/states/RoomParticipantState/store.d.ts +38 -0
  372. package/dist/states/RoomParticipantState/store.js +102 -0
  373. package/dist/states/RoomState/callManager.d.ts +43 -0
  374. package/dist/states/RoomState/callManager.js +208 -0
  375. package/dist/states/RoomState/common.d.ts +25 -0
  376. package/dist/states/RoomState/common.js +101 -0
  377. package/dist/states/RoomState/index.d.ts +8 -0
  378. package/dist/states/RoomState/index.js +52 -0
  379. package/dist/states/RoomState/roomManager.d.ts +35 -0
  380. package/dist/states/RoomState/roomManager.js +129 -0
  381. package/dist/states/RoomState/scheduleManager.d.ts +48 -0
  382. package/dist/states/RoomState/scheduleManager.js +174 -0
  383. package/dist/states/RoomState/store.d.ts +103 -0
  384. package/dist/states/RoomState/store.js +12 -0
  385. package/dist/states/SearchState.d.ts +47 -0
  386. package/dist/states/SeatStore.d.ts +59 -52
  387. package/dist/states/UIKitModalState/UIKitModalState.d.ts +17 -0
  388. package/dist/states/UIKitModalState/UIKitModalState.js +63 -0
  389. package/dist/states/UIKitModalState/index.d.ts +1 -0
  390. package/dist/states/UIKitModalState/index.js +4 -0
  391. package/dist/states/UserState/index.js +22 -28
  392. package/dist/states/UserState/store.d.ts +1 -1
  393. package/dist/states/UserState/store.js +55 -62
  394. package/dist/states/UserState/userManager.d.ts +2 -2
  395. package/dist/states/UserState/userManager.js +23 -25
  396. package/dist/states/VideoMixerState/VideoMixerState.d.ts +57 -1
  397. package/dist/states/VideoMixerState/VideoMixerState.js +91 -90
  398. package/dist/states/VideoMixerState/index.d.ts +1 -0
  399. package/dist/states/VideoMixerState/index.js +2 -1
  400. package/dist/states/VirtualBackgroundState/VirtualBackgroundState.d.ts +52 -0
  401. package/dist/states/VirtualBackgroundState/VirtualBackgroundState.js +99 -0
  402. package/dist/states/VirtualBackgroundState/index.d.ts +1 -0
  403. package/dist/states/VirtualBackgroundState/index.js +4 -0
  404. package/dist/styles/index.css +1 -1
  405. package/dist/subEntry/common/base.d.ts +5 -0
  406. package/dist/subEntry/common/base.js +21 -0
  407. package/dist/subEntry/common/index.d.ts +2 -0
  408. package/dist/subEntry/common/index.js +29 -0
  409. package/dist/subEntry/common/rtc.d.ts +4 -0
  410. package/dist/subEntry/common/rtc.js +10 -0
  411. package/dist/subEntry/live/index.d.ts +4 -0
  412. package/dist/subEntry/live/index.js +200 -0
  413. package/dist/subEntry/live/live.d.ts +21 -0
  414. package/dist/subEntry/live/live.js +45 -0
  415. package/dist/{rtc → subEntry/live}/server.d.ts +1 -1
  416. package/dist/{rtc → subEntry/live}/server.js +4 -4
  417. package/dist/subEntry/room/index.d.ts +4 -0
  418. package/dist/subEntry/room/index.js +180 -0
  419. package/dist/subEntry/room/room.d.ts +11 -0
  420. package/dist/subEntry/room/room.js +25 -0
  421. package/dist/subEntry/room/server.d.ts +19 -0
  422. package/dist/subEntry/room/server.js +97 -0
  423. package/dist/types/asr.d.ts +29 -0
  424. package/dist/types/asr.js +4 -0
  425. package/dist/types/barrage.d.ts +83 -0
  426. package/dist/types/barrage.js +4 -0
  427. package/dist/types/beauty.d.ts +9 -0
  428. package/dist/types/beauty.js +4 -0
  429. package/dist/types/device.d.ts +0 -1
  430. package/dist/types/index.d.ts +7 -3
  431. package/dist/types/index.js +125 -108
  432. package/dist/types/participant.d.ts +243 -0
  433. package/dist/types/participant.js +10 -0
  434. package/dist/types/room.d.ts +202 -55
  435. package/dist/types/room.js +5 -3
  436. package/dist/types/virtualBackground.d.ts +14 -0
  437. package/dist/types/virtualBackground.js +5 -0
  438. package/dist/utils/call.d.ts +1 -1
  439. package/dist/utils/call.js +78 -79
  440. package/dist/utils/compare.d.ts +10 -0
  441. package/dist/utils/compare.js +12 -0
  442. package/package.json +11 -7
  443. package/src/baseComp/AudioIcon.vue +11 -3
  444. package/src/components/AudioSetting/AudioMediaControl.vue +10 -9
  445. package/src/components/AudioSetting/AudioRequestDialog.vue +11 -11
  446. package/src/components/AudioSetting/AudioSettingTab.vue +14 -14
  447. package/src/components/AudioSetting/MicrophoneSelect.vue +11 -11
  448. package/src/components/AudioSetting/SpeakerSelect.vue +10 -11
  449. package/src/components/AudioSetting/index.ts +1 -1
  450. package/src/components/AudioSetting/index.vue +4 -7
  451. package/src/components/AudioSettingPanel/MicrophoneSelect.vue +77 -0
  452. package/src/components/AudioSettingPanel/SpeakerSelect.vue +78 -0
  453. package/src/components/AudioSettingPanel/i18n/en-US/index.ts +12 -6
  454. package/src/components/AudioSettingPanel/i18n/zh-CN/index.ts +12 -6
  455. package/src/components/AudioSettingPanel/index.ts +3 -1
  456. package/src/components/AudioSettingPanel/index.vue +150 -122
  457. package/src/components/BarrageList/BarrageList.vue +1 -1
  458. package/src/components/BarrageList/BarrageListH5.vue +1 -1
  459. package/src/components/BarrageList/BarrageListState.ts +1 -1
  460. package/src/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.vue +1 -1
  461. package/src/components/BarrageList/Message/MessageLayout/MessageLayout.vue +2 -2
  462. package/src/components/BarrageList/Message/TextMessage/TextMessage.vue +1 -1
  463. package/src/components/ChatSetting/GroupChatSetting/GroupChatSetting.vue +5 -0
  464. package/src/components/ConversationList/ConversationActions/ConversationActions.vue +1 -7
  465. package/src/components/ConversationList/ConversationPreview/ConversationPreviewTimestamp.vue +3 -3
  466. package/src/components/FreeBeautyPanel/FreeBeautyPanel.vue +618 -0
  467. package/src/components/FreeBeautyPanel/i18n/en-US/index.ts +16 -0
  468. package/src/components/FreeBeautyPanel/i18n/index.ts +4 -0
  469. package/src/components/FreeBeautyPanel/i18n/zh-CN/index.ts +16 -0
  470. package/src/components/FreeBeautyPanel/index.ts +11 -0
  471. package/src/components/LiveScenePanel/index.ts +4 -1
  472. package/src/components/LiveView/PlayerControl/AudioControl.vue +72 -80
  473. package/src/components/LiveView/PlayerControl/MultiResolution.vue +29 -26
  474. package/src/components/LiveView/PlayerControl/PlayerControl.vue +10 -36
  475. package/src/components/LiveView/PlayerControl/PlayerControlState.ts +108 -286
  476. package/src/components/LiveView/index.ts +2 -1
  477. package/src/components/MessageInput/AudioCallPicker/AudioCallPicker.vue +8 -6
  478. package/src/components/MessageInput/MessageInput.vue +2 -0
  479. package/src/components/MessageInput/TextEditor/EditorCore.ts +13 -26
  480. package/src/components/MessageInput/TextEditor/TextEditor.vue +23 -2
  481. package/src/components/MessageInput/TextEditor/extensions/characterCountExtension.ts +159 -0
  482. package/src/components/MessageInput/TextEditor/extensions/imageExtension.ts +79 -0
  483. package/src/components/MessageInput/VideoCallPicker/VideoCallPicker.vue +8 -6
  484. package/src/components/MessageInput/i18n/zh-CN.ts +4 -0
  485. package/src/components/MessageInput/types.d.ts +1 -0
  486. package/src/components/MessageList/Message/CustomMessage/CallMessage/CallMessage.vue +4 -2
  487. package/src/components/MessageList/Message/GroupTipMessage/GroupTipMessage.vue +5 -4
  488. package/src/components/MessageList/Message/MessageLayout/MessageLayout.vue +8 -8
  489. package/src/components/MessageList/Message/VideoMessage/VideoMessage.vue +46 -43
  490. package/src/components/MessageList/Message/VideoMessage/index.ts +1 -1
  491. package/src/components/MessageList/i18n/en-US.ts +66 -0
  492. package/src/components/MessageList/i18n/index.ts +4 -4
  493. package/src/components/MessageList/i18n/zh-CN.ts +66 -0
  494. package/src/components/RoomParticipantList/ParticipantAction.vue +196 -0
  495. package/src/components/RoomParticipantList/ParticipantItem.vue +205 -0
  496. package/src/components/RoomParticipantList/PendingParticipantItem.vue +142 -0
  497. package/src/components/RoomParticipantList/RoomAction.vue +141 -0
  498. package/src/components/RoomParticipantList/i18n/en-US/index.ts +74 -0
  499. package/src/components/RoomParticipantList/i18n/index.ts +2 -0
  500. package/src/components/RoomParticipantList/i18n/zh-CN/index.ts +74 -0
  501. package/src/components/RoomParticipantList/index.ts +10 -0
  502. package/src/components/RoomParticipantList/index.vue +285 -0
  503. package/src/components/RoomParticipantList/useParticpantAction/index.ts +94 -0
  504. package/src/components/RoomParticipantList/useParticpantAction/useAdminAction.ts +56 -0
  505. package/src/components/RoomParticipantList/useParticpantAction/useAudioAction.ts +66 -0
  506. package/src/components/RoomParticipantList/useParticpantAction/useKickAction.ts +46 -0
  507. package/src/components/RoomParticipantList/useParticpantAction/useMessageAction.ts +42 -0
  508. package/src/components/RoomParticipantList/useParticpantAction/useNameCardAction/changeNameCardDialog.vue +51 -0
  509. package/src/components/RoomParticipantList/useParticpantAction/useNameCardAction/index.ts +80 -0
  510. package/src/components/RoomParticipantList/useParticpantAction/useTransferOwnerAction.ts +77 -0
  511. package/src/components/RoomParticipantList/useParticpantAction/useVideoAction.ts +59 -0
  512. package/src/components/RoomParticipantList/useRoomAction/index.ts +23 -0
  513. package/src/components/RoomParticipantList/useRoomAction/useRoomAudioAction.ts +67 -0
  514. package/src/components/RoomParticipantList/useRoomAction/useRoomScreenAction.ts +69 -0
  515. package/src/components/RoomParticipantList/useRoomAction/useRoomVideoAction.ts +66 -0
  516. package/src/components/RoomParticipantView/StreamPlay.vue +127 -0
  517. package/src/components/RoomParticipantView/StreamPlayManager/LazyLoadManager.ts +174 -0
  518. package/src/components/RoomParticipantView/StreamPlayManager/README.md +768 -0
  519. package/src/components/RoomParticipantView/StreamPlayManager/StreamInfoManager.ts +209 -0
  520. package/src/components/RoomParticipantView/StreamPlayManager/StreamPlayer.ts +183 -0
  521. package/src/components/RoomParticipantView/StreamPlayManager/VideoQualityManager.ts +357 -0
  522. package/src/components/RoomParticipantView/StreamPlayManager/index.ts +501 -0
  523. package/src/components/RoomParticipantView/StreamPlayManager/types.ts +13 -0
  524. package/src/components/RoomParticipantView/index.ts +5 -0
  525. package/src/components/RoomParticipantView/index.vue +43 -0
  526. package/src/components/RoomView/ArrowStroke.vue +265 -0
  527. package/src/components/RoomView/GridLayout.vue +236 -0
  528. package/src/components/RoomView/SpeakerLayout.vue +400 -0
  529. package/src/components/RoomView/index.ts +5 -0
  530. package/src/components/RoomView/index.vue +58 -0
  531. package/src/components/RoomView/useRoomToolbar.ts +97 -0
  532. package/src/components/RoomView/useRoomView.ts +48 -0
  533. package/src/components/RoomView/useStreamItemDimensions.ts +162 -0
  534. package/src/components/ScheduleRoomPanel/Datepicker.vue +332 -0
  535. package/src/components/ScheduleRoomPanel/DurationSelector.vue +92 -0
  536. package/src/components/ScheduleRoomPanel/RoomDetail.vue +240 -0
  537. package/src/components/ScheduleRoomPanel/RoomEdit.vue +473 -0
  538. package/src/components/ScheduleRoomPanel/RoomShare.vue +216 -0
  539. package/src/components/ScheduleRoomPanel/ScheduleRoomPanel.vue +625 -0
  540. package/src/components/ScheduleRoomPanel/ScheduledRoomList.vue +622 -0
  541. package/src/components/ScheduleRoomPanel/Timepicker.vue +86 -0
  542. package/src/components/ScheduleRoomPanel/TimezoneSelector.vue +70 -0
  543. package/src/components/ScheduleRoomPanel/i18n/en-US/index.ts +116 -0
  544. package/src/components/ScheduleRoomPanel/i18n/index.ts +4 -0
  545. package/src/components/ScheduleRoomPanel/i18n/zh-CN/index.ts +116 -0
  546. package/src/components/ScheduleRoomPanel/index.ts +14 -0
  547. package/src/components/ScheduleRoomPanel/type.ts +7 -0
  548. package/src/components/ScheduleRoomPanel/utils.ts +281 -0
  549. package/src/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.scss +1 -4
  550. package/src/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.scss +1 -4
  551. package/src/components/Search/SearchAdvanced/SearchAdvanced.scss +1 -4
  552. package/src/components/Search/SearchAdvanced/SearchTab/SearchTab.scss +1 -4
  553. package/src/components/Search/SearchAdvanced/Slider/Slider.scss +1 -4
  554. package/src/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.scss +1 -4
  555. package/src/components/Search/SearchBar/SearchBar.scss +3 -6
  556. package/src/components/StreamMixer/LocalMixer/index.vue +6 -1
  557. package/src/components/StreamMixer/index.ts +4 -1
  558. package/src/components/StreamView/Layout/CustomLayout.vue +40 -36
  559. package/src/components/StreamView/Layout/GridLayout.vue +31 -40
  560. package/src/components/StreamView/Layout/MeetingLayout.vue +34 -35
  561. package/src/components/StreamView/index.ts +5 -3
  562. package/src/components/StreamView/manager/mediaManager.ts +1 -2
  563. package/src/components/UIKitModal/UIKitModal.ts +71 -0
  564. package/src/components/UIKitModal/index.scss +134 -0
  565. package/src/components/UIKitModal/index.ts +2 -0
  566. package/src/components/UIKitModal/index.vue +160 -0
  567. package/src/components/UIKitModal/type.ts +24 -0
  568. package/src/components/UIKitModal/useRoomModal/i18n/en-US/index.ts +19 -0
  569. package/src/components/UIKitModal/useRoomModal/i18n/index.ts +4 -0
  570. package/src/components/UIKitModal/useRoomModal/i18n/zh-CN/index.ts +18 -0
  571. package/src/components/UIKitModal/useRoomModal/index.ts +11 -0
  572. package/src/components/UIKitModal/useRoomModal/useRoomModal.ts +103 -0
  573. package/src/components/UserList/AllUserActions/indexH5.vue +3 -3
  574. package/src/components/UserList/AllUserActions/useIndexHooks.ts +1 -1
  575. package/src/components/UserList/UserItem/UserInfo/index.vue +17 -12
  576. package/src/components/UserPicker/UserPicker.vue +1 -1
  577. package/src/components/UserPicker/components/SelectedPanel/SelectedPanel.vue +1 -0
  578. package/src/components/UserPicker/hooks/useSearchFilter.ts +27 -18
  579. package/src/components/UserPicker/i18n/en-US.ts +1 -0
  580. package/src/components/UserPicker/i18n/zh-CN.ts +1 -0
  581. package/src/components/UserPicker/type.ts +1 -1
  582. package/src/components/VideoSetting/CameraSelect.vue +11 -11
  583. package/src/components/VideoSetting/VideoMediaControl.vue +22 -21
  584. package/src/components/VideoSetting/VideoPreview.vue +14 -8
  585. package/src/components/VideoSetting/VideoProfile.vue +13 -15
  586. package/src/components/VideoSetting/VideoSettingTab.vue +9 -9
  587. package/src/components/VideoSettingPanel/CameraSelect.vue +8 -3
  588. package/src/components/VideoSettingPanel/VideoPreview.vue +4 -4
  589. package/src/components/VideoSettingPanel/VideoProfile.vue +6 -6
  590. package/src/components/VideoSettingPanel/i18n/en-US/index.ts +13 -10
  591. package/src/components/VideoSettingPanel/i18n/zh-CN/index.ts +13 -10
  592. package/src/components/VideoSettingPanel/index.ts +2 -2
  593. package/src/components/VideoSettingPanel/index.vue +73 -74
  594. package/src/components/VirtualBackgroundPanel/VirtualBackgroundPanel.vue +337 -0
  595. package/src/components/VirtualBackgroundPanel/assets/blurred-background.png +0 -0
  596. package/src/components/VirtualBackgroundPanel/assets/close-virtual-background.png +0 -0
  597. package/src/components/VirtualBackgroundPanel/i18n/en-US/index.ts +11 -0
  598. package/src/components/VirtualBackgroundPanel/i18n/index.ts +4 -0
  599. package/src/components/VirtualBackgroundPanel/i18n/zh-CN/index.ts +11 -0
  600. package/src/components/VirtualBackgroundPanel/index.ts +11 -0
  601. package/src/hooks/useRoomActions/index.ts +3 -2
  602. package/src/hooks/useRoomActions/useRoomAudioAction.ts +11 -12
  603. package/src/hooks/useRoomActions/useRoomScreenAction.ts +12 -13
  604. package/src/hooks/useRoomActions/useRoomVideoAction.ts +10 -13
  605. package/src/hooks/useRoomEngine.ts +3 -2
  606. package/src/hooks/useUserActions/index.ts +38 -43
  607. package/src/hooks/useUserActions/useSeatAction.ts +10 -10
  608. package/src/hooks/useUserActions/useTransferOwnerAction.ts +10 -10
  609. package/src/index.ts +7 -9
  610. package/src/report/MetricsKey.ts +28 -14
  611. package/src/report/dataReport.ts +13 -9
  612. package/src/subEntry/common/base.ts +6 -0
  613. package/src/subEntry/common/index.ts +2 -0
  614. package/src/subEntry/common/rtc.ts +5 -0
  615. package/src/subEntry/live/index.ts +8 -0
  616. package/src/subEntry/live/live.ts +23 -0
  617. package/src/{rtc → subEntry/live}/server.ts +3 -3
  618. package/src/subEntry/room/index.ts +8 -0
  619. package/src/subEntry/room/room.ts +12 -0
  620. package/src/subEntry/room/server.ts +123 -0
  621. package/src/types/asr.ts +31 -0
  622. package/src/types/barrage.ts +86 -0
  623. package/src/types/beauty.ts +10 -0
  624. package/src/types/device.ts +3 -5
  625. package/src/types/index.ts +9 -3
  626. package/src/types/participant.ts +155 -0
  627. package/src/types/room.ts +122 -57
  628. package/src/types/user.ts +2 -0
  629. package/src/types/virtualBackground.ts +17 -0
  630. package/src/utils/call.ts +25 -26
  631. package/src/utils/compare.ts +34 -0
  632. package/tsconfig.eslint.json +15 -0
  633. package/tsconfig.json +7 -1
  634. package/dist/AudioRequestDialog.vue_vue_type_script_setup_true_lang-DESfuJPj.js +0 -89
  635. package/dist/index-DTq2ybsB.js +0 -33
  636. package/dist/index.vue_vue_type_script_setup_true_lang-DZIBxSQ7.js +0 -32
  637. package/dist/rtc/index.d.ts +0 -501
  638. package/dist/rtc/index.js +0 -67
  639. package/dist/states/RoomState.d.ts +0 -173
  640. package/dist/states/RoomState.js +0 -272
  641. package/src/rtc/index.ts +0 -100
@@ -0,0 +1,622 @@
1
+ <template>
2
+ <div
3
+ ref="scrollContainer"
4
+ class="schedule-room-list"
5
+ @scroll="handleScroll"
6
+ >
7
+ <!-- Initial loading overlay -->
8
+ <div v-if="isLoading && scheduledRoomList.length === 0" class="loading-overlay">
9
+ <IconLoadingSchedule class="loading-icon" size="36" />
10
+ <span class="loading-text">{{ t('Loading...') }}</span>
11
+ </div>
12
+
13
+ <!-- Empty state -->
14
+ <div v-else-if="scheduledRoomList.length === 0 && !isLoading" class="schedule-room-list-empty">
15
+ <IconApplyStageLabel size="48" />
16
+ <span class="text">{{ t('No scheduled rooms') }}</span>
17
+ </div>
18
+
19
+ <!-- Room list content -->
20
+ <div
21
+ v-for="(rooms, date) in groupedRoomsByDate"
22
+ :key="date"
23
+ class="schedule-room-list-content"
24
+ >
25
+ <div class="date-header">
26
+ <IconTime />
27
+ {{ date }}
28
+ </div>
29
+ <div
30
+ v-for="room in rooms"
31
+ :key="room.roomId"
32
+ class="schedule-room-list-item"
33
+ >
34
+ <div class="item-left">
35
+ <div class="room-header">
36
+ {{ room.roomName }}
37
+ </div>
38
+ <div class="room-details">
39
+ <div class="room-time room-details-item">
40
+ {{ transferRoomTimeToHHMM(room.scheduledStartTime) }}
41
+ -
42
+ {{ transferRoomTimeToHHMM(room.scheduledEndTime) }}
43
+ </div>
44
+ |
45
+ <div class="room-id room-details-item">
46
+ {{ room.roomId }}
47
+ </div>
48
+ |
49
+ <div :class="['room-status', room.roomStatus === RoomStatus.Running && 'running', 'room-details-item']">
50
+ {{ transferRoomStatus(room.roomStatus || RoomStatus.Scheduled) }}
51
+ </div>
52
+ </div>
53
+ </div>
54
+ <div class="item-right">
55
+ <Dropdown
56
+ trigger="click"
57
+ placement="bottom"
58
+ :hideOnClick="true"
59
+ >
60
+ <IconHorizontalMore2 class="icon-button" />
61
+ <template #dropdown>
62
+ <div class="operate-list">
63
+ <div class="operate-item" @click="() => viewDetail(room)">
64
+ {{ t('View Details') }}
65
+ </div>
66
+ <div
67
+ v-if="room.roomOwner.userId === loginUserInfo?.userId && room.roomStatus === RoomStatus.Scheduled"
68
+ class="operate-item"
69
+ @click="() => handleEditRoom(room)"
70
+ >
71
+ {{ t('Edit Room') }}
72
+ </div>
73
+ <div
74
+ v-if="room.roomOwner.userId === loginUserInfo?.userId && room.roomStatus === RoomStatus.Scheduled"
75
+ class="operate-item operate-item-error"
76
+ @click="() => cancelRoom(room)"
77
+ >
78
+ {{ t('Cancel Room') }}
79
+ </div>
80
+ </div>
81
+ </template>
82
+ </Dropdown>
83
+ <IconShareLinkIconH5 class="icon-button" @click="() => shareRoom(room)" />
84
+ <TUIButton
85
+ class="icon-button"
86
+ type="primary"
87
+ @click="handleJoinRoom(room)"
88
+ >
89
+ {{ t('Join') }}
90
+ </TUIButton>
91
+ </div>
92
+ </div>
93
+ </div>
94
+
95
+ <!-- Load more indicator (for pagination) -->
96
+ <div v-if="isLoading && scheduledRoomList.length > 0" class="loading-indicator">
97
+ {{ t('Loading...') }}
98
+ </div>
99
+
100
+ <!-- No more data hint -->
101
+ <div v-if="scheduledRoomListCursor === '' && scheduledRoomList.length > 0 && !isLoading" class="no-more-data">
102
+ {{ t('No more data') }}
103
+ </div>
104
+
105
+ <TUIDialog
106
+ v-model:visible="roomDetailVisible"
107
+ :title="t('Room Details')"
108
+ :custom-classes="['room-detail-dialog']"
109
+ >
110
+ <RoomDetail :room-info="selectedRoom" :is-loading-attendees="isLoadingAttendees" />
111
+ <template #footer>
112
+ <div class="room-detail-footer">
113
+ <TUIButton type="primary" @click="() => handleJoinRoom(selectedRoom)">
114
+ {{ t('Join Now') }}
115
+ </TUIButton>
116
+ <TUIButton @click="handleInviteMembers">
117
+ {{ t('Invite Members') }}
118
+ </TUIButton>
119
+ </div>
120
+ </template>
121
+ </TUIDialog>
122
+ <TUIDialog
123
+ v-model:visible="roomShareVisible"
124
+ :title="`${loginUserInfo?.userName || loginUserInfo?.userId} ${t('invites you to join the meeting')}`"
125
+ :custom-classes="['room-share-dialog']"
126
+ >
127
+ <RoomShare :room-info="selectedRoom" />
128
+ <template #footer>
129
+ <div />
130
+ </template>
131
+ </TUIDialog>
132
+ <TUIDialog
133
+ v-model:visible="roomEditVisible"
134
+ :cancel-text="t('Cancel')"
135
+ :confirm-text="t('Confirm')"
136
+ :title="t('Edit Room')"
137
+ :custom-classes="['room-edit-dialog']"
138
+ >
139
+ <RoomEdit
140
+ :room-info="selectedRoom"
141
+ @cancel="handleCloseEditDialog"
142
+ @save="handleSaveRoom"
143
+ />
144
+ <template #footer>
145
+ <div />
146
+ </template>
147
+ </TUIDialog>
148
+ </div>
149
+ </template>
150
+
151
+ <script lang="ts" setup>
152
+ import { computed, onMounted, ref, watch } from 'vue';
153
+ import { Dropdown, IconApplyStageLabel, IconHorizontalMore2, IconLoadingSchedule, IconShareLinkIconH5, IconTime, TUIButton, TUIDialog, TUIMessageBox, TUIToast, useUIKit } from '@tencentcloud/uikit-base-component-vue3';
154
+ import { useLoginState } from '../../states/LoginState';
155
+ import { useRoomState } from '../../states/RoomState';
156
+ import { RoomStatus } from '../../types';
157
+ import { useRoomModal } from '../UIKitModal';
158
+ import RoomDetail from './RoomDetail.vue';
159
+ import RoomEdit from './RoomEdit.vue';
160
+ import RoomShare from './RoomShare.vue';
161
+ import { diffArray } from './utils';
162
+ import type { EditFormData } from './type';
163
+ import type { RoomInfo, RoomUser } from '../../types';
164
+
165
+ const { t } = useUIKit();
166
+ const { handleErrorWithModal } = useRoomModal();
167
+
168
+ const emit = defineEmits<{
169
+ joinRoom: [roomInfo: RoomInfo];
170
+ }>();
171
+
172
+ const transferRoomTimeToYYMMDD = (time?: number) => {
173
+ if (!time) {
174
+ return '0000-00-00';
175
+ }
176
+ const date = new Date(time * 1000);
177
+ const year = date.getFullYear();
178
+ const month = (date.getMonth() + 1).toString().padStart(2, '0');
179
+ const day = date.getDate().toString().padStart(2, '0');
180
+ return `${year}-${month}-${day}`;
181
+ };
182
+ const transferRoomTimeToHHMM = (time?: number): string => {
183
+ if (!time) {
184
+ return '00:00';
185
+ }
186
+
187
+ const date = new Date(time * 1000);
188
+ const hours = date.getHours().toString().padStart(2, '0');
189
+ const minutes = date.getMinutes().toString().padStart(2, '0');
190
+
191
+ return `${hours}:${minutes}`;
192
+ };
193
+ const transferRoomStatus = (roomStatus: RoomStatus) => {
194
+ switch (roomStatus) {
195
+ case RoomStatus.Scheduled:
196
+ return t('Not Started');
197
+ case RoomStatus.Running:
198
+ return t('In Progress');
199
+ default:
200
+ return t('Unknown Status');
201
+ }
202
+ };
203
+
204
+ const { loginUserInfo } = useLoginState();
205
+ const {
206
+ scheduledRoomListCursor,
207
+ scheduledRoomList,
208
+ getRoomInfo,
209
+ getScheduledRoomList,
210
+ cancelScheduledRoom,
211
+ updateScheduledRoom,
212
+ getScheduledAttendees,
213
+ addScheduledAttendees,
214
+ removeScheduledAttendees,
215
+ } = useRoomState();
216
+ const roomDetailVisible = ref(false);
217
+ const roomShareVisible = ref(false);
218
+ const roomEditVisible = ref(false);
219
+ const selectedRoom = ref<RoomInfo | null>(null);
220
+
221
+ const isLoading = ref(false);
222
+ const scrollContainer = ref<HTMLElement>();
223
+
224
+ const groupedRoomsByDate = computed(() => {
225
+ const sortedRooms = [...scheduledRoomList.value].sort((a, b) => (a.scheduledStartTime || 0) - (b.scheduledStartTime || 0));
226
+
227
+ const groups: Record<string, RoomInfo[]> = {};
228
+ sortedRooms.forEach((room) => {
229
+ const dateKey = transferRoomTimeToYYMMDD(room.scheduledStartTime);
230
+ if (!groups[dateKey]) {
231
+ groups[dateKey] = [];
232
+ }
233
+ groups[dateKey].push(room);
234
+ });
235
+
236
+ return groups;
237
+ });
238
+
239
+ const handleJoinRoom = (room: RoomInfo | null) => {
240
+ if (!room?.roomId) {
241
+ return;
242
+ }
243
+ emit('joinRoom', room);
244
+ };
245
+
246
+ const loadMoreRooms = async () => {
247
+ if (isLoading.value || scheduledRoomListCursor.value === '') {
248
+ return;
249
+ }
250
+
251
+ isLoading.value = true;
252
+
253
+ try {
254
+ await getScheduledRoomList({
255
+ cursor: scheduledRoomListCursor.value,
256
+ });
257
+ } catch (error) {
258
+ console.error('Load more rooms failed:', error);
259
+ TUIToast.error({ message: t('Load more rooms failed') });
260
+ } finally {
261
+ isLoading.value = false;
262
+ }
263
+ };
264
+
265
+ const handleScroll = (event: Event) => {
266
+ const target = event.target as HTMLElement;
267
+ const { scrollTop, scrollHeight, clientHeight } = target;
268
+
269
+ if (scrollHeight - scrollTop - clientHeight < 50 && !isLoading.value && scheduledRoomListCursor.value !== '') {
270
+ loadMoreRooms();
271
+ }
272
+ };
273
+
274
+ // Initialize room list
275
+ const initializeRoomList = async () => {
276
+ isLoading.value = true;
277
+
278
+ try {
279
+ await getScheduledRoomList({ cursor: '' });
280
+ } catch (error) {
281
+ console.error('Initialize room list failed:', error);
282
+ TUIToast.error({ message: t('Load room list failed') });
283
+ } finally {
284
+ isLoading.value = false;
285
+ }
286
+ };
287
+
288
+ // Fetch all attendees for a room
289
+ const fetchAllAttendees = async (roomId: string): Promise<RoomUser[]> => {
290
+ let allAttendees: RoomUser[] = [];
291
+ let currentCursor = '0';
292
+
293
+ do {
294
+ const { attendees, cursor } = await getScheduledAttendees({ roomId, cursor: currentCursor });
295
+ allAttendees = allAttendees.concat(attendees);
296
+ currentCursor = cursor;
297
+ } while (currentCursor !== '');
298
+
299
+ return allAttendees;
300
+ };
301
+
302
+ const isLoadingAttendees = ref(false);
303
+
304
+ const viewDetail = async (room: RoomInfo) => {
305
+ selectedRoom.value = room;
306
+ roomDetailVisible.value = true;
307
+ isLoadingAttendees.value = true;
308
+ try {
309
+ const { password = '' } = await getRoomInfo({ roomId: room.roomId });
310
+ const allAttendees = await fetchAllAttendees(room.roomId);
311
+ selectedRoom.value = {
312
+ ...room,
313
+ password,
314
+ scheduleAttendees: allAttendees,
315
+ };
316
+ } catch (error: any) {
317
+ handleErrorWithModal(error);
318
+ throw error;
319
+ } finally {
320
+ isLoadingAttendees.value = false;
321
+ }
322
+ };
323
+
324
+ const handleInviteMembers = () => {
325
+ roomDetailVisible.value = false;
326
+ roomShareVisible.value = true;
327
+ };
328
+
329
+ const shareRoom = async (room: RoomInfo) => {
330
+ try {
331
+ const { password = '' } = await getRoomInfo({ roomId: room.roomId });
332
+ selectedRoom.value = {
333
+ ...room,
334
+ password,
335
+ };
336
+ roomShareVisible.value = true;
337
+ } catch (error: any) {
338
+ handleErrorWithModal(error);
339
+ throw error;
340
+ }
341
+ };
342
+
343
+ const cancelRoom = (room: RoomInfo) => {
344
+ TUIMessageBox.confirm({
345
+ type: 'warning',
346
+ title: t('Cancel the booked room'),
347
+ content: t('Other members will not be able to join after cancellation.'),
348
+ confirmText: t('Cancel Room'),
349
+ cancelText: t('Not to be cancelled for now'),
350
+ callback: async (action?: string) => {
351
+ if (action === 'confirm') {
352
+ try {
353
+ await cancelScheduledRoom({ roomId: room.roomId });
354
+ TUIToast.success({ message: t('Cancel room successfully') });
355
+ } catch (error) {
356
+ console.error('Cancel room failed:', error);
357
+ TUIToast.error({ message: t('Cancel room failed') });
358
+ }
359
+ }
360
+ },
361
+ });
362
+ };
363
+
364
+ const handleEditRoom = async (room: RoomInfo) => {
365
+ roomEditVisible.value = true;
366
+ const allAttendees = await fetchAllAttendees(room.roomId);
367
+
368
+ selectedRoom.value = {
369
+ ...scheduledRoomList.value.find(item => item.roomId === room.roomId) || room,
370
+ scheduleAttendees: allAttendees,
371
+ };
372
+ };
373
+
374
+ const handleCloseEditDialog = () => {
375
+ roomEditVisible.value = false;
376
+ selectedRoom.value = null;
377
+ };
378
+
379
+ const handleSaveRoom = (editData: EditFormData) => {
380
+ updateScheduledRoom({
381
+ roomId: editData.roomId,
382
+ options: {
383
+ roomName: editData.roomName,
384
+ scheduleStartTime: editData.scheduleStartTime,
385
+ scheduleEndTime: editData.scheduleEndTime,
386
+ },
387
+ });
388
+ const originalAttendees = (selectedRoom.value?.scheduleAttendees || []).map(attendee => ({
389
+ key: attendee.userId,
390
+ }));
391
+
392
+ const currentAttendees = editData.scheduleAttendees.map(userId => ({
393
+ key: userId,
394
+ }));
395
+ const diff = diffArray(originalAttendees, currentAttendees);
396
+ if (diff.added.length > 0) {
397
+ addScheduledAttendees({
398
+ roomId: editData.roomId,
399
+ userIdList: diff.added.map(item => item.key),
400
+ });
401
+ }
402
+
403
+ if (diff.removed.length > 0) {
404
+ removeScheduledAttendees({
405
+ roomId: editData.roomId || '',
406
+ userIdList: diff.removed.map(item => item.key),
407
+ });
408
+ }
409
+ TUIToast.success({ message: t('Room updated successfully') });
410
+ handleCloseEditDialog();
411
+ };
412
+
413
+ // Initialize on component mount
414
+ onMounted(() => {
415
+ isLoading.value = true;
416
+ if (loginUserInfo.value?.userId) {
417
+ initializeRoomList();
418
+ }
419
+ });
420
+
421
+ // Re-initialize when user login state changes
422
+ watch(() => loginUserInfo.value?.userId, (userId) => {
423
+ if (userId) {
424
+ initializeRoomList();
425
+ }
426
+ });
427
+
428
+ </script>
429
+
430
+ <style lang="scss" scoped>
431
+ .schedule-room-list {
432
+ height: 100%;
433
+ overflow-y: auto;
434
+ position: relative;
435
+ }
436
+
437
+ .loading-overlay {
438
+ position: absolute;
439
+ top: 0;
440
+ right: 0;
441
+ bottom: 0;
442
+ left: 0;
443
+ display: flex;
444
+ flex-direction: column;
445
+ align-items: center;
446
+ justify-content: center;
447
+ z-index: 10;
448
+
449
+ .loading-icon {
450
+ animation: loading-rotate 1s linear infinite;
451
+ }
452
+
453
+ .loading-text {
454
+ margin-top: 10px;
455
+ font-size: 14px;
456
+ font-style: normal;
457
+ color: var(--text-color-secondary);
458
+ }
459
+ }
460
+
461
+ .schedule-room-list-empty {
462
+ height: 100%;
463
+ display: flex;
464
+ flex-direction: column;
465
+ align-items: center;
466
+ justify-content: center;
467
+
468
+ .text {
469
+ margin-top: 10px;
470
+ font-size: 14px;
471
+ font-style: normal;
472
+ font-weight: 400;
473
+ color: var(--text-color-secondary);
474
+ }
475
+ }
476
+
477
+ .schedule-room-list-content {
478
+ display: flex;
479
+ flex-direction: column;
480
+
481
+ .date-header {
482
+ display: flex;
483
+ flex-direction: row;
484
+ align-items: center;
485
+ font-size: 14px;
486
+ font-weight: 400;
487
+ color: var(--text-color-secondary);
488
+ padding: 10px;
489
+ gap: 8px;
490
+ }
491
+
492
+ .schedule-room-list-item {
493
+ display: flex;
494
+ flex-direction: row;
495
+ gap: 10px;
496
+ align-items: center;
497
+ justify-content: space-between;
498
+ padding: 10px;
499
+
500
+ .item-left {
501
+ display: flex;
502
+ flex-direction: column;
503
+ gap: 12px;
504
+ flex: 1;
505
+ min-width: 0;
506
+ color: var(--text-color-primary);
507
+
508
+ .room-header {
509
+ font-weight: 500;
510
+ font-size: 16px;
511
+ overflow: hidden;
512
+ text-overflow: ellipsis;
513
+ white-space: nowrap;
514
+ }
515
+
516
+ .room-details {
517
+ font-size: 14px;
518
+ font-weight: 400;
519
+ color: var(--text-color-primary);
520
+ display: flex;
521
+ align-items: center;
522
+ justify-content: flex-start;
523
+ gap: 6px;
524
+
525
+ .room-details-item {
526
+ min-width: 0;
527
+ text-align: center;
528
+ }
529
+
530
+ .room-id {
531
+ min-width: 60px;
532
+ max-width: 84px;
533
+ text-overflow: ellipsis;
534
+ overflow: hidden;
535
+ }
536
+
537
+ .room-status.running {
538
+ color: var(--text-color-success);
539
+ }
540
+ }
541
+ }
542
+
543
+ .item-right {
544
+ display: flex;
545
+ flex-direction: row;
546
+ align-items: center;
547
+ color: var(--uikit-color-theme-6);
548
+
549
+ .icon-button {
550
+ padding: 10px;
551
+ }
552
+ }
553
+ }
554
+
555
+ .schedule-room-list-item:hover {
556
+ cursor: pointer;
557
+ background-color: var(--list-color-hover);
558
+ border-radius: 8px;
559
+ }
560
+ }
561
+
562
+ .room-detail-footer {
563
+ width: 100%;
564
+ display: flex;
565
+ justify-content: center;
566
+ gap: 12px;
567
+ }
568
+
569
+ .loading-indicator {
570
+ display: flex;
571
+ justify-content: center;
572
+ align-items: center;
573
+ padding: 20px;
574
+ color: var(--text-color-secondary);
575
+ font-size: 14px;
576
+ }
577
+
578
+ .no-more-data {
579
+ display: flex;
580
+ justify-content: center;
581
+ align-items: center;
582
+ padding: 20px;
583
+ color: var(--text-color-secondary);
584
+ font-size: 12px;
585
+ }
586
+
587
+ :deep(.room-detail-dialog) {
588
+ width: 540px;
589
+ }
590
+
591
+ .operate-list {
592
+ display: flex;
593
+ flex-direction: column;
594
+ }
595
+
596
+ .operate-item {
597
+ display: flex;
598
+ justify-content: center;
599
+ color: var(--text-color-primary);
600
+ font-size: 14px;
601
+ cursor: pointer;
602
+ padding: 8px;
603
+ }
604
+
605
+ .operate-item:hover {
606
+ color: var(--text-color-link-hover);
607
+ }
608
+
609
+ .operate-item-error {
610
+ color: var(--text-color-error) !important;
611
+ }
612
+
613
+ @keyframes loading-rotate {
614
+ 0% {
615
+ transform: rotate(0deg);
616
+ }
617
+
618
+ 100% {
619
+ transform: rotate(360deg);
620
+ }
621
+ }
622
+ </style>
@@ -0,0 +1,86 @@
1
+ <template>
2
+ <div class="time-picker">
3
+ <TUISelect
4
+ v-model="selectedTime"
5
+ class="timepicker-select"
6
+ :teleported="false"
7
+ :custom-select-content-style="{ 'font-weight': 400 }"
8
+ >
9
+ <TUIOption
10
+ v-for="time in timeOptions"
11
+ :key="time"
12
+ :value="time"
13
+ :label="time"
14
+ :custom-option-content-style="{ 'font-weight': 400 }"
15
+ />
16
+ </TUISelect>
17
+ </div>
18
+ </template>
19
+
20
+ <script setup lang="ts">
21
+ import { ref, computed, watch } from 'vue';
22
+ import { TUISelect, TUIOption } from '@tencentcloud/uikit-base-component-vue3';
23
+
24
+ interface Props {
25
+ modelValue: number; // 时间戳(秒)
26
+ }
27
+ const props = defineProps<Props>();
28
+ const emit = defineEmits(['update:modelValue']);
29
+
30
+ // 从时间戳中提取时间字符串
31
+ const getTimeFromTimestamp = (timestamp: number): string => {
32
+ const date = new Date(timestamp * 1000);
33
+ const hours = date.getHours().toString().padStart(2, '0');
34
+ const minutes = date.getMinutes().toString().padStart(2, '0');
35
+ return `${hours}:${minutes}`;
36
+ };
37
+
38
+ const selectedTime = ref(props.modelValue ? getTimeFromTimestamp(props.modelValue) : '00:00');
39
+
40
+ const timeOptions = computed(() => {
41
+ const options = [];
42
+ for (let i = 0; i < 24; i += 1) {
43
+ for (let j = 0; j < 60; j += 15) {
44
+ const hour = i < 10 ? `0${i}` : `${i}`;
45
+ const minute = j < 10 ? `0${j}` : `${j}`;
46
+ options.push(`${hour}:${minute}`);
47
+ }
48
+ }
49
+ return options;
50
+ });
51
+
52
+ const updateTime = () => {
53
+ // 将时间字符串转换为当天的时间戳(保持完整的日期+时间)
54
+ const [hours, minutes] = selectedTime.value.split(':').map(Number);
55
+ const today = new Date();
56
+ today.setHours(hours, minutes, 0, 0);
57
+ const timestamp = Math.floor(today.getTime() / 1000);
58
+ emit('update:modelValue', timestamp);
59
+ };
60
+
61
+ watch(
62
+ selectedTime,
63
+ () => {
64
+ updateTime();
65
+ },
66
+ {
67
+ immediate: true,
68
+ },
69
+ );
70
+
71
+ watch(
72
+ () => props.modelValue,
73
+ (newValue) => {
74
+ if (newValue) {
75
+ selectedTime.value = getTimeFromTimestamp(newValue);
76
+ }
77
+ },
78
+ { immediate: true },
79
+ );
80
+ </script>
81
+
82
+ <style scoped lang="scss">
83
+ .time-picker {
84
+ min-width: 100px;
85
+ }
86
+ </style>