/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/@tencentcloud/call-uikit-wx-uniapp@4.0.12/tuicall-uikit-vue.umd.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
(function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode(".ai-subtitle[data-v-f7f2cf31]{position:absolute;z-index:100;bottom:110px;left:50%;padding:10px 12px;color:#fff;background-color:#4f586bb3;border-radius:8px;transform:translate(-50%);width:260px;max-height:280px;overflow-y:auto;overflow-x:hidden}.sender-name[data-v-f7f2cf31]{color:#ff0}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
(function(T,u){typeof exports=="object"&&typeof module<"u"?u(exports,require("@tencentcloud/call-engine-wx"),require("@tencentcloud/tui-core"),require("@tencentcloud/chat"),require("vue"),require("@vue/composition-api")):typeof define=="function"&&define.amd?define(["exports","@tencentcloud/call-engine-wx","@tencentcloud/tui-core","@tencentcloud/chat","vue","@vue/composition-api"],u):(T=typeof globalThis<"u"?globalThis:T||self,u(T["tuicall-uikit-vue"]={},T.callEngineWx,T.TUICore,T.TencentCloudChat,T.Vue))})(this,function(T,u,U,ye,lt){"use strict";var r=(n=>(n.CALL="call",n.CUSTOM="custom",n))(r||{}),g=(n=>(n[n.UNKNOWN=0]="UNKNOWN",n[n.AUDIO=1]="AUDIO",n[n.VIDEO=2]="VIDEO",n))(g||{}),G=(n=>(n.UNKNOWN="unknown",n.CALLEE="callee",n.CALLER="caller",n))(G||{}),d=(n=>(n.IDLE="idle",n.CALLING="calling",n.CONNECTED="connected",n))(d||{}),z=(n=>(n.CONTAIN="contain",n.COVER="cover",n.FILL="fill",n))(z||{}),q=(n=>(n.RESOLUTION_480P="480p",n.RESOLUTION_720P="720p",n.RESOLUTION_1080P="1080p",n))(q||{});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"},ct={unknown:0,audio:1,video:2};var v=(n=>(n.EAR="ear",n.SPEAKER="speaker",n))(v||{}),Y=(n=>(n[n.FRONT=0]="FRONT",n[n.BACK=1]="BACK",n))(Y||{}),K=(n=>(n.Camera="camera",n.Microphone="microphone",n.SwitchCamera="switchCamera",n.InviteUser="inviteUser",n))(K||{}),X=(n=>(n.Open="open",n.Close="close",n))(X||{}),Ue=(n=>(n.LocalInLargeView="local",n.RemoteInLargeView="remote",n))(Ue||{}),x=(n=>(n[n.INVITE=1]="INVITE",n[n.CANCEL_INVITE=2]="CANCEL_INVITE",n[n.ACCEPT_INVITE=3]="ACCEPT_INVITE",n[n.REJECT_INVITE=4]="REJECT_INVITE",n[n.INVITE_TIMEOUT=5]="INVITE_TIMEOUT",n))(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},Pe={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 Qe=(n=>(n[n.NORMAL=0]="NORMAL",n[n.RELEASE=1]="RELEASE",n[n.WARNING=2]="WARNING",n[n.ERROR=3]="ERROR",n[n.NONE=4]="NONE",n))(Qe||{});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"},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"},...Ie,...{INNER_ATTR_KIT_INFO:"inner_attr_kit_info"}},It="https://web.sdk.qcloud.com/component/TUIKit/assets/call.png",Ct="https://web.sdk.qcloud.com/component/TUIKit/assets/call-video-reverse.svg",Ve=2147483647,Ke=4;var Te=(n=>(n[n.TUI_CALL_KIT=14]="TUI_CALL_KIT",n[n.TIM_CALL_KIT=15]="TIM_CALL_KIT",n))(Te||{}),Oe=(n=>(n[n.NUMBER_ROOM_ID=1]="NUMBER_ROOM_ID",n[n.STRING_ROOM_ID=2]="STRING_ROOM_ID",n))(Oe||{});function ut(){wx.hideKeyboard&&wx.hideKeyboard({complete:()=>{}})}function Et(){wx.getSystemInfoSync().platform==="devtools"&&wx.showModal({icon:"none",title:"运行环境提醒",content:"微信开发者工具不支持原生推拉流组件(即 <live-pusher> 和 <live-player> 标签)，请使用真机调试或者扫码预览。",showCancel:!1})}function be(){ut(),Et()}async function Lt(n,e){try{be();const t={microphone:!0,camera:n===g.VIDEO};return await e._tuiCallEngine.deviceCheck(t)?d.CALLING:d.IDLE}catch(t){return console.debug(t),d.IDLE}}function ht(n){(n==null?void 0:n.code)===-1002&&wx.showModal({icon:"none",title:"error",content:(n==null?void 0:n.message)||"",showCancel:!1})}function dt(){wx.showModal({icon:"none",title:"权限提示",content:"当前小程序 appid 不具备 <live-pusher> 和 <live-player> 的使用权限，您将无法正常使用实时通话能力，请使用企业小程序账号申请权限后再进行开发体验",showCancel:!1})}const _t={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":"发起通话失败"},Ce=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting,ke=typeof uni<"u"&&typeof uni>"u",Ye=Ce||ke,He=typeof uni<"u",Je=function(){return(typeof uni<"u"||typeof window<"u")&&!Ye}(),gt=function(){return Ce?wx:He?uni:window}(),b=Je&&window&&window.navigator&&window.navigator.userAgent||"",ft=/Android/i.test(b),St=/(?:Windows Phone)/.test(b),Dt=/(?:SymbianOS)/.test(b),Ut=/iPad/i.test(b)||/iPhone/i.test(b)||/iPod/i.test(b),ze=ft||St||Dt||Ut,Be=Je&&!ze,Tt=Be&&b.includes("Windows NT"),Ot=Be&&b.includes("Mac");let qe=class oe{constructor(){this.global=gt,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 oe.instance||(oe.instance=new oe),oe.instance}initEnv(){this.isPC=Be,this.isH5=ze,this.isWeChat=Ce,this.isApp=ke&&!Ce,this.isUniPlatform=He,this.isWIN=Tt,this.isMAC=Ot}initOfficial(e){this.isOfficial=e===1400187352||e===1400188366}};const ue=function(n){return typeof n===a.UNDEFINED},Re=function(n){if(typeof n!==a.OBJECT||n===null)return!1;const e=Object.getPrototypeOf(n);if(e===null)return!0;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return e===t},Xe=function(n){return typeof Array.isArray===a.FUNCTION?Array.isArray(n):Object.prototype.toString.call(n).match(/^\[object (.*)\]$/)[1].toLowerCase()===a.ARRAY},Ee=function(n){return typeof n===a.STRING},Bt=function(n){return typeof n===a.BOOLEAN},xe=function(n){return n!==null&&(typeof n===a.NUMBER&&!isNaN(n-0)||typeof n===a.OBJECT&&n.constructor===Number)};function je(n){const e=Math.floor(n/3600),t=Math.floor(n%3600/60),i=Math.floor(n%60);let s=e>9?`${e}`:`0${e}`;return s+=t>9?`:${t}`:`:0${t}`,s+=i>9?`:${i}`:`:0${i}`,s}function Rt(n){if(typeof n===a.STRING)try{return!!JSON.parse(n)}catch(e){return console.debug(e),!1}return!1}const Le=function(n){return!n||!Rt(n)?n:JSON.parse(n)};function We(n){return(n==null?void 0:n.message.indexOf("is ongoing, please avoid repeated calls"))!==-1}function Nt(n){const{message:e}=n;return e.indexOf("NotAllowedError: Permission denied")!==-1}function Ne(){return Date.now()}const he=function(n){return typeof n===a.FUNCTION},pt=()=>{if(qe.getInstance().isWeChat)return"zh-cn";const n=((navigator==null?void 0:navigator.language)||(navigator==null?void 0:navigator.userLanguage)||"").substr(0,2);let e="en";switch(n){case"zh":e="zh-cn";break;case"ja":e="ja_JP";break;default:e="en"}return e},wt=function(n){return Object.prototype.toString.call(n).match(/^\[object (.*)\]$/)[1].toLowerCase()};function Gt(n,e,t){if(!n.hasOwnProperty(e))return n;const i={};return Object.keys(n).forEach(s=>{s===e?i[t]=n[s]:i[s]=n[s]}),i}function Ft(n,e){return n.replace(/{{\s*(\w+)(\s*,\s*[^}]+)?\s*}}/g,(t,i)=>{const s=i.trim();return e[s]!==void 0?String(e[s]):t})}const w={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":_t};function H(n){var i,s;const e=c.getData(r.CALL,a.LANGUAGE);let t="";if(Ee(n))t=((i=j==null?void 0:j[e])==null?void 0:i[n])||"";else if(Re(n)){const{key:o,options:A}=n;t=((s=j==null?void 0:j[e])==null?void 0:s[o])||"",t=Ft(t,A)}return t}const vt="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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",Ze="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 Mt{constructor(){this._bellContext=null,this._isMuteBell=!1,this._calleeBellFilePath=Ze,this._callRole=G.UNKNOWN,this._callStatus=d.IDLE,this._handleAudioInterruptionBegin=async()=>{await this.stop()},this._handleAudioInterruptionEnd=async()=>{this._callStatus!==d.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=vt;this._callRole===G.CALLEE&&(t=this._calleeBellFilePath||Ze),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=ue(e.isMuteBell)?this._isMuteBell:e.isMuteBell}async play(){try{if(this._callStatus!==d.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!==d.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=d.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(n,e,t){const i=t.value,s=new Set;return t.value=async function(...o){var A,I;if(s.has(this)){console.warn(`${a.PREFIX}previous ${e}() is ongoing, please avoid repeated calls`),(I=(A=this==null?void 0:this.getTUICallEngineInstance())==null?void 0:A.reportLog)==null||I.call(A,{name:"TUICallKit.avoidRepeatedCall.fail",data:{name:e},error:`previous ${e}() is ongoing`});return}try{s.add(this);const l=await i.apply(this,o);return s.delete(this),l}catch(l){throw s.delete(this),l}},t.value.clearCallState=function(o){s.delete(o)},t}}const ie=a.PREFIX+"API";function y(n){return function(e,t,i){let s=i.value;return i.value=function(...o){return yt.call(this,n,o,t),s.apply(this,o)},i}}function yt(n,e,t){try{if(e[0].SDKAppID||(n=Gt(n,"SDKAppID","sdkAppID")),Xe(n))for(let i=0;i<n.length;i++)$e.call(this,{...n[i],value:e[i],name:t});else for(const i in n)n.hasOwnProperty(i)&&$e.call(this,{...n[i],value:e[0][i],name:t,key:i})}catch(i){throw console.error(i),i}}function $e({required:n,rules:e,range:t,value:i,allowEmpty:s,name:o,key:A}){if(ue(i)){if(n)throw new Error(`${ie}<${o}>: ${A} is required.`);return}const I=e.some(E=>E===wt(i));let l="";if(!I){for(let E=0;E<e.length;E++){let C=e[E];C=C.replace(C[0],C[0].toUpperCase()),l+=`${C}/`}throw l=l.substring(0,l.length-1),new Error(`${ie}<${o}>: ${A} must be ${l}, current ${A} is ${typeof i}.`)}if(s===!1&&Ee(i)&&i.trim()==="")throw new Error(`${ie}<${o}>: ${A} is blank.`);if(Xe(t)&&t&&t.indexOf(i)===-1)throw new Error(`${ie}<${o}>: ${A} error, only be ${t}, current ${A} is ${i}.`);if(Ee(t)&&t.indexOf("~")!==-1){const E=t.split("~");if(i<+E[0]||i>+E[1]||xe(i)&&Number.isNaN(i))throw new Error(`${ie}<${o}>: ${A} error, only be ${t}, current ${A} is ${i}.`)}}const m={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~${Ve}`,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~${Ve}`,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:[q.RESOLUTION_1080P,q.RESOLUTION_480P,q.RESOLUTION_720P],allowEmpty:!1}]};function W(n){return function(e,t,i){let s=i.value;return i.value=function(...o){return mt.call(this,n,o,t),s.apply(this,o)},i}}function mt(n){if(n!=null&&n.engineInstance&&!this._tuiCallEngine){const e=`${a.PREFIX} ${H("TUICallKit init is not complete")}`;throw console.error(e),e}}function de(n){if(typeof n!="object"||n===null)return n;let e=Array.isArray(n)?[]:{};for(let t in n)n.hasOwnProperty(t)&&(e[t]=de(n[t]));return e}class Pt{constructor(){this.defaultStore={callStatus:d.IDLE,callRole:G.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:pt(),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:q.RESOLUTION_720P,showSelectUser:!1,pusher:{},player:[],isEarPhone:!1,pusherId:a.INITIAL_PUSHER,isShowEnableVirtualBackground:!1,enableVirtualBackground:!1,customUIConfig:{button:{},viewBackground:{},layoutMode:Ue.RemoteInLargeView},translate:H,isForceUseV2API:!1},this.store=de(this.defaultStore),this.prevStore=de(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,s)=>({...i,[s]:this.defaultStore[s]}),{});this.store={...this.defaultStore,...this.store,...t}}}let _e=class Ae{constructor(){this.timerId=-1,this.storeMap={[r.CALL]:new Pt},this.task={}}static getInstance(){return Ae.instance||(Ae.instance=new Ae),Ae.instance}watch(e,t,i){this.task[e]||(this.task[e]={});const s=this.task[e];Object.keys(t).forEach(o=>{const A=t[o];s[o]||(s[o]=new Map),s[o].set(A,1);const{notifyRangeWhenWatch:I}=i||{};if(I===a.ALL&&this.notify(e,o),I===a.MYSELF){const l=this.getData(e,o);A.call(this,l)}})}unwatch(e,t){if(!this.task[e])return;const i=this.task[e];Object.keys(t).forEach(s=>{i[s].delete(t[s])})}update(e,t,i){var s;(Ee(i)||xe(i)||Bt(i))&&this.storeMap[e].store[t]===i||((s=this.storeMap[e])==null||s.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 s=i[t],o=this.getData(e,t);for(const[A]of s.entries())A.call(this,o)}}reset(e,t=[],i=!1){if(e in this.storeMap){const s=this.storeMap[e];t.length===0&&(t=Object.keys(s==null?void 0:s.store)),s.reset(t),i&&t.forEach(o=>{this.notify(e,o)})}}updateStore(e,t){const i=t||r.CALL;Object.keys(e).forEach(s=>{this.update(i,s,e[s])})}};const O=_e.getInstance();function pe(n,e){const t={userId:n,nick:"",avatar:"",remark:"",displayUserInfo:"",isAudioAvailable:!1,isVideoAvailable:!1,isEnter:!1,domId:e||n};return e?t:{...t,isEnter:!1}}async function Qt(n,e){var i,s,o,A,I;let t=pe(n,a.LOCAL_VIDEO);try{if(!e)return t;const l=await e.getMyProfile(),E=O==null?void 0:O.getData(r.CALL,a.LOCAL_USER_INFO);return(l==null?void 0:l.code)===0&&(t={...t,...E,userId:(i=l==null?void 0:l.data)==null?void 0:i.userID,nick:(s=l==null?void 0:l.data)==null?void 0:s.nick,avatar:(o=l==null?void 0:l.data)==null?void 0:o.avatar,displayUserInfo:((A=l==null?void 0:l.data)==null?void 0:A.nick)||((I=l==null?void 0:l.data)==null?void 0:I.userID)}),t}catch(l){return console.error(`${a.PREFIX}getMyProfile failed, error: ${l}.`),t}}async function Z(n,e){let t=n.map(i=>pe(i));try{if(!e)return t;const i=await e.getFriendProfile({userIDList:n});if(i.code===0){const{friendList:s=[],failureUserIDList:o=[]}=i.data;let A=o.map(C=>C.userID);if(o.length>0){const C=await e.getUserProfile({userIDList:o.map(h=>h.userID)});(C==null?void 0:C.code)===0&&(A=(C==null?void 0:C.data)||[])}const I=O==null?void 0:O.getData(r.CALL,a.REMOTE_USER_INFO_LIST),l=s.map(C=>C.userID),E=A.map(C=>C.userID);t=n.map(C=>{var se,ne,re,te,rt,ot,At;const h=pe(C),_=l.indexOf(C),D=E.indexOf(C);let B="",p="",Q="",N="";_!==-1&&(B=((se=s[_])==null?void 0:se.remark)||"",p=((re=(ne=s[_])==null?void 0:ne.profile)==null?void 0:re.nick)||"",Q=B||p||h.userId||"",N=((rt=(te=s[_])==null?void 0:te.profile)==null?void 0:rt.avatar)||""),D!==-1&&(p=((ot=A[D])==null?void 0:ot.nick)||"",Q=p||h.userId||"",N=((At=A[D])==null?void 0:At.avatar)||"");const De=I.find(ai=>ai.userId===C)||{};return{...h,...De,remark:B,nick:p,displayUserInfo:Q,avatar:N}})}return t}catch(i){return console.error(`${a.PREFIX}getRemoteUserProfile failed, error: ${i}.`),t}}function ge(){const n=O.getData(r.CALL,a.CALL_STATUS);if(n===d.IDLE)return F.IDLE;const e=O.getData(r.CALL,a.IS_GROUP);if(n===d.CALLING)return e?F.DIALING_GROUP:F.DIALING_C2C;const t=O.getData(r.CALL,a.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 Vt(n,e,t,i){let s=[];try{const o=await e.getGroupMemberList({groupID:n,count:t,offset:i});if(o.code===0)return o.data.memberList||s}catch(o){return console.error(`${a.PREFIX}getGroupMember failed, error: ${o}.`),s}}async function Kt(n,e){let t={};try{return(await e.getGroupProfile({groupID:n})).data.group||t}catch(i){return console.warn(`${a.PREFIX}getGroupProfile failed, error: ${i}.`),t}}function et(n,e){n===0&&e?(O.update(r.CALL,a.ROOM_ID,e),O.update(r.CALL,a.ROOM_ID_TYPE,Oe.STRING_ROOM_ID)):(O.update(r.CALL,a.ROOM_ID,n),O.update(r.CALL,a.ROOM_ID_TYPE,Oe.NUMBER_ROOM_ID))}function M(n){return n||{}}function we(n){if(n.length===0)return;let e=O.getData(r.CALL,a.REMOTE_USER_INFO_LIST);n.forEach(t=>{e=e.filter(i=>i.userId!==t)}),O.update(r.CALL,a.REMOTE_USER_INFO_LIST,e),O.update(r.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,e)}function Ge(n,e,t){let i="";Nt(n)&&(e===g.AUDIO&&(i=w.NO_MICROPHONE_DEVICE_PERMISSION),e===g.VIDEO&&(i=w.NO_CAMERA_DEVICE_PERMISSION),i&&O.update(r.CALL,a.TOAST_INFO,{content:i,type:a.ERROR}),console.error(`${a.PREFIX}call failed, error: ${n.message}.`))}function k(n,e){let t=O.getData(r.CALL,a.LOCAL_USER_INFO);e===a.AUDIO&&(t={...t,isAudioAvailable:n}),e===a.VIDEO&&(t={...t,isVideoAvailable:n}),O.update(r.CALL,a.LOCAL_USER_INFO,t),O.update(r.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,t)}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},Re(t)&&(i={...i,...t}),he(e)&&(t=e,e=a.TIMEOUT);const s={taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,taskName:e,callback:t,...i};return this.taskMap.set(s.taskID,s),e===a.INTERNAL?this.interval(s):this.timeout(s),s.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:s}=this.taskMap.get(e);return t&&clearInterval(t),i&&clearTimeout(i),s&&document.removeEventListener("visibilitychange",s),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;const bt=function(n){if(n===null||typeof n>"u")return!0;if(typeof n=="boolean")return!1;if(typeof n=="number")return n===0;if(typeof n=="string"||typeof n=="function"||Array.isArray(n))return n.length===0;if(n instanceof Error)return n.message==="";if(Re(n)){for(const e in n)if(Object.prototype.hasOwnProperty.call(n,e))return!1;return!0}return!1},Fe="_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,s,o;const e=(i=this._tuiStore)==null?void 0:i.getData(r.CALL,a.CUSTOM_UI_CONFIG),{userId:t}=(s=this._tuiStore)==null?void 0:s.getData(r.CALL,a.LOCAL_USER_INFO);Object.keys(this._viewConfig.viewBackground.remote).includes(t)&&delete this._viewConfig.viewBackground.remote[t],(o=this._tuiStore)==null||o.update(r.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:s}=(t=this._tuiStore)==null?void 0:t.getData(r.CALL,a.LOCAL_USER_INFO);if(Object.keys(this._viewConfig.viewBackground.remote).includes(s)&&(delete this._viewConfig.viewBackground.remote[s],this._updateViewBackground()),!this._isSetViewBackgroundConfig.local)return;const o=this._viewConfig.viewBackground.local,A=o[s]||o[Fe];o[s]=o[Fe],this._viewConfig.viewBackground.local={[s]:A},this._updateViewBackground()}else{let s=this._viewConfig.viewBackground.remote;this._isSetViewBackgroundConfig.remote&&Object.keys(s).includes("*")&&(((i=this._tuiStore)==null?void 0:i.getData(r.CALL,a.REMOTE_USER_INFO_LIST)).map(I=>I.userId).forEach(I=>{Object.keys(s).includes(I)||(s[I]=s["*"])}),this._viewConfig.viewBackground.remote=s,this._updateViewBackground())}}hideFeatureButton(e){var i,s,o,A,I;(s=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||s.call(i,{name:"TUICallKit.hideFeatureButton.start",data:{buttonName:e}});const t=(o=this._tuiStore)==null?void 0:o.getData(r.CALL,a.CUSTOM_UI_CONFIG);(I=this._tuiStore)==null||I.update(r.CALL,a.CUSTOM_UI_CONFIG,{...t,button:{...t.button,[e]:{...((A=t.button)==null?void 0:A[e])||{},show:!1}}})}setLocalViewBackgroundImage(e){var i,s,o;(s=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||s.call(i,{name:"TUICallKit.setLocalViewBackgroundImage.start",data:{url:e}}),this._isSetViewBackgroundConfig.local=!0;let{userId:t}=(o=this._tuiStore)==null?void 0:o.getData(r.CALL,a.LOCAL_USER_INFO);bt(t)&&(t=Fe),this._viewConfig.viewBackground.local={[t]:e},this._updateViewBackground()}setRemoteViewBackgroundImage(e,t){var i,s;(s=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||s.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,s;(s=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||s.call(i,{name:"TUICallKit.setLayoutMode.start",data:{layoutMode:e}});const t=this._tuiStore.getData(r.CALL,a.CUSTOM_UI_CONFIG);this._tuiStore.update(r.CALL,a.CUSTOM_UI_CONFIG,{...t,layoutMode:e})}setCameraDefaultState(e){var i,s;(s=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||s.call(i,{name:"TUICallKit.setCameraDefaultState.start",data:{isOpen:e}});const t=de(this._tuiStore.getData(r.CALL,a.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(r.CALL,a.CUSTOM_UI_CONFIG,t)}}const ae=_e.getInstance(),P={audioCall:()=>"Voice call",videoCall:()=>"Video call",switchToAudio:()=>"Switch audio call",switchToVideo:()=>"Switch video call",hangup:({callDuration:n})=>`${H("Call duration")}：${n}`};class ${constructor(e){var t,i,s;this._callService=e.callService,U.TUICore.registerEvent(U.TUIConstants.TUILogin.EVENT.LOGIN_STATE_CHANGED,U.TUIConstants.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS,this),(t=U.TUIConstants.TUIChat)!=null&&t.EVENT&&U.TUICore.registerEvent((i=U.TUIConstants.TUIChat.EVENT)==null?void 0:i.CHAT_STATE_CHANGED,(s=U.TUIConstants.TUIChat.EVENT_SUB_KEY)==null?void 0:s.CHAT_OPENED,this),U.TUICore.registerService(U.TUIConstants.TUICalling.SERVICE.NAME,this),U.TUICore.registerExtension(U.TUIConstants.TUIChat.EXTENSION.INPUT_MORE.EXT_ID,this)}static getInstance(e){return $.instance||($.instance=new $(e)),$.instance}callTUIService(e){const{message:t}=e||{};U.TUICore.callService({serviceName:U.TUIConstants.TUIChat.SERVICE.NAME,method:U.TUIConstants.TUIChat.SERVICE.METHOD.UPDATE_MESSAGE_LIST,params:{message:t}})}onGetExtension(e,t){var i,s;if(e===U.TUIConstants.TUIChat.EXTENSION.INPUT_MORE.EXT_ID){if((s=(i=this._callService.getTUICallEngineInstance())==null?void 0:i.reportLog)==null||s.call(i,{name:"TUICallKit.onGetExtension",data:{extensionID:e,params:t}}),ue(t))return[];if([U.TUIConstants.TUIChat.TYPE.ROOM,U.TUIConstants.TUIChat.TYPE.CUSTOMER_SERVICE].includes(t.chatType))return[];let o=[];const A={weight:1e3,text:"语音通话",icon:It,data:{name:"voiceCall"},listener:{onClicked:async l=>await this._handleTUICoreOnClick(l,l.type||g.AUDIO)}},I={weight:900,text:"视频通话",icon:Ct,data:{name:"videoCall"},listener:{onClicked:async l=>await this._handleTUICoreOnClick(l,l.type||g.VIDEO)}};return t!=null&&t.chatType?o=[A,I]:(!(t!=null&&t.filterVoice)&&o.push(A),!(t!=null&&t.filterVideo)&&o.push(I)),o}}async onCall(e,t){e===U.TUIConstants.TUICalling.SERVICE.METHOD.START_CALL&&await this._handleTUICoreOnClick(t,t.type)}async onNotifyEvent(e,t,i){var s,o,A,I,l,E,C,h;try{if(e===U.TUIConstants.TUILogin.EVENT.LOGIN_STATE_CHANGED)if(t===U.TUIConstants.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS){const{chat:_,userID:D,userSig:B,SDKAppID:p}=U.TUILogin.getContext();await((s=this._callService)==null?void 0:s.init({tim:_,userID:D,userSig:B,sdkAppID:p,isFromChat:!0,component:Te.TIM_CALL_KIT})),(o=this._callService)==null||o.setIsFromChat(!0),(A=this._callService)==null||A.setLogLevel(Qe.NORMAL),this._addListenChatEvent()}else t===U.TUIConstants.TUILogin.EVENT_SUB_KEY.USER_LOGOUT_SUCCESS&&(this._removeListenChatEvent(),await((I=this._callService)==null?void 0:I.destroyed()));if((l=U.TUIConstants.TUIChat)!=null&&l.EVENT&&e===U.TUIConstants.TUIChat.EVENT.CHAT_STATE_CHANGED&&t===U.TUIConstants.TUIChat.EVENT_SUB_KEY.CHAT_OPENED){if((E=this._callService)==null||E.setCurrentGroupId((i==null?void 0:i.groupID)||""),ae.getData(r.CALL,a.CALL_STATUS)!==d.IDLE)return;const _=(C=this._callService)==null?void 0:C.getCurrentGroupId(),D=_?await this.getGroupAttributes((h=this._callService)==null?void 0:h.getTim(),_):{};await this.updateStoreBasedOnGroupAttributes(D)}}catch(_){console.error(`${a.PREFIX}TUICore onNotifyEvent failed, error: ${_}.`)}}async updateStoreBasedOnGroupAttributes(e){var t,i,s,o;(s=(i=(t=this._callService)==null?void 0:t.getTUICallEngineInstance())==null?void 0:i.reportLog)==null||s.call(i,{name:"TUICallKit.getJoinGroupCallInfo.success",data:{groupAttributes:e}});try{const{call_id:A="",group_id:I="",room_id:l=0,room_id_type:E=0,call_media_type:C=a.UNKNOWN,user_list:h}=e[a.INNER_ATTR_KIT_INFO]?JSON.parse(e[a.INNER_ATTR_KIT_INFO]):{};let _=(h||[]).map(B=>B.userid);_.length>0&&(_=await Z(_,(o=this._callService)==null?void 0:o.getTim()));const D={[a.CALL_ID]:A,[a.GROUP_ID]:I,[a.GROUP_CALL_MEMBERS]:_,[a.ROOM_ID]:l,[a.CALL_MEDIA_TYPE]:ct[C],[a.ROOM_ID_TYPE]:E};ae.updateStore(D,r.CALL)}catch(A){console.warn(`${a.PREFIX}updateStoreBasedOnGroupAttributes fail, error: ${A}`)}}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 s;const t=Le(e.payload.data),i=Le(t==null?void 0:t.data);return(i==null?void 0:i.line_busy)==="line_busy"||(i==null?void 0:i.line_busy)===""||((s=i==null?void 0:i.data)==null?void 0:s.message)==="lineBusy"}async getCallKitMessage(e,t){var _,D,B,p;const i=Le(e.payload.data);if((i==null?void 0:i.businessID)!==1)return{};let s="";const o=Le(i==null?void 0:i.data),A=o.call_type,I=i.inviteeList,l=(_=o==null?void 0:o.data)==null?void 0:_.inviter,E=ae.getData(r.CALL,a.LOCAL_USER_INFO).userId,C=l===E,h=(D=o==null?void 0:o.data)==null?void 0:D.cmd;switch(i==null?void 0:i.actionType){case x.INVITE:{s=P[h]({callDuration:je(o==null?void 0:o.call_end)});break}case x.CANCEL_INVITE:s=C?"Call Cancel":"Other Side Cancel";break;case x.ACCEPT_INVITE:["switchToAudio","switchToVideo"].includes(h)?s=(B=P==null?void 0:P[h])==null?void 0:B.call(P):s=H("Answered");break;case x.REJECT_INVITE:this.isLineBusy(e)?s=C?"Line Busy":"Other Side Line Busy":s=C?"Other Side Decline":"Decline";break;case x.INVITE_TIMEOUT:["switchToAudio","switchToVideo"].includes(h)?s=(p=P==null?void 0:P[h])==null?void 0:p.call(P):s=C?"Other Side No Answer":"No answer";break}return{messageCardContent:s,callMediaType:A,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(ye.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(ye.EVENT.GROUP_ATTRIBUTES_UPDATED,this._handleGroupAttributesUpdated,this)}async _handleTUICoreOnClick(e,t){var i;try{const s=ae.getData(r.CALL,a.IS_FORCE_USE_V2_API),{groupID:o,userIDList:A=[],version:I="",...l}=e;if(s){await this._useV2API({...e,type:t});return}if(I==="v3"){await((i=this._callService)==null?void 0:i.calls({chatGroupID:o,userIDList:A,type:t,...l}));return}await this._useV2API({...e,type:t})}catch(s){console.debug(s)}}async _useV2API(e){var A,I;const{groupID:t,userIDList:i=[],type:s,...o}=e||{};t?await((A=this._callService)==null?void 0:A.groupCall({groupID:t,userIDList:i,type:s,...o})):i.length===1&&await((I=this._callService)==null?void 0:I.call({userID:i[0],type:s,...o}))}async _handleGroupAttributesUpdated(e){var o;if(ae.getData(r.CALL,a.CALL_STATUS)!==d.IDLE)return;const t=(e==null?void 0:e.data)||{},{groupID:i="",groupAttributes:s={}}=t;i===((o=this._callService)==null?void 0:o.getCurrentGroupId())&&await this.updateStoreBasedOnGroupAttributes(s)}}function kt(n){return n=n||new Map,{all:n,on(e,t){const i=n.get(e);i?i.push(t):n.set(e,[t])},off(e,t){const i=n.get(e);i&&(t?i.splice(i.indexOf(t)>>>0,1):n.set(e,[]))},emit(e,t){let i=n.get(e);i&&i.slice().map(s=>{s(t)}),i=n.get("*"),i&&i.slice().map(s=>{s(e,t)})}}}const tt={TRANSCRIPTION:"transcription"},Se={ON_RECV_CUSTOM_CMD_MESSAGE:"onRecvCustomCmdMsg",CUSTOM_MESSAGE_ASR_ID:1,USER_SPEAK:1e4};let Yt=class{constructor(){this.translationInfoList=[],this.emitter=kt(),this.trtcCloudInstance=null}initASR(e){const{trtcCloudInstance:t,getNickName:i}=e;this.getNickName=i,this.trtcCloudInstance=t,this.trtcCloudInstance.on(Se.ON_RECV_CUSTOM_CMD_MESSAGE,this.handleCustomMessage,this)}on(e,t){this.emitter.on(e,t)}emit(e,t){this.emitter.emit(e,t)}off(e,t){this.emitter.off(e,t)}destroyASR(){this.trtcCloudInstance.off(Se.ON_RECV_CUSTOM_CMD_MESSAGE,this.handleCustomMessage,this),this.translationInfoList=[],this.trtcCloudInstance=null}handleAIMessage(e){if((e==null?void 0:e.type)!==Se.USER_SPEAK)return;const{sender:t="",payload:i}=e,{text:s="",translation_text:o="",end:A,roundid:I,translation_language:l=""}=i;if(!I)return;const E=this.translationInfoList.find(C=>C.roundId===I);if(E){E.text=s||E.text,E.end=A;const C=(E.translation||[]).find(h=>h.language===l);C?C.content=o:l&&E.translation.push({language:l,content:o})}else{const h={roundId:I,sender:t,text:s,end:A,translation:l?[{language:l,content:o}]:[]};this.translationInfoList.push(h);for(let _=0;_<this.translationInfoList.length;_++)this.translationInfoList[_].nick||this.getNickName(t).then(D=>{this.translationInfoList[_].nick=(D==null?void 0:D.nick)||""})}if(this.emit(tt.TRANSCRIPTION,{subtitleInfoList:this.translationInfoList}),A){const C=I;setTimeout(()=>{var h;((h=this==null?void 0:this.translationInfoList)==null?void 0:h.length)>0&&(this.translationInfoList=this.translationInfoList.filter(_=>_.roundId===C),this.emit(tt.TRANSCRIPTION,{subtitleInfoList:this.translationInfoList}))},8e3)}}handleCustomMessage(e,t,i,s){if(t===Se.CUSTOM_MESSAGE_ASR_ID){const o=new TextDecoder().decode(s),A=JSON.parse(o||"");this.handleAIMessage(A)}}};lt.version;const ri="",it=new Yt;class ee{constructor(){this._tuiCallEngine=null,this._imInstance=null}static getInstance(){return ee.instance||(ee.instance=new ee),ee.instance}enableAISubtitle(e){var s,o;(o=(s=this._tuiCallEngine)==null?void 0:s.reportLog)==null||o.call(s,{name:"TUICallKit.enableAISubtitle.start",data:{enable:e}});const t=this._tuiCallEngine.getTRTCCloudInstance(),i=async A=>{const I=await Z([A],this._imInstance);return I.length?I[0]:[]};e?it.initASR({trtcCloudInstance:t,getNickName:i}):it.destroyASR()}setEngineInstance(e){this._tuiCallEngine=e}setImInstance(e){this._imInstance=e}}const Ht=0,Jt=1,at=2;function zt({retryFunction:n,settings:e,onError:t,onRetrying:i,onRetryFailed:s,context:o}){return function(...A){const I=e.retries||5;let l=0,E=-1,C=Ht;const h=async(_,D)=>{const B=o||this;try{const p=await n.apply(B,A);l=0,_(p)}catch(p){const Q=()=>{clearTimeout(E),l=0,C=at,D(p)},N=()=>{C!==at&&l<I?(l++,C=Jt,he(i)&&i.call(B,l,Q),E=setTimeout(()=>{E=-1,h(_,D)},ue(e.timeout)?1e3:e.timeout)):(Q(),he(s)&&s.call(B,p))};he(t)?t.call(B,p,N,D,A):N()}};return new Promise(h)}}function qt(n){return function(e,t,i){const{retries:s=5,timeout:o=2e3,onError:A,onRetrying:I,onRetryFailed:l}=n,E=zt({retryFunction:i.value,settings:{retries:s,timeout:o},onError:A,onRetrying:I,onRetryFailed:l,context:null});return i.value=function(...C){return E.apply(this,C)},i}}var Xt=Object.defineProperty,xt=Object.getOwnPropertyDescriptor,jt=(n,e,t,i)=>{for(var s=i>1?void 0:i?xt(e,t):e,o=n.length-1,A;o>=0;o--)(A=n[o])&&(s=(i?A(e,t,s):A(s))||s);return i&&s&&Xt(e,t,s),s};const L=_e.getInstance(),Wt=J.getInstance(),st=class le{constructor(e){this._callService=e.callService}static getInstance(e){return le.instance||(le.instance=new le(e)),le.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(u.TUICallEvent.ERROR,this._handleError,this),e.on(u.TUICallEvent.ON_CALL_RECEIVED,this._handleNewInvitationReceived,this),(i=u.TUICallEvent)!=null&&i.ON_CALL_BEGIN&&e.on(u.TUICallEvent.ON_CALL_BEGIN,this._handleOnCallBegin,this),e.on(u.TUICallEvent.USER_ENTER,this._handleUserEnter,this),e.on(u.TUICallEvent.USER_LEAVE,this._handleUserLeave,this),e.on(u.TUICallEvent.REJECT,this._handleInviteeReject,this),e.on(u.TUICallEvent.NO_RESP,this._handleNoResponse,this),e.on(u.TUICallEvent.LINE_BUSY,this._handleLineBusy,this),e.on(u.TUICallEvent.ON_CALL_NOT_CONNECTED,this._handleCallNotConnected,this),e.on(u.TUICallEvent.ON_USER_INVITING,this._handleOnUserInviting,this),e.on(u.TUICallEvent.SDK_READY,this._handleSDKReady,this),e.on(u.TUICallEvent.KICKED_OUT,this._handleKickedOut,this),e.on(u.TUICallEvent.MESSAGE_SENT_BY_ME,this._messageSentByMe,this),u.TUICallEvent.CALL_MESSAGE&&e.on(u.TUICallEvent.CALL_MESSAGE,this._handleCallMessage,this),u.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED&&e.on(u.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED,this._handleNetworkQuality,this),e.on(u.TUICallEvent.USER_VIDEO_AVAILABLE,this._handleUserVideoAvailable,this),e.on(u.TUICallEvent.USER_AUDIO_AVAILABLE,this._handleUserAudioAvailable,this),e.on(u.TUICallEvent.CALL_END,this._handleCallingEnd,this),e.on(u.TUICallEvent.CALL_MODE,this._handleCallTypeChange,this),e.on(u.TUICallEvent.USER_UPDATE,this._handleUserUpdate,this)}removeListenTuiCallEngineEvent(){var t,i;const e=(t=this._callService)==null?void 0:t.getTUICallEngineInstance();e.off(u.TUICallEvent.ERROR,this._handleError,this),e.off(u.TUICallEvent.ON_CALL_RECEIVED,this._handleNewInvitationReceived,this),(i=u.TUICallEvent)!=null&&i.ON_CALL_BEGIN&&e.off(u.TUICallEvent.ON_CALL_BEGIN,this._handleOnCallBegin,this),e.off(u.TUICallEvent.USER_ENTER,this._handleUserEnter,this),e.off(u.TUICallEvent.USER_LEAVE,this._handleUserLeave,this),e.off(u.TUICallEvent.REJECT,this._handleInviteeReject,this),e.off(u.TUICallEvent.NO_RESP,this._handleNoResponse,this),e.off(u.TUICallEvent.LINE_BUSY,this._handleLineBusy,this),e.off(u.TUICallEvent.ON_CALL_NOT_CONNECTED,this._handleCallNotConnected,this),e.off(u.TUICallEvent.ON_USER_INVITING,this._handleOnUserInviting,this),e.off(u.TUICallEvent.SDK_READY,this._handleSDKReady,this),e.off(u.TUICallEvent.KICKED_OUT,this._handleKickedOut,this),e.off(u.TUICallEvent.MESSAGE_SENT_BY_ME,this._messageSentByMe,this),u.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED&&e.off(u.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED,this._handleNetworkQuality,this),e.off(u.TUICallEvent.USER_VIDEO_AVAILABLE,this._handleUserVideoAvailable,this),e.off(u.TUICallEvent.USER_AUDIO_AVAILABLE,this._handleUserAudioAvailable,this),e.off(u.TUICallEvent.CALL_END,this._handleCallingEnd,this),e.off(u.TUICallEvent.CALL_MODE,this._handleCallTypeChange,this),e.off(u.TUICallEvent.USER_UPDATE,this._handleUserUpdate,this)}_callerChangeToConnected(){var i;const e=L.getData(r.CALL,a.CALL_ROLE);L.getData(r.CALL,a.CALL_STATUS)===d.CALLING&&e===G.CALLER&&(L.update(r.CALL,a.CALL_STATUS,d.CONNECTED),(i=this._callService)==null||i.startTimer())}_unNormalEventsManager(e,t){var o,A;console.log(`${a.PREFIX}${t} event data: ${JSON.stringify(e)}.`);const i=L.getData(r.CALL,a.IS_GROUP),s=L.getData(r.CALL,a.REMOTE_USER_INFO_LIST);switch(t){case u.TUICallEvent.REJECT:case u.TUICallEvent.LINE_BUSY:{const{userID:I}=M(e);let l=t===u.TUICallEvent.REJECT?w.OTHER_SIDE_REJECT_CALL:w.OTHER_SIDE_LINE_BUSY,E="";i&&(E=(s.find(C=>C.userId===I)||{}).displayUserInfo||I,l=t===u.TUICallEvent.REJECT?w.REJECT_CALL:w.IN_BUSY),L.update(r.CALL,a.TOAST_INFO,{content:{key:l,options:{userList:E}}}),I&&we([I]),L.getData(r.CALL,a.REMOTE_USER_INFO_LIST).length===0&&((o=this._callService)==null||o._resetCallStore());break}case u.TUICallEvent.NO_RESP:{const{userIDList:I=[]}=M(e),l=i?w.TIMEOUT:w.CALL_TIMEOUT,E=I.map(C=>(s.find(_=>_.userId===C)||{}).displayUserInfo||C);L.update(r.CALL,a.TOAST_INFO,{content:{key:l,options:{userList:E.join()}}}),I.length>0&&we(I);break}case u.TUICallEvent.ON_CALL_NOT_CONNECTED:{(A=this._callService)==null||A._resetCallStore();break}}}_handleError(e){var A;const{code:t,message:i}=e||{},s=Object.values(me).indexOf(t);let o="";if(s!==-1){const I=Object.keys(me)[s];o=H(Pe[I]),o&&L.update(r.CALL,a.TOAST_INFO,{content:Pe[I],type:a.ERROR})}(A=this._callService)==null||A.executeExternalAfterCalling(),console.error(`${a.PREFIX}_handleError, errorCode: ${t}; errorMessage: ${o||i}.`)}async _handleNewInvitationReceived(e){var De,se,ne,re;console.log(`${a.PREFIX}onCallReceived event data: ${JSON.stringify(e)}.`);const{callerId:t="",callMediaType:i,inviteData:s={},calleeIdList:o=[],chatGroupID:A="",roomID:I,strRoomID:l}=M(e),E=L.getData(r.CALL,a.LOCAL_USER_INFO),C=[t,...o.filter(te=>te!==E.userId)],h=i||s.callType,_=h===g.AUDIO?w.CALLEE_CALLING_AUDIO_MSG:w.CALLEE_CALLING_VIDEO_MSG;let D={[a.CALL_ROLE]:G.CALLEE,[a.IS_GROUP]:!!A||o.length>1,[a.CALL_STATUS]:d.CALLING,[a.CALL_MEDIA_TYPE]:h,[a.CALL_TIPS]:_,[a.CALLER_USER_INFO]:{userId:t},[a.GROUP_ID]:A};be();const B={enableCamera:h===g.VIDEO,enableMic:!0};D={...D,[a.PUSHER]:B},this._callService.openCamera(h===g.VIDEO),this._callService.openMicrophone();const p={microphone:!0,camera:h===g.VIDEO};this._callService._preDevicePermission=await this._callService._tuiCallEngine.deviceCheck(p),et(I,l),L.updateStore(D,r.CALL),(De=this._callService)==null||De.executeExternalBeforeCalling(),(se=this._callService)!=null&&se.statusChanged&&((ne=this._callService)==null||ne.statusChanged({oldStatus:F.IDLE,newStatus:F.BE_INVITED}));const Q=await Z(C,(re=this._callService)==null?void 0:re.getTim()),[N]=Q.filter(te=>te.userId===t);Q.length>0&&L.updateStore({[a.REMOTE_USER_INFO_LIST]:Q,[a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]:Q,[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}},r.CALL)}async _handleOnCallBegin(e){this._callerChangeToConnected(),L.update(r.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&&L.update(r.CALL,a.PLAYER,i.playerList),await this._addUserToRemoteUserInfoList(t);let s=L.getData(r.CALL,a.REMOTE_USER_INFO_LIST);s=s.map(o=>(o.userId===t&&(o.isEnter=!0),o)),s.length>0&&(L.update(r.CALL,a.REMOTE_USER_INFO_LIST,s),L.update(r.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,s),Wt.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&&L.update(r.CALL,a.PLAYER,t.playerList),L.getData(r.CALL,a.IS_GROUP)){const o=(L.getData(r.CALL,a.REMOTE_USER_INFO_LIST).find(A=>A.userId===i)||{}).displayUserInfo||i;L.update(r.CALL,a.TOAST_INFO,{content:{key:w.END_CALL,options:{userList:o}}})}i&&we([i])}_handleInviteeReject(e){this._unNormalEventsManager(e,u.TUICallEvent.REJECT)}_handleNoResponse(e){this._unNormalEventsManager(e,u.TUICallEvent.NO_RESP)}_handleLineBusy(e){this._unNormalEventsManager(e,u.TUICallEvent.LINE_BUSY)}_handleCallNotConnected(e){var t,i,s;(i=(t=this==null?void 0:this._callService)==null?void 0:t._cleanupAvoidRepeatCallState)==null||i.call(t),(s=this._callService)==null||s.executeExternalAfterCalling(),this._unNormalEventsManager(e,u.TUICallEvent.ON_CALL_NOT_CONNECTED)}async _handleOnUserInviting(e){const{userID:t}=M(e);t&&(L.update(r.CALL,a.IS_GROUP,!0),t!==L.getData(r.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=L.getData(r.CALL,a.LOCAL_USER_INFO);t=await Qt(t.userId,(i=this._callService)==null?void 0:i.getTim()),L.update(r.CALL,a.LOCAL_USER_INFO,t),L.update(r.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,t)}_handleKickedOut(e){var t,i,s;console.log(`${a.PREFIX}kickOut event data: ${JSON.stringify(e)}.`),(t=this._callService)!=null&&t.kickedOut&&((i=this._callService)==null||i.kickedOut(e)),L.update(r.CALL,a.CALL_TIPS,w.KICK_OUT),(s=this._callService)==null||s._resetCallStore()}_messageSentByMe(e){var i,s;const t=e==null?void 0:e.data;(i=this._callService)!=null&&i.onMessageSentByMe&&((s=this._callService)==null||s.onMessageSentByMe(t))}_handleCallMessage(e){const t=M(e);this._callService._chatCombine.callTUIService({message:t})}_handleCallTypeChange(e){var s;const{newCallType:t,type:i}=M(e);L.update(r.CALL,a.CALL_MEDIA_TYPE,t||i),(s=this._callService)==null||s.setSoundMode(v.EAR)}_handleNetworkQuality(e){const{networkQualityList:t=[]}=M(e);L.update(r.CALL,a.NETWORK_STATUS,t);const i=L.getData(r.CALL,a.IS_GROUP),s=L.getData(r.CALL,a.LOCAL_USER_INFO),o=L.getData(r.CALL,a.REMOTE_USER_INFO_LIST);if(!i){if(t.find(l=>{var E;return((E=o[0])==null?void 0:E.userId)===(l==null?void 0:l.userId)&&(l==null?void 0:l.quality)>=Ke})){L.update(r.CALL,a.CALL_TIPS,w.REMOTE_NETWORK_IS_POOR);return}if(t.find(l=>(s==null?void 0:s.userId)===(l==null?void 0:l.userId)&&(l==null?void 0:l.quality)>=Ke)){L.update(r.CALL,a.CALL_TIPS,w.LOCAL_NETWORK_IS_POOR);return}}}async _startRemoteView(e){var t;if(!e){console.warn(`${a.PREFIX}_startRemoteView userID is empty`);return}try{const i=L.getData(r.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 s=L.getData(r.CALL,a.REMOTE_USER_INFO_LIST);s=s.map(o=>{if(o.userId===i){if(t===a.AUDIO)return{...o,isAudioAvailable:e};if(t===a.VIDEO)return{...o,isVideoAvailable:e}}return o}),s.length>0&&(L.update(r.CALL,a.REMOTE_USER_INFO_LIST,s),L.update(r.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,s))}async _handleUserVideoAvailable(e){const{userID:t,isVideoAvailable:i}=M(e);console.log(`${a.PREFIX}_handleUserVideoAvailable event data: ${JSON.stringify(e)}.`),this._setRemoteUserInfoAudioVideoAvailable(i,a.VIDEO,t);try{i&&await this._startRemoteView(t)}catch(s){console.error(`${a.PREFIX}_startRemoteView failed, error: ${s}.`)}}_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=L.getData(r.CALL,a.LOCAL_USER_INFO);let s=L.getData(r.CALL,a.REMOTE_USER_INFO_LIST);const[o]=t.filter(l=>l.userId===i.userId),A=t.reduce((l,E)=>E.userId!==i.userId?{...l,[E.userId]:E.audioVolume}:l,{});i.volume=o.audioVolume,s=s.map(l=>({...l,volume:A[l.userId]}));const I={[a.LOCAL_USER_INFO]:i,[a.REMOTE_USER_INFO_LIST]:s};L.updateStore(I,r.CALL)}catch(t){console.debug(t)}}_handleDeviceUpdate(e){const{cameraList:t,microphoneList:i,speakerList:s,currentCamera:o,currentMicrophone:A,currentSpeaker:I}=e;L.update(r.CALL,a.DEVICE_LIST,{cameraList:t,microphoneList:i,speakerList:s,currentCamera:o,currentMicrophone:A,currentSpeaker:I})}_handleUserUpdate(e){const t=M(e);t!=null&&t.pusher&&L.update(r.CALL,a.PUSHER,t.pusher),t!=null&&t.playerList&&L.update(r.CALL,a.PLAYER,t.playerList)}async _addUserToRemoteUserInfoList(e){var s;let t=L.getData(r.CALL,a.REMOTE_USER_INFO_LIST);if(!t.find(o=>(o==null?void 0:o.userId)===e)){t.push({userId:e}),L.update(r.CALL,a.REMOTE_USER_INFO_LIST,t),L.update(r.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,t);const[o]=await Z([e],(s=this._callService)==null?void 0:s.getTim());t=L.getData(r.CALL,a.REMOTE_USER_INFO_LIST),t.forEach(A=>{(A==null?void 0:A.userId)===e&&(A=Object.assign(A,o))}),L.update(r.CALL,a.REMOTE_USER_INFO_LIST,t),L.update(r.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,t)}}};jt([qt({retries:5,timeout:200,onRetrying(n){console.warn(`${a.PREFIX}_startRemoteView, retrying [${n}]`)}})],st.prototype,"_startRemoteView",1);let Zt=st;var $t=Object.defineProperty,ei=Object.getOwnPropertyDescriptor,S=(n,e,t,i)=>{for(var s=i>1?void 0:i?ei(e,t):e,o=n.length-1,A;o>=0;o--)(A=n[o])&&(s=(i?A(e,t,s):A(s))||s);return i&&s&&$t(e,t,s),s};const ve=qe.getInstance(),c=_e.getInstance(),V=J.getInstance();V.setTUIStore(c);const Me=ee.getInstance(),nt="4.0.12",f=class ce{constructor(){this._tim=null,this._TUICore=null,this._timerId=-1,this._startTimeStamp=Ne(),this._bellContext=null,this._isFromChat=!1,this._currentGroupId="",this._preDevicePermission=!1,this._offlinePushInfo=null,this._permissionCheckTimer=null,this._chatCombine=null,this._engineEventHandler=null,this._isInitialized=!1,this._handleCallStatusChange=async e=>{var t,i;try{const s={callRole:c.getData(r.CALL,a.CALL_ROLE),callStatus:c.getData(r.CALL,a.CALL_STATUS)};if(this._bellContext.setBellProperties(s),e===d.CALLING)await((t=this==null?void 0:this._bellContext)==null?void 0:t.play());else{if(e===d.CONNECTED){const o=c.getData(r.CALL,a.IS_GROUP),A=c.getData(r.CALL,a.CALL_MEDIA_TYPE),I=c.getData(r.CALL,a.REMOTE_USER_INFO_LIST),l=o?F.DIALING_GROUP:F.DIALING_C2C;c.update(r.CALL,a.CALL_TIPS,""),this.statusChanged&&this.statusChanged({oldStatus:l,newStatus:ge()}),!o&&A===g.VIDEO&&this.switchScreen(I[0].domId)}await((i=this==null?void 0:this._bellContext)==null?void 0:i.stop())}}catch(s){console.warn(`${a.PREFIX}handleCallStatusChange, ${s}.`)}},console.log(`${a.PREFIX}version: ${nt}`),this._wasmReadyPromise=new Promise(e=>{this._wasmReadyResolve=e}),this._loadWasm(),this._watchTUIStore(),this._engineEventHandler=Zt.getInstance({callService:this}),this._chatCombine=$.getInstance({callService:this})}static getInstance(){return ce.instance||(ce.instance=new ce),ce.instance}_loadWasm(){u.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,i;try{if(this._tuiCallEngine)return;let{userID:s,tim:o,userSig:A,sdkAppID:I,SDKAppID:l,isFromChat:E,component:C=Te.TUI_CALL_KIT}=e;this._TUICore&&(I=this._TUICore.SDKAppID,o=this._TUICore.tim),this._tim=o,console.log(`${a.PREFIX}init sdkAppId: ${I||l}, userId: ${s}`),this._tuiCallEngine=u.TUICallEngine.createInstance({tim:o,sdkAppID:I||l,callkitVersion:nt,isFromChat:E||!1,component:C}),V.setEngineInstance(this._tuiCallEngine),this._addListenTuiCallEngineEvent(),this._bellContext=new Mt,c.update(r.CALL,a.LOCAL_USER_INFO,{userId:s}),c.update(r.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{userId:s}),V.updateViewBackgroundUserId("local"),Me.setEngineInstance(this._tuiCallEngine),Me.setImInstance(this.getTim()),this.enableAISubtitle(!0),await this._tuiCallEngine.login({userID:s,userSig:A,assetsPath:""});const h=c.getData(r.CALL,a.CUSTOM_UI_CONFIG);(i=(t=this._tuiCallEngine)==null?void 0:t.reportLog)==null||i.call(t,{name:"TUICallkit.init",data:{uiConfig:h}})}catch(s){throw console.error(`${a.PREFIX}init failed, error: ${s}.`),s}}async destroyed(){var e;try{this._isInitialized=!1;const t=c.getData(r.CALL,a.CALL_STATUS);if(t!==d.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(c.getData(r.CALL,a.CALL_STATUS)===d.IDLE)try{const{type:t,userID:i,offlinePushInfo:s}=e;if(c.getData(r.CALL,a.CALL_STATUS)!==d.IDLE)return;await this._updateCallStoreBeforeCall(t,[{userId:i}]),this.executeExternalBeforeCalling(),e.offlinePushInfo={...this.getDefaultOfflinePushInfo(),...s};const o=await this._tuiCallEngine.call(e);await this._updateCallStoreAfterCall([i],o)}catch(t){this._handleCallError(t,"call")}}async groupCall(e){if(c.getData(r.CALL,a.CALL_STATUS)===d.IDLE)try{const{userIDList:t,type:i,groupID:s,offlinePushInfo:o}=e;if(c.getData(r.CALL,a.CALL_STATUS)!==d.IDLE)return;const A=t.map(l=>({userId:l}));await this._updateCallStoreBeforeCall(i,A,s),this.executeExternalBeforeCalling(),e.offlinePushInfo={...this.getDefaultOfflinePushInfo(),...o};const I=await this._tuiCallEngine.groupCall(e);await this._updateCallStoreAfterCall(t,I)}catch(t){this._handleCallError(t,"groupCall")}}async inviteUser(e){if(c.getData(r.CALL,a.CALL_STATUS)!==d.IDLE)try{const{userIDList:t}=e;let i=await Z(t,this.getTim());const s=c.getData(r.CALL,a.REMOTE_USER_INFO_LIST);if(t.filter(A=>!s.some(I=>I.userId===A)).length===0)return;c.update(r.CALL,a.REMOTE_USER_INFO_LIST,[...s,...i]),c.update(r.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,[...s,...i]),this._tuiCallEngine&&await this._tuiCallEngine.inviteUser(e)}catch(t){console.error(`${a.PREFIX}inviteUser failed, error: ${t}.`)}}async joinInGroupCall(e){if(c.getData(r.CALL,a.CALL_STATUS)!==d.CONNECTED)try{const t={[a.CALL_ROLE]:G.CALLEE,[a.IS_GROUP]:!0,[a.CALL_STATUS]:d.CONNECTED,[a.CALL_MEDIA_TYPE]:e.type,[a.GROUP_ID]:e.groupID,[a.ROOM_ID]:e.roomID};c.updateStore(t,r.CALL);const i=await this._tuiCallEngine.joinInGroupCall(e),s=this._getFeatureButtonDefaultState(K.Camera)===X.Close;e.type===g.VIDEO&&!s&&await this.openCamera(a.LOCAL_VIDEO),c.update(r.CALL,a.IS_CLICKABLE,!0),this.startTimer(),c.update(r.CALL,a.PUSHER,i),this.setSoundMode(e.type===g.AUDIO?v.EAR:v.SPEAKER);const o=c.getData(r.CALL,a.LOCAL_USER_INFO);c.update(r.CALL,a.LOCAL_USER_INFO,{...o,isEnter:!0}),c.update(r.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...o,isEnter:!0}),k(!0,a.AUDIO)}catch(t){this._handleCallError(t,"joinInGroupCall")}}async calls(e){if(c.getData(r.CALL,a.CALL_STATUS)===d.IDLE)try{const{userIDList:t,type:i,chatGroupID:s,offlinePushInfo:o}=e;if(c.getData(r.CALL,a.CALL_STATUS)!==d.IDLE)return;const A=t.map(l=>({userId:l}));await this._updateCallStoreBeforeCall(i,A,s),this.executeExternalBeforeCalling(),e.offlinePushInfo={...this.getDefaultOfflinePushInfo(),...o};const I=await this._tuiCallEngine.calls(e);await this._updateCallStoreAfterCall(t,I)}catch(t){this._handleCallError(t,"calls")}}async join(e){if(c.getData(r.CALL,a.CALL_STATUS)!==d.CONNECTED)try{const t=await this._tuiCallEngine.join(e);c.update(r.CALL,a.IS_CLICKABLE,!0),this.startTimer();const i={[a.CALL_ROLE]:G.CALLEE,[a.IS_GROUP]:!0,[a.CALL_STATUS]:d.CONNECTED,[a.CALL_MEDIA_TYPE]:c.getData(r.CALL,a.CALL_MEDIA_TYPE)||g.AUDIO};c.updateStore(i,r.CALL),c.update(r.CALL,a.PUSHER,t),this.setSoundMode(e.type===g.AUDIO?v.EAR:v.SPEAKER);const s=c.getData(r.CALL,a.LOCAL_USER_INFO);c.update(r.CALL,a.LOCAL_USER_INFO,{...s,isEnter:!0}),c.update(r.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...s,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){c.update(r.CALL,a.ENABLE_FLOAT_WINDOW,e)}async setSelfInfo(e){const{nickName:t,avatar:i}=e;try{await this._tuiCallEngine.setSelfInfo(t,i)}catch(s){console.error(`${a.PREFIX}setSelfInfo failed, error: ${s}.`)}}async enableVirtualBackground(e){c.update(r.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)}enableAISubtitle(e){Me.enableAISubtitle(e)}callExperimentalAPI(e){var o,A;const t=JSON.parse(e);if(t===e)return;const{api:i,params:s}=t;if(!(!i||!s))try{switch(i){case"forceUseV2API":const{enable:I}=s;c.update(r.CALL,a.IS_FORCE_USE_V2_API,!!I);break;default:break}}catch(I){(A=(o=this._tuiCallEngine)==null?void 0:o.reportLog)==null||A.call(o,{name:"TUICallKit.callExperimentalAPI.fail",data:{error:I}})}}async accept(){var t,i,s,o,A,I;const e=c.getData(r.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!==d.CONNECTED)try{const E={microphone:!0,camera:c.getData(r.CALL,a.CALL_MEDIA_TYPE)===g.VIDEO},C=await this._tuiCallEngine.deviceCheck(E);C&&!this._preDevicePermission&&(c.update(r.CALL,a.PUSHER_ID,a.NEW_PUSHER),this._preDevicePermission=C),c.update(r.CALL,a.CALL_STATUS,d.CONNECTED);const h=await this._tuiCallEngine.accept();if(h){(o=this._chatCombine)==null||o.callTUIService({message:(s=h==null?void 0:h.data)==null?void 0:s.message}),c.update(r.CALL,a.IS_CLICKABLE,!0),this.startTimer();const _=c.getData(r.CALL,a.CALL_MEDIA_TYPE),D=this._getFeatureButtonDefaultState(K.Camera)===X.Close;_===g.VIDEO&&!D&&await this.openCamera(a.LOCAL_VIDEO),h.pusher&&c.update(r.CALL,a.PUSHER,h.pusher),this.setSoundMode(_===g.AUDIO?v.EAR:v.SPEAKER);const B=c.getData(r.CALL,a.LOCAL_USER_INFO);c.update(r.CALL,a.LOCAL_USER_INFO,{...B,isEnter:!0}),c.update(r.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...B,isEnter:!0}),k(!0,a.AUDIO)}}catch(l){if((I=(A=this._tuiCallEngine)==null?void 0:A.reportLog)==null||I.call(A,{name:"TUICallKit.accept.fail",level:"error",error:l}),We(l))return;Ge(l,g.AUDIO,this._tuiCallEngine),this._resetCallStore()}}async hangup(){if(c.getData(r.CALL,a.CALL_STATUS)!==d.IDLE){try{const e=await this._tuiCallEngine.hangup();e==null||e.forEach(t=>{var i,s;(t==null?void 0:t.code)===0&&((s=this._chatCombine)==null||s.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(c.getData(r.CALL,a.CALL_STATUS)!==d.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(ve.isH5||ve.isWeChat){const i=c.getData(r.CALL,a.CAMERA_POSITION)===Y.FRONT;this._tuiCallEngine.openCamera(e,i)}else await this._tuiCallEngine.openCamera(e);k(!0,a.VIDEO)}catch(t){Ge(t,g.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&&c.update(r.CALL,a.BIG_SCREEN_USER_ID,e)}async switchCallMediaType(){var e,t;try{const i=c.getData(r.CALL,a.CALL_MEDIA_TYPE);if(i===g.AUDIO){console.warn(`${a.PREFIX}switchCallMediaType failed, ${i} not support.`);return}const s=await this._tuiCallEngine.switchCallMediaType(g.AUDIO);(s==null?void 0:s.code)===0&&((t=this._chatCombine)==null||t.callTUIService({message:(e=s==null?void 0:s.data)==null?void 0:e.message})),c.update(r.CALL,a.CALL_MEDIA_TYPE,g.AUDIO);const A=c.getData(r.CALL,a.IS_GROUP)?F.CALLING_GROUP_VIDEO:F.CALLING_C2C_VIDEO,I=ge();this.statusChanged&&this.statusChanged({oldStatus:A,newStatus:I}),this.setSoundMode(v.EAR)}catch(i){console.error(`${a.PREFIX}switchCallMediaType failed, error: ${i}.`)}}async switchCamera(){const t=c.getData(r.CALL,a.CAMERA_POSITION)===Y.BACK?Y.FRONT:Y.BACK;try{await this._tuiCallEngine.switchCamera(t),c.update(r.CALL,a.CAMERA_POSITION,t)}catch(i){console.error(`${a.PREFIX}_switchCamera failed, error: ${i}.`)}}setSoundMode(e){var t;try{let i=c.getData(r.CALL,a.IS_EAR_PHONE);const s=e||(i?v.SPEAKER:v.EAR);(t=this._tuiCallEngine)==null||t.selectAudioPlaybackDevice(s),e?i=e===v.EAR:i=!i,c.update(r.CALL,a.IS_EAR_PHONE,i)}catch(i){console.error(`${a.PREFIX}setSoundMode failed, error: ${i}.`)}}async setBlurBackground(e){try{c.update(r.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:s,onMessageSentByMe:o,kickedOut:A,statusChanged:I}=e;t&&(this.beforeCalling=t),i&&(this.afterCalling=i),s&&(this.onMinimized=s),o&&(this.onMessageSentByMe=o),A&&(this.kickedOut=A),I&&(this.statusChanged=I)}toggleMinimize(){const e=c.getData(r.CALL,a.IS_MINIMIZED);c.update(r.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 s=c.getData(r.CALL,a.CALL_STATUS),o=c.getData(r.CALL,a.CALL_ROLE);if((i=(t=this._tuiCallEngine)==null?void 0:t.reportLog)==null||i.call(t,{name:"TUICallkit.handleExceptionExit",data:{callStatus:s,callRole:o}}),s===d.IDLE)return;s===d.CALLING&&(o===G.CALLER?await(this==null?void 0:this.hangup()):await(this==null?void 0:this.reject())),s===d.CONNECTED&&await(this==null?void 0:this.hangup()),this==null||this._resetCallStore()}catch(s){console.error(`${a.PREFIX} handleExceptionExit failed, error: ${s}.`)}e&&(e.returnValue="")}handlePusherError(e){var t;((t=e==null?void 0:e.detail)==null?void 0:t.errMsg)==="fail:access denied"&&dt()}setVideoDisplayMode(e){c.update(r.CALL,a.DISPLAY_MODE,e)}async setVideoResolution(e){var t;try{if(!e)return;c.update(r.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=Ne(),this._timerId=fe.run(a.TIMEOUT,this._updateCallDuration.bind(this),{delay:1e3}))}_handleCallError(e,t){if(this._permissionCheckTimer&&clearInterval(this._permissionCheckTimer),!We(e))throw ht(e),Ge(e,g.AUDIO,this._tuiCallEngine),console.error(`${a.PREFIX}${t} failed, error: ${e}.`),this._resetCallStore(),e}async _updateCallStoreBeforeCall(e,t,i){let s=w.CALLER_CALLING_MSG;(i||c.getData(r.CALL,a.IS_MINIMIZED)||t.length>1)&&(s=w.CALLER_GROUP_CALLING_MSG);let o={[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]:s,[a.GROUP_ID]:i};const A={enableCamera:e===g.VIDEO,enableMic:!0};o={...o,[a.PUSHER]:A},c.updateStore(o,r.CALL);const I=await Lt(e,this);console.log(`${a.PREFIX}mini beforeCall return callStatus: ${I}.`),c.update(r.CALL,a.CALL_STATUS,I);const l=await Z(t.map(h=>h.userId),this.getTim());l.length>0&&(c.update(r.CALL,a.REMOTE_USER_INFO_LIST,l),c.update(r.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,l));const E={microphone:!0,camera:e===g.VIDEO};let C=await this._tuiCallEngine.deviceCheck(E);C||(this._permissionCheckTimer&&clearInterval(this._permissionCheckTimer),this._permissionCheckTimer=setInterval(async()=>{C=await this._tuiCallEngine.deviceCheck(E),C&&this._permissionCheckTimer&&(clearInterval(this._permissionCheckTimer),c.update(r.CALL,a.CALL_STATUS,d.CALLING))},500))}async _updateCallStoreAfterCall(e,t){var i,s;if(t){c.update(r.CALL,a.IS_CLICKABLE,!0),et(t==null?void 0:t.roomID,t==null?void 0:t.strRoomID);const o=c.getData(r.CALL,a.CALL_MEDIA_TYPE);(s=this._chatCombine)==null||s.callTUIService({message:(i=t==null?void 0:t.data)==null?void 0:i.message}),t.pusher&&c.update(r.CALL,a.PUSHER,t.pusher),this.setSoundMode(o===g.AUDIO?v.EAR:v.SPEAKER),c.update(r.CALL,a.CALL_STATUS,d.CALLING);const A=this._getFeatureButtonDefaultState(K.Camera)===X.Close;o===g.VIDEO&&!A&&await this.openCamera(a.LOCAL_VIDEO);const I=c.getData(r.CALL,a.LOCAL_USER_INFO);c.update(r.CALL,a.LOCAL_USER_INFO,{...I,isEnter:!0}),c.update(r.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}=c.getData(r.CALL,a.CUSTOM_UI_CONFIG);return(i=t==null?void 0:t[e])==null?void 0:i.state}_updateCallDuration(){const e=Math.round((Ne()-this._startTimeStamp)/1e3),t=je(e);c.update(r.CALL,a.CALL_DURATION,t)}_stopTimer(){this._timerId!==-1&&(fe.clearTask(this._timerId),this._timerId=-1)}_cleanupAllAvoidRepeatCallState(){var t,i;(i=(t=this._tuiCallEngine)==null?void 0:t.reportLog)==null||i.call(t,{name:"TUICallkit._cleanupAllAvoidRepeatCallState",data:{}}),[this.call,this.groupCall,this.calls,this.accept,this.hangup,this.reject].forEach(s=>{var o;(o=s==null?void 0:s.clearCallState)==null||o.call(s,this)})}_resetCallStore(){this._cleanupAllAvoidRepeatCallState();const e=ge();this._stopTimer();let t=Object.keys(Ie).filter(o=>{switch(Ie[o]){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(o=>Ie[o]),c.reset(r.CALL,t),c.getData(r.CALL,a.CALL_STATUS)!==d.IDLE&&c.reset(r.CALL,[a.CALL_STATUS],!0),c.reset(r.CALL,[a.IS_MINIMIZED],!0),c.reset(r.CALL,[a.IS_EAR_PHONE],!0),c.reset(r.CALL,[a.ENABLE_VIRTUAL_BACKGROUND],!0),c.reset(r.CALL,[a.IS_MUTE_SPEAKER],!0),c.update(r.CALL,a.LOCAL_USER_INFO,{...c.getData(r.CALL,a.LOCAL_USER_INFO),isVideoAvailable:!1,isAudioAvailable:!1}),c.update(r.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...c.getData(r.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN),isVideoAvailable:!1,isAudioAvailable:!1}),c.update(r.CALL,a.REMOTE_USER_INFO_LIST,[]),c.update(r.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,[]),c.update(r.CALL,a.CAMERA_POSITION,Y.FRONT);const s=ge();e!==s&&this.statusChanged&&this.statusChanged({oldStatus:e,newStatus:s})}async getGroupMemberList(e,t){const i=c.getData(r.CALL,a.GROUP_ID);return await Vt(i,this.getTim(),e,t)}async getGroupProfile(){const e=c.getData(r.CALL,a.GROUP_ID);return await Kt(e,this.getTim())}_watchTUIStore(){c==null||c.watch(r.CALL,{[a.CALL_STATUS]:this._handleCallStatusChange})}_unwatchTUIStore(){c==null||c.unwatch(r.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=c.getData(r.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())}};S([R(),y(m.init)],f.prototype,"init",1),S([R(),y(m.call),W({engineInstance:!0})],f.prototype,"call",1),S([R(),y(m.groupCall),W({engineInstance:!0})],f.prototype,"groupCall",1),S([R(),y(m.inviteUser),W({engineInstance:!0})],f.prototype,"inviteUser",1),S([R(),y(m.joinInGroupCall),W({engineInstance:!0})],f.prototype,"joinInGroupCall",1),S([R(),W({engineInstance:!0})],f.prototype,"calls",1),S([R(),W({engineInstance:!0})],f.prototype,"join",1),S([y(m.setLanguage)],f.prototype,"setLanguage",1),S([y(m.enableFloatWindow)],f.prototype,"enableFloatWindow",1),S([y(m.setSelfInfo)],f.prototype,"setSelfInfo",1),S([y(m.setCallingBell)],f.prototype,"setCallingBell",1),S([y(m.enableMuteMode)],f.prototype,"enableMuteMode",1),S([R()],f.prototype,"accept",1),S([R()],f.prototype,"hangup",1),S([R()],f.prototype,"reject",1),S([R()],f.prototype,"openCamera",1),S([R()],f.prototype,"closeCamera",1),S([R()],f.prototype,"openMicrophone",1),S([R()],f.prototype,"closeMicrophone",1),S([R()],f.prototype,"switchScreen",1),S([R()],f.prototype,"switchCallMediaType",1),S([R()],f.prototype,"switchCamera",1),S([R()],f.prototype,"setSoundMode",1),S([R()],f.prototype,"setBlurBackground",1),S([y(m.setVideoDisplayMode)],f.prototype,"setVideoDisplayMode",1),S([y(m.setVideoResolution)],f.prototype,"setVideoResolution",1);const ti=f.getInstance(),ii="4.0.12";T.CallMediaType=g,T.CallRole=G,T.FeatureButton=K,T.LayoutMode=Ue,T.NAME=a,T.STATUS=F,T.StoreName=r,T.TUICallKitServer=ti,T.TUIGlobal=ve,T.TUIStore=c,T.Version=ii,T.VideoDisplayMode=z,T.VideoResolution=q,T.t=H,T.uiDesign=V,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})});
