UNPKG

@tencentcloud/call-uikit-wx-uniapp

Version:

An Open-source Voice & Video Calling UI Component Based on Tencent Cloud Service.

3 lines 96.3 kB
(function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode("")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
(function(U,C){typeof exports=="object"&&typeof module<"u"?C(exports,require("@tencentcloud/call-engine-wx"),require("@tencentcloud/tui-core"),require("@tencentcloud/chat")):typeof define=="function"&&define.amd?define(["exports","@tencentcloud/call-engine-wx","@tencentcloud/tui-core","@tencentcloud/chat"],C):(U=typeof globalThis<"u"?globalThis:U||self,C(U["tuicall-uikit-vue"]={},U.callEngineWx,U.TUICore,U.TencentCloudChat))})(this,function(U,C,S,ve){"use strict";var A=(s=>(s.CALL="call",s.CUSTOM="custom",s))(A||{}),_=(s=>(s[s.UNKNOWN=0]="UNKNOWN",s[s.AUDIO=1]="AUDIO",s[s.VIDEO=2]="VIDEO",s))(_||{}),G=(s=>(s.UNKNOWN="unknown",s.CALLEE="callee",s.CALLER="caller",s))(G||{}),h=(s=>(s.IDLE="idle",s.CALLING="calling",s.CONNECTED="connected",s))(h||{}),z=(s=>(s.CONTAIN="contain",s.COVER="cover",s.FILL="fill",s))(z||{}),X=(s=>(s.RESOLUTION_480P="480p",s.RESOLUTION_720P="720p",s.RESOLUTION_1080P="1080p",s))(X||{});const F={IDLE:"idle",BE_INVITED:"be-invited",DIALING_C2C:"dialing-c2c",DIALING_GROUP:"dialing-group",CALLING_C2C_AUDIO:"calling-c2c-audio",CALLING_C2C_VIDEO:"calling-c2c-video",CALLING_GROUP_AUDIO:"calling-group-audio",CALLING_GROUP_VIDEO:"calling-group-video"},st={unknown:0,audio:1,video:2};var v=(s=>(s.EAR="ear",s.SPEAKER="speaker",s))(v||{}),Y=(s=>(s[s.FRONT=0]="FRONT",s[s.BACK=1]="BACK",s))(Y||{}),K=(s=>(s.Camera="camera",s.Microphone="microphone",s.SwitchCamera="switchCamera",s.InviteUser="inviteUser",s))(K||{}),q=(s=>(s.Open="open",s.Close="close",s))(q||{}),Se=(s=>(s.LocalInLargeView="local",s.RemoteInLargeView="remote",s))(Se||{}),x=(s=>(s[s.INVITE=1]="INVITE",s[s.CANCEL_INVITE=2]="CANCEL_INVITE",s[s.ACCEPT_INVITE=3]="ACCEPT_INVITE",s[s.REJECT_INVITE=4]="REJECT_INVITE",s[s.INVITE_TIMEOUT=5]="INVITE_TIMEOUT",s))(x||{});const Me={SWITCH_TO_AUDIO_CALL_FAILED:60001,SWITCH_TO_VIDEO_CALL_FAILED:60002,MICROPHONE_UNAVAILABLE:60003,CAMERA_UNAVAILABLE:60004,BAN_DEVICE:60005,NOT_SUPPORTED_WEBRTC:60006,ERROR_BLACKLIST:20007},ye={SWITCH_TO_AUDIO_CALL_FAILED:"switchToAudioCall-call-failed",SWITCH_TO_VIDEO_CALL_FAILED:"switchToVideoCall-call-failed",MICROPHONE_UNAVAILABLE:"microphone-unavailable",CAMERA_UNAVAILABLE:"camera-unavailable",BAN_DEVICE:"ban-device",NOT_SUPPORTED_WEBRTC:"not-supported-webrtc",ERROR_BLACKLIST:"blacklist-user-tips"};var Pe=(s=>(s[s.NORMAL=0]="NORMAL",s[s.RELEASE=1]="RELEASE",s[s.WARNING=2]="WARNING",s[s.ERROR=3]="ERROR",s[s.NONE=4]="NONE",s))(Pe||{});const ce={CALL_STATUS:"callStatus",CALL_ROLE:"callRole",CALL_MEDIA_TYPE:"callMediaType",LOCAL_USER_INFO:"localUserInfo",LOCAL_USER_INFO_EXCLUDE_VOLUMN:"localUserInfoExcludeVolume",REMOTE_USER_INFO_LIST:"remoteUserInfoList",REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST:"remoteUserInfoExcludeVolumeList",CALLER_USER_INFO:"callerUserInfo",IS_GROUP:"isGroup",CALL_DURATION:"callDuration",CALL_TIPS:"callTips",TOAST_INFO:"toastInfo",IS_MINIMIZED:"isMinimized",ENABLE_FLOAT_WINDOW:"enableFloatWindow",BIG_SCREEN_USER_ID:"bigScreenUserId",LANGUAGE:"language",IS_CLICKABLE:"isClickable",DISPLAY_MODE:"displayMode",VIDEO_RESOLUTION:"videoResolution",PUSHER:"pusher",PLAYER:"player",IS_EAR_PHONE:"isEarPhone",IS_MUTE_SPEAKER:"isMuteSpeaker",SHOW_PERMISSION_TIP:"SHOW_PERMISSION_TIP",NETWORK_STATUS:"NetWorkStatus",CALL_ID:"callID",GROUP_ID:"groupID",ROOM_ID:"roomID",ROOM_ID_TYPE:"roomIdType",SHOW_SELECT_USER:"showSelectUser",IS_SHOW_ENABLE_VIRTUAL_BACKGROUND:"isShowEnableVirtualBackground",ENABLE_VIRTUAL_BACKGROUND:"enableVirtualBackground",GROUP_CALL_MEMBERS:"groupCallMembers",PUSHER_ID:"pusherId",IS_FORCE_USE_V2_API:"isForceUseV2API"},a={PREFIX:"【CallService】",AUDIO:"audio",VIDEO:"video",LOCAL_VIDEO:"localVideo",ERROR:"error",TIMEOUT:"timeout",RAF:"raf",INTERVAL:"interval",DEFAULT:"default",BOOLEAN:"boolean",STRING:"string",NUMBER:"number",OBJECT:"object",ARRAY:"array",FUNCTION:"function",UNDEFINED:"undefined",UNKNOWN:"unknown",ALL:"all",MYSELF:"myself",DEVICE_LIST:"deviceList",CAMERA_POSITION:"cameraPosition",CUSTOM_UI_CONFIG:"customUIConfig",TRANSLATE:"translate",...{INITIAL_PUSHER:"initialPusher",NEW_PUSHER:"newPusher"},...ce,...{INNER_ATTR_KIT_INFO:"inner_attr_kit_info"}},At="https://web.sdk.qcloud.com/component/TUIKit/assets/call.png",nt="https://web.sdk.qcloud.com/component/TUIKit/assets/call-video-reverse.svg",Qe=2147483647,me=4;var Ue=(s=>(s[s.TUI_CALL_KIT=14]="TUI_CALL_KIT",s[s.TIM_CALL_KIT=15]="TIM_CALL_KIT",s))(Ue||{}),Te=(s=>(s[s.NUMBER_ROOM_ID=1]="NUMBER_ROOM_ID",s[s.STRING_ROOM_ID=2]="STRING_ROOM_ID",s))(Te||{});function ot(){wx.hideKeyboard&&wx.hideKeyboard({complete:()=>{}})}function lt(){wx.getSystemInfoSync().platform==="devtools"&&wx.showModal({icon:"none",title:"运行环境提醒",content:"微信开发者工具不支持原生推拉流组件(即 <live-pusher> 和 <live-player> 标签),请使用真机调试或者扫码预览。",showCancel:!1})}function Ve(){ot(),lt()}async function ct(s,e){try{Ve();const t={microphone:!0,camera:s===_.VIDEO};return await e._tuiCallEngine.deviceCheck(t)?h.CALLING:h.IDLE}catch(t){return console.debug(t),h.IDLE}}function It(s){(s==null?void 0:s.code)===-1002&&wx.showModal({icon:"none",title:"error",content:(s==null?void 0:s.message)||"",showCancel:!1})}function Ct(){wx.showModal({icon:"none",title:"权限提示",content:"当前小程序 appid 不具备 <live-pusher> 和 <live-player> 的使用权限,您将无法正常使用实时通话能力,请使用企业小程序账号申请权限后再进行开发体验",showCancel:!1})}const Et={hangup:"挂断",reject:"拒绝",accept:"接受",camera:"摄像头",microphone:"麦克风",speaker:"扬声器","open camera":"打开摄像头","close camera":"关闭摄像头","open microphone":"打开麦克风","close microphone":"关闭麦克风","video-to-audio":"转语音通话","virtual-background":"模糊背景","other side reject call":"对方已拒绝","reject call":"{{ userList }} 拒绝通话",cancel:"取消通话","other side line busy":"对方忙线","in busy":"{{ userList }} 正在忙","call timeout":"呼叫超时","end call":"{{ userList }} 结束通话","caller calling message":"等待对方接受邀请","callee calling video message":"邀请你视频通话","callee calling audio message":"邀请你语音通话","no microphone access":"没有麦克风权限","no camera access":"没有摄像头权限","invite member":"邀请成员","Invited group call":"邀请你加入多人通话","Those involved":"参与通话的有:",waiting:"等待接听...",me:"(我)","browser-authorization":"浏览器授权","mac-privacy":"系统偏好设置 -> 安全与隐私 -> 隐私","win-privacy":"设置 -> 隐私和安全性 -> 应用权限","mac-preferences":"打开系统偏好设置","win-preferences":"打开系统设置","Please enter userID":"请输入 userID","View more":"查看更多","people selected":"人已选中","Select all":"全选",Cancel:"取消",Done:"完成","exist group call":"当前群组中已经存在群组通话","camera enabled":"摄像头已开","camera disabled":"摄像头已关","microphone enabled":"麦克风已开","microphone disabled":"麦克风已关","speaker enabled":"扬声器已开","speaker disabled":"扬声器已关","open speaker":"开启扬声器","close speaker":"关闭扬声器","wait to be called":"等待接听",answered:"已接通","people in the call":"人参与通话","failed to obtain speakers":"无法获取扬声器","you have a new call":"您有一个新的通话","switch camera":"翻转",join:"加入","people on the call":"人正在通话","Supports a maximum of 9 people for simultaneous calls":"最多支持9人同时通话",you:"(你)","The network is poor during your current call":"当前通话你的网络不佳","The other user network is poor during the current call":"当前通话对方网络不佳","TUICallKit init is not complete":"TUICallKit 初始化登录未完成,需要在 init 完成后使用此 API","Video call":"发起视频通话","Voice call":"发起语音通话","Call End":"通话结束","Switch voice call":"切换语音通话","Switch video call":"切换视频通话","Call duration":"通话时长","Call Cancel":"已取消","Other Side Cancel":"对方已取消",Decline:"已拒绝","Other Side Decline":"对方已拒绝","No answer":"超时无应答","Other Side No Answer":"对方无应答",Answered:"已接听","Other Side Line Busy":"对方忙线中","Line Busy":"忙线无应答",timeout:"{{ userList }} 超时","kick out":"被踢",call:"通话","video-call":"视频通话","audio-call":"音频通话",search:"搜索","search-result":"搜索结果","Wechat scan right QR code":"微信扫右二维码","Use-phone-and-computer":"用手机与电脑互打体验视频通话","Scan the QR code above":"扫描上方二维码","no-user":"未搜索到用户","member-not-added":"未添加成员","not-login":"未登录","login-status-expire":"登录状态已失效,请刷新网页重试","experience-multi-call":"体验多人通话请下载全功能demo:","not-support-multi-call":"多人通话接口未开放","input-phone-userID":"请输入手机号/用户ID",userID:"用户ID","already-enter":"已经进入当前通话","image-resolution":"分辨率","default-image-resolution":"默认分辨率","invited-person":"添加成员","be-rejected":"对方已拒绝,","be-no-response":"对方无应答,","be-line-busy":"对方忙线中,","be-canceled":"对方已取消","voice-call-end":"语音通话结束","video-call-end":"视频通话结束","method-call-failed":"同步操作失败","failed-to-obtain-permission":"权限获取失败","environment-detection-failed":"环境检测失败","switchToAudioCall-call-failed":"切语音调用失败","switchToVideoCall-call-failed":"切视频调用失败","microphone-unavailable":"没有可用的麦克风设备","camera-unavailable":"没有可用的摄像头设备","ban-device":"用户禁止使用设备","not-supported-webrtc":"当前环境不支持 WebRTC","blacklist-user-tips":"发起通话失败,被对方拉入黑名单,禁止发起!","is-already-calling":"TUICallKit 已在通话状态","need-init":"TUICallKit 发起通话前需保证 TUICallKitServer.init() 方法执行成功","can't call yourself":"不能呼叫自己","accept-error":"接通失败","accept-device-error":"接通失败,通话设备获取失败","call-error":"发起通话失败"},Ie=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting,Ke=typeof uni<"u"&&typeof uni>"u",be=Ie||Ke,ke=typeof uni<"u",Ye=function(){return(typeof uni<"u"||typeof window<"u")&&!be}(),ut=function(){return Ie?wx:ke?uni:window}(),b=Ye&&window&&window.navigator&&window.navigator.userAgent||"",Lt=/Android/i.test(b),ht=/(?:Windows Phone)/.test(b),dt=/(?:SymbianOS)/.test(b),_t=/iPad/i.test(b)||/iPhone/i.test(b)||/iPod/i.test(b),He=Lt||ht||dt||_t,Be=Ye&&!He,gt=Be&&b.includes("Windows NT"),ft=Be&&b.includes("Mac");let Je=class Ae{constructor(){this.global=ut,this.isPC=!1,this.isH5=!1,this.isWeChat=!1,this.isApp=!1,this.isUniPlatform=!1,this.isOfficial=!1,this.isWIN=!1,this.isMAC=!1,this.initEnv()}static getInstance(){return Ae.instance||(Ae.instance=new Ae),Ae.instance}initEnv(){this.isPC=Be,this.isH5=He,this.isWeChat=Ie,this.isApp=Ke&&!Ie,this.isUniPlatform=ke,this.isWIN=gt,this.isMAC=ft}initOfficial(e){this.isOfficial=e===1400187352||e===1400188366}};const Ce=function(s){return typeof s===a.UNDEFINED},Oe=function(s){if(typeof s!==a.OBJECT||s===null)return!1;const e=Object.getPrototypeOf(s);if(e===null)return!0;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return e===t},ze=function(s){return typeof Array.isArray===a.FUNCTION?Array.isArray(s):Object.prototype.toString.call(s).match(/^\[object (.*)\]$/)[1].toLowerCase()===a.ARRAY},Ee=function(s){return typeof s===a.STRING},Dt=function(s){return typeof s===a.BOOLEAN},Xe=function(s){return s!==null&&(typeof s===a.NUMBER&&!isNaN(s-0)||typeof s===a.OBJECT&&s.constructor===Number)};function qe(s){const e=Math.floor(s/3600),t=Math.floor(s%3600/60),i=Math.floor(s%60);let r=e>9?`${e}`:`0${e}`;return r+=t>9?`:${t}`:`:0${t}`,r+=i>9?`:${i}`:`:0${i}`,r}function St(s){if(typeof s===a.STRING)try{return!!JSON.parse(s)}catch(e){return console.debug(e),!1}return!1}const ue=function(s){return!s||!St(s)?s:JSON.parse(s)};function xe(s){return(s==null?void 0:s.message.indexOf("is ongoing, please avoid repeated calls"))!==-1}function Ut(s){const{message:e}=s;return e.indexOf("NotAllowedError: Permission denied")!==-1}function Re(){return Date.now()}const Le=function(s){return typeof s===a.FUNCTION},Tt=()=>{if(Je.getInstance().isWeChat)return"zh-cn";const s=((navigator==null?void 0:navigator.language)||(navigator==null?void 0:navigator.userLanguage)||"").substr(0,2);let e="en";switch(s){case"zh":e="zh-cn";break;case"ja":e="ja_JP";break;default:e="en"}return e},Bt=function(s){return Object.prototype.toString.call(s).match(/^\[object (.*)\]$/)[1].toLowerCase()};function Ot(s,e,t){if(!s.hasOwnProperty(e))return s;const i={};return Object.keys(s).forEach(r=>{r===e?i[t]=s[r]:i[r]=s[r]}),i}function Rt(s,e){return s.replace(/{{\s*(\w+)(\s*,\s*[^}]+)?\s*}}/g,(t,i)=>{const r=i.trim();return e[r]!==void 0?String(e[r]):t})}const p={OTHER_SIDE:"other side",CANCEL:"cancel",OTHER_SIDE_REJECT_CALL:"other side reject call",REJECT_CALL:"reject call",OTHER_SIDE_LINE_BUSY:"other side line busy",IN_BUSY:"in busy",CALL_TIMEOUT:"call timeout",END_CALL:"end call",TIMEOUT:"timeout",KICK_OUT:"kick out",CALLER_CALLING_MSG:"caller calling message",CALLER_GROUP_CALLING_MSG:"wait to be called",CALLEE_CALLING_VIDEO_MSG:"callee calling video message",CALLEE_CALLING_AUDIO_MSG:"callee calling audio message",NO_MICROPHONE_DEVICE_PERMISSION:"no microphone access",NO_CAMERA_DEVICE_PERMISSION:"no camera access",EXIST_GROUP_CALL:"exist group call",LOCAL_NETWORK_IS_POOR:"The network is poor during your current call",REMOTE_NETWORK_IS_POOR:"The other user network is poor during the current call"},j={"zh-cn":Et};function H(s){var i,r;const e=l.getData(A.CALL,a.LANGUAGE);let t="";if(Ee(s))t=((i=j==null?void 0:j[e])==null?void 0:i[s])||"";else if(Oe(s)){const{key:n,options:o}=s;t=((r=j==null?void 0:j[e])==null?void 0:r[n])||"",t=Rt(t,o)}return t}const Nt="data:audio/mpeg;base64,SUQzAwAAAAAAGFRYWFgAAAAOAAAAVFhYWABpc29taXNvMv/zNGQAAqwAvnihCAADQAF4CUAQAFYAg3Lh8u+XUD5///wx//wQOAhKAgb/////xOoH4g8Hz4Pq8RoAbdTgMsMt9hcb990EP//zNGQQBPDjEgDItAAFWcIoAYoQAN9P/03QQ//umn//91SXL5uXP+pf8WYTvzgJPAQ+p/7f///1//6f///WH///F4BtJhNFkP/zNGQGA/jjNADHiAAEQDJcAYkQAGWrn6vw6ljfPtj/////////9Pv9sL/mL/QezSepgwrimv07//////y3u602OiyhOYb+LP/zNGQIBKTBKADoCACDoCZMAckAAKHKCUIAFsqGZXtSZ/////////Sn/Vy3nVUOJBqSX2UAkQxBddzv//////yq3lcgaTmTQ//zNGQHA9SrJgA8AliD4C5IAApYAKh3FKlMunKHm8H/2//77vkdqB2xfsXaHiDKBGtFKqONF3/////Z9VXClT5ND+syHkjBq//zNGQLBITJIAA8AmQEiDI4AAjSAGa1Vffm3ff/1/0//11tvZpAaIw3dBiIrjJgHQrGVWmdBU1f/////oDqEKrV1OpBUTjQtv/zNGQHAsjDKAAwAl4D0Co8AAmCBHIQNtld6fm0+/VigZzuMnGZlkAMLMJFv/////33UIWeFQkKsaceBsangecHzYXKI//////zNGQUA4QjKAA3CAID8CpEABMCBPfuStx4FQVHYMgKcO6jIJh//////9uIlspQkGQ2YyZscAV83Bv/////ncL6BEiWHyA2K//zNEQbAogfJgAx5hAEwDJcCAsEBtICgF3/////WJaIuuqMCCVGucgkrtwiwBO//////pW4YFRWQhaRRhZZnVwGhf////+ocv/zNEQmApgVJAANjwAFkC5YCApeAolD4kQb+EQJYNKwLWGmc6sqMBwJvf////6tDEOWDgFJk1VywKMGoM2f////+N1JmgJuPv/zNGQuA4AbJAAl5hIDwC48AAIGBEho7wTL5b6kSO7IUAA5uDABYNNjGDBSJEN//////xtQsszVy27IcWBbQkLgzv7YmZYW///zNGQ2AqzFNAgcA1+D8CZIAAhMAP/3/rozCAsBjIqCY/DBWMfQZp1f/////0F6phXSNisgAJjo6icT2vpvM/Vf9v///97eu//z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",je="data:audio/mpeg;base64,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//BP/+hwIa///Nf///wqXf/1IwFkb//wi3/1Pf/7FEQGAABjEVkFKKAADSOrIKOcAAKAUWQYooAAUpGswwRwAF//QA7//6iH/7//E1CP66uDpoqjowL/6/GGwzFQx/T3Vp/9XC73/yvuUKYdmmN6evmjf5L5ZKr/8hlL/f/7FGQCgAB5FF2GBKAADYOrUMEIAAGod2YcVoAANI6rg4pQAEZrqH8GxT/UqjT/+aDlf/6dvj/r/4+rR//UH//+wTMuo///86//9QGR//+wCCxv//+MCD//BP//oAIP///7FGQFAABgEdsNFKAAC2I68KOcAAMggWoYVQAAP46tAwQgAMzq//QwCv//4WM/+a0//YWHBbCL/5Hi/IAIkheLBSvsvr6F98kyv/4Zg7A3/0+pcfN//8bL5ar/+8wV/v/7FGQCgACDFF0GFKAADkQLYMCIAAGod2occoAANg7rw4pQAKbXi7oTBez1IPl9X/4G2b//1b7/r6/a/Gy//6HAX//+gDAv///nHf/xoBf//hF////ILP0V//lQuP//qP/7FGQDj/BVHVmBQC2QC6O6wDQHsgGEd2gUI4AAMA7sAopQAE8l+F//2DK3//y4f+Bj5j/+oX//8FpP///x0n//GAf//8Kf///xIcrp/ZHCA4SBM2nH8U7C55TDl+3X6P/7FGQKAADZI1uGFOAAEoRrMMKUAAGQd24cUQAANQ7sQ44gAHOZwyYabiX/9COkKb/T6rj9/09fUt+LGTgn/8YALf/+g43///kFf/zgX///UK////hxPTX/+4Sz//+sR//7FGQEA7BbHdmBoC2QDSEL3gADCQGgAXyUIQAAMw7rwpRwAK/hAeAAAAdAAAAAHQz///6wB/xxxyrjsayv6H/+r/+aBD//+Nm///8QulX+1VhmOIUu/+2UD0jR2CVfp//7FGQIgADVI1uGCOACD+RrYMCIAAGcd2ocE4AAMw7sQ4RQAGP+f8eIEjMMke//iRoP//tvp+v/Unyv4pqf/5n//84CQx///0FRv/+K///C3///6gKLdKr//EJ//9QHx//7FGQED/BSHdkBQBWQC4PKwCgHsgFYR2wUI4AANA7sAopQAD5hv/6Br//+SDvyge2n/+gP//8ISf/w9t//oDv//8K///8ggL6a+nTBTVf043E0UOgZIIdw1v/9FHfE3//7FGQLAADO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";class wt{constructor(){this._bellContext=null,this._isMuteBell=!1,this._calleeBellFilePath=je,this._callRole=G.UNKNOWN,this._callStatus=h.IDLE,this._handleAudioInterruptionBegin=async()=>{await this.stop()},this._handleAudioInterruptionEnd=async()=>{this._callStatus!==h.CALLING?await this.stop():await this.play()},this._bellContext=wx.createInnerAudioContext(),this._addListenBellContextEvent(),this._bellContext.loop=!0}setBellSrc(){const e=wx.getFileSystemManager();try{let t=Nt;this._callRole===G.CALLEE&&(t=this._calleeBellFilePath||je),e.readFileSync(t,"utf8",0),this._bellContext.src=t}catch(t){console.warn(`${a.PREFIX}Failed to setBellSrc, ${t}`)}}setBellProperties(e){this._callRole=e.callRole||this._callRole,this._callStatus=e.callStatus||this._callStatus,this._calleeBellFilePath=e.calleeBellFilePath||this._calleeBellFilePath,this._isMuteBell=Ce(e.isMuteBell)?this._isMuteBell:e.isMuteBell}async play(){try{if(this._callStatus!==h.CALLING)return;this.setBellSrc(),this._callRole===G.CALLEE&&!this._isMuteBell&&await this._bellContext.play(),this._callRole===G.CALLER&&await this._bellContext.play()}catch(e){console.warn(`${a.PREFIX}Failed to play audio file, ${e}`)}}async stop(){try{this._bellContext.stop()}catch(e){console.warn(`${a.PREFIX}Failed to stop audio file, ${e}`)}}async setBellMute(e){this._callStatus!==h.CALLING&&this._callRole!==G.CALLEE||(e?await this.stop():await this.play())}destroy(){try{this._isMuteBell=!1,this._calleeBellFilePath="",this._callRole=G.UNKNOWN,this._callStatus=h.IDLE,this==null||this._removeListenBellContextEvent(),this._bellContext.destroy(),this._bellContext=null}catch(e){console.warn(`${a.PREFIX}Failed to destroy, ${e}`)}}_addListenBellContextEvent(){wx.onAudioInterruptionBegin(this._handleAudioInterruptionBegin),wx.onAudioInterruptionEnd(this._handleAudioInterruptionEnd)}_removeListenBellContextEvent(){wx.offAudioInterruptionBegin(this._handleAudioInterruptionBegin),wx.offAudioInterruptionEnd(this._handleAudioInterruptionEnd)}}function R(){return function(s,e,t){const i=t.value,r=new Set;return t.value=async function(...n){var o,I;if(r.has(this)){console.warn(`${a.PREFIX}previous ${e}() is ongoing, please avoid repeated calls`),(I=(o=this==null?void 0:this.getTUICallEngineInstance())==null?void 0:o.reportLog)==null||I.call(o,{name:"TUICallKit.avoidRepeatedCall.fail",data:{name:e},error:`previous ${e}() is ongoing`});return}try{r.add(this);const c=await i.apply(this,n);return r.delete(this),c}catch(c){throw r.delete(this),c}},t}}const ee=a.PREFIX+"API";function y(s){return function(e,t,i){let r=i.value;return i.value=function(...n){return pt.call(this,s,n,t),r.apply(this,n)},i}}function pt(s,e,t){try{if(e[0].SDKAppID||(s=Ot(s,"SDKAppID","sdkAppID")),ze(s))for(let i=0;i<s.length;i++)We.call(this,{...s[i],value:e[i],name:t});else for(const i in s)s.hasOwnProperty(i)&&We.call(this,{...s[i],value:e[0][i],name:t,key:i})}catch(i){throw console.error(i),i}}function We({required:s,rules:e,range:t,value:i,allowEmpty:r,name:n,key:o}){if(Ce(i)){if(s)throw new Error(`${ee}<${n}>: ${o} is required.`);return}const I=e.some(L=>L===Bt(i));let c="";if(!I){for(let L=0;L<e.length;L++){let E=e[L];E=E.replace(E[0],E[0].toUpperCase()),c+=`${E}/`}throw c=c.substring(0,c.length-1),new Error(`${ee}<${n}>: ${o} must be ${c}, current ${o} is ${typeof i}.`)}if(r===!1&&Ee(i)&&i.trim()==="")throw new Error(`${ee}<${n}>: ${o} is blank.`);if(ze(t)&&t&&t.indexOf(i)===-1)throw new Error(`${ee}<${n}>: ${o} error, only be ${t}, current ${o} is ${i}.`);if(Ee(t)&&t.indexOf("~")!==-1){const L=t.split("~");if(i<+L[0]||i>+L[1]||Xe(i)&&Number.isNaN(i))throw new Error(`${ee}<${n}>: ${o} error, only be ${t}, current ${o} is ${i}.`)}}const P={init:{SDKAppID:{required:!0,rules:[a.NUMBER],allowEmpty:!1},userID:{required:!0,rules:[a.STRING],allowEmpty:!1},userSig:{required:!0,rules:[a.STRING],allowEmpty:!1},tim:{required:!1,rules:[a.OBJECT]}},call:{userID:{required:!0,rules:[a.STRING],allowEmpty:!1},type:{required:!0,rules:[a.NUMBER],range:[1,2],allowEmpty:!1},roomID:{required:!1,rules:[a.NUMBER],range:`0~${Qe}`,allowEmpty:!1},strRoomID:{required:!1,rules:[a.STRING],allowEmpty:!0},userData:{required:!1,rules:[a.STRING],allowEmpty:!1},timeout:{required:!1,rules:[a.NUMBER],allowEmpty:!1}},groupCall:{userIDList:{required:!0,rules:[a.ARRAY],allowEmpty:!1},type:{required:!0,rules:[a.NUMBER],range:[1,2],allowEmpty:!1},groupID:{required:!0,rules:[a.STRING],allowEmpty:!1},roomID:{required:!1,rules:[a.NUMBER],range:`0~${Qe}`,allowEmpty:!1},strRoomID:{required:!1,rules:[a.STRING],allowEmpty:!0},timeout:{required:!1,rules:[a.NUMBER],allowEmpty:!1},userData:{required:!1,rules:[a.STRING],allowEmpty:!1},offlinePushInfo:{required:!1,rules:[a.OBJECT],allowEmpty:!1}},joinInGroupCall:{type:{required:!0,rules:[a.NUMBER],range:[1,2],allowEmpty:!1},groupID:{required:!0,rules:[a.STRING],allowEmpty:!1},roomID:{required:!0,rules:[a.NUMBER],allowEmpty:!1},strRoomID:{required:!1,rules:[a.STRING],allowEmpty:!0}},inviteUser:{userIDList:{required:!0,rules:[a.ARRAY],allowEmpty:!1}},setSelfInfo:{nickName:{required:!1,rules:[a.STRING],allowEmpty:!1},avatar:{required:!1,rules:[a.STRING],allowEmpty:!1}},enableFloatWindow:[{key:"enable",required:!1,rules:[a.BOOLEAN],allowEmpty:!1}],enableAIVoice:[{key:"enable",required:!0,rules:[a.BOOLEAN],allowEmpty:!1}],enableMuteMode:[{key:"enable",required:!0,rules:[a.BOOLEAN],allowEmpty:!1}],setCallingBell:[{key:"filePath",required:!1,rules:[a.STRING],allowEmpty:!0}],setLanguage:[{key:"language",required:!0,rules:[a.STRING],allowEmpty:!1}],setVideoDisplayMode:[{key:"displayMode",required:!0,rules:[a.STRING],range:[z.CONTAIN,z.COVER,z.FILL],allowEmpty:!1}],setVideoResolution:[{key:"resolution",required:!0,rules:[a.STRING],range:[X.RESOLUTION_1080P,X.RESOLUTION_480P,X.RESOLUTION_720P],allowEmpty:!1}]};function W(s){return function(e,t,i){let r=i.value;return i.value=function(...n){return Gt.call(this,s,n,t),r.apply(this,n)},i}}function Gt(s){if(s!=null&&s.engineInstance&&!this._tuiCallEngine){const e=`${a.PREFIX} ${H("TUICallKit init is not complete")}`;throw console.error(e),e}}function he(s){if(typeof s!="object"||s===null)return s;let e=Array.isArray(s)?[]:{};for(let t in s)s.hasOwnProperty(t)&&(e[t]=he(s[t]));return e}class Ft{constructor(){this.defaultStore={callStatus:h.IDLE,callRole:G.UNKNOWN,callMediaType:_.UNKNOWN,localUserInfo:{userId:""},localUserInfoExcludeVolume:{userId:""},remoteUserInfoList:[],remoteUserInfoExcludeVolumeList:[],callerUserInfo:{userId:""},isGroup:!1,callDuration:"00:00:00",callTips:"",toastInfo:{text:""},isMinimized:!1,enableFloatWindow:!1,bigScreenUserId:"",language:Tt(),isClickable:!1,deviceList:{cameraList:[],microphoneList:[],currentCamera:{},currentMicrophone:{}},showPermissionTip:!1,netWorkQualityList:[],isMuteSpeaker:!1,callID:"",groupID:"",roomID:0,roomIdType:0,cameraPosition:Y.FRONT,groupCallMembers:[],displayMode:z.COVER,videoResolution:X.RESOLUTION_720P,showSelectUser:!1,pusher:{},player:[],isEarPhone:!1,pusherId:a.INITIAL_PUSHER,isShowEnableVirtualBackground:!1,enableVirtualBackground:!1,customUIConfig:{button:{},viewBackground:{},layoutMode:Se.RemoteInLargeView},translate:H,isForceUseV2API:!1},this.store=he(this.defaultStore),this.prevStore=he(this.defaultStore)}update(e,t){switch(e){case a.CALL_TIPS:const i=this.getData(e);this.prevStore[e]=i;default:this.store[e]=t}}getPrevData(e){return e?this.prevStore[e]:this.prevStore}getData(e){return e?this.store[e]:this.store}reset(e=[]){e.length===0&&(e=Object.keys(this.store));const t=e.reduce((i,r)=>({...i,[r]:this.defaultStore[r]}),{});this.store={...this.defaultStore,...this.store,...t}}}let de=class ne{constructor(){this.timerId=-1,this.storeMap={[A.CALL]:new Ft},this.task={}}static getInstance(){return ne.instance||(ne.instance=new ne),ne.instance}watch(e,t,i){this.task[e]||(this.task[e]={});const r=this.task[e];Object.keys(t).forEach(n=>{const o=t[n];r[n]||(r[n]=new Map),r[n].set(o,1);const{notifyRangeWhenWatch:I}=i||{};if(I===a.ALL&&this.notify(e,n),I===a.MYSELF){const c=this.getData(e,n);o.call(this,c)}})}unwatch(e,t){if(!this.task[e])return;const i=this.task[e];Object.keys(t).forEach(r=>{i[r].delete(t[r])})}update(e,t,i){var r;(Ee(i)||Xe(i)||Dt(i))&&this.storeMap[e].store[t]===i||((r=this.storeMap[e])==null||r.update(t,i),this.notify(e,t))}getPrevData(e,t){var i;return(i=this.storeMap[e])==null?void 0:i.getPrevData(t)}getData(e,t){var i;return(i=this.storeMap[e])==null?void 0:i.getData(t)}notify(e,t){if(!this.task[e])return;const i=this.task[e];if(i[t]){const r=i[t],n=this.getData(e,t);for(const[o]of r.entries())o.call(this,n)}}reset(e,t=[],i=!1){if(e in this.storeMap){const r=this.storeMap[e];t.length===0&&(t=Object.keys(r==null?void 0:r.store)),r.reset(t),i&&t.forEach(n=>{this.notify(e,n)})}}updateStore(e,t){const i=t||A.CALL;Object.keys(e).forEach(r=>{this.update(i,r,e[r])})}};const B=de.getInstance();function Ne(s,e){const t={userId:s,nick:"",avatar:"",remark:"",displayUserInfo:"",isAudioAvailable:!1,isVideoAvailable:!1,isEnter:!1,domId:e||s};return e?t:{...t,isEnter:!1}}async function vt(s,e){var i,r,n,o,I;let t=Ne(s,a.LOCAL_VIDEO);try{if(!e)return t;const c=await e.getMyProfile(),L=B==null?void 0:B.getData(A.CALL,a.LOCAL_USER_INFO);return(c==null?void 0:c.code)===0&&(t={...t,...L,userId:(i=c==null?void 0:c.data)==null?void 0:i.userID,nick:(r=c==null?void 0:c.data)==null?void 0:r.nick,avatar:(n=c==null?void 0:c.data)==null?void 0:n.avatar,displayUserInfo:((o=c==null?void 0:c.data)==null?void 0:o.nick)||((I=c==null?void 0:c.data)==null?void 0:I.userID)}),t}catch(c){return console.error(`${a.PREFIX}getMyProfile failed, error: ${c}.`),t}}async function te(s,e){let t=s.map(i=>Ne(i));try{if(!e)return t;const i=await e.getFriendProfile({userIDList:s});if(i.code===0){const{friendList:r=[],failureUserIDList:n=[]}=i.data;let o=n.map(E=>E.userID);if(n.length>0){const E=await e.getUserProfile({userIDList:n.map(d=>d.userID)});(E==null?void 0:E.code)===0&&(o=(E==null?void 0:E.data)||[])}const I=B==null?void 0:B.getData(A.CALL,a.REMOTE_USER_INFO_LIST),c=r.map(E=>E.userID),L=o.map(E=>E.userID);t=s.map(E=>{var ie,re,se,$,at,it,rt;const d=Ne(E),g=c.indexOf(E),T=L.indexOf(E);let O="",w="",m="",N="";g!==-1&&(O=((ie=r[g])==null?void 0:ie.remark)||"",w=((se=(re=r[g])==null?void 0:re.profile)==null?void 0:se.nick)||"",m=O||w||d.userId||"",N=((at=($=r[g])==null?void 0:$.profile)==null?void 0:at.avatar)||""),T!==-1&&(w=((it=o[T])==null?void 0:it.nick)||"",m=w||d.userId||"",N=((rt=o[T])==null?void 0:rt.avatar)||"");const De=I.find(jt=>jt.userId===E)||{};return{...d,...De,remark:O,nick:w,displayUserInfo:m,avatar:N}})}return t}catch(i){return console.error(`${a.PREFIX}getRemoteUserProfile failed, error: ${i}.`),t}}function _e(){const s=B.getData(A.CALL,a.CALL_STATUS);if(s===h.IDLE)return F.IDLE;const e=B.getData(A.CALL,a.IS_GROUP);if(s===h.CALLING)return e?F.DIALING_GROUP:F.DIALING_C2C;const t=B.getData(A.CALL,a.CALL_MEDIA_TYPE);return e?t===_.AUDIO?F.CALLING_GROUP_AUDIO:F.CALLING_GROUP_VIDEO:t===_.AUDIO?F.CALLING_C2C_AUDIO:F.CALLING_C2C_VIDEO}async function Mt(s,e,t,i){let r=[];try{const n=await e.getGroupMemberList({groupID:s,count:t,offset:i});if(n.code===0)return n.data.memberList||r}catch(n){return console.error(`${a.PREFIX}getGroupMember failed, error: ${n}.`),r}}async function yt(s,e){let t={};try{return(await e.getGroupProfile({groupID:s})).data.group||t}catch(i){return console.warn(`${a.PREFIX}getGroupProfile failed, error: ${i}.`),t}}function Ze(s,e){s===0&&e?(B.update(A.CALL,a.ROOM_ID,e),B.update(A.CALL,a.ROOM_ID_TYPE,Te.STRING_ROOM_ID)):(B.update(A.CALL,a.ROOM_ID,s),B.update(A.CALL,a.ROOM_ID_TYPE,Te.NUMBER_ROOM_ID))}function M(s){return s||{}}function we(s){if(s.length===0)return;let e=B.getData(A.CALL,a.REMOTE_USER_INFO_LIST);s.forEach(t=>{e=e.filter(i=>i.userId!==t)}),B.update(A.CALL,a.REMOTE_USER_INFO_LIST,e),B.update(A.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,e)}function pe(s,e,t){let i="";Ut(s)&&(e===_.AUDIO&&(i=p.NO_MICROPHONE_DEVICE_PERMISSION),e===_.VIDEO&&(i=p.NO_CAMERA_DEVICE_PERMISSION),i&&B.update(A.CALL,a.TOAST_INFO,{content:i,type:a.ERROR}),console.error(`${a.PREFIX}call failed, error: ${s.message}.`))}function k(s,e){let t=B.getData(A.CALL,a.LOCAL_USER_INFO);e===a.AUDIO&&(t={...t,isAudioAvailable:s}),e===a.VIDEO&&(t={...t,isVideoAvailable:s}),B.update(A.CALL,a.LOCAL_USER_INFO,t),B.update(A.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,t)}const fe=class fe{static generateTaskID(){return this.currentTaskID++}static run(e=a.TIMEOUT,t,i){e===a.INTERVAL?i={delay:2e3,count:0,backgroundTask:!0,...i}:i={delay:2e3,count:0,backgroundTask:!0,...i},Oe(t)&&(i={...i,...t}),Le(e)&&(t=e,e=a.TIMEOUT);const r={taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,taskName:e,callback:t,...i};return this.taskMap.set(r.taskID,r),e===a.INTERNAL?this.interval(r):this.timeout(r),r.taskID}static interval(e){const t=()=>{e.callback(),e.loopCount+=1,this.isBreakLoop(e)};return e.intervalID=setInterval(t,e.delay)}static timeout(e){const t=()=>{if(e.callback(),e.loopCount+=1,!this.isBreakLoop(e))return e.timeoutID=setTimeout(t,e.delay)};return e.timeoutID=setTimeout(t,e.delay)}static hasTask(e){return this.taskMap.has(e)}static clearTask(e){if(!this.taskMap.has(e))return!0;const{intervalID:t,timeoutID:i,onVisibilitychange:r}=this.taskMap.get(e);return t&&clearInterval(t),i&&clearTimeout(i),r&&document.removeEventListener("visibilitychange",r),this.taskMap.delete(e),!0}static isBreakLoop(e){return this.taskMap.has(e.taskID)?e.count!==0&&e.loopCount>=e.count?(this.clearTask(e.taskID),!0):!1:!0}};fe.taskMap=new Map,fe.currentTaskID=1;let ge=fe;const Pt=function(s){if(s===null||typeof s>"u")return!0;if(typeof s=="boolean")return!1;if(typeof s=="number")return s===0;if(typeof s=="string"||typeof s=="function"||Array.isArray(s))return s.length===0;if(s instanceof Error)return s.message==="";if(Oe(s)){for(const e in s)if(Object.prototype.hasOwnProperty.call(s,e))return!1;return!0}return!1},Ge="_local_user_id";class J{constructor(){this._viewConfig={viewBackground:{local:{},remote:{}}},this._isSetViewBackgroundConfig={remote:!1,local:!1},this._tuiCallEngine=null,this._tuiStore=null}static getInstance(){return J.instance||(J.instance=new J),J.instance}_updateViewBackground(){var i,r,n;const e=(i=this._tuiStore)==null?void 0:i.getData(A.CALL,a.CUSTOM_UI_CONFIG),{userId:t}=(r=this._tuiStore)==null?void 0:r.getData(A.CALL,a.LOCAL_USER_INFO);Object.keys(this._viewConfig.viewBackground.remote).includes(t)&&delete this._viewConfig.viewBackground.remote[t],(n=this._tuiStore)==null||n.update(A.CALL,a.CUSTOM_UI_CONFIG,{...e,viewBackground:{...this._viewConfig.viewBackground.remote,...this._viewConfig.viewBackground.local}})}setEngineInstance(e){this._tuiCallEngine=e}setTUIStore(e){this._tuiStore=e}updateViewBackgroundUserId(e){var t,i;if(e==="local"){const{userId:r}=(t=this._tuiStore)==null?void 0:t.getData(A.CALL,a.LOCAL_USER_INFO);if(Object.keys(this._viewConfig.viewBackground.remote).includes(r)&&(delete this._viewConfig.viewBackground.remote[r],this._updateViewBackground()),!this._isSetViewBackgroundConfig.local)return;const n=this._viewConfig.viewBackground.local,o=n[r]||n[Ge];n[r]=n[Ge],this._viewConfig.viewBackground.local={[r]:o},this._updateViewBackground()}else{let r=this._viewConfig.viewBackground.remote;this._isSetViewBackgroundConfig.remote&&Object.keys(r).includes("*")&&(((i=this._tuiStore)==null?void 0:i.getData(A.CALL,a.REMOTE_USER_INFO_LIST)).map(I=>I.userId).forEach(I=>{Object.keys(r).includes(I)||(r[I]=r["*"])}),this._viewConfig.viewBackground.remote=r,this._updateViewBackground())}}hideFeatureButton(e){var i,r,n,o,I;(r=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||r.call(i,{name:"TUICallKit.hideFeatureButton.start",data:{buttonName:e}});const t=(n=this._tuiStore)==null?void 0:n.getData(A.CALL,a.CUSTOM_UI_CONFIG);(I=this._tuiStore)==null||I.update(A.CALL,a.CUSTOM_UI_CONFIG,{...t,button:{...t.button,[e]:{...((o=t.button)==null?void 0:o[e])||{},show:!1}}})}setLocalViewBackgroundImage(e){var i,r,n;(r=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||r.call(i,{name:"TUICallKit.setLocalViewBackgroundImage.start",data:{url:e}}),this._isSetViewBackgroundConfig.local=!0;let{userId:t}=(n=this._tuiStore)==null?void 0:n.getData(A.CALL,a.LOCAL_USER_INFO);Pt(t)&&(t=Ge),this._viewConfig.viewBackground.local={[t]:e},this._updateViewBackground()}setRemoteViewBackgroundImage(e,t){var i,r;(r=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||r.call(i,{name:"TUICallKit.setRemoteViewBackgroundImage.start",data:{userId:e,url:t}}),this._isSetViewBackgroundConfig.remote=!0,e==="*"&&(this._viewConfig.viewBackground.remote={}),this._viewConfig.viewBackground.remote[e]=t,this._updateViewBackground()}setLayoutMode(e){var i,r;(r=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||r.call(i,{name:"TUICallKit.setLayoutMode.start",data:{layoutMode:e}});const t=this._tuiStore.getData(A.CALL,a.CUSTOM_UI_CONFIG);this._tuiStore.update(A.CALL,a.CUSTOM_UI_CONFIG,{...t,layoutMode:e})}setCameraDefaultState(e){var i,r;(r=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||r.call(i,{name:"TUICallKit.setCameraDefaultState.start",data:{isOpen:e}});const t=he(this._tuiStore.getData(A.CALL,a.CUSTOM_UI_CONFIG));Object.keys(t.button).includes(K.Camera)||(t.button[K.Camera]={}),t.button[K.Camera].state=e?q.Open:q.Close,this._tuiStore.update(A.CALL,a.CUSTOM_UI_CONFIG,t)}}const ae=de.getInstance(),Q={audioCall:()=>"Voice call",videoCall:()=>"Video call",switchToAudio:()=>"Switch audio call",switchToVideo:()=>"Switch video call",hangup:({callDuration:s})=>`${H("Call duration")}:${s}`};class Z{constructor(e){var t,i,r;this._callService=e.callService,S.TUICore.registerEvent(S.TUIConstants.TUILogin.EVENT.LOGIN_STATE_CHANGED,S.TUIConstants.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS,this),(t=S.TUIConstants.TUIChat)!=null&&t.EVENT&&S.TUICore.registerEvent((i=S.TUIConstants.TUIChat.EVENT)==null?void 0:i.CHAT_STATE_CHANGED,(r=S.TUIConstants.TUIChat.EVENT_SUB_KEY)==null?void 0:r.CHAT_OPENED,this),S.TUICore.registerService(S.TUIConstants.TUICalling.SERVICE.NAME,this),S.TUICore.registerExtension(S.TUIConstants.TUIChat.EXTENSION.INPUT_MORE.EXT_ID,this)}static getInstance(e){return Z.instance||(Z.instance=new Z(e)),Z.instance}callTUIService(e){const{message:t}=e||{};S.TUICore.callService({serviceName:S.TUIConstants.TUIChat.SERVICE.NAME,method:S.TUIConstants.TUIChat.SERVICE.METHOD.UPDATE_MESSAGE_LIST,params:{message:t}})}onGetExtension(e,t){var i,r;if(e===S.TUIConstants.TUIChat.EXTENSION.INPUT_MORE.EXT_ID){if((r=(i=this._callService.getTUICallEngineInstance())==null?void 0:i.reportLog)==null||r.call(i,{name:"TUICallKit.onGetExtension",data:{extensionID:e,params:t}}),Ce(t))return[];if([S.TUIConstants.TUIChat.TYPE.ROOM,S.TUIConstants.TUIChat.TYPE.CUSTOMER_SERVICE].includes(t.chatType))return[];let n=[];const o={weight:1e3,text:"语音通话",icon:At,data:{name:"voiceCall"},listener:{onClicked:async c=>await this._handleTUICoreOnClick(c,c.type||_.AUDIO)}},I={weight:900,text:"视频通话",icon:nt,data:{name:"videoCall"},listener:{onClicked:async c=>await this._handleTUICoreOnClick(c,c.type||_.VIDEO)}};return t!=null&&t.chatType?n=[o,I]:(!(t!=null&&t.filterVoice)&&n.push(o),!(t!=null&&t.filterVideo)&&n.push(I)),n}}async onCall(e,t){e===S.TUIConstants.TUICalling.SERVICE.METHOD.START_CALL&&await this._handleTUICoreOnClick(t,t.type)}async onNotifyEvent(e,t,i){var r,n,o,I,c,L,E,d;try{if(e===S.TUIConstants.TUILogin.EVENT.LOGIN_STATE_CHANGED)if(t===S.TUIConstants.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS){const{chat:g,userID:T,userSig:O,SDKAppID:w}=S.TUILogin.getContext();await((r=this._callService)==null?void 0:r.init({tim:g,userID:T,userSig:O,sdkAppID:w,isFromChat:!0,component:Ue.TIM_CALL_KIT})),(n=this._callService)==null||n.setIsFromChat(!0),(o=this._callService)==null||o.setLogLevel(Pe.NORMAL),this._addListenChatEvent()}else t===S.TUIConstants.TUILogin.EVENT_SUB_KEY.USER_LOGOUT_SUCCESS&&(this._removeListenChatEvent(),await((I=this._callService)==null?void 0:I.destroyed()));if((c=S.TUIConstants.TUIChat)!=null&&c.EVENT&&e===S.TUIConstants.TUIChat.EVENT.CHAT_STATE_CHANGED&&t===S.TUIConstants.TUIChat.EVENT_SUB_KEY.CHAT_OPENED){if((L=this._callService)==null||L.setCurrentGroupId((i==null?void 0:i.groupID)||""),ae.getData(A.CALL,a.CALL_STATUS)!==h.IDLE)return;const g=(E=this._callService)==null?void 0:E.getCurrentGroupId(),T=g?await this.getGroupAttributes((d=this._callService)==null?void 0:d.getTim(),g):{};await this.updateStoreBasedOnGroupAttributes(T)}}catch(g){console.error(`${a.PREFIX}TUICore onNotifyEvent failed, error: ${g}.`)}}async updateStoreBasedOnGroupAttributes(e){var t,i,r,n;(r=(i=(t=this._callService)==null?void 0:t.getTUICallEngineInstance())==null?void 0:i.reportLog)==null||r.call(i,{name:"TUICallKit.getJoinGroupCallInfo.success",data:{groupAttributes:e}});try{const{call_id:o="",group_id:I="",room_id:c=0,room_id_type:L=0,call_media_type:E=a.UNKNOWN,user_list:d}=e[a.INNER_ATTR_KIT_INFO]?JSON.parse(e[a.INNER_ATTR_KIT_INFO]):{};let g=(d||[]).map(O=>O.userid);g.length>0&&(g=await te(g,(n=this._callService)==null?void 0:n.getTim()));const T={[a.CALL_ID]:o,[a.GROUP_ID]:I,[a.GROUP_CALL_MEMBERS]:g,[a.ROOM_ID]:c,[a.CALL_MEDIA_TYPE]:st[E],[a.ROOM_ID_TYPE]:L};ae.updateStore(T,A.CALL)}catch(o){console.warn(`${a.PREFIX}updateStoreBasedOnGroupAttributes fail, error: ${o}`)}}async getGroupAttributes(e,t){if(!t)return{};try{const{data:i}=await e.getGroupAttributes({groupID:t,keyList:[]});return(i==null?void 0:i.groupAttributes)||{}}catch(i){return console.warn(`${a.PREFIX}getGroupAttributes fail: ${i}`),{}}}isLineBusy(e){var r;const t=ue(e.payload.data),i=ue(t==null?void 0:t.data);return(i==null?void 0:i.line_busy)==="line_busy"||(i==null?void 0:i.line_busy)===""||((r=i==null?void 0:i.data)==null?void 0:r.message)==="lineBusy"}async getCallKitMessage(e,t){var g,T,O,w;const i=ue(e.payload.data);if((i==null?void 0:i.businessID)!==1)return{};let r="";const n=ue(i==null?void 0:i.data),o=n.call_type,I=i.inviteeList,c=(g=n==null?void 0:n.data)==null?void 0:g.inviter,L=ae.getData(A.CALL,a.LOCAL_USER_INFO).userId,E=c===L,d=(T=n==null?void 0:n.data)==null?void 0:T.cmd;switch(i==null?void 0:i.actionType){case x.INVITE:{r=Q[d]({callDuration:qe(n==null?void 0:n.call_end)});break}case x.CANCEL_INVITE:r=E?"Call Cancel":"Other Side Cancel";break;case x.ACCEPT_INVITE:["switchToAudio","switchToVideo"].includes(d)?r=(O=Q==null?void 0:Q[d])==null?void 0:O.call(Q):r=H("Answered");break;case x.REJECT_INVITE:this.isLineBusy(e)?r=E?"Line Busy":"Other Side Line Busy":r=E?"Other Side Decline":"Decline";break;case x.INVITE_TIMEOUT:["switchToAudio","switchToVideo"].includes(d)?r=(w=Q==null?void 0:Q[d])==null?void 0:w.call(Q):r=E?"Other Side No Answer":"No answer";break}return{messageCardContent:r,callMediaType:o,inviteeList:I}}_addListenChatEvent(){var e,t;if(!((e=this._callService)!=null&&e.getTim())){console.warn(`${a.PREFIX}add tim event listener failed, tim is empty.`);return}(t=this._callService)==null||t.getTim().on(ve.EVENT.GROUP_ATTRIBUTES_UPDATED,this._handleGroupAttributesUpdated,this)}_removeListenChatEvent(){var e,t;if(!((e=this._callService)!=null&&e.getTim())){console.warn(`${a.PREFIX}remove tim event listener failed, tim is empty.`);return}(t=this._callService)==null||t.getTim().off(ve.EVENT.GROUP_ATTRIBUTES_UPDATED,this._handleGroupAttributesUpdated,this)}async _handleTUICoreOnClick(e,t){var i;try{const r=ae.getData(A.CALL,a.IS_FORCE_USE_V2_API),{groupID:n,userIDList:o=[],version:I="",...c}=e;if(r){await this._useV2API({...e,type:t});return}if(I==="v3"){await((i=this._callService)==null?void 0:i.calls({chatGroupID:n,userIDList:o,type:t,...c}));return}await this._useV2API({...e,type:t})}catch(r){console.debug(r)}}async _useV2API(e){var o,I;const{groupID:t,userIDList:i=[],type:r,...n}=e||{};t?await((o=this._callService)==null?void 0:o.groupCall({groupID:t,userIDList:i,type:r,...n})):i.length===1&&await((I=this._callService)==null?void 0:I.call({userID:i[0],type:r,...n}))}async _handleGroupAttributesUpdated(e){var n;if(ae.getData(A.CALL,a.CALL_STATUS)!==h.IDLE)return;const t=(e==null?void 0:e.data)||{},{groupID:i="",groupAttributes:r={}}=t;i===((n=this._callService)==null?void 0:n.getCurrentGroupId())&&await this.updateStoreBasedOnGroupAttributes(r)}}const Qt=0,mt=1,$e=2;function Vt({retryFunction:s,settings:e,onError:t,onRetrying:i,onRetryFailed:r,context:n}){return function(...o){const I=e.retries||5;let c=0,L=-1,E=Qt;const d=async(g,T)=>{const O=n||this;try{const w=await s.apply(O,o);c=0,g(w)}catch(w){const m=()=>{clearTimeout(L),c=0,E=$e,T(w)},N=()=>{E!==$e&&c<I?(c++,E=mt,Le(i)&&i.call(O,c,m),L=setTimeout(()=>{L=-1,d(g,T)},Ce(e.timeout)?1e3:e.timeout)):(m(),Le(r)&&r.call(O,w))};Le(t)?t.call(O,w,N,T,o):N()}};return new Promise(d)}}function Kt(s){return function(e,t,i){const{retries:r=5,timeout:n=2e3,onError:o,onRetrying:I,onRetryFailed:c}=s,L=Vt({retryFunction:i.value,settings:{retries:r,timeout:n},onError:o,onRetrying:I,onRetryFailed:c,context:null});return i.value=function(...E){return L.apply(this,E)},i}}var bt=Object.defineProperty,kt=Object.getOwnPropertyDescriptor,Yt=(s,e,t,i)=>{for(var r=i>1?void 0:i?kt(e,t):e,n=s.length-1,o;n>=0;n--)(o=s[n])&&(r=(i?o(e,t,r):o(r))||r);return i&&r&&bt(e,t,r),r};const u=de.getInstance(),Ht=J.getInstance(),et=class oe{constructor(e){this._callService=e.callService}static getInstance(e){return oe.instance||(oe.instance=new oe(e)),oe.instance}addListenTuiCallEngineEvent(){var t,i;const e=(t=this._callService)==null?void 0:t.getTUICallEngineInstance();if(!e){console.warn(`${a.PREFIX}add engine event listener failed, engine is empty.`);return}e.on(C.TUICallEvent.ERROR,this._handleError,this),e.on(C.TUICallEvent.ON_CALL_RECEIVED,this._handleNewInvitationReceived,this),(i=C.TUICallEvent)!=null&&i.ON_CALL_BEGIN&&e.on(C.TUICallEvent.ON_CALL_BEGIN,this._handleOnCallBegin,this),e.on(C.TUICallEvent.USER_ENTER,this._handleUserEnter,this),e.on(C.TUICallEvent.USER_LEAVE,this._handleUserLeave,this),e.on(C.TUICallEvent.REJECT,this._handleInviteeReject,this),e.on(C.TUICallEvent.NO_RESP,this._handleNoResponse,this),e.on(C.TUICallEvent.LINE_BUSY,this._handleLineBusy,this),e.on(C.TUICallEvent.ON_CALL_NOT_CONNECTED,this._handleCallNotConnected,this),e.on(C.TUICallEvent.ON_USER_INVITING,this._handleOnUserInviting,this),e.on(C.TUICallEvent.SDK_READY,this._handleSDKReady,this),e.on(C.TUICallEvent.KICKED_OUT,this._handleKickedOut,this),e.on(C.TUICallEvent.MESSAGE_SENT_BY_ME,this._messageSentByMe,this),C.TUICallEvent.CALL_MESSAGE&&e.on(C.TUICallEvent.CALL_MESSAGE,this._handleCallMessage,this),C.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED&&e.on(C.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED,this._handleNetworkQuality,this),e.on(C.TUICallEvent.USER_VIDEO_AVAILABLE,this._handleUserVideoAvailable,this),e.on(C.TUICallEvent.USER_AUDIO_AVAILABLE,this._handleUserAudioAvailable,this),e.on(C.TUICallEvent.CALL_END,this._handleCallingEnd,this),e.on(C.TUICallEvent.CALL_MODE,this._handleCallTypeChange,this),e.on(C.TUICallEvent.USER_UPDATE,this._handleUserUpdate,this)}removeListenTuiCallEngineEvent(){var t,i;const e=(t=this._callService)==null?void 0:t.getTUICallEngineInstance();e.off(C.TUICallEvent.ERROR,this._handleError,this),e.off(C.TUICallEvent.ON_CALL_RECEIVED,this._handleNewInvitationReceived,this),(i=C.TUICallEvent)!=null&&i.ON_CALL_BEGIN&&e.off(C.TUICallEvent.ON_CALL_BEGIN,this._handleOnCallBegin,this),e.off(C.TUICallEvent.USER_ENTER,this._handleUserEnter,this),e.off(C.TUICallEvent.USER_LEAVE,this._handleUserLeave,this),e.off(C.TUICallEvent.REJECT,this._handleInviteeReject,this),e.off(C.TUICallEvent.NO_RESP,this._handleNoResponse,this),e.off(C.TUICallEvent.LINE_BUSY,this._handleLineBusy,this),e.off(C.TUICallEvent.ON_CALL_NOT_CONNECTED,this._handleCallNotConnected,this),e.off(C.TUICallEvent.ON_USER_INVITING,this._handleOnUserInviting,this),e.off(C.TUICallEvent.SDK_READY,this._handleSDKReady,this),e.off(C.TUICallEvent.KICKED_OUT,this._handleKickedOut,this),e.off(C.TUICallEvent.MESSAGE_SENT_BY_ME,this._messageSentByMe,this),C.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED&&e.off(C.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED,this._handleNetworkQuality,this),e.off(C.TUICallEvent.USER_VIDEO_AVAILABLE,this._handleUserVideoAvailable,this),e.off(C.TUICallEvent.USER_AUDIO_AVAILABLE,this._handleUserAudioAvailable,this),e.off(C.TUICallEvent.CALL_END,this._handleCallingEnd,this),e.off(C.TUICallEvent.CALL_MODE,this._handleCallTypeChange,this),e.off(C.TUICallEvent.USER_UPDATE,this._handleUserUpdate,this)}_callerChangeToConnected(){var i;const e=u.getData(A.CALL,a.CALL_ROLE);u.getData(A.CALL,a.CALL_STATUS)===h.CALLING&&e===G.CALLER&&(u.update(A.CALL,a.CALL_STATUS,h.CONNECTED),(i=this._callService)==null||i.startTimer())}_unNormalEventsManager(e,t){var n,o;console.log(`${a.PREFIX}${t} event data: ${JSON.stringify(e)}.`);const i=u.getData(A.CALL,a.IS_GROUP),r=u.getData(A.CALL,a.REMOTE_USER_INFO_LIST);switch(t){case C.TUICallEvent.REJECT:case C.TUICallEvent.LINE_BUSY:{const{userID:I}=M(e);let c=t===C.TUICallEvent.REJECT?p.OTHER_SIDE_REJECT_CALL:p.OTHER_SIDE_LINE_BUSY,L="";i&&(L=(r.find(E=>E.userId===I)||{}).displayUserInfo||I,c=t===C.TUICallEvent.REJECT?p.REJECT_CALL:p.IN_BUSY),u.update(A.CALL,a.TOAST_INFO,{content:{key:c,options:{userList:L}}}),I&&we([I]),u.getData(A.CALL,a.REMOTE_USER_INFO_LIST).length===0&&((n=this._callService)==null||n._resetCallStore());break}case C.TUICallEvent.NO_RESP:{const{userIDList:I=[]}=M(e),c=i?p.TIMEOUT:p.CALL_TIMEOUT,L=I.map(E=>(r.find(g=>g.userId===E)||{}).displayUserInfo||E);u.update(A.CALL,a.TOAST_INFO,{content:{key:c,options:{userList:L.join()}}}),I.length>0&&we(I);break}case C.TUICallEvent.ON_CALL_NOT_CONNECTED:{(o=this._callService)==null||o._resetCallStore();break}}}_handleError(e){var o;const{code:t,message:i}=e||{},r=Object.values(Me).indexOf(t);let n="";if(r!==-1){const I=Object.keys(Me)[r];n=H(ye[I]),n&&u.update(A.CALL,a.TOAST_INFO,{content:ye[I],type:a.ERROR})}(o=this._callService)==null||o.executeExternalAfterCalling(),console.error(`${a.PREFIX}_handleError, errorCode: ${t}; errorMessage: ${n||i}.`)}async _handleNewInvitationReceived(e){var De,ie,re,se;console.log(`${a.PREFIX}onCallReceived event data: ${JSON.stringify(e)}.`);const{callerId:t="",callMediaType:i,inviteData:r={},calleeIdList:n=[],chatGroupID:o="",roomID:I,strRoomID:c}=M(e),L=u.getData(A.CALL,a.LOCAL_USER_INFO),E=[t,...n.filter($=>$!==L.userId)],d=i||r.callType,g=d===_.AUDIO?p.CALLEE_CALLING_AUDIO_MSG:p.CALLEE_CALLING_VIDEO_MSG;let T={[a.CALL_ROLE]:G.CALLEE,[a.IS_GROUP]:!!o||n.length>1,[a.CALL_STATUS]:h.CALLING,[a.CALL_MEDIA_TYPE]:d,[a.CALL_TIPS]:g,[a.CALLER_USER_INFO]:{userId:t},[a.GROUP_ID]:o};Ve();const O={enableCamera:d===_.VIDEO,enableMic:!0};T={...T,[a.PUSHER]:O},this._callService.openCamera(d===_.VIDEO),this._callService.openMicrophone();const w={microphone:!0,camera:d===_.VIDEO};this._callService._preDevicePermission=await this._callService._tuiCallEngine.deviceCheck(w),Ze(I,c),u.updateStore(T,A.CALL),(De=this._callService)==null||De.executeExternalBeforeCalling(),(ie=this._callService)!=null&&ie.statusChanged&&((re=this._callService)==null||re.statusChanged({oldStatus:F.IDLE,newStatus:F.BE_INVITED}));const m=await te(E,(se=this._callService)==null?void 0:se.getTim()),[N]=m.filter($=>$.userId===t);m.length>0&&u.updateStore({[a.REMOTE_USER_INFO_LIST]:m,[a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]:m,[a.CALLER_USER_INFO]:{userId:t,nick:(N==null?void 0:N.nick)||"",avatar:(N==null?void 0:N.avatar)||"",displayUserInfo:(N==null?void 0:N.remark)||(N==null?void 0:N.nick)||t}},A.CALL)}async _handleOnCallBegin(e){this._callerChangeToConnected(),u.update(A.CALL,a.CALL_TIPS,{text:"answered",duration:2e3}),await this._callService.openMicrophone(),console.log(`${a.PREFIX}accept event data: ${JSON.stringify(e)}.`)}async _handleUserEnter(e){this._callerChangeToConnected();const{userID:t,data:i}=M(e);i!=null&&i.playerList&&u.update(A.CALL,a.PLAYER,i.playerList),await this._addUserToRemoteUserInfoList(t);let r=u.getData(A.CALL,a.REMOTE_USER_INFO_LIST);r=r.map(n=>(n.userId===t&&(n.isEnter=!0),n)),r.length>0&&(u.update(A.CALL,a.REMOTE_USER_INFO_LIST,r),u.update(A.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,r),Ht.updateViewBackgroundUserId("remote")),console.log(`${a.PREFIX}userEnter event data: ${JSON.stringify(e)}.`)}_handleUserLeave(e){console.log(`${a.PREFIX}userLeave event data: ${JSON.stringify(e)}.`);const{data:t,userID:i}=M(e);if(t!=null&&t.playerList&&u.update(A.CALL,a.PLAYER,t.playerList),u.getData(A.CALL,a.IS_GROUP)){const n=(u.getData(A.CALL,a.REMOTE_USER_INFO_LIST).find(o=>o.userId===i)||{}).displayUserInfo||i;u.update(A.CALL,a.TOAST_INFO,{content:{key:p.END_CALL,options:{userList:n}}})}i&&we([i])}_handleInviteeReject(e){this._unNormalEventsManager(e,C.TUICallEvent.REJECT)}_handleNoResponse(e){this._unNormalEventsManager(e,C.TUICallEvent.NO_RESP)}_handleLineBusy(e){this._unNormalEventsManager(e,C.TUICallEvent.LINE_BUSY)}_handleCallNotConnected(e){var t;(t=this._callService)==null||t.executeExternalAfterCalling(),this._unNormalEventsManager(e,C.TUICallEvent.ON_CALL_NOT_CONNECTED)}async _handleOnUserInviting(e){const{userID:t}=M(e);t&&(u.update(A.CALL,a.IS_GROUP,!0),t!==u.getData(A.CALL,a.LOCAL_USER_INFO).userId&&await this._addUserToRemoteUserInfoList(t))}_handleCallingEnd(e){var t,i;console.log(`${a.PREFIX}callEnd event data: ${JSON.stringify(e)}.`),(t=this._callService)==null||t.executeExternalAfterCalling(),(i=this._callService)==null||i._resetCallStore()}async _handleSDKReady(e){var i;let t=u.getData(A.CALL,a.LOCAL_USER_INFO);t=await vt(t.userId,(i=this._callService)==null?void 0:i.getTim()),u.update(A.CALL,a.LOCAL_USER_INFO,t),u.update(A.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,t)}_handleKickedOut(e){var t,i,r;console.log(`${a.PREFIX}kickOut event data: ${JSON.stringify(e)}.`),(t=this._callService)!=null&&t.kickedOut&&((i=this._callService)==null||i.kickedOut(e)),u.update(A.CALL,a.CALL_TIPS,p.KICK_OUT),(r=this._callService)==null||r._resetCallStore()}_messageSentByMe(e){var i,r;const t=e==null?void 0:e.data;(i=this._callService)!=null&&i.onMessageSentByMe&&((r=this._callService)==null||r.onMessageSentByMe(t))}_handleCallMessage(e){const t=M(e);this._callService._chatCombine.callTUIService({message:t})}_handleCallTypeChange(e){var r;const{newCallType:t,type:i}=M(e);u.update(A.CALL,a.CALL_MEDIA_TYPE,t||i),(r=this._callService)==null||r.setSoundMode(v.EAR)}_handleNetworkQuality(e){const{networkQualityList:t=[]}=M(e);u.update(A.CALL,a.NETWORK_STATUS,t);const i=u.getData(A.CALL,a.IS_GROUP),r=u.getData(A.CALL,a.LOCAL_USER_INFO),n=u.getData(A.CALL,a.REMOTE_USER_INFO_LIST);if(!i){if(t.find(c=>{var L;return((L=n[0])==null?void 0:L.userId)===(c==null?void 0:c.userId)&&(c==null?void 0:c.quality)>=me})){u.update(A.CALL,a.CALL_TIPS,p.REMOTE_NETWORK_IS_POOR);return}if(t.find(c=>(r==null?void 0:r.userId)===(c==null?void 0:c.userId)&&(c==null?void 0:c.quality)>=me)){u.update(A.CALL,a.CALL_TIPS,p.LOCAL_NETWORK_IS_POOR);return}}}async _startRemoteView(e){var t;if(!e){console.warn(`${a.PREFIX}_startRemoteView userID is empty`);return}try{const i=u.getData(A.CALL,a.DISPLAY_MODE);await((t=this._callService)==null?void 0:t.getTUICallEngineInstance().startRemoteView({userID:e,videoViewDomID:`${e}_0`,options:{objectFit:i}}))}catch(i){return console.error(`${a.PREFIX}_startRemoteView error: ${i}.`),Promise.reject(i)}}_setRemoteUserInfoAudioVideoAvailable(e,t,i){let r=u.getData(A.CALL,a.REMOTE_USER_INFO_LIST);r=r.map(n=>{if(n.userId===i){if(t===a.AUDIO)return{...n,isAudioAvailable:e};if(t===a.VIDEO)return{...n,isVideoAvailable:e}}return n}),r.length>0&&(u.update(A.CALL,a.REMOTE_USER_INFO_LIST,r),u.update(A.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,r))}async _handleUserVideoAvailable(e){const{userID:t,isVideoAvailable:i}=M(e);console.log(`${a.PREFIX}_handleUserVideoAvailable event data: ${JSON.stringify(e)}.`);try{i&&await this._startRemoteView(t)}catch(r){console.error(`${a.PREFIX}_startRemoteView failed, error: ${r}.`)}this._setRemoteUserInfoAudioVideoAvailable(i,a.VIDEO,t)}_handleUserAudioAvailable(e){const{userID:t,isAudioAvailable:i}=M(e);console.log(`${a.PREFIX}_handleUserAudioAvailable event data: ${JSON.stringify(e)}.`),this._setRemoteUserInfoAudioVideoAvailable(i,a.AUDIO,t)}_handleUserVoiceVolume(e){try{const{volumeMap:t}=M(e);if((t||[]).length===0)return;const i=u.getData(A.CALL,a.LOCAL_USER_INFO);let r=u.getData(A.CALL,a.REMOTE_USER_INFO_LIST);const[n]=t.filter(c=>c.userId===i.userId),o=t.reduce((c,L)=>L.userId!==i.userId?{...c,[L.userId]:L.audioVolume}:c,{});i.volume=n.audioVolume,r=r.map(c=>({...c,volume:o[c.userId]}));const I={[a.LOCAL_USER_INFO]:i,[a.REMOTE_USER_INFO_LIST]:r};u.updateStore(I,A.CALL)}catch(t){console.debug(t)}}_handleDeviceUpdate(e){const{cameraList:t,microphoneList:i,speakerList:r,currentCamera:n,currentMicrophone:o,currentSpeaker:I}=e;u.update(A.CALL,a.DEVICE_LIST,{cameraList:t,microphoneList:i,speakerList:r,currentCamera:n,currentMicrophone:o,currentSpeaker:I})}_handleUserUpdate(e){const t=M(e);t!=null&&t.pusher&&u.update(A.CALL,a.PUSHER,t.pusher),t!=null&&t.playerList&&u.update(A.CALL,a.PLAYER,t.playerList)}async _addUserToRemoteUserInfoList(e){var r;let t=u.getData(A.CALL,a.REMOTE_USER_INFO_LIST);if(!t.find(n=>(n==null?void 0:n.userId)===e)){t.push({userId:e}),u.update(A.CALL,a.REMOTE_USER_INFO_LIST,t),u.update(A.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,t);const[n]=await te([e],(r=this._callService)==null?void 0:r.getTim());t=u.getData(A.CALL,a.REMOTE_USER_INFO_LIST),t.forEach(o=>{(o==null?void 0:o.userId)===e&&(o=Object.assign(o,n))}),u.update(A.CALL,a.REMOTE_USER_INFO_LIST,t),u.update(A.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,t)}}};Yt([Kt({retries:5,timeout:200,onRetrying(s){console.warn(`${a.PREFIX}_startRemoteView, retrying [${s}]`)}})],et.prototype,"_startRemoteView",1);let Jt=et;var zt=Object.defineProperty,Xt=Object.getOwnPropertyDescriptor,D=(s,e,t,i)=>{for(var r=i>1?void 0:i?Xt(e,t):e,n=s.length-1,o;n>=0;n--)(o=s[n])&&(r=(i?o(e,t,r):o(r))||r);return i&&r&&zt(e,t,r),r};const Fe=Je.getInstance(),l=de.getInstance(),V=J.getInstance();V.setTUIStore(l);const tt="4.0.8",f=class le{constructor(){this._tim=null,this._TUICore=null,this._timerId=-1,this._startTimeStamp=Re(),this._bellContext=null,this._isFromChat=!1,this._currentGroupId="",this._preDevicePermission=!1,this._offlinePushInfo=null,this._permissionCheckTimer=null,this._chatCombine=null,this._engineEventHandler=null,this._handleCallStatusChange=async e=>{var t,i;try{const r={callRole:l.getData(A.CALL,a.CALL_ROLE),callStatus:l.getData(A.CALL,a.CALL_STATUS)};if(this._bellContext.setBellProperties(r),e===h.CALLING)await((t=this==null?void 0:this._bellContext)==null?void 0:t.play());else{if(e===h.CONNECTED){const n=l.getData(A.CALL,a.IS_GROUP),o=l.getData(A.CALL,a.CALL_MEDIA_TYPE),I=l.getData(A.CALL,a.REMOTE_USER_INFO_LIST),c=n?F.DIALING_GROUP:F.DIALING_C2C;l.update(A.CALL,a.CALL_TIPS,""),this.statusChanged&&this.statusChanged({oldStatus:c,newStatus:_e()}),!n&&o===_.VIDEO&&this.switchScreen(I[0].domId)}await((i=this==null?void 0:this._bellContext)==null?void 0:i.stop())}}catch(r){console.warn(`${a.PREFIX}handleCallStatusChange, ${r}.`)}},console.log(`${a.PREFIX}version: ${tt}`),this._watchTUIStore(),this._engineEventHandler=Jt.getInstance({callService:this}),this._chatCombine=Z.getInstance({callService:this})}static getInstance(){return le.instance||(le.instance=new le),le.instance}async init(e){var t,i;try{if(this._tuiCallEngine)return;let{userID:r,tim:n,userSig:o,sdkAppID:I,SDKAppID:c,isFromChat:L,component:E=Ue.TUI_CALL_KIT}=e;this._TUICore&&(I=this._TUICore.SDKAppID,n=this._TUICore.tim),this._tim=n,console.log(`${a.PREFIX}init sdkAppId: ${I||c}, userId: ${r}`),this._tuiCallEngine=C.TUICallEngine.createInstance({tim:n,sdkAppID:I||c,callkitVersion:tt,isFromChat:L||!1,component:E}),V.setEngineInstance(this._tuiCallEngine),this._addListenTuiCallEngineEvent(),this._bellContext=new wt,l.update(A.CALL,a.LOCAL_USER_INFO,{userId:r}),l.update(A.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{userId:r}),V.updateViewBackgroundUserId("local"),await this._tuiCallEngine.login({userID:r,userSig:o,assetsPath:""});const d=l.getData(A.CALL,a.CUSTOM_UI_CONFIG);(i=(t=this._tuiCallEngine)==null?void 0:t.reportLog)==null||i.call(t,{name:"TUICallkit.init",data:{uiConfig:d}})}catch(r){throw console.error(`${a.PREFIX}init failed, error: ${r}.`),r}}async destroyed(){var e;try{const t=l.getData(A.CALL,a.CALL_STATUS);if(t!==h.IDLE)throw new Error(`please destroyed when status is idle, current status: ${t}`);this._tuiCallEngine&&(this._removeListenTuiCallEngineEvent(),await this._tuiCallEngine.destroyInstance(),this._tuiCallEngine=null),(e=this._bellContext)==null||e.destroy(),this._bellContext=null}catch(t){throw console.error(`${a.PREFIX}destroyed failed, error: ${t}.`),t}}async call(e){if(l.getData(A.CALL,a.CALL_STATUS)===h.IDLE)try{const{type:t,userID:i,offlinePushInfo:r}=e;if(l.getData(A.CALL,a.CALL_STATUS)!==h.IDLE)return;await this._updateCallStoreBeforeCall(t,[{userId:i}]),this.executeExternalBeforeCalling(),e.offlinePushInfo={...this.getDefaultOfflinePushInfo(),...r};const n=await this._tuiCallEngine.call(e);await this._updateCallStoreAfterCall([i],n)}catch(t){this._handleCallError(t,"call")}}async groupCall(e){if(l.getData(A.CALL,a.CALL_STATUS)===h.IDLE)try{const{userIDList:t,type:i,groupID:r,offlinePushInfo:n}=e;if(l.getData(A.CALL,a.CALL_STATUS)!==h.IDLE)return;const o=t.map(c=>({userId:c}));await this._updateCallStoreBeforeCall(i,o,r),this.executeExternalBeforeCalling(),e.offlinePushInfo={...this.getDefaultOfflinePushInfo(),...n};const I=await this._tuiCallEngine.groupCall(e);await this._updateCallStoreAfterCall(t,I)}catch(t){this._handleCallError(t,"groupCall")}}async inviteUser(e){if(l.getData(A.CALL,a.CALL_STATUS)!==h.IDLE)try{const{userIDList:t}=e;let i=await te(t,this.getTim());const r=l.getData(A.CALL,a.REMOTE_USER_INFO_LIST);if(t.filter(o=>!r.some(I=>I.userId===o)).length===0)return;l.update(A.CALL,a.REMOTE_USER_INFO_LIST,[...r,...i]),l.update(A.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,[...r,...i]),this._tuiCallEngine&&await this._tuiCallEngine.inviteUser(e)}catch(t){console.error(`${a.PREFIX}inviteUser failed, error: ${t}.`)}}async joinInGroupCall(e){if(l.getData(A.CALL,a.CALL_STATUS)!==h.CONNECTED)try{const t={[a.CALL_ROLE]:G.CALLEE,[a.IS_GROUP]:!0,[a.CALL_STATUS]:h.CONNECTED,[a.CALL_MEDIA_TYPE]:e.type,[a.GROUP_ID]:e.groupID,[a.ROOM_ID]:e.roomID};l.updateStore(t,A.CALL);const i=await this._tuiCallEngine.joinInGroupCall(e),r=this._getFeatureButtonDefaultState(K.Camera)===q.Close;e.type===_.VIDEO&&!r&&await this.openCamera(a.LOCAL_VIDEO),l.update(A.CALL,a.IS_CLICKABLE,!0),this.startTimer(),l.update(A.CALL,a.PUSHER,i),this.setSoundMode(e.type===_.AUDIO?v.EAR:v.SPEAKER);const n=l.getData(A.CALL,a.LOCAL_USER_INFO);l.update(A.CALL,a.LOCAL_USER_INFO,{...n,isEnter:!0}),l.update(A.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...n,isEnter:!0}),k(!0,a.AUDIO)}catch(t){this._handleCallError(t,"joinInGroupCall")}}async calls(e){if(l.getData(A.CALL,a.CALL_STATUS)===h.IDLE)try{const{userIDList:t,type:i,chatGroupID:r,offlinePushInfo:n}=e;if(l.getData(A.CALL,a.CALL_STATUS)!==h.IDLE)return;const o=t.map(c=>({userId:c}));await this._updateCallStoreBeforeCall(i,o,r),this.executeExternalBeforeCalling(),e.offlinePushInfo={...this.getDefaultOfflinePushInfo(),...n};const I=await this._tuiCallEngine.calls(e);await this._updateCallStoreAfterCall(t,I)}catch(t){this._handleCallError(t,"calls")}}async join(e){if(l.getData(A.CALL,a.CALL_STATUS)!==h.CONNECTED)try{const t=await this._tuiCallEngine.join(e);l.update(A.CALL,a.IS_CLICKABLE,!0),this.startTimer();const i={[a.CALL_ROLE]:G.CALLEE,[a.IS_GROUP]:!0,[a.CALL_STATUS]:h.CONNECTED,[a.CALL_MEDIA_TYPE]:l.getData(A.CALL,a.CALL_MEDIA_TYPE)||_.AUDIO};l.updateStore(i,A.CALL),l.update(A.CALL,a.PUSHER,t),this.setSoundMode(e.type===_.AUDIO?v.EAR:v.SPEAKER);const r=l.getData(A.CALL,a.LOCAL_USER_INFO);l.update(A.CALL,a.LOCAL_USER_INFO,{...r,isEnter:!0}),l.update(A.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...r,isEnter:!0}),await this.openMicrophone(),k(!0,a.AUDIO)}catch(t){this._handleCallError(t,"join")}}getTUICallEngineInstance(){return(this==null?void 0:this._tuiCallEngine)||null}setLogLevel(e){var t;(t=this==null?void 0:this._tuiCallEngine)==null||t.setLogLevel(e)}setLanguage(e){console.warn(`${a.PREFIX}The miniProgram does not support setLanguage`)}enableFloatWindow(e){l.update(A.CALL,a.ENABLE_FLOAT_WINDOW,e)}async setSelfInfo(e){const{nickName:t,avatar:i}=e;try{await this._tuiCallEngine.setSelfInfo(t,i)}catch(r){console.error(`${a.PREFIX}setSelfInfo failed, error: ${r}.`)}}async enableVirtualBackground(e){l.update(A.CALL,a.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND,e)}async setCallingBell(e){const t={calleeBellFilePath:e};this._bellContext.setBellProperties(t)}async enableMuteMode(e){try{const t={isMuteBell:e};this._bellContext.setBellProperties(t),await this._bellContext.setBellMute(e)}catch(t){console.warn(`${a.PREFIX}enableMuteMode failed, error: ${t}.`)}}hideFeatureButton(e){V.hideFeatureButton(e)}setLocalViewBackgroundImage(e){V.setLocalViewBackgroundImage(e)}setRemoteViewBackgroundImage(e,t){V.setRemoteViewBackgroundImage(e,t)}setLayoutMode(e){V.setLayoutMode(e)}setCameraDefaultState(e){V.setCameraDefaultState(e)}callExperimentalAPI(e){var n,o;const t=JSON.parse(e);if(t===e)return;const{api:i,params:r}=t;if(!(!i||!r))try{switch(i){case"forceUseV2API":const{enable:I}=r;l.update(A.CALL,a.IS_FORCE_USE_V2_API,!!I);break;default:break}}catch(I){(o=(n=this._tuiCallEngine)==null?void 0:n.reportLog)==null||o.call(n,{name:"TUICallKit.callExperimentalAPI.fail",data:{error:I}})}}async accept(){var t,i,r,n,o,I;const e=l.getData(A.CALL,a.CALL_STATUS);if((i=(t=this._tuiCallEngine)==null?void 0:t.reportLog)==null||i.call(t,{name:"TUICallKit.accept.start",data:{callStatus:e}}),e!==h.CONNECTED)try{const L={microphone:!0,camera:l.getData(A.CALL,a.CALL_MEDIA_TYPE)===_.VIDEO},E=await this._tuiCallEngine.deviceCheck(L);E&&!this._preDevicePermission&&(l.update(A.CALL,a.PUSHER_ID,a.NEW_PUSHER),this._preDevicePermission=E);const d=await this._tuiCallEngine.accept();if(d){l.update(A.CALL,a.CALL_STATUS,h.CONNECTED),(n=this._chatCombine)==null||n.callTUIService({message:(r=d==null?void 0:d.data)==null?void 0:r.message}),l.update(A.CALL,a.IS_CLICKABLE,!0),this.startTimer();const g=l.getData(A.CALL,a.CALL_MEDIA_TYPE),T=this._getFeatureButtonDefaultState(K.Camera)===q.Close;g===_.VIDEO&&!T&&await this.openCamera(a.LOCAL_VIDEO),d.pusher&&l.update(A.CALL,a.PUSHER,d.pusher),this.setSoundMode(g===_.AUDIO?v.EAR:v.SPEAKER);const O=l.getData(A.CALL,a.LOCAL_USER_INFO);l.update(A.CALL,a.LOCAL_USER_INFO,{...O,isEnter:!0}),l.update(A.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...O,isEnter:!0}),k(!0,a.AUDIO)}}catch(c){if((I=(o=this._tuiCallEngine)==null?void 0:o.reportLog)==null||I.call(o,{name:"TUICallKit.accept.fail",level:"error",error:c}),xe(c))return;pe(c,_.AUDIO,this._tuiCallEngine),this._resetCallStore()}}async hangup(){if(l.getData(A.CALL,a.CALL_STATUS)!==h.IDLE){try{const e=await this._tuiCallEngine.hangup();e==null||e.forEach(t=>{var i,r;(t==null?void 0:t.code)===0&&((r=this._chatCombine)==null||r.callTUIService({message:(i=t==null?void 0:t.data)==null?void 0:i.message}))})}catch(e){console.debug(e)}this._resetCallStore()}}async reject(){var e,t;if(l.getData(A.CALL,a.CALL_STATUS)!==h.IDLE){try{const i=await this._tuiCallEngine.reject();(i==null?void 0:i.code)===0&&((t=this._chatCombine)==null||t.callTUIService({message:(e=i==null?void 0:i.data)==null?void 0:e.message}))}catch(i){console.debug(i)}this._resetCallStore()}}async openCamera(e){try{if(Fe.isH5||Fe.isWeChat){const i=l.getData(A.CALL,a.CAMERA_POSITION)===Y.FRONT;this._tuiCallEngine.openCamera(e,i)}else await this._tuiCallEngine.openCamera(e);k(!0,a.VIDEO)}catch(t){pe(t,_.VIDEO,this._tuiCallEngine),console.error(`${a.PREFIX}openCamera error: ${t}.`)}}async closeCamera(){try{await this._tuiCallEngine.closeCamera(),k(!1,a.VIDEO)}catch(e){console.error(`${a.PREFIX}closeCamera error: ${e}.`)}}async openMicrophone(){try{await this._tuiCallEngine.openMicrophone(),k(!0,a.AUDIO)}catch(e){console.error(`${a.PREFIX}openMicrophone failed, error: ${e}.`)}}async closeMicrophone(){try{await this._tuiCallEngine.closeMicrophone(),k(!1,a.AUDIO)}catch(e){console.error(`${a.PREFIX}closeMicrophone failed, error: ${e}.`)}}switchScreen(e){e&&l.update(A.CALL,a.BIG_SCREEN_USER_ID,e)}async switchCallMediaType(){var e,t;try{const i=l.getData(A.CALL,a.CALL_MEDIA_TYPE);if(i===_.AUDIO){console.warn(`${a.PREFIX}switchCallMediaType failed, ${i} not support.`);return}const r=await this._tuiCallEngine.switchCallMediaType(_.AUDIO);(r==null?void 0:r.code)===0&&((t=this._chatCombine)==null||t.callTUIService({message:(e=r==null?void 0:r.data)==null?void 0:e.message})),l.update(A.CALL,a.CALL_MEDIA_TYPE,_.AUDIO);const o=l.getData(A.CALL,a.IS_GROUP)?F.CALLING_GROUP_VIDEO:F.CALLING_C2C_VIDEO,I=_e();this.statusChanged&&this.statusChanged({oldStatus:o,newStatus:I}),this.setSoundMode(v.EAR)}catch(i){console.error(`${a.PREFIX}switchCallMediaType failed, error: ${i}.`)}}async switchCamera(){const t=l.getData(A.CALL,a.CAMERA_POSITION)===Y.BACK?Y.FRONT:Y.BACK;try{await this._tuiCallEngine.switchCamera(t),l.update(A.CALL,a.CAMERA_POSITION,t)}catch(i){console.error(`${a.PREFIX}_switchCamera failed, error: ${i}.`)}}setSoundMode(e){var t;try{let i=l.getData(A.CALL,a.IS_EAR_PHONE);const r=e||(i?v.SPEAKER:v.EAR);(t=this._tuiCallEngine)==null||t.selectAudioPlaybackDevice(r),e?i=e===v.EAR:i=!i,l.update(A.CALL,a.IS_EAR_PHONE,i)}catch(i){console.error(`${a.PREFIX}setSoundMode failed, error: ${i}.`)}}async setBlurBackground(e){try{l.update(A.CALL,a.ENABLE_VIRTUAL_BACKGROUND,e)}catch(t){console.error(`${a.PREFIX}_setBlurBackground failed, error: ${t}.`)}}_addListenTuiCallEngineEvent(){this._engineEventHandler.addListenTuiCallEngineEvent()}_removeListenTuiCallEngineEvent(){this._engineEventHandler.removeListenTuiCallEngineEvent()}setCallback(e){const{beforeCalling:t,afterCalling:i,onMinimized:r,onMessageSentByMe:n,kickedOut:o,statusChanged:I}=e;t&&(this.beforeCalling=t),i&&(this.afterCalling=i),r&&(this.onMinimized=r),n&&(this.onMessageSentByMe=n),o&&(this.kickedOut=o),I&&(this.statusChanged=I)}toggleMinimize(){const e=l.getData(A.CALL,a.IS_MINIMIZED);l.update(A.CALL,a.IS_MINIMIZED,!e),console.log(`${a.PREFIX}toggleMinimize: ${e} -> ${!e}.`),this.onMinimized&&this.onMinimized(e,!e)}executeExternalBeforeCalling(){this.beforeCalling&&this.beforeCalling()}executeExternalAfterCalling(){this.afterCalling&&this.afterCalling()}async handleExceptionExit(e){var t,i;try{const r=l.getData(A.CALL,a.CALL_STATUS),n=l.getData(A.CALL,a.CALL_ROLE);if((i=(t=this._tuiCallEngine)==null?void 0:t.reportLog)==null||i.call(t,{name:"TUICallkit.handleExceptionExit",data:{callStatus:r,callRole:n}}),r===h.IDLE)return;r===h.CALLING&&(n===G.CALLER?await(this==null?void 0:this.hangup()):await(this==null?void 0:this.reject())),r===h.CONNECTED&&await(this==null?void 0:this.hangup()),this==null||this._resetCallStore()}catch(r){console.error(`${a.PREFIX} handleExceptionExit failed, error: ${r}.`)}e&&(e.returnValue="")}handlePusherError(e){var t;((t=e==null?void 0:e.detail)==null?void 0:t.errMsg)==="fail:access denied"&&Ct()}setVideoDisplayMode(e){l.update(A.CALL,a.DISPLAY_MODE,e)}async setVideoResolution(e){var t;try{if(!e)return;l.update(A.CALL,a.VIDEO_RESOLUTION,e),await((t=this._tuiCallEngine)==null?void 0:t.setVideoQuality(e))}catch(i){console.warn(`${a.PREFIX}setVideoResolution failed, error: ${i}.`)}}startTimer(){this._timerId===-1&&(this._startTimeStamp=Re(),this._timerId=ge.run(a.TIMEOUT,this._updateCallDuration.bind(this),{delay:1e3}))}_handleCallError(e,t){if(this._permissionCheckTimer&&clearInterval(this._permissionCheckTimer),!xe(e))throw It(e),pe(e,_.AUDIO,this._tuiCallEngine),console.error(`${a.PREFIX}${t} failed, error: ${e}.`),this._resetCallStore(),e}async _updateCallStoreBeforeCall(e,t,i){let r=p.CALLER_CALLING_MSG;(i||l.getData(A.CALL,a.IS_MINIMIZED)||t.length>1)&&(r=p.CALLER_GROUP_CALLING_MSG);let n={[a.CALL_MEDIA_TYPE]:e,[a.CALL_ROLE]:G.CALLER,[a.REMOTE_USER_INFO_LIST]:t,[a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]:t,[a.IS_GROUP]:!!i||t.length>1,[a.CALL_TIPS]:r,[a.GROUP_ID]:i};const o={enableCamera:e===_.VIDEO,enableMic:!0};n={...n,[a.PUSHER]:o},l.updateStore(n,A.CALL);const I=await ct(e,this);console.log(`${a.PREFIX}mini beforeCall return callStatus: ${I}.`),l.update(A.CALL,a.CALL_STATUS,I);const c=await te(t.map(d=>d.userId),this.getTim());c.length>0&&(l.update(A.CALL,a.REMOTE_USER_INFO_LIST,c),l.update(A.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,c));const L={microphone:!0,camera:e===_.VIDEO};let E=await this._tuiCallEngine.deviceCheck(L);E||(this._permissionCheckTimer&&clearInterval(this._permissionCheckTimer),this._permissionCheckTimer=setInterval(async()=>{E=await this._tuiCallEngine.deviceCheck(L),E&&this._permissionCheckTimer&&(clearInterval(this._permissionCheckTimer),l.update(A.CALL,a.CALL_STATUS,h.CALLING))},500))}async _updateCallStoreAfterCall(e,t){var i,r;if(t){l.update(A.CALL,a.IS_CLICKABLE,!0),Ze(t==null?void 0:t.roomID,t==null?void 0:t.strRoomID);const n=l.getData(A.CALL,a.CALL_MEDIA_TYPE);(r=this._chatCombine)==null||r.callTUIService({message:(i=t==null?void 0:t.data)==null?void 0:i.message}),t.pusher&&l.update(A.CALL,a.PUSHER,t.pusher),this.setSoundMode(n===_.AUDIO?v.EAR:v.SPEAKER),l.update(A.CALL,a.CALL_STATUS,h.CALLING);const o=this._getFeatureButtonDefaultState(K.Camera)===q.Close;n===_.VIDEO&&!o&&await this.openCamera(a.LOCAL_VIDEO);const I=l.getData(A.CALL,a.LOCAL_USER_INFO);l.update(A.CALL,a.LOCAL_USER_INFO,{...I,isEnter:!0}),l.update(A.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...I,isEnter:!0}),k(!0,a.AUDIO)}else this._permissionCheckTimer&&clearInterval(this._permissionCheckTimer),this._permissionCheckTimer=null,this._resetCallStore()}_getFeatureButtonDefaultState(e){var i;const{button:t}=l.getData(A.CALL,a.CUSTOM_UI_CONFIG);return(i=t==null?void 0:t[e])==null?void 0:i.state}_updateCallDuration(){const e=Math.round((Re()-this._startTimeStamp)/1e3),t=qe(e);l.update(A.CALL,a.CALL_DURATION,t)}_stopTimer(){this._timerId!==-1&&(ge.clearTask(this._timerId),this._timerId=-1)}_resetCallStore(){const e=_e();this._stopTimer();let t=Object.keys(ce).filter(n=>{switch(ce[n]){case a.CALL_STATUS:case a.LANGUAGE:case a.IS_GROUP:case a.DISPLAY_MODE:case a.VIDEO_RESOLUTION:case a.ENABLE_FLOAT_WINDOW:case a.LOCAL_USER_INFO:case a.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND:case a.IS_FORCE_USE_V2_API:case a.LOCAL_USER_INFO_EXCLUDE_VOLUMN:return!1;default:return!0}});t=t.map(n=>ce[n]),l.reset(A.CALL,t),l.getData(A.CALL,a.CALL_STATUS)!==h.IDLE&&l.reset(A.CALL,[a.CALL_STATUS],!0),l.reset(A.CALL,[a.IS_MINIMIZED],!0),l.reset(A.CALL,[a.IS_EAR_PHONE],!0),l.reset(A.CALL,[a.ENABLE_VIRTUAL_BACKGROUND],!0),l.reset(A.CALL,[a.IS_MUTE_SPEAKER],!0),l.update(A.CALL,a.LOCAL_USER_INFO,{...l.getData(A.CALL,a.LOCAL_USER_INFO),isVideoAvailable:!1,isAudioAvailable:!1}),l.update(A.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...l.getData(A.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN),isVideoAvailable:!1,isAudioAvailable:!1}),l.update(A.CALL,a.REMOTE_USER_INFO_LIST,[]),l.update(A.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,[]),l.update(A.CALL,a.CAMERA_POSITION,Y.FRONT);const r=_e();e!==r&&this.statusChanged&&this.statusChanged({oldStatus:e,newStatus:r})}async getGroupMemberList(e,t){const i=l.getData(A.CALL,a.GROUP_ID);return await Mt(i,this.getTim(),e,t)}async getGroupProfile(){const e=l.getData(A.CALL,a.GROUP_ID);return await yt(e,this.getTim())}_watchTUIStore(){l==null||l.watch(A.CALL,{[a.CALL_STATUS]:this._handleCallStatusChange})}_unwatchTUIStore(){l==null||l.unwatch(A.CALL,{[a.CALL_STATUS]:this._handleCallStatusChange})}bindTUICore(e){this._TUICore=e}getTim(){var e,t;return this._tim?this._tim:this._tuiCallEngine?((e=this._tuiCallEngine)==null?void 0:e.tim)||((t=this._tuiCallEngine)==null?void 0:t.getTim()):(console.warn(`${a.PREFIX}getTim warning: _tuiCallEngine Instance is not available.`),null)}setIsFromChat(e){this._isFromChat=e}setCurrentGroupId(e){this._currentGroupId=e}getCurrentGroupId(){return this._currentGroupId}setDefaultOfflinePushInfo(e){this._offlinePushInfo=e}getDefaultOfflinePushInfo(){const e=l.getData(A.CALL,a.LOCAL_USER_INFO);return this._offlinePushInfo?this._offlinePushInfo:{title:(e==null?void 0:e.displayUserInfo)||"",description:H("you have a new call")}}async getCallMessage(e){return await this._chatCombine.getCallKitMessage(e,this.getTim())}};D([R(),y(P.init)],f.prototype,"init",1),D([R(),y(P.call),W({engineInstance:!0})],f.prototype,"call",1),D([R(),y(P.groupCall),W({engineInstance:!0})],f.prototype,"groupCall",1),D([R(),y(P.inviteUser),W({engineInstance:!0})],f.prototype,"inviteUser",1),D([R(),y(P.joinInGroupCall),W({engineInstance:!0})],f.prototype,"joinInGroupCall",1),D([R(),W({engineInstance:!0})],f.prototype,"calls",1),D([R(),W({engineInstance:!0})],f.prototype,"join",1),D([y(P.setLanguage)],f.prototype,"setLanguage",1),D([y(P.enableFloatWindow)],f.prototype,"enableFloatWindow",1),D([y(P.setSelfInfo)],f.prototype,"setSelfInfo",1),D([y(P.setCallingBell)],f.prototype,"setCallingBell",1),D([y(P.enableMuteMode)],f.prototype,"enableMuteMode",1),D([R()],f.prototype,"accept",1),D([R()],f.prototype,"hangup",1),D([R()],f.prototype,"reject",1),D([R()],f.prototype,"openCamera",1),D([R()],f.prototype,"closeCamera",1),D([R()],f.prototype,"openMicrophone",1),D([R()],f.prototype,"closeMicrophone",1),D([R()],f.prototype,"switchScreen",1),D([R()],f.prototype,"switchCallMediaType",1),D([R()],f.prototype,"switchCamera",1),D([R()],f.prototype,"setSoundMode",1),D([R()],f.prototype,"setBlurBackground",1),D([y(P.setVideoDisplayMode)],f.prototype,"setVideoDisplayMode",1),D([y(P.setVideoResolution)],f.prototype,"setVideoResolution",1);const qt=f.getInstance(),xt="4.0.8";U.CallMediaType=_,U.CallRole=G,U.FeatureButton=K,U.LayoutMode=Se,U.NAME=a,U.STATUS=F,U.StoreName=A,U.TUICallKitServer=qt,U.TUIGlobal=Fe,U.TUIStore=l,U.Version=xt,U.VideoDisplayMode=z,U.VideoResolution=X,U.t=H,U.uiDesign=V,Object.defineProperty(U,Symbol.toStringTag,{value:"Module"})});