(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(B,I){typeof exports=="object"&&typeof module<"u"?I(exports,require("tuicall-engine-wx"),require("@tencentcloud/tui-core"),require("@tencentcloud/chat")):typeof define=="function"&&define.amd?define(["exports","tuicall-engine-wx","@tencentcloud/tui-core","@tencentcloud/chat"],I):(B=typeof globalThis<"u"?globalThis:B||self,I(B["tuicall-uikit-vue"]={},B.TUICALL_ENGINE_WX,B.TUICore,B.TencentCloudChat))})(this,function(B,I,D,Re){"use strict";var s=(r=>(r.CALL="call",r.CUSTOM="custom",r))(s||{}),g=(r=>(r[r.UNKNOWN=0]="UNKNOWN",r[r.AUDIO=1]="AUDIO",r[r.VIDEO=2]="VIDEO",r))(g||{}),m=(r=>(r.UNKNOWN="unknown",r.CALLEE="callee",r.CALLER="caller",r))(m||{}),d=(r=>(r.IDLE="idle",r.CALLING="calling",r.CONNECTED="connected",r))(d||{}),z=(r=>(r.CONTAIN="contain",r.COVER="cover",r.FILL="fill",r))(z||{}),x=(r=>(r.RESOLUTION_480P="480p",r.RESOLUTION_720P="720p",r.RESOLUTION_1080P="1080p",r))(x||{}),Ge=(r=>(r.EN="en",r["ZH-CN"]="zh-cn",r.JA_JP="ja_JP",r))(Ge||{});const R={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"},tt={unknown:0,audio:1,video:2};var y=(r=>(r.EAR="ear",r.SPEAKER="speaker",r))(y||{}),$=(r=>(r[r.FRONT=0]="FRONT",r[r.BACK=1]="BACK",r))($||{}),K=(r=>(r.Camera="camera",r.Microphone="microphone",r.SwitchCamera="switchCamera",r.InviteUser="inviteUser",r))(K||{}),q=(r=>(r.Open="open",r.Close="close",r))(q||{}),fe=(r=>(r.LocalInLargeView="local",r.RemoteInLargeView="remote",r))(fe||{}),X=(r=>(r[r.INVITE=1]="INVITE",r[r.CANCEL_INVITE=2]="CANCEL_INVITE",r[r.ACCEPT_INVITE=3]="ACCEPT_INVITE",r[r.REJECT_INVITE=4]="REJECT_INVITE",r[r.INVITE_TIMEOUT=5]="INVITE_TIMEOUT",r))(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},at={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 ye=(r=>(r[r.NORMAL=0]="NORMAL",r[r.RELEASE=1]="RELEASE",r[r.WARNING=2]="WARNING",r[r.ERROR=3]="ERROR",r[r.NONE=4]="NONE",r))(ye||{});const ce={CALL_STATUS:"callStatus",CALL_ROLE:"callRole",CALL_MEDIA_TYPE:"callMediaType",LOCAL_USER_INFO:"localUserInfo",LOCAL_USER_INFO_EXCLUDE_VOLUMN:"localUserInfoExcludeVolume",REMOTE_USER_INFO_LIST:"remoteUserInfoList",REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST:"remoteUserInfoExcludeVolumeList",CALLER_USER_INFO:"callerUserInfo",IS_GROUP:"isGroup",CALL_DURATION:"callDuration",CALL_TIPS:"callTips",TOAST_INFO:"toastInfo",IS_MINIMIZED:"isMinimized",ENABLE_FLOAT_WINDOW:"enableFloatWindow",BIG_SCREEN_USER_ID:"bigScreenUserId",LANGUAGE:"language",IS_CLICKABLE:"isClickable",DISPLAY_MODE:"displayMode",VIDEO_RESOLUTION:"videoResolution",PUSHER:"pusher",PLAYER:"player",IS_EAR_PHONE:"isEarPhone",IS_MUTE_SPEAKER:"isMuteSpeaker",SHOW_PERMISSION_TIP:"SHOW_PERMISSION_TIP",NETWORK_STATUS:"NetWorkStatus",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"},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",...{INITIAL_PUSHER:"initialPusher",NEW_PUSHER:"newPusher"},...ce,...{INNER_ATTR_KIT_INFO:"inner_attr_kit_info"}},it="https://web.sdk.qcloud.com/component/TUIKit/assets/call.png",rt="https://web.sdk.qcloud.com/component/TUIKit/assets/call-video-reverse.svg",Fe=2147483647,Me=4;var De=(r=>(r[r.TUI_CALL_KIT=14]="TUI_CALL_KIT",r[r.TIM_CALL_KIT=15]="TIM_CALL_KIT",r))(De||{}),_e=(r=>(r[r.NUMBER_ROOM_ID=1]="NUMBER_ROOM_ID",r[r.STRING_ROOM_ID=2]="STRING_ROOM_ID",r))(_e||{});function ot(){wx.hideKeyboard&&wx.hideKeyboard({complete:()=>{}})}function st(){wx.getSystemInfoSync().platform==="devtools"&&wx.showModal({icon:"none",title:"运行环境提醒",content:"微信开发者工具不支持原生推拉流组件(即 标签),请使用真机调试或者扫码预览。",showCancel:!1})}function ve(){ot(),st()}async function nt(r,e){try{ve();const t={microphone:!0,camera:r===g.VIDEO};return await e._tuiCallEngine.deviceCheck(t)?d.CALLING:d.IDLE}catch(t){return console.debug(t),d.IDLE}}function lt(r){(r==null?void 0:r.code)===-1002&&wx.showModal({icon:"none",title:"error",content:(r==null?void 0:r.message)||"",showCancel:!1})}function At(){wx.showModal({icon:"none",title:"权限提示",content:"当前小程序 appid 不具备 的使用权限,您将无法正常使用实时通话能力,请使用企业小程序账号申请权限后再进行开发体验",showCancel:!1})}const ct={hangup:"Hang up",reject:"Decline",accept:"Accept",camera:"Camera",microphone:"Microphone",speaker:"speaker","open camera":"Open Camera","close camera":"Close Camera","open microphone":"Open Microphone","close microphone":"Close Microphone","video-to-audio":"Switch to audio","virtual-background":"Blur Background","other side reject call":"other side reject call","reject call":"Reject Call",cancel:"Cancel Call","other side line busy":"other side line busy","in busy":"in busy","call timeout":"call timeout","no response from the other side":"no response from the other side","end call":"end call","caller calling message":"Awaiting response","callee calling video message":"invites you to a video call","callee calling audio message":"invites you to a voice call","no microphone access":"no microphone access","no camera access":"no camera access","invite member":"Invite Member","Invited group call":"invites you to a group call",waiting:"Calling...",me:"(me)","browser-authorization":"Browser authorization","mac-privacy":"System Preferences -> Security and Privacy -> Privacy","win-privacy":"Setting -> Privacy and Security -> App permissions","mac-preferences":"Open System Preferences","win-preferences":"Open Setting","Please enter userID":"Please enter userID","View more":"View more","people selected":"people selected","Select all":"Select all",Cancel:"Cancel",Done:"Done","exist group call":"A group call already exists in the current group","camera enabled":"Camera On","camera disabled":"Camera Off","microphone enabled":"Unmuted","microphone disabled":"Muted","speaker enabled":"Speaker On","speaker disabled":"Speaker Off","open speaker":"Turn on speaker","close speaker":"Turn off speaker","wait to be called":"Waiting",answered:"Connected","people in the call":" other(s) in the call","failed to obtain speakers":"failed to obtain speakers","you have a new call":"You have a new call","switch camera":"Switch",join:"Join","people on the call":"people on the call","Supports a maximum of 9 people for simultaneous calls":"Supports a maximum of 9 people for simultaneous calls",you:"(you)","The network is poor during your current call":"The network is poor during your current call","The other user network is poor during the current call":"The other party's network is poor during the current call","TUICallKit init is not complete":"TUICallKit init is not complete. You need to use this API after the init API is finished.","Video call":"Video call","Voice call":"Voice call","Call End":"Call End","Switch voice call":"Switch voice call","Switch video call":"Switch video call","Call duration":"Duration","Call Cancel":"Canceled","Other Side Cancel":"Call canceled by caller",Decline:"Declined","Other Side Decline":"Call declined by user","No answer":"Call not answered","Other Side No Answer":"Call wasn't answered",Answered:"Answered","Other Side Line Busy":"Line busy","Line Busy":"Line busy. Call not received.","Those involved":"Those involved in the call are",call:"call","video-call":"video call","audio-call":"audio call",search:"search","search-result":"search result","no-user":"user not found","member-not-added":"member not added","input-phone-userID":"phone number or userID","not-login":"not logged in","login-status-expire":"login status is invalid, please refresh the page and try again","experience-multi-call":"experience multi-person calls, please download the full-featured demo: ","not-support-multi-call":"multi-person call interface is not open",userID:"userID","already-enter":"entered the call","camera-opened":"Camera on","camera-closed":"Camera off","microphone-opened":"Mic on","microphone-closed":"Mic off",timeout:"timeout","kick out":"kick out","image-resolution":"Resolution","default-image-resolution":"Default","invited-person":"Invite","be-rejected":"Call declined, ","be-no-response":"No response, ","be-line-busy":"Line busy, ","be-canceled":"The call is canceled, ","voice-call-end":"Voice call ended","video-call-end":"Video call ended","method-call-failed":"Failed to sync the operation","failed-to-obtain-permission":"Failed to obtain permissions","environment-detection-failed":"Failed to check the environment","switchToAudioCall-call-failed":"switch to audio call method failed","switchToVideoCall-call-failed":"switch to video call method failed","microphone-unavailable":"No mic found","camera-unavailable":"No camera found","ban-device":"Device access denied","not-supported-webrtc":"Your current environment does not support WebRTC","blacklist-user-tips":"The identifier is in blacklist. Failed to send this message!","is-already-calling":"TUICallKit is already on a call","need-init":"Before initiating a call with TUICallKit, ensure that the TUICallKitServer.init() method has executed successfully. ","can't call yourself":"Can't call yourself","Use-phone-and-computer":"Use your mobile phone and computer to experience video calls","Wechat scan right QR code":"Wechat scan right QR code","Scan the QR code above":"Scan the QR code above","accept-error":"Accept failed","accept-device-error":"Accept failed, unable to auth calling device","call-error":"Start call failed"},ut={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":"拒绝通话",cancel:"取消通话","other side line busy":"对方忙线","in busy":"正在忙","call timeout":"呼叫超时","end call":"结束通话","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:"超时","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":"发起通话失败"},It={hangup:"通話終了",reject:"拒否",accept:"応答",camera:"カメラ",microphone:"マイク",speaker:"スピーカー","virtual-background":"ボケ背景","other side reject call":"通話が拒否されました","reject call":"通話拒否",cancel:"通話をキャンセル","other side line busy":"相手が通話中です","in busy":"通話中","call timeout":"呼び出しタイムアウト","end call":"通話終了","caller calling message":"応答を待っています","callee calling video message":"ビデオ通話に招待されました","callee calling audio message":"音声通話に招待されました","no microphone access":"マイクにアクセスできません","no camera access":"カメラにアクセスできません","invite member":"メンバーを招待する","browser-authorization":"ブラウザ認証","mac-privacy":"システム環境設定 -> セキュリティとプライバシー ->プライバシー","win-privacy":"設定 -> セキュリティとプライバシー ->アプリのアクセス許可","mac-preferences":"システム環境設定を開く","win-preferences":"システム設定を開く","Please enter userID":"ユーザーIDを入力してください","View more":"もっと見る","people selected":"人が選択されました","Select all":"すべて選択",Cancel:"キャンセル",Done:"完了","exist group call":"現在のグループには既にグループ通話が存在しています","Video call":"ビデオ通話を開始","Voice call":"音声通話を開始","Call End":"通話終了","Switch audio 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":"忙しいので応答できません","open camera":"オープンカメラ","close camera":"カメラを閉じる","open microphone":"オープンマイク","close microphone":"マイクを閉じる","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を使用する必要があります。",timeout:"タイムアウト","kick out":"キックアウトされました","Invited group call":"グループ通話に招待されました。","Those involved":"参加者:",call:"通話","video-call":"ビデオ通話","audio-call":"音声通話",search:"検索","search-result":"検索結果","Wechat scan right QR code":"WeChatで右側にあるQRコードを読み取ります。","Use-phone-and-computer":"携帯電話とコンピュータを使用してビデオ通話を体験してください","Scan the QR code above":"上のQRコードを読み取ります。","no-user":"ユーザーが見つかりませんでした","member-not-added":"メンバーが追加されていません","not-login":"ログインしていません","login-status-expire":"ログインの有効期限が過ぎています。ページを更新してもう一度お試しください","experience-multi-call":"複数人で同時に音声通話できるグループ通話機能を体験するには、全機能のデモをダウンロードしてください","not-support-multi-call":"グループ通話インターフェイスが開いていません","input-phone-userID":"携帯電話番号/ユーザーIDを入力してください",userID:"ユーザーID","already-enter":"すでに通話に参加しています",waiting:"応答を待っています...","camera-opened":"カメラがオンになっています","camera-closed":"カメラがオフになっています","microphone-opened":"マイクがオンになっています","microphone-closed":"マイクがオフになっています","image-resolution":"解像度","default-image-resolution":"デフォルト解像度","invited-person":"メンバーを招待","video-to-audio":"音声通話に切り替えます",me:"(自分)","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":"通話が開始できませんでした"},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"},Qe={en:ct,"zh-cn":ut,ja_JP:It};function S(r){var i;const e=A.getData(s.CALL,a.LANGUAGE);for(const o in Qe)if(o===e){const n=Qe[o];for(const l in n)if(l===r)return n[l]}const t=(i=r.en)==null?void 0:i.key;return console.error(`${a.PREFIX}translation is not found: ${r}.`),t}const ue=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting,Pe=typeof uni<"u"&&typeof uni>"u",Ve=ue||Pe,Ke=typeof uni<"u",be=function(){return(typeof uni<"u"||typeof window<"u")&&!Ve}(),Ct=function(){return ue?wx:Ke?uni:window}(),b=be&&window&&window.navigator&&window.navigator.userAgent||"",Et=/Android/i.test(b),dt=/(?:Windows Phone)/.test(b),ht=/(?:SymbianOS)/.test(b),Lt=/iPad/i.test(b)||/iPhone/i.test(b)||/iPod/i.test(b),ke=Et||dt||ht||Lt,Se=be&&!ke,gt=Se&&b.includes("Windows NT"),ft=Se&&b.includes("Mac");let Ye=class ne{constructor(){this.global=Ct,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 ne.instance||(ne.instance=new ne),ne.instance}initEnv(){this.isPC=Se,this.isH5=ke,this.isWeChat=ue,this.isApp=Pe&&!ue,this.isUniPlatform=Ke,this.isWIN=gt,this.isMAC=ft}initOfficial(e){this.isOfficial=e===1400187352||e===1400188366}};const pe=function(r){return typeof r===a.UNDEFINED},He=function(r){if(typeof r!==a.OBJECT||r===null)return!1;const e=Object.getPrototypeOf(r);if(e===null)return!0;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return e===t},Je=function(r){return typeof Array.isArray===a.FUNCTION?Array.isArray(r):Object.prototype.toString.call(r).match(/^\[object (.*)\]$/)[1].toLowerCase()===a.ARRAY},Be=function(r){return typeof r===a.STRING},Dt=function(r){return typeof r===a.BOOLEAN},ze=function(r){return r!==null&&(typeof r===a.NUMBER&&!isNaN(r-0)||typeof r===a.OBJECT&&r.constructor===Number)};function xe(r){const e=Math.floor(r/3600),t=Math.floor(r%3600/60),i=Math.floor(r%60);let o=e>9?`${e}`:`0${e}`;return o+=t>9?`:${t}`:`:0${t}`,o+=i>9?`:${i}`:`:0${i}`,o}function _t(r){if(typeof r===a.STRING)try{return!!JSON.parse(r)}catch(e){return console.debug(e),!1}return!1}const Ie=function(r){return!r||!_t(r)?r:JSON.parse(r)};function qe(r){return(r==null?void 0:r.message.indexOf("is ongoing, please avoid repeated calls"))!==-1}function St(r){const{message:e}=r;return e.indexOf("NotAllowedError: Permission denied")!==-1}function Te(){return Date.now()}const pt=function(r){return typeof r===a.FUNCTION},Bt=()=>{if(Ye.getInstance().isWeChat)return"zh-cn";const r=((navigator==null?void 0:navigator.language)||(navigator==null?void 0:navigator.userLanguage)||"").substr(0,2);let e="en";switch(r){case"zh":e="zh-cn";break;case"ja":e="ja_JP";break;default:e="en"}return e},Tt=function(r){return Object.prototype.toString.call(r).match(/^\[object (.*)\]$/)[1].toLowerCase()};function Ut(r,e,t){if(!r.hasOwnProperty(e))return r;const i={};return Object.keys(r).forEach(o=>{o===e?i[t]=r[o]:i[o]=r[o]}),i}const Nt="data:audio/mpeg;base64,SUQzAwAAAAAAGFRYWFgAAAAOAAAAVFhYWABpc29taXNvMv/zNGQAAqwAvnihCAADQAF4CUAQAFYAg3Lh8u+XUD5///wx//wQOAhKAgb/////xOoH4g8Hz4Pq8RoAbdTgMsMt9hcb990EP//zNGQQBPDjEgDItAAFWcIoAYoQAN9P/03QQ//umn//91SXL5uXP+pf8WYTvzgJPAQ+p/7f///1//6f///WH///F4BtJhNFkP/zNGQGA/jjNADHiAAEQDJcAYkQAGWrn6vw6ljfPtj/////////9Pv9sL/mL/QezSepgwrimv07//////y3u602OiyhOYb+LP/zNGQIBKTBKADoCACDoCZMAckAAKHKCUIAFsqGZXtSZ/////////Sn/Vy3nVUOJBqSX2UAkQxBddzv//////yq3lcgaTmTQ//zNGQHA9SrJgA8AliD4C5IAApYAKh3FKlMunKHm8H/2//77vkdqB2xfsXaHiDKBGtFKqONF3/////Z9VXClT5ND+syHkjBq//zNGQLBITJIAA8AmQEiDI4AAjSAGa1Vffm3ff/1/0//11tvZpAaIw3dBiIrjJgHQrGVWmdBU1f/////oDqEKrV1OpBUTjQtv/zNGQHAsjDKAAwAl4D0Co8AAmCBHIQNtld6fm0+/VigZzuMnGZlkAMLMJFv/////33UIWeFQkKsaceBsangecHzYXKI//////zNGQUA4QjKAA3CAID8CpEABMCBPfuStx4FQVHYMgKcO6jIJh//////9uIlspQkGQ2YyZscAV83Bv/////ncL6BEiWHyA2K//zNEQbAogfJgAx5hAEwDJcCAsEBtICgF3/////WJaIuuqMCCVGucgkrtwiwBO//////pW4YFRWQhaRRhZZnVwGhf////+ocv/zNEQmApgVJAANjwAFkC5YCApeAolD4kQb+EQJYNKwLWGmc6sqMBwJvf////6tDEOWDgFJk1VywKMGoM2f////+N1JmgJuPv/zNGQuA4AbJAAl5hIDwC48AAIGBEho7wTL5b6kSO7IUAA5uDABYNNjGDBSJEN//////xtQsszVy27IcWBbQkLgzv7YmZYW///zNGQ2AqzFNAgcA1+D8CZIAAhMAP/3/rozCAsBjIqCY/DBWMfQZp1f/////0F6phXSNisgAJjo6icT2vpvM/Vf9v///97eu//z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",Xe="data:audio/mpeg;base64,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//BP/+hwIa///Nf///wqXf/1IwFkb//wi3/1Pf/7FEQGAABjEVkFKKAADSOrIKOcAAKAUWQYooAAUpGswwRwAF//QA7//6iH/7//E1CP66uDpoqjowL/6/GGwzFQx/T3Vp/9XC73/yvuUKYdmmN6evmjf5L5ZKr/8hlL/f/7FGQCgAB5FF2GBKAADYOrUMEIAAGod2YcVoAANI6rg4pQAEZrqH8GxT/UqjT/+aDlf/6dvj/r/4+rR//UH//+wTMuo///86//9QGR//+wCCxv//+MCD//BP//oAIP///7FGQFAABgEdsNFKAAC2I68KOcAAMggWoYVQAAP46tAwQgAMzq//QwCv//4WM/+a0//YWHBbCL/5Hi/IAIkheLBSvsvr6F98kyv/4Zg7A3/0+pcfN//8bL5ar/+8wV/v/7FGQCgACDFF0GFKAADkQLYMCIAAGod2occoAANg7rw4pQAKbXi7oTBez1IPl9X/4G2b//1b7/r6/a/Gy//6HAX//+gDAv///nHf/xoBf//hF////ILP0V//lQuP//qP/7FGQDj/BVHVmBQC2QC6O6wDQHsgGEd2gUI4AAMA7sAopQAE8l+F//2DK3//y4f+Bj5j/+oX//8FpP///x0n//GAf//8Kf///xIcrp/ZHCA4SBM2nH8U7C55TDl+3X6P/7FGQKAADZI1uGFOAAEoRrMMKUAAGQd24cUQAANQ7sQ44gAHOZwyYabiX/9COkKb/T6rj9/09fUt+LGTgn/8YALf/+g43///kFf/zgX///UK////hxPTX/+4Sz//+sR//7FGQEA7BbHdmBoC2QDSEL3gADCQGgAXyUIQAAMw7rwpRwAK/hAeAAAAdAAAAAHQz///6wB/xxxyrjsayv6H/+r/+aBD//+Nm///8QulX+1VhmOIUu/+2UD0jR2CVfp//7FGQIgADVI1uGCOACD+RrYMCIAAGcd2ocE4AAMw7sQ4RQAGP+f8eIEjMMke//iRoP//tvp+v/Unyv4pqf/5n//84CQx///0FRv/+K///C3///6gKLdKr//EJ//9QHx//7FGQED/BSHdkBQBWQC4PKwCgHsgFYR2wUI4AANA7sAopQAD5hv/6Br//+SDvyge2n/+gP//8ISf/w9t//oDv//8K///8ggL6a+nTBTVf043E0UOgZIIdw1v/9FHfE3//7FGQLAADO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";class wt{constructor(){this._bellContext=null,this._isMuteBell=!1,this._calleeBellFilePath=Xe,this._callRole=m.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=Nt;this._callRole===m.CALLEE&&(t=this._calleeBellFilePath||Xe),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=pe(e.isMuteBell)?this._isMuteBell:e.isMuteBell}async play(){try{if(this._callStatus!==d.CALLING)return;this.setBellSrc(),this._callRole===m.CALLEE&&!this._isMuteBell&&await this._bellContext.play(),this._callRole===m.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!==m.CALLEE||(e?await this.stop():await this.play())}destroy(){try{this._isMuteBell=!1,this._calleeBellFilePath="",this._callRole=m.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 U(){return function(r,e,t){const i=t.value,o=new Set;return t.value=async function(...n){var l,u;if(o.has(this)){console.warn(`${a.PREFIX}previous ${e}() is ongoing, please avoid repeated calls`),(u=(l=this==null?void 0:this.getTUICallEngineInstance())==null?void 0:l.reportLog)==null||u.call(l,{name:"TUICallKit.avoidRepeatedCall.fail",data:{name:e},error:`previous ${e}() is ongoing`});return}try{o.add(this);const c=await i.apply(this,n);return o.delete(this),c}catch(c){throw o.delete(this),c}},t}}const ee=a.PREFIX+"API";function F(r){return function(e,t,i){let o=i.value;return i.value=function(...n){return Ot.call(this,r,n,t),o.apply(this,n)},i}}function Ot(r,e,t){try{if(e[0].SDKAppID||(r=Ut(r,"SDKAppID","sdkAppID")),Je(r))for(let i=0;i: ${l} is required.`);return}const u=e.some(E=>E===Tt(i));let c="";if(!u){for(let E=0;E: ${l} must be ${c}, current ${l} is ${typeof i}.`)}if(o===!1&&Be(i)&&i.trim()==="")throw new Error(`${ee}<${n}>: ${l} is blank.`);if(Je(t)&&t&&t.indexOf(i)===-1)throw new Error(`${ee}<${n}>: ${l} error, only be ${t}, current ${l} is ${i}.`);if(Be(t)&&t.indexOf("~")!==-1){const E=t.split("~");if(i<+E[0]||i>+E[1]||ze(i)&&Number.isNaN(i))throw new Error(`${ee}<${n}>: ${l} error, only be ${t}, current ${l} 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~${Fe}`,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~${Fe}`,allowEmpty:!1},strRoomID:{required:!1,rules:[a.STRING],allowEmpty:!0},timeout:{required:!1,rules:[a.NUMBER],allowEmpty:!1},userData:{required:!1,rules:[a.STRING],allowEmpty:!1},offlinePushInfo:{required:!1,rules:[a.OBJECT],allowEmpty:!1}},joinInGroupCall:{type:{required:!0,rules:[a.NUMBER],range:[1,2],allowEmpty:!1},groupID:{required:!0,rules:[a.STRING],allowEmpty:!1},roomID:{required:!0,rules:[a.NUMBER],allowEmpty:!1},strRoomID:{required:!1,rules:[a.STRING],allowEmpty:!0}},inviteUser:{userIDList:{required:!0,rules:[a.ARRAY],allowEmpty:!1}},setSelfInfo:{nickName:{required:!1,rules:[a.STRING],allowEmpty:!1},avatar:{required:!1,rules:[a.STRING],allowEmpty:!1}},enableFloatWindow:[{key:"enable",required:!1,rules:[a.BOOLEAN],allowEmpty:!1}],enableAIVoice:[{key:"enable",required:!0,rules:[a.BOOLEAN],allowEmpty:!1}],enableMuteMode:[{key:"enable",required:!0,rules:[a.BOOLEAN],allowEmpty:!1}],setCallingBell:[{key:"filePath",required:!1,rules:[a.STRING],allowEmpty:!0}],setLanguage:[{key:"language",required:!0,rules:[a.STRING],allowEmpty:!1}],setVideoDisplayMode:[{key:"displayMode",required:!0,rules:[a.STRING],range:[z.CONTAIN,z.COVER,z.FILL],allowEmpty:!1}],setVideoResolution:[{key:"resolution",required:!0,rules:[a.STRING],range:[x.RESOLUTION_1080P,x.RESOLUTION_480P,x.RESOLUTION_720P],allowEmpty:!1}]};function Ce(r){return function(e,t,i){let o=i.value;return i.value=function(...n){return Rt.call(this,r,n,t),o.apply(this,n)},i}}function Rt(r){if(r!=null&&r.engineInstance&&!this._tuiCallEngine){const e=`${a.PREFIX} ${S("TUICallKit init is not complete")}`;throw console.error(e),e}}function Ee(r){if(typeof r!="object"||r===null)return r;let e=Array.isArray(r)?[]:{};for(let t in r)r.hasOwnProperty(t)&&(e[t]=Ee(r[t]));return e}class Gt{constructor(){this.defaultStore={callStatus:d.IDLE,callRole:m.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:Bt(),isClickable:!1,deviceList:{cameraList:[],microphoneList:[],currentCamera:{},currentMicrophone:{}},showPermissionTip:!1,netWorkQualityList:[],isMuteSpeaker:!1,groupID:"",roomID:0,roomIdType:0,cameraPosition:$.FRONT,groupCallMembers:[],displayMode:z.COVER,videoResolution:x.RESOLUTION_480P,showSelectUser:!1,pusher:{},player:[],isEarPhone:!1,pusherId:a.INITIAL_PUSHER,isShowEnableVirtualBackground:!1,enableVirtualBackground:!1,customUIConfig:{button:{},viewBackground:{},layoutMode:fe.RemoteInLargeView}},this.store=Ee(this.defaultStore),this.prevStore=Ee(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,o)=>({...i,[o]:this.defaultStore[o]}),{});this.store={...this.defaultStore,...this.store,...t}}}let de=class le{constructor(){this.timerId=-1,this.storeMap={[s.CALL]:new Gt},this.task={}}static getInstance(){return le.instance||(le.instance=new le),le.instance}watch(e,t,i){this.task[e]||(this.task[e]={});const o=this.task[e];Object.keys(t).forEach(n=>{const l=t[n];o[n]||(o[n]=new Map),o[n].set(l,1);const{notifyRangeWhenWatch:u}=i||{};if(u===a.ALL&&this.notify(e,n),u===a.MYSELF){const c=this.getData(e,n);l.call(this,c)}})}unwatch(e,t){if(!this.task[e])return;const i=this.task[e];Object.keys(t).forEach(o=>{i[o].delete(t[o])})}update(e,t,i){var o;(Be(i)||ze(i)||Dt(i))&&this.storeMap[e].store[t]===i||((o=this.storeMap[e])==null||o.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 o=i[t],n=this.getData(e,t);for(const[l]of o.entries())l.call(this,n)}}reset(e,t=[],i=!1){if(e in this.storeMap){const o=this.storeMap[e];t.length===0&&(t=Object.keys(o==null?void 0:o.store)),o.reset(t),i&&t.forEach(n=>{this.notify(e,n)})}}updateStore(e,t){const i=t||s.CALL;Object.keys(e).forEach(o=>{this.update(i,o,e[o])})}};const T=de.getInstance();function Ue(r,e){const t={userId:r,nick:"",avatar:"",remark:"",displayUserInfo:"",isAudioAvailable:!1,isVideoAvailable:!1,isEnter:!1,domId:e||r};return e?t:{...t,isEnter:!1}}async function mt(r,e){var i,o,n,l,u;let t=Ue(r,a.LOCAL_VIDEO);try{if(!e)return t;const c=await e.getMyProfile(),E=T==null?void 0:T.getData(s.CALL,a.LOCAL_USER_INFO);return(c==null?void 0:c.code)===0&&(t={...t,...E,userId:(i=c==null?void 0:c.data)==null?void 0:i.userID,nick:(o=c==null?void 0:c.data)==null?void 0:o.nick,avatar:(n=c==null?void 0:c.data)==null?void 0:n.avatar,displayUserInfo:((l=c==null?void 0:c.data)==null?void 0:l.nick)||((u=c==null?void 0:c.data)==null?void 0:u.userID)}),t}catch(c){return console.error(`${a.PREFIX}getMyProfile failed, error: ${c}.`),t}}async function te(r,e){let t=r.map(i=>Ue(i));try{if(!e)return t;const i=await e.getFriendProfile({userIDList:r});if(i.code===0){const{friendList:o=[],failureUserIDList:n=[]}=i.data;let l=n.map(C=>C.userID);if(n.length>0){const C=await e.getUserProfile({userIDList:n.map(L=>L.userID)});(C==null?void 0:C.code)===0&&(l=(C==null?void 0:C.data)||[])}const u=T==null?void 0:T.getData(s.CALL,a.REMOTE_USER_INFO_LIST),c=o.map(C=>C.userID),E=l.map(C=>C.userID);t=r.map(C=>{var ie,re,oe,se,Z,$e,et;const L=Ue(C),f=c.indexOf(C),w=E.indexOf(C);let O="",v="",ae="",Y="";f!==-1&&(O=((ie=o[f])==null?void 0:ie.remark)||"",v=((oe=(re=o[f])==null?void 0:re.profile)==null?void 0:oe.nick)||"",ae=O||v||L.userId||"",Y=((Z=(se=o[f])==null?void 0:se.profile)==null?void 0:Z.avatar)||""),w!==-1&&(v=(($e=l[w])==null?void 0:$e.nick)||"",ae=v||L.userId||"",Y=((et=l[w])==null?void 0:et.avatar)||"");const G=u.find(kt=>kt.userId===C)||{};return{...L,...G,remark:O,nick:v,displayUserInfo:ae,avatar:Y}})}return t}catch(i){return console.error(`${a.PREFIX}getRemoteUserProfile failed, error: ${i}.`),t}}function k(r,e,t){const i=T.getData(s.CALL,a.IS_GROUP);let o=`${S(r)}`;return i&&(o=e?`${e} ${o}`:o,o=t?`${o} ${t}`:o),o}function he(){const r=T.getData(s.CALL,a.CALL_STATUS);if(r===d.IDLE)return R.IDLE;const e=T.getData(s.CALL,a.IS_GROUP);if(r===d.CALLING)return e?R.DIALING_GROUP:R.DIALING_C2C;const t=T.getData(s.CALL,a.CALL_MEDIA_TYPE);return e?t===g.AUDIO?R.CALLING_GROUP_AUDIO:R.CALLING_GROUP_VIDEO:t===g.AUDIO?R.CALLING_C2C_AUDIO:R.CALLING_C2C_VIDEO}async function yt(r,e,t,i){let o=[];try{const n=await e.getGroupMemberList({groupID:r,count:t,offset:i});if(n.code===0)return n.data.memberList||o}catch(n){return console.error(`${a.PREFIX}getGroupMember failed, error: ${n}.`),o}}async function Ft(r,e){let t={};try{return(await e.getGroupProfile({groupID:r})).data.group||t}catch(i){return console.warn(`${a.PREFIX}getGroupProfile failed, error: ${i}.`),t}}function je(r,e){r===0&&e?(T.update(s.CALL,a.ROOM_ID,e),T.update(s.CALL,a.ROOM_ID_TYPE,_e.STRING_ROOM_ID)):(T.update(s.CALL,a.ROOM_ID,r),T.update(s.CALL,a.ROOM_ID_TYPE,_e.NUMBER_ROOM_ID))}function P(r){return(r==null?void 0:r.data)||{}}function Ne(r){if(r.length===0)return;let e=T.getData(s.CALL,a.REMOTE_USER_INFO_LIST);r.forEach(t=>{e=e.filter(i=>i.userId!==t)}),T.update(s.CALL,a.REMOTE_USER_INFO_LIST,e),T.update(s.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,e)}function we(r,e,t){if(St(r)){let i="";e===g.AUDIO&&(i=k(N.NO_MICROPHONE_DEVICE_PERMISSION)),e===g.VIDEO&&(i=k(N.NO_CAMERA_DEVICE_PERMISSION)),i&&T.update(s.CALL,a.TOAST_INFO,{text:i,type:a.ERROR}),console.error(`${a.PREFIX}call failed, error: ${r.message}.`)}}function H(r,e){let t=T.getData(s.CALL,a.LOCAL_USER_INFO);e===a.AUDIO&&(t={...t,isAudioAvailable:r}),e===a.VIDEO&&(t={...t,isVideoAvailable:r}),T.update(s.CALL,a.LOCAL_USER_INFO,t),T.update(s.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,t)}class Le{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},He(t)&&(i={...i,...t}),pt(e)&&(t=e,e=a.TIMEOUT);const o={taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,taskName:e,callback:t,...i};return this.taskMap.set(o.taskID,o),e===a.INTERNAL?this.interval(o):this.timeout(o),o.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:o}=this.taskMap.get(e);return t&&clearInterval(t),i&&clearTimeout(i),o&&document.removeEventListener("visibilitychange",o),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}}Le.taskMap=new Map,Le.currentTaskID=1;const Mt=function(r){if(r===null||typeof r>"u")return!0;if(typeof r=="boolean")return!1;if(typeof r=="number")return r===0;if(typeof r=="string"||typeof r=="function"||Array.isArray(r))return r.length===0;if(r instanceof Error)return r.message==="";if(He(r)){for(const e in r)if(Object.prototype.hasOwnProperty.call(r,e))return!1;return!0}return!1},Oe="_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,o,n;const e=(i=this._tuiStore)==null?void 0:i.getData(s.CALL,a.CUSTOM_UI_CONFIG),{userId:t}=(o=this._tuiStore)==null?void 0:o.getData(s.CALL,a.LOCAL_USER_INFO);Object.keys(this._viewConfig.viewBackground.remote).includes(t)&&delete this._viewConfig.viewBackground.remote[t],(n=this._tuiStore)==null||n.update(s.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:o}=(t=this._tuiStore)==null?void 0:t.getData(s.CALL,a.LOCAL_USER_INFO);if(Object.keys(this._viewConfig.viewBackground.remote).includes(o)&&(delete this._viewConfig.viewBackground.remote[o],this._updateViewBackground()),!this._isSetViewBackgroundConfig.local)return;const n=this._viewConfig.viewBackground.local,l=n[o]||n[Oe];n[o]=n[Oe],this._viewConfig.viewBackground.local={[o]:l},this._updateViewBackground()}else{let o=this._viewConfig.viewBackground.remote;this._isSetViewBackgroundConfig.remote&&Object.keys(o).includes("*")&&(((i=this._tuiStore)==null?void 0:i.getData(s.CALL,a.REMOTE_USER_INFO_LIST)).map(u=>u.userId).forEach(u=>{Object.keys(o).includes(u)||(o[u]=o["*"])}),this._viewConfig.viewBackground.remote=o,this._updateViewBackground())}}hideFeatureButton(e){var i,o,n,l,u;(o=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||o.call(i,{name:"TUICallKit.hideFeatureButton.start",data:{buttonName:e}});const t=(n=this._tuiStore)==null?void 0:n.getData(s.CALL,a.CUSTOM_UI_CONFIG);(u=this._tuiStore)==null||u.update(s.CALL,a.CUSTOM_UI_CONFIG,{...t,button:{...t.button,[e]:{...((l=t.button)==null?void 0:l[e])||{},show:!1}}})}setLocalViewBackgroundImage(e){var i,o,n;(o=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||o.call(i,{name:"TUICallKit.setLocalViewBackgroundImage.start",data:{url:e}}),this._isSetViewBackgroundConfig.local=!0;let{userId:t}=(n=this._tuiStore)==null?void 0:n.getData(s.CALL,a.LOCAL_USER_INFO);Mt(t)&&(t=Oe),this._viewConfig.viewBackground.local={[t]:e},this._updateViewBackground()}setRemoteViewBackgroundImage(e,t){var i,o;(o=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||o.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,o;(o=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||o.call(i,{name:"TUICallKit.setLayoutMode.start",data:{layoutMode:e}});const t=this._tuiStore.getData(s.CALL,a.CUSTOM_UI_CONFIG);this._tuiStore.update(s.CALL,a.CUSTOM_UI_CONFIG,{...t,layoutMode:e})}setCameraDefaultState(e){var i,o;(o=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||o.call(i,{name:"TUICallKit.setCameraDefaultState.start",data:{isOpen:e}});const t=Ee(this._tuiStore.getData(s.CALL,a.CUSTOM_UI_CONFIG));Object.keys(t.button).includes(K.Camera)||(t.button[K.Camera]={}),t.button[K.Camera].state=e?q.Open:q.Close,this._tuiStore.update(s.CALL,a.CUSTOM_UI_CONFIG,t)}}const ge=de.getInstance(),Q={audioCall:()=>S("Voice call"),videoCall:()=>S("Video call"),switchToAudio:()=>S("Switch audio call"),switchToVideo:()=>S("Switch video call"),hangup:({callDuration:r})=>`${S("Call duration")}:${r}`};class W{constructor(e){var t,i,o;this._callService=e.callService,D.TUICore.registerEvent(D.TUIConstants.TUILogin.EVENT.LOGIN_STATE_CHANGED,D.TUIConstants.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS,this),(t=D.TUIConstants.TUIChat)!=null&&t.EVENT&&D.TUICore.registerEvent((i=D.TUIConstants.TUIChat.EVENT)==null?void 0:i.CHAT_STATE_CHANGED,(o=D.TUIConstants.TUIChat.EVENT_SUB_KEY)==null?void 0:o.CHAT_OPENED,this),D.TUICore.registerService(D.TUIConstants.TUICalling.SERVICE.NAME,this),D.TUICore.registerExtension(D.TUIConstants.TUIChat.EXTENSION.INPUT_MORE.EXT_ID,this)}static getInstance(e){return W.instance||(W.instance=new W(e)),W.instance}callTUIService(e){const{message:t}=e||{};D.TUICore.callService({serviceName:D.TUIConstants.TUIChat.SERVICE.NAME,method:D.TUIConstants.TUIChat.SERVICE.METHOD.UPDATE_MESSAGE_LIST,params:{message:t}})}onGetExtension(e,t){var i,o;if(e===D.TUIConstants.TUIChat.EXTENSION.INPUT_MORE.EXT_ID){if((o=(i=this._callService.getTUICallEngineInstance())==null?void 0:i.reportLog)==null||o.call(i,{name:"TUICallKit.onGetExtension",data:{extensionID:e,params:t}}),pe(t))return[];if([D.TUIConstants.TUIChat.TYPE.ROOM,D.TUIConstants.TUIChat.TYPE.CUSTOMER_SERVICE].includes(t.chatType))return[];let n=[];const l={weight:1e3,text:"语音通话",icon:it,data:{name:"voiceCall"},listener:{onClicked:async c=>await this._handleTUICoreOnClick(c,c.type||g.AUDIO)}},u={weight:900,text:"视频通话",icon:rt,data:{name:"videoCall"},listener:{onClicked:async c=>await this._handleTUICoreOnClick(c,c.type||g.VIDEO)}};return t!=null&&t.chatType?n=[l,u]:(!(t!=null&&t.filterVoice)&&n.push(l),!(t!=null&&t.filterVideo)&&n.push(u)),n}}async onCall(e,t){e===D.TUIConstants.TUICalling.SERVICE.METHOD.START_CALL&&await this._handleTUICoreOnClick(t,t.type)}async onNotifyEvent(e,t,i){var o,n,l,u,c,E,C,L;try{if(e===D.TUIConstants.TUILogin.EVENT.LOGIN_STATE_CHANGED)if(t===D.TUIConstants.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS){const{chat:f,userID:w,userSig:O,SDKAppID:v}=D.TUILogin.getContext();await((o=this._callService)==null?void 0:o.init({tim:f,userID:w,userSig:O,sdkAppID:v,isFromChat:!0,component:De.TIM_CALL_KIT})),(n=this._callService)==null||n.setIsFromChat(!0),(l=this._callService)==null||l.setLogLevel(ye.NORMAL),this._addListenChatEvent()}else t===D.TUIConstants.TUILogin.EVENT_SUB_KEY.USER_LOGOUT_SUCCESS&&(this._removeListenChatEvent(),await((u=this._callService)==null?void 0:u.destroyed()));if((c=D.TUIConstants.TUIChat)!=null&&c.EVENT&&e===D.TUIConstants.TUIChat.EVENT.CHAT_STATE_CHANGED&&t===D.TUIConstants.TUIChat.EVENT_SUB_KEY.CHAT_OPENED){if((E=this._callService)==null||E.setCurrentGroupId((i==null?void 0:i.groupID)||""),ge.getData(s.CALL,a.CALL_STATUS)!==d.IDLE)return;const f=(C=this._callService)==null?void 0:C.getCurrentGroupId(),w=f?await this.getGroupAttributes((L=this._callService)==null?void 0:L.getTim(),f):{};await this.updateStoreBasedOnGroupAttributes(w)}}catch(f){console.error(`${a.PREFIX}TUICore onNotifyEvent failed, error: ${f}.`)}}async updateStoreBasedOnGroupAttributes(e){var t,i,o,n;(o=(i=(t=this._callService)==null?void 0:t.getTUICallEngineInstance())==null?void 0:i.reportLog)==null||o.call(i,{name:"TUICallKit.getJoinGroupCallInfo.success",data:{groupAttributes:e}});try{const{group_id:l="",room_id:u=0,room_id_type:c=0,call_media_type:E=a.UNKNOWN,user_list:C}=e[a.INNER_ATTR_KIT_INFO]?JSON.parse(e[a.INNER_ATTR_KIT_INFO]):{};let L=(C||[]).map(w=>w.userid);L=L.length&&await te(L,(n=this._callService)==null?void 0:n.getTim());const f={[a.GROUP_ID]:l,[a.GROUP_CALL_MEMBERS]:L,[a.ROOM_ID]:u,[a.CALL_MEDIA_TYPE]:tt[E],[a.ROOM_ID_TYPE]:c};ge.updateStore(f,s.CALL)}catch(l){console.warn(`${a.PREFIX}updateStoreBasedOnGroupAttributes fail, error: ${l}`)}}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 o;const t=Ie(e.payload.data),i=Ie(t==null?void 0:t.data);return(i==null?void 0:i.line_busy)==="line_busy"||(i==null?void 0:i.line_busy)===""||((o=i==null?void 0:i.data)==null?void 0:o.message)==="lineBusy"}async getCallKitMessage(e,t){var f,w,O,v;const i=Ie(e.payload.data);if((i==null?void 0:i.businessID)!==1)return{};let o="";const n=Ie(i==null?void 0:i.data),l=n.call_type,u=i.inviteeList,c=(f=n==null?void 0:n.data)==null?void 0:f.inviter,E=ge.getData(s.CALL,a.LOCAL_USER_INFO).userId,C=c===E,L=(w=n==null?void 0:n.data)==null?void 0:w.cmd;switch(i==null?void 0:i.actionType){case X.INVITE:{o=Q[L]({callDuration:xe(n==null?void 0:n.call_end)});break}case X.CANCEL_INVITE:o=S(C?"Call Cancel":"Other Side Cancel");break;case X.ACCEPT_INVITE:["switchToAudio","switchToVideo"].includes(L)?o=(O=Q==null?void 0:Q[L])==null?void 0:O.call(Q):o=S("Answered");break;case X.REJECT_INVITE:this.isLineBusy(e)?o=S(C?"Line Busy":"Other Side Line Busy"):o=S(C?"Other Side Decline":"Decline");break;case X.INVITE_TIMEOUT:["switchToAudio","switchToVideo"].includes(L)?o=(v=Q==null?void 0:Q[L])==null?void 0:v.call(Q):o=S(C?"Other Side No Answer":"No answer");break}return{messageCardContent:o,callMediaType:l,inviteeList:u}}_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(Re.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(Re.EVENT.GROUP_ATTRIBUTES_UPDATED,this._handleGroupAttributesUpdated,this)}async _handleTUICoreOnClick(e,t){var i,o;try{const{groupID:n,userIDList:l=[],...u}=e;n?await((i=this._callService)==null?void 0:i.groupCall({groupID:n,userIDList:l,type:t,...u})):l.length===1&&await((o=this._callService)==null?void 0:o.call({userID:l[0],type:t,...u}))}catch(n){console.debug(n)}}async _handleGroupAttributesUpdated(e){var n;if(ge.getData(s.CALL,a.CALL_STATUS)!==d.IDLE)return;const t=(e==null?void 0:e.data)||{},{groupID:i="",groupAttributes:o={}}=t;i===((n=this._callService)==null?void 0:n.getCurrentGroupId())&&await this.updateStoreBasedOnGroupAttributes(o)}}const h=de.getInstance(),vt=J.getInstance();class j{constructor(e){this._callService=e.callService}static getInstance(e){return j.instance||(j.instance=new j(e)),j.instance}addListenTuiCallEngineEvent(){var t;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(I.EVENT.ERROR,this._handleError,this),e.on(I.EVENT.INVITED,this._handleNewInvitationReceived,this),e.on(I.EVENT.USER_ACCEPT,this._handleUserAccept,this),e.on(I.EVENT.USER_ENTER,this._handleUserEnter,this),e.on(I.EVENT.USER_LEAVE,this._handleUserLeave,this),e.on(I.EVENT.REJECT,this._handleInviteeReject,this),e.on(I.EVENT.NO_RESP,this._handleNoResponse,this),e.on(I.EVENT.LINE_BUSY,this._handleLineBusy,this),e.on(I.EVENT.CALLING_CANCEL,this._handleCallingCancel,this),e.on(I.EVENT.SDK_READY,this._handleSDKReady,this),e.on(I.EVENT.KICKED_OUT,this._handleKickedOut,this),e.on(I.EVENT.MESSAGE_SENT_BY_ME,this._messageSentByMe,this),I.EVENT.CALL_MESSAGE&&e.on(I.EVENT.CALL_MESSAGE,this._handleCallMessage,this),I.EVENT.ON_USER_NETWORK_QUALITY_CHANGED&&e.on(I.EVENT.ON_USER_NETWORK_QUALITY_CHANGED,this._handleNetworkQuality,this),e.on(I.EVENT.CALL_END,this._handleCallingEnd,this),e.on(I.EVENT.CALL_MODE,this._handleCallTypeChange,this),e.on(I.EVENT.USER_UPDATE,this._handleUserUpdate,this)}removeListenTuiCallEngineEvent(){var t;const e=(t=this._callService)==null?void 0:t.getTUICallEngineInstance();e.off(I.EVENT.ERROR,this._handleError,this),e.off(I.EVENT.INVITED,this._handleNewInvitationReceived,this),e.off(I.EVENT.USER_ACCEPT,this._handleUserAccept,this),e.off(I.EVENT.USER_ENTER,this._handleUserEnter,this),e.off(I.EVENT.USER_LEAVE,this._handleUserLeave,this),e.off(I.EVENT.REJECT,this._handleInviteeReject,this),e.off(I.EVENT.NO_RESP,this._handleNoResponse,this),e.off(I.EVENT.LINE_BUSY,this._handleLineBusy,this),e.off(I.EVENT.CALLING_CANCEL,this._handleCallingCancel,this),e.off(I.EVENT.SDK_READY,this._handleSDKReady,this),e.off(I.EVENT.KICKED_OUT,this._handleKickedOut,this),e.off(I.EVENT.MESSAGE_SENT_BY_ME,this._messageSentByMe,this),I.EVENT.ON_USER_NETWORK_QUALITY_CHANGED&&e.off(I.EVENT.ON_USER_NETWORK_QUALITY_CHANGED,this._handleNetworkQuality,this),e.off(I.EVENT.CALL_END,this._handleCallingEnd,this),e.off(I.EVENT.CALL_MODE,this._handleCallTypeChange,this),e.off(I.EVENT.USER_UPDATE,this._handleUserUpdate,this)}_callerChangeToConnected(){var i;const e=h.getData(s.CALL,a.CALL_ROLE);h.getData(s.CALL,a.CALL_STATUS)===d.CALLING&&e===m.CALLER&&(h.update(s.CALL,a.CALL_STATUS,d.CONNECTED),(i=this._callService)==null||i.startTimer())}_unNormalEventsManager(e,t){var n;console.log(`${a.PREFIX}${t} event data: ${JSON.stringify(e)}.`);const i=h.getData(s.CALL,a.IS_GROUP),o=h.getData(s.CALL,a.REMOTE_USER_INFO_LIST);switch(t){case I.EVENT.REJECT:case I.EVENT.LINE_BUSY:{const{userID:l}=P(e);let u=t===I.EVENT.REJECT?N.OTHER_SIDE_REJECT_CALL:N.OTHER_SIDE_LINE_BUSY,c=k(u);if(i){const E=(o.find(C=>C.userId===l)||{}).displayUserInfo||l;u=t===I.EVENT.REJECT?N.REJECT_CALL:N.IN_BUSY,c=k(u,E)}h.update(s.CALL,a.TOAST_INFO,{text:c}),l&&Ne([l]);break}case I.EVENT.NO_RESP:{const{userIDList:l=[]}=P(e),u=i?N.TIMEOUT:N.CALL_TIMEOUT,c=l.map(C=>(o.find(f=>f.userId===C)||{}).displayUserInfo||C),E=i?k(u,c.join()):k(u);h.update(s.CALL,a.TOAST_INFO,{text:E}),l.length>0&&Ne(l);break}case I.EVENT.CALLING_CANCEL:{(n=this._callService)==null||n._resetCallStore();break}}}_handleError(e){var l;const{code:t,message:i}=e||{},o=Object.values(me).indexOf(t);let n="";if(o!==-1){const u=Object.keys(me)[o];n=S(at[u]),n&&h.update(s.CALL,a.TOAST_INFO,{text:n,type:a.ERROR})}(l=this._callService)==null||l.executeExternalAfterCalling(),console.error(`${a.PREFIX}_handleError, errorCode: ${t}; errorMessage: ${n||i}.`)}async _handleNewInvitationReceived(e){var ie,re,oe,se;console.log(`${a.PREFIX}onCallReceived event data: ${JSON.stringify(e)}.`);const{sponsor:t="",isFromGroup:i,callMediaType:o,inviteData:n={},calleeIdList:l=[],groupID:u="",roomID:c,strRoomID:E}=P(e),C=h.getData(s.CALL,a.LOCAL_USER_INFO),L=[t,...l.filter(Z=>Z!==C.userId)],f=o||n.callType,w=f===g.AUDIO?N.CALLEE_CALLING_AUDIO_MSG:N.CALLEE_CALLING_VIDEO_MSG;let O={[a.CALL_ROLE]:m.CALLEE,[a.IS_GROUP]:i,[a.CALL_STATUS]:d.CALLING,[a.CALL_MEDIA_TYPE]:f,[a.CALL_TIPS]:S(w),[a.CALLER_USER_INFO]:{userId:t},[a.GROUP_ID]:u};ve();const v={enableCamera:f===g.VIDEO,enableMic:!0};O={...O,[a.PUSHER]:v};const ae={microphone:!0,camera:f===g.VIDEO};this._callService._preDevicePermission=await this._callService._tuiCallEngine.deviceCheck(ae),je(c,E),h.updateStore(O,s.CALL),(ie=this._callService)==null||ie.executeExternalBeforeCalling(),(re=this._callService)!=null&&re.statusChanged&&((oe=this._callService)==null||oe.statusChanged({oldStatus:R.IDLE,newStatus:R.BE_INVITED}));const Y=await te(L,(se=this._callService)==null?void 0:se.getTim()),[G]=Y.filter(Z=>Z.userId===t);Y.length>0&&h.updateStore({[a.REMOTE_USER_INFO_LIST]:Y,[a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]:Y,[a.CALLER_USER_INFO]:{userId:t,nick:(G==null?void 0:G.nick)||"",avatar:(G==null?void 0:G.avatar)||"",displayUserInfo:(G==null?void 0:G.remark)||(G==null?void 0:G.nick)||t}},s.CALL)}_handleUserAccept(e){this._callerChangeToConnected(),h.update(s.CALL,a.TOAST_INFO,S("answered")),console.log(`${a.PREFIX}accept event data: ${JSON.stringify(e)}.`)}async _handleUserEnter(e){var l;this._callerChangeToConnected();const{userID:t,data:i}=P(e);i!=null&&i.playerList&&h.update(s.CALL,a.PLAYER,i.playerList);let o=h.getData(s.CALL,a.REMOTE_USER_INFO_LIST);if(!o.find(u=>(u==null?void 0:u.userId)===t)){o.push({userId:t}),o.length>0&&(h.update(s.CALL,a.REMOTE_USER_INFO_LIST,o),h.update(s.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,o));const[u]=await te([t],(l=this._callService)==null?void 0:l.getTim());o=h.getData(s.CALL,a.REMOTE_USER_INFO_LIST),o.forEach(c=>{(c==null?void 0:c.userId)===t&&(c=Object.assign(c,u))})}o=o.map(u=>(u.userId===t&&(u.isEnter=!0),u)),o.length>0&&(h.update(s.CALL,a.REMOTE_USER_INFO_LIST,o),h.update(s.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,o),vt.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}=P(e);if(t!=null&&t.playerList&&h.update(s.CALL,a.PLAYER,t.playerList),h.getData(s.CALL,a.IS_GROUP)){const n=(h.getData(s.CALL,a.REMOTE_USER_INFO_LIST).find(u=>u.userId===i)||{}).displayUserInfo||i,l=k(N.END_CALL,n);h.update(s.CALL,a.TOAST_INFO,{text:l})}i&&Ne([i])}_handleInviteeReject(e){this._unNormalEventsManager(e,I.EVENT.REJECT)}_handleNoResponse(e){this._unNormalEventsManager(e,I.EVENT.NO_RESP)}_handleLineBusy(e){this._unNormalEventsManager(e,I.EVENT.LINE_BUSY)}_handleCallingCancel(e){var t;(t=this._callService)==null||t.executeExternalAfterCalling(),this._unNormalEventsManager(e,I.EVENT.CALLING_CANCEL)}_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,o,n;let t=h.getData(s.CALL,a.LOCAL_USER_INFO);t=await mt(t.userId,(i=this._callService)==null?void 0:i.getTim()),(n=this._callService)==null||n.setDefaultOfflinePushInfo({...(o=this._callService)==null?void 0:o.getDefaultOfflinePushInfo(),title:t==null?void 0:t.displayUserInfo}),h.update(s.CALL,a.LOCAL_USER_INFO,t),h.update(s.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,t)}_handleKickedOut(e){var t,i,o;console.log(`${a.PREFIX}kickOut event data: ${JSON.stringify(e)}.`),(t=this._callService)!=null&&t.kickedOut&&((i=this._callService)==null||i.kickedOut(e)),h.update(s.CALL,a.CALL_TIPS,k(N.KICK_OUT)),(o=this._callService)==null||o._resetCallStore()}_messageSentByMe(e){var i,o;const t=e==null?void 0:e.data;(i=this._callService)!=null&&i.onMessageSentByMe&&((o=this._callService)==null||o.onMessageSentByMe(t))}_handleCallMessage(e){const t=P(e);this._callService._chatCombine.callTUIService({message:t})}_handleCallTypeChange(e){var o;const{newCallType:t,type:i}=P(e);h.update(s.CALL,a.CALL_MEDIA_TYPE,t||i),(o=this._callService)==null||o.setSoundMode(y.EAR)}_handleNetworkQuality(e){const{networkQualityList:t=[]}=P(e);h.update(s.CALL,a.NETWORK_STATUS,t);const i=h.getData(s.CALL,a.IS_GROUP),o=h.getData(s.CALL,a.LOCAL_USER_INFO),n=h.getData(s.CALL,a.REMOTE_USER_INFO_LIST);if(!i){if(t.find(c=>{var E;return((E=n[0])==null?void 0:E.userId)===(c==null?void 0:c.userId)&&(c==null?void 0:c.quality)>=Me})){h.update(s.CALL,a.CALL_TIPS,S(N.REMOTE_NETWORK_IS_POOR));return}if(t.find(c=>(o==null?void 0:o.userId)===(c==null?void 0:c.userId)&&(c==null?void 0:c.quality)>=Me)){h.update(s.CALL,a.CALL_TIPS,S(N.LOCAL_NETWORK_IS_POOR));return}}}_handleUserUpdate(e){const t=P(e);t!=null&&t.pusher&&h.update(s.CALL,a.PUSHER,t.pusher),t!=null&&t.playerList&&h.update(s.CALL,a.PLAYER,t.playerList)}}var Qt=Object.defineProperty,Pt=Object.getOwnPropertyDescriptor,p=(r,e,t,i)=>{for(var o=i>1?void 0:i?Pt(e,t):e,n=r.length-1,l;n>=0;n--)(l=r[n])&&(o=(i?l(e,t,o):l(o))||o);return i&&o&&Qt(e,t,o),o};const Vt=Ye.getInstance(),A=de.getInstance(),V=J.getInstance();V.setTUIStore(A);const Ze="3.3.6",_=class Ae{constructor(){this._tim=null,this._TUICore=null,this._timerId=-1,this._startTimeStamp=Te(),this._bellContext=null,this._isFromChat=!1,this._currentGroupId="",this._preDevicePermission=!1,this._defaultOfflinePushInfo={title:"",description:S("you have a new call")},this._permissionCheckTimer=null,this._chatCombine=null,this._engineEventHandler=null,this._handleCallStatusChange=async e=>{var t,i,o,n;try{const l={callRole:A.getData(s.CALL,a.CALL_ROLE),callStatus:A.getData(s.CALL,a.CALL_STATUS)};if(this._bellContext.setBellProperties(l),e===d.CALLING)await((t=this==null?void 0:this._bellContext)==null?void 0:t.play());else{if(e===d.CONNECTED){const u=A.getData(s.CALL,a.IS_GROUP),c=A.getData(s.CALL,a.CALL_MEDIA_TYPE),E=A.getData(s.CALL,a.REMOTE_USER_INFO_LIST),C=u?R.DIALING_GROUP:R.DIALING_C2C;A.update(s.CALL,a.CALL_TIPS,""),this.statusChanged&&this.statusChanged({oldStatus:C,newStatus:he()}),!u&&c===g.VIDEO&&this.switchScreen(E[0].domId)}if(e===d.IDLE&&this._isFromChat){const u=this._currentGroupId?await((i=this._chatCombine)==null?void 0:i.getGroupAttributes(this._tim,this._currentGroupId)):{};await((o=this._chatCombine)==null?void 0:o.updateStoreBasedOnGroupAttributes(u,A,this))}await((n=this==null?void 0:this._bellContext)==null?void 0:n.stop())}}catch(l){console.warn(`${a.PREFIX}handleCallStatusChange, ${l}.`)}},console.log(`${a.PREFIX}version: ${Ze}`),this._watchTUIStore(),this._engineEventHandler=j.getInstance({callService:this}),this._chatCombine=W.getInstance({callService:this})}static getInstance(){return Ae.instance||(Ae.instance=new Ae),Ae.instance}async init(e){var t,i;try{if(this._tuiCallEngine)return;let{userID:o,tim:n,userSig:l,sdkAppID:u,SDKAppID:c,isFromChat:E,component:C=De.TUI_CALL_KIT}=e;this._TUICore&&(u=this._TUICore.SDKAppID,n=this._TUICore.tim),this._tim=n,console.log(`${a.PREFIX}init sdkAppId: ${u||c}, userId: ${o}`),this._tuiCallEngine=I.TUICallEngine.createInstance({tim:n,sdkAppID:u||c,callkitVersion:Ze,chat:E||!1,component:C}),V.setEngineInstance(this._tuiCallEngine),this._addListenTuiCallEngineEvent(),this._bellContext=new wt,A.update(s.CALL,a.LOCAL_USER_INFO,{userId:o}),A.update(s.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{userId:o}),V.updateViewBackgroundUserId("local"),await this._tuiCallEngine.login({userID:o,userSig:l,assetsPath:""});const L=A.getData(s.CALL,a.CUSTOM_UI_CONFIG);(i=(t=this._tuiCallEngine)==null?void 0:t.reportLog)==null||i.call(t,{name:"TUICallkit.init",data:{uiConfig:L}})}catch(o){throw console.error(`${a.PREFIX}init failed, error: ${o}.`),o}}async destroyed(){var e;try{const t=A.getData(s.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(A.getData(s.CALL,a.CALL_STATUS)===d.IDLE)try{const{type:t,userID:i,offlinePushInfo:o}=e;if(A.getData(s.CALL,a.CALL_STATUS)!==d.IDLE)return;await this._updateCallStoreBeforeCall(t,[{userId:i}]),this.executeExternalBeforeCalling(),e.offlinePushInfo={...this._defaultOfflinePushInfo,...o};const n=await this._tuiCallEngine.call(e);await this._updateCallStoreAfterCall([i],n)}catch(t){this._handleCallError(t,"call")}}async groupCall(e){if(A.getData(s.CALL,a.CALL_STATUS)===d.IDLE)try{const{userIDList:t,type:i,groupID:o,offlinePushInfo:n}=e;if(A.getData(s.CALL,a.CALL_STATUS)!==d.IDLE)return;const l=t.map(c=>({userId:c}));await this._updateCallStoreBeforeCall(i,l,o),this.executeExternalBeforeCalling(),e.offlinePushInfo={...this._defaultOfflinePushInfo,...n};const u=await this._tuiCallEngine.groupCall(e);await this._updateCallStoreAfterCall(t,u)}catch(t){this._handleCallError(t,"groupCall")}}async inviteUser(e){if(A.getData(s.CALL,a.CALL_STATUS)!==d.IDLE)try{const{userIDList:t}=e;let i=await te(t,this.getTim());const o=A.getData(s.CALL,a.REMOTE_USER_INFO_LIST);A.update(s.CALL,a.REMOTE_USER_INFO_LIST,[...o,...i]),A.update(s.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,[...o,...i]),this._tuiCallEngine&&await this._tuiCallEngine.inviteUser(e)}catch(t){throw console.error(`${a.PREFIX}inviteUser failed, error: ${t}.`),this._resetCallStore(),t}}async joinInGroupCall(e){if(A.getData(s.CALL,a.CALL_STATUS)!==d.CONNECTED)try{const t={[a.CALL_ROLE]:m.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};A.updateStore(t,s.CALL);const i=await this._tuiCallEngine.joinInGroupCall(e),o=this._getFeatureButtonDefaultState(K.Camera)===q.Close;e.type===g.VIDEO&&!o&&await this.openCamera(a.LOCAL_VIDEO),A.update(s.CALL,a.IS_CLICKABLE,!0),this.startTimer(),A.update(s.CALL,a.PUSHER,i),this.setSoundMode(e.type===g.AUDIO?y.EAR:y.SPEAKER);const n=A.getData(s.CALL,a.LOCAL_USER_INFO);A.update(s.CALL,a.LOCAL_USER_INFO,{...n,isEnter:!0}),A.update(s.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...n,isEnter:!0}),H(!0,a.AUDIO)}catch(t){this._handleCallError(t,"joinInGroupCall")}}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){e&&Object.values(Ge).includes(e)&&A.update(s.CALL,a.LANGUAGE,e)}enableFloatWindow(e){A.update(s.CALL,a.ENABLE_FLOAT_WINDOW,e)}async setSelfInfo(e){const{nickName:t,avatar:i}=e;try{await this._tuiCallEngine.setSelfInfo(t,i)}catch(o){console.error(`${a.PREFIX}setSelfInfo failed, error: ${o}.`)}}async enableVirtualBackground(e){A.update(s.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)}async accept(){var t,i,o,n,l,u;const e=A.getData(s.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:A.getData(s.CALL,a.CALL_MEDIA_TYPE)===g.VIDEO},C=await this._tuiCallEngine.deviceCheck(E);C&&!this._preDevicePermission&&(A.update(s.CALL,a.PUSHER_ID,a.NEW_PUSHER),this._preDevicePermission=C);const L=await this._tuiCallEngine.accept();if(L){A.update(s.CALL,a.CALL_STATUS,d.CONNECTED),(n=this._chatCombine)==null||n.callTUIService({message:(o=L==null?void 0:L.data)==null?void 0:o.message}),A.update(s.CALL,a.IS_CLICKABLE,!0),this.startTimer();const f=A.getData(s.CALL,a.CALL_MEDIA_TYPE),w=this._getFeatureButtonDefaultState(K.Camera)===q.Close;f===g.VIDEO&&!w&&await this.openCamera(a.LOCAL_VIDEO),L.pusher&&A.update(s.CALL,a.PUSHER,L.pusher),this.setSoundMode(f===g.AUDIO?y.EAR:y.SPEAKER);const O=A.getData(s.CALL,a.LOCAL_USER_INFO);A.update(s.CALL,a.LOCAL_USER_INFO,{...O,isEnter:!0}),A.update(s.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...O,isEnter:!0}),H(!0,a.AUDIO)}}catch(c){if((u=(l=this._tuiCallEngine)==null?void 0:l.reportLog)==null||u.call(l,{name:"TUICallKit.accept.fail",level:"error",error:c}),qe(c))return;we(c,g.AUDIO,this._tuiCallEngine),this._resetCallStore()}}async hangup(){if(A.getData(s.CALL,a.CALL_STATUS)!==d.IDLE){try{const e=await this._tuiCallEngine.hangup();e==null||e.forEach(t=>{var i,o;(t==null?void 0:t.code)===0&&((o=this._chatCombine)==null||o.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(A.getData(s.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{await this._tuiCallEngine.openCamera(),H(!0,a.VIDEO)}catch(t){we(t,g.VIDEO,this._tuiCallEngine),console.error(`${a.PREFIX}openCamera error: ${t}.`)}}async closeCamera(){try{await this._tuiCallEngine.closeCamera(),H(!1,a.VIDEO)}catch(e){console.error(`${a.PREFIX}closeCamera error: ${e}.`)}}async openMicrophone(){try{await this._tuiCallEngine.openMicrophone(),H(!0,a.AUDIO)}catch(e){console.error(`${a.PREFIX}openMicrophone failed, error: ${e}.`)}}async closeMicrophone(){try{await this._tuiCallEngine.closeMicrophone(),H(!1,a.AUDIO)}catch(e){console.error(`${a.PREFIX}closeMicrophone failed, error: ${e}.`)}}switchScreen(e){e&&A.update(s.CALL,a.BIG_SCREEN_USER_ID,e)}async switchCallMediaType(){var e,t;try{const i=A.getData(s.CALL,a.CALL_MEDIA_TYPE);if(i===g.AUDIO){console.warn(`${a.PREFIX}switchCallMediaType failed, ${i} not support.`);return}const o=await this._tuiCallEngine.switchCallMediaType(g.AUDIO);(o==null?void 0:o.code)===0&&((t=this._chatCombine)==null||t.callTUIService({message:(e=o==null?void 0:o.data)==null?void 0:e.message})),A.update(s.CALL,a.CALL_MEDIA_TYPE,g.AUDIO);const l=A.getData(s.CALL,a.IS_GROUP)?R.CALLING_GROUP_VIDEO:R.CALLING_C2C_VIDEO,u=he();this.statusChanged&&this.statusChanged({oldStatus:l,newStatus:u}),this.setSoundMode(y.EAR)}catch(i){console.error(`${a.PREFIX}switchCallMediaType failed, error: ${i}.`)}}async switchCamera(){const t=A.getData(s.CALL,a.CAMERA_POSITION)===$.BACK?$.FRONT:$.BACK;try{await this._tuiCallEngine.switchCamera(t),A.update(s.CALL,a.CAMERA_POSITION,t)}catch(i){console.error(`${a.PREFIX}_switchCamera failed, error: ${i}.`)}}setSoundMode(e){var t;try{let i=A.getData(s.CALL,a.IS_EAR_PHONE);const o=e||(i?y.SPEAKER:y.EAR);(t=this._tuiCallEngine)==null||t.selectAudioPlaybackDevice(o),e?i=e===y.EAR:i=!i,A.update(s.CALL,a.IS_EAR_PHONE,i)}catch(i){console.error(`${a.PREFIX}setSoundMode failed, error: ${i}.`)}}async setBlurBackground(e){try{A.update(s.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:o,onMessageSentByMe:n,kickedOut:l,statusChanged:u}=e;t&&(this.beforeCalling=t),i&&(this.afterCalling=i),o&&(this.onMinimized=o),n&&(this.onMessageSentByMe=n),l&&(this.kickedOut=l),u&&(this.statusChanged=u)}toggleMinimize(){const e=A.getData(s.CALL,a.IS_MINIMIZED);A.update(s.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(){try{if(A.getData(s.CALL,a.CALL_STATUS)===d.IDLE)return;this._resetCallStore(),await this._tuiCallEngine.handleExceptionExit()}catch(e){console.error(`${a.PREFIX} handleExceptionExit failed, error: ${e}.`)}}handlePusherError(e){var t;((t=e==null?void 0:e.detail)==null?void 0:t.errMsg)==="fail:access denied"&&At()}setVideoDisplayMode(e){A.update(s.CALL,a.DISPLAY_MODE,e)}async setVideoResolution(e){var t;try{if(!e)return;A.update(s.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=Te(),this._timerId=Le.run(a.TIMEOUT,this._updateCallDuration.bind(this),{delay:1e3}))}_handleCallError(e,t){if(this._permissionCheckTimer&&clearInterval(this._permissionCheckTimer),!qe(e))throw lt(e),we(e,g.AUDIO,this._tuiCallEngine),console.error(`${a.PREFIX}${t} failed, error: ${e}.`),this._resetCallStore(),e}async _updateCallStoreBeforeCall(e,t,i){const o=i||A.getData(s.CALL,a.IS_MINIMIZED)?N.CALLER_GROUP_CALLING_MSG:N.CALLER_CALLING_MSG;let n={[a.CALL_MEDIA_TYPE]:e,[a.CALL_ROLE]:m.CALLER,[a.REMOTE_USER_INFO_LIST]:t,[a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]:t,[a.IS_GROUP]:!!i,[a.CALL_TIPS]:S(o),[a.GROUP_ID]:i};const l={enableCamera:e===g.VIDEO,enableMic:!0};n={...n,[a.PUSHER]:l},A.updateStore(n,s.CALL);const u=await nt(e,this);console.log(`${a.PREFIX}mini beforeCall return callStatus: ${u}.`),A.update(s.CALL,a.CALL_STATUS,u);const c=await te(t.map(L=>L.userId),this.getTim());c.length>0&&(A.update(s.CALL,a.REMOTE_USER_INFO_LIST,c),A.update(s.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,c));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),A.update(s.CALL,a.CALL_STATUS,d.CALLING))},500))}async _updateCallStoreAfterCall(e,t){var i,o;if(t){A.update(s.CALL,a.IS_CLICKABLE,!0),je(t==null?void 0:t.roomID,t==null?void 0:t.strRoomID);const n=A.getData(s.CALL,a.CALL_MEDIA_TYPE);(o=this._chatCombine)==null||o.callTUIService({message:(i=t==null?void 0:t.data)==null?void 0:i.message}),t.pusher&&A.update(s.CALL,a.PUSHER,t.pusher),this.setSoundMode(n===g.AUDIO?y.EAR:y.SPEAKER),A.update(s.CALL,a.CALL_STATUS,d.CALLING);const l=this._getFeatureButtonDefaultState(K.Camera)===q.Close;n===g.VIDEO&&!l&&await this.openCamera(a.LOCAL_VIDEO);const u=A.getData(s.CALL,a.LOCAL_USER_INFO);A.update(s.CALL,a.LOCAL_USER_INFO,{...u,isEnter:!0}),A.update(s.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...u,isEnter:!0}),H(!0,a.AUDIO)}else this._permissionCheckTimer&&clearInterval(this._permissionCheckTimer),this._permissionCheckTimer=null,this._resetCallStore()}_getFeatureButtonDefaultState(e){var i;const{button:t}=A.getData(s.CALL,a.CUSTOM_UI_CONFIG);return(i=t==null?void 0:t[e])==null?void 0:i.state}_updateCallDuration(){const e=Math.round((Te()-this._startTimeStamp)/1e3),t=xe(e);A.update(s.CALL,a.CALL_DURATION,t)}_stopTimer(){this._timerId!==-1&&(Le.clearTask(this._timerId),this._timerId=-1)}_resetCallStore(){const e=he();this._stopTimer();let t=Object.keys(ce).filter(n=>{switch(ce[n]){case a.CALL_STATUS:case a.LANGUAGE:case a.IS_GROUP:case a.DISPLAY_MODE:case a.VIDEO_RESOLUTION:case a.ENABLE_FLOAT_WINDOW:case a.LOCAL_USER_INFO:case a.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND:case a.LOCAL_USER_INFO_EXCLUDE_VOLUMN:return!1;default:return!0}});t=t.map(n=>ce[n]),A.reset(s.CALL,t),A.getData(s.CALL,a.CALL_STATUS)!==d.IDLE&&A.reset(s.CALL,[a.CALL_STATUS],!0),A.reset(s.CALL,[a.IS_MINIMIZED],!0),A.reset(s.CALL,[a.IS_EAR_PHONE],!0),A.reset(s.CALL,[a.ENABLE_VIRTUAL_BACKGROUND],!0),A.update(s.CALL,a.LOCAL_USER_INFO,{...A.getData(s.CALL,a.LOCAL_USER_INFO),isVideoAvailable:!1,isAudioAvailable:!1}),A.update(s.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...A.getData(s.CALL,a.LOCAL_USER_INFO_EXCLUDE_VOLUMN),isVideoAvailable:!1,isAudioAvailable:!1}),A.update(s.CALL,a.REMOTE_USER_INFO_LIST,[]),A.update(s.CALL,a.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,[]);const o=he();e!==o&&this.statusChanged&&this.statusChanged({oldStatus:e,newStatus:o})}async getGroupMemberList(e,t){const i=A.getData(s.CALL,a.GROUP_ID);return await yt(i,this.getTim(),e,t)}async getGroupProfile(){const e=A.getData(s.CALL,a.GROUP_ID);return await Ft(e,this.getTim())}_watchTUIStore(){A==null||A.watch(s.CALL,{[a.CALL_STATUS]:this._handleCallStatusChange})}_unwatchTUIStore(){A==null||A.unwatch(s.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._defaultOfflinePushInfo=e}getDefaultOfflinePushInfo(){return this._defaultOfflinePushInfo}async getCallMessage(e){return await this._chatCombine.getCallKitMessage(e,this.getTim())}};p([U(),F(M.init)],_.prototype,"init",1),p([U(),F(M.call),Ce({engineInstance:!0})],_.prototype,"call",1),p([U(),F(M.groupCall),Ce({engineInstance:!0})],_.prototype,"groupCall",1),p([U(),F(M.inviteUser),Ce({engineInstance:!0})],_.prototype,"inviteUser",1),p([U(),F(M.joinInGroupCall),Ce({engineInstance:!0})],_.prototype,"joinInGroupCall",1),p([F(M.setLanguage)],_.prototype,"setLanguage",1),p([F(M.enableFloatWindow)],_.prototype,"enableFloatWindow",1),p([F(M.setSelfInfo)],_.prototype,"setSelfInfo",1),p([F(M.setCallingBell)],_.prototype,"setCallingBell",1),p([F(M.enableMuteMode)],_.prototype,"enableMuteMode",1),p([U()],_.prototype,"accept",1),p([U()],_.prototype,"hangup",1),p([U()],_.prototype,"reject",1),p([U()],_.prototype,"openCamera",1),p([U()],_.prototype,"closeCamera",1),p([U()],_.prototype,"openMicrophone",1),p([U()],_.prototype,"closeMicrophone",1),p([U()],_.prototype,"switchScreen",1),p([U()],_.prototype,"switchCallMediaType",1),p([U()],_.prototype,"switchCamera",1),p([U()],_.prototype,"setSoundMode",1),p([U()],_.prototype,"setBlurBackground",1),p([F(M.setVideoDisplayMode)],_.prototype,"setVideoDisplayMode",1),p([F(M.setVideoResolution)],_.prototype,"setVideoResolution",1);const Kt=_.getInstance(),bt="3.3.6";B.CallMediaType=g,B.CallRole=m,B.FeatureButton=K,B.LayoutMode=fe,B.NAME=a,B.STATUS=R,B.StoreName=s,B.TUICallKitServer=Kt,B.TUIGlobal=Vt,B.TUIStore=A,B.Version=bt,B.VideoDisplayMode=z,B.VideoResolution=x,B.t=S,B.uiDesign=V,Object.defineProperty(B,Symbol.toStringTag,{value:"Module"})});