Files
zyt/wx/node_modules/@trtc/calls-uikit-wx-uniapp/tuicall-uikit-vue.umd.js
T
2026-03-04 15:32:30 +08:00

3 lines
91 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(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(D,C){typeof exports=="object"&&typeof module<"u"?C(exports,require("@trtc/call-engine-lite-wx"),require("@tencentcloud/tui-core-lite"),require("@tencentcloud/lite-chat/basic")):typeof define=="function"&&define.amd?define(["exports","@trtc/call-engine-lite-wx","@tencentcloud/tui-core-lite","@tencentcloud/lite-chat/basic"],C):(D=typeof globalThis<"u"?globalThis:D||self,C(D["tuicall-uikit-vue"]={},D.callEngineLiteWx,D.tuiCoreLite,D.TencentCloudChat))})(this,function(D,C,f,Re){"use strict";var n=(s=>(s.CALL="call",s.CUSTOM="custom",s))(n||{}),g=(s=>(s[s.UNKNOWN=0]="UNKNOWN",s[s.AUDIO=1]="AUDIO",s[s.VIDEO=2]="VIDEO",s))(g||{}),v=(s=>(s.UNKNOWN="unknown",s.CALLEE="callee",s.CALLER="caller",s))(v||{}),h=(s=>(s.IDLE="idle",s.CALLING="calling",s.CONNECTED="connected",s))(h||{}),ue=(s=>(s.CONTAIN="contain",s.COVER="cover",s.FILL="fill",s))(ue||{}),Le=(s=>(s.RESOLUTION_480P="480p",s.RESOLUTION_720P="720p",s.RESOLUTION_1080P="1080p",s))(Le||{});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"},je={unknown:0,audio:1,video:2};var M=(s=>(s.EAR="ear",s.SPEAKER="speaker",s))(M||{}),V=(s=>(s[s.FRONT=0]="FRONT",s[s.BACK=1]="BACK",s))(V||{}),K=(s=>(s.Camera="camera",s.Microphone="microphone",s.SwitchCamera="switchCamera",s.InviteUser="inviteUser",s))(K||{}),x=(s=>(s.Open="open",s.Close="close",s))(x||{}),he=(s=>(s.LocalInLargeView="local",s.RemoteInLargeView="remote",s))(he||{}),Y=(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))(Y||{});const Ne={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},we={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 ie={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"},i={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"},...ie,...{INNER_ATTR_KIT_INFO:"inner_attr_kit_info"}},qe="https://web.sdk.qcloud.com/component/TUIKit/assets/call.png",Ze="https://web.sdk.qcloud.com/component/TUIKit/assets/call-video-reverse.svg",ve=4;var _e=(s=>(s[s.TUI_CALL_KIT=14]="TUI_CALL_KIT",s[s.TIM_CALL_KIT=15]="TIM_CALL_KIT",s))(_e||{}),de=(s=>(s[s.NUMBER_ROOM_ID=1]="NUMBER_ROOM_ID",s[s.STRING_ROOM_ID=2]="STRING_ROOM_ID",s))(de||{});function $e(){wx.hideKeyboard&&wx.hideKeyboard({complete:()=>{}})}function et(){wx.getSystemInfoSync().platform==="devtools"&&wx.showModal({icon:"none",title:"运行环境提醒",content:"微信开发者工具不支持原生推拉流组件(即 <live-pusher> 和 <live-player> 标签),请使用真机调试或者扫码预览。",showCancel:!1})}function Fe(){$e(),et()}async function tt(s,e){try{Fe();const t={microphone:!0,camera:s===g.VIDEO};return await e._tuiCallEngine.deviceCheck(t)?h.CALLING:h.IDLE}catch(t){return console.debug(t),h.IDLE}}function at(s){(s==null?void 0:s.code)===-1002&&wx.showModal({icon:"none",title:"error",content:(s==null?void 0:s.message)||"",showCancel:!1})}function it(){wx.showModal({icon:"none",title:"权限提示",content:"当前小程序 appid 不具备 <live-pusher> 和 <live-player> 的使用权限,您将无法正常使用实时通话能力,请使用企业小程序账号申请权限后再进行开发体验",showCancel:!1})}const At={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 发起通话前需保证 TUICallKitAPI.init() 方法执行成功","can't call yourself":"不能呼叫自己","accept-error":"接通失败","accept-device-error":"接通失败,通话设备获取失败","call-error":"发起通话失败"},Ae=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting,Ge=typeof uni<"u"&&typeof uni>"u",Me=Ae||Ge,Pe=typeof uni<"u",Qe=function(){return(typeof uni<"u"||typeof window<"u")&&!Me}(),st=function(){return Ae?wx:Pe?uni:window}(),m=Qe&&window&&window.navigator&&window.navigator.userAgent||"",nt=/Android/i.test(m),rt=/(?:Windows Phone)/.test(m),ot=/(?:SymbianOS)/.test(m),lt=/iPad/i.test(m)||/iPhone/i.test(m)||/iPod/i.test(m),ye=nt||rt||ot||lt,ge=Qe&&!ye,ct=ge&&m.includes("Windows NT"),It=ge&&m.includes("Mac");let me=class ${constructor(){this.global=st,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 $.instance||($.instance=new $),$.instance}initEnv(){this.isPC=ge,this.isH5=ye,this.isWeChat=Ae,this.isApp=Ge&&!Ae,this.isUniPlatform=Pe,this.isWIN=ct,this.isMAC=It}initOfficial(e){this.isOfficial=e===1400187352||e===1400188366}};const fe=function(s){return typeof s===i.UNDEFINED},De=function(s){if(typeof s!==i.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},Ve=function(s){return typeof s===i.STRING},Ct=function(s){return typeof s===i.BOOLEAN},Et=function(s){return s!==null&&(typeof s===i.NUMBER&&!isNaN(s-0)||typeof s===i.OBJECT&&s.constructor===Number)};function Ke(s){const e=Math.floor(s/3600),t=Math.floor(s%3600/60),a=Math.floor(s%60);let A=e>9?`${e}`:`0${e}`;return A+=t>9?`:${t}`:`:0${t}`,A+=a>9?`:${a}`:`:0${a}`,A}function ut(s){if(typeof s===i.STRING)try{return!!JSON.parse(s)}catch(e){return console.debug(e),!1}return!1}const se=function(s){return!s||!ut(s)?s:JSON.parse(s)};function be(s){var e;return((e=s==null?void 0:s.message)==null?void 0:e.indexOf("is ongoing, please avoid repeated calls"))!==-1}function Lt(s){const{message:e}=s;return(e==null?void 0:e.indexOf("NotAllowedError: Permission denied"))!==-1}function Se(){return Date.now()}const ne=function(s){return typeof s===i.FUNCTION},ht=()=>{if(me.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};function _t(s,e){return s.replace(/{{\s*(\w+)(\s*,\s*[^}]+)?\s*}}/g,(t,a)=>{const A=a.trim();return e[A]!==void 0?String(e[A]):t})}const N={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"},H={"zh-cn":At};function J(s){var a,A;const e=c.getData(n.CALL,i.LANGUAGE);let t="";if(Ve(s))t=((a=H==null?void 0:H[e])==null?void 0:a[s])||"";else if(De(s)){const{key:r,options:o}=s;t=((A=H==null?void 0:H[e])==null?void 0:A[r])||"",t=_t(t,o)}return t}const dt="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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",ke="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 gt{constructor(){this._bellContext=null,this._isMuteBell=!1,this._calleeBellFilePath=ke,this._callRole=v.UNKNOWN,this._callStatus=h.IDLE,this._isPlaying=!1,this._handleAudioInterruptionBegin=async()=>{await this.stop()},this._handleAudioInterruptionEnd=async()=>{this._callStatus!==h.CALLING?await this.stop():this._delayCallback(async()=>{this._callStatus===h.CALLING&&!this._isPlaying&&await this.play()},100)},this._bellContext=wx.createInnerAudioContext({useWebAudioImplement:!1}),this._addListenBellContextEvent(),this._bellContext.loop=!0}setBellSrc(){const e=wx.getFileSystemManager();try{let t=dt;this._callRole===v.CALLEE&&(t=this._calleeBellFilePath||ke),e.readFileSync(t,"utf8",0),this._bellContext.src=t}catch(t){console.warn(`${i.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=fe(e.isMuteBell)?this._isMuteBell:e.isMuteBell}async play(){try{if(this._callStatus!==h.CALLING)return;if(this._callStatus!==h.CALLING||this._isPlaying){console.warn(`${i.PREFIX}play skipped, callStatus: ${this._callStatus}, isPlaying: ${this._isPlaying}`);return}if(this._isPlaying=!0,this.setBellSrc(),this._callRole===v.CALLEE&&!this._isMuteBell){if(!this._isPlaying||this._callStatus!==h.CALLING)return;await this._bellContext.play();return}if(this._callRole===v.CALLER){if(!this._isPlaying||this._callStatus!==h.CALLING)return;await this._bellContext.play();return}}catch(e){console.warn(`${i.PREFIX}Failed to play audio file, ${e}`)}}async stop(){try{this._isPlaying=!1,this._bellContext&&(this._bellContext.pause(),await this._delay(100),this._bellContext.stop(),this._bellContext.src="",await this._delay(100))}catch(e){console.warn(`${i.PREFIX}Failed to stop audio file, ${e}`)}}async setBellMute(e){this._callStatus!==h.CALLING&&this._callRole!==v.CALLEE||(e?await this.stop():await this.play())}destroy(){try{this._isMuteBell=!1,this._calleeBellFilePath="",this._callRole=v.UNKNOWN,this._callStatus=h.IDLE,this._isPlaying=!1,this==null||this._removeListenBellContextEvent(),this._bellContext.destroy(),this._bellContext=null}catch(e){console.warn(`${i.PREFIX}Failed to destroy, ${e}`)}}_delay(e){return new Promise(t=>setTimeout(t,e))}_delayCallback(e,t){setTimeout(e,t)}_addListenBellContextEvent(){this._bellContext.onPlay(()=>{var e,t;this._isPlaying||((e=this._bellContext)==null||e.pause(),(t=this._bellContext)==null||t.stop())}),wx.onAudioInterruptionBegin(this._handleAudioInterruptionBegin),wx.onAudioInterruptionEnd(this._handleAudioInterruptionEnd)}_removeListenBellContextEvent(){wx.offAudioInterruptionBegin(this._handleAudioInterruptionBegin),wx.offAudioInterruptionEnd(this._handleAudioInterruptionEnd)}}function w(){return function(s,e,t){const a=t.value,A=new Set;return t.value=async function(...r){var o,I;if(A.has(this)){console.warn(`${i.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{A.add(this);const l=await a.apply(this,r);return A.delete(this),l}catch(l){throw A.delete(this),l}},t.value.clearCallState=function(r){A.delete(r)},t}}function re(s){if(typeof s!="object"||s===null)return s;let e=Array.isArray(s)?[]:{};for(let t in s)s.hasOwnProperty(t)&&(e[t]=re(s[t]));return e}class ft{constructor(){this.defaultStore={callStatus:h.IDLE,callRole:v.UNKNOWN,callMediaType:g.UNKNOWN,localUserInfo:{userId:""},localUserInfoExcludeVolume:{userId:""},remoteUserInfoList:[],remoteUserInfoExcludeVolumeList:[],callerUserInfo:{userId:""},isGroup:!1,callDuration:"00:00:00",callTips:"",toastInfo:{text:""},isMinimized:!1,enableFloatWindow:!1,bigScreenUserId:"",language:ht(),isClickable:!1,deviceList:{cameraList:[],microphoneList:[],currentCamera:{},currentMicrophone:{}},showPermissionTip:!1,netWorkQualityList:[],isMuteSpeaker:!1,callID:"",groupID:"",roomID:0,roomIdType:0,cameraPosition:V.FRONT,groupCallMembers:[],displayMode:ue.COVER,videoResolution:Le.RESOLUTION_720P,showSelectUser:!1,pusher:{},player:[],isEarPhone:!1,pusherId:"",isShowEnableVirtualBackground:!1,enableVirtualBackground:!1,customUIConfig:{button:{},viewBackground:{},layoutMode:he.RemoteInLargeView},translate:J,isForceUseV2API:!1},this.store=re(this.defaultStore),this.prevStore=re(this.defaultStore)}update(e,t){switch(e){case i.CALL_TIPS:const a=this.getData(e);this.prevStore[e]=a;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((a,A)=>({...a,[A]:this.defaultStore[A]}),{});this.store={...this.defaultStore,...this.store,...t}}}let oe=class ee{constructor(){this.timerId=-1,this.storeMap={[n.CALL]:new ft},this.task={}}static getInstance(){return ee.instance||(ee.instance=new ee),ee.instance}watch(e,t,a){this.task[e]||(this.task[e]={});const A=this.task[e];Object.keys(t).forEach(r=>{const o=t[r];A[r]||(A[r]=new Map),A[r].set(o,1);const{notifyRangeWhenWatch:I}=a||{};if(I===i.ALL&&this.notify(e,r),I===i.MYSELF){const l=this.getData(e,r);o.call(this,l)}})}unwatch(e,t){if(!this.task[e])return;const a=this.task[e];Object.keys(t).forEach(A=>{a[A].delete(t[A])})}update(e,t,a){var A;(Ve(a)||Et(a)||Ct(a))&&this.storeMap[e].store[t]===a||((A=this.storeMap[e])==null||A.update(t,a),this.notify(e,t))}getPrevData(e,t){var a;return(a=this.storeMap[e])==null?void 0:a.getPrevData(t)}getData(e,t){var a;return(a=this.storeMap[e])==null?void 0:a.getData(t)}notify(e,t){if(!this.task[e])return;const a=this.task[e];if(a[t]){const A=a[t],r=this.getData(e,t);for(const[o]of A.entries())o.call(this,r)}}reset(e,t=[],a=!1){if(e in this.storeMap){const A=this.storeMap[e];t.length===0&&(t=Object.keys(A==null?void 0:A.store)),A.reset(t),a&&t.forEach(r=>{this.notify(e,r)})}}updateStore(e,t){const a=t||n.CALL;Object.keys(e).forEach(A=>{this.update(a,A,e[A])})}};const S=oe.getInstance();function le(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 Dt(s,e){var a,A,r,o,I;let t=le(s,i.LOCAL_VIDEO);try{if(!e)return t;const l=await e.getMyProfile(),L=S==null?void 0:S.getData(n.CALL,i.LOCAL_USER_INFO);return(l==null?void 0:l.code)===0&&(t={...t,...L,userId:(a=l==null?void 0:l.data)==null?void 0:a.userID,nick:(A=l==null?void 0:l.data)==null?void 0:A.nick,avatar:(r=l==null?void 0:l.data)==null?void 0:r.avatar,displayUserInfo:((o=l==null?void 0:l.data)==null?void 0:o.nick)||((I=l==null?void 0:l.data)==null?void 0:I.userID)}),t}catch(l){return console.error(`${i.PREFIX}getMyProfile failed, error: ${l}.`),t}}async function W(s,e){let t=s.map(a=>le(a));try{if(!e)return t;if(e!=null&&e.getFriendProfile){const a=await e.getFriendProfile({userIDList:s});if(a.code===0){const{friendList:A=[],failureUserIDList:r=[]}=a.data;let o=r.map(u=>u.userID);if(r.length>0){const u=await e.getUserProfile({userIDList:r.map(_=>_.userID)});(u==null?void 0:u.code)===0&&(o=(u==null?void 0:u.data)||[])}const I=S==null?void 0:S.getData(n.CALL,i.REMOTE_USER_INFO_LIST),l=A.map(u=>u.userID),L=o.map(u=>u.userID);t=s.map(u=>{var j,q,Z,X,Xe,xe,We;const _=le(u),d=l.indexOf(u),U=L.indexOf(u);let T="",O="",Q="",B="";d!==-1&&(T=((j=A[d])==null?void 0:j.remark)||"",O=((Z=(q=A[d])==null?void 0:q.profile)==null?void 0:Z.nick)||"",Q=T||O||_.userId||"",B=((Xe=(X=A[d])==null?void 0:X.profile)==null?void 0:Xe.avatar)||""),U!==-1&&(O=((xe=o[U])==null?void 0:xe.nick)||"",Q=O||_.userId||"",B=((We=o[U])==null?void 0:We.avatar)||"");const Ee=I.find(mt=>mt.userId===u)||{};return{..._,...Ee,remark:T,nick:O,displayUserInfo:Q,avatar:B}})}return t}else{const a=await e.getUserProfile({userIDList:s}),A=S==null?void 0:S.getData(n.CALL,i.REMOTE_USER_INFO_LIST);return t=s.map(r=>{const o=le(r),I=A.find(L=>L.userId===r)||{},l=(a.data||[]).find(L=>L.userID===r)||{};return{...o,...I,nick:(l==null?void 0:l.nick)||"",displayUserInfo:(l==null?void 0:l.nick)||r,avatar:(l==null?void 0:l.avatar)||""}}),t}}catch(a){return console.error(`${i.PREFIX}getRemoteUserProfile failed, error: ${a}.`),t}}function ce(){const s=S.getData(n.CALL,i.CALL_STATUS);if(s===h.IDLE)return F.IDLE;const e=S.getData(n.CALL,i.IS_GROUP);if(s===h.CALLING)return e?F.DIALING_GROUP:F.DIALING_C2C;const t=S.getData(n.CALL,i.CALL_MEDIA_TYPE);return e?t===g.AUDIO?F.CALLING_GROUP_AUDIO:F.CALLING_GROUP_VIDEO:t===g.AUDIO?F.CALLING_C2C_AUDIO:F.CALLING_C2C_VIDEO}async function St(s,e,t,a){let A=[];try{const r=await e.getGroupMemberList({groupID:s,count:t,offset:a});if(r.code===0)return r.data.memberList||A}catch(r){return console.error(`${i.PREFIX}getGroupMember failed, error: ${r}.`),A}}async function Ut(s,e){let t={};try{return(await e.getGroupProfile({groupID:s})).data.group||t}catch(a){return console.warn(`${i.PREFIX}getGroupProfile failed, error: ${a}.`),t}}function Ye(s,e){s===0&&e?(S.update(n.CALL,i.ROOM_ID,e),S.update(n.CALL,i.ROOM_ID_TYPE,de.STRING_ROOM_ID)):(S.update(n.CALL,i.ROOM_ID,s),S.update(n.CALL,i.ROOM_ID_TYPE,de.NUMBER_ROOM_ID))}function G(s){return s||{}}function Ue(s){if(s.length===0)return;let e=S.getData(n.CALL,i.REMOTE_USER_INFO_LIST);s.forEach(t=>{e=e.filter(a=>a.userId!==t)}),S.update(n.CALL,i.REMOTE_USER_INFO_LIST,e),S.update(n.CALL,i.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,e)}function Te(s,e,t){let a="";Lt(s)&&(e===g.AUDIO&&(a=N.NO_MICROPHONE_DEVICE_PERMISSION),e===g.VIDEO&&(a=N.NO_CAMERA_DEVICE_PERMISSION),a&&S.update(n.CALL,i.TOAST_INFO,{content:a,type:i.ERROR}),console.error(`${i.PREFIX}call failed, error: ${s.message}.`))}function b(s,e){let t=S.getData(n.CALL,i.LOCAL_USER_INFO);e===i.AUDIO&&(t={...t,isAudioAvailable:s}),e===i.VIDEO&&(t={...t,isVideoAvailable:s}),S.update(n.CALL,i.LOCAL_USER_INFO,t),S.update(n.CALL,i.LOCAL_USER_INFO_EXCLUDE_VOLUMN,t)}class Ie{static generateTaskID(){return this.currentTaskID++}static run(e=i.TIMEOUT,t,a){e===i.INTERVAL?a={delay:2e3,count:0,backgroundTask:!0,...a}:a={delay:2e3,count:0,backgroundTask:!0,...a},De(t)&&(a={...a,...t}),ne(e)&&(t=e,e=i.TIMEOUT);const A={taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,taskName:e,callback:t,...a};return this.taskMap.set(A.taskID,A),e===i.INTERNAL?this.interval(A):this.timeout(A),A.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:a,onVisibilitychange:A}=this.taskMap.get(e);return t&&clearInterval(t),a&&clearTimeout(a),A&&document.removeEventListener("visibilitychange",A),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}}Ie.taskMap=new Map,Ie.currentTaskID=1;const Tt=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(De(s)){for(const e in s)if(Object.prototype.hasOwnProperty.call(s,e))return!1;return!0}return!1},Be="_local_user_id";class k{constructor(){this._viewConfig={viewBackground:{local:{},remote:{}}},this._isSetViewBackgroundConfig={remote:!1,local:!1},this._tuiCallEngine=null,this._tuiStore=null}static getInstance(){return k.instance||(k.instance=new k),k.instance}_updateViewBackground(){var a,A,r;const e=(a=this._tuiStore)==null?void 0:a.getData(n.CALL,i.CUSTOM_UI_CONFIG),{userId:t}=(A=this._tuiStore)==null?void 0:A.getData(n.CALL,i.LOCAL_USER_INFO);Object.keys(this._viewConfig.viewBackground.remote).includes(t)&&delete this._viewConfig.viewBackground.remote[t],(r=this._tuiStore)==null||r.update(n.CALL,i.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,a;if(e==="local"){const{userId:A}=(t=this._tuiStore)==null?void 0:t.getData(n.CALL,i.LOCAL_USER_INFO);if(Object.keys(this._viewConfig.viewBackground.remote).includes(A)&&(delete this._viewConfig.viewBackground.remote[A],this._updateViewBackground()),!this._isSetViewBackgroundConfig.local)return;const r=this._viewConfig.viewBackground.local,o=r[A]||r[Be];r[A]=r[Be],this._viewConfig.viewBackground.local={[A]:o},this._updateViewBackground()}else{let A=this._viewConfig.viewBackground.remote;this._isSetViewBackgroundConfig.remote&&Object.keys(A).includes("*")&&(((a=this._tuiStore)==null?void 0:a.getData(n.CALL,i.REMOTE_USER_INFO_LIST)).map(I=>I.userId).forEach(I=>{Object.keys(A).includes(I)||(A[I]=A["*"])}),this._viewConfig.viewBackground.remote=A,this._updateViewBackground())}}hideFeatureButton(e){var a,A,r,o,I;(A=(a=this._tuiCallEngine)==null?void 0:a.reportLog)==null||A.call(a,{name:"TUICallKit.hideFeatureButton.start",data:{buttonName:e}});const t=(r=this._tuiStore)==null?void 0:r.getData(n.CALL,i.CUSTOM_UI_CONFIG);(I=this._tuiStore)==null||I.update(n.CALL,i.CUSTOM_UI_CONFIG,{...t,button:{...t.button,[e]:{...((o=t.button)==null?void 0:o[e])||{},show:!1}}})}setLocalViewBackgroundImage(e){var a,A,r;(A=(a=this._tuiCallEngine)==null?void 0:a.reportLog)==null||A.call(a,{name:"TUICallKit.setLocalViewBackgroundImage.start",data:{url:e}}),this._isSetViewBackgroundConfig.local=!0;let{userId:t}=(r=this._tuiStore)==null?void 0:r.getData(n.CALL,i.LOCAL_USER_INFO);Tt(t)&&(t=Be),this._viewConfig.viewBackground.local={[t]:e},this._updateViewBackground()}setRemoteViewBackgroundImage(e,t){var a,A;(A=(a=this._tuiCallEngine)==null?void 0:a.reportLog)==null||A.call(a,{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 a,A;(A=(a=this._tuiCallEngine)==null?void 0:a.reportLog)==null||A.call(a,{name:"TUICallKit.setLayoutMode.start",data:{layoutMode:e}});const t=this._tuiStore.getData(n.CALL,i.CUSTOM_UI_CONFIG);this._tuiStore.update(n.CALL,i.CUSTOM_UI_CONFIG,{...t,layoutMode:e})}setCameraDefaultState(e){var a,A;(A=(a=this._tuiCallEngine)==null?void 0:a.reportLog)==null||A.call(a,{name:"TUICallKit.setCameraDefaultState.start",data:{isOpen:e}});const t=re(this._tuiStore.getData(n.CALL,i.CUSTOM_UI_CONFIG));Object.keys(t.button).includes(K.Camera)||(t.button[K.Camera]={}),t.button[K.Camera].state=e?x.Open:x.Close,this._tuiStore.update(n.CALL,i.CUSTOM_UI_CONFIG,t)}}const Ce=oe.getInstance(),P={audioCall:()=>"Voice call",videoCall:()=>"Video call",switchToAudio:()=>"Switch audio call",switchToVideo:()=>"Switch video call",hangup:({callDuration:s})=>`${J("Call duration")}${s}`};class z{constructor(e){var t,a,A;this._callService=e.callService,f.TUICore.registerEvent(f.TUIConstants.TUILogin.EVENT.LOGIN_STATE_CHANGED,f.TUIConstants.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS,this),(t=f.TUIConstants.TUIChat)!=null&&t.EVENT&&f.TUICore.registerEvent((a=f.TUIConstants.TUIChat.EVENT)==null?void 0:a.CHAT_STATE_CHANGED,(A=f.TUIConstants.TUIChat.EVENT_SUB_KEY)==null?void 0:A.CHAT_OPENED,this),f.TUICore.registerService(f.TUIConstants.TUICalling.SERVICE.NAME,this),f.TUICore.registerExtension(f.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||{};f.TUICore.callService({serviceName:f.TUIConstants.TUIChat.SERVICE.NAME,method:f.TUIConstants.TUIChat.SERVICE.METHOD.UPDATE_MESSAGE_LIST,params:{message:t}})}onGetExtension(e,t){var a,A;if(e===f.TUIConstants.TUIChat.EXTENSION.INPUT_MORE.EXT_ID){if((A=(a=this._callService.getTUICallEngineInstance())==null?void 0:a.reportLog)==null||A.call(a,{name:"TUICallKit.onGetExtension",data:{extensionID:e,params:t}}),fe(t))return[];if([f.TUIConstants.TUIChat.TYPE.ROOM,f.TUIConstants.TUIChat.TYPE.CUSTOMER_SERVICE].includes(t.chatType))return[];let r=[];const o={weight:1e3,text:"语音通话",icon:qe,data:{name:"voiceCall"},listener:{onClicked:async l=>await this._handleTUICoreOnClick(l,l.type||g.AUDIO)}},I={weight:900,text:"视频通话",icon:Ze,data:{name:"videoCall"},listener:{onClicked:async l=>await this._handleTUICoreOnClick(l,l.type||g.VIDEO)}};return t!=null&&t.chatType?r=[o,I]:(!(t!=null&&t.filterVoice)&&r.push(o),!(t!=null&&t.filterVideo)&&r.push(I)),r}}async onCall(e,t){e===f.TUIConstants.TUICalling.SERVICE.METHOD.START_CALL&&await this._handleTUICoreOnClick(t,t.type)}async onNotifyEvent(e,t,a){var A,r,o,I,l,L,u,_;try{if(e===f.TUIConstants.TUILogin.EVENT.LOGIN_STATE_CHANGED)if(t===f.TUIConstants.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS){const{chat:d,userID:U,userSig:T,SDKAppID:O}=f.TUILogin.getContext();await((A=this._callService)==null?void 0:A.init({tim:d,userID:U,userSig:T,sdkAppID:O,isFromChat:!0,component:_e.TIM_CALL_KIT})),(r=this._callService)==null||r.setIsFromChat(!0),(o=this._callService)==null||o.setLogLevel(pe.NORMAL),this._addListenChatEvent()}else t===f.TUIConstants.TUILogin.EVENT_SUB_KEY.USER_LOGOUT_SUCCESS&&(this._removeListenChatEvent(),await((I=this._callService)==null?void 0:I.destroyed()));if((l=f.TUIConstants.TUIChat)!=null&&l.EVENT&&e===f.TUIConstants.TUIChat.EVENT.CHAT_STATE_CHANGED&&t===f.TUIConstants.TUIChat.EVENT_SUB_KEY.CHAT_OPENED){if((L=this._callService)==null||L.setCurrentGroupId((a==null?void 0:a.groupID)||""),Ce.getData(n.CALL,i.CALL_STATUS)!==h.IDLE)return;const d=(u=this._callService)==null?void 0:u.getCurrentGroupId(),U=d?await this.getGroupAttributes((_=this._callService)==null?void 0:_.getTim(),d):{};await this.updateStoreBasedOnGroupAttributes(U)}}catch(d){console.error(`${i.PREFIX}TUICore onNotifyEvent failed, error: ${d}.`)}}async updateStoreBasedOnGroupAttributes(e){var t,a,A,r;(A=(a=(t=this._callService)==null?void 0:t.getTUICallEngineInstance())==null?void 0:a.reportLog)==null||A.call(a,{name:"TUICallKit.getJoinGroupCallInfo.success",data:{groupAttributes:e}});try{const{call_id:o="",group_id:I="",room_id:l=0,room_id_type:L=0,call_media_type:u=i.UNKNOWN,user_list:_}=e[i.INNER_ATTR_KIT_INFO]?JSON.parse(e[i.INNER_ATTR_KIT_INFO]):{};let d=(_||[]).map(T=>T.userid);d.length>0&&(d=await W(d,(r=this._callService)==null?void 0:r.getTim()));const U={[i.CALL_ID]:o,[i.GROUP_ID]:I,[i.GROUP_CALL_MEMBERS]:d,[i.ROOM_ID]:l,[i.CALL_MEDIA_TYPE]:je[u],[i.ROOM_ID_TYPE]:L};Ce.updateStore(U,n.CALL)}catch(o){console.warn(`${i.PREFIX}updateStoreBasedOnGroupAttributes fail, error: ${o}`)}}async getGroupAttributes(e,t){if(!t)return{};try{const{data:a}=await e.getGroupAttributes({groupID:t,keyList:[]});return(a==null?void 0:a.groupAttributes)||{}}catch(a){return console.warn(`${i.PREFIX}getGroupAttributes fail: ${a}`),{}}}isLineBusy(e){var A;const t=se(e.payload.data),a=se(t==null?void 0:t.data);return(a==null?void 0:a.line_busy)==="line_busy"||(a==null?void 0:a.line_busy)===""||((A=a==null?void 0:a.data)==null?void 0:A.message)==="lineBusy"}async getCallKitMessage(e,t){var d,U,T,O;const a=se(e.payload.data);if((a==null?void 0:a.businessID)!==1)return{};let A="";const r=se(a==null?void 0:a.data),o=r.call_type,I=a.inviteeList,l=(d=r==null?void 0:r.data)==null?void 0:d.inviter,L=Ce.getData(n.CALL,i.LOCAL_USER_INFO).userId,u=l===L,_=(U=r==null?void 0:r.data)==null?void 0:U.cmd;switch(a==null?void 0:a.actionType){case Y.INVITE:{A=P[_]({callDuration:Ke(r==null?void 0:r.call_end)});break}case Y.CANCEL_INVITE:A=u?"Call Cancel":"Other Side Cancel";break;case Y.ACCEPT_INVITE:["switchToAudio","switchToVideo"].includes(_)?A=(T=P==null?void 0:P[_])==null?void 0:T.call(P):A=J("Answered");break;case Y.REJECT_INVITE:this.isLineBusy(e)?A=u?"Line Busy":"Other Side Line Busy":A=u?"Other Side Decline":"Decline";break;case Y.INVITE_TIMEOUT:["switchToAudio","switchToVideo"].includes(_)?A=(O=P==null?void 0:P[_])==null?void 0:O.call(P):A=u?"Other Side No Answer":"No answer";break}return{messageCardContent:A,callMediaType:o,inviteeList:I}}_addListenChatEvent(){var e,t;if(!((e=this._callService)!=null&&e.getTim())){console.warn(`${i.PREFIX}add tim event listener failed, tim is empty.`);return}(t=this._callService)==null||t.getTim().on(Re.EVENT.GROUP_ATTRIBUTES_UPDATED,this._handleGroupAttributesUpdated,this)}_removeListenChatEvent(){var e,t;if(!((e=this._callService)!=null&&e.getTim())){console.warn(`${i.PREFIX}remove tim event listener failed, tim is empty.`);return}(t=this._callService)==null||t.getTim().off(Re.EVENT.GROUP_ATTRIBUTES_UPDATED,this._handleGroupAttributesUpdated,this)}async _handleTUICoreOnClick(e,t){var a;try{const{groupID:A,userIDList:r=[],version:o="",...I}=e;await((a=this._callService)==null?void 0:a.calls({chatGroupID:A,userIDList:r,type:t,...I}))}catch(A){e!=null&&e.version||console.warn("Please upgrade to the latest Chat UIKit components."),console.debug(A)}}async _handleGroupAttributesUpdated(e){var r;if(Ce.getData(n.CALL,i.CALL_STATUS)!==h.IDLE)return;const t=(e==null?void 0:e.data)||{},{groupID:a="",groupAttributes:A={}}=t;a===((r=this._callService)==null?void 0:r.getCurrentGroupId())&&await this.updateStoreBasedOnGroupAttributes(A)}}const Bt=0,Ot=1,He=2;function Rt({retryFunction:s,settings:e,onError:t,onRetrying:a,onRetryFailed:A,context:r}){return function(...o){const I=e.retries||5;let l=0,L=-1,u=Bt;const _=async(d,U)=>{const T=r||this;try{const O=await s.apply(T,o);l=0,d(O)}catch(O){const Q=()=>{clearTimeout(L),l=0,u=He,U(O)},B=()=>{u!==He&&l<I?(l++,u=Ot,ne(a)&&a.call(T,l,Q),L=setTimeout(()=>{L=-1,_(d,U)},fe(e.timeout)?1e3:e.timeout)):(Q(),ne(A)&&A.call(T,O))};ne(t)?t.call(T,O,B,U,o):B()}};return new Promise(_)}}function Nt(s){return function(e,t,a){const{retries:A=5,timeout:r=2e3,onError:o,onRetrying:I,onRetryFailed:l}=s,L=Rt({retryFunction:a.value,settings:{retries:A,timeout:r},onError:o,onRetrying:I,onRetryFailed:l,context:null});return a.value=function(...u){return L.apply(this,u)},a}}var wt=Object.defineProperty,pt=Object.getOwnPropertyDescriptor,vt=(s,e,t,a)=>{for(var A=a>1?void 0:a?pt(e,t):e,r=s.length-1,o;r>=0;r--)(o=s[r])&&(A=(a?o(e,t,A):o(A))||A);return a&&A&&wt(e,t,A),A};const E=oe.getInstance(),Ft=k.getInstance(),Je=class te{constructor(e){this._callService=e.callService}static getInstance(e){return te.instance||(te.instance=new te(e)),te.instance}addListenTuiCallEngineEvent(){var t,a;const e=(t=this._callService)==null?void 0:t.getTUICallEngineInstance();if(!e){console.warn(`${i.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),(a=C.TUICallEvent)!=null&&a.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.ON_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,a;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),(a=C.TUICallEvent)!=null&&a.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 a,A,r;const e=E.getData(n.CALL,i.CALL_ROLE);E.getData(n.CALL,i.CALL_STATUS)===h.CALLING&&e===v.CALLER&&((A=(a=this._callService)==null?void 0:a._bellContext)==null||A.stop(),E.update(n.CALL,i.CALL_STATUS,h.CONNECTED),(r=this._callService)==null||r.startTimer())}_unNormalEventsManager(e,t){var r,o;console.log(`${i.PREFIX}${t} event data: ${JSON.stringify(e)}.`);const a=E.getData(n.CALL,i.IS_GROUP),A=E.getData(n.CALL,i.REMOTE_USER_INFO_LIST);switch(t){case C.TUICallEvent.REJECT:case C.TUICallEvent.LINE_BUSY:{const{userID:I}=G(e);let l=t===C.TUICallEvent.REJECT?N.OTHER_SIDE_REJECT_CALL:N.OTHER_SIDE_LINE_BUSY,L="";a&&(L=(A.find(u=>u.userId===I)||{}).displayUserInfo||I,l=t===C.TUICallEvent.REJECT?N.REJECT_CALL:N.IN_BUSY),E.update(n.CALL,i.TOAST_INFO,{content:{key:l,options:{userList:L}}}),I&&Ue([I]),E.getData(n.CALL,i.REMOTE_USER_INFO_LIST).length===0&&((r=this._callService)==null||r._resetCallStore());break}case C.TUICallEvent.NO_RESP:{const{userIDList:I=[]}=G(e),l=a?N.TIMEOUT:N.CALL_TIMEOUT,L=I.map(u=>(A.find(d=>d.userId===u)||{}).displayUserInfo||u);E.update(n.CALL,i.TOAST_INFO,{content:{key:l,options:{userList:L.join()}}}),I.length>0&&Ue(I);break}case C.TUICallEvent.ON_CALL_NOT_CONNECTED:{(o=this._callService)==null||o._resetCallStore();break}}}_handleError(e){var o;const{code:t,message:a}=e||{},A=Object.values(Ne).indexOf(t);let r="";if(A!==-1){const I=Object.keys(Ne)[A];r=J(we[I]),r&&E.update(n.CALL,i.TOAST_INFO,{content:we[I],type:i.ERROR})}(o=this._callService)==null||o.executeExternalAfterCalling(),console.error(`${i.PREFIX}_handleError, errorCode: ${t}; errorMessage: ${r||a}.`)}async _handleNewInvitationReceived(e){var Ee,j,q,Z;console.log(`${i.PREFIX}onCallReceived event data: ${JSON.stringify(e)}.`);const{callerId:t="",callMediaType:a,inviteData:A={},calleeIdList:r=[],chatGroupID:o="",roomID:I,strRoomID:l}=G(e),L=E.getData(n.CALL,i.LOCAL_USER_INFO),u=[t,...r.filter(X=>X!==L.userId)],_=a||A.callType,d=_===g.AUDIO?N.CALLEE_CALLING_AUDIO_MSG:N.CALLEE_CALLING_VIDEO_MSG;let U={[i.CALL_ROLE]:v.CALLEE,[i.IS_GROUP]:!!o||r.length>1,[i.CALL_STATUS]:h.CALLING,[i.CALL_MEDIA_TYPE]:_,[i.CALL_TIPS]:d,[i.CALLER_USER_INFO]:{userId:t},[i.GROUP_ID]:o};Fe();const T={enableCamera:_===g.VIDEO,enableMic:!0};U={...U,[i.PUSHER]:T},_===g.VIDEO&&this._callService.openCamera(i.LOCAL_VIDEO),this._callService.openMicrophone();const O={microphone:!0,camera:_===g.VIDEO};this._callService._preDevicePermission=await this._callService._tuiCallEngine.deviceCheck(O),Ye(I,l),E.updateStore(U,n.CALL),(Ee=this._callService)==null||Ee.executeExternalBeforeCalling(),(j=this._callService)!=null&&j.statusChanged&&((q=this._callService)==null||q.statusChanged({oldStatus:F.IDLE,newStatus:F.BE_INVITED}));const Q=await W(u,(Z=this._callService)==null?void 0:Z.getTim()),[B]=Q.filter(X=>X.userId===t);Q.length>0&&E.updateStore({[i.REMOTE_USER_INFO_LIST]:Q,[i.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]:Q,[i.CALLER_USER_INFO]:{userId:t,nick:(B==null?void 0:B.nick)||"",avatar:(B==null?void 0:B.avatar)||"",displayUserInfo:(B==null?void 0:B.remark)||(B==null?void 0:B.nick)||t}},n.CALL)}async _handleOnCallBegin(e){var t,a;(a=(t=this._callService)==null?void 0:t._bellContext)==null||a.stop(),this._callerChangeToConnected(),E.update(n.CALL,i.CALL_TIPS,{text:"answered",duration:2e3}),await this._callService.openMicrophone(),console.log(`${i.PREFIX}accept event data: ${JSON.stringify(e)}.`)}async _handleUserEnter(e){const{userID:t,data:a}=G(e);t&&E.getData(n.CALL,i.CALL_ROLE)===v.CALLEE&&E.getData(n.CALL,i.CALL_STATUS)===h.CALLING&&(this._callService._handleAcceptResponse({}),this._callService._cleanupAvoidRepeatCallState("accept")),this._callerChangeToConnected(),a!=null&&a.playerList&&E.update(n.CALL,i.PLAYER,a.playerList),await this._addUserToRemoteUserInfoList(t);let A=E.getData(n.CALL,i.REMOTE_USER_INFO_LIST);A=A.map(r=>(r.userId===t&&(r.isEnter=!0),r)),A.length>0&&(E.update(n.CALL,i.REMOTE_USER_INFO_LIST,A),E.update(n.CALL,i.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,A),Ft.updateViewBackgroundUserId("remote")),console.log(`${i.PREFIX}userEnter event data: ${JSON.stringify(e)}.`)}_handleUserLeave(e){console.log(`${i.PREFIX}userLeave event data: ${JSON.stringify(e)}.`);const{data:t,userID:a}=G(e);if(t!=null&&t.playerList&&E.update(n.CALL,i.PLAYER,t.playerList),E.getData(n.CALL,i.IS_GROUP)){const r=(E.getData(n.CALL,i.REMOTE_USER_INFO_LIST).find(o=>o.userId===a)||{}).displayUserInfo||a;E.update(n.CALL,i.TOAST_INFO,{content:{key:N.END_CALL,options:{userList:r}}})}a&&Ue([a])}_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,a,A;(a=(t=this==null?void 0:this._callService)==null?void 0:t._cleanupAvoidRepeatCallState)==null||a.call(t),(A=this._callService)==null||A.executeExternalAfterCalling(),this._unNormalEventsManager(e,C.TUICallEvent.ON_CALL_NOT_CONNECTED)}async _handleOnUserInviting(e){const{userID:t}=G(e);t&&t!==E.getData(n.CALL,i.LOCAL_USER_INFO).userId&&await this._addUserToRemoteUserInfoList(t)}_handleCallingEnd(e){var t,a;console.log(`${i.PREFIX}callEnd event data: ${JSON.stringify(e)}.`),(t=this._callService)==null||t.executeExternalAfterCalling(),(a=this._callService)==null||a._resetCallStore()}async _handleSDKReady(e){var a;let t=E.getData(n.CALL,i.LOCAL_USER_INFO);t=await Dt(t.userId,(a=this._callService)==null?void 0:a.getTim()),E.update(n.CALL,i.LOCAL_USER_INFO,t),E.update(n.CALL,i.LOCAL_USER_INFO_EXCLUDE_VOLUMN,t)}_handleKickedOut(e){var t,a,A;console.log(`${i.PREFIX}kickOut event data: ${JSON.stringify(e)}.`),(t=this._callService)!=null&&t.kickedOut&&((a=this._callService)==null||a.kickedOut(e)),E.update(n.CALL,i.CALL_TIPS,N.KICK_OUT),(A=this._callService)==null||A._resetCallStore()}_messageSentByMe(e){var a,A;const t=e==null?void 0:e.data;(a=this._callService)!=null&&a.onMessageSentByMe&&((A=this._callService)==null||A.onMessageSentByMe(t))}_handleCallMessage(e){const t=G(e);this._callService._chatCombine.callTUIService({message:t})}_handleCallTypeChange(e){var A;const{newCallType:t,type:a}=G(e);E.update(n.CALL,i.CALL_MEDIA_TYPE,t||a),(A=this._callService)==null||A.setSoundMode(M.EAR)}_handleNetworkQuality(e){const{networkQualityList:t=[]}=G(e);E.update(n.CALL,i.NETWORK_STATUS,t);const a=E.getData(n.CALL,i.IS_GROUP),A=E.getData(n.CALL,i.LOCAL_USER_INFO),r=E.getData(n.CALL,i.REMOTE_USER_INFO_LIST);if(!a){if(t.find(l=>{var L;return((L=r[0])==null?void 0:L.userId)===(l==null?void 0:l.userId)&&(l==null?void 0:l.quality)>=ve})){E.update(n.CALL,i.CALL_TIPS,N.REMOTE_NETWORK_IS_POOR);return}if(t.find(l=>(A==null?void 0:A.userId)===(l==null?void 0:l.userId)&&(l==null?void 0:l.quality)>=ve)){E.update(n.CALL,i.CALL_TIPS,N.LOCAL_NETWORK_IS_POOR);return}}}async _startRemoteView(e){var t;if(!e){console.warn(`${i.PREFIX}_startRemoteView userID is empty`);return}try{const a=E.getData(n.CALL,i.DISPLAY_MODE);await((t=this._callService)==null?void 0:t.getTUICallEngineInstance().startRemoteView({userID:e,videoViewDomID:`${e}_0`,options:{objectFit:a}}))}catch(a){return console.error(`${i.PREFIX}_startRemoteView error: ${a}.`),Promise.reject(a)}}_setRemoteUserInfoAudioVideoAvailable(e,t,a){let A=E.getData(n.CALL,i.REMOTE_USER_INFO_LIST);A=A.map(r=>{if(r.userId===a){if(t===i.AUDIO)return{...r,isAudioAvailable:e};if(t===i.VIDEO)return{...r,isVideoAvailable:e}}return r}),A.length>0&&(E.update(n.CALL,i.REMOTE_USER_INFO_LIST,A),E.update(n.CALL,i.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,A))}async _handleUserVideoAvailable(e){const{userID:t,isVideoAvailable:a}=G(e);console.log(`${i.PREFIX}_handleUserVideoAvailable event data: ${JSON.stringify(e)}.`),this._setRemoteUserInfoAudioVideoAvailable(a,i.VIDEO,t);try{a&&await this._startRemoteView(t)}catch(A){console.error(`${i.PREFIX}_startRemoteView failed, error: ${A}.`)}}_handleUserAudioAvailable(e){const{userID:t,isAudioAvailable:a}=G(e);console.log(`${i.PREFIX}_handleUserAudioAvailable event data: ${JSON.stringify(e)}.`),this._setRemoteUserInfoAudioVideoAvailable(a,i.AUDIO,t)}_handleUserVoiceVolume(e){try{const{volumeMap:t}=G(e);if((t||[]).length===0)return;const a=E.getData(n.CALL,i.LOCAL_USER_INFO);let A=E.getData(n.CALL,i.REMOTE_USER_INFO_LIST);const[r]=t.filter(l=>l.userId===a.userId),o=t.reduce((l,L)=>L.userId!==a.userId?{...l,[L.userId]:L.audioVolume}:l,{});a.volume=r.audioVolume,A=A.map(l=>({...l,volume:o[l.userId]}));const I={[i.LOCAL_USER_INFO]:a,[i.REMOTE_USER_INFO_LIST]:A};E.updateStore(I,n.CALL)}catch(t){console.debug(t)}}_handleDeviceUpdate(e){const{cameraList:t,microphoneList:a,speakerList:A,currentCamera:r,currentMicrophone:o,currentSpeaker:I}=e;E.update(n.CALL,i.DEVICE_LIST,{cameraList:t,microphoneList:a,speakerList:A,currentCamera:r,currentMicrophone:o,currentSpeaker:I})}_handleUserUpdate(e){const t=G(e);t!=null&&t.pusher&&E.update(n.CALL,i.PUSHER,t.pusher),t!=null&&t.playerList&&E.update(n.CALL,i.PLAYER,t.playerList)}async _addUserToRemoteUserInfoList(e){var A;let t=E.getData(n.CALL,i.REMOTE_USER_INFO_LIST);if(!t.find(r=>(r==null?void 0:r.userId)===e)){t.push({userId:e}),E.update(n.CALL,i.REMOTE_USER_INFO_LIST,t),E.update(n.CALL,i.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,t);const[r]=await W([e],(A=this._callService)==null?void 0:A.getTim());t=E.getData(n.CALL,i.REMOTE_USER_INFO_LIST),t.forEach(o=>{(o==null?void 0:o.userId)===e&&(o=Object.assign(o,r))}),E.update(n.CALL,i.REMOTE_USER_INFO_LIST,t),E.update(n.CALL,i.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,t)}}};vt([Nt({retries:5,timeout:200,onRetrying(s){console.warn(`${i.PREFIX}_startRemoteView, retrying [${s}]`)}})],Je.prototype,"_startRemoteView",1);let Gt=Je;var Mt=Object.defineProperty,Pt=Object.getOwnPropertyDescriptor,p=(s,e,t,a)=>{for(var A=a>1?void 0:a?Pt(e,t):e,r=s.length-1,o;r>=0;r--)(o=s[r])&&(A=(a?o(e,t,A):o(A))||A);return a&&A&&Mt(e,t,A),A};const Oe=me.getInstance(),c=oe.getInstance(),y=k.getInstance();y.setTUIStore(c);const ze="4.2.7",R=class ae{constructor(){this._tim=null,this._TUICore=null,this._timerId=-1,this._startTimeStamp=Se(),this._bellContext=null,this._isFromChat=!1,this._currentGroupId="",this._offlinePushInfo=null,this._permissionCheckTimer=null,this._chatCombine=null,this._engineEventHandler=null,this._isInitialized=!1,this._handleCallStatusChange=async e=>{var t,a,A,r,o,I;try{const l={callRole:c.getData(n.CALL,i.CALL_ROLE),callStatus:c.getData(n.CALL,i.CALL_STATUS)};if((a=(t=this._tuiCallEngine)==null?void 0:t.reportLog)==null||a.call(t,{name:"TUICallkit._handleCallStatusChange.start",data:{bellParams:l}}),this._bellContext.setBellProperties(l),e===h.CALLING)(A=this==null?void 0:this._bellContext)==null||A.play();else if((o=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||o.call(r,{name:"TUICallkit._bellContext.stop"}),(I=this==null?void 0:this._bellContext)==null||I.stop(),e===h.CONNECTED){const L=c.getData(n.CALL,i.IS_GROUP),u=c.getData(n.CALL,i.CALL_MEDIA_TYPE),_=c.getData(n.CALL,i.REMOTE_USER_INFO_LIST),d=L?F.DIALING_GROUP:F.DIALING_C2C;c.update(n.CALL,i.CALL_TIPS,""),this.statusChanged&&this.statusChanged({oldStatus:d,newStatus:ce()}),!L&&u===g.VIDEO&&this.switchScreen(_[0].domId)}}catch(l){console.warn(`${i.PREFIX}handleCallStatusChange, ${l}.`)}},console.log(`${i.PREFIX}version: ${ze}`),this._wasmReadyPromise=new Promise(e=>{this._wasmReadyResolve=e}),this._loadWasm(),this._watchTUIStore(),this._engineEventHandler=Gt.getInstance({callService:this}),this._chatCombine=z.getInstance({callService:this})}static getInstance(){return ae.instance||(ae.instance=new ae),ae.instance}_loadWasm(){C.TUICallEngine.once("ready",()=>this._wasmReadyResolve())}async init(e){if(this._isInitialized){console.warn("TUICallKit has already been initialized.");return}await this._wasmReadyPromise,this._isInitialized||(this._doInit(e),this._isInitialized=!0)}async _doInit(e){var t,a,A;try{if(this._tuiCallEngine)return;let{userID:r,tim:o,userSig:I,sdkAppID:l,SDKAppID:L,isFromChat:u,component:_=_e.TUI_CALL_KIT}=e;this._TUICore&&(l=this._TUICore.SDKAppID,o=this._TUICore.tim),this._tim=o,console.log(`${i.PREFIX}init sdkAppId: ${l||L}, userId: ${r}`);let d="web",U=2;U=3,d=`wx-uniapp-vue${U}`,this._tuiCallEngine=C.TUICallEngine.createInstance({tim:o,sdkAppID:l||L,callkitVersion:ze,isFromChat:u||!1,component:_,scene:d}),y.setEngineInstance(this._tuiCallEngine),this._addListenTuiCallEngineEvent(),this._bellContext&&((t=this._bellContext)==null||t.destroy()),this._bellContext=new gt,c.update(n.CALL,i.LOCAL_USER_INFO,{userId:r}),c.update(n.CALL,i.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{userId:r}),y.updateViewBackgroundUserId("local"),await this._tuiCallEngine.login({userID:r,userSig:I,assetsPath:""});const T=c.getData(n.CALL,i.CUSTOM_UI_CONFIG);(A=(a=this._tuiCallEngine)==null?void 0:a.reportLog)==null||A.call(a,{name:"TUICallkit.init",data:{uiConfig:T}})}catch(r){throw console.error(`${i.PREFIX}init failed, error: ${r}.`),r}}async destroyed(){var e;try{this._isInitialized=!1;const t=c.getData(n.CALL,i.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(`${i.PREFIX}destroyed failed, error: ${t}.`),t}}async inviteUser(e){if(c.getData(n.CALL,i.CALL_STATUS)!==h.IDLE)try{const{userIDList:t}=e;let a=await W(t,this.getTim());const A=c.getData(n.CALL,i.REMOTE_USER_INFO_LIST);if(t.filter(o=>!A.some(I=>I.userId===o)).length===0)return;c.update(n.CALL,i.REMOTE_USER_INFO_LIST,[...A,...a]),c.update(n.CALL,i.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,[...A,...a]),this._tuiCallEngine&&await this._tuiCallEngine.inviteUser(e)}catch(t){console.error(`${i.PREFIX}inviteUser failed, error: ${t}.`)}}async calls(e){if(c.getData(n.CALL,i.CALL_STATUS)===h.IDLE)try{c.update(n.CALL,i.PUSHER_ID,i.NEW_PUSHER);const{userIDList:t,type:a,chatGroupID:A,offlinePushInfo:r}=e;if(c.getData(n.CALL,i.CALL_STATUS)!==h.IDLE)return;const o=t.map(l=>({userId:l}));await this._updateCallStoreBeforeCall(a,o,A),this.executeExternalBeforeCalling(),e.offlinePushInfo={...this.getDefaultOfflinePushInfo(),...r};const I=await this._tuiCallEngine.calls(e);await this._updateCallStoreAfterCall(t,I)}catch(t){this._handleCallError(t,"calls")}}async join(e){if(c.getData(n.CALL,i.CALL_STATUS)!==h.CONNECTED)try{c.update(n.CALL,i.PUSHER_ID,i.NEW_PUSHER);const t={[i.CALL_ROLE]:v.CALLEE,[i.IS_GROUP]:!0,[i.CALL_STATUS]:h.CONNECTED,[i.CALL_MEDIA_TYPE]:c.getData(n.CALL,i.CALL_MEDIA_TYPE)||g.AUDIO};c.updateStore(t,n.CALL);const a=await this._tuiCallEngine.join(e);c.update(n.CALL,i.IS_CLICKABLE,!0),this.startTimer(),c.update(n.CALL,i.PUSHER,a),this.setSoundMode(e.type===g.AUDIO?M.EAR:M.SPEAKER);const A=c.getData(n.CALL,i.LOCAL_USER_INFO);c.update(n.CALL,i.LOCAL_USER_INFO,{...A,isEnter:!0}),c.update(n.CALL,i.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...A,isEnter:!0}),await this.openMicrophone(),b(!0,i.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(`${i.PREFIX}The miniProgram does not support setLanguage`)}enableFloatWindow(e){c.update(n.CALL,i.ENABLE_FLOAT_WINDOW,e)}async setSelfInfo(e){const{nickName:t,avatar:a}=e;try{await this._tuiCallEngine.setSelfInfo(t,a)}catch(A){console.error(`${i.PREFIX}setSelfInfo failed, error: ${A}.`)}}async enableVirtualBackground(e){c.update(n.CALL,i.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(`${i.PREFIX}enableMuteMode failed, error: ${t}.`)}}hideFeatureButton(e){y.hideFeatureButton(e)}setLocalViewBackgroundImage(e){y.setLocalViewBackgroundImage(e)}setRemoteViewBackgroundImage(e,t){y.setRemoteViewBackgroundImage(e,t)}setLayoutMode(e){y.setLayoutMode(e)}setCameraDefaultState(e){y.setCameraDefaultState(e)}callExperimentalAPI(e){var r,o;const t=JSON.parse(e);if(t===e)return;const{api:a,params:A}=t;if(!(!a||!A))try{switch(a){case"forceUseV2API":const{enable:I}=A;c.update(n.CALL,i.IS_FORCE_USE_V2_API,!!I);break;default:break}}catch(I){(o=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||o.call(r,{name:"TUICallKit.callExperimentalAPI.fail",data:{error:I}})}}async accept(){var t,a,A,r;const e=c.getData(n.CALL,i.CALL_STATUS);if((a=(t=this._tuiCallEngine)==null?void 0:t.reportLog)==null||a.call(t,{name:"TUICallKit.accept.start",data:{callStatus:e}}),e!==h.CONNECTED)try{const I={microphone:!0,camera:c.getData(n.CALL,i.CALL_MEDIA_TYPE)===g.VIDEO};if(!await this._tuiCallEngine.deviceCheck(I)){const u=c.getData(n.CALL,i.CALL_MEDIA_TYPE);typeof C.devicePermissions=="function"&&await C.devicePermissions(u)}c.update(n.CALL,i.PUSHER_ID,i.NEW_PUSHER);const L=await this._tuiCallEngine.accept();await this._handleAcceptResponse(L)}catch(o){if((r=(A=this._tuiCallEngine)==null?void 0:A.reportLog)==null||r.call(A,{name:"TUICallKit.accept.fail",level:"error",error:o}),be(o))return;Te(o,g.AUDIO,this._tuiCallEngine),this._resetCallStore()}}async _handleAcceptResponse(e){var t,a,A;if(e){if(c.getData(n.CALL,i.CALL_STATUS)===h.CONNECTED)return;this.openMicrophone(),(t=this._bellContext)==null||t.stop(),c.update(n.CALL,i.CALL_STATUS,h.CONNECTED),(A=this._chatCombine)==null||A.callTUIService({message:(a=e==null?void 0:e.data)==null?void 0:a.message}),c.update(n.CALL,i.IS_CLICKABLE,!0),this.startTimer();const r=c.getData(n.CALL,i.CALL_MEDIA_TYPE),o=this._getFeatureButtonDefaultState(K.Camera)===x.Close;r===g.VIDEO&&!o&&await this.openCamera(i.LOCAL_VIDEO),e.pusher&&c.update(n.CALL,i.PUSHER,e.pusher),this.setSoundMode(r===g.AUDIO?M.EAR:M.SPEAKER);const I=c.getData(n.CALL,i.LOCAL_USER_INFO);c.update(n.CALL,i.LOCAL_USER_INFO,{...I,isEnter:!0}),c.update(n.CALL,i.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...I,isEnter:!0}),b(!0,i.AUDIO)}}async hangup(){if(c.getData(n.CALL,i.CALL_STATUS)!==h.IDLE){try{const e=await this._tuiCallEngine.hangup();e==null||e.forEach(t=>{var a,A;(t==null?void 0:t.code)===0&&((A=this._chatCombine)==null||A.callTUIService({message:(a=t==null?void 0:t.data)==null?void 0:a.message}))})}catch(e){console.debug(e)}this._resetCallStore()}}async reject(){var e,t;if(c.getData(n.CALL,i.CALL_STATUS)!==h.IDLE){try{const a=await this._tuiCallEngine.reject();(a==null?void 0:a.code)===0&&((t=this._chatCombine)==null||t.callTUIService({message:(e=a==null?void 0:a.data)==null?void 0:e.message}))}catch(a){console.debug(a)}this._resetCallStore()}}async openCamera(e){try{if(Oe.isH5||Oe.isWeChat){const a=c.getData(n.CALL,i.CAMERA_POSITION)===V.FRONT;this._tuiCallEngine.openCamera(e,a)}else await this._tuiCallEngine.openCamera(e);b(!0,i.VIDEO)}catch(t){Te(t,g.VIDEO,this._tuiCallEngine),console.error(`${i.PREFIX}openCamera error: ${t}.`)}}async closeCamera(){try{await this._tuiCallEngine.closeCamera(),b(!1,i.VIDEO)}catch(e){console.error(`${i.PREFIX}closeCamera error: ${e}.`)}}async openMicrophone(){try{await this._tuiCallEngine.openMicrophone(),b(!0,i.AUDIO)}catch(e){console.error(`${i.PREFIX}openMicrophone failed, error: ${e}.`)}}async closeMicrophone(){try{await this._tuiCallEngine.closeMicrophone(),b(!1,i.AUDIO)}catch(e){console.error(`${i.PREFIX}closeMicrophone failed, error: ${e}.`)}}switchScreen(e){e&&c.update(n.CALL,i.BIG_SCREEN_USER_ID,e)}async switchCallMediaType(){var e,t;try{const a=c.getData(n.CALL,i.CALL_MEDIA_TYPE);if(a===g.AUDIO){console.warn(`${i.PREFIX}switchCallMediaType failed, ${a} not support.`);return}const A=await this._tuiCallEngine.switchCallMediaType(g.AUDIO);(A==null?void 0:A.code)===0&&((t=this._chatCombine)==null||t.callTUIService({message:(e=A==null?void 0:A.data)==null?void 0:e.message})),c.update(n.CALL,i.CALL_MEDIA_TYPE,g.AUDIO);const o=c.getData(n.CALL,i.IS_GROUP)?F.CALLING_GROUP_VIDEO:F.CALLING_C2C_VIDEO,I=ce();this.statusChanged&&this.statusChanged({oldStatus:o,newStatus:I}),this.setSoundMode(M.EAR)}catch(a){console.error(`${i.PREFIX}switchCallMediaType failed, error: ${a}.`)}}async switchCamera(){const t=c.getData(n.CALL,i.CAMERA_POSITION)===V.BACK?V.FRONT:V.BACK;try{await this._tuiCallEngine.switchCamera(t),c.update(n.CALL,i.CAMERA_POSITION,t)}catch(a){console.error(`${i.PREFIX}_switchCamera failed, error: ${a}.`)}}setSoundMode(e){var t;try{let a=c.getData(n.CALL,i.IS_EAR_PHONE);const A=e||(a?M.SPEAKER:M.EAR);(t=this._tuiCallEngine)==null||t.selectAudioPlaybackDevice(A),e?a=e===M.EAR:a=!a,c.update(n.CALL,i.IS_EAR_PHONE,a)}catch(a){console.error(`${i.PREFIX}setSoundMode failed, error: ${a}.`)}}async setBlurBackground(e){try{c.update(n.CALL,i.ENABLE_VIRTUAL_BACKGROUND,e)}catch(t){console.error(`${i.PREFIX}_setBlurBackground failed, error: ${t}.`)}}_addListenTuiCallEngineEvent(){this._engineEventHandler.addListenTuiCallEngineEvent()}_removeListenTuiCallEngineEvent(){this._engineEventHandler.removeListenTuiCallEngineEvent()}setCallback(e){const{beforeCalling:t,afterCalling:a,onMinimized:A,onMessageSentByMe:r,kickedOut:o,statusChanged:I}=e;t&&(this.beforeCalling=t),a&&(this.afterCalling=a),A&&(this.onMinimized=A),r&&(this.onMessageSentByMe=r),o&&(this.kickedOut=o),I&&(this.statusChanged=I)}toggleMinimize(){const e=c.getData(n.CALL,i.IS_MINIMIZED);c.update(n.CALL,i.IS_MINIMIZED,!e),console.log(`${i.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,a;try{const A=c.getData(n.CALL,i.CALL_STATUS),r=c.getData(n.CALL,i.CALL_ROLE);if((a=(t=this._tuiCallEngine)==null?void 0:t.reportLog)==null||a.call(t,{name:"TUICallkit.handleExceptionExit",data:{callStatus:A,callRole:r}}),A===h.IDLE)return;A===h.CALLING&&(r===v.CALLER?await(this==null?void 0:this.hangup()):await(this==null?void 0:this.reject())),A===h.CONNECTED&&await(this==null?void 0:this.hangup()),this==null||this._resetCallStore()}catch(A){console.error(`${i.PREFIX} handleExceptionExit failed, error: ${A}.`)}e&&(e.returnValue="")}handlePusherError(e){var t;((t=e==null?void 0:e.detail)==null?void 0:t.errMsg)==="fail:access denied"&&it()}setVideoDisplayMode(e){c.update(n.CALL,i.DISPLAY_MODE,e)}async setVideoResolution(e){var t;try{if(!e)return;c.update(n.CALL,i.VIDEO_RESOLUTION,e),await((t=this._tuiCallEngine)==null?void 0:t.setVideoQuality(e))}catch(a){console.warn(`${i.PREFIX}setVideoResolution failed, error: ${a}.`)}}startTimer(){this._timerId===-1&&(this._startTimeStamp=Se(),this._timerId=Ie.run(i.TIMEOUT,this._updateCallDuration.bind(this),{delay:1e3}))}_handleCallError(e,t){if(this._permissionCheckTimer&&clearInterval(this._permissionCheckTimer),!be(e))throw at(e),Te(e,g.AUDIO,this._tuiCallEngine),console.error(`${i.PREFIX}${t} failed, error: ${e}.`),this._resetCallStore(),e}async _updateCallStoreBeforeCall(e,t,a){let A=N.CALLER_CALLING_MSG;(a||c.getData(n.CALL,i.IS_MINIMIZED)||t.length>1)&&(A=N.CALLER_GROUP_CALLING_MSG),console.warn(`呼叫前更新 call status: ${!!a||t.length>1}, ${a}, ${JSON.stringify(t)}`);let r={[i.CALL_MEDIA_TYPE]:e,[i.CALL_ROLE]:v.CALLER,[i.REMOTE_USER_INFO_LIST]:t,[i.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]:t,[i.IS_GROUP]:!!a||t.length>1,[i.CALL_TIPS]:A,[i.GROUP_ID]:a};const o={enableCamera:e===g.VIDEO,enableMic:!0};r={...r,[i.PUSHER]:o},c.updateStore(r,n.CALL);const I=await tt(e,this);console.log(`${i.PREFIX}mini beforeCall return callStatus: ${I}.`),c.update(n.CALL,i.CALL_STATUS,I);const l=await W(t.map(_=>_.userId),this.getTim());l.length>0&&(c.update(n.CALL,i.REMOTE_USER_INFO_LIST,l),c.update(n.CALL,i.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,l));const L={microphone:!0,camera:e===g.VIDEO};let u=await this._tuiCallEngine.deviceCheck(L);u||(this._permissionCheckTimer&&clearInterval(this._permissionCheckTimer),this._permissionCheckTimer=setInterval(async()=>{u=await this._tuiCallEngine.deviceCheck(L),u&&this._permissionCheckTimer&&(clearInterval(this._permissionCheckTimer),c.update(n.CALL,i.CALL_STATUS,h.CALLING))},500))}async _updateCallStoreAfterCall(e,t){var a,A;if(t){c.update(n.CALL,i.IS_CLICKABLE,!0),Ye(t==null?void 0:t.roomID,t==null?void 0:t.strRoomID);const r=c.getData(n.CALL,i.CALL_MEDIA_TYPE);(A=this._chatCombine)==null||A.callTUIService({message:(a=t==null?void 0:t.data)==null?void 0:a.message}),t.pusher&&c.update(n.CALL,i.PUSHER,t.pusher),this.setSoundMode(r===g.AUDIO?M.EAR:M.SPEAKER),c.update(n.CALL,i.CALL_STATUS,h.CALLING);const o=this._getFeatureButtonDefaultState(K.Camera)===x.Close;r===g.VIDEO&&!o&&await this.openCamera(i.LOCAL_VIDEO);const I=c.getData(n.CALL,i.LOCAL_USER_INFO);c.update(n.CALL,i.LOCAL_USER_INFO,{...I,isEnter:!0}),c.update(n.CALL,i.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...I,isEnter:!0}),b(!0,i.AUDIO)}else this._permissionCheckTimer&&clearInterval(this._permissionCheckTimer),this._permissionCheckTimer=null,this._resetCallStore()}_getFeatureButtonDefaultState(e){var a;const{button:t}=c.getData(n.CALL,i.CUSTOM_UI_CONFIG);return(a=t==null?void 0:t[e])==null?void 0:a.state}_updateCallDuration(){const e=Math.round((Se()-this._startTimeStamp)/1e3),t=Ke(e);c.update(n.CALL,i.CALL_DURATION,t)}_stopTimer(){this._timerId!==-1&&(Ie.clearTask(this._timerId),this._timerId=-1)}_cleanupAvoidRepeatCallState(e){var a,A;(A=(a=this._tuiCallEngine)==null?void 0:a.reportLog)==null||A.call(a,{name:"TUICallkit._cleanupAvoidRepeatCallState",data:{}});let t=[];e?t=[this[e]]:t=[this.calls,this.accept,this.hangup,this.reject],t==null||t.forEach(r=>{var o;(o=r==null?void 0:r.clearCallState)==null||o.call(r,this)})}_resetCallStore(){var r;this._cleanupAvoidRepeatCallState(),(r=this._bellContext)==null||r.stop();const e=ce();this._stopTimer();let t=Object.keys(ie).filter(o=>{switch(ie[o]){case i.CALL_STATUS:case i.LANGUAGE:case i.IS_GROUP:case i.DISPLAY_MODE:case i.VIDEO_RESOLUTION:case i.ENABLE_FLOAT_WINDOW:case i.LOCAL_USER_INFO:case i.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND:case i.IS_FORCE_USE_V2_API:case i.LOCAL_USER_INFO_EXCLUDE_VOLUMN:return!1;default:return!0}});t=t.map(o=>ie[o]),c.reset(n.CALL,t),c.getData(n.CALL,i.CALL_STATUS)!==h.IDLE&&c.reset(n.CALL,[i.CALL_STATUS],!0),c.reset(n.CALL,[i.IS_MINIMIZED],!0),c.reset(n.CALL,[i.IS_EAR_PHONE],!0),c.reset(n.CALL,[i.PUSHER_ID],!0),c.reset(n.CALL,[i.ENABLE_VIRTUAL_BACKGROUND],!0),c.reset(n.CALL,[i.IS_MUTE_SPEAKER],!0),c.update(n.CALL,i.LOCAL_USER_INFO,{...c.getData(n.CALL,i.LOCAL_USER_INFO),isVideoAvailable:!1,isAudioAvailable:!1}),c.update(n.CALL,i.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...c.getData(n.CALL,i.LOCAL_USER_INFO_EXCLUDE_VOLUMN),isVideoAvailable:!1,isAudioAvailable:!1}),c.update(n.CALL,i.REMOTE_USER_INFO_LIST,[]),c.update(n.CALL,i.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,[]),c.update(n.CALL,i.CAMERA_POSITION,V.FRONT);const A=ce();e!==A&&this.statusChanged&&this.statusChanged({oldStatus:e,newStatus:A})}async getGroupMemberList(e,t){const a=c.getData(n.CALL,i.GROUP_ID);return await St(a,this.getTim(),e,t)}async getGroupProfile(){const e=c.getData(n.CALL,i.GROUP_ID);return await Ut(e,this.getTim())}_watchTUIStore(){c==null||c.watch(n.CALL,{[i.CALL_STATUS]:this._handleCallStatusChange})}_unwatchTUIStore(){c==null||c.unwatch(n.CALL,{[i.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(`${i.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=c.getData(n.CALL,i.LOCAL_USER_INFO);return this._offlinePushInfo?this._offlinePushInfo:{title:(e==null?void 0:e.displayUserInfo)||"",description:J("you have a new call")}}async getCallMessage(e){return await this._chatCombine.getCallKitMessage(e,this.getTim())}};p([w()],R.prototype,"init",1),p([w()],R.prototype,"inviteUser",1),p([w()],R.prototype,"calls",1),p([w()],R.prototype,"join",1),p([w()],R.prototype,"accept",1),p([w()],R.prototype,"hangup",1),p([w()],R.prototype,"reject",1),p([w()],R.prototype,"openCamera",1),p([w()],R.prototype,"closeCamera",1),p([w()],R.prototype,"openMicrophone",1),p([w()],R.prototype,"closeMicrophone",1),p([w()],R.prototype,"switchScreen",1),p([w()],R.prototype,"switchCallMediaType",1),p([w()],R.prototype,"switchCamera",1),p([w()],R.prototype,"setSoundMode",1),p([w()],R.prototype,"setBlurBackground",1);const Qt=R.getInstance(),yt="4.2.7";D.CallMediaType=g,D.CallRole=v,D.FeatureButton=K,D.LayoutMode=he,D.NAME=i,D.STATUS=F,D.StoreName=n,D.TUICallKitAPI=Qt,D.TUIGlobal=Oe,D.TUIStore=c,D.Version=yt,D.VideoDisplayMode=ue,D.VideoResolution=Le,D.t=J,D.uiDesign=y,Object.defineProperty(D,Symbol.toStringTag,{value:"Module"})});