wildfire-im-sdk
Version:
野火IM SDK for Vue3 projects
1 lines • 76.2 kB
JavaScript
import*as e from"../../../config.js";import*as s from"../../../platform.js";import*as o from"../../messages/messageContentType";import*as t from"../../model/conversationType";import*as r from"../../model/nullUserInfo";import*as n from"../../util/longUtil.js";import*as i from"../engine/avenginekit";import*as l from"../engine/avenginekitproxy";import*as a from"../engine/callEndReason";import*as d from"../engine/callSession";import*as c from"../engine/callState";import*as u from"../engine/participantProfile";import*as m from"../engine/subscriber";import*as f from"../messages/addParticipantsMessageContent";import*as _ from"../messages/callAnswerMessageContent";import*as j from"../messages/callByeMessageContent";import*as p from"../messages/callModifyMessageContent";import*as y from"../messages/callSignalMessageContent";import*as h from"../messages/callStartMessageContent";import*as g from"../messages/muteVideoMessageContent";var b={"./av/internal/avenginekitImpl.js":(e,s,o)=>{o.r(s),o.d(s,{WfcAVEngineKitImpl:()=>v,default:()=>T});var t=o("./node_modules/babel-runtime/core-js/json/stringify.js"),r=o.n(t),n=o("./node_modules/babel-runtime/helpers/extends.js"),i=o("./node_modules/babel-runtime/core-js/map.js"),l=o.n(i),a=o("../../messages/messageContentType"),d=o("../messages/callSignalMessageContent"),c=o("../messages/callByeMessageContent"),u=o("../messages/callAnswerMessageContent"),m=o("../messages/callStartMessageContent"),f=o("../messages/callModifyMessageContent"),_=o("../../model/conversationType"),j=o("../engine/callEndReason"),p=o("../engine/avenginekitproxy"),y=o("../engine/callState"),h=o("./av/internal/callSessionImpl.js"),g=o("../messages/addParticipantsMessageContent"),b=o("../engine/avenginekit"),S=o("../../util/longUtil.js");class v extends b.default{constructor(){super(),this.sendMessageId=0,this._fixLongSerializedIssue=e=>("string"!=typeof e||"string"==typeof(e=JSON.parse(e))&&(e=JSON.parse(e)),e),this.onSendMessage=(e,s)=>{s=this._fixLongSerializedIssue(s);let o=this.sendMessageCallbackMap.get(s.sendMessageId);o&&o(s.error,s.messageUid,s.timestamp),this.sendMessageCallbackMap.delete(s.sendMessageId)},this.onReceiveMessage=(e,s)=>{if(s=this._fixLongSerializedIssue(s),console.log("receive voip message ",s.messageContent.type,s.messageContent.callId,s),!(s.conversation.type!==_.default.Single&&s.conversation.type!==_.default.Group||1!==s.direction&&s.messageContent.type!==a.default.VOIP_CONTENT_TYPE_ACCEPT&&s.messageContent.type!==a.default.VOIP_CONTENT_TYPE_END)){let e=s.messageContent;if(s.messageContent.type===a.default.VOIP_CONTENT_TYPE_SIGNAL){if(!C.currentSession||C.currentSession.status===y.default.STATUS_IDLE)return;let o=s.messageContent;o.callId!==C.currentSession.callId?C.rejectOtherCall(s.conversation,e.callId,null,s.messageUid):!C.currentSession||C.currentSession.status!==y.default.STATUS_CONNECTING&&C.currentSession.status!==y.default.STATUS_CONNECTED&&C.currentSession.status!==y.default.STATUS_OUTGOING||C.onReceiveData(s.from,o.payload)}else if(s.messageContent.type===a.default.VOIP_CONTENT_TYPE_START){console.log("callstart",s);let o=s.messageContent.targetIds;if(o.findIndex(e=>e===s.selfUserInfo.uid)<0)return;o=o.filter(e=>e!==s.selfUserInfo.uid),o=o.push(s.from),C.currentSession&&C.currentSession.callId===e.callId?console.log("ignore duplicated call start message"):C.currentSession&&C.currentSession.status!==y.default.STATUS_IDLE?C.rejectOtherCall(s.conversation,e.callId,o,s.messageUid):(C.currentSession=h.default.newSession(s.conversation,s.from,e.callId,e.audioOnly,C.sessionCallback),C.currentSession.startMsgUid=s.messageUid,C.currentSession.initSession(!1,s.selfUserInfo,s.participantUserInfos,s.groupMemberUserInfos),C.currentSession.setState(y.default.STATUS_INCOMING),C.currentSession.joinTime=s.timestamp,C.currentSession.setUserJoinTime(s.from,s.timestamp),s.participantUserInfos.forEach(e=>{C.currentSession.setUserJoinTime(e.uid,s.timestamp)}),C.currentSession.setUserAcceptTime(s.from,s.timestamp))}else if(s.messageContent.type===a.default.VOIP_CONTENT_TYPE_ACCEPT||s.messageContent.type===a.default.VOIP_CONTENT_TYPE_ACCEPT_T){if(C.currentSession&&C.currentSession.status!==y.default.STATUS_IDLE){if(e.callId!==C.currentSession.callId)return void(1===s.direction&&C.rejectOtherCall(s.conversation,e.callId,[s.selfUserInfo.uid]));if(0===s.direction&&C.currentSession.status===y.default.STATUS_INCOMING)return void C.currentSession.endCall(j.default.REASON_AcceptByOtherClient);C.currentSession.status===y.default.STATUS_OUTGOING&&C.currentSession.setState(y.default.STATUS_CONNECTING),!C.currentSession.audioOnly&&e.audioOnly&&C.currentSession.setAudioOnly(!0),C.currentSession.setUserAcceptTime(s.from,s.timestamp);let o=C.queueOfferMessageMap.get(s.from);o&&o.forEach(e=>{C.processSignalingMessage(s.from,e)}),C.queueOfferMessageMap.delete(s.from)}}else if(s.messageContent.type===a.default.VOIP_CONTENT_TYPE_END)if(C.currentSession&&C.currentSession.status!==y.default.STATUS_IDLE&&C.currentSession.callId===e.callId){let o=e.reason;if(1===s.direction){switch(e.reason){case j.default.REASON_Unknown:o=j.default.REASON_Unknown;break;case j.default.REASON_Busy:o=j.default.RemoteBusy;break;case j.default.REASON_SignalError:o=j.default.RemoteNetworkError;break;case j.default.REASON_Hangup:o=j.default.REASON_RemoteHangup;break;case j.default.REASON_MediaError:o=j.default.RemoteNetworkError;break;case j.default.REASON_RemoteHangup:o=j.default.REASON_Hangup;break;case j.default.REASON_OpenCameraFailure:o=j.default.RemoteNetworkError;break;case j.default.REASON_Timeout:o=j.default.RemoteTimeout;break;case j.default.REASON_AcceptByOtherClient:o=j.default.REASON_AcceptByOtherClient;break;case j.default.REASON_AllLeft:o=j.default.REASON_AllLeft;break;case j.default.RemoteBusy:o=j.default.REASON_Busy;break;case j.default.RemoteTimeout:o=j.default.REASON_Timeout;break;case j.default.RemoteNetworkError:o=j.default.REASON_SignalError;break;case j.default.RoomDestroyed:o=j.default.RoomDestroyed;break;case j.default.RoomNotExist:o=j.default.RoomNotExist;break;case j.default.RoomParticipantsFull:o=j.default.RoomParticipantsFull;break;default:o=j.default.RemoteNetworkError}C.currentSession.endUserCall(s.from,o)}else C.currentSession.endCall(o)}else console.log("invalid bye message, ignore it");else if(s.messageContent.type===a.default.VOIP_CONTENT_TYPE_MODIFY)C.currentSession&&C.currentSession.status===y.default.STATUS_CONNECTED&&C.currentSession.callId===e.callId&&(e.audioOnly?(C.currentSession.audioOnly=!0,C.currentSession.downgrade2Voice(!0)):console.log("cannot modify voice call to video call"));else if(s.messageContent.type===a.default.VOIP_Join_Call_Request)C.currentSession&&C.currentSession.status===y.default.STATUS_CONNECTED&&s.messageContent.callId===C.currentSession.callId&&C.currentSession.initiatorId===C.currentSession.selfUserInfo.uid&&C.currentSession.inviteNewParticipants([s.from],s.messageContent.clientId,!0);else if(s.messageContent.type===a.default.VOIP_CONTENT_TYPE_ADD_PARTICIPANT)if(e.participants.indexOf(s.selfUserInfo.uid)>-1){if(C.currentSession&&C.currentSession.status!==y.default.STATUS_IDLE){let o=[];return o.push(...s.messageContent.participants),s.messageContent.existParticipants&&o.push(...s.messageContent.existParticipants.map(e=>e.userId)),o.push(s.from),o=o.filter(e=>e!==s.selfUserInfo.uid),void C.rejectOtherCall(s.conversation,e.callId,o)}C.currentSession=h.default.newSession(s.conversation,s.from,e.callId,e.audioOnly,C.sessionCallback),C.currentSession.startMsgUid=s.messageUid;let o=s.participantUserInfos.filter(e=>e.uid!==s.selfUserInfo.uid);C.currentSession.initSession(!1,s.selfUserInfo,o,s.groupMemberUserInfos),C.currentSession.joinTime=s.timestamp,o.forEach(e=>{C.currentSession.setUserJoinTime(e.uid,s.timestamp)}),C.currentSession.updateExistParticipant(e.existParticipants,s.timestamp)}else if(C.currentSession&&C.currentSession.status!==y.default.STATUS_IDLE&&C.currentSession.callId===e.callId){let o=s.participantUserInfos.filter(s=>e.participants.indexOf(s.uid)>-1);C.currentSession.didAddNewParticipants(e.participants,o),o.forEach(e=>{C.currentSession.setUserJoinTime(e.uid,s.timestamp)})}else{let o=[];o.push(...s.messageContent.participants),s.messageContent.existParticipants&&o.push(...s.messageContent.existParticipants.map(e=>e.userId)),o.push(s.from),o=o.filter(e=>e!==s.selfUserInfo.uid),C.rejectOtherCall(s.conversation,e.callId,o)}else if(s.messageContent.type===a.default.VOIP_CONTENT_TYPE_MUTE_VIDEO){let e=s.messageContent;C.currentSession&&C.currentSession.callId===e.callId&&C.currentSession.status!==y.default.STATUS_IDLE&&C.currentSession.updateVideoMute(s.from,e.videoMuted)}}},this.startCall=(e,s)=>{let o=(s=this._fixLongSerializedIssue(s)).conversation,t=s.audioOnly;if(this.currentSession)return;this.currentSession=h.default.newSession(o,s.selfUserInfo.uid,s.callId,t,C.sessionCallback),this.currentSession.initSession(!0,s.selfUserInfo,s.participantUserInfos,s.groupMemberUserInfos),this.currentSession.setState(y.default.STATUS_OUTGOING);let r=new m.default;r.audioOnly=t,r.callId=s.callId,r.targetIds=this.currentSession.getParticipantIds(),r.sdkType=1,this.sendSignalMessage(r,this.currentSession.getParticipantIds(),!0,(e,s,o)=>{C.currentSession&&(0!==e?this.currentSession.endCall(j.default.REASON_SignalError):(this.currentSession.startMsgUid=s,console.log("start call startMsgUid",this.currentSession.startMsgUid,s,(new Date).valueOf(),(0,S.numberValue)(o)),this.currentSession.joinTime=o,this.currentSession.setAcceptTime(o),r.targetIds.forEach(e=>{this.currentSession.setUserJoinTime(e,o)},this)))})}}setup(){console.log("wfc avengine-multi"),p.default.listenVoipEvent("message",this.onReceiveMessage),p.default.listenVoipEvent("sendMessageResult",this.onSendMessage),p.default.listenVoipEvent("startCall",this.startCall),this.sendMessageCallbackMap=new(l()),this.queueOfferMessageMap=new(l())}getCurrentSession(){return C.currentSession}onCreateAnswerOffer(e,s){console.log("send engine answer/offer"),C.sendSignalingMessage(s,[e],!0)}onIceCandidate(e,s){console.log("send engine candidate",s),C.sendSignalingMessage(s,[e],!0)}inviteNewParticipants(e,s,o,t){let r=C.currentSession;if(!r)return;let n=new g.default;n.callId=r.callId,n.initiator=r.selfUserInfo.uid,console.log("inviteNewParticipants","initiator "+r.selfUserInfo),n.audioOnly=r.audioOnly,n.pin=s,n.participants=e,n.existParticipants=r.getExistParticipantsStatus(),n.autoAnswer=t,n.clientId=o;let i=[...r.getParticipantIds()];i.push(...e),this.sendSignalMessage(n,i,!0,(s,o,t)=>{if(console.log("send invite message success"),0!==s)return void console.log("send invite message error",s);let n=r.groupMemberUserInfos.filter(s=>e.findIndex(e=>e===s.uid)>-1);console.log("didAddNewParticipants av",e,n),r.didAddNewParticipants(e,n),e.forEach(e=>{r.setUserJoinTime(e,t)})})}updateCallStartMessageContent(e,s){let o={messageUid:(0,n.default)({},e),content:s};p.default.emitToMain("update-call-start-message",o)}clearInviteUnreadStatus(e){}sendSignalMessageEx(e,s,o,t,r){console.log("send signal message",s.type,s.callId,s);let n={conversation:e,content:s.encode(),toUsers:o};r&&(this.sendMessageId++,n.sendMessageId=this.sendMessageId,this.sendMessageCallbackMap.set(this.sendMessageId,r)),p.default.emitToMain("voip-message",n)}sendSignalMessage(e,s,o,t){this.sendSignalMessageEx(C.currentSession.conversation,e,s,o,t)}sendSignalingMessage(e,s,o){let t=new d.default;t.callId=this.currentSession.callId,t.payload=r()(e),this.sendSignalMessage(t,s,o)}rejectOtherCall(e,s,o,t){let r=new c.default;r.callId=s,r.inviteMsgUid=t,r.reason=j.default.REASON_Busy,console.log("reject other call");let n={conversation:e,content:r.encode(),toUsers:o};p.default.emitToMain("voip-message",n)}onReceiveData(e,s){let o=JSON.parse(s);if(C.currentSession.getPeerConnection(e))C.processSignalingMessage(e,o);else{console.log("queue signal",e,o);let s=this.queueOfferMessageMap.get(e);s||(s=[],this.queueOfferMessageMap.set(e,s)),"answer"===o.type||"offer"===o.type?s.unshift(o):s.push(o)}}processSignalingMessage(e,s){console.log("process remote signal:"+e+" "+s.type),"offer"===s.type?(console.log("set remote offer"),C.currentSession.onReceiveRemoteCreateOffer(e,s)):"answer"===s.type?(console.log("set remote answer"),C.currentSession.onReceiveRemoteAnswerOffer(e,s)):"candidate"===s.type?(console.log("set remote candidate"),s.sdpMLineIndex=s.label,s.sdpMid=s.id,C.currentSession.setRemoteIceCandidate(e,s)):"remove-candidates"===s.type||console.log("unknown type:"+s.type)}answerCurrentCall(){let e=new u.default;e.audioOnly=C.currentSession.audioOnly,e.callId=C.currentSession.callId,e.inviteMessageUid=C.currentSession.startMsgUid,this.sendSignalMessage(e,this.currentSession.getParticipantIds(),!0,(e,s,o)=>{0===e?this.currentSession.setAcceptTime(o):this.currentSession.endCall(j.default.REASON_SignalError)})}downgrade2VoiceCall(){let e=new f.default;C.currentSession.audioOnly=!0,e.audioOnly=C.currentSession.audioOnly,e.callId=C.currentSession.callId,this.sendSignalMessage(e,this.currentSession.getParticipantIds(),!0)}}const C=new v,T=C},"./av/internal/callSessionImpl.js":(e,s,o)=>{o.r(s),o.d(s,{default:()=>C});var t=o("./node_modules/babel-runtime/core-js/json/stringify.js"),r=o.n(t),n=o("./node_modules/babel-runtime/helpers/extends.js"),i=o("./node_modules/babel-runtime/core-js/map.js"),l=o.n(i),a=o("./node_modules/babel-runtime/helpers/asyncToGenerator.js"),d=o("../../../config.js"),c=o("../engine/callState"),u=o("./av/internal/avenginekitImpl.js"),m=o("../engine/callEndReason"),f=o("../messages/callByeMessageContent"),_=o("../engine/subscriber"),j=o("../../../platform.js"),p=o("../engine/callSession"),y=o("../../util/longUtil.js"),h=o("../engine/avenginekitproxy"),g=o("../messages/muteVideoMessageContent"),b=o("../../model/nullUserInfo"),S=o("./av/internal/soundMeter.js"),v=o("../engine/participantProfile");class C extends p.default{constructor(...e){var s;return s=super(...e),this.joinTime=0,this.acceptTime=0,this.status=0,this.getOnlyAudioStream=!1,this.onVoipWindowClose=e=>{this.endCall(m.default.RemoteNetworkError),window.removeEventListener("beforeunload",this.onVoipWindowClose)},this.callTimeout=()=>{let e=(new Date).valueOf();this.callTimer||(this.callTimer=setInterval(this.callTimeout,1e3));let s=(0,y.numberValue)(this.joinTime);if(0!==s){if(this.status===c.default.STATUS_INCOMING){if(e-s>6e4)return void this.endCall(m.default.REASON_Timeout)}else if(this.status!==c.default.STATUS_CONNECTED&&e-s>6e4)return void this.endCall(m.default.RemoteTimeout);this.peerConnectionClientMap.forEach((s,o)=>{let t=(0,y.gt)(s.acceptTime,s.acceptTime)?s.acceptTime:s.joinTime;s.status!==c.default.STATUS_CONNECTED&&(0,y.gt)(t,0)&&e-(0,y.numberValue)(t)>6e4&&this.endUserCall(o,m.default.RemoteTimeout)})}},this.gotRemoteStream=(e,s)=>{if(this.remoteStream!==s.streams[0]){this.sessionCallback&&this.sessionCallback.didReceiveRemoteVideoTrack(e,s.streams[0]);let o=s.streams[0],t=this.getClient(e);if(o.getAudioTracks().length>0){let e=new S.SoundMeter(window.audioContext);e.connectToSource(o,e=>{console.log("connect to soundMeter",e)}),t.soundMeter=e}t.stream=s.streams[0],console.log("pc received remote stream",s.streams[0])}},this.onIceCandidate=(e,s,o)=>{if(o.candidate){try{let t={type:"candidate",label:o.candidate.sdpMLineIndex,id:o.candidate.sdpMid,candidate:o.candidate.candidate};u.default.onIceCandidate(e,t),this.onAddIceCandidateSuccess(e,s)}catch(o){this.onAddIceCandidateError(e,s,o)}console.log(`ICE candidate:\n${o.candidate?o.candidate.candidate:"(null)"}`)}},this.onIceStateChange=(e,s,o)=>{if(console.log(`ICE state: ${s.iceConnectionState}`,e,s),console.log("ICE state change event: ",e,o),s){let o=this.getClient(e);"disconnected"===s.iceConnectionState||("connected"===s.iceConnectionState?(o.status=c.default.STATUS_CONNECTED,e!==this.selfUserInfo.uid&&this.sessionCallback&&this.sessionCallback.didParticipantConnected(e),this.setState(c.default.STATUS_CONNECTED)):"failed"===s.iceConnectionState&&this.endUserCall(e,m.default.REASON_MediaError))}},s}static newSession(e,s,o,t,r){console.log("newSession, multi");let n=new C;return n.conversation=e,n.initiatorId=s,n.callId=o,n.audioOnly=t,n.sessionCallback=r,n}getClient(e){return this.peerConnectionClientMap.get(e)}getParticipantIds(){let e=[];return this.participantUserInfos.forEach(s=>{e.push(s.uid)}),e}setAcceptTime(e){this.acceptTime=e,this.tryStartMedia()}setUserAcceptTime(e,s){if(e===this.selfUserInfo.uid)return;console.log("setUserAcceptTime",e,s),this.getClient(e).acceptTime=s,this.tryStartMedia()}setUserJoinTime(e,s){this.getClient(e).joinTime=s}tryStartMedia(){var e=this;return(0,a.default)((function*(){if((0,y.gt)(e.acceptTime,0))for(const[s,o]of e.peerConnectionClientMap)!(0,y.gt)(o.acceptTime,0)||o.status!==c.default.STATUS_INCOMING&&o.status!==c.default.STATUS_OUTGOING||((0,y.gt)(e.acceptTime,o.acceptTime)?yield e.startMedia(s,!0):yield e.startMedia(s,!1))}))()}getPeerConnection(e){return this.peerConnectionClientMap.get(e).peerConnection}getParticipantProfiles(){let e=[];for(const s of this.peerConnectionClientMap.values()){let o=new v.default;o.userId=s.userId,o.status=s.status,o.joinTime=s.joinTime,o.acceptTime=s.acceptTime,o.audioMuted=s.audioMuted,o.videoMuted=s.videoMuted,e.push(o)}return e}getSelfProfile(){let e=new v.default;return e.userId=this.selfUserInfo.uid,e.status=this.status,e.joinTime=this.joinTime,e.acceptTime=this.acceptTime,e.audioMuted=this.audioMuted,e.videoMuted=this.videoMuted,e}answerCall(e){this.status===c.default.STATUS_INCOMING&&(this.setState(c.default.STATUS_CONNECTING),this.audioOnly&&!e&&(e=!0),this.audioOnly=e,u.default.answerCurrentCall())}setState(e){if(this.status!==e){if(this.status!==c.default.STATUS_CONNECTED||e!==c.default.STATUS_CONNECTING){if(this.status=e,console.log("set status",e,this.startMsgUid),e===c.default.STATUS_IDLE||e===c.default.STATUS_CONNECTED){if(this.startMsgUid){let s={audioOnly:this.audioOnly};s.status=this.endReason?this.endReason:0,e===c.default.STATUS_CONNECTED?(s.connectTime=(new Date).getTime(),this.startTime=s.connectTime):s.endTime=(new Date).getTime(),u.default.updateCallStartMessageContent(this.startMsgUid,s)}this.getOnlyAudioStream&&e===c.default.STATUS_CONNECTED&&(this.muteVideo(!0),this.sessionCallback&&this.sessionCallback.didVideoMuted(this.selfUserInfo.uid,!0))}this.sessionCallback&&this.sessionCallback.didChangeState(e)}}else e===c.default.STATUS_CONNECTED&&this.sessionCallback&&this.sessionCallback.didChangeState(e)}setAudioOnly(e){this.audioOnly=e,this.sessionCallback&&this.sessionCallback.didChangeMode(e)}initSession(e,s,o=[],t=[]){this.moCall=e,this.selfUserInfo=s,this.participantUserInfos=o,this.singleCall=1===o.length,this.groupMemberUserInfos=t;let r=s;e||(r=o.filter(e=>e.uid===this.initiatorId)[0]),this.sessionCallback&&this.sessionCallback.onInitial(this,s,r,o,t);let n=[];o.forEach(e=>{n.push(e.uid)}),this.initParticipantClientMap(n),e?(this.setState(c.default.STATUS_OUTGOING),this.startPreview(this.audioOnly)):(this.setState(c.default.STATUS_INCOMING),this.playIncomingRing()),this.callTimeout(),setTimeout(()=>{window.addEventListener("beforeunload",this.onVoipWindowClose)},500),window.AudioContext=window.AudioContext||window.webkitAudioContext,window.audioContext=new AudioContext,this.soundMeterTimer=setInterval(()=>{this.peerConnectionClientMap&&this.sessionCallback&&this.peerConnectionClientMap.forEach((e,s)=>{if(!e.soundMeter)return;let o=e.soundMeter.instant.toFixed(2);e.soundMeter.slow.toFixed(2),e.soundMeter.clip;this.sessionCallback.didReportAudioVolume(s,Number(o))})},100)}initParticipantClientMap(e){console.log("initParticipantClientMap",e),this.peerConnectionClientMap||(this.peerConnectionClientMap=new(l())),e.forEach(e=>{let s=new _.default(e);e===this.selfUserInfo.uid?s.status=c.default.STATUS_OUTGOING:s.status=c.default.STATUS_INCOMING,this.peerConnectionClientMap.set(e,s)},this)}inviteNewParticipants(e,s,o){e.length&&(e=e.filter(e=>e!==this.selfUserInfo.uid&&this.participantUserInfos.findIndex(s=>s.uid===e)<0)).length&&(this.singleCall=!1,u.default.inviteNewParticipants(e,this.pin,s,o))}getExistParticipantsStatus(){let e=[];return e.push({userId:this.selfUserInfo.uid,acceptTime:this.acceptTime?(0,y.numberValue)(this.acceptTime):0,joinTime:this.joinTime?(0,y.numberValue)(this.joinTime):0,videoMuted:this.videoMuted}),this.participantUserInfos.forEach(s=>{let o=this.getClient(s.uid);e.push({userId:o.userId,acceptTime:o.acceptTime?(0,y.numberValue)(o.acceptTime):0,joinTime:o.joinTime?(0,y.numberValue)(o.joinTime):0,videoMuted:o.videoMuted})},this),e}didAddNewParticipants(e,s){e.forEach(e=>{-1===s.findIndex(s=>s.uid===e)&&s.push(new b.default(e))}),console.log("didAddNewParticipants",e,s),e.forEach(e=>{let s=new _.default(e,this);s.status=c.default.STATUS_INCOMING,this.peerConnectionClientMap.set(e,s)},this),s.forEach(e=>{this.participantUserInfos.push(e),this.sessionCallback&&this.sessionCallback.didParticipantJoined(e.uid,e)},this)}updateExistParticipant(e,s){e.forEach(e=>{let o=this.getClient(e.userId);o.status=c.default.STATUS_INCOMING,o.joinTime=s,o.videoMuted=e.videoMuted,o.acceptTime=e.acceptTime})}updateVideoMute(e,s){let o=this.getClient(e);o&&o.videoMuted!==s&&(o.videoMuted=s,this.sessionCallback&&this.sessionCallback.didVideoMuted(e,s))}defaultVideoConstraints(e){let s;return s=e?{audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0},video:!1}:{audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0},video:{width:{max:1280},height:{max:720}}},s}startPreview(e){var s=this;return(0,a.default)((function*(){console.log("start preview");try{s.cameraVideoStream=yield navigator.mediaDevices.getUserMedia(s.defaultVideoConstraints(e)),console.log("Received local stream",s.cameraVideoStream)}catch(e){console.error("getUserMedia error",e)}if(!s.cameraVideoStream)try{const e={audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0},video:!1};s.cameraVideoStream=yield navigator.mediaDevices.getUserMedia(e),console.log("Received local stream audioOnly",s.cameraVideoStream),s.getOnlyAudioStream=!0}catch(e){console.error("getUserMedia error",e),alert(`getUserMedia() error: ${e.name}`),s.endCall(m.default.REASON_MediaError)}s.sessionCallback&&s.sessionCallback.didCreateLocalVideoTrack(s.cameraVideoStream,s.getOnlyAudioStream);const o=s.cameraVideoStream.getVideoTracks();e?o&&o.length>0&&o.forEach((function(e){return e.stop()})):o&&o.length>0&&console.log(`Using video device: ${o[0].label}`);const t=s.cameraVideoStream.getAudioTracks();t.length>0&&console.log(`Using audio device: ${t[0].label}`)}))()}startMedia(e,s){var o=this;return(0,a.default)((function*(){console.log("start media",s),o.setState(c.default.STATUS_CONNECTING),o.startTime=window.performance.now(),o.getClient(e).status=c.default.STATUS_CONNECTING,o.cameraVideoStream?(console.log("start pc 1"),yield o.createPeerConnection(e,s)):(yield o.startPreview(o.audioOnly),console.log("start pc 0"),yield o.createPeerConnection(e,s))}))()}getDesktopSources(e){return j.desktopCapturer?j.desktopCapturer.getSources({types:e}):null}startScreenShare(e){var s=this;return(0,a.default)((function*(){console.log("start screen share"),s.screenShareStream||(console.log("desktopCapturer ",j.desktopCapturer),j.desktopCapturer?(s.screenShareStream=yield navigator.mediaDevices.getUserMedia({audio:!1,video:{mandatory:(0,n.default)({chromeMediaSource:"desktop"},e)}}),console.log("desktopCapturer screen share stream",s.screenShareStream)):s.screenShareStream=yield navigator.mediaDevices.getDisplayMedia({audio:!1,video:!0})),s.sessionCallback&&s.sessionCallback.didCreateLocalVideoTrack(s.screenShareStream),(0,y.gt)(s.acceptTime,0)&&s.peerConnectionClientMap.forEach((function(e,o){e.videoSender&&e.videoSender&&e.videoSender.replaceTrack(s.screenShareStream.getVideoTracks()[0])}),s)}))()}isScreenSharing(){return null!==this.screenShareStream}stopScreenShare(){this.screenShareStream=null,this.sessionCallback&&this.cameraVideoStream&&this.sessionCallback.didCreateLocalVideoTrack(this.cameraVideoStream),(0,y.gt)(this.acceptTime,0)&&this.peerConnectionClientMap.forEach((e,s)=>{e.videoSender&&e.videoSender&&e.videoSender.replaceTrack(this.cameraVideoStream.getVideoTracks()[0])},this)}createPeerConnection(e,s){var o=this;return(0,a.default)((function*(){let t=o.getClient(e),n=o.getSelectedSdpSemantics();n.iceServers=[];let i=d.default.ICE_SERVERS;i&&i.forEach((function(e){n.iceServers.push({urls:[e[0]],username:e[1],credential:e[2]})})),console.log("RTCPeerConnection configuration:",n);let l=new RTCPeerConnection(n);t.peerConnection=l,t.isInitiator=s,console.log("Created local peer connection object pc",e),l.addEventListener("icecandidate",(function(s){return o.onIceCandidate(e,l,s)})),l.addEventListener("iceconnectionstatechange",(function(s){return o.onIceStateChange(e,l,s)})),l.addEventListener("track",(function(s){return o.gotRemoteStream(e,s)})),l.addEventListener("connectionstatechange",(function(s){return o.onConnectionStateChange(e,s)}));let a=o.screenShareStream?o.screenShareStream:o.cameraVideoStream;if(o.audioOnly?a.getAudioTracks().forEach((function(e){return l.addTrack(e,a)}),o):(l.addTrack(a.getAudioTracks()[0],a),o.getOnlyAudioStream||(t.videoSender=l.addTrack(a.getVideoTracks()[0],a))),console.log("Added local stream to pc"),s)try{console.log("pc createOffer start");let s={offerToReceiveAudio:!0,offerToReceiveVideo:!o.audioOnly};const t=yield l.createOffer(s);JSON.parse(r()(t)).type="offer",yield o.onCreateOfferSuccess(e,t)}catch(s){o.onCreateSessionDescriptionError(e,s)}console.log("createPeerConnection",e,o.getClient(e))}))()}getSelectedSdpSemantics(){return{}}call(){console.log("voip on call button click"),this.stopIncomingRing(),console.log("on call button call"),this.answerCall(this.audioOnly)}onCreateSessionDescriptionError(e,s){console.log("Failed to create session description"),this.endUserCall(e,m.default.REASON_MediaError)}onReceiveRemoteCreateOffer(e,s){var o=this;return(0,a.default)((function*(){let t=o.peerConnectionClientMap.get(e);if(t.isInitiator)return;console.log("onReceiveRemoteCreateOffer",e,s);let n=o.getPeerConnection(e);try{yield n.setRemoteDescription(s),o.onSetRemoteSuccess(n)}catch(s){o.onSetSessionDescriptionError(e,s)}t.quequedCandidates&&t.quequedCandidates.length>0&&(console.log("process pending ice candidates"),t.quequedCandidates.forEach((function(s){o.setRemoteIceCandidate(e,s)})),t.quequedCandidates.length=0),console.log("pc createAnswer start");try{const s=yield n.createAnswer();JSON.parse(r()(s)).type="answer",yield o.onCreateAnswerSuccess(e,s)}catch(e){o.onCreateSessionDescriptionError(e)}}))()}onCreateOfferSuccess(e,s){var o=this;return(0,a.default)((function*(){if(console.log("pc setLocalDescription start"),!o.peerConnectionClientMap.get(e).isInitiator)return;let t=o.getPeerConnection(e);try{yield t.setLocalDescription(s),o.onSetLocalSuccess(t)}catch(s){o.onSetSessionDescriptionError(e,s)}console.log(s),u.default.onCreateAnswerOffer(e,s)}))()}onSetLocalSuccess(e){console.log("setLocalDescription complete")}onSetRemoteSuccess(e){console.log("setRemoteDescription complete")}onSetSessionDescriptionError(e,s){}onReceiveRemoteAnswerOffer(e,s){var o=this;return(0,a.default)((function*(){console.log("onReceiveRemoteAnswerOffer",e,s);try{let t=o.peerConnectionClientMap.get(e),r=t.peerConnection;yield r.setRemoteDescription(s),o.onSetRemoteSuccess(r),t.quequedCandidates&&t.quequedCandidates.length>0&&(console.log("process pending ice candidates"),t.quequedCandidates.forEach((function(s){o.setRemoteIceCandidate(e,s)})),t.quequedCandidates.length=0)}catch(s){o.onSetSessionDescriptionError(e,s)}}))()}setRemoteIceCandidate(e,s){var o=this;return(0,a.default)((function*(){console.log("handle the candidate"),o.onReceiveRemoteIceCandidate(e,s)}))()}onCreateAnswerSuccess(e,s){var o=this;return(0,a.default)((function*(){console.log("pc setLocalDescription start");try{let t=o.getPeerConnection(e);yield t.setLocalDescription(s),o.onSetLocalSuccess(t)}catch(s){o.onSetSessionDescriptionError(e,s)}console.log(s),u.default.onCreateAnswerOffer(e,s)}))()}onReceiveRemoteIceCandidate(e,s){var o=this;return(0,a.default)((function*(){console.log("on receive remote ice candidate");let t=o.peerConnectionClientMap.get(e);if(t.peerConnection.remoteDescription){console.log("pc rdp is set");let e=t.peerConnection;yield e.addIceCandidate(s)}else console.log("pc rdp is null"),t.quequedCandidates||(t.quequedCandidates=[]),t.quequedCandidates.push(s)}))()}onAddIceCandidateSuccess(e,s){console.log("send Ice Candidate success")}onAddIceCandidateError(e,s,o){console.log(`failed to add ICE Candidate: ${e} ${o.toString()}`),this.endUserCall(e,m.default.REASON_MediaError)}onConnectionStateChange(e,s,o){console.log("onConnectionStateChange",e,s,o)}hangup(){console.log("Ending call"),this.endCall(m.default.REASON_Hangup)}downgrade2Voice(e=!1){if(this.status!==c.default.STATUS_CONNECTED)return;const s=this.cameraVideoStream.getVideoTracks();s&&s.length>0&&s.forEach(e=>e.stop()),e||u.default.downgrade2VoiceCall(),this.setAudioOnly(!0)}downToVoice(){if(console.log("down to voice"),this.stopIncomingRing(),this.status===c.default.STATUS_INCOMING)return this.setAudioOnly(!0),void this.answerCall(!0);this.status===c.default.STATUS_CONNECTED&&(this.audioOnly||(this.setAudioOnly(!0),u.default.downgrade2VoiceCall()))}muteVideo(e){this.setVideoEnabled(!e)}setVideoEnabled(e){if(this.audioOnly)return;this.videoMuted=!e;const s=this.cameraVideoStream.getVideoTracks();s&&s.length>0&&s.forEach(s=>s.enabled=e);let o=new g.default;o.callId=this.callId,o.videoMuted=this.videoMuted,o.existParticipants=this.getExistParticipantsStatus(),u.default.sendSignalMessage(o,this.getParticipantIds(),!0)}muteAudio(e){this.setAudioEnabled(!e)}setAudioEnabled(e){if(this.cameraVideoStream){const s=this.cameraVideoStream.getAudioTracks();s&&s.length>0&&(s[0].enabled=!s[0].enabled,this.audioMuted=!e)}}endMedia(){console.log("Ending media"),this.setState(c.default.STATUS_IDLE),this.stopIncomingRing(),this.cameraVideoStream&&(console.log("to stop stream",this.cameraVideoStream),void 0===this.cameraVideoStream.getTracks?this.cameraVideoStream.stop():this.cameraVideoStream.getTracks().forEach((function(e){e.stop(),console.log("stop track",e)})),this.cameraVideoStream=null);for(const e of this.peerConnectionClientMap.values())console.log("close pc",e.peerConnection),e.soundMeter&&e.soundMeter.stop(),e.peerConnection&&e.peerConnection.close();this.peerConnectionClientMap=null}endUserCall(e,s){if(console.log("endUserCall",e,s),e===this.selfUserInfo.uid)return void this.endCall(s);let o=this.getClient(e);if(this.peerConnectionClientMap.delete(e),this.participantUserInfos=this.participantUserInfos.filter(s=>s.uid!==e),o){if(o.peerConnection){o.peerConnection.getSenders().forEach(e=>o.peerConnection.removeTrack(e)),o.peerConnection.close()}this.sessionCallback&&this.peerConnectionClientMap.size>0&&this.sessionCallback.didParticipantLeft(e,s)}0===this.peerConnectionClientMap.size&&(0===this.conversation.type||this.singleCall?this.endCall(s):this.endCall(m.default.REASON_AllLeft))}endCall(e){if(this.endReason=e,this.status!==c.default.STATUS_IDLE){if(this.setState(c.default.STATUS_IDLE),e!==m.default.REASON_AcceptByOtherClient&&e!==m.default.REASON_AllLeft){let s=new f.default;s.callId=this.callId,s.inviteMsgUid=this.startMsgUid,s.reason=e,u.default.sendSignalMessage(s,this.getParticipantIds(),!1)}this.endTime=(new Date).valueOf(),u.default.currentSession=null,clearInterval(this.callTimer),clearInterval(this.soundMeterTimer),this.endMedia(),this.sessionCallback&&this.sessionCallback.didCallEndWithReason(e)}}closeVoipWindow(){this.status=c.default.STATUS_IDLE,u.default.currentSession=null,localStorage.getItem("enable_voip_debug")||h.default.useIframe||(j.currentWindow?j.currentWindow.close():h.default.emitToMain("close-voip-div"))}}},"./av/internal/soundMeter.js":(e,s,o)=>{function t(e){this.context=e,this.instant=0,this.slow=0,this.clip=0,this.script=e.createScriptProcessor(2048,1,1);const s=this;this.script.onaudioprocess=function(e){const o=e.inputBuffer.getChannelData(0);let t,r=0,n=0;for(t=0;t<o.length;++t)r+=o[t]*o[t],Math.abs(o[t])>.99&&(n+=1);s.instant=Math.sqrt(r/o.length),s.slow=.95*s.slow+.05*s.instant,s.clip=n/o.length}}o.r(s),o.d(s,{SoundMeter:()=>t}),t.prototype.connectToSource=function(e,s){console.log("SoundMeter connecting");try{this.mic=this.context.createMediaStreamSource(e),this.mic.connect(this.script),this.script.connect(this.context.destination),void 0!==s&&s(null)}catch(e){console.error(e),void 0!==s&&s(e)}},t.prototype.stop=function(){console.log("SoundMeter stopping"),this.mic.disconnect(),this.script.disconnect()}},"./node_modules/babel-runtime/core-js/json/stringify.js":(e,s,o)=>{e.exports={default:o("./node_modules/core-js/library/fn/json/stringify.js"),__esModule:!0}},"./node_modules/babel-runtime/core-js/map.js":(e,s,o)=>{e.exports={default:o("./node_modules/core-js/library/fn/map.js"),__esModule:!0}},"./node_modules/babel-runtime/core-js/object/assign.js":(e,s,o)=>{e.exports={default:o("./node_modules/core-js/library/fn/object/assign.js"),__esModule:!0}},"./node_modules/babel-runtime/core-js/promise.js":(e,s,o)=>{e.exports={default:o("./node_modules/core-js/library/fn/promise.js"),__esModule:!0}},"./node_modules/babel-runtime/helpers/asyncToGenerator.js":(e,s,o)=>{s.__esModule=!0;var t,r=o("./node_modules/babel-runtime/core-js/promise.js"),n=(t=r)&&t.__esModule?t:{default:t};s.default=function(e){return function(){var s=e.apply(this,arguments);return new n.default((function(e,o){return function t(r,i){try{var l=s[r](i),a=l.value}catch(e){return void o(e)}if(!l.done)return n.default.resolve(a).then((function(e){t("next",e)}),(function(e){t("throw",e)}));e(a)}("next")}))}}},"./node_modules/babel-runtime/helpers/extends.js":(e,s,o)=>{s.__esModule=!0;var t,r=o("./node_modules/babel-runtime/core-js/object/assign.js"),n=(t=r)&&t.__esModule?t:{default:t};s.default=n.default||function(e){for(var s=1;s<arguments.length;s++){var o=arguments[s];for(var t in o)Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t])}return e}},"./node_modules/core-js/library/fn/json/stringify.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_core.js"),r=t.JSON||(t.JSON={stringify:JSON.stringify});e.exports=function(e){return r.stringify.apply(r,arguments)}},"./node_modules/core-js/library/fn/map.js":(e,s,o)=>{o("./node_modules/core-js/library/modules/es6.object.to-string.js"),o("./node_modules/core-js/library/modules/es6.string.iterator.js"),o("./node_modules/core-js/library/modules/web.dom.iterable.js"),o("./node_modules/core-js/library/modules/es6.map.js"),o("./node_modules/core-js/library/modules/es7.map.to-json.js"),o("./node_modules/core-js/library/modules/es7.map.of.js"),o("./node_modules/core-js/library/modules/es7.map.from.js"),e.exports=o("./node_modules/core-js/library/modules/_core.js").Map},"./node_modules/core-js/library/fn/object/assign.js":(e,s,o)=>{o("./node_modules/core-js/library/modules/es6.object.assign.js"),e.exports=o("./node_modules/core-js/library/modules/_core.js").Object.assign},"./node_modules/core-js/library/fn/promise.js":(e,s,o)=>{o("./node_modules/core-js/library/modules/es6.object.to-string.js"),o("./node_modules/core-js/library/modules/es6.string.iterator.js"),o("./node_modules/core-js/library/modules/web.dom.iterable.js"),o("./node_modules/core-js/library/modules/es6.promise.js"),o("./node_modules/core-js/library/modules/es7.promise.finally.js"),o("./node_modules/core-js/library/modules/es7.promise.try.js"),e.exports=o("./node_modules/core-js/library/modules/_core.js").Promise},"./node_modules/core-js/library/modules/_a-function.js":e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},"./node_modules/core-js/library/modules/_add-to-unscopables.js":e=>{e.exports=function(){}},"./node_modules/core-js/library/modules/_an-instance.js":e=>{e.exports=function(e,s,o,t){if(!(e instanceof s)||void 0!==t&&t in e)throw TypeError(o+": incorrect invocation!");return e}},"./node_modules/core-js/library/modules/_an-object.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_is-object.js");e.exports=function(e){if(!t(e))throw TypeError(e+" is not an object!");return e}},"./node_modules/core-js/library/modules/_array-from-iterable.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_for-of.js");e.exports=function(e,s){var o=[];return t(e,!1,o.push,o,s),o}},"./node_modules/core-js/library/modules/_array-includes.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_to-iobject.js"),r=o("./node_modules/core-js/library/modules/_to-length.js"),n=o("./node_modules/core-js/library/modules/_to-absolute-index.js");e.exports=function(e){return function(s,o,i){var l,a=t(s),d=r(a.length),c=n(i,d);if(e&&o!=o){for(;d>c;)if((l=a[c++])!=l)return!0}else for(;d>c;c++)if((e||c in a)&&a[c]===o)return e||c||0;return!e&&-1}}},"./node_modules/core-js/library/modules/_array-methods.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_ctx.js"),r=o("./node_modules/core-js/library/modules/_iobject.js"),n=o("./node_modules/core-js/library/modules/_to-object.js"),i=o("./node_modules/core-js/library/modules/_to-length.js"),l=o("./node_modules/core-js/library/modules/_array-species-create.js");e.exports=function(e,s){var o=1==e,a=2==e,d=3==e,c=4==e,u=6==e,m=5==e||u,f=s||l;return function(s,l,_){for(var j,p,y=n(s),h=r(y),g=t(l,_,3),b=i(h.length),S=0,v=o?f(s,b):a?f(s,0):void 0;b>S;S++)if((m||S in h)&&(p=g(j=h[S],S,y),e))if(o)v[S]=p;else if(p)switch(e){case 3:return!0;case 5:return j;case 6:return S;case 2:v.push(j)}else if(c)return!1;return u?-1:d||c?c:v}}},"./node_modules/core-js/library/modules/_array-species-constructor.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_is-object.js"),r=o("./node_modules/core-js/library/modules/_is-array.js"),n=o("./node_modules/core-js/library/modules/_wks.js")("species");e.exports=function(e){var s;return r(e)&&("function"!=typeof(s=e.constructor)||s!==Array&&!r(s.prototype)||(s=void 0),t(s)&&null===(s=s[n])&&(s=void 0)),void 0===s?Array:s}},"./node_modules/core-js/library/modules/_array-species-create.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_array-species-constructor.js");e.exports=function(e,s){return new(t(e))(s)}},"./node_modules/core-js/library/modules/_classof.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_cof.js"),r=o("./node_modules/core-js/library/modules/_wks.js")("toStringTag"),n="Arguments"==t(function(){return arguments}());e.exports=function(e){var s,o,i;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(o=function(e,s){try{return e[s]}catch(e){}}(s=Object(e),r))?o:n?t(s):"Object"==(i=t(s))&&"function"==typeof s.callee?"Arguments":i}},"./node_modules/core-js/library/modules/_cof.js":e=>{var s={}.toString;e.exports=function(e){return s.call(e).slice(8,-1)}},"./node_modules/core-js/library/modules/_collection-strong.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_object-dp.js").f,r=o("./node_modules/core-js/library/modules/_object-create.js"),n=o("./node_modules/core-js/library/modules/_redefine-all.js"),i=o("./node_modules/core-js/library/modules/_ctx.js"),l=o("./node_modules/core-js/library/modules/_an-instance.js"),a=o("./node_modules/core-js/library/modules/_for-of.js"),d=o("./node_modules/core-js/library/modules/_iter-define.js"),c=o("./node_modules/core-js/library/modules/_iter-step.js"),u=o("./node_modules/core-js/library/modules/_set-species.js"),m=o("./node_modules/core-js/library/modules/_descriptors.js"),f=o("./node_modules/core-js/library/modules/_meta.js").fastKey,_=o("./node_modules/core-js/library/modules/_validate-collection.js"),j=m?"_s":"size",p=function(e,s){var o,t=f(s);if("F"!==t)return e._i[t];for(o=e._f;o;o=o.n)if(o.k==s)return o};e.exports={getConstructor:function(e,s,o,d){var c=e((function(e,t){l(e,c,s,"_i"),e._t=s,e._i=r(null),e._f=void 0,e._l=void 0,e[j]=0,null!=t&&a(t,o,e[d],e)}));return n(c.prototype,{clear:function(){for(var e=_(this,s),o=e._i,t=e._f;t;t=t.n)t.r=!0,t.p&&(t.p=t.p.n=void 0),delete o[t.i];e._f=e._l=void 0,e[j]=0},delete:function(e){var o=_(this,s),t=p(o,e);if(t){var r=t.n,n=t.p;delete o._i[t.i],t.r=!0,n&&(n.n=r),r&&(r.p=n),o._f==t&&(o._f=r),o._l==t&&(o._l=n),o[j]--}return!!t},forEach:function(e){_(this,s);for(var o,t=i(e,arguments.length>1?arguments[1]:void 0,3);o=o?o.n:this._f;)for(t(o.v,o.k,this);o&&o.r;)o=o.p},has:function(e){return!!p(_(this,s),e)}}),m&&t(c.prototype,"size",{get:function(){return _(this,s)[j]}}),c},def:function(e,s,o){var t,r,n=p(e,s);return n?n.v=o:(e._l=n={i:r=f(s,!0),k:s,v:o,p:t=e._l,n:void 0,r:!1},e._f||(e._f=n),t&&(t.n=n),e[j]++,"F"!==r&&(e._i[r]=n)),e},getEntry:p,setStrong:function(e,s,o){d(e,s,(function(e,o){this._t=_(e,s),this._k=o,this._l=void 0}),(function(){for(var e=this._k,s=this._l;s&&s.r;)s=s.p;return this._t&&(this._l=s=s?s.n:this._t._f)?c(0,"keys"==e?s.k:"values"==e?s.v:[s.k,s.v]):(this._t=void 0,c(1))}),o?"entries":"values",!o,!0),u(s)}}},"./node_modules/core-js/library/modules/_collection-to-json.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_classof.js"),r=o("./node_modules/core-js/library/modules/_array-from-iterable.js");e.exports=function(e){return function(){if(t(this)!=e)throw TypeError(e+"#toJSON isn't generic");return r(this)}}},"./node_modules/core-js/library/modules/_collection.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_global.js"),r=o("./node_modules/core-js/library/modules/_export.js"),n=o("./node_modules/core-js/library/modules/_meta.js"),i=o("./node_modules/core-js/library/modules/_fails.js"),l=o("./node_modules/core-js/library/modules/_hide.js"),a=o("./node_modules/core-js/library/modules/_redefine-all.js"),d=o("./node_modules/core-js/library/modules/_for-of.js"),c=o("./node_modules/core-js/library/modules/_an-instance.js"),u=o("./node_modules/core-js/library/modules/_is-object.js"),m=o("./node_modules/core-js/library/modules/_set-to-string-tag.js"),f=o("./node_modules/core-js/library/modules/_object-dp.js").f,_=o("./node_modules/core-js/library/modules/_array-methods.js")(0),j=o("./node_modules/core-js/library/modules/_descriptors.js");e.exports=function(e,s,o,p,y,h){var g=t[e],b=g,S=y?"set":"add",v=b&&b.prototype,C={};return j&&"function"==typeof b&&(h||v.forEach&&!i((function(){(new b).entries().next()})))?(b=s((function(s,o){c(s,b,e,"_c"),s._c=new g,null!=o&&d(o,y,s[S],s)})),_("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),(function(e){var s="add"==e||"set"==e;e in v&&(!h||"clear"!=e)&&l(b.prototype,e,(function(o,t){if(c(this,b,e),!s&&h&&!u(o))return"get"==e&&void 0;var r=this._c[e](0===o?0:o,t);return s?this:r}))})),h||f(b.prototype,"size",{get:function(){return this._c.size}})):(b=p.getConstructor(s,e,y,S),a(b.prototype,o),n.NEED=!0),m(b,e),C[e]=b,r(r.G+r.W+r.F,C),h||p.setStrong(b,e,y),b}},"./node_modules/core-js/library/modules/_core.js":e=>{var s=e.exports={version:"2.6.10"};"number"==typeof __e&&(__e=s)},"./node_modules/core-js/library/modules/_ctx.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_a-function.js");e.exports=function(e,s,o){if(t(e),void 0===s)return e;switch(o){case 1:return function(o){return e.call(s,o)};case 2:return function(o,t){return e.call(s,o,t)};case 3:return function(o,t,r){return e.call(s,o,t,r)}}return function(){return e.apply(s,arguments)}}},"./node_modules/core-js/library/modules/_defined.js":e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},"./node_modules/core-js/library/modules/_descriptors.js":(e,s,o)=>{e.exports=!o("./node_modules/core-js/library/modules/_fails.js")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},"./node_modules/core-js/library/modules/_dom-create.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_is-object.js"),r=o("./node_modules/core-js/library/modules/_global.js").document,n=t(r)&&t(r.createElement);e.exports=function(e){return n?r.createElement(e):{}}},"./node_modules/core-js/library/modules/_enum-bug-keys.js":e=>{e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},"./node_modules/core-js/library/modules/_export.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_global.js"),r=o("./node_modules/core-js/library/modules/_core.js"),n=o("./node_modules/core-js/library/modules/_ctx.js"),i=o("./node_modules/core-js/library/modules/_hide.js"),l=o("./node_modules/core-js/library/modules/_has.js"),a=function(e,s,o){var d,c,u,m=e&a.F,f=e&a.G,_=e&a.S,j=e&a.P,p=e&a.B,y=e&a.W,h=f?r:r[s]||(r[s]={}),g=h.prototype,b=f?t:_?t[s]:(t[s]||{}).prototype;for(d in f&&(o=s),o)(c=!m&&b&&void 0!==b[d])&&l(h,d)||(u=c?b[d]:o[d],h[d]=f&&"function"!=typeof b[d]?o[d]:p&&c?n(u,t):y&&b[d]==u?function(e){var s=function(s,o,t){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(s);case 2:return new e(s,o)}return new e(s,o,t)}return e.apply(this,arguments)};return s.prototype=e.prototype,s}(u):j&&"function"==typeof u?n(Function.call,u):u,j&&((h.virtual||(h.virtual={}))[d]=u,e&a.R&&g&&!g[d]&&i(g,d,u)))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,e.exports=a},"./node_modules/core-js/library/modules/_fails.js":e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},"./node_modules/core-js/library/modules/_for-of.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_ctx.js"),r=o("./node_modules/core-js/library/modules/_iter-call.js"),n=o("./node_modules/core-js/library/modules/_is-array-iter.js"),i=o("./node_modules/core-js/library/modules/_an-object.js"),l=o("./node_modules/core-js/library/modules/_to-length.js"),a=o("./node_modules/core-js/library/modules/core.get-iterator-method.js"),d={},c={},u=e.exports=function(e,s,o,u,m){var f,_,j,p,y=m?function(){return e}:a(e),h=t(o,u,s?2:1),g=0;if("function"!=typeof y)throw TypeError(e+" is not iterable!");if(n(y)){for(f=l(e.length);f>g;g++)if((p=s?h(i(_=e[g])[0],_[1]):h(e[g]))===d||p===c)return p}else for(j=y.call(e);!(_=j.next()).done;)if((p=r(j,h,_.value,s))===d||p===c)return p};u.BREAK=d,u.RETURN=c},"./node_modules/core-js/library/modules/_global.js":e=>{var s=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=s)},"./node_modules/core-js/library/modules/_has.js":e=>{var s={}.hasOwnProperty;e.exports=function(e,o){return s.call(e,o)}},"./node_modules/core-js/library/modules/_hide.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_object-dp.js"),r=o("./node_modules/core-js/library/modules/_property-desc.js");e.exports=o("./node_modules/core-js/library/modules/_descriptors.js")?function(e,s,o){return t.f(e,s,r(1,o))}:function(e,s,o){return e[s]=o,e}},"./node_modules/core-js/library/modules/_html.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_global.js").document;e.exports=t&&t.documentElement},"./node_modules/core-js/library/modules/_ie8-dom-define.js":(e,s,o)=>{e.exports=!o("./node_modules/core-js/library/modules/_descriptors.js")&&!o("./node_modules/core-js/library/modules/_fails.js")((function(){return 7!=Object.defineProperty(o("./node_modules/core-js/library/modules/_dom-create.js")("div"),"a",{get:function(){return 7}}).a}))},"./node_modules/core-js/library/modules/_invoke.js":e=>{e.exports=function(e,s,o){var t=void 0===o;switch(s.length){case 0:return t?e():e.call(o);case 1:return t?e(s[0]):e.call(o,s[0]);case 2:return t?e(s[0],s[1]):e.call(o,s[0],s[1]);case 3:return t?e(s[0],s[1],s[2]):e.call(o,s[0],s[1],s[2]);case 4:return t?e(s[0],s[1],s[2],s[3]):e.call(o,s[0],s[1],s[2],s[3])}return e.apply(o,s)}},"./node_modules/core-js/library/modules/_iobject.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_cof.js");e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==t(e)?e.split(""):Object(e)}},"./node_modules/core-js/library/modules/_is-array-iter.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_iterators.js"),r=o("./node_modules/core-js/library/modules/_wks.js")("iterator"),n=Array.prototype;e.exports=function(e){return void 0!==e&&(t.Array===e||n[r]===e)}},"./node_modules/core-js/library/modules/_is-array.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_cof.js");e.exports=Array.isArray||function(e){return"Array"==t(e)}},"./node_modules/core-js/library/modules/_is-object.js":e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},"./node_modules/core-js/library/modules/_iter-call.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_an-object.js");e.exports=function(e,s,o,r){try{return r?s(t(o)[0],o[1]):s(o)}catch(s){var n=e.return;throw void 0!==n&&t(n.call(e)),s}}},"./node_modules/core-js/library/modules/_iter-create.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_object-create.js"),r=o("./node_modules/core-js/library/modules/_property-desc.js"),n=o("./node_modules/core-js/library/modules/_set-to-string-tag.js"),i={};o("./node_modules/core-js/library/modules/_hide.js")(i,o("./node_modules/core-js/library/modules/_wks.js")("iterator"),(function(){return this})),e.exports=function(e,s,o){e.prototype=t(i,{next:r(1,o)}),n(e,s+" Iterator")}},"./node_modules/core-js/library/modules/_iter-define.js":(e,s,o)=>{var t=o("./node_modules/core-js/library/modules/_library.js"),r=o("./node_modules/core-js/library/modules/_export.js"),n=o("./node_modules/core-js/library/modules/_redefine.js"),i=o("./node_modules/core-js/library/modules/_hide.js"),l=o("./node_modules/core-js/library/modules/_iterators.js"),a=o("./node_modules/core-js/library/modules/_iter-create.js"),d=o("./node_modules/core-js/library/modules/_set-to-string-tag.js"),c=o("./node_modules/core-js/library/modules/_object-gpo.js"),u=o("./node_modules/core-js/lib