jiuyiUniapp/jiuyi2/node_modules/@tencentcloud/tui-core/index.js

2 lines
11 KiB
JavaScript

import e from"@tencentcloud/chat";import t from"tim-upload-plugin";import n from"tim-profanity-filter-plugin";class i{constructor(){this.serviceMap=new Map}registerService(e,t){this.serviceMap.has(e)||(console.log(`TUIServiceManager.registerService serviceName:${e}`),this.serviceMap.set(e,t))}unregisterService(e){this.serviceMap.has(e)&&(console.log(`TUIServiceManager.unregisterService serviceName:${e}`),this.serviceMap.delete(e))}getService(e){return this.serviceMap.get(e)}callService(e){const{serviceName:t,method:n,params:i,callback:s}=e,o=this.getService(t);if(console.log(`TUIServiceManager.callService serviceName:${t}, service:`,o),o)return o.onCall(n,i,s)}}class s{constructor(){this.extensionMap=new Map}registerExtension(e,t){if(console.log(`TUIExtensionManager.registerExtension extensionID:${e}`),!this.extensionMap.has(e)){const t=[];this.extensionMap.set(e,t)}const n=this.extensionMap.get(e);-1===n.indexOf(t)&&n.push(t)}unregisterExtension(e,t){if(console.log(`TUIExtensionManager.unregisterExtension extensionID:${e}`),this.extensionMap.has(e)){const n=this.extensionMap.get(e),i=n.indexOf(t);i>-1&&n.splice(i,1)}}getExtensionList(e,t){const n=t?`params:${JSON.stringify(t)}`:"";console.log(`TUIExtensionManager.getExtensionList extensionID:${e} ${n}`);let i=[],s=[];if(this.extensionMap.has(e)){i=this.extensionMap.get(e);for(let n=0;n<i.length;n++){const o=i[n].onGetExtension(e,t);s=s.concat(o)}}return s}}const o=["vue2","vue3"],E={TUILogin:{EVENT:{LOGIN_STATE_CHANGED:"loginStateChanged"},EVENT_SUB_KEY:{USER_LOGIN_SUCCESS:"userLoginSuccess",USER_LOGOUT_SUCCESS:"userLogoutSuccess",USER_KICKED_OFFLINE:"userKickedOffline",USER_SIG_EXPIRED:"userSigExpired"}},TUIConversation:{SERVICE:{NAME:"TUIConversationService",METHOD:{CREATE_CONVERSATION:"createConversation",HIDE_CONVERSATION_HEADER:"hideConversationHeader"}},EXTENSION:{CONV_POP_MENU:{EXT_ID:"conversationPopMenu"},CONV_GROUP:{EXT_ID:"conversationGroup"}}},TUIChat:{SERVICE:{NAME:"TUIChatService",METHOD:{UPDATE_MESSAGE_LIST:"updateMessageList",CLOSE_MESSAGE_POP_MENU:"closeMessagePopMenu",SEND_CUSTOM_MESSAGE:"sendCustomMessage",SEND_TEXT_MESSAGE:"sendTextMessage",SET_CHAT_TYPE:"setChatType",UPDATE_MESSAGE_INFO:"updateMessageInfo"}},EXTENSION:{INPUT_MORE:{EXT_ID:"inputToolBarMore"},MSG_POP_MENU:{EXT_ID:"messagePopMenu"},CHAT_HEADER:{EXT_ID:"chatHeader"}},TYPE:{C2C:"C2C",GROUP:"GROUP",CUSTOMER_SERVICE:"customerService",ROOM:"room"},EVENT:{CHAT_STATE_CHANGED:"chatStateChanged",CHAT_TYPE_CHANGED:"chatTypeChanged"},EVENT_SUB_KEY:{CHAT_OPENED:"chatOpened",CHANGE_SUCCESS:"changeSuccess"},FEATURE:{DownloadFile:"DownloadFile",CopyMessage:"CopyMessage",DeleteMessage:"DeleteMessage",RevokeMessage:"RevokeMessage",QuoteMessage:"QuoteMessage",ForwardMessage:"ForwardMessage",TranslateMessage:"TranslateMessage",VoiceToText:"VoiceToText",MultiSelection:"MultiSelection",EmojiReaction:"EmojiReaction",InputEmoji:"InputEmoji",InputStickers:"InputStickers",InputImage:"InputImage",InputVoice:"InputVoice",InputVideo:"InputVideo",InputFile:"InputFile",InputEvaluation:"InputEvaluation",InputQuickReplies:"InputQuickReplies",InputMention:"InputMention",MessageSearch:"MessageSearch",ReadStatus:"ReadStatus"}},TUIGroup:{SERVICE:{NAME:"TUIGroupService",METHOD:{CREATE_GROUP:"createGroup",OPEN_GROUP_MANAGEMENT:"openGroupManagement",SELECT_GROUP_MEMBER:"selectGroupMember"}}},TUIContact:{SERVICE:{NAME:"TUIContactService",METHOD:{SELECT_FRIEND:"selectFriend"}},EXTENSION:{CONTACT_LIST:{EXT_ID:"contactList"}}},TUISearch:{SERVICE:{NAME:"TUISearchService",METHOD:{SEARCH_GROUP:"searchGroup",SEARCH_USER:"searchUser",SEARCH_FRIEND:"searchFriend",SEARCH_GROUP_MEMBER:"searchGroupMember"}},EXTENSION:{SEARCH_MORE:{EXT_ID:"searchMore"}}},TUICalling:{SERVICE:{NAME:"TUICallingService",METHOD:{START_CALL:"startCall"}}},TUIRoom:{SERVICE:{NAME:"TUIRoomService"}},TUIEmojiPlugin:{SERVICE:{NAME:"TUIEmojiPluginService",METHOD:{CLOSE_EMOJI_DETAIL:"closeEmojiDetail"}}},TUITranslate:{EVENT:{LANGUAGE_CHANGED:"languageChanged"},EVENT_SUB_KEY:{CHANGE_SUCCESS:"changeSuccess"}},TUITranslatePlugin:{SERVICE:{NAME:"TUITranslatePluginService"}},TUIVoiceToTextPlugin:{SERVICE:{NAME:"TUIVoiceToTextPluginService"}},TUICustomerServicePlugin:{SERVICE:{NAME:"TUICustomerServicePlugin",METHOD:{ACTIVE_CONVERSATION:"activeConversation",FILTER_MESSAGE:"filterMessage"}},EXTENSION:{}},TUIPushPlugin:{SERVICE:{NAME:"TUIPushPluginService"}},TUIChatbotPlugin:{SERVICE:{NAME:"TUIChatbotPluginService"}},TUITheme:{EVENT:{THEME_CHANGED:"themeChanged"},EVENT_SUB_KEY:{CHANGE_SUCCESS:"changeSuccess"}}},r="undefined"!=typeof wx&&"function"==typeof wx.getSystemInfoSync&&Boolean(wx.getSystemInfoSync().fontSizeSetting),a="undefined"!=typeof uni&&"undefined"==typeof window,g=r||a,S="undefined"!=typeof uni,c=("undefined"!=typeof uni||"undefined"!=typeof window)&&!g;r?wx:S?uni:window;const h=c&&window&&window.navigator&&window.navigator.userAgent||"",T=/Android/i.test(h),u=/(?:Windows Phone)/.test(h),I=/(?:SymbianOS)/.test(h),l=/iPad/i.test(h)||/iPhone/i.test(h)||/iPod/i.test(h),C=T||u||I||l,M=c&&!C,U=a&&!r,_={[E.TUITranslatePlugin.SERVICE.NAME]:Math.pow(2,38),[E.TUIVoiceToTextPlugin.SERVICE.NAME]:Math.pow(2,39),[E.TUICustomerServicePlugin.SERVICE.NAME]:Math.pow(2,40),[E.TUIPushPlugin.SERVICE.NAME]:Math.pow(2,41),[E.TUIChatbotPlugin.SERVICE.NAME]:Math.pow(2,42),[E.TUIEmojiPlugin.SERVICE.NAME]:Math.pow(2,48)};class N{constructor(e){this.loginStatusPromise=new Map,this.SDKAppID=0,this.userID="",this.userSig="",this.TUICore=e,this.isOnChatEvent=!1}static getInstance(e){return!N.instance&&e&&(N.instance=new N(e)),N.instance}login(t){const{SDKAppID:n,userID:i,userSig:s,framework:o}=t;return this.chat=e.create(Object.assign(Object.assign({},t),{scene:this.getStatScene(o)})),this.EVENT=e.EVENT,this.TYPES=e.TYPES,this.SDKAppID=n,this.userID=i,this.userSig=s,this.offChatEvent(),this.onChatEvent(),this.registerPlugin(t),this.loginChat(t)}logout(){return this.chat.logout().then((e=>(this.userID="",this.userSig="",this.TUICore.notifyEvent(E.TUILogin.EVENT.LOGIN_STATE_CHANGED,E.TUILogin.EVENT_SUB_KEY.USER_LOGOUT_SUCCESS),Promise.resolve(e))))}destroy(){return this.chat.destroy().then((e=>(this.userID="",this.userSig="",this.TUICore.notifyEvent(E.TUILogin.EVENT.LOGIN_STATE_CHANGED,E.TUILogin.EVENT_SUB_KEY.USER_LOGOUT_SUCCESS),Promise.resolve(e))))}setLogLevel(e){return this.chat.setLogLevel(e)}getContext(){return{chat:this.chat,SDKAppID:this.SDKAppID,userID:this.userID,userSig:this.userSig}}reportPlugin(){var e;for(const t in _)this.TUICore.getService(t)&&(null===(e=this.chat.callExperimentalAPI("isFeatureEnabledForStat",_[t]))||void 0===e||e.catch((e=>{})))}loginChat(e){const{userID:t,userSig:n}=e;return new Promise(((e,i)=>{this.chat.login({userID:t,userSig:n}).then((t=>{t.data.repeatLogin&&this.chat.isReady()&&e(t),this.reportPlugin(),this.loginStatusPromise.set("login",{resolve:e,reject:i,imResponse:t})})).catch((e=>{i(e)}))}))}onChatEvent(){this.chat.on(this.EVENT.SDK_READY,this.onSDKReady,this),this.chat.on(this.EVENT.SDK_NOT_READY,this.onSDKNotReady,this),this.chat.on(this.EVENT.KICKED_OUT,this.onUserKicked,this),this.isOnChatEvent=!0}offChatEvent(){this.isOnChatEvent&&(this.chat.off(this.EVENT.SDK_READY,this.onSDKReady,this),this.chat.off(this.EVENT.SDK_NOT_READY,this.onSDKNotReady,this),this.chat.off(this.EVENT.KICKED_OUT,this.onUserKicked,this),this.isOnChatEvent=!1)}onSDKReady(){if(this.loginStatusPromise.has("login")){this.TUICore.notifyEvent(E.TUILogin.EVENT.LOGIN_STATE_CHANGED,E.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS);const e=setTimeout((()=>{const t=this.loginStatusPromise.get("login");t.resolve(t.imResponse),clearTimeout(e),this.loginStatusPromise.delete("login")}),500)}}onSDKNotReady(){if(this.loginStatusPromise.has("login")){this.loginStatusPromise.get("login").reject(new Error("sdk not ready"))}this.loginStatusPromise.delete("login")}onUserKicked(e){e.data.type!==this.TYPES.KICKED_OUT_USERSIG_EXPIRED?this.TUICore.notifyEvent(E.TUILogin.EVENT.LOGIN_STATE_CHANGED,E.TUILogin.EVENT_SUB_KEY.USER_KICKED_OFFLINE):this.TUICore.notifyEvent(E.TUILogin.EVENT.LOGIN_STATE_CHANGED,E.TUILogin.EVENT_SUB_KEY.USER_SIG_EXPIRED)}registerPlugin(e){const{useUploadPlugin:i=!1,useProfanityFilterPlugin:s=!1,TUIOfflinePush:o,offlinePushConfig:E,TIMPush:r,pushConfig:a}=e;!0===i&&this.chat.registerPlugin({"tim-upload-plugin":t}),!0===s&&this.chat.registerPlugin({"tim-profanity-filter-plugin":n}),U&&r&&a&&this.chat.registerPlugin({"tim-push":r,pushConfig:a}),U&&o&&E&&this.chat.registerPlugin({"tim-offline-push-plugin":o,offlinePushConfig:E})}getStatScene(e){let t;return e&&o.indexOf(e)>-1&&(t=this.genStatScene(e)),t}genStatScene(e){let t="";return S?(M&&(t=`k-${e}-pc-uni`),C&&(t=`k-${e}-h5-uni`),U&&(t=`k-${e}-app-uni`),r&&(t=`k-${e}-mp-uni`),t):(M&&(t=`k-${e}-pc`),C&&(t=`k-${e}-h5`),t)}}class p{constructor(){this.eventMap=new Map}registerEvent(e,t,n){const i=this.getKey(e,t);if(console.log(`TUIEventManager.registerEvent eventName:${e} subKey:${t}`),!this.eventMap.has(i)){const e=[];this.eventMap.set(i,e)}const s=this.eventMap.get(i);-1===s.indexOf(n)&&(s.push(n),this.renotify(e,t,n))}unregisterEvent(e,t,n){console.log(`TUIEventManager.unregisterEvent eventName:${e} subKey:${t}`);const i=this.getKey(e,t);if(this.eventMap.has(i)){const e=this.eventMap.get(i),t=e.indexOf(n);t>-1&&e.splice(t,1)}}notifyEvent(e,t,n){const i=this.getKey(e,t),s=n?`params:${JSON.stringify(n)}`:"";if(console.log(`TUIEventManager.notifyEvent eventName:${e} subKey:${t} ${s}`),this.eventMap.has(i)){this.eventMap.get(i).forEach((i=>{i.onNotifyEvent(e,t,n)}))}}getKey(e,t){let n=e;return t&&(n=`${e}-${n}`),n}renotify(e,t,n){if(e===E.TUILogin.EVENT.LOGIN_STATE_CHANGED&&t===E.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS){const{chat:e}=N.getInstance().getContext();e&&e.isReady()&&(n.onNotifyEvent(E.TUILogin.EVENT.LOGIN_STATE_CHANGED,E.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS),console.log("TUIEventManager.renotify success."))}}}class v{constructor(){this.serviceManager=new i,this.extensionManager=new s,this.eventManager=new p}static getInstance(){return v.instance||(console.log("TUICore.getInstance ok."),v.instance=new v),v.instance}registerService(e,t){return this.serviceManager.registerService(e,t)}unregisterService(e){return this.serviceManager.unregisterService(e)}getService(e){return this.serviceManager.getService(e)}callService(e){return this.serviceManager.callService(e)}registerExtension(e,t){return this.extensionManager.registerExtension(e,t)}unregisterExtension(e,t){return this.extensionManager.unregisterExtension(e,t)}getExtensionList(e,t){return this.extensionManager.getExtensionList(e,t)}registerEvent(e,t,n){return this.eventManager.registerEvent(e,t,n)}unregisterEvent(e,t,n){return this.eventManager.unregisterEvent(e,t,n)}notifyEvent(e,t,n){return this.eventManager.notifyEvent(e,t,n)}}console.log("TUICore.VERSION:2.2.9");const R=v.getInstance(),A=N.getInstance(R);export{E as TUIConstants,R as TUICore,A as TUILogin,R as default};