jiuyiUniapp/jiuyi/node_modules/@tencentcloud/call-uikit-wechat/tuicall-uikit-vue.umd.js

3 lines
99 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode("")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
(function(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:"微信开发者工具不支持原生推拉流组件(即 <live-pusher> 和 <live-player> 标签),请使用真机调试或者扫码预览。",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 不具备 <live-pusher> 和 <live-player> 的使用权限,您将无法正常使用实时通话能力,请使用企业小程序账号申请权限后再进行开发体验",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//zNGRDA4gdJgBhghIDwCZAABGMAFVWERbCdaMYNCKs///2f//QMOBhFBEL+ykPDBIJgp1sjvOMAd/////1OEsNl3MST2Q0Yf/zNGRKA2DJKAAsBWYD8Co8AAmEBLDHj+M/IhcksnAgg6G+qLIYz5etEeeW8HZsorBzgkAa1AWMPfu/////LaYPuAABp7iKXP/zNGRSA3glKgQJ6QACOCZMAAmGAYUAPF9exl35wz/9DIK2KUmQgYlTwgEEWkm3f////6IVoMJPBkKdWoQnDLurGiesVhdx6f/zNGRgAqizNAQsA20D4B5QAAmEAP/+vjlaZ1RwqBVMJYhaM4sYnFlVf/////6qAEghRzo0nRKQQRlI/EAPkCE6srVAiTUt/f/zNGRuAwCzQMwkAmwDsCpUAAmEAD3e5qf+yS5UwJFzQ145RxpgyI1QrkYnFjlaFdmklTcdAYL/rpcl7an3N18alNr+8+Tjqf/zNGR6BAjHKgQ8AmoDUDZUAADGBHMxO4R8koQnxNohhQoHS/XVF40p6jdPQ7qEIfuLKpUDOmf////2TGDwwTzkh0sePBMWCv/zNGR/BGwnMDxhhhIDyEJQAHpMISk//////0K1gsLiN1WF6ShLE4o14ccxglb//9P/4q5FQOpJkMGwZxhY7oDQW//////sWv/zNGR/A8zBKgRkA22CsC5QABvEAaoDMZE4OYXHboRqlgfr85KzbMjSIgKRUEILJNuHBYDoH//////qgPyBJdUEsYVyTSAteP/zNGSIAzQjLAQ9gxIDwDZMAAmKBLmvo0L///b/2iiK48qOD4gBjCxhQ7AbaCjzm/////+utNUXkYSLUD1SBQS8MECruBT57f/zNGSSA6AhJgAl5gQD0DZIABDGBN5qjnO4MkB4hZ7dh4ffb/////8g+xYWYFUYeDYyhC18k+tOcH4z9f9slvls1HAAcxB95//zNGSYAri9MAgwA16D0CJIADpGANGJmAqH6X//////V13vmwnBdjKbx6RrmMrau4F7wPrWv/p//76f+k81B8eKBCgyNya5jf/zNGSmA9AjJAA97AID6DZEACjEBIYDAEG3//////y7mAIq1aOwiF0rtiCEZJNHhm85SBFNJn63f//b8hnQytnEhqioQHLMDP/zNGSqAwy/KgQ8Al6DoCpAAApCBK3qJ6KDBVDgKb/////8c2bq7lAgjFKFNzoDGD2f6DnQpO1rBdGPZq/////t/X/jKy3bUv/zNGS2A2DBKAQ8A2yDqC5EAAMGBBNFy1AzuLARQspDWGjQiDQGf//6avV6pGJBLsfDuI/14WvXP9v///T7IkQkctXkHygJAf/zNGS/BIzLJgA8B2YD4CJQAAhKAHBkdgIRgDqoaE/////9QxgQTKqB+vY/RzDLHYYoY0Y0Xj30gb+zdF///5/2R//z9La1HP/zNGS+BMTHIAAwBWaDyCZAAAhMAD9/SSaHQTkQS2EGSh02NjgJZbYoOt//9yv/8/SlAVEdCjJAdiSKMLieMEgRojWdrsPvhP/zNGS7BUzJHgBh4hYC+CZAAAGMAJbWjunv1dnJf7va5R0APyBgh0RKxyBAj////7E+vUryN6fWmQZjSKkWZIC6sb+aU/Ohk//zNES3A1y5IgA8AliF6DpIABMGBJf//8ZkvsiuL/fvOBkwbBoLBjMY+qgy8Irx3Co4gCeyz//7v/8vftKVDjBg3fp8qFcj1f/zNGS3BOTJIgA8KF4FoD40ABJMBIl0NQ+MxtVQRi20lr36O0rSbvflAUFCIUaRQdNtE5j+LeXB7TUNPFjP/+hav/2LjkHX4//zNGSsBDglJDg95iAD6CZAAAiMAFUAkEkY1LkZoHjlPbtusbU/vCkLlJ480wHkKcof9//UhWSZfAmf5ovuC6XqRor/2dmBIv/zNGStBaTDGgA8I1yD0DI4AADEBAALgw4c8ByDxLPorWktBluaGYNjx0HnzMPFj///95hxUHn/4eQcxif/+Pk0BwAsZ+nw+v/zNGSjBSAdIDiniAAFECo0AUYQANZQWuOefHOA9WA39Khw2NjPM0C+khp7n//////vN2P87mF5r2c6F607H8ZeEyB6CZZV7P/zNGSYB6C9NGTMNAAJ6XZUAY04AIg84IPMLROUTmsw/7hJxOjVupv+kI+3/30oWQecIbC042klckMcsgOSKovRrkbhKj0HUf/zNGRmB5i7VADpmAAFCDqUKc0QAOKmnvZmHi4Ye/VFxY8eaKC2EntAYFAHH4AoHK/UjViBLV//63AJjdI0XtwGkifICyqmi//zNGRIBSw7btwFgyMD6ALqWAhETu2ZOWicEhAiswV/hPFBGEqauoaRW3V54HwcFxIkk6KAAcADyHB0AIv/9dYcMzfqHQ111v/zNGRCBcxXZSwV4yID0Iq6YAGEQckgAG2n4fkUQuw23aCbLDMdqFwtlXh63MmhYuoS17LCLjXNAUUAfACgdZy78phH///11f/zNGQ3BOQxfywBJgcDwALuWAAEAmgxd7v9LaPcBg1L81hTvD0CHIluDY0XFot+LevrYw7WIAQBcKdMOj136pAOA48FlaCiKP/zNGQzA/wdi3wgJhED2DKmQABUAFsyYl7gxBmYOtXykChn+aEhu72l/8Ysza/SIQAB6KABLXByn9drV1/Q3Z+v+1to0Exr8//zNGQ2A5wvYMQLAiADwDKyWABOAOAYUtUAgZPn19TSzma6m/p90nQUCACboP6YFq/o98Z4CSkYi23WySBvXAHAVZ1SRY5U1//zNGQ9A8AbiywIJhEDgIq9wBAGacvvqgOV6a1LfZXW/iMWDACgS2qwzv9VuB2ttwgg0C3bhahyHlmazA+xjKm1hwLnlfxX///zNGREA8BXgSwAIgECaDbeQABEBjQsDAFwqYUYx3/FsBpsCIORixsI5IPwsDymND8Hg81vxZQ9PxRflPkH11DUAADgDAX3r//zNGRPA5wrgywUBhEC8ALaQABEAv+Fv//t6xUgogYZGahTgDvLptnJ8VC4z/T48xUtXiDQRexNtIBFAGwh4Ejzf/pwrFoUCv/zNGRZA7QbZygETwID2AbuWABEAuSyAOAUKbwBMHHamtxxqQq4qtH/9WtiE/cNgBd8MABU8GE/dadr7/qqIIGpCNICagJUzP/zNGRfA6QbXsQE+BADKDqmQABYIG7wihFq7tAEX0G1BP/rYHjSgNNLGggwHHAAtto1P/ft9AmAFRALZbI44CjFvCqCilc81f/zNGRoA2QvfSwARQEDyAbmWABEAgBBIYZr4spfVio5xq77A8FRB7A4LYxYdoiQaGmkNrf7l3q9HWba2SjNQKK9eBjhy7wXlP/zNGRwA8AbYMgAuAID2AbuWABEAhQPlsVrD1qn1SgsK+LVVEwCphGXQFMDhcXgRd7UI71+sUXVmItktkbmzCiIvbwEzAbG2v/zNGR1BDgvfSwA4wcDuC6uQABOAOVbKh4tJCqTihrCpoC0gM4aHC/vXqKiyEIYDI6kakADcSrSjz3/mdIQjSSyNuU40/z42P/zNGR3BLQdgSwFKAEDYAbfAABEALhqX1oRUj3kJPr1ofBLFvU2Lc0thEosTnAsFWWNHnAUJDumfAX2FO/9ildNEA2ttsRYW//zNGR2BZgvdywEyAECyALqQABGAmcZgJMbQpXd4fseFHi4GQ8V0DgKH30uCqz//FZpaa1gqhAACwBtwC41oXI/6zgqIJagXP/zNGRxBRxXeSwBYgcDcNa9WCgEenleIeY9xXQh21qQOfILHNRYFrWcVhYmQeriuu5yhapq+4qVx07u3Hf/1f//0yDa7QjoZv/zNGRtBMwxaSwBpgQD4Da3AABSBBTgEeWFC5/dtjU0BUUZK7AIgCEMvQKV9Cm7TJYXppC6CADL8JeVsd4v4qOKKh0ftvtbd//zNGRqBHQtXsQfAiADUDaIAADwBCZTnxVgcvqGuDjL3s9OuqQUFSGLSLGi/lTUVAglD2sVPLQMCuGLUI+wz//6/+Imdd9iqv/zNGRsBJAvXsgfBiADaALjAABEAE8954CNUMNlHQfqzUEgl/lxu3c3d0mXj015fueohyoa+J2g/XoJBL/SN23uaXurpMvHlv/zNGRsBPBZhywBAgkEMDaQsACeBDi5AvUMC1ORpt1N3yTFsRQQGnFhgVeQasglBoqRfqy7FW484pYoBbrUYZIAGH9MNr+wEP/zNERmA1AvWGAXAiAG+F6sAA4EJJPhc2psCtONFJXQFdrcCmK89VfW+rEAyipdjwjaDLGfiQWYIsMratDWJY1y2VB4nC7hKf/zNGRiBNAbcSwALwMC+U6suDgEvWyN/y7Ov/3f9dVIIWW77WyfILAmV28H0D6mmY0ajiKnD0maxGCQaGcXGsCyX/IuFEP/MP/zNGRiBTQxbSwV4iMDoDaMQACeBD00AEQHhKWK9/YclaocDSOuNB2BF34NrAXEs4u9OjyFUV6VSv5lh23/u1yLr//6RzM0k//zNGRcBRwvg3wFKAEDEI7uYAgEinoCAAuH6zNoKai/eXYGExydZdrJJhYAJp4bZHzI8VWKnyC8RiosGAGAhRviFjf1PIgFl//zNGRZBOilZywB4gYDaIqZoGgGie16g8g2CFOaf+JG///+Jj/rmJ8l1kjg3AFJXwgiBAtDTOG4Q8DDh/tLeMpBcA2/FVIGKP/zNGRXBMgdfywASQMDsDKQQABeIHlhoKKB7FnvWX9nzUy5apQLHK5fmiBmPr8GlQ2qvfWcYkPQLL4qXOiT1irFd5HBzWKtFv/zNGRVBHAvfSwJIyMDOAbiQABEAgAAGAAovnVf/7P//9ShajAKt9V/QUx1l8zASWZB5KN1m5J7KrfZX68UaZPfqOiyWE6wmP/zNGRXBGAvdygFIgcD4AbeWABEAnEcAPidQJrUELbpbP0QCNuNtJQCnk4ApOdx5MPdaEguz7SiR6aA6aU3/tCoC0rZHioigP/zNGRXBFAvYRQnCSADiDKiQABYBDgN1xCUAn/kwsGlEQ1l1rkgK2vf4mBUsoXWQGS92pVPW7BiaPU13xcVVOlnEAlgwAC9Dv/zNGRZBFwrcSwATAMDaDLWQABEAmst2B/QKE/DVSGGu3tlu3Au3DD4mGoykAQKEF3kQiaDJMS2a8Pfi0KA6BCXtqgQLy0ecP/zNGRbBEBXfywAwgcDgIrbAAgEiSy2R8IT//V//2qYH2XWySjUAOIw/rB0ydx91RnNXCCWvy5wNgA/tQDhNPxvNCynFx4X2P/zNGReBLAlg3wJBiEDyDaIKADeBB4A8dhZELhy/biGsI1l1kbnqgYuviiQkRRrwRR1FSYqwWipqxO8WqGWfVaUHrODwG5kmP/zNGRcBMA5fywICxEDcB7uYACAApgKBgMAAfRR9uT/s/3LFJ2t2rjnOIenhtkNoa9N+VprPQdFShp4BYRDaD3UBJmnV2CEW//zNGRbBPQxeywJIiMDmCLiWABGAqcKhbgGht8AYpNPKE5JCsoBKtgPUaXZt35QU1fHgrmSFo9ux1pHgjh0GaSJlqGa4Fe9vv/zNGRYBOQvfywASQMDyErbAABEAAVUtFVxV2kWhgD+8AAfRyWj+2VBnq11EArbskSdOye48TFIe6Z7TZxp+9swbM7KHC4sNP/zNGRUBQA5bTwJ4yID2CbaWABGAhQXCYjX7+wOHXgN0hCIAwYABuB/Lkix6N3BA4q4nSXayW/OJEzq4OSgiU11OIVepOT6Mv/zNGRPBTRDcywBYwcDcI7TABAGiDRTm/P47Ml5EZfLQwnHZ9Kg8zpwAEwgliWgml//rDP+qhgLJLYG3Q2Tfx4ISYtKfP3scf/zNGRKBTylfywcInmDaDahqABYBBx4GF4M2gJrWkfUZDq80tqjsFTLbqaYRwgYjc//////qErLVxgPU571gaT3q6Iiv5TUrv/zNGRFBRAxdSwBZgUDWDKMAAFeIBGMBxRpeLEgith1AcpPKIhmxfJDw2tKkjJYVWgnqB7P9//Ff/9v/8aqHY91/1toFHF2wf/zNGRCBRgdZSgBGAIDmDKIIACeBjjTke3mcQX74PeJVSjvlAL/rt4NPE38/sZm2ONnf+sg1IwcoCBgRNKPp////YkUCJqRkv/zNGQ9BRgxhSwARgWD0DaIQADeBJQ4TabkWdxc2qFwyZwrLNuFREgayvLmV/AgWSC4stmhFxDHylMAUXL+/8KaVZhZFbyLZf/zNGQ4BMQbbSwArwMDkHadAAKEJNbJJ9QlDwtXwSgiMer3UCfFq9SB6yTMOrCoVAqCGKFayYQb3bSABgx8j5m/9bqFFAsUsv/zNGQ2BPgvfSwowyMCcDKdAABeIDTg4Cn08DaEVzrNop1Z5FT/qkqGY30RNNv/Ml9qwpqRLKmQMAANRIeEv////+USCSoYC//zNGQ3BNCldSwVIiMDaDK9+AAKACS1tuAg87nwIFAsuu+rtzIYkbXUJLPAthxzOsqy0cFguHGWKCDAiKLkPth1b/9n/3/2Iv/zNGQ1BLgxdywBCAUDwDaVgACeIBgM3Lr1nF1guAij1Y6ctKxxrV4tFmCx8NZgkgVK+pxJ6Tp5KYtkgusIhQFe8x/1f9f+mf/zNGQzBKQxZygJ4iIDwDaIAABwBJRVdAkbon2YSUeQ58HKAAW79zCd5Kbf0hQqHtaxUBmRVnbWxQj7GIDAeY2CnF4E2TpQeP/zNGQxBLBXcygFYgUDmDKiQABYBL/vNB0vbvrbKCUaoceB5MB733CsIiEi7h+JLDyNkWaJG+1+sVU2kDDBgiAcBe52rlSzwP/zNGQwBHAxgywBYwUDgCLmYAAEAkHqBACHV4hZHB1Ue4srIsTXmsxikzXY1SwyVKBVSq6rjz1korWx757MjEADgAAYH0xf4v/zNGQxBOQzbYwF5iAD4C6+WABEAI3/////XRAIQYgABAEhDDUpISzLenJrryQNhm04v2r+4YBBws1l81KQZsQKsKQ2eAAKAP/zNGQtBRwfWywA2QID2DLBuABEAgLmq4n/5XR////6VRkdbP6JKONabordLaH9GOpBIrziQsoWUAwgt4t8WaOLSW2poeSCCf/zNGQnBQw7fSwJgiMDmC6YcACYIKGgWoIIS0AY969Ozq/6/lEUBtT6c5xaYV8AEhpCJ8+Mr0j1n9zthS4Q8nJLHk3GT3U24f/zNGQjBKxXZSgJ4yAD6CbWWABGAihdItAAA4AgCuh0K//Jbv//6RAI3LJG2HRaYDYqhGr61U1JDZ8ve3/sGWaq5yi7Q/VXf//zNGQhBNgxcSwBSAWD2DKdkACeINUrfQqsCDAAwDHENx3SO//X///qAqpoCk2x6ZoKFKOA2AjICKmmhxx1Mq13X5cbnpYwEP/zNGQdBSBXYSgGRRIDWDK6YADOIBUgBbfpF0gZAOGx6AMGJeZCgaxCp/qZ4zLVdAsblnUZJGWfyflM1peS9ns5iXU1hk6K0P/zNGQZBQQvbygF4wcD4ALmWABEAgyTnVtHFNt4stDDrQlgJI0EGAH2AFVdj9H/yodq/0IUDWS2Nt0PnK58ApDA+Qw6NyThCf/zNGQUBMBXdSwBAgsDyDKNAADeBMzV/oZUBJ+OEjVN42VAqV/FbGAJQScHXIE+p/n5V8HVytUUj2W2NuA7iqeCU1Aobyp5Df/zNGQRBJAxdywASQMDCC6ogAAOAFk1QUWuK1lZ97dlAFs+t0qRE7KiBpSuAQR9uysG7D1CMNP03I5lA2oQJtqAad8txoiBA//zNGQTBHwrXMQLBSAD2DadoADWBPr3RK0lqgURipHKCsGV2JqcaYKOJbAUwNnzf0LZz8HKqiCkJ4U9TnZod8tYQS6ZWIK////zNGQSBHChXMAHAhIDwDK+YABKANMiafPuhlRfrSpk5XKGcHJGkeCBwmodVwWe7Pg6Ha4umhSJJLZ9i6Dd3imal/95DEi3sf/zNGQSBGAvdSgBYwcDiC6ccABYILLNULElTbq7QIeFyDv2MbGJAFAES4A4Of+z///7mQLVvR2t2olv3OwNL4CLBDTUV3kicf/zNGQTBJQvfywVJiEDMC7KQABEAuayvM1pf8W8Vc96ihDHrjCU6JAxIBZ1DvCp6gK3/UoUBsytpJ2zwe28i5qVzIpaoSlzgP/zNGQUBLQbbSwBDwMDwDKQcABeIFFynYYnXxiVk22xVTU1fjCUaHK3AgwAfS6Z5yjX6fb4tXALI7H3mYxCnw0MBpP6+bu2r//zNGQSBDAxcygFZiEDqDrWWADEIlsivsdoXFiUVsOhUkOX0oAowFwtAAg9rE/ZVt9r9KqUDSS2tuXKQUlPCS5MQZXo4hTdbv/zNGQUBLAvdywJIiMD6DaNAABeBJ0WuZrxU96l5lwkCrAkLNBy5BgiTDQpAHhe3qUv1cvndVUUj63a2ycSdq+EwTFzU1Eakf/zNGQRBKwvfywARgMD2DaZoABeBBcwPUHkLOLrx4hHA49bGt+v2hLCZAAEhEpCWxX2unq9Ler/qRQNFNYSZo3ccPNyAA5HxP/zNGQPBNgrYywB4gYD4ALWWABEAmTNLKDCgghsWLNqCtJLsiRS/s1xz8RWOFAAAGAFolBXOf+r///7JJWUiSS2tuDZBMbv5P/zNGQLBLQxdSwEywED0DLF+ABEBjE6Xv7mdloL2VLXt12BBmyJR7PUWXFwKkpXSIgABIGslF/////6kKM11BUfrf9baChrgf/zNGQJBJAbgSwAKAMDuCLSWABGAswQAoKnB4DbJLQwXCIwvFe2KmRjVY60qTCZvtFgYoGGAANOh3OO6P1/8jVwityilt3QOf/zNGQIBKQvcywJgiMD2AbiWABEArN0H1ovg3NxIpjXHVeLrF/UFRWneJjDRxsFhRP2jQUAcDCgRVrEo/6/+r/+tRUbZd7I4P/zNGQGBDQxfSwBYwcDSDaQCADeBnPrb4YJGU1FvIotz6sSsiNrPyICBanspcVI00E1bDrgL1c3//1///UtIOI+E1zWo9y6bf/zNGQKBJQxXMQDAgQD6DaMAABgBGqojl01lEEf1VAVIFUetxekW4qSiIREDwdZSp0JQEQjn9P//8Z/nQKVcpWwnaXaySCQwP/zNGQIBJgveywFYyEDcBcDAACEAgz4aIUDU1zgIxGMUpsgIhcr6VhJQuyqYLJihbWgIcoCACgDuw+sv1/nIfUYCxyyNuYaxP/zNGQIBKQxcywBYgcDqDKIAADwBIT+PDqakttbMAlUptuRjGndsBAX3obYwIPfWYK0WmoCPcFCRA70Cn/+z/+tCAzJkUCXsf/zNGQHBFglXygDBgQDIAbiQABEAu4x/mYKy4gs+rPTQWCFa4zK2eMJqbZYEFKvjLxoAAP/e08v/ZS3gqVV2a/ZohxdhkSemP/zNGQKBEQdizwEpgUDqC65WABKAgTjMQdMAYLtQeYRnUMC5RH/YJWgYBSAxBoAAgPrgR3/////guDYBZCLJfrG78hG54Qml//zNGQMBIA9eywE4yUD2ALiWABEAun7BdrbCZEtgQhNwO9glLW+zWAjolu2FRmABh9wAKKr/nl9JXsy0Yqg9ORtZmItcCdMQ//zNGQLBDgvbNgF4iEDqDKIAAieIGqpSwoKNa2zJKIL14Shdil/FwiXUlg/DRFD+DxYUf/7f+K/7Lm1uA+l49lwzE98kDbRRP/zNGQNBKCzbywF4iCD0AbueABEAqd1Kf0//SZNPq/RSm/tTWtSqdRMh4lpGBoAAAAgAUWsZ//6xL//+lUJ/7oXuAGpUZVBCP/zNGQLBDQvWGAbIyADYDKMQACeBgJftuqBU2/Yur1ComHBqLc6PB8aJW9IUVaHbIF1Jnv+ECX/9SoMCROSNJwd256AOnacHP/zNGQOBIAdbywAbAMDIDKdoABeBLUDJyIV1dpm21SjwxArsX5U6yoNMYgYBj0QYFQkTU7a33j6dAzjukTY1OYVXhogPJPcqP/zNGQQBORRcywJYiMDuDaVYADeBJDson0po5azg4ovaF2BMRK54k0eyv7XnBQhgKCxrh8qePZd///r6ZAxpeRSiYXNqChhcf/zNGQNBVA9YAALCSCD2DLN+ABEBkMTJ5pIEEUDGB58A/AwPfv/rIdb/fwOnz8get0+QRgOgMVoEFl///zz//0lFwz//DzxrP/zNGQGBFA9dMgBJhQDuC6x8ABGBCUQnBpFYkFkFN5Ik0kWk06ImCJ6HGv/tLNEXaIhiAQIOd1Bvv/////xwFGKClAiJdv2wP/zNGQHBIghcXwAZgIDmDKuAADEBBAqTRqFWhpwWYaJDh7B6DwCuTe1T2fclZoluNEqRuAeVHEA3eDfOBZIo5lFFgAAUddo+v/zNGQHBHQ5XSwFIyQDUFqMAAJEJGGsVB1DlLU6rGyRsUgYBToBLLO31I/Xetr7BEDv6TjQIAW70xgEPCvX3jgAVJRaP1y14P/zNGQJBLytWtwMA7GDSDaEsAAGBBbxVktJVI5qFIvFTjMZqerH+vD/2VTlvclPwokmFgFCuMAwuTAzxG7/6gWAEGTalNxYNv/zNGQJBLQ5NiwFIBoDIGpcAACMKSptCTEZATkUiWCYpQNIRKFSJ3CRr//9ckbFFpEupxBZJywWTarFgvCdVQBklrdb8zZ6sP/zNGQJA6wtOtwEJhIDkEpIAABGBC4cFlCTZWwChLS+xjUfatX9HJ+tVZ1Q+WY5YqlhBv2///9CMIwtiXeXU6Mkkm+FUCkkS//zNGQQBBAnJAAN5gIDyCo8AAjABC2lpL/R3f4DrJgSoNtOBFScxYws1HGZ54NCN3//T9FdqYVEuLJAoShgKjAZUWPaP///VP/zNGQTAwwTIAAlJgADuCYoAAiEAEsFRkrDUmAgIlgziIO///y3/+oGleWDUOiVYwGolg0eLP9nrO/+CpUNCI8dcJQ0WU/dI//zNGQeAzwC8gAAAAADKAHAAAAAAPZ/tGIFRn/5JUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ==",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<r.length;i++)We.call(this,{...r[i],value:e[i],name:t});else for(const i in r)r.hasOwnProperty(i)&&We.call(this,{...r[i],value:e[0][i],name:t,key:i})}catch(i){throw console.error(i),i}}function We({required:r,rules:e,range:t,value:i,allowEmpty:o,name:n,key:l}){if(pe(i)){if(r)throw new Error(`${ee}<${n}>: ${l} is required.`);return}const u=e.some(E=>E===Tt(i));let c="";if(!u){for(let E=0;E<e.length;E++){let C=e[E];C=C.replace(C[0],C[0].toUpperCase()),c+=`${C}/`}throw c=c.substring(0,c.length-1),new Error(`${ee}<${n}>: ${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"})});