tuikit-atomicx-vue3 0.1.1 → 3.3.0-beta.3
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.
- package/dist/MessageInput.vue_vue_type_script_setup_true_lang-XRL7A5Gj.js +123 -0
- package/dist/{PopoverTrigger-ByOI-vdB.js → PopoverTrigger-BKOIHfdS.js} +1 -1
- package/dist/{PopperContent-BaiCn-CA.js → PopperContent-DtL7HVWz.js} +29 -21
- package/dist/baseComp/TuiSwitch.js +2 -2
- package/dist/baseComp/index.d.ts +0 -1
- package/dist/baseComp/index.js +1 -3
- package/dist/chat/index.d.ts +2230 -4090
- package/dist/chat/index.js +16 -8
- package/dist/components/Avatar/Avatar.js +35 -10
- package/dist/components/Avatar/Avatar.vue.d.ts +1 -1
- package/dist/components/BarrageInput/BarrageInput.vue.d.ts +2 -2
- package/dist/components/BarrageInput/BarrageInputH5.js +30 -10
- package/dist/components/BarrageInput/BarrageInputH5.vue.d.ts +2 -2
- package/dist/components/BarrageInput/EmojiPicker/EmojiPicker.js +1 -1
- package/dist/components/BarrageInput/TextEditor/index.js +13 -5
- package/dist/components/BarrageInput/constants.d.ts +3 -0
- package/dist/components/BarrageInput/constants.js +6 -0
- package/dist/components/BarrageInput/i18n/en-US/index.d.ts +2 -0
- package/dist/components/BarrageInput/i18n/en-US/index.js +3 -1
- package/dist/components/BarrageInput/i18n/zh-CN/index.d.ts +2 -0
- package/dist/components/BarrageInput/i18n/zh-CN/index.js +3 -1
- package/dist/components/BarrageInput/index.d.ts +18 -18
- package/dist/components/BarrageList/BarrageList.js +5 -6
- package/dist/components/BarrageList/BarrageListH5.js +5 -6
- package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.js +1 -1
- package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.js +5 -4
- package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue.d.ts +2 -2
- package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.js +7 -4
- package/dist/components/BarrageList/Message/TextMessage/TextMessage.js +1 -1
- package/dist/components/ChatSetting/ChatSetting.js +8 -11
- package/dist/components/ChatSetting/GroupChatSetting/GroupActions/GroupActions.js +2 -1
- package/dist/components/ChatSetting/GroupChatSetting/GroupChatSetting.js +2 -1
- package/dist/components/ChatSetting/GroupChatSetting/GroupInfo/GroupInfo.js +2 -2
- package/dist/components/ChatSetting/GroupChatSetting/GroupManagement/GroupManagement.js +2 -1
- package/dist/components/ChatSetting/GroupChatSetting/GroupMembers/GroupMembers.js +2 -2
- package/dist/components/ChatSetting/SettingItem/SettingItem.js +116 -89
- package/dist/components/ChatSetting/i18n/index.d.ts +191 -1
- package/dist/components/ChatSetting/i18n/index.js +3 -4
- package/dist/components/ChatSetting/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.js +78 -0
- package/dist/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.vue.d.ts +33 -0
- package/dist/components/ContactList/ContactInfo/BlacklistInfo/index.d.ts +1 -0
- package/dist/components/ContactList/ContactInfo/BlacklistInfo/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/ContactInfo.js +257 -0
- package/dist/components/ContactList/ContactInfo/ContactInfo.vue.d.ts +56 -0
- package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.js +96 -0
- package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.vue.d.ts +37 -0
- package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/index.d.ts +1 -0
- package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/FriendInfo/FriendInfo.js +228 -0
- package/dist/components/ContactList/ContactInfo/FriendInfo/FriendInfo.vue.d.ts +39 -0
- package/dist/components/ContactList/ContactInfo/FriendInfo/index.d.ts +1 -0
- package/dist/components/ContactList/ContactInfo/FriendInfo/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.js +101 -0
- package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.vue.d.ts +37 -0
- package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/index.d.ts +1 -0
- package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/GroupInfo/GroupInfo.js +154 -0
- package/dist/components/ContactList/ContactInfo/GroupInfo/GroupInfo.vue.d.ts +37 -0
- package/dist/components/ContactList/ContactInfo/GroupInfo/index.d.ts +1 -0
- package/dist/components/ContactList/ContactInfo/GroupInfo/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.js +141 -0
- package/dist/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.vue.d.ts +32 -0
- package/dist/components/ContactList/ContactInfo/SearchGroupInfo/index.d.ts +1 -0
- package/dist/components/ContactList/ContactInfo/SearchGroupInfo/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.js +122 -0
- package/dist/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.vue.d.ts +33 -0
- package/dist/components/ContactList/ContactInfo/SearchUserInfo/index.d.ts +1 -0
- package/dist/components/ContactList/ContactInfo/SearchUserInfo/index.js +4 -0
- package/dist/components/ContactList/ContactInfo/index.d.ts +8 -0
- package/dist/components/ContactList/ContactInfo/index.js +18 -0
- package/dist/components/ContactList/ContactList.js +281 -0
- package/dist/components/ContactList/ContactList.vue.d.ts +41 -0
- package/dist/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.js +52 -0
- package/dist/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.vue.d.ts +25 -0
- package/dist/components/ContactList/ContactListItem/BlacklistItem/index.d.ts +1 -0
- package/dist/components/ContactList/ContactListItem/BlacklistItem/index.js +4 -0
- package/dist/components/ContactList/ContactListItem/ContactListItem.js +4 -0
- package/dist/components/ContactList/ContactListItem/ContactListItem.vue.d.ts +30 -0
- package/dist/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.js +76 -0
- package/dist/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.vue.d.ts +27 -0
- package/dist/components/ContactList/ContactListItem/FriendApplicationItem/index.d.ts +1 -0
- package/dist/components/ContactList/ContactListItem/FriendApplicationItem/index.js +4 -0
- package/dist/components/ContactList/ContactListItem/FriendItem/FriendItem.js +53 -0
- package/dist/components/ContactList/ContactListItem/FriendItem/FriendItem.vue.d.ts +25 -0
- package/dist/components/ContactList/ContactListItem/FriendItem/index.d.ts +1 -0
- package/dist/components/ContactList/ContactListItem/FriendItem/index.js +4 -0
- package/dist/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.js +79 -0
- package/dist/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.vue.d.ts +27 -0
- package/dist/components/ContactList/ContactListItem/GroupApplicationItem/index.d.ts +1 -0
- package/dist/components/ContactList/ContactListItem/GroupApplicationItem/index.js +4 -0
- package/dist/components/ContactList/ContactListItem/GroupItem/GroupItem.js +52 -0
- package/dist/components/ContactList/ContactListItem/GroupItem/GroupItem.vue.d.ts +25 -0
- package/dist/components/ContactList/ContactListItem/GroupItem/index.d.ts +1 -0
- package/dist/components/ContactList/ContactListItem/GroupItem/index.js +4 -0
- package/dist/components/ContactList/ContactListItem/index.d.ts +6 -0
- package/dist/components/ContactList/ContactListItem/index.js +95 -0
- package/dist/components/ContactList/ContactSearch/ContactSearch.js +85 -0
- package/dist/components/ContactList/ContactSearch/ContactSearch.vue.d.ts +8 -0
- package/dist/components/ContactList/ContactSearch/index.d.ts +1 -0
- package/dist/components/ContactList/ContactSearch/index.js +4 -0
- package/dist/components/ContactList/constants/const.d.ts +3 -0
- package/dist/components/ContactList/constants/const.js +6 -0
- package/dist/components/ContactList/hooks/index.d.ts +1 -0
- package/dist/components/ContactList/hooks/index.js +4 -0
- package/dist/components/ContactList/hooks/useContactList.d.ts +9 -0
- package/dist/components/ContactList/hooks/useContactList.js +18 -0
- package/dist/components/ContactList/i18n/en-US.d.ts +77 -0
- package/dist/components/ContactList/i18n/en-US.js +80 -0
- package/dist/components/ContactList/i18n/index.d.ts +4 -0
- package/dist/components/ContactList/i18n/index.js +6 -0
- package/dist/components/ContactList/i18n/zh-CN.d.ts +77 -0
- package/dist/components/ContactList/i18n/zh-CN.js +80 -0
- package/dist/components/ContactList/index.d.ts +310 -0
- package/dist/components/ContactList/index.js +16 -0
- package/dist/components/ConversationList/ConversationActions/ConversationActions.js +31 -46
- package/dist/components/ConversationList/ConversationActions/ConversationActions.vue.d.ts +1 -10
- package/dist/components/ConversationList/ConversationCreate/ConversationCreate.js +160 -100
- package/dist/components/ConversationList/ConversationCreate/ConversationCreate.vue.d.ts +0 -3
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.js +79 -17
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.vue.d.ts +6 -12
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.js +78 -158
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.vue.d.ts +5 -4
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.js +38 -207
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.vue.d.ts +3 -9
- package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.js +35 -23
- package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.vue.d.ts +2 -11
- package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/index.js +1 -2
- package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/type.d.ts +2 -7
- package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/type.js +6 -14
- package/dist/components/ConversationList/ConversationCreate/index.d.ts +0 -2
- package/dist/components/ConversationList/ConversationCreate/index.js +5 -9
- package/dist/components/ConversationList/ConversationList.js +51 -39
- package/dist/components/ConversationList/ConversationList.vue.d.ts +654 -1510
- package/dist/components/ConversationList/ConversationListContent/ConversationListContent.js +4 -4
- package/dist/components/ConversationList/ConversationListContent/ConversationListContent.vue.d.ts +1 -1
- package/dist/components/ConversationList/ConversationPlaceHolder/ConversationPlaceHolder.js +2 -2
- package/dist/components/ConversationList/ConversationPreview/ConversationPreview.vue.d.ts +596 -1404
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.js +1 -1
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.js +13 -29
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue.d.ts +146 -348
- package/dist/components/ConversationList/ConversationPreview/index.js +3 -3
- package/dist/components/ConversationList/ConversationPreview/utils.js +8 -8
- package/dist/components/ConversationList/ConversationSearch/ConversationSearch.js +5 -5
- package/dist/components/ConversationList/ConversationSearch/ConversationSearch.vue.d.ts +8 -8
- package/dist/components/ConversationList/hooks/useConversation.d.ts +6 -0
- package/dist/components/ConversationList/hooks/useConversation.js +20 -0
- package/dist/components/ConversationList/hooks/useConversationCreate.d.ts +5 -0
- package/dist/components/ConversationList/hooks/useConversationCreate.js +24 -0
- package/dist/components/ConversationList/i18n/en-US.d.ts +16 -0
- package/dist/components/ConversationList/i18n/en-US.js +25 -7
- package/dist/components/ConversationList/i18n/zh-CN.d.ts +16 -0
- package/dist/components/ConversationList/i18n/zh-CN.js +24 -6
- package/dist/components/ConversationList/index.d.ts +2096 -4595
- package/dist/components/{LiveStreamView → LiveCoreView}/DefaultStreamViewUI.js +1 -1
- package/dist/components/LiveCoreView/index.d.ts +4 -0
- package/dist/components/{LiveStreamView → LiveCoreView}/index.js +68 -74
- package/dist/components/LiveList/LiveList.js +71 -45
- package/dist/components/LiveList/LiveListH5.js +14 -15
- package/dist/components/LiveScenePanel/CameraSettingDialog.js +1 -2
- package/dist/components/LiveScenePanel/icons/AddIcon.js +2 -2
- package/dist/components/LiveScenePanel/icons/CameraIcon.js +2 -2
- package/dist/components/LiveScenePanel/icons/CameraMirror.js +2 -2
- package/dist/components/LiveScenePanel/icons/CameraUnmirror.js +2 -2
- package/dist/components/LiveScenePanel/icons/ImageIcon.js +2 -2
- package/dist/components/LiveScenePanel/icons/MoreIcon.js +2 -2
- package/dist/components/LiveScenePanel/icons/ScreenIcon.js +2 -2
- package/dist/components/MessageInput/AttachmentPicker/index.js +1 -1
- package/dist/components/MessageInput/EmojiPicker/EmojiPicker.js +1 -1
- package/dist/components/MessageInput/MessageInput.js +1 -1
- package/dist/components/MessageInput/QuotedMessagePreview/index.js +2 -2
- package/dist/components/MessageInput/SendButton/index.js +1 -1
- package/dist/components/MessageInput/TextEditor/index.js +6 -5
- package/dist/components/MessageInput/i18n/index.d.ts +24 -1
- package/dist/components/MessageInput/i18n/index.js +7 -8
- package/dist/components/MessageInput/index.d.ts +409 -6
- package/dist/components/MessageInput/index.js +23 -125
- package/dist/components/MessageList/Message/AudioMessage/PlayButton.js +3 -3
- package/dist/components/MessageList/Message/ImageMessage/ImageMessage.js +2 -2
- package/dist/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.js +3 -3
- package/dist/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.vue.d.ts +5 -5
- package/dist/components/MessageList/Message/MessageLayout/MessageLayout.js +1 -1
- package/dist/components/MessageList/Message/MessageLayout/MessageMeta/MessageMeta.js +34 -30
- package/dist/components/MessageList/Message/MessageLayout/MessageMeta/MessageMeta.vue.d.ts +0 -10
- package/dist/components/MessageList/MessageForward/MessageForward.js +4 -4
- package/dist/components/MessageList/MessageList.js +66 -60
- package/dist/components/MessageList/MessageList.vue.d.ts +3 -3
- package/dist/components/MessageList/ScrollToBottom/ScrollToBottom.js +32 -0
- package/dist/components/MessageList/ScrollToBottom/ScrollToBottom.vue.d.ts +6 -0
- package/dist/components/MessageList/ScrollToBottom/index.d.ts +3 -0
- package/dist/components/MessageList/ScrollToBottom/index.js +4 -0
- package/dist/components/MessageList/i18n/en-US.d.ts +5 -0
- package/dist/components/MessageList/i18n/en-US.js +6 -1
- package/dist/components/MessageList/i18n/index.d.ts +85 -1
- package/dist/components/MessageList/i18n/index.js +7 -8
- package/dist/components/MessageList/i18n/zh-CN.d.ts +5 -0
- package/dist/components/MessageList/i18n/zh-CN.js +6 -1
- package/dist/components/MessageList/index.js +4 -0
- package/dist/components/Search/Search.js +4 -4
- package/dist/components/Search/Search.vue.d.ts +4 -4
- package/dist/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.js +15 -9
- package/dist/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.js +12 -7
- package/dist/components/Search/SearchAdvanced/SearchAdvanced.js +2 -2
- package/dist/components/Search/SearchAdvanced/SearchTab/SearchTab.js +10 -5
- package/dist/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.js +10 -10
- package/dist/components/Search/SearchBar/SearchBar.js +3 -2
- package/dist/components/Search/SearchResults/EmptyResult/EmptyResult.js +1 -1
- package/dist/components/Search/SearchResults/SearchResults.js +82 -69
- package/dist/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.js +8 -8
- package/dist/components/Search/SearchResults/SearchResultsItem/utils/highlightText.d.ts +5 -6
- package/dist/components/Search/i18n/en-US/Search.js +9 -9
- package/dist/components/Search/i18n/zh-CN/Search.js +13 -13
- package/dist/components/Search/index.d.ts +6 -6
- package/dist/components/StreamMixer/LocalMixer/MixerControl.js +14 -10
- package/dist/components/StreamMixer/LocalMixer/index.js +81 -56
- package/dist/components/StreamMixer/icons/CameraMirror.js +2 -2
- package/dist/components/StreamMixer/icons/Delete.js +2 -2
- package/dist/components/StreamMixer/icons/Down.js +2 -2
- package/dist/components/StreamMixer/icons/Rotation.js +2 -2
- package/dist/components/StreamMixer/icons/Up.js +2 -2
- package/dist/components/StreamMixer/index.js +2 -2
- package/dist/components/StreamView/common/StreamCover/index.js +2 -2
- package/dist/components/UserPicker/components/TreeMode/TreeNode.js +2 -2
- package/dist/components/UserPicker/i18n/index.d.ts +15 -1
- package/dist/components/UserPicker/i18n/index.js +3 -4
- package/dist/components/UserPicker/index.d.ts +0 -1
- package/dist/components/UserPicker/index.js +6 -3
- package/dist/components/VideoSettingPanel/VideoPreview.js +3 -4
- package/dist/components/VideoSettingPanel/VideoProfile.js +3 -4
- package/dist/components/VideoSettingPanel/i18n/en-US/index.d.ts +5 -0
- package/dist/components/VideoSettingPanel/i18n/en-US/index.js +8 -3
- package/dist/components/VideoSettingPanel/i18n/zh-CN/index.d.ts +5 -0
- package/dist/components/VideoSettingPanel/i18n/zh-CN/index.js +8 -3
- package/dist/components/VideoSettingPanel/index.js +3 -3
- package/dist/hooks/useLongPress.d.ts +4 -4
- package/dist/hooks/useMessageActions.js +5 -5
- package/dist/hooks/useMouseHover.d.ts +7 -5
- package/dist/hooks/useMouseHover.js +3 -1
- package/dist/index.js +12 -6
- package/dist/rtc/index.d.ts +22 -20
- package/dist/rtc/index.js +6 -3
- package/dist/states/BarrageListState/BarrageListState.js +3 -2
- package/dist/states/CoHostState.d.ts +1 -1
- package/dist/states/CoHostState.js +59 -62
- package/dist/states/ContactListState/ContactListState.d.ts +16 -16
- package/dist/states/ContactListState/ContactListState.js +20 -20
- package/dist/states/ConversationListState/ConversationListState.d.ts +13 -12
- package/dist/states/ConversationListState/ConversationListState.js +19 -19
- package/dist/states/LiveSeatState/seatEventManager.js +3 -5
- package/dist/states/LiveSeatState/usePlayStream/MixStreamPlayer.js +9 -0
- package/dist/states/LiveState/index.d.ts +4 -4
- package/dist/states/LiveState/index.js +4 -2
- package/dist/states/LoginState.js +1 -3
- package/dist/states/MessageInputState/MessageInputState.js +18 -18
- package/dist/states/SearchState.d.ts +2 -2
- package/dist/states/SearchState.js +124 -127
- package/dist/styles/index.css +1954 -1070
- package/dist/types/contact.d.ts +145 -9
- package/dist/types/conversation.d.ts +36 -28
- package/dist/types/conversation.js +22 -0
- package/dist/types/index.js +5 -3
- package/dist/types/live.d.ts +2 -3
- package/dist/types/types.d.ts +0 -8
- package/dist/types/types.js +0 -10
- package/dist/utils/time.d.ts +2 -2
- package/dist/utils/time.js +253 -1471
- package/package.json +23 -5
- package/src/baseComp/View/View.vue +1 -2
- package/src/baseComp/index.ts +1 -2
- package/src/chat/index.ts +11 -0
- package/src/components/Avatar/Avatar.vue +12 -11
- package/src/components/BarrageInput/BarrageInputH5.vue +36 -9
- package/src/components/BarrageInput/TextEditor/TextEditor.vue +13 -5
- package/src/components/BarrageInput/constants.ts +3 -0
- package/src/components/BarrageInput/i18n/en-US/index.ts +2 -0
- package/src/components/BarrageInput/i18n/zh-CN/index.ts +2 -0
- package/src/components/BarrageList/BarrageList.vue +2 -2
- package/src/components/BarrageList/BarrageListH5.vue +2 -2
- package/src/components/BarrageList/Message/MessageLayout/MessageLayout.vue +0 -1
- package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue +5 -2
- package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.vue +7 -3
- package/src/components/BarrageList/Message/TextMessage/TextMessage.vue +3 -3
- package/src/components/ChatSetting/ChatSetting.vue +6 -10
- package/src/components/ChatSetting/GroupChatSetting/GroupInfo/GroupInfo.vue +1 -1
- package/src/components/ChatSetting/SettingItem/SettingItem.vue +40 -36
- package/src/components/ChatSetting/i18n/index.ts +3 -5
- package/src/components/ChatSetting/index.ts +5 -1
- package/src/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.scss +50 -0
- package/src/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.vue +71 -0
- package/src/components/ContactList/ContactInfo/BlacklistInfo/index.ts +1 -0
- package/src/components/ContactList/ContactInfo/ContactInfo.scss +33 -0
- package/src/components/ContactList/ContactInfo/ContactInfo.vue +256 -0
- package/src/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.scss +82 -0
- package/src/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.vue +88 -0
- package/src/components/ContactList/ContactInfo/FriendApplicationInfo/index.ts +1 -0
- package/src/components/ContactList/ContactInfo/FriendInfo/FriendInfo.scss +92 -0
- package/src/components/ContactList/ContactInfo/FriendInfo/FriendInfo.vue +219 -0
- package/src/components/ContactList/ContactInfo/FriendInfo/index.ts +1 -0
- package/src/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.scss +82 -0
- package/src/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.vue +99 -0
- package/src/components/ContactList/ContactInfo/GroupApplicationInfo/index.ts +1 -0
- package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.scss +52 -0
- package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.vue +146 -0
- package/src/components/ContactList/ContactInfo/GroupInfo/index.ts +1 -0
- package/src/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.scss +111 -0
- package/src/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.vue +147 -0
- package/src/components/ContactList/ContactInfo/SearchGroupInfo/index.ts +1 -0
- package/src/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.scss +111 -0
- package/src/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.vue +128 -0
- package/src/components/ContactList/ContactInfo/SearchUserInfo/index.ts +1 -0
- package/src/components/ContactList/ContactInfo/index.ts +8 -0
- package/src/components/ContactList/ContactList.scss +124 -0
- package/src/components/ContactList/ContactList.vue +299 -0
- package/src/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.scss +39 -0
- package/src/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.vue +47 -0
- package/src/components/ContactList/ContactListItem/BlacklistItem/index.ts +1 -0
- package/src/components/ContactList/ContactListItem/ContactListItem.vue +98 -0
- package/src/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.scss +58 -0
- package/src/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.vue +70 -0
- package/src/components/ContactList/ContactListItem/FriendApplicationItem/index.ts +1 -0
- package/src/components/ContactList/ContactListItem/FriendItem/FriendItem.scss +39 -0
- package/src/components/ContactList/ContactListItem/FriendItem/FriendItem.vue +47 -0
- package/src/components/ContactList/ContactListItem/FriendItem/index.ts +1 -0
- package/src/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.scss +57 -0
- package/src/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.vue +78 -0
- package/src/components/ContactList/ContactListItem/GroupApplicationItem/index.ts +1 -0
- package/src/components/ContactList/ContactListItem/GroupItem/GroupItem.scss +39 -0
- package/src/components/ContactList/ContactListItem/GroupItem/GroupItem.vue +47 -0
- package/src/components/ContactList/ContactListItem/GroupItem/index.ts +1 -0
- package/src/components/ContactList/ContactListItem/index.ts +6 -0
- package/src/components/ContactList/ContactSearch/ContactSearch.scss +58 -0
- package/src/components/ContactList/ContactSearch/ContactSearch.vue +98 -0
- package/src/components/ContactList/ContactSearch/index.ts +1 -0
- package/src/components/ContactList/constants/const.ts +7 -0
- package/src/components/ContactList/hooks/index.ts +1 -0
- package/src/components/ContactList/hooks/useContactList.ts +21 -0
- package/src/components/ContactList/i18n/en-US.ts +77 -0
- package/src/components/ContactList/i18n/index.ts +4 -0
- package/src/components/ContactList/i18n/zh-CN.ts +77 -0
- package/src/components/ContactList/index.ts +18 -0
- package/src/components/ConversationList/ConversationActions/ConversationActions.scss +34 -35
- package/src/components/ConversationList/ConversationActions/ConversationActions.vue +15 -29
- package/src/components/ConversationList/ConversationCreate/ConversationCreate.scss +11 -37
- package/src/components/ConversationList/ConversationCreate/ConversationCreate.vue +154 -69
- package/src/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.scss +37 -1
- package/src/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.vue +70 -15
- package/src/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.scss +19 -66
- package/src/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.vue +72 -139
- package/src/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.scss +5 -129
- package/src/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.vue +42 -183
- package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.scss +14 -11
- package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.vue +23 -18
- package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/type.ts +2 -8
- package/src/components/ConversationList/ConversationCreate/index.ts +0 -2
- package/src/components/ConversationList/ConversationList.scss +1 -0
- package/src/components/ConversationList/ConversationList.vue +44 -25
- package/src/components/ConversationList/ConversationListContent/ConversationListContent.scss +2 -5
- package/src/components/ConversationList/ConversationPlaceHolder/ConversationPlaceHolder.vue +2 -2
- package/src/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.vue +1 -1
- package/src/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue +6 -19
- package/src/components/ConversationList/ConversationPreview/utils.ts +11 -11
- package/src/components/ConversationList/hooks/useConversation.ts +21 -0
- package/src/components/ConversationList/hooks/useConversationCreate.ts +29 -0
- package/src/components/ConversationList/i18n/en-US.ts +26 -6
- package/src/components/ConversationList/i18n/zh-CN.ts +25 -5
- package/src/components/{LiveStreamView → LiveCoreView}/index.ts +4 -3
- package/src/components/{LiveStreamView → LiveCoreView}/index.vue +109 -88
- package/src/components/LiveList/LiveList.vue +94 -38
- package/src/components/LiveList/LiveListH5.vue +47 -23
- package/src/components/MessageInput/MessageInput.module.scss +1 -1
- package/src/components/MessageInput/QuotedMessagePreview/QuotedMessagePreview.vue +2 -2
- package/src/components/MessageInput/SendButton/SendButton.vue +1 -1
- package/src/components/MessageInput/TextEditor/Editor.scss +3 -2
- package/src/components/MessageInput/TextEditor/TextEditor.module.scss +1 -0
- package/src/components/MessageInput/TextEditor/TextEditor.vue +2 -0
- package/src/components/MessageInput/i18n/index.ts +1 -7
- package/src/components/MessageInput/index.ts +25 -8
- package/src/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.vue +4 -4
- package/src/components/MessageList/Message/MessageLayout/MessageLayout.vue +0 -1
- package/src/components/MessageList/Message/MessageLayout/MessageMeta/MessageMeta.vue +16 -17
- package/src/components/MessageList/MessageForward/MessageForward.vue +2 -2
- package/src/components/MessageList/MessageList.vue +21 -5
- package/src/components/MessageList/ScrollToBottom/ScrollToBottom.vue +50 -0
- package/src/components/MessageList/ScrollToBottom/index.ts +5 -0
- package/src/components/MessageList/i18n/en-US.ts +5 -0
- package/src/components/MessageList/i18n/index.ts +1 -5
- package/src/components/MessageList/i18n/zh-CN.ts +5 -0
- package/src/components/MessageList/index.ts +4 -1
- package/src/components/Search/Search.vue +0 -4
- package/src/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.vue +125 -38
- package/src/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.vue +24 -16
- package/src/components/Search/SearchAdvanced/SearchAdvanced.vue +9 -7
- package/src/components/Search/SearchAdvanced/SearchTab/SearchTab.vue +4 -3
- package/src/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.scss +0 -1
- package/src/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.vue +57 -23
- package/src/components/Search/SearchBar/SearchBar.scss +0 -2
- package/src/components/Search/SearchBar/SearchBar.vue +7 -5
- package/src/components/Search/SearchResults/EmptyResult/EmptyResult.vue +4 -2
- package/src/components/Search/SearchResults/SearchResults.scss +5 -11
- package/src/components/Search/SearchResults/SearchResults.vue +25 -29
- package/src/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.scss +1 -9
- package/src/components/Search/SearchResults/SearchResultsItem/utils/highlightText.ts +15 -16
- package/src/components/Search/i18n/en-US/Search.ts +9 -9
- package/src/components/Search/i18n/zh-CN/Search.ts +13 -13
- package/src/components/StreamMixer/LocalMixer/MixerControl.vue +20 -15
- package/src/components/StreamMixer/LocalMixer/index.vue +130 -57
- package/src/components/StreamMixer/index.vue +3 -3
- package/src/components/UserPicker/i18n/index.ts +1 -5
- package/src/components/UserPicker/index.ts +4 -3
- package/src/components/VideoSettingPanel/VideoPreview.vue +13 -8
- package/src/components/VideoSettingPanel/VideoProfile.vue +5 -5
- package/src/components/VideoSettingPanel/i18n/en-US/index.ts +8 -3
- package/src/components/VideoSettingPanel/i18n/zh-CN/index.ts +8 -3
- package/src/components/VideoSettingPanel/index.vue +15 -9
- package/src/hooks/useLongPress.ts +7 -18
- package/src/hooks/useMessageActions.ts +5 -5
- package/src/hooks/useMouseHover.ts +9 -7
- package/src/rtc/index.ts +6 -3
- package/src/types/contact.ts +175 -12
- package/src/types/conversation.ts +42 -32
- package/src/types/live.ts +3 -5
- package/src/types/types.ts +0 -28
- package/src/utils/time.ts +8 -10
- package/dist/baseComp/Popup/Popup.js +0 -132
- package/dist/baseComp/Popup/Popup.vue.d.ts +0 -54
- package/dist/baseComp/Popup/index.d.ts +0 -2
- package/dist/baseComp/Popup/index.js +0 -4
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.js +0 -65
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.vue.d.ts +0 -17
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/index.d.ts +0 -1
- package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/index.js +0 -4
- package/dist/components/ConversationList/ConversationCreate/hooks/useConversationCreate.d.ts +0 -9
- package/dist/components/ConversationList/ConversationCreate/hooks/useConversationCreate.js +0 -96
- package/dist/components/ConversationList/ConversationCreate/static/word.d.ts +0 -6
- package/dist/components/ConversationList/ConversationCreate/static/word.js +0 -4
- package/dist/components/LiveStreamView/index.d.ts +0 -4
- package/src/baseComp/Popup/Popup.vue +0 -156
- package/src/baseComp/Popup/index.ts +0 -2
- package/src/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.scss +0 -36
- package/src/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.vue +0 -44
- package/src/components/ConversationList/ConversationCreate/ConversationCreateSelectView/index.ts +0 -1
- package/src/components/ConversationList/ConversationCreate/hooks/useConversationCreate.ts +0 -132
- package/src/components/ConversationList/ConversationCreate/static/word.ts +0 -300
- /package/dist/components/{LiveStreamView → LiveCoreView}/DefaultStreamViewUI.vue.d.ts +0 -0
- /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/en-US/index.d.ts +0 -0
- /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/en-US/index.js +0 -0
- /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/index.d.ts +0 -0
- /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/index.js +0 -0
- /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/zh-CN/index.d.ts +0 -0
- /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/zh-CN/index.js +0 -0
- /package/dist/components/{LiveStreamView → LiveCoreView}/index.vue.d.ts +0 -0
- /package/src/components/{LiveStreamView → LiveCoreView}/DefaultStreamViewUI.vue +0 -0
- /package/src/components/{LiveStreamView → LiveCoreView}/i18n/en-US/index.ts +0 -0
- /package/src/components/{LiveStreamView → LiveCoreView}/i18n/index.ts +0 -0
- /package/src/components/{LiveStreamView → LiveCoreView}/i18n/zh-CN/index.ts +0 -0
|
@@ -12,8 +12,8 @@ export const generateHighlightTitle = (
|
|
|
12
12
|
|
|
13
13
|
const regex = new RegExp(`(${highlightMatchString})`, 'gi');
|
|
14
14
|
const parts = title.split(regex);
|
|
15
|
-
|
|
16
|
-
return parts.map(
|
|
15
|
+
|
|
16
|
+
return parts.map(part => ({
|
|
17
17
|
text: part,
|
|
18
18
|
isHighlight: part.toLowerCase() === highlightMatchString.toLowerCase(),
|
|
19
19
|
}));
|
|
@@ -34,22 +34,22 @@ export const getLatestMessagePreview = (conversation: ConversationModel, t: (key
|
|
|
34
34
|
case TUIChatEngine.TYPES.MSG_TEXT:
|
|
35
35
|
return payload.text || '';
|
|
36
36
|
case TUIChatEngine.TYPES.MSG_IMAGE:
|
|
37
|
-
return `[${t('
|
|
37
|
+
return `[${t('TUIConversation.Image')}]`;
|
|
38
38
|
case TUIChatEngine.TYPES.MSG_AUDIO:
|
|
39
|
-
return `[${t('
|
|
39
|
+
return `[${t('TUIConversation.Audio')}]`;
|
|
40
40
|
case TUIChatEngine.TYPES.MSG_VIDEO:
|
|
41
|
-
return `[${t('
|
|
41
|
+
return `[${t('TUIConversation.Video')}]`;
|
|
42
42
|
case TUIChatEngine.TYPES.MSG_FILE:
|
|
43
|
-
return `[${t('
|
|
43
|
+
return `[${t('TUIConversation.File')}]`;
|
|
44
44
|
case TUIChatEngine.TYPES.MSG_CUSTOM:
|
|
45
|
-
return `[${t('
|
|
45
|
+
return `[${t('TUIConversation.Custom')}]`;
|
|
46
46
|
case TUIChatEngine.TYPES.MSG_LOCATION:
|
|
47
|
-
return `[${t('
|
|
47
|
+
return `[${t('TUIConversation.Location')}]`;
|
|
48
48
|
case TUIChatEngine.TYPES.MSG_FACE:
|
|
49
|
-
return `[${t('
|
|
49
|
+
return `[${t('TUIConversation.Emoji')}]`;
|
|
50
50
|
case TUIChatEngine.TYPES.MSG_MERGER:
|
|
51
|
-
return `[${t('
|
|
51
|
+
return `[${t('TUIConversation.Chat History')}]`;
|
|
52
52
|
default:
|
|
53
53
|
return senderName ? `${senderName}: ${payload?.text || ''}` : payload?.text || '';
|
|
54
54
|
}
|
|
55
|
-
};
|
|
55
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ref } from 'vue';
|
|
2
|
+
|
|
3
|
+
const enableCreate = ref(false);
|
|
4
|
+
const enableSearch = ref(false);
|
|
5
|
+
|
|
6
|
+
export const useConversation = () => {
|
|
7
|
+
const setEnableCreate = (value: boolean) => {
|
|
8
|
+
enableCreate.value = value;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const setEnableSearch = (value: boolean) => {
|
|
12
|
+
enableSearch.value = value;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
return {
|
|
16
|
+
enableCreate,
|
|
17
|
+
enableSearch,
|
|
18
|
+
setEnableCreate,
|
|
19
|
+
setEnableSearch,
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { GroupType } from '../../../types';
|
|
2
|
+
import {
|
|
3
|
+
DEFAULT_GROUP_AVATAR_AVCHATROOM,
|
|
4
|
+
DEFAULT_GROUP_AVATAR_COMMON,
|
|
5
|
+
DEFAULT_GROUP_AVATAR_MEETING,
|
|
6
|
+
DEFAULT_GROUP_AVATAR_PUBLIC,
|
|
7
|
+
DEFAULT_GROUP_AVATAR_WORK,
|
|
8
|
+
} from '../../Avatar';
|
|
9
|
+
|
|
10
|
+
const getDefaultAvatar = (type: GroupType) => {
|
|
11
|
+
switch (type) {
|
|
12
|
+
case GroupType.WORK:
|
|
13
|
+
return DEFAULT_GROUP_AVATAR_WORK;
|
|
14
|
+
case GroupType.PUBLIC:
|
|
15
|
+
return DEFAULT_GROUP_AVATAR_PUBLIC;
|
|
16
|
+
case GroupType.MEETING:
|
|
17
|
+
return DEFAULT_GROUP_AVATAR_MEETING;
|
|
18
|
+
case GroupType.AVCHATROOM:
|
|
19
|
+
return DEFAULT_GROUP_AVATAR_AVCHATROOM;
|
|
20
|
+
case GroupType.COMMUNITY:
|
|
21
|
+
return DEFAULT_GROUP_AVATAR_COMMON;
|
|
22
|
+
default:
|
|
23
|
+
return '';
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export const useConversationCreate = () => ({
|
|
28
|
+
getDefaultAvatar,
|
|
29
|
+
});
|
|
@@ -6,15 +6,23 @@ export default {
|
|
|
6
6
|
'Load failed': 'Load failed',
|
|
7
7
|
'Retry': 'Retry',
|
|
8
8
|
|
|
9
|
+
// ConversationSearch
|
|
10
|
+
'You are not in the group, please join the group first': 'You are not in the group, please join the group first',
|
|
11
|
+
|
|
9
12
|
// ConversationCreate
|
|
10
|
-
'Start chat': 'Start
|
|
13
|
+
'Start chat': 'Start Chat',
|
|
14
|
+
'Start C2C Chat': 'Start C2C Chat',
|
|
15
|
+
'Start Group Chat': 'Start Group Chat',
|
|
11
16
|
'Add Participants': 'Add Participants',
|
|
12
17
|
'Search': 'Search',
|
|
13
18
|
'New group chat': 'New group chat',
|
|
14
19
|
'Next': 'Next',
|
|
20
|
+
'Prev': 'Prev',
|
|
21
|
+
'Cancel': 'Cancel',
|
|
15
22
|
'Create': 'Create',
|
|
16
23
|
|
|
17
24
|
// ConversationCreateGroupDetail
|
|
25
|
+
'Group Avatar': 'Group Avatar',
|
|
18
26
|
'Group Name': 'Group Name',
|
|
19
27
|
'Group ID': 'Group ID',
|
|
20
28
|
'Group Type': 'Group Type',
|
|
@@ -29,11 +37,12 @@ export default {
|
|
|
29
37
|
'Community': 'Community',
|
|
30
38
|
|
|
31
39
|
// Group type descriptions
|
|
32
|
-
'Users can join the group only via invitation by existing members. The invitation does not need to be agreed by the invitee or approved by the group owner. See the documentation for details.': 'Users can join the group only via invitation by existing members. The invitation does not need to be agreed by the invitee or approved by the group owner.
|
|
33
|
-
'After a public group is created, the group owner can designate group admins. To join the group, a user needs to search the group ID and send a request, which needs to be approved by the group owner or an admin before the user can join the group. See the documentation for details.': 'After a public group is created, the group owner can designate group admins. To join the group, a user needs to search the group ID and send a request, which needs to be approved by the group owner or an admin before the user can join the group.
|
|
34
|
-
'After the group is created, a user can join and quit the group freely and can view the messages sent before joining the group. It is suitable for scenarios that integrate Tencent Real-Time Communication (TRTC), such as audio and video conferences and online education. See the documentation for details.': 'After the group is created, a user can join and quit the group freely and can view the messages sent before joining the group. It is suitable for scenarios that integrate Tencent Real-Time Communication (TRTC), such as audio and video conferences and online education.
|
|
35
|
-
'After a group is created, a user can join and quit the group freely. The group can have an unlimited number of members, but it does not store message history. It can be combined with Live Video Broadcasting (LVB) to support on-screen comment scenarios. See the documentation for details.': 'After a group is created, a user can join and quit the group freely. The group can have an unlimited number of members, but it does not store message history. It can be combined with Live Video Broadcasting (LVB) to support on-screen comment scenarios.
|
|
36
|
-
'After creation, you can enter and leave at will, support up to 100,000 people, support historical message storage, and after users search for group ID and initiate a group application, they can join the group without administrator approval. See product documentation for details.': 'After creation, you can enter and leave at will, support up to 100,000 people, support historical message storage, and after users search for group ID and initiate a group application, they can join the group without administrator approval.
|
|
40
|
+
'Users can join the group only via invitation by existing members. The invitation does not need to be agreed by the invitee or approved by the group owner. See the documentation for details.': 'Users can join the group only via invitation by existing members. The invitation does not need to be agreed by the invitee or approved by the group owner. ',
|
|
41
|
+
'After a public group is created, the group owner can designate group admins. To join the group, a user needs to search the group ID and send a request, which needs to be approved by the group owner or an admin before the user can join the group. See the documentation for details.': 'After a public group is created, the group owner can designate group admins. To join the group, a user needs to search the group ID and send a request, which needs to be approved by the group owner or an admin before the user can join the group.',
|
|
42
|
+
'After the group is created, a user can join and quit the group freely and can view the messages sent before joining the group. It is suitable for scenarios that integrate Tencent Real-Time Communication (TRTC), such as audio and video conferences and online education. See the documentation for details.': 'After the group is created, a user can join and quit the group freely and can view the messages sent before joining the group. It is suitable for scenarios that integrate Tencent Real-Time Communication (TRTC), such as audio and video conferences and online education.',
|
|
43
|
+
'After a group is created, a user can join and quit the group freely. The group can have an unlimited number of members, but it does not store message history. It can be combined with Live Video Broadcasting (LVB) to support on-screen comment scenarios. See the documentation for details.': 'After a group is created, a user can join and quit the group freely. The group can have an unlimited number of members, but it does not store message history. It can be combined with Live Video Broadcasting (LVB) to support on-screen comment scenarios.',
|
|
44
|
+
'After creation, you can enter and leave at will, support up to 100,000 people, support historical message storage, and after users search for group ID and initiate a group application, they can join the group without administrator approval. See product documentation for details.': 'After creation, you can enter and leave at will, support up to 100,000 people, support historical message storage, and after users search for group ID and initiate a group application, they can join the group without administrator approval.',
|
|
45
|
+
'See the documentation for details': 'See the documentation for details.',
|
|
37
46
|
|
|
38
47
|
// ConversationActions
|
|
39
48
|
'Pin': 'Pin',
|
|
@@ -46,5 +55,16 @@ export default {
|
|
|
46
55
|
|
|
47
56
|
// Details link
|
|
48
57
|
'Details': 'Details',
|
|
58
|
+
|
|
59
|
+
// ConversationList
|
|
60
|
+
'Drafts': 'Drafts',
|
|
61
|
+
'Image': 'Image',
|
|
62
|
+
'Audio': 'Audio',
|
|
63
|
+
'Video': 'Video',
|
|
64
|
+
'File': 'File',
|
|
65
|
+
'Custom': 'Custom',
|
|
66
|
+
'Location': 'Location',
|
|
67
|
+
'Emoji': 'Emoji',
|
|
68
|
+
'Chat History': 'Chat History',
|
|
49
69
|
},
|
|
50
70
|
};
|
|
@@ -6,15 +6,23 @@ export default {
|
|
|
6
6
|
'Load failed': '加载失败',
|
|
7
7
|
'Retry': '重试',
|
|
8
8
|
|
|
9
|
+
// ConversationSearch
|
|
10
|
+
'You are not in the group, please join the group first': '你不在群组中,请先加入群组',
|
|
11
|
+
|
|
9
12
|
// ConversationCreate
|
|
10
13
|
'Start chat': '发起会话',
|
|
14
|
+
'Start C2C Chat': '发起单人会话',
|
|
15
|
+
'Start Group Chat': '发起多人会话',
|
|
11
16
|
'Add Participants': '添加成员',
|
|
12
17
|
'Search': '搜索',
|
|
13
18
|
'New group chat': '新建群聊',
|
|
14
19
|
'Next': '下一步',
|
|
20
|
+
'Prev': '上一步',
|
|
21
|
+
'Cancel': '取消',
|
|
15
22
|
'Create': '创建',
|
|
16
23
|
|
|
17
24
|
// ConversationCreateGroupDetail
|
|
25
|
+
'Group Avatar': '群头像',
|
|
18
26
|
'Group Name': '群名称',
|
|
19
27
|
'Group ID': '群ID',
|
|
20
28
|
'Group Type': '群类型',
|
|
@@ -29,11 +37,12 @@ export default {
|
|
|
29
37
|
'Community': '社群',
|
|
30
38
|
|
|
31
39
|
// Group type descriptions
|
|
32
|
-
'Users can join the group only via invitation by existing members. The invitation does not need to be agreed by the invitee or approved by the group owner. See the documentation for details.': '
|
|
33
|
-
'After a public group is created, the group owner can designate group admins. To join the group, a user needs to search the group ID and send a request, which needs to be approved by the group owner or an admin before the user can join the group. See the documentation for details.': '公共群组创建后,群主可以指定群管理员。用户加入群组需要搜索群ID
|
|
34
|
-
'After the group is created, a user can join and quit the group freely and can view the messages sent before joining the group. It is suitable for scenarios that integrate Tencent Real-Time Communication (TRTC), such as audio and video conferences and online education. See the documentation for details.': '群组创建后,用户可以自由加入和退出群组,并可以查看加入群组前发送的消息。适用于音视频会议、在线教育等融合腾讯实时通信 (TRTC)
|
|
35
|
-
'After a group is created, a user can join and quit the group freely. The group can have an unlimited number of members, but it does not store message history. It can be combined with Live Video Broadcasting (LVB) to support on-screen comment scenarios. See the documentation for details.': '群组创建后,用户可以自由加入和退出群组。群组成员数量不限,但不保存消息历史记录。可以与直播 (LVB)
|
|
36
|
-
'After creation, you can enter and leave at will, support up to 100,000 people, support historical message storage, and after users search for group ID and initiate a group application, they can join the group without administrator approval. See product documentation for details.': '创建后可随意进出,最多支持10万人,支持历史消息存储,用户搜索群ID
|
|
40
|
+
'Users can join the group only via invitation by existing members. The invitation does not need to be agreed by the invitee or approved by the group owner. See the documentation for details.': '用户只能通过现有成员的邀请加入群组。邀请无需被邀请人同意或群主批准。',
|
|
41
|
+
'After a public group is created, the group owner can designate group admins. To join the group, a user needs to search the group ID and send a request, which needs to be approved by the group owner or an admin before the user can join the group. See the documentation for details.': '公共群组创建后,群主可以指定群管理员。用户加入群组需要搜索群ID并发送请求,群主或管理员批准后方可加入。',
|
|
42
|
+
'After the group is created, a user can join and quit the group freely and can view the messages sent before joining the group. It is suitable for scenarios that integrate Tencent Real-Time Communication (TRTC), such as audio and video conferences and online education. See the documentation for details.': '群组创建后,用户可以自由加入和退出群组,并可以查看加入群组前发送的消息。适用于音视频会议、在线教育等融合腾讯实时通信 (TRTC) 的场景。',
|
|
43
|
+
'After a group is created, a user can join and quit the group freely. The group can have an unlimited number of members, but it does not store message history. It can be combined with Live Video Broadcasting (LVB) to support on-screen comment scenarios. See the documentation for details.': '群组创建后,用户可以自由加入和退出群组。群组成员数量不限,但不保存消息历史记录。可以与直播 (LVB) 结合,支持屏幕评论场景。',
|
|
44
|
+
'After creation, you can enter and leave at will, support up to 100,000 people, support historical message storage, and after users search for group ID and initiate a group application, they can join the group without administrator approval. See product documentation for details.': '创建后可随意进出,最多支持10万人,支持历史消息存储,用户搜索群ID发起建群申请后,无需管理员审批即可加入。',
|
|
45
|
+
'See the documentation for details': '详情请参阅文档。',
|
|
37
46
|
|
|
38
47
|
// ConversationActions
|
|
39
48
|
'Pin': '置顶',
|
|
@@ -46,5 +55,16 @@ export default {
|
|
|
46
55
|
|
|
47
56
|
// Details link
|
|
48
57
|
'Details': '详情',
|
|
58
|
+
|
|
59
|
+
// ConversationList
|
|
60
|
+
'Drafts': '草稿',
|
|
61
|
+
'Image': '图片',
|
|
62
|
+
'Audio': '音频',
|
|
63
|
+
'Video': '视频',
|
|
64
|
+
'File': '文件',
|
|
65
|
+
'Custom': '自定义消息',
|
|
66
|
+
'Location': '位置',
|
|
67
|
+
'Emoji': '表情',
|
|
68
|
+
'Chat History': '聊天记录',
|
|
49
69
|
},
|
|
50
70
|
};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import LiveStreamView from './index.vue';
|
|
2
|
-
import DefaultStreamViewUI from './DefaultStreamViewUI.vue';
|
|
3
1
|
import { addI18n } from '../../i18n';
|
|
2
|
+
import DefaultStreamViewUI from './DefaultStreamViewUI.vue';
|
|
4
3
|
import { enUSResource, zhCNResource } from './i18n';
|
|
4
|
+
import LiveCoreView from './index.vue';
|
|
5
|
+
|
|
5
6
|
addI18n('en-US', { translation: enUSResource });
|
|
6
7
|
addI18n('zh-CN', { translation: zhCNResource });
|
|
7
8
|
|
|
8
|
-
export {
|
|
9
|
+
export { LiveCoreView, DefaultStreamViewUI };
|
|
@@ -1,34 +1,61 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
<div
|
|
3
|
+
ref="liveCoreViewContainerRef"
|
|
4
|
+
class="live-core-view-container"
|
|
5
|
+
>
|
|
6
|
+
<div
|
|
7
|
+
class="live-core-view"
|
|
8
|
+
:style="streamViewStyle"
|
|
9
|
+
>
|
|
10
|
+
<div
|
|
11
|
+
v-if="!$slots.localVideo && seatList.length === 0"
|
|
12
|
+
class="live-core-placeholder"
|
|
13
|
+
>
|
|
5
14
|
<span class="placeholder-text">{{ t('No video') }}</span>
|
|
6
15
|
</div>
|
|
7
|
-
<div
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
16
|
+
<div
|
|
17
|
+
id="atomicx-live-stream-content"
|
|
18
|
+
class="stream-content"
|
|
19
|
+
/>
|
|
20
|
+
<div
|
|
21
|
+
v-if="needPlayStreamViewInfo.length > 0"
|
|
22
|
+
class="live-core-ui"
|
|
23
|
+
>
|
|
24
|
+
<div
|
|
25
|
+
v-for="(item, index) in needPlayStreamViewInfo"
|
|
26
|
+
:key="`seat-${index}`"
|
|
27
|
+
:style="item.region"
|
|
28
|
+
>
|
|
29
|
+
<slot
|
|
30
|
+
name="streamViewUI"
|
|
31
|
+
v-bind="{ userInfo: item.userInfo }"
|
|
32
|
+
/>
|
|
33
|
+
<DefaultStreamViewUI
|
|
34
|
+
v-if="!$slots.streamViewUI"
|
|
35
|
+
:streamViewInfoList="needPlayStreamViewInfo"
|
|
36
|
+
:userInfo="item.userInfo"
|
|
37
|
+
/>
|
|
12
38
|
</div>
|
|
13
39
|
</div>
|
|
14
40
|
<slot
|
|
15
|
-
name="localVideo"
|
|
16
41
|
v-if="$slots.localVideo && isMounted"
|
|
42
|
+
name="localVideo"
|
|
17
43
|
v-bind="{ style: localStreamViewInfo?.region }"
|
|
18
|
-
|
|
44
|
+
/>
|
|
19
45
|
</div>
|
|
20
46
|
</div>
|
|
21
47
|
</template>
|
|
22
48
|
|
|
23
49
|
<script setup lang="ts">
|
|
24
|
-
import { ref, computed,
|
|
25
|
-
import
|
|
26
|
-
import {
|
|
50
|
+
import { ref, computed, watch, onMounted, onBeforeUnmount, useSlots } from 'vue';
|
|
51
|
+
import type { ComputedRef } from 'vue';
|
|
52
|
+
import { useUIKit } from '@tencentcloud/uikit-base-component-vue3';
|
|
27
53
|
import { useLiveSeatState } from '../../states/LiveSeatState';
|
|
28
|
-
import { useLoginState } from '../../states/LoginState';
|
|
29
54
|
import { useLiveState } from '../../states/LiveState';
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
55
|
+
import { useLoginState } from '../../states/LoginState';
|
|
56
|
+
import { getContentSize } from '../../utils/domOperation';
|
|
57
|
+
import DefaultStreamViewUI from './DefaultStreamViewUI.vue';
|
|
58
|
+
import type { SeatUserInfo } from '../../types';
|
|
32
59
|
|
|
33
60
|
const { t } = useUIKit();
|
|
34
61
|
const { seatList, canvas, startPlayStream, stopPlayStream } = useLiveSeatState();
|
|
@@ -43,7 +70,7 @@ const isMounted = ref(false);
|
|
|
43
70
|
|
|
44
71
|
onMounted(() => {
|
|
45
72
|
isMounted.value = true;
|
|
46
|
-
startPlayStream({ view: 'stream-content' });
|
|
73
|
+
startPlayStream({ view: 'atomicx-live-stream-content' });
|
|
47
74
|
});
|
|
48
75
|
|
|
49
76
|
onBeforeUnmount(() => {
|
|
@@ -51,6 +78,16 @@ onBeforeUnmount(() => {
|
|
|
51
78
|
stopPlayStream();
|
|
52
79
|
});
|
|
53
80
|
|
|
81
|
+
const isPortraitContainer = ref(true);
|
|
82
|
+
const liveCoreViewContainerRef = ref<HTMLDivElement>();
|
|
83
|
+
const originStreamViewStyle = ref({
|
|
84
|
+
width: 0,
|
|
85
|
+
height: 0,
|
|
86
|
+
transformX: 0,
|
|
87
|
+
transformY: 0,
|
|
88
|
+
scale: 1,
|
|
89
|
+
});
|
|
90
|
+
|
|
54
91
|
const ratioLayoutList = computed(() => {
|
|
55
92
|
const layoutCanvas = canvas.value;
|
|
56
93
|
const layoutList = seatList.value?.map(seat => ({ userId: seat.userInfo?.userId, ...seat.region }));
|
|
@@ -67,29 +104,38 @@ const ratioLayoutList = computed(() => {
|
|
|
67
104
|
}));
|
|
68
105
|
});
|
|
69
106
|
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
const ratioLayout = ratioLayoutList.value[index];
|
|
107
|
+
const streamViewSize = computed(() => {
|
|
108
|
+
if (isPortraitContainer.value) {
|
|
73
109
|
return {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
110
|
+
width: originStreamViewStyle.value.width,
|
|
111
|
+
height: originStreamViewStyle.value.height,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
width: originStreamViewStyle.value.width * originStreamViewStyle.value.scale,
|
|
116
|
+
height: originStreamViewStyle.value.height * originStreamViewStyle.value.scale,
|
|
117
|
+
};
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
const seatListWithRealSize = computed(() => seatList.value.map((item, index) => {
|
|
121
|
+
const ratioLayout = ratioLayoutList.value[index];
|
|
122
|
+
return {
|
|
123
|
+
userInfo: item.userInfo as SeatUserInfo,
|
|
124
|
+
region: {
|
|
125
|
+
position: 'absolute' as const,
|
|
126
|
+
left: `${streamViewSize.value.width * ratioLayout.x}px`,
|
|
127
|
+
top: `${streamViewSize.value.width * ratioLayout.y}px`,
|
|
128
|
+
width: `${streamViewSize.value.width * ratioLayout.width}px`,
|
|
129
|
+
height:
|
|
81
130
|
ratioLayout.height === -1
|
|
82
131
|
? `${streamViewSize.value.height}px`
|
|
83
132
|
: `${streamViewSize.value.width * ratioLayout.height}px`,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
});
|
|
133
|
+
zIndex: Number(ratioLayout.zOrder) || 0,
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
}));
|
|
89
137
|
|
|
90
|
-
const localStreamViewInfo = computed(() =>
|
|
91
|
-
return seatListWithRealSize.value.find(item => item?.userInfo?.userId === loginUserInfo.value?.userId);
|
|
92
|
-
});
|
|
138
|
+
const localStreamViewInfo = computed(() => seatListWithRealSize.value.find(item => item?.userInfo?.userId === loginUserInfo.value?.userId));
|
|
93
139
|
|
|
94
140
|
const needPlayStreamViewInfo = computed(() => {
|
|
95
141
|
if (ignoreLocalVideoPlay.value) {
|
|
@@ -98,20 +144,12 @@ const needPlayStreamViewInfo = computed(() => {
|
|
|
98
144
|
return seatListWithRealSize.value;
|
|
99
145
|
});
|
|
100
146
|
|
|
101
|
-
// -----
|
|
102
|
-
//
|
|
103
|
-
//
|
|
104
|
-
//
|
|
105
|
-
//
|
|
106
|
-
//
|
|
107
|
-
const liveStreamViewContainerRef = ref<HTMLDivElement>();
|
|
108
|
-
const originStreamViewStyle = ref({
|
|
109
|
-
width: 0,
|
|
110
|
-
height: 0,
|
|
111
|
-
transformX: 0,
|
|
112
|
-
transformY: 0,
|
|
113
|
-
scale: 1,
|
|
114
|
-
});
|
|
147
|
+
// ----- Layout Processing -----
|
|
148
|
+
// Get a stream layout container B based on the size of streamView's parent element A, container B conforms to aspectRatio proportion
|
|
149
|
+
// Based on the passed props.config.layoutList, using stream layout container B as canvas size, calculate the size of all visible areas C and the center coordinates of visible area C
|
|
150
|
+
// Based on the size ratio of visible area C and A, calculate container B's scale. Based on the center coordinates of C and B, calculate container B's transformX and transformY (to ensure C's center point is at the center of streamView's parent element B)
|
|
151
|
+
// Based on container B's scale and transformX, transformY, calculate container B's actual width, height, transformX, transformY (scale is not used here to avoid affecting the size of text and img in child elements)
|
|
152
|
+
// Based on container B's actual size, calculate the actual position and size of each child element
|
|
115
153
|
|
|
116
154
|
const visualStreamSize = computed(() => {
|
|
117
155
|
if (ratioLayoutList.value.length === 0) {
|
|
@@ -122,16 +160,14 @@ const visualStreamSize = computed(() => {
|
|
|
122
160
|
centerY: 0,
|
|
123
161
|
};
|
|
124
162
|
}
|
|
125
|
-
const absoluteLayoutList = ratioLayoutList.value.map(item => {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
};
|
|
134
|
-
});
|
|
163
|
+
const absoluteLayoutList = ratioLayoutList.value.map(item => ({
|
|
164
|
+
userId: item.userId,
|
|
165
|
+
left: originStreamViewStyle.value.width * item.x,
|
|
166
|
+
top: originStreamViewStyle.value.width * item.y,
|
|
167
|
+
width: originStreamViewStyle.value.width * item.width,
|
|
168
|
+
height: item.height === -1 ? originStreamViewStyle.value.height : originStreamViewStyle.value.width * item.height,
|
|
169
|
+
zIndex: item.zOrder,
|
|
170
|
+
}));
|
|
135
171
|
const minX = Math.min(...absoluteLayoutList.map(item => item.left));
|
|
136
172
|
const minY = Math.min(...absoluteLayoutList.map(item => item.top));
|
|
137
173
|
const maxX = Math.max(...absoluteLayoutList.map(item => item.left + item.width));
|
|
@@ -149,10 +185,10 @@ watch(visualStreamSize, () => {
|
|
|
149
185
|
});
|
|
150
186
|
|
|
151
187
|
function handleStreamListTransform() {
|
|
152
|
-
if (!
|
|
188
|
+
if (!liveCoreViewContainerRef.value) {
|
|
153
189
|
return;
|
|
154
190
|
}
|
|
155
|
-
const containerRect =
|
|
191
|
+
const containerRect = liveCoreViewContainerRef.value.getBoundingClientRect();
|
|
156
192
|
const containerWidth = Math.floor(containerRect.width);
|
|
157
193
|
const containerHeight = Math.floor(containerRect.height);
|
|
158
194
|
|
|
@@ -171,19 +207,6 @@ function handleStreamListTransform() {
|
|
|
171
207
|
}
|
|
172
208
|
}
|
|
173
209
|
|
|
174
|
-
const streamViewSize = computed(() => {
|
|
175
|
-
if (isPortraitContainer.value) {
|
|
176
|
-
return {
|
|
177
|
-
width: originStreamViewStyle.value.width,
|
|
178
|
-
height: originStreamViewStyle.value.height,
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
return {
|
|
182
|
-
width: originStreamViewStyle.value.width * originStreamViewStyle.value.scale,
|
|
183
|
-
height: originStreamViewStyle.value.height * originStreamViewStyle.value.scale,
|
|
184
|
-
};
|
|
185
|
-
});
|
|
186
|
-
|
|
187
210
|
const streamViewStyle = computed(() => {
|
|
188
211
|
if (isPortraitContainer.value) {
|
|
189
212
|
return {
|
|
@@ -224,11 +247,11 @@ const heightRatio: ComputedRef<number> = computed(() => {
|
|
|
224
247
|
});
|
|
225
248
|
|
|
226
249
|
function handleStreamRegionSize() {
|
|
227
|
-
if (!
|
|
250
|
+
if (!liveCoreViewContainerRef.value) {
|
|
228
251
|
return;
|
|
229
252
|
}
|
|
230
|
-
const containerWidth = getContentSize(
|
|
231
|
-
const containerHeight = getContentSize(
|
|
253
|
+
const containerWidth = getContentSize(liveCoreViewContainerRef.value).width;
|
|
254
|
+
const containerHeight = getContentSize(liveCoreViewContainerRef.value).height;
|
|
232
255
|
let width = containerWidth;
|
|
233
256
|
let height = containerHeight;
|
|
234
257
|
if (widthRatio.value && heightRatio.value) {
|
|
@@ -251,16 +274,14 @@ watch(
|
|
|
251
274
|
() => aspectRatio.value,
|
|
252
275
|
() => {
|
|
253
276
|
handleStreamRegionSize();
|
|
254
|
-
}
|
|
277
|
+
},
|
|
255
278
|
);
|
|
256
279
|
|
|
257
|
-
const isPortraitContainer = ref(true);
|
|
258
|
-
|
|
259
280
|
const getContainerOrientation = () => {
|
|
260
|
-
if (!
|
|
281
|
+
if (!liveCoreViewContainerRef.value) {
|
|
261
282
|
return;
|
|
262
283
|
}
|
|
263
|
-
const containerRect =
|
|
284
|
+
const containerRect = liveCoreViewContainerRef.value.getBoundingClientRect();
|
|
264
285
|
isPortraitContainer.value = containerRect.width < containerRect.height;
|
|
265
286
|
};
|
|
266
287
|
|
|
@@ -271,17 +292,17 @@ const ro = new ResizeObserver(() => {
|
|
|
271
292
|
});
|
|
272
293
|
|
|
273
294
|
onMounted(() => {
|
|
274
|
-
ro.observe(
|
|
295
|
+
ro.observe(liveCoreViewContainerRef.value as Element);
|
|
275
296
|
getContainerOrientation();
|
|
276
297
|
});
|
|
277
298
|
|
|
278
299
|
onBeforeUnmount(() => {
|
|
279
|
-
ro.unobserve(
|
|
300
|
+
ro.unobserve(liveCoreViewContainerRef.value as Element);
|
|
280
301
|
});
|
|
281
302
|
</script>
|
|
282
303
|
|
|
283
304
|
<style scoped lang="scss">
|
|
284
|
-
.live-
|
|
305
|
+
.live-core-view-container {
|
|
285
306
|
width: 100%;
|
|
286
307
|
height: 100%;
|
|
287
308
|
display: flex;
|
|
@@ -289,12 +310,12 @@ onBeforeUnmount(() => {
|
|
|
289
310
|
align-items: center;
|
|
290
311
|
justify-content: center;
|
|
291
312
|
|
|
292
|
-
.live-
|
|
313
|
+
.live-core-view {
|
|
293
314
|
width: 100%;
|
|
294
315
|
height: 100%;
|
|
295
316
|
position: relative;
|
|
296
317
|
|
|
297
|
-
.live-
|
|
318
|
+
.live-core-placeholder {
|
|
298
319
|
position: absolute;
|
|
299
320
|
top: 0;
|
|
300
321
|
left: 0;
|
|
@@ -320,7 +341,7 @@ onBeforeUnmount(() => {
|
|
|
320
341
|
left: 0;
|
|
321
342
|
}
|
|
322
343
|
|
|
323
|
-
.live-
|
|
344
|
+
.live-core-ui {
|
|
324
345
|
width: 100%;
|
|
325
346
|
height: 100%;
|
|
326
347
|
position: absolute;
|