@tencentcloud/chat-uikit-engine-lite 1.0.3 → 1.0.4
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/index.js +1 -1
- package/package.json +2 -2
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"@tencentcloud/lite-chat/basic";import t from"@tencentcloud/lite-chat/plugins/conversation";import s from"@tencentcloud/lite-chat/plugins/group";import i from"@tencentcloud/lite-chat/plugins/avchatroom";import n from"@tencentcloud/lite-chat/plugins/message-enhancer";import a from"@tencentcloud/lite-chat/plugins/rich-media-message";import r from"@tencentcloud/lite-chat/plugins/cloud-search";import o from"@tencentcloud/lite-chat/plugins/signaling";import g from"@tencentcloud/lite-chat/plugins/friend";import c from"@tencentcloud/lite-chat/plugins/conversation-group";function h(e,t){var s={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(s[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(s[i[n]]=e[i[n]])}return s}function u(e,t,s,i){return new(s||(s=Promise))(function(n,a){function r(e){try{g(i.next(e))}catch(e){a(e)}}function o(e){try{g(i.throw(e))}catch(e){a(e)}}function g(e){var t;e.done?n(e.value):(t=e.value,t instanceof s?t:new s(function(e){e(t)})).then(r,o)}g((i=i.apply(e,t||[])).next())})}"function"==typeof SuppressedError&&SuppressedError;class d{constructor(e){return d.instance||(d.instance=this,this.engine=e,this.events={},this.bindIMEvents()),d.instance}addEvent(e,t){this.events[e]||(this.events[e]=new Map),this.events[e].set(t,1)}removeEvents(){Object.keys(this.events).forEach(e=>{this.events[e].clear()}),this.events={}}dispatch(e,t){if(this.events[e])for(const s of this.events[e].keys())s.call(this,t)}bindIMEvents(){this.engine.chat.on(this.engine.EVENT.SDK_READY,this.onSDKReady,this),this.engine.chat.on(this.engine.EVENT.SDK_NOT_READY,this.onSDKNotReady,this),this.engine.chat.on(this.engine.EVENT.KICKED_OUT,this.onKickedOut,this),this.engine.chat.on(this.engine.EVENT.NET_STATE_CHANGE,this.onNetStateChange,this),this.engine.chat.on(this.engine.EVENT.MESSAGE_RECEIVED,this.onReceiveMessage,this),this.engine.chat.on(this.engine.EVENT.MESSAGE_MODIFIED,this.onMessageModified,this),this.engine.chat.on(this.engine.EVENT.MESSAGE_REVOKED,this.onMessageRevoked,this),this.engine.chat.on(this.engine.EVENT.MESSAGE_READ_BY_PEER,this.onMessageReadByPeer,this),this.engine.chat.on(this.engine.EVENT.MESSAGE_READ_RECEIPT_RECEIVED,this.onMessageReadReceiptReceived,this),this.engine.chat.on(this.engine.EVENT.MESSAGE_REACTIONS_UPDATED,this.onMessageReactionsUpdated,this),this.engine.chat.on(this.engine.EVENT.CONVERSATION_LIST_UPDATED,this.onConversationListUpdated,this),this.engine.chat.on(this.engine.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED,this.onTotalMessageCountUpdated,this),this.engine.chat.on(this.engine.EVENT.PROFILE_UPDATED,this.onProfileUpdated,this),this.engine.chat.on(this.engine.EVENT.BLACKLIST_UPDATED,this.onBlacklistUpdated,this),this.engine.chat.on(this.engine.EVENT.USER_STATUS_UPDATED,this.onUserStatusUpdated,this),this.engine.chat.on(this.engine.EVENT.GROUP_LIST_UPDATED,this.onGroupListUpdated,this),this.engine.chat.on(this.engine.EVENT.GROUP_ATTRIBUTES_UPDATED,this.onGroupAttributesUpdated,this),this.engine.chat.on(this.engine.EVENT.GROUP_COUNTER_UPDATED,this.onGroupCounterUpdated,this),this.engine.chat.on(this.engine.EVENT.FRIEND_LIST_UPDATED,this.onFriendListUpdated,this),this.engine.chat.on(this.engine.EVENT.FRIEND_APPLICATION_LIST_UPDATED,this.onFriendApplicationListUpdated,this),this.engine.chat.on(this.engine.EVENT.FRIEND_GROUP_LIST_UPDATED,this.onFriendGroupListUpdated,this)}unbindIMEvents(){this.engine.chat.off(this.engine.EVENT.SDK_READY,this.onSDKReady,this),this.engine.chat.off(this.engine.EVENT.SDK_NOT_READY,this.onSDKNotReady,this),this.engine.chat.off(this.engine.EVENT.KICKED_OUT,this.onKickedOut,this),this.engine.chat.off(this.engine.EVENT.NET_STATE_CHANGE,this.onNetStateChange,this),this.engine.chat.off(this.engine.EVENT.MESSAGE_RECEIVED,this.onReceiveMessage,this),this.engine.chat.off(this.engine.EVENT.MESSAGE_MODIFIED,this.onMessageModified,this),this.engine.chat.off(this.engine.EVENT.MESSAGE_REVOKED,this.onMessageRevoked,this),this.engine.chat.off(this.engine.EVENT.MESSAGE_READ_BY_PEER,this.onMessageReadByPeer,this),this.engine.chat.off(this.engine.EVENT.MESSAGE_READ_RECEIPT_RECEIVED,this.onMessageReadReceiptReceived,this),this.engine.chat.off(this.engine.EVENT.MESSAGE_REACTIONS_UPDATED,this.onMessageReactionsUpdated,this),this.engine.chat.off(this.engine.EVENT.CONVERSATION_LIST_UPDATED,this.onConversationListUpdated,this),this.engine.chat.off(this.engine.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED,this.onTotalMessageCountUpdated,this),this.engine.chat.off(this.engine.EVENT.PROFILE_UPDATED,this.onProfileUpdated,this),this.engine.chat.off(this.engine.EVENT.BLACKLIST_UPDATED,this.onBlacklistUpdated,this),this.engine.chat.off(this.engine.EVENT.USER_STATUS_UPDATED,this.onUserStatusUpdated,this),this.engine.chat.off(this.engine.EVENT.GROUP_LIST_UPDATED,this.onGroupListUpdated,this),this.engine.chat.off(this.engine.EVENT.GROUP_ATTRIBUTES_UPDATED,this.onGroupAttributesUpdated,this),this.engine.chat.off(this.engine.EVENT.GROUP_COUNTER_UPDATED,this.onGroupCounterUpdated,this),this.engine.chat.off(this.engine.EVENT.FRIEND_LIST_UPDATED,this.onFriendListUpdated,this),this.engine.chat.off(this.engine.EVENT.FRIEND_APPLICATION_LIST_UPDATED,this.onFriendApplicationListUpdated,this),this.engine.chat.off(this.engine.EVENT.FRIEND_GROUP_LIST_UPDATED,this.onFriendGroupListUpdated,this),d.instance=null}onSDKReady(e){this.dispatch(this.engine.EVENT.SDK_READY,e.data)}onSDKNotReady(e){this.dispatch(this.engine.EVENT.SDK_NOT_READY,e.data)}onKickedOut(e){this.dispatch(this.engine.EVENT.KICKED_OUT,e.data)}onNetStateChange(e){this.dispatch(this.engine.EVENT.NET_STATE_CHANGE,e.data)}onReceiveMessage(e){this.dispatch(this.engine.EVENT.MESSAGE_RECEIVED,e.data)}onMessageModified(e){this.dispatch(this.engine.EVENT.MESSAGE_MODIFIED,e.data)}onMessageRevoked(e){this.dispatch(this.engine.EVENT.MESSAGE_REVOKED,e.data)}onMessageReadByPeer(e){this.dispatch(this.engine.EVENT.MESSAGE_READ_BY_PEER,e.data)}onMessageReadReceiptReceived(e){this.dispatch(this.engine.EVENT.MESSAGE_READ_RECEIPT_RECEIVED,e.data)}onMessageReactionsUpdated(e){this.dispatch(this.engine.EVENT.MESSAGE_REACTIONS_UPDATED,e.data)}onConversationListUpdated(e){this.dispatch(this.engine.EVENT.CONVERSATION_LIST_UPDATED,e.data)}onTotalMessageCountUpdated(e){this.dispatch(this.engine.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED,e.data)}onProfileUpdated(e){this.dispatch(this.engine.EVENT.PROFILE_UPDATED,e.data)}onBlacklistUpdated(e){this.dispatch(this.engine.EVENT.BLACKLIST_UPDATED,e.data)}onUserStatusUpdated(e){this.dispatch(this.engine.EVENT.USER_STATUS_UPDATED,e.data)}onGroupListUpdated(e){this.dispatch(this.engine.EVENT.GROUP_LIST_UPDATED,e.data)}onGroupAttributesUpdated(e){this.dispatch(this.engine.EVENT.GROUP_ATTRIBUTES_UPDATED,e.data)}onGroupCounterUpdated(e){this.dispatch(this.engine.EVENT.GROUP_COUNTER_UPDATED,e.data)}onFriendListUpdated(e){this.dispatch(this.engine.EVENT.FRIEND_LIST_UPDATED,e.data)}onFriendApplicationListUpdated(e){this.dispatch(this.engine.EVENT.FRIEND_APPLICATION_LIST_UPDATED,e.data)}onFriendGroupListUpdated(e){this.dispatch(this.engine.EVENT.FRIEND_GROUP_LIST_UPDATED,e.data)}}var l,p,T,E,I,m,S,U,M;!function(e){e.TUIStore="TUIStore",e.TUITranslate="TUITranslate",e.TUIConversation="TUIConversation",e.TUIChat="TUIChat",e.TUIGroup="TUIGroup",e.TUIUser="TUIUser",e.TUIFriend="TUIFriend",e.TUIReport="TUIReport",e.TUISearch="TUISearch"}(l||(l={})),function(e){e.APP="application",e.CONV="conversation",e.CHAT="chat",e.GRP="group",e.USER="user",e.FRIEND="friend",e.SEARCH="search",e.CUSTOM="custom"}(p||(p={})),function(e){e[e.UNSUB_USER=-1]="UNSUB_USER"}(T||(T={})),function(e){e.BUSINESS_ID="user_typing_status",e[e.STATUS_START=1]="STATUS_START",e[e.STATUS_END=0]="STATUS_END",e[e.VERSION=1]="VERSION",e[e.ACTION_START_ID=14]="ACTION_START_ID",e[e.ACTION_END_ID=0]="ACTION_END_ID",e.ACTION_START="EIMAMSG_InputStatus_Ing",e.ACTION_END="EIMAMSG_InputStatus_End",e[e.NEED_TYPING=1]="NEED_TYPING"}(E||(E={})),function(e){e.ADD="add",e.REMOVE="remove"}(I||(I={})),function(e){e[e.MSG_MODIFY_CONFLICT=2480]="MSG_MODIFY_CONFLICT",e[e.MSG_MODIFY_DISABLED_IN_AVCHATROOM=2481]="MSG_MODIFY_DISABLED_IN_AVCHATROOM",e[e.MODIFY_MESSAGE_NOT_EXIST=20026]="MODIFY_MESSAGE_NOT_EXIST"}(m||(m={})),function(e){e[e.NOT_INIT=-1e5]="NOT_INIT",e[e.INVALID_CONV_ID=-100001]="INVALID_CONV_ID",e[e.CONV_ID_SAME=-100002]="CONV_ID_SAME",e[e.CONV_NOT_EXIST=-100003]="CONV_NOT_EXIST",e[e.GET_MSG_LIST_ERROR=-100004]="GET_MSG_LIST_ERROR",e[e.MISMATCH_TYPE_AND_PAYLOAD=-100005]="MISMATCH_TYPE_AND_PAYLOAD"}(S||(S={})),function(e){e.MSG_MODIFY_CONFLICT="MODIFY_MESSAGE_ERROR,修改消息发生冲突, data.message 是最新的消息",e.MSG_MODIFY_DISABLED_IN_AVCHATROOM="MODIFY_MESSAGE_ERROR,不支持修改直播群消息.",e.MODIFY_MESSAGE_NOT_EXIST="MODIFY_MESSAGE_ERROR,消息不存在."}(U||(U={})),function(e){e.NOT_INIT="TUIChatEngine 初始化未完成,请确认 TUIChatEngine.login 接口调用是否正常。",e.INVALID_CONV_ID="会话 ID 无效",e.CONV_ID_SAME="您切换的是同一个会话 ID",e.CONV_NOT_EXIST="会话不存在",e.GET_MSG_LIST_ERROR="Chat SDK is not ready.",e.MISMATCH_TYPE_AND_PAYLOAD="type 与 payload 不匹配."}(M||(M={}));const f={logout:1,destroy:1},_={deleteConversation:1,pinConversation:1,muteConversation:1,switchConversation:1,getConversationProfile:1,clearHistoryMessage:1,setMessageRead:1,markConversation:1},C={modifyMessage:1,revokeMessage:1,resendMessage:1,deleteMessage:1,quoteMessage:1,replyMessage:1,setMessageExtensions:1,deleteMessageExtensions:1,getMessageExtensions:1,sendTextMessage:1,sendTextAtMessage:1,sendImageMessage:1,sendAudioMessage:1,sendVideoMessage:1,sendFileMessage:1,sendCustomMessage:1,sendFaceMessage:1,sendLocationMessage:1,sendForwardMessage:1,enterTypingState:1,leaveTypingState:1,sendMessageReadReceipt:1,getGroupMessageReadMemberList:1,getMessageList:1,downloadMergedMessages:1,setTranslationLanguage:1,translateText:1,searchCloudMessages:1,addMessageReaction:1,removeMessageReaction:1,getMessageReactions:1,getAllUserListOfMessageReaction:1},v={switchGroup:1,getGroupProfile:1,updateGroupProfile:1,createGroup:1,dismissGroup:1,searchGroupByID:1,joinGroup:1,quitGroup:1,getGroupApplicationList:1,handleGroupApplication:1,getGroupOnlineMemberCount:1,changeGroupOwner:1,initGroupAttributes:1,setGroupAttributes:1,deleteGroupAttributes:1,getGroupAttributes:1,setGroupCounters:1,increaseGroupCounter:1,decreaseGroupCounter:1,getGroupCounters:1,getGroupMemberList:1,getGroupMemberProfile:1,addGroupMember:1,deleteGroupMember:1,setGroupMemberMuteTime:1,setGroupMemberRole:1,setGroupMemberNameCard:1,setGroupMemberCustomField:1,markGroupMemberList:1},D={switchUserStatus:1,switchMessageReadStatus:1,getUserProfile:1,updateMyProfile:1,addToBlacklist:1,removeFromBlacklist:1},R={getFriendList:1,addFriend:1,deleteFriend:1,checkFriend:1,getFriendProfile:1,updateFriend:1,acceptFriendApplication:1,refuseFriendApplication:1,deleteFriendApplication:1,setFriendApplicationRead:1},y=function(e){return void 0===e},P=function(e){return e.startsWith("_")},O=function(e){return/^(https?:\/\/(([a-zA-Z0-9]+-?)+[a-zA-Z0-9]+\.)+[a-zA-Z]+)(:\d+)?(\/.*)?(\?.*)?(#.*)?$/.test(e)};const A=function(e){return e&&function(e){if("string"==typeof e)try{return!!JSON.parse(e)}catch(e){return!1}return!1}(e)?JSON.parse(e):e},G=function(e){let t="";return t=e>=1048576?`${(e/1048576).toFixed(2)} Mb`:e>=1024?`${(e/1024).toFixed(2)} Kb`:`${e.toFixed(2)}B`,t},b="https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_16.png",L="https://web.sdk.qcloud.com/im/demo/TUIkit/web/img/constomer.png",N="https://web.sdk.qcloud.com/component/TUIKit/assets/group_avatar.png",j="https://web.sdk.qcloud.com/im/assets/emoji-plugin/",k="https://web.sdk.qcloud.com/im/assets/face-elem/",x="https://map.qq.com/?type=marker&isopeninfowin=1&markertype=1&",w="https://apis.map.qq.com/ws/staticmap/v2/?",$={"[TUIEmoji_Expect]":"emoji_0@2x.png","[TUIEmoji_Blink]":"emoji_1@2x.png","[TUIEmoji_Guffaw]":"emoji_2@2x.png","[TUIEmoji_KindSmile]":"emoji_3@2x.png","[TUIEmoji_Haha]":"emoji_4@2x.png","[TUIEmoji_Cheerful]":"emoji_5@2x.png","[TUIEmoji_Smile]":"emoji_6@2x.png","[TUIEmoji_Sorrow]":"emoji_7@2x.png","[TUIEmoji_Speechless]":"emoji_8@2x.png","[TUIEmoji_Amazed]":"emoji_9@2x.png","[TUIEmoji_Complacent]":"emoji_10@2x.png","[TUIEmoji_Lustful]":"emoji_11@2x.png","[TUIEmoji_Stareyes]":"emoji_12@2x.png","[TUIEmoji_Giggle]":"emoji_13@2x.png","[TUIEmoji_Daemon]":"emoji_14@2x.png","[TUIEmoji_Rage]":"emoji_15@2x.png","[TUIEmoji_Yawn]":"emoji_16@2x.png","[TUIEmoji_TearsLaugh]":"emoji_17@2x.png","[TUIEmoji_Silly]":"emoji_18@2x.png","[TUIEmoji_Wail]":"emoji_19@2x.png","[TUIEmoji_Kiss]":"emoji_20@2x.png","[TUIEmoji_Trapped]":"emoji_21@2x.png","[TUIEmoji_Fear]":"emoji_22@2x.png","[TUIEmoji_BareTeeth]":"emoji_23@2x.png","[TUIEmoji_FlareUp]":"emoji_24@2x.png","[TUIEmoji_Tact]":"emoji_25@2x.png","[TUIEmoji_Shit]":"emoji_26@2x.png","[TUIEmoji_ShutUp]":"emoji_27@2x.png","[TUIEmoji_Sigh]":"emoji_28@2x.png","[TUIEmoji_Hehe]":"emoji_29@2x.png","[TUIEmoji_Silent]":"emoji_30@2x.png","[TUIEmoji_Skull]":"emoji_31@2x.png","[TUIEmoji_Mask]":"emoji_32@2x.png","[TUIEmoji_Beer]":"emoji_33@2x.png","[TUIEmoji_Cake]":"emoji_34@2x.png","[TUIEmoji_RedPacket]":"emoji_35@2x.png","[TUIEmoji_Bombs]":"emoji_36@2x.png","[TUIEmoji_Ai]":"emoji_37@2x.png","[TUIEmoji_Celebrate]":"emoji_38@2x.png","[TUIEmoji_Bless]":"emoji_39@2x.png","[TUIEmoji_Flower]":"emoji_40@2x.png","[TUIEmoji_Watermelon]":"emoji_41@2x.png","[TUIEmoji_Cow]":"emoji_42@2x.png","[TUIEmoji_Fool]":"emoji_43@2x.png","[TUIEmoji_Surprised]":"emoji_44@2x.png","[TUIEmoji_Askance]":"emoji_45@2x.png","[TUIEmoji_Monster]":"emoji_46@2x.png","[TUIEmoji_Pig]":"emoji_47@2x.png","[TUIEmoji_Coffee]":"emoji_48@2x.png","[TUIEmoji_Ok]":"emoji_49@2x.png","[TUIEmoji_Heart]":"emoji_50@2x.png","[TUIEmoji_Sun]":"emoji_51@2x.png","[TUIEmoji_Moon]":"emoji_52@2x.png","[TUIEmoji_Star]":"emoji_53@2x.png","[TUIEmoji_Rich]":"emoji_54@2x.png","[TUIEmoji_Fortune]":"emoji_55@2x.png","[TUIEmoji_857]":"emoji_56@2x.png","[TUIEmoji_666]":"emoji_57@2x.png","[TUIEmoji_Prohibit]":"emoji_58@2x.png","[TUIEmoji_Convinced]":"emoji_59@2x.png","[TUIEmoji_Knife]":"emoji_60@2x.png","[TUIEmoji_Like]":"emoji_61@2x.png"},V={"[TUIEmoji_Smile]":"[微笑]","[TUIEmoji_Expect]":"[期待]","[TUIEmoji_Blink]":"[眨眼]","[TUIEmoji_Guffaw]":"[大笑]","[TUIEmoji_KindSmile]":"[姨母笑]","[TUIEmoji_Haha]":"[哈哈哈]","[TUIEmoji_Cheerful]":"[愉快]","[TUIEmoji_Speechless]":"[无语]","[TUIEmoji_Amazed]":"[惊讶]","[TUIEmoji_Sorrow]":"[悲伤]","[TUIEmoji_Complacent]":"[得意]","[TUIEmoji_Silly]":"[傻了]","[TUIEmoji_Lustful]":"[色]","[TUIEmoji_Giggle]":"[憨笑]","[TUIEmoji_Kiss]":"[亲亲]","[TUIEmoji_Wail]":"[大哭]","[TUIEmoji_TearsLaugh]":"[哭笑]","[TUIEmoji_Trapped]":"[困]","[TUIEmoji_Mask]":"[口罩]","[TUIEmoji_Fear]":"[恐惧]","[TUIEmoji_BareTeeth]":"[龇牙]","[TUIEmoji_FlareUp]":"[发怒]","[TUIEmoji_Yawn]":"[打哈欠]","[TUIEmoji_Tact]":"[机智]","[TUIEmoji_Stareyes]":"[星星眼]","[TUIEmoji_ShutUp]":"[闭嘴]","[TUIEmoji_Sigh]":"[叹气]","[TUIEmoji_Hehe]":"[呵呵]","[TUIEmoji_Silent]":"[收声]","[TUIEmoji_Surprised]":"[惊喜]","[TUIEmoji_Askance]":"[白眼]","[TUIEmoji_Ok]":"[OK]","[TUIEmoji_Shit]":"[便便]","[TUIEmoji_Monster]":"[怪兽]","[TUIEmoji_Daemon]":"[恶魔]","[TUIEmoji_Rage]":"[恶魔怒]","[TUIEmoji_Fool]":"[衰]","[TUIEmoji_Pig]":"[猪]","[TUIEmoji_Cow]":"[牛]","[TUIEmoji_Ai]":"[AI]","[TUIEmoji_Skull]":"[骷髅]","[TUIEmoji_Bombs]":"[炸弹]","[TUIEmoji_Coffee]":"[咖啡]","[TUIEmoji_Cake]":"[蛋糕]","[TUIEmoji_Beer]":"[啤酒]","[TUIEmoji_Flower]":"[花]","[TUIEmoji_Watermelon]":"[瓜]","[TUIEmoji_Rich]":"[壕]","[TUIEmoji_Heart]":"[爱心]","[TUIEmoji_Moon]":"[月亮]","[TUIEmoji_Sun]":"[太阳]","[TUIEmoji_Star]":"[星星]","[TUIEmoji_RedPacket]":"[红包]","[TUIEmoji_Celebrate]":"[庆祝]","[TUIEmoji_Bless]":"[福]","[TUIEmoji_Fortune]":"[发]","[TUIEmoji_Convinced]":"[服]","[TUIEmoji_Prohibit]":"[禁]","[TUIEmoji_666]":"[666]","[TUIEmoji_857]":"[857]","[TUIEmoji_Knife]":"[刀]","[TUIEmoji_Like]":"[赞]"},F={enabledMessageReadReceipt:Math.pow(2,5),enabledEmojiPlugin:Math.pow(2,48),enabledOnlineStatus:Math.pow(2,7),enabledCustomerServicePlugin:Math.pow(2,40),enabledTranslationPlugin:Math.pow(2,38),enabledVoiceToText:Math.pow(2,39)},H=["messageList","conversationList","newMessageList"],Y=["translateTextInfo","voiceToTextInfo"],B="undefined"!=typeof wx&&"function"==typeof wx.getSystemInfoSync&&("mac"===wx.getSystemInfoSync().platform||"windows"===wx.getSystemInfoSync().platform),K="undefined"!=typeof wx&&"function"==typeof wx.getSystemInfoSync&&Boolean(wx.getSystemInfoSync().fontSizeSetting)||B,q="undefined"!=typeof qq&&"function"==typeof qq.getSystemInfoSync&&Boolean(qq.getSystemInfoSync().fontSizeSetting),z="undefined"!=typeof tt&&"function"==typeof tt.getSystemInfoSync&&Boolean(tt.getSystemInfoSync().fontSizeSetting),W="undefined"!=typeof swan&&"function"==typeof swan.getSystemInfoSync&&Boolean(swan.getSystemInfoSync().fontSizeSetting),J="undefined"!=typeof my&&"function"==typeof my.getSystemInfoSync&&Boolean(my.getSystemInfoSync().fontSizeSetting),X="undefined"!=typeof jd&&"function"==typeof jd.getSystemInfoSync,Z="undefined"!=typeof uni&&"undefined"==typeof window,Q=K||q||z||W||J||X||Z,ee=("undefined"!=typeof uni||"undefined"!=typeof window)&&!Q,te=q?qq:z?tt:W?swan:J?my:K?wx:Z?uni:X?jd:ee?window:{},se=ee&&window&&window.navigator&&window.navigator.userAgent||"",ie=/Android/i.test(se),ne=/(?:Windows Phone)/.test(se),ae=/(?:SymbianOS)/.test(se),re=/iPad/i.test(se)||/iPhone/i.test(se)||/iPod/i.test(se),oe=ie||ne||ae||re,ge=ee&&!oe;class ce{constructor(){this.global=te,this.isOfficial=!1}static getInstance(){return ce.instance||(ce.instance=new ce),ce.instance}initOfficial(e){this.isOfficial=e}getPlatform(){let e="";return ge?e="pc":oe?e="h5":K?e="wechat":Z&&!K&&(e="app"),e}}const he="group-module",ue="relationship-module";class de{constructor(){this.EVENT=e.EVENT,this.TYPES=e.TYPES,this.loginStatusPromise=new Map,this.userID="",this.isInited=!1}static getInstance(){return de.instance||(de.instance=new de),te.__$RTC_CHAT__=[t,s,i,n,a,r,o,g,c],de.instance}mount(e,t){this[e]=t}login(t){const{chat:s,SDKAppID:i,userID:n}=t,a=1400187352===i||1400188366===i;return this.createChat(t),this.userID=n,ce.getInstance().initOfficial(a),this.TUIStore.update(p.APP,"isOfficial",a),this.TUIStore.update(p.APP,"SDKVersion",e.VERSION),this.eventCenter=new d(this),this.eventCenter.removeEvents(),this.resetStore(),this.initService(),s&&s.isReady()?(console.log("TUIChatEngine.login ok, from TUICore."),this.TUIUser.getUserProfile(),this.checkCommercialAbility(),Promise.resolve({})):(this.eventCenter.addEvent(this.EVENT.SDK_READY,()=>{this.onSDKReady()}),this.eventCenter.addEvent(this.EVENT.SDK_NOT_READY,()=>{this.onSDKNotReady()}),this.loginChat(t))}logout(){return this.userID="",this.isInited=!1,this.resetStore(),this.chat.logout()}isReady(){var e;return(null===(e=this.chat)||void 0===e?void 0:e.isReady())||!1}setLogLevel(e){this.chat?this.chat.setLogLevel(e):console.warn("TUIChatEngine 初始化未完成,请确认 TUIChatEngine.login 接口调用是否正常。")}destroy(){return this.eventCenter.unbindIMEvents(),this.isInited=!1,this.resetStore(),this.chat.destroy()}getMyUserID(){return this.userID}resetStore(){this.TUIStore.reset(p.CHAT),this.TUIStore.reset(p.CONV),this.TUIStore.reset(p.GRP),this.TUIStore.reset(p.USER),this.TUIStore.reset(p.SEARCH),this.TUIStore.reset(p.FRIEND),this.TUIStore.reset(p.CUSTOM),console.log("TUIChatEngine.resetStore ok.")}initService(){this.TUIChat.init(),this.TUIConversation.init(),this.TUIUser.init(),this.initOptionalServices(),this.isInited=!0,console.log("TUIChatEngine.initService ok.")}initOptionalServices(){const t=e.VERSION.split(".");3===t[0]&&t[1]>=3&&t[2]>0?(!0===this.chat.callExperimentalAPI("canIUseModule",[he])&&this.TUIGroup.init(),!0===this.chat.callExperimentalAPI("canIUseModule",[ue])&&this.TUIFriend.init()):(this.TUIGroup.init(),this.TUIFriend.init())}createChat(u){const{chat:d}=u,l=h(u,["chat"]);y(d)?(this.chat=e.create(Object.assign(Object.assign({},l),{scene:"engine-lite"})),this.chat.use([t,s,i,n,a,r,o,g,c])):this.chat=d}loginChat(e){const{userID:t,userSig:s}=e;return new Promise((e,i)=>{this.chat.login({userID:t,userSig:s}).then(t=>{console.log("TUIChatEngine.loginChat ok."),this.checkCommercialAbility(),t.data.repeatLogin&&this.chat.isReady()&&e(t),this.loginStatusPromise.set("login",{resolve:e,reject:i,imResponse:t})}).catch(e=>{i(e)})})}onSDKReady(){if(this.loginStatusPromise.has("login")){const e=this.loginStatusPromise.get("login");e.resolve(e.imResponse),this.TUIUser.getUserProfile()}this.loginStatusPromise.delete("login")}onSDKNotReady(){if(this.loginStatusPromise.has("login")){this.loginStatusPromise.get("login").reject(new Error("sdk not ready"))}this.loginStatusPromise.delete("login"),this.resetStore()}checkCommercialAbility(){Object.keys(F).forEach(e=>{const t=F[e];this.chat.callExperimentalAPI("isCommercialAbilityEnabled",t).then(t=>{const{enabled:s=!1}=t.data;this.TUIStore.update(p.APP,e,s)})})}}class le{constructor(){this.defaultStore={enabledMessageReadReceipt:!1,enabledEmojiPlugin:!1,enabledOnlineStatus:!1,enabledCustomerServicePlugin:!1,enabledTranslationPlugin:!1,enabledVoiceToText:!1,enableTyping:!0,enableConversationDraft:!0,enableAutoMessageRead:!0,isOfficial:!1,SDKVersion:"3.0.0",tasks:{sendMessage:!1,revokeMessage:!1,modifyNickName:!1,groupChat:!1,muteGroup:!1,dismissGroup:!1,call:!1,searchCloudMessage:!1,customerService:!1,translateTextMessage:!1}},this.store={enabledEmojiPlugin:!1,enabledMessageReadReceipt:!1,enabledOnlineStatus:!1,enabledCustomerServicePlugin:!1,enabledTranslationPlugin:!1,enabledVoiceToText:!1,enableTyping:!0,enableConversationDraft:!0,enableAutoMessageRead:!0,isOfficial:!1,SDKVersion:"3.0.0",tasks:{sendMessage:!1,revokeMessage:!1,modifyNickName:!1,groupChat:!1,muteGroup:!1,dismissGroup:!1,call:!1,searchCloudMessage:!1,customerService:!1,translateTextMessage:!1}}}update(e,t){this.store[e]=t}getData(e){return this.store[e]}reset(e=[]){this.store=Object.assign(Object.assign(Object.assign({},this.defaultStore),this.store),e.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:this.defaultStore[t]}),{}))}}class pe{constructor(){this.defaultStore={userProfile:{},displayOnlineStatus:!1,displayMessageReadReceipt:!0,userStatusList:new Map,kickedOut:"",netStateChange:"",userBlacklist:[],targetLanguage:"zh"},this.store={userProfile:{},displayOnlineStatus:!1,displayMessageReadReceipt:!0,userStatusList:new Map,kickedOut:"",netStateChange:"",userBlacklist:[],targetLanguage:"zh"}}update(e,t){if("userStatusList"===e)this.updateUserStatusList(t);else this.store[e]=t}getData(e){return this.store[e]}reset(e=[]){this.store=Object.assign(Object.assign(Object.assign({},this.defaultStore),this.store),e.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:this.defaultStore[t]}),{}))}updateUserStatusList(e){0!==e.length?e.forEach(e=>{const{userID:t,statusType:s=0,customStatus:i=""}=e;s===T.UNSUB_USER?this.store.userStatusList.delete(t):this.store.userStatusList.set(t,{statusType:s,customStatus:i})}):this.store.userStatusList.clear()}}class Te{getEngine(){return de.getInstance()}}const Ee=function(e){if(null==e)return!0;if("boolean"==typeof e)return!1;if("number"==typeof e)return 0===e;if("string"==typeof e)return 0===e.length;if("function"==typeof e)return 0===e.length;if(Array.isArray(e))return 0===e.length;if(e instanceof Error)return""===e.message;if(function(e){if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);if(null===t)return!0;let s=t;for(;null!==Object.getPrototypeOf(s);)s=Object.getPrototypeOf(s);return t===s}(e)){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}return!1},Ie={"[Image]":"[图片]","[Voice]":"[语音]","[Video]":"[视频]","[File]":"[文件]","[Location]":"[位置]","[Animated Sticker]":"[动画表情]","[Custom Messages]":"[自定义消息]","[Group Notification]":"[群提示消息]","[Group System Message]":"[群系统消息]","[Chat Record]":"[聊天记录]","[Chat History]":"[聊天记录]"};class me extends Te{constructor(e){super(),this.initProxy(e),this.isMuted=this.messageRemindType===this.getEngine().TYPES.MSG_REMIND_ACPT_NOT_NOTE||this.messageRemindType===this.getEngine().TYPES.MSG_REMIND_DISCARD,this.operationType=0,this._conversation=e}initProxy(e){Object.keys(e).forEach(t=>{P(t)||(this[t]=e[t])})}updateProperties(e){Object.keys(e).forEach(t=>{P(t)||(this[t]=e[t])})}updateOperationType(e){this.operationType=e}getConversation(){return this._conversation}deleteConversation(e=!0){return this.getEngine().TUIConversation.deleteConversation({conversationIDList:[this.conversationID],clearHistoryMessage:e})}pinConversation(){return this.getEngine().TUIConversation.pinConversation({conversationID:this.conversationID,isPinned:!this.isPinned})}muteConversation(){const e=this.getEngine(),t={messageRemindType:!0===this.isMuted?e.TYPES.MSG_REMIND_ACPT_AND_NOTE:e.TYPES.MSG_REMIND_ACPT_NOT_NOTE};if(this.type===e.TYPES.CONV_C2C){const s=this.conversationID.replace(e.TYPES.CONV_C2C,"");t.userIDList=[s]}else if(this.type===e.TYPES.CONV_GROUP){const s=this.conversationID.replace(e.TYPES.CONV_GROUP,"");t.groupID=s}return e.TUIConversation.muteConversation(t)}setMessageRead(){return this.getEngine().TUIConversation.setMessageRead(this.conversationID)}getAvatar(){var e,t,s,i,n,a;const r=this.getEngine();let o="";switch(this.type){case r.TYPES.CONV_C2C:o=O(null===(e=this.userProfile)||void 0===e?void 0:e.avatar)?null===(t=this.userProfile)||void 0===t?void 0:t.avatar:b;break;case r.TYPES.CONV_GROUP:o=O(null===(s=this.groupProfile)||void 0===s?void 0:s.avatar)?null===(i=this.groupProfile)||void 0===i?void 0:i.avatar:L;break;case r.TYPES.CONV_SYSTEM:o=O(null===(n=this.groupProfile)||void 0===n?void 0:n.avatar)?null===(a=this.groupProfile)||void 0===a?void 0:a.avatar:N}return o}getShowName(){var e,t,s,i;const n=this.getEngine();let a="";switch(this.type){case n.TYPES.CONV_C2C:a=this.remark||(null===(e=this.userProfile)||void 0===e?void 0:e.nick)||(null===(t=this.userProfile)||void 0===t?void 0:t.userID)||"";break;case n.TYPES.CONV_GROUP:a=(null===(s=this.groupProfile)||void 0===s?void 0:s.name)||(null===(i=this.groupProfile)||void 0===i?void 0:i.groupID)||"";break;case n.TYPES.CONV_SYSTEM:a=n.TUITranslate.t("系统通知")}return a}getGroupAtInfo(){const e=this.getEngine(),t=e.TUITranslate.t.bind(e.TUITranslate),s=[`[${t("TUIConversation.有人@我")}]`,`[${t("TUIConversation.@所有人")}]`,`[${t("TUIConversation.@所有人")}][${t("TUIConversation.有人@我")}]`];let i="";for(let e=0;e<this.groupAtInfoList.length;e++)this.groupAtInfoList[e].atTypeArray[0]&&(i=s[this.groupAtInfoList[e].atTypeArray[0]-1]);return i}getLastMessage(e){return"time"===e?this.getLastMessageTime():"text"===e?this.getLastMessageText():(console.warn(`ConversationModel.getLastMessage key:${e} is invalid.`),null)}getLastMessageTime(){var e;const t=this.getEngine();let s="";return(null===(e=this.lastMessage)||void 0===e?void 0:e.lastTime)>0&&(s=function(e,t){const s=6e4,i=36e5,n=24*i,a=7*n,r=(new Date).getTime()-e;let o="";if(r<0)return o;const g=r/s,c=r/i,h=r/n,u=r/a;if(u>=1&&u<=4)o=` ${parseInt(`${u}`,10)} ${t("time.周")}${t("time.前")}`;else if(h>=1&&h<=6)o=` ${parseInt(`${h}`,10)} ${t("time.天")}${t("time.前")}`;else if(c>=1&&c<=23)o=` ${parseInt(`${c}`,10)} ${t("time.小时")}${t("time.前")}`;else if(g>=1&&g<=59)o=` ${parseInt(`${g}`,10)} ${t("time.分钟")}${t("time.前")}`;else if(r>=0&&r<=s)o=`${t("time.刚刚")}`;else{const t=new Date;t.setTime(e),o=`${t.getFullYear()}-${t.getMonth()+1<10?`0${t.getMonth()+1}`:t.getMonth()+1}-${t.getDate()<10?`0${t.getDate()}`:t.getDate()}`}return o}(1e3*this.lastMessage.lastTime,t.TUITranslate.t.bind(t.TUITranslate))),s}getLastMessageText(){var e;if(this.draftText){return A(this.draftText).abstract}const t=this.getEngine(),s=t.TUITranslate.t.bind(t.TUITranslate);if(4===this.operationType)return s("TUIConversation.您已被群管理员移出群聊");if(5===this.operationType)return s("TUIConversation.该群聊已被解散");if(8===this.operationType)return s("TUIConversation.您已退出该群聊");const i=this._conversation,{lastMessage:n}=this;let a="",r="";const o=i.unreadCount>0&&i.messageRemindType===t.TYPES.MSG_REMIND_ACPT_NOT_NOTE?`[${i.unreadCount>99?"99+":i.unreadCount}${s("TUIConversation.条")}]`:"";if(i.type===t.TYPES.CONV_GROUP)if(n.fromAccount===t.getMyUserID())a=s("TUIConversation.我");else{const e=n.fromAccount;a=t.TUIFriend.getFriendRemark([e])[e]||n.nameCard||n.nick||e}if(n.type===t.TYPES.MSG_TEXT)r=this.decodeTextMessage(n.payload.text);else if(n.type===t.TYPES.MSG_CUSTOM){const i=A(null===(e=null==n?void 0:n.payload)||void 0===e?void 0:e.data);if(1===(null==i?void 0:i.businessID))return r=t.TUIChat.messageHandler.handleCallKitSignaling(n),r;const a=n.messageForShow;r=Ie[a]?s(`TUIChat.${Ie[a]}`):a}else{const e=n.messageForShow;r=Ie[e]?s(`TUIChat.${Ie[e]}`):e}return n.isRevoked&&(r=s("TUIChat.撤回了一条消息")),i.type===t.TYPES.CONV_GROUP&&n.type===t.TYPES.MSG_GRP_TIP?r:`${o}${a?`${a}:`:""}${r}`}decodeTextMessage(e){if(Ee(e))return e;const t=/(\[.+?\])/g;let s=e;if(t.test(e)){const i=this.getEngine(),n=i.TUITranslate.t.bind(i.TUITranslate);s=e.replace(t,e=>{const t=n(`Emoji.${e}`);return K||!t||t.startsWith("Emoji.")?V[e]||e:t})}return s}}class Se{constructor(){this.defaultStore={currentConversationID:"",totalUnreadCount:0,conversationList:[],currentConversation:null,operationTypeMap:new Map},this.store={currentConversationID:"",totalUnreadCount:0,conversationList:[],currentConversation:null,operationTypeMap:new Map}}update(e,t){switch(e){case"conversationList":this.updateConversationList(t);break;case"operationTypeMap":this.updateOperationTypeMap(t);break;default:this.store[e]=t}}getData(e){return this.store[e]}getModel(e){return this.store.conversationList.find(t=>t.conversationID===e)}reset(e=[]){this.store=Object.assign(Object.assign(Object.assign({},this.defaultStore),this.store),e.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:this.defaultStore[t]}),{}))}updateConversationList(e){const t=[];e.forEach(e=>{let s=e;e instanceof me?s.updateProperties(e):s=new me(e);const i=this.getOperationType(e);s.updateOperationType(i),t.push(s)}),this.store.conversationList=t}updateOperationTypeMap(e){const{conversationID:t,operationType:s=0}=e;this.store.operationTypeMap.set(t,s)}getOperationType(e){const{conversationID:t}=e;return this.store.operationTypeMap.get(t)||0}}class Ue extends Te{constructor(e){super(),this.messageHandlers={[this.getEngine().TYPES.MSG_TEXT]:e=>this.getEngine().TUIChat.messageHandler.handleTextMessage(e),[this.getEngine().TYPES.MSG_FACE]:e=>this.getEngine().TUIChat.messageHandler.handleFaceMessage(e),[this.getEngine().TYPES.MSG_LOCATION]:e=>this.getEngine().TUIChat.messageHandler.handleLocationMessage(e),[this.getEngine().TYPES.MSG_IMAGE]:e=>this.getEngine().TUIChat.messageHandler.handleImageMessage(e),[this.getEngine().TYPES.MSG_AUDIO]:e=>this.getEngine().TUIChat.messageHandler.handleAudioMessage(e),[this.getEngine().TYPES.MSG_VIDEO]:e=>this.getEngine().TUIChat.messageHandler.handleVideoMessage(e),[this.getEngine().TYPES.MSG_FILE]:e=>this.getEngine().TUIChat.messageHandler.handleFileMessage(e),[this.getEngine().TYPES.MSG_CUSTOM]:e=>this.getEngine().TUIChat.messageHandler.handleCustomMessage(e),[this.getEngine().TYPES.MSG_MERGER]:e=>this.getEngine().TUIChat.messageHandler.handleMergeMessage(e),[this.getEngine().TYPES.MSG_GRP_TIP]:e=>this.getEngine().TUIChat.messageHandler.handleGroupTipsMessage(e)},this._message=e,this._signalingInfo=void 0,this.progress=0,this.reactionList=[],this.initProperties(e)}initProperties(e){Object.keys(e).forEach(t=>{P(t)||(this[t]=e[t])})}updateProperties(e){this._message=e,Object.keys(e).forEach(t=>{P(t)||(this[t]=e[t])})}getMessage(){return this._message}modifyMessage(e){return e.type&&this._message.type!==e.type&&!e.payload?Promise.reject({code:S.MISMATCH_TYPE_AND_PAYLOAD,message:M.MISMATCH_TYPE_AND_PAYLOAD}):(this._message.type=e.type||this._message.type,this._message.payload=e.payload||this._message.payload,this._message.cloudCustomData=e.cloudCustomData||this._message.cloudCustomData,this.getEngine().TUIChat.modifyMessage(this._message))}revokeMessage(){return this.getEngine().TUIChat.revokeMessage(this._message)}resendMessage(){return this.getEngine().TUIChat.resendMessage(this._message)}deleteMessage(){return this.getEngine().TUIChat.deleteMessage([this._message])}quoteMessage(){return this.getEngine().TUIChat.quoteMessage(this._message)}replyMessage(){return this.getEngine().TUIChat.replyMessage(this._message)}setMessageExtensions(e){return this.getEngine().TUIChat.setMessageExtensions(this._message,e)}getMessageExtensions(){return this.getEngine().TUIChat.getMessageExtensions(this._message)}deleteMessageExtensions(e){return this.getEngine().TUIChat.deleteMessageExtensions(this._message,e)}getSignalingInfo(){return this.type!==this.getEngine().TYPES.MSG_CUSTOM?null:y(this._signalingInfo)?(this._signalingInfo=this.getEngine().chat.getSignalingInfo(this._message),this._signalingInfo):this._signalingInfo}getMessageContent(){const e=this.messageHandlers[this.type];if(y(e))return{};if(this.type===this.getEngine().TYPES.MSG_GRP_TIP)return e(this._message);const t=this.getEngine().TUIFriend.getFriendRemark([this.from]);return Object.assign(Object.assign({},e(this._message)),{showName:t[this.from]||this.nameCard||this.nick||this.from})}sendForwardMessage(e){return this.getEngine().TUIChat.sendForwardMessage(e,[this._message])}}class Me{constructor(){this.defaultStore={messageList:[],isCompleted:!1,nextReqMessageID:"",quoteMessage:{},newMessageList:[],typingStatus:!1,messageSource:void 0,translateTextInfo:void 0,voiceToTextInfo:void 0,userInfo:{}},this.store={messageList:[],isCompleted:!1,nextReqMessageID:"",quoteMessage:{},newMessageList:[],typingStatus:!1,messageSource:void 0,translateTextInfo:void 0,voiceToTextInfo:void 0,userInfo:{}}}update(e,t){switch(e){case"messageList":this.updateMessageList(t);break;case"translateTextInfo":this.updateTranslateTextInfo(t);break;case"voiceToTextInfo":this.updateVoiceToTextInfo(t);break;default:this.store[e]=t}}getData(e){return this.store[e]}getModel(e){return this.store.messageList.find(t=>t.ID===e)}reset(e=[]){const t=e.filter(e=>!Y.includes(e));this.store=Object.assign(Object.assign(Object.assign({},this.defaultStore),this.store),null==t?void 0:t.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:this.defaultStore[t]}),{}))}updateMessageList(e){const t=[];e.forEach(e=>{let s=e;e instanceof Ue||(s=this.getModel(e.ID),s?s.updateProperties(e):s=new Ue(e)),t.push(s)}),this.store.messageList=t}updateTranslateTextInfo(e){this.updateBykey("translateTextInfo",e)}updateVoiceToTextInfo(e){this.updateBykey("voiceToTextInfo",e)}updateBykey(e,t){const{conversationID:s,messageID:i,visible:n=!1}=t;this.store[e]||(this.store[e]=new Map),this.store[e].has(s)||this.store[e].set(s,[]);const a=this.store[e].get(s)||[];let r=!0;for(let e=0;e<a.length;e++)if(a[e].messageID===i){a[e].visible=n,r=!1;break}r&&a.push({messageID:i,visible:n}),this.store[e].set(s,a)}}class fe{constructor(e){this.groupAttributes={},this.groupCounters={},this.initProxy(e)}initProxy(e){Object.keys(e).forEach(t=>{P(t)||(this[t]=e[t])})}}class _e{constructor(){this.defaultStore={currentGroupID:"",currentGroup:{},currentGroupAttributes:{},currentGroupCounters:{},currentGroupMemberList:[],groupList:[],groupSystemNoticeList:[],isCompleted:!1,offset:0},this.store={currentGroupID:"",currentGroup:void 0,currentGroupAttributes:{},currentGroupCounters:{},currentGroupMemberList:[],groupList:[],groupSystemNoticeList:[],isCompleted:!1,offset:0}}update(e,t){switch(e){case"groupList":this.updateGroupList(t);break;case"currentGroup":this.store.currentGroup=t instanceof fe?t:new fe(t);break;default:this.store[e]=t}}getData(e){if("groupSystemNoticeList"===e){const e=[...this.store.groupSystemNoticeList];return this.store.groupSystemNoticeList.length=0,e}return this.store[e]}reset(e=[]){this.store=Object.assign(Object.assign(Object.assign({},this.defaultStore),this.store),e.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:this.defaultStore[t]}),{}))}updateGroupList(e){this.store.groupList=e.map(e=>e instanceof fe?e:new fe(e))}}class Ce{constructor(){this.store={}}update(e,t){this.store[e]=t}getData(e){return this.store[e]}reset(e=[]){0===e.length&&(this.store={}),this.store=Object.assign(Object.assign({},this.store),e.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:void 0}),{}))}}class ve{constructor(){this.defaultStore={friendList:[],friendApplicationList:[],friendApplicationUnreadCount:0,friendGroupList:[]},this.store={friendList:[],friendApplicationList:[],friendApplicationUnreadCount:0,friendGroupList:[]}}update(e,t){this.store[e]=t}getData(e){return this.store[e]}reset(e=[]){this.store=Object.assign(Object.assign(Object.assign({},this.defaultStore),this.store),e.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:this.defaultStore[t]}),{}))}}class De{constructor(){this.defaultStore={searchMessagesResult:{resultList:[],hasMore:!1,cursor:"",params:void 0,totalCount:0},searchChatMessagesResult:{resultList:[],hasMore:!1,cursor:"",params:void 0,totalCount:0},searchUserResult:{resultList:[],hasMore:!1,cursor:"",params:void 0,totalCount:0},searchGroupResult:{resultList:[],hasMore:!1,cursor:"",params:void 0,totalCount:0},searchMessageParams:{},searchChatMessageParams:{},searchUserParams:{},searchGroupParams:{},error:null},this.store=this.defaultStore}update(e,t){this.store[e]=t}getData(e){return this.store[e]}reset(e=[]){this.store=Object.assign(Object.assign(Object.assign({},this.defaultStore),this.store),null==e?void 0:e.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:this.defaultStore[t]}),{}))}}class Re{constructor(){this.storeMap={[p.APP]:new le,[p.USER]:new pe,[p.CONV]:new Se,[p.CHAT]:new Me,[p.GRP]:new _e,[p.FRIEND]:new ve,[p.SEARCH]:new De},this.task={}}static getInstance(){return Re.instance||(Re.instance=new Re),Re.instance}watch(e,t){this.task[e]||(this.task[e]={});const s=this.task[e];Object.keys(t).forEach(i=>{const n=t[i];s[i]||(s[i]=new Map),s[i].set(n,1),this.notifyOnWatch(e,i,n)})}unwatch(e,t){if(!this.task[e])return;const s=this.task[e];Object.keys(t).forEach(e=>{var i;null===(i=s[e])||void 0===i||i.delete(t[e])})}update(e,t,s){var i;e!==p.CUSTOM||this.storeMap[e]||(this.storeMap[e]=new Ce),null===(i=this.storeMap[e])||void 0===i||i.update(t,s),this.notify(e,t)}getData(e,t){var s;return e!==p.CUSTOM||this.storeMap[e]||(this.storeMap[e]=new Ce),null===(s=this.storeMap[e])||void 0===s?void 0:s.getData(t)}getConversationModel(e){var t;return null===(t=this.storeMap[p.CONV])||void 0===t?void 0:t.getModel(e)}getMessageModel(e){var t;return null===(t=this.storeMap[p.CHAT])||void 0===t?void 0:t.getModel(e)}reset(e,t=[],s=!1){if(e in this.storeMap){const i=this.storeMap[e];0===t.length&&(t=Object.keys(null==i?void 0:i.store)),i.reset(t),s&&t.forEach(t=>{this.notify(e,t)})}}notifyOnWatch(e,t,s){const i=this.getData(e,t);H.indexOf(t)>-1&&0===i.length||s&&s.call(this,i)}notify(e,t){if(!this.task[e])return;const s=this.task[e];if(s[t]){const i=s[t],n=this.getData(e,t);for(const[e]of i.entries())e.call(this,n)}}}class ye extends Te{constructor(){super(),this.languages=null,this.keyMap={}}static getInstance(){return ye.instance||(ye.instance=new ye),ye.instance}setI18next(e){this.i18next?console.warn("TUITranslateService.setI18next already have i18next instance."):this.i18next=e}provideLanguages(e){var t;K||(this.languages=e,(null===(t=e["zh-CN"])||void 0===t?void 0:t.Chat)&&this.setKeyMap(e["zh-CN"]),console.log("TUITranslateService.provideLanguages ok."))}useI18n(e){var t;if(K)return;if(!this.languages)return void console.warn("TUITranslateService.useI18next not have messages.");const s={};for(const[e,t]of Object.entries(this.languages)){s["zh_cn"===e?"zh":e]={translation:t}}this.i18next.init({compatibilityJSON:"v3",lng:e||"zh",fallbackLng:"zh",detection:{order:["querystring","navigator"],caches:["localStorage","cookie"]},resources:s});const i=this.normalizeLanguageKey(e||"zh");null===(t=this.getEngine().TUIReport)||void 0===t||t.reportFeature(201,i)}changeLanguage(e){const t=this.normalizeLanguageKey(e);return this.getEngine().TUIReport.reportFeature(201,t),this.i18next.changeLanguage(e)}normalizeLanguageKey(e){return e.includes("en")?"en-us":e.includes("tw")?"zh-tw":e.includes("zh")||e.includes("cn")?"zh-cn":e.includes("ko")||e.includes("kr")?"ko-kr":e.includes("ja")||e.includes("jp")?"ja-jp":`other-${e}`}t(e){if(!this.languages){let t=e;return!y(e)&&e.indexOf(".")>-1&&(t=e.split(".").pop()||""),t}const t=this.keyMap[e];return t?this.i18next.t(t):this.i18next.t(e)}setKeyMap(e,t){for(const s in e)if(Object.prototype.hasOwnProperty.call(e,s)){const i=t?`${t}.${s}`:s;if(e[s]&&"object"==typeof e[s]&&!Array.isArray(e[s])&&null!==e[s])this.setKeyMap(e[s],i);else{let i=t?`${t}.${e[s]}`:e[s];i=this.replaceKey(i),this.keyMap[i]=`${t}.${s}`}}}replaceKey(e){return e.startsWith("Chat")?e.replace("Chat","TUIChat"):e.startsWith("Conversation")?e.replace("Conversation","TUIConversation"):e.startsWith("Message")?e.replace("Message","message.tip"):e.startsWith("Call")?e.replace("Call","message.custom"):e}}class Pe extends Te{constructor(){super(),this.serv="TUIConversationService"}static getInstance(){return Pe.instance||(Pe.instance=new Pe),Pe.instance}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.CONVERSATION_LIST_UPDATED,this.onConversationListUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED,this.onTotalUnreadCountUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_RECEIVED,this.onMessageReceived.bind(this)),this.getConversationInitData()}onConversationListUpdated(e){const t=this.filterSystemConversation(e);this.getEngine().TUIStore.update(p.CONV,"conversationList",t),this.updateCurrentConversation()}onTotalUnreadCountUpdated(e){this.getEngine().TUIStore.update(p.CONV,"totalUnreadCount",e)}onMessageReceived(e){const t=this.getEngine(),s=this.getEngine().TUIStore.getData(p.CONV,"conversationList");let i=!1;for(let n=0;n<e.length;n++){if(e[n].type!==t.TYPES.MSG_GRP_SYS_NOTICE)continue;const{operationType:a}=e[n].payload,r=`GROUP${e[n].to}`,o=4===a||5===a||8===a,g=2===a||6===a||7===a;if(o||g)for(let e=0;e<s.length;e++)if(s[e].type!==t.TYPES.CONV_C2C&&s[e].conversationID===r){if(o){this.getEngine().TUIStore.update(p.CONV,"operationTypeMap",{conversationID:r,operationType:a}),i=!0;break}if(g&&s[e].operationType>0){this.getEngine().TUIStore.update(p.CONV,"operationTypeMap",{conversationID:r,operationType:0}),i=!0;break}}}if(i){this.getEngine().TUIStore.update(p.CONV,"conversationList",s);const e=this.getEngine().TUIStore.getData(p.CONV,"currentConversationID")||"",t=this.findConversation(e);t&&this.getEngine().TUIStore.update(p.CONV,"currentConversation",t)}}getConversationInitData(){const e=this.getEngine();e.chat.isReady()&&e.chat.getConversationList().then(t=>{const{conversationList:s,isSyncCompleted:i}=t.data;if(console.log(`${this.serv}.init, getConversationList count:${s.length} isSyncCompleted:${i}`),s.length>0){this.onConversationListUpdated(s);const t=e.chat.getTotalUnreadMessageCount();this.onTotalUnreadCountUpdated(t)}})}switchConversation(e){return u(this,void 0,void 0,function*(){const t=`${this.serv}.switchConversation`,s=this.getEngine();if(!e)return s.TUIStore.reset(p.CHAT,["messageList","isCompleted","nextReqMessageID"]),s.TUIStore.update(p.CONV,"currentConversationID",""),s.TUIStore.update(p.CONV,"currentConversation",null),console.log(`${t} conversationID is empty, conversationID:${e}`),Promise.resolve({});if(!e.startsWith(s.TYPES.CONV_C2C)&&!e.startsWith(s.TYPES.CONV_GROUP))return console.warn(`${t} conversationID is invalid, conversationID:${e}`),Promise.reject({code:S.INVALID_CONV_ID,message:M.INVALID_CONV_ID});const i=s.TUIStore.getData(p.APP,"enableAutoMessageRead"),n=s.TUIStore.getData(p.CONV,"currentConversationID");if(n&&n===e)return i&&this.setMessageRead(n),console.warn(`${t} please check conversationID, conversationID:${e}`),Promise.resolve({code:S.CONV_ID_SAME,message:M.CONV_ID_SAME});const a=yield this.getConversationModel(e);return y(a)?(console.warn(`${t} target conversation is not exist, conversationID:${e}`),Promise.reject({code:S.CONV_NOT_EXIST,message:M.CONV_NOT_EXIST})):(i&&(n&&this.setMessageRead(n),e&&this.setMessageRead(e)),s.TUIStore.reset(p.CHAT,["messageList","isCompleted","nextReqMessageID"]),s.TUIStore.update(p.CONV,"currentConversationID",e),s.TUIStore.update(p.CONV,"currentConversation",a),Promise.resolve(a))})}getConversationModel(e){return u(this,void 0,void 0,function*(){let t=this.findConversation(e);if(y(t))try{const s=yield this.getConversationProfile(e);s.data&&s.data.conversation&&(t=new me(s.data.conversation))}catch(e){t=void 0}return t})}findConversation(e){let t;const s=this.getEngine().TUIStore.getData(p.CONV,"conversationList");for(let i=0;i<s.length;i++)if(s[i].conversationID===e){t=s[i];break}return t}updateCurrentConversation(){const e=this.getEngine(),t=e.TUIStore.getData(p.CONV,"currentConversationID"),s=this.findConversation(t);s&&e.TUIStore.update(p.CONV,"currentConversation",s)}getConversationList(){return this.getEngine().chat.getConversationList()}getConversationProfile(e){return this.getEngine().chat.getConversationProfile(e)}deleteConversation(e){const t="string"==typeof e?e:e.conversationIDList[0];return this.getEngine().chat.deleteConversation(e).then(e=>{const s=this.getEngine().TUIStore.getData(p.CONV,"currentConversationID");return console.log(`${this.serv}.deleteConversation conversationID:${t} currentConversationID:${s}`),t===s&&(this.getEngine().TUIStore.update(p.CONV,"currentConversationID",""),this.getEngine().TUIStore.update(p.CONV,"currentConversation",null)),e})}pinConversation(e){return this.getEngine().chat.pinConversation(e)}muteConversation(e){return this.getEngine().chat.setMessageRemindType(e)}clearHistoryMessage(e){return this.getEngine().chat.clearHistoryMessage(e).then(e=>(this.getEngine().TUIStore.update(p.CHAT,"messageList",[]),this.getEngine().TUIStore.update(p.CHAT,"nextReqMessageID",""),this.getEngine().TUIStore.update(p.CHAT,"isCompleted",!0),e))}setMessageRead(e){return this.getEngine().chat.setMessageRead({conversationID:e})}setConversationDraft(e){const{conversationID:t,draftInfo:s,draftText:i=""}=e;return this.getEngine().chat.setConversationDraft({conversationID:t,draftText:i||(s?JSON.stringify(s):"")}).then(e=>{const{conversation:t}=e.data;this.updateConversation(t)})}updateConversation(e){let t=!1;const s=this.getEngine().TUIStore.getData(p.CONV,"conversationList");for(let i=0;i<s.length;i++)if(s[i].conversationID===e.conversationID){s[i]=e,t=!0;break}t&&this.getEngine().TUIStore.update(p.CONV,"conversationList",s)}filterSystemConversation(e){return e.filter(e=>e.type!==this.getEngine().TYPES.CONV_SYSTEM)}markConversation(e){return this.getEngine().chat.markConversation(e)}}class Oe{constructor(e){this.TUIUserService=e}getEngine(){return this.TUIUserService.getEngine()}init(){this.getEngine().eventCenter.addEvent(this.getEngine().EVENT.PROFILE_UPDATED,this.onProfileUpdated.bind(this)),this.getEngine().eventCenter.addEvent(this.getEngine().EVENT.BLACKLIST_UPDATED,this.onBlacklistUpdated.bind(this)),this.getUserProfileInitData()}onProfileUpdated(e){const t=this.getEngine(),s=t.TUIStore.getData(p.USER,"userProfile");e.forEach(e=>{e.userID===s.userID&&t.TUIStore.update(p.USER,"userProfile",e)})}onBlacklistUpdated(e){const t=this.getEngine();this.getBlacklistProfile(e).then(e=>{t.TUIStore.update(p.USER,"userBlacklist",e)})}getUserProfileInitData(){const e=this.getEngine();e.chat.isReady()&&e.chat.getBlacklist().then(e=>{const t=e.data||[];console.log(`TUIUserProfileHandler.init, getBlacklist count:${t.length}`),t.length>0&&this.onBlacklistUpdated(t)})}getBlacklistProfile(e){const t=[];let s=0;for(;s<e.length;)t.push(e.slice(s,s+=100));const i=[];t.forEach(e=>{i.push(this.TUIUserService.getUserProfile({userIDList:e}))});const n=[];return Promise.all(i).then(e=>(e.forEach(e=>{const t=e.data.map(e=>{const{userID:t,nick:s,avatar:i}=e;return{userID:t,nick:s,avatar:i}});n.push(...t)}),n))}getUserProfile(e){const t=this.getEngine();return y(e)?t.chat.getMyProfile().then(e=>(t.TUIStore.update(p.USER,"userProfile",e.data),e)).catch(e=>Promise.reject(e)):t.chat.getUserProfile(e)}updateMyProfile(e){return this.getEngine().chat.updateMyProfile(e)}addToBlacklist(e){return this.getEngine().chat.addToBlacklist(e)}removeFromBlacklist(e){return this.getEngine().chat.removeFromBlacklist(e)}}function Ae(e,t,s=!0){!function(e,t){Q?te.setStorageSync(e,t):Le()&&localStorage.setItem(e,JSON.stringify(t))}(s?be(e):e,t)}function Ge(e,t=!0){try{return function(e){if(Q)return te.getStorageSync(e);if(Le()){const t=localStorage.getItem(e);if("undefined"!==t)return JSON.parse(t)}return}(t?be(e):e)}catch(e){return void console.warn("Storage.getStorageItem error:",e)}}function be(e){return`chat_engine_${e}`}function Le(){return navigator&&navigator.cookieEnabled&&localStorage}class Ne{constructor(e){this.TUIUserService=e}getEngine(){return this.TUIUserService.getEngine()}init(){const e=this.getEngine(),t=Ge("displayOnlineStatus")||!1;e.TUIStore.update(p.USER,"displayOnlineStatus",t),e.eventCenter.addEvent(e.EVENT.USER_STATUS_UPDATED,this.onUserStatusUpdated.bind(this)),this.onConversationListUpdated()}onConversationListUpdated(){const e=this.getEngine();e.TUIStore.watch(p.CONV,{conversationList:()=>{const t=e.TUIStore.getData(p.APP,"enabledOnlineStatus"),s=e.TUIStore.getData(p.USER,"displayOnlineStatus");t&&s&&this.startToSubscribe()}})}onUserStatusUpdated(e){this.getEngine().TUIStore.update(p.USER,"userStatusList",e)}switchUserStatus(e){const t=this.getEngine(),{displayOnlineStatus:s=!1}=e;t.TUIStore.update(p.USER,"displayOnlineStatus",s),Ae("displayOnlineStatus",s);const i=t.TUIStore.getData(p.APP,"enabledOnlineStatus");i?!0===s?this.startToSubscribe():this.unsubscribeUserStatus().catch(e=>{console.warn("UserStatusHandler.switchUserStatus error:",e)}):console.warn(`UserStatusHandler.switchUserStatus enabledOnlineStatus:${i} displayOnlineStatus:${s}`)}getUserStatus(e){const t=this.getEngine();return t.chat.getUserStatus(e).then(e=>{const{successUserList:s}=e.data;return s.length>0&&t.TUIStore.update(p.USER,"userStatusList",s),e}).catch(e=>Promise.reject(e))}subscribeUserStatus(e){var t;const s=(null===(t=null==e?void 0:e.userIDList)||void 0===t?void 0:t.length)||0;return 0===s?(console.warn(`UserStatusHandler.subscribeUserStatus userID count:${s}`),Promise.resolve()):this.getEngine().chat.subscribeUserStatus(e)}unsubscribeUserStatus(e){const t=this.getEngine(),{userIDList:s=[]}=e||{};return t.chat.unsubscribeUserStatus({userIDList:s}).then(e=>{const{failureUserList:i}=e.data,n=[];return s.forEach(e=>{i.includes(e)||n.push({userID:e,statusType:T.UNSUB_USER})}),t.TUIStore.update(p.USER,"userStatusList",n),e}).catch(e=>Promise.reject(e))}startToSubscribe(){const e=this.getEngine(),t=e.TUIStore.getData(p.CONV,"conversationList"),s=e.TUIStore.getData(p.USER,"userStatusList"),i=[];t.forEach(t=>{if(t.type===e.TYPES.CONV_C2C){const n=t.conversationID.replace(e.TYPES.CONV_C2C,"");s.has(n)||i.push(n)}}),0!==i.length&&e.chat.isReady()&&(this.subscribeUserStatus({userIDList:i}).catch(e=>{console.warn("UserStatusHandler.startToSubscribe,",e)}),this.getUserStatus({userIDList:i}).catch(e=>{console.warn("UserStatusHandler.startToSubscribe,",e)}))}}class je extends Te{constructor(){super(),this.userProfileHandler=new Oe(this),this.userStatusHandler=new Ne(this)}static getInstance(){return je.instance||(je.instance=new je),je.instance}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.KICKED_OUT,this.onKickedOut.bind(this)),e.eventCenter.addEvent(e.EVENT.NET_STATE_CHANGE,this.onNetStateChange.bind(this)),this.userProfileHandler.init(),this.userStatusHandler.init(),this.initMessageReadReceipt()}onKickedOut(e){this.getEngine().TUIStore.update(p.USER,"kickedOut",e.type)}onNetStateChange(e){this.getEngine().TUIStore.update(p.USER,"netStateChange",e.state)}initMessageReadReceipt(){const e=Ge("displayMessageReadReceipt")||!0;this.getEngine().TUIStore.update(p.USER,"displayMessageReadReceipt",e)}switchUserStatus(e){return this.userStatusHandler.switchUserStatus(e)}switchMessageReadStatus(e){this.getEngine().TUIStore.update(p.USER,"displayMessageReadReceipt",e),Ae("displayMessageReadReceipt",e)}getUserProfile(e){return this.userProfileHandler.getUserProfile(e)}updateMyProfile(e){return this.userProfileHandler.updateMyProfile(e)}addToBlacklist(e){return this.userProfileHandler.addToBlacklist(e)}removeFromBlacklist(e){return this.userProfileHandler.removeFromBlacklist(e)}getUserStatus(e){return this.userStatusHandler.getUserStatus(e)}subscribeUserStatus(e){return this.userStatusHandler.subscribeUserStatus(e)}unsubscribeUserStatus(e){return this.userStatusHandler.unsubscribeUserStatus(e)}}class ke{constructor(e){this.TUIChatService=e,this.userShowNameMap=new Map,this.requestedUserMap=new Map}getEngine(){return this.TUIChatService.getEngine()}t(e){return this.getEngine().TUITranslate.t(e)}handleTextMessage(e){return{text:this.decodeText(e.payload)}}handleFaceMessage(e){const t={name:"",url:"",type:""};return e.payload.data.indexOf("@custom")>-1?(t.name=e.payload.data,t.type="custom",t):(t.name=e.payload.data.indexOf("@2x")<0?`${e.payload.data}@2x`:e.payload.data,t.url=`${k}${t.name}.png`,t)}handleLocationMessage(e){const t={lon:"",lat:"",href:"",url:"",description:""};return t.lon=e.payload.longitude.toFixed(6),t.lat=e.payload.latitude.toFixed(6),t.href=`${x}pointx=${t.lon}&pointy=${t.lat}&name=${e.payload.description}`,t.url=`${w}center=${t.lat},${t.lon}&zoom=10&size=300*150&maptype=roadmap&markers=size:large|color:0xFFCCFF|label:k|${t.lat},${t.lon}&key=UBNBZ-PTP3P-TE7DB-LHRTI-Y4YLE-VWBBD`,t.description=e.payload.description,t}handleImageMessage(e){return{url:e.payload.imageInfoArray[0].url,width:e.payload.imageInfoArray[0].width,height:e.payload.imageInfoArray[0].height}}handleAudioMessage(e){return{url:e.payload.url,second:e.payload.second}}handleVideoMessage(e){return{url:e.payload.videoUrl,snapshotUrl:e.payload.snapshotUrl,snapshotWidth:e.payload.snapshotWidth,snapshotHeight:e.payload.snapshotHeight}}handleFileMessage(e){return{url:e.payload.fileUrl,name:e.payload.fileName,size:G(e.payload.fileSize)}}handleCustomMessage(e){var t;const s=this.handleCreateGroupCustomMessage(e);return{custom:this.handleCallKitSignaling(e)||s||(null===(t=null==e?void 0:e.payload)||void 0===t?void 0:t.extension)||`${this.t("TUIChat.[自定义消息]")}`,businessID:s?"group_create":""}}handleMergeMessage(e){return Object.assign({},e.payload)}handleGroupTipsMessage(e){var t,s,i,n,a,r;const o=this.getEngine(),g={text:""};let c=(null==e?void 0:e.nick)||(null===(s=null===(t=null==e?void 0:e.payload)||void 0===t?void 0:t.userIDList)||void 0===s?void 0:s.join(","));switch((null===(n=null===(i=null==e?void 0:e.payload)||void 0===i?void 0:i.memberList)||void 0===n?void 0:n.length)>0&&(c="",null===(r=null===(a=null==e?void 0:e.payload)||void 0===a?void 0:a.memberList)||void 0===r||r.map(e=>{const t=(null==e?void 0:e.nick)||(null==e?void 0:e.userID);return c+=`${this.substringByLength(t)},`,e}),c=null==c?void 0:c.slice(0,-1)),e.payload.operationType){case o.TYPES.GRP_TIP_MBR_JOIN:g.text=`${c} ${this.t("message.tip.加入群组")}`;break;case o.TYPES.GRP_TIP_MBR_QUIT:g.text=`${this.t("message.tip.群成员")}:${c} ${this.t("message.tip.退出群组")}`;break;case o.TYPES.GRP_TIP_MBR_KICKED_OUT:g.text=`${this.t("message.tip.群成员")}:${c} ${this.t("message.tip.被")}${this.t("message.tip.踢出群组")}`;break;case o.TYPES.GRP_TIP_MBR_SET_ADMIN:g.text=`${this.t("message.tip.群成员")}:${c} ${this.t("message.tip.成为管理员")}`;break;case o.TYPES.GRP_TIP_MBR_CANCELED_ADMIN:g.text=`${this.t("message.tip.群成员")}:${c} ${this.t("message.tip.被撤销管理员")}`;break;case o.TYPES.GRP_TIP_GRP_PROFILE_UPDATED:g.text=this.handleGroupProfileUpdated(e);break;case o.TYPES.GRP_TIP_MBR_PROFILE_UPDATED:for(const t of e.payload.memberList)t.muteTime>0?g.text=`${this.t("message.tip.群成员")}:${c} ${this.t("message.tip.被禁言")}`:g.text=`${this.t("message.tip.群成员")}:${c} ${this.t("message.tip.被取消禁言")}`;break;default:g.text=`[${this.t("message.tip.群提示消息")}]`}return g}handleGroupSystemMessage(e){const t=e.payload.groupProfile.name||e.payload.groupProfile.groupID,s={text:""};switch(e.payload.operationType){case 1:s.text=`${e.payload.operatorID} ${this.t("message.tip.申请加入群组")}:${t}`;break;case 2:s.text=`${this.t("message.tip.成功加入群组")}:${t}`;break;case 3:s.text=`${this.t("message.tip.申请加入群组")}:${t} ${this.t("message.tip.被拒绝")}`;break;case 4:s.text=`${this.t("message.tip.你被管理员")}${e.payload.operatorID} ${this.t("message.tip.踢出群组")}:${t}`;break;case 5:s.text=`${this.t("message.tip.群")}:${t} ${this.t("message.tip.被")} ${e.payload.operatorID} ${this.t("message.tip.解散")}`;break;case 6:s.text=`${e.payload.operatorID} ${this.t("message.tip.创建群")}:${t}`;break;case 7:case 12:s.text=`${e.payload.operatorID} ${this.t("message.tip.邀请你加群")}:${t}`;break;case 8:s.text=`${this.t("message.tip.你退出群组")}:${t}`;break;case 9:s.text=`${this.t("message.tip.你被")}${e.payload.operatorID} ${this.t("message.tip.设置为群")}:${t} ${this.t("message.tip.的管理员")}`;break;case 10:s.text=`${this.t("message.tip.你被")}${e.payload.operatorID} ${this.t("message.tip.撤销群")}:${t} ${this.t("message.tip.的管理员身份")}`;break;case 13:s.text=`${e.payload.operatorID} ${this.t("message.tip.同意加群")}:${t}`;break;case 14:s.text=`${e.payload.operatorID} ${this.t("message.tip.拒接加群")}:${t}`;break;case 255:s.text=`${this.t("message.tip.自定义群系统通知")}: ${e.payload.userDefinedField}`;break;default:s.text="未解析的群系统通知"}return s}handleCallKitSignaling(e){var t,s,i,n,a,r,o,g,c,h;const u=A(e.payload.data);if(1!==(null==u?void 0:u.businessID))return"";const d=A(null==u?void 0:u.data),l=e.fromAccount||e.from,p=this.getEngine().TUIFriend.getFriendRemark([l]),T=this.getEngine().getMyUserID();let E=p[l]||e.nameCard||e.nick||l;switch(E=this.substringByLength(E),null==u?void 0:u.actionType){case 1:return"audioCall"!==(null===(t=null==d?void 0:d.data)||void 0===t?void 0:t.cmd)&&"videoCall"!==(null===(s=null==d?void 0:d.data)||void 0===s?void 0:s.cmd)||!(null==u?void 0:u.groupID)?"hangup"===(null===(i=null==d?void 0:d.data)||void 0===i?void 0:i.cmd)?(null==u?void 0:u.groupID)?`${this.t("message.custom.通话结束")}`:`${this.t("message.custom.通话时长")}:${function(e){const t=e;let s,i,n,a="";return t>=3600?(s=parseInt(""+t/3600,10)<10?`0${parseInt(""+t/3600,10)}`:parseInt(""+t/3600,10),i=parseInt(""+t%60/60,10)<10?`0${parseInt(""+t%60/60,10)}`:parseInt(""+t%60/60,10),n=t%3600<10?"0"+t%3600:t%3600,n>60&&(i=parseInt(""+n/60,10)<10?`0${parseInt(""+n/60,10)}`:parseInt(""+n/60,10),n=n%60<10?"0"+n%60:n%60),a=`${s}:${i}:${n}`):t>=60&&t<3600?(i=parseInt(""+t/60,10)<10?`0${parseInt(""+t/60,10)}`:parseInt(""+t/60,10),n=t%60<10?"0"+t%60:t%60,a=`00:${i}:${n}`):t<60&&(n=t<10?`0${t}`:t,a=`00:00:${n}`),a}(null==d?void 0:d.call_end)}`:"switchToAudio"===(null===(n=null==d?void 0:d.data)||void 0===n?void 0:n.cmd)?`${this.t("message.custom.切换语音通话")}`:"switchToVideo"===(null===(a=null==d?void 0:d.data)||void 0===a?void 0:a.cmd)?`${this.t("message.custom.切换视频通话")}`:`${this.t("message.custom.发起通话")}`:`${E} ${this.t("message.custom.发起通话")}`;case 2:return(null==u?void 0:u.groupID)?`${E} ${this.t("message.custom.取消通话")}`:this.isOldUIKit("message.custom.已取消")?this.t("message.custom.取消通话"):(null==u?void 0:u.inviter)===T?this.t("message.custom.已取消"):this.t("message.custom.对方已取消");case 3:return"switchToAudio"===(null===(r=null==d?void 0:d.data)||void 0===r?void 0:r.cmd)?`${this.t("message.custom.切换语音通话")}`:"switchToVideo"===(null===(o=null==d?void 0:d.data)||void 0===o?void 0:o.cmd)?`${this.t("message.custom.切换视频通话")}`:(null==u?void 0:u.groupID)?`${E} ${this.t("message.custom.已接听")}`:this.t("message.custom.已接听");case 4:return(null==u?void 0:u.groupID)?`${E} ${this.t("message.custom.拒绝通话")}`:this.isOldUIKit("message.custom.已拒绝")?this.t("message.custom.拒绝通话"):"line_busy"===(null==d?void 0:d.line_busy)||"lineBusy"===(null==d?void 0:d.data.message)?(null==u?void 0:u.inviter)===T?this.t("message.custom.对方忙线中"):this.t("message.custom.忙线未接听"):(null==u?void 0:u.inviter)===T?this.t("message.custom.对方已拒绝"):this.t("message.custom.已拒绝");case 5:if("switchToAudio"===(null===(g=null==d?void 0:d.data)||void 0===g?void 0:g.cmd))return`${this.t("message.custom.切换语音通话")}`;if("switchToVideo"===(null===(c=null==d?void 0:d.data)||void 0===c?void 0:c.cmd))return`${this.t("message.custom.切换视频通话")}`;if(null==u?void 0:u.groupID){if(l===(null==u?void 0:u.inviter)){this.handleCallkitTimeoutSignaling(u.inviteeList);let e="";return null===(h=u.inviteeList)||void 0===h||h.forEach(t=>{const s=this.userShowNameMap.get(t)||t;e+=`${this.substringByLength(s)}、`}),e=e.substring(0,e.lastIndexOf("、")),`${e} ${this.t("message.custom.无应答")}`}return`${E} ${this.t("message.custom.无应答")}`}return this.isOldUIKit("message.custom.对方无应答")?this.t("message.custom.无应答"):(null==u?void 0:u.inviter)===T?this.t("message.custom.对方无应答"):this.t("message.custom.超时无应答");default:return""}}handleCreateGroupCustomMessage(e){let t;const s=A(e.payload.data);return"group_create"===(null==s?void 0:s.businessID)&&(t=`${s.opUser} ${s.content}`),t}decodeText(e){const t=[];let s=e.text,i=-1,n=-1;for(;""!==s;)switch(i=s.indexOf("["),n=s.indexOf("]"),i){case 0:if(-1===n)t.push({name:"text",text:s}),s="";else{const e=s.slice(0,n+1);e.indexOf("@custom")>-1?(t.push({name:"img",src:"",type:"custom",emojiKey:e}),s=s.substring(n+1)):$[e]?(t.push({name:"img",src:j+$[e],emojiKey:e}),s=s.substring(n+1)):(t.push({name:"text",text:"["}),s=s.slice(1))}break;case-1:t.push({name:"text",text:s}),s="";break;default:t.push({name:"text",text:s.slice(0,i)}),s=s.substring(i)}return t}handleGroupProfileUpdated(e){const{nick:t,payload:s}=e,{newGroupProfile:i,memberList:n,operatorID:a}=s;let r="";const o=t||a,g=Object.keys(i)[0];switch(g){case"muteAllMembers":r=i[g]?`${this.t("message.tip.管理员")} ${o} ${this.t("message.tip.开启全员禁言")}`:`${this.t("message.tip.管理员")} ${o} ${this.t("message.tip.取消全员禁言")}`;break;case"ownerID":r=`${n[0].nick||n[0].userID} ${this.t("message.tip.成为新的群主")}`;break;case"groupName":r=`${o} ${this.t("message.tip.修改群名为")} ${i[g]}`;break;case"notification":r=this.isOldUIKit("message.tip.把群公告修改为")?`${o} ${this.t("message.tip.发布新公告")}`:`${o} ${this.t("message.tip.把群公告修改为")} "${i[g]}"`}return r}handleCallkitTimeoutSignaling(e=[]){if(0===e.length)return;const t=this.getEngine().TUIFriend.getFriendRemark(e),s=[];e.forEach(e=>{const i=t[e];i?this.userShowNameMap.set(e,i):this.requestedUserMap.has(e)||(s.push(e),this.requestedUserMap.set(e,1))}),s.length>0&&this.getEngine().TUIUser.getUserProfile({userIDList:s}).then(e=>{(e.data||[]).forEach(e=>{const{userID:t,nick:s}=e,i=s||t;this.userShowNameMap.set(t,i)})}).catch(()=>{})}substringByLength(e,t=12){return e.length>t?`${e.slice(0,t)}...`:e}isOldUIKit(e){var t;const s=e.lastIndexOf("."),i=e.slice(0,s+1);return null===(t=this.t(e))||void 0===t?void 0:t.startsWith(i)}}class xe{constructor(e){this.TUIChatService=e,this.typingTo="",this.timer=null}getEngine(){return this.TUIChatService.getEngine()}clearTypingStatus(){this.getEngine().TUIStore.getData(p.CHAT,"typingStatus")&&this.getEngine().TUIStore.update(p.CHAT,"typingStatus",!1),this.timer&&clearTimeout(this.timer),this.timer=null}handleLastMessage(e){const t=this.getEngine(),s=t.TUIStore.getData(p.CHAT,"typingStatus");if(e.type===this.getEngine().TYPES.MSG_CUSTOM&&"in"===e.flow){const i=A(e.payload.data);if(i.businessID===E.BUSINESS_ID){const{typingStatus:e,userAction:n}=i;if(e===E.STATUS_START||n===E.ACTION_START_ID)return s?(this.timer&&clearTimeout(this.timer),this.timer=null):t.TUIStore.update(p.CHAT,"typingStatus",!0),this.timer=setTimeout(()=>{this.clearTypingStatus()},3e4),t.TUIStore.getData(p.CHAT,"typingStatus");e!==E.STATUS_END&&n!==E.ACTION_END_ID||this.clearTypingStatus()}}}filterTypingMessage(e=[]){if(0===e.length)return[];return this.getEngine().TUIStore.getData(p.APP,"enableTyping")&&this.handleLastMessage(e[e.length-1]),e.filter(e=>{if(e.type===this.getEngine().TYPES.MSG_CUSTOM){return A(e.payload.data).businessID!==E.BUSINESS_ID}return!0})}createTypingMessage(e=E.STATUS_END,t=""){const{BUSINESS_ID:s,STATUS_START:i,VERSION:n,ACTION_START_ID:a,ACTION_END_ID:r,ACTION_START:o,ACTION_END:g,NEED_TYPING:c}=E;return{to:t,conversationType:this.getEngine().TYPES.CONV_C2C,payload:{data:JSON.stringify({businessID:s,typingStatus:e,version:n,userAction:e===i?a:r,actionParam:e===i?o:g}),description:"",extension:""},cloudCustomData:JSON.stringify({messageFeature:{needTyping:c,version:n}})}}sendTyping(e=!1,t=""){if(e){this.typingTo=t;const e=this.createTypingMessage(E.STATUS_START,t);this.getEngine().TUIChat.sendCustomMessage(e,{onlineUserOnly:!0})}else this.sendTypingEnd()}sendTypingEnd(){if(this.typingTo){const e=this.createTypingMessage(E.STATUS_END,this.typingTo);this.getEngine().TUIChat.sendCustomMessage(e,{onlineUserOnly:!0})}this.typingTo=""}}class we{constructor(e){this.TUIChatService=e}getEngine(){return this.TUIChatService.getEngine()}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.MESSAGE_READ_RECEIPT_RECEIVED,this.onMessageReadReceiptReceived.bind(this))}onMessageReadReceiptReceived(e){const t=this.getEngine(),s=t.TUIStore.getData(p.CONV,"currentConversationID"),i=[];e.forEach(e=>{const{messageID:n}=e,a=t.chat.findMessage(n);a&&s===a.conversationID&&i.push(a)}),i.length>0&&t.TUIChat.updateMessageList(i,"edit")}sendMessageReadReceipt(e){const t=[];return e.forEach(e=>{const s=e.getMessage();t.push(s)}),this.getEngine().chat.sendMessageReadReceipt(t)}getGroupMessageReadMemberList(e){const t=e.message.getMessage(),s=Object.assign(Object.assign({},e),{message:t});return this.getEngine().chat.getGroupMessageReadMemberList(s)}getMessageReadReceiptList(e){const t=this.getEngine(),s=t.TUIStore.getData(p.APP,"enabledMessageReadReceipt"),i=t.TUIStore.getData(p.USER,"displayMessageReadReceipt");!s||!i||0===e.length||e[0].conversationType!==t.TYPES.CONV_GROUP||t.chat.getMessageReadReceiptList(e).then(e=>{const{messageList:t}=e.data;this.TUIChatService.updateMessageList(t,"edit")}).catch(e=>{console.warn(`ReadReceiptHandler.getMessageReadReceiptList error:${e.message}`)})}}class $e extends Te{constructor(){super(),this.serv="TUIChatService",this.messageHandler=new ke(this),this.typingHandler=new xe(this),this.readReceiptHandler=new we(this),this.isSwitching=!0,this.delayGetHoppingFunction=void 0,this.hoppingConfigMap=new Map}static getInstance(){return $e.instance||($e.instance=new $e),$e.instance}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.MESSAGE_RECEIVED,this.onMessageReceived.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_MODIFIED,this.onMessageModified.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_REVOKED,this.onMessageRevoked.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_READ_BY_PEER,this.onMessageReadByPeer.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_REACTIONS_UPDATED,this.onMessageReactionsUpdated.bind(this)),this.onCurrentConversationIDUpdated(),this.onMessageSource(),this.readReceiptHandler.init()}onMessageReceived(e){this.updateMessageList(e,"received"),this.getEngine().TUIStore.update(p.CHAT,"newMessageList",e)}onMessageModified(e){this.updateMessageList(e,"edit")}onMessageRevoked(e){this.updateMessageList(e,"edit")}onMessageReadByPeer(e){this.updateMessageList(e,"edit")}onMessageReactionsUpdated(e){this.updateMessageReactionList([e])}onCurrentConversationIDUpdated(){const e=this.getEngine();e.TUIStore.watch(p.CONV,{currentConversationID:t=>{this.isSwitching=!0,this.delayGetHoppingFunction=void 0,this.hoppingConfigMap.clear(),e.TUIStore.reset(p.CHAT),this.typingHandler.clearTypingStatus(),this.typingHandler.sendTypingEnd(),Ee(t)||this.getMessageList().finally(()=>{this.isSwitching=!1,this.delayGetHoppingFunction&&this.delayGetHoppingFunction()})}})}onMessageSource(){const e=this.getEngine();e.TUIStore.watch(p.CHAT,{messageSource:t=>{const s=this.getStoreData(p.CONV,"currentConversationID");if(!s||t&&t.conversationID!==s)return;if(y(t))return this.hoppingConfigMap.clear(),e.TUIStore.update(p.CHAT,"messageList",[]),e.TUIStore.update(p.CHAT,"nextReqMessageID",""),e.TUIStore.update(p.CHAT,"isCompleted",!1),void this.getMessageList();const i=this.getStoreData(p.CHAT,"messageList");i&&i.find(e=>t&&e.ID===t.ID)||(this.isSwitching?this.delayGetHoppingFunction=this.getMessageListHoppingForDown:this.getMessageListHoppingForDown())}})}getMessageListHoppingForDown(){const e=this.getStoreData(p.CHAT,"messageList"),{conversationID:t,sequence:s,time:i,ID:n}=this.getStoreData(p.CHAT,"messageSource");if(e&&e.find(e=>n&&e.ID===n))return;const a=this.getEngine();a.TUIStore.update(p.CHAT,"messageList",[]),a.TUIStore.update(p.CHAT,"nextReqMessageID",""),a.TUIStore.update(p.CHAT,"isCompleted",!1),this.getMessageListHopping({conversationID:t,sequence:s,time:i,direction:1})}getStoreData(e,t){return this.getEngine().TUIStore.getData(e,t)}sendMessage(e,t){this.updateMessageList([e],"send");const s=this.getEngine().chat.sendMessage(e,t);return this.getResponse(s)}getResponse(e,t=!0,s=!0){return e.then(e=>{const s=e.data.messageList?e.data.messageList:[e.data.message];return t&&this.updateMessageList(s,"edit"),e}).catch(e=>{var t;return s&&(null===(t=null==e?void 0:e.data)||void 0===t?void 0:t.message)&&this.updateMessageList([e.data.message],"edit"),Promise.reject(e)})}updateMessageList(e,t=""){if(this.getStoreData(p.CHAT,"messageSource")&&"unshift"!==t&&"edit"!==t)return;const s=this.getStoreData(p.CHAT,"messageList"),i=this.updateTargetMessageList(e,s,t);this.getEngine().TUIStore.update(p.CHAT,"messageList",i)}updateTargetMessageList(e,t,s=""){const i=this.getStoreData(p.CONV,"currentConversationID");let n=e.filter(e=>e.conversationID===i);if(n=this.handleC2CCallSignaling(n),!s||0===n.length)return t;const a=t||[];let r=[];if("send"===s||"push"===s||"received"===s){const e=this.getStoreData(p.CHAT,"userInfo");Object.keys(e).length>0&&this.updateLocalMessage(n,e)}const o=this.getStoreData(p.APP,"enableAutoMessageRead");switch(s){case"edit":for(const e of t){const t=n.find(t=>t.ID===e.ID);r.push(t||e)}break;case"resend":r=a.filter(e=>e.ID!==n[0].ID).concat(n);break;case"send":r=a.concat(this.typingHandler.filterTypingMessage(n));break;case"push":r=a.concat(this.typingHandler.filterTypingMessage(n)),this.getEngine().chat.setMessageRead({conversationID:i});break;case"received":r=a.concat(this.typingHandler.filterTypingMessage(n)),r=this.sortMessageList(r),o&&this.getEngine().chat.setMessageRead({conversationID:i});break;case"unshift":r=n.filter(e=>0===a.length||!a.find(t=>t.ID===e.ID)),r.push(...a),r=this.sortMessageList(r)}return r}enterTypingState(){this.getStoreData(p.APP,"enableTyping")&&this.sendTyping(!0)}leaveTypingState(){this.getStoreData(p.APP,"enableTyping")&&this.sendTyping(!1)}sendTyping(e){const t=this.getEngine(),s=this.getStoreData(p.CONV,"currentConversationID");if(!s.startsWith(t.TYPES.CONV_C2C))return;const i=s.replace(t.TYPES.CONV_C2C,"");if(e){const e=this.getStoreData(p.CHAT,"messageList").filter(e=>"in"===e.flow);if(0===e.length)return;const t=1e3*e[e.length-1].time;if((new Date).getTime()-t>3e4)return}this.typingHandler.sendTyping(e,i)}quoteMessage(e){var t;return this.getEngine().TUIStore.update(p.CHAT,"quoteMessage",{message:e,type:"quote"}),null===(t=this.getEngine().TUIReport)||void 0===t||t.reportFeature(205),e}replyMessage(e){return this.getEngine().TUIStore.update(p.CHAT,"quoteMessage",{message:e,type:"reply"}),e}getCurrentConvInfo(){const{conversationID:e="",type:t}=this.getStoreData(p.CONV,"currentConversation")||{};return{to:e.replace(t,""),conversationType:t}}t(e){return this.getEngine().TUITranslate.t(e)||e}getMessageAbstractAndType(e){var t,s;const i=this.getEngine(),n={abstract:"",type:0};switch(e.type){case i.TYPES.MSG_TEXT:n.abstract=null===(t=null==e?void 0:e.payload)||void 0===t?void 0:t.text,n.type=1;break;case i.TYPES.MSG_CUSTOM:n.abstract="[自定义消息]",n.type=2;break;case i.TYPES.MSG_IMAGE:n.abstract="[图片]",n.type=3;break;case i.TYPES.MSG_AUDIO:n.abstract="[语音]",n.type=4;break;case i.TYPES.MSG_VIDEO:n.abstract="[视频]",n.type=5;break;case i.TYPES.MSG_FILE:n.abstract="[文件]",n.type=6;break;case i.TYPES.MSG_LOCATION:n.type=7;break;case i.TYPES.MSG_FACE:n.abstract="[表情]",n.type=8;break;case i.TYPES.MSG_GRP_TIP:n.type=9;break;case i.TYPES.MSG_MERGER:n.abstract=null===(s=null==e?void 0:e.payload)||void 0===s?void 0:s.title,n.type=10}return n}genMessageReply(e,t){if("reply"!==t&&"quote"!==t)return{};const{abstract:s,type:i}=this.getMessageAbstractAndType(e),n={messageAbstract:s,messageSender:e.nick||e.from,messageID:e.ID},a=Object.assign(Object.assign({},n),{messageType:i,messageTime:null==e?void 0:e.time,messageSequence:null==e?void 0:e.sequence,version:1});if("reply"===t&&(a.messageRootID=e.ID,e.cloudCustomData)){const t=A(e.cloudCustomData);t.messageReply&&t.messageReply.messageRootID&&(a.messageRootID=t.messageReply.messageRootID)}return{messageReply:a,messageReplyRoot:n}}getMessageInfo(e,t,s){const{messageReply:i,messageReplyRoot:n}=this.genMessageReply(t,s),a=e.cloudCustomData?A(e.cloudCustomData):{};let r;if(a.messageReply?a.messageReply=Object.assign(Object.assign({},i),a.messageReply):a.messageReply=i,"reply"===s){const{messageRootID:e}=i;r=this.getEngine().chat.findMessage(e);const t=(null==r?void 0:r.cloudCustomData)?A(r.cloudCustomData):{};t.messageReplies||(t.messageReplies={}),o=t.messageReplies.replies,("function"==typeof Array.isArray?Array.isArray(o):"array"===Object.prototype.toString.call(o).match(/^\[object (.*)\]$/)[1].toLowerCase())||(t.messageReplies.replies=[]),t.messageReplies.replies.push(n),r.cloudCustomData=JSON.stringify(t)}var o;return{cloudCustomData:JSON.stringify(a),rootMessage:r}}sendTextMessage(e,t){const s=this.getEngine(),{message:i,type:n}=this.getStoreData(p.CHAT,"quoteMessage");let a={cloudCustomData:e.cloudCustomData||"",rootMessage:void 0};i&&(a=this.getMessageInfo(e,i,n));const r=s.chat.createTextMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{cloudCustomData:a.cloudCustomData}));return this.sendMessage(r,t).then(e=>(a.rootMessage&&this.modifyMessage(a.rootMessage),s.TUIStore.reset(p.CHAT,["quoteMessage"],!0),e))}sendTextAtMessage(e,t){const s=this.getEngine(),{message:i,type:n}=this.getStoreData(p.CHAT,"quoteMessage");let a={cloudCustomData:e.cloudCustomData||"",rootMessage:void 0};i&&(a=this.getMessageInfo(e,i,n));const r=s.chat.createTextAtMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{cloudCustomData:a.cloudCustomData}));return this.sendMessage(r,t).then(e=>(a.rootMessage&&this.modifyMessage(a.rootMessage),s.TUIStore.reset(p.CHAT,["quoteMessage"],!0),e))}sendImageMessage(e,t){const s=this.getEngine().chat.createImageMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{onProgress:e=>{this.onProgress(s.ID,e)}}));return this.sendMessage(s,t)}sendAudioMessage(e,t){const s=this.getEngine().chat.createAudioMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{onProgress:e=>{this.onProgress(s.ID,e)}}));return this.sendMessage(s,t)}sendVideoMessage(e,t){const s=this.getEngine().chat.createVideoMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{onProgress:e=>{this.onProgress(s.ID,e)}}));return this.sendMessage(s,t)}sendCustomMessage(e,t){const s=this.getEngine().chat.createCustomMessage(Object.assign(Object.assign({},this.getCurrentConvInfo()),e));return this.sendMessage(s,t)}sendFaceMessage(e,t){const s=this.getEngine().chat.createFaceMessage(Object.assign(Object.assign({},this.getCurrentConvInfo()),e));return this.sendMessage(s,t)}sendFileMessage(e,t){const s=this.getEngine().chat.createFileMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{onProgress:e=>{this.onProgress(s.ID,e)}}));return this.sendMessage(s,t)}sendLocationMessage(e,t){const s=this.getEngine().chat.createLocationMessage(Object.assign(Object.assign({},this.getCurrentConvInfo()),e));return this.sendMessage(s,t)}onProgress(e,t){const s=this.getEngine().TUIStore.getMessageModel(e);if(s){(t-s.progress>=.1||1===t)&&(s.progress=t,this.updateMessageList([s],"edit"))}}setAbstractList(e){const t=this.getEngine(),s=e.nick||e.from;let i="";switch(e.type){case t.TYPES.MSG_TEXT:i=e.payload.text||"",i.length>20&&(i=i.slice(0,20));break;case t.TYPES.MSG_MERGER:i=`${this.t("TUIChat.[聊天记录]")}`;break;case t.TYPES.MSG_IMAGE:i=`${this.t("TUIChat.[图片]")}`;break;case t.TYPES.MSG_AUDIO:i=`${this.t("TUIChat.[音频]")}`;break;case t.TYPES.MSG_VIDEO:i=`${this.t("TUIChat.[视频]")}`;break;case t.TYPES.MSG_CUSTOM:i=`${this.t("TUIChat.[自定义消息]")}`;break;case t.TYPES.MSG_FILE:i=`${this.t("TUIChat.[文件]")}`;break;case t.TYPES.MSG_FACE:i=`${this.t("TUIChat.[动画表情]")}`}return`${s}: ${i}`}genMergerForwardPayload(e,t){const{abstractList:s=[],compatibleText:i="",title:n}=t;return 0===s.length&&e.forEach(e=>{s.push(this.setAbstractList(e))}),{messageList:e,title:n,abstractList:s,compatibleText:i||this.t("TUIChat.请升级IMSDK到v2.10.1或更高版本查看此消息")}}genSendMergerForwardMessage(e){const{conversationList:t,messageList:s,params:i,mergeInfo:n,sendMessageOptions:a}=e,r=[];for(let e=0;e<t.length;e++){const{conversationID:o,type:g}=t[e],c=Object.assign({to:o.replace(`${g}`,""),conversationType:g,payload:this.genMergerForwardPayload(s,n)},i),h=this.getEngine().chat.createMergerMessage(c);r.push(this.sendMessage(h,a))}return r}genTitle(e,t){const{nick:s,from:i,to:n}=e;return`${s||i} ${this.t("TUIChat.和")} ${t||n} ${this.t("TUIChat.的聊天记录")}`}genMergeInfo(e){var t;return u(this,void 0,void 0,function*(){const{messageList:s,mergeInfo:i}=e;if(i.title)return i;if(s[0].conversationType===this.getEngine().TYPES.CONV_GROUP)return i.title=this.t("TUIChat.群聊的聊天记录"),i;try{const{data:e=[]}=yield this.getEngine().TUIUser.getUserProfile({userIDList:[s[0].to]});i.title=this.genTitle(s[0],null===(t=e[0])||void 0===t?void 0:t.nick)}catch(e){i.title=this.genTitle(s[0])}return i})}sendMergerForwardMessage(e){return u(this,void 0,void 0,function*(){return e.mergeInfo=yield this.genMergeInfo(e),Promise.all(this.genSendMergerForwardMessage(e))})}getOriginMessageList(e){return e.map(e=>e instanceof Ue?e.getMessage():e)}sendForwardMessage(e,t,s){t=this.getOriginMessageList(t);const i=s||{},{needMerge:n=!1,params:a={},mergeInfo:r={}}=i,o=h(i,["needMerge","params","mergeInfo"]);if(n)return this.sendMergerForwardMessage({conversationList:e,messageList:t,params:a,mergeInfo:r,sendMessageOptions:o});const g=[];for(let s=0;s<e.length;s++){const{conversationID:i,type:n}=e[s],r=Object.assign({to:i.replace(`${n}`,""),conversationType:n},a),c=o[i]||o;for(let e=0;e<t.length;e++){Reflect.set(r,"payload",t[e]);const s=this.getEngine().chat.createForwardMessage(r);g.push(this.sendMessage(s,c))}}return Promise.all(g)}revokeMessage(e){const t=this.getEngine().chat.revokeMessage(e);return this.getResponse(t,!0,!1)}resendMessage(e){e.status="unSend",this.updateMessageList([e],"resend");const t=this.getEngine().chat.resendMessage(e);return this.getResponse(t,!0,!0)}deleteMessage(e){const t=this.getEngine().chat.deleteMessage(e);return this.getResponse(t,!0,!1)}setMessageExtensions(e,t){return this.getEngine().chat.setMessageExtensions(e,t)}getMessageExtensions(e){return this.getEngine().chat.getMessageExtensions(e)}deleteMessageExtensions(e,t){return this.getEngine().chat.deleteMessageExtensions(e,t)}modifyMessage(e){const t=this.getEngine().chat.modifyMessage(e);return this.getResponse(t,!0,!1).catch(e=>{const{code:t=0,data:s={}}=e.code;throw t===m.MSG_MODIFY_CONFLICT?console.warn(`${U.MSG_MODIFY_CONFLICT} data.message: ${null==s?void 0:s.message}`):t===m.MSG_MODIFY_DISABLED_IN_AVCHATROOM?console.warn(U.MSG_MODIFY_DISABLED_IN_AVCHATROOM):t===m.MODIFY_MESSAGE_NOT_EXIST&&console.warn(U.MODIFY_MESSAGE_NOT_EXIST),e})}getMessageList(e={conversationID:this.getStoreData(p.CONV,"currentConversationID"),nextReqMessageID:this.getStoreData(p.CHAT,"nextReqMessageID")}){const t=this.getEngine();if(!t.chat.isReady())return Promise.reject({code:S.GET_MSG_LIST_ERROR,message:M.GET_MSG_LIST_ERROR});if(this.getStoreData(p.CHAT,"isCompleted"))return Promise.resolve({data:{messageList:[],nextReqMessageID:"",isCompleted:!0}});const s=this.getStoreData(p.CHAT,"messageSource"),i=this.hoppingConfigMap.get("nextMessageSeq"),n=this.hoppingConfigMap.get("nextMessageTime"),a=i||n;return s&&s.conversationID===(null==e?void 0:e.conversationID)&&a?this.getMessageListHopping():t.chat.getMessageList(e).then(e=>{var s;const{messageList:i,nextReqMessageID:n,isCompleted:a}=e.data,r=this.getStoreData(p.CHAT,"userInfo");Object.keys(r).length>0&&this.updateLocalMessage(i,r),this.updateMessageList(i,"unshift"),t.TUIStore.update(p.CHAT,"nextReqMessageID",n),t.TUIStore.update(p.CHAT,"isCompleted",a);const o=null===(s=i[0])||void 0===s?void 0:s.conversationID,{operationType:g=0}=this.getEngine().TUIStore.getConversationModel(o)||{};return 0===g&&(this.getMessageReactions({messageList:i}),this.readReceiptHandler.getMessageReadReceiptList(i)),e}).catch(e=>Promise.reject(e))}getMessageListHopping(e){var t;void 0===e&&(e={conversationID:null===(t=this.getStoreData(p.CHAT,"messageSource"))||void 0===t?void 0:t.conversationID,sequence:this.hoppingConfigMap.get("nextMessageSeq"),time:this.hoppingConfigMap.get("nextMessageTime")});const s=this.getEngine();return s.chat.getMessageListHopping(e).then(t=>{const{messageList:i,nextMessageSeq:n,nextMessageTime:a,isCompleted:r}=t.data,o=1===e.direction?e.sequence:n,g=1===e.direction?e.time:a;return this.updateMessageList(i,"unshift"),this.delayGetHoppingFunction=void 0,this.hoppingConfigMap.set("nextMessageSeq",o),this.hoppingConfigMap.set("nextMessageTime",g),s.TUIStore.update(p.CHAT,"isCompleted",r),t}).catch(e=>Promise.reject(e))}sendMessageReadReceipt(e){return this.readReceiptHandler.sendMessageReadReceipt(e)}getGroupMessageReadMemberList(e){return this.readReceiptHandler.getGroupMessageReadMemberList(e).then(e=>{const{isCompleted:t,cursor:s,messageID:i,unreadUserIDList:n,readUserIDList:a}=e.data,r={code:0,data:{cursor:s,isCompleted:t,messageID:i,unreadUserInfoList:[],readUserInfoList:[]}},o=[...n,...a];return 0===o.length?r:this.getEngine().TUIUser.getUserProfile({userIDList:o}).then(e=>(n.length>0?e.data.forEach(e=>{const{userID:t,nick:s="",avatar:i=""}=e;r.data.unreadUserInfoList.push({userID:t,nick:s,avatar:i})}):e.data.forEach(e=>{const{userID:t,nick:s="",avatar:i=""}=e;r.data.readUserInfoList.push({userID:t,nick:s,avatar:i})}),r))})}downloadMergedMessages(e){return this.getEngine().chat.downloadMergerMessage(e)}setTranslationLanguage(e){this.getEngine().TUIStore.update(p.USER,"targetLanguage",e)}translateText(e){const t=this.getStoreData(p.USER,"targetLanguage"),s=Object.assign({targetLanguage:t,sourceLanguage:"auto"},e);return this.getEngine().chat.translateText(s)}searchCloudMessages(e){return this.getEngine().TUISearch.searchCloudMessages(e)}addMessageReaction(e,t){return this.getEngine().chat.addMessageReaction(e.getMessage(),t)}removeMessageReaction(e,t){return this.getEngine().chat.removeMessageReaction(e.getMessage(),t)}getMessageReactions(e){const{messageList:t=[]}=e,s=this.getStoreData(p.APP,"enabledEmojiPlugin");console.log(`TUIChatService.getMessageReactions enabledEmojiPlugin:${s} messageList length:${t.length}`),s&&t.length>0&&this.getEngine().chat.getMessageReactions(e).then(e=>{const t=e.data.resultList||e.data;this.updateMessageReactionList(t)}).catch(()=>{})}getAllUserListOfMessageReaction(e){var t;return this.getEngine().chat.getAllUserListOfMessageReaction(Object.assign(Object.assign({},e),{message:null===(t=null==e?void 0:e.message)||void 0===t?void 0:t.getMessage()}))}updateMessageReactionList(e){const t=[];e.forEach(e=>{const{messageID:s,reactionList:i}=e,n=this.getEngine().TUIStore.getMessageModel(s);if(n){const e=[];for(let t=0;t<i.length;t++){let s=!0;for(let e=0;e<n.reactionList.length;e++)if(i[t].reactionID===n.reactionList[e].reactionID){n.reactionList[e]=i[t],s=!1;break}s&&e.push(i[t])}n.reactionList.push(...e),e.length=0,t.push(n)}}),t.length>0&&this.updateMessageList(t,"edit")}convertVoiceToText(e){const{message:t,language:s="zh"}=e,i=t.getMessage();return this.getEngine().chat.convertVoiceToText({message:i,language:s})}clearHistoryMessage(e){const t=this.getEngine();return t.chat.clearHistoryMessage(e).then(e=>(t.TUIStore.update(p.CHAT,"messageList",[]),t.TUIStore.update(p.CHAT,"nextReqMessageID",""),t.TUIStore.update(p.CHAT,"isCompleted",!1),e))}updateMessageInfo(e){const t=this.getStoreData(p.CHAT,"userInfo");this.getEngine().TUIStore.update(p.CHAT,"userInfo",Object.assign(t,e));const s=this.getStoreData(p.CHAT,"messageList");if(s.length>0){this.updateLocalMessage(s,e)&&this.getEngine().TUIStore.update(p.CHAT,"messageList",s)}}updateLocalMessage(e,t){let s=!1;return e.forEach(e=>{if(t[e.from]){const{nick:i,nameCard:n,avatar:a}=t[e.from];i&&(e.nick=i,s=!0),n&&(e.nameCard=n,s=!0),a&&(e.avatar=a,s=!0)}}),s}handleC2CCallSignaling(e=[]){var t,s,i,n,a;const r=[],o=this.getEngine(),g=o.getMyUserID();for(let c=0;c<e.length;c++){const h=e[c],{conversationType:u,type:d,payload:l}=h;let T=!0;if(u===o.TYPES.CONV_C2C&&d===o.TYPES.MSG_CUSTOM){if(o.chat.getSignalingInfo(h)){const e=A(l.data);if(1===(null==e?void 0:e.businessID)){const o=A(e.data);if(T=!(h._isExcludedFromUnreadCount&&h._isExcludedFromLastMessage),T&&!0!==(null===(t=null==o?void 0:o.data)||void 0===t?void 0:t.consumed)){let t=null===(s=null==o?void 0:o.data)||void 0===s?void 0:s.inviter;"line_busy"!==(null==o?void 0:o.line_busy)&&"lineBusy"!==(null===(i=null==o?void 0:o.data)||void 0===i?void 0:i.message)||(t=e.inviter);const c=JSON.parse(JSON.stringify(h)),{from:u,to:d}=c;if(t!==g&&c.from===g){const e=this.getStoreData(p.CONV,"currentConversation");c.from=d,c.to=u,c.flow="in",c.avatar=(null===(n=null==e?void 0:e.userProfile)||void 0===n?void 0:n.avatar)||""}if(t===g&&c.from!==g){const e=this.getStoreData(p.USER,"userProfile");c.from=d,c.to=u,c.flow="out",c.avatar=null==e?void 0:e.avatar}console.log(`${this.serv}.handleC2CCallSignaling myUserID:${g} callSignaling.inviter:${e.inviter} customData.data.inviter:${null===(a=null==o?void 0:o.data)||void 0===a?void 0:a.inviter}`),r.push(c);continue}}}}r.push(h)}return r}sortMessageList(e){const{conversationType:t}=e[0];if(t===this.getEngine().TYPES.CONV_C2C)return e.sort((e,t)=>e.time-t.time);const s=e.filter(e=>"success"===e.status).sort((e,t)=>e.sequence-t.sequence);for(let t=0;t<e.length;t++)"success"!==e[t].status&&s.splice(t,0,e[t]);return s}}class Ve extends Te{constructor(){super(),this.groupMap=new Map}static getInstance(){return Ve.instance||(Ve.instance=new Ve),Ve.instance}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.GROUP_LIST_UPDATED,this.onGroupListUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.GROUP_ATTRIBUTES_UPDATED,this.onGroupAttributesUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.GROUP_COUNTER_UPDATED,this.onGroupCounterUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_RECEIVED,this.onMessageReceived.bind(this)),this.getGroupInitData()}onGroupListUpdated(e){const t=this.getEngine();t.TUIStore.update(p.GRP,"groupList",e);const s=t.TUIStore.getData(p.GRP,"currentGroupID");e.forEach(e=>{e.groupID===s&&t.TUIStore.update(p.GRP,"currentGroup",e)})}onGroupAttributesUpdated(e){const t=this.getEngine(),s=t.TUIStore.getData(p.GRP,"currentGroupID");let i=t.TUIStore.getData(p.GRP,"groupList");const{groupID:n,groupAttributes:a}=e;s===n&&t.TUIStore.update(p.GRP,"currentGroupAttributes",a),i=i.map(e=>(e.groupID===n&&(e.groupAttributes=a),e)),t.TUIStore.update(p.GRP,"groupList",i)}onGroupCounterUpdated(e){const t=this.getEngine(),s=t.TUIStore.getData(p.GRP,"currentGroupID"),i=t.TUIStore.getData(p.GRP,"currentGroupCounters")||{};let n=t.TUIStore.getData(p.GRP,"groupList");const{groupID:a,key:r,value:o}=e;s===a&&(i[r]=o,t.TUIStore.update(p.GRP,"currentGroupCounters",i)),n=n.map(e=>(e.groupID===a&&(e.groupCounters=Object.assign(Object.assign({},e.groupCounters),{[r]:o})),e)),t.TUIStore.update(p.GRP,"groupList",n)}onMessageReceived(e){const t=this.getEngine(),s=[];e.forEach(e=>{if(e.type===t.TYPES.MSG_GRP_TIP){const{payload:s}=e,{operationType:i,userIDList:n}=s;switch(i){case t.TYPES.GRP_TIP_MBR_JOIN:this.addMemberList(n);break;case t.TYPES.GRP_TIP_MBR_QUIT:case t.TYPES.GRP_TIP_MBR_KICKED_OUT:this.removeMemberList(n);break;case t.TYPES.GRP_TIP_MBR_SET_ADMIN:case t.TYPES.GRP_TIP_MBR_CANCELED_ADMIN:this.updateGroupMember(n);break;case t.TYPES.GRP_TIP_GRP_PROFILE_UPDATED:break;case t.TYPES.GRP_TIP_MBR_PROFILE_UPDATED:case t.TYPES.GRP_TIP_BAN_AVCHATROOM_MEMBER:case t.TYPES.GRP_TIP_UNBAN_AVCHATROOM_MEMBER:this.updateGroupMember(n)}}e.type===t.TYPES.MSG_GRP_SYS_NOTICE&&s.push(e)}),s.length>0&&t.TUIStore.update(p.GRP,"groupSystemNoticeList",s)}getGroupInitData(){const e=this.getEngine();e.chat.isReady()&&e.chat.getGroupList().then(e=>{const{groupList:t=[]}=e.data;console.log(`TUIGroupService.init, getGroupList count:${t.length}`),t.length>0&&this.onGroupListUpdated(t)})}updateGroupMember(e){return u(this,void 0,void 0,function*(){const t=this.getEngine().TUIStore.getData(p.GRP,"currentGroupID");if(t){const s=yield this.getGroupMemberProfile({groupID:t,userIDList:e}),{memberList:i}=s.data;this.updateMemberList(i)}})}resetCurrentStore(){this.getEngine().TUIStore.reset(p.GRP,["currentGroupID","currentGroup","currentGroupAttributes","currentGroupCounters","currentGroupMemberList"],!0)}switchGroup(e){return u(this,void 0,void 0,function*(){const t=this.getEngine();t.TUIStore.update(p.GRP,"offset",0),t.TUIStore.update(p.GRP,"isCompleted",!1);const s=t.TUIStore.getConversationModel(`GROUP${e}`);if((null==s?void 0:s.operationType)>0){const e=t.TUIStore.getData(p.GRP,"currentGroup");return Promise.resolve(e)}const i=t.TUIStore.getData(p.GRP,"currentGroupID");if(!e)return this.resetCurrentStore(),Promise.resolve({});if(i===e){const e=t.TUIStore.getData(p.GRP,"currentGroup");return Promise.resolve(e)}this.resetCurrentStore(),t.TUIStore.update(p.GRP,"currentGroupID",e);try{yield this.getGroupInfo(e)}catch(e){Promise.reject(e)}const n=setTimeout(()=>{this.groupMap.delete(e),clearTimeout(n)},5e3),a=t.TUIStore.getData(p.GRP,"currentGroup");return Promise.resolve(a)})}getGroupInfo(e){return u(this,void 0,void 0,function*(){const t=this.getEngine(),s=this.groupMap.get(e);if(s)return this.updateMemberList((null==s?void 0:s.memberList)||[]),t.TUIStore.update(p.GRP,"currentGroup",s.group),t.TUIStore.update(p.GRP,"currentGroupAttributes",s.groupAttributes||{}),void t.TUIStore.update(p.GRP,"currentGroupCounters",s.counters||{});const i={group:{},memberList:[],groupAttributes:void 0,counters:void 0},{data:{group:n}}=yield this.getGroupProfile({groupID:e});i.group=n;const{data:{memberList:a}}=yield this.getGroupMemberList({groupID:e});i.memberList=a;const r=yield this.getGroupAttributes({groupID:e,keyList:[]}),{groupAttributes:o}=r.data;i.groupAttributes=o,t.TUIStore.update(p.GRP,"currentGroupAttributes",o);try{const s=yield this.getGroupCounters({groupID:e,keyList:[]}),{counters:n}=s.data;i.counters=n,t.TUIStore.update(p.GRP,"currentGroupCounters",n)}catch(e){console.warn(null==e?void 0:e.message)}this.groupMap.set(e,i)})}getGroupProfile(e){const t=this.getEngine();return t.chat.getGroupProfile(e).then(s=>u(this,void 0,void 0,function*(){if(t.TUIStore.getData(p.GRP,"currentGroupID")===e.groupID){const{group:e}=s.data;t.TUIStore.update(p.GRP,"currentGroup",e)}return s}))}updateGroupProfile(e){return this.getEngine().chat.updateGroupProfile(e)}createGroup(e){return this.getEngine().chat.createGroup(e)}dismissGroup(e){return this.getEngine().chat.dismissGroup(e)}searchGroupByID(e){const t=this.getEngine();return t.chat.searchGroupByID(e).then(e=>{const{group:s}=e.data,i=t.TUIStore.getData(p.GRP,"groupList");return e.data.group.isJoinedGroup=i.some(e=>e.groupID===s.groupID),e})}joinGroup(e){return this.getEngine().chat.joinGroup(e)}quitGroup(e){return this.getEngine().chat.quitGroup(e)}getGroupApplicationList(){return this.getEngine().chat.getGroupApplicationList()}handleGroupApplication(e){return this.getEngine().chat.handleGroupApplication(e)}getGroupOnlineMemberCount(e){return this.getEngine().chat.getGroupOnlineMemberCount(e)}changeGroupOwner(e){return this.getEngine().chat.changeGroupOwner(e)}initGroupAttributes(e){return this.getEngine().chat.initGroupAttributes(e)}setGroupAttributes(e){return this.getEngine().chat.setGroupAttributes(e)}deleteGroupAttributes(e){return this.getEngine().chat.deleteGroupAttributes(e)}getGroupAttributes(e){return this.getEngine().chat.getGroupAttributes(e)}setGroupCounters(e){return this.getEngine().chat.setGroupCounters(e)}increaseGroupCounter(e){return this.getEngine().chat.increaseGroupCounter(e)}decreaseGroupCounter(e){return this.getEngine().chat.decreaseGroupCounter(e)}getGroupCounters(e){return this.getEngine().chat.getGroupCounters(e)}updateMemberList(e){const t=this.getEngine(),s=[...(t.TUIStore.getData(p.GRP,"currentGroupMemberList")||[]).filter(t=>!e.find(e=>e.userID===t.userID)),...e];t.TUIStore.update(p.GRP,"currentGroupMemberList",s)}addMemberList(e){return u(this,void 0,void 0,function*(){const t=this.getEngine().TUIStore.getData(p.GRP,"currentGroupID");if(t)try{const s=yield this.getGroupMemberProfile({groupID:t,userIDList:e}),{memberList:i}=s.data;this.updateMemberList(i)}catch(t){const s=e.map(e=>({userID:e,avatar:"",nick:"",role:"",joinTime:0,nameCard:"",muteUntil:0,memberCustomField:[]}));this.updateMemberList(s)}})}removeMemberList(e){const t=this.getEngine(),s=t.TUIStore.getData(p.GRP,"currentGroupMemberList").filter(t=>-1===e.indexOf(t.userID));t.TUIStore.update(p.GRP,"currentGroupMemberList",s)}getGroupMemberList(e){const t=this.getEngine();if(y(e.offset)){const s=t.TUIStore.getData(p.GRP,"offset");e.offset=s}return t.chat.getGroupMemberList(e).then(s=>{if(t.TUIStore.getData(p.GRP,"currentGroupID")===e.groupID){const{memberList:e,offset:i=0}=s.data;this.updateMemberList(e),t.TUIStore.update(p.GRP,"offset",i),0===i&&t.TUIStore.update(p.GRP,"isCompleted",!0)}return s})}getGroupMemberProfile(e){return this.getEngine().chat.getGroupMemberProfile(e)}addGroupMember(e){const t=this.getEngine();return t.chat.addGroupMember(e).then(s=>u(this,void 0,void 0,function*(){if(t.TUIStore.getData(p.GRP,"currentGroupID")===e.groupID){const{successUserIDList:e,group:i}=s.data;t.TUIStore.update(p.GRP,"currentGroup",i),this.addMemberList(e)}return s}))}deleteGroupMember(e){const t=this.getEngine();return t.chat.deleteGroupMember(e).then(s=>{if(t.TUIStore.getData(p.GRP,"currentGroupID")===e.groupID){const{userIDList:e,group:i}=s.data;this.removeMemberList(e),t.TUIStore.update(p.GRP,"currentGroup",i)}return s})}setGroupMemberMuteTime(e){return this.getEngine().chat.setGroupMemberMuteTime(e)}setGroupMemberRole(e){return this.getEngine().chat.setGroupMemberRole(e)}setGroupMemberNameCard(e){return this.getEngine().chat.setGroupMemberNameCard(e)}setGroupMemberCustomField(e){return this.getEngine().chat.setGroupMemberCustomField(e)}markGroupMemberList(e){return this.getEngine().chat.markGroupMemberList(e)}}class Fe extends Te{constructor(){super(),this.tobeUpdatedFriendGroupList=void 0}static getInstance(){return Fe.instance||(Fe.instance=new Fe),Fe.instance}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.FRIEND_LIST_UPDATED,this.onFriendListUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.FRIEND_APPLICATION_LIST_UPDATED,this.onFriendApplicationListUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.FRIEND_GROUP_LIST_UPDATED,this.onFriendGroupListUpdated.bind(this)),this.getFriendInitData()}onFriendListUpdated(e){this.getEngine().TUIStore.update(p.FRIEND,"friendList",e),this.updatedFriendGroupList(e,this.tobeUpdatedFriendGroupList)}onFriendApplicationListUpdated(e){const{friendApplicationList:t,unreadCount:s=0}=e,i=this.getEngine();i.TUIStore.update(p.FRIEND,"friendApplicationList",t),i.TUIStore.update(p.FRIEND,"friendApplicationUnreadCount",s)}onFriendGroupListUpdated(e){const t=this.getEngine().TUIStore.getData(p.FRIEND,"friendList");t.length>0?this.updatedFriendGroupList(t,e):this.tobeUpdatedFriendGroupList=e}updatedFriendGroupList(e,t){const s=this.getEngine();if(t&&t.length>0){const i=t.map(t=>{const{userIDList:s}=t,i=h(t,["userIDList"]),n=s.map(t=>e.find(e=>e.userID===t));return Object.assign(Object.assign({},i),{friendList:n})});s.TUIStore.update(p.FRIEND,"friendGroupList",i),this.tobeUpdatedFriendGroupList=void 0}}getFriendInitData(){const e=this.getEngine();e.chat.isReady()&&(e.chat.getFriendList().then(e=>{const t=e.data||[];console.log(`TUIFriendService.init, getFriendList count:${t.length}`),t.length>0&&this.onFriendListUpdated(t)}),e.chat.getFriendGroupList().then(e=>{const t=e.data||[];console.log(`TUIFriendService.init, getFriendGroupList count:${t.length}`),t.length>0&&this.onFriendGroupListUpdated(t)}),e.chat.getFriendApplicationList().then(e=>{this.onFriendApplicationListUpdated(e.data)}))}getFriendList(){return this.getEngine().chat.getFriendList()}getFriendRemark(e){const t=this.getEngine().TUIStore.getData(p.FRIEND,"friendList"),s={};return e.forEach(e=>{for(let i=0;i<t.length;i++)t[i].userID!==e||(s[e]=t[i].remark)}),s}addFriend(e){return this.getEngine().chat.addFriend(e)}deleteFriend(e){return this.getEngine().chat.deleteFriend(e)}checkFriend(e){return this.getEngine().chat.checkFriend(e)}getFriendProfile(e){return this.getEngine().chat.getFriendProfile(e)}updateFriend(e){return this.getEngine().chat.updateFriend(e)}acceptFriendApplication(e){return this.getEngine().chat.acceptFriendApplication(e)}refuseFriendApplication(e){return this.getEngine().chat.refuseFriendApplication({userID:e})}deleteFriendApplication(e){return this.getEngine().chat.deleteFriendApplication(e)}setFriendApplicationRead(){return this.getEngine().chat.setFriendApplicationRead()}createFriendGroup(e){return this.getEngine().chat.createFriendGroup(e)}deleteFriendGroup(e){return this.getEngine().chat.deleteFriendGroup({name:e})}addToFriendGroup(e){return this.getEngine().chat.addToFriendGroup(e)}removeFromFriendGroup(e){return this.getEngine().chat.removeFromFriendGroup(e)}renameFriendGroup(e){return this.getEngine().chat.renameFriendGroup(e)}}class He extends Te{static getInstance(){return He.instance||(He.instance=new He),He.instance}reportFeature(e,t){var s;return null===(s=this.getEngine().chat)||void 0===s?void 0:s.callExperimentalAPI("statTUIKeyFeatures",{code:e,msg:t?`${e}-${t}`:""})}}var Ye,Be,Ke;!function(e){e.MESSAGE="message",e.CHAT_MESSAGE="chat_message",e.USER="user",e.GROUP="group"}(Ye||(Ye={})),function(e){e.MSG_TEXT="TIMTextElem",e.MSG_IMAGE="TIMImageElem",e.MSG_SOUND="TIMSoundElem",e.MSG_FILE="TIMFileElem",e.MSG_VIDEO="TIMVideoFileElem",e.MSG_LOCATION="TIMLocationElem",e.MSG_CUSTOM="TIMCustomElem",e.MSG_MERGER="TIMRelayElem"}(Be||(Be={})),function(e){e.GRP_WORK="Private",e.GRP_PUBLIC="Public",e.GRP_MEETING="ChatRoom",e.GRP_COMMUNITY="Community"}(Ke||(Ke={}));class qe extends Te{constructor(){super(),this.resultKeyMap={[Ye.MESSAGE]:"searchMessagesResult",[Ye.CHAT_MESSAGE]:"searchChatMessagesResult",[Ye.USER]:"searchUserResult",[Ye.GROUP]:"searchGroupResult"},this.paramsKeyMap={[Ye.MESSAGE]:"searchMessageParams",[Ye.CHAT_MESSAGE]:"searchChatMessageParams",[Ye.USER]:"searchUserParams",[Ye.GROUP]:"searchGroupParams"}}static getInstance(){return qe.instance||(qe.instance=new qe),qe.instance}getStoreData(e,t){return this.getEngine().TUIStore.getData(e,t)}handleSearchResult(e,t){const{resultList:s}=this.getStoreData(p.SEARCH,this.resultKeyMap[e]),{cursor:i,searchResultList:n,params:a,totalCount:r}=t,o=[];if(e===Ye.CHAT_MESSAGE){const{conversation:e}=s[0]||{},{conversation:t}=n[0]||{};(null==e?void 0:e.conversationID)===(null==t?void 0:t.conversationID)&&1===s.length&&(n[0].messageList=[...s[0].messageList,...n[0].messageList]),o.push(...n)}else o.push(...s,...n);this.getEngine().TUIStore.update(p.SEARCH,this.resultKeyMap[e],{resultList:o,params:a,hasMore:!!i,cursor:i,totalCount:r})}searchParamsValidate(e,t){const s=this.getStoreData(p.SEARCH,this.paramsKeyMap[e]),{cursor:i}=s,n=h(s,["cursor"]),{cursor:a}=t,r=h(t,["cursor"]),o=JSON.stringify(n)===JSON.stringify(r),g=!!a,c=a===i;return o?o&&!g?(this.getEngine().TUIStore.reset(p.SEARCH,[this.resultKeyMap[e]]),this.getEngine().TUIStore.update(p.SEARCH,this.paramsKeyMap[e],t),!0):!(!o||!g||c):(this.getEngine().TUIStore.reset(p.SEARCH,[this.resultKeyMap[e]]),this.getEngine().TUIStore.update(p.SEARCH,this.paramsKeyMap[e],t),!0)}searchCloudMessages(e){const{keyword:t,keywordList:s,conversationID:i}=e,n=h(e,["keyword","keywordList","conversationID"]);let a=!0;if(a=i?this.searchParamsValidate(Ye.CHAT_MESSAGE,e):this.searchParamsValidate(Ye.MESSAGE,e),!a)return Promise.resolve();const r=this.getStoreData(p.CONV,"conversationList");return this.getEngine().chat.searchCloudMessages(Object.assign({keywordList:t?[t]:s||void 0,keywordListMatchType:"or",conversationID:i},n)).then(t=>u(this,void 0,void 0,function*(){const{searchResultList:s}=t.data;if((null==s?void 0:s.length)>0){const e=[];if(t.data.searchResultList=s.map(t=>{const{messageList:s,conversationID:i}=t,n=h(t,["messageList","conversationID"]),a=s.map(e=>new Ue(e)),o=r.find(e=>e.conversationID===i);return y(o)&&e.push(Pe.getInstance().getConversationProfile(i)),Object.assign(Object.assign({},n),{messageList:a.sort((e,t)=>t.time-e.time),conversation:o})}),e.length>0)try{const i=yield Promise.all(e);t.data.searchResultList=s.map(e=>{const{messageList:t,conversationID:s}=e,n=h(e,["messageList","conversationID"]),a=t.map(e=>new Ue(e)),{data:{conversation:r}}=i.find(e=>e.data.conversation.conversationID===s),o=new me(r);return Object.assign(Object.assign({},n),{messageList:a.sort((e,t)=>t.time-e.time),conversation:o})})}catch(e){console.log("fetch conversation error",e)}}return t.data.params=e,i?this.handleSearchResult(Ye.CHAT_MESSAGE,t.data):this.handleSearchResult(Ye.MESSAGE,t.data),t})).catch(e=>(this.getEngine().TUIStore.update(p.SEARCH,"error",e),Promise.reject(e)))}searchCloudUsers(t){const{keyword:s,keywordList:i}=t,n=h(t,["keyword","keywordList"]),a=this.getStoreData(p.FRIEND,"friendList");return this.searchParamsValidate(Ye.USER,t)?this.getEngine().chat.searchCloudUsers(Object.assign({keywordList:s?[s]:i||void 0,keywordListMatchType:"or"},n)).then(s=>{const{searchResultList:i}=s.data;if(i.length>0){const t=new Map(i.map(t=>[t.userID,{profile:t,relation:e.TYPES.SNS_TYPE_NO_RELATION}]));a.forEach(s=>{const{userID:i}=s,n=t.get(i);n&&(n.relation=e.TYPES.SNS_TYPE_BOTH_WAY)}),s.data.searchResultList=Array.from(t.values())}return s.data.params=t,this.handleSearchResult(Ye.USER,s.data),s}).catch(e=>(this.getEngine().TUIStore.update(p.SEARCH,"error",e),Promise.reject(e))):Promise.resolve()}searchCloudGroups(e){const{keyword:t,keywordList:s}=e,i=h(e,["keyword","keywordList"]),n=this.getStoreData(p.CONV,"conversationList"),a=this.getStoreData(p.GRP,"groupList");return this.searchParamsValidate(Ye.GROUP,e)?this.getEngine().chat.searchCloudGroups(Object.assign({keywordList:t?[t]:s||void 0,keywordListMatchType:"or"},i)).then(t=>{const{searchResultList:s}=t.data;return s.length>0&&(t.data.searchResultList=s.map(e=>{const t=a.find(t=>t.groupID===e.groupID),s=n.find(t=>t.conversationID===`GROUP${e.groupID}`);return{groupInfo:t||e,conversation:s}})),t.data.params=e,this.handleSearchResult(Ye.GROUP,t.data),t}).catch(e=>(this.getEngine().TUIStore.update(p.SEARCH,"error",e),Promise.reject(e))):Promise.resolve()}}class ze{constructor(){this.cache=[],this.middlewares=[],this.options=null}use(e){return"function"!=typeof e&&console.error("middleware must be a function"),this.cache.push(e),this}next(){if(this.middlewares&&this.middlewares.length>0){return this.middlewares.shift().call(this,this.options,this.next.bind(this))}}run(e){return this.middlewares=this.cache.map(e=>e),this.options=e,this.next()}}function We(e,t,s){const i=Object.create(null);Object.keys(s).forEach(s=>{if(!t[s])return;i[s]=t[s];const n=new ze;t[s]=function(){const a=Array.from(arguments);return n.use((t,i)=>e.isInited?i():Promise.reject({code:S.NOT_INIT,message:`${s} | ${M.NOT_INIT}`})).use(e=>i[s].apply(t,e)),n.run(a)}})}console.log("TUIChatEngine-Lite.VERSION:1.0.3");const Je=de.getInstance(),Xe=ce.getInstance(),Ze=Re.getInstance(),Qe=ye.getInstance(),et=Pe.getInstance(),st=je.getInstance(),it=$e.getInstance(),nt=Ve.getInstance(),at=Fe.getInstance(),rt=He.getInstance(),ot=qe.getInstance();Je.mount(l.TUIStore,Ze),Je.mount(l.TUITranslate,Qe),Je.mount(l.TUIConversation,et),Je.mount(l.TUIUser,st),Je.mount(l.TUIChat,it),Je.mount(l.TUIGroup,nt),Je.mount(l.TUIFriend,at),Je.mount(l.TUIReport,rt),Je.mount(l.TUISearch,ot),We(Je,Je,f),We(Je,et,_),We(Je,it,C),We(Je,nt,v),We(Je,st,D),We(Je,at,R),We(Je,rt,f),We(Je,ot,f);export{Ke as GroupType,Ye as ISearchType,Be as MessageType,p as StoreName,Je as TUIChatEngine,it as TUIChatService,et as TUIConversationService,at as TUIFriendService,Xe as TUIGlobal,nt as TUIGroupService,rt as TUIReportService,ot as TUISearchService,Ze as TUIStore,Qe as TUITranslateService,st as TUIUserService,Je as default};
|
|
1
|
+
import e from"@tencentcloud/lite-chat/basic";import t from"@tencentcloud/lite-chat/plugins/conversation";import s from"@tencentcloud/lite-chat/plugins/group";import i from"@tencentcloud/lite-chat/plugins/avchatroom";import n from"@tencentcloud/lite-chat/plugins/message-enhancer";import a from"@tencentcloud/lite-chat/plugins/rich-media-message";import r from"@tencentcloud/lite-chat/plugins/cloud-search";import o from"@tencentcloud/lite-chat/plugins/signaling";import g from"@tencentcloud/lite-chat/plugins/friend";import c from"@tencentcloud/lite-chat/plugins/conversation-group";function h(e,t){var s={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(s[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(s[i[n]]=e[i[n]])}return s}function u(e,t,s,i){return new(s||(s=Promise))(function(n,a){function r(e){try{g(i.next(e))}catch(e){a(e)}}function o(e){try{g(i.throw(e))}catch(e){a(e)}}function g(e){var t;e.done?n(e.value):(t=e.value,t instanceof s?t:new s(function(e){e(t)})).then(r,o)}g((i=i.apply(e,t||[])).next())})}"function"==typeof SuppressedError&&SuppressedError;class d{constructor(e){return d.instance||(d.instance=this,this.engine=e,this.events={},this.bindIMEvents()),d.instance}addEvent(e,t){this.events[e]||(this.events[e]=new Map),this.events[e].set(t,1)}removeEvents(){Object.keys(this.events).forEach(e=>{this.events[e].clear()}),this.events={}}dispatch(e,t){if(this.events[e])for(const s of this.events[e].keys())s.call(this,t)}bindIMEvents(){this.engine.chat.on(this.engine.EVENT.SDK_READY,this.onSDKReady,this),this.engine.chat.on(this.engine.EVENT.SDK_NOT_READY,this.onSDKNotReady,this),this.engine.chat.on(this.engine.EVENT.KICKED_OUT,this.onKickedOut,this),this.engine.chat.on(this.engine.EVENT.NET_STATE_CHANGE,this.onNetStateChange,this),this.engine.chat.on(this.engine.EVENT.MESSAGE_RECEIVED,this.onReceiveMessage,this),this.engine.chat.on(this.engine.EVENT.MESSAGE_MODIFIED,this.onMessageModified,this),this.engine.chat.on(this.engine.EVENT.MESSAGE_REVOKED,this.onMessageRevoked,this),this.engine.chat.on(this.engine.EVENT.MESSAGE_READ_BY_PEER,this.onMessageReadByPeer,this),this.engine.chat.on(this.engine.EVENT.MESSAGE_READ_RECEIPT_RECEIVED,this.onMessageReadReceiptReceived,this),this.engine.chat.on(this.engine.EVENT.MESSAGE_REACTIONS_UPDATED,this.onMessageReactionsUpdated,this),this.engine.chat.on(this.engine.EVENT.CONVERSATION_LIST_UPDATED,this.onConversationListUpdated,this),this.engine.chat.on(this.engine.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED,this.onTotalMessageCountUpdated,this),this.engine.chat.on(this.engine.EVENT.PROFILE_UPDATED,this.onProfileUpdated,this),this.engine.chat.on(this.engine.EVENT.BLACKLIST_UPDATED,this.onBlacklistUpdated,this),this.engine.chat.on(this.engine.EVENT.USER_STATUS_UPDATED,this.onUserStatusUpdated,this),this.engine.chat.on(this.engine.EVENT.GROUP_LIST_UPDATED,this.onGroupListUpdated,this),this.engine.chat.on(this.engine.EVENT.GROUP_ATTRIBUTES_UPDATED,this.onGroupAttributesUpdated,this),this.engine.chat.on(this.engine.EVENT.GROUP_COUNTER_UPDATED,this.onGroupCounterUpdated,this),this.engine.chat.on(this.engine.EVENT.FRIEND_LIST_UPDATED,this.onFriendListUpdated,this),this.engine.chat.on(this.engine.EVENT.FRIEND_APPLICATION_LIST_UPDATED,this.onFriendApplicationListUpdated,this),this.engine.chat.on(this.engine.EVENT.FRIEND_GROUP_LIST_UPDATED,this.onFriendGroupListUpdated,this)}unbindIMEvents(){this.engine.chat.off(this.engine.EVENT.SDK_READY,this.onSDKReady,this),this.engine.chat.off(this.engine.EVENT.SDK_NOT_READY,this.onSDKNotReady,this),this.engine.chat.off(this.engine.EVENT.KICKED_OUT,this.onKickedOut,this),this.engine.chat.off(this.engine.EVENT.NET_STATE_CHANGE,this.onNetStateChange,this),this.engine.chat.off(this.engine.EVENT.MESSAGE_RECEIVED,this.onReceiveMessage,this),this.engine.chat.off(this.engine.EVENT.MESSAGE_MODIFIED,this.onMessageModified,this),this.engine.chat.off(this.engine.EVENT.MESSAGE_REVOKED,this.onMessageRevoked,this),this.engine.chat.off(this.engine.EVENT.MESSAGE_READ_BY_PEER,this.onMessageReadByPeer,this),this.engine.chat.off(this.engine.EVENT.MESSAGE_READ_RECEIPT_RECEIVED,this.onMessageReadReceiptReceived,this),this.engine.chat.off(this.engine.EVENT.MESSAGE_REACTIONS_UPDATED,this.onMessageReactionsUpdated,this),this.engine.chat.off(this.engine.EVENT.CONVERSATION_LIST_UPDATED,this.onConversationListUpdated,this),this.engine.chat.off(this.engine.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED,this.onTotalMessageCountUpdated,this),this.engine.chat.off(this.engine.EVENT.PROFILE_UPDATED,this.onProfileUpdated,this),this.engine.chat.off(this.engine.EVENT.BLACKLIST_UPDATED,this.onBlacklistUpdated,this),this.engine.chat.off(this.engine.EVENT.USER_STATUS_UPDATED,this.onUserStatusUpdated,this),this.engine.chat.off(this.engine.EVENT.GROUP_LIST_UPDATED,this.onGroupListUpdated,this),this.engine.chat.off(this.engine.EVENT.GROUP_ATTRIBUTES_UPDATED,this.onGroupAttributesUpdated,this),this.engine.chat.off(this.engine.EVENT.GROUP_COUNTER_UPDATED,this.onGroupCounterUpdated,this),this.engine.chat.off(this.engine.EVENT.FRIEND_LIST_UPDATED,this.onFriendListUpdated,this),this.engine.chat.off(this.engine.EVENT.FRIEND_APPLICATION_LIST_UPDATED,this.onFriendApplicationListUpdated,this),this.engine.chat.off(this.engine.EVENT.FRIEND_GROUP_LIST_UPDATED,this.onFriendGroupListUpdated,this),d.instance=null}onSDKReady(e){this.dispatch(this.engine.EVENT.SDK_READY,e.data)}onSDKNotReady(e){this.dispatch(this.engine.EVENT.SDK_NOT_READY,e.data)}onKickedOut(e){this.dispatch(this.engine.EVENT.KICKED_OUT,e.data)}onNetStateChange(e){this.dispatch(this.engine.EVENT.NET_STATE_CHANGE,e.data)}onReceiveMessage(e){this.dispatch(this.engine.EVENT.MESSAGE_RECEIVED,e.data)}onMessageModified(e){this.dispatch(this.engine.EVENT.MESSAGE_MODIFIED,e.data)}onMessageRevoked(e){this.dispatch(this.engine.EVENT.MESSAGE_REVOKED,e.data)}onMessageReadByPeer(e){this.dispatch(this.engine.EVENT.MESSAGE_READ_BY_PEER,e.data)}onMessageReadReceiptReceived(e){this.dispatch(this.engine.EVENT.MESSAGE_READ_RECEIPT_RECEIVED,e.data)}onMessageReactionsUpdated(e){this.dispatch(this.engine.EVENT.MESSAGE_REACTIONS_UPDATED,e.data)}onConversationListUpdated(e){this.dispatch(this.engine.EVENT.CONVERSATION_LIST_UPDATED,e.data)}onTotalMessageCountUpdated(e){this.dispatch(this.engine.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED,e.data)}onProfileUpdated(e){this.dispatch(this.engine.EVENT.PROFILE_UPDATED,e.data)}onBlacklistUpdated(e){this.dispatch(this.engine.EVENT.BLACKLIST_UPDATED,e.data)}onUserStatusUpdated(e){this.dispatch(this.engine.EVENT.USER_STATUS_UPDATED,e.data)}onGroupListUpdated(e){this.dispatch(this.engine.EVENT.GROUP_LIST_UPDATED,e.data)}onGroupAttributesUpdated(e){this.dispatch(this.engine.EVENT.GROUP_ATTRIBUTES_UPDATED,e.data)}onGroupCounterUpdated(e){this.dispatch(this.engine.EVENT.GROUP_COUNTER_UPDATED,e.data)}onFriendListUpdated(e){this.dispatch(this.engine.EVENT.FRIEND_LIST_UPDATED,e.data)}onFriendApplicationListUpdated(e){this.dispatch(this.engine.EVENT.FRIEND_APPLICATION_LIST_UPDATED,e.data)}onFriendGroupListUpdated(e){this.dispatch(this.engine.EVENT.FRIEND_GROUP_LIST_UPDATED,e.data)}}var l,p,T,E,I,m,S,U,M;!function(e){e.TUIStore="TUIStore",e.TUITranslate="TUITranslate",e.TUIConversation="TUIConversation",e.TUIChat="TUIChat",e.TUIGroup="TUIGroup",e.TUIUser="TUIUser",e.TUIFriend="TUIFriend",e.TUIReport="TUIReport",e.TUISearch="TUISearch"}(l||(l={})),function(e){e.APP="application",e.CONV="conversation",e.CHAT="chat",e.GRP="group",e.USER="user",e.FRIEND="friend",e.SEARCH="search",e.CUSTOM="custom"}(p||(p={})),function(e){e[e.UNSUB_USER=-1]="UNSUB_USER"}(T||(T={})),function(e){e.BUSINESS_ID="user_typing_status",e[e.STATUS_START=1]="STATUS_START",e[e.STATUS_END=0]="STATUS_END",e[e.VERSION=1]="VERSION",e[e.ACTION_START_ID=14]="ACTION_START_ID",e[e.ACTION_END_ID=0]="ACTION_END_ID",e.ACTION_START="EIMAMSG_InputStatus_Ing",e.ACTION_END="EIMAMSG_InputStatus_End",e[e.NEED_TYPING=1]="NEED_TYPING"}(E||(E={})),function(e){e.ADD="add",e.REMOVE="remove"}(I||(I={})),function(e){e[e.MSG_MODIFY_CONFLICT=2480]="MSG_MODIFY_CONFLICT",e[e.MSG_MODIFY_DISABLED_IN_AVCHATROOM=2481]="MSG_MODIFY_DISABLED_IN_AVCHATROOM",e[e.MODIFY_MESSAGE_NOT_EXIST=20026]="MODIFY_MESSAGE_NOT_EXIST"}(m||(m={})),function(e){e[e.NOT_INIT=-1e5]="NOT_INIT",e[e.INVALID_CONV_ID=-100001]="INVALID_CONV_ID",e[e.CONV_ID_SAME=-100002]="CONV_ID_SAME",e[e.CONV_NOT_EXIST=-100003]="CONV_NOT_EXIST",e[e.GET_MSG_LIST_ERROR=-100004]="GET_MSG_LIST_ERROR",e[e.MISMATCH_TYPE_AND_PAYLOAD=-100005]="MISMATCH_TYPE_AND_PAYLOAD"}(S||(S={})),function(e){e.MSG_MODIFY_CONFLICT="MODIFY_MESSAGE_ERROR,修改消息发生冲突, data.message 是最新的消息",e.MSG_MODIFY_DISABLED_IN_AVCHATROOM="MODIFY_MESSAGE_ERROR,不支持修改直播群消息.",e.MODIFY_MESSAGE_NOT_EXIST="MODIFY_MESSAGE_ERROR,消息不存在."}(U||(U={})),function(e){e.NOT_INIT="TUIChatEngine 初始化未完成,请确认 TUIChatEngine.login 接口调用是否正常。",e.INVALID_CONV_ID="会话 ID 无效",e.CONV_ID_SAME="您切换的是同一个会话 ID",e.CONV_NOT_EXIST="会话不存在",e.GET_MSG_LIST_ERROR="Chat SDK is not ready.",e.MISMATCH_TYPE_AND_PAYLOAD="type 与 payload 不匹配."}(M||(M={}));const f={logout:1,destroy:1},_={deleteConversation:1,pinConversation:1,muteConversation:1,switchConversation:1,getConversationProfile:1,clearHistoryMessage:1,setMessageRead:1,markConversation:1},C={modifyMessage:1,revokeMessage:1,resendMessage:1,deleteMessage:1,quoteMessage:1,replyMessage:1,setMessageExtensions:1,deleteMessageExtensions:1,getMessageExtensions:1,sendTextMessage:1,sendTextAtMessage:1,sendImageMessage:1,sendAudioMessage:1,sendVideoMessage:1,sendFileMessage:1,sendCustomMessage:1,sendFaceMessage:1,sendLocationMessage:1,sendForwardMessage:1,enterTypingState:1,leaveTypingState:1,sendMessageReadReceipt:1,getGroupMessageReadMemberList:1,getMessageList:1,downloadMergedMessages:1,setTranslationLanguage:1,translateText:1,searchCloudMessages:1,addMessageReaction:1,removeMessageReaction:1,getMessageReactions:1,getAllUserListOfMessageReaction:1},v={switchGroup:1,getGroupProfile:1,updateGroupProfile:1,createGroup:1,dismissGroup:1,searchGroupByID:1,joinGroup:1,quitGroup:1,getGroupApplicationList:1,handleGroupApplication:1,getGroupOnlineMemberCount:1,changeGroupOwner:1,initGroupAttributes:1,setGroupAttributes:1,deleteGroupAttributes:1,getGroupAttributes:1,setGroupCounters:1,increaseGroupCounter:1,decreaseGroupCounter:1,getGroupCounters:1,getGroupMemberList:1,getGroupMemberProfile:1,addGroupMember:1,deleteGroupMember:1,setGroupMemberMuteTime:1,setGroupMemberRole:1,setGroupMemberNameCard:1,setGroupMemberCustomField:1,markGroupMemberList:1},D={switchUserStatus:1,switchMessageReadStatus:1,getUserProfile:1,updateMyProfile:1,addToBlacklist:1,removeFromBlacklist:1},y={getFriendList:1,addFriend:1,deleteFriend:1,checkFriend:1,getFriendProfile:1,updateFriend:1,acceptFriendApplication:1,refuseFriendApplication:1,deleteFriendApplication:1,setFriendApplicationRead:1},R=function(e){return void 0===e},P=function(e){return e.startsWith("_")},O=function(e){return/^(https?:\/\/(([a-zA-Z0-9]+-?)+[a-zA-Z0-9]+\.)+[a-zA-Z]+)(:\d+)?(\/.*)?(\?.*)?(#.*)?$/.test(e)};const A=function(e){return e&&function(e){if("string"==typeof e)try{return!!JSON.parse(e)}catch(e){return!1}return!1}(e)?JSON.parse(e):e},G=function(e){let t="";return t=e>=1048576?`${(e/1048576).toFixed(2)} Mb`:e>=1024?`${(e/1024).toFixed(2)} Kb`:`${e.toFixed(2)}B`,t},b="https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_16.png",L="https://web.sdk.qcloud.com/im/demo/TUIkit/web/img/constomer.png",N="https://web.sdk.qcloud.com/component/TUIKit/assets/group_avatar.png",j="https://web.sdk.qcloud.com/im/assets/emoji-plugin/",k="https://web.sdk.qcloud.com/im/assets/face-elem/",x="https://map.qq.com/?type=marker&isopeninfowin=1&markertype=1&",w="https://apis.map.qq.com/ws/staticmap/v2/?",$={"[TUIEmoji_Expect]":"emoji_0@2x.png","[TUIEmoji_Blink]":"emoji_1@2x.png","[TUIEmoji_Guffaw]":"emoji_2@2x.png","[TUIEmoji_KindSmile]":"emoji_3@2x.png","[TUIEmoji_Haha]":"emoji_4@2x.png","[TUIEmoji_Cheerful]":"emoji_5@2x.png","[TUIEmoji_Smile]":"emoji_6@2x.png","[TUIEmoji_Sorrow]":"emoji_7@2x.png","[TUIEmoji_Speechless]":"emoji_8@2x.png","[TUIEmoji_Amazed]":"emoji_9@2x.png","[TUIEmoji_Complacent]":"emoji_10@2x.png","[TUIEmoji_Lustful]":"emoji_11@2x.png","[TUIEmoji_Stareyes]":"emoji_12@2x.png","[TUIEmoji_Giggle]":"emoji_13@2x.png","[TUIEmoji_Daemon]":"emoji_14@2x.png","[TUIEmoji_Rage]":"emoji_15@2x.png","[TUIEmoji_Yawn]":"emoji_16@2x.png","[TUIEmoji_TearsLaugh]":"emoji_17@2x.png","[TUIEmoji_Silly]":"emoji_18@2x.png","[TUIEmoji_Wail]":"emoji_19@2x.png","[TUIEmoji_Kiss]":"emoji_20@2x.png","[TUIEmoji_Trapped]":"emoji_21@2x.png","[TUIEmoji_Fear]":"emoji_22@2x.png","[TUIEmoji_BareTeeth]":"emoji_23@2x.png","[TUIEmoji_FlareUp]":"emoji_24@2x.png","[TUIEmoji_Tact]":"emoji_25@2x.png","[TUIEmoji_Shit]":"emoji_26@2x.png","[TUIEmoji_ShutUp]":"emoji_27@2x.png","[TUIEmoji_Sigh]":"emoji_28@2x.png","[TUIEmoji_Hehe]":"emoji_29@2x.png","[TUIEmoji_Silent]":"emoji_30@2x.png","[TUIEmoji_Skull]":"emoji_31@2x.png","[TUIEmoji_Mask]":"emoji_32@2x.png","[TUIEmoji_Beer]":"emoji_33@2x.png","[TUIEmoji_Cake]":"emoji_34@2x.png","[TUIEmoji_RedPacket]":"emoji_35@2x.png","[TUIEmoji_Bombs]":"emoji_36@2x.png","[TUIEmoji_Ai]":"emoji_37@2x.png","[TUIEmoji_Celebrate]":"emoji_38@2x.png","[TUIEmoji_Bless]":"emoji_39@2x.png","[TUIEmoji_Flower]":"emoji_40@2x.png","[TUIEmoji_Watermelon]":"emoji_41@2x.png","[TUIEmoji_Cow]":"emoji_42@2x.png","[TUIEmoji_Fool]":"emoji_43@2x.png","[TUIEmoji_Surprised]":"emoji_44@2x.png","[TUIEmoji_Askance]":"emoji_45@2x.png","[TUIEmoji_Monster]":"emoji_46@2x.png","[TUIEmoji_Pig]":"emoji_47@2x.png","[TUIEmoji_Coffee]":"emoji_48@2x.png","[TUIEmoji_Ok]":"emoji_49@2x.png","[TUIEmoji_Heart]":"emoji_50@2x.png","[TUIEmoji_Sun]":"emoji_51@2x.png","[TUIEmoji_Moon]":"emoji_52@2x.png","[TUIEmoji_Star]":"emoji_53@2x.png","[TUIEmoji_Rich]":"emoji_54@2x.png","[TUIEmoji_Fortune]":"emoji_55@2x.png","[TUIEmoji_857]":"emoji_56@2x.png","[TUIEmoji_666]":"emoji_57@2x.png","[TUIEmoji_Prohibit]":"emoji_58@2x.png","[TUIEmoji_Convinced]":"emoji_59@2x.png","[TUIEmoji_Knife]":"emoji_60@2x.png","[TUIEmoji_Like]":"emoji_61@2x.png"},V={"[TUIEmoji_Smile]":"[微笑]","[TUIEmoji_Expect]":"[期待]","[TUIEmoji_Blink]":"[眨眼]","[TUIEmoji_Guffaw]":"[大笑]","[TUIEmoji_KindSmile]":"[姨母笑]","[TUIEmoji_Haha]":"[哈哈哈]","[TUIEmoji_Cheerful]":"[愉快]","[TUIEmoji_Speechless]":"[无语]","[TUIEmoji_Amazed]":"[惊讶]","[TUIEmoji_Sorrow]":"[悲伤]","[TUIEmoji_Complacent]":"[得意]","[TUIEmoji_Silly]":"[傻了]","[TUIEmoji_Lustful]":"[色]","[TUIEmoji_Giggle]":"[憨笑]","[TUIEmoji_Kiss]":"[亲亲]","[TUIEmoji_Wail]":"[大哭]","[TUIEmoji_TearsLaugh]":"[哭笑]","[TUIEmoji_Trapped]":"[困]","[TUIEmoji_Mask]":"[口罩]","[TUIEmoji_Fear]":"[恐惧]","[TUIEmoji_BareTeeth]":"[龇牙]","[TUIEmoji_FlareUp]":"[发怒]","[TUIEmoji_Yawn]":"[打哈欠]","[TUIEmoji_Tact]":"[机智]","[TUIEmoji_Stareyes]":"[星星眼]","[TUIEmoji_ShutUp]":"[闭嘴]","[TUIEmoji_Sigh]":"[叹气]","[TUIEmoji_Hehe]":"[呵呵]","[TUIEmoji_Silent]":"[收声]","[TUIEmoji_Surprised]":"[惊喜]","[TUIEmoji_Askance]":"[白眼]","[TUIEmoji_Ok]":"[OK]","[TUIEmoji_Shit]":"[便便]","[TUIEmoji_Monster]":"[怪兽]","[TUIEmoji_Daemon]":"[恶魔]","[TUIEmoji_Rage]":"[恶魔怒]","[TUIEmoji_Fool]":"[衰]","[TUIEmoji_Pig]":"[猪]","[TUIEmoji_Cow]":"[牛]","[TUIEmoji_Ai]":"[AI]","[TUIEmoji_Skull]":"[骷髅]","[TUIEmoji_Bombs]":"[炸弹]","[TUIEmoji_Coffee]":"[咖啡]","[TUIEmoji_Cake]":"[蛋糕]","[TUIEmoji_Beer]":"[啤酒]","[TUIEmoji_Flower]":"[花]","[TUIEmoji_Watermelon]":"[瓜]","[TUIEmoji_Rich]":"[壕]","[TUIEmoji_Heart]":"[爱心]","[TUIEmoji_Moon]":"[月亮]","[TUIEmoji_Sun]":"[太阳]","[TUIEmoji_Star]":"[星星]","[TUIEmoji_RedPacket]":"[红包]","[TUIEmoji_Celebrate]":"[庆祝]","[TUIEmoji_Bless]":"[福]","[TUIEmoji_Fortune]":"[发]","[TUIEmoji_Convinced]":"[服]","[TUIEmoji_Prohibit]":"[禁]","[TUIEmoji_666]":"[666]","[TUIEmoji_857]":"[857]","[TUIEmoji_Knife]":"[刀]","[TUIEmoji_Like]":"[赞]"},F={enabledMessageReadReceipt:Math.pow(2,5),enabledEmojiPlugin:Math.pow(2,48),enabledOnlineStatus:Math.pow(2,7),enabledCustomerServicePlugin:Math.pow(2,40),enabledTranslationPlugin:Math.pow(2,38),enabledVoiceToText:Math.pow(2,39)},H=["messageList","conversationList","newMessageList"],Y=["translateTextInfo","voiceToTextInfo"],B="undefined"!=typeof wx&&"function"==typeof wx.getSystemInfoSync&&("mac"===wx.getSystemInfoSync().platform||"windows"===wx.getSystemInfoSync().platform),K="undefined"!=typeof wx&&"function"==typeof wx.getSystemInfoSync&&Boolean(wx.getSystemInfoSync().fontSizeSetting)||B,q="undefined"!=typeof qq&&"function"==typeof qq.getSystemInfoSync&&Boolean(qq.getSystemInfoSync().fontSizeSetting),z="undefined"!=typeof tt&&"function"==typeof tt.getSystemInfoSync&&Boolean(tt.getSystemInfoSync().fontSizeSetting),W="undefined"!=typeof swan&&"function"==typeof swan.getSystemInfoSync&&Boolean(swan.getSystemInfoSync().fontSizeSetting),J="undefined"!=typeof my&&"function"==typeof my.getSystemInfoSync&&Boolean(my.getSystemInfoSync().fontSizeSetting),X="undefined"!=typeof jd&&"function"==typeof jd.getSystemInfoSync,Z="undefined"!=typeof uni&&"undefined"==typeof window,Q=K||q||z||W||J||X||Z,ee=("undefined"!=typeof uni||"undefined"!=typeof window)&&!Q,te=q?qq:z?tt:W?swan:J?my:K?wx:Z?uni:X?jd:ee?window:{},se=ee&&window&&window.navigator&&window.navigator.userAgent||"",ie=/Android/i.test(se),ne=/(?:Windows Phone)/.test(se),ae=/(?:SymbianOS)/.test(se),re=/iPad/i.test(se)||/iPhone/i.test(se)||/iPod/i.test(se),oe=ie||ne||ae||re,ge=ee&&!oe;class ce{constructor(){this.global=te,this.isOfficial=!1}static getInstance(){return ce.instance||(ce.instance=new ce),ce.instance}initOfficial(e){this.isOfficial=e}getPlatform(){let e="";return ge?e="pc":oe?e="h5":K?e="wechat":Z&&!K&&(e="app"),e}}const he="group-module",ue="relationship-module";class de{constructor(){this.EVENT=e.EVENT,this.TYPES=e.TYPES,this.loginStatusPromise=new Map,this.userID="",this.isInited=!1}static getInstance(){return de.instance||(de.instance=new de),te.__$RTC_CHAT__=[t,s,i,n,a,r,o,g,c],de.instance}mount(e,t){this[e]=t}login(t){const{chat:s,SDKAppID:i,userID:n}=t,a=1400187352===i||1400188366===i;return this.createChat(t),this.userID=n,ce.getInstance().initOfficial(a),this.TUIStore.update(p.APP,"isOfficial",a),this.TUIStore.update(p.APP,"SDKVersion",e.VERSION),this.eventCenter=new d(this),this.eventCenter.removeEvents(),this.resetStore(),this.initService(),s&&s.isReady()?(console.log("TUIChatEngine.login ok, from TUICore."),this.TUIUser.getUserProfile(),this.checkCommercialAbility(),Promise.resolve({})):(this.eventCenter.addEvent(this.EVENT.SDK_READY,()=>{this.onSDKReady()}),this.eventCenter.addEvent(this.EVENT.SDK_NOT_READY,()=>{this.onSDKNotReady()}),this.loginChat(t))}logout(){return this.userID="",this.isInited=!1,this.resetStore(),this.chat.logout()}isReady(){var e;return(null===(e=this.chat)||void 0===e?void 0:e.isReady())||!1}setLogLevel(e){this.chat?this.chat.setLogLevel(e):console.warn("TUIChatEngine 初始化未完成,请确认 TUIChatEngine.login 接口调用是否正常。")}destroy(){return this.eventCenter.unbindIMEvents(),this.isInited=!1,this.resetStore(),this.chat.destroy()}getMyUserID(){return this.userID}resetStore(){this.TUIStore.reset(p.CHAT),this.TUIStore.reset(p.CONV),this.TUIStore.reset(p.GRP),this.TUIStore.reset(p.USER),this.TUIStore.reset(p.SEARCH),this.TUIStore.reset(p.FRIEND),this.TUIStore.reset(p.CUSTOM),console.log("TUIChatEngine.resetStore ok.")}initService(){this.TUIChat.init(),this.TUIConversation.init(),this.TUIUser.init(),this.initOptionalServices(),this.isInited=!0,console.log("TUIChatEngine.initService ok.")}initOptionalServices(){const t=e.VERSION.split(".");3===t[0]&&t[1]>=3&&t[2]>0?(!0===this.chat.callExperimentalAPI("canIUseModule",[he])&&this.TUIGroup.init(),!0===this.chat.callExperimentalAPI("canIUseModule",[ue])&&this.TUIFriend.init()):(this.TUIGroup.init(),this.TUIFriend.init())}createChat(u){const{chat:d}=u,l=h(u,["chat"]);R(d)?(this.chat=e.create(Object.assign(Object.assign({},l),{scene:"engine-lite"})),this.chat.use([t,s,i,n,a,r,o,g,c])):this.chat=d}loginChat(e){const{userID:t,userSig:s}=e;return new Promise((e,i)=>{this.chat.login({userID:t,userSig:s}).then(t=>{console.log("TUIChatEngine.loginChat ok."),this.checkCommercialAbility(),t.data.repeatLogin&&this.chat.isReady()&&e(t),this.loginStatusPromise.set("login",{resolve:e,reject:i,imResponse:t})}).catch(e=>{i(e)})})}onSDKReady(){if(this.loginStatusPromise.has("login")){const e=this.loginStatusPromise.get("login");e.resolve(e.imResponse),this.TUIUser.getUserProfile()}this.loginStatusPromise.delete("login")}onSDKNotReady(){if(this.loginStatusPromise.has("login")){this.loginStatusPromise.get("login").reject(new Error("sdk not ready"))}this.loginStatusPromise.delete("login"),this.resetStore()}checkCommercialAbility(){Object.keys(F).forEach(e=>{const t=F[e];this.chat.callExperimentalAPI("isCommercialAbilityEnabled",t).then(t=>{const{enabled:s=!1}=t.data;this.TUIStore.update(p.APP,e,s)})})}}class le{constructor(){this.defaultStore={enabledMessageReadReceipt:!1,enabledEmojiPlugin:!1,enabledOnlineStatus:!1,enabledCustomerServicePlugin:!1,enabledTranslationPlugin:!1,enabledVoiceToText:!1,enableTyping:!0,enableConversationDraft:!0,enableAutoMessageRead:!0,isOfficial:!1,SDKVersion:"3.0.0",tasks:{sendMessage:!1,revokeMessage:!1,modifyNickName:!1,groupChat:!1,muteGroup:!1,dismissGroup:!1,call:!1,searchCloudMessage:!1,customerService:!1,translateTextMessage:!1}},this.store={enabledEmojiPlugin:!1,enabledMessageReadReceipt:!1,enabledOnlineStatus:!1,enabledCustomerServicePlugin:!1,enabledTranslationPlugin:!1,enabledVoiceToText:!1,enableTyping:!0,enableConversationDraft:!0,enableAutoMessageRead:!0,isOfficial:!1,SDKVersion:"3.0.0",tasks:{sendMessage:!1,revokeMessage:!1,modifyNickName:!1,groupChat:!1,muteGroup:!1,dismissGroup:!1,call:!1,searchCloudMessage:!1,customerService:!1,translateTextMessage:!1}}}update(e,t){this.store[e]=t}getData(e){return this.store[e]}reset(e=[]){this.store=Object.assign(Object.assign(Object.assign({},this.defaultStore),this.store),e.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:this.defaultStore[t]}),{}))}}class pe{constructor(){this.defaultStore={userProfile:{},displayOnlineStatus:!1,displayMessageReadReceipt:!0,userStatusList:new Map,kickedOut:"",netStateChange:"",userBlacklist:[],targetLanguage:"zh"},this.store={userProfile:{},displayOnlineStatus:!1,displayMessageReadReceipt:!0,userStatusList:new Map,kickedOut:"",netStateChange:"",userBlacklist:[],targetLanguage:"zh"}}update(e,t){if("userStatusList"===e)this.updateUserStatusList(t);else this.store[e]=t}getData(e){return this.store[e]}reset(e=[]){this.store=Object.assign(Object.assign(Object.assign({},this.defaultStore),this.store),e.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:this.defaultStore[t]}),{}))}updateUserStatusList(e){0!==e.length?e.forEach(e=>{const{userID:t,statusType:s=0,customStatus:i=""}=e;s===T.UNSUB_USER?this.store.userStatusList.delete(t):this.store.userStatusList.set(t,{statusType:s,customStatus:i})}):this.store.userStatusList.clear()}}class Te{getEngine(){return de.getInstance()}}const Ee=function(e){if(null==e)return!0;if("boolean"==typeof e)return!1;if("number"==typeof e)return 0===e;if("string"==typeof e)return 0===e.length;if("function"==typeof e)return 0===e.length;if(Array.isArray(e))return 0===e.length;if(e instanceof Error)return""===e.message;if(function(e){if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);if(null===t)return!0;let s=t;for(;null!==Object.getPrototypeOf(s);)s=Object.getPrototypeOf(s);return t===s}(e)){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}return!1},Ie={"[Image]":"[图片]","[Voice]":"[语音]","[Video]":"[视频]","[File]":"[文件]","[Location]":"[位置]","[Animated Sticker]":"[动画表情]","[Custom Messages]":"[自定义消息]","[Group Notification]":"[群提示消息]","[Group System Message]":"[群系统消息]","[Chat Record]":"[聊天记录]","[Chat History]":"[聊天记录]"};class me extends Te{constructor(e){super(),this.initProxy(e),this.isMuted=this.messageRemindType===this.getEngine().TYPES.MSG_REMIND_ACPT_NOT_NOTE||this.messageRemindType===this.getEngine().TYPES.MSG_REMIND_DISCARD,this.operationType=0,this._conversation=e}initProxy(e){Object.keys(e).forEach(t=>{P(t)||(this[t]=e[t])})}updateProperties(e){Object.keys(e).forEach(t=>{P(t)||(this[t]=e[t])})}updateOperationType(e){this.operationType=e}getConversation(){return this._conversation}deleteConversation(e=!0){return this.getEngine().TUIConversation.deleteConversation({conversationIDList:[this.conversationID],clearHistoryMessage:e})}pinConversation(){return this.getEngine().TUIConversation.pinConversation({conversationID:this.conversationID,isPinned:!this.isPinned})}muteConversation(){const e=this.getEngine(),t={messageRemindType:!0===this.isMuted?e.TYPES.MSG_REMIND_ACPT_AND_NOTE:e.TYPES.MSG_REMIND_ACPT_NOT_NOTE};if(this.type===e.TYPES.CONV_C2C){const s=this.conversationID.replace(e.TYPES.CONV_C2C,"");t.userIDList=[s]}else if(this.type===e.TYPES.CONV_GROUP){const s=this.conversationID.replace(e.TYPES.CONV_GROUP,"");t.groupID=s}return e.TUIConversation.muteConversation(t)}setMessageRead(){return this.getEngine().TUIConversation.setMessageRead(this.conversationID)}getAvatar(){var e,t,s,i,n,a;const r=this.getEngine();let o="";switch(this.type){case r.TYPES.CONV_C2C:o=O(null===(e=this.userProfile)||void 0===e?void 0:e.avatar)?null===(t=this.userProfile)||void 0===t?void 0:t.avatar:b;break;case r.TYPES.CONV_GROUP:o=O(null===(s=this.groupProfile)||void 0===s?void 0:s.avatar)?null===(i=this.groupProfile)||void 0===i?void 0:i.avatar:L;break;case r.TYPES.CONV_SYSTEM:o=O(null===(n=this.groupProfile)||void 0===n?void 0:n.avatar)?null===(a=this.groupProfile)||void 0===a?void 0:a.avatar:N}return o}getShowName(){var e,t,s,i;const n=this.getEngine();let a="";switch(this.type){case n.TYPES.CONV_C2C:a=this.remark||(null===(e=this.userProfile)||void 0===e?void 0:e.nick)||(null===(t=this.userProfile)||void 0===t?void 0:t.userID)||"";break;case n.TYPES.CONV_GROUP:a=(null===(s=this.groupProfile)||void 0===s?void 0:s.name)||(null===(i=this.groupProfile)||void 0===i?void 0:i.groupID)||"";break;case n.TYPES.CONV_SYSTEM:a=n.TUITranslate.t("系统通知")}return a}getGroupAtInfo(){const e=this.getEngine(),t=e.TUITranslate.t.bind(e.TUITranslate),s=[`[${t("TUIConversation.有人@我")}]`,`[${t("TUIConversation.@所有人")}]`,`[${t("TUIConversation.@所有人")}][${t("TUIConversation.有人@我")}]`];let i="";for(let e=0;e<this.groupAtInfoList.length;e++)this.groupAtInfoList[e].atTypeArray[0]&&(i=s[this.groupAtInfoList[e].atTypeArray[0]-1]);return i}getLastMessage(e){return"time"===e?this.getLastMessageTime():"text"===e?this.getLastMessageText():(console.warn(`ConversationModel.getLastMessage key:${e} is invalid.`),null)}getLastMessageTime(){var e;const t=this.getEngine();let s="";return(null===(e=this.lastMessage)||void 0===e?void 0:e.lastTime)>0&&(s=function(e,t){const s=6e4,i=36e5,n=24*i,a=7*n,r=(new Date).getTime()-e;let o="";if(r<0)return o;const g=r/s,c=r/i,h=r/n,u=r/a;if(u>=1&&u<=4)o=` ${parseInt(`${u}`,10)} ${t("time.周")}${t("time.前")}`;else if(h>=1&&h<=6)o=` ${parseInt(`${h}`,10)} ${t("time.天")}${t("time.前")}`;else if(c>=1&&c<=23)o=` ${parseInt(`${c}`,10)} ${t("time.小时")}${t("time.前")}`;else if(g>=1&&g<=59)o=` ${parseInt(`${g}`,10)} ${t("time.分钟")}${t("time.前")}`;else if(r>=0&&r<=s)o=`${t("time.刚刚")}`;else{const t=new Date;t.setTime(e),o=`${t.getFullYear()}-${t.getMonth()+1<10?`0${t.getMonth()+1}`:t.getMonth()+1}-${t.getDate()<10?`0${t.getDate()}`:t.getDate()}`}return o}(1e3*this.lastMessage.lastTime,t.TUITranslate.t.bind(t.TUITranslate))),s}getLastMessageText(){var e;if(this.draftText){return A(this.draftText).abstract}const t=this.getEngine(),s=t.TUITranslate.t.bind(t.TUITranslate);if(4===this.operationType)return s("TUIConversation.您已被群管理员移出群聊");if(5===this.operationType)return s("TUIConversation.该群聊已被解散");if(8===this.operationType)return s("TUIConversation.您已退出该群聊");const i=this._conversation,{lastMessage:n}=this;let a="",r="";const o=i.unreadCount>0&&i.messageRemindType===t.TYPES.MSG_REMIND_ACPT_NOT_NOTE?`[${i.unreadCount>99?"99+":i.unreadCount}${s("TUIConversation.条")}]`:"";if(i.type===t.TYPES.CONV_GROUP)if(n.fromAccount===t.getMyUserID())a=s("TUIConversation.我");else{const e=n.fromAccount;a=t.TUIFriend.getFriendRemark([e])[e]||n.nameCard||n.nick||e}if(n.type===t.TYPES.MSG_TEXT)r=this.decodeTextMessage(n.payload.text);else if(n.type===t.TYPES.MSG_CUSTOM){const i=A(null===(e=null==n?void 0:n.payload)||void 0===e?void 0:e.data);if(1===(null==i?void 0:i.businessID))return r=t.TUIChat.messageHandler.handleCallKitSignaling(n),r;const a=n.messageForShow;r=Ie[a]?s(`TUIChat.${Ie[a]}`):a}else{const e=n.messageForShow;r=Ie[e]?s(`TUIChat.${Ie[e]}`):e}return n.isRevoked&&(r=s("TUIChat.撤回了一条消息")),i.type===t.TYPES.CONV_GROUP&&n.type===t.TYPES.MSG_GRP_TIP?r:`${o}${a?`${a}:`:""}${r}`}decodeTextMessage(e){if(Ee(e))return e;const t=/(\[.+?\])/g;let s=e;if(t.test(e)){const i=this.getEngine(),n=i.TUITranslate.t.bind(i.TUITranslate);s=e.replace(t,e=>{const t=n(`Emoji.${e}`);return K||!t||t.startsWith("Emoji.")?V[e]||e:t})}return s}}class Se{constructor(){this.defaultStore={currentConversationID:"",totalUnreadCount:0,conversationList:[],currentConversation:null,operationTypeMap:new Map},this.store={currentConversationID:"",totalUnreadCount:0,conversationList:[],currentConversation:null,operationTypeMap:new Map}}update(e,t){switch(e){case"conversationList":this.updateConversationList(t);break;case"operationTypeMap":this.updateOperationTypeMap(t);break;default:this.store[e]=t}}getData(e){return this.store[e]}getModel(e){return this.store.conversationList.find(t=>t.conversationID===e)}reset(e=[]){this.store=Object.assign(Object.assign(Object.assign({},this.defaultStore),this.store),e.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:this.defaultStore[t]}),{}))}updateConversationList(e){const t=[];e.forEach(e=>{let s=e;e instanceof me?s.updateProperties(e):s=new me(e);const i=this.getOperationType(e);s.updateOperationType(i),t.push(s)}),this.store.conversationList=t}updateOperationTypeMap(e){const{conversationID:t,operationType:s=0}=e;this.store.operationTypeMap.set(t,s)}getOperationType(e){const{conversationID:t}=e;return this.store.operationTypeMap.get(t)||0}}class Ue extends Te{constructor(e){super(),this.messageHandlers={[this.getEngine().TYPES.MSG_TEXT]:e=>this.getEngine().TUIChat.messageHandler.handleTextMessage(e),[this.getEngine().TYPES.MSG_FACE]:e=>this.getEngine().TUIChat.messageHandler.handleFaceMessage(e),[this.getEngine().TYPES.MSG_LOCATION]:e=>this.getEngine().TUIChat.messageHandler.handleLocationMessage(e),[this.getEngine().TYPES.MSG_IMAGE]:e=>this.getEngine().TUIChat.messageHandler.handleImageMessage(e),[this.getEngine().TYPES.MSG_AUDIO]:e=>this.getEngine().TUIChat.messageHandler.handleAudioMessage(e),[this.getEngine().TYPES.MSG_VIDEO]:e=>this.getEngine().TUIChat.messageHandler.handleVideoMessage(e),[this.getEngine().TYPES.MSG_FILE]:e=>this.getEngine().TUIChat.messageHandler.handleFileMessage(e),[this.getEngine().TYPES.MSG_CUSTOM]:e=>this.getEngine().TUIChat.messageHandler.handleCustomMessage(e),[this.getEngine().TYPES.MSG_MERGER]:e=>this.getEngine().TUIChat.messageHandler.handleMergeMessage(e),[this.getEngine().TYPES.MSG_GRP_TIP]:e=>this.getEngine().TUIChat.messageHandler.handleGroupTipsMessage(e)},this._message=e,this._signalingInfo=void 0,this.progress=0,this.reactionList=[],this.initProperties(e)}initProperties(e){Object.keys(e).forEach(t=>{P(t)||(this[t]=e[t])})}updateProperties(e){this._message=e,Object.keys(e).forEach(t=>{P(t)||(this[t]=e[t])})}getMessage(){return this._message}modifyMessage(e){return e.type&&this._message.type!==e.type&&!e.payload?Promise.reject({code:S.MISMATCH_TYPE_AND_PAYLOAD,message:M.MISMATCH_TYPE_AND_PAYLOAD}):(this._message.type=e.type||this._message.type,this._message.payload=e.payload||this._message.payload,this._message.cloudCustomData=e.cloudCustomData||this._message.cloudCustomData,this.getEngine().TUIChat.modifyMessage(this._message))}revokeMessage(){return this.getEngine().TUIChat.revokeMessage(this._message)}resendMessage(){return this.getEngine().TUIChat.resendMessage(this._message)}deleteMessage(){return this.getEngine().TUIChat.deleteMessage([this._message])}quoteMessage(){return this.getEngine().TUIChat.quoteMessage(this._message)}replyMessage(){return this.getEngine().TUIChat.replyMessage(this._message)}setMessageExtensions(e){return this.getEngine().TUIChat.setMessageExtensions(this._message,e)}getMessageExtensions(){return this.getEngine().TUIChat.getMessageExtensions(this._message)}deleteMessageExtensions(e){return this.getEngine().TUIChat.deleteMessageExtensions(this._message,e)}getSignalingInfo(){return this.type!==this.getEngine().TYPES.MSG_CUSTOM?null:R(this._signalingInfo)?(this._signalingInfo=this.getEngine().chat.getSignalingInfo(this._message),this._signalingInfo):this._signalingInfo}getMessageContent(){const e=this.messageHandlers[this.type];if(R(e))return{};if(this.type===this.getEngine().TYPES.MSG_GRP_TIP)return e(this._message);const t=this.getEngine().TUIFriend.getFriendRemark([this.from]);return Object.assign(Object.assign({},e(this._message)),{showName:t[this.from]||this.nameCard||this.nick||this.from})}sendForwardMessage(e){return this.getEngine().TUIChat.sendForwardMessage(e,[this._message])}}class Me{constructor(){this.defaultStore={messageList:[],isCompleted:!1,nextReqMessageID:"",quoteMessage:{},newMessageList:[],typingStatus:!1,messageSource:void 0,translateTextInfo:void 0,voiceToTextInfo:void 0,userInfo:{}},this.store={messageList:[],isCompleted:!1,nextReqMessageID:"",quoteMessage:{},newMessageList:[],typingStatus:!1,messageSource:void 0,translateTextInfo:void 0,voiceToTextInfo:void 0,userInfo:{}}}update(e,t){switch(e){case"messageList":this.updateMessageList(t);break;case"translateTextInfo":this.updateTranslateTextInfo(t);break;case"voiceToTextInfo":this.updateVoiceToTextInfo(t);break;default:this.store[e]=t}}getData(e){return this.store[e]}getModel(e){return this.store.messageList.find(t=>t.ID===e)}reset(e=[]){const t=e.filter(e=>!Y.includes(e));this.store=Object.assign(Object.assign(Object.assign({},this.defaultStore),this.store),null==t?void 0:t.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:this.defaultStore[t]}),{}))}updateMessageList(e){const t=[];e.forEach(e=>{let s=e;e instanceof Ue||(s=this.getModel(e.ID),s?s.updateProperties(e):s=new Ue(e)),t.push(s)}),this.store.messageList=t}updateTranslateTextInfo(e){this.updateBykey("translateTextInfo",e)}updateVoiceToTextInfo(e){this.updateBykey("voiceToTextInfo",e)}updateBykey(e,t){const{conversationID:s,messageID:i,visible:n=!1}=t;this.store[e]||(this.store[e]=new Map),this.store[e].has(s)||this.store[e].set(s,[]);const a=this.store[e].get(s)||[];let r=!0;for(let e=0;e<a.length;e++)if(a[e].messageID===i){a[e].visible=n,r=!1;break}r&&a.push({messageID:i,visible:n}),this.store[e].set(s,a)}}class fe{constructor(e){this.groupAttributes={},this.groupCounters={},this.initProxy(e)}initProxy(e){Object.keys(e).forEach(t=>{P(t)||(this[t]=e[t])})}}class _e{constructor(){this.defaultStore={currentGroupID:"",currentGroup:{},currentGroupAttributes:{},currentGroupCounters:{},currentGroupMemberList:[],groupList:[],groupSystemNoticeList:[],isCompleted:!1,offset:0},this.store={currentGroupID:"",currentGroup:void 0,currentGroupAttributes:{},currentGroupCounters:{},currentGroupMemberList:[],groupList:[],groupSystemNoticeList:[],isCompleted:!1,offset:0}}update(e,t){switch(e){case"groupList":this.updateGroupList(t);break;case"currentGroup":this.store.currentGroup=t instanceof fe?t:new fe(t);break;default:this.store[e]=t}}getData(e){if("groupSystemNoticeList"===e){const e=[...this.store.groupSystemNoticeList];return this.store.groupSystemNoticeList.length=0,e}return this.store[e]}reset(e=[]){this.store=Object.assign(Object.assign(Object.assign({},this.defaultStore),this.store),e.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:this.defaultStore[t]}),{}))}updateGroupList(e){this.store.groupList=e.map(e=>e instanceof fe?e:new fe(e))}}class Ce{constructor(){this.store={}}update(e,t){this.store[e]=t}getData(e){return this.store[e]}reset(e=[]){0===e.length&&(this.store={}),this.store=Object.assign(Object.assign({},this.store),e.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:void 0}),{}))}}class ve{constructor(){this.defaultStore={friendList:[],friendApplicationList:[],friendApplicationUnreadCount:0,friendGroupList:[]},this.store={friendList:[],friendApplicationList:[],friendApplicationUnreadCount:0,friendGroupList:[]}}update(e,t){this.store[e]=t}getData(e){return this.store[e]}reset(e=[]){this.store=Object.assign(Object.assign(Object.assign({},this.defaultStore),this.store),e.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:this.defaultStore[t]}),{}))}}class De{constructor(){this.defaultStore={searchMessagesResult:{resultList:[],hasMore:!1,cursor:"",params:void 0,totalCount:0},searchChatMessagesResult:{resultList:[],hasMore:!1,cursor:"",params:void 0,totalCount:0},searchUserResult:{resultList:[],hasMore:!1,cursor:"",params:void 0,totalCount:0},searchGroupResult:{resultList:[],hasMore:!1,cursor:"",params:void 0,totalCount:0},searchMessageParams:{},searchChatMessageParams:{},searchUserParams:{},searchGroupParams:{},error:null},this.store=this.defaultStore}update(e,t){this.store[e]=t}getData(e){return this.store[e]}reset(e=[]){this.store=Object.assign(Object.assign(Object.assign({},this.defaultStore),this.store),null==e?void 0:e.reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:this.defaultStore[t]}),{}))}}class ye{constructor(){this.storeMap={[p.APP]:new le,[p.USER]:new pe,[p.CONV]:new Se,[p.CHAT]:new Me,[p.GRP]:new _e,[p.FRIEND]:new ve,[p.SEARCH]:new De},this.task={}}static getInstance(){return ye.instance||(ye.instance=new ye),ye.instance}watch(e,t){this.task[e]||(this.task[e]={});const s=this.task[e];Object.keys(t).forEach(i=>{const n=t[i];s[i]||(s[i]=new Map),s[i].set(n,1),this.notifyOnWatch(e,i,n)})}unwatch(e,t){if(!this.task[e])return;const s=this.task[e];Object.keys(t).forEach(e=>{var i;null===(i=s[e])||void 0===i||i.delete(t[e])})}update(e,t,s){var i;e!==p.CUSTOM||this.storeMap[e]||(this.storeMap[e]=new Ce),null===(i=this.storeMap[e])||void 0===i||i.update(t,s),this.notify(e,t)}getData(e,t){var s;return e!==p.CUSTOM||this.storeMap[e]||(this.storeMap[e]=new Ce),null===(s=this.storeMap[e])||void 0===s?void 0:s.getData(t)}getConversationModel(e){var t;return null===(t=this.storeMap[p.CONV])||void 0===t?void 0:t.getModel(e)}getMessageModel(e){var t;return null===(t=this.storeMap[p.CHAT])||void 0===t?void 0:t.getModel(e)}reset(e,t=[],s=!1){if(e in this.storeMap){const i=this.storeMap[e];0===t.length&&(t=Object.keys(null==i?void 0:i.store)),i.reset(t),s&&t.forEach(t=>{this.notify(e,t)})}}notifyOnWatch(e,t,s){const i=this.getData(e,t);H.indexOf(t)>-1&&0===i.length||s&&s.call(this,i)}notify(e,t){if(!this.task[e])return;const s=this.task[e];if(s[t]){const i=s[t],n=this.getData(e,t);for(const[e]of i.entries())e.call(this,n)}}}class Re extends Te{constructor(){super(),this.languages=null,this.keyMap={}}static getInstance(){return Re.instance||(Re.instance=new Re),Re.instance}setI18next(e){this.i18next?console.warn("TUITranslateService.setI18next already have i18next instance."):this.i18next=e}provideLanguages(e){var t;K||(this.languages=e,(null===(t=e["zh-CN"])||void 0===t?void 0:t.Chat)&&this.setKeyMap(e["zh-CN"]),console.log("TUITranslateService.provideLanguages ok."))}useI18n(e){var t;if(K)return;if(!this.languages)return void console.warn("TUITranslateService.useI18next not have messages.");const s={};for(const[e,t]of Object.entries(this.languages)){s["zh_cn"===e?"zh":e]={translation:t}}this.i18next.init({compatibilityJSON:"v3",lng:e||"zh",fallbackLng:"zh",detection:{order:["querystring","navigator"],caches:["localStorage","cookie"]},resources:s});const i=this.normalizeLanguageKey(e||"zh");null===(t=this.getEngine().TUIReport)||void 0===t||t.reportFeature(201,i)}changeLanguage(e){const t=this.normalizeLanguageKey(e);return this.getEngine().TUIReport.reportFeature(201,t),this.i18next.changeLanguage(e)}normalizeLanguageKey(e){return e.includes("en")?"en-us":e.includes("tw")?"zh-tw":e.includes("zh")||e.includes("cn")?"zh-cn":e.includes("ko")||e.includes("kr")?"ko-kr":e.includes("ja")||e.includes("jp")?"ja-jp":`other-${e}`}t(e){if(!this.languages){let t=e;return!R(e)&&e.indexOf(".")>-1&&(t=e.split(".").pop()||""),t}const t=this.keyMap[e];return t?this.i18next.t(t):this.i18next.t(e)}setKeyMap(e,t){for(const s in e)if(Object.prototype.hasOwnProperty.call(e,s)){const i=t?`${t}.${s}`:s;if(e[s]&&"object"==typeof e[s]&&!Array.isArray(e[s])&&null!==e[s])this.setKeyMap(e[s],i);else{let i=t?`${t}.${e[s]}`:e[s];i=this.replaceKey(i),this.keyMap[i]=`${t}.${s}`}}}replaceKey(e){return e.startsWith("Chat")?e.replace("Chat","TUIChat"):e.startsWith("Conversation")?e.replace("Conversation","TUIConversation"):e.startsWith("Message")?e.replace("Message","message.tip"):e.startsWith("Call")?e.replace("Call","message.custom"):e}}class Pe extends Te{constructor(){super(),this.serv="TUIConversationService"}static getInstance(){return Pe.instance||(Pe.instance=new Pe),Pe.instance}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.CONVERSATION_LIST_UPDATED,this.onConversationListUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED,this.onTotalUnreadCountUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_RECEIVED,this.onMessageReceived.bind(this)),this.getConversationInitData()}onConversationListUpdated(e){const t=this.filterSystemConversation(e);this.getEngine().TUIStore.update(p.CONV,"conversationList",t),this.updateCurrentConversation()}onTotalUnreadCountUpdated(e){this.getEngine().TUIStore.update(p.CONV,"totalUnreadCount",e)}onMessageReceived(e){const t=this.getEngine(),s=this.getEngine().TUIStore.getData(p.CONV,"conversationList");let i=!1;for(let n=0;n<e.length;n++){if(e[n].type!==t.TYPES.MSG_GRP_SYS_NOTICE)continue;const{operationType:a}=e[n].payload,r=`GROUP${e[n].to}`,o=4===a||5===a||8===a,g=2===a||6===a||7===a;if(o||g)for(let e=0;e<s.length;e++)if(s[e].type!==t.TYPES.CONV_C2C&&s[e].conversationID===r){if(o){this.getEngine().TUIStore.update(p.CONV,"operationTypeMap",{conversationID:r,operationType:a}),i=!0;break}if(g&&s[e].operationType>0){this.getEngine().TUIStore.update(p.CONV,"operationTypeMap",{conversationID:r,operationType:0}),i=!0;break}}}if(i){this.getEngine().TUIStore.update(p.CONV,"conversationList",s);const e=this.getEngine().TUIStore.getData(p.CONV,"currentConversationID")||"",t=this.findConversation(e);t&&this.getEngine().TUIStore.update(p.CONV,"currentConversation",t)}}getConversationInitData(){const e=this.getEngine();e.chat.isReady()&&e.chat.getConversationList().then(t=>{const{conversationList:s,isSyncCompleted:i}=t.data;if(console.log(`${this.serv}.init, getConversationList count:${s.length} isSyncCompleted:${i}`),s.length>0){this.onConversationListUpdated(s);const t=e.chat.getTotalUnreadMessageCount();this.onTotalUnreadCountUpdated(t)}})}switchConversation(e){return u(this,void 0,void 0,function*(){const t=`${this.serv}.switchConversation`,s=this.getEngine();if(!e)return s.TUIStore.reset(p.CHAT,["messageList","isCompleted","nextReqMessageID"]),s.TUIStore.update(p.CONV,"currentConversationID",""),s.TUIStore.update(p.CONV,"currentConversation",null),console.log(`${t} conversationID is empty, conversationID:${e}`),Promise.resolve({});if(!e.startsWith(s.TYPES.CONV_C2C)&&!e.startsWith(s.TYPES.CONV_GROUP))return console.warn(`${t} conversationID is invalid, conversationID:${e}`),Promise.reject({code:S.INVALID_CONV_ID,message:M.INVALID_CONV_ID});const i=s.TUIStore.getData(p.APP,"enableAutoMessageRead"),n=s.TUIStore.getData(p.CONV,"currentConversationID");if(n&&n===e)return i&&this.setMessageRead(n),console.warn(`${t} please check conversationID, conversationID:${e}`),Promise.resolve({code:S.CONV_ID_SAME,message:M.CONV_ID_SAME});const a=yield this.getConversationModel(e);return R(a)?(console.warn(`${t} target conversation is not exist, conversationID:${e}`),Promise.reject({code:S.CONV_NOT_EXIST,message:M.CONV_NOT_EXIST})):(i&&(n&&this.setMessageRead(n),e&&this.setMessageRead(e)),s.TUIStore.reset(p.CHAT,["messageList","isCompleted","nextReqMessageID"]),s.TUIStore.update(p.CONV,"currentConversationID",e),s.TUIStore.update(p.CONV,"currentConversation",a),Promise.resolve(a))})}getConversationModel(e){return u(this,void 0,void 0,function*(){let t=this.findConversation(e);if(R(t))try{const s=yield this.getConversationProfile(e);s.data&&s.data.conversation&&(t=new me(s.data.conversation))}catch(e){t=void 0}return t})}findConversation(e){let t;const s=this.getEngine().TUIStore.getData(p.CONV,"conversationList");for(let i=0;i<s.length;i++)if(s[i].conversationID===e){t=s[i];break}return t}updateCurrentConversation(){const e=this.getEngine(),t=e.TUIStore.getData(p.CONV,"currentConversationID"),s=this.findConversation(t);s&&e.TUIStore.update(p.CONV,"currentConversation",s)}getConversationList(){return this.getEngine().chat.getConversationList()}getConversationProfile(e){return this.getEngine().chat.getConversationProfile(e)}deleteConversation(e){const t="string"==typeof e?e:e.conversationIDList[0];return this.getEngine().chat.deleteConversation(e).then(e=>{const s=this.getEngine().TUIStore.getData(p.CONV,"currentConversationID");return console.log(`${this.serv}.deleteConversation conversationID:${t} currentConversationID:${s}`),this.getEngine().TUIStore.update(p.CONV,"operationTypeMap",{conversationID:t,operationType:0}),t===s&&(this.getEngine().TUIStore.update(p.CONV,"currentConversationID",""),this.getEngine().TUIStore.update(p.CONV,"currentConversation",null)),e})}pinConversation(e){return this.getEngine().chat.pinConversation(e)}muteConversation(e){return this.getEngine().chat.setMessageRemindType(e)}clearHistoryMessage(e){return this.getEngine().chat.clearHistoryMessage(e).then(e=>(this.getEngine().TUIStore.update(p.CHAT,"messageList",[]),this.getEngine().TUIStore.update(p.CHAT,"nextReqMessageID",""),this.getEngine().TUIStore.update(p.CHAT,"isCompleted",!0),e))}setMessageRead(e){return this.getEngine().chat.setMessageRead({conversationID:e})}setConversationDraft(e){const{conversationID:t,draftInfo:s,draftText:i=""}=e;return this.getEngine().chat.setConversationDraft({conversationID:t,draftText:i||(s?JSON.stringify(s):"")}).then(e=>{const{conversation:t}=e.data;this.updateConversation(t)})}updateConversation(e){let t=!1;const s=this.getEngine().TUIStore.getData(p.CONV,"conversationList");for(let i=0;i<s.length;i++)if(s[i].conversationID===e.conversationID){s[i]=e,t=!0;break}t&&this.getEngine().TUIStore.update(p.CONV,"conversationList",s)}filterSystemConversation(e){return e.filter(e=>e.type!==this.getEngine().TYPES.CONV_SYSTEM)}markConversation(e){return this.getEngine().chat.markConversation(e)}}class Oe{constructor(e){this.TUIUserService=e}getEngine(){return this.TUIUserService.getEngine()}init(){this.getEngine().eventCenter.addEvent(this.getEngine().EVENT.PROFILE_UPDATED,this.onProfileUpdated.bind(this)),this.getEngine().eventCenter.addEvent(this.getEngine().EVENT.BLACKLIST_UPDATED,this.onBlacklistUpdated.bind(this)),this.getUserProfileInitData()}onProfileUpdated(e){const t=this.getEngine(),s=t.TUIStore.getData(p.USER,"userProfile");e.forEach(e=>{e.userID===s.userID&&t.TUIStore.update(p.USER,"userProfile",e)})}onBlacklistUpdated(e){const t=this.getEngine();this.getBlacklistProfile(e).then(e=>{t.TUIStore.update(p.USER,"userBlacklist",e)})}getUserProfileInitData(){const e=this.getEngine();e.chat.isReady()&&e.chat.getBlacklist().then(e=>{const t=e.data||[];console.log(`TUIUserProfileHandler.init, getBlacklist count:${t.length}`),t.length>0&&this.onBlacklistUpdated(t)})}getBlacklistProfile(e){const t=[];let s=0;for(;s<e.length;)t.push(e.slice(s,s+=100));const i=[];t.forEach(e=>{i.push(this.TUIUserService.getUserProfile({userIDList:e}))});const n=[];return Promise.all(i).then(e=>(e.forEach(e=>{const t=e.data.map(e=>{const{userID:t,nick:s,avatar:i}=e;return{userID:t,nick:s,avatar:i}});n.push(...t)}),n))}getUserProfile(e){const t=this.getEngine();return R(e)?t.chat.getMyProfile().then(e=>(t.TUIStore.update(p.USER,"userProfile",e.data),e)).catch(e=>Promise.reject(e)):t.chat.getUserProfile(e)}updateMyProfile(e){return this.getEngine().chat.updateMyProfile(e)}addToBlacklist(e){return this.getEngine().chat.addToBlacklist(e)}removeFromBlacklist(e){return this.getEngine().chat.removeFromBlacklist(e)}}function Ae(e,t,s=!0){!function(e,t){Q?te.setStorageSync(e,t):Le()&&localStorage.setItem(e,JSON.stringify(t))}(s?be(e):e,t)}function Ge(e,t=!0){try{return function(e){if(Q)return te.getStorageSync(e);if(Le()){const t=localStorage.getItem(e);if("undefined"!==t)return JSON.parse(t)}return}(t?be(e):e)}catch(e){return void console.warn("Storage.getStorageItem error:",e)}}function be(e){return`chat_engine_${e}`}function Le(){return navigator&&navigator.cookieEnabled&&localStorage}class Ne{constructor(e){this.TUIUserService=e}getEngine(){return this.TUIUserService.getEngine()}init(){const e=this.getEngine(),t=Ge("displayOnlineStatus")||!1;e.TUIStore.update(p.USER,"displayOnlineStatus",t),e.eventCenter.addEvent(e.EVENT.USER_STATUS_UPDATED,this.onUserStatusUpdated.bind(this)),this.onConversationListUpdated()}onConversationListUpdated(){const e=this.getEngine();e.TUIStore.watch(p.CONV,{conversationList:()=>{const t=e.TUIStore.getData(p.APP,"enabledOnlineStatus"),s=e.TUIStore.getData(p.USER,"displayOnlineStatus");t&&s&&this.startToSubscribe()}})}onUserStatusUpdated(e){this.getEngine().TUIStore.update(p.USER,"userStatusList",e)}switchUserStatus(e){const t=this.getEngine(),{displayOnlineStatus:s=!1}=e;t.TUIStore.update(p.USER,"displayOnlineStatus",s),Ae("displayOnlineStatus",s);const i=t.TUIStore.getData(p.APP,"enabledOnlineStatus");i?!0===s?this.startToSubscribe():this.unsubscribeUserStatus().catch(e=>{console.warn("UserStatusHandler.switchUserStatus error:",e)}):console.warn(`UserStatusHandler.switchUserStatus enabledOnlineStatus:${i} displayOnlineStatus:${s}`)}getUserStatus(e){const t=this.getEngine();return t.chat.getUserStatus(e).then(e=>{const{successUserList:s}=e.data;return s.length>0&&t.TUIStore.update(p.USER,"userStatusList",s),e}).catch(e=>Promise.reject(e))}subscribeUserStatus(e){var t;const s=(null===(t=null==e?void 0:e.userIDList)||void 0===t?void 0:t.length)||0;return 0===s?(console.warn(`UserStatusHandler.subscribeUserStatus userID count:${s}`),Promise.resolve()):this.getEngine().chat.subscribeUserStatus(e)}unsubscribeUserStatus(e){const t=this.getEngine(),{userIDList:s=[]}=e||{};return t.chat.unsubscribeUserStatus({userIDList:s}).then(e=>{const{failureUserList:i}=e.data,n=[];return s.forEach(e=>{i.includes(e)||n.push({userID:e,statusType:T.UNSUB_USER})}),t.TUIStore.update(p.USER,"userStatusList",n),e}).catch(e=>Promise.reject(e))}startToSubscribe(){const e=this.getEngine(),t=e.TUIStore.getData(p.CONV,"conversationList"),s=e.TUIStore.getData(p.USER,"userStatusList"),i=[];t.forEach(t=>{if(t.type===e.TYPES.CONV_C2C){const n=t.conversationID.replace(e.TYPES.CONV_C2C,"");s.has(n)||i.push(n)}}),0!==i.length&&e.chat.isReady()&&(this.subscribeUserStatus({userIDList:i}).catch(e=>{console.warn("UserStatusHandler.startToSubscribe,",e)}),this.getUserStatus({userIDList:i}).catch(e=>{console.warn("UserStatusHandler.startToSubscribe,",e)}))}}class je extends Te{constructor(){super(),this.userProfileHandler=new Oe(this),this.userStatusHandler=new Ne(this)}static getInstance(){return je.instance||(je.instance=new je),je.instance}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.KICKED_OUT,this.onKickedOut.bind(this)),e.eventCenter.addEvent(e.EVENT.NET_STATE_CHANGE,this.onNetStateChange.bind(this)),this.userProfileHandler.init(),this.userStatusHandler.init(),this.initMessageReadReceipt()}onKickedOut(e){this.getEngine().TUIStore.update(p.USER,"kickedOut",e.type)}onNetStateChange(e){this.getEngine().TUIStore.update(p.USER,"netStateChange",e.state)}initMessageReadReceipt(){const e=Ge("displayMessageReadReceipt")||!0;this.getEngine().TUIStore.update(p.USER,"displayMessageReadReceipt",e)}switchUserStatus(e){return this.userStatusHandler.switchUserStatus(e)}switchMessageReadStatus(e){this.getEngine().TUIStore.update(p.USER,"displayMessageReadReceipt",e),Ae("displayMessageReadReceipt",e)}getUserProfile(e){return this.userProfileHandler.getUserProfile(e)}updateMyProfile(e){return this.userProfileHandler.updateMyProfile(e)}addToBlacklist(e){return this.userProfileHandler.addToBlacklist(e)}removeFromBlacklist(e){return this.userProfileHandler.removeFromBlacklist(e)}getUserStatus(e){return this.userStatusHandler.getUserStatus(e)}subscribeUserStatus(e){return this.userStatusHandler.subscribeUserStatus(e)}unsubscribeUserStatus(e){return this.userStatusHandler.unsubscribeUserStatus(e)}}class ke{constructor(e){this.TUIChatService=e,this.userShowNameMap=new Map,this.requestedUserMap=new Map}getEngine(){return this.TUIChatService.getEngine()}t(e){return this.getEngine().TUITranslate.t(e)}handleTextMessage(e){return{text:this.decodeText(e.payload)}}handleFaceMessage(e){const t={name:"",url:"",type:""};return e.payload.data.indexOf("@custom")>-1?(t.name=e.payload.data,t.type="custom",t):(t.name=e.payload.data.indexOf("@2x")<0?`${e.payload.data}@2x`:e.payload.data,t.url=`${k}${t.name}.png`,t)}handleLocationMessage(e){const t={lon:"",lat:"",href:"",url:"",description:""};return t.lon=e.payload.longitude.toFixed(6),t.lat=e.payload.latitude.toFixed(6),t.href=`${x}pointx=${t.lon}&pointy=${t.lat}&name=${e.payload.description}`,t.url=`${w}center=${t.lat},${t.lon}&zoom=10&size=300*150&maptype=roadmap&markers=size:large|color:0xFFCCFF|label:k|${t.lat},${t.lon}&key=UBNBZ-PTP3P-TE7DB-LHRTI-Y4YLE-VWBBD`,t.description=e.payload.description,t}handleImageMessage(e){return{url:e.payload.imageInfoArray[0].url,width:e.payload.imageInfoArray[0].width,height:e.payload.imageInfoArray[0].height}}handleAudioMessage(e){return{url:e.payload.url,second:e.payload.second}}handleVideoMessage(e){return{url:e.payload.videoUrl,snapshotUrl:e.payload.snapshotUrl,snapshotWidth:e.payload.snapshotWidth,snapshotHeight:e.payload.snapshotHeight}}handleFileMessage(e){return{url:e.payload.fileUrl,name:e.payload.fileName,size:G(e.payload.fileSize)}}handleCustomMessage(e){var t;const s=this.handleCreateGroupCustomMessage(e);return{custom:this.handleCallKitSignaling(e)||s||(null===(t=null==e?void 0:e.payload)||void 0===t?void 0:t.extension)||`${this.t("TUIChat.[自定义消息]")}`,businessID:s?"group_create":""}}handleMergeMessage(e){return Object.assign({},e.payload)}handleGroupTipsMessage(e){var t,s,i,n,a,r;const o=this.getEngine(),g={text:""};let c=(null==e?void 0:e.nick)||(null===(s=null===(t=null==e?void 0:e.payload)||void 0===t?void 0:t.userIDList)||void 0===s?void 0:s.join(","));switch((null===(n=null===(i=null==e?void 0:e.payload)||void 0===i?void 0:i.memberList)||void 0===n?void 0:n.length)>0&&(c="",null===(r=null===(a=null==e?void 0:e.payload)||void 0===a?void 0:a.memberList)||void 0===r||r.map(e=>{const t=(null==e?void 0:e.nick)||(null==e?void 0:e.userID);return c+=`${this.substringByLength(t)},`,e}),c=null==c?void 0:c.slice(0,-1)),e.payload.operationType){case o.TYPES.GRP_TIP_MBR_JOIN:g.text=`${c} ${this.t("message.tip.加入群组")}`;break;case o.TYPES.GRP_TIP_MBR_QUIT:g.text=`${this.t("message.tip.群成员")}:${c} ${this.t("message.tip.退出群组")}`;break;case o.TYPES.GRP_TIP_MBR_KICKED_OUT:g.text=`${this.t("message.tip.群成员")}:${c} ${this.t("message.tip.被")}${this.t("message.tip.踢出群组")}`;break;case o.TYPES.GRP_TIP_MBR_SET_ADMIN:g.text=`${this.t("message.tip.群成员")}:${c} ${this.t("message.tip.成为管理员")}`;break;case o.TYPES.GRP_TIP_MBR_CANCELED_ADMIN:g.text=`${this.t("message.tip.群成员")}:${c} ${this.t("message.tip.被撤销管理员")}`;break;case o.TYPES.GRP_TIP_GRP_PROFILE_UPDATED:g.text=this.handleGroupProfileUpdated(e);break;case o.TYPES.GRP_TIP_MBR_PROFILE_UPDATED:for(const t of e.payload.memberList)t.muteTime>0?g.text=`${this.t("message.tip.群成员")}:${c} ${this.t("message.tip.被禁言")}`:g.text=`${this.t("message.tip.群成员")}:${c} ${this.t("message.tip.被取消禁言")}`;break;default:g.text=`[${this.t("message.tip.群提示消息")}]`}return g}handleGroupSystemMessage(e){const t=e.payload.groupProfile.name||e.payload.groupProfile.groupID,s={text:""};switch(e.payload.operationType){case 1:s.text=`${e.payload.operatorID} ${this.t("message.tip.申请加入群组")}:${t}`;break;case 2:s.text=`${this.t("message.tip.成功加入群组")}:${t}`;break;case 3:s.text=`${this.t("message.tip.申请加入群组")}:${t} ${this.t("message.tip.被拒绝")}`;break;case 4:s.text=`${this.t("message.tip.你被管理员")}${e.payload.operatorID} ${this.t("message.tip.踢出群组")}:${t}`;break;case 5:s.text=`${this.t("message.tip.群")}:${t} ${this.t("message.tip.被")} ${e.payload.operatorID} ${this.t("message.tip.解散")}`;break;case 6:s.text=`${e.payload.operatorID} ${this.t("message.tip.创建群")}:${t}`;break;case 7:case 12:s.text=`${e.payload.operatorID} ${this.t("message.tip.邀请你加群")}:${t}`;break;case 8:s.text=`${this.t("message.tip.你退出群组")}:${t}`;break;case 9:s.text=`${this.t("message.tip.你被")}${e.payload.operatorID} ${this.t("message.tip.设置为群")}:${t} ${this.t("message.tip.的管理员")}`;break;case 10:s.text=`${this.t("message.tip.你被")}${e.payload.operatorID} ${this.t("message.tip.撤销群")}:${t} ${this.t("message.tip.的管理员身份")}`;break;case 13:s.text=`${e.payload.operatorID} ${this.t("message.tip.同意加群")}:${t}`;break;case 14:s.text=`${e.payload.operatorID} ${this.t("message.tip.拒接加群")}:${t}`;break;case 255:s.text=`${this.t("message.tip.自定义群系统通知")}: ${e.payload.userDefinedField}`;break;default:s.text="未解析的群系统通知"}return s}handleCallKitSignaling(e){var t,s,i,n,a,r,o,g,c,h;const u=A(e.payload.data);if(1!==(null==u?void 0:u.businessID))return"";const d=A(null==u?void 0:u.data),l=e.fromAccount||e.from,p=this.getEngine().TUIFriend.getFriendRemark([l]),T=this.getEngine().getMyUserID();let E=p[l]||e.nameCard||e.nick||l;switch(E=this.substringByLength(E),null==u?void 0:u.actionType){case 1:return"audioCall"!==(null===(t=null==d?void 0:d.data)||void 0===t?void 0:t.cmd)&&"videoCall"!==(null===(s=null==d?void 0:d.data)||void 0===s?void 0:s.cmd)||!(null==u?void 0:u.groupID)?"hangup"===(null===(i=null==d?void 0:d.data)||void 0===i?void 0:i.cmd)?(null==u?void 0:u.groupID)?`${this.t("message.custom.通话结束")}`:`${this.t("message.custom.通话时长")}:${function(e){const t=e;let s,i,n,a="";return t>=3600?(s=parseInt(""+t/3600,10)<10?`0${parseInt(""+t/3600,10)}`:parseInt(""+t/3600,10),i=parseInt(""+t%60/60,10)<10?`0${parseInt(""+t%60/60,10)}`:parseInt(""+t%60/60,10),n=t%3600<10?"0"+t%3600:t%3600,n>60&&(i=parseInt(""+n/60,10)<10?`0${parseInt(""+n/60,10)}`:parseInt(""+n/60,10),n=n%60<10?"0"+n%60:n%60),a=`${s}:${i}:${n}`):t>=60&&t<3600?(i=parseInt(""+t/60,10)<10?`0${parseInt(""+t/60,10)}`:parseInt(""+t/60,10),n=t%60<10?"0"+t%60:t%60,a=`00:${i}:${n}`):t<60&&(n=t<10?`0${t}`:t,a=`00:00:${n}`),a}(null==d?void 0:d.call_end)}`:"switchToAudio"===(null===(n=null==d?void 0:d.data)||void 0===n?void 0:n.cmd)?`${this.t("message.custom.切换语音通话")}`:"switchToVideo"===(null===(a=null==d?void 0:d.data)||void 0===a?void 0:a.cmd)?`${this.t("message.custom.切换视频通话")}`:`${this.t("message.custom.发起通话")}`:`${E} ${this.t("message.custom.发起通话")}`;case 2:return(null==u?void 0:u.groupID)?`${E} ${this.t("message.custom.取消通话")}`:this.isOldUIKit("message.custom.已取消")?this.t("message.custom.取消通话"):(null==u?void 0:u.inviter)===T?this.t("message.custom.已取消"):this.t("message.custom.对方已取消");case 3:return"switchToAudio"===(null===(r=null==d?void 0:d.data)||void 0===r?void 0:r.cmd)?`${this.t("message.custom.切换语音通话")}`:"switchToVideo"===(null===(o=null==d?void 0:d.data)||void 0===o?void 0:o.cmd)?`${this.t("message.custom.切换视频通话")}`:(null==u?void 0:u.groupID)?`${E} ${this.t("message.custom.已接听")}`:this.t("message.custom.已接听");case 4:return(null==u?void 0:u.groupID)?`${E} ${this.t("message.custom.拒绝通话")}`:this.isOldUIKit("message.custom.已拒绝")?this.t("message.custom.拒绝通话"):"line_busy"===(null==d?void 0:d.line_busy)||"lineBusy"===(null==d?void 0:d.data.message)?(null==u?void 0:u.inviter)===T?this.t("message.custom.对方忙线中"):this.t("message.custom.忙线未接听"):(null==u?void 0:u.inviter)===T?this.t("message.custom.对方已拒绝"):this.t("message.custom.已拒绝");case 5:if("switchToAudio"===(null===(g=null==d?void 0:d.data)||void 0===g?void 0:g.cmd))return`${this.t("message.custom.切换语音通话")}`;if("switchToVideo"===(null===(c=null==d?void 0:d.data)||void 0===c?void 0:c.cmd))return`${this.t("message.custom.切换视频通话")}`;if(null==u?void 0:u.groupID){if(l===(null==u?void 0:u.inviter)){this.handleCallkitTimeoutSignaling(u.inviteeList);let e="";return null===(h=u.inviteeList)||void 0===h||h.forEach(t=>{const s=this.userShowNameMap.get(t)||t;e+=`${this.substringByLength(s)}、`}),e=e.substring(0,e.lastIndexOf("、")),`${e} ${this.t("message.custom.无应答")}`}return`${E} ${this.t("message.custom.无应答")}`}return this.isOldUIKit("message.custom.对方无应答")?this.t("message.custom.无应答"):(null==u?void 0:u.inviter)===T?this.t("message.custom.对方无应答"):this.t("message.custom.超时无应答");default:return""}}handleCreateGroupCustomMessage(e){let t;const s=A(e.payload.data);return"group_create"===(null==s?void 0:s.businessID)&&(t=`${s.opUser} ${s.content}`),t}decodeText(e){const t=[];let s=e.text,i=-1,n=-1;for(;""!==s;)switch(i=s.indexOf("["),n=s.indexOf("]"),i){case 0:if(-1===n)t.push({name:"text",text:s}),s="";else{const e=s.slice(0,n+1);e.indexOf("@custom")>-1?(t.push({name:"img",src:"",type:"custom",emojiKey:e}),s=s.substring(n+1)):$[e]?(t.push({name:"img",src:j+$[e],emojiKey:e}),s=s.substring(n+1)):(t.push({name:"text",text:"["}),s=s.slice(1))}break;case-1:t.push({name:"text",text:s}),s="";break;default:t.push({name:"text",text:s.slice(0,i)}),s=s.substring(i)}return t}handleGroupProfileUpdated(e){const{nick:t,payload:s}=e,{newGroupProfile:i,memberList:n,operatorID:a}=s;let r="";const o=t||a,g=Object.keys(i)[0];switch(g){case"muteAllMembers":r=i[g]?`${this.t("message.tip.管理员")} ${o} ${this.t("message.tip.开启全员禁言")}`:`${this.t("message.tip.管理员")} ${o} ${this.t("message.tip.取消全员禁言")}`;break;case"ownerID":r=`${n[0].nick||n[0].userID} ${this.t("message.tip.成为新的群主")}`;break;case"groupName":r=`${o} ${this.t("message.tip.修改群名为")} ${i[g]}`;break;case"notification":r=this.isOldUIKit("message.tip.把群公告修改为")?`${o} ${this.t("message.tip.发布新公告")}`:`${o} ${this.t("message.tip.把群公告修改为")} "${i[g]}"`}return r}handleCallkitTimeoutSignaling(e=[]){if(0===e.length)return;const t=this.getEngine().TUIFriend.getFriendRemark(e),s=[];e.forEach(e=>{const i=t[e];i?this.userShowNameMap.set(e,i):this.requestedUserMap.has(e)||(s.push(e),this.requestedUserMap.set(e,1))}),s.length>0&&this.getEngine().TUIUser.getUserProfile({userIDList:s}).then(e=>{(e.data||[]).forEach(e=>{const{userID:t,nick:s}=e,i=s||t;this.userShowNameMap.set(t,i)})}).catch(()=>{})}substringByLength(e,t=12){return e.length>t?`${e.slice(0,t)}...`:e}isOldUIKit(e){var t;const s=e.lastIndexOf("."),i=e.slice(0,s+1);return null===(t=this.t(e))||void 0===t?void 0:t.startsWith(i)}}class xe{constructor(e){this.TUIChatService=e,this.typingTo="",this.timer=null}getEngine(){return this.TUIChatService.getEngine()}clearTypingStatus(){this.getEngine().TUIStore.getData(p.CHAT,"typingStatus")&&this.getEngine().TUIStore.update(p.CHAT,"typingStatus",!1),this.timer&&clearTimeout(this.timer),this.timer=null}handleLastMessage(e){const t=this.getEngine(),s=t.TUIStore.getData(p.CHAT,"typingStatus");if(e.type===this.getEngine().TYPES.MSG_CUSTOM&&"in"===e.flow){const i=A(e.payload.data);if(i.businessID===E.BUSINESS_ID){const{typingStatus:e,userAction:n}=i;if(e===E.STATUS_START||n===E.ACTION_START_ID)return s?(this.timer&&clearTimeout(this.timer),this.timer=null):t.TUIStore.update(p.CHAT,"typingStatus",!0),this.timer=setTimeout(()=>{this.clearTypingStatus()},3e4),t.TUIStore.getData(p.CHAT,"typingStatus");e!==E.STATUS_END&&n!==E.ACTION_END_ID||this.clearTypingStatus()}}}filterTypingMessage(e=[]){if(0===e.length)return[];return this.getEngine().TUIStore.getData(p.APP,"enableTyping")&&this.handleLastMessage(e[e.length-1]),e.filter(e=>{if(e.type===this.getEngine().TYPES.MSG_CUSTOM){return A(e.payload.data).businessID!==E.BUSINESS_ID}return!0})}createTypingMessage(e=E.STATUS_END,t=""){const{BUSINESS_ID:s,STATUS_START:i,VERSION:n,ACTION_START_ID:a,ACTION_END_ID:r,ACTION_START:o,ACTION_END:g,NEED_TYPING:c}=E;return{to:t,conversationType:this.getEngine().TYPES.CONV_C2C,payload:{data:JSON.stringify({businessID:s,typingStatus:e,version:n,userAction:e===i?a:r,actionParam:e===i?o:g}),description:"",extension:""},cloudCustomData:JSON.stringify({messageFeature:{needTyping:c,version:n}})}}sendTyping(e=!1,t=""){if(e){this.typingTo=t;const e=this.createTypingMessage(E.STATUS_START,t);this.getEngine().TUIChat.sendCustomMessage(e,{onlineUserOnly:!0})}else this.sendTypingEnd()}sendTypingEnd(){if(this.typingTo){const e=this.createTypingMessage(E.STATUS_END,this.typingTo);this.getEngine().TUIChat.sendCustomMessage(e,{onlineUserOnly:!0})}this.typingTo=""}}class we{constructor(e){this.TUIChatService=e}getEngine(){return this.TUIChatService.getEngine()}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.MESSAGE_READ_RECEIPT_RECEIVED,this.onMessageReadReceiptReceived.bind(this))}onMessageReadReceiptReceived(e){const t=this.getEngine(),s=t.TUIStore.getData(p.CONV,"currentConversationID"),i=[];e.forEach(e=>{const{messageID:n}=e,a=t.chat.findMessage(n);a&&s===a.conversationID&&i.push(a)}),i.length>0&&t.TUIChat.updateMessageList(i,"edit")}sendMessageReadReceipt(e){const t=[];return e.forEach(e=>{const s=e.getMessage();t.push(s)}),this.getEngine().chat.sendMessageReadReceipt(t)}getGroupMessageReadMemberList(e){const t=e.message.getMessage(),s=Object.assign(Object.assign({},e),{message:t});return this.getEngine().chat.getGroupMessageReadMemberList(s)}getMessageReadReceiptList(e){const t=this.getEngine(),s=t.TUIStore.getData(p.APP,"enabledMessageReadReceipt"),i=t.TUIStore.getData(p.USER,"displayMessageReadReceipt");!s||!i||0===e.length||e[0].conversationType!==t.TYPES.CONV_GROUP||t.chat.getMessageReadReceiptList(e).then(e=>{const{messageList:t}=e.data;this.TUIChatService.updateMessageList(t,"edit")}).catch(e=>{console.warn(`ReadReceiptHandler.getMessageReadReceiptList error:${e.message}`)})}}class $e extends Te{constructor(){super(),this.serv="TUIChatService",this.messageHandler=new ke(this),this.typingHandler=new xe(this),this.readReceiptHandler=new we(this),this.isSwitching=!0,this.delayGetHoppingFunction=void 0,this.hoppingConfigMap=new Map}static getInstance(){return $e.instance||($e.instance=new $e),$e.instance}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.MESSAGE_RECEIVED,this.onMessageReceived.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_MODIFIED,this.onMessageModified.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_REVOKED,this.onMessageRevoked.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_READ_BY_PEER,this.onMessageReadByPeer.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_REACTIONS_UPDATED,this.onMessageReactionsUpdated.bind(this)),this.onCurrentConversationIDUpdated(),this.onMessageSource(),this.readReceiptHandler.init()}onMessageReceived(e){this.updateMessageList(e,"received"),this.getEngine().TUIStore.update(p.CHAT,"newMessageList",e)}onMessageModified(e){this.updateMessageList(e,"edit")}onMessageRevoked(e){this.updateMessageList(e,"edit")}onMessageReadByPeer(e){this.updateMessageList(e,"edit")}onMessageReactionsUpdated(e){this.updateMessageReactionList([e])}onCurrentConversationIDUpdated(){const e=this.getEngine();e.TUIStore.watch(p.CONV,{currentConversationID:t=>{this.isSwitching=!0,this.delayGetHoppingFunction=void 0,this.hoppingConfigMap.clear(),e.TUIStore.reset(p.CHAT),this.typingHandler.clearTypingStatus(),this.typingHandler.sendTypingEnd(),Ee(t)||this.getMessageList().finally(()=>{this.isSwitching=!1,this.delayGetHoppingFunction&&this.delayGetHoppingFunction()})}})}onMessageSource(){const e=this.getEngine();e.TUIStore.watch(p.CHAT,{messageSource:t=>{const s=this.getStoreData(p.CONV,"currentConversationID");if(!s||t&&t.conversationID!==s)return;if(R(t))return this.hoppingConfigMap.clear(),e.TUIStore.update(p.CHAT,"messageList",[]),e.TUIStore.update(p.CHAT,"nextReqMessageID",""),e.TUIStore.update(p.CHAT,"isCompleted",!1),void this.getMessageList();const i=this.getStoreData(p.CHAT,"messageList");i&&i.find(e=>t&&e.ID===t.ID)||(this.isSwitching?this.delayGetHoppingFunction=this.getMessageListHoppingForDown:this.getMessageListHoppingForDown())}})}getMessageListHoppingForDown(){const e=this.getStoreData(p.CHAT,"messageList"),{conversationID:t,sequence:s,time:i,ID:n}=this.getStoreData(p.CHAT,"messageSource");if(e&&e.find(e=>n&&e.ID===n))return;const a=this.getEngine();a.TUIStore.update(p.CHAT,"messageList",[]),a.TUIStore.update(p.CHAT,"nextReqMessageID",""),a.TUIStore.update(p.CHAT,"isCompleted",!1),this.getMessageListHopping({conversationID:t,sequence:s,time:i,direction:1})}getStoreData(e,t){return this.getEngine().TUIStore.getData(e,t)}sendMessage(e,t){this.updateMessageList([e],"send");const s=this.getEngine().chat.sendMessage(e,t);return this.getResponse(s)}getResponse(e,t=!0,s=!0){return e.then(e=>{const s=e.data.messageList?e.data.messageList:[e.data.message];return t&&this.updateMessageList(s,"edit"),e}).catch(e=>{var t;return s&&(null===(t=null==e?void 0:e.data)||void 0===t?void 0:t.message)&&this.updateMessageList([e.data.message],"edit"),Promise.reject(e)})}updateMessageList(e,t=""){if(this.getStoreData(p.CHAT,"messageSource")&&"unshift"!==t&&"edit"!==t)return;const s=this.getStoreData(p.CHAT,"messageList"),i=this.updateTargetMessageList(e,s,t);this.getEngine().TUIStore.update(p.CHAT,"messageList",i)}updateTargetMessageList(e,t,s=""){const i=this.getStoreData(p.CONV,"currentConversationID");let n=e.filter(e=>e.conversationID===i);if(n=this.handleC2CCallSignaling(n),!s||0===n.length)return t;const a=t||[];let r=[];if("send"===s||"push"===s||"received"===s){const e=this.getStoreData(p.CHAT,"userInfo");Object.keys(e).length>0&&this.updateLocalMessage(n,e)}const o=this.getStoreData(p.APP,"enableAutoMessageRead");switch(s){case"edit":for(const e of t){const t=n.find(t=>t.ID===e.ID);r.push(t||e)}break;case"resend":r=a.filter(e=>e.ID!==n[0].ID).concat(n);break;case"send":r=a.concat(this.typingHandler.filterTypingMessage(n));break;case"push":r=a.concat(this.typingHandler.filterTypingMessage(n)),this.getEngine().chat.setMessageRead({conversationID:i});break;case"received":r=a.concat(this.typingHandler.filterTypingMessage(n)),r=this.sortMessageList(r),o&&this.getEngine().chat.setMessageRead({conversationID:i});break;case"unshift":r=n.filter(e=>0===a.length||!a.find(t=>t.ID===e.ID)),r.push(...a),r=this.sortMessageList(r)}return r}enterTypingState(){this.getStoreData(p.APP,"enableTyping")&&this.sendTyping(!0)}leaveTypingState(){this.getStoreData(p.APP,"enableTyping")&&this.sendTyping(!1)}sendTyping(e){const t=this.getEngine(),s=this.getStoreData(p.CONV,"currentConversationID");if(!s.startsWith(t.TYPES.CONV_C2C))return;const i=s.replace(t.TYPES.CONV_C2C,"");if(e){const e=this.getStoreData(p.CHAT,"messageList").filter(e=>"in"===e.flow);if(0===e.length)return;const t=1e3*e[e.length-1].time;if((new Date).getTime()-t>3e4)return}this.typingHandler.sendTyping(e,i)}quoteMessage(e){var t;return this.getEngine().TUIStore.update(p.CHAT,"quoteMessage",{message:e,type:"quote"}),null===(t=this.getEngine().TUIReport)||void 0===t||t.reportFeature(205),e}replyMessage(e){return this.getEngine().TUIStore.update(p.CHAT,"quoteMessage",{message:e,type:"reply"}),e}getCurrentConvInfo(){const{conversationID:e="",type:t}=this.getStoreData(p.CONV,"currentConversation")||{};return{to:e.replace(t,""),conversationType:t}}t(e){return this.getEngine().TUITranslate.t(e)||e}getMessageAbstractAndType(e){var t,s;const i=this.getEngine(),n={abstract:"",type:0};switch(e.type){case i.TYPES.MSG_TEXT:n.abstract=null===(t=null==e?void 0:e.payload)||void 0===t?void 0:t.text,n.type=1;break;case i.TYPES.MSG_CUSTOM:n.abstract="[自定义消息]",n.type=2;break;case i.TYPES.MSG_IMAGE:n.abstract="[图片]",n.type=3;break;case i.TYPES.MSG_AUDIO:n.abstract="[语音]",n.type=4;break;case i.TYPES.MSG_VIDEO:n.abstract="[视频]",n.type=5;break;case i.TYPES.MSG_FILE:n.abstract="[文件]",n.type=6;break;case i.TYPES.MSG_LOCATION:n.type=7;break;case i.TYPES.MSG_FACE:n.abstract="[表情]",n.type=8;break;case i.TYPES.MSG_GRP_TIP:n.type=9;break;case i.TYPES.MSG_MERGER:n.abstract=null===(s=null==e?void 0:e.payload)||void 0===s?void 0:s.title,n.type=10}return n}genMessageReply(e,t){if("reply"!==t&&"quote"!==t)return{};const{abstract:s,type:i}=this.getMessageAbstractAndType(e),n={messageAbstract:s,messageSender:e.nick||e.from,messageID:e.ID},a=Object.assign(Object.assign({},n),{messageType:i,messageTime:null==e?void 0:e.time,messageSequence:null==e?void 0:e.sequence,version:1});if("reply"===t&&(a.messageRootID=e.ID,e.cloudCustomData)){const t=A(e.cloudCustomData);t.messageReply&&t.messageReply.messageRootID&&(a.messageRootID=t.messageReply.messageRootID)}return{messageReply:a,messageReplyRoot:n}}getMessageInfo(e,t,s){const{messageReply:i,messageReplyRoot:n}=this.genMessageReply(t,s),a=e.cloudCustomData?A(e.cloudCustomData):{};let r;if(a.messageReply?a.messageReply=Object.assign(Object.assign({},i),a.messageReply):a.messageReply=i,"reply"===s){const{messageRootID:e}=i;r=this.getEngine().chat.findMessage(e);const t=(null==r?void 0:r.cloudCustomData)?A(r.cloudCustomData):{};t.messageReplies||(t.messageReplies={}),o=t.messageReplies.replies,("function"==typeof Array.isArray?Array.isArray(o):"array"===Object.prototype.toString.call(o).match(/^\[object (.*)\]$/)[1].toLowerCase())||(t.messageReplies.replies=[]),t.messageReplies.replies.push(n),r.cloudCustomData=JSON.stringify(t)}var o;return{cloudCustomData:JSON.stringify(a),rootMessage:r}}sendTextMessage(e,t){const s=this.getEngine(),{message:i,type:n}=this.getStoreData(p.CHAT,"quoteMessage");let a={cloudCustomData:e.cloudCustomData||"",rootMessage:void 0};i&&(a=this.getMessageInfo(e,i,n));const r=s.chat.createTextMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{cloudCustomData:a.cloudCustomData}));return this.sendMessage(r,t).then(e=>(a.rootMessage&&this.modifyMessage(a.rootMessage),s.TUIStore.reset(p.CHAT,["quoteMessage"],!0),e))}sendTextAtMessage(e,t){const s=this.getEngine(),{message:i,type:n}=this.getStoreData(p.CHAT,"quoteMessage");let a={cloudCustomData:e.cloudCustomData||"",rootMessage:void 0};i&&(a=this.getMessageInfo(e,i,n));const r=s.chat.createTextAtMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{cloudCustomData:a.cloudCustomData}));return this.sendMessage(r,t).then(e=>(a.rootMessage&&this.modifyMessage(a.rootMessage),s.TUIStore.reset(p.CHAT,["quoteMessage"],!0),e))}sendImageMessage(e,t){const s=this.getEngine().chat.createImageMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{onProgress:e=>{this.onProgress(s.ID,e)}}));return this.sendMessage(s,t)}sendAudioMessage(e,t){const s=this.getEngine().chat.createAudioMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{onProgress:e=>{this.onProgress(s.ID,e)}}));return this.sendMessage(s,t)}sendVideoMessage(e,t){const s=this.getEngine().chat.createVideoMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{onProgress:e=>{this.onProgress(s.ID,e)}}));return this.sendMessage(s,t)}sendCustomMessage(e,t){const s=this.getEngine().chat.createCustomMessage(Object.assign(Object.assign({},this.getCurrentConvInfo()),e));return this.sendMessage(s,t)}sendFaceMessage(e,t){const s=this.getEngine().chat.createFaceMessage(Object.assign(Object.assign({},this.getCurrentConvInfo()),e));return this.sendMessage(s,t)}sendFileMessage(e,t){const s=this.getEngine().chat.createFileMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{onProgress:e=>{this.onProgress(s.ID,e)}}));return this.sendMessage(s,t)}sendLocationMessage(e,t){const s=this.getEngine().chat.createLocationMessage(Object.assign(Object.assign({},this.getCurrentConvInfo()),e));return this.sendMessage(s,t)}onProgress(e,t){const s=this.getEngine().TUIStore.getMessageModel(e);if(s){(t-s.progress>=.1||1===t)&&(s.progress=t,this.updateMessageList([s],"edit"))}}setAbstractList(e){const t=this.getEngine(),s=e.nick||e.from;let i="";switch(e.type){case t.TYPES.MSG_TEXT:i=e.payload.text||"",i.length>20&&(i=i.slice(0,20));break;case t.TYPES.MSG_MERGER:i=`${this.t("TUIChat.[聊天记录]")}`;break;case t.TYPES.MSG_IMAGE:i=`${this.t("TUIChat.[图片]")}`;break;case t.TYPES.MSG_AUDIO:i=`${this.t("TUIChat.[音频]")}`;break;case t.TYPES.MSG_VIDEO:i=`${this.t("TUIChat.[视频]")}`;break;case t.TYPES.MSG_CUSTOM:i=`${this.t("TUIChat.[自定义消息]")}`;break;case t.TYPES.MSG_FILE:i=`${this.t("TUIChat.[文件]")}`;break;case t.TYPES.MSG_FACE:i=`${this.t("TUIChat.[动画表情]")}`}return`${s}: ${i}`}genMergerForwardPayload(e,t){const{abstractList:s=[],compatibleText:i="",title:n}=t;return 0===s.length&&e.forEach(e=>{s.push(this.setAbstractList(e))}),{messageList:e,title:n,abstractList:s,compatibleText:i||this.t("TUIChat.请升级IMSDK到v2.10.1或更高版本查看此消息")}}genSendMergerForwardMessage(e){const{conversationList:t,messageList:s,params:i,mergeInfo:n,sendMessageOptions:a}=e,r=[];for(let e=0;e<t.length;e++){const{conversationID:o,type:g}=t[e],c=Object.assign({to:o.replace(`${g}`,""),conversationType:g,payload:this.genMergerForwardPayload(s,n)},i),h=this.getEngine().chat.createMergerMessage(c);r.push(this.sendMessage(h,a))}return r}genTitle(e,t){const{nick:s,from:i,to:n}=e;return`${s||i} ${this.t("TUIChat.和")} ${t||n} ${this.t("TUIChat.的聊天记录")}`}genMergeInfo(e){var t;return u(this,void 0,void 0,function*(){const{messageList:s,mergeInfo:i}=e;if(i.title)return i;if(s[0].conversationType===this.getEngine().TYPES.CONV_GROUP)return i.title=this.t("TUIChat.群聊的聊天记录"),i;try{const{data:e=[]}=yield this.getEngine().TUIUser.getUserProfile({userIDList:[s[0].to]});i.title=this.genTitle(s[0],null===(t=e[0])||void 0===t?void 0:t.nick)}catch(e){i.title=this.genTitle(s[0])}return i})}sendMergerForwardMessage(e){return u(this,void 0,void 0,function*(){return e.mergeInfo=yield this.genMergeInfo(e),Promise.all(this.genSendMergerForwardMessage(e))})}getOriginMessageList(e){return e.map(e=>e instanceof Ue?e.getMessage():e)}sendForwardMessage(e,t,s){t=this.getOriginMessageList(t);const i=s||{},{needMerge:n=!1,params:a={},mergeInfo:r={}}=i,o=h(i,["needMerge","params","mergeInfo"]);if(n)return this.sendMergerForwardMessage({conversationList:e,messageList:t,params:a,mergeInfo:r,sendMessageOptions:o});const g=[];for(let s=0;s<e.length;s++){const{conversationID:i,type:n}=e[s],r=Object.assign({to:i.replace(`${n}`,""),conversationType:n},a),c=o[i]||o;for(let e=0;e<t.length;e++){Reflect.set(r,"payload",t[e]);const s=this.getEngine().chat.createForwardMessage(r);g.push(this.sendMessage(s,c))}}return Promise.all(g)}revokeMessage(e){const t=this.getEngine().chat.revokeMessage(e);return this.getResponse(t,!0,!1)}resendMessage(e){e.status="unSend",this.updateMessageList([e],"resend");const t=this.getEngine().chat.resendMessage(e);return this.getResponse(t,!0,!0)}deleteMessage(e){const t=this.getEngine().chat.deleteMessage(e);return this.getResponse(t,!0,!1)}setMessageExtensions(e,t){return this.getEngine().chat.setMessageExtensions(e,t)}getMessageExtensions(e){return this.getEngine().chat.getMessageExtensions(e)}deleteMessageExtensions(e,t){return this.getEngine().chat.deleteMessageExtensions(e,t)}modifyMessage(e){const t=this.getEngine().chat.modifyMessage(e);return this.getResponse(t,!0,!1).catch(e=>{const{code:t=0,data:s={}}=e.code;throw t===m.MSG_MODIFY_CONFLICT?console.warn(`${U.MSG_MODIFY_CONFLICT} data.message: ${null==s?void 0:s.message}`):t===m.MSG_MODIFY_DISABLED_IN_AVCHATROOM?console.warn(U.MSG_MODIFY_DISABLED_IN_AVCHATROOM):t===m.MODIFY_MESSAGE_NOT_EXIST&&console.warn(U.MODIFY_MESSAGE_NOT_EXIST),e})}getMessageList(e={conversationID:this.getStoreData(p.CONV,"currentConversationID"),nextReqMessageID:this.getStoreData(p.CHAT,"nextReqMessageID")}){const t=this.getEngine();if(!t.chat.isReady())return Promise.reject({code:S.GET_MSG_LIST_ERROR,message:M.GET_MSG_LIST_ERROR});if(this.getStoreData(p.CHAT,"isCompleted"))return Promise.resolve({data:{messageList:[],nextReqMessageID:"",isCompleted:!0}});const s=this.getStoreData(p.CHAT,"messageSource"),i=this.hoppingConfigMap.get("nextMessageSeq"),n=this.hoppingConfigMap.get("nextMessageTime"),a=i||n;return s&&s.conversationID===(null==e?void 0:e.conversationID)&&a?this.getMessageListHopping():t.chat.getMessageList(e).then(e=>{var s;const{messageList:i,nextReqMessageID:n,isCompleted:a}=e.data,r=this.getStoreData(p.CHAT,"userInfo");Object.keys(r).length>0&&this.updateLocalMessage(i,r),this.updateMessageList(i,"unshift"),t.TUIStore.update(p.CHAT,"nextReqMessageID",n),t.TUIStore.update(p.CHAT,"isCompleted",a);const o=null===(s=i[0])||void 0===s?void 0:s.conversationID,{operationType:g=0}=this.getEngine().TUIStore.getConversationModel(o)||{};return 0===g&&(this.getMessageReactions({messageList:i}),this.readReceiptHandler.getMessageReadReceiptList(i)),e}).catch(e=>Promise.reject(e))}getMessageListHopping(e){var t;void 0===e&&(e={conversationID:null===(t=this.getStoreData(p.CHAT,"messageSource"))||void 0===t?void 0:t.conversationID,sequence:this.hoppingConfigMap.get("nextMessageSeq"),time:this.hoppingConfigMap.get("nextMessageTime")});const s=this.getEngine();return s.chat.getMessageListHopping(e).then(t=>{const{messageList:i,nextMessageSeq:n,nextMessageTime:a,isCompleted:r}=t.data,o=1===e.direction?e.sequence:n,g=1===e.direction?e.time:a;return this.updateMessageList(i,"unshift"),this.delayGetHoppingFunction=void 0,this.hoppingConfigMap.set("nextMessageSeq",o),this.hoppingConfigMap.set("nextMessageTime",g),s.TUIStore.update(p.CHAT,"isCompleted",r),t}).catch(e=>Promise.reject(e))}sendMessageReadReceipt(e){return this.readReceiptHandler.sendMessageReadReceipt(e)}getGroupMessageReadMemberList(e){return this.readReceiptHandler.getGroupMessageReadMemberList(e).then(e=>{const{isCompleted:t,cursor:s,messageID:i,unreadUserIDList:n,readUserIDList:a}=e.data,r={code:0,data:{cursor:s,isCompleted:t,messageID:i,unreadUserInfoList:[],readUserInfoList:[]}},o=[...n,...a];return 0===o.length?r:this.getEngine().TUIUser.getUserProfile({userIDList:o}).then(e=>(n.length>0?e.data.forEach(e=>{const{userID:t,nick:s="",avatar:i=""}=e;r.data.unreadUserInfoList.push({userID:t,nick:s,avatar:i})}):e.data.forEach(e=>{const{userID:t,nick:s="",avatar:i=""}=e;r.data.readUserInfoList.push({userID:t,nick:s,avatar:i})}),r))})}downloadMergedMessages(e){return this.getEngine().chat.downloadMergerMessage(e)}setTranslationLanguage(e){this.getEngine().TUIStore.update(p.USER,"targetLanguage",e)}translateText(e){const t=this.getStoreData(p.USER,"targetLanguage"),s=Object.assign({targetLanguage:t,sourceLanguage:"auto"},e);return this.getEngine().chat.translateText(s)}searchCloudMessages(e){return this.getEngine().TUISearch.searchCloudMessages(e)}addMessageReaction(e,t){return this.getEngine().chat.addMessageReaction(e.getMessage(),t)}removeMessageReaction(e,t){return this.getEngine().chat.removeMessageReaction(e.getMessage(),t)}getMessageReactions(e){const{messageList:t=[]}=e,s=this.getStoreData(p.APP,"enabledEmojiPlugin");console.log(`TUIChatService.getMessageReactions enabledEmojiPlugin:${s} messageList length:${t.length}`),s&&t.length>0&&this.getEngine().chat.getMessageReactions(e).then(e=>{const t=e.data.resultList||e.data;this.updateMessageReactionList(t)}).catch(()=>{})}getAllUserListOfMessageReaction(e){var t;return this.getEngine().chat.getAllUserListOfMessageReaction(Object.assign(Object.assign({},e),{message:null===(t=null==e?void 0:e.message)||void 0===t?void 0:t.getMessage()}))}updateMessageReactionList(e){const t=[];e.forEach(e=>{const{messageID:s,reactionList:i}=e,n=this.getEngine().TUIStore.getMessageModel(s);if(n){const e=[];for(let t=0;t<i.length;t++){let s=!0;for(let e=0;e<n.reactionList.length;e++)if(i[t].reactionID===n.reactionList[e].reactionID){n.reactionList[e]=i[t],s=!1;break}s&&e.push(i[t])}n.reactionList.push(...e),e.length=0,t.push(n)}}),t.length>0&&this.updateMessageList(t,"edit")}convertVoiceToText(e){const{message:t,language:s="zh"}=e,i=t.getMessage();return this.getEngine().chat.convertVoiceToText({message:i,language:s})}clearHistoryMessage(e){const t=this.getEngine();return t.chat.clearHistoryMessage(e).then(e=>(t.TUIStore.update(p.CHAT,"messageList",[]),t.TUIStore.update(p.CHAT,"nextReqMessageID",""),t.TUIStore.update(p.CHAT,"isCompleted",!1),e))}updateMessageInfo(e){const t=this.getStoreData(p.CHAT,"userInfo");this.getEngine().TUIStore.update(p.CHAT,"userInfo",Object.assign(t,e));const s=this.getStoreData(p.CHAT,"messageList");if(s.length>0){this.updateLocalMessage(s,e)&&this.getEngine().TUIStore.update(p.CHAT,"messageList",s)}}updateLocalMessage(e,t){let s=!1;return e.forEach(e=>{if(t[e.from]){const{nick:i,nameCard:n,avatar:a}=t[e.from];i&&(e.nick=i,s=!0),n&&(e.nameCard=n,s=!0),a&&(e.avatar=a,s=!0)}}),s}handleC2CCallSignaling(e=[]){var t,s,i,n,a,r,o;const g=[],c=this.getEngine(),h=c.getMyUserID();for(let u=0;u<e.length;u++){const d=e[u],{conversationType:l,type:T,payload:E}=d;let I=!0;if(l===c.TYPES.CONV_C2C&&T===c.TYPES.MSG_CUSTOM){if(null===(s=(t=c.chat).getSignalingInfo)||void 0===s?void 0:s.call(t,d)){const e=A(E.data);if(1===(null==e?void 0:e.businessID)){const t=A(e.data);if(I=!(d._isExcludedFromUnreadCount&&d._isExcludedFromLastMessage),I&&!0!==(null===(i=null==t?void 0:t.data)||void 0===i?void 0:i.consumed)){let s=null===(n=null==t?void 0:t.data)||void 0===n?void 0:n.inviter;"line_busy"!==(null==t?void 0:t.line_busy)&&"lineBusy"!==(null===(a=null==t?void 0:t.data)||void 0===a?void 0:a.message)||(s=e.inviter);const i=JSON.parse(JSON.stringify(d)),{from:c,to:u}=i;if(s!==h&&i.from===h){const e=this.getStoreData(p.CONV,"currentConversation");i.from=u,i.to=c,i.flow="in",i.avatar=(null===(r=null==e?void 0:e.userProfile)||void 0===r?void 0:r.avatar)||""}if(s===h&&i.from!==h){const e=this.getStoreData(p.USER,"userProfile");i.from=u,i.to=c,i.flow="out",i.avatar=null==e?void 0:e.avatar}console.log(`${this.serv}.handleC2CCallSignaling myUserID:${h} callSignaling.inviter:${e.inviter} customData.data.inviter:${null===(o=null==t?void 0:t.data)||void 0===o?void 0:o.inviter}`),g.push(i);continue}}}}g.push(d)}return g}sortMessageList(e){const{conversationType:t}=e[0];if(t===this.getEngine().TYPES.CONV_C2C)return e.sort((e,t)=>e.time-t.time);const s=e.filter(e=>"success"===e.status).sort((e,t)=>e.sequence-t.sequence);for(let t=0;t<e.length;t++)"success"!==e[t].status&&s.splice(t,0,e[t]);return s}}class Ve extends Te{constructor(){super(),this.groupMap=new Map}static getInstance(){return Ve.instance||(Ve.instance=new Ve),Ve.instance}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.GROUP_LIST_UPDATED,this.onGroupListUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.GROUP_ATTRIBUTES_UPDATED,this.onGroupAttributesUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.GROUP_COUNTER_UPDATED,this.onGroupCounterUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_RECEIVED,this.onMessageReceived.bind(this)),this.getGroupInitData()}onGroupListUpdated(e){const t=this.getEngine();t.TUIStore.update(p.GRP,"groupList",e);const s=t.TUIStore.getData(p.GRP,"currentGroupID");e.forEach(e=>{e.groupID===s&&t.TUIStore.update(p.GRP,"currentGroup",e)})}onGroupAttributesUpdated(e){const t=this.getEngine(),s=t.TUIStore.getData(p.GRP,"currentGroupID");let i=t.TUIStore.getData(p.GRP,"groupList");const{groupID:n,groupAttributes:a}=e;s===n&&t.TUIStore.update(p.GRP,"currentGroupAttributes",a),i=i.map(e=>(e.groupID===n&&(e.groupAttributes=a),e)),t.TUIStore.update(p.GRP,"groupList",i)}onGroupCounterUpdated(e){const t=this.getEngine(),s=t.TUIStore.getData(p.GRP,"currentGroupID"),i=t.TUIStore.getData(p.GRP,"currentGroupCounters")||{};let n=t.TUIStore.getData(p.GRP,"groupList");const{groupID:a,key:r,value:o}=e;s===a&&(i[r]=o,t.TUIStore.update(p.GRP,"currentGroupCounters",i)),n=n.map(e=>(e.groupID===a&&(e.groupCounters=Object.assign(Object.assign({},e.groupCounters),{[r]:o})),e)),t.TUIStore.update(p.GRP,"groupList",n)}onMessageReceived(e){const t=this.getEngine(),s=[];e.forEach(e=>{if(e.type===t.TYPES.MSG_GRP_TIP){const{payload:s}=e,{operationType:i,userIDList:n}=s;switch(i){case t.TYPES.GRP_TIP_MBR_JOIN:this.addMemberList(n);break;case t.TYPES.GRP_TIP_MBR_QUIT:case t.TYPES.GRP_TIP_MBR_KICKED_OUT:this.removeMemberList(n);break;case t.TYPES.GRP_TIP_MBR_SET_ADMIN:case t.TYPES.GRP_TIP_MBR_CANCELED_ADMIN:this.updateGroupMember(n);break;case t.TYPES.GRP_TIP_GRP_PROFILE_UPDATED:break;case t.TYPES.GRP_TIP_MBR_PROFILE_UPDATED:case t.TYPES.GRP_TIP_BAN_AVCHATROOM_MEMBER:case t.TYPES.GRP_TIP_UNBAN_AVCHATROOM_MEMBER:this.updateGroupMember(n)}}e.type===t.TYPES.MSG_GRP_SYS_NOTICE&&s.push(e)}),s.length>0&&t.TUIStore.update(p.GRP,"groupSystemNoticeList",s)}getGroupInitData(){const e=this.getEngine();e.chat.isReady()&&e.chat.getGroupList().then(e=>{const{groupList:t=[]}=e.data;console.log(`TUIGroupService.init, getGroupList count:${t.length}`),t.length>0&&this.onGroupListUpdated(t)})}updateGroupMember(e){return u(this,void 0,void 0,function*(){const t=this.getEngine().TUIStore.getData(p.GRP,"currentGroupID");if(t){const s=yield this.getGroupMemberProfile({groupID:t,userIDList:e}),{memberList:i}=s.data;this.updateMemberList(i)}})}resetCurrentStore(){this.getEngine().TUIStore.reset(p.GRP,["currentGroupID","currentGroup","currentGroupAttributes","currentGroupCounters","currentGroupMemberList"],!0)}switchGroup(e){return u(this,void 0,void 0,function*(){const t=this.getEngine();t.TUIStore.update(p.GRP,"offset",0),t.TUIStore.update(p.GRP,"isCompleted",!1);const s=t.TUIStore.getConversationModel(`GROUP${e}`);if((null==s?void 0:s.operationType)>0){const e=t.TUIStore.getData(p.GRP,"currentGroup");return Promise.resolve(e)}const i=t.TUIStore.getData(p.GRP,"currentGroupID");if(!e)return this.resetCurrentStore(),Promise.resolve({});if(i===e){const e=t.TUIStore.getData(p.GRP,"currentGroup");return Promise.resolve(e)}this.resetCurrentStore(),t.TUIStore.update(p.GRP,"currentGroupID",e);try{yield this.getGroupInfo(e)}catch(e){Promise.reject(e)}const n=setTimeout(()=>{this.groupMap.delete(e),clearTimeout(n)},5e3),a=t.TUIStore.getData(p.GRP,"currentGroup");return Promise.resolve(a)})}getGroupInfo(e){return u(this,void 0,void 0,function*(){const t=this.getEngine(),s=this.groupMap.get(e);if(s)return this.updateMemberList((null==s?void 0:s.memberList)||[]),t.TUIStore.update(p.GRP,"currentGroup",s.group),t.TUIStore.update(p.GRP,"currentGroupAttributes",s.groupAttributes||{}),void t.TUIStore.update(p.GRP,"currentGroupCounters",s.counters||{});const i={group:{},memberList:[],groupAttributes:void 0,counters:void 0},{data:{group:n}}=yield this.getGroupProfile({groupID:e});i.group=n;const{data:{memberList:a}}=yield this.getGroupMemberList({groupID:e});i.memberList=a;const r=yield this.getGroupAttributes({groupID:e,keyList:[]}),{groupAttributes:o}=r.data;i.groupAttributes=o,t.TUIStore.update(p.GRP,"currentGroupAttributes",o);try{const s=yield this.getGroupCounters({groupID:e,keyList:[]}),{counters:n}=s.data;i.counters=n,t.TUIStore.update(p.GRP,"currentGroupCounters",n)}catch(e){console.warn(null==e?void 0:e.message)}this.groupMap.set(e,i)})}getGroupProfile(e){const t=this.getEngine();return t.chat.getGroupProfile(e).then(s=>u(this,void 0,void 0,function*(){if(t.TUIStore.getData(p.GRP,"currentGroupID")===e.groupID){const{group:e}=s.data;t.TUIStore.update(p.GRP,"currentGroup",e)}return s}))}updateGroupProfile(e){return this.getEngine().chat.updateGroupProfile(e)}createGroup(e){return this.getEngine().chat.createGroup(e)}dismissGroup(e){return this.getEngine().chat.dismissGroup(e)}searchGroupByID(e){const t=this.getEngine();return t.chat.searchGroupByID(e).then(e=>{const{group:s}=e.data,i=t.TUIStore.getData(p.GRP,"groupList");return e.data.group.isJoinedGroup=i.some(e=>e.groupID===s.groupID),e})}joinGroup(e){return this.getEngine().chat.joinGroup(e)}quitGroup(e){return this.getEngine().chat.quitGroup(e)}getGroupApplicationList(){return this.getEngine().chat.getGroupApplicationList()}handleGroupApplication(e){return this.getEngine().chat.handleGroupApplication(e)}getGroupOnlineMemberCount(e){return this.getEngine().chat.getGroupOnlineMemberCount(e)}changeGroupOwner(e){return this.getEngine().chat.changeGroupOwner(e)}initGroupAttributes(e){return this.getEngine().chat.initGroupAttributes(e)}setGroupAttributes(e){return this.getEngine().chat.setGroupAttributes(e)}deleteGroupAttributes(e){return this.getEngine().chat.deleteGroupAttributes(e)}getGroupAttributes(e){return this.getEngine().chat.getGroupAttributes(e)}setGroupCounters(e){return this.getEngine().chat.setGroupCounters(e)}increaseGroupCounter(e){return this.getEngine().chat.increaseGroupCounter(e)}decreaseGroupCounter(e){return this.getEngine().chat.decreaseGroupCounter(e)}getGroupCounters(e){return this.getEngine().chat.getGroupCounters(e)}updateMemberList(e){const t=this.getEngine(),s=[...(t.TUIStore.getData(p.GRP,"currentGroupMemberList")||[]).filter(t=>!e.find(e=>e.userID===t.userID)),...e];t.TUIStore.update(p.GRP,"currentGroupMemberList",s)}addMemberList(e){return u(this,void 0,void 0,function*(){const t=this.getEngine().TUIStore.getData(p.GRP,"currentGroupID");if(t)try{const s=yield this.getGroupMemberProfile({groupID:t,userIDList:e}),{memberList:i}=s.data;this.updateMemberList(i)}catch(t){const s=e.map(e=>({userID:e,avatar:"",nick:"",role:"",joinTime:0,nameCard:"",muteUntil:0,memberCustomField:[]}));this.updateMemberList(s)}})}removeMemberList(e){const t=this.getEngine(),s=t.TUIStore.getData(p.GRP,"currentGroupMemberList").filter(t=>-1===e.indexOf(t.userID));t.TUIStore.update(p.GRP,"currentGroupMemberList",s)}getGroupMemberList(e){const t=this.getEngine();if(R(e.offset)){const s=t.TUIStore.getData(p.GRP,"offset");e.offset=s}return t.chat.getGroupMemberList(e).then(s=>{if(t.TUIStore.getData(p.GRP,"currentGroupID")===e.groupID){const{memberList:e,offset:i=0}=s.data;this.updateMemberList(e),t.TUIStore.update(p.GRP,"offset",i),0===i&&t.TUIStore.update(p.GRP,"isCompleted",!0)}return s})}getGroupMemberProfile(e){return this.getEngine().chat.getGroupMemberProfile(e)}addGroupMember(e){const t=this.getEngine();return t.chat.addGroupMember(e).then(s=>u(this,void 0,void 0,function*(){if(t.TUIStore.getData(p.GRP,"currentGroupID")===e.groupID){const{successUserIDList:e,group:i}=s.data;t.TUIStore.update(p.GRP,"currentGroup",i),this.addMemberList(e)}return s}))}deleteGroupMember(e){const t=this.getEngine();return t.chat.deleteGroupMember(e).then(s=>{if(t.TUIStore.getData(p.GRP,"currentGroupID")===e.groupID){const{userIDList:e,group:i}=s.data;this.removeMemberList(e),t.TUIStore.update(p.GRP,"currentGroup",i)}return s})}setGroupMemberMuteTime(e){return this.getEngine().chat.setGroupMemberMuteTime(e)}setGroupMemberRole(e){return this.getEngine().chat.setGroupMemberRole(e)}setGroupMemberNameCard(e){return this.getEngine().chat.setGroupMemberNameCard(e)}setGroupMemberCustomField(e){return this.getEngine().chat.setGroupMemberCustomField(e)}markGroupMemberList(e){return this.getEngine().chat.markGroupMemberList(e)}}class Fe extends Te{constructor(){super(),this.tobeUpdatedFriendGroupList=void 0}static getInstance(){return Fe.instance||(Fe.instance=new Fe),Fe.instance}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.FRIEND_LIST_UPDATED,this.onFriendListUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.FRIEND_APPLICATION_LIST_UPDATED,this.onFriendApplicationListUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.FRIEND_GROUP_LIST_UPDATED,this.onFriendGroupListUpdated.bind(this)),this.getFriendInitData()}onFriendListUpdated(e){this.getEngine().TUIStore.update(p.FRIEND,"friendList",e),this.updatedFriendGroupList(e,this.tobeUpdatedFriendGroupList)}onFriendApplicationListUpdated(e){const{friendApplicationList:t,unreadCount:s=0}=e,i=this.getEngine();i.TUIStore.update(p.FRIEND,"friendApplicationList",t),i.TUIStore.update(p.FRIEND,"friendApplicationUnreadCount",s)}onFriendGroupListUpdated(e){const t=this.getEngine().TUIStore.getData(p.FRIEND,"friendList");t.length>0?this.updatedFriendGroupList(t,e):this.tobeUpdatedFriendGroupList=e}updatedFriendGroupList(e,t){const s=this.getEngine();if(t&&t.length>0){const i=t.map(t=>{const{userIDList:s}=t,i=h(t,["userIDList"]),n=s.map(t=>e.find(e=>e.userID===t));return Object.assign(Object.assign({},i),{friendList:n})});s.TUIStore.update(p.FRIEND,"friendGroupList",i),this.tobeUpdatedFriendGroupList=void 0}}getFriendInitData(){const e=this.getEngine();e.chat.isReady()&&(e.chat.getFriendList().then(e=>{const t=e.data||[];console.log(`TUIFriendService.init, getFriendList count:${t.length}`),t.length>0&&this.onFriendListUpdated(t)}),e.chat.getFriendGroupList().then(e=>{const t=e.data||[];console.log(`TUIFriendService.init, getFriendGroupList count:${t.length}`),t.length>0&&this.onFriendGroupListUpdated(t)}),e.chat.getFriendApplicationList().then(e=>{this.onFriendApplicationListUpdated(e.data)}))}getFriendList(){return this.getEngine().chat.getFriendList()}getFriendRemark(e){const t=this.getEngine().TUIStore.getData(p.FRIEND,"friendList"),s={};return e.forEach(e=>{for(let i=0;i<t.length;i++)t[i].userID!==e||(s[e]=t[i].remark)}),s}addFriend(e){return this.getEngine().chat.addFriend(e)}deleteFriend(e){return this.getEngine().chat.deleteFriend(e)}checkFriend(e){return this.getEngine().chat.checkFriend(e)}getFriendProfile(e){return this.getEngine().chat.getFriendProfile(e)}updateFriend(e){return this.getEngine().chat.updateFriend(e)}acceptFriendApplication(e){return this.getEngine().chat.acceptFriendApplication(e)}refuseFriendApplication(e){return this.getEngine().chat.refuseFriendApplication({userID:e})}deleteFriendApplication(e){return this.getEngine().chat.deleteFriendApplication(e)}setFriendApplicationRead(){return this.getEngine().chat.setFriendApplicationRead()}createFriendGroup(e){return this.getEngine().chat.createFriendGroup(e)}deleteFriendGroup(e){return this.getEngine().chat.deleteFriendGroup({name:e})}addToFriendGroup(e){return this.getEngine().chat.addToFriendGroup(e)}removeFromFriendGroup(e){return this.getEngine().chat.removeFromFriendGroup(e)}renameFriendGroup(e){return this.getEngine().chat.renameFriendGroup(e)}}class He extends Te{static getInstance(){return He.instance||(He.instance=new He),He.instance}reportFeature(e,t){var s;return null===(s=this.getEngine().chat)||void 0===s?void 0:s.callExperimentalAPI("statTUIKeyFeatures",{code:e,msg:t?`${e}-${t}`:""})}}var Ye,Be,Ke;!function(e){e.MESSAGE="message",e.CHAT_MESSAGE="chat_message",e.USER="user",e.GROUP="group"}(Ye||(Ye={})),function(e){e.MSG_TEXT="TIMTextElem",e.MSG_IMAGE="TIMImageElem",e.MSG_SOUND="TIMSoundElem",e.MSG_FILE="TIMFileElem",e.MSG_VIDEO="TIMVideoFileElem",e.MSG_LOCATION="TIMLocationElem",e.MSG_CUSTOM="TIMCustomElem",e.MSG_MERGER="TIMRelayElem"}(Be||(Be={})),function(e){e.GRP_WORK="Private",e.GRP_PUBLIC="Public",e.GRP_MEETING="ChatRoom",e.GRP_COMMUNITY="Community"}(Ke||(Ke={}));class qe extends Te{constructor(){super(),this.resultKeyMap={[Ye.MESSAGE]:"searchMessagesResult",[Ye.CHAT_MESSAGE]:"searchChatMessagesResult",[Ye.USER]:"searchUserResult",[Ye.GROUP]:"searchGroupResult"},this.paramsKeyMap={[Ye.MESSAGE]:"searchMessageParams",[Ye.CHAT_MESSAGE]:"searchChatMessageParams",[Ye.USER]:"searchUserParams",[Ye.GROUP]:"searchGroupParams"}}static getInstance(){return qe.instance||(qe.instance=new qe),qe.instance}getStoreData(e,t){return this.getEngine().TUIStore.getData(e,t)}handleSearchResult(e,t){const{resultList:s}=this.getStoreData(p.SEARCH,this.resultKeyMap[e]),{cursor:i,searchResultList:n,params:a,totalCount:r}=t,o=[];if(e===Ye.CHAT_MESSAGE){const{conversation:e}=s[0]||{},{conversation:t}=n[0]||{};(null==e?void 0:e.conversationID)===(null==t?void 0:t.conversationID)&&1===s.length&&(n[0].messageList=[...s[0].messageList,...n[0].messageList]),o.push(...n)}else o.push(...s,...n);this.getEngine().TUIStore.update(p.SEARCH,this.resultKeyMap[e],{resultList:o,params:a,hasMore:!!i,cursor:i,totalCount:r})}searchParamsValidate(e,t){const s=this.getStoreData(p.SEARCH,this.paramsKeyMap[e]),{cursor:i}=s,n=h(s,["cursor"]),{cursor:a}=t,r=h(t,["cursor"]),o=JSON.stringify(n)===JSON.stringify(r),g=!!a,c=a===i;return o?o&&!g?(this.getEngine().TUIStore.reset(p.SEARCH,[this.resultKeyMap[e]]),this.getEngine().TUIStore.update(p.SEARCH,this.paramsKeyMap[e],t),!0):!(!o||!g||c):(this.getEngine().TUIStore.reset(p.SEARCH,[this.resultKeyMap[e]]),this.getEngine().TUIStore.update(p.SEARCH,this.paramsKeyMap[e],t),!0)}searchCloudMessages(e){const{keyword:t,keywordList:s,conversationID:i}=e,n=h(e,["keyword","keywordList","conversationID"]);let a=!0;if(a=i?this.searchParamsValidate(Ye.CHAT_MESSAGE,e):this.searchParamsValidate(Ye.MESSAGE,e),!a)return Promise.resolve();const r=this.getStoreData(p.CONV,"conversationList");return this.getEngine().chat.searchCloudMessages(Object.assign({keywordList:t?[t]:s||void 0,keywordListMatchType:"or",conversationID:i},n)).then(t=>u(this,void 0,void 0,function*(){const{searchResultList:s}=t.data;if((null==s?void 0:s.length)>0){const e=[];if(t.data.searchResultList=s.map(t=>{const{messageList:s,conversationID:i}=t,n=h(t,["messageList","conversationID"]),a=s.map(e=>new Ue(e)),o=r.find(e=>e.conversationID===i);return R(o)&&e.push(Pe.getInstance().getConversationProfile(i)),Object.assign(Object.assign({},n),{messageList:a.sort((e,t)=>t.time-e.time),conversation:o})}),e.length>0)try{const i=yield Promise.all(e);t.data.searchResultList=s.map(e=>{const{messageList:t,conversationID:s}=e,n=h(e,["messageList","conversationID"]),a=t.map(e=>new Ue(e)),{data:{conversation:r}}=i.find(e=>e.data.conversation.conversationID===s),o=new me(r);return Object.assign(Object.assign({},n),{messageList:a.sort((e,t)=>t.time-e.time),conversation:o})})}catch(e){console.log("fetch conversation error",e)}}return t.data.params=e,i?this.handleSearchResult(Ye.CHAT_MESSAGE,t.data):this.handleSearchResult(Ye.MESSAGE,t.data),t})).catch(e=>(this.getEngine().TUIStore.update(p.SEARCH,"error",e),Promise.reject(e)))}searchCloudUsers(t){const{keyword:s,keywordList:i}=t,n=h(t,["keyword","keywordList"]),a=this.getStoreData(p.FRIEND,"friendList");return this.searchParamsValidate(Ye.USER,t)?this.getEngine().chat.searchCloudUsers(Object.assign({keywordList:s?[s]:i||void 0,keywordListMatchType:"or"},n)).then(s=>{const{searchResultList:i}=s.data;if(i.length>0){const t=new Map(i.map(t=>[t.userID,{profile:t,relation:e.TYPES.SNS_TYPE_NO_RELATION}]));a.forEach(s=>{const{userID:i}=s,n=t.get(i);n&&(n.relation=e.TYPES.SNS_TYPE_BOTH_WAY)}),s.data.searchResultList=Array.from(t.values())}return s.data.params=t,this.handleSearchResult(Ye.USER,s.data),s}).catch(e=>(this.getEngine().TUIStore.update(p.SEARCH,"error",e),Promise.reject(e))):Promise.resolve()}searchCloudGroups(e){const{keyword:t,keywordList:s}=e,i=h(e,["keyword","keywordList"]),n=this.getStoreData(p.CONV,"conversationList"),a=this.getStoreData(p.GRP,"groupList");return this.searchParamsValidate(Ye.GROUP,e)?this.getEngine().chat.searchCloudGroups(Object.assign({keywordList:t?[t]:s||void 0,keywordListMatchType:"or"},i)).then(t=>{const{searchResultList:s}=t.data;return s.length>0&&(t.data.searchResultList=s.map(e=>{const t=a.find(t=>t.groupID===e.groupID),s=n.find(t=>t.conversationID===`GROUP${e.groupID}`);return{groupInfo:t||e,conversation:s}})),t.data.params=e,this.handleSearchResult(Ye.GROUP,t.data),t}).catch(e=>(this.getEngine().TUIStore.update(p.SEARCH,"error",e),Promise.reject(e))):Promise.resolve()}}class ze{constructor(){this.cache=[],this.middlewares=[],this.options=null}use(e){return"function"!=typeof e&&console.error("middleware must be a function"),this.cache.push(e),this}next(){if(this.middlewares&&this.middlewares.length>0){return this.middlewares.shift().call(this,this.options,this.next.bind(this))}}run(e){return this.middlewares=this.cache.map(e=>e),this.options=e,this.next()}}function We(e,t,s){const i=Object.create(null);Object.keys(s).forEach(s=>{if(!t[s])return;i[s]=t[s];const n=new ze;t[s]=function(){const a=Array.from(arguments);return n.use((t,i)=>e.isInited?i():Promise.reject({code:S.NOT_INIT,message:`${s} | ${M.NOT_INIT}`})).use(e=>i[s].apply(t,e)),n.run(a)}})}console.log("TUIChatEngine-Lite.VERSION:1.0.4");const Je=de.getInstance(),Xe=ce.getInstance(),Ze=ye.getInstance(),Qe=Re.getInstance(),et=Pe.getInstance(),st=je.getInstance(),it=$e.getInstance(),nt=Ve.getInstance(),at=Fe.getInstance(),rt=He.getInstance(),ot=qe.getInstance();Je.mount(l.TUIStore,Ze),Je.mount(l.TUITranslate,Qe),Je.mount(l.TUIConversation,et),Je.mount(l.TUIUser,st),Je.mount(l.TUIChat,it),Je.mount(l.TUIGroup,nt),Je.mount(l.TUIFriend,at),Je.mount(l.TUIReport,rt),Je.mount(l.TUISearch,ot),We(Je,Je,f),We(Je,et,_),We(Je,it,C),We(Je,nt,v),We(Je,st,D),We(Je,at,y),We(Je,rt,f),We(Je,ot,f);export{Ke as GroupType,Ye as ISearchType,Be as MessageType,p as StoreName,Je as TUIChatEngine,it as TUIChatService,et as TUIConversationService,at as TUIFriendService,Xe as TUIGlobal,nt as TUIGroupService,rt as TUIReportService,ot as TUISearchService,Ze as TUIStore,Qe as TUITranslateService,st as TUIUserService,Je as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tencentcloud/chat-uikit-engine-lite",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Tencent Cloud TUIChatEngine SDK for Chat TUIKit",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -20,6 +20,6 @@
|
|
|
20
20
|
"author": "Tencent Cloud Terminal R&D Center",
|
|
21
21
|
"license": "ISC",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@tencentcloud/lite-chat": "^1.
|
|
23
|
+
"@tencentcloud/lite-chat": "^1.6.3"
|
|
24
24
|
}
|
|
25
25
|
}
|