tuikit-atomicx-vue3 0.1.1 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AttachmentPicker.module-BesmtGyl.js +11 -0
- package/dist/FilePicker.vue_vue_type_script_setup_true_lang-CdJ4DUzE.js +76 -0
- package/dist/ImagePicker.vue_vue_type_script_setup_true_lang-CbNUofpK.js +76 -0
- package/dist/MessageInput.vue_vue_type_script_setup_true_lang-wUJPjWbx.js +128 -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/VideoPicker.vue_vue_type_script_setup_true_lang-CmxjbNDJ.js +76 -0
- 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 +5677 -6176
- package/dist/chat/index.js +24 -15
- 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 +60 -16
- package/dist/components/BarrageInput/BarrageInputH5.vue.d.ts +2 -2
- package/dist/components/BarrageInput/EmojiPicker/EmojiPicker.js +10 -6
- package/dist/components/BarrageInput/TextEditor/index.js +27 -11
- 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/GroupTipMessage/GroupTipMessage.vue.d.ts +4 -4
- 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 +12 -4
- package/dist/components/BarrageList/i18n/en-US/index.d.ts +1 -0
- package/dist/components/BarrageList/i18n/en-US/index.js +2 -1
- package/dist/components/BarrageList/i18n/zh-CN/index.d.ts +1 -0
- package/dist/components/BarrageList/i18n/zh-CN/index.js +2 -1
- package/dist/components/ChatSetting/ChatSetting.js +8 -11
- package/dist/components/ChatSetting/GroupChatSetting/GroupActions/GroupActions.js +5 -2
- package/dist/components/ChatSetting/GroupChatSetting/GroupChatSetting.js +3 -2
- package/dist/components/ChatSetting/GroupChatSetting/GroupInfo/GroupInfo.js +4 -4
- package/dist/components/ChatSetting/GroupChatSetting/GroupManagement/GroupManagement.js +3 -2
- package/dist/components/ChatSetting/GroupChatSetting/GroupMembers/GroupMembers.js +5 -5
- package/dist/components/ChatSetting/SettingItem/SettingItem.js +116 -89
- package/dist/components/ChatSetting/i18n/en-US.js +3 -3
- package/dist/components/ChatSetting/i18n/index.d.ts +191 -1
- package/dist/components/ChatSetting/i18n/index.js +3 -4
- package/dist/components/ChatSetting/i18n/zh-CN.js +3 -3
- package/dist/components/ChatSetting/index.d.ts +1 -4
- package/dist/components/ChatSetting/index.js +7 -6
- package/dist/components/CoGuestPanel/CoGuestPanel.js +1 -1
- 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 +80 -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 +155 -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 +290 -0
- package/dist/components/ContactList/ContactList.vue.d.ts +149 -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 +442 -0
- package/dist/components/ContactList/index.js +16 -0
- package/dist/components/ConversationList/ConversationActions/ConversationActions.js +30 -46
- package/dist/components/ConversationList/ConversationActions/ConversationActions.vue.d.ts +1 -10
- package/dist/components/ConversationList/ConversationCreate/ConversationCreate.js +161 -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 +37 -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 +61 -75
- package/dist/components/ConversationList/ConversationList.vue.d.ts +844 -3038
- package/dist/components/ConversationList/ConversationListContent/ConversationListContent.js +12 -15
- package/dist/components/ConversationList/ConversationListContent/ConversationListContent.vue.d.ts +22 -340
- package/dist/components/ConversationList/ConversationPlaceHolder/ConversationPlaceHolder.js +2 -2
- package/dist/components/ConversationList/ConversationPreview/ConversationPreview.vue.d.ts +654 -1516
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.js +15 -15
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTimestamp.js +14 -14
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTitle.js +19 -30
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTitle.vue.d.ts +0 -2
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.js +27 -44
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue.d.ts +154 -368
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUnread.js +14 -14
- package/dist/components/ConversationList/ConversationPreview/index.d.ts +1 -1
- package/dist/components/ConversationList/ConversationPreview/index.js +20 -24
- package/dist/components/ConversationList/ConversationPreview/utils.js +8 -8
- package/dist/components/ConversationList/ConversationSearch/ConversationSearch.js +6 -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 +2231 -6662
- package/dist/components/ConversationList/index.js +1 -1
- 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 +154 -105
- package/dist/components/{LiveStreamView → LiveCoreView}/index.vue.d.ts +9 -0
- package/dist/components/LiveList/LiveList.js +73 -45
- package/dist/components/LiveList/LiveListH5.js +80 -75
- package/dist/components/LiveList/i18n/en-US/index.d.ts +5 -0
- package/dist/components/LiveList/i18n/en-US/index.js +6 -1
- package/dist/components/LiveList/i18n/zh-CN/index.d.ts +5 -0
- package/dist/components/LiveList/i18n/zh-CN/index.js +6 -1
- package/dist/components/LiveList/pullToRefresh.js +204 -0
- package/dist/components/LiveList/pullToRefresh.vue.d.ts +86 -0
- package/dist/components/LiveScenePanel/CameraSettingDialog.js +7 -7
- 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/LiveScenePanel/index.js +3 -3
- package/dist/components/MessageInput/AttachmentPicker/AttachmentPicker.vue.d.ts +0 -4
- package/dist/components/MessageInput/AttachmentPicker/FilePicker.js +1 -1
- package/dist/components/MessageInput/AttachmentPicker/ImagePicker.js +1 -1
- package/dist/components/MessageInput/AttachmentPicker/VideoPicker.js +1 -1
- package/dist/components/MessageInput/AttachmentPicker/index.js +15 -20
- package/dist/components/MessageInput/EmojiPicker/EmojiPicker.js +4 -4
- package/dist/components/MessageInput/MessageInput.js +1 -1
- package/dist/components/MessageInput/MessageInput.vue.d.ts +6 -9
- package/dist/components/MessageInput/QuotedMessagePreview/index.js +2 -2
- package/dist/components/MessageInput/SendButton/index.js +1 -1
- package/dist/components/MessageInput/TextEditor/TextEditor.vue.d.ts +2 -2
- package/dist/components/MessageInput/TextEditor/index.js +24 -14
- 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 +373 -6
- package/dist/components/MessageInput/index.js +23 -125
- package/dist/components/MessageList/Message/AudioMessage/PlayButton.js +3 -3
- package/dist/components/MessageList/Message/CustomMessage/index.js +2 -2
- package/dist/components/MessageList/Message/FaceMessage/FaceMessage.js +7 -5
- package/dist/components/MessageList/Message/FaceMessage/FaceMessage.vue.d.ts +8 -8
- package/dist/components/MessageList/Message/ImageMessage/ImageMessage.js +2 -2
- package/dist/components/MessageList/Message/LocationMessage/LocationMessage.js +2 -1
- package/dist/components/MessageList/Message/MergerMessage/MergerMessage.js +2 -1
- package/dist/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.js +14 -6
- package/dist/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.vue.d.ts +8 -8
- 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 -5
- package/dist/components/MessageList/MessageList.js +76 -63
- package/dist/components/MessageList/MessageList.vue.d.ts +4 -4
- package/dist/components/MessageList/MessageTimeDivider/MessageTimeDivider.js +5 -5
- package/dist/components/MessageList/MessageTimeDivider/MessageTimeDivider.vue.d.ts +10 -10
- 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.d.ts +143 -5
- package/dist/components/MessageList/index.js +9 -5
- package/dist/components/Search/Search.js +5 -7
- 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 +5 -7
- package/dist/components/Search/SearchResults/Loading/Loading.js +2 -4
- package/dist/components/Search/SearchResults/SearchResults.js +80 -69
- package/dist/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.js +6 -8
- package/dist/components/Search/SearchResults/SearchResultsItem/Group/Group.js +5 -7
- package/dist/components/Search/SearchResults/SearchResultsItem/Message/Message.js +19 -21
- package/dist/components/Search/SearchResults/SearchResultsItem/SearchResultsItem.js +1 -3
- package/dist/components/Search/SearchResults/SearchResultsItem/User/User.js +5 -7
- 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 +90 -59
- 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/StreamView/manager/mediaManager.js +1 -1
- package/dist/components/UserPicker/UserPicker.js +2 -2
- package/dist/components/UserPicker/UserPicker.vue.d.ts +7 -8
- package/dist/components/UserPicker/components/ListMode/ListMode.js +14 -17
- package/dist/components/UserPicker/components/ListMode/ListMode.vue.d.ts +2 -2
- package/dist/components/UserPicker/components/SelectedPanel/SelectedPanel.vue.d.ts +2 -2
- package/dist/components/UserPicker/components/TreeMode/TreeMode.vue.d.ts +3 -3
- package/dist/components/UserPicker/components/TreeMode/TreeNode.js +2 -2
- package/dist/components/UserPicker/components/TreeMode/TreeNode.vue.d.ts +4 -4
- package/dist/components/UserPicker/hooks/useSearchFilter.d.ts +3 -3
- package/dist/components/UserPicker/hooks/useSelection.d.ts +8 -8
- package/dist/components/UserPicker/hooks/useTreeState.d.ts +3 -3
- 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 +134 -4
- package/dist/components/UserPicker/index.js +7 -3
- package/dist/components/UserPicker/type.d.ts +18 -18
- 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 +17 -8
- package/dist/rtc/index.d.ts +31 -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/GroupSettingState/GroupSettingState.js +3 -3
- package/dist/states/LiveSeatState/seatEventManager.js +3 -5
- package/dist/states/LiveSeatState/usePlayStream/MixStreamPlayer.js +12 -0
- package/dist/states/LiveState/index.d.ts +4 -4
- package/dist/states/LiveState/index.js +4 -2
- package/dist/states/LoginState.js +2 -3
- package/dist/states/MessageInputState/MessageInputState.js +39 -19
- package/dist/states/SearchState.d.ts +2 -2
- package/dist/states/SearchState.js +124 -127
- package/dist/styles/index.css +2814 -4214
- package/dist/types/contact.d.ts +146 -9
- package/dist/types/conversation.d.ts +48 -42
- package/dist/types/conversation.js +22 -0
- package/dist/types/engine.d.ts +12 -0
- package/dist/types/engine.js +15 -0
- package/dist/types/index.js +7 -4
- 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/json.js +0 -1
- package/dist/utils/time.d.ts +2 -2
- package/dist/utils/time.js +253 -1471
- package/package.json +27 -5
- package/src/baseComp/View/View.vue +1 -2
- package/src/baseComp/index.ts +1 -2
- package/src/chat/index.ts +23 -4
- package/src/components/Avatar/Avatar.vue +12 -11
- package/src/components/BarrageInput/BarrageInputH5.vue +85 -12
- package/src/components/BarrageInput/EmojiPicker/EmojiPicker.module.scss +1 -0
- package/src/components/BarrageInput/EmojiPicker/EmojiPicker.vue +1 -1
- package/src/components/BarrageInput/TextEditor/Editor.scss +1 -1
- package/src/components/BarrageInput/TextEditor/TextEditor.module.scss +2 -0
- package/src/components/BarrageInput/TextEditor/TextEditor.vue +19 -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/GroupTipMessage/GroupTipMessage.vue +8 -8
- 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 +13 -3
- package/src/components/BarrageList/i18n/en-US/index.ts +1 -0
- package/src/components/BarrageList/i18n/zh-CN/index.ts +1 -0
- package/src/components/ChatSetting/ChatSetting.vue +6 -10
- package/src/components/ChatSetting/GroupChatSetting/GroupActions/GroupActions.vue +5 -2
- package/src/components/ChatSetting/GroupChatSetting/GroupChatSetting.vue +5 -4
- package/src/components/ChatSetting/GroupChatSetting/GroupInfo/GroupInfo.vue +3 -3
- package/src/components/ChatSetting/GroupChatSetting/GroupManagement/GroupManagement.vue +3 -2
- package/src/components/ChatSetting/GroupChatSetting/GroupMembers/GroupMembers.vue +3 -3
- package/src/components/ChatSetting/SettingItem/SettingItem.vue +48 -41
- package/src/components/ChatSetting/i18n/en-US.ts +3 -3
- package/src/components/ChatSetting/i18n/index.ts +3 -5
- package/src/components/ChatSetting/i18n/zh-CN.ts +3 -3
- package/src/components/ChatSetting/index.ts +8 -4
- package/src/components/CoGuestPanel/CoGuestPanel.vue +9 -0
- package/src/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.scss +52 -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 +264 -0
- package/src/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.scss +84 -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 +93 -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 +84 -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 +54 -0
- package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.vue +147 -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 +112 -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 +125 -0
- package/src/components/ContactList/ContactList.vue +314 -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 +57 -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 +56 -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 +36 -47
- 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 +155 -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 +20 -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 +15 -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 -5
- package/src/components/ConversationList/ConversationList.vue +53 -60
- package/src/components/ConversationList/ConversationListContent/ConversationListContent.scss +3 -5
- package/src/components/ConversationList/ConversationListContent/ConversationListContent.vue +13 -18
- package/src/components/ConversationList/ConversationPlaceHolder/ConversationPlaceHolder.vue +2 -2
- package/src/components/ConversationList/ConversationPreview/ConversationPreview.scss +11 -9
- package/src/components/ConversationList/ConversationPreview/ConversationPreview.vue +14 -16
- package/src/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.vue +1 -1
- package/src/components/ConversationList/ConversationPreview/ConversationPreviewTitle.vue +2 -14
- package/src/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue +6 -19
- package/src/components/ConversationList/ConversationPreview/index.ts +1 -1
- package/src/components/ConversationList/ConversationPreview/utils.ts +11 -11
- package/src/components/ConversationList/ConversationSearch/ConversationSearch.vue +1 -0
- 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/LiveCoreView/index.vue +420 -0
- package/src/components/LiveList/LiveList.vue +97 -38
- package/src/components/LiveList/LiveListH5.vue +65 -66
- package/src/components/LiveList/i18n/en-US/index.ts +5 -0
- package/src/components/LiveList/i18n/zh-CN/index.ts +5 -0
- package/src/components/LiveList/pullToRefresh.vue +364 -0
- package/src/components/LiveScenePanel/CameraSettingDialog.vue +6 -5
- package/src/components/LiveScenePanel/index.vue +2 -2
- package/src/components/MessageInput/AttachmentPicker/AttachmentPicker.module.scss +4 -0
- package/src/components/MessageInput/AttachmentPicker/AttachmentPicker.vue +12 -17
- package/src/components/MessageInput/AttachmentPicker/FilePicker.vue +3 -2
- package/src/components/MessageInput/AttachmentPicker/ImagePicker.vue +3 -2
- package/src/components/MessageInput/AttachmentPicker/VideoPicker.vue +3 -2
- package/src/components/MessageInput/EmojiPicker/EmojiPicker.module.scss +1 -0
- package/src/components/MessageInput/MessageInput.module.scss +1 -1
- package/src/components/MessageInput/MessageInput.vue +21 -15
- 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 +4 -2
- package/src/components/MessageInput/TextEditor/TextEditor.module.scss +1 -0
- package/src/components/MessageInput/TextEditor/TextEditor.vue +18 -6
- package/src/components/MessageInput/i18n/index.ts +1 -7
- package/src/components/MessageInput/index.ts +25 -8
- package/src/components/MessageInput/types.d.ts +3 -4
- package/src/components/MessageList/Message/CustomMessage/CustomMessage.vue +1 -1
- package/src/components/MessageList/Message/FaceMessage/FaceMessage.vue +10 -7
- package/src/components/MessageList/Message/LocationMessage/LocationMessage.vue +3 -1
- package/src/components/MessageList/Message/MergerMessage/MergerMessage.vue +1 -1
- package/src/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.vue +6 -6
- 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 +5 -5
- package/src/components/MessageList/MessageList.vue +37 -9
- package/src/components/MessageList/MessageTimeDivider/MessageTimeDivider.vue +9 -9
- 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 +9 -5
- package/src/components/Search/Search.scss +0 -3
- 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.scss +0 -3
- package/src/components/Search/SearchResults/EmptyResult/EmptyResult.vue +4 -2
- package/src/components/Search/SearchResults/Loading/Loading.scss +0 -3
- package/src/components/Search/SearchResults/SearchResults.scss +12 -27
- package/src/components/Search/SearchResults/SearchResults.vue +25 -29
- package/src/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.scss +5 -19
- package/src/components/Search/SearchResults/SearchResultsItem/Group/Group.scss +5 -11
- package/src/components/Search/SearchResults/SearchResultsItem/Message/Message.scss +5 -11
- package/src/components/Search/SearchResults/SearchResultsItem/SearchResultsItem.scss +0 -3
- package/src/components/Search/SearchResults/SearchResultsItem/User/User.scss +5 -6
- 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 +138 -60
- package/src/components/StreamMixer/index.vue +3 -3
- package/src/components/StreamView/manager/mediaManager.ts +1 -1
- package/src/components/UserPicker/UserPicker.vue +6 -9
- package/src/components/UserPicker/components/ListMode/ListMode.vue +3 -7
- package/src/components/UserPicker/components/SelectedPanel/SelectedPanel.vue +2 -2
- package/src/components/UserPicker/components/TreeMode/TreeMode.vue +3 -3
- package/src/components/UserPicker/components/TreeMode/TreeNode.vue +3 -3
- package/src/components/UserPicker/hooks/useSearchFilter.ts +15 -14
- package/src/components/UserPicker/hooks/useSelection.ts +32 -32
- package/src/components/UserPicker/hooks/useTreeState.ts +4 -4
- package/src/components/UserPicker/i18n/index.ts +1 -5
- package/src/components/UserPicker/index.ts +20 -17
- package/src/components/UserPicker/type.ts +18 -18
- 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 +176 -12
- package/src/types/conversation.ts +54 -46
- package/src/types/engine.ts +15 -0
- package/src/types/live.ts +3 -5
- package/src/types/types.ts +0 -28
- package/src/utils/json.ts +0 -4
- package/src/utils/time.ts +8 -10
- package/dist/AttachmentPicker.module-0_DWsAtr.js +0 -11
- package/dist/FilePicker.vue_vue_type_script_setup_true_lang-CaSj3Gh_.js +0 -72
- package/dist/ImagePicker.vue_vue_type_script_setup_true_lang-CrzGMmrh.js +0 -72
- package/dist/VideoPicker.vue_vue_type_script_setup_true_lang-DTv6TJKr.js +0 -72
- 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/dist/states/UIOpenControlState/UIOpenControlState.d.ts +0 -15
- package/dist/states/UIOpenControlState/UIOpenControlState.js +0 -28
- package/dist/states/UIOpenControlState/index.d.ts +0 -1
- package/dist/states/UIOpenControlState/index.js +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/src/components/LiveStreamView/index.vue +0 -333
- /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/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
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
2
|
+
<div
|
|
3
|
+
class="mixer-control"
|
|
4
|
+
@mousedown="handleMouseDown"
|
|
5
|
+
>
|
|
3
6
|
<div
|
|
4
|
-
class="mixer-control-item"
|
|
5
7
|
v-for="control in controlList"
|
|
6
|
-
:class="{ 'disable': control.disable }"
|
|
7
8
|
:key="control.name"
|
|
9
|
+
class="mixer-control-item"
|
|
10
|
+
:class="{ 'disable': control.disable }"
|
|
8
11
|
:style="control.style"
|
|
9
12
|
@click.stop="control.onClick"
|
|
10
13
|
>
|
|
11
14
|
<div class="mixer-control-item-icon">
|
|
12
|
-
<component
|
|
15
|
+
<component
|
|
16
|
+
:is="control.icon"
|
|
17
|
+
style="width: 100%; height: 100%"
|
|
18
|
+
:style="control.style"
|
|
19
|
+
/>
|
|
13
20
|
</div>
|
|
14
21
|
<span class="mixer-control-item-name">{{ control.text }}</span>
|
|
15
22
|
</div>
|
|
@@ -17,16 +24,16 @@
|
|
|
17
24
|
</template>
|
|
18
25
|
|
|
19
26
|
<script setup lang="ts">
|
|
27
|
+
import { computed } from 'vue';
|
|
28
|
+
import { TRTCVideoMirrorType, TRTCVideoRotation } from '@tencentcloud/tuiroom-engine-js';
|
|
29
|
+
import { useUIKit } from '@tencentcloud/uikit-base-component-vue3';
|
|
30
|
+
import { useVideoMixerState } from '../../../states/VideoMixerState';
|
|
20
31
|
import CameraMirror from '../icons/CameraMirror.vue';
|
|
21
32
|
import Delete from '../icons/Delete.vue';
|
|
33
|
+
import Down from '../icons/Down.vue';
|
|
22
34
|
import Rotation from '../icons/Rotation.vue';
|
|
23
35
|
import Up from '../icons/Up.vue';
|
|
24
|
-
import
|
|
25
|
-
import { useVideoMixerState } from '../../../states/VideoMixerState';
|
|
26
|
-
import { TRTCVideoMirrorType, TRTCVideoRotation } from '@tencentcloud/tuiroom-engine-js';
|
|
27
|
-
import { computed, reactive } from 'vue';
|
|
28
|
-
import { MediaSource } from '../../../types';
|
|
29
|
-
import { useUIKit } from '@tencentcloud/uikit-base-component-vue3';
|
|
36
|
+
import type { MediaSource } from '../../../types';
|
|
30
37
|
|
|
31
38
|
const { activeMediaSource, mediaSourceList, updateMediaSource, removeMediaSource } = useVideoMixerState();
|
|
32
39
|
const { t } = useUIKit();
|
|
@@ -35,12 +42,10 @@ function handleMouseDown(event: Event) {
|
|
|
35
42
|
event.stopPropagation();
|
|
36
43
|
}
|
|
37
44
|
|
|
38
|
-
const orderMediaSourceList = computed(() =>
|
|
39
|
-
return [...mediaSourceList.value].sort((a: MediaSource, b: MediaSource) => a.layout.zOrder - b.layout.zOrder);
|
|
40
|
-
});
|
|
45
|
+
const orderMediaSourceList = computed(() => [...mediaSourceList.value].sort((a: MediaSource, b: MediaSource) => a.layout.zOrder - b.layout.zOrder));
|
|
41
46
|
|
|
42
|
-
const isActiveMediaSourceTop = computed(() => activeMediaSource.value
|
|
43
|
-
const isActiveMediaSourceBottom = computed(() => activeMediaSource.value
|
|
47
|
+
const isActiveMediaSourceTop = computed(() => activeMediaSource.value?.id === orderMediaSourceList.value[0]?.id);
|
|
48
|
+
const isActiveMediaSourceBottom = computed(() => activeMediaSource.value?.id === orderMediaSourceList.value[orderMediaSourceList.value.length - 1]?.id);
|
|
44
49
|
|
|
45
50
|
const controlList = computed(() => [
|
|
46
51
|
{
|
|
@@ -1,37 +1,51 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
<div
|
|
3
|
+
ref="localMixerRef"
|
|
4
|
+
class="local-mixer-container"
|
|
5
|
+
>
|
|
6
|
+
<div
|
|
7
|
+
id="local-video-mixer"
|
|
8
|
+
class="local-mixer-content"
|
|
9
|
+
/>
|
|
10
|
+
<MixerControl
|
|
11
|
+
v-if="activeMediaSource"
|
|
12
|
+
ref="mixControlRef"
|
|
13
|
+
class="mixer-control"
|
|
14
|
+
:style="mixControlStyle"
|
|
15
|
+
/>
|
|
16
|
+
<div
|
|
17
|
+
v-if="mediaSourceList.length === 0"
|
|
18
|
+
class="local-mixer-placeholder"
|
|
19
|
+
>
|
|
8
20
|
<span class="placeholder-text">{{ t('No video') }}</span>
|
|
9
21
|
</div>
|
|
10
22
|
</div>
|
|
11
23
|
</template>
|
|
12
24
|
|
|
13
25
|
<script setup lang="ts">
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { useVideoMixerState } from '../../../states/VideoMixerState';
|
|
26
|
+
import type { Ref } from 'vue';
|
|
27
|
+
import { ref, onMounted, watch, onBeforeUnmount, computed, nextTick } from 'vue';
|
|
17
28
|
import TUIRoomEngine, {
|
|
18
29
|
TRTCVideoResolutionMode,
|
|
19
30
|
TRTCVideoRotation,
|
|
20
31
|
TUIVideoQuality,
|
|
21
32
|
} from '@tencentcloud/tuiroom-engine-js';
|
|
33
|
+
import { useUIKit } from '@tencentcloud/uikit-base-component-vue3';
|
|
34
|
+
import { useRoomEngine } from '../../../hooks/useRoomEngine';
|
|
22
35
|
import { useLiveState } from '../../../states/LiveState';
|
|
36
|
+
import { useVideoMixerState } from '../../../states/VideoMixerState';
|
|
23
37
|
import { LiveStatus, LiveOrientation } from '../../../types';
|
|
38
|
+
import { debounce } from '../../../utils/utils';
|
|
24
39
|
import MixerControl from './MixerControl.vue';
|
|
25
|
-
import { useUIKit } from '@tencentcloud/uikit-base-component-vue3';
|
|
26
40
|
|
|
27
41
|
const { t } = useUIKit();
|
|
28
42
|
|
|
29
43
|
const { currentLive } = useLiveState();
|
|
30
44
|
|
|
45
|
+
const mixControlRef = ref<InstanceType<typeof MixerControl> | null>(null);
|
|
31
46
|
const { publishVideoQuality, activeMediaSource, enableLocalVideoMixer, mediaSourceList } = useVideoMixerState();
|
|
32
47
|
enableLocalVideoMixer();
|
|
33
48
|
|
|
34
|
-
|
|
35
49
|
const currentLiveOrientation = computed(() => {
|
|
36
50
|
if (currentLive.value
|
|
37
51
|
&& currentLive.value?.layoutTemplate >= 200 && currentLive.value?.layoutTemplate <= 599) {
|
|
@@ -47,7 +61,7 @@ const localMixerRef = ref();
|
|
|
47
61
|
|
|
48
62
|
function getCanvasSize(
|
|
49
63
|
videoResolution: TUIVideoQuality,
|
|
50
|
-
resMode: TRTCVideoResolutionMode
|
|
64
|
+
resMode: TRTCVideoResolutionMode,
|
|
51
65
|
): { width: number; height: number } {
|
|
52
66
|
const sizeMap = {
|
|
53
67
|
[TUIVideoQuality.kVideoQuality_360p]: { width: 640, height: 360 },
|
|
@@ -62,28 +76,30 @@ function getCanvasSize(
|
|
|
62
76
|
return { width, height };
|
|
63
77
|
}
|
|
64
78
|
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
79
|
+
const mixControlStyle: Ref<{
|
|
80
|
+
transform: string;
|
|
81
|
+
position: string;
|
|
82
|
+
}> = ref({
|
|
83
|
+
position: 'absolute',
|
|
84
|
+
transform: 'translate(0px, 0px)',
|
|
70
85
|
});
|
|
71
86
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
87
|
+
let mixControlWidth: number;
|
|
88
|
+
let mixControlHeight: number;
|
|
89
|
+
// margin between control and media source
|
|
90
|
+
const CONTROL_MARGIN_WITH_MEDIA_SOURCE = 6;
|
|
76
91
|
|
|
77
92
|
function getMixControlStyle() {
|
|
78
93
|
if (!localMixerRef.value || !activeMediaSource.value) {
|
|
79
94
|
return;
|
|
80
95
|
}
|
|
96
|
+
|
|
81
97
|
const { width: canvasWidth, height: canvasHeight } = getCanvasSize(
|
|
82
98
|
publishVideoQuality.value,
|
|
83
|
-
currentLiveOrientation.value === LiveOrientation.Landscape ? TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape : TRTCVideoResolutionMode.TRTCVideoResolutionModePortrait
|
|
99
|
+
currentLiveOrientation.value === LiveOrientation.Landscape ? TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape : TRTCVideoResolutionMode.TRTCVideoResolutionModePortrait,
|
|
84
100
|
);
|
|
85
|
-
const { width:
|
|
86
|
-
const scale = Math.max(
|
|
101
|
+
const { width: viewportWidth, height: viewportHeight } = localMixerRef.value.getBoundingClientRect();
|
|
102
|
+
const scale = Math.max(viewportWidth / canvasWidth, viewportHeight / canvasHeight);
|
|
87
103
|
|
|
88
104
|
const previewWidth = canvasWidth * scale;
|
|
89
105
|
const previewHeight = canvasHeight * scale;
|
|
@@ -92,67 +108,130 @@ function getMixControlStyle() {
|
|
|
92
108
|
const mediaSourceWidth = right - left;
|
|
93
109
|
const mediaSourceHeight = bottom - top;
|
|
94
110
|
const rotation = activeMediaSource.value.layout.rotation || TRTCVideoRotation.TRTCVideoRotation0;
|
|
111
|
+
|
|
112
|
+
const mediaSourceTop = top * scale - (previewHeight - viewportHeight) / 2;
|
|
113
|
+
const mediaSourceLeft = left * scale - (previewWidth - viewportWidth) / 2;
|
|
114
|
+
let mediaSourceDisplayWidth;
|
|
115
|
+
let mediaSourceDisplayHeight;
|
|
116
|
+
|
|
95
117
|
if (rotation === TRTCVideoRotation.TRTCVideoRotation0 || rotation === TRTCVideoRotation.TRTCVideoRotation180) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
left: `${left * scale - (previewWidth - realWidth) / 2}px`,
|
|
99
|
-
width: `${mediaSourceWidth * scale}px`,
|
|
100
|
-
height: `${mediaSourceHeight * scale}px`,
|
|
101
|
-
};
|
|
118
|
+
mediaSourceDisplayWidth = mediaSourceWidth * scale;
|
|
119
|
+
mediaSourceDisplayHeight = mediaSourceHeight * scale;
|
|
102
120
|
} else {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
121
|
+
mediaSourceDisplayWidth = mediaSourceHeight * scale;
|
|
122
|
+
mediaSourceDisplayHeight = mediaSourceWidth * scale;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const controlPosition = calculateOptimalControlPosition(
|
|
126
|
+
mediaSourceLeft,
|
|
127
|
+
mediaSourceTop,
|
|
128
|
+
mediaSourceDisplayWidth,
|
|
129
|
+
mediaSourceDisplayHeight,
|
|
130
|
+
viewportWidth,
|
|
131
|
+
viewportHeight,
|
|
132
|
+
);
|
|
133
|
+
|
|
134
|
+
mixControlStyle.value = {
|
|
135
|
+
...controlPosition,
|
|
136
|
+
position: 'absolute',
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function calculateOptimalControlPosition(
|
|
141
|
+
mediaSourceLeft: number,
|
|
142
|
+
mediaSourceTop: number,
|
|
143
|
+
mediaSourceWidth: number,
|
|
144
|
+
mediaSourceHeight: number,
|
|
145
|
+
viewportWidth: number,
|
|
146
|
+
viewportHeight: number,
|
|
147
|
+
) {
|
|
148
|
+
// media source boundary
|
|
149
|
+
const mediaSourceBottom = mediaSourceTop + mediaSourceHeight;
|
|
150
|
+
const mediaSourceCenterX = mediaSourceLeft + mediaSourceWidth / 2;
|
|
151
|
+
|
|
152
|
+
// ideal position
|
|
153
|
+
let controlLeft = mediaSourceCenterX - mixControlWidth / 2;
|
|
154
|
+
let controlTop = mediaSourceTop - CONTROL_MARGIN_WITH_MEDIA_SOURCE - mixControlHeight;
|
|
155
|
+
|
|
156
|
+
// horizontal boundary detection and adjustment
|
|
157
|
+
if (controlLeft < 0) {
|
|
158
|
+
controlLeft = 0;
|
|
159
|
+
} else if (controlLeft + mixControlWidth > viewportWidth) {
|
|
160
|
+
controlLeft = viewportWidth - mixControlWidth;
|
|
109
161
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
162
|
+
|
|
163
|
+
// vertical boundary detection and adjustment
|
|
164
|
+
// check if there is enough space to display the control above
|
|
165
|
+
const topSpaceAvailable = mediaSourceTop;
|
|
166
|
+
const bottomSpaceAvailable = viewportHeight - mediaSourceBottom;
|
|
167
|
+
|
|
168
|
+
if (controlTop >= 0 && topSpaceAvailable >= mixControlHeight + CONTROL_MARGIN_WITH_MEDIA_SOURCE) {
|
|
169
|
+
// top space is enough, keep it above
|
|
170
|
+
controlTop = Math.min(controlTop, viewportHeight - mixControlHeight);
|
|
171
|
+
} else if (bottomSpaceAvailable >= mixControlHeight + CONTROL_MARGIN_WITH_MEDIA_SOURCE) {
|
|
172
|
+
// top space is not enough, but bottom space is enough, move to bottom
|
|
173
|
+
controlTop = Math.max(0, mediaSourceBottom + CONTROL_MARGIN_WITH_MEDIA_SOURCE);
|
|
115
174
|
} else {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
transform: 'translate(-50%, -100%)',
|
|
119
|
-
};
|
|
175
|
+
// top space is not enough, but bottom space is not enough, move to top
|
|
176
|
+
controlTop = Math.max(0, mediaSourceTop - mixControlHeight - CONTROL_MARGIN_WITH_MEDIA_SOURCE);
|
|
120
177
|
}
|
|
178
|
+
|
|
179
|
+
return {
|
|
180
|
+
transform: `translate(${controlLeft}px, ${controlTop}px)`,
|
|
181
|
+
};
|
|
121
182
|
}
|
|
122
183
|
|
|
184
|
+
const debouncedGetMixControlStyle = debounce(getMixControlStyle, 16);
|
|
185
|
+
|
|
186
|
+
watch(() => activeMediaSource.value, async (newVal, oldVal) => {
|
|
187
|
+
if (!oldVal && newVal) {
|
|
188
|
+
await nextTick();
|
|
189
|
+
const mixControlElement = mixControlRef.value?.$el as HTMLElement;
|
|
190
|
+
const { width, height } = mixControlElement?.getBoundingClientRect() || { width: 0, height: 0 };
|
|
191
|
+
mixControlWidth = width;
|
|
192
|
+
mixControlHeight = height;
|
|
193
|
+
}
|
|
194
|
+
getMixControlStyle();
|
|
195
|
+
}, { immediate: true, deep: true });
|
|
196
|
+
|
|
123
197
|
watch(
|
|
124
|
-
() => [publishVideoQuality.value, currentLiveOrientation.value
|
|
125
|
-
([newVideoQuality, newOrientation
|
|
126
|
-
if (!newVideoQuality || !newOrientation
|
|
198
|
+
() => [publishVideoQuality.value, currentLiveOrientation.value],
|
|
199
|
+
([newVideoQuality, newOrientation]) => {
|
|
200
|
+
if (!newVideoQuality || !newOrientation) {
|
|
127
201
|
return;
|
|
128
202
|
}
|
|
129
203
|
getMixControlStyle();
|
|
130
204
|
},
|
|
131
|
-
{ immediate: true, deep: true }
|
|
205
|
+
{ immediate: true, deep: true },
|
|
132
206
|
);
|
|
133
207
|
|
|
134
208
|
const re = new ResizeObserver(() => {
|
|
135
|
-
|
|
209
|
+
debouncedGetMixControlStyle();
|
|
136
210
|
});
|
|
137
211
|
|
|
138
212
|
onMounted(() => {
|
|
139
213
|
re.observe(localMixerRef.value);
|
|
140
214
|
TUIRoomEngine.once('ready', async () => {
|
|
141
215
|
const mediaSourceManager = roomEngine.instance?.getTRTCCloud().getMediaMixingManager();
|
|
142
|
-
await mediaSourceManager.
|
|
216
|
+
await mediaSourceManager.bindPreviewArea(document.getElementById('local-video-mixer') as HTMLElement);
|
|
143
217
|
getMixControlStyle();
|
|
144
218
|
});
|
|
145
219
|
|
|
146
|
-
watch(localLiveStatus, async newVal => {
|
|
220
|
+
watch(localLiveStatus, async (newVal) => {
|
|
221
|
+
const mediaSourceManager = roomEngine.instance?.getTRTCCloud().getMediaMixingManager();
|
|
147
222
|
if (newVal === LiveStatus.Live) {
|
|
148
|
-
const mediaSourceManager = roomEngine.instance?.getTRTCCloud().getMediaMixingManager();
|
|
149
223
|
await mediaSourceManager?.startPublish();
|
|
150
224
|
}
|
|
225
|
+
if (newVal === LiveStatus.IDLE) {
|
|
226
|
+
await mediaSourceManager?.stopPublish();
|
|
227
|
+
}
|
|
151
228
|
});
|
|
152
229
|
});
|
|
153
230
|
|
|
154
|
-
|
|
231
|
+
onBeforeUnmount(async () => {
|
|
155
232
|
re.unobserve(localMixerRef.value);
|
|
233
|
+
const mediaSourceManager = roomEngine.instance?.getTRTCCloud().getMediaMixingManager();
|
|
234
|
+
await mediaSourceManager?.destroy();
|
|
156
235
|
});
|
|
157
236
|
</script>
|
|
158
237
|
|
|
@@ -169,14 +248,13 @@ onUnmounted(() => {
|
|
|
169
248
|
width: 100%;
|
|
170
249
|
height: 100%;
|
|
171
250
|
}
|
|
172
|
-
.mixer-control
|
|
251
|
+
.mixer-control {
|
|
173
252
|
position: absolute;
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
left: 50%;
|
|
178
|
-
}
|
|
253
|
+
top: 0;
|
|
254
|
+
left: 0;
|
|
255
|
+
transition: transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
|
|
179
256
|
}
|
|
257
|
+
|
|
180
258
|
.local-mixer-placeholder {
|
|
181
259
|
position: absolute;
|
|
182
260
|
top: 0;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<live-
|
|
2
|
+
<live-core-view :ignore-local-video="true">
|
|
3
3
|
<template #localVideo="{ style }">
|
|
4
4
|
<local-mixer :style="style" />
|
|
5
5
|
</template>
|
|
6
|
-
</live-
|
|
6
|
+
</live-core-view>
|
|
7
7
|
</template>
|
|
8
8
|
|
|
9
9
|
<script setup lang="ts">
|
|
10
|
+
import { LiveCoreView } from '../LiveCoreView';
|
|
10
11
|
import LocalMixer from './LocalMixer/index.vue';
|
|
11
|
-
import { LiveStreamView } from '../LiveStreamView';
|
|
12
12
|
</script>
|
|
13
13
|
|
|
14
14
|
<style scoped lang="scss"></style>
|
|
@@ -250,7 +250,7 @@ export class MediaManager {
|
|
|
250
250
|
if (streamType === TUIVideoStreamType.kCameraStream) {
|
|
251
251
|
if (isVideoMixerEnabled.value) {
|
|
252
252
|
const mediaSourceManager = roomEngine.instance?.getTRTCCloud().getMediaMixingManager();
|
|
253
|
-
mediaSourceManager.
|
|
253
|
+
mediaSourceManager.bindPreviewArea(document.getElementById(viewIdList[0]) as HTMLElement);
|
|
254
254
|
// const publishParams = {
|
|
255
255
|
// videoEncoderParams: {
|
|
256
256
|
// videoResolution: TRTCVideoResolution.TRTCVideoResolution_1280_720,
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
</div>
|
|
22
22
|
<ListMode
|
|
23
23
|
v-else-if="!isTreeMode"
|
|
24
|
-
:data-source="searchManager.filteredData.value as
|
|
24
|
+
:data-source="searchManager.filteredData.value as UserPickerRow<any>[]"
|
|
25
25
|
:selected-keys="selectionManager.selectedKeys.value"
|
|
26
26
|
:locked-keys="selectionManager.lockedKeys.value"
|
|
27
27
|
:on-item-click="selectionManager.toggle"
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
/>
|
|
31
31
|
<TreeMode
|
|
32
32
|
v-else
|
|
33
|
-
:data-source="searchManager.filteredData.value as
|
|
33
|
+
:data-source="searchManager.filteredData.value as UserPickerNode<any>[]"
|
|
34
34
|
:selected-keys="selectionManager.selectedKeys.value"
|
|
35
35
|
:half-selected-keys="selectionManager.halfSelectedKeys.value"
|
|
36
36
|
:locked-keys="selectionManager.lockedKeys.value"
|
|
@@ -64,10 +64,7 @@ import TreeMode from './components/TreeMode';
|
|
|
64
64
|
import { useSearchFilter } from './hooks/useSearchFilter';
|
|
65
65
|
import { useSelection } from './hooks/useSelection';
|
|
66
66
|
import { useTreeState } from './hooks/useTreeState';
|
|
67
|
-
import type {
|
|
68
|
-
|
|
69
|
-
// Define type for props (without generics for Vue3 compatibility)
|
|
70
|
-
type UserPickerProps = IUserPickerProps<any>;
|
|
67
|
+
import type { UserPickerProps, UserPickerRef, UserPickerNode, UserPickerRow } from './type';
|
|
71
68
|
|
|
72
69
|
const props = withDefaults(defineProps<UserPickerProps>(), {
|
|
73
70
|
dataSource: () => [],
|
|
@@ -129,7 +126,7 @@ watch(
|
|
|
129
126
|
);
|
|
130
127
|
|
|
131
128
|
// Generic node update function - can update any properties of a node
|
|
132
|
-
const updateNodeByKey = (nodeKey: string, partialNode: Partial<
|
|
129
|
+
const updateNodeByKey = (nodeKey: string, partialNode: Partial<UserPickerNode<any>>) => {
|
|
133
130
|
if (!isTreeMode.value) {
|
|
134
131
|
return;
|
|
135
132
|
}
|
|
@@ -187,7 +184,7 @@ const updateNodeByKey = (nodeKey: string, partialNode: Partial<IUserPickerNode<a
|
|
|
187
184
|
};
|
|
188
185
|
|
|
189
186
|
// Implement methods exposed by ref
|
|
190
|
-
const refMethods:
|
|
187
|
+
const refMethods: UserPickerRef<any> = {
|
|
191
188
|
getSelectedItems: () => selectionManager.getSelectedItems(),
|
|
192
189
|
updateListData: (newDataSource: any[]) => {
|
|
193
190
|
// Update list data
|
|
@@ -195,7 +192,7 @@ const refMethods: IUserPickerRef<any> = {
|
|
|
195
192
|
internalDataSource.value = newDataSource;
|
|
196
193
|
}
|
|
197
194
|
},
|
|
198
|
-
updateTreeData: (nodeKey: string, partialNode: Partial<
|
|
195
|
+
updateTreeData: (nodeKey: string, partialNode: Partial<UserPickerNode<any>>) => {
|
|
199
196
|
// Use generic update function
|
|
200
197
|
updateNodeByKey(nodeKey, partialNode);
|
|
201
198
|
},
|
|
@@ -27,10 +27,7 @@
|
|
|
27
27
|
<!-- Checkbox -->
|
|
28
28
|
<div :class="$style['list__checkbox-wrapper']">
|
|
29
29
|
<div :class="[$style.list__checkbox, { [$style['list__checkbox--checked']]: isSelected(item.key) }]">
|
|
30
|
-
<IconCheckSm
|
|
31
|
-
v-if="isSelected(item.key)"
|
|
32
|
-
name="check"
|
|
33
|
-
/>
|
|
30
|
+
<IconCheckSm v-if="isSelected(item.key)" />
|
|
34
31
|
</div>
|
|
35
32
|
</div>
|
|
36
33
|
|
|
@@ -61,10 +58,10 @@
|
|
|
61
58
|
import { defineProps } from 'vue';
|
|
62
59
|
import { useUIKit, IconCheckSm } from '@tencentcloud/uikit-base-component-vue3';
|
|
63
60
|
import { Avatar } from '../../../Avatar';
|
|
64
|
-
import type {
|
|
61
|
+
import type { UserPickerRow } from '../../type';
|
|
65
62
|
|
|
66
63
|
interface ListModeProps<T = unknown> {
|
|
67
|
-
dataSource:
|
|
64
|
+
dataSource: UserPickerRow<T>[];
|
|
68
65
|
selectedKeys: Set<string>;
|
|
69
66
|
lockedKeys: Set<string>;
|
|
70
67
|
onItemClick: (key: string) => void;
|
|
@@ -150,7 +147,6 @@ const handleScroll = (e: Event) => {
|
|
|
150
147
|
align-items: center;
|
|
151
148
|
justify-content: center;
|
|
152
149
|
transition: all 0.3s;
|
|
153
|
-
color: #fff;
|
|
154
150
|
border: 2px solid #d9d9d9;
|
|
155
151
|
|
|
156
152
|
&--checked {
|
|
@@ -48,13 +48,13 @@
|
|
|
48
48
|
import { defineProps, computed, withDefaults } from 'vue';
|
|
49
49
|
import { IconClose, useUIKit } from '@tencentcloud/uikit-base-component-vue3';
|
|
50
50
|
import { Avatar } from '../../../Avatar';
|
|
51
|
-
import type {
|
|
51
|
+
import type { UserPickerResult } from '../../type';
|
|
52
52
|
|
|
53
53
|
const { t } = useUIKit();
|
|
54
54
|
|
|
55
55
|
interface SelectedPanelProps {
|
|
56
56
|
displayMode: 'list' | 'tree';
|
|
57
|
-
selectedItems:
|
|
57
|
+
selectedItems: UserPickerResult;
|
|
58
58
|
lockedKeys: Set<string>;
|
|
59
59
|
onRemove: (key: string) => void;
|
|
60
60
|
maxCount?: number;
|
|
@@ -21,17 +21,17 @@
|
|
|
21
21
|
<script setup lang="ts">
|
|
22
22
|
import { defineProps } from 'vue';
|
|
23
23
|
import TreeNode from './TreeNode.vue';
|
|
24
|
-
import type {
|
|
24
|
+
import type { UserPickerNode } from '../../type';
|
|
25
25
|
|
|
26
26
|
interface TreeModeProps<T = unknown> {
|
|
27
|
-
dataSource:
|
|
27
|
+
dataSource: UserPickerNode<T>[];
|
|
28
28
|
selectedKeys: Set<string>;
|
|
29
29
|
halfSelectedKeys: Set<string>;
|
|
30
30
|
lockedKeys: Set<string>;
|
|
31
31
|
expandedKeys: Set<string>;
|
|
32
32
|
loadingKeys: Set<string>;
|
|
33
33
|
onItemClick: (key: string) => void;
|
|
34
|
-
onExpand: (node:
|
|
34
|
+
onExpand: (node: UserPickerNode<T>) => void;
|
|
35
35
|
renderItem?: any; // Vue component or render function
|
|
36
36
|
}
|
|
37
37
|
|
|
@@ -88,10 +88,10 @@
|
|
|
88
88
|
import { defineProps, defineEmits, computed } from 'vue';
|
|
89
89
|
import { IconArrowDown, IconCheckSm, IconLoading } from '@tencentcloud/uikit-base-component-vue3';
|
|
90
90
|
import { Avatar } from '../../../Avatar';
|
|
91
|
-
import type {
|
|
91
|
+
import type { UserPickerNode } from '../../type';
|
|
92
92
|
|
|
93
93
|
interface TreeNodeProps<T = unknown> {
|
|
94
|
-
node:
|
|
94
|
+
node: UserPickerNode<T>;
|
|
95
95
|
level: number;
|
|
96
96
|
selectedKeys: Set<string>;
|
|
97
97
|
halfSelectedKeys: Set<string>;
|
|
@@ -105,7 +105,7 @@ const props = defineProps<TreeNodeProps>();
|
|
|
105
105
|
|
|
106
106
|
const emit = defineEmits<{
|
|
107
107
|
'item-click': [key: string];
|
|
108
|
-
expand: [node:
|
|
108
|
+
expand: [node: UserPickerNode<any>];
|
|
109
109
|
}>();
|
|
110
110
|
|
|
111
111
|
const isSelected = computed(() => props.selectedKeys.has(props.node.key));
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { ref, computed
|
|
2
|
-
import type {
|
|
1
|
+
import { ref, computed } from 'vue';
|
|
2
|
+
import type { Ref } from 'vue';
|
|
3
|
+
import type { UserPickerDataSource, UserPickerNode, UserPickerRow } from '../type';
|
|
3
4
|
|
|
4
5
|
interface UseSearchFilterOptions<T = unknown> {
|
|
5
|
-
dataSource: Ref<
|
|
6
|
+
dataSource: Ref<UserPickerDataSource<T>>;
|
|
6
7
|
isTreeMode?: boolean;
|
|
7
8
|
onSearch?: (value: string) => void;
|
|
8
9
|
debounceTime?: number;
|
|
@@ -11,7 +12,7 @@ interface UseSearchFilterOptions<T = unknown> {
|
|
|
11
12
|
interface UseSearchFilterReturn<T = unknown> {
|
|
12
13
|
searchValue: Ref<string>;
|
|
13
14
|
setSearchValue: (value: string) => void;
|
|
14
|
-
filteredData: Ref<
|
|
15
|
+
filteredData: Ref<UserPickerDataSource<T>>;
|
|
15
16
|
isSearching: Ref<boolean>;
|
|
16
17
|
handleSearch: (value: string) => void;
|
|
17
18
|
clearSearch: () => void;
|
|
@@ -19,7 +20,7 @@ interface UseSearchFilterReturn<T = unknown> {
|
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
// Check if it's tree data structure
|
|
22
|
-
function isTreeDataSource<T>(data:
|
|
23
|
+
function isTreeDataSource<T>(data: UserPickerDataSource<T>): data is Array<UserPickerNode<T>> {
|
|
23
24
|
if (data.length === 0) {
|
|
24
25
|
return false;
|
|
25
26
|
}
|
|
@@ -27,22 +28,22 @@ function isTreeDataSource<T>(data: IUserPickerDataSource<T>): data is Array<IUse
|
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
// Search tree structure
|
|
30
|
-
function searchTreeNodes<T>(nodes: Array<
|
|
31
|
+
function searchTreeNodes<T>(nodes: Array<UserPickerNode<T>>, searchValue: string): Array<UserPickerNode<T>> {
|
|
31
32
|
if (!searchValue.trim()) {
|
|
32
33
|
return nodes;
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
// Helper function: check if node matches
|
|
36
|
-
const isNodeMatched = (node:
|
|
37
|
+
const isNodeMatched = (node: UserPickerNode<T>): boolean =>
|
|
37
38
|
node.label.toLowerCase().includes(searchValue.toLowerCase());
|
|
38
39
|
|
|
39
40
|
// Helper function: recursively search nodes
|
|
40
|
-
const searchNodes = (nodesList: Array<
|
|
41
|
-
const matchedNodes: Array<
|
|
41
|
+
const searchNodes = (nodesList: Array<UserPickerNode<T>>): Array<UserPickerNode<T>> => {
|
|
42
|
+
const matchedNodes: Array<UserPickerNode<T>> = [];
|
|
42
43
|
|
|
43
44
|
nodesList.forEach(node => {
|
|
44
45
|
const isMatched = isNodeMatched(node);
|
|
45
|
-
let matchedChildren: Array<
|
|
46
|
+
let matchedChildren: Array<UserPickerNode<T>> = [];
|
|
46
47
|
|
|
47
48
|
if (node.children && node.children.length) {
|
|
48
49
|
matchedChildren = searchNodes(node.children);
|
|
@@ -53,7 +54,7 @@ function searchTreeNodes<T>(nodes: Array<IUserPickerNode<T>>, searchValue: strin
|
|
|
53
54
|
matchedNodes.push({
|
|
54
55
|
...node,
|
|
55
56
|
children: matchedChildren.length > 0 ? matchedChildren : node.children,
|
|
56
|
-
} as
|
|
57
|
+
} as UserPickerNode<T>);
|
|
57
58
|
}
|
|
58
59
|
});
|
|
59
60
|
|
|
@@ -64,7 +65,7 @@ function searchTreeNodes<T>(nodes: Array<IUserPickerNode<T>>, searchValue: strin
|
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
// Search list structure
|
|
67
|
-
function searchListItems<T>(items: Array<
|
|
68
|
+
function searchListItems<T>(items: Array<UserPickerRow<T>>, searchValue: string): Array<UserPickerRow<T>> {
|
|
68
69
|
if (!searchValue.trim()) {
|
|
69
70
|
return items;
|
|
70
71
|
}
|
|
@@ -89,9 +90,9 @@ export function useSearchFilter<T = unknown>({
|
|
|
89
90
|
}
|
|
90
91
|
|
|
91
92
|
if (isTreeMode && isTreeDataSource(dataSource.value)) {
|
|
92
|
-
return searchTreeNodes(dataSource.value as Array<
|
|
93
|
+
return searchTreeNodes(dataSource.value as Array<UserPickerNode<T>>, searchValue.value);
|
|
93
94
|
}
|
|
94
|
-
return searchListItems(dataSource.value as Array<
|
|
95
|
+
return searchListItems(dataSource.value as Array<UserPickerRow<T>>, searchValue.value);
|
|
95
96
|
});
|
|
96
97
|
|
|
97
98
|
// Handle search input
|