2 lines
65 KiB
JavaScript
2 lines
65 KiB
JavaScript
"use strict";(self.webpackChunktelegram_t=self.webpackChunktelegram_t||[]).push([[9954],{91610:(e,t,a)=>{a.r(t),a.d(t,{ActiveCallHeader:()=>Je,GroupCall:()=>ze,PhoneCall:()=>tt,RatePhoneCallModal:()=>nt});var n=a(601),i=a(88422),o=a(60748),s=a(33555);function r(e){return e<<0}function c(e){return e>>>0}function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;if(!e)return 0;const{length:a}=e;let n=0;for(let t=0;t<a;t++)n+=e[t]*e[t];const i=Math.sqrt(n/a)/255;return Math.min(1,i*t)}function d(e){return{id:e.id,name:e.name,"rtcp-fbs":e.feedbackTypes,clockrate:e.clockrate,parameters:e.parameters,channels:e.channels}}const u=.1,p="getDisplayMedia"in(navigator?.mediaDevices||{}),m=navigator?.mediaDevices?.getSupportedConstraints().echoCancellation,g=navigator?.mediaDevices?.getSupportedConstraints().noiseSuppression,f=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)=>{const a=t.match(/^m=(.+?)\s/)?.[1]||"header";return e[e.hasOwnProperty(a)&&"video"===a?"screencast":a]=t.split("\r\n").filter(Boolean),e}),{}),n=(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],i=e=>a[e].filter((e=>e.startsWith("a=extmap"))).map((e=>{const[,t,a]=e.match(/extmap:(\d+)(?:\/.+)?\s(.+)/);return{id:Number(t),uri:a}})),o=e=>{const t=a[e].filter((e=>e.startsWith("a=rtpmap"))).map((e=>{const[,t,a]=e.match(/:(\d+)\s(.+)/)||[],[n,i,o]=a.split("/");return{id:Number(t),name:n,clockrate:Number(i),...o&&{channels:Number(o)}}})),n=a[e].filter((e=>e.startsWith("a=rtcp-fb"))).map((e=>{const[,t,a]=e.match(/:(\d+)\s(.+)/)||[],[n,i]=a.split(" ");return{id:Number(t),type:n,subtype:i||""}})),i=a[e].filter((e=>e.startsWith("a=fmtp"))).map((e=>{const[,t,a]=e.match(/:(\d+)\s(.+)/)||[],n=a.split(";").reduce(((e,t)=>{const[a,n]=t.split("=");return e[a]=n,e}),{});if(!Object.values(n).some((e=>!e)))return{id:Number(t),data:n}})).filter(Boolean);return t.map((e=>{const 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,...Object.keys(t).length>0&&{parameters:t},...a.length>0&&{feedbackTypes:a}}}))},s=n("a=ssrc:","audio"),c=s&&Number(s.split(" ")[0]),l=n("a=ssrc-group:","video")?.split(" ")||void 0,d=n("a=ssrc-group:","screencast")?.split(" ")||void 0;if(!l)throw Error("Failed parsing SDP: no video ssrc");const[u,p]=n("a=fingerprint:")?.split(" ")||[],m=n("a=setup:");if(!u||!p)throw Error("Failed parsing SDP: no fingerprint");console.log(a);const g=n("a=ice-ufrag:"),f=n("a=ice-pwd:");if(!g||!f)throw Error("Failed parsing SDP: no ICE ufrag or pwd");return{fingerprints:[{fingerprint:p,hash:u,setup:t?m:"active"}],pwd:f,ufrag:g,...c&&{ssrc:r(c)},...l&&{"ssrc-groups":[{semantics:l[0],sources:l.slice(1,l.length).map(Number).map(r)},t&&d&&{semantics:d[0],sources:d.slice(1,d.length).map(Number).map(r)}].filter(Boolean)},...t&&{audioExtmap:i("audio"),videoExtmap:i("video"),screencastExtmap:i("screencast"),audioPayloadTypes:o("audio"),videoPayloadTypes:o("video"),screencastPayloadTypes:o("screencast")}}},v=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const i=[],o=e=>{i.push(e)},{sessionId:s,ssrcs:r,audioExtensions:l,videoExtensions:d,audioPayloadTypes:u,videoPayloadTypes:p,transport:{ufrag:m,pwd:g,fingerprints:f,candidates:v}}=e;o("v=0"),o(`o=- ${s} 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 ${r.map((e=>e.mid)).join(" ")}${a?"":" "+(n?"3":"2")}`),n||o("a=ice-lite");const h=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)}},C=()=>{o(`a=ice-ufrag:${m}`),o(`a=ice-pwd:${g}`),f.forEach((e=>{o(`a=fingerprint:${e.hash} ${e.fingerprint}`),o(`a=setup:${n?e.setup:"passive"}`)})),v.forEach(h)},Z=e=>{const{channels:t,id:a,name:n,clockrate:i,parameters:s}=e;if(o(`a=rtpmap:${a} ${n}/${i}${t?`/${t}`:""}`),s){const e=Object.keys(s).map((e=>`${e}=${s[e]};`)).join(" ");o(`a=fmtp:${a} ${e}`)}e["rtcp-fbs"]?.forEach((e=>{o(`a=rtcp-fb:${a} ${e.type}${e.subtype?` ${e.subtype}`:""}`)}))},y=e=>{const a=e.isVideo?p:u,i=e.isVideo?"video":"audio";if(o(`m=${i} ${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.mid}`),o("a=rtcp-mux"),a.forEach(Z),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(C(),n)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(c).join(" ")}`),t.sources.forEach((t=>{const a=c(t);o(`a=ssrc:${a} cname:${e.endpoint}`),o(`a=ssrc:${a} msid:${e.endpoint} ${e.endpoint}`),o(`a=ssrc:${a} mslabel:${e.endpoint}`),o(`a=ssrc:${a} label:${e.endpoint}`)}))}))}};return n?r.filter(y):r.filter((e=>"0"===e.mid||"1"===e.mid)).map(y),a||(o("m=application 1 UDP/DTLS/SCTP webrtc-datachannel"),o("c=IN IP4 0.0.0.0"),C(),o("a=ice-options:trickle"),o("a=mid:"+(n?"3":a?"1":"2")),o("a=sctp-port:5000"),o("a=max-message-size:262144")),n||r.filter((e=>"0"!==e.mid&&"1"!==e.mid)).map(y),`${i.join("\n")}\n`},h=e=>{const t=e.createOscillator(),a=t.connect(e.createMediaStreamDestination());return t.start(),new MediaStream([Object.assign(a.stream.getAudioTracks()[0],{enabled:!1})])},C=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})])};var Z=a(46586),y=a(74753);let P,b;function w(e){P&&(P.screenshareDataChannel?.close(),P.screenshareConnection?.close(),e||P.onUpdate?.({"@type":"updateGroupCallLeavePresentation"}))}function E(e){return P?.streams?.[e]}function S(e,t){const a=P?.participantFunctions?.[e];a&&a.setVolume?.(t)}function k(e,t){const a=t||P?.myId,n=a&&E(a)?.[e];return!!n&&n.getTracks()[0]?.enabled}function I(e){P?.onUpdate?.({"@type":"updateGroupCallStreams",userId:e,hasAudioStream:k("audio",e),hasVideoStream:k("video",e),hasPresentationStream:k("presentation",e),amplitude:P.speaking?.[e]})}async function N(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"user";if("audio"===e&&P?.audioStream)return P.audioStream;if("presentation"===e)return navigator.mediaDevices.getDisplayMedia({audio:!1,video:!0});const a=await navigator.mediaDevices.getUserMedia({audio:"audio"===e&&{...m&&{echoCancellation:!0},...g&&{noiseSuppression:!0}},video:"video"===e&&{facingMode:t}});if(P&&"audio"===e&&(P.audioStream=a),"video"===e){const e=document.createElement("video");e.srcObject=a;const t=new Z.Z;e.oncanplay=()=>t.resolve(),await t.promise}return a}async function T(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if(!(P&&P.myId&&P.connection&&P.streams))return;const a=E(P.myId)?.[e];if(!a)return;const n=a.getTracks()[0];if(!n)return;const i=[...P.connection.getSenders(),...P.screenshareConnection?.getSenders()||[]].find((e=>n.id===e.track?.id));if(i){t=void 0===t?!n.enabled:t;try{if(t&&!n.enabled){const t=await N(e);if(await i.replaceTrack(t.getTracks()[0]),P.streams[P.myId][e]=t,"video"===e)P.facingMode="user";else if("audio"===e){const{audioContext:e}=P;if(!e)return;const a=P.audioSource||e.createMediaStreamSource(t),n=P.audioAnalyser||e.createAnalyser();n.minDecibels=-100,n.maxDecibels=-30,n.smoothingTimeConstant=.05,n.fftSize=1024,a.connect(n),P={...P,audioSource:a,audioAnalyser:n,participantFunctions:{...P.participantFunctions,[P.myId]:{...P.participantFunctions?.[P.myId],getCurrentAmplitude:()=>{const e=new Uint8Array(n.frequencyBinCount);return n.getByteFrequencyData(e),l(e,1.5)}}}}}}else if(!t&&n.enabled){const t="audio"===e?P.silence:P.black;if(!t)return;await i.replaceTrack(t.getTracks()[0]),P.streams[P.myId][e]=t,"video"===e&&(P.facingMode=void 0),"audio"!==e?n.stop():(P.audioSource?.disconnect(),P.audioAnalyser?.disconnect())}I(P.myId),"presentation"!==e||t||w(!0)}catch(e){}}}function M(e){P?.onUpdate?.({"@type":"updateGroupCallConnectionState",connectionState:e})}function V(){P&&(P.myId&&P.streams?.[P.myId]&&Object.values(P.streams[P.myId]||{}).forEach((e=>{e?.getTracks().forEach((e=>{e.stop()}))})),P.audioStream?.getTracks().forEach((e=>{e.stop()})),w(!0),P.dataChannel?.close(),P.connection?.close(),M("disconnected"),P.analyserInterval&&clearInterval(P.analyserInterval),P=void 0)}function O(){P&&P.participantFunctions&&Object.keys(P.participantFunctions).forEach((e=>{const{getCurrentAmplitude:t}=P.participantFunctions[Number(e)];if(t){const a=t(),n=P.speaking[e]||0;P.speaking[e]=a,(a>u&&n<=u||a<=u&&n>u)&&I(e)}}))}function G(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}async function R(e){if(!P)return;const{participants:t,conference:a,connection:n,myId:i}=P;if(!(t&&a&&n&&a.ssrcs&&a.transport&&i))return;if(e.find((e=>e.isSelf&&e.source!==P?.conference?.ssrcs?.find((e=>e.isMain&&!e.isVideo))?.sourceGroups[0].sources[0])))return void V();const o=[];if(e.forEach((e=>{if(e.isSelf)return void(e.isMuted&&!e.canSelfUnmute&&(T("audio",!1),T("video",!1),T("presentation",!1)));const{isLeft:t}=e,n=e.isMuted||e.isMutedByMe,i=!e.isVideoJoined||!e.video||t,s=!e.presentation||t;let r=!1,c=!1,l=!1;a.ssrcs.filter((t=>t.userId===e.id)).forEach((t=>{t.isVideo||(t.sourceGroups[0].sources[0]===e.source&&(c=!0),t.isRemoved=n),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=s))})),n||c||(P.lastMid=P.lastMid+1,a.ssrcs.push({userId:e.id,isMain:!1,endpoint:`audio${e.source}`,isVideo:!1,sourceGroups:[{semantics:"FID",sources:[e.source]}],mid:P.lastMid.toString()})),i||r||!e.video||(P.lastMid=P.lastMid+1,o.push(e.video.endpoint),a.ssrcs.push({userId:e.id,isMain:!1,endpoint:e.video.endpoint,isVideo:!0,sourceGroups:e.video.sourceGroups,mid:P.lastMid.toString()})),s||l||!e.presentation||(P.lastMid=P.lastMid+1,a.ssrcs.push({isPresentation:!0,userId:e.id,isMain:!1,endpoint:e.presentation.endpoint,isVideo:!0,sourceGroups:e.presentation.sourceGroups,mid:P.lastMid.toString()}))})),P.updatingParticipantsQueue)return void P.updatingParticipantsQueue.push(a);P.updatingParticipantsQueue=[];const s=v(a);await n.setRemoteDescription({type:"offer",sdp:s});try{const e=await n.createAnswer();if(await n.setLocalDescription(e),I(i),P.updatingParticipantsQueue.length>0)for(const e of P.updatingParticipantsQueue){await n.setRemoteDescription({type:"offer",sdp:v(e)});const t=await n.createAnswer();await n.setLocalDescription(t),I(i)}P.updatingParticipantsQueue=void 0}catch(e){console.error(e)}}function x(e){if(!(P&&P.audioElement&&P.audioContext&&P.mediaStream))return;const t=P.conference?.ssrcs?.find((t=>t.endpoint===e.track.id));if(!t||!t.userId)return;const{userId:a,isPresentation:n}=t,i=P.participants?.find((e=>e.id===a)),o="video"===e.track.kind?n?"presentation":"video":"audio";e.track.onended=()=>{delete P?.streams?.[a][o],I(a)};const s=e.streams[0];if("audio"===e.track.kind){const{mediaStream:e}=P,t=new window.AudioContext,n=t.createMediaStreamSource(s),o=t.createGain();o.gain.value=(i?.volume||1e4)/1e4;const r=t.createGain();o.gain.value=1;const c=t.createAnalyser();c.minDecibels=-100,c.maxDecibels=-30,c.smoothingTimeConstant=.05,c.fftSize=1024,n.connect(c).connect(r).connect(o).connect(t.destination),e.addTrack(n.mediaStream.getAudioTracks()[0]);const d=new Audio;d.srcObject=s,d.muted=!0,d.remove(),P={...P,participantFunctions:{...P.participantFunctions,[a]:{...P.participantFunctions?.[a],setVolume:e=>{o.gain.value=e>1?2*e:e},toggleMute:e=>{r.gain.value=e?0:1},getCurrentAmplitude:()=>{const e=new Uint8Array(c.frequencyBinCount);return c.getByteFrequencyData(e),l(e,1.5)}}}}}P={...P,streams:{...P.streams,[a]:{...P.streams?.[a],[o]:s}}},I(a)}function _(e,t){let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const n=new RTCPeerConnection,i=a?void 0:G(n);return e.forEach((e=>e.getTracks().forEach((t=>{n.addTrack(t,e)})))),a||(n.oniceconnectionstatechange=()=>{const e=n.iceConnectionState;console.log("iceconnectionstatechange",e),"connected"===e||"completed"===e?M("connected"):"checking"===e||"new"===e?M("connecting"):"disconnected"===n.iceConnectionState&&M("reconnecting")}),n.onconnectionstatechange=()=>{console.log("connectionstatechange",n.connectionState)},n.ontrack=x,n.onnegotiationneeded=async()=>{if(!P)return;console.log("onnegotiationneeded");const{myId:i}=P;if(!i)return;const o=await n.createOffer({offerToReceiveVideo:!0,offerToReceiveAudio:!a});if(console.log("offer created"),await n.setLocalDescription(o),console.log("local desc set"),!o.sdp)return;const s=f(o),r=a?void 0:{userId:"",sourceGroups:[{semantics:"FID",sources:[s.ssrc||0]}],isRemoved:a,isMain:!0,isVideo:!1,isPresentation:a,endpoint:a?"1":"0",mid:a?"1":"0"},c=s["ssrc-groups"]&&{isPresentation:a,userId:"",sourceGroups:s["ssrc-groups"],isMain:!0,isVideo:!0,endpoint:a?"0":"1",mid:a?"0":"1"},l=a?P.screenshareConference:P.conference,d=[];a?(c&&d.push(c),r&&d.push(r)):(r&&d.push(r),c&&d.push(c));const u=e.find((e=>"audio"===e.getTracks()[0].kind)),p=e.find((e=>"video"===e.getTracks()[0].kind));P={...P,...a?{screenshareConference:{...l,ssrcs:d}}:{conference:{...l,ssrcs:d}},streams:{...P.streams,[i]:{...P.streams?.[i],...u&&{audio:u},...!a&&p?{video:p}:{presentation:p}}}},I(i),t(s)},{connection:n,dataChannel:i}}function A(){b?.onUpdate({...b.mediaState,"@type":"updatePhoneCallMediaState"})}function D(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&&{...m&&{echoCancellation:!0},...g&&{noiseSuppression:!0}},video:"video"===e&&{facingMode:t}})}async function B(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if(!b)return;const a="audio"===e?b.streams.ownAudio:"video"===e?b.streams.ownVideo:b.streams.ownPresentation;if(!a)return;const n=a.getTracks()[0];if(!n)return;const i=b.connection.getSenders().find((e=>n.id===e.track?.id));if(i){t=void 0===t?!n.enabled:t;try{if(t&&!n.enabled){const t=await D(e);t.getTracks()[0].onended=()=>{B(e,!1)},await i.replaceTrack(t.getTracks()[0]),"audio"===e?b.streams.ownAudio=t:"video"===e?(b.streams.ownVideo=t,b.facingMode="user"):b.streams.ownPresentation=t,"video"!==e&&"presentation"!==e||B("video"===e?"presentation":"video",!1)}else if(!t&&n.enabled){n.stop();const t="audio"===e?b.silence:"video"===e?b.blackVideo:b.blackPresentation;if(!t)return;await i.replaceTrack(t.getTracks()[0]),"audio"===e?b.streams.ownAudio=t:"video"===e?b.streams.ownVideo=t:b.streams.ownPresentation=t}A(),L()}catch(e){}}}function U(){b&&(b.streams.ownVideo?.getTracks().forEach((e=>e.stop())),b.streams.ownPresentation?.getTracks().forEach((e=>e.stop())),b.streams.ownAudio?.getTracks().forEach((e=>e.stop())),b.dataChannel.close(),b.connection.close(),b=void 0)}function L(){if(!b)return;const{emitSignalingData:e,streams:t}=b;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 $(e){if(!b||b.isOutgoing)return e;const{payloadTypes:t}=e,a=t.findIndex((e=>"VP8"===e.name)),n=t[a],i=t.findIndex((e=>Number(e.parameters?.apt)===n.id));return e.payloadTypes=[t[a],t[i]],e}function j(e){if(!b)return;const{emitSignalingData:t}=b;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:c(e.ssrc).toString(),ssrcGroups:[],payloadTypes:e.audioPayloadTypes,rtpExtensions:e.audioExtmap},video:$({ssrc:c(e["ssrc-groups"][0].sources[0]).toString(),ssrcGroups:[{semantics:e["ssrc-groups"][0].semantics,ssrcs:e["ssrc-groups"][0].sources.map(c)}],payloadTypes:e.videoPayloadTypes,rtpExtensions:e.videoExtmap}),screencast:$({ssrc:c(e["ssrc-groups"][1].sources[0]).toString(),ssrcGroups:[{semantics:e["ssrc-groups"][1].semantics,ssrcs:e["ssrc-groups"][1].sources.map(c)}],payloadTypes:e.screencastPayloadTypes,rtpExtensions:e.screencastExtmap})})}async function F(e){if(b&&b.connection)switch(console.log(e),e["@type"]){case"MediaState":b.mediaState=e,A(),L();break;case"Candidates":{const{candidates:t,gotInitialSetup:a}=b;if(!t)return;e.candidates.forEach((e=>{b.candidates.push(e.sdpString)})),a&&await Promise.all(b.candidates.map((e=>b.connection.addIceCandidate({candidate:e,sdpMLineIndex:0}))));break}case"InitialSetup":{const{connection:t,isOutgoing:a}=b;if(!t)return;const n={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",mid:"0",sourceGroups:[{semantics:"FID",sources:[e.audio.ssrc]}]},e.video&&{isVideo:!0,isPresentation:!1,isMain:!1,userId:"123",endpoint:"1",mid:"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",mid:"2",sourceGroups:e.screencast.ssrcGroups.map((e=>({semantics:e.semantics,sources:e.ssrcs})))}],audioPayloadTypes:e.audio.payloadTypes?.map(d)||[],audioExtensions:e.audio.rtpExtensions,videoPayloadTypes:$(e.video).payloadTypes?.map(d)||[],videoExtensions:e.video.rtpExtensions};if(await t.setRemoteDescription({sdp:v(n,a,void 0,!0),type:a?"answer":"offer"}),b.conference=n,!a){const e=await t.createAnswer();if(!e)return;await t.setLocalDescription(e),j(f(e,!0))}b.gotInitialSetup=!0,await Promise.all(b.candidates.map((e=>t.addIceCandidate({candidate:e,sdpMLineIndex:0}))));break}}}var H=a(83716),Y=a(71226),q=a(11192),K=a(42431),z=a(78958),J=a(27225),X=a(25260),W=a(60782),Q=a(44271),ee=a(65054);(0,s.iw)("leaveGroupCall",(async(e,t,a)=>{const{isFromLibrary:n,shouldDiscard:o,shouldRemove:r,rejoin:c,tabId:l=(0,ee._w)()}=a||{},d=(0,K.mU)(e);d&&(e=(0,z.Ic)(e,{connectionState:"disconnected"},d.participantsCount-1),e={...e,groupCalls:{...e.groupCalls,activeGroupCallId:void 0}},(0,s.R3)(e),await(0,Y.t9)("leaveGroupCall",{call:d}),await(0,Y.t9)("abortRequestGroup","call"),o&&await(0,Y.t9)("discardGroupCall",{call:d}),e=(0,s.Rd)(),r&&(e=(0,z.dc)(e,d.id)),(0,i.Mt)(),(0,s.R3)(e),t.toggleGroupCallPanel({force:void 0,tabId:l}),n||V(),t.afterHangUp(),c&&t.requestMasterAndJoinGroupCall({...c,tabId:l}))})),(0,s.iw)("toggleGroupCallVideo",(async e=>{const t=(0,K.mU)(e),a=(0,q.dy)(e,e.currentUserId);a&&t&&(await T("video"),await(0,Y.t9)("editGroupCallParticipant",{call:t,videoStopped:!k("video"),participant:a}))})),(0,s.iw)("requestToSpeak",((e,t,a)=>{const{value:n}=a||{value:!0},i=(0,K.mU)(e),o=(0,q.dy)(e,e.currentUserId);o&&i&&(0,Y.t9)("editGroupCallParticipant",{call:i,raiseHand:n,participant:o})})),(0,s.iw)("setGroupCallParticipantVolume",((e,t,a)=>{const{participantId:n,volume:i}=a,o=(0,K.mU)(e),s=(0,q.dy)(e,n);s&&o&&(S(n,Math.floor(i/H.Ro)/100),(0,Y.t9)("editGroupCallParticipant",{call:o,volume:Number(i),participant:s}))})),(0,s.iw)("toggleGroupCallMute",(async(e,t,a)=>{const{participantId:n,value:i}=a||{},o=(0,K.mU)(e),s=(0,q.dy)(e,n||e.currentUserId);if(!s||!o)return;const r=void 0===i?k("audio",s.id):i;n?S(n,r?0:1):await T("audio"),await(0,Y.t9)("editGroupCallParticipant",{call:o,muted:r,participant:s})})),(0,s.iw)("toggleGroupCallPresentation",(async(e,t,a)=>{const n=(0,K.mU)(e),i=(0,q.dy)(e,e.currentUserId);if(i&&n){if(void 0!==a?.value?a?.value:!k("presentation")){const e=await async function(){if(P)try{const e=await N("presentation");if(!e)return;return e.getTracks()[0].onended=()=>{P&&P.myId&&(delete P.streams?.[P.myId].presentation,I(P.myId),w())},await new Promise((t=>{const{connection:a,dataChannel:n}=_([e],t,!0);P={...P,screenshareConnection:a,screenshareDataChannel:n}}))}catch(e){return}}();if(!e)return;await(0,Y.t9)("joinGroupCallPresentation",{call:n,params:e})}else await T("presentation",!1),await(0,Y.t9)("leaveGroupCallPresentation",{call:n});await(0,Y.t9)("editGroupCallParticipant",{call:n,presentationPaused:!k("presentation"),participant:i})}})),(0,s.iw)("connectToActiveGroupCall",(async(e,t,a)=>{const{tabId:n=(0,ee._w)()}=a||{},o=(0,K.mU)(e);if(!o)return;if("discarded"===o.connectionState)return void t.showNotification({message:"This voice chat is not active",tabId:n});const r=(0,i.FF)(),c=(0,i.NH)();if(!r||!c)return;const{currentUserId:l}=e;if(!l)return;const d=await function(e,t,a,n){if(P)throw Error("Already in call");M("connecting");const i=new MediaStream;return a.srcObject=i,(0,y.Z)(a),P={onUpdate:n,participants:[],myId:e,speaking:{},silence:h(t),black:C({width:640,height:480}),analyserInterval:setInterval(O,1e3),audioElement:a,audioContext:t,mediaStream:i,lastMid:3},N("audio"),new Promise((e=>{P={...P,..._([P.silence,P.black],e)}}))}(l,c,r,t.apiUpdate),u=await(0,Y.t9)("joinGroupCall",{call:o,params:d,inviteHash:o.inviteHash});if(e=(0,s.Rd)(),!u)return t.showNotification({message:"Failed to join voice chat",tabId:n}),void t.leaveGroupCall({tabId:n});if(t.loadMoreGroupCallParticipants(),o.chatId){e=(0,s.Rd)();const a=(0,q.Z1)(e,o.chatId);if(!a)return;await(0,J.ft)(e,t,a,n)}})),(0,s.iw)("connectToActivePhoneCall",(async(e,t)=>{const{phoneCall:a}=e;if(!a)return;const n=(0,K.fu)(e);if(!n)return;const i=await(0,Y.t9)("getDhConfig");if(!i)return;await(0,Y.t9)("createPhoneCallState",[!0]);const o=await(0,Y.t9)("requestPhoneCall",[i]),r=await(0,Y.t9)("requestCall",{user:n,gAHash:o,isVideo:a.isVideo});r?(e=(0,s.Rd)(),e=(0,X.Sh)(e,(0,W.ee)(r.users,"id")),(0,s.R3)(e)):"hangUp"in t&&t.hangUp({tabId:(0,ee._w)()})})),(0,s.iw)("acceptCall",(async e=>{const{phoneCall:t}=e;if(!t)return;const a=await(0,Y.t9)("getDhConfig");if(!a)return;await(0,Y.t9)("createPhoneCallState",[!1]);const n=await(0,Y.t9)("acceptPhoneCall",[a]),i=await(0,Y.t9)("acceptCall",{call:t,gB:n});i&&(e=(0,s.Rd)(),e=(0,X.Sh)(e,(0,W.ee)(i.users,"id")),(0,s.R3)(e))})),(0,s.iw)("sendSignalingData",((e,t,a)=>{const{phoneCall:n}=e;if(!n)return;const i=JSON.stringify(a);(async()=>{const e=await(0,Y.t9)("encodePhoneCallData",[i]);e&&(0,Y.t9)("sendSignalingData",{data:e,call:n})})()})),(0,s.iw)("closeCallRatingModal",((e,t,a)=>{const{tabId:n=(0,ee._w)()}=a||{};return(0,Q.i)(e,{ratingPhoneCall:void 0},n)})),(0,s.iw)("setCallRating",((e,t,a)=>{const{rating:n,comment:i,tabId:o=(0,ee._w)()}=a,{ratingPhoneCall:s}=(0,q.jU)(e,o);if(s)return(0,Y.t9)("setCallRating",{call:s,rating:n,comment:i}),(0,Q.i)(e,{ratingPhoneCall:void 0},o)})),(0,s.iw)("hangUp",((e,t,a)=>{const{tabId:n=(0,ee._w)()}=a||{},{phoneCall:i}=e;if(i){if("discarded"===i.state)return(0,Y.t9)("destroyPhoneCallState"),U(),e={...e,phoneCall:void 0},(0,s.R3)(e),t.toggleGroupCallPanel({force:void 0,tabId:n}),void t.afterHangUp();if((0,Y.t9)("destroyPhoneCallState"),U(),(0,Y.t9)("discardCall",{call:i}),"requesting"===i.state)return e={...e,phoneCall:void 0},(0,s.R3)(e),t.toggleGroupCallPanel({force:void 0,tabId:n}),void t.afterHangUp();setTimeout((()=>{e=(0,s.Rd)(),e={...e,phoneCall:void 0},(0,s.R3)(e),t.toggleGroupCallPanel({force:void 0,tabId:n}),t.afterHangUp()}),500)}}));var te=a(59692);const ae=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]),ne=[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,K.GU)(e,i,a.userId))break;return(0,z.B6)(e,i,a.userId,(0,W.CE)(a,["@type","userId"]));case"updateGroupCallConnectionState":if(!i)break;if("disconnected"===a.connectionState){"leaveGroupCall"in t&&t.leaveGroupCall({isFromLibrary:!0,tabId:(0,ee._w)()});break}return(0,z.AH)(e,i,{connectionState:a.connectionState,isSpeakerDisabled:a.isSpeakerDisabled});case"updateGroupCallParticipants":{const{groupCallId:e,participants:t}=a;i===e&&R(t);break}case"updateGroupCallConnection":{if(a.data.stream){t.showNotification({message:"Big live streams are not yet supported",tabId:(0,ee._w)()}),"leaveGroupCall"in t&&t.leaveGroupCall({tabId:(0,ee._w)()});break}!async function(e,t){if(!P)return;const a=t?P.screenshareConference:P.conference,n=t?P.screenshareConnection:P.connection;if(!a||!n||!a.ssrcs)return;const i=Date.now(),o={...a,transport:e.transport,sessionId:i,audioExtensions:e.audio?.["rtp-hdrexts"],audioPayloadTypes:e.audio?.["payload-types"],videoExtensions:e.video?.["rtp-hdrexts"],videoPayloadTypes:e.video?.["payload-types"]};P={...P,...t?{screenshareConference:o}:{conference:o}};try{await n.setRemoteDescription({type:"answer",sdp:v(o,!0,t)})}catch(e){console.error(e)}}(a.data,a.presentation);const n=(0,K.mU)(e);n?.participants&&Object.keys(n.participants).length>0&&R(Object.values(n.participants));break}case"updatePhoneCallMediaState":return{...e,phoneCall:{...e.phoneCall,...(0,W.CE)(a,["@type"])}};case"updatePhoneCall":{if(!n.Bi)return;const{phoneCall:i,currentUserId:o}=e,r={...i,...a.call},c=i?.adminId===o;if(e={...e,phoneCall:r},i&&i.id&&r.id!==i.id)return void("discarded"!==r.state&&(0,Y.t9)("discardCall",{call:r,isBusy:!0}));const{accessHash:l,state:d,connections:u,gB:p}=r;if(("active"===d||"accepted"===d)&&!r.protocol?.libraryVersions.some((e=>"4.0.0"===e||"4.0.1"===e))){const a=(0,K.fu)(e);return"hangUp"in t&&t.hangUp({tabId:(0,ee._w)()}),void t.showNotification({message:te.Iu("VoipPeerIncompatible",a?.firstName),tabId:(0,ee._w)()})}if("discarded"===d){if(!i)return;return(0,Q.i)(e,{...r.needRating&&{ratingPhoneCall:r},isCallPanelVisible:void 0},(0,ee._w)())}return"accepted"===d&&l&&p?(async()=>{const{gA:t,keyFingerprint:a,emojis:n}=await(0,Y.t9)("confirmPhoneCall",[p,ae,ne]),i={...(e=(0,s.Rd)()).phoneCall,emojis:n};e={...e,phoneCall:i},(0,s.R3)(e);const o=await(0,Y.t9)("confirmCall",{call:r,gA:t,keyFingerprint:a});o&&(e=(0,s.Rd)(),e=(0,X.Sh)(e,(0,W.ee)(o.users,"id")),(0,s.R3)(e))})():"active"===d&&u&&"active"!==i?.state&&(c||((0,Y.t9)("receivedCall",{call:r}),(async()=>{const{emojis:t}=await(0,Y.t9)("confirmPhoneCall",[r.gAOrB,ae,ne]),a={...(e=(0,s.Rd)()).phoneCall,emojis:t};e={...e,phoneCall:a},(0,s.R3)(e)})()),async function(e,t,a,n,i){const o=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}),s=h(new AudioContext),r=C({width:640,height:480}),c=C({width:640,height:480});o.addTrack(s.getTracks()[0],s),o.addTrack(r.getTracks()[0],r),o.addTrack(c.getTracks()[0],c),o.onicecandidate=e=>{e.candidate&&t({"@type":"Candidates",candidates:[{sdpString:e.candidate.candidate}]})},o.onconnectionstatechange=()=>{i({"@type":"updatePhoneCallConnectionState",connectionState:o.connectionState})},o.ontrack=e=>{if(!b)return;const t=e.streams[0];"audio"===e.track.kind?(b.audio.srcObject=t,b.audio.play().catch(),b.streams.audio=t):"1"===e.transceiver.mid?b.streams.video=t:b.streams.presentation=t,A()};const l=o.createDataChannel("data",{id:0,negotiated:!0});l.onmessage=e=>{F(JSON.parse(e.data))};const d=new Audio;b={audio:d,connection:o,emitSignalingData:t,isOutgoing:a,candidates:[],onUpdate:i,streams:{ownVideo:r,ownAudio:s,ownPresentation:c},mediaState:{isBatteryLow:!1,screencastState:"inactive",videoState:"inactive",videoRotation:0,isMuted:!0},blackVideo:r,blackPresentation:c,silence:s,dataChannel:l};try{n&&B("video",!0),B("audio",!0)}catch(e){}if(a){const e=await o.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});await o.setLocalDescription(e),j(f(e,!0))}}(u,t.sendSignalingData,c,Boolean(r?.isVideo),t.apiUpdate)),e}case"updatePhoneCallConnectionState":{const{connectionState:n}=a;return e.phoneCall?"closed"===n||"disconnected"===n||"failed"===n?void("hangUp"in t&&t.hangUp({tabId:(0,ee._w)()})):{...e,phoneCall:{...e.phoneCall,isConnected:"connected"===n}}:e}case"updatePhoneCallSignalingData":{const{phoneCall:t}=e;if(!t)break;(0,Y.t9)("decodePhoneCallData",[a.data])?.then(F);break}}}));var ie=a(46752),oe=a(60706),se=a(59107),re=a(42797),ce=a(78722),le=a(87204),de=a(25190),ue=a(3657),pe=a(231),me=a(34563),ge=a(57773);const fe=()=>{navigator.vibrate?.(50)};var ve=a(58912),he=a(49204);const Ce=(0,o.X$)((0,s.c$)((e=>{const t=(0,K.mU)(e),{connectionState:a}=t||{},n=t&&(0,K.GU)(e,t.id,e.currentUserId),{raiseHandRating:i,hasAudioStream:o,canSelfUnmute:s,isMuted:r}=n||{};return{connectionState:a||"discarded",hasRequestedToSpeak:Boolean(i),noAudioStream:!o,canSelfUnmute:s,isMuted:r}}))((e=>{let{className:t,noAudioStream:a,canSelfUnmute:n,isMuted:i,connectionState:r}=e;const{toggleGroupCallMute:c,requestToSpeak:l,playGroupCallSound:d}=(0,s.Sv)(),u=(0,se.Z)(),p=(0,o.sO)("up"),[m,g]=(0,o.eJ)(!1),f="connected"!==r,v=!n&&i,h=(0,le.Z)(v);(0,o.d4)((()=>{h&&!v&&d({sound:"allowTalk"})}),[d,h,v]);const C=(0,o.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!h&&v?a?[99,135]:[136,172]:h&&!v?[0,36]:v?[0,0]:a?[69,99]:[36,69]}),[h,m,a,v]),Z=m?"HandFilled":"VoiceMini",y=(0,o.I4)((()=>{fe(),c()}),[c]),P=(0,o.I4)((()=>{if(v){if(m)return;return fe(),l(),g(!0),void setTimeout((()=>{g(!1)}),3e3)}p.current="down",a&&setTimeout((()=>{"down"===p.current&&(p.current="hold",y())}),200)}),[m,a,l,v,y]),b=(0,o.I4)((()=>{v||(y(),p.current="up")}),[v,y]);return o.ZP.createElement(pe.Z,{round:!0,size:"default",className:(0,ie.Z)("cYoMo7_F9FClYElCiCPz",!f&&a&&"qogJ3qpYtfXe51F2oHQC",!f&&v&&"_BwpttCUQ7dx5QS3FZr8",t),onMouseDown:P,onMouseUp:b,ariaLabel:u(i?"VoipUnmute":"VoipMute"),disabled:f},o.ZP.createElement(ve.Z,{tgsUrl:ge.l[Z],size:36,play:C.toString(),playSegment:C,className:"Xb5vLmvwjtecjpIdukD8",forceOnHeavyAnimation:!0,forceInBackground:!0}),o.ZP.createElement(he.Z,{className:(0,ie.Z)("NzuTkuoPRWdJQIgGM6HC",f&&"cLDJwFMhqkiwNmn9Xkx0"),color:"white"}))})));var Ze=a(14605),ye=a(27407),Pe=a(32340),be=a(17240),we=a(12644),Ee=a(70172);const Se=(0,o.X$)((e=>{let{participant:t,noColor:a,className:n}=e;const{isMuted:i,isMutedByMe:s}=t,r=(t.amplitude||0)>u,c=Boolean(t.raiseHandRating),l=(0,le.Z)(c),d=!Boolean(t?.canSelfUnmute)&&i,p=(0,le.Z)(i),m=(0,o.Ye)((()=>i&&!p?[43,64]:!i&&p?[22,42]:c&&!l?[65,84]:!d&&l?[0,21]:i?[22,23]:[43,44]),[i,d,c]),g=(0,o.Ye)((()=>a?"#ffffff":c?"#4da6e0":d||s?"#ff706f":r?"#57bc6c":"#aaaaaa"),[a,c,d,s,r]);return o.ZP.createElement(ve.Z,{tgsUrl:ge.l.VoiceOutlined,play:m.toString(),playSegment:m,size:28,color:g,className:n,forceOnHeavyAnimation:!0,forceInBackground:!0,nonInteractive:!0})}));var ke=a(31876),Ie=a(3927),Ne=a(52328),Te=a(58964),Me=a(22275);const Ve=[0,17],Oe=[17,34],Ge=(0,o.X$)((0,s.c$)((e=>({isAdmin:(0,K.Ht)(e)})))((e=>{let{participant:t,onCloseAnimationEnd:a,onClose:n,isDropdownOpen:i,isAdmin:r,positionY:c,menuRef:l,positionX:d,style:u,transformOriginY:p,transformOriginX:m}=e;const{toggleGroupCallMute:g,setGroupCallParticipantVolume:f,toggleGroupCallPanel:v,openChat:h,requestToSpeak:C}=(0,s.Sv)(),Z=(0,se.Z)(),[y,P,b]=(0,oe.Z)(),w=t?.id,{isMutedByMe:E,isMuted:S,isSelf:k,canSelfUnmute:I}=t||{},N=Boolean(t?.raiseHandRating),T=!I&&S,[M,V]=(0,o.eJ)(E?0:(t?.volume||H.aCB)/H.Ro),[O,G]=(0,o.eJ)(!1),R=0===M,x=R?Ve:Oe;(0,o.d4)((()=>{i||G(!1)}),[i]);const _=(0,de.Z)((e=>{V(e),G(0===e!==R)}));(0,o.d4)((()=>{V(E?0:(t?.volume||H.aCB)/H.Ro)}),[w]);const A=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return(0,Ie.Z)((e=>{e()}),a,e,t)}(500),D=(0,de.Z)((e=>{e.stopPropagation(),P(),n()})),B=(0,de.Z)((e=>{e.stopPropagation(),C({value:!1}),n()})),U=(0,de.Z)((e=>{if(e.stopPropagation(),n(),r){if(T){var a;_((null!==(a=t?.volume)&&void 0!==a?a:H.aCB)/H.Ro)}}else _(E?H.aCB/H.Ro:0);g({participantId:w,value:r?!T:!E})})),L=(0,de.Z)((e=>{e.stopPropagation(),v(),h({id:w}),n()}));return o.ZP.createElement("div",null,o.ZP.createElement(Ne.Z,{isOpen:i,positionX:d,positionY:c,transformOriginX:m,transformOriginY:p,style:u,ref:l,withPortal:!0,onClose:n,onCloseAnimationEnd:a,className:"participant-menu with-menu-transitions"},!k&&!T&&o.ZP.createElement("div",{className:"group"},o.ZP.createElement("div",{className:(0,ie.Z)("volume-control",M<50&&"low",M>=50&&M<100&&"medium",M>=100&&M<150&&"normal",M>=150&&"high")},o.ZP.createElement("input",{type:"range",min:"0",max:"200",value:M,onChange:e=>{const t=Number(e.target.value);_(t),A((()=>{0===t?g({participantId:w,value:!0}):f({participantId:w,volume:Math.floor(t*H.Ro)})}))}}),o.ZP.createElement("div",{className:"info"},o.ZP.createElement(ve.Z,{tgsUrl:ge.l.Speaker,play:!!O&&x.toString(),playSegment:x,size:24}),o.ZP.createElement("span",null,M,"%")))),o.ZP.createElement("div",{className:"group"},N&&k&&o.ZP.createElement(Te.Z,{icon:"stop-raising-hand",onClick:B},Z("VoipGroupCancelRaiseHand")),!k&&o.ZP.createElement(Te.Z,{icon:"user",onClick:L},Z("VoipGroupOpenProfile")),!k&&o.ZP.createElement(Te.Z,{icon:S&&r?"allow-speak":"microphone-alt",onClick:U},Z(r?T?"VoipGroupAllowToSpeak":"VoipMute":E?"VoipGroupUnmuteForMe":"VoipGroupMuteForMe")),!k&&r&&o.ZP.createElement(Te.Z,{icon:"delete-user",destructive:!0,onClick:D},Z("VoipGroupUserRemove")))),!k&&r&&o.ZP.createElement(Me.Z,{isOpen:y,userId:w,onClose:b}))})));var Re=a(2153);const xe={root:"YtzOv_YJhE1p3qIWbAwu",subtitle:"d_IXv97OWeVU1anCLIJV",subtitleText:"hL5wQ6wC2WbM7bmQW7eY",icon:"LK6KFK0AcvforsfYGu1Z",subtitleBlue:"q12ZkFJeUiQJmHmb1R9r",subtitleRed:"xq8TrzM7pkLCcJpb_2Mu",subtitleGreen:"IFhZNdfzczQYrCk5lEEo",avatar:"_B2_m9csWv9ZGwlDIpPc"},_e=(0,o.X$)((0,s.c$)(((e,t)=>{let{participant:a}=t;return{peer:(0,q.dy)(e,a.id)||(0,q.Z1)(e,a.id)}}))((e=>{let{participant:t,peer:a}=e;const n=(0,o.sO)(null),i=(0,o.sO)(null),s=(0,se.Z)(),{isSelf:r,isMutedByMe:c,isMuted:l,hasVideoStream:d,hasPresentationStream:p}=t,m=(t.amplitude||0)>u,g=Boolean(t.raiseHandRating),{isContextMenuOpen:f,contextMenuPosition:v,handleContextMenu:h,handleBeforeContextMenu:C,handleContextMenuClose:Z,handleContextMenuHide:y}=(0,be.Z)(n,r),P=(0,o.I4)((()=>n.current),[]),b=(0,o.I4)((()=>n.current.closest(".custom-scroll, .no-scrollbar")),[]),w=(0,o.I4)((()=>i.current),[]),E=(0,o.I4)((()=>({withPortal:!0})),[]),{positionX:S,positionY:k,transformOriginX:I,transformOriginY:N,style:T}=(0,we.Z)(v,P,b,w,E),M=Boolean(!l&&m&&t.volume&&t.volume!==H.aCB),[V,O]=(0,o.Ye)((()=>c?[s("VoipGroupMutedForMe"),xe.subtitleRed]:g?[s("WantsToSpeak"),xe.subtitleBlue]:M?[s("SpeakingWithVolume",(t.volume/H.Ro).toString()).replace("%%","%"),xe.subtitleGreen]:!l&&m?[s("Speaking"),xe.subtitleGreen]:r?[s("ThisIsYou"),xe.subtitleBlue]:t.about?[t.about,""]:[s("Listening"),xe.subtitleBlue]),[c,g,r,M,l,m,t.about,t.volume,s]);if(a)return o.ZP.createElement(ke.Z,{leftElement:o.ZP.createElement(Ee.Z,{peer:a,className:xe.avatar}),rightElement:o.ZP.createElement(Se,{participant:t,className:xe.icon}),className:xe.root,onClick:h,onMouseDown:C,onContextMenu:h,multiline:!0,ripple:!0,ref:n},o.ZP.createElement(Re.Z,{peer:a,withEmojiStatus:!0,className:xe.title}),o.ZP.createElement("span",{className:(0,ie.Z)(xe.subtitle,"subtitle",O)},p&&o.ZP.createElement("i",{className:"icon icon-share-screen","aria-hidden":!0}),d&&o.ZP.createElement("i",{className:"icon icon-video","aria-hidden":!0}),M&&o.ZP.createElement("i",{className:"icon icon-speaker","aria-hidden":!0}),o.ZP.createElement("span",{className:xe.subtitleText},(0,Pe.Z)(V))),o.ZP.createElement(Ge,{participant:t,isDropdownOpen:f,positionX:S,positionY:k,transformOriginX:I,transformOriginY:N,style:T,onClose:Z,onCloseAnimationEnd:y,menuRef:i}))})));var Ae=a(21273);const De=(0,o.X$)((0,s.c$)((e=>{const{participantsCount:t,participants:a}=(0,K.mU)(e)||{};return{participants:a,participantsCount:t||0}}))((e=>{let{panelOffset:t,participants:a,participantsCount:n,isLandscape:i}=e;const{loadMoreGroupCallParticipants:r}=(0,s.Sv)(),c=(0,o.Ye)((()=>Object.keys(a||{})),[a]),l=(0,de.Z)((()=>{r()})),[d,u]=(0,ye.Z)(l,c,c.length>=n);return o.ZP.createElement(Ae.Z,{items:d,onLoadMore:u,style:`transform: translateY(${t}px);`,className:(0,ie.Z)("MaXJ6PbnczgUaXKytU26",!i&&"KDT2Zfq3ho5J3_CUMqK2")},a&&d?.map((e=>a[e]&&o.ZP.createElement(_e,{key:e,participant:a[e]}))))})));var Be=a(41151),Ue=a(9933),Le=a(69118),$e=a(57710),je=a(62357),Fe=a(17921);const He="Yr9Loz5dybqTYl1YGWPC",Ye="tZLFA5gL8kShE0_r8Xwb",qe=(0,o.X$)((0,s.c$)(((e,t)=>{let{participant:a}=t;return{user:a.isUser?(0,q.dy)(e,a.id):void 0,chat:a.isUser?void 0:(0,q.Z1)(e,a.id)}}))((e=>{let{layout:t,pinnedVideo:a,setPinned:n,canPin:i,className:s,participant:r,user:c,chat:l,onStopSharing:d}=e;const p=(0,se.Z)(),m=(0,o.sO)(null),g=(0,o.sO)(null),f=(0,o.sO)(null),{x:v,y:h,width:C,height:Z,noAnimate:y,isRemoved:P,type:b}=t,{isSelf:w,isMutedByMe:S,isMuted:k}=r,I=a?.id===r.id&&a?.type===b,N=(r.amplitude||0)>u,T=Boolean(r.raiseHandRating),M="video"===b&&r.isSelf,V="screen"===b&&r.isSelf,O=(0,o.Ye)((()=>w?p("ThisIsYou"):S?p("VoipGroupMutedForMe"):T?p("WantsToSpeak"):k||!N?p("Listening"):r.volume&&r.volume!==H.aCB?p("SpeakingWithVolume",(r.volume/H.Ro).toString()).replace("%%","%"):p("Speaking")),[N,r.volume,p,w,S,T,k]),G=(0,o.sO)();P||(G.current=t);const{x:R,y:x,width:_,height:A}=G.current||{},[D,B,U,L]=P?[R,x,_,A]:[v,h,C,Z],[$,j]=(0,o.eJ)(!y),F=E(c?.id||l.id),Y="video"===b?F?.video:F?.presentation,q=(0,o.sO)(Y);Y?.active&&Y?.getVideoTracks()[0].enabled&&(q.current=Y);const K=q.current,z=(0,de.Z)((()=>{const e=g.current;e&&(e.srcObject=null)}));(0,o.d4)((()=>(K?.addEventListener("inactive",z),()=>{K?.removeEventListener("inactive",z)})),[z,K]),(0,o.d4)((()=>{j(!1)}),[]);const[J,X]=(0,o.eJ)(!0),W=(0,de.Z)((()=>{X(!1)}));(0,je.Z)((()=>{if(!K?.active)return;const e=g.current,t=f.current;e&&t&&(0,$e.WM)((()=>{t.width=e.videoWidth,t.height=e.videoHeight,t.getContext("2d").drawImage(e,0,0,t.width,t.height)}))}),1e3),(0,o.d4)((()=>{const e=g.current,t=m.current;if(!e||!t||!K)return;const a=t.getContext("2d",{alpha:!1});if(!a)return;let n=!0;return(0,$e.WM)((()=>{n&&(t.width=16,t.height=16,a.filter="blur(2px)",(0,Ue.jt)((()=>!!n&&!!K.active&&(a.drawImage(e,0,0,e.videoWidth,e.videoHeight,0,0,t.width,t.height),!0)),Le.T2))})),()=>{n=!1}}),[K]);const Q=(0,o.sO)(null),ee=(0,o.sO)(null),{isContextMenuOpen:te,contextMenuPosition:ae,handleContextMenu:ne,handleContextMenuClose:oe,handleContextMenuHide:re}=(0,be.Z)(Q,w),ce=(0,o.I4)((()=>Q.current),[]),le=(0,o.I4)((()=>Q.current.closest(".custom-scroll, .no-scrollbar")),[]),ue=(0,o.I4)((()=>ee.current),[]),me=(0,o.I4)((()=>({withPortal:!0})),[]),{positionX:ge,positionY:fe,transformOriginX:ve,transformOriginY:he,style:Ce}=(0,we.Z)(ae,ce,le,ue,me),Ze=(0,o.I4)((()=>{n(I?void 0:{id:c?.id||l.id,type:b})}),[l,I,n,b,c?.id]);return o.ZP.createElement("div",{className:(0,ie.Z)("VowYvAYnpOoRyvJApJQx",($||P)&&"rhyIpeB0s5L9Rmgi17tE",y&&"YdJNWDXWUzCFMWFDHCB1",s,I&&"OyzsHbgzvjeEUTE090PB"),style:`--x: ${D}px; --y: ${B}px; --width: ${U}px; --height: ${L}px;`,ref:Q,onContextMenu:ne,onDoubleClick:i?Ze:void 0},o.ZP.createElement("div",{className:(0,ie.Z)("T3WHHUMTxj1TjHVdEQEg",N&&"yB5xApXNfpH_uWMlaJ_v")},J&&o.ZP.createElement(Fe.Z,{className:(0,ie.Z)(He,"hjZk9WRq4TrqMCq3E2y8")}),K&&o.ZP.createElement("video",{className:(0,ie.Z)(He,M&&Ye,V&&"r2sPHcOcDe70uoXozIxw"),muted:!0,autoPlay:!0,playsInline:!0,srcObject:K,ref:g,onCanPlay:W}),!V&&o.ZP.createElement("canvas",{className:(0,ie.Z)("TTT3HkSjEHudE0V0mbIS Yr9Loz5dybqTYl1YGWPC",M&&Ye),ref:f}),V&&o.ZP.createElement("div",{className:"DUdz3csATEFxg9yWbA_j"},o.ZP.createElement("div",{className:"hwDVmRtme3kPjbGWDTyg"},p("VoiceChat.Sharing.Placeholder")),o.ZP.createElement(pe.Z,{className:"z9RlkVVU4OZMu3sqLT4d",onClick:d},p("VoiceChat.Sharing.Stop"))),o.ZP.createElement("div",{className:"JGuT5GiXuGEeFNyc_SyE"},o.ZP.createElement("canvas",{className:(0,ie.Z)("aGXmhcH9sptqhStorby8",M&&Ye),ref:m})),i&&o.ZP.createElement(pe.Z,{round:!0,size:"smaller",ripple:!0,color:"translucent",className:"loYfROdAEWBH4mFbwlew",ariaLabel:p(I?"lng_group_call_context_unpin_camera":"lng_group_call_context_pin_camera"),onClick:Ze},o.ZP.createElement("i",{className:(0,ie.Z)("icon",I?"icon-unpin":"icon-pin")})),!V&&o.ZP.createElement("div",{className:"TipRbLLEOnRQN7eDzIlX"},o.ZP.createElement("div",{className:"TRFmGn5RJRcHhQSXUkg8"},o.ZP.createElement(Re.Z,{peer:c||l,className:"xjevYlbKT3orz6OwaJTN"}),o.ZP.createElement("div",{className:"VNKqmM8nVTBnQLg84tVQ"},O)),o.ZP.createElement(Se,{participant:r,className:"FhEGCqYjf67Tz1J54Nf7",noColor:!0}))),o.ZP.createElement(Ge,{participant:r,isDropdownOpen:te,positionX:ge,positionY:fe,transformOriginX:ve,transformOriginY:he,style:Ce,onClose:oe,onCloseAnimationEnd:re,menuRef:ee}))}))),Ke={root:"fyUCcatntsTa_YkVpZCR",panelWrapper:"b3jsxTWWaVRz5PgjlLVf",panel:"XzyFw6Jv2_ezVQGIqawU",panelScrollTrigger:"V7wA8W8hNoCcBKHxf4hT",panelHeader:"t6Om0WIUsRLLZV9Cc0KJ",scrolled:"kGj_uhd6vwlqYp7AYUcx",headerButton:"obtrrwNt6GBLqhM9oFmm",firstButton:"zpgyOLRxhZgDHkFynsU0",lastButton:"o0dIwExEv0BpVIQOsDnM",panelHeaderText:"UMJnOojFmrqTKlWMo8aG",title:"AcV4YuEJQsio2Y1mb8NI",bigger:"KzSCbnCRFSRjnjNvs7DO",subtitle:"w7hs8dy7SXtq4hoRdA7v",participants:"HzQTDfEVKQFHpKBBL2Xk",participantVideos:"ediyUOQamD3wqwyt1OHn",addParticipantButton:"LrlxHbsK4nR40UwUT9tK",videos:"V06H2v7o5yKYh54ZUkAW",mainVideoContainer:"xYluQGqciLtWwKbroLFE",videosHeader:"ILuaK6cG99MeCGr9DNiI",videosHeaderLastButton:"FRWFfGWGqAfcIaiYI43I",videosContent:"hZ3hHp1KVhCV8WLZTQzu",actions:"IlgtQK0Z99LuWgmiCmpc",actionButton:"iX69gJg2DcXiCjcn7Z9_",destructive:"BDXZ55Nvs0ov0_K2MCvR",canRequestToSpeak:"uvqh2N80Lk6ZMNN3rc1A",muted:"tuWi4pcqOQX8sfdvlCaN",fullscreen:"GnCdvyLEoJLuYpmgt4Ss",portrait:"WnKR5AT56cbE5LSxbJoa",landscape:"gR_aXfrHQVIxdqlD7Kzc",noVideoParticipants:"JO8y1VdvKW0gKzSQXQh0",noSidebar:"yiyRELlSa8Nyrn_onUsb"},ze=(0,o.X$)((0,s.c$)(((e,t)=>{let{groupCallId:a}=t;const{connectionState:n,title:i,participants:o,participantsCount:s,chatId:r}=(0,K.$5)(e,a)||{},c=r?(0,q.Z1)(e,r):void 0;return{connectionState:n,title:i||c?.title,participantsCount:s,meParticipant:(0,K.GU)(e,a,e.currentUserId),isCallPanelVisible:Boolean((0,q.jU)(e).isCallPanelVisible),isAdmin:(0,K.Ht)(e),participants:o,canInvite:(0,K.LU)(e)}}))((e=>{let{groupCallId:t,isCallPanelVisible:a,connectionState:n,participantsCount:i,title:r,meParticipant:c,isAdmin:l,participants:d,canInvite:u}=e;const{toggleGroupCallVideo:m,toggleGroupCallPresentation:g,leaveGroupCall:f,toggleGroupCallPanel:v,connectToActiveGroupCall:h,playGroupCallSound:C,createGroupCallInviteLink:Z}=(0,s.Sv)(),y=(0,se.Z)(),P=(0,o.sO)(null),b=(0,o.sO)(null),w=(0,o.sO)(null),E=(0,o.sO)(null),S=(0,o.sO)(null),[k,I]=(0,o.eJ)(!1),N=!a&&!k,{observe:T}=(0,ue.S1)({rootRef:S,throttleMs:200,isDisabled:!N}),M=!(0,ue.Op)(E,N?T:void 0),{isMobile:V,isLandscape:O}=(0,re.ZP)(),[G,R,x]=(0,oe.Z)(),[_,A,D]=(0,oe.Z)(!0),B=Boolean(G&&O),U=(0,o.Ye)((()=>Object.values(d).find((e=>{let{presentation:t}=e;return t}))),[d]),L=(0,o.Ye)((()=>Object.values(d).filter((e=>{let{video:t,presentation:a}=e;return t||a})).flatMap((e=>{let{id:t,video:a,presentation:n}=e;return(0,W.oA)([a?{id:t,type:"video"}:void 0,n?{id:t,type:"screen"}:void 0])}))),[d]),$=L.length>0,j=r||y("VoipGroupVoiceChat"),F=y("Participants",i,"i"),[H,Y,q]=(0,oe.Z)(),[K,z]=(0,o.eJ)(!1),[J,X]=(0,o.eJ)(!1),Q=c?.hasVideoStream,ee=c?.hasPresentationStream,te=c?.hasAudioStream,ae="connected"!==n,ne=c?.canSelfUnmute,ge=!ne&&!te;(0,o.d4)((()=>{"connected"===n?C({sound:"join"}):"reconnecting"===n&&C({sound:"connecting"})}),[n]);const fe=(0,de.Z)((()=>{q(),z(!1)})),ve=(0,de.Z)((()=>{P.current&&!V&&(G?x():R())})),he=(0,de.Z)((()=>{_?D():A()})),ye=(0,de.Z)((()=>{v()})),Pe=(0,de.Z)((()=>{Z()})),be=(0,de.Z)((()=>{m()}));(0,o.d4)((()=>{h()}),[h,t]);const we=(0,de.Z)((()=>{!l||H?(C({sound:"leave"}),I(!0),q()):Y()})),Ee=(0,de.Z)((()=>{k&&f({shouldDiscard:J})})),Se=(0,de.Z)((()=>{g()})),ke=L.length>1&&B,Ie=B&&$,[Ne,Te]=(0,o.eJ)(void 0),{videoLayout:Me,panelOffset:Ve}=function(e){let{primaryContainerRef:t,secondaryContainerRef:a,videoParticipants:n,isLandscapeLayout:i,pinnedVideo:s}=e;const[r,c]=(0,o.eJ)([]),[l,d]=(0,o.eJ)(0),u=n.length,p=(0,le.Z)(u),m=(0,le.Z)(n),g=(0,o.Ye)((()=>m?.filter((e=>{let{id:t,type:a}=e;return!n.some((e=>e.id===t&&e.type===a))}))),[m,n]),f=(0,de.Z)((()=>{const e=t.current,o=a.current;if(!o)return;const r=void 0!==p&&p>u?p-u:0,{x:l,y:m,width:f}=o.getBoundingClientRect(),v=[];if(void 0!==s||!e||!i){const t=!0;let a,o=!1,p=0,h=n;if(s&&e&&i&&(p=h.findIndex((e=>{let{id:t,type:a}=e;return t===s.id&&a===s.type})),-1!==p)){const{x:t,y:n,width:i,height:r}=e.getBoundingClientRect(),{id:c,type:l}=s;a={x:t,y:n,width:i,height:r,participantId:c,type:l,orderKey:p},o=!0,h=h.filter((e=>{let{id:t,type:a}=e;return t!==c||a!==s.type}))}const C=o?u-1:u,Z=C%2==1,y=2,P=Math.ceil(C/y),b=(f-10*(y-1))/y,w=Math.max(0,Z?240+(P-1)*b+8*(P-1):P*b+8*(P-1));for(let e=0;e<C;e++){const a=Z&&0===e,n=a?f:b,i=a?240:b,o=Z&&0!==e?e+1:e,s=(t?0:l)+o%y*(n+10),r=(t?0:m)+(Z&&0!==e?248+(Math.floor(o/y)-1)*(i+8):Math.floor(o/y)*(i+8));v.push({x:s,y:r,width:n,height:i,shouldRemount:!t,isRemounted:t,noAnimate:!0,participantId:h[e].id,type:h[e].type,orderKey:e>=p?e+1:e})}if(a&&v.splice(p,0,a),g)for(let e=0;e<r;e++)v.push({x:0,y:0,width:0,height:0,isRemounted:t,isRemoved:!0,participantId:g[e].id,type:g[e].type,orderKey:e+u});return d(w),void c(v)}const{x:h,y:C,width:Z,height:y}=e.getBoundingClientRect(),P=function(e){return e>=25?5:e>=13?4:e>=7?3:e>=3?2:1}(u),b=Math.ceil(u/P),w=b*P>u,E=(Z-10*(P-1))/P,S=(y-8*(b-1))/b,k=E*(u%P);for(let e=0;e<u;e++){const t=Math.floor(e/P),a=h+e%P*(E+10)+(w&&t===b-1?(Z-k)/2:0),i=C+Math.floor(e/P)*(S+8);v.push({x:a,y:i,width:E,height:S,participantId:n[e].id,type:n[e].type,orderKey:e})}if(g)for(let e=0;e<r;e++)v.push({x:0,y:0,width:0,height:0,isRemoved:!0,participantId:g[e].id,type:g[e].type,orderKey:e+u});d(0),c(v)}));return(0,o.d4)(f,[f,n,i,s]),(0,ce.Z)(t,f,!t.current),(0,ce.Z)(a,f,!a.current),{videoLayout:r,panelOffset:l}}({primaryContainerRef:b,secondaryContainerRef:w,videoParticipants:L,isLandscapeLayout:B,pinnedVideo:Ne}),Oe=(0,de.Z)((()=>{U&&Te({id:U.id,type:"screen"})}));return(0,o.d4)(Oe,[Oe,Boolean(U)]),(0,o.d4)((()=>{Ne&&(L.some((e=>e.type===Ne.type&&e.id===Ne.id))||Te(void 0))}),[Ne,Me,L]),o.ZP.createElement(me.Z,{isOpen:N,onClose:v,className:(0,ie.Z)(Ke.root,(G||V)&&Ke.fullscreen,B&&Ke.landscape,!$&&Ke.noVideoParticipants,!B&&Ke.portrait,!_&&Ie&&Ke.noSidebar),dialogRef:P,onCloseAnimationEnd:Ee},Ie&&o.ZP.createElement("div",{className:Ke.videos},o.ZP.createElement("div",{className:Ke.videosHeader},!V&&o.ZP.createElement(pe.Z,{round:!0,size:"smaller",color:"translucent",onClick:ve,className:(0,ie.Z)(Ke.headerButton,Ke.firstButton),ariaLabel:y(G?"AccExitFullscreen":"AccSwitchToFullscreen")},o.ZP.createElement("i",{className:(0,ie.Z)("icon",G?"icon-smallscreen":"icon-fullscreen"),"aria-hidden":!0})),o.ZP.createElement("h3",{className:(0,ie.Z)(Ke.title,Ke.bigger)},r||y("VoipGroupVoiceChat")),Ie&&!_&&o.ZP.createElement(pe.Z,{round:!0,size:"smaller",color:"translucent",className:(0,ie.Z)(Ke.headerButton,Ke.videosHeaderLastButton),onClick:he,ariaLabel:y("AccDescrExpandPanel")},o.ZP.createElement("i",{className:"icon icon-sidebar","aria-hidden":!0}))),o.ZP.createElement("div",{className:Ke.videosContent,ref:b})),o.ZP.createElement("div",{className:Ke.panelWrapper,ref:S},o.ZP.createElement("div",{className:(0,ie.Z)(Ke.panel,"custom-scroll")},o.ZP.createElement("div",{className:Ke.panelScrollTrigger,ref:E}),o.ZP.createElement("div",{className:(0,ie.Z)(Ke.panelHeader,M&&Ke.scrolled)},!Ie&&!V&&o.ZP.createElement(pe.Z,{round:!0,size:"smaller",color:"translucent",ripple:!V,className:(0,ie.Z)(Ke.firstButton,Ke.headerButton),onClick:ve,ariaLabel:y("AccSwitchToFullscreen")},o.ZP.createElement("i",{className:"icon icon-fullscreen","aria-hidden":!0})),V&&o.ZP.createElement(pe.Z,{round:!0,size:"smaller",color:"translucent",onClick:ye,className:(0,ie.Z)(Ke.headerButton,Ke.firstButton),ariaLabel:y("Close")},o.ZP.createElement("i",{className:(0,ie.Z)("icon","icon-close"),"aria-hidden":!0})),Ie&&o.ZP.createElement(pe.Z,{round:!0,size:"smaller",ripple:!V,className:(0,ie.Z)(Ke.firstButton,Ke.headerButton),color:"translucent",onClick:he,ariaLabel:y("AccDescrCollapsePanel")},o.ZP.createElement("i",{className:"icon icon-sidebar","aria-hidden":!0})),o.ZP.createElement("div",{className:Ke.panelHeaderText},o.ZP.createElement("h3",{className:(0,ie.Z)(Ke.title,Ie&&Ke.bigger)},Ie?F:j),!Ie&&o.ZP.createElement("span",{className:Ke.subtitle},F)),!Ie&&u&&o.ZP.createElement(pe.Z,{round:!0,size:"smaller",ripple:!V,className:(0,ie.Z)(Ke.lastButton,Ke.headerButton),color:"translucent",onClick:Pe,ariaLabel:y("VoipGroupInviteMember")},o.ZP.createElement("i",{className:"icon icon-add-user","aria-hidden":!0}))),o.ZP.createElement("div",{className:Ke.participants},o.ZP.createElement("div",{className:Ke.participantVideos,ref:w,style:`height: ${Ve}px;`},Me.map((e=>{const t=d[e.participantId];return e.isRemounted&&t?o.ZP.createElement(qe,{teactOrderKey:e.orderKey,key:`${e.participantId}_${e.type}`,layout:e,canPin:ke,setPinned:Te,pinnedVideo:Ne,participant:t,onStopSharing:Se}):o.ZP.createElement("div",{teactOrderKey:e.orderKey,key:`${e.participantId}_${e.type}`})}))),o.ZP.createElement(De,{panelOffset:Ve,isLandscape:Ie}))),o.ZP.createElement(Be.Z,{key:"add-participant",isShown:Ie&&u,onClick:Pe,className:Ke.addParticipantButton,ariaLabel:y("VoipGroupInviteMember")},o.ZP.createElement("i",{className:"icon icon-add-user-filled","aria-hidden":!0}))),o.ZP.createElement("div",{className:Ke.mainVideoContainer},Me.map((e=>{const t=d[e.participantId];return e.isRemounted||!t?o.ZP.createElement("div",{teactOrderKey:e.orderKey,key:`${e.participantId}_${e.type}`}):o.ZP.createElement(qe,{teactOrderKey:e.orderKey,key:`${e.participantId}_${e.type}`,layout:e,canPin:ke,setPinned:Te,pinnedVideo:Ne,participant:t,className:Ke.video,onStopSharing:Se})}))),o.ZP.createElement("div",{className:Ke.actions},o.ZP.createElement(pe.Z,{round:!0,size:"default",ripple:!0,className:(0,ie.Z)(Ke.actionButton,!te&&Ke.muted,ge&&Ke.canRequestToSpeak),onClick:be,ariaLabel:y(Q?"VoipStopVideo":"VoipStartVideo"),disabled:ae},o.ZP.createElement("i",{className:(0,ie.Z)("icon",Q?"icon-video":"icon-video-stop"),"aria-hidden":!0})),o.ZP.createElement(pe.Z,{round:!0,size:"default",ripple:!0,className:(0,ie.Z)(Ke.actionButton,!te&&Ke.muted,ge&&Ke.canRequestToSpeak),onClick:Se,ariaLabel:y(ee?"lng_group_call_screen_share_stop":"lng_group_call_tooltip_screen"),disabled:ae||!p},o.ZP.createElement("i",{className:(0,ie.Z)("icon",ee?"icon-share-screen":"icon-share-screen-stop"),"aria-hidden":!0})),o.ZP.createElement(Ce,{className:Ke.actionButton}),o.ZP.createElement(pe.Z,{round:!0,size:"default",ripple:!0,className:(0,ie.Z)(Ke.actionButton,!te&&Ke.muted,ge&&Ke.canRequestToSpeak),ariaLabel:y("lng_group_call_settings"),disabled:!0},o.ZP.createElement("i",{className:"icon icon-settings-filled","aria-hidden":!0})),o.ZP.createElement(pe.Z,{round:!0,size:"default",ripple:!0,className:(0,ie.Z)(Ke.actionButton,Ke.destructive),onClick:we,ariaLabel:y("lng_group_call_leave")},o.ZP.createElement("i",{className:"icon icon-close","aria-hidden":!0}))),o.ZP.createElement(me.Z,{isOpen:H,onClose:fe,className:"error",title:y(K?"VoipGroupEndAlertTitle":"VoipGroupLeaveAlertTitle")},o.ZP.createElement("p",null,y(K?"VoipGroupEndAlertText":"VoipGroupLeaveAlertText")),!K&&o.ZP.createElement(Ze.Z,{label:y("VoipGroupEndChat"),checked:J,onCheck:X}),o.ZP.createElement("div",{className:"dialog-buttons"},o.ZP.createElement(pe.Z,{isText:!0,className:"confirm-dialog-button",onClick:we},y(K?"VoipGroupEnd":"VoipGroupLeave")),o.ZP.createElement(pe.Z,{isText:!0,className:"confirm-dialog-button",onClick:fe},y("Cancel")))))}))),Je=(0,o.X$)((0,s.c$)((e=>{const t=(0,q.jU)(e);return{groupCall:t.isMasterTab?(0,K.mU)(e):void 0,isCallPanelVisible:t.isCallPanelVisible,phoneCallUser:t.isMasterTab?(0,K.fu)(e):void 0}}))((e=>{let{groupCall:t,phoneCallUser:a,isCallPanelVisible:n}=e;const{toggleGroupCallPanel:i}=(0,s.Sv)(),r=(0,se.Z)();if((0,o.d4)((()=>(document.body.classList.toggle("has-call-header",Boolean(n)),()=>{document.body.classList.toggle("has-call-header",!1)})),[n]),t||a)return o.ZP.createElement("div",{className:(0,ie.Z)("ActiveCallHeader",n&&"open"),onClick:function(){i()}},o.ZP.createElement("span",{className:"title"},a?.firstName||t?.title||r("VoipGroupVoiceChat")))})));var Xe=a(790),We=a(65326);const Qe=(0,o.X$)((e=>{let{onClick:t,label:a,customIcon:n,icon:i,iconClassName:s,className:r,isDisabled:c,isActive:l}=e;return o.ZP.createElement("div",{className:"eWbOLx__FZXR1sqKEJek"},o.ZP.createElement(pe.Z,{round:!0,className:(0,ie.Z)(r,"XKOJvKiD4DsRfJLLhnw2",l&&"qvAVe7qcyaEvRQQ1StFI"),onClick:t,disabled:c},n||o.ZP.createElement("i",{className:(0,ie.Z)(s,"icon",`icon-${i}`)})),o.ZP.createElement("div",{className:"wnAniFJmQ7ocVtjRHNey"},a))})),et={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"},tt=(0,o.X$)((0,s.c$)((e=>{const{phoneCall:t,currentUserId:a}=e,{isCallPanelVisible:n,isMasterTab:i}=(0,q.jU)(e),o=(0,K.fu)(e);return{isCallPanelVisible:Boolean(n),user:o,isOutgoing:t?.adminId===a,phoneCall:i?t:void 0}}))((e=>{let{user:t,isOutgoing:a,phoneCall:i,isCallPanelVisible:r}=e;const c=(0,se.Z)(),{hangUp:l,requestMasterAndAcceptCall:d,playGroupCallSound:u,toggleGroupCallPanel:m,connectToActivePhoneCall:g}=(0,s.Sv)(),f=(0,o.sO)(null),[v,h,C]=(0,oe.Z)(),{isMobile:Z}=(0,re.ZP)(),y=(0,o.I4)((()=>{v?C():h()}),[C,v,h]),P=(0,o.I4)((()=>{f.current&&(v?document.exitFullscreen().then(C):f.current.requestFullscreen().then(h))}),[C,v,h]);(0,o.d4)((()=>{if(!n.t0)return;const e=f.current;return e?(e.addEventListener("fullscreenchange",y),()=>{e.removeEventListener("fullscreenchange",y)}):void 0}),[y]);const w=(0,o.I4)((()=>{m(),v&&C()}),[C,v,m]),E="discarded"===i?.state,S="busy"===i?.reason,k="requested"===i?.state&&!a,I=("requested"===i?.state||"waiting"===i?.state)&&a,N="active"===i?.state,T=i?.isConnected,[M,V,O]=(0,oe.Z)(),G=(0,o.I4)((()=>{V(),l()}),[l,V]);(0,o.d4)((()=>{M?u({sound:"end"}):k?u({sound:"incoming"}):S?u({sound:"busy"}):E?u({sound:"end"}):I?u({sound:"ringing"}):T&&u({sound:"connect"})}),[S,E,k,I,T,u,M]),(0,o.d4)((()=>{i?.id?O():g()}),[g,i?.id,O]);const R=(0,We.Z)();(0,je.Z)((()=>{R()}),T?1e3:void 0);const x=(0,o.Ye)((()=>{const e=i?.state;return M?c("lng_call_status_hanging"):S?"busy":"requesting"===e?c("lng_call_status_requesting"):"requested"===e?c(a?"lng_call_status_ringing":"lng_call_status_incoming"):"waiting"===e?c("lng_call_status_waiting"):"active"===e&&T?void 0:c("lng_call_status_exchanging")}),[S,T,M,a,c,i?.state]),_="active"===i?.videoState,U="active"===i?.screencastState,L=b?.streams,$=L?.ownAudio?.getTracks()[0].enabled,j=L?.ownPresentation?.getTracks()[0].enabled,F=L?.ownVideo?.getTracks()[0].enabled,[H,Y,q]=(0,oe.Z)(),[K,z,J]=(0,oe.Z)(),X=(0,o.I4)((()=>{j&&Y(),F&&z(),setTimeout((async()=>{await B("presentation"),q(),J()}),250)}),[j,F,Y,z,q,J]),W=(0,o.I4)((()=>{F&&z(),j&&Y(),setTimeout((async()=>{await B("video"),q(),J()}),250)}),[j,F,Y,z,q,J]),Q=(0,o.I4)((()=>{B("audio")}),[]),[ee,te,ae]=(0,oe.Z)(),[ne,ce,le]=(0,oe.Z)(),de=(0,o.I4)((()=>{ce(),async function(){if(!b||!b.facingMode)return;const e=b.streams.ownVideo;if(!e)return;const t=e.getTracks()[0];if(!t)return;const a=b.connection.getSenders().find((e=>t.id===e.track?.id));if(a){b.facingMode="environment"===b.facingMode?"user":"environment";try{const e=await D("video",b.facingMode);await a.replaceTrack(e.getTracks()[0]),b.streams.ownVideo=e,A()}catch(e){}}}(),setTimeout(le,250)}),[ce,le]),ue=i?.startDate&&Number(new Date)/1e3-i.startDate;return(0,o.d4)((()=>{"discarded"===i?.state&&setTimeout(l,250)}),[l,i?.reason,i?.state]),o.ZP.createElement(me.Z,{isOpen:i&&"discarded"!==i?.state&&!r,onClose:w,className:(0,ie.Z)(et.root,Z&&et.singleColumn),dialogRef:f},o.ZP.createElement(Ee.Z,{peer:t,size:"jumbo",className:_||U?et.blurred:""}),"active"===i?.screencastState&&L?.presentation&&o.ZP.createElement("video",{className:et.mainVideo,muted:!0,autoPlay:!0,playsInline:!0,srcObject:L.presentation}),"active"===i?.videoState&&L?.video&&o.ZP.createElement("video",{className:et.mainVideo,muted:!0,autoPlay:!0,playsInline:!0,srcObject:L.video}),o.ZP.createElement("video",{className:(0,ie.Z)(et.secondVideo,!H&&j&&et.visible,v&&et.fullscreen),muted:!0,autoPlay:!0,playsInline:!0,srcObject:L?.ownPresentation}),o.ZP.createElement("video",{className:(0,ie.Z)(et.secondVideo,!K&&F&&et.visible,v&&et.fullscreen),muted:!0,autoPlay:!0,playsInline:!0,srcObject:L?.ownVideo}),o.ZP.createElement("div",{className:et.header},n.t0&&o.ZP.createElement(pe.Z,{round:!0,size:"smaller",color:"translucent",onClick:P,ariaLabel:c(v?"AccExitFullscreen":"AccSwitchToFullscreen")},o.ZP.createElement("i",{className:(0,ie.Z)("icon",v?"icon-smallscreen":"icon-fullscreen")})),o.ZP.createElement(pe.Z,{round:!0,size:"smaller",color:"translucent",onClick:w,className:et.closeButton},o.ZP.createElement("i",{className:"icon icon-close"}))),o.ZP.createElement("div",{className:(0,ie.Z)(et.emojisBackdrop,ee&&et.open),onClick:ee?ae:te},o.ZP.createElement("div",{className:(0,ie.Z)(et.emojis,ee&&et.open)},i?.isConnected&&i?.emojis&&(0,Pe.Z)(i.emojis,["emoji"])),o.ZP.createElement("div",{className:(0,ie.Z)(et.emojiTooltip,ee&&et.open)},c("CallEmojiKeyTooltip",t?.firstName).replace("%%","%"))),o.ZP.createElement("div",{className:et.userInfo},o.ZP.createElement("h1",null,t?.firstName),o.ZP.createElement("span",{className:et.status},x||(0,Xe.k9)(ue||0))),o.ZP.createElement("div",{className:et.buttons},o.ZP.createElement(Qe,{onClick:Q,icon:"microphone",isDisabled:!N,isActive:$,label:c($?"lng_call_mute_audio":"lng_call_unmute_audio")}),o.ZP.createElement(Qe,{onClick:W,icon:"video",isDisabled:!N,isActive:F,label:c(F?"lng_call_stop_video":"lng_call_start_video")}),F&&(n.wZ||n.cj)&&o.ZP.createElement(Qe,{onClick:de,customIcon:o.ZP.createElement(ve.Z,{tgsUrl:ge.l.CameraFlip,playSegment:ne?[0,10]:[0,1],size:32}),isDisabled:!N,label:c("VoipFlip")}),p&&o.ZP.createElement(Qe,{onClick:X,icon:"share-screen",isDisabled:!N,isActive:j,label:c("lng_call_screencast")}),k&&o.ZP.createElement(Qe,{onClick:d,icon:"phone-discard",isDisabled:E,label:c("lng_call_accept"),className:et.accept,iconClassName:et.acceptIcon}),o.ZP.createElement(Qe,{onClick:G,icon:"phone-discard",isDisabled:E,label:c(k?"lng_call_decline":"lng_call_end_call"),className:et.leave})))})));var at=a(97687);const nt=(0,o.X$)((e=>{let{isOpen:t}=e;const{closeCallRatingModal:a,setCallRating:n}=(0,s.Sv)(),i=(0,o.sO)(null),r=(0,se.Z)(),[c,l]=(0,o.eJ)(),d=(0,o.I4)((()=>{c?n({rating:c+1,comment:i.current?.value||""}):a()}),[a,c,n]),u=(0,o.I4)((()=>{a()}),[a]);return o.ZP.createElement(me.Z,{title:r("lng_call_rate_label"),className:"narrow",onClose:a,isOpen:t},o.ZP.createElement("div",{className:"wLqZtZzJMOmPkr1Z7kT5"},new Array(5).fill(void 0).map(((e,t)=>{const a=void 0!==c&&c>=t;return o.ZP.createElement("i",{className:(0,ie.Z)("icon",a?"icon-favorite-filled":"icon-favorite",a&&"o_nOyYqj5URif5S86StK","OLQPS_OeztNYIaL15tdz"),onClick:(n=t,()=>l(c===n?void 0:n))});var n}))),o.ZP.createElement(at.Z,{ref:i,placeholder:r("lng_call_rate_comment"),className:(0,ie.Z)("ZToDNX6q1Yhf4aDPyuJF",4!==c&&void 0!==c&&"HdCq8jVctaJoit7bdgZd")}),o.ZP.createElement("div",{className:"dialog-buttons mt-2"},o.ZP.createElement(pe.Z,{className:"confirm-dialog-button",isText:!0,onClick:d},r("Send")),o.ZP.createElement(pe.Z,{className:"confirm-dialog-button",isText:!0,onClick:u},r("Cancel"))))}));(n.s$||n.cj)&&document.addEventListener("click",i.o5,{once:!0})}}]);
|
|
//# sourceMappingURL=9954.82d71f3438c4cccca1bf.js.map
|