jiuyiUniapp/jiuyi/node_modules/@tencentcloud/call-uikit-vue2.6/tuicall-uikit-vue2.es.js

10927 lines
591 KiB
JavaScript
Raw Normal View History

2024-12-18 15:46:27 +08:00
(function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".tk-justify-start{justify-content:flex-start}.tk-justify-center{justify-content:center}.tk-justify-end{justify-content:flex-end}.tk-justify-space-between{justify-content:space-between}.tk-justify-space-around{justify-content:space-around}.tk-justify-space-evenly{justify-content:space-evenly}.tk-align-center{align-items:center}.tk-align-start{align-items:flex-start}.tk-align-end{align-items:flex-end}.tk-align-stretch{align-items:stretch}.tk-align-baseline{align-items:baseline}.tk-blur{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.tk-round{border-radius:20px}.tk-circle{border-radius:100%}.tk-row{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box;width:100%}.tk-col{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box}.tk-justify-start{justify-content:flex-start}.tk-justify-center{justify-content:center}.tk-justify-end{justify-content:flex-end}.tk-justify-space-between{justify-content:space-between}.tk-justify-space-around{justify-content:space-around}.tk-justify-space-evenly{justify-content:space-evenly}.tk-align-center{align-items:center}.tk-align-start{align-items:flex-start}.tk-align-end{align-items:flex-end}.tk-align-stretch{align-items:stretch}.tk-align-baseline{align-items:baseline}.tk-blur{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.tk-round{border-radius:20px}.tk-circle{border-radius:100%}.tk-loading_dot-container{display:flex;justify-content:space-between;align-items:center;height:100%}.tk-loading_dot-container .tk-loading_dot:nth-child(1){opacity:0;animation-duration:.8s;animation-delay:0s;animation-play-state:running}.tk-loading_dot-container .tk-loading_dot:nth-child(2){opacity:.083;animation-duration:.8s;animation-delay:.2666666667s;animation-play-state:running}.tk-loading_dot-container .tk-loading_dot:nth-child(3){opacity:.1667;animation-duration:.8s;animation-delay:.5333333333s;animation-play-state:running}.tk-loading_dot-container .tk-loading_dot{width:20%;height:20%;border-radius:50%;background-color:#fff;animation-duration:1.8s;animation-name:dotting;animation-timing-function:linear;animation-iteration-count:infinite;animation-fill-mode:both}@keyframes dotting{0%{opacity:.15}1%{opacity:.8}33%{opacity:.8}34%{opacity:.15}to{opacity:.15}}.tk-justify-start{justify-content:flex-start}.tk-justify-center{justify-content:center}.tk-justify-end{justify-content:flex-end}.tk-justify-space-between{justify-content:space-between}.tk-justify-space-around{justify-content:space-around}.tk-justify-space-evenly{justify-content:space-evenly}.tk-align-center{align-items:center}.tk-align-start{align-items:flex-start}.tk-align-end{align-items:flex-end}.tk-align-stretch{align-items:stretch}.tk-align-baseline{align-items:baseline}.tk-blur{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.tk-round{border-radius:20px}.tk-circle{border-radius:100%}.tk-loading_circle-container{height:100%;border:2px solid;border-radius:50%;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#fff;border-left-color:#fff;background:0 0;vertical-align:middle;box-sizing:border-box;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tk-justify-start{justify-content:flex-start}.tk-justify-center{justify-content:center}.tk-justify-end{justify-content:flex-end}.tk-justify-space-between{justify-content:space-between}.tk-justify-space-around{justify-content:space-around}.tk-justify-space-evenly{justify-content:space-evenly}.tk-align-center{align-items:center}.tk-align-start{align-items:flex-start}.tk-align-end{align-items:flex-end}.tk-align-stretch{align-items:stretch}.tk-align-baseline{align-items:baseline}.tk-blur{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.tk-round{border-radius:20px}.tk-circle{border-radius:100%}.tk-loading{display:flex;align-items:center;flex-direction:column}.tk-loading .tk-loading_text{margin:10px}.tk-justify-start{justify-content:fle
import { TUICallEvent as f, TUICallEngine as wl } from "tuicall-engine-webrtc";
import { TUICore as HA, TUIConstants as H, TUILogin as Ol } from "@tencentcloud/tui-core";
import ma from "@tencentcloud/chat";
import Xt from "vue";
import { inject as NA, ref as I, onMounted as aA, onUnmounted as tA, toRefs as z, watch as J, computed as p, provide as gA, watchEffect as QA, toRef as wt, unref as xl, nextTick as Vl, reactive as Ye } from "@vue/composition-api";
var c = /* @__PURE__ */ ((A) => (A.CALL = "call", A.CUSTOM = "custom", A))(c || {}), F = /* @__PURE__ */ ((A) => (A[A.UNKNOWN = 0] = "UNKNOWN", A[A.AUDIO = 1] = "AUDIO", A[A.VIDEO = 2] = "VIDEO", A))(F || {}), K = /* @__PURE__ */ ((A) => (A.UNKNOWN = "unknown", A.CALLEE = "callee", A.CALLER = "caller", A))(K || {}), U = /* @__PURE__ */ ((A) => (A.IDLE = "idle", A.CALLING = "calling", A.CONNECTED = "connected", A))(U || {}), ne = /* @__PURE__ */ ((A) => (A.CONTAIN = "contain", A.COVER = "cover", A.FILL = "fill", A))(ne || {}), oe = /* @__PURE__ */ ((A) => (A.RESOLUTION_480P = "480p", A.RESOLUTION_720P = "720p", A.RESOLUTION_1080P = "1080p", A))(oe || {}), lo = /* @__PURE__ */ ((A) => (A.EN = "en", A["ZH-CN"] = "zh-cn", A.JA_JP = "ja_JP", A))(lo || {});
const nA = {
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"
}, bl = {
unknown: 0,
audio: 1,
video: 2
};
var Ae = /* @__PURE__ */ ((A) => (A.EAR = "ear", A.SPEAKER = "speaker", A))(Ae || {}), oA = /* @__PURE__ */ ((A) => (A.MICROPHONE = "microphone", A.CAMERA = "camera", A.SPEAKER = "speaker", A))(oA || {}), le = /* @__PURE__ */ ((A) => (A[A.FRONT = 0] = "FRONT", A[A.BACK = 1] = "BACK", A))(le || {}), zA = /* @__PURE__ */ ((A) => (A.Camera = "camera", A.Microphone = "microphone", A.SwitchCamera = "switchCamera", A.InviteUser = "inviteUser", A))(zA || {}), JA = /* @__PURE__ */ ((A) => (A.Open = "open", A.Close = "close", A))(JA || {}), At = /* @__PURE__ */ ((A) => (A.LOCAL = "local", A.REMOTE = "remote", A))(At || {}), et = /* @__PURE__ */ ((A) => (A.LocalInLargeView = "local", A.RemoteInLargeView = "remote", A))(et || {}), XA = /* @__PURE__ */ ((A) => (A[A.INVITE = 1] = "INVITE", A[A.CANCEL_INVITE = 2] = "CANCEL_INVITE", A[A.ACCEPT_INVITE = 3] = "ACCEPT_INVITE", A[A.REJECT_INVITE = 4] = "REJECT_INVITE", A[A.INVITE_TIMEOUT = 5] = "INVITE_TIMEOUT", A))(XA || {});
const ja = {
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
}, Bl = {
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 io = /* @__PURE__ */ ((A) => (A[A.NORMAL = 0] = "NORMAL", A[A.RELEASE = 1] = "RELEASE", A[A.WARNING = 2] = "WARNING", A[A.ERROR = 3] = "ERROR", A[A.NONE = 4] = "NONE", A))(io || {});
const Ke = {
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"
}, Fl = {
INNER_ATTR_KIT_INFO: "inner_attr_kit_info"
}, Rl = {
INITIAL_PUSHER: "initialPusher",
NEW_PUSHER: "newPusher"
}, o = {
PREFIX: "\u3010CallService\u3011",
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",
...Rl,
...Ke,
...Fl
}, kl = "https://web.sdk.qcloud.com/component/TUIKit/assets/call.png", Pl = "https://web.sdk.qcloud.com/component/TUIKit/assets/call-video-reverse.svg", va = 2147483647, Wl = 3, Gl = 4;
var Rt = /* @__PURE__ */ ((A) => (A.MAC = "mac", A.WIN = "win", A))(Rt || {}), _t = /* @__PURE__ */ ((A) => (A[A.TUI_CALL_KIT = 14] = "TUI_CALL_KIT", A[A.TIM_CALL_KIT = 15] = "TIM_CALL_KIT", A))(_t || {}), kt = /* @__PURE__ */ ((A) => (A[A.NUMBER_ROOM_ID = 1] = "NUMBER_ROOM_ID", A[A.STRING_ROOM_ID = 2] = "STRING_ROOM_ID", A))(kt || {});
async function Ql(A) {
if (!A)
return !1;
try {
const t = await new Promise((e, a) => {
const n = new XMLHttpRequest();
n.open("HEAD", A, !0), n.onload = () => e(n), n.onerror = () => a(n), n.send();
});
return t.status === 200 && t.getResponseHeader("Content-Type") === "audio/mpeg";
} catch (t) {
return console.warn(t), !1;
}
}
function tt(A) {
if (typeof A != "object" || A === null)
return A;
let t = Array.isArray(A) ? [] : {};
for (let e in A)
A.hasOwnProperty(e) && (t[e] = tt(A[e]));
return t;
}
const Zl = {
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"
}, Yl = {
hangup: "\u6302\u65AD",
reject: "\u62D2\u7EDD",
accept: "\u63A5\u53D7",
camera: "\u6444\u50CF\u5934",
microphone: "\u9EA6\u514B\u98CE",
speaker: "\u626C\u58F0\u5668",
"open camera": "\u6253\u5F00\u6444\u50CF\u5934",
"close camera": "\u5173\u95ED\u6444\u50CF\u5934",
"open microphone": "\u6253\u5F00\u9EA6\u514B\u98CE",
"close microphone": "\u5173\u95ED\u9EA6\u514B\u98CE",
"video-to-audio": "\u8F6C\u8BED\u97F3\u901A\u8BDD",
"virtual-background": "\u6A21\u7CCA\u80CC\u666F",
"other side reject call": "\u5BF9\u65B9\u5DF2\u62D2\u7EDD",
"reject call": "\u62D2\u7EDD\u901A\u8BDD",
cancel: "\u53D6\u6D88\u901A\u8BDD",
"other side line busy": "\u5BF9\u65B9\u5FD9\u7EBF",
"in busy": "\u6B63\u5728\u5FD9",
"call timeout": "\u547C\u53EB\u8D85\u65F6",
"end call": "\u7ED3\u675F\u901A\u8BDD",
"caller calling message": "\u7B49\u5F85\u5BF9\u65B9\u63A5\u53D7\u9080\u8BF7",
"callee calling video message": "\u9080\u8BF7\u4F60\u89C6\u9891\u901A\u8BDD",
"callee calling audio message": "\u9080\u8BF7\u4F60\u8BED\u97F3\u901A\u8BDD",
"no microphone access": "\u6CA1\u6709\u9EA6\u514B\u98CE\u6743\u9650",
"no camera access": "\u6CA1\u6709\u6444\u50CF\u5934\u6743\u9650",
"invite member": "\u9080\u8BF7\u6210\u5458",
"Invited group call": "\u9080\u8BF7\u4F60\u52A0\u5165\u591A\u4EBA\u901A\u8BDD",
"Those involved": "\u53C2\u4E0E\u901A\u8BDD\u7684\u6709\uFF1A",
waiting: "\u7B49\u5F85\u63A5\u542C...",
me: "(\u6211)",
"browser-authorization": "\u6D4F\u89C8\u5668\u6388\u6743",
"mac-privacy": "\u7CFB\u7EDF\u504F\u597D\u8BBE\u7F6E -> \u5B89\u5168\u4E0E\u9690\u79C1 -> \u9690\u79C1",
"win-privacy": "\u8BBE\u7F6E -> \u9690\u79C1\u548C\u5B89\u5168\u6027 -> \u5E94\u7528\u6743\u9650",
"mac-preferences": "\u6253\u5F00\u7CFB\u7EDF\u504F\u597D\u8BBE\u7F6E",
"win-preferences": "\u6253\u5F00\u7CFB\u7EDF\u8BBE\u7F6E",
"Please enter userID": "\u8BF7\u8F93\u5165 userID",
"View more": "\u67E5\u770B\u66F4\u591A",
"people selected": "\u4EBA\u5DF2\u9009\u4E2D",
"Select all": "\u5168\u9009",
Cancel: "\u53D6\u6D88",
Done: "\u5B8C\u6210",
"exist group call": "\u5F53\u524D\u7FA4\u7EC4\u4E2D\u5DF2\u7ECF\u5B58\u5728\u7FA4\u7EC4\u901A\u8BDD",
"camera enabled": "\u6444\u50CF\u5934\u5DF2\u5F00",
"camera disabled": "\u6444\u50CF\u5934\u5DF2\u5173",
"microphone enabled": "\u9EA6\u514B\u98CE\u5DF2\u5F00",
"microphone disabled": "\u9EA6\u514B\u98CE\u5DF2\u5173",
"speaker enabled": "\u626C\u58F0\u5668\u5DF2\u5F00",
"speaker disabled": "\u626C\u58F0\u5668\u5DF2\u5173",
"open speaker": "\u5F00\u542F\u626C\u58F0\u5668",
"close speaker": "\u5173\u95ED\u626C\u58F0\u5668",
"wait to be called": "\u7B49\u5F85\u63A5\u542C",
answered: "\u5DF2\u63A5\u901A",
"people in the call": "\u4EBA\u53C2\u4E0E\u901A\u8BDD",
"failed to obtain speakers": "\u65E0\u6CD5\u83B7\u53D6\u626C\u58F0\u5668",
"you have a new call": "\u60A8\u6709\u4E00\u4E2A\u65B0\u7684\u901A\u8BDD",
"switch camera": "\u7FFB\u8F6C",
join: "\u52A0\u5165",
"people on the call": "\u4EBA\u6B63\u5728\u901A\u8BDD",
"Supports a maximum of 9 people for simultaneous calls": "\u6700\u591A\u652F\u63019\u4EBA\u540C\u65F6\u901A\u8BDD",
you: "(\u4F60)",
"The network is poor during your current call": "\u5F53\u524D\u901A\u8BDD\u4F60\u7684\u7F51\u7EDC\u4E0D\u4F73",
"The other user network is poor during the current call": "\u5F53\u524D\u901A\u8BDD\u5BF9\u65B9\u7F51\u7EDC\u4E0D\u4F73",
"TUICallKit init is not complete": "TUICallKit \u521D\u59CB\u5316\u767B\u5F55\u672A\u5B8C\u6210\uFF0C\u9700\u8981\u5728 init \u5B8C\u6210\u540E\u4F7F\u7528\u6B64 API",
"Video call": "\u53D1\u8D77\u89C6\u9891\u901A\u8BDD",
"Voice call": "\u53D1\u8D77\u8BED\u97F3\u901A\u8BDD",
"Call End": "\u901A\u8BDD\u7ED3\u675F",
"Switch voice call": "\u5207\u6362\u8BED\u97F3\u901A\u8BDD",
"Switch video call": "\u5207\u6362\u89C6\u9891\u901A\u8BDD",
"Call duration": "\u901A\u8BDD\u65F6\u957F",
"Call Cancel": "\u5DF2\u53D6\u6D88",
"Other Side Cancel": "\u5BF9\u65B9\u5DF2\u53D6\u6D88",
Decline: "\u5DF2\u62D2\u7EDD",
"Other Side Decline": "\u5BF9\u65B9\u5DF2\u62D2\u7EDD",
"No answer": "\u8D85\u65F6\u65E0\u5E94\u7B54",
"Other Side No Answer": "\u5BF9\u65B9\u65E0\u5E94\u7B54",
Answered: "\u5DF2\u63A5\u542C",
"Other Side Line Busy": "\u5BF9\u65B9\u5FD9\u7EBF\u4E2D",
"Line Busy": "\u5FD9\u7EBF\u65E0\u5E94\u7B54",
timeout: "\u8D85\u65F6",
"kick out": "\u88AB\u8E22",
call: "\u901A\u8BDD",
"video-call": "\u89C6\u9891\u901A\u8BDD",
"audio-call": "\u97F3\u9891\u901A\u8BDD",
search: "\u641C\u7D22",
"search-result": "\u641C\u7D22\u7ED3\u679C",
"Wechat scan right QR code": "\u5FAE\u4FE1\u626B\u53F3\u4E8C\u7EF4\u7801",
"Use-phone-and-computer": "\u7528\u624B\u673A\u4E0E\u7535\u8111\u4E92\u6253\u4F53\u9A8C\u89C6\u9891\u901A\u8BDD",
"Scan the QR code above": "\u626B\u63CF\u4E0A\u65B9\u4E8C\u7EF4\u7801",
"no-user": "\u672A\u641C\u7D22\u5230\u7528\u6237",
"member-not-added": "\u672A\u6DFB\u52A0\u6210\u5458",
"not-login": "\u672A\u767B\u5F55",
"login-status-expire": "\u767B\u5F55\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u8BF7\u5237\u65B0\u7F51\u9875\u91CD\u8BD5",
"experience-multi-call": "\u4F53\u9A8C\u591A\u4EBA\u901A\u8BDD\u8BF7\u4E0B\u8F7D\u5168\u529F\u80FDdemo:",
"not-support-multi-call": "\u591A\u4EBA\u901A\u8BDD\u63A5\u53E3\u672A\u5F00\u653E",
"input-phone-userID": "\u8BF7\u8F93\u5165\u624B\u673A\u53F7/\u7528\u6237ID",
userID: "\u7528\u6237ID",
"already-enter": "\u5DF2\u7ECF\u8FDB\u5165\u5F53\u524D\u901A\u8BDD",
"image-resolution": "\u5206\u8FA8\u7387",
"default-image-resolution": "\u9ED8\u8BA4\u5206\u8FA8\u7387",
"invited-person": "\u6DFB\u52A0\u6210\u5458",
"be-rejected": "\u5BF9\u65B9\u5DF2\u62D2\u7EDD\uFF0C",
"be-no-response": "\u5BF9\u65B9\u65E0\u5E94\u7B54\uFF0C",
"be-line-busy": "\u5BF9\u65B9\u5FD9\u7EBF\u4E2D\uFF0C",
"be-canceled": "\u5BF9\u65B9\u5DF2\u53D6\u6D88",
"voice-call-end": "\u8BED\u97F3\u901A\u8BDD\u7ED3\u675F",
"video-call-end": "\u89C6\u9891\u901A\u8BDD\u7ED3\u675F",
"method-call-failed": "\u540C\u6B65\u64CD\u4F5C\u5931\u8D25",
"failed-to-obtain-permission": "\u6743\u9650\u83B7\u53D6\u5931\u8D25",
"environment-detection-failed": "\u73AF\u5883\u68C0\u6D4B\u5931\u8D25",
"switchToAudioCall-call-failed": "\u5207\u8BED\u97F3\u8C03\u7528\u5931\u8D25",
"switchToVideoCall-call-failed": "\u5207\u89C6\u9891\u8C03\u7528\u5931\u8D25",
"microphone-unavailable": "\u6CA1\u6709\u53EF\u7528\u7684\u9EA6\u514B\u98CE\u8BBE\u5907",
"camera-unavailable": "\u6CA1\u6709\u53EF\u7528\u7684\u6444\u50CF\u5934\u8BBE\u5907",
"ban-device": "\u7528\u6237\u7981\u6B62\u4F7F\u7528\u8BBE\u5907",
"not-supported-webrtc": "\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301 WebRTC",
"blacklist-user-tips": "\u53D1\u8D77\u901A\u8BDD\u5931\u8D25\uFF0C\u88AB\u5BF9\u65B9\u62C9\u5165\u9ED1\u540D\u5355\uFF0C\u7981\u6B62\u53D1\u8D77\uFF01",
"is-already-calling": "TUICallKit \u5DF2\u5728\u901A\u8BDD\u72B6\u6001",
"need-init": "TUICallKit \u53D1\u8D77\u901A\u8BDD\u524D\u9700\u4FDD\u8BC1 TUICallKitServer.init() \u65B9\u6CD5\u6267\u884C\u6210\u529F",
"can't call yourself": "\u4E0D\u80FD\u547C\u53EB\u81EA\u5DF1",
"accept-error": "\u63A5\u901A\u5931\u8D25",
"accept-device-error": "\u63A5\u901A\u5931\u8D25\uFF0C\u901A\u8BDD\u8BBE\u5907\u83B7\u53D6\u5931\u8D25",
"call-error": "\u53D1\u8D77\u901A\u8BDD\u5931\u8D25"
}, Xl = {
hangup: "\u901A\u8A71\u7D42\u4E86",
reject: "\u62D2\u5426",
accept: "\u5FDC\u7B54",
camera: "\u30AB\u30E1\u30E9",
microphone: "\u30DE\u30A4\u30AF",
speaker: "\u30B9\u30D4\u30FC\u30AB\u30FC",
"virtual-background": "\u30DC\u30B1\u80CC\u666F",
"other side reject call": "\u901A\u8A71\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F",
"reject call": "\u901A\u8A71\u62D2\u5426",
cancel: "\u901A\u8A71\u3092\u30AD\u30E3\u30F3\u30BB\u30EB",
"other side line busy": "\u76F8\u624B\u304C\u901A\u8A71\u4E2D\u3067\u3059",
"in busy": "\u901A\u8A71\u4E2D",
"call timeout": "\u547C\u3073\u51FA\u3057\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8",
"end call": "\u901A\u8A71\u7D42\u4E86",
"caller calling message": "\u5FDC\u7B54\u3092\u5F85\u3063\u3066\u3044\u307E\u3059",
"callee calling video message": "\u30D3\u30C7\u30AA\u901A\u8A71\u306B\u62DB\u5F85\u3055\u308C\u307E\u3057\u305F",
"callee calling audio message": "\u97F3\u58F0\u901A\u8A71\u306B\u62DB\u5F85\u3055\u308C\u307E\u3057\u305F",
"no microphone access": "\u30DE\u30A4\u30AF\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093",
"no camera access": "\u30AB\u30E1\u30E9\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093",
"invite member": "\u30E1\u30F3\u30D0\u30FC\u3092\u62DB\u5F85\u3059\u308B",
"browser-authorization": "\u30D6\u30E9\u30A6\u30B6\u8A8D\u8A3C",
"mac-privacy": "\u30B7\u30B9\u30C6\u30E0\u74B0\u5883\u8A2D\u5B9A -> \u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u3068\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC ->\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC",
"win-privacy": "\u8A2D\u5B9A -> \u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u3068\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC ->\u30A2\u30D7\u30EA\u306E\u30A2\u30AF\u30BB\u30B9\u8A31\u53EF",
"mac-preferences": "\u30B7\u30B9\u30C6\u30E0\u74B0\u5883\u8A2D\u5B9A\u3092\u958B\u304F",
"win-preferences": "\u30B7\u30B9\u30C6\u30E0\u8A2D\u5B9A\u3092\u958B\u304F",
"Please enter userID": "\u30E6\u30FC\u30B6\u30FCID\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
"View more": "\u3082\u3063\u3068\u898B\u308B",
"people selected": "\u4EBA\u304C\u9078\u629E\u3055\u308C\u307E\u3057\u305F",
"Select all": "\u3059\u3079\u3066\u9078\u629E",
Cancel: "\u30AD\u30E3\u30F3\u30BB\u30EB",
Done: "\u5B8C\u4E86",
"exist group call": "\u73FE\u5728\u306E\u30B0\u30EB\u30FC\u30D7\u306B\u306F\u65E2\u306B\u30B0\u30EB\u30FC\u30D7\u901A\u8A71\u304C\u5B58\u5728\u3057\u3066\u3044\u307E\u3059",
"Video call": "\u30D3\u30C7\u30AA\u901A\u8A71\u3092\u958B\u59CB",
"Voice call": "\u97F3\u58F0\u901A\u8A71\u3092\u958B\u59CB",
"Call End": "\u901A\u8A71\u7D42\u4E86",
"Switch audio call": "\u97F3\u58F0\u901A\u8A71\u306B\u5207\u308A\u66FF\u3048\u308B",
"Switch video call": "\u30D3\u30C7\u30AA\u901A\u8A71\u306B\u5207\u308A\u66FF\u3048\u308B",
"Call duration": "\u901A\u8A71\u6642\u9593",
"Call Cancel": "\u901A\u8A71\u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3059\u308B",
"Other Side Cancel": "\u76F8\u624B\u304C\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F",
Decline: "\u901A\u8A71\u3092\u62D2\u5426\u3059\u308B",
"Other Side Decline": "\u76F8\u624B\u304C\u62D2\u5426\u3057\u307E\u3057\u305F",
"No answer": "\u7121\u5FDC\u7B54",
"Other Side No Answer": "\u76F8\u624B\u304B\u3089\u306E\u8FD4\u7B54\u306F\u3042\u308A\u307E\u305B\u3093",
Answered: "\u5FDC\u7B54\u3057\u307E\u3057\u305F",
"Other Side Line Busy": "\u76F8\u624B\u306F\u73FE\u5728\u5FD9\u3057\u304F\u3066\u5BFE\u5FDC\u3067\u304D\u307E\u305B\u3093",
"Line Busy": "\u5FD9\u3057\u3044\u306E\u3067\u5FDC\u7B54\u3067\u304D\u307E\u305B\u3093",
"open camera": "\u30AA\u30FC\u30D7\u30F3\u30AB\u30E1\u30E9",
"close camera": "\u30AB\u30E1\u30E9\u3092\u9589\u3058\u308B",
"open microphone": "\u30AA\u30FC\u30D7\u30F3\u30DE\u30A4\u30AF",
"close microphone": "\u30DE\u30A4\u30AF\u3092\u9589\u3058\u308B",
"camera enabled": "\u30AB\u30E1\u30E9\u30AA\u30F3",
"camera disabled": "\u30AB\u30E1\u30E9\u30AA\u30D5",
"microphone enabled": "\u30DE\u30A4\u30AF\u30AA\u30F3",
"microphone disabled": "\u30DE\u30A4\u30AF\u30AA\u30D5",
"speaker enabled": "\u30B9\u30D4\u30FC\u30AB\u30FC\u30AA\u30F3",
"speaker disabled": "\u30B9\u30D4\u30FC\u30AB\u30FC\u30AA\u30D5",
"open speaker": "\u30B9\u30D4\u30FC\u30AB\u30FC\u3092\u30AA\u30F3\u306B\u3059\u308B",
"close speaker": "\u30B9\u30D4\u30FC\u30AB\u30FC\u306E\u96FB\u6E90\u3092\u5207\u308A\u307E\u3059",
"wait to be called": "\u5F85\u6A5F\u4E2D",
answered: "\u63A5\u7D9A\u6E08\u307F",
"people in the call": "\u901A\u8A71\u306B\u53C2\u52A0\u3057\u3066\u3044\u308B\u4EBA\u305F\u3061",
"failed to obtain speakers": "\u30B9\u30D4\u30FC\u30AB\u30FC\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",
"you have a new call": "\u65B0\u3057\u3044\u901A\u8A71\u304C\u3042\u308A\u307E\u3059",
"switch camera": "\u5207\u308A\u66FF\u3048",
join: "\u53C2\u52A0\u3059\u308B",
"people on the call": "\u4EBA\u304C\u901A\u8A71\u4E2D\u3067\u3059",
"Supports a maximum of 9 people for simultaneous calls": "\u6700\u5927\u30679\u4EBA\u307E\u3067\u540C\u6642\u901A\u8A71\u304C\u53EF\u80FD\u3067\u3059",
you: "(\u3042\u306A\u305F)",
"The network is poor during your current call": "\u73FE\u5728\u306E\u901A\u8A71\u3067\u3001\u3042\u306A\u305F\u306E\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u306F\u4E0D\u826F\u3067\u3059",
"The other user network is poor during the current call": "\u73FE\u5728\u306E\u901A\u8A71\u3067\u3001\u76F8\u624B\u5074\u306E\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u304C\u4E0D\u826F\u3067\u3059",
"TUICallKit init is not complete": "TUICallKit\u306E\u521D\u671F\u5316\u30ED\u30B0\u30A4\u30F3\u304C\u5B8C\u4E86\u3057\u3066\u3044\u307E\u305B\u3093\u3002init \u304C\u5B8C\u4E86\u3057\u305F\u5F8C\u306B\u3053\u306EAPI\u3092\u4F7F\u7528\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002",
timeout: "\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8",
"kick out": "\u30AD\u30C3\u30AF\u30A2\u30A6\u30C8\u3055\u308C\u307E\u3057\u305F",
"Invited group call": "\u30B0\u30EB\u30FC\u30D7\u901A\u8A71\u306B\u62DB\u5F85\u3055\u308C\u307E\u3057\u305F\u3002",
"Those involved": "\u53C2\u52A0\u8005\uFF1A",
call: "\u901A\u8A71",
"video-call": "\u30D3\u30C7\u30AA\u901A\u8A71",
"audio-call": "\u97F3\u58F0\u901A\u8A71",
search: "\u691C\u7D22",
"search-result": "\u691C\u7D22\u7D50\u679C",
"Wechat scan right QR code": "WeChat\u3067\u53F3\u5074\u306B\u3042\u308BQR\u30B3\u30FC\u30C9\u3092\u8AAD\u307F\u53D6\u308A\u307E\u3059\u3002",
"Use-phone-and-computer": "\u643A\u5E2F\u96FB\u8A71\u3068\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u3092\u4F7F\u7528\u3057\u3066\u30D3\u30C7\u30AA\u901A\u8A71\u3092\u4F53\u9A13\u3057\u3066\u304F\u3060\u3055\u3044",
"Scan the QR code above": "\u4E0A\u306EQR\u30B3\u30FC\u30C9\u3092\u8AAD\u307F\u53D6\u308A\u307E\u3059\u3002",
"no-user": "\u30E6\u30FC\u30B6\u30FC\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F",
"member-not-added": "\u30E1\u30F3\u30D0\u30FC\u304C\u8FFD\u52A0\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
"not-login": "\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u307E\u305B\u3093",
"login-status-expire": "\u30ED\u30B0\u30A4\u30F3\u306E\u6709\u52B9\u671F\u9650\u304C\u904E\u304E\u3066\u3044\u307E\u3059\u3002\u30DA\u30FC\u30B8\u3092\u66F4\u65B0\u3057\u3066\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044",
"experience-multi-call": "\u8907\u6570\u4EBA\u3067\u540C\u6642\u306B\u97F3\u58F0\u901A\u8A71\u3067\u304D\u308B\u30B0\u30EB\u30FC\u30D7\u901A\u8A71\u6A5F\u80FD\u3092\u4F53\u9A13\u3059\u308B\u306B\u306F\u3001\u5168\u6A5F\u80FD\u306E\u30C7\u30E2\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u3066\u304F\u3060\u3055\u3044",
"not-support-multi-call": "\u30B0\u30EB\u30FC\u30D7\u901A\u8A71\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9\u304C\u958B\u3044\u3066\u3044\u307E\u305B\u3093",
"input-phone-userID": "\u643A\u5E2F\u96FB\u8A71\u756A\u53F7/\u30E6\u30FC\u30B6\u30FCID\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
userID: "\u30E6\u30FC\u30B6\u30FCID",
"already-enter": "\u3059\u3067\u306B\u901A\u8A71\u306B\u53C2\u52A0\u3057\u3066\u3044\u307E\u3059",
waiting: "\u5FDC\u7B54\u3092\u5F85\u3063\u3066\u3044\u307E\u3059...",
"camera-opened": "\u30AB\u30E1\u30E9\u304C\u30AA\u30F3\u306B\u306A\u3063\u3066\u3044\u307E\u3059",
"camera-closed": "\u30AB\u30E1\u30E9\u304C\u30AA\u30D5\u306B\u306A\u3063\u3066\u3044\u307E\u3059",
"microphone-opened": "\u30DE\u30A4\u30AF\u304C\u30AA\u30F3\u306B\u306A\u3063\u3066\u3044\u307E\u3059",
"microphone-closed": "\u30DE\u30A4\u30AF\u304C\u30AA\u30D5\u306B\u306A\u3063\u3066\u3044\u307E\u3059",
"image-resolution": "\u89E3\u50CF\u5EA6",
"default-image-resolution": "\u30C7\u30D5\u30A9\u30EB\u30C8\u89E3\u50CF\u5EA6",
"invited-person": "\u30E1\u30F3\u30D0\u30FC\u3092\u62DB\u5F85",
"video-to-audio": "\u97F3\u58F0\u901A\u8A71\u306B\u5207\u308A\u66FF\u3048\u307E\u3059",
me: "(\u81EA\u5206)",
"be-rejected": "\u901A\u8A71\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F, ",
"be-no-response": "\u5FDC\u7B54\u306A\u3057, ",
"be-line-busy": "\u76F8\u624B\u304C\u901A\u8A71\u4E2D\u3067\u3059, ",
"be-canceled": "\u76F8\u624B\u304C\u901A\u8A71\u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F",
"voice-call-end": "\u97F3\u58F0\u901A\u8A71\u304C\u7D42\u4E86\u3057\u307E\u3057\u305F",
"video-call-end": "\u30D3\u30C7\u30AA\u901A\u8A71\u304C\u7D42\u4E86\u3057\u307E\u3057\u305F",
"method-call-failed": "\u64CD\u4F5C\u306E\u540C\u671F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
"failed-to-obtain-permission": "\u6A29\u9650\u306E\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
"environment-detection-failed": "\u74B0\u5883\u306E\u691C\u51FA\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
"switchToAudioCall-call-failed": "\u97F3\u58F0\u901A\u8A71\u306B\u5207\u308A\u66FF\u3048\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",
"switchToVideoCall-call-failed": "\u30D3\u30C7\u30AA\u901A\u8A71\u306B\u5207\u308A\u66FF\u3048\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",
"microphone-unavailable": "\u4F7F\u7528\u3067\u304D\u308B\u30DE\u30A4\u30AF\u304C\u3042\u308A\u307E\u305B\u3093",
"camera-unavailable": "\u4F7F\u7528\u3067\u304D\u308B\u30AB\u30E1\u30E9\u304C\u3042\u308A\u307E\u305B\u3093",
"ban-device": "\u30C7\u30D0\u30A4\u30B9\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F",
"not-supported-webrtc": "\u73FE\u5728\u306E\u74B0\u5883\u306FWebRTC\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",
"blacklist-user-tips": "\u30E6\u30FC\u30B6\u30FC\u306F\u30D6\u30E9\u30C3\u30AF\u30EA\u30B9\u30C8\u306B\u767B\u9332\u3055\u308C\u3001\u901A\u8A71\u304C\u958B\u59CB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F",
"is-already-calling": "TUICallKit \u306F\u3059\u3067\u306B\u901A\u8A71\u4E2D\u3067\u3059",
"need-init": "TUICallKit\u3067\u901A\u8A71\u3092\u958B\u59CB\u3059\u308B\u524D\u306B\u3001TUICallKitServer.init() \u30E1\u30BD\u30C3\u30C9\u304C\u6B63\u5E38\u306B\u5B9F\u884C\u3055\u308C\u305F\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
"can't call yourself": "\u81EA\u5206\u306B\u96FB\u8A71\u3092\u304B\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093",
"accept-error": "\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F",
"accept-device-error": "\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u767A\u4FE1\u5074\u30C7\u30D0\u30A4\u30B9\u3092\u8A8D\u8A3C\u3067\u304D\u307E\u305B\u3093",
"call-error": "\u901A\u8A71\u304C\u958B\u59CB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F"
}, sA = {
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"
}, fa = {
en: Zl,
"zh-cn": Yl,
ja_JP: Xl
};
function v(A) {
var a;
const t = d.getData(c.CALL, o.LANGUAGE);
for (const n in fa)
if (n === t) {
const l = fa[n];
for (const i in l)
if (i === A)
return l[i];
}
const e = (a = A.en) == null ? void 0 : a.key;
return console.error(`${o.PREFIX}translation is not found: ${A}.`), e;
}
const at = typeof wx < "u" && typeof wx.getSystemInfoSync == "function" && Boolean(wx.getSystemInfoSync().fontSizeSetting), so = typeof uni < "u" && typeof uni > "u", La = at || so, uo = typeof uni < "u", co = function() {
return (typeof uni < "u" || typeof window < "u") && !La;
}(), _l = function() {
return at ? wx : uo ? uni : window;
}(), wA = co && window && window.navigator && window.navigator.userAgent || "", ql = /Android/i.test(wA), Jl = /(?:Windows Phone)/.test(wA), Hl = /(?:SymbianOS)/.test(wA), Kl = /iPad/i.test(wA) || /iPhone/i.test(wA) || /iPod/i.test(wA), ro = ql || Jl || Hl || Kl, qt = co && !ro, $l = qt && wA.includes("Windows NT"), Ai = qt && wA.includes("Mac");
class kA {
constructor() {
this.global = _l, 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 kA.instance || (kA.instance = new kA()), kA.instance;
}
initEnv() {
this.isPC = qt, this.isH5 = ro, this.isWeChat = at, this.isApp = so && !at, this.isUniPlatform = uo, this.isWIN = $l, this.isMAC = Ai;
}
initOfficial(t) {
this.isOfficial = t === 1400187352 || t === 1400188366;
}
}
const Et = function(A) {
return typeof A === o.UNDEFINED;
}, Mo = function(A) {
if (typeof A !== o.OBJECT || A === null)
return !1;
const t = Object.getPrototypeOf(A);
if (t === null)
return !0;
let e = t;
for (; Object.getPrototypeOf(e) !== null; )
e = Object.getPrototypeOf(e);
return t === e;
}, Io = function(A) {
return typeof Array.isArray === o.FUNCTION ? Array.isArray(A) : Object.prototype.toString.call(A).match(/^\[object (.*)\]$/)[1].toLowerCase() === o.ARRAY;
}, Pt = function(A) {
return typeof A === o.STRING;
}, ei = function(A) {
return typeof A === o.BOOLEAN;
}, go = function(A) {
return A !== null && (typeof A === o.NUMBER && !isNaN(A - 0) || typeof A === o.OBJECT && A.constructor === Number);
};
function No(A) {
const t = Math.floor(A / 3600), e = Math.floor(A % 3600 / 60), a = Math.floor(A % 60);
let n = t > 9 ? `${t}` : `0${t}`;
return n += e > 9 ? `:${e}` : `:0${e}`, n += a > 9 ? `:${a}` : `:0${a}`, n;
}
function ti(A) {
if (typeof A === o.STRING)
try {
return !!JSON.parse(A);
} catch (t) {
return console.debug(t), !1;
}
return !1;
}
const Xe = function(A) {
return !A || !ti(A) ? A : JSON.parse(A);
};
function Ua(A) {
return (A == null ? void 0 : A.message.indexOf("is ongoing, please avoid repeated calls")) !== -1;
}
function ai(A) {
const { message: t } = A;
return t.indexOf("NotAllowedError: Permission denied") !== -1;
}
function Ot() {
return Date.now();
}
const $e = function(A) {
return typeof A === o.FUNCTION;
}, ni = () => {
if (kA.getInstance().isWeChat)
return "zh-cn";
const A = ((navigator == null ? void 0 : navigator.language) || (navigator == null ? void 0 : navigator.userLanguage) || "").substr(0, 2);
let t = "en";
switch (A) {
case "zh":
t = "zh-cn";
break;
case "ja":
t = "ja_JP";
break;
default:
t = "en";
}
return t;
}, oi = function(A) {
return Object.prototype.toString.call(A).match(/^\[object (.*)\]$/)[1].toLowerCase();
};
function li(A, t, e) {
if (!A.hasOwnProperty(t))
return A;
const a = {};
return Object.keys(A).forEach((n) => {
n === t ? a[e] = A[n] : a[n] = A[n];
}), a;
}
const ii = "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/iMWDACgS2qwzv9VuB2ttwgg0C3bhahyHlma
class si {
constructor() {
this._bellContext = null, this._isMuteBell = !1, this._calleeBellFilePath = za, this._callRole = K.UNKNOWN, this._callStatus = U.IDLE, this._bellContext = new Audio(), this._bellContext.loop = !0;
}
setBellSrc() {
try {
let t = ii;
this._callRole === K.CALLEE && (t = this._calleeBellFilePath || za), this._bellContext.src = t;
} catch (t) {
console.warn(`${o.PREFIX}Failed to setBellSrc, ${t}`);
}
}
setBellProperties(t) {
this._callRole = t.callRole || this._callRole, this._callStatus = t.callStatus || this._callStatus, this._calleeBellFilePath = t.calleeBellFilePath || this._calleeBellFilePath, this._isMuteBell = Et(t.isMuteBell) ? this._isMuteBell : t.isMuteBell;
}
async play() {
try {
if (this._callStatus !== U.CALLING)
return;
this.setBellSrc(), this._callRole === K.CALLEE && !this._isMuteBell && await this._bellContext.play(), this._callRole === K.CALLER && await this._bellContext.play();
} catch (t) {
console.warn(`${o.PREFIX}Failed to play audio file, ${t}`);
}
}
async stop() {
try {
await this._bellContext.pause();
} catch (t) {
console.warn(`${o.PREFIX}Failed to stop audio file, ${t}`);
}
}
async setBellMute(t) {
this._callStatus !== U.CALLING && this._callRole !== K.CALLEE || (t ? await this.stop() : await this.play());
}
destroy() {
try {
this._isMuteBell = !1, this._calleeBellFilePath = "", this._callRole = K.UNKNOWN, this._callStatus = U.IDLE, this._bellContext.pause(), this._bellContext = null;
} catch (t) {
console.warn(`${o.PREFIX}Failed to destroy, ${t}`);
}
}
}
function $() {
return function(A, t, e) {
const a = e.value, n = /* @__PURE__ */ new Set();
return e.value = async function(...l) {
var i, u;
if (n.has(this)) {
console.warn(`${o.PREFIX}previous ${t}() is ongoing, please avoid repeated calls`), (u = (i = this == null ? void 0 : this.getTUICallEngineInstance()) == null ? void 0 : i.reportLog) == null || u.call(i, {
name: "TUICallKit.avoidRepeatedCall.fail",
data: { name: t },
error: `previous ${t}() is ongoing`
});
return;
}
try {
n.add(this);
const s = await a.apply(this, l);
return n.delete(this), s;
} catch (s) {
throw n.delete(this), s;
}
}, e;
};
}
const KA = o.PREFIX + "API";
function cA(A) {
return function(t, e, a) {
let n = a.value;
return a.value = function(...l) {
return ui.call(this, A, l, e), n.apply(this, l);
}, a;
};
}
function ui(A, t, e) {
try {
if (t[0].SDKAppID || (A = li(A, "SDKAppID", "sdkAppID")), Io(A))
for (let a = 0; a < A.length; a++)
wa.call(this, {
...A[a],
value: t[a],
name: e
});
else
for (const a in A)
A.hasOwnProperty(a) && wa.call(this, {
...A[a],
value: t[0][a],
name: e,
key: a
});
} catch (a) {
throw console.error(a), a;
}
}
function wa({ required: A, rules: t, range: e, value: a, allowEmpty: n, name: l, key: i }) {
if (Et(a)) {
if (A)
throw new Error(`${KA}<${l}>: ${i} is required.`);
return;
}
const u = t.some((r) => r === oi(a));
let s = "";
if (!u) {
for (let r = 0; r < t.length; r++) {
let M = t[r];
M = M.replace(M[0], M[0].toUpperCase()), s += `${M}/`;
}
throw s = s.substring(0, s.length - 1), new Error(`${KA}<${l}>: ${i} must be ${s}, current ${i} is ${typeof a}.`);
}
if (n === !1 && Pt(a) && a.trim() === "")
throw new Error(`${KA}<${l}>: ${i} is blank.`);
if (Io(e) && e && e.indexOf(a) === -1)
throw new Error(`${KA}<${l}>: ${i} error, only be ${e}, current ${i} is ${a}.`);
if (Pt(e) && e.indexOf("~") !== -1) {
const r = e.split("~");
if (a < +r[0] || a > +r[1] || go(a) && Number.isNaN(a))
throw new Error(`${KA}<${l}>: ${i} error, only be ${e}, current ${i} is ${a}.`);
}
}
const rA = {
init: {
SDKAppID: {
required: !0,
rules: [o.NUMBER],
allowEmpty: !1
},
userID: {
required: !0,
rules: [o.STRING],
allowEmpty: !1
},
userSig: {
required: !0,
rules: [o.STRING],
allowEmpty: !1
},
tim: {
required: !1,
rules: [o.OBJECT]
}
},
call: {
userID: {
required: !0,
rules: [o.STRING],
allowEmpty: !1
},
type: {
required: !0,
rules: [o.NUMBER],
range: [1, 2],
allowEmpty: !1
},
roomID: {
required: !1,
rules: [o.NUMBER],
range: `0~${va}`,
allowEmpty: !1
},
strRoomID: {
required: !1,
rules: [o.STRING],
allowEmpty: !0
},
userData: {
required: !1,
rules: [o.STRING],
allowEmpty: !1
},
timeout: {
required: !1,
rules: [o.NUMBER],
allowEmpty: !1
}
},
groupCall: {
userIDList: {
required: !0,
rules: [o.ARRAY],
allowEmpty: !1
},
type: {
required: !0,
rules: [o.NUMBER],
range: [1, 2],
allowEmpty: !1
},
groupID: {
required: !0,
rules: [o.STRING],
allowEmpty: !1
},
roomID: {
required: !1,
rules: [o.NUMBER],
range: `0~${va}`,
allowEmpty: !1
},
strRoomID: {
required: !1,
rules: [o.STRING],
allowEmpty: !0
},
timeout: {
required: !1,
rules: [o.NUMBER],
allowEmpty: !1
},
userData: {
required: !1,
rules: [o.STRING],
allowEmpty: !1
},
offlinePushInfo: {
required: !1,
rules: [o.OBJECT],
allowEmpty: !1
}
},
joinInGroupCall: {
type: {
required: !0,
rules: [o.NUMBER],
range: [1, 2],
allowEmpty: !1
},
groupID: {
required: !0,
rules: [o.STRING],
allowEmpty: !1
},
roomID: {
required: !0,
rules: [o.NUMBER],
allowEmpty: !1
},
strRoomID: {
required: !1,
rules: [o.STRING],
allowEmpty: !0
}
},
inviteUser: {
userIDList: {
required: !0,
rules: [o.ARRAY],
allowEmpty: !1
}
},
setSelfInfo: {
nickName: {
required: !1,
rules: [o.STRING],
allowEmpty: !1
},
avatar: {
required: !1,
rules: [o.STRING],
allowEmpty: !1
}
},
enableFloatWindow: [
{
key: "enable",
required: !1,
rules: [o.BOOLEAN],
allowEmpty: !1
}
],
enableAIVoice: [
{
key: "enable",
required: !0,
rules: [o.BOOLEAN],
allowEmpty: !1
}
],
enableMuteMode: [
{
key: "enable",
required: !0,
rules: [o.BOOLEAN],
allowEmpty: !1
}
],
setCallingBell: [
{
key: "filePath",
required: !1,
rules: [o.STRING],
allowEmpty: !0
}
],
setLanguage: [
{
key: "language",
required: !0,
rules: [o.STRING],
allowEmpty: !1
}
],
setVideoDisplayMode: [
{
key: "displayMode",
required: !0,
rules: [o.STRING],
range: [ne.CONTAIN, ne.COVER, ne.FILL],
allowEmpty: !1
}
],
setVideoResolution: [
{
key: "resolution",
required: !0,
rules: [o.STRING],
range: [oe.RESOLUTION_1080P, oe.RESOLUTION_480P, oe.RESOLUTION_720P],
allowEmpty: !1
}
]
};
function ht(A) {
return function(t, e, a) {
let n = a.value;
return a.value = function(...l) {
return ci.call(this, A, l, e), n.apply(this, l);
}, a;
};
}
function ci(A) {
if ((A == null ? void 0 : A.engineInstance) && !this._tuiCallEngine) {
const t = `${o.PREFIX} ${v("TUICallKit init is not complete")}`;
throw console.error(t), t;
}
}
class ri {
constructor() {
this.defaultStore = {
callStatus: U.IDLE,
callRole: K.UNKNOWN,
callMediaType: F.UNKNOWN,
localUserInfo: { userId: "" },
localUserInfoExcludeVolume: { userId: "" },
remoteUserInfoList: [],
remoteUserInfoExcludeVolumeList: [],
callerUserInfo: { userId: "" },
isGroup: !1,
callDuration: "00:00:00",
callTips: "",
toastInfo: { text: "" },
isMinimized: !1,
enableFloatWindow: !1,
bigScreenUserId: "",
language: ni(),
isClickable: !1,
deviceList: { cameraList: [], microphoneList: [], currentCamera: {}, currentMicrophone: {} },
showPermissionTip: !1,
netWorkQualityList: [],
isMuteSpeaker: !1,
groupID: "",
roomID: 0,
roomIdType: 0,
cameraPosition: le.FRONT,
groupCallMembers: [],
displayMode: ne.COVER,
videoResolution: oe.RESOLUTION_480P,
showSelectUser: !1,
pusher: {},
player: [],
isEarPhone: !1,
pusherId: o.INITIAL_PUSHER,
isShowEnableVirtualBackground: !1,
enableVirtualBackground: !1,
customUIConfig: {
button: {},
viewBackground: {},
layoutMode: et.RemoteInLargeView
}
}, this.store = tt(this.defaultStore), this.prevStore = tt(this.defaultStore);
}
update(t, e) {
switch (t) {
case o.CALL_TIPS:
const a = this.getData(t);
this.prevStore[t] = a;
default:
this.store[t] = e;
}
}
getPrevData(t) {
return t ? this.prevStore[t] : this.prevStore;
}
getData(t) {
return t ? this.store[t] : this.store;
}
reset(t = []) {
t.length === 0 && (t = Object.keys(this.store));
const e = t.reduce((a, n) => ({ ...a, [n]: this.defaultStore[n] }), {});
this.store = {
...this.defaultStore,
...this.store,
...e
};
}
}
class yA {
constructor() {
this.timerId = -1, this.storeMap = {
[c.CALL]: new ri()
}, this.task = {};
}
static getInstance() {
return yA.instance || (yA.instance = new yA()), yA.instance;
}
watch(t, e, a) {
this.task[t] || (this.task[t] = {});
const n = this.task[t];
Object.keys(e).forEach((l) => {
const i = e[l];
n[l] || (n[l] = /* @__PURE__ */ new Map()), n[l].set(i, 1);
const { notifyRangeWhenWatch: u } = a || {};
if (u === o.ALL && this.notify(t, l), u === o.MYSELF) {
const s = this.getData(t, l);
i.call(this, s);
}
});
}
unwatch(t, e) {
if (!this.task[t])
return;
const a = this.task[t];
Object.keys(e).forEach((n) => {
a[n].delete(e[n]);
});
}
update(t, e, a) {
var n;
(Pt(a) || go(a) || ei(a)) && this.storeMap[t].store[e] === a || ((n = this.storeMap[t]) == null || n.update(e, a), this.notify(t, e));
}
getPrevData(t, e) {
var a;
return (a = this.storeMap[t]) == null ? void 0 : a.getPrevData(e);
}
getData(t, e) {
var a;
return (a = this.storeMap[t]) == null ? void 0 : a.getData(e);
}
notify(t, e) {
if (!this.task[t])
return;
const a = this.task[t];
if (a[e]) {
const n = a[e], l = this.getData(t, e);
for (const [i] of n.entries())
i.call(this, l);
}
}
reset(t, e = [], a = !1) {
if (t in this.storeMap) {
const n = this.storeMap[t];
e.length === 0 && (e = Object.keys(n == null ? void 0 : n.store)), n.reset(e), a && e.forEach((l) => {
this.notify(t, l);
});
}
}
updateStore(t, e) {
const a = e || c.CALL;
Object.keys(t).forEach((n) => {
this.update(a, n, t[n]);
});
}
}
const W = yA.getInstance();
function Wt(A, t) {
const e = {
userId: A,
nick: "",
avatar: "",
remark: "",
displayUserInfo: "",
isAudioAvailable: !1,
isVideoAvailable: !1,
isEnter: !1,
domId: t || A
};
return t ? e : { ...e, isEnter: !1 };
}
async function Mi(A, t) {
var a, n, l, i, u;
let e = Wt(A, o.LOCAL_VIDEO);
try {
if (!t)
return e;
const s = await t.getMyProfile(), r = W == null ? void 0 : W.getData(c.CALL, o.LOCAL_USER_INFO);
return (s == null ? void 0 : s.code) === 0 && (e = {
...e,
...r,
userId: (a = s == null ? void 0 : s.data) == null ? void 0 : a.userID,
nick: (n = s == null ? void 0 : s.data) == null ? void 0 : n.nick,
avatar: (l = s == null ? void 0 : s.data) == null ? void 0 : l.avatar,
displayUserInfo: ((i = s == null ? void 0 : s.data) == null ? void 0 : i.nick) || ((u = s == null ? void 0 : s.data) == null ? void 0 : u.userID)
}), e;
} catch (s) {
return console.error(`${o.PREFIX}getMyProfile failed, error: ${s}.`), e;
}
}
async function ie(A, t) {
let e = A.map((a) => Wt(a));
try {
if (!t)
return e;
const a = await t.getFriendProfile({ userIDList: A });
if (a.code === 0) {
const { friendList: n = [], failureUserIDList: l = [] } = a.data;
let i = l.map((M) => M.userID);
if (l.length > 0) {
const M = await t.getUserProfile({ userIDList: l.map((D) => D.userID) });
(M == null ? void 0 : M.code) === 0 && (i = (M == null ? void 0 : M.data) || []);
}
const u = W == null ? void 0 : W.getData(c.CALL, o.REMOTE_USER_INFO_LIST), s = n.map((M) => M.userID), r = i.map((M) => M.userID);
e = A.map((M) => {
var L, m, k, _, Z, b, P;
const D = Wt(M), g = s.indexOf(M), N = r.indexOf(M);
let y = "", T = "", C = "", E = "";
g !== -1 && (y = ((L = n[g]) == null ? void 0 : L.remark) || "", T = ((k = (m = n[g]) == null ? void 0 : m.profile) == null ? void 0 : k.nick) || "", C = y || T || D.userId || "", E = ((Z = (_ = n[g]) == null ? void 0 : _.profile) == null ? void 0 : Z.avatar) || ""), N !== -1 && (T = ((b = i[N]) == null ? void 0 : b.nick) || "", C = T || D.userId || "", E = ((P = i[N]) == null ? void 0 : P.avatar) || "");
const w = u.find((AA) => AA.userId === M) || {};
return { ...D, ...w, remark: y, nick: T, displayUserInfo: C, avatar: E };
});
}
return e;
} catch (a) {
return console.error(`${o.PREFIX}getRemoteUserProfile failed, error: ${a}.`), e;
}
}
function vA(A, t, e) {
const a = W.getData(c.CALL, o.IS_GROUP);
let n = `${v(A)}`;
return a && (n = t ? `${t} ${n}` : n, n = e ? `${n} ${e}` : n), n;
}
function _e() {
const A = W.getData(c.CALL, o.CALL_STATUS);
if (A === U.IDLE)
return nA.IDLE;
const t = W.getData(c.CALL, o.IS_GROUP);
if (A === U.CALLING)
return t ? nA.DIALING_GROUP : nA.DIALING_C2C;
const e = W.getData(c.CALL, o.CALL_MEDIA_TYPE);
return t ? e === F.AUDIO ? nA.CALLING_GROUP_AUDIO : nA.CALLING_GROUP_VIDEO : e === F.AUDIO ? nA.CALLING_C2C_AUDIO : nA.CALLING_C2C_VIDEO;
}
async function di(A, t, e, a) {
let n = [];
try {
const l = await t.getGroupMemberList({ groupID: A, count: e, offset: a });
if (l.code === 0)
return l.data.memberList || n;
} catch (l) {
return console.error(`${o.PREFIX}getGroupMember failed, error: ${l}.`), n;
}
}
async function Ii(A, t) {
let e = {};
try {
return (await t.getGroupProfile({ groupID: A })).data.group || e;
} catch (a) {
return console.warn(`${o.PREFIX}getGroupProfile failed, error: ${a}.`), e;
}
}
function po(A, t) {
A === 0 && t ? (W.update(c.CALL, o.ROOM_ID, t), W.update(c.CALL, o.ROOM_ID_TYPE, kt.STRING_ROOM_ID)) : (W.update(c.CALL, o.ROOM_ID, A), W.update(c.CALL, o.ROOM_ID_TYPE, kt.NUMBER_ROOM_ID));
}
function DA(A) {
return A || {};
}
function xt(A) {
if (A.length === 0)
return;
let t = W.getData(c.CALL, o.REMOTE_USER_INFO_LIST);
A.forEach((e) => {
t = t.filter((a) => a.userId !== e);
}), W.update(c.CALL, o.REMOTE_USER_INFO_LIST, t), W.update(c.CALL, o.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST, t);
}
function Vt(A) {
A == null || A.getDeviceList("speaker").then((e) => {
const a = W.getData(c.CALL, o.DEVICE_LIST), n = (e == null ? void 0 : e[0]) || {};
W.update(
c.CALL,
o.DEVICE_LIST,
{ ...a, speakerList: e, currentSpeaker: n }
);
}).catch((e) => {
console.error(`${o.PREFIX}updateSpeakerList failed, error: ${JSON.stringify(e)}.`);
}), W.getData(c.CALL, o.CALL_MEDIA_TYPE) === F.VIDEO && (A == null || A.getDeviceList("camera").then((e) => {
const a = W.getData(c.CALL, o.DEVICE_LIST), n = (e == null ? void 0 : e[0]) || {};
W.update(
c.CALL,
o.DEVICE_LIST,
{ ...a, cameraList: e, currentCamera: n }
);
}).catch((e) => {
console.error(`${o.PREFIX}updateCameraList failed, error: ${e}.`);
})), A == null || A.getDeviceList("microphones").then((e) => {
const a = W.getData(c.CALL, o.DEVICE_LIST), n = (e == null ? void 0 : e[0]) || {};
W.update(
c.CALL,
o.DEVICE_LIST,
{ ...a, microphoneList: e, currentMicrophone: n }
);
}).catch((e) => {
console.error(`${o.PREFIX}updateMicrophoneList failed, error: ${e}.`);
});
}
function bt(A, t, e) {
if (ai(A)) {
let a = "";
t === F.AUDIO && (a = vA(sA.NO_MICROPHONE_DEVICE_PERMISSION)), t === F.VIDEO && (a = vA(sA.NO_CAMERA_DEVICE_PERMISSION));
const n = e == null ? void 0 : e.getDevicePermission();
n != null && n.audio || W.update(c.CALL, o.SHOW_PERMISSION_TIP, !0), a && W.update(c.CALL, o.TOAST_INFO, { text: a, type: o.ERROR }), console.error(`${o.PREFIX}call failed, error: ${A.message}.`);
}
}
function FA(A, t) {
let e = W.getData(c.CALL, o.LOCAL_USER_INFO);
t === o.AUDIO && (e = { ...e, isAudioAvailable: A }), t === o.VIDEO && (e = { ...e, isVideoAvailable: A }), W.update(c.CALL, o.LOCAL_USER_INFO, e), W.update(c.CALL, o.LOCAL_USER_INFO_EXCLUDE_VOLUMN, e);
}
class nt {
static generateTaskID() {
return this.currentTaskID++;
}
static run(t = o.TIMEOUT, e, a) {
t === o.INTERVAL ? a = { delay: 2e3, count: 0, backgroundTask: !0, ...a } : a = { delay: 2e3, count: 0, backgroundTask: !0, ...a }, Mo(e) && (a = { ...a, ...e }), $e(t) && (e = t, t = o.TIMEOUT);
const n = {
taskID: this.generateTaskID(),
loopCount: 0,
intervalID: null,
timeoutID: null,
taskName: t,
callback: e,
...a
};
return this.taskMap.set(n.taskID, n), t === o.INTERNAL ? this.interval(n) : this.timeout(n), n.taskID;
}
static interval(t) {
const e = () => {
t.callback(), t.loopCount += 1, this.isBreakLoop(t);
};
return t.intervalID = setInterval(e, t.delay);
}
static timeout(t) {
const e = () => {
if (t.callback(), t.loopCount += 1, !this.isBreakLoop(t))
return t.timeoutID = setTimeout(e, t.delay);
};
return t.timeoutID = setTimeout(e, t.delay);
}
static hasTask(t) {
return this.taskMap.has(t);
}
static clearTask(t) {
if (!this.taskMap.has(t))
return !0;
const { intervalID: e, timeoutID: a, onVisibilitychange: n } = this.taskMap.get(t);
return e && clearInterval(e), a && clearTimeout(a), n && document.removeEventListener("visibilitychange", n), this.taskMap.delete(t), !0;
}
static isBreakLoop(t) {
return this.taskMap.has(t.taskID) ? t.count !== 0 && t.loopCount >= t.count ? (this.clearTask(t.taskID), !0) : !1 : !0;
}
}
nt.taskMap = /* @__PURE__ */ new Map();
nt.currentTaskID = 1;
const gi = function(A) {
if (A === null || typeof A > "u")
return !0;
if (typeof A == "boolean")
return !1;
if (typeof A == "number")
return A === 0;
if (typeof A == "string" || typeof A == "function" || Array.isArray(A))
return A.length === 0;
if (A instanceof Error)
return A.message === "";
if (Mo(A)) {
for (const t in A)
if (Object.prototype.hasOwnProperty.call(A, t))
return !1;
return !0;
}
return !1;
}, Bt = "_local_user_id";
class PA {
constructor() {
this._viewConfig = {
viewBackground: {
local: {},
remote: {}
}
}, this._isSetViewBackgroundConfig = { remote: !1, local: !1 }, this._tuiCallEngine = null, this._tuiStore = null;
}
static getInstance() {
return PA.instance || (PA.instance = new PA()), PA.instance;
}
_updateViewBackground() {
var a, n, l;
const t = (a = this._tuiStore) == null ? void 0 : a.getData(c.CALL, o.CUSTOM_UI_CONFIG), { userId: e } = (n = this._tuiStore) == null ? void 0 : n.getData(c.CALL, o.LOCAL_USER_INFO);
Object.keys(this._viewConfig.viewBackground.remote).includes(e) && delete this._viewConfig.viewBackground.remote[e], (l = this._tuiStore) == null || l.update(
c.CALL,
o.CUSTOM_UI_CONFIG,
{
...t,
viewBackground: {
...this._viewConfig.viewBackground.remote,
...this._viewConfig.viewBackground.local
}
}
);
}
setEngineInstance(t) {
this._tuiCallEngine = t;
}
setTUIStore(t) {
this._tuiStore = t;
}
updateViewBackgroundUserId(t) {
var e, a;
if (t === "local") {
const { userId: n } = (e = this._tuiStore) == null ? void 0 : e.getData(c.CALL, o.LOCAL_USER_INFO);
if (Object.keys(this._viewConfig.viewBackground.remote).includes(n) && (delete this._viewConfig.viewBackground.remote[n], this._updateViewBackground()), !this._isSetViewBackgroundConfig.local)
return;
const l = this._viewConfig.viewBackground.local, i = l[n] || l[Bt];
l[n] = l[Bt], this._viewConfig.viewBackground.local = { [n]: i }, this._updateViewBackground();
} else {
let n = this._viewConfig.viewBackground.remote;
this._isSetViewBackgroundConfig.remote && Object.keys(n).includes("*") && (((a = this._tuiStore) == null ? void 0 : a.getData(c.CALL, o.REMOTE_USER_INFO_LIST)).map((u) => u.userId).forEach((u) => {
Object.keys(n).includes(u) || (n[u] = n["*"]);
}), this._viewConfig.viewBackground.remote = n, this._updateViewBackground());
}
}
hideFeatureButton(t) {
var a, n, l, i, u;
(n = (a = this._tuiCallEngine) == null ? void 0 : a.reportLog) == null || n.call(a, {
name: "TUICallKit.hideFeatureButton.start",
data: { buttonName: t }
});
const e = (l = this._tuiStore) == null ? void 0 : l.getData(c.CALL, o.CUSTOM_UI_CONFIG);
(u = this._tuiStore) == null || u.update(
c.CALL,
o.CUSTOM_UI_CONFIG,
{
...e,
button: {
...e.button,
[t]: { ...((i = e.button) == null ? void 0 : i[t]) || {}, show: !1 }
}
}
);
}
setLocalViewBackgroundImage(t) {
var a, n, l;
(n = (a = this._tuiCallEngine) == null ? void 0 : a.reportLog) == null || n.call(a, {
name: "TUICallKit.setLocalViewBackgroundImage.start",
data: { url: t }
}), this._isSetViewBackgroundConfig.local = !0;
let { userId: e } = (l = this._tuiStore) == null ? void 0 : l.getData(c.CALL, o.LOCAL_USER_INFO);
gi(e) && (e = Bt), this._viewConfig.viewBackground.local = { [e]: t }, this._updateViewBackground();
}
setRemoteViewBackgroundImage(t, e) {
var a, n;
(n = (a = this._tuiCallEngine) == null ? void 0 : a.reportLog) == null || n.call(a, {
name: "TUICallKit.setRemoteViewBackgroundImage.start",
data: { userId: t, url: e }
}), this._isSetViewBackgroundConfig.remote = !0, t === "*" && (this._viewConfig.viewBackground.remote = {}), this._viewConfig.viewBackground.remote[t] = e, this._updateViewBackground();
}
setLayoutMode(t) {
var a, n;
(n = (a = this._tuiCallEngine) == null ? void 0 : a.reportLog) == null || n.call(a, {
name: "TUICallKit.setLayoutMode.start",
data: { layoutMode: t }
});
const e = this._tuiStore.getData(c.CALL, o.CUSTOM_UI_CONFIG);
this._tuiStore.update(
c.CALL,
o.CUSTOM_UI_CONFIG,
{
...e,
layoutMode: t
}
);
}
setCameraDefaultState(t) {
var a, n;
(n = (a = this._tuiCallEngine) == null ? void 0 : a.reportLog) == null || n.call(a, {
name: "TUICallKit.setCameraDefaultState.start",
data: { isOpen: t }
});
const e = tt(this._tuiStore.getData(c.CALL, o.CUSTOM_UI_CONFIG));
Object.keys(e.button).includes(zA.Camera) || (e.button[zA.Camera] = {}), e.button[zA.Camera].state = t ? JA.Open : JA.Close, this._tuiStore.update(c.CALL, o.CUSTOM_UI_CONFIG, e);
}
}
const qe = yA.getInstance(), TA = {
audioCall: () => v("Voice call"),
videoCall: () => v("Video call"),
switchToAudio: () => v("Switch audio call"),
switchToVideo: () => v("Switch video call"),
hangup: ({ callDuration: A }) => `${v("Call duration")}\uFF1A${A}`
};
class qA {
constructor(t) {
var e, a, n;
this._callService = t.callService, HA.registerEvent(H.TUILogin.EVENT.LOGIN_STATE_CHANGED, H.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS, this), (e = H.TUIChat) != null && e.EVENT && HA.registerEvent((a = H.TUIChat.EVENT) == null ? void 0 : a.CHAT_STATE_CHANGED, (n = H.TUIChat.EVENT_SUB_KEY) == null ? void 0 : n.CHAT_OPENED, this), HA.registerService(H.TUICalling.SERVICE.NAME, this), HA.registerExtension(H.TUIChat.EXTENSION.INPUT_MORE.EXT_ID, this);
}
static getInstance(t) {
return qA.instance || (qA.instance = new qA(t)), qA.instance;
}
callTUIService(t) {
const { message: e } = t || {};
HA.callService({
serviceName: H.TUIChat.SERVICE.NAME,
method: H.TUIChat.SERVICE.METHOD.UPDATE_MESSAGE_LIST,
params: { message: e }
});
}
onGetExtension(t, e) {
var a, n;
if (t === H.TUIChat.EXTENSION.INPUT_MORE.EXT_ID) {
if ((n = (a = this._callService.getTUICallEngineInstance()) == null ? void 0 : a.reportLog) == null || n.call(a, { name: "TUICallKit.onGetExtension", data: { extensionID: t, params: e } }), Et(e))
return [];
if ([H.TUIChat.TYPE.ROOM, H.TUIChat.TYPE.CUSTOMER_SERVICE].includes(e.chatType))
return [];
let l = [];
const i = {
weight: 1e3,
text: "\u8BED\u97F3\u901A\u8BDD",
icon: kl,
data: {
name: "voiceCall"
},
listener: {
onClicked: async (s) => await this._handleTUICoreOnClick(s, s.type || F.AUDIO)
}
}, u = {
weight: 900,
text: "\u89C6\u9891\u901A\u8BDD",
icon: Pl,
data: {
name: "videoCall"
},
listener: {
onClicked: async (s) => await this._handleTUICoreOnClick(s, s.type || F.VIDEO)
}
};
return e != null && e.chatType ? l = [i, u] : (!(e != null && e.filterVoice) && l.push(i), !(e != null && e.filterVideo) && l.push(u)), l;
}
}
async onCall(t, e) {
t === H.TUICalling.SERVICE.METHOD.START_CALL && await this._handleTUICoreOnClick(e, e.type);
}
async onNotifyEvent(t, e, a) {
var n, l, i, u, s, r, M, D;
try {
if (t === H.TUILogin.EVENT.LOGIN_STATE_CHANGED)
if (e === H.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS) {
const { chat: g, userID: N, userSig: y, SDKAppID: T } = Ol.getContext();
await ((n = this._callService) == null ? void 0 : n.init({ tim: g, userID: N, userSig: y, sdkAppID: T, isFromChat: !0, component: _t.TIM_CALL_KIT })), (l = this._callService) == null || l.setIsFromChat(!0), (i = this._callService) == null || i.setLogLevel(io.NORMAL), this._addListenChatEvent();
} else
e === H.TUILogin.EVENT_SUB_KEY.USER_LOGOUT_SUCCESS && (this._removeListenChatEvent(), await ((u = this._callService) == null ? void 0 : u.destroyed()));
if (((s = H.TUIChat) == null ? void 0 : s.EVENT) && t === H.TUIChat.EVENT.CHAT_STATE_CHANGED && e === H.TUIChat.EVENT_SUB_KEY.CHAT_OPENED) {
if ((r = this._callService) == null || r.setCurrentGroupId((a == null ? void 0 : a.groupID) || ""), qe.getData(c.CALL, o.CALL_STATUS) !== U.IDLE)
return;
const g = (M = this._callService) == null ? void 0 : M.getCurrentGroupId(), N = g ? await this.getGroupAttributes((D = this._callService) == null ? void 0 : D.getTim(), g) : {};
await this.updateStoreBasedOnGroupAttributes(N);
}
} catch (g) {
console.error(`${o.PREFIX}TUICore onNotifyEvent failed, error: ${g}.`);
}
}
async updateStoreBasedOnGroupAttributes(t) {
var e, a, n, l;
(n = (a = (e = this._callService) == null ? void 0 : e.getTUICallEngineInstance()) == null ? void 0 : a.reportLog) == null || n.call(a, {
name: "TUICallKit.getJoinGroupCallInfo.success",
data: { groupAttributes: t }
});
try {
const {
group_id: i = "",
room_id: u = 0,
room_id_type: s = 0,
call_media_type: r = o.UNKNOWN,
user_list: M
} = t[o.INNER_ATTR_KIT_INFO] ? JSON.parse(t[o.INNER_ATTR_KIT_INFO]) : {};
let D = (M || []).map((N) => N.userid);
D = D.length && await ie(D, (l = this._callService) == null ? void 0 : l.getTim());
const g = {
[o.GROUP_ID]: i,
[o.GROUP_CALL_MEMBERS]: D,
[o.ROOM_ID]: u,
[o.CALL_MEDIA_TYPE]: bl[r],
[o.ROOM_ID_TYPE]: s
};
qe.updateStore(g, c.CALL);
} catch (i) {
console.warn(`${o.PREFIX}updateStoreBasedOnGroupAttributes fail, error: ${i}`);
}
}
async getGroupAttributes(t, e) {
if (!e)
return {};
try {
const { data: a } = await t.getGroupAttributes({
groupID: e,
keyList: []
});
return (a == null ? void 0 : a.groupAttributes) || {};
} catch (a) {
return console.warn(`${o.PREFIX}getGroupAttributes fail: ${a}`), {};
}
}
isLineBusy(t) {
var n;
const e = Xe(t.payload.data), a = Xe(e == null ? void 0 : e.data);
return (a == null ? void 0 : a.line_busy) === "line_busy" || (a == null ? void 0 : a.line_busy) === "" || ((n = a == null ? void 0 : a.data) == null ? void 0 : n.message) === "lineBusy";
}
async getCallKitMessage(t, e) {
var g, N, y, T;
const a = Xe(t.payload.data);
if ((a == null ? void 0 : a.businessID) !== 1)
return {};
let n = "";
const l = Xe(a == null ? void 0 : a.data), i = l.call_type, u = a.inviteeList, s = (g = l == null ? void 0 : l.data) == null ? void 0 : g.inviter, r = qe.getData(c.CALL, o.LOCAL_USER_INFO).userId, M = s === r, D = (N = l == null ? void 0 : l.data) == null ? void 0 : N.cmd;
switch (a == null ? void 0 : a.actionType) {
case XA.INVITE: {
n = TA[D]({ callDuration: No(l == null ? void 0 : l.call_end) });
break;
}
case XA.CANCEL_INVITE:
n = v(M ? "Call Cancel" : "Other Side Cancel");
break;
case XA.ACCEPT_INVITE:
["switchToAudio", "switchToVideo"].includes(D) ? n = (y = TA == null ? void 0 : TA[D]) == null ? void 0 : y.call(TA) : n = v("Answered");
break;
case XA.REJECT_INVITE:
this.isLineBusy(t) ? n = v(M ? "Line Busy" : "Other Side Line Busy") : n = v(M ? "Other Side Decline" : "Decline");
break;
case XA.INVITE_TIMEOUT:
["switchToAudio", "switchToVideo"].includes(D) ? n = (T = TA == null ? void 0 : TA[D]) == null ? void 0 : T.call(TA) : n = v(M ? "Other Side No Answer" : "No answer");
break;
}
return { messageCardContent: n, callMediaType: i, inviteeList: u };
}
_addListenChatEvent() {
var t, e;
if (!((t = this._callService) != null && t.getTim())) {
console.warn(`${o.PREFIX}add tim event listener failed, tim is empty.`);
return;
}
(e = this._callService) == null || e.getTim().on(ma.EVENT.GROUP_ATTRIBUTES_UPDATED, this._handleGroupAttributesUpdated, this);
}
_removeListenChatEvent() {
var t, e;
if (!((t = this._callService) != null && t.getTim())) {
console.warn(`${o.PREFIX}remove tim event listener failed, tim is empty.`);
return;
}
(e = this._callService) == null || e.getTim().off(ma.EVENT.GROUP_ATTRIBUTES_UPDATED, this._handleGroupAttributesUpdated, this);
}
async _handleTUICoreOnClick(t, e) {
var a, n;
try {
const { groupID: l, userIDList: i = [], ...u } = t;
l ? await ((a = this._callService) == null ? void 0 : a.groupCall({ groupID: l, userIDList: i, type: e, ...u })) : i.length === 1 && await ((n = this._callService) == null ? void 0 : n.call({ userID: i[0], type: e, ...u }));
} catch (l) {
console.debug(l);
}
}
async _handleGroupAttributesUpdated(t) {
var l;
if (qe.getData(c.CALL, o.CALL_STATUS) !== U.IDLE)
return;
const e = (t == null ? void 0 : t.data) || {}, { groupID: a = "", groupAttributes: n = {} } = e;
a === ((l = this._callService) == null ? void 0 : l.getCurrentGroupId()) && await this.updateStoreBasedOnGroupAttributes(n);
}
}
const Ni = 0, pi = 1, Oa = 2;
function Di({ retryFunction: A, settings: t, onError: e, onRetrying: a, onRetryFailed: n, context: l }) {
return function(...i) {
const u = t.retries || 5;
let s = 0, r = -1, M = Ni;
const D = async (g, N) => {
const y = l || this;
try {
const T = await A.apply(y, i);
s = 0, g(T);
} catch (T) {
const C = () => {
clearTimeout(r), s = 0, M = Oa, N(T);
}, E = () => {
M !== Oa && s < u ? (s++, M = pi, $e(a) && a.call(y, s, C), r = setTimeout(
() => {
r = -1, D(g, N);
},
Et(t.timeout) ? 1e3 : t.timeout
)) : (C(), $e(n) && n.call(y, T));
};
$e(e) ? e.call(y, T, E, N, i) : E();
}
};
return new Promise(D);
};
}
function Ti(A) {
return function(t, e, a) {
const { retries: n = 5, timeout: l = 2e3, onError: i, onRetrying: u, onRetryFailed: s } = A, r = Di({
retryFunction: a.value,
settings: { retries: n, timeout: l },
onError: i,
onRetrying: u,
onRetryFailed: s,
context: null
});
return a.value = function(...M) {
return r.apply(this, M);
}, a;
};
}
var Ci = Object.defineProperty, yi = Object.getOwnPropertyDescriptor, Si = (A, t, e, a) => {
for (var n = a > 1 ? void 0 : a ? yi(t, e) : t, l = A.length - 1, i; l >= 0; l--)
(i = A[l]) && (n = (a ? i(t, e, n) : i(n)) || n);
return a && n && Ci(t, e, n), n;
};
const V = yA.getInstance(), Ei = PA.getInstance(), ee = class {
constructor(A) {
this._callService = A.callService;
}
static getInstance(A) {
return ee.instance || (ee.instance = new ee(A)), ee.instance;
}
addListenTuiCallEngineEvent() {
var t;
const A = (t = this._callService) == null ? void 0 : t.getTUICallEngineInstance();
if (!A) {
console.warn(`${o.PREFIX}add engine event listener failed, engine is empty.`);
return;
}
A.on(f.ERROR, this._handleError, this), A.on(f.INVITED, this._handleNewInvitationReceived, this), A.on(f.USER_ACCEPT, this._handleUserAccept, this), A.on(f.USER_ENTER, this._handleUserEnter, this), A.on(f.USER_LEAVE, this._handleUserLeave, this), A.on(f.REJECT, this._handleInviteeReject, this), A.on(f.NO_RESP, this._handleNoResponse, this), A.on(f.LINE_BUSY, this._handleLineBusy, this), A.on(f.CALLING_CANCEL, this._handleCallingCancel, this), A.on(f.SDK_READY, this._handleSDKReady, this), A.on(f.KICKED_OUT, this._handleKickedOut, this), A.on(f.MESSAGE_SENT_BY_ME, this._messageSentByMe, this), f.CALL_MESSAGE && A.on(f.CALL_MESSAGE, this._handleCallMessage, this), f.ON_USER_NETWORK_QUALITY_CHANGED && A.on(f.ON_USER_NETWORK_QUALITY_CHANGED, this._handleNetworkQuality, this), A.on(f.CALLING_END, this._handleCallingEnd, this), A.on(f.CALL_TYPE_CHANGED, this._handleCallTypeChange, this), A.on(f.USER_VIDEO_AVAILABLE, this._handleUserVideoAvailable, this), A.on(f.USER_AUDIO_AVAILABLE, this._handleUserAudioAvailable, this), A.on(f.USER_VOICE_VOLUME, this._handleUserVoiceVolume, this), A.on(f.DEVICED_UPDATED, this._handleDeviceUpdate, this);
}
removeListenTuiCallEngineEvent() {
var t;
const A = (t = this._callService) == null ? void 0 : t.getTUICallEngineInstance();
A.off(f.ERROR, this._handleError, this), A.off(f.INVITED, this._handleNewInvitationReceived, this), A.off(f.USER_ACCEPT, this._handleUserAccept, this), A.off(f.USER_ENTER, this._handleUserEnter, this), A.off(f.USER_LEAVE, this._handleUserLeave, this), A.off(f.REJECT, this._handleInviteeReject, this), A.off(f.NO_RESP, this._handleNoResponse, this), A.off(f.LINE_BUSY, this._handleLineBusy, this), A.off(f.CALLING_CANCEL, this._handleCallingCancel, this), A.off(f.SDK_READY, this._handleSDKReady, this), A.off(f.KICKED_OUT, this._handleKickedOut, this), A.off(f.MESSAGE_SENT_BY_ME, this._messageSentByMe, this), f.ON_USER_NETWORK_QUALITY_CHANGED && A.off(f.ON_USER_NETWORK_QUALITY_CHANGED, this._handleNetworkQuality, this), A.off(f.CALLING_END, this._handleCallingEnd, this), A.off(f.CALL_TYPE_CHANGED, this._handleCallTypeChange, this), A.off(f.USER_VIDEO_AVAILABLE, this._handleUserVideoAvailable, this), A.off(f.USER_AUDIO_AVAILABLE, this._handleUserAudioAvailable, this), A.off(f.USER_VOICE_VOLUME, this._handleUserVoiceVolume, this), A.off(f.DEVICED_UPDATED, this._handleDeviceUpdate, this);
}
_callerChangeToConnected() {
var e;
const A = V.getData(c.CALL, o.CALL_ROLE);
V.getData(c.CALL, o.CALL_STATUS) === U.CALLING && A === K.CALLER && (V.update(c.CALL, o.CALL_STATUS, U.CONNECTED), (e = this._callService) == null || e.startTimer());
}
_unNormalEventsManager(A, t) {
var n;
console.log(`${o.PREFIX}${t} event data: ${JSON.stringify(A)}.`);
const e = V.getData(c.CALL, o.IS_GROUP), a = V.getData(c.CALL, o.REMOTE_USER_INFO_LIST);
switch (t) {
case f.REJECT:
case f.LINE_BUSY: {
const { userID: l } = DA(A);
let i = t === f.REJECT ? sA.OTHER_SIDE_REJECT_CALL : sA.OTHER_SIDE_LINE_BUSY, u = vA(i);
if (e) {
const s = (a.find((r) => r.userId === l) || {}).displayUserInfo || l;
i = t === f.REJECT ? sA.REJECT_CALL : sA.IN_BUSY, u = vA(i, s);
}
V.update(c.CALL, o.TOAST_INFO, { text: u }), l && xt([l]);
break;
}
case f.NO_RESP: {
const { userIDList: l = [] } = DA(A), i = e ? sA.TIMEOUT : sA.CALL_TIMEOUT, u = l.map((r) => (a.find((D) => D.userId === r) || {}).displayUserInfo || r), s = e ? vA(i, u.join()) : vA(i);
V.update(c.CALL, o.TOAST_INFO, { text: s }), l.length > 0 && xt(l);
break;
}
case f.CALLING_CANCEL: {
(n = this._callService) == null || n._resetCallStore();
break;
}
}
}
_handleError(A) {
var l;
const { code: t, message: e } = A || {}, a = Object.values(ja).indexOf(t);
let n = "";
if (a !== -1) {
const i = Object.keys(ja)[a];
n = v(Bl[i]), n && V.update(c.CALL, o.TOAST_INFO, { text: n, type: o.ERROR });
}
(l = this._callService) == null || l.executeExternalAfterCalling(), console.error(`${o.PREFIX}_handleError, errorCode: ${t}; errorMessage: ${n || e}.`);
}
async _handleNewInvitationReceived(A) {
var C, E, w, L;
console.log(`${o.PREFIX}onCallReceived event data: ${JSON.stringify(A)}.`);
const { sponsor: t = "", isFromGroup: e, callMediaType: a, inviteData: n = {}, calleeIdList: l = [], groupID: i = "", roomID: u, strRoomID: s } = DA(A), r = V.getData(c.CALL, o.LOCAL_USER_INFO), M = [t, ...l.filter((m) => m !== r.userId)], D = a || n.callType, g = D === F.AUDIO ? sA.CALLEE_CALLING_AUDIO_MSG : sA.CALLEE_CALLING_VIDEO_MSG;
let N = {
[o.CALL_ROLE]: K.CALLEE,
[o.IS_GROUP]: e,
[o.CALL_STATUS]: U.CALLING,
[o.CALL_MEDIA_TYPE]: D,
[o.CALL_TIPS]: v(g),
[o.CALLER_USER_INFO]: { userId: t },
[o.GROUP_ID]: i
};
po(u, s), V.updateStore(N, c.CALL), (C = this._callService) == null || C.executeExternalBeforeCalling(), (E = this._callService) != null && E.statusChanged && ((w = this._callService) == null || w.statusChanged({ oldStatus: nA.IDLE, newStatus: nA.BE_INVITED }));
const y = await ie(M, (L = this._callService) == null ? void 0 : L.getTim()), [T] = y.filter((m) => m.userId === t);
y.length > 0 && V.updateStore({
[o.REMOTE_USER_INFO_LIST]: y,
[o.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]: y,
[o.CALLER_USER_INFO]: {
userId: t,
nick: (T == null ? void 0 : T.nick) || "",
avatar: (T == null ? void 0 : T.avatar) || "",
displayUserInfo: (T == null ? void 0 : T.remark) || (T == null ? void 0 : T.nick) || t
}
}, c.CALL);
}
_handleUserAccept(A) {
this._callerChangeToConnected(), V.update(c.CALL, o.TOAST_INFO, v("answered")), console.log(`${o.PREFIX}accept event data: ${JSON.stringify(A)}.`);
}
async _handleUserEnter(A) {
var l;
this._callerChangeToConnected();
const { userID: t, data: e } = DA(A);
let a = V.getData(c.CALL, o.REMOTE_USER_INFO_LIST);
if (!a.find((i) => (i == null ? void 0 : i.userId) === t)) {
a.push({ userId: t }), a.length > 0 && (V.update(c.CALL, o.REMOTE_USER_INFO_LIST, a), V.update(c.CALL, o.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST, a));
const [i] = await ie([t], (l = this._callService) == null ? void 0 : l.getTim());
a = V.getData(c.CALL, o.REMOTE_USER_INFO_LIST), a.forEach((u) => {
(u == null ? void 0 : u.userId) === t && (u = Object.assign(u, i));
});
}
a = a.map((i) => (i.userId === t && (i.isEnter = !0), i)), a.length > 0 && (V.update(c.CALL, o.REMOTE_USER_INFO_LIST, a), V.update(c.CALL, o.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST, a), Ei.updateViewBackgroundUserId("remote")), console.log(`${o.PREFIX}userEnter event data: ${JSON.stringify(A)}.`);
}
_handleUserLeave(A) {
console.log(`${o.PREFIX}userLeave event data: ${JSON.stringify(A)}.`);
const { data: t, userID: e } = DA(A);
if (V.getData(c.CALL, o.IS_GROUP)) {
const n = (V.getData(c.CALL, o.REMOTE_USER_INFO_LIST).find((i) => i.userId === e) || {}).displayUserInfo || e, l = vA(sA.END_CALL, n);
V.update(c.CALL, o.TOAST_INFO, { text: l });
}
e && xt([e]);
}
_handleInviteeReject(A) {
this._unNormalEventsManager(A, f.REJECT);
}
_handleNoResponse(A) {
this._unNormalEventsManager(A, f.NO_RESP);
}
_handleLineBusy(A) {
this._unNormalEventsManager(A, f.LINE_BUSY);
}
_handleCallingCancel(A) {
var t;
(t = this._callService) == null || t.executeExternalAfterCalling(), this._unNormalEventsManager(A, f.CALLING_CANCEL);
}
_handleCallingEnd(A) {
var t, e;
console.log(`${o.PREFIX}callEnd event data: ${JSON.stringify(A)}.`), (t = this._callService) == null || t.executeExternalAfterCalling(), (e = this._callService) == null || e._resetCallStore();
}
async _handleSDKReady(A) {
var e, a, n;
let t = V.getData(c.CALL, o.LOCAL_USER_INFO);
t = await Mi(t.userId, (e = this._callService) == null ? void 0 : e.getTim()), (n = this._callService) == null || n.setDefaultOfflinePushInfo({ ...(a = this._callService) == null ? void 0 : a.getDefaultOfflinePushInfo(), title: t == null ? void 0 : t.displayUserInfo }), V.update(c.CALL, o.LOCAL_USER_INFO, t), V.update(c.CALL, o.LOCAL_USER_INFO_EXCLUDE_VOLUMN, t);
}
_handleKickedOut(A) {
var t, e, a;
console.log(`${o.PREFIX}kickOut event data: ${JSON.stringify(A)}.`), (t = this._callService) != null && t.kickedOut && ((e = this._callService) == null || e.kickedOut(A)), V.update(c.CALL, o.CALL_TIPS, vA(sA.KICK_OUT)), (a = this._callService) == null || a._resetCallStore();
}
_messageSentByMe(A) {
var e, a;
const t = A == null ? void 0 : A.data;
(e = this._callService) != null && e.onMessageSentByMe && ((a = this._callService) == null || a.onMessageSentByMe(t));
}
_handleCallMessage(A) {
const t = DA(A);
this._callService._chatCombine.callTUIService({ message: t });
}
_handleCallTypeChange(A) {
const { newCallType: t, type: e } = DA(A);
V.update(c.CALL, o.CALL_MEDIA_TYPE, t || e);
}
_handleNetworkQuality(A) {
const { networkQualityList: t = [] } = DA(A);
V.update(c.CALL, o.NETWORK_STATUS, t);
const e = V.getData(c.CALL, o.IS_GROUP), a = V.getData(c.CALL, o.LOCAL_USER_INFO);
if (V.getData(c.CALL, o.REMOTE_USER_INFO_LIST), !e && t.find((l) => (a == null ? void 0 : a.userId) === (l == null ? void 0 : l.userId) && (l == null ? void 0 : l.quality) >= Gl)) {
V.update(c.CALL, o.CALL_TIPS, v(sA.LOCAL_NETWORK_IS_POOR));
return;
}
}
async _startRemoteView(A) {
var t;
if (!A) {
console.warn(`${o.PREFIX}_startRemoteView userID is empty`);
return;
}
if (!document.getElementById(A))
return console.warn(`${o.PREFIX}_startRemoteView can't find HTMLElement sid: ${A}`), Promise.reject();
try {
const e = V.getData(c.CALL, o.DISPLAY_MODE);
await ((t = this._callService) == null ? void 0 : t.getTUICallEngineInstance().startRemoteView({ userID: A, videoViewDomID: A, options: { objectFit: e } }));
} catch (e) {
return console.error(`${o.PREFIX}_startRemoteView error: ${e}.`), Promise.reject(e);
}
}
_setRemoteUserInfoAudioVideoAvailable(A, t, e) {
let a = V.getData(c.CALL, o.REMOTE_USER_INFO_LIST);
a = a.map((n) => {
if (n.userId === e) {
if (t === o.AUDIO)
return { ...n, isAudioAvailable: A };
if (t === o.VIDEO)
return { ...n, isVideoAvailable: A };
}
return n;
}), a.length > 0 && (V.update(c.CALL, o.REMOTE_USER_INFO_LIST, a), V.update(c.CALL, o.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST, a));
}
async _handleUserVideoAvailable(A) {
const { userID: t, isVideoAvailable: e } = DA(A);
console.log(`${o.PREFIX}_handleUserVideoAvailable event data: ${JSON.stringify(A)}.`);
try {
e && await this._startRemoteView(t);
} catch (a) {
console.error(`${o.PREFIX}_startRemoteView failed, error: ${a}.`);
}
this._setRemoteUserInfoAudioVideoAvailable(e, o.VIDEO, t);
}
_handleUserAudioAvailable(A) {
const { userID: t, isAudioAvailable: e } = DA(A);
console.log(`${o.PREFIX}_handleUserAudioAvailable event data: ${JSON.stringify(A)}.`), this._setRemoteUserInfoAudioVideoAvailable(e, o.AUDIO, t);
}
_handleUserVoiceVolume(A) {
try {
const { volumeMap: t } = DA(A);
if ((t || []).length === 0)
return;
const e = V.getData(c.CALL, o.LOCAL_USER_INFO);
let a = V.getData(c.CALL, o.REMOTE_USER_INFO_LIST);
const [n] = t.filter((u) => u.userId === e.userId), l = t.reduce((u, s) => s.userId !== e.userId ? { ...u, [s.userId]: s.audioVolume } : u, {});
e.volume = n.audioVolume, a = a.map((u) => ({ ...u, volume: l[u.userId] }));
const i = {
[o.LOCAL_USER_INFO]: e,
[o.REMOTE_USER_INFO_LIST]: a
};
V.updateStore(i, c.CALL);
} catch (t) {
console.debug(t);
}
}
_handleDeviceUpdate(A) {
const { cameraList: t, microphoneList: e, speakerList: a, currentCamera: n, currentMicrophone: l, currentSpeaker: i } = A;
V.update(c.CALL, o.DEVICE_LIST, { cameraList: t, microphoneList: e, speakerList: a, currentCamera: n, currentMicrophone: l, currentSpeaker: i });
}
};
let Do = ee;
Si([
Ti({
retries: 5,
timeout: 200,
onRetrying(A) {
console.warn(`${o.PREFIX}_startRemoteView, retrying [${A}]`);
}
})
], Do.prototype, "_startRemoteView", 1);
var hi = Object.defineProperty, mi = Object.getOwnPropertyDescriptor, Q = (A, t, e, a) => {
for (var n = a > 1 ? void 0 : a ? mi(t, e) : t, l = A.length - 1, i; l >= 0; l--)
(i = A[l]) && (n = (a ? i(t, e, n) : i(n)) || n);
return a && n && hi(t, e, n), n;
};
const j = kA.getInstance(), d = yA.getInstance(), mA = PA.getInstance();
mA.setTUIStore(d);
const xa = "3.3.7", ji = "vue2.6", te = class {
constructor() {
this._tim = null, this._TUICore = null, this._timerId = -1, this._startTimeStamp = Ot(), this._bellContext = null, this._isFromChat = !1, this._currentGroupId = "", this._defaultOfflinePushInfo = {
title: "",
description: v("you have a new call")
}, this._permissionCheckTimer = null, this._chatCombine = null, this._engineEventHandler = null, this._handleCallStatusChange = async (A) => {
var t, e, a, n;
try {
const l = {
callRole: d.getData(c.CALL, o.CALL_ROLE),
callStatus: d.getData(c.CALL, o.CALL_STATUS)
};
if (this._bellContext.setBellProperties(l), A === U.CALLING)
await ((t = this == null ? void 0 : this._bellContext) == null ? void 0 : t.play());
else {
if (A === U.CONNECTED) {
const i = d.getData(c.CALL, o.IS_GROUP), u = d.getData(c.CALL, o.CALL_MEDIA_TYPE), s = d.getData(c.CALL, o.REMOTE_USER_INFO_LIST), r = i ? nA.DIALING_GROUP : nA.DIALING_C2C;
d.update(c.CALL, o.CALL_TIPS, ""), this.statusChanged && this.statusChanged({ oldStatus: r, newStatus: _e() }), !i && u === F.VIDEO && this.switchScreen(s[0].domId);
}
if (A === U.IDLE && this._isFromChat) {
const i = this._currentGroupId ? await ((e = this._chatCombine) == null ? void 0 : e.getGroupAttributes(this._tim, this._currentGroupId)) : {};
await ((a = this._chatCombine) == null ? void 0 : a.updateStoreBasedOnGroupAttributes(i, d, this));
}
await ((n = this == null ? void 0 : this._bellContext) == null ? void 0 : n.stop());
}
} catch (l) {
console.warn(`${o.PREFIX}handleCallStatusChange, ${l}.`);
}
}, console.log(`${o.PREFIX}version: ${xa}`), this._watchTUIStore(), this._engineEventHandler = Do.getInstance({ callService: this }), this._chatCombine = qA.getInstance({ callService: this });
}
static getInstance() {
return te.instance || (te.instance = new te()), te.instance;
}
async init(A) {
var t, e;
try {
if (this._tuiCallEngine)
return;
let { userID: a, tim: n, userSig: l, sdkAppID: i, SDKAppID: u, isFromChat: s, component: r = _t.TUI_CALL_KIT } = A;
this._TUICore && (i = this._TUICore.SDKAppID, n = this._TUICore.tim), this._tim = n, console.log(`${o.PREFIX}init sdkAppId: ${i || u}, userId: ${a}`), this._tuiCallEngine = wl.createInstance({
tim: n,
SDKAppID: i || u,
frameWork: ji,
language: 5,
callkitVersion: xa,
chat: s || !1,
component: r
}), mA.setEngineInstance(this._tuiCallEngine), this._addListenTuiCallEngineEvent(), this._bellContext = new si(), d.update(c.CALL, o.LOCAL_USER_INFO, { userId: a }), d.update(c.CALL, o.LOCAL_USER_INFO_EXCLUDE_VOLUMN, { userId: a }), mA.updateViewBackgroundUserId("local"), await this._tuiCallEngine.login({ userID: a, userSig: l, assetsPath: "" });
const M = d.getData(c.CALL, o.CUSTOM_UI_CONFIG);
(e = (t = this._tuiCallEngine) == null ? void 0 : t.reportLog) == null || e.call(t, {
name: "TUICallkit.init",
data: {
uiConfig: M
}
});
} catch (a) {
throw console.error(`${o.PREFIX}init failed, error: ${a}.`), a;
}
}
async destroyed() {
var A;
try {
const t = d.getData(c.CALL, o.CALL_STATUS);
if (t !== U.IDLE)
throw new Error(`please destroyed when status is idle, current status: ${t}`);
this._tuiCallEngine && (this._removeListenTuiCallEngineEvent(), await this._tuiCallEngine.destroyInstance(), this._tuiCallEngine = null), (A = this._bellContext) == null || A.destroy(), this._bellContext = null;
} catch (t) {
throw console.error(`${o.PREFIX}destroyed failed, error: ${t}.`), t;
}
}
async call(A) {
if (d.getData(c.CALL, o.CALL_STATUS) === U.IDLE)
try {
const { type: t, userID: e, offlinePushInfo: a } = A;
if (d.getData(c.CALL, o.CALL_STATUS) !== U.IDLE)
return;
await this._updateCallStoreBeforeCall(t, [{ userId: e }]), this.executeExternalBeforeCalling(), A.offlinePushInfo = { ...this._defaultOfflinePushInfo, ...a };
const n = await this._tuiCallEngine.call(A);
await this._updateCallStoreAfterCall([e], n);
} catch (t) {
this._handleCallError(t, "call");
}
}
async groupCall(A) {
if (d.getData(c.CALL, o.CALL_STATUS) === U.IDLE)
try {
const { userIDList: t, type: e, groupID: a, offlinePushInfo: n } = A;
if (d.getData(c.CALL, o.CALL_STATUS) !== U.IDLE)
return;
const l = t.map((u) => ({ userId: u }));
await this._updateCallStoreBeforeCall(e, l, a), this.executeExternalBeforeCalling(), A.offlinePushInfo = { ...this._defaultOfflinePushInfo, ...n };
const i = await this._tuiCallEngine.groupCall(A);
await this._updateCallStoreAfterCall(t, i);
} catch (t) {
this._handleCallError(t, "groupCall");
}
}
async inviteUser(A) {
if (d.getData(c.CALL, o.CALL_STATUS) !== U.IDLE)
try {
const { userIDList: t } = A;
let e = await ie(t, this.getTim());
const a = d.getData(c.CALL, o.REMOTE_USER_INFO_LIST);
d.update(c.CALL, o.REMOTE_USER_INFO_LIST, [...a, ...e]), d.update(c.CALL, o.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST, [...a, ...e]), this._tuiCallEngine && await this._tuiCallEngine.inviteUser(A);
} catch (t) {
throw console.error(`${o.PREFIX}inviteUser failed, error: ${t}.`), this._resetCallStore(), t;
}
}
async joinInGroupCall(A) {
if (d.getData(c.CALL, o.CALL_STATUS) !== U.CONNECTED)
try {
const t = {
[o.CALL_ROLE]: K.CALLEE,
[o.IS_GROUP]: !0,
[o.CALL_STATUS]: U.CONNECTED,
[o.CALL_MEDIA_TYPE]: A.type,
[o.GROUP_ID]: A.groupID,
[o.ROOM_ID]: A.roomID
};
d.updateStore(t, c.CALL);
const e = await this._tuiCallEngine.joinInGroupCall(A), a = this._getFeatureButtonDefaultState(zA.Camera) === JA.Close;
A.type === F.VIDEO && !a && await this.openCamera(o.LOCAL_VIDEO), d.update(c.CALL, o.IS_CLICKABLE, !0), this.startTimer(), Vt(this._tuiCallEngine), await this._tuiCallEngine.setVideoQuality(d.getData(c.CALL, o.VIDEO_RESOLUTION));
const n = d.getData(c.CALL, o.LOCAL_USER_INFO);
d.update(c.CALL, o.LOCAL_USER_INFO, { ...n, isEnter: !0 }), d.update(c.CALL, o.LOCAL_USER_INFO_EXCLUDE_VOLUMN, { ...n, isEnter: !0 }), FA(!0, o.AUDIO);
} catch (t) {
this._handleCallError(t, "joinInGroupCall");
}
}
getTUICallEngineInstance() {
return (this == null ? void 0 : this._tuiCallEngine) || null;
}
setLogLevel(A) {
var t;
(t = this == null ? void 0 : this._tuiCallEngine) == null || t.setLogLevel(A);
}
setLanguage(A) {
A && Object.values(lo).includes(A) && d.update(c.CALL, o.LANGUAGE, A);
}
enableFloatWindow(A) {
d.update(c.CALL, o.ENABLE_FLOAT_WINDOW, A);
}
async setSelfInfo(A) {
const { nickName: t, avatar: e } = A;
try {
await this._tuiCallEngine.setSelfInfo({ nickName: t, avatar: e });
} catch (a) {
console.error(`${o.PREFIX}setSelfInfo failed, error: ${a}.`);
}
}
async enableVirtualBackground(A) {
d.update(c.CALL, o.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND, A);
}
async enableAIVoice(A) {
try {
await this._tuiCallEngine.enableAIVoice(A), console.log(`${o.PREFIX}enableAIVoice: ${A}.`);
} catch (t) {
throw console.error(`${o.PREFIX}enableAIVoice failed, error: ${t}.`), t;
}
}
async setCallingBell(A) {
let t = !0;
if (t = await Ql(A), !t) {
console.warn(`${o.PREFIX}setCallingBell failed, filePath: ${A}.`);
return;
}
const e = { calleeBellFilePath: A };
this._bellContext.setBellProperties(e);
}
async enableMuteMode(A) {
try {
const t = { isMuteBell: A };
this._bellContext.setBellProperties(t), await this._bellContext.setBellMute(A);
} catch (t) {
console.warn(`${o.PREFIX}enableMuteMode failed, error: ${t}.`);
}
}
hideFeatureButton(A) {
mA.hideFeatureButton(A);
}
setLocalViewBackgroundImage(A) {
mA.setLocalViewBackgroundImage(A);
}
setRemoteViewBackgroundImage(A, t) {
mA.setRemoteViewBackgroundImage(A, t);
}
setLayoutMode(A) {
mA.setLayoutMode(A);
}
setCameraDefaultState(A) {
mA.setCameraDefaultState(A);
}
async accept() {
var t, e, a, n, l, i;
const A = d.getData(c.CALL, o.CALL_STATUS);
if ((e = (t = this._tuiCallEngine) == null ? void 0 : t.reportLog) == null || e.call(t, {
name: "TUICallKit.accept.start",
data: { callStatus: A }
}), A !== U.CONNECTED)
try {
d.update(c.CALL, o.CALL_STATUS, U.CONNECTED), Vt(this._tuiCallEngine);
const u = await this._tuiCallEngine.accept();
if (u) {
(n = this._chatCombine) == null || n.callTUIService({ message: (a = u == null ? void 0 : u.data) == null ? void 0 : a.message }), d.update(c.CALL, o.IS_CLICKABLE, !0), this.startTimer();
const s = d.getData(c.CALL, o.CALL_MEDIA_TYPE), r = this._getFeatureButtonDefaultState(zA.Camera) === JA.Close;
s === F.VIDEO && !r && await this.openCamera(o.LOCAL_VIDEO), await this._tuiCallEngine.setVideoQuality(d.getData(c.CALL, o.VIDEO_RESOLUTION));
const M = d.getData(c.CALL, o.LOCAL_USER_INFO);
d.update(c.CALL, o.LOCAL_USER_INFO, { ...M, isEnter: !0 }), d.update(c.CALL, o.LOCAL_USER_INFO_EXCLUDE_VOLUMN, { ...M, isEnter: !0 }), FA(!0, o.AUDIO);
}
} catch (u) {
if ((i = (l = this._tuiCallEngine) == null ? void 0 : l.reportLog) == null || i.call(l, {
name: "TUICallKit.accept.fail",
level: "error",
error: u
}), Ua(u))
return;
bt(u, F.AUDIO, this._tuiCallEngine), this._resetCallStore();
}
}
async hangup() {
if (d.getData(c.CALL, o.CALL_STATUS) !== U.IDLE) {
try {
const A = await this._tuiCallEngine.hangup();
A == null || A.forEach((t) => {
var e, a;
(t == null ? void 0 : t.code) === 0 && ((a = this._chatCombine) == null || a.callTUIService({ message: (e = t == null ? void 0 : t.data) == null ? void 0 : e.message }));
});
} catch (A) {
console.debug(A);
}
this._resetCallStore();
}
}
async reject() {
var A, t;
if (d.getData(c.CALL, o.CALL_STATUS) !== U.IDLE) {
try {
const e = await this._tuiCallEngine.reject();
(e == null ? void 0 : e.code) === 0 && ((t = this._chatCombine) == null || t.callTUIService({ message: (A = e == null ? void 0 : e.data) == null ? void 0 : A.message }));
} catch (e) {
console.debug(e);
}
this._resetCallStore();
}
}
async openCamera(A) {
try {
await this._tuiCallEngine.openCamera(A), FA(!0, o.VIDEO);
} catch (t) {
bt(t, F.VIDEO, this._tuiCallEngine), console.error(`${o.PREFIX}openCamera error: ${t}.`);
}
}
async closeCamera() {
try {
await this._tuiCallEngine.closeCamera(), FA(!1, o.VIDEO);
} catch (A) {
console.error(`${o.PREFIX}closeCamera error: ${A}.`);
}
}
async openMicrophone() {
try {
await this._tuiCallEngine.openMicrophone(), FA(!0, o.AUDIO);
} catch (A) {
console.error(`${o.PREFIX}openMicrophone failed, error: ${A}.`);
}
}
async closeMicrophone() {
try {
await this._tuiCallEngine.closeMicrophone(), FA(!1, o.AUDIO);
} catch (A) {
console.error(`${o.PREFIX}closeMicrophone failed, error: ${A}.`);
}
}
unMuteSpeaker() {
var A, t;
try {
const e = (t = (A = this._tuiCallEngine) == null ? void 0 : A.getTRTCCloudInstance) == null ? void 0 : t.call(A);
e && (e.muteAllRemoteAudio(!1), d.update(c.CALL, o.IS_MUTE_SPEAKER, !1));
} catch (e) {
console.error(`${o.PREFIX}unMuteSpeaker failed, error: ${e}.`);
}
}
muteSpeaker() {
var A, t;
try {
const e = (t = (A = this._tuiCallEngine) == null ? void 0 : A.getTRTCCloudInstance) == null ? void 0 : t.call(A);
e && (e.muteAllRemoteAudio(!0), d.update(c.CALL, o.IS_MUTE_SPEAKER, !0));
} catch (e) {
console.error(`${o.PREFIX}muteSpeaker failed, error: ${e}.`);
}
}
switchScreen(A) {
!A || d.update(c.CALL, o.BIG_SCREEN_USER_ID, A);
}
async switchCallMediaType() {
var A, t;
try {
const e = d.getData(c.CALL, o.CALL_MEDIA_TYPE);
if (e === F.AUDIO) {
console.warn(`${o.PREFIX}switchCallMediaType failed, ${e} not support.`);
return;
}
const a = await this._tuiCallEngine.switchCallMediaType(F.AUDIO);
(a == null ? void 0 : a.code) === 0 && ((t = this._chatCombine) == null || t.callTUIService({ message: (A = a == null ? void 0 : a.data) == null ? void 0 : A.message })), d.update(c.CALL, o.CALL_MEDIA_TYPE, F.AUDIO);
const l = d.getData(c.CALL, o.IS_GROUP) ? nA.CALLING_GROUP_VIDEO : nA.CALLING_C2C_VIDEO, i = _e();
this.statusChanged && this.statusChanged({ oldStatus: l, newStatus: i });
} catch (e) {
console.error(`${o.PREFIX}switchCallMediaType failed, error: ${e}.`);
}
}
async switchCamera() {
const t = d.getData(c.CALL, o.CAMERA_POSITION) === le.BACK ? le.FRONT : le.BACK;
try {
await this._tuiCallEngine.switchCamera(t), d.update(c.CALL, o.CAMERA_POSITION, t);
} catch (e) {
console.error(`${o.PREFIX}_switchCamera failed, error: ${e}.`);
}
}
async setBlurBackground(A) {
try {
await this._tuiCallEngine.setBlurBackground(A ? Wl : 0), d.update(c.CALL, o.ENABLE_VIRTUAL_BACKGROUND, A);
} catch (t) {
console.error(`${o.PREFIX}_setBlurBackground failed, error: ${t}.`);
}
}
async switchDevice(A) {
try {
await this._tuiCallEngine.switchDevice(A);
} catch (t) {
console.error(`${o.PREFIX}_switchDevice failed, error: ${t}.`);
}
}
async getDeviceList(A) {
try {
return await this._tuiCallEngine.getDeviceList(A);
} catch (t) {
this._handleCallError(t, "call");
}
}
_addListenTuiCallEngineEvent() {
this._engineEventHandler.addListenTuiCallEngineEvent();
}
_removeListenTuiCallEngineEvent() {
this._engineEventHandler.removeListenTuiCallEngineEvent();
}
setCallback(A) {
const { beforeCalling: t, afterCalling: e, onMinimized: a, onMessageSentByMe: n, kickedOut: l, statusChanged: i } = A;
t && (this.beforeCalling = t), e && (this.afterCalling = e), a && (this.onMinimized = a), n && (this.onMessageSentByMe = n), l && (this.kickedOut = l), i && (this.statusChanged = i);
}
toggleMinimize() {
const A = d.getData(c.CALL, o.IS_MINIMIZED);
d.update(c.CALL, o.IS_MINIMIZED, !A), console.log(`${o.PREFIX}toggleMinimize: ${A} -> ${!A}.`), this.onMinimized && this.onMinimized(A, !A);
}
executeExternalBeforeCalling() {
this.beforeCalling && this.beforeCalling();
}
executeExternalAfterCalling() {
this.afterCalling && this.afterCalling();
}
setVideoDisplayMode(A) {
d.update(c.CALL, o.DISPLAY_MODE, A);
}
async setVideoResolution(A) {
var t;
try {
if (!A)
return;
d.update(c.CALL, o.VIDEO_RESOLUTION, A), await ((t = this._tuiCallEngine) == null ? void 0 : t.setVideoQuality(A));
} catch (e) {
console.warn(`${o.PREFIX}setVideoResolution failed, error: ${e}.`);
}
}
startTimer() {
this._timerId === -1 && (this._startTimeStamp = Ot(), this._timerId = nt.run(o.TIMEOUT, this._updateCallDuration.bind(this), { delay: 1e3 }));
}
_handleCallError(A, t) {
if (this._permissionCheckTimer && clearInterval(this._permissionCheckTimer), !Ua(A))
throw bt(A, F.AUDIO, this._tuiCallEngine), console.error(`${o.PREFIX}${t} failed, error: ${A}.`), this._resetCallStore(), A;
}
async _updateCallStoreBeforeCall(A, t, e) {
const a = e || d.getData(c.CALL, o.IS_MINIMIZED) ? sA.CALLER_GROUP_CALLING_MSG : sA.CALLER_CALLING_MSG;
let n = {
[o.CALL_MEDIA_TYPE]: A,
[o.CALL_ROLE]: K.CALLER,
[o.REMOTE_USER_INFO_LIST]: t,
[o.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]: t,
[o.IS_GROUP]: !!e,
[o.CALL_TIPS]: v(a),
[o.GROUP_ID]: e
};
d.updateStore({ ...n, [o.CALL_STATUS]: U.CALLING }, c.CALL), this.statusChanged && this.statusChanged({
oldStatus: nA.IDLE,
newStatus: e ? nA.DIALING_GROUP : nA.DIALING_C2C
}), Vt(this._tuiCallEngine);
const l = await ie(t.map((i) => i.userId), this.getTim());
l.length > 0 && (d.update(c.CALL, o.REMOTE_USER_INFO_LIST, l), d.update(c.CALL, o.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST, l));
}
async _updateCallStoreAfterCall(A, t) {
var e, a;
if (t) {
d.update(c.CALL, o.IS_CLICKABLE, !0), po(t == null ? void 0 : t.roomID, t == null ? void 0 : t.strRoomID);
const n = d.getData(c.CALL, o.CALL_MEDIA_TYPE);
if (t.code === 0) {
(a = this._chatCombine) == null || a.callTUIService({ message: (e = t == null ? void 0 : t.data) == null ? void 0 : e.message });
try {
await this._tuiCallEngine.setVideoQuality(d.getData(c.CALL, o.VIDEO_RESOLUTION));
} catch (u) {
console.warn(`${o.PREFIX}setVideoQuality failed, error: ${u}.`);
}
} else {
this._resetCallStore();
return;
}
const l = this._getFeatureButtonDefaultState(zA.Camera) === JA.Close;
n === F.VIDEO && !l && await this.openCamera(o.LOCAL_VIDEO);
const i = d.getData(c.CALL, o.LOCAL_USER_INFO);
d.update(c.CALL, o.LOCAL_USER_INFO, { ...i, isEnter: !0 }), d.update(c.CALL, o.LOCAL_USER_INFO_EXCLUDE_VOLUMN, { ...i, isEnter: !0 }), FA(!0, o.AUDIO);
} else
this._permissionCheckTimer && clearInterval(this._permissionCheckTimer), this._permissionCheckTimer = null, this._resetCallStore();
}
_getFeatureButtonDefaultState(A) {
var e;
const { button: t } = d.getData(c.CALL, o.CUSTOM_UI_CONFIG);
return (e = t == null ? void 0 : t[A]) == null ? void 0 : e.state;
}
_updateCallDuration() {
const A = Math.round((Ot() - this._startTimeStamp) / 1e3), t = No(A);
d.update(c.CALL, o.CALL_DURATION, t);
}
_stopTimer() {
this._timerId !== -1 && (nt.clearTask(this._timerId), this._timerId = -1);
}
_resetCallStore() {
const A = _e();
this._stopTimer();
let t = Object.keys(Ke).filter((n) => {
switch (Ke[n]) {
case o.CALL_STATUS:
case o.LANGUAGE:
case o.IS_GROUP:
case o.DISPLAY_MODE:
case o.VIDEO_RESOLUTION:
case o.ENABLE_FLOAT_WINDOW:
case o.LOCAL_USER_INFO:
case o.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND:
case o.LOCAL_USER_INFO_EXCLUDE_VOLUMN:
return !1;
default:
return !0;
}
});
t = t.map((n) => Ke[n]), d.reset(c.CALL, t), d.getData(c.CALL, o.CALL_STATUS) !== U.IDLE && d.reset(c.CALL, [o.CALL_STATUS], !0), d.reset(c.CALL, [o.IS_MINIMIZED], !0), d.reset(c.CALL, [o.IS_EAR_PHONE], !0), d.reset(c.CALL, [o.ENABLE_VIRTUAL_BACKGROUND], !0), d.reset(c.CALL, [o.IS_MUTE_SPEAKER], !0), d.update(c.CALL, o.LOCAL_USER_INFO, {
...d.getData(c.CALL, o.LOCAL_USER_INFO),
isVideoAvailable: !1,
isAudioAvailable: !1
}), d.update(c.CALL, o.LOCAL_USER_INFO_EXCLUDE_VOLUMN, {
...d.getData(c.CALL, o.LOCAL_USER_INFO_EXCLUDE_VOLUMN),
isVideoAvailable: !1,
isAudioAvailable: !1
}), d.update(c.CALL, o.REMOTE_USER_INFO_LIST, []), d.update(c.CALL, o.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST, []);
const a = _e();
A !== a && this.statusChanged && this.statusChanged({ oldStatus: A, newStatus: a });
}
async getGroupMemberList(A, t) {
const e = d.getData(c.CALL, o.GROUP_ID);
return await di(e, this.getTim(), A, t);
}
async getGroupProfile() {
const A = d.getData(c.CALL, o.GROUP_ID);
return await Ii(A, this.getTim());
}
_watchTUIStore() {
d == null || d.watch(c.CALL, {
[o.CALL_STATUS]: this._handleCallStatusChange
});
}
_unwatchTUIStore() {
d == null || d.unwatch(c.CALL, {
[o.CALL_STATUS]: this._handleCallStatusChange
});
}
bindTUICore(A) {
this._TUICore = A;
}
getTim() {
var A, t;
return this._tim ? this._tim : this._tuiCallEngine ? ((A = this._tuiCallEngine) == null ? void 0 : A.tim) || ((t = this._tuiCallEngine) == null ? void 0 : t.getTim()) : (console.warn(`${o.PREFIX}getTim warning: _tuiCallEngine Instance is not available.`), null);
}
setIsFromChat(A) {
this._isFromChat = A;
}
setCurrentGroupId(A) {
this._currentGroupId = A;
}
getCurrentGroupId() {
return this._currentGroupId;
}
setDefaultOfflinePushInfo(A) {
this._defaultOfflinePushInfo = A;
}
getDefaultOfflinePushInfo() {
return this._defaultOfflinePushInfo;
}
async getCallMessage(A) {
return await this._chatCombine.getCallKitMessage(A, this.getTim());
}
};
let G = te;
Q([
$(),
cA(rA.init)
], G.prototype, "init", 1);
Q([
$(),
cA(rA.call),
ht({ engineInstance: !0 })
], G.prototype, "call", 1);
Q([
$(),
cA(rA.groupCall),
ht({ engineInstance: !0 })
], G.prototype, "groupCall", 1);
Q([
$(),
cA(rA.inviteUser),
ht({ engineInstance: !0 })
], G.prototype, "inviteUser", 1);
Q([
$(),
cA(rA.joinInGroupCall),
ht({ engineInstance: !0 })
], G.prototype, "joinInGroupCall", 1);
Q([
cA(rA.setLanguage)
], G.prototype, "setLanguage", 1);
Q([
cA(rA.enableFloatWindow)
], G.prototype, "enableFloatWindow", 1);
Q([
cA(rA.setSelfInfo)
], G.prototype, "setSelfInfo", 1);
Q([
cA(rA.enableAIVoice)
], G.prototype, "enableAIVoice", 1);
Q([
cA(rA.setCallingBell)
], G.prototype, "setCallingBell", 1);
Q([
cA(rA.enableMuteMode)
], G.prototype, "enableMuteMode", 1);
Q([
$()
], G.prototype, "accept", 1);
Q([
$()
], G.prototype, "hangup", 1);
Q([
$()
], G.prototype, "reject", 1);
Q([
$()
], G.prototype, "openCamera", 1);
Q([
$()
], G.prototype, "closeCamera", 1);
Q([
$()
], G.prototype, "openMicrophone", 1);
Q([
$()
], G.prototype, "closeMicrophone", 1);
Q([
$()
], G.prototype, "unMuteSpeaker", 1);
Q([
$()
], G.prototype, "muteSpeaker", 1);
Q([
$()
], G.prototype, "switchScreen", 1);
Q([
$()
], G.prototype, "switchCallMediaType", 1);
Q([
$()
], G.prototype, "switchCamera", 1);
Q([
$()
], G.prototype, "setBlurBackground", 1);
Q([
$()
], G.prototype, "switchDevice", 1);
Q([
cA(rA.setVideoDisplayMode)
], G.prototype, "setVideoDisplayMode", 1);
Q([
cA(rA.setVideoResolution)
], G.prototype, "setVideoResolution", 1);
const O = G.getInstance(), Ft = Xt.version, To = "CallInfoContextKey", Co = "CallerUserInfoContextKey", yo = "UserInfoExcludeVolumeContextKey", So = "FocusContextKey", Eo = "ButtonPanelContextKey", ho = "FloatWindowContextKey", mo = "IsClickableContextKey", jo = "PopoverContextKey", vo = "CustomUIConfigContextKey";
function vi() {
return NA(Co);
}
function q() {
return NA(To);
}
function mt(A) {
const t = I([]), e = I(""), a = (l) => {
var i, u, s;
switch (A) {
case oA.CAMERA:
t.value = (l == null ? void 0 : l.cameraList) || [], e.value = ((i = l == null ? void 0 : l.currentCamera) == null ? void 0 : i.deviceId) || "";
break;
case oA.MICROPHONE:
t.value = (l == null ? void 0 : l.microphoneList) || [], e.value = ((u = l == null ? void 0 : l.currentMicrophone) == null ? void 0 : u.deviceId) || "";
break;
case oA.SPEAKER:
t.value = (l == null ? void 0 : l.speakerList) || [], e.value = ((s = l == null ? void 0 : l.currentSpeaker) == null ? void 0 : s.deviceId) || "";
break;
}
}, n = (l) => {
e.value = l;
};
return aA(() => {
d.watch(
c.CALL,
{
[o.DEVICE_LIST]: a
},
{
notifyRangeWhenWatch: o.MYSELF
}
);
}), tA(() => {
d.unwatch(c.CALL, {
[o.DEVICE_LIST]: a
});
}), [{ deviceList: t, currentDeviceId: e }, { updateCurrentDeviceId: n }];
}
const Va = (A) => typeof A == "object" && A !== null, fo = (A, t) => {
if (!Va(A) || !Va(t))
return A === t;
if (A === t)
return !0;
const e = Object.keys(A), a = Object.keys(t);
if (e.length !== a.length)
return !1;
for (let n in A)
if (!fo(A[n], t[n]))
return !1;
return !0;
};
function fi(A) {
const t = document.getElementById(A);
!document.fullscreenElement && t ? t.requestFullscreen().catch((e) => {
console.error(`Error attempting to enable fullscreen mode: ${e.message} (${e.name})`);
}) : document.exitFullscreen();
}
function jt(A) {
if (typeof A != "object" || A === null)
return A;
let t = Array.isArray(A) ? [] : {};
for (let e in A)
A.hasOwnProperty(e) && (t[e] = jt(A[e]));
return t;
}
const Li = 500;
function Jt(A, t) {
if (typeof A != "function" || t != null && typeof t != "function")
throw new TypeError("Expected a function");
const e = function(...a) {
const n = t ? t.apply(this, a) : a[0], l = e.cache;
if (l.has(n))
return l.get(n);
const i = A.apply(this, a);
return e.cache = l.set(n, i) || l, i;
};
return e.cache = new (Jt.Cache || Map)(), e;
}
Jt.Cache = Map;
function Ui(A) {
const t = Jt(A, (e) => {
const { cache: a } = t;
return a.size === Li && a.clear(), e;
});
return t;
}
const zi = ".".charCodeAt(0), wi = /\\(\\)?/g, Oi = RegExp(
`[^.[\\]]+|\\[(?:([^"'][^[]*)|(["'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))`,
"g"
), Lo = Ui((A) => {
const t = [];
return A.charCodeAt(0) === zi && t.push(""), A.replace(Oi, (e, a, n, l) => {
let i = e;
n ? i = l.replace(wi, "$1") : a && (i = a.trim()), t.push(i);
}), t;
});
function RA(A, t, e) {
if (typeof A != "object" || !t)
return;
const a = Lo(t);
let n = A;
for (let l = 0; l < a.length; l++) {
if (n == null)
return;
const i = a[l];
l !== a.length - 1 ? n = n == null ? void 0 : n[i] : Object.assign(n, { [i]: e });
}
}
function $A(A, t, e) {
if (typeof A != "object")
return;
const a = Lo(t);
let n = A;
for (let l = 0; l < a.length; l++) {
if (n == null)
return;
const i = a[l];
l !== a.length - 1 ? n = n == null ? void 0 : n[i] : Array.isArray(n) && n.splice(i, 0, e);
}
}
function xi(A) {
return A == null || typeof A == "string" && A.trim().length === 0 ? !0 : Array.isArray(A) || typeof A == "object" ? Object.keys(A).length === 0 : !1;
}
function Gt(A, t, e, a, n) {
Object.keys(A).forEach((l) => {
const i = A[l], u = xi(e) ? l : `${e}.${l}`;
if (typeof i == "object")
if (Array.isArray(i))
for (let s = 0; s < i.length; s++) {
const r = `${u}.${s}`;
Gt(i[s], t, r, a, n);
}
else
Gt(i, t, u, a, n);
else if (t(i)) {
const s = typeof n == "function" ? n({ key: i, value: u }) : u;
a.push(s);
}
});
}
function Uo() {
const A = I(), t = I(d.getData(c.CALL, o.REMOTE_USER_INFO_LIST)), e = (l) => {
(j.isWeChat ? l.enableMic : l.isAudioAvailable) && (A.value = { ...A.value, localVideo: l.volume });
}, a = (l) => {
const i = {};
(l.length !== t.value.length || !fo(l, t.value)) && (t.value = l, t.value.forEach((u) => {
if (j.isWeChat ? u.hasAudio : u.isAudioAvailable) {
const r = j.isWeChat ? u.userID : u.domId;
i[r] = u.volume;
}
}), A.value = { ...A.value, ...i });
};
let n = {
[o.LOCAL_USER_INFO]: e,
[o.REMOTE_USER_INFO_LIST]: a
};
return j.isUniPlatform && (n = {
[o.PUSHER]: e,
[o.PLAYER]: a
}), aA(() => {
d.watch(
c.CALL,
n,
{
notifyRangeWhenWatch: o.MYSELF
}
);
}), tA(() => {
d.unwatch(c.CALL, n);
}), A;
}
function Vi() {
const A = I(""), t = I(!0), e = I(0), a = (l) => {
e.value = 0, A.value = l;
}, n = (l) => {
let i = l;
typeof i == "object" && (i = l == null ? void 0 : l.text), i && (e.value = 2e3, A.value = i);
};
return aA(() => {
d.watch(
c.CALL,
{
[o.CALL_TIPS]: a
},
{
notifyRangeWhenWatch: o.MYSELF
}
), d.watch(
c.CALL,
{
[o.TOAST_INFO]: n
}
);
}), tA(() => {
d.unwatch(
c.CALL,
{
[o.CALL_TIPS]: a,
[o.TOAST_INFO]: n
}
);
}), { tip: A, show: t, duration: e };
}
function bi() {
const A = I(d.getData(c.CALL, o.NETWORK_STATUS)), t = (e) => {
A.value = e;
};
return aA(() => {
d.watch(
c.CALL,
{
[o.NETWORK_STATUS]: t
},
{
notifyRangeWhenWatch: o.MYSELF
}
);
}), tA(() => {
d.unwatch(c.CALL, {
[o.NETWORK_STATUS]: t
});
}), { netWorkQualityList: A };
}
function zo() {
const A = I(d.getData(c.CALL, o.PLAYER)), t = (a) => {
A.value = a == null ? void 0 : a.map((n) => {
const { userID: l, hasVideo: i, hasAudio: u } = n;
return { userID: l, hasVideo: i, hasAudio: u };
});
}, e = {
[o.PLAYER]: t
};
return aA(() => {
d.watch(
c.CALL,
e,
{ notifyRangeWhenWatch: o.MYSELF }
);
}), tA(() => {
d.unwatch(c.CALL, e);
}), A;
}
function MA() {
return NA(yo);
}
function Ht() {
const A = I(d.getData(c.CALL, o.CALL_DURATION)), t = (e) => {
A.value = e;
};
return aA(() => {
d.watch(
c.CALL,
{
[o.CALL_DURATION]: t
},
{
notifyRangeWhenWatch: o.MYSELF
}
);
}), tA(() => {
d.unwatch(
c.CALL,
{
[o.CALL_DURATION]: t
}
);
}), { callDuration: A };
}
function We() {
return NA(Eo, { status: I("open") });
}
function wo() {
return NA(So, I("open"));
}
function CA() {
return NA(ho);
}
function Bi() {
return NA(mo);
}
function vt() {
return NA(jo);
}
const Fi = (A, t) => {
const e = [{
i: 0,
x: 0,
y: 0,
w: t,
h: t
}];
for (let a = 1; a < A; a++) {
const n = e[a - 1].x + t === 12;
e[a] = {
i: a,
x: e[a - 1].x + t === 12 ? 0 : e[a - 1].x + t,
y: e[a - 1].y + (n ? t : 0),
w: t,
h: t
};
}
return A === 3 && (e[A - 1].x += 3), A > 3 && j.isPC && A % 3 === 2 && (e[A - 1].x += 2, e[A - 2].x += 2), e;
};
function Ri(A, t) {
const { isFloatWindow: e } = z(CA()), a = I();
return J([A, t, e], () => {
if (e.value) {
const r = [];
for (let M = 0; M < t.value; M++)
r[M] = {
i: M,
x: 0,
y: 0,
w: 12,
h: 12
};
a.value = r;
return;
}
const n = Object.keys(Array.from({ length: t.value })), l = t.value <= 4 ? 6 : 4, i = Fi(t.value, l);
a.value = i;
let u, s;
if (A.value !== null) {
if (n.length < 5) {
const r = n.concat();
r.splice(A.value, 1), r.unshift(A.value);
} else
s = A.value % 3, u = Math.floor(A.value / 3);
if (n.length < 5) {
const r = i.findIndex((M) => M.i === A.value);
if (r !== -1) {
const M = i[0];
i[0] = i[r], i[r] = M;
for (let D = 0; D < i.length; D++) {
const g = i[D];
D === 0 ? (g.w += 6, g.h += 6, g.x = 0, g.y = 0) : (g.x = (D - 1) * 4, g.y = 12, g.w = 4, g.h = 4);
}
}
} else {
let r;
s === 0 ? (i[A.value + 1] && (i[A.value + 1].x += 4), i[A.value + 2] && (i[A.value + 2].y += 4), r = {
i: A.value,
x: 0,
y: u * 4,
w: 8,
h: 8
}) : s === 2 ? (r = {
i: A.value,
x: 4,
y: u * 4,
w: 8,
h: 8
}, i[A.value - 1].x = 0, i[A.value - 1].y += 4) : s === 1 && (r = {
i: A.value,
x: 4,
y: u * 4,
w: 8,
h: 8
}, i[A.value + 1] && (i[A.value + 1].x = 0, i[A.value + 1].y += 4));
const M = 3 - s;
for (let D = A.value + M; D < i.length; D++) {
const g = i[D];
g.y += 4;
}
i[A.value] = r;
}
a.value = i;
}
}, {
immediate: !0
}), a;
}
function Ge() {
return NA(vo);
}
const ki = {
calling: [[
{ name: "switchCamera", customStyle: { justifyContent: "flex-start" }, props: {} },
{ name: "virtualBackground" },
{ name: "camera", customStyle: { justifyContent: "flex-end" }, props: {} }
], [
{},
{ name: "hangup", customStyle: { paddingTop: "6vh" } },
{}
]],
accept: [[
{ name: "switchCamera", customStyle: { justifyContent: "flex-start" }, props: {} },
{ name: "virtualBackground" },
{ name: "camera", customStyle: { justifyContent: "flex-end" }, props: {} }
], [
{ name: "reject", customStyle: { paddingTop: "6vh", justifyContent: "center" } },
{},
{ name: "accept", customStyle: { paddingTop: "6vh", justifyContent: "center" } }
]],
connected: [[
{ name: "microphone", customStyle: { justifyContent: "flex-start" }, props: {} },
{ name: "speaker" },
{ name: "camera", customStyle: { justifyContent: "flex-end" }, props: {} }
], [
{ name: "virtualBackground", customStyle: { justifyContent: "center", paddingTop: "6vh" }, props: {} },
{ name: "hangup", customStyle: { paddingTop: "6vh" } },
{ name: "switchCamera", customStyle: { justifyContent: "center", paddingTop: "6vh" }, props: {} }
]]
}, Pi = {
singleCall: {
video: {
calling: [
[],
[
{},
{ name: "hangup" },
{}
]
],
accept: [
[],
[
{ name: "reject", customStyle: { justifyContent: "flex-end" } },
{},
{ name: "accept", customStyle: { justifyContent: "flex-start" } }
]
],
connected: [
[
{ name: "microphone", customStyle: { justifyContent: "flex-start" }, props: {} },
{ name: "speaker" },
{ name: "camera", customStyle: { justifyContent: "flex-end" }, props: {} }
],
[
{},
{ name: "hangup", customStyle: { paddingTop: "6vh" } },
{ name: "switchCamera", customStyle: { justifyContent: "center", paddingTop: "6vh" }, props: {} }
]
]
},
audio: {
calling: [
[],
[
{},
{ name: "hangup" },
{}
]
],
accept: [
[],
[
{ name: "reject", customStyle: { justifyContent: "flex-end" } },
{},
{ name: "accept", customStyle: { justifyContent: "flex-start" } }
]
],
connected: [
[],
[
{ name: "microphone", customStyle: { justifyContent: "flex-start" }, props: {} },
{ name: "hangup" },
{ name: "speaker", customStyle: { justifyContent: "flex-end" } }
]
]
}
},
groupCall: {
video: {
calling: [[
{ name: "microphone", customStyle: { justifyContent: "flex-start" }, props: {} },
{ name: "speaker" },
{ name: "camera", customStyle: { justifyContent: "flex-end" }, props: {} }
], [
{},
{ name: "hangup", customStyle: { paddingTop: "6vh" } },
{}
]],
accept: [
[],
[
{ name: "reject" },
{ name: "accept" }
]
],
connected: [
[
{ name: "microphone", customStyle: { justifyContent: "flex-start" }, props: {} },
{ name: "speaker" },
{ name: "camera", customStyle: { justifyContent: "flex-end" }, props: {} }
],
[
{},
{ name: "hangup", customStyle: { paddingTop: "6vh" } },
{}
]
],
close_calling: [
[
{ name: "microphone", props: {} },
{ name: "speaker" },
{ name: "camera", props: {} },
{ name: "hangup" }
]
],
close_connected: [
[
{ name: "microphone", props: {} },
{ name: "speaker" },
{ name: "camera", props: {} },
{ name: "hangup" }
]
]
},
audio: {
calling: [[
{ name: "microphone", customStyle: { justifyContent: "flex-start" }, props: {} },
{ name: "speaker" },
{ name: "camera", customStyle: { justifyContent: "flex-end" }, props: {} }
], [
{},
{ name: "hangup", customStyle: { paddingTop: "6vh" } },
{}
]],
accept: [
[],
[
{ name: "reject" },
{ name: "accept" }
]
],
connected: [
[
{ name: "microphone", customStyle: { justifyContent: "flex-start" }, props: {} },
{ name: "speaker" },
{ name: "camera", customStyle: { justifyContent: "flex-end" }, props: {} }
],
[
{},
{ name: "hangup", customStyle: { paddingTop: "6vh" } },
{}
]
],
close_calling: [
[
{ name: "microphone", props: {} },
{ name: "speaker" },
{ name: "camera", props: {} },
{ name: "hangup" }
]
],
close_connected: [
[
{ name: "microphone", props: {} },
{ name: "speaker" },
{ name: "camera", props: {} },
{ name: "hangup" }
]
]
}
}
}, Wi = {
singleCall: {
video: {
calling: [
[
{ name: "camera", props: {} },
{ name: "microphone", props: {} },
{ name: "hangup" }
]
],
accept: [
[
{ name: "camera", props: {} },
{ name: "reject" },
{ name: "accept" }
]
],
connected: [
[
{ name: "camera", props: {} },
{ name: "microphone", props: {} },
{ name: "speaker" },
{ name: "hangup" }
]
]
},
audio: {
calling: [
[
{ name: "microphone", props: {} },
{ name: "hangup" }
]
],
accept: [
[
{ name: "reject" },
{ name: "accept" }
]
],
connected: [
[
{ name: "microphone", props: {} },
{ name: "speaker" },
{ name: "hangup" }
]
]
}
},
groupCall: {
video: {
calling: [[
{ name: "camera", props: {} },
{ name: "microphone", props: {} },
{ name: "inviteUser", props: {} },
{ name: "hangup" }
]],
accept: [
[
{ name: "reject" },
{ name: "accept" }
]
],
connected: [
[
{ name: "camera", props: {} },
{ name: "microphone", props: {} },
{ name: "speaker" },
{ name: "inviteUser", props: {} },
{ name: "hangup" }
]
]
},
audio: {
calling: [
[
{ name: "microphone", props: {} },
{ name: "hangup" }
]
],
accept: [
[
{ name: "reject" },
{ name: "accept" }
]
],
connected: [
[
{ name: "microphone", props: {} },
{ name: "speaker" },
{ name: "inviteUser", props: {} },
{ name: "hangup" }
]
]
}
}
}, ba = {
pc: Wi,
mobile: Pi
};
function Oo(A) {
const t = jt(A);
return RA(t, "mobile.singleCall.video", ki), $A(t, "pc.singleCall.video.calling[0][2]", { name: "virtualBackground", props: {} }), $A(t, "pc.singleCall.video.accept[0][1]", { name: "virtualBackground", props: {} }), $A(t, "pc.singleCall.video.connected[0][3]", { name: "virtualBackground", props: {} }), $A(t, "pc.groupCall.video.calling[0][3]", { name: "virtualBackground", props: {} }), $A(t, "pc.groupCall.video.connected[0][4]", { name: "virtualBackground", props: {} }), t;
}
function Gi(A, t, e) {
let a = jt(A);
return t ? (RA(a, "mobile.singleCall.video.connected[1][2].props.show", !0), e && Oo(a)) : (RA(a, "mobile.singleCall.video.connected[1][2].props.show", !1), e && (RA(a, "mobile.singleCall.video.connected[1][0].props.show", !1), RA(a, "pc.singleCall.video.connected[0][3].props.show", !1), RA(a, "pc.groupCall.video.connected[0][4].props.show", !1))), a;
}
function Qi() {
const { isShowEnableVirtualBackground: A, callStatus: t } = z(q()), e = Ge(), { localUserInfoExcludeVolume: a } = z(MA()), n = p(() => (a == null ? void 0 : a.value.isVideoAvailable) || !1), l = p(() => A.value && !j.isH5), i = I([]);
return J([e, A, n], () => {
let u = jt(ba);
l.value && (u = Oo(ba)), t.value === U.CONNECTED && (u = Gi(u, n.value, l.value));
const { button: s } = e.value, r = [];
function M(g) {
return Object.keys(s).includes(g);
}
function D({ key: g, value: N }) {
var w;
const y = N.split(".");
let T = y.slice(0, y.length - 1);
const C = y.slice(0, y.length - 2);
if (C[C.length - 1] === "0")
for (let L = 0; L < 3; L++) {
let m = C.slice();
m.push(L), m.push("customStyle"), m.push("justifyContent"), m = m.join("."), r.push({ path: m, value: "center" });
}
return T.push("props"), T.push("show"), T = T.join("."), {
path: T,
value: (w = s == null ? void 0 : s[g]) == null ? void 0 : w.show
};
}
Gt(u, M, "", r, D), r == null || r.forEach((g) => {
RA(u, g.path, g.value);
}), i.value = u;
}, {
immediate: !0
}), i;
}
function xo() {
const A = Ge(), t = I(A.value.viewBackground);
return J(A, () => {
t.value = A.value.viewBackground;
}), t;
}
function Zi() {
const A = I(d.getData(c.CALL, o.ROOM_ID)), t = I(d.getData(c.CALL, o.ROOM_ID_TYPE)), e = I(d.getData(c.CALL, o.GROUP_ID)), a = I(d.getData(c.CALL, o.CALL_MEDIA_TYPE)), n = I(d.getData(c.CALL, o.GROUP_CALL_MEMBERS)), l = I(d.getData(c.CALL, o.CALL_STATUS)), i = (N) => {
A.value = N;
}, u = (N) => {
e.value = N;
}, s = (N) => {
a.value = N;
}, r = (N) => {
n.value = N;
}, M = (N) => {
l.value = N;
}, D = (N) => {
t.value = N;
}, g = {
[o.ROOM_ID]: i,
[o.GROUP_ID]: u,
[o.CALL_MEDIA_TYPE]: s,
[o.GROUP_CALL_MEMBERS]: r,
[o.CALL_STATUS]: M,
[o.ROOM_ID_TYPE]: D
};
return aA(() => {
d.watch(
c.CALL,
g,
{
notifyRangeWhenWatch: o.MYSELF
}
);
}), tA(() => {
d.unwatch(c.CALL, g);
}), {
roomId: A,
roomIdType: t,
groupId: e,
callMediaType: a,
groupCallMembers: n,
callStatus: l
};
}
const Yi = {
customStyle: {
type: Object
},
customClass: {
type: String
}
}, Xi = ["start", "center", "end", "space-around", "space-between", "space-evenly"], _i = ["top", "middle", "bottom"], qi = {
gutter: {
type: Number,
default: 0
},
justify: {
type: String,
values: Xi,
default: "start"
},
align: {
type: String,
values: _i,
default: "top"
},
customStyle: {
type: Object,
default: () => {
}
}
};
function X(...A) {
const t = [], e = {}.hasOwnProperty;
for (let a = 0; a < A.length; a++) {
const n = A[a];
if (!n)
continue;
const l = typeof n;
if (l === "string" || l === "number")
t.push(n);
else if (Array.isArray(n)) {
if (n.length) {
const i = X.apply(null, n);
i && t.push(i);
}
} else if (l === "object") {
if (n.toString !== Object.prototype.toString && !n.toString.toString().includes("[native code]")) {
t.push(n.toString());
continue;
}
for (const i in n)
e.call(n, i) && n[i] && t.push(i);
}
}
return t.join(" ");
}
const se = typeof wx < "u" && typeof wx.getSystemInfoSync == "function" && Boolean(wx.getSystemInfoSync().fontSizeSetting), Ji = typeof uni < "u" && typeof uni > "u", Qt = se || Ji, Hi = typeof uni < "u", Vo = function() {
return (typeof uni < "u" || typeof window < "u") && !Qt;
}();
(function() {
return se ? wx : Hi ? uni : window;
})();
const OA = Vo && window && window.navigator && window.navigator.userAgent || "", Ki = /Android/i.test(OA), $i = /(?:Windows Phone)/.test(OA), As = /(?:SymbianOS)/.test(OA), es = /iPad/i.test(OA) || /iPhone/i.test(OA) || /iPod/i.test(OA), bo = Ki || $i || As || es, WA = Vo && !bo;
WA && OA.includes("Windows NT");
WA && OA.includes("Mac");
function ot(A) {
const t = {};
for (const e in A)
Object.prototype.hasOwnProperty.call(A, e) && A[e] !== void 0 && (t[e] = A[e]);
return t;
}
function ts() {
let A = "unknow";
return typeof Ft == "string" && (A = Ft.split(".")[0]), { version: Ft, majorVersion: A };
}
function Ba(A, t) {
const { key: e, value: a } = t;
return A.find((n) => n[e] === a);
}
const Bo = "RowContextKey", x = "tk", ae = {
SUCCESS: "success",
INFO: "info",
WARNING: "warning",
ERROR: "error"
}, Kt = {
options: {
virtualHost: !0
}
};
Kt.props = qi;
Kt.setup = (A, t) => {
const e = A, a = p(() => e.gutter);
return gA(Bo, {
gutter: a
}), {
classname: X([`${x}-row`, `${x}-justify-${e.justify}`, `${x}-align-${e.align}`])
};
};
var as = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
class: A.classname,
style: [A.customStyle]
}, [A._t("default")], 2);
}, ns = [];
function S(A, t, e, a, n, l, i, u) {
var s = typeof A == "function" ? A.options : A;
t && (s.render = t, s.staticRenderFns = e, s._compiled = !0), a && (s.functional = !0), l && (s._scopeId = "data-v-" + l);
var r;
if (i ? (r = function(g) {
g = g || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext, !g && typeof __VUE_SSR_CONTEXT__ < "u" && (g = __VUE_SSR_CONTEXT__), n && n.call(this, g), g && g._registeredComponents && g._registeredComponents.add(i);
}, s._ssrRegister = r) : n && (r = u ? function() {
n.call(
this,
(s.functional ? this.parent : this).$root.$options.shadowRoot
);
} : n), r)
if (s.functional) {
s._injectStyles = r;
var M = s.render;
s.render = function(N, y) {
return r.call(y), M(N, y);
};
} else {
var D = s.beforeCreate;
s.beforeCreate = D ? [].concat(D, r) : [r];
}
return {
exports: A,
options: s
};
}
const Fa = {};
var os = /* @__PURE__ */ S(
Kt,
as,
ns,
!1,
ls,
null,
null,
null
);
function ls(A) {
for (let t in Fa)
this[t] = Fa[t];
}
const $t = /* @__PURE__ */ function() {
return os.exports;
}(), is = ["start", "center", "end", "space-around", "space-between", "space-evenly"], ss = ["top", "middle", "bottom"], us = {
span: {
type: Number,
default: 24
},
justify: {
type: String,
values: is,
default: "start"
},
align: {
type: String,
values: ss,
default: "middle"
},
offset: {
type: Number,
default: 0
}
}, Aa = {
options: {
virtualHost: !0
}
};
Aa.props = us;
Aa.setup = (A, t) => {
const e = A, {
gutter: a
} = NA(Bo, {
gutter: p(() => 0)
}), n = X([`${x}-col`, `${x}-justify-${e.justify}`, `${x}-align-${e.align}`]), l = p(() => `${e.span / 24 * 100}%`), i = p(() => `${e.offset / 24 * 100}%`), u = p(() => `${a.value / 2}px`);
return {
classname: n,
width: l,
marginLeft: i,
paddingLeft: u,
paddingRight: u
};
};
var cs = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
class: A.classname,
style: {
width: A.width,
marginLeft: A.marginLeft,
paddingLeft: A.paddingLeft,
paddingRight: A.paddingRight
}
}, [A._t("default")], 2);
}, rs = [];
const Ra = {};
var Ms = /* @__PURE__ */ S(
Aa,
cs,
rs,
!1,
ds,
null,
null,
null
);
function ds(A) {
for (let t in Ra)
this[t] = Ra[t];
}
const ea = /* @__PURE__ */ function() {
return Ms.exports;
}(), Is = {
width: {
type: String,
default: "40px"
},
height: {
type: String,
default: "40px"
},
color: {
type: String
}
}, ta = {
options: {
virtualHost: !0
}
};
ta.props = Is;
ta.setup = (A, t) => {
const e = A, a = `${x}-loading_dot-container`, n = `${x}-loading_dot`, l = p(() => ({
width: e.width,
height: e.height
})), i = p(() => {
const u = {};
return e.color && (u.backgroundColor = e.color), u;
});
return {
dotContainerClassName: a,
dotClassName: n,
dotContainerStyle: l,
dotStyle: i
};
};
var gs = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
class: A.dotContainerClassName,
style: [A.dotContainerStyle]
}, [e("div", {
class: A.dotClassName,
style: [A.dotStyle]
}), e("div", {
class: A.dotClassName,
style: [A.dotStyle]
}), e("div", {
class: A.dotClassName,
style: [A.dotStyle]
})]);
}, Ns = [];
const ka = {};
var ps = /* @__PURE__ */ S(
ta,
gs,
Ns,
!1,
Ds,
null,
null,
null
);
function Ds(A) {
for (let t in ka)
this[t] = ka[t];
}
const Ts = /* @__PURE__ */ function() {
return ps.exports;
}(), Cs = {
width: {
type: String,
default: "40px"
},
height: {
type: String,
default: "40px"
},
color: {
type: String
}
}, aa = {
options: {
virtualHost: !0
}
};
aa.props = Cs;
aa.setup = (A, t) => {
const e = A, a = p(() => {
const l = {
width: e.width,
height: e.height
};
return e.color && (l["--tk-loading-primary-color"] = e.color), l;
}), n = `${x}-loading_circle-container`;
return {
circleContainerStyle: a,
circleContainerClassName: n
};
};
var ys = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
class: A.circleContainerClassName,
style: [A.circleContainerStyle]
});
}, Ss = [];
const Pa = {};
var Es = /* @__PURE__ */ S(
aa,
ys,
Ss,
!1,
hs,
null,
null,
null
);
function hs(A) {
for (let t in Pa)
this[t] = Pa[t];
}
const ms = /* @__PURE__ */ function() {
return Es.exports;
}(), js = ["circle", "dot"], vs = ["row", "column"], fs = {
mode: {
type: String,
values: js,
default: "circle"
},
loadingWidth: {
type: String,
default: "40px"
},
loadingHeight: {
type: String,
default: "40px"
},
color: {
type: String
},
text: {
type: String
},
layout: {
type: String,
values: vs,
default: "column"
}
}, ue = {
options: {
virtualHost: !0
}
};
ue.props = fs;
ue.setup = (A, t) => {
const e = A, a = `${x}-loading ${x}-loading--${e.mode}`, n = `${x}-loading_text`, l = p(() => ({
flexDirection: e.layout
}));
return {
loadingContainerClassName: a,
loadingTextClassName: n,
loadingContainerStyle: l
};
};
ue.components = Object.assign({
LoadingDot: Ts,
LoadingCircle: ms
}, ue.components);
var Ls = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
class: A.loadingContainerClassName,
style: [A.loadingContainerStyle]
}, [A.mode === "dot" ? e("LoadingDot", {
attrs: {
width: A.loadingWidth,
height: A.loadingHeight,
color: A.color
}
}) : e("LoadingCircle", {
attrs: {
width: A.loadingWidth,
height: A.loadingHeight,
color: A.color
}
}), A.text ? e("div", {
class: A.loadingTextClassName
}, [A._v(A._s(A.text))]) : A._e()], 1);
}, Us = [];
const Wa = {};
var zs = /* @__PURE__ */ S(
ue,
Ls,
Us,
!1,
ws,
null,
null,
null
);
function ws(A) {
for (let t in Wa)
this[t] = Wa[t];
}
const na = /* @__PURE__ */ function() {
return zs.exports;
}(), Os = {
src: {
type: String
},
size: {
type: Number,
default: 20
}
}, xs = ["fill", "contain", "cover"], Ga = {
fill: "scaleToFill",
contain: "aspectFit",
cover: "aspectFill"
}, Vs = {
width: {
type: String,
default: "320px"
},
height: {
type: String,
default: "240px"
},
src: {
type: String
},
fit: {
type: String,
values: xs,
default: "fill"
},
customStyle: {
type: Object
},
defaultSrc: {
type: String
}
}, oa = {
options: {
virtualHost: !0
}
};
oa.props = Vs;
oa.setup = (A, t) => {
const e = A, a = t.emit, n = I(!1), l = I(e.src);
J(() => e.src, () => {
n.value = !1, l.value = e.src;
});
const i = p(() => X([`${x}-image`])), u = p(() => ({
width: e.width,
height: e.height,
...e.customStyle
})), s = p(() => X([`${x}-image_inner`])), r = p(() => se ? Ga[e.fit] || Ga.cover : e.fit);
function M(D) {
n.value = !0, l.value = e.defaultSrc, a("error", D);
}
return {
IN_WX_MINI_APP: se,
hasLoadError: n,
imgSrc: l,
classname: i,
imgStyle: u,
imageClassName: s,
objectFit: r,
handleError: M
};
};
var bs = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
class: A.classname,
style: [A.imgStyle]
}, [A.hasLoadError && !A.defaultSrc ? [A._t("error")] : [A.IN_WX_MINI_APP ? A._e() : e("img", {
class: A.imageClassName,
style: {
objectFit: A.objectFit
},
attrs: {
src: A.imgSrc
},
on: {
error: A.handleError
}
}), A.IN_WX_MINI_APP ? e("image", {
class: A.imageClassName,
attrs: {
src: A.imgSrc,
mode: A.objectFit
},
on: {
error: A.handleError
}
}) : A._e()]], 2);
}, Bs = [];
const Qa = {};
var Fs = /* @__PURE__ */ S(
oa,
bs,
Bs,
!1,
Rs,
null,
null,
null
);
function Rs(A) {
for (let t in Qa)
this[t] = Qa[t];
}
const SA = /* @__PURE__ */ function() {
return Fs.exports;
}(), ce = {
options: {
virtualHost: !0
}
};
ce.props = Os;
ce.setup = (A, t) => {
const e = A, a = p(() => `${e.size}px`), n = p(() => `${e.size}px`);
return {
width: a,
height: n
};
};
ce.components = Object.assign({
TKImage: SA
}, ce.components);
var ks = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("TKImage", {
attrs: {
src: A.src,
width: A.width,
height: A.height
}
});
}, Ps = [];
const Za = {};
var Ws = /* @__PURE__ */ S(
ce,
ks,
Ps,
!1,
Gs,
null,
null,
null
);
function Gs(A) {
for (let t in Za)
this[t] = Za[t];
}
const ft = /* @__PURE__ */ function() {
return Ws.exports;
}(), Qs = ["small", "middle", "large"], Zs = ["row", "column"], Ys = ["circle", "round"], Xs = {
iconSrc: {
type: String
},
iconSize: {
type: Number
},
text: {
type: String
},
loading: {
type: Boolean,
default: !1
},
loadingColor: {
type: String,
default: "#fff"
},
loadingWidth: {
type: String,
default: "40px"
},
loadingHeight: {
type: String,
default: "40px"
},
size: {
type: String,
values: Qs,
default: "middle"
},
width: {
type: String
},
height: {
type: String
},
color: {
type: String
},
direction: {
type: String,
values: Zs,
default: "row"
},
shape: {
type: String,
values: Ys
},
buttonStyle: {
type: Object
},
buttonTextStyle: {
type: Object
}
}, re = {
options: {
virtualHost: !0
}
};
re.props = Xs;
re.setup = (A, t) => {
const e = A, a = `${x}-button--content`, n = p(() => ({
width: e.width,
height: e.height,
backgroundColor: e.color,
flexDirection: e.direction,
cursor: WA ? "pointer" : "auto",
...e.buttonStyle
})), l = X([`${x}-button`, {
[`${x}-${e.shape}`]: e.shape
}, `${x}-button--${e.size}`]), i = t.emit;
return {
buttonTextClassName: a,
style: n,
buttonClassName: l,
handleClick: (s) => {
!e.loading && i("click", s);
}
};
};
re.components = Object.assign({
Loading: na,
Icon: ft
}, re.components);
var _s = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
class: A.buttonClassName,
style: [A.style],
on: {
click: A.handleClick
}
}, [A.loading ? e("Loading", {
attrs: {
loadingWidth: A.loadingWidth,
loadingHeight: A.loadingHeight,
color: A.loadingColor
}
}) : A._e(), A.iconSrc && !A.loading ? e("Icon", {
attrs: {
size: A.iconSize,
src: A.iconSrc
}
}) : A._e(), A.text ? e("div", {
class: A.buttonTextClassName,
style: [A.buttonTextStyle]
}, [A._v(" " + A._s(A.text) + " ")]) : A._e()], 1);
}, qs = [];
const Ya = {};
var Js = /* @__PURE__ */ S(
re,
_s,
qs,
!1,
Hs,
null,
null,
null
);
function Hs(A) {
for (let t in Ya)
this[t] = Ya[t];
}
const pA = /* @__PURE__ */ function() {
return Js.exports;
}(), Zt = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTMwIDE2LjA1MDlDMzAgMTMuODE0NiAyOC43NzIyIDExLjcxOTQgMjYuNjg1NSAxMC45MTVDMjMuMDU5MSA5LjUxNzI2IDE5LjExOSA4Ljc1MDk4IDE1IDguNzUwOThDMTAuODgwOSA4Ljc1MDk4IDYuOTQwODYgOS41MTcyNiAzLjMxNDUzIDEwLjkxNUMxLjIyNzg0IDExLjcxOTQgMCAxMy44MTQ2IDAgMTYuMDUwOVYxOS42NDc2QzAgMjAuNTE1MyAwLjczNDAwMyAyMS4yMDIgMS41OTk3OCAyMS4xNDQzTDcuOTc0NzggMjAuNzE5M0M4Ljc2MjcyIDIwLjY2NjggOS4zNzUgMjAuMDEyMyA5LjM3NSAxOS4yMjI2VjE2LjIwOUM5LjM3NSAxNS44NTY0IDkuNjIwMzQgMTUuNTUwMyA5Ljk2NjQ0IDE1LjQ4MzFDMTEuNTk1NSAxNS4xNjY3IDEzLjI3ODQgMTUuMDAxIDE1IDE1LjAwMUMxNi43MjE2IDE1LjAwMSAxOC40MDQ1IDE1LjE2NjcgMjAuMDMzNiAxNS40ODMxQzIwLjM3OTcgMTUuNTUwMyAyMC42MjUgMTUuODU2NCAyMC42MjUgMTYuMjA5VjE5LjIyMjZDMjAuNjI1IDIwLjAxMjMgMjEuMjM3MyAyMC42NjY4IDIyLjAyNTIgMjAuNzE5M0wyOC40MDAyIDIxLjE0NDNDMjkuMjY2IDIxLjIwMiAzMCAyMC41MTUzIDMwIDE5LjY0NzZWMTYuMDUwOVoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=", Fo = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyNiAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTguOTE2NSA4LjE5OTc4SDkuNzY2NVY3LjM0OTc4VjUuNjQ5NzhWNC43OTk3OEg4LjkxNjVINC44MzMxN0gzLjk4MzE3VjUuNjQ5NzhWNy4zNDk3OFY4LjE5OTc4SDQuODMzMTdIOC45MTY1Wk0xLjAxNjUgMS42NjY2MkMxLjAxNjUgMS41ODM3OCAxLjA4MzY2IDEuNTE2NjMgMS4xNjY1IDEuNTE2NjNIMTcuODMzMkMxNy45MTYgMS41MTY2MyAxNy45ODMyIDEuNTgzNzggMTcuOTgzMiAxLjY2NjYzVjE4LjMzMzNDMTcuOTgzMiAxOC40MTYxIDE3LjkxNiAxOC40ODMzIDE3LjgzMzIgMTguNDgzM0gxLjE2NjVDMS4wODM2NiAxOC40ODMzIDEuMDE2NSAxOC40MTYxIDEuMDE2NSAxOC4zMzMzVjEuNjY2NjJaTTIxLjIxNDMgNS4wMjIyNEMyMS4yMTQzIDQuOTYzOTYgMjEuMjQ4IDQuOTEwOTYgMjEuMzAwOCA0Ljg4NjMxTDI0Ljc2OTYgMy4yNjc1NkMyNC44NjkgMy4yMjExNSAyNC45ODMgMy4yOTM3NSAyNC45ODMgMy40MDM0OUwyNC45ODMgMTYuNTk2NEMyNC45ODMgMTYuNzA2MiAyNC44NjkgMTYuNzc4OCAyNC43Njk2IDE2LjczMjRMMjEuMzAwOCAxNS4xMTM2QzIxLjI0OCAxNS4wODkgMjEuMjE0MyAxNS4wMzYgMjEuMjE0MyAxNC45Nzc3TDIxLjIxNDMgNS4wMjIyNFoiIGZpbGw9IiMyMjI2MkUiIHN0cm9rZT0iIzIyMjYyRSIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K", Ro = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9InBhdGgtMS1pbnNpZGUtMV8yODdfOSIgZmlsbD0id2hpdGUiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTkuOTUxOTEgMjMuMzMzN0gxOC44MzMyQzE5LjM4NTUgMjMuMzMzNyAxOS44MzMyIDIyLjg4NTkgMTkuODMzMiAyMi4zMzM3VjExLjQyOThMOS45NTE5MSAyMy4zMzM3Wk0yMS4zNjQ0IDkuNTg1MTJMMjIuOTg5NiA3LjYyNzM1TDI1LjQxMDMgNi40OTc2N0MyNi4wNzMzIDYuMTg4MjggMjYuODMzMiA2LjY3MjI0IDI2LjgzMzIgNy40MDM4NUwyNi44MzMyIDIwLjU5NjhDMjYuODMzMiAyMS4zMjg0IDI2LjA3MzMgMjEuODEyNCAyNS40MTAzIDIxLjUwM0wyMi40NTgyIDIwLjEyNTNMMjEuOTQxNiAxOS44ODQyQzIxLjU4OTUgMTkuNzE5OSAyMS4zNjQ0IDE5LjM2NjYgMjEuMzY0NCAxOC45NzhMMjEuMzY0NCA5LjU4NTEyWk0xNy44NjMxIDQuNjY2OTlMMi4zNjgxMSAyMy4zMzM3SDIuMTY2NUMxLjYxNDIyIDIzLjMzMzcgMS4xNjY1IDIyLjg4NTkgMS4xNjY1IDIyLjMzMzdWNS42NjY5OUMxLjE2NjUgNS4xMTQ3MSAxLjYxNDIyIDQuNjY2OTkgMi4xNjY1IDQuNjY2OTlIMTcuODYzMVpNNS44MzMxNyAxMS4zNTAxSDkuOTE2NVY5LjY1MDE1SDUuODMzMTdWMTEuMzUwMVoiLz4KPC9tYXNrPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTkuOTUxOTEgMjMuMzMzN0gxOC44MzMyQzE5LjM4NTUgMjMuMzMzNyAxOS44MzMyIDIyLjg4NTkgMTkuODMzMiAyMi4zMzM3VjExLjQyOThMOS45NTE5MSAyMy4zMzM3Wk0yMS4zNjQ0IDkuNTg1MTJMMjIuOTg5NiA3LjYyNzM1TDI1LjQxMDMgNi40OTc2N0MyNi4wNzMzIDYuMTg4MjggMjYuODMzMiA2LjY3MjI0IDI2LjgzMzIgNy40MDM4NUwyNi44MzMyIDIwLjU5NjhDMjYuODMzMiAyMS4zMjg0IDI2LjA3MzMgMjEuODEyNCAyNS40MTAzIDIxLjUwM0wyMi40NTgyIDIwLjEyNTNMMjEuOTQxNiAxOS44ODQyQzIxLjU4OTUgMTkuNzE5OSAyMS4zNjQ0IDE5LjM2NjYgMjEuMzY0NCAxOC45NzhMMjEuMzY0NCA5LjU4NTEyWk0xNy44NjMxIDQuNjY2OTlMMi4zNjgxMSAyMy4zMzM3SDIuMTY2NUMxLjYxNDIyIDIzLjMzMzcgMS4xNjY1IDIyLjg4NTkgMS4xNjY1IDIyLjMzMzdWNS42NjY5OUMxLjE2NjUgNS4xMTQ3MSAxLjYxNDIyIDQuNjY2OTkgMi4xNjY1IDQuNjY2OTlIMTcuODYzMVpNNS44MzMxNyAxMS4zNTAxSDkuOTE2NVY5LjY1MDE1SDUuODMzMTdWMTEuMzUwMVoiIGZpbGw9IndoaXRlIiBzdHlsZT0iZmlsbDp3aGl0ZTtmaWxsOndoaXRlO2ZpbGwtb3BhY2l0eToxOyIvPgo8cGF0aCBkPSJNOS45NTE5MSAyMy4zMzM3TDguNjQzODUgMjIuMjQ3OUw2LjMzMTM4IDI1LjAzMzdIOS45NTE5
let Qo = au, Zo = nu;
eA || (Qo = eu, Zo = tu);
const R = {
width: eA ? "60px" : "40px",
height: eA ? "60px" : "40px",
shape: "circle",
iconSize: eA ? 30 : 20,
showText: !0,
textColor: "#D5E0F2",
textSize: "12px",
textStyle: {
marginTop: "5px"
}
}, h = {
accept: {
basicConfig: {
...R,
color: "#51C271",
iconSrc: $s
},
loadingConfig: {
...R,
color: "#51C271",
loadingWidth: eA ? "30px" : "20px",
loadingHeight: eA ? "30px" : "20px"
}
},
hangup: {
basicConfig: {
...R,
color: "#ED4651",
iconSrc: Zt
},
loadingConfig: {
...R,
color: "#ED4651",
loadingWidth: eA ? "30px" : "20px",
loadingHeight: eA ? "30px" : "20px"
}
},
reject: {
basicConfig: {
...R,
color: "#ED4651",
iconSrc: Zt
}
},
camera: {
basicConfig: {
...R,
color: "#FFFFFF",
iconSrc: Fo,
shape: "circle"
},
closedConfig: {
...R,
color: "#6b758a4d",
iconSrc: Ro
},
loadingConfig: {
...R,
color: "#6b758a4d",
loadingWidth: eA ? "30px" : "20px",
loadingHeight: eA ? "30px" : "20px"
}
},
microphone: {
basicConfig: {
...R,
color: "#FFFFFF",
iconSrc: ko
},
closedConfig: {
...R,
color: "#6b758a4d",
iconSrc: Po
}
},
speaker: {
basicConfig: {
...R,
color: "#FFFFFF",
iconSrc: Wo
},
closedConfig: {
...R,
color: "#6b758a4d",
iconSrc: Go
}
},
fullScreen: {
basicConfig: {
iconSize: 20,
iconSrc: Au
}
},
minimize: {
basicConfig: {
iconSize: eA ? 24 : 20,
iconSrc: Qo
}
},
switchCamera: {
basicConfig: {
...R,
color: "transparent",
iconSrc: fA,
shape: "circle"
}
},
inviteUser: {
basicConfig: {
...R,
color: eA ? "" : "#6b758a4d",
width: eA ? "24px" : "40px",
height: eA ? "24px" : "40px",
shape: eA ? "" : "circle",
iconSize: eA ? 24 : 20,
iconSrc: Zo
}
},
toggleButtonPanel: {
basicConfig: {
color: "transparent",
width: "40px",
height: "40px",
shape: "circle",
iconSize: 40,
iconSrc: ou
}
},
virtualBackground: {
basicConfig: {
...R,
color: "#6b758a4d",
iconSrc: UA,
shape: "circle"
},
closedConfig: {
...R,
color: "#FFFFFF",
iconSrc: Yt
},
loadingConfig: {
...R,
color: "#6b758a4d",
loadingWidth: eA ? "30px" : "20px",
loadingHeight: eA ? "30px" : "20px"
},
disableConfig: {
...R,
color: "#6b758a4d",
iconSrc: UA,
buttonStyle: {
opacity: 0.6
}
}
}
}, jA = {
singleCall: {
video: {
calling: {
...h,
switchCamera: {
basicConfig: {
...R,
color: "#6b758a4d",
iconSrc: fA,
shape: "circle",
showText: !0
},
disableConfig: {
...R,
color: "#6b758a4d",
iconSrc: fA,
shape: "circle",
showText: !0,
buttonStyle: {
opacity: 0.6
}
}
},
hangup: {
basicConfig: {
...h.hangup.basicConfig
},
loadingConfig: {
...h.hangup.loadingConfig
}
},
reject: {
basicConfig: {
...h.reject.basicConfig,
showText: !1
}
}
},
accept: {
...h,
switchCamera: {
basicConfig: {
...R,
color: "#6b758a4d",
iconSrc: fA,
shape: "circle"
},
disableConfig: {
...R,
color: "#6b758a4d",
iconSrc: fA,
shape: "circle",
showText: !0,
buttonStyle: {
opacity: 0.6
}
}
},
accept: {
basicConfig: {
...h.accept.basicConfig,
showText: !1
},
loadingConfig: {
...h.accept.loadingConfig,
showText: !1
}
},
reject: {
basicConfig: {
...h.reject.basicConfig,
showText: !1
}
}
},
connected: {
...h,
virtualBackground: {
basicConfig: {
...R,
color: "transparent",
iconSrc: UA,
shape: "circle",
showText: !1
},
closedConfig: {
...R,
color: "transparent",
iconSrc: UA,
showText: !1
},
disableConfig: {
...R,
color: "transparent",
iconSrc: UA,
showText: !1,
buttonStyle: {
opacity: 0.6
}
}
},
hangup: {
basicConfig: {
...h.hangup.basicConfig,
showText: !1
},
loadingConfig: {
...h.hangup.loadingConfig,
showText: !1
}
},
switchCamera: {
basicConfig: {
...h.switchCamera.basicConfig,
showText: !1
},
disableConfig: {
...h.switchCamera.basicConfig,
showText: !1,
buttonStyle: {
opacity: 0.6
}
}
}
}
},
audio: {
calling: h,
accept: h,
connected: h
}
},
groupCall: {
video: {
calling: {
...h,
switchCamera: {
basicConfig: {
...R,
color: "#6b758a4d",
iconSrc: fA,
shape: "circle"
}
},
hangup: {
basicConfig: {
...h.hangup.basicConfig,
showText: !1
},
loadingConfig: {
...h.hangup.loadingConfig,
showText: !1
}
},
accept: {
basicConfig: {
...h.accept.basicConfig,
showText: !1
},
loadingConfig: {
...h.accept.loadingConfig,
showText: !1
}
},
reject: {
basicConfig: {
...h.reject.basicConfig,
showText: !1
}
}
},
accept: {
...h,
hangup: {
basicConfig: {
...h.hangup.basicConfig,
showText: !1
},
loadingConfig: {
...h.hangup.loadingConfig,
showText: !1
}
},
accept: {
basicConfig: {
...h.accept.basicConfig,
showText: !1
},
loadingConfig: {
...h.accept.loadingConfig,
showText: !1
}
},
reject: {
basicConfig: {
...h.reject.basicConfig,
showText: !1
}
}
},
connected: {
...h,
virtualBackground: {
basicConfig: {
...R,
color: "transparent",
iconSrc: UA,
shape: "circle",
showText: !1
},
closedConfig: {
...R,
color: "transparent",
iconSrc: Yt,
showText: !1
}
},
hangup: {
basicConfig: {
...h.hangup.basicConfig,
showText: !1
},
loadingConfig: {
...h.hangup.loadingConfig,
showText: !1
}
}
}
},
audio: {
calling: {
...h,
switchCamera: {
basicConfig: {
...R,
color: "#6b758a4d",
iconSrc: fA,
shape: "circle"
}
},
hangup: {
basicConfig: {
...h.hangup.basicConfig,
showText: !1
},
loadingConfig: {
...h.hangup.loadingConfig,
showText: !1
}
},
accept: {
basicConfig: {
...h.accept.basicConfig,
showText: !1
},
loadingConfig: {
...h.accept.loadingConfig,
showText: !1
}
},
reject: {
basicConfig: {
...h.reject.basicConfig,
showText: !1
}
}
},
accept: {
...h,
hangup: {
basicConfig: {
...h.hangup.basicConfig,
showText: !1
},
loadingConfig: {
...h.hangup.loadingConfig,
showText: !1
}
},
accept: {
basicConfig: {
...h.accept.basicConfig,
showText: !1
},
loadingConfig: {
...h.accept.loadingConfig,
showText: !1
}
},
reject: {
basicConfig: {
...h.reject.basicConfig,
showText: !1
}
}
},
connected: {
...h,
hangup: {
basicConfig: {
...h.hangup.basicConfig,
showText: !1
},
loadingConfig: {
...h.hangup.loadingConfig,
showText: !1
}
},
virtualBackground: {
basicConfig: {
...R,
color: "transparent",
iconSrc: UA,
shape: "circle"
},
closedConfig: {
...R,
color: "transparent",
iconSrc: Yt
}
}
}
}
}
}, lu = {
singleCall: {
video: {
calling: h,
accept: h,
connected: h
},
audio: {
calling: h,
accept: h,
connected: h
}
},
groupCall: {
video: {
calling: h,
accept: h,
connected: h
},
audio: {
calling: h,
accept: h,
connected: h
}
}
}, iu = {
pc: lu,
mobile: jA
}, hA = {
width: "40px",
height: "40px",
shape: "circle",
iconSize: 20,
textColor: "#D5E0F2"
}, Je = {
microphone: {
basicConfig: {
...hA,
color: "#FFFFFF",
iconSrc: ko
},
closedConfig: {
...hA,
color: "#6b758a4d",
iconSrc: Po
}
},
speaker: {
basicConfig: {
...hA,
color: "#FFFFFF",
iconSrc: Wo
},
closedConfig: {
...hA,
color: "#6b758a4d",
iconSrc: Go
}
},
camera: {
basicConfig: {
...hA,
color: "#FFFFFF",
iconSrc: Fo
},
closedConfig: {
...hA,
color: "#6b758a4d",
iconSrc: Ro
}
},
hangup: {
basicConfig: {
...hA,
color: "#ED4651",
iconSrc: Zt
},
loadingConfig: {
...hA,
color: "#ED4651",
loadingWidth: "20px",
loadingHeight: "20px"
}
},
toggleButtonPanel: {
basicConfig: {
color: "transparent",
width: "40px",
height: "40px",
shape: "circle",
iconSize: 40,
iconSrc: Ks
}
}
}, su = {
mobile: {
...jA,
groupCall: {
video: {
...jA.groupCall.video,
calling: {
...jA.groupCall.video.calling,
...Je
},
connected: {
...jA.groupCall.video.connected,
...Je
}
},
audio: {
...jA.groupCall.audio,
calling: {
...jA.groupCall.audio.calling,
...Je
},
connected: {
...jA.groupCall.audio.connected,
...Je
}
}
}
}
}, uA = (A, t) => {
var r;
const e = j.isPC ? "pc" : "mobile", { status: a } = We(), { callStatus: n, callRole: l, isGroupCall: i, callType: u } = z(q()), s = I((r = h == null ? void 0 : h[A]) == null ? void 0 : r[t.value]);
return J(
[t, a, n, i, u],
() => {
var y, T, C, E, w;
const M = i.value ? "groupCall" : "singleCall", D = u.value === F.AUDIO ? "audio" : "video";
let g = "";
n.value === U.CALLING ? g = l.value === K.CALLER ? "calling" : "accept" : n.value === U.CONNECTED && (g = "connected");
let N = iu;
a.value === "close" && (N = su), s.value = ((w = (E = (C = (T = (y = N == null ? void 0 : N[e]) == null ? void 0 : y[M]) == null ? void 0 : T[D]) == null ? void 0 : C[g]) == null ? void 0 : E[A]) == null ? void 0 : w[t.value]) || {};
},
{ immediate: !0 }
), s;
}, lt = {
options: {
virtualHost: !0
}
};
lt.setup = (A, t) => ({
config: uA("minimize", I("basicConfig")),
handleClick: async () => {
if (document != null && document.fullscreenElement)
try {
document == null || document.exitFullscreen();
} catch (n) {
console.debug(n);
}
await O.toggleMinimize();
}
});
lt.components = Object.assign({
Button: pA
}, lt.components);
var uu = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("Button", {
attrs: {
iconSrc: A.config.iconSrc,
iconSize: A.config.iconSize
},
on: {
click: A.handleClick
}
});
}, cu = [];
const Xa = {};
var ru = /* @__PURE__ */ S(
lt,
uu,
cu,
!1,
Mu,
"71774dda",
null,
null
);
function Mu(A) {
for (let t in Xa)
this[t] = Xa[t];
}
const du = /* @__PURE__ */ function() {
return ru.exports;
}(), it = {
options: {
virtualHost: !0
}
};
it.setup = (A, t) => ({
config: uA("fullScreen", I("basicConfig")),
handleClick: async () => {
await fi("tuicallkit-id");
}
});
it.components = Object.assign({
Button: pA
}, it.components);
var Iu = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("Button", {
attrs: {
iconSrc: A.config.iconSrc,
iconSize: A.config.iconSize
},
on: {
click: A.handleClick
}
});
}, gu = [];
const _a = {};
var Nu = /* @__PURE__ */ S(
it,
Iu,
gu,
!1,
pu,
"224de994",
null,
null
);
function pu(A) {
for (let t in _a)
this[t] = _a[t];
}
const Du = /* @__PURE__ */ function() {
return Nu.exports;
}(), Tu = {
width: {
type: String
},
color: {
type: String
},
size: {
type: String
},
weight: {
type: Number
},
truncated: {
type: Boolean,
default: !1
},
lineClamp: {
type: Number
},
textStyle: {
type: Object
}
}, la = {
options: {
virtualHost: !0
}
};
la.props = Tu;
la.setup = (A, t) => {
const e = A, a = t.emit, n = X([`${x}-text`, {
[`${x}-text--line-clamp`]: e.lineClamp
}]), l = p(() => ot({
maxWidth: e.width,
fontSize: e.size,
fontWeight: e.weight,
color: e.color,
textOverflow: e.truncated ? "ellipsis" : "auto",
"-webkit-line-clamp": e.lineClamp,
...e.textStyle
}));
return {
textClassName: n,
style: l,
handleClick: () => {
a("click");
}
};
};
var Cu = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("span", {
class: A.textClassName,
style: [A.style],
on: {
click: A.handleClick
}
}, [A._t("default")], 2);
}, yu = [];
const qa = {};
var Su = /* @__PURE__ */ S(
la,
Cu,
yu,
!1,
Eu,
null,
null,
null
);
function Eu(A) {
for (let t in qa)
this[t] = qa[t];
}
const lA = /* @__PURE__ */ function() {
return Su.exports;
}(), EA = {
width: {
type: String
},
height: {
type: String
},
showText: {
type: Boolean,
default: !0
},
iconSize: {
type: String
}
}, Me = {
options: {
virtualHost: !0
}
};
Me.props = EA;
Me.setup = (A, t) => {
const e = A, a = uA("inviteUser", I("basicConfig"));
return {
t: v,
props: e,
config: a,
handleClick: async () => {
d.update(c.CALL, o.SHOW_SELECT_USER, !0);
}
};
};
Me.components = Object.assign({
Button: pA,
TKText: lA
}, Me.components);
var hu = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "btn-content"
}, [e("Button", {
attrs: {
iconSrc: A.config.iconSrc,
color: A.config.color,
iconSize: A.config.iconSize,
width: A.props.width || A.config.width,
height: A.props.height || A.config.height,
shape: A.config.shape
},
on: {
click: A.handleClick
}
}), A.showText ? e("TKText", {
attrs: {
textStyle: A.config.textStyle,
color: A.config.textColor,
size: A.config.textSize
}
}, [A._v(" " + A._s(A.t("invite member")) + " ")]) : A._e()], 1);
}, mu = [];
const Ja = {};
var ju = /* @__PURE__ */ S(
Me,
hu,
mu,
!1,
vu,
"234c87f7",
null,
null
);
function vu(A) {
for (let t in Ja)
this[t] = Ja[t];
}
const Yo = /* @__PURE__ */ function() {
return ju.exports;
}(), fu = {
color: {
type: String,
default: "#FFF"
},
callDuration: {
type: String,
default: ""
},
fontSize: {
type: String,
default: "16px"
}
}, ia = {
options: {
virtualHost: !0
}
};
ia.props = fu;
ia.setup = (A, t) => {
const e = A;
return {
timerStyle: p(() => ({
color: e.color,
fontSize: e.fontSize
}))
};
};
var Lu = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("span", {
style: [A.timerStyle]
}, [A._v(A._s(A.callDuration))]);
}, Uu = [];
const Ha = {};
var zu = /* @__PURE__ */ S(
ia,
Lu,
Uu,
!1,
wu,
null,
null,
null
);
function wu(A) {
for (let t in Ha)
this[t] = Ha[t];
}
const sa = /* @__PURE__ */ function() {
return zu.exports;
}(), de = {
options: {
virtualHost: !0
}
};
de.props = Yi;
de.setup = (A, t) => {
const e = j.isPC, {
callStatus: a,
isGroupCall: n,
callRole: l,
allowedFullScreen: i
} = z(q()), {
callDuration: u
} = Ht(), s = Ge(), r = p(() => a.value === U.CONNECTED), M = I(d.getData(c.CALL, o.ENABLE_FLOAT_WINDOW)), D = p(() => {
var y, T;
return !n.value || ((T = (y = s.value.button) == null ? void 0 : y[zA.InviteUser]) == null ? void 0 : T.show) === !1 ? !1 : a.value === U.CALLING ? l.value === K.CALLER : !0;
});
function g(y) {
M.value = y;
}
const N = {
[o.ENABLE_FLOAT_WINDOW]: g
};
return aA(() => {
d.watch(c.CALL, N, {
notifyRangeWhenWatch: o.MYSELF
});
}), tA(() => {
d.unwatch(c.CALL, {
...N
});
}), {
isPC: e,
allowedFullScreen: i,
callDuration: u,
showTimer: r,
showMinimize: M,
showInviteUser: D
};
};
de.components = Object.assign({
Row: $t,
Col: ea,
Timer: sa,
Minimize: du,
FullScreen: Du,
InviteUser: Yo
}, de.components);
var Ou = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "top-bar-container",
style: A.customStyle
}, [A.isPC ? e("Row", [e("Col", {
attrs: {
span: 8
}
}), e("Col", {
attrs: {
span: 8,
justify: "center",
align: "center"
}
}, [A.showTimer ? e("Timer", {
attrs: {
"call-duration": A.callDuration
}
}) : A._e()], 1), e("Col", {
attrs: {
span: 8,
justify: "end",
align: "center"
}
}, [e("Row", [e("Col", {
attrs: {
span: 18
}
}), e("Col", {
attrs: {
span: 3,
justify: "center"
}
}, [A.showMinimize ? e("Minimize") : A._e()], 1), e("Col", {
attrs: {
span: 3,
justify: "center"
}
}, [A.allowedFullScreen ? e("FullScreen") : A._e()], 1)], 1)], 1)], 1) : A._e(), A.isPC ? A._e() : e("Row", [e("Col", {
attrs: {
span: 8,
align: "center"
}
}, [e("Row", [e("Col", {
attrs: {
span: 8,
justify: "center"
}
}, [!A.isPC && A.showMinimize ? e("Minimize") : A._e()], 1), e("Col", {
attrs: {
span: 16
}
})], 1)], 1), e("Col", {
attrs: {
span: 8,
justify: "center",
align: "center"
}
}, [A.showTimer ? e("Timer", {
attrs: {
"call-duration": A.callDuration
}
}) : A._e()], 1), e("Col", {
attrs: {
span: 8,
justify: "end",
align: "center"
}
}, [e("Row", [e("Col", {
attrs: {
span: 16
}
}), e("Col", {
attrs: {
span: 8,
justify: "center"
}
}, [A.showInviteUser ? e("InviteUser", {
attrs: {
"show-text": A.isPC
}
}) : A._e()], 1)], 1)], 1)], 1)], 1);
}, xu = [];
const Ka = {};
var Vu = /* @__PURE__ */ S(
de,
Ou,
xu,
!1,
bu,
"2bcaf4e1",
null,
null
);
function bu(A) {
for (let t in Ka)
this[t] = Ka[t];
}
const Xo = /* @__PURE__ */ function() {
return Vu.exports;
}(), Bu = {
show: {
type: Boolean,
default: !0
},
showMask: {
type: Boolean,
default: !0
},
showBackgroundImage: {
type: Boolean,
default: !0
},
blur: {
type: Boolean,
default: !0
},
bgColor: {
type: String
},
bgImage: {
type: String
},
zIndex: {
type: Number,
default: 11e3
},
customClass: {
type: String
},
customStyle: {
type: Object
},
customMaskStyle: {
type: Object
},
fit: {
type: String,
default: "cover"
},
defaultSrc: {
type: String
}
}, Ie = {
options: {
virtualHost: !0
}
};
Ie.props = Bu;
Ie.setup = (A, t) => {
const e = A, a = t.emit, n = X([`${x}-overlay`, e.customClass]), l = `${x}-overlay_mask-container`, i = p(() => X([`${x}-overlay_mask`, {
[`${x}-blur`]: e.blur
}])), u = `${x}-overlay_slot`, s = p(() => ({
zIndex: e.zIndex,
...e.customStyle
})), r = p(() => ({
backgroundColor: e.bgColor,
...e.customMaskStyle
}));
function M() {
a("click");
}
return {
overlayContainerClassName: n,
maskContainerClassName: l,
maskClassName: i,
slotClassName: u,
overlayStyle: s,
maskStyle: r,
handleClick: M,
handleError: (g) => {
a("error", g);
}
};
};
Ie.components = Object.assign({
TKImage: SA
}, Ie.components);
var Fu = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return A.show ? e("div", {
class: A.overlayContainerClassName,
style: [A.overlayStyle],
on: {
click: A.handleClick
}
}, [e("div", {
class: A.maskContainerClassName
}, [A.showMask ? e("div", {
class: A.maskClassName,
style: [A.maskStyle]
}) : A._e(), A.showBackgroundImage ? e("TKImage", {
attrs: {
fit: A.fit,
src: A.bgImage,
width: "100%",
height: "100%",
defaultSrc: A.defaultSrc
},
on: {
error: A.handleError
}
}) : A._e()], 1), e("div", {
class: A.slotClassName
}, [A._t("default")], 2)]) : A._e();
}, Ru = [];
const $a = {};
var ku = /* @__PURE__ */ S(
Ie,
Fu,
Ru,
!1,
Pu,
null,
null,
null
);
function Pu(A) {
for (let t in $a)
this[t] = $a[t];
}
const _o = /* @__PURE__ */ function() {
return ku.exports;
}(), Wu = ["fill", "contain", "cover"], Gu = ["circle", "square"], Qu = {
icon: {
type: String
},
size: {
type: [Number, String],
default: 100
},
shape: {
type: String,
values: Gu,
default: "square"
},
src: {
type: String
},
defaultSrc: {
type: String
},
text: {
type: String
},
fit: {
type: String,
values: Wu,
default: "cover"
},
customClass: {
type: String
}
}, ge = {
options: {
virtualHost: !0
}
};
ge.props = Qu;
ge.setup = (A, t) => {
const e = A, a = I("");
J(() => e.src, () => {
a.value = e.src;
}, {
immediate: !0
});
const n = p(() => X([`${x}-avatar`, `${x}-avatar--${e.shape}`, `${x}-avatar--${e.size}`, e.customClass])), l = p(() => typeof e.size == "number" ? `${e.size}px` : e.size), i = p(() => typeof e.size == "number" ? `${e.size}px` : e.size), u = p(() => ({
width: l.value,
height: i.value
}));
function s(r) {
console.error(r), e.defaultSrc && (a.value = e.defaultSrc);
}
return {
avatarSrc: a,
classname: n,
width: l,
height: i,
avatarStyle: u,
handleError: s
};
};
ge.components = Object.assign({
TKImage: SA
}, ge.components);
var Zu = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
class: A.classname,
style: [A.avatarStyle]
}, [A.avatarSrc ? e("TKImage", {
attrs: {
fit: A.fit,
width: A.width,
height: A.height,
src: A.avatarSrc
},
on: {
error: A.handleError
}
}) : A._t("default")], 2);
}, Yu = [];
const An = {};
var Xu = /* @__PURE__ */ S(
ge,
Zu,
Yu,
!1,
_u,
null,
null,
null
);
function _u(A) {
for (let t in An)
this[t] = An[t];
}
const qo = /* @__PURE__ */ function() {
return Xu.exports;
}(), qu = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICA8cmVjdCB4PSIxMSIgeT0iMjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjQiIGZpbGw9IiNmZmYiIC8+CiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zLjE0OTkgMTFWMTIuNUMzLjE0OTkgMTcuMzg3NyA3LjExMjE4IDIxLjM1IDExLjk5OTkgMjEuMzVDMTYuODg3NiAyMS4zNSAyMC44NDk5IDE3LjM4NzcgMjAuODQ5OSAxMi41VjExSDE5LjE0OTlWMTIuNUMxOS4xNDk5IDE2LjQ0ODggMTUuOTQ4NyAxOS42NSAxMS45OTk5IDE5LjY1QzguMDUxMDcgMTkuNjUgNC44NDk5IDE2LjQ0ODggNC44NDk5IDEyLjVWMTFIMy4xNDk5WiIgZmlsbD0iI2ZmZiIvPgogIDxyZWN0IHg9IjcuODUiIHk9IjEuODUiIHdpZHRoPSI4LjMiIGhlaWdodD0iMTQuOCIgcng9IjQuMTUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPC9zdmc+", Ju = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTguNzM3MDggMTIuOTk2M0M4LjcxMjY2IDEyLjgzNDQgOC43IDEyLjY2ODcgOC43IDEyLjVWNkM4LjcgNC4xNzc0NiAxMC4xNzc1IDIuNyAxMiAyLjdDMTMuNTQ4OCAyLjcgMTQuODQ4NCAzLjc2Njk1IDE1LjIwMzggNS4yMDU5MkwxNi40NDU4IDMuNzA5NzRDMTUuNjE1IDIuMTAwMzMgMTMuOTM2IDEgMTIgMUM5LjIzODU4IDEgNyAzLjIzODU4IDcgNlYxMi41QzcgMTMuMjMzMyA3LjE1Nzg2IDEzLjkyOTcgNy40NDE0NSAxNC41NTcyTDguNzM3MDggMTIuOTk2M1pNMTEuMzM4NSAxNS43MzM3TDEwLjE2MTggMTcuMTUxM0MxMC43MzA4IDE3LjM3NjMgMTEuMzUwOSAxNy41IDEyIDE3LjVDMTQuNzYxNCAxNy41IDE3IDE1LjI2MTQgMTcgMTIuNVY4LjkxMzNMMTUuMyAxMC45NjEzVjEyLjVDMTUuMyAxNC4zMjI1IDEzLjgyMjUgMTUuOCAxMiAxNS44QzExLjc3MzQgMTUuOCAxMS41NTIyIDE1Ljc3NzIgMTEuMzM4NSAxNS43MzM3Wk01Ljk2NTE5IDE2LjMzNTZDNS4yNTkzMyAxNS4yMjczIDQuODUwMzkgMTMuOTExNCA0Ljg1MDM5IDEyLjVWMTFIMy4xNTAzOVYxMi41QzMuMTUwMzkgMTQuNDQxNiAzLjc3NTYyIDE2LjIzNzEgNC44MzU3MiAxNy42OTYzTDUuOTY1MTkgMTYuMzM1NlpNNy42MzIxOCAyMC4xOTg2TDguNzM5NCAxOC44NjQ3QzkuNzE3MTggMTkuMzY2NyAxMC44MjU3IDE5LjY1IDEyLjAwMDQgMTkuNjVDMTUuOTQ5MiAxOS42NSAxOS4xNTA0IDE2LjQ0ODggMTkuMTUwNCAxMi41VjExSDIwLjg1MDRWMTIuNUMyMC44NTA0IDE3LjA0OTggMTcuNDE3MSAyMC43OTc2IDEzIDIxLjI5NDJWMjRIMTFWMjEuMjk0MUM5Ljc4NjEzIDIxLjE1NzUgOC42NDY1OCAyMC43NzU0IDcuNjMyMTggMjAuMTk4NloiIGZpbGw9IiNmZmYiIC8+CiAgPHBhdGggZD0iTTUuNzM2ODIgMTkuNTUxM0wxOC4yNjY3IDQuNDYzNzEiIHN0cm9rZT0iI0VENDE0RCIgc3R5bGU9InN0cm9rZTojRUQ0MTREO3N0cm9rZTpjb2xvcihkaXNwbGF5LXAzIDAuOTI5MiAwLjI1NTUgMC4zMDA0KTtzdHJva2Utb3BhY2l0eToxOyIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4KCg==", Hu = {
isMuted: {
type: Boolean,
default: !1
},
volume: {
type: Number,
default: 0
}
}, Ne = {
options: {
virtualHost: !0
}
};
Ne.props = Hu;
Ne.setup = (A, t) => {
const e = A, a = p(() => e.isMuted ? Ju : qu), n = p(() => e.isMuted || !e.volume ? "" : `height: ${e.volume * 4}%`);
return {
iconSrc: a,
volumeLevelStyle: n
};
};
Ne.components = Object.assign({
Icon: ft
}, Ne.components);
var Ku = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "mic-container"
}, [e("div", {
staticClass: "mic-level-container"
}, [e("div", {
staticClass: "mic-level",
style: A.volumeLevelStyle
})]), e("Icon", {
attrs: {
src: A.iconSrc
}
})], 1);
}, $u = [];
const en = {};
var Ac = /* @__PURE__ */ S(
Ne,
Ku,
$u,
!1,
ec,
"3cbc030b",
null,
null
);
function ec(A) {
for (let t in en)
this[t] = en[t];
}
const Jo = /* @__PURE__ */ function() {
return Ac.exports;
}(), GA = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHg9Ii01IiB5PSItNSIgd2lkdGg9IjExMCIgaGVpZ2h0PSIxMTAiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8yOTY0XzE3NTgpIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjQuOTk5OSA3MS41QzI0Ljk5OTkgNjEuMjM1NyAzMi45MzA0IDUyLjgyMzcgNDIuOTk4MyA1Mi4wNTdDNDMuNDkzOSA1Mi4wMTkzIDQzLjk5NDcgNTIgNDQuNDk5OSA1Mkg1Ny40OTk5QzU4LjAwNTEgNTIgNTguNTA1OSA1Mi4wMTkzIDU5LjAwMTQgNTIuMDU3QzY5LjA2OTQgNTIuODIzNyA3Ni45OTk5IDYxLjIzNTcgNzYuOTk5OSA3MS41Vjc4LjI4MjZIMjQuOTk5OUwyNC45OTk5IDcxLjVaIiBmaWxsPSIjRDVFMEYyIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDQuNDk5OSA0NS42MDQ4QzQ0LjQzMTIgNDUuNTcwNyA0NC4zNjI5IDQ1LjUzNiA0NC4yOTQ4IDQ1LjUwMDhDMzkuNTkwNiA0My4wNjk3IDM2LjM3NDkgMzguMTYwNCAzNi4zNzQ5IDMyLjVDMzYuMzc0OSAyNC40MjI4IDQyLjkyMjcgMTcuODc1IDUwLjk5OTkgMTcuODc1QzU5LjA3NyAxNy44NzUgNjUuNjI0OSAyNC40MjI4IDY1LjYyNDkgMzIuNUM2NS42MjQ5IDM4LjE2MDQgNjIuNDA5MiA0My4wNjk3IDU3LjcwNDkgNDUuNTAwOEM1Ny42MzY5IDQ1LjUzNiA1Ny41Njg2IDQ1LjU3MDcgNTcuNDk5OSA0NS42MDQ4QzU1LjU0MTggNDYuNTc3OSA1My4zMzQ3IDQ3LjEyNSA1MC45OTk5IDQ3LjEyNUM0OC42NjUgNDcuMTI1IDQ2LjQ1NzkgNDYuNTc3OSA0NC40OTk5IDQ1LjYwNDhaIiBmaWxsPSIjRDVFMEYyIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjk2NF8xNzU4IiB4MT0iNzMuNSIgeTE9Ii01IiB4Mj0iNSIgeTI9Ijk4LjUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzdDODU5QiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM3NDdDOTAiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K", tc = {
showOverlayStream: {
type: Boolean,
default: !0
},
customClass: {
type: String
},
customStyle: {
type: Object
},
isSmallWindow: {
type: Boolean,
default: !1
},
tip: {
type: String,
default: null
},
showOverlay: {
type: Boolean,
default: !0
},
showMask: {
type: Boolean,
default: !0
},
showBackgroundImage: {
type: Boolean,
default: !0
},
blur: {
type: Boolean,
default: !0
},
bgColor: {
type: String
},
bgImage: {
type: String,
default: GA
},
overlayZIndex: {
type: Number
},
customOverlayClass: {
type: String
},
fit: {
type: String
},
showLoading: {
type: Boolean,
default: !1
},
showAvatar: {
type: Boolean,
default: !0
},
avatar: {
type: String,
default: GA
},
showUserName: {
type: Boolean,
default: !0
},
username: {
type: String
},
color: {
type: String,
default: "#FFF"
},
showMicVolume: {
type: Boolean,
default: !1
},
isMuted: {
type: Boolean,
default: !1
},
volume: {
type: Number,
default: 0
},
showTip: {
type: Boolean,
default: !0
}
}, pe = {
options: {
virtualHost: !0
}
};
pe.props = tc;
pe.setup = (A, t) => {
const e = t.emit, a = A, n = I(100), {
isFloatWindow: l
} = z(CA()), i = j.isPC ? "40px" : "20px";
J([() => a.isSmallWindow, l], () => {
l.value ? n.value = a.isSmallWindow ? 20 : 40 : n.value = a.isSmallWindow ? 40 : 100;
}, {
immediate: !0
});
const u = p(() => X(["overlay-stream-container", {
pc: j.isPC,
mobile: !j.isPC,
float: l.value
}]));
return {
defaultAvatarSrc: GA,
avatarSize: n,
fontSize: i,
overlayStreamClassName: u,
handleError: (r) => {
e("error", r);
}
};
};
pe.components = Object.assign({
Overlay: _o,
Loading: na,
Avatar: qo,
TKText: lA,
MicrophoneVolume: Jo
}, pe.components);
var ac = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return A.showOverlayStream ? e("div", {
class: A.overlayStreamClassName,
style: [A.customStyle]
}, [e("Overlay", {
attrs: {
show: A.showOverlay,
"show-background-image": A.showBackgroundImage,
"show-mask": A.showMask,
blur: A.blur,
zIndex: A.overlayZIndex,
bgColor: A.bgColor,
bgImage: A.bgImage || A.defaultAvatarSrc,
fit: A.fit,
defaultSrc: A.defaultAvatarSrc,
customStyle: {
position: "absolute",
width: "100%",
height: "100%"
},
"custom-mask-style": {
"backdrop-filter": "blur(12px)",
"-webkit-backdrop-filter": "blur(12px)"
},
customClass: A.customOverlayClass
},
on: {
error: A.handleError
}
}, [e("div", {
staticClass: "overlay-stream-content-container"
}, [e("div", {
staticClass: "overlay-stream-content"
}, [A.showLoading ? e("Loading", {
attrs: {
mode: "dot"
}
}) : A._e(), e("div", {
staticClass: "overlay-stream-avatar"
}, [A.showAvatar ? e("Avatar", {
attrs: {
src: A.avatar || A.defaultAvatarSrc,
size: A.avatarSize
}
}) : A._e()], 1), e("div", {
staticClass: "overlay-stream-info"
}, [A.showUserName ? e("TKText", {
attrs: {
truncated: !0,
size: A.fontSize,
color: A.color,
width: "200px",
weight: 500
}
}, [A._v(" " + A._s(A.username) + " ")]) : A._e(), A.showMicVolume ? e("MicrophoneVolume", {
attrs: {
isMuted: A.isMuted,
volume: A.volume
}
}) : A._e()], 1), e("div", {
staticClass: "overlay-stream-tip"
}, [A.showTip && A.tip ? e("div", [A._v(A._s(A.tip))]) : A._e()])], 1), A._t("default")], 2)])], 1) : A._e();
}, nc = [];
const tn = {};
var oc = /* @__PURE__ */ S(
pe,
ac,
nc,
!1,
lc,
"01ddfaf4",
null,
null
);
function lc(A) {
for (let t in tn)
this[t] = tn[t];
}
const Ho = /* @__PURE__ */ function() {
return oc.exports;
}(), st = {};
st.setup = (A, t) => {
const {
localUserInfoExcludeVolume: e,
remoteUserListExcludeVolume: a
} = z(MA()), {
callerUserInfo: n
} = z(vi()), {
isGroupCall: l
} = z(q()), i = xo(), u = p(() => {
var C, E;
return l.value ? n.value.displayUserInfo : (E = (C = a.value) == null ? void 0 : C[0]) == null ? void 0 : E.displayUserInfo;
}), s = p(() => {
var C, E;
return l.value ? n.value.avatar : (E = (C = a.value) == null ? void 0 : C[0]) == null ? void 0 : E.avatar;
}), r = p(() => l.value ? !0 : !e.value.isVideoAvailable), M = p(() => l.value ? v("Invited group call") : null), D = p(() => {
var C, E;
return l.value ? i.value[n.value.userId] || s.value : i.value[(E = (C = a.value) == null ? void 0 : C[0]) == null ? void 0 : E.userId] || s.value;
}), g = I(!1), N = I("fill");
let y = I(!1);
return QA(() => {
var C, E, w, L;
if (y.value) {
g.value = l.value ? !0 : !e.value.isVideoAvailable, N.value = "cover";
return;
}
l.value ? (g.value = !i.value[n.value.userId], N.value = i.value[n.value.userId] ? "fill" : "cover") : (g.value = !e.value.isVideoAvailable && !i.value[(E = (C = a.value) == null ? void 0 : C[0]) == null ? void 0 : E.userId], N.value = i.value[(L = (w = a.value) == null ? void 0 : w[0]) == null ? void 0 : L.userId] ? "fill" : "cover");
}), {
TUIGlobal: j,
t: v,
defaultAvatarSrc: GA,
remoteUserListExcludeVolume: a,
isGroupCall: l,
username: u,
avatar: s,
showBackgroundImage: r,
tip: M,
bgImage: D,
showMask: g,
fit: N,
handleError: () => {
y.value = !0;
}
};
};
st.components = Object.assign({
OverlayStream: Ho,
TKText: lA,
Avatar: qo
}, st.components);
var ic = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "waiting-container"
}, [e("OverlayStream", {
attrs: {
username: A.username,
avatar: A.avatar,
"bg-image": A.bgImage,
"show-avatar": !A.TUIGlobal.isPC,
"show-loading": !1,
"bg-color": "#22262ed9",
"show-mask": A.showMask,
"show-background-image": A.showBackgroundImage,
tip: A.tip,
fit: A.fit
},
on: {
error: A.handleError
}
}, [!A.TUIGlobal.isPC && A.isGroupCall ? e("div", {
staticClass: "groupcall-info"
}, [e("div", {
staticClass: "tip"
}, [e("TKText", {
attrs: {
color: "#FFF"
}
}, [A._v(A._s(A.remoteUserListExcludeVolume.length) + A._s(A.t("people in the call")))])], 1), e("div", {
staticClass: "avatar-group"
}, A._l(A.remoteUserListExcludeVolume, function(a) {
return e("div", {
staticClass: "avatar-item"
}, [e("Avatar", {
attrs: {
size: "100%",
src: a.avatar || A.defaultAvatarSrc
}
})], 1);
}), 0)]) : A._e()])], 1);
}, sc = [];
const an = {};
var uc = /* @__PURE__ */ S(
st,
ic,
sc,
!1,
cc,
"a1a05f80",
null,
null
);
function cc(A) {
for (let t in an)
this[t] = an[t];
}
const Ko = /* @__PURE__ */ function() {
return uc.exports;
}(), rc = {
bigWindow: {
type: String
},
showSmallWindow: {
type: Boolean,
default: !0
},
smallWindowWidth: {
type: String,
default: "30%"
},
smallWindowHeight: {
type: String,
default: "30%"
}
}, $o = "ToggleWindowContextKey", ua = {
options: {
virtualHost: !0
}
};
ua.props = rc;
ua.setup = (A, t) => {
const e = A, a = t.emit, n = I(e.bigWindow), l = `${x}-toggle-window`, i = (u) => {
n.value = u, a("toggle", u);
};
return J(() => e.bigWindow, () => {
n.value = e.bigWindow;
}), gA($o, {
bigWindow: n,
toggleWindow: i,
smallWindowWidth: wt(e, "smallWindowWidth"),
smallWindowHeight: wt(e, "smallWindowHeight"),
showSmallWindow: wt(e, "showSmallWindow")
}), {
toggleWindowContainerClassName: l
};
};
var Mc = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
class: A.toggleWindowContainerClassName
}, [A._t("default")], 2);
}, dc = [];
const nn = {};
var Ic = /* @__PURE__ */ S(
ua,
Mc,
dc,
!1,
gc,
null,
null,
null
);
function gc(A) {
for (let t in nn)
this[t] = nn[t];
}
const Nc = /* @__PURE__ */ function() {
return Ic.exports;
}(), ca = {
options: {
virtualHost: !0
}
};
ca.props = ["disabled"];
ca.setup = (A, t) => ({});
var pc = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("root-portal", {
attrs: {
enable: !A.disabled
}
}, [A._t("default")], 2);
}, Dc = [];
const on = {};
var Tc = /* @__PURE__ */ S(
ca,
pc,
Dc,
!1,
Cc,
null,
null,
null
);
function Cc(A) {
for (let t in on)
this[t] = on[t];
}
const yc = /* @__PURE__ */ function() {
return Tc.exports;
}(), Sc = {
name: "teleport",
props: {
to: {
type: String,
required: !0
},
source: {
type: String,
required: !0
},
disabled: {
type: Boolean,
required: !0
}
},
mounted() {
if (this.disabled)
return;
const A = document.querySelector(this.to);
A && A.appendChild(this.$el);
},
watch: {
disabled: {
immediate: !0,
handler() {
var A, t;
this.disabled ? (t = document.querySelector(this.source)) == null || t.appendChild(this.$el) : (A = document.querySelector(this.to)) == null || A.appendChild(this.$el);
}
}
},
destroyed() {
const A = document.querySelector(this.to);
if (A)
try {
A.removeChild(this.$el);
} catch (t) {
console.debug(t);
}
}
};
var Ec = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", [A._t("default")], 2);
}, hc = [];
const ln = {};
var mc = /* @__PURE__ */ S(
Sc,
Ec,
hc,
!1,
jc,
null,
null,
null
);
function jc(A) {
for (let t in ln)
this[t] = ln[t];
}
const vc = /* @__PURE__ */ function() {
return mc.exports;
}(), Al = {
options: {
virtualHost: !0
}
};
Al.props = ["disabled", "to"];
var fc = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("Teleport", {
attrs: {
disabled: A.disabled,
to: A.to
}
}, [A._t("default")], 2);
}, Lc = [];
const sn = {};
var Uc = /* @__PURE__ */ S(
Al,
fc,
Lc,
!1,
zc,
null,
null,
null
);
function zc(A) {
for (let t in sn)
this[t] = sn[t];
}
const wc = /* @__PURE__ */ function() {
return Uc.exports;
}(), Oc = {
disabled: {
type: Boolean,
default: !1
},
to: {
type: String,
default: "body"
},
source: {
type: String,
default: "body"
}
}, De = {};
De.props = Oc;
De.setup = (A, t) => {
const {
majorVersion: e
} = ts(), a = p(() => e === "3"), n = p(() => e === "2");
return {
IN_MINI_APP: Qt,
isVue3: a,
isVue2: n
};
};
De.components = Object.assign({
PortalMini: yc,
PortalVue2: vc,
PortalVue3: wc
}, De.components);
var xc = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", [A.IN_MINI_APP ? e("PortalMini", {
attrs: {
disabled: A.disabled
}
}, [A._t("default")], 2) : A.isVue2 ? e("PortalVue2", {
attrs: {
disabled: A.disabled,
to: A.to,
source: A.source
}
}, [A._t("default")], 2) : e("PortalVue3", {
attrs: {
disabled: A.disabled,
to: A.to
}
}, [A._t("default")], 2)], 1);
}, Vc = [];
const un = {};
var bc = /* @__PURE__ */ S(
De,
xc,
Vc,
!1,
Bc,
null,
null,
null
);
function Bc(A) {
for (let t in un)
this[t] = un[t];
}
const el = /* @__PURE__ */ function() {
return bc.exports;
}(), Fc = {
value: {
type: String
}
}, ra = {
options: {
virtualHost: !0
}
};
ra.props = Fc;
ra.setup = (A, t) => {
const e = A, {
bigWindow: a,
toggleWindow: n,
smallWindowWidth: l,
smallWindowHeight: i,
showSmallWindow: u
} = NA($o), s = p(() => X([`${x}-toggle-window-item`, `${x}-toggle-window-item--${a.value === e.value ? "big" : "small"}`, {
pc: WA,
mobile: !WA
}])), r = p(() => {
let M = {};
return a.value !== e.value && (M = {
width: l.value,
height: i.value
}, u.value ? M.visibility = "" : M.visibility = "hidden"), M;
});
return {
toggleWindow: n,
classname: s,
windowItemStyle: r
};
};
var Rc = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
class: A.classname,
style: [A.windowItemStyle],
on: {
click: function() {
return A.toggleWindow(A.value);
}
}
}, [A._t("default")], 2);
}, kc = [];
const cn = {};
var Pc = /* @__PURE__ */ S(
ra,
Rc,
kc,
!1,
Wc,
null,
null,
null
);
function Wc(A) {
for (let t in cn)
this[t] = cn[t];
}
const Gc = /* @__PURE__ */ function() {
return Pc.exports;
}(), Ma = {
nickName: {
type: String,
default: ""
},
isSelf: {
type: Boolean,
default: !1
},
isMuted: {
type: Boolean,
default: !1
},
volume: {
type: Number,
default: 0
},
showNickName: {
type: Boolean,
default: !1
},
showSwitchCameraButton: {
type: Boolean,
default: !1
},
showVirtualBackgroundButton: {
type: Boolean,
default: !1
},
showNetWorkStatus: {
type: Boolean,
default: !1
}
}, tl = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2RfMV8xOSkiPgo8ZWxsaXBzZSBjeD0iMjEuNjE2IiBjeT0iMjEuNTE3IiByeD0iMTkuNjE2IiByeT0iMTkuNTE3IiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxyZWN0IHg9IjciIHk9IjgiIHdpZHRoPSIyOSIgaGVpZ2h0PSIyOSIgZmlsbD0idXJsKCNwYXR0ZXJuMF8xXzE5KSIvPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9kXzFfMTkiIHg9IjAiIHk9IjAiIHdpZHRoPSI0My4yMzIiIGhlaWdodD0iNDMuMDM0IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPgo8ZmVPZmZzZXQvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxIi8+CjxmZUNvbXBvc2l0ZSBpbjI9ImhhcmRBbHBoYSIgb3BlcmF0b3I9Im91dCIvPgo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4yNSAwIi8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0iZWZmZWN0MV9kcm9wU2hhZG93XzFfMTkiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3dfMV8xOSIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPHBhdHRlcm4gaWQ9InBhdHRlcm4wXzFfMTkiIHBhdHRlcm5Db250ZW50VW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj4KPHVzZSB4bGluazpocmVmPSIjaW1hZ2UwXzFfMTkiIHRyYW5zZm9ybT0ic2NhbGUoMC4wMDUpIi8+CjwvcGF0dGVybj4KPGltYWdlIGlkPSJpbWFnZTBfMV8xOSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBTWdBQUFESUNBWUFBQUN0V0s2ZUFBQUFBWE5TUjBJQXJzNGM2UUFBSUFCSlJFRlVlRjd0WFhtY0ZOVzEvazUxenpETW9DUzRobTI2ZXJwblJveGJ4Q1VKUnR5QTZRYlhSOXppOG95YXVNU1h1Q1Z4ZVJJMWlVdGNzcWlKaVpyb2N3dFBpVUIzZ3lzdTcwVlJORThEd3ZRNk1CSXhpaUF5dzh4MDEzbmNZVXcwQ3RQVmRhdTZxdWJlMzg4L1pPNVo3bmZ2MTFWMTc3bm5FRlJUQ0NnRXRvb0FLV3dVQWdxQnJTT2dDS0pXaDBKZ0d3Z29ncWpsb1JCUUJGRnJRQ0ZRR1FMcUNWSVpia3BxaUNDZ0NESkVKbG9Oc3pJRUZFRXF3MDFKRFJFRUZFR0d5RVNyWVZhR2dDSklaYmdwcVNHQ2dDTElFSmxvTmN6S0VGQUVxUXczSlRWRUVGQUVHU0lUcllaWkdRS0tJSlhocHFTR0NBS0tJRU5rb3RVd0swTkFFYVF5M0pUVUVFRkFFY1NoaVdiTTBqckhMaDBHZkRDOFoxaGRBOU9tN2RGSDJ4TUNkWUJSUjRFQXNWR3FaUkJybXRiSGhtRXdqRTBBYldMUUppcnhCcW90YlZqWFBlekQrYXZuYlpvRkdBNjVQcVROS0lKSW5QNTBwRzE3WW0wOEd3Z0R4aGZCRkFIeGFJREdBOWlSZ0FZbTFJSVJyTWdzb2NpTUhnSStCT0U5WXF3MndEa05XaHBzWk5oQWUybDR6YXJXRlhNM1ZLUmZDWDBLQVVXUUNoZkZzc2FwWHhnV29BbUdvVTBDNFVBR1dnbjRBb0JoRmFxVUpkWUxvQlBBR3dBdjFraGJyQm44VjcyUWZGdVdnYUdrUnhHa2pObG1nRlkwemdocFZEb1l3QlFpSEVCQUl3T0JNc1NyM29XQUVnTWRSSGlwWk5EQ1dwU2VEUlVXZEJEQVZYZk81UTRvZ214bGd0N2VaVXJEaHZyQVY4SGEwU0NlQ2tBSDRCZThCREVLQUo0eXlKanorYnJ0bnR0NTJld1BYYjVXcStLZVh5WmNDbml2aFk3K1hEMTZwbXBFSndJNEJNRDJVaFM3WDhrR1lqeGhhSGlBTkg0aW1rbDk0SDZYbmZGd3lCTms2WVNadGNPNk5oN0tSTjlrY0p2NGtIWUdldGRhNlNjTEUvOCtNbXJjQWxweVo1OXJQWFhBc1NGTGtHeDRlclRFcGJNQk9ubmc0OW9CdUwxbWdsYUQrVjZVK0hmUlZhbXMxN3lYNGUrUUlzZ3N6TkpPQ2IvY1pyRHhIUUlkN3BXUGJCa1RiVkdIQWZBVG0xODViNDdrVTA4TXBZLzdJVUdRZkdoeVhRa05wekx4ZHdIc1puR3hER2x4Qmxab2pPczR5QTlHTTZrZXY0UGhhNEtzSGoyanZtdFk4UndHTGdSb3ROOG4wOUh4TWQ0aTRsdnFlNEozakY0OXI4dFIydzRhOHlWQm5nbE5yaHVMNGQ4R2FaY0E0aVJiTmJzUVlPQnZ4SHdEZ3JqRGowOFVYeEZFeER0bDlaZStZWUJtMFpaekM5V2NReUMzMmRTc1NINy8rd216ZkJNbjVodUNwUFcyS1FEZEFHQXY1OWFFc3ZRWkNQeUZpUzVwemlXZTlBTTZuaWRJTmp4OXZNSEdqUUMrN29jSjhkRVlaZ2VBUzhMNVpJZVh4K1JaZ3ZEa3ljRk1vZUVpRUY4SmRiam4xalhZQmNZMW5ZV3VueDJDUlVXM09ya3R2enhKa0d3NE50RUEvUWJNWC9JaTZFUE9aNkpYMmVCem13dkpsN3cyZGs4UnBEOHNaTlBHYThDNHlDdUhmQU9SdENLMjZWMEE3d0JZRGRBYUVML0hCdDdYUU4xTTNBMXdONVAyajQvYm9QZ2Y1Z2JXZUJReFJobk1PeERSRGdTTTRTMWg5VHNBMkE2QTVwRkZaNEJ4L2ZvZDFsdzFjY2tTejRTdmVJWWc2Y2JwWDRKbS9BN0FQaTVkRUNKQ2RnMFl5NGl3aEVHdms0WTNBeVYrcTZ1K1llM3V5MmFMZXhyUzJpdjc3bHN6YXUyWVVTWHUwMW1qc0Fic3p3YjJZTUp1Qk96cTRzampONWh4bGxlZUpxNG5pTGlMa1F2Rkx5MlJjUTJCYXFTdE1PdUt4Sy9nTWdEL0E4YmpGQ2krMnBRZHVab3d1MlJkZGVVYS9vaVpnVDFDRzhZRktiQWZ3Sk1KbUdRQUV3Z1YzbUtzM0pXdFNqSlExTUEvaU9SVE45bWdYcXBLVnhNazAzVE16bXhzdWhjZ2NSK2o2bzJBdHhsNEhFQUNBWDRtbWtuOXZlcE9sZUZBcG1uS3pxVlM0Q3NhMFRF
options: {
virtualHost: !0
}
};
Te.props = Ma;
Te.setup = (A, t) => ({
networkSrc: tl,
t: v
});
Te.components = Object.assign({
Row: $t,
Col: ea,
MicrophoneVolume: Jo,
TKText: lA,
TKImage: SA
}, Te.components);
var Qc = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("Row", [e("Col", {
attrs: {
span: 12,
justify: "start",
align: "center"
}
}, [e("div", {
staticClass: "stream-userInfo"
}, [e("MicrophoneVolume", {
staticClass: "mic-volume",
attrs: {
"is-muted": A.isMuted,
volume: A.volume
}
}), e("div", {
staticClass: "nickname"
}, [e("TKText", {
attrs: {
color: "#fff",
truncated: !0,
width: "80px",
size: "14px"
}
}, [A._v(A._s(A.nickName))]), e("TKText", {
directives: [{
name: "show",
rawName: "v-show",
value: A.isSelf,
expression: "isSelf"
}],
attrs: {
color: "#fff",
size: "14px"
}
}, [A._v(A._s(A.t("me")))])], 1)], 1)]), e("Col", {
attrs: {
span: 12,
justify: "center"
}
}, [A.showNetWorkStatus ? e("div", [e("TKImage", {
attrs: {
width: "24px",
height: "24px",
src: A.networkSrc
}
})], 1) : A._e()])], 1);
}, Zc = [];
const rn = {};
var Yc = /* @__PURE__ */ S(
Te,
Qc,
Zc,
!1,
Xc,
"2f962e88",
null,
null
);
function Xc(A) {
for (let t in rn)
this[t] = rn[t];
}
const _c = /* @__PURE__ */ function() {
return Yc.exports;
}(), qc = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZF8xMjRfNjQ3KSI+CjxjaXJjbGUgY3g9IjE0IiBjeT0iMTQiIHI9IjEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTUuODEyMiAyMi41MzgyQzE1LjgxMjIgMjIuNTM4MiAxNS44MTIzIDIyLjUzODEgMTUuODEyMyAyMi41MzgxQzIwLjUyNzggMTcuODIyNiAyMC41Mjc4IDEwLjE3NzIgMTUuODEyNCA1LjQ2MTY3TDE0LjA0NDYgNy4yMjk0NEMxNy43ODM4IDEwLjk2ODcgMTcuNzgzNyAxNy4wMzExIDE0LjA0NDUgMjAuNzcwNEMxNC4wNDQ1IDIwLjc3MDQgMTQuMDQ0NSAyMC43NzA0IDE0LjA0NDUgMjAuNzcwNEwxNS44MTIyIDIyLjUzODJaIiBmaWxsPSIjMUM2NkU1Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTIuMTg3OSAxOS4xMzU2QzEyLjE4NzkgMTkuMTM1NiAxMi4xODc5IDE5LjEzNTYgMTIuMTg4IDE5LjEzNTVDMTUuMDI0NiAxNi4yOTg5IDE1LjAyNDcgMTEuNjk5OCAxMi4xODgxIDguODYzMDRMMTAuNDIwMyAxMC42MzA4QzEyLjI4MDYgMTIuNDkxMiAxMi4yODA1IDE1LjUwNzQgMTAuNDIwMiAxNy4zNjc4QzEwLjQyMDIgMTcuMzY3OCAxMC40MjAxIDE3LjM2NzggMTAuNDIwMSAxNy4zNjc4TDEyLjE4NzkgMTkuMTM1NloiIGZpbGw9IiMxQzY2RTUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05LjEyMTQ0IDE2LjA2OTJDMTAuMjY0NCAxNC45MjYgMTAuMjY0MyAxMy4wNzI4IDkuMTIxMjggMTEuOTI5OEM5LjEyMTI2IDExLjkyOTcgOS4xMjEyNCAxMS45Mjk3IDkuMTIxMjIgMTEuOTI5N0w3LjEwMjk4IDEzLjk0NzlDNy4xMDMgMTMuOTQ3OSA3LjEwMzAyIDEzLjk0OCA3LjEwMzA0IDEzLjk0OEM3LjEzMTQ2IDEzLjk3NjQgNy4xMzE1MSAxNC4wMjI0IDcuMTAzMiAxNC4wNTA5TDkuMTIxNDQgMTYuMDY5MloiIGZpbGw9IiMxQzY2RTUiLz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZF8xMjRfNjQ3IiB4PSIwIiB5PSIwIiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+CjxmZU9mZnNldC8+CjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz4KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0ib3V0Ii8+CjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjI1IDAiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3dfMTI0XzY0NyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvd18xMjRfNjQ3IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=", Jc = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZF8xNzQxXzEwNjc4KSI+CjxjaXJjbGUgY3g9IjE0IiBjeT0iMTQiIHI9IjEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTAuNjY2NyAxMC4wMDAxQzEwLjY2NjcgOC4xNTkxMyAxMi4xNTkgNi42NjY3NSAxNCA2LjY2Njc1QzE1LjA1MzggNi42NjY3NSAxNS45OTM0IDcuMTU1NzQgMTYuNjA0MiA3LjkxOTJMMTAuNzMyIDE0Ljk5MzRDMTAuNjg5MSAxNC43ODAxIDEwLjY2NjcgMTQuNTU5NCAxMC42NjY3IDE0LjMzMzRWMTAuMDAwMVpNOS42Mjk3NSAxNi4zMjEyQzkuMzUzNzUgMTUuNzE1NSA5LjIgMTUuMDQyMyA5LjIgMTQuMzMzMlYxMy4zMzMySDguMTMzMzNWMTQuMzMzMkM4LjEzMzMzIDE1LjM4MDMgOC40MDc2NiAxNi4zNjM0IDguODg4MzYgMTcuMjE0NEw5LjYyOTc1IDE2LjMyMTJaTTEwLjkxMyAxOS4zMjNMMTEuNjAyNSAxOC40OTI1QzEyLjMwNzkgMTguOSAxMy4xMjY3IDE5LjEzMzIgMTQgMTkuMTMzMkMxNi42NTEgMTkuMTMzMiAxOC44IDE2Ljk4NDIgMTguOCAxNC4zMzMyVjEzLjMzMzJIMTkuODY2N1YxNC4zMzMyQzE5Ljg2NjcgMTcuMzkzNSAxNy41MjM1IDE5LjkwNjUgMTQuNTMzMyAyMC4xNzZWMjIuMDAwMUgxMy40NjY3VjIwLjE3NkMxMi41MzU3IDIwLjA5MjEgMTEuNjY3NCAxOS43OTA3IDEwLjkxMyAxOS4zMjNaTTEyLjU1OTEgMTcuMzQwMUwxNy4zMzMzIDExLjU4ODZWMTQuMzMzNEMxNy4zMzMzIDE2LjE3NDQgMTUuODQwOSAxNy42NjY3IDE0IDE3LjY2NjdDMTMuNDgzOSAxNy42NjY3IDEyLjk5NTIgMTcuNTQ5NSAxMi41NTkxIDE3LjM0MDFaIiBmaWxsPSIjRTYzOTVDIi8+CjxwYXRoIGQ9Ik05LjQyMzQgMTguODQ0N0wxNy43ODM0IDguNzc4MjciIHN0cm9rZT0iI0U2Mzk1QyIgc3Ryb2tlLXdpZHRoPSIxLjA2NjY3IiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2RfMTc0MV8xMDY3OCIgeD0iMCIgeT0iMCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZml
options: {
virtualHost: !0
}
};
Ce.props = Ma;
Ce.setup = (A, t) => {
const {
enableVirtualBackground: e
} = z(q());
return {
MicOnH5: qc,
MicOffH5: Jc,
SwitchCameraSrc: fA,
VirtualBackgroundOpenSrc: UA,
networkSrc: tl,
switchCamera: async () => {
await O.switchCamera();
},
setBlurBackground: async () => {
await O.setBlurBackground(!e.value);
}
};
};
Ce.components = Object.assign({
Row: $t,
Col: ea,
TKText: lA,
Icon: ft,
TKImage: SA
}, Ce.components);
var Hc = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("Row", {
attrs: {
"custom-style": {
padding: "2px 5px"
}
}
}, [e("Col", {
attrs: {
span: 12,
justify: "start",
align: "center"
}
}, [A.showNickName ? e("TKText", {
attrs: {
width: "100px",
truncated: !0,
color: "#FFF"
}
}, [A._v(" " + A._s(A.nickName) + " ")]) : A._e(), e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: !A.isMuted && A.volume,
expression: "!isMuted && volume"
}]
}, [e("Icon", {
attrs: {
size: 24,
src: A.MicOnH5
}
})], 1), e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.isMuted,
expression: "isMuted"
}]
}, [e("Icon", {
attrs: {
size: 24,
src: A.MicOffH5
}
})], 1)], 1), e("Col", {
attrs: {
span: 12,
justify: "end",
align: "center"
}
}, [A.showNetWorkStatus ? e("div", [e("TKImage", {
attrs: {
width: "24px",
height: "24px",
src: A.networkSrc
}
})], 1) : A._e(), A.showSwitchCameraButton ? e("div", {
staticClass: "switch-camera stream-icon",
on: {
click: function(a) {
return a.stopPropagation(), A.switchCamera.apply(null, arguments);
}
}
}, [e("TKImage", {
attrs: {
width: "15px",
height: "15px",
src: A.SwitchCameraSrc
}
})], 1) : A._e(), A.showVirtualBackgroundButton ? e("div", {
staticClass: "stream-icon",
on: {
click: function(a) {
return a.stopPropagation(), A.setBlurBackground.apply(null, arguments);
}
}
}, [e("TKImage", {
attrs: {
width: "15px",
height: "15px",
src: A.VirtualBackgroundOpenSrc
}
})], 1) : A._e()])], 1);
}, Kc = [];
const Mn = {};
var $c = /* @__PURE__ */ S(
Ce,
Hc,
Kc,
!1,
Ar,
"68708842",
null,
null
);
function Ar(A) {
for (let t in Mn)
this[t] = Mn[t];
}
const er = /* @__PURE__ */ function() {
return $c.exports;
}(), ye = {
options: {
virtualHost: !0
}
};
ye.props = Ma;
ye.setup = (A, t) => {
const {
isGroupCall: e
} = q(), a = j.isPC;
return {
isGroupCall: e,
isPC: a
};
};
ye.components = Object.assign({
StreamInfoPC: _c,
StreamInfoMobile: er
}, ye.components);
var tr = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", [A.isPC ? e("StreamInfoPC", {
attrs: {
nickName: A.nickName,
isSelf: A.isSelf,
isMuted: A.isMuted,
volume: A.volume,
showNetWorkStatus: A.showNetWorkStatus
}
}) : A._e(), A.isGroupCall && !A.isPC ? e("StreamInfoMobile", {
attrs: {
showSwitchCameraButton: A.showSwitchCameraButton,
showVirtualBackgroundButton: A.showVirtualBackgroundButton,
showNetWorkStatus: A.showNetWorkStatus,
nickName: A.nickName,
showNickName: A.showNickName,
isSelf: A.isSelf,
isMuted: A.isMuted,
volume: A.volume
}
}) : A._e()], 1);
}, ar = [];
const dn = {};
var nr = /* @__PURE__ */ S(
ye,
tr,
ar,
!1,
or,
null,
null,
null
);
function or(A) {
for (let t in dn)
this[t] = dn[t];
}
const al = /* @__PURE__ */ function() {
return nr.exports;
}(), lr = {
show: {
type: Boolean,
default: !0
},
domId: {
type: String
},
loading: {
type: Boolean
},
showStreamInfo: {
type: Boolean
},
showAudioStream: {
type: Boolean
}
}, da = {
options: {
virtualHost: !0
}
};
da.props = lr;
da.setup = (A, t) => {
const e = I(d.getData(c.CALL, o.PUSHER_ID)), a = X(["stream-info-container", {
mobile: !j.isPC
}]), n = (i) => {
e.value = i;
}, l = {
[o.PUSHER_ID]: n
};
return aA(() => {
d.watch(c.CALL, l, {
notifyRangeWhenWatch: o.MYSELF
});
}), tA(() => {
d.unwatch(c.CALL, l);
}), {
streamInfoContainerClassName: a
};
};
var ir = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.show,
expression: "show"
}],
staticClass: "pusher-container",
attrs: {
id: A.domId
}
}, [e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.showAudioStream,
expression: "showAudioStream"
}],
staticClass: "audio-stream-container"
}, [A._t("audio-stream")], 2), A._t("loading"), e("div", {
class: A.streamInfoContainerClassName
}, [A._t("stream-info")], 2)], 2);
}, sr = [];
const In = {};
var ur = /* @__PURE__ */ S(
da,
ir,
sr,
!1,
cr,
"71047565",
null,
null
);
function cr(A) {
for (let t in In)
this[t] = In[t];
}
const nl = /* @__PURE__ */ function() {
return ur.exports;
}(), Ia = {
options: {
virtualHost: !0
}
};
Ia.props = {
remoteClass: {
type: String,
required: !0
},
domId: {
type: String
}
};
Ia.setup = (A, t) => {
const e = I(d.getData(c.CALL, o.PLAYER)), a = I(d.getData(c.CALL, o.CALL_STATUS)), n = I(d.getData(c.CALL, o.IS_EAR_PHONE) ? Ae.EAR : Ae.SPEAKER), l = A, i = (T) => {
e.value = JSON.parse(JSON.stringify(T));
}, u = p(() => {
var T;
return (T = e.value) == null ? void 0 : T.find((C) => (C == null ? void 0 : C.userID) === l.domId);
}), s = (T) => {
a.value = T;
}, r = (T) => {
n.value = T ? Ae.EAR : Ae.SPEAKER;
}, M = {
[o.PLAYER]: i,
[o.CALL_STATUS]: s,
[o.IS_EAR_PHONE]: r
};
aA(() => {
d.watch(c.CALL, M, {
notifyRangeWhenWatch: o.MYSELF
});
}), tA(() => {
d.unwatch(c.CALL, M);
});
function D(T) {
O._tuiCallEngine._playerStateChange(T);
}
function g(T) {
}
function N(T) {
O._tuiCallEngine._playNetStatus(T);
}
function y(T) {
O._tuiCallEngine._playerAudioVolumeNotify(T);
}
return {
soundMode: n,
item: u,
playerStateChange: D,
playerFullscreenChange: g,
playNetStatus: N,
playerAudioVolumeNotify: y
};
};
var rr = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
class: A.remoteClass
}, [A.item && (A.item.hasAudio || A.item.hasVideo) ? e("live-player", {
staticClass: "stream",
attrs: {
id: A.item.id,
"data-userid": A.item.userID,
"data-streamid": A.item.streamID,
"data-streamtype": A.item.streamType,
src: A.item.src,
mode: "RTC",
autoplay: A.item.autoplay,
"mute-audio": A.item.muteAudio,
"mute-video": A.item.muteVideo,
orientation: A.item.orientation,
"object-fit": A.item.objectFit,
"background-mute": A.item.enableBackgroundMute,
"min-cache": A.item.minCache,
"max-cache": A.item.maxCache,
"sound-mode": A.soundMode,
"enable-recv-message": A.item.enableRecvMessage,
"auto-pause-if-navigate": A.item.autoPauseIfNavigate,
"auto-pause-if-open-native": A.item.autoPauseIfOpenNative
},
on: {
statechange: A.playerStateChange,
fullscreenchange: A.playerFullscreenChange,
netstatus: A.playNetStatus,
audiovolumenotify: A.playerAudioVolumeNotify
}
}) : A._e()], 1);
}, Mr = [];
const gn = {};
var dr = /* @__PURE__ */ S(
Ia,
rr,
Mr,
!1,
Ir,
"34819670",
null,
null
);
function Ir(A) {
for (let t in gn)
this[t] = gn[t];
}
const gr = /* @__PURE__ */ function() {
return dr.exports;
}(), Nr = {
show: {
type: Boolean,
default: !0
},
domId: {
type: String
},
loading: {
type: Boolean
},
showStreamInfo: {
type: Boolean
},
showAudioStream: {
type: Boolean
}
}, Se = {
options: {
virtualHost: !0
}
};
Se.props = Nr;
Se.setup = (A, t) => {
const e = X(["stream-info-container", {
mobile: !j.isPC
}]);
return {
TUIGlobal: j,
streamInfoContainerClassName: e
};
};
Se.components = Object.assign({
WXPlayer: gr
}, Se.components);
var pr = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.show,
expression: "show"
}],
staticClass: "player-container",
attrs: {
id: A.domId
}
}, [e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.showAudioStream,
expression: "showAudioStream"
}],
staticClass: "audio-stream-container"
}, [A._t("audio-stream")], 2), A._t("loading"), e("div", {
class: A.streamInfoContainerClassName
}, [A._t("stream-info")], 2), A.TUIGlobal.isWeChat ? e("WXPlayer", {
attrs: {
"dom-id": A.domId,
remoteClass: "small-view"
}
}) : A._e()], 2);
}, Dr = [];
const Nn = {};
var Tr = /* @__PURE__ */ S(
Se,
pr,
Dr,
!1,
Cr,
"91fc5e7a",
null,
null
);
function Cr(A) {
for (let t in Nn)
this[t] = Nn[t];
}
const ol = /* @__PURE__ */ function() {
return Tr.exports;
}(), yr = {
avatar: {
type: String
},
username: {
type: String
},
isVideoAvailable: {
type: Boolean
},
showStreamInfo: {
type: Boolean
},
isSmallWindow: {
type: Boolean,
default: !1
},
isMuted: {
type: Boolean,
default: !0
},
volume: {
type: Number,
default: 0
},
userId: {
type: String
}
}, Ee = {
options: {
virtualHost: !0
}
};
Ee.props = yr;
Ee.setup = (A, t) => {
const e = A, a = xo(), {
callType: n,
isGroupCall: l
} = z(q()), {
isFloatWindow: i
} = z(CA()), u = p(() => !l.value && !j.isPC), s = p(() => l.value ? j.isPC : n.value === F.AUDIO), r = p(() => !l.value && j.isPC && n.value === F.AUDIO), M = p(() => ({
zIndex: 1
})), D = p(() => a.value[e.userId] || e.avatar), g = I(!a.value[e.userId]), N = I(a.value[e.userId] ? "fill" : "cover");
return J([() => e.userId, a], () => {
a.value[e.userId] ? (N.value = "fill", g.value = !1) : (N.value = "cover", g.value = !0);
}, {
immediate: !0
}), {
isGroupCall: l,
isFloatWindow: i,
showAvatar: u,
showUserName: s,
showMicVolume: r,
audioStreamStyle: M,
bgImage: D,
showViewMask: g,
fit: N,
handleError: () => {
g.value = !0, N.value = "cover";
}
};
};
Ee.components = Object.assign({
OverlayStream: Ho
}, Ee.components);
var Sr = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("OverlayStream", {
attrs: {
avatar: A.avatar,
"bg-image": A.bgImage,
"show-avatar": A.showAvatar,
username: A.username,
"show-user-name": A.showUserName,
"show-mask": !A.isGroupCall && A.showViewMask,
fit: A.fit,
blur: !A.isGroupCall,
"show-mic-volume": A.showMicVolume,
"show-tip": !A.isGroupCall && !A.isFloatWindow,
"custom-style": A.audioStreamStyle,
"is-small-window": A.isSmallWindow,
"is-muted": A.isMuted,
volume: A.volume,
"bg-color": "rgba(0, 0, 0, 0.5)"
},
on: {
error: A.handleError
}
});
}, Er = [];
const pn = {};
var hr = /* @__PURE__ */ S(
Ee,
Sr,
Er,
!1,
mr,
null,
null,
null
);
function mr(A) {
for (let t in pn)
this[t] = pn[t];
}
const ll = /* @__PURE__ */ function() {
return hr.exports;
}(), jr = "data:image/svg+xml;base64,IDxzdmcgd2lkdGg9IjI2IiBoZWlnaHQ9IjI2IiB2aWV3Qm94PSIwIDAgMjYgMjYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgPHBhdGggZD0iTTE4LjQ0MzcgMTIuNDQ5QzE4LjQ0MzcgMTQuMTE0MiAxOC4yMzM2IDE1LjM1MTUgMjEuNTA4OSAxNS43MTI2QzI0Ljc4NzUgMTYuMDczNyAyNC4zNjY2IDEzLjY3OTQgMjQuMzY2MiAxMi4wNjY5QzI0LjM2NDkgMTAuMjA2MSAyMC4wNjAyIDcuNjE4OTUgMTMuMjcyNiA3LjYxNzNDNi40ODY2MiA3LjYxNzM1IDIuMTc4OSAxMC4yMDUgMi4xNzg4OCAxMi4wNjdDMi4xNzg4NyAxMy42OCAxLjc1NjIxIDE2LjA3MjYgNS4wMzMxNSAxNS43MTIzQzguMzEwMDkgMTUuMzUzNyA4LjEwMDA1IDE0LjExNTUgOC4wOTgzNyAxMi40NDk1QzguMTAxMzQgMTEuMjg2MiAxMC43NTg3IDExLjAzMTYgMTMuMjcyNSAxMS4wMjk4QzE1Ljc4NjMgMTEuMDI4MSAxOC40NDU0IDExLjI4NDQgMTguNDQzNyAxMi40NDlaIiBmaWxsPSIjRkUzQzQ0Ii8+CiAgICA8L3N2Zz4=", vr = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02LjY2NjY2IDQuMTY2NjhDNi42NjY2NiAyLjMyODM0IDguMTYxNjYgMC44MzMzNDQgOS45OTk5OSAwLjgzMzM0NEMxMS44MzgzIDAuODMzMzQ0IDEzLjMzMzMgMi4zMjgzNCAxMy4zMzMzIDQuMTY2NjhWOS4xNjY2OEMxMy4zMzMzIDExLjAwNSAxMS44MzgzIDEyLjUgOS45OTk5OSAxMi41QzguMTYxNjYgMTIuNSA2LjY2NjY2IDExLjAwNSA2LjY2NjY2IDkuMTY2NjhWNC4xNjY2OFpNNi42NjY2NiAxOC4zMzMzQzYuNjY2NjYgMTcuODcyNSA3LjAzOTk5IDE3LjUgNy40OTk5OSAxNy41SDEyLjVDMTIuOTYwOCAxNy41IDEzLjMzMzMgMTcuODcyNSAxMy4zMzMzIDE4LjMzMzNDMTMuMzMzMyAxOC43OTQyIDEyLjk2MDggMTkuMTY2NyAxMi41IDE5LjE2NjdINy40OTk5OUM3LjAzOTk5IDE5LjE2NjcgNi42NjY2NiAxOC43OTQyIDYuNjY2NjYgMTguMzMzM1oiIGZpbGw9IiMxMDE0MTkiLz4KPHBhdGggZD0iTTE1LjgzMzMgOC4zNTEyVjkuNTA4MjVDMTUuODMzMyAxMi4wODEgMTMuMjIxNyAxNSA5Ljk5OTk5IDE1QzYuNzc4MzMgMTUgNC4xNjY2NiAxMi4wODEgNC4xNjY2NiA5LjUwODI1VjguMzMzMzQiIHN0cm9rZT0iIzEwMTQxOSIgc3Ryb2tlLXdpZHRoPSIxLjY2NjY3IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPC9zdmc+", fr = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAxNSAyMSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC42MjQ3IDAuNzE5MTY4QzE0LjE5MzQgMC4zNzQxNTggMTMuNTY0MSAwLjQ0NDA4IDEzLjIxOTEgMC44NzUzNDJMMTAuODE2OCAzLjgzMjAzQzEwLjE3ODkgMy4wMjQ1NSA5LjE1Mzg3IDIuNTAwMDQgOC4wMDAwMSAyLjUwMDA0QzYuMDY5NzYgMi41MDAwNCA0LjUwMDAxIDMuOTY3ODUgNC41MDAwMSA1Ljc3Mjc2VjEwLjY4MTlDNC41MDAwMSAxMC45NTYzIDQuNTM2MyAxMS4yMjI5IDQuNjA0NjMgMTEuNDc3OEwzLjM4OCAxMi45NzUyQzIuOTg0NDkgMTIuMzQzMyAyLjc1MDAxIDExLjY1MjIgMi43NTAwMSAxMC45NzE3VjkuODE4MTlMMi43NDMxOSA5LjcxNTU2QzIuNjg5MiA5LjMxMjEzIDIuMzIxMDggOS4wMDAwMSAxLjg3NTAxIDkuMDAwMDFDMS4zOTE3NiA5LjAwMDAxIDEuMDAwMDEgOS4zNjYzMiAxLjAwMDAxIDkuODE4MTlWMTAuOTcxN0wxLjAwNDY2IDExLjE3NjFDMS4wNTU1NyAxMi4yOTY4IDEuNTIxNjEgMTMuNDAxNiAyLjI2OTM5IDE0LjM1MTlMMC4yMTkxMzcgMTYuODc1M0wwLjE0Njg2MSAxNi45NzgyQy0wLjExMjk3NyAxNy40MDE3IC0wLjAyMjc3NjcgMTcuOTYyNCAwLjM3NTMxMSAxOC4yODA5QzAuODA2NTczIDE4LjYyNTkgMS40MzU4NyAxOC41NTYgMS43ODA4OCAxOC4xMjQ3TDMuNzE2NjEgMTUuNzQyM0MzLjcxODQ5IDE1Ljc0MzcgMy43MjAzOCAxNS43NDUgMy43MjIyNyAxNS43NDY0TDQuMjk5NyAxNS4wMjQ2TDguMjgwODggMTAuMTI0N0wxNC43ODA5IDIuMTI0NzNMMTQuODUzMiAyLjAyMTkxQzE1LjExMyAxLjU5ODM0IDE1LjAyMjggMS4wMzc2NCAxNC42MjQ3IDAuNzE5MTY4Wk03LjcyNDk5IDEzLjk0NDZMMTEuNSA5LjIyNTgyVjEwLjY4MTlDMTEuNSAxMi40ODY4IDkuOTMwMjYgMTMuOTU0NiA4LjAwMDAxIDEzLjk1NDZDNy45MDc0NiAxMy45NTQ2IDcuODE1NzUgMTMuOTUxMiA3LjcyNDk5IDEzLjk0NDZaTTYuNjA0NDUgMTUuMzQ1M0w1LjUwNzk4IDE2LjcxNTlDNi4yOTIyNSAxNy4wMTM2IDcuMTM1MzIgMTcuMTgxOCA4LjAwMDAxIDE3LjE4MThDMTEuNjk3NiAxNy4xODE4IDE1IDE0LjEwNjQgMTUgMTAuOTcxN1Y5LjgzNTcyTDE0Ljk5MzIgOS43MzMwOUMxNC45MzkyIDkuMzI5NjYgMTQuNTcxMSA5LjAxNzU0IDE0LjEyNSA5LjAxNzU0QzEzLjY0MTggOS4wMTc1NCAxMy4yNSA5LjM4Mzg1IDEzLjI1IDkuODM1NzJWMTAuOTcxN0wxMy4yNDQ1IDExLjE1MjdDMTMuMTEzOCAxMy4zMjYyIDEwLjY1ODkgMTUuNTQ1NSA4LjAwMDAxIDE1LjU0NTVDNy41MjQyNCAxNS41NDU1IDcuMDU1MDEgMTUuNDc0NCA2LjYwNDQ1IDE1LjM0NTNaTTUuMzc1MDEgMTguODYzN0M0Ljg5MjAxIDE4Ljg2MzcgNC41MDAwMSAxOS4yMjk0IDQuNTAwMDEgMTkuNjgxOUM0LjUwMDAxIDIwLjEzNDMgNC44OTIwMSAyMC41IDUuMzc1MDEgMjAuNUgxMC42MjVDMTEuMTA4OSAyMC41IDExLjUgMjAuMTM0MyAxMS41IDE5LjY4MTlDMTEuNSAxOS4yMjk0IDExLjEwODkgMTguODYzNyAxMC42MjUgMTguODYzN0g1LjM3NTAxWiIgZmlsbD0iIzEwMTQxOSIvPgo8L3N2Zz4=", Lr = "data:im
options: {
virtualHost: !0
}
};
il.setup = (A, t) => {
const {
localUserInfoExcludeVolume: e
} = z(MA()), {
callRole: a,
callStatus: n
} = z(q()), {
isFloatWindow: l
} = z(CA());
function i() {
O.toggleMinimize();
}
async function u() {
a.value === K.CALLEE && n.value === U.CALLING ? await O.reject() : await O.hangup();
}
async function s() {
e.value.isAudioAvailable ? await O.closeMicrophone() : await O.openMicrophone();
}
return {
FloatCallEnd: jr,
FloatMicrophoneSVG: vr,
FloatMicrophoneClosedSVG: fr,
FloatFullScreenSVG: Lr,
localUserInfo: e,
isFloatWindow: l,
toggleMinimize: i,
hangup: u,
toggleMicrophone: s
};
};
var Ur = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "float-window-container"
}, [e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.isFloatWindow,
expression: "isFloatWindow"
}],
staticClass: "float-control-panel"
}, [e("div", {
staticClass: "float-control-item-icon"
}, [e("div", {
staticClass: "float-control-item-icon-container",
on: {
click: A.hangup
}
}, [e("img", {
attrs: {
src: A.FloatCallEnd
}
})])]), e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.isFloatWindow,
expression: "isFloatWindow"
}],
staticClass: "float-control-item-icon"
}, [e("div", {
staticClass: "float-control-item-icon-container",
on: {
click: A.toggleMicrophone
}
}, [A.localUserInfo.isAudioAvailable ? e("img", {
attrs: {
src: A.FloatMicrophoneSVG
}
}) : e("img", {
attrs: {
src: A.FloatMicrophoneClosedSVG
}
})])]), e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.isFloatWindow,
expression: "isFloatWindow"
}],
staticClass: "float-control-item-icon"
}, [e("div", {
staticClass: "float-control-item-icon-container",
on: {
click: A.toggleMinimize
}
}, [e("img", {
attrs: {
src: A.FloatFullScreenSVG
}
})])])]), e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: !A.isFloatWindow,
expression: "!isFloatWindow"
}]
}, [A._t("default")], 2)]);
}, zr = [];
const Dn = {};
var wr = /* @__PURE__ */ S(
il,
Ur,
zr,
!1,
Or,
"4df5fc21",
null,
null
);
function Or(A) {
for (let t in Dn)
this[t] = Dn[t];
}
const xr = /* @__PURE__ */ function() {
return wr.exports;
}(), sl = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAuNzYwOTYxIDkuMzMxNTRDMC4wMDEyMzUwNyA3LjEzMzcxIDAuOTYyOTY4IDQuNzczMjMgMi44MzM0NSAzLjM5MDk3QzQuMjUxNTIgMi4zNDMwNCA1LjY3NjAzIDEuMjg0NyA2LjQ4ODg5IDAuNjgwMTI0QzYuODc1MTUgMC4zOTI4MzcgNy40MTY2MSAwLjQ1NTY4IDcuNzI4NDEgMC44MjIzOTdMMTIuMTU4IDYuMDMyMTRDMTIuNDQ3NiA2LjM3Mjc1IDEyLjQ0NzcgNi44NzI5NSAxMi4xNTgzIDcuMjEzNzNMOS40NDIyIDEwLjQxMTlDOS4xOTQ5NiAxMC43MDMxIDkuMTUzNzggMTEuMTE4MyA5LjM0OTI1IDExLjQ0NjVDMTAuMjI5MyAxMi45MjM4IDExLjE5NSAxNC4xODkxIDEyLjUgMTUuNDkzOEMxMy44MTI3IDE2LjgwNiAxNS4wNzc4IDE3Ljc1MjkgMTYuNTYzNSAxOC42MzA4QzE2Ljg5MTkgMTguODI0OCAxNy4zMDY1IDE4Ljc4MzYgMTcuNTk3NCAxOC41MzY4TDIwLjc4MjYgMTUuODM1MUMyMS4xMjM0IDE1LjU0NTkgMjEuNjIzNyAxNS41NDYxIDIxLjk2NDMgMTUuODM1NkwyNy4xNzgzIDIwLjI2NjJDMjcuNTQ0MSAyMC41NzcgMjcuNjA2NiAyMS4xMTc5IDI3LjMyMTMgMjEuNTAzOEwyNC41OTM3IDI1LjE5MzZDMjMuMjIyNSAyNy4wNDg2IDIwLjg4MDQgMjcuOTkxOSAxOC42OTg3IDI3LjI0MTNDMTQuNjY1OCAyNS44NTM4IDEwLjg3ODEgMjMuNTUxMSA3LjY1OTIyIDIwLjMzMzFDNC40NDk1NyAxNy4xMjQ0IDIuMTUwMTUgMTMuMzUwMyAwLjc2MDk2MSA5LjMzMTU0WiIgZmlsbD0iIzEyQjk2OSIvPgo8L3N2Zz4K", ut = {
options: {
virtualHost: !0
}
};
ut.setup = (A, t) => {
const {
callType: e,
callStatus: a
} = z(q()), {
isFloatWindow: n
} = z(CA()), {
callDuration: l
} = Ht(), i = p(() => X(["float-window-container", {
"singlecall-video-float": e.value === F.VIDEO && n.value,
"singlecall-audio-float": e.value === F.AUDIO && n.value
}]));
function u() {
n.value && O.toggleMinimize();
}
return {
CallMediaType: F,
CallStatus: U,
t: v,
earphoneSrc: sl,
callType: e,
callStatus: a,
isFloatWindow: n,
callDuration: l,
floatWindowClassName: i,
closeFloatWindow: u
};
};
ut.components = Object.assign({
TKText: lA,
TKImage: SA,
Timer: sa
}, ut.components);
var Vr = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
class: A.floatWindowClassName
}, [e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: !(A.isFloatWindow && A.callType === A.CallMediaType.AUDIO),
expression: "!(isFloatWindow && callType === CallMediaType.AUDIO)"
}],
staticClass: "singlecall-video-float-content",
on: {
click: A.closeFloatWindow
}
}, [A._t("default"), e("div", {
staticClass: "float-window-tip-container"
}, [A.callStatus === A.CallStatus.CALLING && A.isFloatWindow ? e("TKText", {
attrs: {
color: "#FFF",
size: "12px"
}
}, [A._v(A._s(A.t("wait to be called")))]) : A._e()], 1)], 2), e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.isFloatWindow && A.callType === A.CallMediaType.AUDIO,
expression: "isFloatWindow && callType === CallMediaType.AUDIO"
}],
staticClass: "singlecall-audio-float-content",
on: {
click: A.closeFloatWindow
}
}, [e("TKImage", {
attrs: {
width: "36px",
height: "36px",
src: A.earphoneSrc
}
}), A.callStatus === A.CallStatus.CONNECTED ? e("Timer", {
attrs: {
fontSize: "12px",
callDuration: A.callDuration,
color: "#12b969"
}
}) : A._e(), A.callStatus === A.CallStatus.CALLING && A.isFloatWindow ? e("TKText", {
attrs: {
color: "#12b969",
size: "12px"
}
}, [A._v(A._s(A.t("wait to be called")))]) : A._e()], 1)]);
}, br = [];
const Tn = {};
var Br = /* @__PURE__ */ S(
ut,
Vr,
br,
!1,
Fr,
"73a848fe",
null,
null
);
function Fr(A) {
for (let t in Tn)
this[t] = Tn[t];
}
const Rr = /* @__PURE__ */ function() {
return Br.exports;
}(), kr = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjkxNjUgNy41NjkzN1Y2LjgzODg3SDMuNDE2NVY3LjU2OTM3QzMuNDE2NSAxMC4xMDA3IDUuNDY4NTMgMTIuMTUyNyA3Ljk5OTg0IDEyLjE1MjdDMTAuNTMxMSAxMi4xNTI3IDEyLjU4MzIgMTAuMTAwNyAxMi41ODMyIDcuNTY5MzZWNi44Mzg4N0gxNC4wODMyVjcuNTY5MzZDMTQuMDgzMiAxMC42NzUxIDExLjc1NTcgMTMuMjM3MyA4Ljc0OTg4IDEzLjYwNjlWMTQuOTA4OUg3LjI0OTg4VjEzLjYwNjlDNC4yNDM5OCAxMy4yMzc0IDEuOTE2NSAxMC42NzUyIDEuOTE2NSA3LjU2OTM3WiIgZmlsbD0iIzEyQjk2OSIvPgo8cmVjdCB4PSI0LjY2Njc1IiB5PSIxLjA5MDgyIiB3aWR0aD0iNi42NjY2NyIgaGVpZ2h0PSI5Ljg5NjkiIHJ4PSIzLjMzMzMzIiBmaWxsPSIjMTJCOTY5Ii8+Cjwvc3ZnPgo=", Pr = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi42NzE2IDYuMTE2OTJDMTIuNDY4NyA2LjIxODY5IDEyLjM0MDYgNi40MjYyNSAxMi4zNDA2IDYuNjUzMjRWOS4zNDY0OEMxMi4zNDA2IDkuNTczNDggMTIuNDY4NyA5Ljc4MTA1IDEyLjY3MTYgOS44ODI4MUwxNS40NzQ0IDExLjI4ODRDMTUuNjA3NCAxMS4zNTUxIDE1Ljc2NCAxMS4yNTg0IDE1Ljc2NCAxMS4xMDk2TDE1Ljc2NCA0Ljg4OTk2QzE1Ljc2NCA0Ljc0MTE3IDE1LjYwNzQgNC42NDQ0OCAxNS40NzQ0IDQuNzExMThMMTIuNjcxNiA2LjExNjkyWiIgZmlsbD0iIzEyQjk2OSIvPgo8ZyBmaWx0ZXI9InVybCgjZmlsdGVyMF9iXzE5NzdfMTE2MzApIj4KPHJlY3QgeD0iMC42NjY3NDgiIHk9IjIuODkzNTUiIHdpZHRoPSIxMC42NjY3IiBoZWlnaHQ9IjEwLjIxMjgiIHJ4PSIxLjUiIGZpbGw9IiMxMkI5NjkiLz4KPC9nPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9iXzE5NzdfMTE2MzAiIHg9Ii03LjMzMzI1IiB5PSItNS4xMDY0NSIgd2lkdGg9IjI2LjY2NjYiIGhlaWdodD0iMjYuMjEyNiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uPSI0Ii8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8xOTc3XzExNjMwIi8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8xOTc3XzExNjMwIiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=", Wr = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjkxNjUgNy41NjkzN1Y2LjgzODg3SDMuNDE2NVY3LjU2OTM3QzMuNDE2NSAxMC4xMDA3IDUuNDY4NTMgMTIuMTUyNyA3Ljk5OTg0IDEyLjE1MjdDMTAuNTMxMSAxMi4xNTI3IDEyLjU4MzIgMTAuMTAwNyAxMi41ODMyIDcuNTY5MzZWNi44Mzg4N0gxNC4wODMyVjcuNTY5MzZDMTQuMDgzMiAxMC42NzUxIDExLjc1NTcgMTMuMjM3MyA4Ljc0OTg4IDEzLjYwNjlWMTQuOTA4OUg3LjI0OTg4VjEzLjYwNjlDNC4yNDM5OCAxMy4yMzc0IDEuOTE2NSAxMC42NzUyIDEuOTE2NSA3LjU2OTM3WiIgZmlsbD0iI0FEQURBRCIvPgo8cmVjdCB4PSI0LjY2Njc1IiB5PSIxLjA5MDgyIiB3aWR0aD0iNi42NjY2NyIgaGVpZ2h0PSI5Ljg5NjkiIHJ4PSIzLjMzMzMzIiBmaWxsPSIjQURBREFEIi8+Cjwvc3ZnPgo=", Gr = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi42NzE2IDUuNzc2NTlDMTIuNDY4NyA1Ljg3ODM1IDEyLjM0MDYgNi4wODU5MSAxMi4zNDA2IDYuMzEyOTFWOS4wMDYxNEMxMi4zNDA2IDkuMjMzMTUgMTIuNDY4NyA5LjQ0MDcyIDEyLjY3MTYgOS41NDI0OEwxNS40NzQ0IDEwLjk0OEMxNS42MDc0IDExLjAxNDcgMTUuNzY0IDEwLjkxOCAxNS43NjQgMTAuNzY5M0wxNS43NjQgNC41NDk2MkMxNS43NjQgNC40MDA4NCAxNS42MDc0IDQuMzA0MTUgMTUuNDc0NCA0LjM3MDg1TDEyLjY3MTYgNS43NzY1OVoiIGZpbGw9IiNBREFEQUQiLz4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfYl8xMzFfMTQ0OSkiPgo8cmVjdCB4PSIwLjY2Njc0OCIgeT0iMi41NTMyMiIgd2lkdGg9IjEwLjY2NjciIGhlaWdodD0iMTAuMjEyOCIgcng9IjEuNSIgZmlsbD0iI0FEQURBRCIvPgo8L2c+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2JfMTMxXzE0NDkiIHg9Ii03LjMzMzI1IiB5PSItNS40NDY3OCIgd2lkdGg9IjI2LjY2NjciIGhlaWdodD0iMjYuMjEyNiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uP
options: {
virtualHost: !0
}
};
ct.setup = (A, t) => {
const {
isFloatWindow: e
} = z(CA()), {
callDuration: a
} = Ht(), {
localUserInfoExcludeVolume: n
} = z(MA()), {
callStatus: l
} = z(q()), i = p(() => n.value.isAudioAvailable ? kr : Wr), u = p(() => n.value.isVideoAvailable ? Pr : Gr), s = p(() => X(["groupcall-video-float", {
"not-float": !e.value,
float: e.value
}]));
function r() {
e.value && O.toggleMinimize();
}
return {
CallStatus: U,
t: v,
earphoneSrc: sl,
isFloatWindow: e,
callDuration: a,
callStatus: l,
microphoneSrc: i,
cameraSrc: u,
floatWindowClassName: s,
closeFloatWindow: r
};
};
ct.components = Object.assign({
TKImage: SA,
Timer: sa,
TKText: lA
}, ct.components);
var Qr = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
class: A.floatWindowClassName
}, [A.isFloatWindow ? e("div", {
staticClass: "click-container",
on: {
"!click": function(a) {
return a.stopPropagation(), A.closeFloatWindow.apply(null, arguments);
}
}
}) : A._e(), e("div", {
staticClass: "stream-container"
}, [e("div", {
staticClass: "video"
}, [A._t("default")], 2), e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.isFloatWindow,
expression: "isFloatWindow"
}],
staticClass: "audio"
}, [e("TKImage", {
attrs: {
width: "36px",
height: "36px",
src: A.earphoneSrc
}
}), A.callStatus === A.CallStatus.CONNECTED ? e("Timer", {
attrs: {
fontSize: "12px",
callDuration: A.callDuration,
color: "#12b969"
}
}) : A._e(), A.callStatus === A.CallStatus.CALLING ? e("TKText", {
attrs: {
size: "12px",
color: "#12b969"
}
}, [A._v(A._s(A.t("wait to be called")))]) : A._e()], 1)]), e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.isFloatWindow,
expression: "isFloatWindow"
}],
staticClass: "device-status"
}, [e("TKImage", {
attrs: {
width: "16px",
height: "16px",
src: A.microphoneSrc
}
}), e("TKImage", {
attrs: {
width: "16px",
height: "16px",
src: A.cameraSrc
}
})], 1)]);
}, Zr = [];
const Cn = {};
var Yr = /* @__PURE__ */ S(
ct,
Qr,
Zr,
!1,
Xr,
"04a48581",
null,
null
);
function Xr(A) {
for (let t in Cn)
this[t] = Cn[t];
}
const _r = /* @__PURE__ */ function() {
return Yr.exports;
}(), rt = {
options: {
virtualHost: !0
}
};
rt.setup = (A, t) => {
const {
isGroupCall: e
} = z(q());
return {
isGroupCall: e
};
};
rt.components = Object.assign({
FloatWindowSingleCall: Rr,
FloatWindowGroupCall: _r
}, rt.components);
var qr = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
attrs: {
id: "float-window-id"
}
}, [A.isGroupCall ? e("FloatWindowGroupCall", [A._t("default")], 2) : e("FloatWindowSingleCall", [A._t("default")], 2)], 1);
}, Jr = [];
const yn = {};
var Hr = /* @__PURE__ */ S(
rt,
qr,
Jr,
!1,
Kr,
null,
null,
null
);
function Kr(A) {
for (let t in yn)
this[t] = yn[t];
}
const $r = /* @__PURE__ */ function() {
return Hr.exports;
}(), Mt = {
options: {
virtualHost: !0
}
};
Mt.setup = (A, t) => {
const {
isFloatWindow: e
} = z(CA()), a = p(() => X(["float-window-container", {
float: e.value,
"not-float": !e.value,
pc: j.isPC,
mobile: !j.isPC
}]));
return {
TUIGlobal: j,
floatWindowContainerClassName: a
};
};
Mt.components = Object.assign({
FloatWindowPC: xr,
FloatWindowMobile: $r
}, Mt.components);
var AM = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
class: A.floatWindowContainerClassName
}, [A.TUIGlobal.isPC ? e("FloatWindowPC", [A._t("default")], 2) : A._e(), A.TUIGlobal.isPC ? A._e() : e("FloatWindowMobile", [A._t("default")], 2)], 1);
}, eM = [];
const Sn = {};
var tM = /* @__PURE__ */ S(
Mt,
AM,
eM,
!1,
aM,
"59a0c3c2",
null,
null
);
function aM(A) {
for (let t in Sn)
this[t] = Sn[t];
}
const ul = /* @__PURE__ */ function() {
return tM.exports;
}();
function nM() {
const A = Ge(), { callStatus: t } = z(q()), e = I(At.LOCAL), { remoteUserListExcludeVolume: a } = z(MA());
return J([a, A, t], () => {
var i, u, s, r;
if (t.value === U.CALLING)
return;
const n = [et.RemoteInLargeView, et.LocalInLargeView], l = (i = A.value) == null ? void 0 : i.layoutMode;
if (n.includes(l)) {
e.value = (u = A.value) == null ? void 0 : u.layoutMode;
return;
}
(r = (s = a.value) == null ? void 0 : s[0]) != null && r.isEnter && (e.value = At.REMOTE);
}, {
immediate: !0
}), e;
}
const dt = {
options: {
virtualHost: !0
}
};
dt.setup = (A, t) => {
const e = nM(), a = I(!0), {
isFloatWindow: n
} = z(CA()), {
localUserInfoExcludeVolume: l,
remoteUserListExcludeVolume: i
} = z(MA()), u = Uo(), {
callType: s,
callStatus: r
} = z(q()), M = zo(), D = p(() => {
var C, E, w, L;
return j.isWeChat ? (E = (C = M.value) == null ? void 0 : C.find((m) => {
var k, _;
return (m == null ? void 0 : m.userID) === ((_ = (k = i.value) == null ? void 0 : k[0]) == null ? void 0 : _.userId);
})) == null ? void 0 : E.hasVideo : (L = (w = i.value) == null ? void 0 : w[0]) == null ? void 0 : L.isVideoAvailable;
}), g = p(() => {
var C, E;
return (E = (C = i.value) == null ? void 0 : C[0]) == null ? void 0 : E.domId;
}), N = p(() => {
var C, E, w;
return (w = u.value) == null ? void 0 : w[(E = (C = i.value) == null ? void 0 : C[0]) == null ? void 0 : E.domId];
});
J([s, r], () => {
s.value === F.AUDIO || r.value === U.CALLING ? a.value = !1 : a.value = !0;
}, {
immediate: !0
});
const y = p(() => X(["singlecall-media-container", {
mobile: !j.isPC,
pc: j.isPC,
float: n.value
}]));
function T(C) {
e.value = C;
}
return {
CallMediaType: F,
ViewName: At,
largeViewName: e,
showSmallWindow: a,
isFloatWindow: n,
localUserInfoExcludeVolume: l,
remoteUserListExcludeVolume: i,
volumeMap: u,
callType: s,
isPusherVideoAvailable: D,
playerDomId: g,
remoteStreamVolume: N,
singleMediaContainerClassName: y,
handleToggle: T
};
};
dt.components = Object.assign({
Portal: el,
FloatWindow: ul,
ToggleWindow: Nc,
ToggleWindowItem: Gc,
Pusher: nl,
AudioStream: ll,
TKStreamInfo: al,
Player: ol
}, dt.components);
var oM = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("Portal", {
attrs: {
id: "source",
disabled: !A.isFloatWindow,
source: "#source",
to: "body"
}
}, [e("FloatWindow", [e("div", {
class: A.singleMediaContainerClassName
}, [e("ToggleWindow", {
attrs: {
"big-window": A.largeViewName,
"show-small-window": A.showSmallWindow
},
on: {
toggle: A.handleToggle
}
}, [e("ToggleWindowItem", {
key: A.ViewName.LOCAL,
attrs: {
value: A.ViewName.LOCAL
}
}, [e("Pusher", {
attrs: {
domId: A.localUserInfoExcludeVolume.domId,
"show-audio-stream": !A.localUserInfoExcludeVolume.isVideoAvailable
},
scopedSlots: A._u([{
key: "audio-stream",
fn: function() {
return [e("AudioStream", {
attrs: {
userId: A.localUserInfoExcludeVolume.userId,
username: A.localUserInfoExcludeVolume.displayUserInfo,
avatar: A.localUserInfoExcludeVolume.avatar,
"is-video-available": A.localUserInfoExcludeVolume.isVideoAvailable,
"is-small-window": A.largeViewName !== A.ViewName.LOCAL,
"is-muted": !A.localUserInfoExcludeVolume.isAudioAvailable,
volume: A.volumeMap && A.volumeMap[A.localUserInfoExcludeVolume.domId]
}
})];
},
proxy: !0
}, {
key: "stream-info",
fn: function() {
return [A.callType === A.CallMediaType.VIDEO ? e("TKStreamInfo", {
attrs: {
"nick-name": A.localUserInfoExcludeVolume.displayUserInfo,
"is-self": !0,
"is-muted": !A.localUserInfoExcludeVolume.isAudioAvailable,
volume: A.volumeMap && A.volumeMap[A.localUserInfoExcludeVolume.domId]
}
}) : A._e()];
},
proxy: !0
}])
})], 1), e("ToggleWindowItem", {
key: A.ViewName.REMOTE,
attrs: {
value: A.ViewName.REMOTE
}
}, [e("Player", {
attrs: {
"dom-id": A.playerDomId,
"show-audio-stream": !A.isPusherVideoAvailable
},
scopedSlots: A._u([{
key: "audio-stream",
fn: function() {
return [e("AudioStream", {
attrs: {
userId: A.remoteUserListExcludeVolume[0] && A.remoteUserListExcludeVolume[0].userId,
username: A.remoteUserListExcludeVolume[0] && A.remoteUserListExcludeVolume[0].displayUserInfo,
avatar: A.remoteUserListExcludeVolume[0] && A.remoteUserListExcludeVolume[0].avatar,
"is-video-available": A.isPusherVideoAvailable,
"is-small-window": A.largeViewName !== A.ViewName.REMOTE,
"is-muted": A.remoteUserListExcludeVolume[0] && !A.remoteUserListExcludeVolume[0].isAudioAvailable,
volume: A.remoteStreamVolume
}
})];
},
proxy: !0
}, {
key: "stream-info",
fn: function() {
return [A.callType === A.CallMediaType.VIDEO ? e("TKStreamInfo", {
attrs: {
"nick-name": A.remoteUserListExcludeVolume[0] && A.remoteUserListExcludeVolume[0].displayUserInfo,
"is-muted": A.remoteUserListExcludeVolume[0] && !A.remoteUserListExcludeVolume[0].isAudioAvailable,
volume: A.remoteStreamVolume
}
}) : A._e()];
},
proxy: !0
}])
})], 1)], 1)], 1)])], 1);
}, lM = [];
const En = {};
var iM = /* @__PURE__ */ S(
dt,
oM,
lM,
!1,
sM,
"5ca72ad0",
null,
null
);
function sM(A) {
for (let t in En)
this[t] = En[t];
}
const uM = /* @__PURE__ */ function() {
return iM.exports;
}(), cM = [ae.SUCCESS, ae.INFO, ae.WARNING, ae.ERROR], _A = {
isShow: {
type: Boolean,
default: !1
},
message: {
type: String,
default: ""
},
type: {
type: String,
values: cM,
default: ae.INFO
},
duration: {
type: Number,
default: 3e3
},
offset: {
type: Number,
default: 16
},
showClose: {
type: Boolean,
default: !1
},
showIcon: {
type: Boolean,
default: !0
},
customClass: {
type: String
},
customStyle: {
type: Object
}
};
function rM(A, t) {
const e = I((A == null ? void 0 : A.message) || _A.message.default), a = I((A == null ? void 0 : A.duration) || _A.duration.default), n = I((A == null ? void 0 : A.type) || _A.type.default), l = I((A == null ? void 0 : A.offset) || _A.offset.default), i = I((A == null ? void 0 : A.showClose) || _A.showClose.default), u = I(!1);
let s = -1;
const r = (g) => {
s > -1 && (clearTimeout(s), s = -1), u.value = !0, D(g || {}), a.value && (s = setTimeout(() => {
M();
}, a.value));
}, M = () => {
u.value = !1, s > -1 && (clearTimeout(s), s = -1);
}, D = (g) => {
const {
message: N = e.value,
type: y = n.value,
offset: T = l.value,
duration: C = a.value,
showClose: E = i.value
} = g;
a.value = (A == null ? void 0 : A.duration) === 0 ? A == null ? void 0 : A.duration : C, e.value = N, n.value = y, l.value = T, i.value = E;
};
return J(
() => A == null ? void 0 : A.isShow,
(g) => {
g && r();
},
{ immediate: !0 }
), J(u, (g) => {
g || t("onClose");
}), {
messageContent: e,
messageDuration: a,
messageType: n,
messageOffset: l,
isShowCloseIcon: i,
visible: u,
show: r,
close: M
};
}
const MM = "data:image/svg+xml;base64,PHN2ZyB0PSIxNzAwMTIzMzQ5NzM4IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjYzMDAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiA5Ny41MjM4MWMyMjguOTEyNzYyIDAgNDE0LjQ3NjE5IDE4NS41NjM0MjkgNDE0LjQ3NjE5IDQxNC40NzYxOXMtMTg1LjU2MzQyOSA0MTQuNDc2MTktNDE0LjQ3NjE5IDQxNC40NzYxOVM5Ny41MjM4MSA3NDAuOTEyNzYyIDk3LjUyMzgxIDUxMiAyODMuMDg3MjM4IDk3LjUyMzgxIDUxMiA5Ny41MjM4MXogbTEyOS4yOTIxOSAyMzMuNDQ3NjE5bC0xMjkuMjY3ODA5IDEyOS4yOTIxOS0xMjkuMzE2NTcxLTEyOS4yOTIxOS01MS43MzYzODEgNTEuNzM2MzgxIDEyOS4zMTY1NzEgMTI5LjI2NzgwOS0xMjkuMzE2NTcxIDEyOS4zMTY1NzEgNTEuNzM2MzgxIDUxLjczNjM4MUw1MTIgNTYzLjY4NzYxOWwxMjkuMjkyMTkgMTI5LjMxNjU3MSA1MS43MzYzODEtNTEuNzM2MzhMNTYzLjY4NzYxOSA1MTJsMTI5LjMxNjU3MS0xMjkuMjkyMTktNTEuNzM2MzgtNTEuNzM2MzgxeiIgcC1pZD0iNjMwMSIgZmlsbD0iI2Q1NDk0MSI+PC9wYXRoPjwvc3ZnPgo=", dM = "data:image/svg+xml;base64,PHN2ZyB0PSIxNzAwMTIxNTM5Nzg4IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQwMTgiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiA5Ny41MjM4MWMyMjguOTEyNzYyIDAgNDE0LjQ3NjE5IDE4NS41NjM0MjkgNDE0LjQ3NjE5IDQxNC40NzYxOXMtMTg1LjU2MzQyOSA0MTQuNDc2MTktNDE0LjQ3NjE5IDQxNC40NzYxOVM5Ny41MjM4MSA3NDAuOTEyNzYyIDk3LjUyMzgxIDUxMiAyODMuMDg3MjM4IDk3LjUyMzgxIDUxMiA5Ny41MjM4MXogbTE5My4xOTQ2NjcgMjE4LjMzMTQyOEw0NDcuMjE5ODEgNTgxLjMxNTA0OGwtMTAzLjkzNi0xMDcuODEyNTcyLTUyLjY2Mjg1OCA1MC43NjExNDMgMTU2LjM3OTQyOSAxNjIuMjMwODU3IDMxMC42NjIwOTUtMzE5LjY4MzA0Ny01Mi40Njc4MDktNTAuOTU2MTkxeiIgcC1pZD0iNDAxOSIgZmlsbD0iIzJiYTQ3MSI+PC9wYXRoPjwvc3ZnPgo=", IM = "data:image/svg+xml;base64,PHN2ZyB0PSIxNzAwMTIzMjc0Njg2IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjUwNTAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiA5Ny41MjM4MWMyMjguOTEyNzYyIDAgNDE0LjQ3NjE5IDE4NS41NjM0MjkgNDE0LjQ3NjE5IDQxNC40NzYxOXMtMTg1LjU2MzQyOSA0MTQuNDc2MTktNDE0LjQ3NjE5IDQxNC40NzYxOVM5Ny41MjM4MSA3NDAuOTEyNzYyIDk3LjUyMzgxIDUxMiAyODMuMDg3MjM4IDk3LjUyMzgxIDUxMiA5Ny41MjM4MXogbTM2LjU3MTQyOSAzNDEuMzMzMzMzaC03My4xNDI4NTh2MjkyLjU3MTQyOGg3My4xNDI4NThWNDM4Ljg1NzE0M3ogbTAtMTIxLjkwNDc2MmgtNzMuMTQyODU4djczLjE0Mjg1N2g3My4xNDI4NTh2LTczLjE0Mjg1N3oiIHAtaWQ9IjUwNTEiIGZpbGw9IiNlMzczMTgiPjwvcGF0aD48L3N2Zz4K", gM = "data:image/svg+xml;base64,PHN2ZyB0PSIxNzAwMTIzMjc0Njg2IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjUwNTAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiA5Ny41MjM4MWMyMjguOTEyNzYyIDAgNDE0LjQ3NjE5IDE4NS41NjM0MjkgNDE0LjQ3NjE5IDQxNC40NzYxOXMtMTg1LjU2MzQyOSA0MTQuNDc2MTktNDE0LjQ3NjE5IDQxNC40NzYxOVM5Ny41MjM4MSA3NDAuOTEyNzYyIDk3LjUyMzgxIDUxMiAyODMuMDg3MjM4IDk3LjUyMzgxIDUxMiA5Ny41MjM4MXogbTM2LjU3MTQyOSAzNDEuMzMzMzMzaC03My4xNDI4NTh2MjkyLjU3MTQyOGg3My4xNDI4NThWNDM4Ljg1NzE0M3ogbTAtMTIxLjkwNDc2MmgtNzMuMTQyODU4djczLjE0Mjg1N2g3My4xNDI4NTh2LTczLjE0Mjg1N3oiIHAtaWQ9IjUwNTEiIGZpbGw9IiMwMDUyZDkiPjwvcGF0aD48L3N2Zz4K", NM = "data:image/svg+xml;base64,ICAgIAo8c3ZnIHQ9IjE3MDAxMjM3NjYyNDciIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjYzMDEiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+CiAgICA8cGF0aCBkPSJNNTU3LjIgNTEybDIzMy40LTIzMy40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4ycy0zMi44LTEyLjUtNDUuMiAwTDUxMiA0NjYuOCAyNzguNiAyMzMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4yIDBzLTEyLjUgMzIuOCAwIDQ1LjJMNDY2LjggNTEyIDIzMy40IDc0NS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuMiA2LjIgNi4yIDE0LjQgOS40IDIyLjYgOS40czE2LjQtMy4xIDIyLjYtOS40TDUxMiA1NTcuMmwyMzMuNCAyMzMuNGM2LjIgNi4yIDE0LjQgOS40IDIyLjYgOS40czE2LjQtMy4xIDIyLjYtOS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4yTDU1Ny4yIDUxMnoiIHAtaWQ9IjYzMDEiIGZpbGw9IiM3Mzc2N2EiPjwvcGF0aD4KPC9zdmc+Cg==", he = {
options: {
virtualHost: !0
}
};
he.props = _A;
he.setup = (A, t) => {
const e = A, a = t.emit, {
messageContent: n,
messageType: l,
messageOffset: i,
isShowCloseIcon: u,
visible: s,
show: r,
close: M
} = rM(e, a), D = p(() => X([`${x}-message`, `${x}-message--${l.value}`, e.customClass])), g = p(() => X([`${x}-message_icon`])), N = p(() => X([`${x}-message_close`])), y = p(() => `${i.value}px`), T = p(() => ({
top: y.value,
...e.customStyle
}));
return Object.assign({
CloseSrc: NM,
messageContent: n,
messageType: l,
isShowCloseIcon: u,
visible: s,
close: M,
messageClassName: D,
typeIconClassName: g,
closeIconClassName: N,
messageStyle: T,
IconSrcMap: {
info: gM,
waring: IM,
success: dM,
error: MM
}
}, {
show: r,
close: M
});
};
he.components = Object.assign({
Icon: ft
}, he.components);
var pM = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return A.visible ? e("div", {
class: A.messageClassName,
style: [A.messageStyle]
}, [e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.showIcon,
expression: "showIcon"
}],
class: A.typeIconClassName
}, [e("Icon", {
attrs: {
src: A.IconSrcMap[A.messageType]
}
})], 1), e("span", [A._v(A._s(A.messageContent))]), e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.isShowCloseIcon,
expression: "isShowCloseIcon"
}],
class: A.closeIconClassName,
on: {
click: A.close
}
}, [e("Icon", {
attrs: {
src: A.CloseSrc
}
})], 1)]) : A._e();
}, DM = [];
const hn = {};
var TM = /* @__PURE__ */ S(
he,
pM,
DM,
!1,
CM,
null,
null,
null
);
function CM(A) {
for (let t in hn)
this[t] = hn[t];
}
const cl = /* @__PURE__ */ function() {
return TM.exports;
}(), yM = {
customClass: {
type: String
}
}, me = {
options: {
virtualHost: !0,
styleIsolation: "shared"
}
};
me.props = yM;
me.setup = (A, t) => {
const {
isFloatWindow: e
} = z(CA()), {
tip: a,
duration: n
} = Vi(), {
isGroupCall: l
} = z(q()), i = I(null), u = A, s = j.isPC, r = p(() => [u.customClass]), M = p(() => ot({
color: "white",
background: "none",
position: "absolute",
"z-index": 4,
"align-items": "center",
left: "50%",
top: `${s ? "60%" : "70%"}`,
transform: "translate(-50%, -50%)",
"font-size": e.value ? "12px" : void 0
})), D = p(() => ot({
color: "white",
background: "none",
position: "static",
transform: "none",
"font-size": e.value ? "12px" : void 0
})), g = p(() => l.value ? D.value : M.value);
return J(a, () => {
var N;
(N = i.value) == null || N.show({
message: a.value,
duration: n.value,
offset: 0
});
}), {
message: i,
tipClassName: r,
customStyle: g
};
};
me.components = Object.assign({
Message: cl
}, me.components);
var SM = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", [e("Message", {
ref: "message",
class: A.tipClassName,
attrs: {
showIcon: !1,
customStyle: A.customStyle
}
})], 1);
}, EM = [];
const mn = {};
var hM = /* @__PURE__ */ S(
me,
SM,
EM,
!1,
mM,
null,
null,
null
);
function mM(A) {
for (let t in mn)
this[t] = mn[t];
}
const rl = /* @__PURE__ */ function() {
return hM.exports;
}(), jM = ["%", "vw"], vM = {
length: {
type: Number,
default: 0
},
unit: {
type: String,
values: jM,
default: "%"
},
enableFocus: {
type: Boolean,
default: !1
},
layout: {
type: Array
},
focus: {
type: [String, Number]
}
}, Ml = "GridContextKey", ga = {
options: {
virtualHost: !0
}
};
ga.props = vM;
ga.setup = (A, t) => {
const e = A, a = I(e.focus), n = I(e.layout), l = I(e.unit), i = t.emit;
function u(s) {
i("toggle", s);
}
return J(() => e.focus, () => a.value = e.focus), J(() => e.layout, () => n.value = e.layout), J(() => e.unit, () => l.value = e.unit), gA(Ml, {
layout: n,
enableFocus: e.enableFocus,
handleFocusChange: u,
focus: a,
unit: l
}), {};
};
var fM = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
style: {
height: "100%"
}
}, [A._t("default")], 2);
}, LM = [];
const jn = {};
var UM = /* @__PURE__ */ S(
ga,
fM,
LM,
!1,
zM,
null,
null,
null
);
function zM(A) {
for (let t in jn)
this[t] = jn[t];
}
const dl = /* @__PURE__ */ function() {
return UM.exports;
}(), Na = {
options: {
virtualHost: !0
}
};
Na.props = ["index", "height", "customStyle"];
Na.setup = (A, t) => {
const e = A, {
layout: a,
enableFocus: n,
handleFocusChange: l,
focus: i,
unit: u
} = NA(Ml), s = 100 / 12, r = s, M = I({}), D = X([`${x}-grid-item`, {
pc: WA,
mobile: !WA,
h5: bo
}]), g = () => {
const y = String(e.index) === String(i.value) ? null : e.index;
n && l(y);
}, N = p(() => !!Ba(a.value, {
key: "i",
value: e.index
}));
return QA(() => {
const y = Ba(a.value, {
key: "i",
value: e.index
});
if (!y)
return;
const {
x: T,
y: C,
w: E,
h: w,
customStyle: L,
customProps: m
} = y;
M.value = {
width: E * s + u.value,
height: e.height || w * r + u.value,
left: T * s + u.value,
top: C * r + u.value,
position: "absolute",
visibility: (m == null ? void 0 : m.show) === !1 ? "hidden" : "",
...e.customStyle,
...L
};
}), tA(() => {
String(e.index) === String(i.value) && n && l(null);
}), {
style: M,
gridItemClassName: D,
handleClick: g,
show: N
};
};
var wM = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return A.show ? e("div", {
class: A.gridItemClassName,
style: [A.style],
on: {
click: A.handleClick
}
}, [A._t("default")], 2) : A._e();
}, OM = [];
const vn = {};
var xM = /* @__PURE__ */ S(
Na,
wM,
OM,
!1,
VM,
null,
null,
null
);
function VM(A) {
for (let t in vn)
this[t] = vn[t];
}
const Il = /* @__PURE__ */ function() {
return xM.exports;
}();
function bM() {
const A = I([]), t = I([]), { callStatus: e, isGroupCall: a, callType: n, callRole: l } = z(q()), { status: i } = We() || {}, u = Qi();
return J(
[e, a, n, l, i, u],
() => {
var E, w, L;
let s = u.value;
const r = j.isPC ? "pc" : "mobile", M = a.value ? "groupCall" : "singleCall", D = n.value === F.AUDIO ? "audio" : "video";
let g = e.value === U.CALLING ? l.value === K.CALLER ? "calling" : "accept" : e.value;
a && (i == null ? void 0 : i.value) === "close" && (g = "close_" + g);
const N = ((L = (w = (E = s == null ? void 0 : s[r]) == null ? void 0 : E[M]) == null ? void 0 : w[D]) == null ? void 0 : L[g]) || [];
t.value = N;
const y = [];
let T = 0;
for (let m = 0; m < N.length; m++) {
const k = m === 0 ? N[m].filter((b) => {
var P;
return ((P = b == null ? void 0 : b.props) == null ? void 0 : P.show) !== !1;
}) : N[m];
N[m] = k;
const _ = 12 / k.length, Z = 3;
for (let b = 0; b < k.length; b++)
y[T++] = {
i: k[b].name,
x: b * _,
y: m * _,
w: _,
h: Z,
customStyle: k[b].customStyle,
customProps: k[b].props
};
}
T = 0;
let C = [];
for (let m = 0; m < N.flat().length; m++)
C[m] = y[T++];
C = C.filter((m) => m.i), A.value = C;
},
{
immediate: !0
}
), { layout: A, config: t };
}
function BM(...A) {
let t = window == null ? void 0 : window.document, e = "", a = () => {
}, n = {};
if (typeof A[0] == "string" ? [e, a, n] = A : [t, e, a, n] = A, !!t)
return t == null || t.addEventListener(e, a, n), () => {
t == null || t.removeEventListener(e, a, n);
};
}
function FM(A, t) {
let e = () => {
};
aA(() => {
e = BM("click", (n) => {
const l = A.map((s) => xl(s)), i = n.composedPath(), u = [];
for (let s = 0; s < l.length; s++)
u[s] = i.includes(l[s]);
u.every((s) => !s) && t();
}, { passive: !0 });
}), tA(() => {
e == null || e();
});
}
const RM = (A, t, e, a, n) => {
const l = e.isShowArrow ? e.arrowSize : 0, i = `${A.width / 2 - t.width / 2}px`, u = `${A.height / 2 - t.height / 2}px`, s = `${l}px solid ${e.color}`, r = { ...a }, M = { ...n };
switch (e.placement) {
case "top":
r.left = i, r.top = `-${t.height + l + e.arrowDistance}px`, M.borderTop = s, M.left = `${A.width / 2 - l / 2}px`, M.top = `-${l + e.arrowDistance}px`;
break;
case "bottom":
r.left = i, r.top = `${A.height + l + e.arrowDistance}px`, M.borderBottom = s, M.left = `${A.width / 2 - l / 2}px`, M.top = `${A.height + e.arrowDistance - l}px`;
break;
case "left":
r.left = `-${t.width + l + e.arrowDistance}px`, r.top = u, M.borderLeft = s, M.left = `-${l * 2 - e.arrowDistance}px`, M.top = `${A.height / 2 - l / 2}px`;
break;
case "right":
r.left = `${A.width + l + e.arrowDistance}px`, r.top = u, M.borderRight = s, M.left = `${A.width + l * 2 - e.arrowDistance}px`, M.top = `${A.height / 2 - l / 2}px`;
break;
}
return {
finalContentStyle: r,
finalArrowStyle: M
};
}, kM = ["click", "hover"], PM = ["top", "bottom", "left", "right"], gl = {
trigger: {
type: String,
values: kM,
default: "click"
},
placement: {
type: String,
values: PM,
default: "top"
},
color: {
type: String
},
isShowArrow: {
type: Boolean,
default: !0
},
arrowSize: {
type: Number,
default: 5
},
arrowDistance: {
type: Number,
default: 5
},
show: {
type: Boolean
},
autoClose: {
type: Number,
default: 300
}
}, pa = {
options: {
virtualHost: !0
}
};
pa.props = gl;
pa.setup = (A, t) => {
const e = A, a = `${x}-popover`, n = `${x}-popover_content`, l = `${x}-popover_arrow`, i = `${x}-popover_trigger`, u = I(), s = I(), r = I(), M = I(!1), D = I(null), g = p(() => M.value && e.isShowArrow && e.show), N = ot({
left: "0px",
top: "0px",
backgroundColor: e.color
}), y = I(N), T = `${e.arrowSize}px solid transparent`, C = {
borderLeft: T,
borderRight: T,
borderTop: T,
borderBottom: T,
top: "0px",
left: "0px"
}, E = I(C), w = t.emit, L = () => {
Vl(() => {
var xA, VA, bA, YA;
if (!M.value || !e.show)
return;
const b = (VA = (xA = s.value).getBoundingClientRect) == null ? void 0 : VA.call(xA), P = (YA = (bA = r.value).getBoundingClientRect) == null ? void 0 : YA.call(bA), {
finalContentStyle: AA,
finalArrowStyle: ZA
} = RM(b, P, e, N, C);
y.value = {
...N,
...AA
}, E.value = {
...C,
...ZA
};
});
}, m = () => {
clearTimeout(D.value);
}, k = () => {
e.trigger === "click" && (M.value = !M.value, L());
}, _ = () => {
e.trigger === "hover" && (w("hover"), m(), M.value = !0, L());
}, Z = () => {
e.trigger === "hover" && (D.value = setTimeout(() => {
M.value = !1, L();
}, 1e3));
};
return FM([u], () => {
M.value = !1;
}), {
popoverClassName: a,
popoverContentClassName: n,
popoverArrowClassName: l,
popoverTriggerClassName: i,
popoverRef: u,
triggerRef: s,
contentRef: r,
visible: M,
showArrow: g,
contentStyle: y,
arrowStyle: E,
clearTimer: m,
handleClick: k,
handleMouseEnter: _,
handleMouseLeave: Z
};
};
var WM = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
ref: "popoverRef",
class: A.popoverClassName
}, [A.visible && A.show ? e("div", {
ref: "contentRef",
class: A.popoverContentClassName,
style: [A.contentStyle],
on: {
mouseenter: A.clearTimer,
mouseleave: A.handleMouseLeave
}
}, [A._t("content")], 2) : A._e(), A.showArrow ? e("div", {
class: A.popoverArrowClassName,
style: [A.arrowStyle]
}) : A._e(), e("div", {
ref: "triggerRef",
class: A.popoverTriggerClassName,
on: {
click: A.handleClick,
mouseenter: A.handleMouseEnter,
mouseleave: A.handleMouseLeave
}
}, [A._t("trigger")], 2)]);
}, GM = [];
const fn = {};
var QM = /* @__PURE__ */ S(
pa,
WM,
GM,
!1,
ZM,
null,
null,
null
);
function ZM(A) {
for (let t in fn)
this[t] = fn[t];
}
const YM = /* @__PURE__ */ function() {
return QM.exports;
}(), XM = {
options: {
virtualHost: !0
}
};
var _M = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div");
}, qM = [];
const Ln = {};
var JM = /* @__PURE__ */ S(
XM,
_M,
qM,
!1,
HM,
null,
null,
null
);
function HM(A) {
for (let t in Ln)
this[t] = Ln[t];
}
const KM = /* @__PURE__ */ function() {
return JM.exports;
}(), je = {
options: {
virtualHost: !0
}
};
je.props = gl;
je.setup = (A, t) => {
const e = t.emit;
return {
IN_WX_MINI_APP: se,
handleHover: () => {
e("hover");
}
};
};
je.components = Object.assign({
PopoverWeb: YM,
PopoverWx: KM
}, je.components);
var $M = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return A.IN_WX_MINI_APP ? A._e() : e("PopoverWeb", A._b({
on: {
hover: A.handleHover
},
scopedSlots: A._u([{
key: "trigger",
fn: function() {
return [A._t("trigger")];
},
proxy: !0
}, {
key: "content",
fn: function() {
return [A._t("content")];
},
proxy: !0
}], null, !0)
}, "PopoverWeb", A.$props, !1));
}, Ad = [];
const Un = {};
var ed = /* @__PURE__ */ S(
je,
$M,
Ad,
!1,
td,
null,
null,
null
);
function td(A) {
for (let t in Un)
this[t] = Un[t];
}
const Da = /* @__PURE__ */ function() {
return ed.exports;
}(), ad = {
deviceType: {
type: String
},
isShowControlBtn: {
type: Boolean,
default: !1
}
}, ve = {
options: {
virtualHost: !0
}
};
ve.props = ad;
ve.setup = (A, t) => {
const e = A, [{
deviceList: a,
currentDeviceId: n
}, {
updateCurrentDeviceId: l
}] = mt(e.deviceType), {
localUserInfoExcludeVolume: i
} = z(MA()), {
isMuteSpeaker: u
} = z(q()), s = vt(), r = async (N) => {
try {
g(), await O.switchDevice({
deviceType: e.deviceType,
deviceId: N
}), l(N);
} catch (y) {
console.debug(y);
}
}, M = async () => {
var N, y;
g(), e.deviceType === oA.CAMERA && ((N = i.value) != null && N.isVideoAvailable ? await O.closeCamera() : await O.openCamera("localVideo")), e.deviceType === oA.MICROPHONE && ((y = i.value) != null && y.isAudioAvailable ? await O.closeMicrophone() : await O.openMicrophone()), e.deviceType === oA.SPEAKER && (u.value ? await O.unMuteSpeaker() : await O.muteSpeaker());
}, D = p(() => {
var N;
if (e.deviceType === oA.CAMERA)
return i != null && i.value.isVideoAvailable ? v("close camera") : v("open camera");
if (e.deviceType === oA.MICROPHONE)
return (N = i == null ? void 0 : i.value) != null && N.isAudioAvailable ? v("close microphone") : v("open microphone");
if (e.deviceType === oA.SPEAKER)
return u.value ? v("open speaker") : v("close speaker");
}), g = () => {
s.value = "close";
};
return {
deviceList: a,
currentDeviceId: n,
handleClickDeviceItem: r,
switchStatus: M,
deviceText: D
};
};
ve.components = Object.assign({
TKText: lA
}, ve.components);
var nd = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "device-selector-container"
}, [e("div", {
staticClass: "scroll-container"
}, [e("div", {
staticClass: "scroll-content"
}, A._l(A.deviceList, function(a) {
return e("div", {
key: a.deviceId
}, [e("TKText", {
staticClass: "device-item",
class: {
select: A.currentDeviceId === a.deviceId
},
attrs: {
width: "100%",
color: "#ffff",
truncated: !0,
size: "14px"
},
on: {
click: function() {
return A.handleClickDeviceItem(a.deviceId);
}
}
}, [A._v(" " + A._s(a.label) + " ")])], 1);
}), 0)]), e("div", {
staticClass: "control-item"
}), A.isShowControlBtn ? e("TKText", {
staticClass: "device-item",
attrs: {
width: "100%",
color: "#ffff",
truncated: !0,
size: "14px"
},
on: {
click: A.switchStatus
}
}, [A._v(" " + A._s(A.deviceText) + " ")]) : A._e()], 1);
}, od = [];
const zn = {};
var ld = /* @__PURE__ */ S(
ve,
nd,
od,
!1,
id,
"a65fe216",
null,
null
);
function id(A) {
for (let t in zn)
this[t] = zn[t];
}
const Ta = /* @__PURE__ */ function() {
return ld.exports;
}(), fe = {
options: {
virtualHost: !0
}
};
fe.props = EA;
fe.setup = (A, t) => {
const e = A, a = I(!0), n = j.isPC, {
localUserInfoExcludeVolume: l
} = z(MA()), i = I(l == null ? void 0 : l.value.isVideoAvailable), u = p(() => l == null ? void 0 : l.value.isVideoAvailable), s = vt(), [{
deviceList: r
}] = mt(oA.CAMERA), M = p(() => {
var C;
return ((C = r.value) == null ? void 0 : C.length) > 0 && s.value === "camera";
}), D = p(() => a.value ? u.value ? "basicConfig" : "closedConfig" : "loadingConfig"), g = p(() => l != null && l.value.isVideoAvailable ? v("camera enabled") : v("camera disabled")), N = uA("camera", D);
return {
DeviceType: oA,
props: e,
clickAble: a,
isPC: n,
isShowPopover: M,
btnText: g,
config: N,
handleClick: async () => {
a.value = !1, i.value = !u.value, u.value ? await O.closeCamera() : await O.openCamera("localVideo"), a.value = !0;
},
handleMouseEnter: () => {
s.value = "camera";
}
};
};
fe.components = Object.assign({
Popover: Da,
DeviceSelect: Ta,
Button: pA,
TKText: lA
}, fe.components);
var sd = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "btn-content"
}, [A.isPC ? e("Popover", {
attrs: {
color: "rgba(107, 117, 138, 0.5)",
show: A.isShowPopover,
trigger: "hover"
},
on: {
hover: A.handleMouseEnter
},
scopedSlots: A._u([{
key: "content",
fn: function() {
return [e("DeviceSelect", {
attrs: {
isShowControlBtn: !0,
deviceType: A.DeviceType.CAMERA
}
})];
},
proxy: !0
}, {
key: "trigger",
fn: function() {
return [e("Button", {
attrs: {
loading: !A.clickAble,
iconSrc: A.config.iconSrc,
color: A.config.color,
iconSize: A.config.iconSize,
width: A.props.width || A.config.width,
height: A.props.height || A.config.height,
loadingWidth: A.config.loadingWidth,
loadingHeight: A.config.loadingHeight,
shape: A.config.shape
},
on: {
click: A.handleClick
}
})];
},
proxy: !0
}], null, !1, 2755011860)
}) : A._e(), A.isPC ? A._e() : e("Button", {
attrs: {
loading: !A.clickAble,
iconSrc: A.config.iconSrc,
color: A.config.color,
iconSize: A.props.iconSize || A.config.iconSize,
width: A.props.width || A.config.width,
height: A.props.height || A.config.height,
loadingWidth: A.config.loadingWidth,
loadingHeight: A.config.loadingHeight,
shape: "circle"
},
on: {
click: A.handleClick
}
}), A.config.showText ? e("TKText", {
attrs: {
textStyle: A.config.textStyle,
color: A.config.textColor,
size: A.config.textSize
}
}, [A._v(" " + A._s(A.btnText) + " ")]) : A._e()], 1);
}, ud = [];
const wn = {};
var cd = /* @__PURE__ */ S(
fe,
sd,
ud,
!1,
rd,
"d26f6462",
null,
null
);
function rd(A) {
for (let t in wn)
this[t] = wn[t];
}
const Md = /* @__PURE__ */ function() {
return cd.exports;
}(), Le = {
options: {
virtualHost: !0
}
};
Le.props = EA;
Le.setup = (A, t) => {
const e = A, a = Bi(), n = p(() => a.value ? "basicConfig" : "loadingConfig"), l = uA("hangup", n);
return {
t: v,
props: e,
isClickable: a,
config: l,
handleClick: async () => {
await O.hangup();
}
};
};
Le.components = Object.assign({
Button: pA,
TKText: lA
}, Le.components);
var dd = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "btn-content"
}, [e("Button", {
attrs: {
loading: !A.isClickable,
loadingWidth: A.config.loadingWidth,
loadingHeight: A.config.loadingHeight,
iconSrc: A.config.iconSrc,
color: A.config.color,
iconSize: A.props.iconSize || A.config.iconSize,
width: A.props.width || A.config.width,
height: A.props.height || A.config.height,
shape: A.config.shape
},
on: {
click: A.handleClick
}
}), A.config.showText ? e("TKText", {
attrs: {
textStyle: A.config.textStyle,
color: A.config.textColor,
size: A.config.textSize
}
}, [A._v(" " + A._s(A.t("hangup")) + " ")]) : A._e()], 1);
}, Id = [];
const On = {};
var gd = /* @__PURE__ */ S(
Le,
dd,
Id,
!1,
Nd,
"954e61cc",
null,
null
);
function Nd(A) {
for (let t in On)
this[t] = On[t];
}
const pd = /* @__PURE__ */ function() {
return gd.exports;
}(), Ue = {
options: {
virtualHost: !0
}
};
Ue.props = EA;
Ue.setup = (A, t) => {
const e = I(!0), a = A, n = p(() => e.value ? "basicConfig" : "loadingConfig"), l = uA("accept", n);
return {
t: v,
clickAble: e,
props: a,
config: l,
handleClick: async () => {
e.value = !1, await O.accept(), e.value = !0;
}
};
};
Ue.components = Object.assign({
Button: pA,
TKText: lA
}, Ue.components);
var Dd = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "btn-content"
}, [e("Button", {
attrs: {
iconSrc: A.config.iconSrc,
color: A.config.color,
iconSize: A.props.iconSize || A.config.iconSize,
width: A.props.width || A.config.width,
height: A.props.height || A.config.height,
shape: A.config.shape,
loading: !A.clickAble,
loadingWidth: A.config.loadingWidth,
loadingHeight: A.config.loadingHeight
},
on: {
click: A.handleClick
}
}), A.config.showText ? e("TKText", {
attrs: {
textStyle: A.config.textStyle,
color: A.config.textColor,
size: A.config.textSize
}
}, [A._v(" " + A._s(A.t("accept")) + " ")]) : A._e()], 1);
}, Td = [];
const xn = {};
var Cd = /* @__PURE__ */ S(
Ue,
Dd,
Td,
!1,
yd,
"1ec25bac",
null,
null
);
function yd(A) {
for (let t in xn)
this[t] = xn[t];
}
const Sd = /* @__PURE__ */ function() {
return Cd.exports;
}(), ze = {
options: {
virtualHost: !0
}
};
ze.props = EA;
ze.setup = (A, t) => {
const e = j.isPC, a = I(!0), {
localUserInfoExcludeVolume: n
} = z(MA()), l = vt(), [{
deviceList: i
}] = mt(oA.MICROPHONE), u = p(() => {
var N;
return ((N = i.value) == null ? void 0 : N.length) > 0 && l.value === "microphone";
}), s = p(() => a.value ? n != null && n.value.isAudioAvailable ? "basicConfig" : "closedConfig" : "loadingConfig"), r = uA("microphone", s), M = p(() => n != null && n.value.isAudioAvailable ? v("microphone enabled") : v("microphone disabled"));
return {
DeviceType: oA,
isPC: e,
clickAble: a,
isShowPopover: u,
config: r,
btnText: M,
handleClick: async () => {
n != null && n.value.isAudioAvailable ? await O.closeMicrophone() : await O.openMicrophone();
},
handleMouseEnter: () => {
l.value = "microphone";
}
};
};
ze.components = Object.assign({
Popover: Da,
DeviceSelect: Ta,
Button: pA,
TKText: lA
}, ze.components);
var Ed = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "btn-content"
}, [A.isPC ? e("Popover", {
attrs: {
color: "rgba(107, 117, 138, 0.5)",
show: A.isShowPopover,
trigger: "hover"
},
on: {
hover: A.handleMouseEnter
},
scopedSlots: A._u([{
key: "content",
fn: function() {
return [e("DeviceSelect", {
attrs: {
isShowControlBtn: !0,
deviceType: A.DeviceType.MICROPHONE
}
})];
},
proxy: !0
}, {
key: "trigger",
fn: function() {
return [e("Button", {
attrs: {
loading: !A.clickAble,
iconSrc: A.config.iconSrc,
color: A.config.color,
iconSize: A.config.iconSize,
width: A.config.width,
height: A.config.height,
loadingWidth: A.config.loadingWidth,
loadingHeight: A.config.loadingHeight,
shape: A.config.shape
},
on: {
click: A.handleClick
}
})];
},
proxy: !0
}], null, !1, 922566162)
}) : A._e(), A.isPC ? A._e() : e("Button", {
attrs: {
loading: !A.clickAble,
iconSrc: A.config.iconSrc,
color: A.config.color,
iconSize: A.config.iconSize,
width: A.config.width,
height: A.config.height,
loadingWidth: A.config.loadingWidth,
loadingHeight: A.config.loadingHeight,
shape: A.config.shape
},
on: {
click: A.handleClick
}
}), A.config.showText ? e("TKText", {
attrs: {
textStyle: A.config.textStyle,
color: A.config.textColor,
size: A.config.textSize
}
}, [A._v(" " + A._s(A.btnText) + " ")]) : A._e()], 1);
}, hd = [];
const Vn = {};
var md = /* @__PURE__ */ S(
ze,
Ed,
hd,
!1,
jd,
"b3b557d8",
null,
null
);
function jd(A) {
for (let t in Vn)
this[t] = Vn[t];
}
const vd = /* @__PURE__ */ function() {
return md.exports;
}(), we = {
options: {
virtualHost: !0
}
};
we.props = EA;
we.setup = (A, t) => {
const e = A, a = uA("reject", I("basicConfig"));
return {
t: v,
props: e,
config: a,
handleClick: async () => {
await O.reject();
}
};
};
we.components = Object.assign({
Button: pA,
TKText: lA
}, we.components);
var fd = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "btn-content"
}, [e("Button", {
attrs: {
iconSrc: A.config.iconSrc,
color: A.config.color,
iconSize: A.config.iconSize,
width: A.props.width || A.config.width,
height: A.props.height || A.config.height,
shape: A.config.shape
},
on: {
click: A.handleClick
}
}), A.config.showText ? e("TKText", {
attrs: {
textStyle: A.config.textStyle,
color: A.config.textColor,
size: A.config.textSize
}
}, [A._v(" " + A._s(A.t("reject")) + " ")]) : A._e()], 1);
}, Ld = [];
const bn = {};
var Ud = /* @__PURE__ */ S(
we,
fd,
Ld,
!1,
zd,
"f6fe7678",
null,
null
);
function zd(A) {
for (let t in bn)
this[t] = bn[t];
}
const wd = /* @__PURE__ */ function() {
return Ud.exports;
}(), Oe = {
options: {
virtualHost: !0
}
};
Oe.props = EA;
Oe.setup = (A, t) => {
const e = j.isWeChat, a = j.isPC, n = A, {
isEarPhone: l,
isMuteSpeaker: i
} = z(q()), u = vt(), s = p(() => l.value ? "closedConfig" : "basicConfig"), r = p(() => i.value ? "closedConfig" : "basicConfig"), [{
deviceList: M,
currentDeviceId: D
}] = mt(oA.SPEAKER), g = p(() => {
var E;
return ((E = M.value) == null ? void 0 : E.length) > 0 && u.value === "speaker" && a;
}), N = e ? uA("speaker", s) : uA("speaker", r);
return p(() => l.value ? v("speaker disabled") : v("speaker enabled")), {
DeviceType: oA,
props: n,
isShowPopover: g,
config: N,
handleClick: async () => {
i.value ? await O.unMuteSpeaker() : await O.muteSpeaker();
},
getButtonText: () => {
if (a) {
const E = M.value.find((w) => w.deviceId === D.value);
return E ? E.label : v("speaker enabled");
} else
return i.value ? v("speaker disabled") : v("speaker enabled");
},
handleMouseEnter: () => {
u.value = "speaker";
}
};
};
Oe.components = Object.assign({
Popover: Da,
DeviceSelect: Ta,
Button: pA,
TKText: lA
}, Oe.components);
var Od = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "btn-content"
}, [e("Popover", {
attrs: {
color: "rgba(107, 117, 138, 0.5)",
show: A.isShowPopover,
trigger: "hover"
},
on: {
hover: A.handleMouseEnter
},
scopedSlots: A._u([{
key: "content",
fn: function() {
return [e("DeviceSelect", {
attrs: {
isShowControlBtn: !0,
deviceType: A.DeviceType.SPEAKER
}
})];
},
proxy: !0
}, {
key: "trigger",
fn: function() {
return [e("Button", {
attrs: {
iconSrc: A.config.iconSrc,
color: A.config.color,
iconSize: A.props.iconSize || A.config.iconSize,
width: A.props.width || A.config.width,
height: A.props.height || A.config.height,
shape: A.config.shape
},
on: {
click: A.handleClick
}
})];
},
proxy: !0
}])
}), A.config.showText ? e("TKText", {
attrs: {
width: "60px",
truncated: !0,
textStyle: A.config.textStyle,
color: A.config.textColor,
size: A.config.textSize,
lineClamp: 2
}
}, [A._v(" " + A._s(A.getButtonText()) + " ")]) : A._e()], 1);
}, xd = [];
const Bn = {};
var Vd = /* @__PURE__ */ S(
Oe,
Od,
xd,
!1,
bd,
"1553de06",
null,
null
);
function bd(A) {
for (let t in Bn)
this[t] = Bn[t];
}
const Bd = /* @__PURE__ */ function() {
return Vd.exports;
}(), It = {
options: {
virtualHost: !0
}
};
It.setup = (A, t) => {
const {
localUserInfoExcludeVolume: e
} = z(MA()), a = p(() => e == null ? void 0 : e.value.isVideoAvailable), n = p(() => a.value ? "basicConfig" : "disableConfig"), l = uA("switchCamera", n);
return {
t: v,
config: l,
handleClick: async () => {
!a.value || await O.switchCamera();
}
};
};
It.components = Object.assign({
Button: pA,
TKText: lA
}, It.components);
var Fd = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "btn-content"
}, [e("Button", {
attrs: {
iconSrc: A.config.iconSrc,
iconSize: A.config.iconSize,
color: A.config.color,
width: A.config.width,
height: A.config.height,
buttonStyle: A.config.buttonStyle,
shape: "circle"
},
on: {
click: A.handleClick
}
}), A.config.showText ? e("TKText", {
attrs: {
textStyle: A.config.textStyle,
color: A.config.textColor,
size: A.config.textSize
}
}, [A._v(" " + A._s(A.t("switch camera")) + " ")]) : A._e()], 1);
}, Rd = [];
const Fn = {};
var kd = /* @__PURE__ */ S(
It,
Fd,
Rd,
!1,
Pd,
"b9be9094",
null,
null
);
function Pd(A) {
for (let t in Fn)
this[t] = Fn[t];
}
const Wd = /* @__PURE__ */ function() {
return kd.exports;
}(), xe = {
options: {
virtualHost: !0
}
};
xe.props = EA;
xe.setup = (A, t) => {
const e = A, a = I(!0), {
localUserInfoExcludeVolume: n
} = z(MA()), l = p(() => n == null ? void 0 : n.value.isVideoAvailable), {
enableVirtualBackground: i
} = z(q()), u = p(() => a.value ? i.value ? "closedConfig" : l.value ? "basicConfig" : "disableConfig" : "loadingConfig"), s = uA("virtualBackground", u);
return {
t: v,
props: e,
clickAble: a,
config: s,
handleClick: async () => {
!l.value || (a.value = !1, await O.setBlurBackground(!i.value), a.value = !0);
}
};
};
xe.components = Object.assign({
Button: pA,
TKText: lA
}, xe.components);
var Gd = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "btn-content"
}, [e("Button", {
attrs: {
loading: !A.clickAble,
iconSrc: A.config.iconSrc,
color: A.config.color,
iconSize: A.props.iconSize || A.config.iconSize,
width: A.props.width || A.config.width,
height: A.props.height || A.config.height,
shape: A.config.shape,
loadingWidth: A.config.loadingWidth,
loadingHeight: A.config.loadingHeight,
buttonStyle: A.config.buttonStyle
},
on: {
click: A.handleClick
}
}), A.config.showText ? e("TKText", {
attrs: {
width: "70px",
lineClamp: 2,
textStyle: A.config.textStyle,
color: A.config.textColor,
size: A.config.textSize
}
}, [A._v(" " + A._s(A.t("virtual-background")) + " ")]) : A._e()], 1);
}, Qd = [];
const Rn = {};
var Zd = /* @__PURE__ */ S(
xe,
Gd,
Qd,
!1,
Yd,
"6288f616",
null,
null
);
function Yd(A) {
for (let t in Rn)
this[t] = Rn[t];
}
const Xd = /* @__PURE__ */ function() {
return Zd.exports;
}(), Ve = {
options: {
virtualHost: !0
}
};
Ve.props = EA;
Ve.setup = (A, t) => {
const {
status: e
} = We(), a = A, n = uA("toggleButtonPanel", I("basicConfig"));
return {
props: a,
config: n,
handleClick: async () => {
e.value = e.value === "close" ? "open" : "close";
}
};
};
Ve.components = Object.assign({
Button: pA
}, Ve.components);
var _d = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "btn-content"
}, [e("Button", {
attrs: {
iconSrc: A.config.iconSrc,
color: A.config.color,
iconSize: A.props.iconSize || A.config.iconSize,
width: A.props.width || A.config.width,
height: A.props.height || A.config.height,
shape: A.config.shape
},
on: {
click: A.handleClick
}
})], 1);
}, qd = [];
const kn = {};
var Jd = /* @__PURE__ */ S(
Ve,
_d,
qd,
!1,
Hd,
"dd0c1858",
null,
null
);
function Hd(A) {
for (let t in kn)
this[t] = kn[t];
}
const Kd = /* @__PURE__ */ function() {
return Jd.exports;
}(), gt = {
options: {
virtualHost: !0
}
};
gt.setup = (A, t) => {
const e = I(null), a = I({}), {
isGroupCall: n
} = z(q()), {
status: l
} = We() || {}, i = I(!1), u = I(!1), s = I(""), r = wo();
QA(() => {
i.value || (n.value && !j.isPC && r.value !== null ? i.value = !0 : i.value = !1);
});
const M = p(() => X(["button-panel-container", {
pc: j.isPC,
mobile: !j.isPC,
h5: j.isH5,
groupCall: n.value,
singleCall: !n.value,
close: (l == null ? void 0 : l.value) === "close",
open: (l == null ? void 0 : l.value) === "open",
showBackGround: i.value
}])), D = X(["toggle-button-container", {
h5: j.isH5
}]), g = j.isH5 ? {
transitionProperty: "width,height,left,top",
transitionDuration: "0.3s",
transitionTimingFunction: "ease-in"
} : {};
function N(w) {
e.value = w;
}
const {
layout: y,
config: T
} = bM();
J(T, () => {
const w = {}, L = T.value.flat();
for (let m of L) {
const {
name: k,
props: _ = {}
} = m;
_.showText !== !1 && (_.showText = !0), w[k] = _;
}
a.value = w;
}, {
immediate: !0
});
function C(w) {
u.value = w;
}
const E = {
[o.IS_CLICKABLE]: C
};
return aA(() => {
d.watch(c.CALL, E, {
notifyRangeWhenWatch: o.MYSELF
});
}), tA(() => {
d.unwatch(c.CALL, E);
}), gA(mo, u), gA(jo, s), {
focus: e,
showButtonPanelBackground: i,
buttonPanelClassName: M,
toggleButtonContainerClassName: D,
customStyle: g,
handleToggle: N,
layout: y
};
};
gt.components = Object.assign({
Grid: dl,
GridItem: Il,
Accept: Sd,
Reject: wd,
Microphone: vd,
Hangup: pd,
Speaker: Bd,
TKCamera: Md,
VirtualBackground: Xd,
SwitchCamera: Wd,
InviteUser: Yo,
ToggleButtonPanel: Kd
}, gt.components);
var $d = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
class: A.buttonPanelClassName
}, [e("div", {
staticClass: "button-group"
}, [e("Grid", {
attrs: {
unit: "%",
layout: A.layout,
focus: A.focus
},
on: {
toggle: A.handleToggle
}
}, [e("GridItem", {
attrs: {
index: "accept",
height: "auto",
customStyle: A.customStyle
}
}, [e("Accept")], 1), e("GridItem", {
attrs: {
index: "reject",
height: "auto",
customStyle: A.customStyle
}
}, [e("Reject")], 1), e("GridItem", {
attrs: {
index: "microphone",
height: "auto",
customStyle: A.customStyle
}
}, [e("Microphone")], 1), e("GridItem", {
attrs: {
index: "hangup",
height: "auto",
customStyle: A.customStyle
}
}, [e("Hangup")], 1), e("GridItem", {
attrs: {
index: "speaker",
height: "auto",
customStyle: A.customStyle
}
}, [e("Speaker")], 1), e("GridItem", {
attrs: {
index: "camera",
height: "auto",
customStyle: A.customStyle
}
}, [e("TKCamera")], 1), e("GridItem", {
attrs: {
index: "virtualBackground",
height: "auto",
customStyle: A.customStyle
}
}, [e("VirtualBackground")], 1), e("GridItem", {
attrs: {
index: "switchCamera",
height: "auto",
customStyle: A.customStyle
}
}, [e("SwitchCamera")], 1), e("GridItem", {
attrs: {
index: "inviteUser",
height: "auto",
customStyle: A.customStyle
}
}, [e("InviteUser")], 1)], 1)], 1), A.showButtonPanelBackground ? e("div", {
class: A.toggleButtonContainerClassName
}, [e("ToggleButtonPanel")], 1) : A._e()]);
}, AI = [];
const Pn = {};
var eI = /* @__PURE__ */ S(
gt,
$d,
AI,
!1,
tI,
"26c8cb08",
null,
null
);
function tI(A) {
for (let t in Pn)
this[t] = Pn[t];
}
const Nl = /* @__PURE__ */ function() {
return eI.exports;
}(), Nt = {};
Nt.setup = (A, t) => {
const {
callStatus: e
} = z(q());
return {
CallStatus: U,
callStatus: e
};
};
Nt.components = Object.assign({
TopBar: Xo,
Waiting: Ko,
MediaContainer: uM,
Tip: rl,
ButtonPanel: Nl
}, Nt.components);
var aI = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "singlecall-container"
}, [e("TopBar"), A.callStatus === A.CallStatus.CALLING ? e("Waiting") : A._e(), e("MediaContainer"), e("Tip"), e("ButtonPanel")], 1);
}, nI = [];
const Wn = {};
var oI = /* @__PURE__ */ S(
Nt,
aI,
nI,
!1,
lI,
"221760b8",
null,
null
);
function lI(A) {
for (let t in Wn)
this[t] = Wn[t];
}
const iI = /* @__PURE__ */ function() {
return oI.exports;
}(), pt = {};
pt.setup = (A, t) => ({});
pt.components = Object.assign({
Loading: na
}, pt.components);
var sI = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "stream-loading-container"
}, [e("Loading", {
attrs: {
mode: "dot",
color: "#FFF",
loadingWidth: "50px",
loadingHeight: "50px"
}
})], 1);
}, uI = [];
const Gn = {};
var cI = /* @__PURE__ */ S(
pt,
sI,
uI,
!1,
rI,
"b3ff0e0c",
null,
null
);
function rI(A) {
for (let t in Gn)
this[t] = Gn[t];
}
const MI = /* @__PURE__ */ function() {
return cI.exports;
}(), Dt = {
options: {
virtualHost: !0
}
};
Dt.setup = (A, t) => {
const e = I("local"), a = I(null), n = I(!1);
Ge();
const {
localUserInfoExcludeVolume: l,
remoteUserListExcludeVolume: i
} = z(MA()), {
callStatus: u,
callType: s,
isShowEnableVirtualBackground: r,
callRole: M
} = z(q()), {
netWorkQualityList: D
} = bi(), g = p(() => i.value.length + 1), N = zo(), y = Ri(a, g), T = Uo(), {
isFloatWindow: C
} = z(CA()), E = wo(), {
status: w
} = We() || {}, L = !j.isPC, m = p(() => String(a.value) === "0"), k = p(() => !j.isPC && m.value && l.value.isVideoAvailable), _ = p(() => k.value), Z = p(() => k.value && r.value && j.isWeChat), b = p(() => j.isPC || m.value), P = p(() => j.isPC || C.value ? "%" : "vw"), AA = p(() => [l.value, ...i.value].map((Y) => {
var iA;
if (C.value) {
if (((iA = T.value) == null ? void 0 : iA[Y.domId]) >= 10)
return Y.domId;
} else
return Y.domId;
})), ZA = p(() => !(M.value === K.CALLEE && u.value === U.CALLING && !C.value)), xA = p(() => {
let Y = "";
return M.value === K.CALLEE && u.value === U.CALLING && !C.value && (Y = "hidden"), {
visibility: Y
};
});
function VA(Y) {
a.value = Y, E.value = Y, w.value = Y !== null ? "close" : "open";
}
function bA(Y) {
var iA, dA;
return j.isWeChat ? !((dA = (iA = N.value) == null ? void 0 : iA.find((BA) => BA.userID === Y.userId)) != null && dA.hasVideo) : !Y.isVideoAvailable;
}
function YA(Y) {
var iA, dA;
return j.isWeChat ? !((dA = (iA = N.value) == null ? void 0 : iA.find((BA) => BA.userID === Y.userId)) != null && dA.hasAudio) : !Y.isAudioAvailable;
}
function Ut(Y) {
if (!D.value)
return;
const iA = Y !== l.value.userId;
if (!j.isWeChat && iA)
return;
const dA = D.value.find((BA) => BA.userId === Y);
return dA && (dA == null ? void 0 : dA.quality) >= 4;
}
J([i, s], () => {
var Y, iA;
(iA = (Y = i.value) == null ? void 0 : Y[0]) != null && iA.isEnter && (e.value = "remote"), s.value === F.AUDIO ? n.value = !1 : n.value = !0;
});
const Qe = p(() => X(["groupcall-media-container", {
mobile: !j.isPC,
pc: j.isPC,
"two-layout": g.value === 2 && a.value === null,
float: C.value
}])), Ze = p(() => u.value === U.CALLING && (s.value === F.AUDIO && !l.value.isAudioAvailable || s.value === F.VIDEO && !l.value.isVideoAvailable));
return {
TUIGlobal: j,
focus: a,
localUserInfoExcludeVolume: l,
remoteUserListExcludeVolume: i,
streamLength: g,
layout: y,
volumeMap: T,
isFloatWindow: C,
enableFocus: L,
showSwitchCameraButton: _,
showVirtualBackgroundButton: Z,
showNickName: b,
unit: P,
visibleStreamIdList: AA,
showStream: ZA,
mediaContainerStyle: xA,
changeFocus: VA,
isShowAudioStream: bA,
isMute: YA,
isShowNetWork: Ut,
groupMediaContainerClassName: Qe,
isPusherLoading: Ze
};
};
Dt.components = Object.assign({
Portal: el,
FloatWindow: ul,
Grid: dl,
GridItem: Il,
Pusher: nl,
AudioStream: ll,
StreamLoading: MI,
TKStreamInfo: al,
Player: ol
}, Dt.components);
var dI = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("Portal", {
attrs: {
id: "source",
disabled: !A.isFloatWindow,
source: "#source",
to: "body"
}
}, [e("FloatWindow", [e("div", {
class: A.groupMediaContainerClassName,
style: [A.mediaContainerStyle]
}, [e("Grid", {
attrs: {
unit: A.unit,
"enable-focus": A.enableFocus,
focus: A.focus,
length: A.streamLength,
layout: A.layout
},
on: {
toggle: A.changeFocus
}
}, [e("GridItem", {
key: A.localUserInfoExcludeVolume.userId,
attrs: {
index: 0
}
}, [e("Pusher", {
attrs: {
domId: A.localUserInfoExcludeVolume.domId,
"show-audio-stream": !A.localUserInfoExcludeVolume.isVideoAvailable,
show: A.visibleStreamIdList.includes(A.localUserInfoExcludeVolume.domId) && A.showStream
},
scopedSlots: A._u([{
key: "audio-stream",
fn: function() {
return [e("AudioStream", {
attrs: {
"user-id": A.localUserInfoExcludeVolume.userId,
username: A.localUserInfoExcludeVolume.displayUserInfo,
avatar: A.localUserInfoExcludeVolume.avatar,
"is-video-available": A.localUserInfoExcludeVolume.isVideoAvailable
}
})];
},
proxy: !0
}, {
key: "loading",
fn: function() {
return [A.isPusherLoading ? e("StreamLoading") : A._e()];
},
proxy: !0
}, {
key: "stream-info",
fn: function() {
return [A.isFloatWindow ? A._e() : e("TKStreamInfo", {
attrs: {
"is-self": !0,
"show-nick-name": A.showNickName,
showSwitchCameraButton: A.showSwitchCameraButton,
showVirtualBackgroundButton: A.showVirtualBackgroundButton,
showNetWorkStatus: A.isShowNetWork(A.localUserInfoExcludeVolume.userId),
nickName: A.localUserInfoExcludeVolume.displayUserInfo,
isMuted: !A.localUserInfoExcludeVolume.isAudioAvailable,
volume: A.volumeMap && A.volumeMap[A.localUserInfoExcludeVolume.domId]
}
})];
},
proxy: !0
}])
})], 1), A._l(A.remoteUserListExcludeVolume, function(a, n) {
return e("GridItem", {
key: a.userId,
attrs: {
index: n + 1
}
}, [e("Player", {
attrs: {
domId: a.domId,
"show-audio-stream": A.isShowAudioStream(a),
show: A.visibleStreamIdList.includes(a.domId) && A.showStream
},
scopedSlots: A._u([{
key: "audio-stream",
fn: function() {
return [e("AudioStream", {
attrs: {
"user-id": a.userId,
username: a.displayUserInfo,
avatar: a.avatar
}
})];
},
proxy: !0
}, {
key: "loading",
fn: function() {
return [a.isEnter ? A._e() : e("StreamLoading")];
},
proxy: !0
}, {
key: "stream-info",
fn: function() {
return [A.isFloatWindow ? A._e() : e("TKStreamInfo", {
attrs: {
"show-nick-name": A.TUIGlobal.isPC || String(A.focus) === String(n + 1),
"show-control-button": !1,
showNetWorkStatus: A.isShowNetWork(a.userId),
nickName: a.displayUserInfo,
"is-muted": A.isMute(a),
volume: A.volumeMap && A.volumeMap[a.domId]
}
})];
},
proxy: !0
}], null, !0)
})], 1);
})], 2)], 1)])], 1);
}, II = [];
const Qn = {};
var gI = /* @__PURE__ */ S(
Dt,
dI,
II,
!1,
NI,
"4c7859ad",
null,
null
);
function NI(A) {
for (let t in Qn)
this[t] = Qn[t];
}
const pI = /* @__PURE__ */ function() {
return gI.exports;
}(), Ca = {};
Ca.props = {
moduleValue: {
type: Boolean,
default: !1
},
isHeaderShow: {
type: Boolean,
default: !0
},
isFooterShow: {
type: Boolean,
default: !0
},
background: {
type: Boolean,
default: !0
},
title: {
type: String,
default: ""
},
center: {
type: Boolean,
default: !1
},
isH5: {
type: Boolean,
default: !1
}
};
Ca.setup = (A, t) => {
const e = {
OUTSIDE: "outside",
INSIDE: "inside"
}, a = A, n = I(!0), l = I(!0), i = I(!0), u = I("");
QA(() => {
u.value = a.title, n.value = a.isHeaderShow, l.value = a.isFooterShow, i.value = a.background;
});
const s = t.emit, r = (g) => {
g === e.OUTSIDE && M();
}, M = () => {
s("update:moduleValue", !1);
};
return {
t: v,
clickType: e,
props: a,
isHeaderShowDialog: n,
isFooterShowDialog: l,
backgroundDialog: i,
showTitle: u,
toggleView: r,
close: M,
submit: () => {
s("submit"), M();
}
};
};
var DI = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return A.moduleValue ? e("div", {
staticClass: "dialog",
class: [A.props.isH5 ? "dialog-h5" : "", A.center ? "center" : ""],
on: {
click: function(a) {
return a.stopPropagation(), a.preventDefault(), A.toggleView(A.clickType.OUTSIDE);
}
}
}, [e("main", {
staticClass: "dialog-main",
class: [A.backgroundDialog ? "" : "dialog-main-back"],
on: {
click: function(a) {
return a.stopPropagation(), a.preventDefault(), A.toggleView(A.clickType.INSIDE);
}
}
}, [A.isHeaderShowDialog ? e("header", {
staticClass: "dialog-main-header"
}, [e("h1", {
staticClass: "dialog-main-title"
}, [A._v(A._s(A.showTitle))]), e("i", {
staticClass: "icon icon-close",
on: {
click: A.close
}
})]) : A._e(), e("div", {
staticClass: "dialog-main-content",
class: [A.props.isH5 ? "dialog-main-content-uniapp" : ""]
}, [A._t("default")], 2), A.isFooterShowDialog ? e("footer", {
staticClass: "dialog-main-footer"
}, [e("button", {
staticClass: "btn btn-cancel",
on: {
click: A.close
}
}, [A._v(A._s(A.t("Cancel")))]), e("button", {
staticClass: "btn btn-default",
on: {
click: A.submit
}
}, [A._v(A._s(A.t("Done")))])]) : A._e()])]) : A._e();
}, TI = [];
const Zn = {};
var CI = /* @__PURE__ */ S(
Ca,
DI,
TI,
!1,
yI,
"5c01d70e",
null,
null
);
function yI(A) {
for (let t in Zn)
this[t] = Zn[t];
}
const SI = /* @__PURE__ */ function() {
return CI.exports;
}(), ya = {};
ya.props = {
file: {
type: String,
default: ""
},
width: {
type: String,
default: "20px"
},
height: {
type: String,
default: "20px"
},
isApp: {
type: Boolean,
default: !1
}
};
ya.setup = (A, t) => {
const e = t.emit;
return {
props: A,
handlerImgClick: () => {
e("click");
}
};
};
var EI = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "icon",
on: {
click: A.handlerImgClick
}
}, [A.props.isApp ? e("image", {
staticClass: "icon",
style: {
width: A.props.width,
height: A.props.height
},
attrs: {
src: A.props.file
}
}) : e("img", {
staticClass: "icon",
style: {
width: A.props.width,
height: A.props.height
},
attrs: {
src: A.props.file
}
})]);
}, hI = [];
const Yn = {};
var mI = /* @__PURE__ */ S(
ya,
EI,
hI,
!1,
jI,
"c4142a3c",
null,
null
);
function jI(A) {
for (let t in Yn)
this[t] = Yn[t];
}
const vI = /* @__PURE__ */ function() {
return mI.exports;
}(), fI = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSI+CiAgPHRpdGxlPue8lue7hCAxNDwvdGl0bGU+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIHg9Ii0xMC42JSIgeT0iLTUuNCUiIHdpZHRoPSIxMjEuMiUiIGhlaWdodD0iMTEwLjklIiBmaWx0ZXJVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIGlkPSJmaWx0ZXItMSI+CiAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjciIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEwIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjEgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93Qmx1ck91dGVyMSIgcmVzdWx0PSJzaGFkb3dNYXRyaXhPdXRlcjEiPjwvZmVDb2xvck1hdHJpeD4KICAgICAgPGZlTWVyZ2U+CiAgICAgICAgPGZlTWVyZ2VOb2RlIGluPSJzaGFkb3dNYXRyaXhPdXRlcjEiPjwvZmVNZXJnZU5vZGU+CiAgICAgICAgPGZlTWVyZ2VOb2RlIGluPSJTb3VyY2VHcmFwaGljIj48L2ZlTWVyZ2VOb2RlPgogICAgICA8L2ZlTWVyZ2U+CiAgICA8L2ZpbHRlcj4KICA8L2RlZnM+CiAgPGcgaWQ9Im5ldyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICA8ZyBpZD0i6Ieq5a6a5LmJ5raI5oGvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNDU4LjAwMDAwMCwgLTMxOC4wMDAwMDApIj4KICAgICAgPGcgaWQ9Iue8lue7hC0zMiIgZmlsdGVyPSJ1cmwoI2ZpbHRlci0xKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDQuMDAwMDAwLCA2MC4wMDAwMDApIj4KICAgICAgICA8ZyBpZD0i57yW57uELTI0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMC4wMDAwMDAsIDI1MC4wMDAwMDApIj4KICAgICAgICAgIDxnIGlkPSLnvJbnu4QtMTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM4NC4wMDAwMDAsIDguMDAwMDAwKSI+CiAgICAgICAgICAgIDxjaXJjbGUgaWQ9IuakreWchuW9oiIgZmlsbD0iIzAwNkVGRiIgZmlsbC1ydWxlPSJub256ZXJvIiBjeD0iOCIgY3k9IjgiIHI9IjgiPjwvY2lyY2xlPgogICAgICAgICAgICA8cG9seWxpbmUgaWQ9Iui3r+W+hC00IiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOC4wNDI2NDEsIDYuMjQyNjQxKSByb3RhdGUoLTMxNS4wMDAwMDApIHRyYW5zbGF0ZSgtOC4wNDI2NDEsIC02LjI0MjY0MSkgIiBwb2ludHM9IjYuMDQyNjQwNjkgMTAuMjQyNjQwNyAxMC4wNDI2NDA3IDEwLjI0MjY0MDcgMTAuMDQyNjQwNyAyLjI0MjY0MDY5Ij48L3BvbHlsaW5lPgogICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==", LI = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNDhweCIgaGVpZ2h0PSI0OHB4IiB2aWV3Qm94PSIwIDAgNDggNDgiIHZlcnNpb249IjEuMSI+CiAgPHRpdGxlPmljX2JhY2tfd2hpdGU8L3RpdGxlPgogIDxnIGlkPSLpobXpnaItMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICA8ZyBpZD0iMDIuLeafpeeci+S/oeaBry3npLrkvovlpb3lj4siIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zMi4wMDAwMDAsIC0yMDAuMDAwMDAwKSI+CiAgICAgIDxnIGlkPSLnvJbnu4QtNiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDE3Ni4wMDAwMDApIj4KICAgICAgICA8ZyBpZD0iaWNfYmFja193aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzIuMDAwMDAwLCAyNC4wMDAwMDApIj4KICAgICAgICAgIDxnIGlkPSJpY19iYWNrX2JsYWNrIiBmaWxsPSIjNDQ0NDQ0IiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgICAgICAgICA8cGF0aCBkPSJNOS41MTIzMTA3MSwyNCBMMjMuNTE5ODI4NiwzOC43MjkwNDExIEMyMy43ODUzNzgsMzkuMDA4MjY4OSAyMy43NzUzMTY4LDM5LjQ0OTYwODIgMjMuNDk3MzE4NywzOS43MTY0NDQ4IEwyMS42MjU1OTE1LDQxLjUxMzAyMjYgQzIxLjM0NjY4MjcsNDEuNzgwNzMzMiAyMC45MDM1NjAyLDQxLjc3MTY1NTMgMjAuNjM1ODQ5Niw0MS40OTI3NDY2IEMyMC42MzUxMDMyLDQxLjQ5MTk2OSAyMC42MzQzNTg2LDQxLjQ5MTE4OTYgMjAuNjMzNjE1Nyw0MS40OTA0MDg1IEw0LjQ1ODc2Mzk5LDI0LjQ4MjM5NDggQzQuMjAxNzU0NCwyNC4yMTIxNDY3IDQuMjAxNzU0NCwyMy43ODc4NTMzIDQuNDU4NzYzOTksMjMuNTE3NjA1MiBMMjAuNjMzNjE1Nyw2LjUwOTU5MTUyIEMyMC45MDAwMzUsNi4yMjk0NDkwNiAyMS4zNDMxMTA5LDYuMjE4MzI0MjIgMjEuNjIzMjUzMyw2LjQ4NDc0MzUxIEMyMS42MjQwMzQ0LDYuNDg1NDg2MzQgMjEuNjI0ODEzOCw2LjQ4NjIzMDk3IDIxLjYyNTU5MTUsNi40ODY5Nzc0MSBMMjMuNDk3MzE4Nyw4LjI4MzU1NTI0IEMyMy43NzUzMTY4LDguNTUwMzkxNzUgMjMuNzg1Mzc4LDguOTkxNzMxMTQgMjMuNTE5ODI4Niw5LjI3MDk1ODkzIEw5LjUxMjMxMDcxLDI0IEw5LjUxMjMxMDcxLDI0IFoiIGlkPSJQYXRoLTIiPjwvcGF0aD4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIHg9IjAiIHk9IjAiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PC9yZWN0Pgo
be.props = {
list: {
type: Array,
default: () => []
},
selectedList: {
type: Array,
default: () => []
},
isSearch: {
type: Boolean,
default: !0
},
isRadio: {
type: Boolean,
default: !1
},
isCustomItem: {
type: Boolean,
default: !1
},
title: {
type: String,
default: ""
},
type: {
type: String,
default: ""
},
resultShow: {
type: Boolean,
default: !0
},
total: {
type: Number,
default: 0
},
isH5: {
type: Boolean,
default: !1
}
};
be.setup = (A, t) => {
const e = A, a = t.emit, n = I(""), l = I([]), i = I(0), u = I([]), s = I(!0), r = I(!1), M = I(""), D = I("");
QA(() => {
const {
list: L,
isCustomItem: m,
isSearch: k,
title: _,
total: Z,
selectedList: b
} = e;
if (m)
for (let P = 0; P < L.length; P++)
L[P].conversationID.indexOf("@TIM#SYSTEM") > -1 && L.splice(P, 1), l.value = L;
else
l.value = L;
i.value = Z || L.length, u.value = b && b.length > 0 ? b : u.value, s.value = k, r.value = m, M.value = _, n.value = e.type;
});
const g = p(() => l.value.filter((L) => !L.isDisabled));
return {
t: v,
selectedIcon: fI,
backIcon: LI,
cancelIcon: UI,
props: e,
transferList: l,
transferTotal: i,
transferSelectedList: u,
isTransferSearch: s,
isTransferCustomItem: r,
transferTitle: M,
searchValue: D,
optional: g,
handleInput: (L) => {
D.value = L.target.value, a("search", L.target.value);
},
selected: (L) => {
if (L.isDisabled)
return;
let m = u.value;
const k = m.indexOf(L);
if (k > -1)
return u.value.splice(k, 1);
e.isRadio && (m = []), m.push(L), u.value = m;
},
selectedAll: () => {
u.value.length === g.value.length ? u.value = [] : u.value = [...g.value];
},
submit: () => {
a("submit", u.value), D.value = "";
},
cancel: () => {
a("cancel"), D.value = "";
},
getMore: () => {
a("getMore");
}
};
};
be.components = Object.assign({
TIcon: vI
}, be.components);
var zI = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "transfer",
class: [A.props.isH5 ? "transfer-h5" : ""]
}, [A.props.isH5 ? e("header", {
staticClass: "transfer-header transfer-h5-header",
on: {
click: A.cancel
}
}, [e("TIcon", {
staticClass: "icon",
attrs: {
file: A.backIcon,
width: "18px",
height: "18px"
}
}), e("span", {
staticClass: "title"
}, [A._v(A._s(A.transferTitle))]), e("span", {
staticClass: "space"
})], 1) : A._e(), e("main", {
staticClass: "main"
}, [e("div", {
staticClass: "left"
}, [e("header", {
staticClass: "transfer-header"
}, [!A.props.isH5 && A.isTransferSearch ? e("input", {
class: [A.props.isH5 ? "left-uniapp-input" : ""],
attrs: {
type: "text",
placeholder: A.t("Please enter userID"),
enterkeyhint: "search"
},
domProps: {
value: A.searchValue
},
on: {
keyup: function(a) {
return !a.type.indexOf("key") && A._k(a.keyCode, "enter", 13, a.key, "Enter") ? null : A.handleInput.apply(null, arguments);
}
}
}) : A._e(), A.props.isH5 && A.isTransferSearch ? e("input", {
class: [A.props.isH5 ? "left-uniapp-input" : ""],
attrs: {
type: "text",
placeholder: A.t("Please enter userID"),
enterkeyhint: "search"
},
domProps: {
value: A.searchValue
},
on: {
blur: A.handleInput,
confirm: A.handleInput
}
}) : A._e()]), e("main", {
staticClass: "transfer-left-main"
}, [e("ul", {
staticClass: "transfer-list"
}, [A.optional.length > 1 && !A.isRadio ? e("li", {
staticClass: "transfer-list-item",
on: {
click: A.selectedAll
}
}, [A.transferSelectedList.length === A.optional.length ? e("TIcon", {
attrs: {
file: A.selectedIcon,
width: "18px",
height: "18px"
}
}) : e("i", {
staticClass: "icon-unselected"
}), e("span", {
staticClass: "select-all"
}, [A._v(A._s(A.t("Select all")))])], 1) : A._e(), A._l(A.transferList, function(a) {
return e("li", {
key: a.userID,
staticClass: "transfer-list-item",
on: {
click: function(n) {
return A.selected(a);
}
}
}, [A.transferSelectedList.indexOf(a) > -1 ? e("TIcon", {
class: [a.isDisabled && "disabled"],
attrs: {
file: A.selectedIcon,
width: "18px",
height: "18px"
}
}) : e("i", {
class: [a.isDisabled && "disabled", "icon-unselected"]
}), A.isTransferCustomItem ? [A._t("left", null, {
data: a
})] : [e("img", {
staticClass: "avatar",
attrs: {
src: a.avatar || "https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png",
onerror: "this.src='https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png'"
}
}), e("span", {
staticClass: "name"
}, [A._v(A._s(a.nick || a.userID))]), a.isDisabled ? e("span") : A._e()]], 2);
}), A.transferTotal > A.transferList.length ? e("li", {
staticClass: "transfer-list-item more",
on: {
click: A.getMore
}
}, [A._v(" " + A._s(A.t("View more")) + " ")]) : A._e()], 2)])]), e("div", {
staticClass: "right"
}, [A.props.isH5 ? A._e() : e("header", {
staticClass: "transfer-header"
}, [A._v(" " + A._s(A.transferTitle) + " ")]), A.resultShow ? e("ul", {
staticClass: "transfer-list"
}, [A.transferSelectedList.length > 0 && !A.props.isH5 ? e("p", {
staticClass: "transfer-text"
}, [A._v(" " + A._s(A.transferSelectedList.length) + " " + A._s(A.t("people selected")) + " ")]) : A._e(), A._l(A.transferSelectedList, function(a, n) {
return e("li", {
key: n,
staticClass: "transfer-list-item space-between"
}, [e("aside", {
staticClass: "transfer-list-item-content"
}, [A.isTransferCustomItem ? [A._t("right", null, {
data: a
})] : [e("img", {
staticClass: "avatar",
attrs: {
src: a.avatar || "https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png",
onerror: "this.src='https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png'"
}
}), A.props.isH5 ? A._e() : e("span", {
staticClass: "name"
}, [A._v(A._s(a.nick || a.userID))])]], 2), A.props.isH5 ? A._e() : e("span", {
on: {
click: function(l) {
return A.selected(a);
}
}
}, [e("TIcon", {
attrs: {
file: A.cancelIcon,
width: "18px",
height: "18px"
}
})], 1)]);
})], 2) : A._e(), e("footer", {
staticClass: "transfer-right-footer"
}, [e("button", {
staticClass: "btn btn-cancel",
on: {
click: A.cancel
}
}, [A._v(A._s(A.t("Cancel")))]), A.transferSelectedList.length > 0 ? e("button", {
staticClass: "btn",
on: {
click: A.submit
}
}, [A._v(" " + A._s(A.t("Done")) + " ")]) : e("button", {
staticClass: "btn btn-no",
on: {
click: A.submit
}
}, [A._v(A._s(A.t("Done")))])])])])]);
}, wI = [];
const Xn = {};
var OI = /* @__PURE__ */ S(
be,
zI,
wI,
!1,
xI,
"f41767b6",
null,
null
);
function xI(A) {
for (let t in Xn)
this[t] = Xn[t];
}
const VI = /* @__PURE__ */ function() {
return OI.exports;
}(), Be = {};
Be.props = {
isRadio: {
type: Boolean,
default: !1
},
isNeedSearch: {
type: Boolean,
default: !1
},
title: {
type: String,
default: ""
},
userList: {
type: Array,
default: () => []
},
total: {
type: Number,
default: 0
},
isShow: {
type: Boolean,
default: !1
},
isPC: {
type: Boolean,
default: !0
}
};
Be.setup = (A, t) => {
const e = t.emit, a = A, n = I(!1);
return QA(() => {
n.value = a.isShow;
}), {
props: a,
dialogVisible: n,
reset: () => {
n.value = !n.value, e("complete", []), e("update:isShow", n.value);
},
submit: (r) => {
e("complete", r);
},
handleSearchUser: (r) => {
e("search", r);
},
handleGetMore: () => {
e("getMore");
}
};
};
Be.components = Object.assign({
TDialog: SI,
TTransfer: VI
}, Be.components);
var bI = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("TDialog", {
attrs: {
moduleValue: A.dialogVisible,
isH5: !A.isPC,
isHeaderShow: !1,
isFooterShow: !1,
background: !1
},
on: {
"update:moduleValue": A.reset
}
}, [e("TTransfer", {
attrs: {
isSearch: A.props.isNeedSearch,
title: A.props.title,
list: A.props.userList,
isH5: !A.isPC,
isRadio: A.props.isRadio,
total: A.props.total
},
on: {
getMore: A.handleGetMore,
search: A.handleSearchUser,
submit: A.submit,
cancel: A.reset
}
})], 1);
}, BI = [];
const _n = {};
var FI = /* @__PURE__ */ S(
Be,
bI,
BI,
!1,
RI,
null,
null,
null
);
function RI(A) {
for (let t in _n)
this[t] = _n[t];
}
const kI = /* @__PURE__ */ function() {
return FI.exports;
}(), Tt = {
options: {
virtualHost: !0
}
};
Tt.setup = (A, t) => ({
defaultAvatarSrc: GA
});
Tt.components = Object.assign({
Overlay: _o
}, Tt.components);
var PI = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("Overlay", {
attrs: {
bgColor: "#22262ed9",
bgImage: A.defaultAvatarSrc,
customStyle: {
position: "absolute",
zIndex: 0
}
}
});
}, WI = [];
const qn = {};
var GI = /* @__PURE__ */ S(
Tt,
PI,
WI,
!1,
QI,
null,
null,
null
);
function QI(A) {
for (let t in qn)
this[t] = qn[t];
}
const ZI = /* @__PURE__ */ function() {
return GI.exports;
}(), Ct = {};
Ct.setup = (A, t) => {
const e = I(null), a = I("open"), n = I(!1), l = I(0), i = I([]), u = I([]), s = I(0), r = 30, M = e, D = {
status: a
}, {
callRole: g,
callStatus: N
} = z(q()), {
isFloatWindow: y
} = z(CA()), {
localUserInfoExcludeVolume: T,
remoteUserListExcludeVolume: C
} = z(MA()), E = async (b) => {
if (n.value = b, n.value) {
await m();
const P = await O.getGroupProfile();
l.value = P.memberCount;
}
}, w = () => {
n.value = !1, d.update(c.CALL, o.SHOW_SELECT_USER, !1), s.value = 0, i.value = [];
}, L = async () => {
s.value += r, await m();
}, m = async () => {
const b = await O.getGroupMemberList(r, s.value), P = [...C.value, T.value].map((AA) => AA.userId);
i.value.push(...b), i.value = i.value.map((AA) => (P.includes(AA.userID) && (AA = {
...AA,
isDisabled: !0
}), AA)), u.value = i.value;
}, k = async (b) => {
try {
if (b.length <= 0)
return;
n.value = !1, d.update(c.CALL, o.SHOW_SELECT_USER, !1), s.value = 0;
const P = b.map((AA) => AA.userID);
await O.inviteUser({
userIDList: P
}), i.value = [];
} catch (P) {
console.debug(P);
}
}, _ = (b) => {
b ? i.value = i.value.filter((P) => P.userID.includes(b) || P.nick.includes(b)) : i.value = u.value;
}, Z = {
[o.SHOW_SELECT_USER]: E
};
return aA(() => {
d.watch(c.CALL, Z, {
notifyRangeWhenWatch: o.MYSELF
});
}), tA(() => {
d.unwatch(c.CALL, Z);
}), D.status = I("open"), M.value = null, gA(Eo, D), gA(So, M), {
CallRole: K,
CallStatus: U,
TUIGlobal: j,
showSelectUser: n,
memberCount: l,
groupMemberList: i,
callRole: g,
callStatus: N,
isFloatWindow: y,
handleCancel: w,
getMoreMemberList: L,
handleSelectedResult: k,
handleSearch: _
};
};
Ct.components = Object.assign({
TopBar: Xo,
Waiting: Ko,
MediaContainer: pI,
Tip: rl,
ButtonPanel: Nl,
BackGround: ZI,
SelectUser: kI
}, Ct.components);
var YI = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "groupcall-container"
}, [e("TopBar"), A.callStatus === A.CallStatus.CALLING && A.callRole === A.CallRole.CALLEE && !A.isFloatWindow ? e("Waiting") : A._e(), e("MediaContainer"), e("Tip"), e("ButtonPanel"), e("BackGround"), e("SelectUser", {
attrs: {
isShow: A.showSelectUser,
isNeedSearch: !0,
userList: A.groupMemberList,
isPC: A.TUIGlobal.isPC,
total: A.memberCount
},
on: {
getMore: A.getMoreMemberList,
complete: A.handleSelectedResult,
search: A.handleSearch,
"update:isShow": A.handleCancel
}
})], 1);
}, XI = [];
const Jn = {};
var _I = /* @__PURE__ */ S(
Ct,
YI,
XI,
!1,
qI,
"487ae8a3",
null,
null
);
function qI(A) {
for (let t in Jn)
this[t] = Jn[t];
}
const JI = /* @__PURE__ */ function() {
return _I.exports;
}();
var HI = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("svg", {
attrs: {
viewBox: "0 0 1024 1024",
xmlns: "http://www.w3.org/2000/svg",
"data-v-ea893728": ""
}
}, [e("path", {
attrs: {
fill: "currentColor",
d: "M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"
}
})]);
}, KI = [];
const $I = {}, Hn = {};
var Ag = /* @__PURE__ */ S(
$I,
HI,
KI,
!1,
eg,
null,
null,
null
);
function eg(A) {
for (let t in Hn)
this[t] = Hn[t];
}
const tg = /* @__PURE__ */ function() {
return Ag.exports;
}(), Kn = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAMAAYAAD/2wBDABYPEBMQDhYTEhMYFxYaIDYjIB4eIEIvMic2TkVSUU1FTEpWYXxpVlx1XUpMbJNtdYCEi4yLVGiZo5eHonyIi4b/2wBDARcYGCAcID8jIz+GWUxZhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhob/wAARCAOABTgDASIAAhEBAxEB/8QAGwABAAIDAQEAAAAAAAAAAAAAAAECAwQFBgf/xABOEAABAwICBQcIBwYFAwQCAwEAAQIDBBEFEhMhMVFSFBUyQZGS0RYiU1RhcaLhNDVkcoGxwQYjM0JzoSSCg8LwQ2KTJWN0siY2RFXxlP/EABkBAQADAQEAAAAAAAAAAAAAAAABAwQCBf/EACsRAQABAwQBAwQDAQEBAQAAAAABAgNRERMUUhIEMUEhMlNxM0JhIjSBof/aAAwDAQACEQMRAD8A4OHYfPiVSkMKe1zl2NTeexoP2eoKNqZoknk63ypf+2xCf2coko8Ljdb95Mmkevv2f2OodTLqZVaxjOgxrfc2xe67yAcoTdd4uu8gATdd4uu8gATdd4uu8gATdd4uu8gATdRdSABN13i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm6i6kACbqLqQAJuoupAAm67xdd5AAm67xdd5AAm67xdSABN1F1IAE3UXUgATdRdSABV0bHpZ7Gu97bnOrsAoaxq5Ykgk6nxpb+2w6YA+e4hQTYdUrDMnta5NjkB679oaJKvDJFt+8hTOxfdt/sAh0YmZImMTY1qIXACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhVsgEgjLfaMqbgJBGVNwypuAkEZU3DKm4CQRlTcMqbgJBGVNwypuAkEZU3DKm4CQRlTcMqbgJBGVNwypuAkEZU3DKm4CQRlTcMqbgJBGVNwypuAkEZU3DKm4CQRlTcMqbgJBGVNwypuAkEZU3DKm4CQRlTcMqbgJBGVNwypuAkEZU3DKm4CQRlTcMqbgJBGVBsXXsAkAAUlZpInsX+ZqoC4AAAAAAABya6te6R0cTsrG6lVNqqRM6O7dubk6Q6wPOW15uvf1m7Q1r2yJHK7Mx2pFXainMXIlfX6aaY1idXWAB2ygNWaZXOVrVs1NSqnWYLJe9te8zV+pimdIjVbTamY1dEGrBMrXI1y3aupFXqNout3IrjWHFVM0zpIAYJHq5VRFs1NWrrO3LODUyt3IZI3q1URVu1dWvqAzgAAAAAAAAAAa01fDDUsgW7pHrazf5feYMQxBYncnpkz1DtWr+Uth+HpTJpZVzzu2qvUBvAAAAAAAAGOSdkciMddM3X1GQpLG2VmV3buAuDUjkdTu0cvR/lcbYAAAAAAAAGJ9VBHJo3zMa/cqkzTwwW0sjWZtl12mhVYStRWrUaZGoqotsu4y4lh61yxq2RGZL7UvcDbdNE2LSrI1I+K+oiOaKZivjka5qbVRTXkoFfhzaTSWVqJ51hQ0C0lPJE6TMr12omzUBniqYJnK2KVj1TXZFMpzsPwtaOdZHSo+7bWRtjogAABCqiJdVRE9pXSx8be01MajfLhsrI2Oe5VSyIl12ocxMHpY8PSpqXzMcjLubdE17tgHUo8Up6x8jG5mKzjslza0sfpG948/hmE09dTrK/TR67J56Lm/sRieCpTRsWlSaVyusqWzW7ECHpDFUVEVNEssz0a1P7mriOJsw9jW6Nz5HJ5qdXacZszK+p0mJ1KRsYtkiRF/wCIEu3Q4rTVz1ZGrmvT+V+pV9xunncQ5tmRslLUMhmZ0bNVEX+xlw/HHq5kVUxXK7U2RqbfwCHXq6llHTumkRytba+XaTHUxPp2Tq5GMeiKivWxxsdrJFdNSIjdGjGuVeu90OdJWTyUbaJ6X1syWTqt80A9LPiEMFRDC7MrprZVamrWtjaPKVTa9lVSMmRqStskSJbfqO1QLienXliMSPL1W2/gEtqsqo6OBZpEcrUVEs3aZIZEmhZK1FRr2o5L+05f7SPy0DG8UifkphjwibRttibmplTUl9X9wO6NhxOaJv8A+1f/AH8Tp0kD6akSN8qyql/PXrAwc94f6f4HeBeoxSmp6eOdyucyTo5U1r2nmokY7D9G2Nrp5ZsrVtrtZP1sZnwTQ1bWVkEk8cSWa1nRVAh6KLEKSVGZZ47vtZquS+vqNh72sY571RrWpdVXqPJZmQ1ralaKSOFioqM17eq6qelfURvw1ah7FWN0WZzeuypsCWJ+MUDNtQi/dRVMtHXQ1sb3xKtmrZcyWPMVE1Es8LqencyNq3e1y3za/edd2JU78Kqn00OiypktZE1rq6gh0qWrgrGOdA/OjVsupUM5z8Ch0OGxqqa5FV6/p/Y6ASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABC7UJIXpIBIAAA06qSWWoSkgdkXLmkfwp7COaqe1/3mfjz6wN0GlTSSwVPJZ36RFbeN67V9im6AAMVRJo41sqI7qAygwumVXo1issqXupRZpEjV3mrZV27QNkFXuVrbtTMu69jDJNIjegjde3MigbAMKSyeiTvoZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDthJDuioEgAAAAAAAAAAecS9vO29fvPRnJrqJ7ZHSRNzMdrVE2opxcjWGr01cUzMT8tILe3m7er3i+vL17us3aGie6RJJW5WN1oi7VUqppmZbK66aadZdYAGh5LnJ0Uvt6yTNNCrXK5qXautUTqMF0va+vceVXRVTU2U1RMC9Fbbeo6JqwQq5yOclmprRF6zaNnpqJpiZn5UXZiZ+gajeghtmCRitVVRLtXXq6jSqVKu6CjM3ehkjYrlRVSzU16+sDOAAAAAAAAVkRXRuRrsqqlkXcWAHDw9zaCsfFVstI/oyqdwwVlJHWRZHprTou60NCjqpaOdKKruqLqjeB1gAAAAAAAADDUT6OzWpd7tgFat7MmjtmeuxNxemY+OJEeuvduK08GTz365F/sZwAAAAAAAAOPXUtbJiCviR+jullR9rGbGIKqbRcmRyol81nW3GGuxGpgxBYY8uS7bJbaZsYrJqTRaFUTNe6ql9wFpYalcISJubT2S/na9u8YXDUxU0rZ7o9V827r9Qlq5m4QlQltIqJ1e0YXVzVNNK+Wyuavm2T2AYMKpqyGqc6oR6Myqmt99Z1zkYViFRVVTo5VarcqrqS1jrgAABr11I2tp1he5zUVUW6Hmayjghr20sU3WiPe9Us1T1NRPHTQullVUY3aqJc4eIYlh1S1ctKssi7HWy/32hCmIYVSUdJpkne5ztTE1ecXocBZPSslmkexz0vZN3UakOD1ssOlSNG2W7WPXWv4eJ0qXG3MkSCtgcyTZdqfoB1Vjijia57UdoW6lVLqmo4stZg0ivesLle663yrtOriFbFQxI6ZjnNeuWzURTlOxbDFaqJRLe3om+IGnhsuHRxPSsjV7
Fe.props = {
platform: {
key: "platform",
required: !0,
type: null
},
language: {
key: "language",
required: !0,
type: String
}
};
Fe.setup = (A, t) => {
const e = {
mac: {
"zh-cn": Kn,
en: ag
},
win: {
"zh-cn": ng,
en: og
}
}, a = A, n = p(() => a.platform === "mac" ? "mac-privacy" : "win-privacy"), l = p(() => a.platform === "mac" ? "mac-preferences" : "win-preferences"), i = I(Kn), u = I(!0), s = (M) => {
M && j.isPC && (u.value = !0);
}, r = () => {
u.value = !1;
};
return J(() => a.language, () => {
i.value = e[a.platform][a.language];
}, {
immediate: !0
}), aA(() => {
d.watch(c.CALL, {
[o.SHOW_PERMISSION_TIP]: s
}, {
notifyRangeWhenWatch: o.MYSELF
});
}), tA(() => {
d.unwatch(c.CALL, {
[o.SHOW_PERMISSION_TIP]: s
});
}), {
t: v,
privacy: n,
preferences: l,
permitPng: i,
showModal: u,
handleClose: r
};
};
Fe.components = Object.assign({
CloseIcon: tg
}, Fe.components);
var lg = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return A.showModal ? e("div", {
staticClass: "card"
}, [e("div", {
staticClass: "card-body"
}, [e("div", {
staticClass: "close",
on: {
click: A.handleClose
}
}, [e("CloseIcon")], 1), e("div", {
staticClass: "card-wrapper"
}, [e("div", {
staticClass: "title"
}, [A._v(A._s(A.t("browser-authorization")))]), e("div", {
staticClass: "button"
}, [A._v(A._s(A.t(A.preferences)))]), e("div", {
staticClass: "allow"
}, [A._v(A._s(A.t(A.privacy)))]), e("div", {
staticClass: "image-wrapper"
}, [e("img", {
staticClass: "image",
attrs: {
src: A.permitPng,
alt: "system permit"
}
})])])])]) : A._e();
}, ig = [];
const $n = {};
var sg = /* @__PURE__ */ S(
Fe,
lg,
ig,
!1,
ug,
"ee5a0fe8",
null,
null
);
function ug(A) {
for (let t in $n)
this[t] = $n[t];
}
const cg = /* @__PURE__ */ function() {
return sg.exports;
}(), yt = {};
yt.setup = (A, t) => {
const e = p(() => j.isMAC ? Rt.MAC : Rt.WIN), a = I(d.getData(c.CALL, o.LANGUAGE)), n = (l) => a.value = l;
return aA(() => {
d.watch(c.CALL, {
[o.LANGUAGE]: n
}, {
notifyRangeWhenWatch: o.MYSELF
});
}), tA(() => {
d.unwatch(c.CALL, {
[o.LANGUAGE]: n
});
}), {
platform: e,
language: a
};
};
yt.components = Object.assign({
SystemPermitTip: cg
}, yt.components);
var rg = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "tip"
}, [e("div", {
staticClass: "card"
}, [e("SystemPermitTip", {
attrs: {
platform: A.platform,
language: A.language
}
})], 1)]);
}, Mg = [];
const Ao = {};
var dg = /* @__PURE__ */ S(
yt,
rg,
Mg,
!1,
Ig,
"ff1df20c",
null,
null
);
function Ig(A) {
for (let t in Ao)
this[t] = Ao[t];
}
const gg = /* @__PURE__ */ function() {
return dg.exports;
}(), pl = {};
let He = null, Ng = 1;
const pg = () => {
const A = document.body;
He && (A.removeChild(He.$el), He.$destroy());
const t = Xt.extend(gg), e = new t({
propsData: {
index: `toast-item-${Ng++}`,
destroy() {
A.removeChild(e.$el), e.$destroy();
}
}
});
e.$mount(), A.appendChild(e.$el), He = e;
};
pl.show = () => pg();
const Sa = {};
Sa.props = {
type: {
key: "type",
required: !0,
type: null
},
duration: {
key: "duration",
required: !1,
type: Number
},
message: {
key: "message",
required: !0,
type: String
},
index: {
key: "index",
required: !0,
type: String
},
showClose: {
key: "showClose",
required: !1,
type: Boolean
},
destroy: {
key: "destroy",
required: !0,
type: Function
},
close: {
key: "close",
required: !0,
type: Function
}
};
Sa.setup = (A, t) => {
const e = A, a = I(!1), n = I(null), l = p(() => `toast-container ${e.type}`), i = () => {
e.destroy();
}, u = () => {
e.close(), a.value = !1;
}, s = () => {
n.value && clearTimeout(n.value), e.duration && (n.value = setTimeout(() => {
u();
}, e.duration));
};
return aA(() => {
a.value = !0, s();
}), tA(() => {
n.value && clearTimeout(n.value);
}), {
isShow: a,
toastClass: l,
handleAfterLeave: i,
handleClose: u
};
};
var Dg = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("Transition", {
attrs: {
name: "slide-up"
},
on: {
"after-leave": A.handleAfterLeave
}
}, [e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.isShow,
expression: "isShow"
}],
key: A.index,
class: A.toastClass
}, [e("div", {
staticClass: "toast-content"
}, [A._v(A._s(A.message))]), e("i", {
directives: [{
name: "show",
rawName: "v-show",
value: A.showClose,
expression: "showClose"
}],
staticClass: "toast-close-icon",
on: {
click: A.handleClose
}
})])]);
}, Tg = [];
const eo = {};
var Cg = /* @__PURE__ */ S(
Sa,
Dg,
Tg,
!1,
yg,
"1a36ce82",
null,
null
);
function yg(A) {
for (let t in eo)
this[t] = eo[t];
}
const Sg = /* @__PURE__ */ function() {
return Cg.exports;
}(), LA = {}, IA = [];
let Eg = 1;
function hg() {
var t, e, a;
const A = IA.length;
return A > 0 ? (a = (e = (t = IA[A - 1]) == null ? void 0 : t.$el) == null ? void 0 : e.style) == null ? void 0 : a.top : "30px";
}
function mg() {
var t, e;
const A = IA.length;
return A > 0 ? (e = (t = IA[A - 1]) == null ? void 0 : t.$el) == null ? void 0 : e.offsetHeight : 0;
}
const Dl = (A) => {
const t = document.body, { type: e, duration: a = 3e3, message: n, showClose: l = !1, onClose: i } = A, u = Xt.extend(Sg), s = new u({
propsData: {
type: e,
duration: a,
message: n,
showClose: l,
index: `toast-item-${Eg++}`,
close() {
var N, y, T, C;
const D = IA.findIndex((E) => E === s);
console.log((y = (N = IA[D]) == null ? void 0 : N.$el) == null ? void 0 : y.offsetHeight);
const g = parseInt((C = (T = IA[D]) == null ? void 0 : T.$el) == null ? void 0 : C.offsetHeight) + 20;
for (let E = 0; E < IA.length; E++)
E < D || (IA[E].$el.style.top = parseInt(IA[E].$el.style.top) - g + "px");
IA.splice(D, 1);
},
destroy() {
t.removeChild(s.$el), s.$destroy();
}
}
});
s.$mount(), t.appendChild(s.$el);
const r = hg(), M = mg();
s.$el.style.top = parseInt(r) + parseInt(M) + 20 + "px", IA.push(s);
};
["info", "waring", "error", "success"].forEach((A) => {
let t = {};
LA[A] = (e) => {
typeof e == "string" ? t.message = e : t = e, Dl({ type: A, ...t });
};
});
LA.show = (A) => {
let t = {};
return typeof A == "string" ? (t.message = A, t.type = "info") : t = A, Dl({ type: "info", ...t });
};
const Re = {};
Re.props = {
beforeCalling: {
key: "beforeCalling",
required: !1,
type: Function
},
afterCalling: {
key: "afterCalling",
required: !1,
type: Function
},
onMinimized: {
key: "onMinimized",
required: !1,
type: Function
},
onMessageSentByMe: {
key: "onMessageSentByMe",
required: !1,
type: Function
},
kickedOut: {
key: "kickedOut",
required: !1,
type: Function
},
statusChanged: {
key: "statusChanged",
required: !1,
type: Function
},
allowedMinimized: {
key: "allowedMinimized",
required: !1,
type: Boolean,
default: !1
},
allowedFullScreen: {
key: "allowedFullScreen",
required: !1,
type: Boolean,
default: !0
},
videoDisplayMode: {
key: "videoDisplayMode",
required: !1,
type: String,
default: "cover"
},
videoResolution: {
key: "videoResolution",
required: !1,
type: String,
default: "480p"
}
};
Re.setup = (A, t) => {
const e = !j.isPC, a = e ? "TUICallKit-mobile transition-animation" : "TUICallKit-desktop", n = I(""), l = I(""), i = I(""), u = I(!1), s = A, r = I(d.getData(c.CALL, o.CALL_STATUS)), M = I(d.getData(c.CALL, o.CALL_ROLE)), D = I(d.getData(c.CALL, o.CALL_MEDIA_TYPE)), g = I(d.getData(c.CALL, o.IS_GROUP)), N = I(d.getData(c.CALL, o.IS_EAR_PHONE)), y = I(null), T = I(d.getData(c.CALL, o.LOCAL_USER_INFO_EXCLUDE_VOLUMN)), C = I(d.getData(c.CALL, o.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST)), E = I(d.getData(c.CALL, o.CALLER_USER_INFO)), w = I(d.getData(c.CALL, o.IS_MINIMIZED)), L = I(d.getData(c.CALL, o.ENABLE_VIRTUAL_BACKGROUND)), m = I(d.getData(c.CALL, o.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND)), k = I(d.getData(c.CALL, o.CUSTOM_UI_CONFIG)), _ = I(d.getData(c.CALL, o.IS_MUTE_SPEAKER)), Z = Ye({
callStatus: r,
callRole: M,
callType: D,
isGroupCall: g,
isEarPhone: N,
focusElement: y,
allowedFullScreen: s.allowedFullScreen,
enableVirtualBackground: L,
isShowEnableVirtualBackground: m,
isMuteSpeaker: _
}), b = Ye({
callerUserInfo: E
}), P = Ye({
localUserInfoExcludeVolume: T,
remoteUserListExcludeVolume: C
}), AA = Ye({
isFloatWindow: w
}), {
beforeCalling: ZA,
afterCalling: xA,
onMinimized: VA,
onMessageSentByMe: bA,
videoDisplayMode: YA,
videoResolution: Ut,
kickedOut: Qe,
statusChanged: Ze,
allowedMinimized: Y
} = z(s), iA = (B) => {
Z.callStatus = B;
}, dA = (B) => {
Z.isGroupCall = B;
}, BA = (B) => {
B.text && zl(B.text, B.type || "info");
}, Cl = (B) => {
Z.callType = B, e && u.value && (i.value = "miniMized-mobile-audio", l.value = ""), e && !u.value && (l.value = "mobile-audio");
}, Ea = (B) => {
AA.isFloatWindow = B, B ? e ? Z.callType === F.AUDIO ? l.value = "miniMized-mobile-audio" : i.value = "miniMized-mobile-video" : n.value = "miniMized" : (l.value = "mobile-audio", n.value = "", i.value = "");
}, yl = (B) => {
if (B && j.isPC)
try {
pl.show();
} catch (zt) {
console.debug(zt);
}
}, Sl = (B) => {
Z.callRole = B;
}, El = (B) => {
P.localUserInfoExcludeVolume = B;
}, hl = (B) => {
P.remoteUserListExcludeVolume = B;
}, ml = (B) => {
b.callerUserInfo = B;
}, jl = (B) => {
Z.isEarPhone = B;
}, vl = (B) => {
Z.enableVirtualBackground = B;
}, fl = (B) => {
Z.isShowEnableVirtualBackground = B;
}, Ll = (B) => {
k.value = B;
}, Ul = (B) => {
Z.isMuteSpeaker = B;
};
QA(() => {
O.setCallback({
beforeCalling: ZA && ZA.value,
afterCalling: xA && xA.value,
onMinimized: VA && VA.value,
onMessageSentByMe: bA && bA.value,
kickedOut: Qe && Qe.value,
statusChanged: Ze && Ze.value
});
});
const ha = {
[o.CALL_STATUS]: iA,
[o.IS_GROUP]: dA,
[o.TOAST_INFO]: BA,
[o.CALL_MEDIA_TYPE]: Cl,
[o.SHOW_PERMISSION_TIP]: yl,
[o.CALL_ROLE]: Sl,
[o.LOCAL_USER_INFO_EXCLUDE_VOLUMN]: El,
[o.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]: hl,
[o.CALLER_USER_INFO]: ml,
[o.IS_EAR_PHONE]: jl,
[o.ENABLE_VIRTUAL_BACKGROUND]: vl,
[o.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND]: fl,
[o.CUSTOM_UI_CONFIG]: Ll,
[o.IS_MUTE_SPEAKER]: Ul
};
aA(() => {
Y.value && O.enableFloatWindow(Y.value), O.setVideoDisplayMode(YA.value), O.setVideoResolution(Ut.value), d.watch(c.CALL, ha, {
notifyRangeWhenWatch: o.MYSELF
}), d.watch(c.CALL, {
[o.IS_MINIMIZED]: Ea
});
});
function zl(B, zt) {
switch (zt) {
case "info":
LA == null || LA.info(B);
break;
case "error":
LA == null || LA.error(B);
break;
}
}
return tA(async () => {
d.unwatch(c.CALL, {
...ha,
[o.IS_MINIMIZED]: Ea
});
}), gA(To, Z), gA(Co, b), gA(yo, P), gA(ho, AA), gA(vo, k), {
CallStatus: U,
bodyStyle: a,
miniMizedDeskStyle: n,
mobileAudioStyle: l,
mobileVideoStyle: i,
callInfoContextValue: Z,
floatWindowContextValue: AA
};
};
Re.components = Object.assign({
SingleCall: iI,
GroupCall: JI
}, Re.components);
var jg = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return A.callInfoContextValue.callStatus !== A.CallStatus.IDLE ? e("div", {
class: [A.bodyStyle, A.miniMizedDeskStyle, A.mobileVideoStyle, A.mobileAudioStyle],
style: [{
visibility: A.floatWindowContextValue.isFloatWindow ? "hidden" : ""
}],
attrs: {
id: "tuicallkit-id"
}
}, [A.callInfoContextValue.isGroupCall ? e("GroupCall", {
staticClass: "singCall"
}) : e("SingleCall", {
staticClass: "singCall"
})], 1) : A._e();
}, vg = [];
const to = {};
var fg = /* @__PURE__ */ S(
Re,
jg,
vg,
!1,
Lg,
null,
null,
null
);
function Lg(A) {
for (let t in to)
this[t] = to[t];
}
const Lt = /* @__PURE__ */ function() {
return fg.exports;
}(), Tl = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEuNTM1NzcgNi42ODIzOEMxLjIwNTYyIDUuNzI3MjggMS42MjM1NSA0LjcwMTQ5IDIuNDM2NDEgNC4xMDA4QzMuMDUyNjUgMy42NDU0MSAzLjY3MTcgMy4xODU0OSA0LjAyNDk0IDIuOTIyNzZDNC4xOTI4IDIuNzk3OTEgNC40MjgxIDIuODI1MjIgNC41NjM2IDIuOTg0NTlMNi40ODg1NSA1LjI0ODU3QzYuNjE0NDEgNS4zOTY1OSA2LjYxNDQ3IDUuNjEzOTYgNi40ODg3IDUuNzYyMDVMNS4zMDgzNiA3LjE1MTlDNS4yMDA5MSA3LjI3ODQxIDUuMTgzMDIgNy40NTg4NyA1LjI2Nzk2IDcuNjAxNDZDNS42NTA0MSA4LjI0MzQ1IDYuMDcwMDggOC43OTMzNCA2LjYzNzE5IDkuMzYwMjlDNy4yMDc2MyA5LjkzMDU2IDcuNzU3NDIgMTAuMzQyMSA4LjQwMzA2IDEwLjcyMzVDOC41NDU3NiAxMC44MDc5IDguNzI1OTQgMTAuNzg5OSA4Ljg1MjM0IDEwLjY4MjdMMTAuMjM2NSA5LjUwODYxQzEwLjM4NDcgOS4zODI5NSAxMC42MDIgOS4zODMwNCAxMC43NTAxIDkuNTA4ODNMMTMuMDE1OSAxMS40MzQyQzEzLjE3NDkgMTEuNTY5MyAxMy4yMDIgMTEuODA0NCAxMy4wNzggMTEuOTcyMUwxMS44OTI3IDEzLjU3NTVDMTEuMjk2OCAxNC4zODE3IDEwLjI3OSAxNC43OTE2IDkuMzMwOTIgMTQuNDY1NEM3LjU3ODM1IDEzLjg2MjQgNS45MzIzNSAxMi44NjE3IDQuNTMzNTMgMTEuNDYzM0MzLjEzODcyIDEwLjA2ODkgMi4xMzk0NiA4LjQyODgzIDEuNTM1NzcgNi42ODIzOFoiIGZpbGw9IiMxQzY2RTUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04Ljg4ODc2IDIuMTMzM0M4LjY5MjM5IDIuMTMzMyA4LjUzMzIgMi4yOTI0OSA4LjUzMzIgMi40ODg4NlY2LjE3MzdDOC41MzMyIDYuMzcwMDYgOC42OTIzOSA2LjUyOTI1IDguODg4NzYgNi41MjkyNUgxMi41NzM2QzEyLjc3IDYuNTI5MjUgMTIuOTI5MiA2LjM3MDA2IDEyLjkyOTIgNi4xNzM3VjUuOTg3ODJDMTIuOTI5MiA1Ljc1MzcgMTMuMTcyMyA1LjU5ODgzIDEzLjM4NDUgNS42OTc4NEwxNC4wNzE0IDYuMDE4NDFDMTQuMzA3MSA2LjEyODQxIDE0LjU3NzMgNS45NTYzNCAxNC41NzczIDUuNjk2MjFWMi45NjYzM0MxNC41NzczIDIuNzA2MiAxNC4zMDcxIDIuNTM0MTMgMTQuMDcxNCAyLjY0NDE0TDEzLjM4NDUgMi45NjQ3QzEzLjE3MjMgMy4wNjM3MSAxMi45MjkyIDIuOTA4ODQgMTIuOTI5MiAyLjY3NDcyVjIuNDg4ODZDMTIuOTI5MiAyLjI5MjQ5IDEyLjc3IDIuMTMzMyAxMi41NzM2IDIuMTMzM0g4Ljg4ODc2WiIgZmlsbD0iIzFDNjZFNSIvPgo8L3N2Zz4K", ke = {};
ke.props = {
userListInfo: {
type: Array,
default: []
}
};
ke.setup = (A, t) => {
const e = t.emit, a = I(!1);
return {
t: v,
CallIcon: Tl,
defaultAvatarSrc: GA,
isShowContent: a,
handleJoinGroup: () => {
e("joinGroupCall"), a.value = !1;
},
handleClick: () => {
a.value = !a.value;
}
};
};
ke.components = Object.assign({
TKImage: SA
}, ke.components);
var Ug = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "banner-pc"
}, [e("div", {
staticClass: "top",
on: {
click: A.handleClick
}
}, [e("TKImage", {
staticClass: "call-icon",
attrs: {
src: A.CallIcon,
width: "16px",
height: "16px"
}
}), e("span", {
staticClass: "text"
}, [A._v(" " + A._s(A.userListInfo.length) + " " + A._s(A.t("people on the call")) + " ")])], 1), e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.isShowContent,
expression: "isShowContent"
}],
staticClass: "content"
}, [e("div", {
staticClass: "content-arrows"
}), e("div", {
staticClass: "avatar-box"
}, A._l(A.userListInfo, function(a) {
return e("TKImage", {
staticClass: "avatar",
attrs: {
src: a == null ? void 0 : a.avatar,
defaultSrc: A.defaultAvatarSrc,
fit: "cover",
width: "32px",
height: "32px"
}
});
}), 1), e("div", {
staticClass: "btn",
on: {
click: A.handleJoinGroup
}
}, [A._v(A._s(A.t("join")))])])]);
}, zg = [];
const ao = {};
var wg = /* @__PURE__ */ S(
ke,
Ug,
zg,
!1,
Og,
null,
null,
null
);
function Og(A) {
for (let t in ao)
this[t] = ao[t];
}
const xg = /* @__PURE__ */ function() {
return wg.exports;
}(), Vg = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iNiIgdmlld0JveD0iMCAwIDEwIDYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS41IDMuOTM0MDNlLTA3TDUgMy43NUwwLjUgMS41OTIwNGUtMDdMMC41IDEuNTYyMDVMNC42MTU4OSA0Ljk5MTk2TDUgNS4zMTIwNUw1LjM4NDExIDQuOTkxOTZMOS41IDEuNTYyMDVMOS41IDMuOTM0MDNlLTA3WiIgZmlsbD0iIzY2NjY2NiIvPgo8L3N2Zz4K", Pe = {};
Pe.props = {
userListInfo: {
type: Array,
default: []
}
};
Pe.setup = (A, t) => {
const e = I({
margin: "8px 10px 8px 0px"
}), a = I({
margin: "6px",
borderRadius: "4px"
}), n = I(!1), l = t.emit;
return {
t: v,
CallIcon: Tl,
ArrowsIcon: Vg,
defaultAvatarSrc: GA,
CallIconStyle: e,
avatarImgStyle: a,
isShowContent: n,
handleJoinGroup: () => {
l("joinGroupCall"), n.value = !1;
},
handleClick: () => {
n.value = !n.value;
}
};
};
Pe.components = Object.assign({
TKImage: SA
}, Pe.components);
var bg = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
staticClass: "banner-h5"
}, [e("div", {
staticClass: "top",
on: {
click: A.handleClick
}
}, [e("div", {
staticClass: "left"
}, [e("TKImage", {
staticClass: "call-icon",
attrs: {
src: A.CallIcon,
width: "16px",
height: "16px",
customStyle: A.CallIconStyle
}
}), e("span", {
staticClass: "text"
}, [A._v(" " + A._s(A.userListInfo.length) + " " + A._s(A.t("people on the call")) + " ")])], 1), e("TKImage", {
attrs: {
src: A.ArrowsIcon,
width: "9px",
height: "9px"
}
})], 1), e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.isShowContent,
expression: "isShowContent"
}],
staticClass: "content-box"
}, [e("div", {
staticClass: "content"
}, [e("div", {
staticClass: "avatar-box"
}, A._l(A.userListInfo, function(a) {
return e("TKImage", {
attrs: {
src: a == null ? void 0 : a.avatar,
customStyle: A.avatarImgStyle,
defaultSrc: A.defaultAvatarSrc,
fit: "cover",
width: "50px",
height: "50px"
}
});
}), 1), e("div", {
staticClass: "btn",
on: {
click: function(a) {
return a.stopPropagation(), A.handleJoinGroup.apply(null, arguments);
}
}
}, [A._v(A._s(A.t("join")))])])])]);
}, Bg = [];
const no = {};
var Fg = /* @__PURE__ */ S(
Pe,
bg,
Bg,
!1,
Rg,
null,
null,
null
);
function Rg(A) {
for (let t in no)
this[t] = no[t];
}
const kg = /* @__PURE__ */ function() {
return Fg.exports;
}(), St = {};
St.setup = (A, t) => {
const e = I(j.isPC), a = I(null), {
groupId: n,
roomId: l,
roomIdType: i,
callMediaType: u,
groupCallMembers: s,
callStatus: r
} = z(Zi()), M = p(() => n && (r == null ? void 0 : r.value) === U.IDLE && s.value.length);
return {
isPC: e,
message: a,
groupCallMembers: s,
isShow: M,
handleClick: async () => {
if (s.value.length > 9) {
a.value.show({
message: "Supports a maximum of 9 people for simultaneous calls",
type: "success"
});
return;
}
const g = {
type: u.value,
groupID: n.value,
roomID: i.value === 1 ? Number(l.value) : 0,
strRoomID: String(l.value)
};
try {
await O.joinInGroupCall(g);
} catch (N) {
console.error(`${o.PREFIX}joinInGroupCall fail: ${N}`);
}
}
};
};
St.components = Object.assign({
JoinGroupCardPC: xg,
JoinGroupCardMobile: kg,
Message: cl
}, St.components);
var Pg = function() {
var A = this, t = A.$createElement, e = A._self._c || t;
return e("div", {
directives: [{
name: "show",
rawName: "v-show",
value: A.isShow,
expression: "isShow"
}]
}, [A.isPC ? e("JoinGroupCardPC", {
attrs: {
userListInfo: A.groupCallMembers
},
on: {
joinGroupCall: A.handleClick
}
}) : e("JoinGroupCardMobile", {
attrs: {
userListInfo: A.groupCallMembers
},
on: {
joinGroupCall: A.handleClick
}
}), e("Message", {
ref: "message"
})], 1);
}, Wg = [];
const oo = {};
var Gg = /* @__PURE__ */ S(
St,
Pg,
Wg,
!1,
Qg,
null,
null,
null
);
function Qg(A) {
for (let t in oo)
this[t] = oo[t];
}
const Zg = /* @__PURE__ */ function() {
return Gg.exports;
}(), Yg = (A) => (A.component("TUICallKit", { server: O }), O.bindTUICore(A), Lt), Xg = (A) => {
A.component("TUICallKit", Lt).component("JoinGroupCard", Zg), console.log("TUICallKit&mini installed", A);
};
Lt.plugin = Yg;
Lt.install = Xg;
const $g = {
AUDIO_CALL: 1,
VIDEO_CALL: 2
}, AN = "3.3.7";
export {
F as CallMediaType,
K as CallRole,
zA as FeatureButton,
Zg as JoinGroupCard,
et as LayoutMode,
o as NAME,
nA as STATUS,
c as StoreName,
Lt as TUICallKit,
O as TUICallKitServer,
$g as TUICallType,
j as TUIGlobal,
d as TUIStore,
AN as Version,
ne as VideoDisplayMode,
oe as VideoResolution,
Xg as install,
Yg as plugin,
v as t,
mA as uiDesign
};