TelegramPWA/dist/9954.fdd9d4999d7dae11a58a.js
Alexander Zinchuk dad789717b [Build]
2023-01-07 00:11:16 +01:00

3 lines
58 KiB
JavaScript

/*! For license information please see 9954.fdd9d4999d7dae11a58a.js.LICENSE.txt */
(self.webpackChunktelegram_t=self.webpackChunktelegram_t||[]).push([[9954],{47903:(e,t,a)=>{"use strict";a.r(t),a.d(t,{ActiveCallHeader:()=>X,GroupCall:()=>J,PhoneCall:()=>ae,RatePhoneCallModal:()=>ie});var n=a(73794),i=a(14050),s=a(33555),o=a(83716),r=a(71226),c=a(11192),l=a(42431),d=a(78958),p=a(88422),u=a(27225);(0,s.iw)("leaveGroupCall",(async(e,t,a)=>{const{isFromLibrary:i,shouldDiscard:o,shouldRemove:c,rejoin:u}=a||{},m=(0,l.mU)(e);m&&((0,s.R3)((0,d.Ic)(e,{connectionState:"disconnected"},m.participantsCount-1)),await(0,r.t9)("leaveGroupCall",{call:m}),o&&await(0,r.t9)("discardGroupCall",{call:m}),e=(0,s.Rd)(),c&&(e=(0,d.dc)(e,m.id)),(0,p.Mt)(),(0,s.R3)({...e,groupCalls:{...e.groupCalls,activeGroupCallId:void 0},isCallPanelVisible:void 0}),i||(0,n.leaveGroupCall)(),u&&t.joinGroupCall(u))})),(0,s.iw)("toggleGroupCallVideo",(async e=>{const t=(0,l.mU)(e),a=(0,c.dy)(e,e.currentUserId);a&&t&&(await(0,n.toggleStream)("video"),await(0,r.t9)("editGroupCallParticipant",{call:t,videoStopped:!(0,n.isStreamEnabled)("video"),participant:a}))})),(0,s.iw)("requestToSpeak",((e,t,a)=>{const{value:n}=a||{value:!0},i=(0,l.mU)(e),s=(0,c.dy)(e,e.currentUserId);s&&i&&(0,r.t9)("editGroupCallParticipant",{call:i,raiseHand:n,participant:s})})),(0,s.iw)("setGroupCallParticipantVolume",((e,t,a)=>{const{participantId:i,volume:s}=a,d=(0,l.mU)(e),p=(0,c.dy)(e,i);p&&d&&((0,n.setVolume)(i,Math.floor(s/o.Ro)/100),(0,r.t9)("editGroupCallParticipant",{call:d,volume:Number(s),participant:p}))})),(0,s.iw)("toggleGroupCallMute",(async(e,t,a)=>{const{participantId:i,value:s}=a||{},o=(0,l.mU)(e),d=(0,c.dy)(e,i||e.currentUserId);if(!d||!o)return;const p=void 0===s?(0,n.isStreamEnabled)("audio",d.id):s;i?(0,n.setVolume)(i,p?0:1):await(0,n.toggleStream)("audio"),await(0,r.t9)("editGroupCallParticipant",{call:o,muted:p,participant:d})})),(0,s.iw)("toggleGroupCallPresentation",(async(e,t,a)=>{const i=(0,l.mU)(e),s=(0,c.dy)(e,e.currentUserId);if(s&&i){if(void 0!==a?.value?a?.value:!(0,n.isStreamEnabled)("presentation")){const e=await(0,n.startSharingScreen)();if(!e)return;await(0,r.t9)("joinGroupCallPresentation",{call:i,params:e})}else await(0,n.toggleStream)("presentation",!1),await(0,r.t9)("leaveGroupCallPresentation",{call:i});await(0,r.t9)("editGroupCallParticipant",{call:i,presentationPaused:!(0,n.isStreamEnabled)("presentation"),participant:s})}})),(0,s.iw)("connectToActiveGroupCall",(async(e,t)=>{const a=(0,l.mU)(e);if(!a)return;if("discarded"===a.connectionState)return void t.showNotification({message:"This voice chat is not active"});const i=(0,p.FF)(),o=(0,p.NH)();if(!i||!o)return;const{currentUserId:d}=e;if(!d)return;const m=await(0,n.joinGroupCall)(d,o,i,t.apiUpdate);if(await(0,r.t9)("joinGroupCall",{call:a,params:m,inviteHash:a.inviteHash})&&(t.loadMoreGroupCallParticipants(),a.chatId)){const e=(0,c.Z1)((0,s.Rd)(),a.chatId);if(!e)return;await(0,u.ft)(e)}})),(0,s.iw)("connectToActivePhoneCall",(async(e,t)=>{const{phoneCall:a}=e;if(!a)return;const n=(0,l.fu)(e);if(!n)return;const i=await(0,r.t9)("getDhConfig");if(!i)return;await(0,r.t9)("createPhoneCallState",[!0]);const s=await(0,r.t9)("requestPhoneCall",[i]);await(0,r.t9)("requestCall",{user:n,gAHash:s,isVideo:a.isVideo})||t.hangUp()})),(0,s.iw)("acceptCall",(async e=>{const{phoneCall:t}=e;if(!t)return;const a=await(0,r.t9)("getDhConfig");if(!a)return;await(0,r.t9)("createPhoneCallState",[!1]);const n=await(0,r.t9)("acceptPhoneCall",[a]);(0,r.t9)("acceptCall",{call:t,gB:n})})),(0,s.iw)("sendSignalingData",((e,t,a)=>{const{phoneCall:n}=e;if(!n)return;const i=JSON.stringify(a);(async()=>{const e=await(0,r.t9)("encodePhoneCallData",[i]);e&&(0,r.t9)("sendSignalingData",{data:e,call:n})})()})),(0,s.iw)("closeCallRatingModal",(e=>({...e,ratingPhoneCall:void 0}))),(0,s.iw)("setCallRating",((e,t,a)=>{const{ratingPhoneCall:n}=e;if(!n)return;const{rating:i,comment:s}=a;return(0,r.t9)("setCallRating",{call:n,rating:i,comment:s}),{...e,ratingPhoneCall:void 0}})),(0,s.iw)("hangUp",(e=>{const{phoneCall:t}=e;if(t){if("discarded"===t.state)return(0,r.t9)("destroyPhoneCallState"),(0,n.stopPhoneCall)(),{...e,phoneCall:void 0,isCallPanelVisible:void 0};if((0,r.t9)("destroyPhoneCallState"),(0,n.stopPhoneCall)(),(0,r.t9)("discardCall",{call:t}),"requesting"===t.state)return{...e,phoneCall:void 0,isCallPanelVisible:void 0};setTimeout((()=>{(0,s.R3)({...(0,s.Rd)(),phoneCall:void 0,isCallPanelVisible:void 0})}),500)}}));var m=a(60782),g=a(77361),v=a(50711);const f=new Uint16Array([55357,56841,55357,56845,55357,56859,55357,56877,55357,56881,55357,56865,55357,56846,55357,56884,55357,56885,55357,56840,55357,56876,55357,56839,55357,56847,55357,56430,55357,56439,55357,56450,55357,56438,55357,56424,55357,56425,55357,56436,55357,56437,55357,56891,55357,56893,55357,56896,55357,56442,55357,56904,55357,56905,55357,56906,55357,56448,55357,56445,55357,56489,55357,56613,55357,56485,55357,56484,55357,56386,55357,56384,55357,56387,55357,56389,55357,56388,55357,56397,55357,56398,55357,56396,55357,56394,9996,9995,55357,56400,55357,56390,55357,56391,55357,56393,55357,56392,55357,56911,55357,56399,55357,56490,55357,57014,55356,57283,55357,56451,55357,56427,55357,56426,55357,56428,55357,56429,55357,56453,55356,57257,55357,56401,55357,56402,55357,56415,55357,56414,55357,56416,55357,56405,55357,56407,55357,56406,55357,56409,55357,56412,55357,56403,55356,57216,55357,56452,55357,56475,55357,56473,55357,56476,55357,56474,55357,56461,55357,56462,55357,56374,55357,56378,55357,56369,55357,56365,55357,56377,55357,56368,55357,56376,55357,56367,55357,56360,55357,56379,55357,56375,55357,56366,55357,56343,55357,56372,55357,56337,55357,56344,55357,56380,55357,56359,55357,56357,55357,56340,55357,56333,55357,56354,55357,56347,55357,56349,55357,56348,55357,56350,55357,56332,55357,56345,55357,56346,55357,56351,55357,56364,55357,56331,55357,56336,55357,56330,55357,56363,55356,57152,55356,57145,55356,57147,55356,57153,55356,57150,55356,57156,55356,57141,55356,57140,55356,57139,55356,57118,55356,57114,55356,57113,55356,57102,55356,57099,9889,9748,10052,9924,55356,57088,55356,57096,55356,57098,55356,57235,55356,57222,55356,57219,55357,56443,55356,57221,55356,57220,55356,57217,55356,57224,55357,56622,55356,57253,55357,56567,55357,56511,55357,56507,9742,55357,56545,55357,56570,55357,56571,55357,56585,55357,56596,9203,9200,8986,55357,56594,55357,56593,55357,56590,55357,56481,55357,56614,55357,56588,55357,56587,55357,57023,55357,57021,55357,56615,55357,56616,55357,57002,55357,57004,55357,56483,55357,56619,55357,56618,55357,56458,55357,56457,55357,56496,55357,56501,55357,56499,9993,55357,56555,55357,56550,55357,56517,55357,56513,9986,55357,56524,55357,56526,10002,9999,55357,56528,55357,56538,55357,56620,55357,56621,55356,57256,55356,57260,55356,57252,55356,57255,55356,57269,55356,57273,55356,57275,55356,57274,55356,57272,55357,56446,55356,57262,55356,56527,55356,57266,55356,57263,55356,57288,55356,57280,9917,9918,55356,57278,55356,57265,55356,57289,55356,57267,55356,57281,55356,57287,55356,57286,55356,57290,55356,57284,9749,55356,57212,55356,57210,55356,57207,55356,57204,55356,57173,55356,57172,55356,57183,55356,57175,55356,57201,55356,57178,55356,57180,55356,57185,55356,57203,55356,57182,55356,57193,55356,57190,55356,57218,55356,57200,55356,57194,55356,57195,55356,57197,55356,57199,55356,57166,55356,57167,55356,57162,55356,57163,55356,57170,55356,57159,55356,57161,55356,57171,55356,57169,55356,57164,55356,57168,55356,57165,55356,57158,55356,57157,55356,57149,55356,57313,55356,57317,55356,57318,9962,55356,57328,9978,55356,57325,55357,56827,55357,56829,55356,57248,55356,57249,9970,55356,57250,55357,56994,55357,56996,9875,55357,56960,9992,55357,56961,55357,56962,55357,56971,55357,56974,55357,56972,55357,56985,55357,56983,55357,56981,55357,56987,55357,57e3,55357,56980,55357,56978,55357,56977,55357,57010,55357,56992,55357,56988,55357,56998,9888,55357,56999,9981,55356,57264,55357,56831,55356,57258,55356,57261,55356,56815,55356,56821,55356,56816,55356,56823,55356,56809,55356,56810,55356,56808,55356,56819,55356,56826,55356,56824,55356,56811,55356,56823,55356,56810,55356,56824,55356,56814,55356,56825,55356,56823,55356,56826,55356,56812,55356,56807,49,8419,50,8419,51,8419,52,8419,53,8419,54,8419,55,8419,56,8419,57,8419,48,8419,55357,56607,10071,10067,9829,9830,55357,56495,55357,56599,55357,56625,55357,56628,55357,56629,55357,56630,55357,56631]),C=[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,87,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,259,260,261,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,295,297,299,301,303,305,306,307,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,351,353,355,357,359,360,362,364,365,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,407,408,410,412,414,416,418,420,422,424,426,427,429,431,433,435,437,439,441,443,445,447,449,451,453,455,457,459,461,463,465,467,469,471,473,475,477,479,481,483,485,487,489,491,493,495,497,499,501,503,505,507,508,510,511,513,515,517,519,521,522,524,526,528,529,531,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,564,566,567,569,570,572,574,576,578,582,586,590,594,598,602,606,610,614,618,620,622,624,626,628,630,632,634,636,638,640,641,642,643,644,646,648,650,652,654,656,658];(0,s.iw)("apiUpdate",((e,t,a)=>{const{activeGroupCallId:i}=e.groupCalls;switch(a["@type"]){case"updateGroupCallLeavePresentation":t.toggleGroupCallPresentation({value:!1});break;case"updateGroupCallStreams":if(!a.userId||!i)break;if(!(0,l.GU)(e,i,a.userId))break;return(0,d.B6)(e,i,a.userId,(0,m.CE)(a,["@type","userId"]));case"updateGroupCallConnectionState":if(!i)break;if("disconnected"===a.connectionState){t.leaveGroupCall({isFromLibrary:!0});break}return(0,d.AH)(e,i,{connectionState:a.connectionState,isSpeakerDisabled:a.isSpeakerDisabled});case"updateGroupCallParticipants":{const{groupCallId:e,participants:t}=a;i===e&&(0,n.handleUpdateGroupCallParticipants)(t);break}case"updateGroupCallConnection":{if(a.data.stream){t.showNotification({message:"Big live streams are not yet supported"}),t.leaveGroupCall();break}(0,n.handleUpdateGroupCallConnection)(a.data,a.presentation);const i=(0,l.mU)(e);i?.participants&&Object.keys(i.participants).length>0&&(0,n.handleUpdateGroupCallParticipants)(Object.values(i.participants));break}case"updatePhoneCallMediaState":return{...e,phoneCall:{...e.phoneCall,...(0,m.CE)(a,["@type"])}};case"updatePhoneCall":{if(!g.Bi)return;const{phoneCall:i,currentUserId:o}=e,c={...i,...a.call},d=i?.adminId===o;if(e={...e,phoneCall:c},i&&i.id&&c.id!==i.id)return void("discarded"!==c.state&&(0,r.t9)("discardCall",{call:c,isBusy:!0}));const{accessHash:p,state:u,connections:m,gB:h}=c;if(("active"===u||"accepted"===u)&&!c.protocol?.libraryVersions.some((e=>"4.0.0"===e||"4.0.1"===e))){const a=(0,l.fu)(e);return t.hangUp(),void t.showNotification({message:v.i0("VoipPeerIncompatible",a?.firstName)})}if("discarded"===u){if(!i)return;return{...e,...c.needRating&&{ratingPhoneCall:c},isCallPanelVisible:void 0}}return"accepted"===u&&p&&h?(async()=>{const{gA:t,keyFingerprint:a,emojis:n}=await(0,r.t9)("confirmPhoneCall",[h,f,C]),i={...(e=(0,s.Rd)()).phoneCall,emojis:n};(0,s.R3)({...e,phoneCall:i}),(0,r.t9)("confirmCall",{call:c,gA:t,keyFingerprint:a})})():"active"===u&&m&&"active"!==i?.state&&(d||((0,r.t9)("receivedCall",{call:c}),(async()=>{const{emojis:t}=await(0,r.t9)("confirmPhoneCall",[c.gAOrB,f,C]),a={...(e=(0,s.Rd)()).phoneCall,emojis:t};(0,s.R3)({...e,phoneCall:a})})()),(0,n.joinPhoneCall)(m,t.sendSignalingData,d,Boolean(c?.isVideo),t.apiUpdate)),e}case"updatePhoneCallConnectionState":{const{connectionState:n}=a;return e.phoneCall?"closed"===n||"disconnected"===n||"failed"===n?void t.hangUp():{...e,phoneCall:{...e.phoneCall,isConnected:"connected"===n}}:e}case"updatePhoneCallSignalingData":{const{phoneCall:t}=e;if(!t)break;(0,r.t9)("decodePhoneCallData",[a.data])?.then(n.processSignalingMessage);break}}}));var h=a(13365),P=a(46752),S=a(60706),E=a(59107),y=a(34288),b=a(231),Z=a(53106),k=a(58964),w=a(13103);const I=()=>{navigator.vibrate?.(50)};var T=a(87204),N=a(58912);const D=(0,i.X$)((0,s.c$)((e=>{const t=(0,l.mU)(e),{connectionState:a}=t||{},n=t&&(0,l.GU)(e,t.id,e.currentUserId),{raiseHandRating:i,hasAudioStream:s,canSelfUnmute:o,isMuted:r}=n||{};return{connectionState:a||"discarded",hasRequestedToSpeak:Boolean(i),noAudioStream:!s,canSelfUnmute:o,isMuted:r}}))((e=>{let{noAudioStream:t,canSelfUnmute:a,isMuted:n,hasRequestedToSpeak:o,connectionState:r}=e;const{toggleGroupCallMute:c,requestToSpeak:l,playGroupCallSound:d}=(0,s.Sv)(),p=(0,E.Z)(),u=(0,i.sO)("up"),[m,g]=(0,i.eJ)(!1),v="connected"!==r,f=!a&&n,C=(0,T.Z)(f);(0,i.d4)((()=>{C&&!f&&d({sound:"allowTalk"})}),[d,C,f]);const S=(0,i.Ye)((()=>{if(m){const e=Math.floor(100*Math.random());return e<32?[0,120]:e<64?[120,240]:e<97?[240,420]:[420,540]}return!C&&f?t?[99,135]:[136,172]:C&&!f?[0,36]:f?[0,0]:t?[69,99]:[36,69]}),[C,m,t,f]),y=m?"HandFilled":"VoiceMini",b=()=>{I(),c()},Z=p(o?"VoipMutedTapedForSpeak":f?"VoipMutedByAdmin":t?"VoipUnmute":"VoipTapToMute");return i.ZP.createElement("div",{className:"button-wrapper microphone-wrapper"},i.ZP.createElement("button",{className:(0,P.Z)("MicrophoneButton",t&&"crossed",a&&"can-self-unmute",v&&"is-connecting",f&&"muted-by-admin"),onMouseDown:()=>{if(f){if(m)return;return I(),l(),g(!0),void setTimeout((()=>{g(!1)}),3e3)}u.current="down",t&&setTimeout((()=>{"down"===u.current&&(u.current="hold",b())}),200)},onMouseUp:()=>{f||(b(),u.current="up")}},i.ZP.createElement(N.Z,{tgsUrl:h.l[y],size:48,playSegment:S})),i.ZP.createElement("div",{className:"button-text"},Z))})));var M=a(14605),V=a(80036),O=a(69118);var G=a(52328),U=a(22275);const A=[0,17],R=[17,34],_=(0,i.X$)((0,s.c$)((e=>({isAdmin:(0,l.Ht)(e)})))((e=>{let{participant:t,closeDropdown:a,isDropdownOpen:n,anchor:r,isAdmin:c}=e;const{toggleGroupCallMute:l,setGroupCallParticipantVolume:d,toggleGroupCallPanel:p,openChat:u,requestToSpeak:m}=(0,s.Sv)(),g=(0,E.Z)(),[v,f,C]=(0,S.Z)(),y=t?.id,{isMutedByMe:b,isMuted:Z,isSelf:w,canSelfUnmute:I}=t||{},T=Boolean(t?.raiseHandRating),D=!I&&Z,[M,_]=(0,i.eJ)(b?0:(t?.volume||o.aCB)/o.Ro);(0,i.d4)((()=>{_(b?0:(t?.volume||o.aCB)/o.Ro)}),[y]);const $=function(e,t,a,n){const s=(0,i.I4)((e=>{e()}),[]);return(0,i.Ye)((()=>(0,O.P2)(s,a,!n)),[s,a,n])}(0,0,500,H),j=(0,i.I4)((e=>{e.stopPropagation(),f(),a()}),[f,a]),x=(0,i.I4)((e=>{e.stopPropagation(),m({value:!1}),a()}),[m,a]),L=(0,i.I4)((e=>{e.stopPropagation(),a(),c||_(b?o.aCB/o.Ro:0),l({participantId:y,value:c?!D:!b})}),[a,l,y,c,D,b]),F=(0,i.I4)((e=>{e.stopPropagation(),p(),u({id:y}),a()}),[p,a,u,y]),B=0===M?A:R;var H;return i.ZP.createElement("div",null,i.ZP.createElement(G.Z,{isOpen:n,positionX:"right",autoClose:!0,style:(0,V.Z)(r&&`right: 1rem; top: ${r.y}px`),onClose:a,className:"participant-menu"},!w&&!D&&i.ZP.createElement("div",{className:"group"},i.ZP.createElement("div",{className:(0,P.Z)("volume-control",M<50&&"low",M>=50&&M<100&&"medium",M>=100&&M<150&&"normal",M>=150&&"high")},i.ZP.createElement("input",{type:"range",min:"0",max:"200",value:M,onChange:e=>{const t=Number(e.target.value);_(t),$((()=>{0===t?l({participantId:y,value:!0}):d({participantId:y,volume:Math.floor(t*o.Ro)})}))}}),i.ZP.createElement("div",{className:"info"},i.ZP.createElement(N.Z,{tgsUrl:h.l.Speaker,playSegment:B,size:24}),i.ZP.createElement("span",null,M,"%")))),i.ZP.createElement("div",{className:"group"},T&&w&&i.ZP.createElement(k.Z,{icon:"stop-raising-hand",onClick:x},g("VoipGroupCancelRaiseHand")),!w&&i.ZP.createElement(k.Z,{icon:"user",onClick:F},g("VoipGroupOpenProfile")),!w&&i.ZP.createElement(k.Z,{icon:Z&&c?"allow-speak":"microphone-alt",onClick:L},g(c?D?"VoipGroupAllowToSpeak":"VoipMute":b?"VoipGroupUnmuteForMe":"VoipGroupMuteForMe")),!w&&c&&i.ZP.createElement(k.Z,{icon:"delete-user",destructive:!0,onClick:j},g("VoipGroupUserRemove")))),!w&&c&&i.ZP.createElement(U.Z,{isOpen:v,userId:y,onClose:C}))})));var $=a(27407),j=a(70172);const x=(0,i.X$)((e=>{let{participant:t,noColor:a}=e;const{isMuted:s,isMutedByMe:o}=t,r=(t.amplitude||0)>n.THRESHOLD,c=Boolean(t.raiseHandRating),l=(0,T.Z)(c),d=!Boolean(t?.canSelfUnmute)&&s,p=(0,T.Z)(s),u=(0,i.Ye)((()=>s&&!p?[43,64]:!s&&p?[22,42]:c&&!l?[65,84]:!d&&l?[0,21]:s?[22,23]:[43,44]),[s,d,c]),m=(0,i.Ye)((()=>a?[255,255,255]:c?[77,166,224]:d||o?[255,112,111]:r?[87,188,108]:[132,141,148]),[a,c,d,o,r]);return i.ZP.createElement(N.Z,{tgsUrl:h.l.VoiceOutlined,playSegment:u,size:28,color:m})})),L=(0,i.X$)((0,s.c$)(((e,t)=>{let{participant:a}=t;return{user:a.isUser?(0,c.dy)(e,a.id):void 0,chat:a.isUser?void 0:(0,c.Z1)(e,a.id)}}))((e=>{let{openParticipantMenu:t,participant:a,user:s,chat:r}=e;const c=(0,i.sO)(null),l=(0,E.Z)(),{isSelf:d,isMutedByMe:p,isMuted:u}=a,m=(a.amplitude||0)>n.THRESHOLD,g=Boolean(a.raiseHandRating),[v,f]=(0,i.Ye)((()=>d?[l("ThisIsYou"),"blue"]:p?[l("VoipGroupMutedForMe"),"red"]:g?[l("WantsToSpeak"),"blue"]:!u&&m?[a.volume&&a.volume!==o.aCB?l("SpeakingWithVolume",(a.volume/o.Ro).toString()).replace("%%","%"):l("Speaking"),"green"]:a.about?[a.about,""]:[l("Listening"),"blue"]),[m,a.volume,l,d,p,g,u,a.about]);if(!s&&!r)return;const C=s?`${s.firstName||""} ${s.lastName||""}`:r?.title;return i.ZP.createElement("div",{className:(0,P.Z)("GroupCallParticipant",a.canSelfUnmute&&"can-self-unmute"),onClick:()=>{d||t(c.current,a)},ref:c},i.ZP.createElement(j.Z,{user:s,chat:r,size:"medium"}),i.ZP.createElement("div",{className:"info"},i.ZP.createElement("span",{className:"name"},C),i.ZP.createElement("span",{className:(0,P.Z)("about",f)},v)),i.ZP.createElement("div",{className:"microphone"},i.ZP.createElement(x,{participant:a})))})));var F=a(21273);const B=(0,i.X$)((0,s.c$)((e=>{const{participantsCount:t,participants:a}=(0,l.mU)(e)||{};return{participants:a,participantsCount:t||0}}))((e=>{let{participants:t,participantsCount:a,openParticipantMenu:n}=e;const{createGroupCallInviteLink:o,loadMoreGroupCallParticipants:r}=(0,s.Sv)(),c=(0,E.Z)(),l=(0,i.Ye)((()=>Object.keys(t||{})),[t]),[d,p]=(0,$.Z)(r,l,l.length>=a);return i.ZP.createElement("div",{className:"participants"},i.ZP.createElement("div",{className:"invite-btn",onClick:o},i.ZP.createElement("div",{className:"icon"},i.ZP.createElement("i",{className:"icon-add-user"})),i.ZP.createElement("div",{className:"text"},c("VoipGroupInviteMember"))),i.ZP.createElement(F.Z,{items:d,onLoadMore:p},d?.map((e=>t[e]&&i.ZP.createElement(L,{key:e,openParticipantMenu:n,participant:t[e]})))))}))),H=(0,i.X$)((0,s.c$)(((e,t)=>{let{participant:a}=t;return{currentUserId:e.currentUserId,user:a.isUser?(0,c.dy)(e,a.id):void 0,chat:a.isUser?void 0:(0,c.Z1)(e,a.id),isActive:(a.amplitude||0)>n.THRESHOLD}}))((e=>{let{type:t,onClick:a,user:s,chat:r,isActive:c,isFullscreen:l}=e;const d=(0,E.Z)(),p=(0,i.I4)((()=>{a&&a(s?.id||r.id,t)}),[r,a,t,s?.id]);if(!s&&!r)return;const u=(0,n.getUserStreams)(s?.id||r.id);return i.ZP.createElement("div",{className:(0,P.Z)("GroupCallParticipantVideo",c&&"active"),onClick:p},l&&i.ZP.createElement("button",{className:"back-button"},i.ZP.createElement("i",{className:"icon-arrow-left"}),d("Back")),i.ZP.createElement(j.Z,{user:s,chat:r,className:"thumbnail-avatar"}),!o.gdz&&i.ZP.createElement("div",{className:"thumbnail-wrapper"},i.ZP.createElement("video",{className:"thumbnail",muted:!0,autoPlay:!0,playsInline:!0,srcObject:u?.[t]})),i.ZP.createElement("video",{className:"video",muted:!0,autoPlay:!0,playsInline:!0,srcObject:u?.[t]}),i.ZP.createElement("div",{className:"info"},i.ZP.createElement("i",{className:"icon-microphone-alt"}),i.ZP.createElement("span",{className:"name"},s?.firstName||r?.title),"presentation"===t&&i.ZP.createElement("i",{className:"last-icon icon-active-sessions"})))}))),q=(0,i.X$)((0,s.c$)((e=>{const{participants:t}=(0,l.mU)(e)||{};return{participants:t}}))((e=>{let{participants:t,onDoubleClick:a}=e;const[n,s]=(0,i.eJ)(void 0),o=(0,i.Ye)((()=>Object.values(t||{}).filter((e=>e.hasPresentationStream))),[t]),r=(0,i.Ye)((()=>Object.values(t||{}).filter((e=>e.hasVideoStream))),[t]),c=r.length+o.length,l=c<=2?1:c<=6?2:c<=9?3:4,d=3===c||2===l&&c%2!=0,p=(0,i.I4)(((e,t)=>{n&&e===n.id&&t===n.type?s(void 0):s({id:e,type:t})}),[n]);return i.ZP.createElement("div",{className:"streams",onDoubleClick:a},i.ZP.createElement("div",{className:(0,P.Z)("videos",d&&"span-last-video"),style:`--column-count: ${n?1:l}`},n&&i.ZP.createElement(H,{key:n.id,isFullscreen:!0,onClick:p,participant:t[n.id],type:n.type}),n?void 0:o.map((e=>i.ZP.createElement(H,{key:e.id,onClick:p,participant:e,type:"presentation"}))),n?void 0:r.map((e=>i.ZP.createElement(H,{key:e.id,onClick:p,participant:e,type:"video"})))))}))),z=[0,10],J=(0,i.X$)((0,s.c$)(((e,t)=>{let{groupCallId:a}=t;const{connectionState:n,title:i,isSpeakerDisabled:s,participants:o,participantsCount:r}=(0,l.$5)(e,a)||{};return{connectionState:n,title:i,isSpeakerEnabled:!s,participantsCount:r,meParticipant:(0,l.GU)(e,a,e.currentUserId),isCallPanelVisible:Boolean(e.isCallPanelVisible),isAdmin:(0,l.Ht)(e),participants:o}}))((e=>{let{groupCallId:t,isCallPanelVisible:a,connectionState:o,isSpeakerEnabled:r,title:c,meParticipant:l,isAdmin:d,participants:p}=e;const{toggleGroupCallVideo:u,toggleGroupCallPresentation:m,leaveGroupCall:v,toggleGroupCallPanel:f,connectToActiveGroupCall:C,playGroupCallSound:I}=(0,s.Sv)(),T=(0,E.Z)(),V=(0,i.sO)(null),[O,G]=(0,i.eJ)(!1),[U,A,R]=(0,S.Z)(),[$,j,x]=(0,S.Z)(!0),L=Object.values(p).some((e=>{let{video:t,presentation:a}=e;return t||a})),F=U&&!g.wB&&L,[H,J]=(0,i.eJ)(),[X,Y,K]=(0,S.Z)(),[Q,W,ee]=(0,S.Z)(),[te,ae]=(0,i.eJ)(!1),[ne,ie]=(0,i.eJ)(!1),se=l?.hasVideoStream,oe=l?.hasPresentationStream,re="connected"!==o,ce=l?.canSelfUnmute,le=!ce&&l?.isMuted,de=(0,i.I4)(((e,t)=>{const a=e.getBoundingClientRect(),n=V.current;J({anchor:{x:a.left,y:a.top-n.offsetTop+60},participant:t}),Y()}),[Y]);(0,i.d4)((()=>{"connected"===o?I({sound:"join"}):"reconnecting"===o&&I({sound:"connecting"})}),[o,I]);const pe=(0,i.I4)((()=>{ee(),ae(!1)}),[ee]),ue=(0,i.Ye)((()=>e=>{let{onTrigger:t,isOpen:a}=e;return i.ZP.createElement(b.Z,{round:!0,size:"smaller",color:"translucent",className:a?"active":void 0,onClick:t,ariaLabel:T("AccDescrMoreOptions")},i.ZP.createElement("i",{className:"icon-more"}))}),[T]),me=(0,i.I4)((()=>{V.current&&(U?document.exitFullscreen().then(R):V.current.requestFullscreen().then(A))}),[R,U,A]),ge=(0,i.I4)((()=>{$?x():j()}),[x,$,j]),ve=(0,i.I4)((()=>{g.t0&&(U||x(),me())}),[x,me,U]),fe=(0,i.I4)((()=>{U?R():A()}),[R,U,A]),Ce=(0,i.I4)((()=>{f(),U&&R()}),[R,U,f]);(0,i.d4)((()=>{if(!g.t0)return;const e=V.current;return e?(e.addEventListener("fullscreenchange",fe),()=>{e.removeEventListener("fullscreenchange",fe)}):void 0}),[fe]),(0,i.d4)((()=>{C()}),[C,t]);const he=(0,i.I4)((()=>{ae(!0),ie(!0),W(),U&&me()}),[me,U,W]),Pe=(0,i.I4)((()=>{if(d&&!Q)return W(),void(U&&me());I({sound:"leave"}),G(!0),ee()}),[ee,me,d,Q,U,W,I]),Se=(0,i.I4)((()=>{O&&v({shouldDiscard:ne})}),[O,v,ne]);return i.ZP.createElement(w.Z,{isOpen:!a&&!O,onClose:f,className:(0,P.Z)("GroupCall",g.wB&&"single-column",F&&"landscape",!$&&"no-sidebar"),dialogRef:V,onCloseAnimationEnd:Se},i.ZP.createElement("div",{className:"header"},i.ZP.createElement("h3",null,c||T("VoipGroupVoiceChat")),g.t0&&i.ZP.createElement(b.Z,{round:!0,size:"smaller",color:"translucent",onClick:me,ariaLabel:T(U?"AccExitFullscreen":"AccSwitchToFullscreen")},i.ZP.createElement("i",{className:U?"icon-smallscreen":"icon-fullscreen"})),F&&i.ZP.createElement(b.Z,{round:!0,size:"smaller",color:"translucent",onClick:ge},i.ZP.createElement("i",{className:"icon-sidebar"})),(n.IS_SCREENSHARE_SUPPORTED&&!le||d)&&i.ZP.createElement(Z.Z,{positionX:"right",trigger:ue},n.IS_SCREENSHARE_SUPPORTED&&!le&&i.ZP.createElement(k.Z,{icon:"share-screen-outlined",onClick:m},T(oe?"VoipChatStopScreenCapture":"VoipChatStartScreenCapture")),d&&i.ZP.createElement(k.Z,{icon:"phone-discard-outline",onClick:he,destructive:!0},T("VoipGroupLeaveAlertEndChat"))),i.ZP.createElement(b.Z,{round:!0,size:"smaller",color:"translucent",onClick:Ce},i.ZP.createElement("i",{className:"icon-close"}))),i.ZP.createElement("div",{className:"scrollable custom-scroll"},i.ZP.createElement(q,{onDoubleClick:ve}),(!F||$)&&i.ZP.createElement(B,{openParticipantMenu:de})),i.ZP.createElement(_,{participant:H?.participant,anchor:H?.anchor,isDropdownOpen:X,closeDropdown:K}),i.ZP.createElement("div",{className:"buttons"},re&&i.ZP.createElement(y.Z,null),i.ZP.createElement("div",{className:"button-wrapper"},i.ZP.createElement("div",{className:"video-buttons"},se&&(g.wZ||g.cj)&&i.ZP.createElement("button",{className:"smaller-button",onClick:n.switchCameraInput},i.ZP.createElement(N.Z,{tgsUrl:h.l.CameraFlip,playSegment:z,size:24})),i.ZP.createElement("button",{className:(0,P.Z)("small-button",le?"speaker":"camera",(se||le&&r)&&"active"),onClick:()=>{le?(0,n.toggleSpeaker)():u()}},i.ZP.createElement("i",{className:le?"icon-speaker":se?"icon-video-stop":"icon-video"}))),i.ZP.createElement("div",{className:"button-text"},T(le?"VoipSpeaker":"VoipCamera"))),i.ZP.createElement(D,null),i.ZP.createElement("div",{className:"button-wrapper"},i.ZP.createElement("button",{className:"small-button leave",onClick:Pe},i.ZP.createElement("i",{className:"icon-phone-discard"})),i.ZP.createElement("div",{className:"button-text"},T("VoipGroupLeave")))),i.ZP.createElement(w.Z,{isOpen:Q,onClose:pe,className:"error",title:T(te?"VoipGroupEndAlertTitle":"VoipGroupLeaveAlertTitle")},i.ZP.createElement("p",null,T(te?"VoipGroupEndAlertText":"VoipGroupLeaveAlertText")),!te&&i.ZP.createElement(M.Z,{label:T("VoipGroupEndChat"),checked:ne,onCheck:ie}),i.ZP.createElement(b.Z,{isText:!0,className:"confirm-dialog-button",onClick:Pe},T(te?"VoipGroupEnd":"VoipGroupLeave")),i.ZP.createElement(b.Z,{isText:!0,className:"confirm-dialog-button",onClick:pe},T("Cancel"))))}))),X=(0,i.X$)((0,s.c$)((e=>({groupCall:(0,l.mU)(e),isCallPanelVisible:e.isCallPanelVisible,phoneCallUser:(0,l.fu)(e)})))((e=>{let{groupCall:t,phoneCallUser:a,isCallPanelVisible:n}=e;const{toggleGroupCallPanel:o}=(0,s.Sv)(),r=(0,E.Z)();if((0,i.d4)((()=>(document.body.classList.toggle("has-call-header",Boolean(n)),()=>{document.body.classList.toggle("has-call-header",!1)})),[n]),t||a)return i.ZP.createElement("div",{className:(0,P.Z)("ActiveCallHeader",n&&"open"),onClick:o},i.ZP.createElement("span",{className:"title"},a?.firstName||t?.title||r("VoipGroupVoiceChat")))})));var Y=a(32340),K=a(790),Q=a(62357),W=a(65326);const ee=(0,i.X$)((e=>{let{onClick:t,label:a,customIcon:n,icon:s,iconClassName:o,className:r,isDisabled:c,isActive:l}=e;return i.ZP.createElement("div",{className:"eWbOLx__FZXR1sqKEJek"},i.ZP.createElement(b.Z,{round:!0,className:(0,P.Z)(r,"XKOJvKiD4DsRfJLLhnw2",l&&"qvAVe7qcyaEvRQQ1StFI"),onClick:t,disabled:c},n||i.ZP.createElement("i",{className:(0,P.Z)(o,`icon-${s}`)})),i.ZP.createElement("div",{className:"wnAniFJmQ7ocVtjRHNey"},a))})),te={root:"AddQYAOZJv2f7U7qIfC3",blurred:"anFtHj7Wvsv4M_2I2EFF","single-column":"Oi7aFYBAbl4bYichdt52",singleColumn:"Oi7aFYBAbl4bYichdt52",header:"_iK8HccGNSmmo2wL7tMs","close-button":"U66J7V5JKTCiktgwYpcC",closeButton:"U66J7V5JKTCiktgwYpcC","emojis-backdrop":"IekzemHkkO4bfrWHmxlv",emojisBackdrop:"IekzemHkkO4bfrWHmxlv",open:"hiNHKiq2owo1FvdT9a5g",emojis:"BjOb1fDymE5GCiJ4g6YN","emoji-tooltip":"Ci9ie86NFinrXvowDx23",emojiTooltip:"Ci9ie86NFinrXvowDx23","user-info":"eiM2IbZjKKAwrfNtXtAy",userInfo:"eiM2IbZjKKAwrfNtXtAy",buttons:"AtK8DjRToL8Uk7ZAY25p",leave:"uI2mkCTKDcqYPu64xKOk",accept:"PC2FeM0OEDDW0TVFGMkk","accept-icon":"hBxp1Loj3vj4DtnculDA",acceptIcon:"hBxp1Loj3vj4DtnculDA","main-video":"lXMZESnc4CBKQbvV7qkL",mainVideo:"lXMZESnc4CBKQbvV7qkL","second-video":"cnQvI_xwAbO0EEwRcLsg",secondVideo:"cnQvI_xwAbO0EEwRcLsg",visible:"XaD79h6hSiEi0ypkn5OK",fullscreen:"NlF9_Kb2le_3B712PZnO"},ae=(0,i.X$)((0,s.c$)((e=>{const{phoneCall:t,currentUserId:a}=e;return{isCallPanelVisible:Boolean(e.isCallPanelVisible),user:(0,l.fu)(e),isOutgoing:t?.adminId===a,phoneCall:t,animationLevel:e.settings.byKey.animationLevel}}))((e=>{let{user:t,isOutgoing:a,phoneCall:o,isCallPanelVisible:r,animationLevel:c}=e;const l=(0,E.Z)(),{hangUp:d,acceptCall:p,playGroupCallSound:u,toggleGroupCallPanel:m,connectToActivePhoneCall:v}=(0,s.Sv)(),f=(0,i.sO)(null),[C,y,Z]=(0,S.Z)(),k=(0,i.I4)((()=>{C?Z():y()}),[Z,C,y]),I=(0,i.I4)((()=>{f.current&&(C?document.exitFullscreen().then(Z):f.current.requestFullscreen().then(y))}),[Z,C,y]);(0,i.d4)((()=>{if(!g.t0)return;const e=f.current;return e?(e.addEventListener("fullscreenchange",k),()=>{e.removeEventListener("fullscreenchange",k)}):void 0}),[k]);const T=(0,i.I4)((()=>{m(),C&&Z()}),[Z,C,m]),D="discarded"===o?.state,M="busy"===o?.reason,V="requested"===o?.state&&!a,O=("requested"===o?.state||"waiting"===o?.state)&&a,G="active"===o?.state,U=o?.isConnected,[A,R,_]=(0,S.Z)(),$=(0,i.I4)((()=>{R(),d()}),[d,R]);(0,i.d4)((()=>{A?u({sound:"end"}):V?u({sound:"incoming"}):M?u({sound:"busy"}):D?u({sound:"end"}):O?u({sound:"ringing"}):U&&u({sound:"connect"})}),[M,D,V,O,U,u,A]),(0,i.d4)((()=>{o?.id?_():v()}),[v,o?.id,_]);const x=(0,W.Z)();(0,Q.Z)((()=>{x()}),U?1e3:void 0);const L=(0,i.Ye)((()=>{const e=o?.state;return A?l("lng_call_status_hanging"):M?"busy":"requesting"===e?l("lng_call_status_requesting"):"requested"===e?l(a?"lng_call_status_ringing":"lng_call_status_incoming"):"waiting"===e?l("lng_call_status_waiting"):"active"===e&&U?void 0:l("lng_call_status_exchanging")}),[M,U,A,a,l,o?.state]),F="active"===o?.videoState,B="active"===o?.screencastState,H=(0,n.getStreams)(),q=H?.ownAudio?.getTracks()[0].enabled,z=H?.ownPresentation?.getTracks()[0].enabled,J=H?.ownVideo?.getTracks()[0].enabled,[X,ae,ne]=(0,S.Z)(),[ie,se,oe]=(0,S.Z)(),re=(0,i.I4)((()=>{z&&ae(),J&&se(),setTimeout((async()=>{await(0,n.toggleStreamP2p)("presentation"),ne(),oe()}),250)}),[z,J,ae,se,ne,oe]),ce=(0,i.I4)((()=>{J&&se(),z&&ae(),setTimeout((async()=>{await(0,n.toggleStreamP2p)("video"),ne(),oe()}),250)}),[z,J,ae,se,ne,oe]),le=(0,i.I4)((()=>{(0,n.toggleStreamP2p)("audio")}),[]),[de,pe,ue]=(0,S.Z)(),[me,ge,ve]=(0,S.Z)(),fe=(0,i.I4)((()=>{ge(),(0,n.switchCameraInputP2p)(),setTimeout(ve,250)}),[ge,ve]),Ce=o?.startDate&&Number(new Date)/1e3-o.startDate;return(0,i.d4)((()=>{"discarded"===o?.state&&setTimeout(d,250)}),[d,o?.reason,o?.state]),i.ZP.createElement(w.Z,{isOpen:o&&"discarded"!==o?.state&&!r,onClose:T,className:(0,P.Z)(te.root,g.wB&&te.singleColumn),dialogRef:f},i.ZP.createElement(j.Z,{user:t,size:"jumbo",className:F||B?te.blurred:"",withVideo:!0,noLoop:"requesting"!==o?.state,animationLevel:c}),"active"===o?.screencastState&&H?.presentation&&i.ZP.createElement("video",{className:te.mainVideo,muted:!0,autoPlay:!0,playsInline:!0,srcObject:H.presentation}),"active"===o?.videoState&&H?.video&&i.ZP.createElement("video",{className:te.mainVideo,muted:!0,autoPlay:!0,playsInline:!0,srcObject:H.video}),i.ZP.createElement("video",{className:(0,P.Z)(te.secondVideo,!X&&z&&te.visible,C&&te.fullscreen),muted:!0,autoPlay:!0,playsInline:!0,srcObject:H?.ownPresentation}),i.ZP.createElement("video",{className:(0,P.Z)(te.secondVideo,!ie&&J&&te.visible,C&&te.fullscreen),muted:!0,autoPlay:!0,playsInline:!0,srcObject:H?.ownVideo}),i.ZP.createElement("div",{className:te.header},g.t0&&i.ZP.createElement(b.Z,{round:!0,size:"smaller",color:"translucent",onClick:I,ariaLabel:l(C?"AccExitFullscreen":"AccSwitchToFullscreen")},i.ZP.createElement("i",{className:C?"icon-smallscreen":"icon-fullscreen"})),i.ZP.createElement(b.Z,{round:!0,size:"smaller",color:"translucent",onClick:T,className:te.closeButton},i.ZP.createElement("i",{className:"icon-close"}))),i.ZP.createElement("div",{className:(0,P.Z)(te.emojisBackdrop,de&&te.open),onClick:de?ue:pe},i.ZP.createElement("div",{className:(0,P.Z)(te.emojis,de&&te.open)},o?.isConnected&&o?.emojis&&(0,Y.Z)(o.emojis,["emoji"])),i.ZP.createElement("div",{className:(0,P.Z)(te.emojiTooltip,de&&te.open)},l("CallEmojiKeyTooltip",t?.firstName).replace("%%","%"))),i.ZP.createElement("div",{className:te.userInfo},i.ZP.createElement("h1",null,t?.firstName),i.ZP.createElement("span",{className:te.status},L||(0,K.k9)(Ce||0))),i.ZP.createElement("div",{className:te.buttons},i.ZP.createElement(ee,{onClick:le,icon:"microphone",isDisabled:!G,isActive:q,label:l(q?"lng_call_mute_audio":"lng_call_unmute_audio")}),i.ZP.createElement(ee,{onClick:ce,icon:"video",isDisabled:!G,isActive:J,label:l(J?"lng_call_stop_video":"lng_call_start_video")}),J&&(g.wZ||g.cj)&&i.ZP.createElement(ee,{onClick:fe,customIcon:i.ZP.createElement(N.Z,{tgsUrl:h.l.CameraFlip,playSegment:me?[0,10]:[0,1],size:32}),isDisabled:!G,label:l("VoipFlip")}),n.IS_SCREENSHARE_SUPPORTED&&i.ZP.createElement(ee,{onClick:re,icon:"share-screen",isDisabled:!G,isActive:z,label:l("lng_call_screencast")}),V&&i.ZP.createElement(ee,{onClick:p,icon:"phone-discard",isDisabled:D,label:l("lng_call_accept"),className:te.accept,iconClassName:te.acceptIcon}),i.ZP.createElement(ee,{onClick:$,icon:"phone-discard",isDisabled:D,label:l(V?"lng_call_decline":"lng_call_end_call"),className:te.leave})))})));var ne=a(97687);const ie=(0,i.X$)((e=>{let{isOpen:t}=e;const{closeCallRatingModal:a,setCallRating:n}=(0,s.Sv)(),o=(0,i.sO)(null),r=(0,E.Z)(),[c,l]=(0,i.eJ)(),d=(0,i.I4)((()=>{a()}),[a]);return i.ZP.createElement(w.Z,{title:r("lng_call_rate_label"),className:"narrow",onClose:a,isOpen:t},i.ZP.createElement("div",{className:"wLqZtZzJMOmPkr1Z7kT5"},new Array(5).fill(void 0).map(((e,t)=>{const a=void 0!==c&&c>=t;return i.ZP.createElement("i",{className:(0,P.Z)(a?"icon-favorite-filled":"icon-favorite",a&&"o_nOyYqj5URif5S86StK","OLQPS_OeztNYIaL15tdz"),onClick:(n=t,()=>l(c===n?void 0:n))});var n}))),i.ZP.createElement(ne.Z,{ref:o,placeholder:r("lng_call_rate_comment"),className:(0,P.Z)("ZToDNX6q1Yhf4aDPyuJF",4!==c&&void 0!==c&&"HdCq8jVctaJoit7bdgZd")}),i.ZP.createElement(b.Z,{className:"confirm-dialog-button",isText:!0,onClick:function(){c?n({rating:c+1,comment:o.current?.value||""}):a()}},r("Send")),i.ZP.createElement(b.Z,{className:"confirm-dialog-button",isText:!0,onClick:d},r("Cancel")))}))},73794:(e,t)=>{(()=>{"use strict";var e={"./src/blacksilence.ts":(e,t,a)=>{a.r(t),a.d(t,{silence:()=>n,black:()=>i});const n=e=>{const t=e.createOscillator(),a=t.connect(e.createMediaStreamDestination());return t.start(),new MediaStream([Object.assign(a.stream.getAudioTracks()[0],{enabled:!1})])},i=function(){let{width:e=640,height:t=480}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const a=Object.assign(document.createElement("canvas"),{width:e,height:t}),n=a.getContext("2d");if(!n)throw Error("Cannot create canvas ctx");n.fillRect(0,0,e,t);const i=a.captureStream();return new MediaStream([Object.assign(i.getVideoTracks()[0],{enabled:!1})])}},"./src/buildSdp.ts":(e,t,a)=>{a.r(t),a.d(t,{default:()=>i});var n=a("./src/utils.ts");const i=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const s=[],o=e=>{s.push(e)},{sessionId:r,ssrcs:c,audioExtensions:l,videoExtensions:d,audioPayloadTypes:p,videoPayloadTypes:u,transport:{ufrag:m,pwd:g,fingerprints:v,candidates:f}}=e;o("v=0"),o(`o=- ${r} 2 IN IP4 0.0.0.0`),o("s=-"),o("t=0 0"),o("a=ice-options:trickle"),o("a=msid-semantic:WMS *"),o(`a=group:BUNDLE ${c.map((e=>e.endpoint)).join(" ")}${a?"":" "+(i?"3":"2")}`),i||o("a=ice-lite");const C=e=>{if(e.sdpString)o(`a=${e.sdpString}`);else{let t="";t+="a=candidate:",t+=`${e.foundation} ${e.component} ${e.protocol} ${e.priority} ${e.ip} ${e.port} typ ${e.type}`,"rel-addr"in e&&(t+=` raddr ${e["rel-addr"]} rport ${e["rel-port"]}`),t+=` generation ${e.generation}`,o(t)}},h=()=>{o(`a=ice-ufrag:${m}`),o(`a=ice-pwd:${g}`),v.forEach((e=>{o(`a=fingerprint:${e.hash} ${e.fingerprint}`),o(`a=setup:${i?e.setup:"passive"}`)})),f.forEach(C)},P=e=>{const{channels:t,id:a,name:n,clockrate:i,parameters:s}=e;var r=t?`/${t}`:"";o(`a=rtpmap:${a} ${n}/${i}${r}`),s&&(r=Object.keys(s).map((e=>`${e}=${s[e]};`)).join(" "),o(`a=fmtp:${a} ${r}`)),e["rtcp-fbs"]?.forEach((e=>{o(`a=rtcp-fb:${a} ${e.type}${e.subtype?` ${e.subtype}`:""}`)}))};return e=e=>{const a=e.isVideo?u:p;var s=e.isVideo?"video":"audio";if(o(`m=${s} ${e.isMain?1:0} RTP/SAVPF ${a.map((e=>e.id)).join(" ")}`),o("c=IN IP4 0.0.0.0"),o("b=AS:1300"),o(`a=mid:${e.endpoint}`),o("a=rtcp-mux"),a.forEach(P),o("a=rtcp:1 IN IP4 0.0.0.0"),e.isVideo&&o("a=rtcp-rsize"),(e.isVideo?d:l).forEach((e=>{let{id:t,uri:a}=e;o(`a=extmap:${t} ${a}`)})),e.isRemoved)o("a=inactive");else{if(h(),i)o("a=sendrecv"),o("a=bundle-only");else{if(t)return void o("a=recvonly");e.isMain?o("a=sendrecv"):(o("a=sendonly"),o("a=bundle-only"))}e.sourceGroups.forEach((t=>{o(`a=ssrc-group:${t.semantics} ${t.sources.map(n.fromTelegramSource).join(" ")}`),t.sources.forEach((t=>{t=(0,n.fromTelegramSource)(t),o(`a=ssrc:${t} cname:${e.endpoint}`),o(`a=ssrc:${t} msid:${e.endpoint} ${e.endpoint}`),o(`a=ssrc:${t} mslabel:${e.endpoint}`),o(`a=ssrc:${t} label:${e.endpoint}`)}))}))}},i?c.filter(e):c.filter((e=>"0"===e.endpoint||"1"===e.endpoint)).map(e),a||(o("m=application 1 UDP/DTLS/SCTP webrtc-datachannel"),o("c=IN IP4 0.0.0.0"),h(),o("a=ice-options:trickle"),o("a=mid:"+(i?"3":a?"1":"2")),o("a=sctp-port:5000"),o("a=max-message-size:262144")),i||c.filter((e=>"0"!==e.endpoint&&"1"!==e.endpoint)).map(e),`${s.join("\n")}\n`}},"./src/p2p.ts":(e,t,a)=>{a.r(t),a.d(t,{getStreams:()=>function(){return r?.streams},switchCameraInputP2p:()=>async function(){if(r&&r.facingMode){const e=r.streams.ownVideo;if(e){const t=e.getTracks()[0];if(t){const e=r.connection.getSenders().find((e=>t.id===e.track?.id));if(e){r.facingMode="environment"===r.facingMode?"user":"environment";try{const t=await l("video",r.facingMode);await e.replaceTrack(t.getTracks()[0]),r.streams.ownVideo=t,c()}catch(e){}}}}}},toggleStreamP2p:()=>d,joinPhoneCall:()=>async function(e,t,a,s,o){const l=new RTCPeerConnection({iceServers:e.map((e=>({urls:[e.isTurn&&`turn:${e.ip}:${e.port}`,e.isStun&&`stun:${e.ip}:${e.port}`].filter(Boolean),username:e.username,credentialType:"password",credential:e.password}))),iceCandidatePoolSize:2}),p=(0,n.silence)(new AudioContext),u=(0,n.black)({width:640,height:480}),v=(0,n.black)({width:640,height:480});l.addTrack(p.getTracks()[0],p),l.addTrack(u.getTracks()[0],u),l.addTrack(v.getTracks()[0],v),l.onicecandidate=e=>{e.candidate&&t({"@type":"Candidates",candidates:[{sdpString:e.candidate.candidate}]})},l.onconnectionstatechange=()=>{o({"@type":"updatePhoneCallConnectionState",connectionState:l.connectionState})},l.ontrack=e=>{var t;r&&(t=e.streams[0],"audio"===e.track.kind?(r.audio.srcObject=t,r.audio.play().catch(),r.streams.audio=t):"1"===e.transceiver.mid?r.streams.video=t:r.streams.presentation=t,c())};const f=l.createDataChannel("data",{id:0,negotiated:!0});f.onmessage=e=>{g(JSON.parse(e.data))},e=new Audio,r={audio:e,connection:l,emitSignalingData:t,isOutgoing:a,candidates:[],onUpdate:o,streams:{ownVideo:u,ownAudio:p,ownPresentation:v},mediaState:{isBatteryLow:!1,screencastState:"inactive",videoState:"inactive",videoRotation:0,isMuted:!0},blackVideo:u,blackPresentation:v,silence:p,dataChannel:f};try{s&&d("video",!0),d("audio",!0)}catch(e){}a&&(a=await l.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0}),await l.setLocalDescription(a),m((0,i.default)(a,!0)))},stopPhoneCall:()=>function(){r&&(r.streams.ownVideo?.getTracks().forEach((e=>e.stop())),r.streams.ownPresentation?.getTracks().forEach((e=>e.stop())),r.streams.ownAudio?.getTracks().forEach((e=>e.stop())),r.dataChannel.close(),r.connection.close(),r=void 0)},processSignalingMessage:()=>g});var n=a("./src/blacksilence.ts"),i=a("./src/parseSdp.ts"),s=a("./src/utils.ts"),o=a("./src/buildSdp.ts");let r;function c(){r?.onUpdate({...r.mediaState,"@type":"updatePhoneCallMediaState"})}function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"user";return"presentation"===e?navigator.mediaDevices.getDisplayMedia({audio:!1,video:!0}):navigator.mediaDevices.getUserMedia({audio:"audio"===e&&{...s.IS_ECHO_CANCELLATION_SUPPORTED&&{echoCancellation:!0},...s.IS_NOISE_SUPPRESSION_SUPPORTED&&{noiseSuppression:!0}},video:"video"===e&&{facingMode:t}})}async function d(e,t){if(r){const a="audio"===e?r.streams.ownAudio:"video"===e?r.streams.ownVideo:r.streams.ownPresentation;if(a){const n=a.getTracks()[0];if(n){const a=r.connection.getSenders().find((e=>n.id===e.track?.id));if(a){t=void 0===t?!n.enabled:t;try{if(t&&!n.enabled){const t=await l(e);t.getTracks()[0].onended=()=>{d(e,!1)},await a.replaceTrack(t.getTracks()[0]),"audio"===e?r.streams.ownAudio=t:"video"===e?(r.streams.ownVideo=t,r.facingMode="user"):r.streams.ownPresentation=t,"video"!==e&&"presentation"!==e||d("video"===e?"presentation":"video",!1)}else if(!t&&n.enabled){n.stop();const t="audio"===e?r.silence:"video"===e?r.blackVideo:r.blackPresentation;if(!t)return;await a.replaceTrack(t.getTracks()[0]),"audio"===e?r.streams.ownAudio=t:"video"===e?r.streams.ownVideo=t:r.streams.ownPresentation=t}c(),p()}catch(e){}}}}}}function p(){if(r){const{emitSignalingData:e,streams:t}=r;e({"@type":"MediaState",videoRotation:0,isMuted:!t.ownAudio?.getTracks()[0].enabled,isBatteryLow:!0,videoState:t.ownVideo?.getTracks()[0].enabled?"active":"inactive",screencastState:t.ownPresentation?.getTracks()[0].enabled?"active":"inactive"})}}function u(e){if(!r||r.isOutgoing)return e;const t=e.payloadTypes;var a=t.findIndex((e=>"VP8"===e.name));const n=t[a];var i=t.findIndex((e=>Number(e.parameters?.apt)===n.id));return e.payloadTypes=[t[a],t[i]],e}function m(e){if(r){const t=r.emitSignalingData;e.ssrc&&e["ssrc-groups"]&&e["ssrc-groups"][0]&&e["ssrc-groups"][1]&&t({"@type":"InitialSetup",fingerprints:e.fingerprints,ufrag:e.ufrag,pwd:e.pwd,audio:{ssrc:(0,s.fromTelegramSource)(e.ssrc).toString(),ssrcGroups:[],payloadTypes:e.audioPayloadTypes,rtpExtensions:e.audioExtmap},video:u({ssrc:(0,s.fromTelegramSource)(e["ssrc-groups"][0].sources[0]).toString(),ssrcGroups:[{semantics:e["ssrc-groups"][0].semantics,ssrcs:e["ssrc-groups"][0].sources.map(s.fromTelegramSource)}],payloadTypes:e.videoPayloadTypes,rtpExtensions:e.videoExtmap}),screencast:u({ssrc:(0,s.fromTelegramSource)(e["ssrc-groups"][1].sources[0]).toString(),ssrcGroups:[{semantics:e["ssrc-groups"][1].semantics,ssrcs:e["ssrc-groups"][1].sources.map(s.fromTelegramSource)}],payloadTypes:e.screencastPayloadTypes,rtpExtensions:e.screencastExtmap})})}}async function g(e){if(r&&r.connection)switch(e["@type"]){case"MediaState":r.mediaState=e,c(),p();break;case"Candidates":var{candidates:t,gotInitialSetup:a}=r;if(!t)return;e.candidates.forEach((e=>{r.candidates.push(e.sdpString)})),a&&await Promise.all(r.candidates.map((e=>r.connection.addIceCandidate({candidate:e,sdpMLineIndex:0}))));break;case"InitialSetup":{const{connection:t,isOutgoing:n}=r;if(!t)return;if(a={transport:{candidates:[],ufrag:e.ufrag,pwd:e.pwd,fingerprints:e.fingerprints,"rtcp-mux":!1,xmlns:""},sessionId:Date.now(),ssrcs:[e.audio&&{isVideo:!1,isMain:!1,userId:"123",endpoint:"0",sourceGroups:[{semantics:"FID",sources:[e.audio.ssrc]}]},e.video&&{isVideo:!0,isPresentation:!1,isMain:!1,userId:"123",endpoint:"1",sourceGroups:e.video.ssrcGroups.map((e=>({semantics:e.semantics,sources:e.ssrcs})))},e.screencast&&{isVideo:!0,isPresentation:!0,isMain:!1,userId:"123",endpoint:"2",sourceGroups:e.screencast.ssrcGroups.map((e=>({semantics:e.semantics,sources:e.ssrcs})))}],audioPayloadTypes:e.audio.payloadTypes?.map(s.p2pPayloadTypeToConference)||[],audioExtensions:e.audio.rtpExtensions,videoPayloadTypes:u(e.video).payloadTypes?.map(s.p2pPayloadTypeToConference)||[],videoExtensions:e.video.rtpExtensions},await t.setRemoteDescription({sdp:(0,o.default)(a,n,void 0,!0),type:n?"answer":"offer"}),r.conference=a,!n){if(a=await t.createAnswer(),!a)return;await t.setLocalDescription(a),m((0,i.default)(a,!0))}r.gotInitialSetup=!0,await Promise.all(r.candidates.map((e=>t.addIceCandidate({candidate:e,sdpMLineIndex:0}))));break}}}},"./src/p2pMessage.ts":(e,t,a)=>{a.r(t)},"./src/parseSdp.ts":(e,t,a)=>{a.r(t),a.d(t,{default:()=>i});var n=a("./src/utils.ts");const i=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!e||!e.sdp)throw Error("Failed parsing SDP: session description is null");const a=e.sdp.split("\r\nm=").map(((e,t)=>0===t?e:`m=${e}`)).reduce(((e,t)=>{var a=t.match(/^m=(.+?)\s/)?.[1]||"header";return e[e.hasOwnProperty(a)&&"video"===a?"screencast":a]=t.split("\r\n").filter(Boolean),e}),{});var i=(e,t)=>t?a[t]?.find((t=>t.startsWith(e)))?.substr(e.length):Object.values(a).map((t=>t.find((t=>t.startsWith(e)))?.substr(e.length))).filter(Boolean)[0],s=e=>a[e].filter((e=>e.startsWith("a=extmap"))).map((e=>{var[,t,e]=e.match(/extmap:(\d+)(?:\/.+)?\s(.+)/);return{id:Number(t),uri:e}})),o=e=>{const t=a[e].filter((e=>e.startsWith("a=rtpmap"))).map((e=>{const[,t,a]=e.match(/:(\d+)\s(.+)/)||[];var[n,i,e]=a.split("/");return{id:Number(t),name:n,clockrate:Number(i),...e&&{channels:Number(e)}}})),n=a[e].filter((e=>e.startsWith("a=rtcp-fb"))).map((e=>{const[,t,a]=e.match(/:(\d+)\s(.+)/)||[];var[n,e]=a.split(" ");return{id:Number(t),type:n,subtype:e||""}})),i=a[e].filter((e=>e.startsWith("a=fmtp"))).map((e=>{const[,t,a]=e.match(/:(\d+)\s(.+)/)||[];if(e=a.split(";").reduce(((e,t)=>{var[a,t]=t.split("=");return e[a]=t,e}),{}),!Object.values(e).some((e=>!e)))return{id:Number(t),data:e}})).filter(Boolean);return t.map((e=>{var t=i.filter((t=>t.id===e.id)).map((e=>e.data)).reduce(((e,t)=>Object.assign(e,t)),{}),a=n.filter((t=>t.id===e.id)).map((e=>({type:e.type,subtype:e.subtype})));return{...e,...0<Object.keys(t).length&&{parameters:t},...0<a.length&&{feedbackTypes:a}}}))};const r=i("a=ssrc:","audio");var c=r&&Number(r.split(" ")[0]);const l=i("a=ssrc-group:","video")?.split(" ")||void 0,d=i("a=ssrc-group:","screencast")?.split(" ")||void 0;if(!l)throw Error("Failed parsing SDP: no video ssrc");var[p,u]=i("a=fingerprint:")?.split(" ")||[],m=i("a=setup:");if(!p||!u)throw Error("Failed parsing SDP: no fingerprint");if(console.log(a),e=i("a=ice-ufrag:"),i=i("a=ice-pwd:"),!e||!i)throw Error("Failed parsing SDP: no ICE ufrag or pwd");return{fingerprints:[{fingerprint:u,hash:p,setup:t?m:"active"}],pwd:i,ufrag:e,...c&&{ssrc:(0,n.toTelegramSource)(c)},...l&&{"ssrc-groups":[{semantics:l[0],sources:l.slice(1,l.length).map(Number).map(n.toTelegramSource)},t&&d&&{semantics:d[0],sources:d.slice(1,d.length).map(Number).map(n.toTelegramSource)}].filter(Boolean)},...t&&{audioExtmap:s("audio"),videoExtmap:s("video"),screencastExtmap:s("screencast"),audioPayloadTypes:o("audio"),videoPayloadTypes:o("video"),screencastPayloadTypes:o("screencast")}}}},"./src/secretsauce.ts":(e,t,a)=>{a.r(t),a.d(t,{getDevices:()=>async function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return(await navigator.mediaDevices.enumerateDevices()).filter((a=>a.kind===`${e}${t?"input":"output"}`))},toggleSpeaker:()=>function(){r&&(r.isSpeakerDisabled=!r.isSpeakerDisabled,r?.onUpdate?.({"@type":"updateGroupCallConnectionState",connectionState:"connected",isSpeakerDisabled:r.isSpeakerDisabled}),r.participantFunctions&&Object.values(r.participantFunctions).forEach((e=>{e.toggleMute?.(!!r?.isSpeakerDisabled)})))},toggleNoiseSuppression:()=>function(){if(r&&r.myId&&r.streams){const a=r.streams[r.myId].audio;if(a){const n=a.getTracks()[0];var e,t;n&&(({echoCancellation:e,noiseSuppression:t}=n.getConstraints()),n.applyConstraints({echoCancellation:!e,noiseSuppression:!t}))}}},getUserStreams:()=>l,setVolume:()=>function(e,t){const a=r?.participantFunctions?.[e];a&&a.setVolume?.(t)},isStreamEnabled:()=>d,switchCameraInput:()=>async function(){if(r?.myId&&r.connection&&r.streams&&r.facingMode){const e=l(r.myId)?.video;if(e){const t=e.getTracks()[0];if(t){const e=r.connection.getSenders().find((e=>t.id===e.track?.id));if(e){r.facingMode="environment"===r.facingMode?"user":"environment";try{const t=await u("video",r.facingMode);await e.replaceTrack(t.getTracks()[0]),r.streams[r.myId].video=t}catch(e){}}}}}},toggleStream:()=>m,leaveGroupCall:()=>v,handleUpdateGroupCallParticipants:()=>async function(e){if(r){const{participants:n,conference:s,connection:o,myId:c}=r;if(n&&s&&o&&s.ssrcs&&s.transport&&c)if(e.find((e=>e.isSelf&&e.source!==r?.conference?.ssrcs?.find((e=>e.isMain&&!e.isVideo))?.sourceGroups[0].sources[0])))v();else{const n=[];if(e.forEach((e=>{if(e.isSelf)e.isMuted&&!e.canSelfUnmute&&(m("audio",!1),m("video",!1),m("presentation",!1));else{var t=e.isLeft;const a=e.isMuted||e.isMutedByMe,i=!e.isVideoJoined||!e.video||t,o=!e.presentation||t;let r=!1,c=!1,l=!1;s.ssrcs.filter((t=>t.userId===e.id)).forEach((t=>{t.isVideo||(t.sourceGroups[0].sources[0]===e.source&&(c=!0),t.isRemoved=a),t.isVideo&&(t.isPresentation||(e.video&&t.endpoint===e.video.endpoint&&(r=!0),t.isRemoved=i),t.isPresentation&&(e.presentation&&t.endpoint===e.presentation.endpoint&&(l=!0),t.isRemoved=o))})),a||c||s.ssrcs.push({userId:e.id,isMain:!1,endpoint:`audio${e.source}`,isVideo:!1,sourceGroups:[{semantics:"FID",sources:[e.source]}]}),i||r||!e.video||(n.push(e.video.endpoint),s.ssrcs.push({userId:e.id,isMain:!1,endpoint:e.video.endpoint,isVideo:!0,sourceGroups:e.video.sourceGroups})),o||l||!e.presentation||s.ssrcs.push({isPresentation:!0,userId:e.id,isMain:!1,endpoint:e.presentation.endpoint,isVideo:!0,sourceGroups:e.presentation.sourceGroups})}})),r.updatingParticipantsQueue)r.updatingParticipantsQueue.push(s);else{r.updatingParticipantsQueue=[],e=(0,i.default)(s),await o.setRemoteDescription({type:"offer",sdp:e});try{var t=await o.createAnswer();if(await o.setLocalDescription(t),p(c),0<r.updatingParticipantsQueue.length)for(const e of r.updatingParticipantsQueue){await o.setRemoteDescription({type:"offer",sdp:(0,i.default)(e)});var a=await o.createAnswer();await o.setLocalDescription(a),p(c)}r.updatingParticipantsQueue=void 0}catch(e){console.error(e)}}}}},handleUpdateGroupCallConnection:()=>async function(e,t){if(r){var a=t?r.screenshareConference:r.conference;const s=t?r.screenshareConnection:r.connection;if(a&&s&&a.ssrcs){var n=Date.now();e={...a,transport:e.transport,sessionId:n,audioExtensions:e.audio?.["rtp-hdrexts"],audioPayloadTypes:e.audio?.["payload-types"],videoExtensions:e.video?.["rtp-hdrexts"],videoPayloadTypes:e.video?.["payload-types"]},r={...r,...t?{screenshareConference:e}:{conference:e}};try{await s.setRemoteDescription({type:"answer",sdp:(0,i.default)(e,!0,t)})}catch(e){console.error(e)}}}},startSharingScreen:()=>async function(){if(r)try{const e=await u("presentation");return e?(e.getTracks()[0].onended=()=>{r&&r.myId&&(r.streams?.[r.myId].presentation,p(r.myId),c())},new Promise((t=>{var{connection:a,dataChannel:t}=h([e],t,!0);r={...r,screenshareConnection:a,screenshareDataChannel:t}}))):void 0}catch(e){return}},joinGroupCall:()=>function(e,t,a,n){if(r)throw Error("Already in call");g("connecting");var i=new MediaStream;return a.srcObject=i,a.play().catch((e=>console.warn(e))),r={onUpdate:n,participants:[],myId:e,speaking:{},silence:(0,s.silence)(t),black:(0,s.black)({width:640,height:480}),analyserInterval:setInterval(f,1e3),audioElement:a,audioContext:t,mediaStream:i},new Promise((e=>{r={...r,...h([r.silence,r.black],e)}}))}});var n=a("./src/parseSdp.ts"),i=a("./src/buildSdp.ts"),s=a("./src/blacksilence.ts"),o=a("./src/utils.ts");let r;function c(e){r&&(r.screenshareDataChannel?.close(),r.screenshareConnection?.close(),e||r.onUpdate?.({"@type":"updateGroupCallLeavePresentation"}))}function l(e){return r?.streams?.[e]}function d(e,t){const a=(t=t||r?.myId)&&l(t)?.[e];return!!a&&a.getTracks()[0]?.enabled}function p(e){r?.onUpdate?.({"@type":"updateGroupCallStreams",userId:e,hasAudioStream:d("audio",e),hasVideoStream:d("video",e),hasPresentationStream:d("presentation",e),amplitude:r.speaking?.[e]})}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"user";return"presentation"===e?navigator.mediaDevices.getDisplayMedia({audio:!1,video:!0}):navigator.mediaDevices.getUserMedia({audio:"audio"===e&&{...o.IS_ECHO_CANCELLATION_SUPPORTED&&{echoCancellation:!0},...o.IS_NOISE_SUPPRESSION_SUPPORTED&&{noiseSuppression:!0}},video:"video"===e&&{facingMode:t}})}async function m(e,t){if(r&&r.myId&&r.connection&&r.streams){const a=l(r.myId)?.[e];if(a){const n=a.getTracks()[0];if(n){const a=[...r.connection.getSenders(),...r.screenshareConnection?.getSenders()||[]].find((e=>n.id===e.track?.id));if(a){t=void 0===t?!n.enabled:t;try{if(t&&!n.enabled){const t=await u(e);if(await a.replaceTrack(t.getTracks()[0]),r.streams[r.myId][e]=t,"video"===e)r.facingMode="user";else if("audio"===e){const e=r.audioContext;if(!e)return;const a=e.createMediaStreamSource(t),n=e.createAnalyser();n.minDecibels=-100,n.maxDecibels=-30,n.smoothingTimeConstant=.05,n.fftSize=1024,a.connect(n),r={...r,participantFunctions:{...r.participantFunctions,[r.myId]:{...r.participantFunctions?.[r.myId],getCurrentAmplitude:()=>{var e=new Uint8Array(n.frequencyBinCount);return n.getByteFrequencyData(e),(0,o.getAmplitude)(e,1.5)}}}}}}else if(!t&&n.enabled){n.stop();const t="audio"===e?r.silence:r.black;if(!t)return;await a.replaceTrack(t.getTracks()[0]),r.streams[r.myId][e]=t,"video"===e&&(r.facingMode=void 0)}p(r.myId),"presentation"!==e||t||c(!0)}catch(e){}}}}}}function g(e){r?.onUpdate?.({"@type":"updateGroupCallConnectionState",connectionState:e})}function v(){r&&(r.myId&&r.streams?.[r.myId]&&Object.values(r.streams[r.myId]||{}).forEach((e=>{e?.getTracks().forEach((e=>{e.stop()}))})),c(!0),r.dataChannel?.close(),r.connection?.close(),g("disconnected"),r.analyserInterval&&clearInterval(r.analyserInterval),r=void 0)}function f(){r&&r.participantFunctions&&Object.keys(r.participantFunctions).forEach((e=>{const t=r.participantFunctions[Number(e)].getCurrentAmplitude;var a,n;t&&(a=t(),n=r.speaking[e]||0,((r.speaking[e]=a)>o.THRESHOLD&&n<=o.THRESHOLD||a<=o.THRESHOLD&&n>o.THRESHOLD)&&p(e))}))}function C(e){if(r&&r.audioElement&&r.audioContext&&r.mediaStream){var t=r.conference?.ssrcs?.find((t=>t.endpoint===e.track.id));if(t&&t.userId){const{userId:n,isPresentation:i}=t;var a=r.participants?.find((e=>e.id===n));const s="video"===e.track.kind?i?"presentation":"video":"audio";if(e.track.onended=()=>{r?.streams?.[n][s],p(n)},t=e.streams[0],"audio"===e.track.kind){const e=r.mediaStream,i=new window.AudioContext,s=i.createMediaStreamSource(t),c=i.createGain();c.gain.value=(a?.volume||1e4)/1e4;const l=i.createGain();c.gain.value=1;const d=i.createAnalyser();d.minDecibels=-100,d.maxDecibels=-30,d.smoothingTimeConstant=.05,d.fftSize=1024,s.connect(d).connect(l).connect(c).connect(i.destination),e.addTrack(s.mediaStream.getAudioTracks()[0]);const p=new Audio;p.srcObject=t,p.muted=!0,p.remove(),r={...r,participantFunctions:{...r.participantFunctions,[n]:{...r.participantFunctions?.[n],setVolume:e=>{c.gain.value=1<e?2*e:e},toggleMute:e=>{l.gain.value=e?0:1},getCurrentAmplitude:()=>{var e=new Uint8Array(d.frequencyBinCount);return d.getByteFrequencyData(e),(0,o.getAmplitude)(e,1.5)}}}}}r={...r,streams:{...r.streams,[n]:{...r.streams?.[n],[s]:t}}},p(n)}}}function h(e,t){let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const i=new RTCPeerConnection;var s=a?void 0:function(e){const t=e.createDataChannel("data",{id:0});return t.onopen=()=>{},t.onmessage=e=>{JSON.parse(e.data).colibriClass},t.onerror=e=>{console.log("%conerror","background: green; font-size: 5em"),console.error(e)},t}(i);return e.forEach((e=>e.getTracks().forEach((t=>{i.addTrack(t,e)})))),a||(i.oniceconnectionstatechange=()=>{var e=i.iceConnectionState;"connected"===e||"completed"===e?g("connected"):"checking"===e||"new"===e?g("connecting"):"disconnected"===i.iceConnectionState&&g("reconnecting")}),i.ontrack=C,i.onnegotiationneeded=async()=>{if(r){var s=r.myId;if(s){var o=await i.createOffer({offerToReceiveVideo:!0,offerToReceiveAudio:!a});if(await i.setLocalDescription(o),o.sdp){var c=(0,n.default)(o),l=a?void 0:{userId:"",sourceGroups:[{semantics:"FID",sources:[c.ssrc||0]}],isRemoved:a,isMain:!0,isVideo:!1,isPresentation:a,endpoint:a?"1":"0"},d=c["ssrc-groups"]&&{isPresentation:a,userId:"",sourceGroups:c["ssrc-groups"],isMain:!0,isVideo:!0,endpoint:a?"0":"1"};o=a?r.screenshareConference:r.conference;const i=[];a?(d&&i.push(d),l&&i.push(l)):(l&&i.push(l),d&&i.push(d)),l=e.find((e=>"audio"===e.getTracks()[0].kind)),d=e.find((e=>"video"===e.getTracks()[0].kind)),r={...r,...a?{screenshareConference:{...o,ssrcs:i}}:{conference:{...o,ssrcs:i}},streams:{...r.streams,[s]:{...r.streams?.[s],...l&&{audio:l},...!a&&d?{video:d}:{presentation:d}}}},p(s),t(c)}}}},{connection:i,dataChannel:s}}},"./src/types.ts":(e,t,a)=>{a.r(t)},"./src/utils.ts":(e,t,a)=>{a.r(t),a.d(t,{toTelegramSource:()=>function(e){return e<<0},fromTelegramSource:()=>function(e){return e>>>0},getAmplitude:()=>function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;if(!e)return 0;var a=e.length;let n=0;for(let t=0;t<a;t++)n+=e[t]*e[t];var i=Math.sqrt(n/a)/255;return Math.min(1,i*t)},p2pPayloadTypeToConference:()=>function(e){return{id:e.id,name:e.name,"rtcp-fbs":e.feedbackTypes,clockrate:e.clockrate,parameters:e.parameters,channels:e.channels}},THRESHOLD:()=>n,IS_SCREENSHARE_SUPPORTED:()=>i,IS_ECHO_CANCELLATION_SUPPORTED:()=>s,IS_NOISE_SUPPRESSION_SUPPORTED:()=>o});const n=.1,i="getDisplayMedia"in(navigator?.mediaDevices||{}),s=navigator?.mediaDevices?.getSupportedConstraints().echoCancellation,o=navigator?.mediaDevices?.getSupportedConstraints().noiseSuppression}},a={};function n(t){var i=a[t];return void 0!==i||(i=a[t]={exports:{}},e[t](i,i.exports,n)),i.exports}n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};(()=>{n.r(i),n.d(i,{handleUpdateGroupCallConnection:()=>e.handleUpdateGroupCallConnection,startSharingScreen:()=>e.startSharingScreen,joinGroupCall:()=>e.joinGroupCall,getDevices:()=>e.getDevices,getUserStreams:()=>e.getUserStreams,setVolume:()=>e.setVolume,isStreamEnabled:()=>e.isStreamEnabled,toggleStream:()=>e.toggleStream,leaveGroupCall:()=>e.leaveGroupCall,handleUpdateGroupCallParticipants:()=>e.handleUpdateGroupCallParticipants,switchCameraInput:()=>e.switchCameraInput,toggleSpeaker:()=>e.toggleSpeaker,toggleNoiseSuppression:()=>e.toggleNoiseSuppression,joinPhoneCall:()=>t.joinPhoneCall,processSignalingMessage:()=>t.processSignalingMessage,getStreams:()=>t.getStreams,toggleStreamP2p:()=>t.toggleStreamP2p,stopPhoneCall:()=>t.stopPhoneCall,switchCameraInputP2p:()=>t.switchCameraInputP2p,IS_SCREENSHARE_SUPPORTED:()=>a.IS_SCREENSHARE_SUPPORTED,THRESHOLD:()=>a.THRESHOLD});var e=n("./src/secretsauce.ts"),t=n("./src/p2p.ts"),a=(n("./src/p2pMessage.ts"),n("./src/utils.ts"));n("./src/types.ts")})();var s,o=t;for(s in i)o[s]=i[s];i.__esModule&&Object.defineProperty(o,"__esModule",{value:!0})})()}}]);
//# sourceMappingURL=9954.fdd9d4999d7dae11a58a.js.map