2 lines
55 KiB
JavaScript
2 lines
55 KiB
JavaScript
"use strict";(self.webpackChunktelegram_t=self.webpackChunktelegram_t||[]).push([[9954],{78130:(e,t,a)=>{function n(e){return e<<0}function i(e){return e>>>0}function o(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 s(e){return{id:e.id,name:e.name,"rtcp-fbs":e.feedbackTypes,clockrate:e.clockrate,parameters:e.parameters,channels:e.channels}}a.r(t),a.d(t,{ActiveCallHeader:()=>Ae,GroupCall:()=>Ue,PhoneCall:()=>Fe,RatePhoneCallModal:()=>Be});const r=.1,c="getDisplayMedia"in(navigator?.mediaDevices||{}),l=navigator?.mediaDevices?.getSupportedConstraints().echoCancellation,d=navigator?.mediaDevices?.getSupportedConstraints().noiseSuppression,u=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}),{}),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],o=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}})),s=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}}}))},r=i("a=ssrc:","audio"),c=r&&Number(r.split(" ")[0]),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");const[u,p]=i("a=fingerprint:")?.split(" ")||[],m=i("a=setup:");if(!u||!p)throw Error("Failed parsing SDP: no fingerprint");console.log(a);const g=i("a=ice-ufrag:"),v=i("a=ice-pwd:");if(!g||!v)throw Error("Failed parsing SDP: no ICE ufrag or pwd");return{fingerprints:[{fingerprint:p,hash:u,setup:t?m:"active"}],pwd:v,ufrag:g,...c&&{ssrc:n(c)},...l&&{"ssrc-groups":[{semantics:l[0],sources:l.slice(1,l.length).map(Number).map(n)},t&&d&&{semantics:d[0],sources:d.slice(1,d.length).map(Number).map(n)}].filter(Boolean)},...t&&{audioExtmap:o("audio"),videoExtmap:o("video"),screencastExtmap:o("screencast"),audioPayloadTypes:s("audio"),videoPayloadTypes:s("video"),screencastPayloadTypes:s("screencast")}}},p=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 o=[],s=e=>{o.push(e)},{sessionId:r,ssrcs:c,audioExtensions:l,videoExtensions:d,audioPayloadTypes:u,videoPayloadTypes:p,transport:{ufrag:m,pwd:g,fingerprints:v,candidates:f}}=e;s("v=0"),s(`o=- ${r} 2 IN IP4 0.0.0.0`),s("s=-"),s("t=0 0"),s("a=ice-options:trickle"),s("a=msid-semantic:WMS *"),s(`a=group:BUNDLE ${c.map((e=>e.endpoint)).join(" ")}${a?"":" "+(n?"3":"2")}`),n||s("a=ice-lite");const h=e=>{if(e.sdpString)s(`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}`,s(t)}},C=()=>{s(`a=ice-ufrag:${m}`),s(`a=ice-pwd:${g}`),v.forEach((e=>{s(`a=fingerprint:${e.hash} ${e.fingerprint}`),s(`a=setup:${n?e.setup:"passive"}`)})),f.forEach(h)},P=e=>{const{channels:t,id:a,name:n,clockrate:i,parameters:o}=e;if(s(`a=rtpmap:${a} ${n}/${i}${t?`/${t}`:""}`),o){const e=Object.keys(o).map((e=>`${e}=${o[e]};`)).join(" ");s(`a=fmtp:${a} ${e}`)}e["rtcp-fbs"]?.forEach((e=>{s(`a=rtcp-fb:${a} ${e.type}${e.subtype?` ${e.subtype}`:""}`)}))},b=e=>{const a=e.isVideo?p:u,o=e.isVideo?"video":"audio";if(s(`m=${o} ${e.isMain?1:0} RTP/SAVPF ${a.map((e=>e.id)).join(" ")}`),s("c=IN IP4 0.0.0.0"),s("b=AS:1300"),s(`a=mid:${e.endpoint}`),s("a=rtcp-mux"),a.forEach(P),s("a=rtcp:1 IN IP4 0.0.0.0"),e.isVideo&&s("a=rtcp-rsize"),(e.isVideo?d:l).forEach((e=>{let{id:t,uri:a}=e;s(`a=extmap:${t} ${a}`)})),e.isRemoved)s("a=inactive");else{if(C(),n)s("a=sendrecv"),s("a=bundle-only");else{if(t)return void s("a=recvonly");e.isMain?s("a=sendrecv"):(s("a=sendonly"),s("a=bundle-only"))}e.sourceGroups.forEach((t=>{s(`a=ssrc-group:${t.semantics} ${t.sources.map(i).join(" ")}`),t.sources.forEach((t=>{const a=i(t);s(`a=ssrc:${a} cname:${e.endpoint}`),s(`a=ssrc:${a} msid:${e.endpoint} ${e.endpoint}`),s(`a=ssrc:${a} mslabel:${e.endpoint}`),s(`a=ssrc:${a} label:${e.endpoint}`)}))}))}};return n?c.filter(b):c.filter((e=>"0"===e.endpoint||"1"===e.endpoint)).map(b),a||(s("m=application 1 UDP/DTLS/SCTP webrtc-datachannel"),s("c=IN IP4 0.0.0.0"),C(),s("a=ice-options:trickle"),s("a=mid:"+(n?"3":a?"1":"2")),s("a=sctp-port:5000"),s("a=max-message-size:262144")),n||c.filter((e=>"0"!==e.endpoint&&"1"!==e.endpoint)).map(b),`${o.join("\n")}\n`},m=e=>{const t=e.createOscillator(),a=t.connect(e.createMediaStreamDestination());return t.start(),new MediaStream([Object.assign(a.stream.getAudioTracks()[0],{enabled:!1})])},g=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})])};let v,f;function h(e){v&&(v.screenshareDataChannel?.close(),v.screenshareConnection?.close(),e||v.onUpdate?.({"@type":"updateGroupCallLeavePresentation"}))}function C(e){return v?.streams?.[e]}function P(e,t){const a=v?.participantFunctions?.[e];a&&a.setVolume?.(t)}function b(e,t){const a=t||v?.myId,n=a&&C(a)?.[e];return!!n&&n.getTracks()[0]?.enabled}function y(e){v?.onUpdate?.({"@type":"updateGroupCallStreams",userId:e,hasAudioStream:b("audio",e),hasVideoStream:b("video",e),hasPresentationStream:b("presentation",e),amplitude:v.speaking?.[e]})}function Z(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&&{...l&&{echoCancellation:!0},...d&&{noiseSuppression:!0}},video:"video"===e&&{facingMode:t}})}async function w(){if(!(v?.myId&&v.connection&&v.streams&&v.facingMode))return;const e=C(v.myId)?.video;if(!e)return;const t=e.getTracks()[0];if(!t)return;const a=v.connection.getSenders().find((e=>t.id===e.track?.id));if(a){v.facingMode="environment"===v.facingMode?"user":"environment";try{const e=await Z("video",v.facingMode);await a.replaceTrack(e.getTracks()[0]),v.streams[v.myId].video=e}catch(e){}}}async function k(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if(!(v&&v.myId&&v.connection&&v.streams))return;const a=C(v.myId)?.[e];if(!a)return;const n=a.getTracks()[0];if(!n)return;const i=[...v.connection.getSenders(),...v.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 Z(e);if(await i.replaceTrack(t.getTracks()[0]),v.streams[v.myId][e]=t,"video"===e)v.facingMode="user";else if("audio"===e){const{audioContext:e}=v;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),v={...v,participantFunctions:{...v.participantFunctions,[v.myId]:{...v.participantFunctions?.[v.myId],getCurrentAmplitude:()=>{const e=new Uint8Array(n.frequencyBinCount);return n.getByteFrequencyData(e),o(e,1.5)}}}}}}else if(!t&&n.enabled){n.stop();const t="audio"===e?v.silence:v.black;if(!t)return;await i.replaceTrack(t.getTracks()[0]),v.streams[v.myId][e]=t,"video"===e&&(v.facingMode=void 0)}y(v.myId),"presentation"!==e||t||h(!0)}catch(e){}}}function E(e){v?.onUpdate?.({"@type":"updateGroupCallConnectionState",connectionState:e})}function S(){v&&(v.myId&&v.streams?.[v.myId]&&Object.values(v.streams[v.myId]||{}).forEach((e=>{e?.getTracks().forEach((e=>{e.stop()}))})),h(!0),v.dataChannel?.close(),v.connection?.close(),E("disconnected"),v.analyserInterval&&clearInterval(v.analyserInterval),v=void 0)}function I(){v&&v.participantFunctions&&Object.keys(v.participantFunctions).forEach((e=>{const{getCurrentAmplitude:t}=v.participantFunctions[Number(e)];if(t){const a=t(),n=v.speaking[e]||0;v.speaking[e]=a,(a>r&&n<=r||a<=r&&n>r)&&y(e)}}))}function N(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 T(e){if(!v)return;const{participants:t,conference:a,connection:n,myId:i}=v;if(!(t&&a&&n&&a.ssrcs&&a.transport&&i))return;if(e.find((e=>e.isSelf&&e.source!==v?.conference?.ssrcs?.find((e=>e.isMain&&!e.isVideo))?.sourceGroups[0].sources[0])))return void S();const o=[];if(e.forEach((e=>{if(console.log("handleUpdateGroupCallParticipants",e),e.isSelf)return void(e.isMuted&&!e.canSelfUnmute&&(k("audio",!1),k("video",!1),k("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||a.ssrcs.push({userId:e.id,isMain:!1,endpoint:`audio${e.source}`,isVideo:!1,sourceGroups:[{semantics:"FID",sources:[e.source]}]}),i||r||!e.video||(o.push(e.video.endpoint),a.ssrcs.push({userId:e.id,isMain:!1,endpoint:e.video.endpoint,isVideo:!0,sourceGroups:e.video.sourceGroups})),s||l||!e.presentation||a.ssrcs.push({isPresentation:!0,userId:e.id,isMain:!1,endpoint:e.presentation.endpoint,isVideo:!0,sourceGroups:e.presentation.sourceGroups})})),v.updatingParticipantsQueue)return void v.updatingParticipantsQueue.push(a);v.updatingParticipantsQueue=[];const s=p(a);console.log("build sdp!",s),await n.setRemoteDescription({type:"offer",sdp:s});try{const e=await n.createAnswer();if(await n.setLocalDescription(e),y(i),v.updatingParticipantsQueue.length>0)for(const e of v.updatingParticipantsQueue){await n.setRemoteDescription({type:"offer",sdp:p(e)});const t=await n.createAnswer();await n.setLocalDescription(t),y(i)}v.updatingParticipantsQueue=void 0}catch(e){console.error(e)}}function M(e){if(!(v&&v.audioElement&&v.audioContext&&v.mediaStream))return;const t=v.conference?.ssrcs?.find((t=>t.endpoint===e.track.id));if(!t||!t.userId)return;const{userId:a,isPresentation:n}=t,i=v.participants?.find((e=>e.id===a)),s="video"===e.track.kind?n?"presentation":"video":"audio";e.track.onended=()=>{delete v?.streams?.[a][s],y(a)};const r=e.streams[0];if("audio"===e.track.kind){const{mediaStream:e}=v,t=new window.AudioContext,n=t.createMediaStreamSource(r),s=t.createGain();s.gain.value=(i?.volume||1e4)/1e4;const c=t.createGain();s.gain.value=1;const l=t.createAnalyser();l.minDecibels=-100,l.maxDecibels=-30,l.smoothingTimeConstant=.05,l.fftSize=1024,n.connect(l).connect(c).connect(s).connect(t.destination),e.addTrack(n.mediaStream.getAudioTracks()[0]);const d=new Audio;d.srcObject=r,d.muted=!0,d.remove(),v={...v,participantFunctions:{...v.participantFunctions,[a]:{...v.participantFunctions?.[a],setVolume:e=>{s.gain.value=e>1?2*e:e},toggleMute:e=>{c.gain.value=e?0:1},getCurrentAmplitude:()=>{const e=new Uint8Array(l.frequencyBinCount);return l.getByteFrequencyData(e),o(e,1.5)}}}}}v={...v,streams:{...v.streams,[a]:{...v.streams?.[a],[s]:r}}},y(a)}function V(e,t){let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const n=new RTCPeerConnection,i=a?void 0:N(n);return e.forEach((e=>e.getTracks().forEach((t=>{n.addTrack(t,e)})))),a||(n.oniceconnectionstatechange=()=>{const e=n.iceConnectionState;console.log("ice",e),"connected"===e||"completed"===e?E("connected"):"checking"===e||"new"===e?E("connecting"):"disconnected"===n.iceConnectionState&&E("reconnecting")}),n.ontrack=M,n.onnegotiationneeded=async()=>{if(!v)return;const{myId:i}=v;if(!i)return;const o=await n.createOffer({offerToReceiveVideo:!0,offerToReceiveAudio:!a});if(console.log("created offer!",o),await n.setLocalDescription(o),!o.sdp)return;const s=u(o);console.log("parsed sdp",s);const r=a?void 0:{userId:"",sourceGroups:[{semantics:"FID",sources:[s.ssrc||0]}],isRemoved:a,isMain:!0,isVideo:!1,isPresentation:a,endpoint:a?"1":"0"},c=s["ssrc-groups"]&&{isPresentation:a,userId:"",sourceGroups:s["ssrc-groups"],isMain:!0,isVideo:!0,endpoint:a?"0":"1"},l=a?v.screenshareConference:v.conference,d=[];a?(c&&d.push(c),r&&d.push(r)):(r&&d.push(r),c&&d.push(c));const p=e.find((e=>"audio"===e.getTracks()[0].kind)),m=e.find((e=>"video"===e.getTracks()[0].kind));v={...v,...a?{screenshareConference:{...l,ssrcs:d}}:{conference:{...l,ssrcs:d}},streams:{...v.streams,[i]:{...v.streams?.[i],...p&&{audio:p},...!a&&m?{video:m}:{presentation:m}}}},y(i),t(s)},{connection:n,dataChannel:i}}function G(){f?.onUpdate({...f.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&&{...l&&{echoCancellation:!0},...d&&{noiseSuppression:!0}},video:"video"===e&&{facingMode:t}})}async function U(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if(!f)return;const a="audio"===e?f.streams.ownAudio:"video"===e?f.streams.ownVideo:f.streams.ownPresentation;if(!a)return;const n=a.getTracks()[0];if(!n)return;const i=f.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=()=>{U(e,!1)},await i.replaceTrack(t.getTracks()[0]),"audio"===e?f.streams.ownAudio=t:"video"===e?(f.streams.ownVideo=t,f.facingMode="user"):f.streams.ownPresentation=t,"video"!==e&&"presentation"!==e||U("video"===e?"presentation":"video",!1)}else if(!t&&n.enabled){n.stop();const t="audio"===e?f.silence:"video"===e?f.blackVideo:f.blackPresentation;if(!t)return;await i.replaceTrack(t.getTracks()[0]),"audio"===e?f.streams.ownAudio=t:"video"===e?f.streams.ownVideo=t:f.streams.ownPresentation=t}G(),$()}catch(e){}}}function A(){f&&(f.streams.ownVideo?.getTracks().forEach((e=>e.stop())),f.streams.ownPresentation?.getTracks().forEach((e=>e.stop())),f.streams.ownAudio?.getTracks().forEach((e=>e.stop())),f.dataChannel.close(),f.connection.close(),f=void 0)}function $(){if(!f)return;const{emitSignalingData:e,streams:t}=f;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 O(e){if(!f||f.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 R(e){if(!f)return;const{emitSignalingData:t}=f;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:i(e.ssrc).toString(),ssrcGroups:[],payloadTypes:e.audioPayloadTypes,rtpExtensions:e.audioExtmap},video:O({ssrc:i(e["ssrc-groups"][0].sources[0]).toString(),ssrcGroups:[{semantics:e["ssrc-groups"][0].semantics,ssrcs:e["ssrc-groups"][0].sources.map(i)}],payloadTypes:e.videoPayloadTypes,rtpExtensions:e.videoExtmap}),screencast:O({ssrc:i(e["ssrc-groups"][1].sources[0]).toString(),ssrcGroups:[{semantics:e["ssrc-groups"][1].semantics,ssrcs:e["ssrc-groups"][1].sources.map(i)}],payloadTypes:e.screencastPayloadTypes,rtpExtensions:e.screencastExtmap})})}async function j(e){if(f&&f.connection)switch(console.log(e),e["@type"]){case"MediaState":f.mediaState=e,G(),$();break;case"Candidates":{const{candidates:t,gotInitialSetup:a}=f;if(!t)return;e.candidates.forEach((e=>{f.candidates.push(e.sdpString)})),a&&await Promise.all(f.candidates.map((e=>f.connection.addIceCandidate({candidate:e,sdpMLineIndex:0}))));break}case"InitialSetup":{const{connection:t,isOutgoing:a}=f;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",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)||[],audioExtensions:e.audio.rtpExtensions,videoPayloadTypes:O(e.video).payloadTypes?.map(s)||[],videoExtensions:e.video.rtpExtensions};if(await t.setRemoteDescription({sdp:p(n,a,void 0,!0),type:a?"answer":"offer"}),f.conference=n,!a){const e=await t.createAnswer();if(!e)return;await t.setLocalDescription(e),R(u(e,!0))}f.gotInitialSetup=!0,await Promise.all(f.candidates.map((e=>t.addIceCandidate({candidate:e,sdpMLineIndex:0}))));break}}}var _=a(60748),x=a(33555),F=a(83716),L=a(71226),B=a(11192),q=a(42431),H=a(78958),J=a(88422),z=a(27225),X=a(5161),Y=a(60782),K=a(44271),Q=a(65054);(0,x.iw)("leaveGroupCall",(async(e,t,a)=>{const{isFromLibrary:n,shouldDiscard:i,shouldRemove:o,rejoin:s,tabId:r=(0,Q._w)()}=a||{},c=(0,q.mU)(e);c&&(e=(0,H.Ic)(e,{connectionState:"disconnected"},c.participantsCount-1),(0,x.R3)(e),await(0,L.t9)("leaveGroupCall",{call:c}),i&&await(0,L.t9)("discardGroupCall",{call:c}),e=(0,x.Rd)(),o&&(e=(0,H.dc)(e,c.id)),(0,J.Mt)(),e={...e,groupCalls:{...e.groupCalls,activeGroupCallId:void 0}},(0,x.R3)(e),t.toggleGroupCallPanel({force:void 0,tabId:r}),n||S(),t.afterHangUp(),s&&t.requestMasterAndJoinGroupCall({...s,tabId:r}))})),(0,x.iw)("toggleGroupCallVideo",(async e=>{const t=(0,q.mU)(e),a=(0,B.dy)(e,e.currentUserId);a&&t&&(await k("video"),await(0,L.t9)("editGroupCallParticipant",{call:t,videoStopped:!b("video"),participant:a}))})),(0,x.iw)("requestToSpeak",((e,t,a)=>{const{value:n}=a||{value:!0},i=(0,q.mU)(e),o=(0,B.dy)(e,e.currentUserId);o&&i&&(0,L.t9)("editGroupCallParticipant",{call:i,raiseHand:n,participant:o})})),(0,x.iw)("setGroupCallParticipantVolume",((e,t,a)=>{const{participantId:n,volume:i}=a,o=(0,q.mU)(e),s=(0,B.dy)(e,n);s&&o&&(P(n,Math.floor(i/F.Ro)/100),(0,L.t9)("editGroupCallParticipant",{call:o,volume:Number(i),participant:s}))})),(0,x.iw)("toggleGroupCallMute",(async(e,t,a)=>{const{participantId:n,value:i}=a||{},o=(0,q.mU)(e),s=(0,B.dy)(e,n||e.currentUserId);if(!s||!o)return;const r=void 0===i?b("audio",s.id):i;n?P(n,r?0:1):await k("audio"),await(0,L.t9)("editGroupCallParticipant",{call:o,muted:r,participant:s})})),(0,x.iw)("toggleGroupCallPresentation",(async(e,t,a)=>{const n=(0,q.mU)(e),i=(0,B.dy)(e,e.currentUserId);if(i&&n){if(void 0!==a?.value?a?.value:!b("presentation")){const e=await async function(){if(v)try{const e=await Z("presentation");if(!e)return;return e.getTracks()[0].onended=()=>{v&&v.myId&&(delete v.streams?.[v.myId].presentation,y(v.myId),h())},await new Promise((t=>{const{connection:a,dataChannel:n}=V([e],t,!0);v={...v,screenshareConnection:a,screenshareDataChannel:n}}))}catch(e){return}}();if(!e)return;await(0,L.t9)("joinGroupCallPresentation",{call:n,params:e})}else await k("presentation",!1),await(0,L.t9)("leaveGroupCallPresentation",{call:n});await(0,L.t9)("editGroupCallParticipant",{call:n,presentationPaused:!b("presentation"),participant:i})}})),(0,x.iw)("connectToActiveGroupCall",(async(e,t,a)=>{const{tabId:n=(0,Q._w)()}=a||{},i=(0,q.mU)(e);if(!i)return;if("discarded"===i.connectionState)return void t.showNotification({message:"This voice chat is not active",tabId:n});const o=(0,J.FF)(),s=(0,J.NH)();if(!o||!s)return;const{currentUserId:r}=e;if(!r)return;const c=await function(e,t,a,n){if(v)throw Error("Already in call");E("connecting");const i=new MediaStream;return a.srcObject=i,a.play().catch((e=>console.warn(e))),v={onUpdate:n,participants:[],myId:e,speaking:{},silence:m(t),black:g({width:640,height:480}),analyserInterval:setInterval(I,1e3),audioElement:a,audioContext:t,mediaStream:i},new Promise((e=>{v={...v,...V([v.silence,v.black],e)}}))}(r,s,o,t.apiUpdate),l=await(0,L.t9)("joinGroupCall",{call:i,params:c,inviteHash:i.inviteHash});if(e=(0,x.Rd)(),l&&(t.loadMoreGroupCallParticipants(),i.chatId)){e=(0,x.Rd)();const a=(0,B.Z1)(e,i.chatId);if(!a)return;await(0,z.ft)(e,t,a,n)}})),(0,x.iw)("connectToActivePhoneCall",(async(e,t)=>{const{phoneCall:a}=e;if(!a)return;const n=(0,q.fu)(e);if(!n)return;const i=await(0,L.t9)("getDhConfig");if(!i)return;await(0,L.t9)("createPhoneCallState",[!0]);const o=await(0,L.t9)("requestPhoneCall",[i]),s=await(0,L.t9)("requestCall",{user:n,gAHash:o,isVideo:a.isVideo});s?(e=(0,x.Rd)(),e=(0,X.Sh)(e,(0,Y.ee)(s.users,"id")),(0,x.R3)(e)):"hangUp"in t&&t.hangUp({tabId:(0,Q._w)()})})),(0,x.iw)("acceptCall",(async e=>{const{phoneCall:t}=e;if(!t)return;const a=await(0,L.t9)("getDhConfig");if(!a)return;await(0,L.t9)("createPhoneCallState",[!1]);const n=await(0,L.t9)("acceptPhoneCall",[a]),i=await(0,L.t9)("acceptCall",{call:t,gB:n});i&&(e=(0,x.Rd)(),e=(0,X.Sh)(e,(0,Y.ee)(i.users,"id")),(0,x.R3)(e))})),(0,x.iw)("sendSignalingData",((e,t,a)=>{const{phoneCall:n}=e;if(!n)return;const i=JSON.stringify(a);(async()=>{const e=await(0,L.t9)("encodePhoneCallData",[i]);e&&(0,L.t9)("sendSignalingData",{data:e,call:n})})()})),(0,x.iw)("closeCallRatingModal",((e,t,a)=>{const{tabId:n=(0,Q._w)()}=a||{};return(0,K.i)(e,{ratingPhoneCall:void 0},n)})),(0,x.iw)("setCallRating",((e,t,a)=>{const{rating:n,comment:i,tabId:o=(0,Q._w)()}=a,{ratingPhoneCall:s}=(0,B.jU)(e,o);if(s)return(0,L.t9)("setCallRating",{call:s,rating:n,comment:i}),(0,K.i)(e,{ratingPhoneCall:void 0},o)})),(0,x.iw)("hangUp",((e,t,a)=>{const{tabId:n=(0,Q._w)()}=a||{},{phoneCall:i}=e;if(i){if("discarded"===i.state)return(0,L.t9)("destroyPhoneCallState"),A(),e={...e,phoneCall:void 0},(0,x.R3)(e),t.toggleGroupCallPanel({force:void 0,tabId:n}),void t.afterHangUp();if((0,L.t9)("destroyPhoneCallState"),A(),(0,L.t9)("discardCall",{call:i}),"requesting"===i.state)return e={...e,phoneCall:void 0},(0,x.R3)(e),t.toggleGroupCallPanel({force:void 0,tabId:n}),void t.afterHangUp();setTimeout((()=>{e=(0,x.Rd)(),e={...e,phoneCall:void 0},(0,x.R3)(e),t.toggleGroupCallPanel({force:void 0,tabId:n}),t.afterHangUp()}),500)}}));var W=a(77361),ee=a(50711);const te=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]),ae=[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,x.iw)("apiUpdate",((e,t,a)=>{const{activeGroupCallId:n}=e.groupCalls;switch(a["@type"]){case"updateGroupCallLeavePresentation":t.toggleGroupCallPresentation({value:!1});break;case"updateGroupCallStreams":if(!a.userId||!n)break;if(!(0,q.GU)(e,n,a.userId))break;return(0,H.B6)(e,n,a.userId,(0,Y.CE)(a,["@type","userId"]));case"updateGroupCallConnectionState":if(!n)break;if("disconnected"===a.connectionState){"leaveGroupCall"in t&&t.leaveGroupCall({isFromLibrary:!0,tabId:(0,Q._w)()});break}return(0,H.AH)(e,n,{connectionState:a.connectionState,isSpeakerDisabled:a.isSpeakerDisabled});case"updateGroupCallParticipants":{const{groupCallId:e,participants:t}=a;n===e&&T(t);break}case"updateGroupCallConnection":{if(a.data.stream){t.showNotification({message:"Big live streams are not yet supported",tabId:(0,Q._w)()}),"leaveGroupCall"in t&&t.leaveGroupCall({tabId:(0,Q._w)()});break}!async function(e,t){if(!v)return;const a=t?v.screenshareConference:v.conference,n=t?v.screenshareConnection:v.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"]};v={...v,...t?{screenshareConference:o}:{conference:o}},console.warn("update remote description",o,p(o,!0,t));try{await n.setRemoteDescription({type:"answer",sdp:p(o,!0,t)})}catch(e){console.error(e)}}(a.data,a.presentation);const n=(0,q.mU)(e);n?.participants&&Object.keys(n.participants).length>0&&T(Object.values(n.participants));break}case"updatePhoneCallMediaState":return{...e,phoneCall:{...e.phoneCall,...(0,Y.CE)(a,["@type"])}};case"updatePhoneCall":{if(!W.Bi)return;const{phoneCall:n,currentUserId:i}=e,o={...n,...a.call},s=n?.adminId===i;if(e={...e,phoneCall:o},n&&n.id&&o.id!==n.id)return void("discarded"!==o.state&&(0,L.t9)("discardCall",{call:o,isBusy:!0}));const{accessHash:r,state:c,connections:l,gB:d}=o;if(("active"===c||"accepted"===c)&&!o.protocol?.libraryVersions.some((e=>"4.0.0"===e||"4.0.1"===e))){const a=(0,q.fu)(e);return"hangUp"in t&&t.hangUp({tabId:(0,Q._w)()}),void t.showNotification({message:ee.Iu("VoipPeerIncompatible",a?.firstName),tabId:(0,Q._w)()})}if("discarded"===c){if(!n)return;return(0,K.i)(e,{...o.needRating&&{ratingPhoneCall:o},isCallPanelVisible:void 0},(0,Q._w)())}return"accepted"===c&&r&&d?(async()=>{const{gA:t,keyFingerprint:a,emojis:n}=await(0,L.t9)("confirmPhoneCall",[d,te,ae]),i={...(e=(0,x.Rd)()).phoneCall,emojis:n};e={...e,phoneCall:i},(0,x.R3)(e);const s=await(0,L.t9)("confirmCall",{call:o,gA:t,keyFingerprint:a});s&&(e=(0,x.Rd)(),e=(0,X.Sh)(e,(0,Y.ee)(s.users,"id")),(0,x.R3)(e))})():"active"===c&&l&&"active"!==n?.state&&(s||((0,L.t9)("receivedCall",{call:o}),(async()=>{const{emojis:t}=await(0,L.t9)("confirmPhoneCall",[o.gAOrB,te,ae]),a={...(e=(0,x.Rd)()).phoneCall,emojis:t};e={...e,phoneCall:a},(0,x.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=m(new AudioContext),r=g({width:640,height:480}),c=g({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(!f)return;const t=e.streams[0];"audio"===e.track.kind?(f.audio.srcObject=t,f.audio.play().catch(),f.streams.audio=t):"1"===e.transceiver.mid?f.streams.video=t:f.streams.presentation=t,G()};const l=o.createDataChannel("data",{id:0,negotiated:!0});l.onmessage=e=>{j(JSON.parse(e.data))};const d=new Audio;f={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&&U("video",!0),U("audio",!0)}catch(e){}if(a){const e=await o.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});await o.setLocalDescription(e),R(u(e,!0))}}(l,t.sendSignalingData,s,Boolean(o?.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,Q._w)()})):{...e,phoneCall:{...e.phoneCall,isConnected:"connected"===n}}:e}case"updatePhoneCallSignalingData":{const{phoneCall:t}=e;if(!t)break;(0,L.t9)("decodePhoneCallData",[a.data])?.then(j);break}}}));var ne=a(13365),ie=a(46752),oe=a(60706),se=a(59107),re=a(42797),ce=a(34288),le=a(231),de=a(53106),ue=a(58964),pe=a(13103);const me=()=>{navigator.vibrate?.(50)};var ge=a(87204),ve=a(58912);const fe=(0,_.X$)((0,x.c$)((e=>{const t=(0,q.mU)(e),{connectionState:a}=t||{},n=t&&(0,q.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{noAudioStream:t,canSelfUnmute:a,isMuted:n,hasRequestedToSpeak:i,connectionState:o}=e;const{toggleGroupCallMute:s,requestToSpeak:r,playGroupCallSound:c}=(0,x.Sv)(),l=(0,se.Z)(),d=(0,_.sO)("up"),[u,p]=(0,_.eJ)(!1),m="connected"!==o,g=!a&&n,v=(0,ge.Z)(g);(0,_.d4)((()=>{v&&!g&&c({sound:"allowTalk"})}),[c,v,g]);const f=(0,_.Ye)((()=>{if(u){const e=Math.floor(100*Math.random());return e<32?[0,120]:e<64?[120,240]:e<97?[240,420]:[420,540]}return!v&&g?t?[99,135]:[136,172]:v&&!g?[0,36]:g?[0,0]:t?[69,99]:[36,69]}),[v,u,t,g]),h=u?"HandFilled":"VoiceMini",C=()=>{me(),s()},P=l(i?"VoipMutedTapedForSpeak":g?"VoipMutedByAdmin":t?"VoipUnmute":"VoipTapToMute");return _.ZP.createElement("div",{className:"button-wrapper microphone-wrapper"},_.ZP.createElement("button",{className:(0,ie.Z)("MicrophoneButton",t&&"crossed",a&&"can-self-unmute",m&&"is-connecting",g&&"muted-by-admin"),onMouseDown:()=>{if(g){if(u)return;return me(),r(),p(!0),void setTimeout((()=>{p(!1)}),3e3)}d.current="down",t&&setTimeout((()=>{"down"===d.current&&(d.current="hold",C())}),200)},onMouseUp:()=>{g||(C(),d.current="up")}},_.ZP.createElement(ve.Z,{tgsUrl:ne.l[h],size:48,playSegment:f})),_.ZP.createElement("div",{className:"button-text"},P))})));var he=a(14605),Ce=a(80036),Pe=a(3927),be=a(52328),ye=a(22275);const Ze=[0,17],we=[17,34],ke=(0,_.X$)((0,x.c$)((e=>({isAdmin:(0,q.Ht)(e)})))((e=>{let{participant:t,closeDropdown:a,isDropdownOpen:n,anchor:i,isAdmin:o}=e;const{toggleGroupCallMute:s,setGroupCallParticipantVolume:r,toggleGroupCallPanel:c,openChat:l,requestToSpeak:d}=(0,x.Sv)(),u=(0,se.Z)(),[p,m,g]=(0,oe.Z)(),v=t?.id,{isMutedByMe:f,isMuted:h,isSelf:C,canSelfUnmute:P}=t||{},b=Boolean(t?.raiseHandRating),y=!P&&h,[Z,w]=(0,_.eJ)(f?0:(t?.volume||F.aCB)/F.Ro);(0,_.d4)((()=>{w(f?0:(t?.volume||F.aCB)/F.Ro)}),[v]);const k=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return(0,Pe.Z)((e=>{e()}),a,e,t)}(500),E=(0,_.I4)((e=>{e.stopPropagation(),m(),a()}),[m,a]),S=(0,_.I4)((e=>{e.stopPropagation(),d({value:!1}),a()}),[d,a]),I=(0,_.I4)((e=>{e.stopPropagation(),a(),o||w(f?F.aCB/F.Ro:0),s({participantId:v,value:o?!y:!f})}),[a,s,v,o,y,f]),N=(0,_.I4)((e=>{e.stopPropagation(),c(),l({id:v}),a()}),[c,a,l,v]),T=0===Z?Ze:we;return _.ZP.createElement("div",null,_.ZP.createElement(be.Z,{isOpen:n,positionX:"right",autoClose:!0,style:(0,Ce.Z)(i&&`right: 1rem; top: ${i.y}px`),onClose:a,className:"participant-menu"},!C&&!y&&_.ZP.createElement("div",{className:"group"},_.ZP.createElement("div",{className:(0,ie.Z)("volume-control",Z<50&&"low",Z>=50&&Z<100&&"medium",Z>=100&&Z<150&&"normal",Z>=150&&"high")},_.ZP.createElement("input",{type:"range",min:"0",max:"200",value:Z,onChange:e=>{const t=Number(e.target.value);w(t),k((()=>{0===t?s({participantId:v,value:!0}):r({participantId:v,volume:Math.floor(t*F.Ro)})}))}}),_.ZP.createElement("div",{className:"info"},_.ZP.createElement(ve.Z,{tgsUrl:ne.l.Speaker,playSegment:T,size:24}),_.ZP.createElement("span",null,Z,"%")))),_.ZP.createElement("div",{className:"group"},b&&C&&_.ZP.createElement(ue.Z,{icon:"stop-raising-hand",onClick:S},u("VoipGroupCancelRaiseHand")),!C&&_.ZP.createElement(ue.Z,{icon:"user",onClick:N},u("VoipGroupOpenProfile")),!C&&_.ZP.createElement(ue.Z,{icon:h&&o?"allow-speak":"microphone-alt",onClick:I},u(o?y?"VoipGroupAllowToSpeak":"VoipMute":f?"VoipGroupUnmuteForMe":"VoipGroupMuteForMe")),!C&&o&&_.ZP.createElement(ue.Z,{icon:"delete-user",destructive:!0,onClick:E},u("VoipGroupUserRemove")))),!C&&o&&_.ZP.createElement(ye.Z,{isOpen:p,userId:v,onClose:g}))})));var Ee=a(27407),Se=a(70172);const Ie=(0,_.X$)((e=>{let{participant:t,noColor:a}=e;const{isMuted:n,isMutedByMe:i}=t,o=(t.amplitude||0)>r,s=Boolean(t.raiseHandRating),c=(0,ge.Z)(s),l=!Boolean(t?.canSelfUnmute)&&n,d=(0,ge.Z)(n),u=(0,_.Ye)((()=>n&&!d?[43,64]:!n&&d?[22,42]:s&&!c?[65,84]:!l&&c?[0,21]:n?[22,23]:[43,44]),[n,l,s]),p=(0,_.Ye)((()=>a?[255,255,255]:s?[77,166,224]:l||i?[255,112,111]:o?[87,188,108]:[132,141,148]),[a,s,l,i,o]);return _.ZP.createElement(ve.Z,{tgsUrl:ne.l.VoiceOutlined,playSegment:u,size:28,color:p})})),Ne=(0,_.X$)((0,x.c$)(((e,t)=>{let{participant:a}=t;return{user:a.isUser?(0,B.dy)(e,a.id):void 0,chat:a.isUser?void 0:(0,B.Z1)(e,a.id)}}))((e=>{let{openParticipantMenu:t,participant:a,user:n,chat:i}=e;const o=(0,_.sO)(null),s=(0,se.Z)(),{isSelf:c,isMutedByMe:l,isMuted:d}=a,u=(a.amplitude||0)>r,p=Boolean(a.raiseHandRating),[m,g]=(0,_.Ye)((()=>c?[s("ThisIsYou"),"blue"]:l?[s("VoipGroupMutedForMe"),"red"]:p?[s("WantsToSpeak"),"blue"]:!d&&u?[a.volume&&a.volume!==F.aCB?s("SpeakingWithVolume",(a.volume/F.Ro).toString()).replace("%%","%"):s("Speaking"),"green"]:a.about?[a.about,""]:[s("Listening"),"blue"]),[u,a.volume,s,c,l,p,d,a.about]);if(!n&&!i)return;const v=n?`${n.firstName||""} ${n.lastName||""}`:i?.title;return _.ZP.createElement("div",{className:(0,ie.Z)("GroupCallParticipant",a.canSelfUnmute&&"can-self-unmute"),onClick:()=>{c||t(o.current,a)},ref:o},_.ZP.createElement(Se.Z,{user:n,chat:i,size:"medium"}),_.ZP.createElement("div",{className:"info"},_.ZP.createElement("span",{className:"name"},v),_.ZP.createElement("span",{className:(0,ie.Z)("about",g)},m)),_.ZP.createElement("div",{className:"microphone"},_.ZP.createElement(Ie,{participant:a})))})));var Te=a(21273);const Me=(0,_.X$)((0,x.c$)((e=>{const{participantsCount:t,participants:a}=(0,q.mU)(e)||{};return{participants:a,participantsCount:t||0}}))((e=>{let{participants:t,participantsCount:a,openParticipantMenu:n}=e;const{createGroupCallInviteLink:i,loadMoreGroupCallParticipants:o}=(0,x.Sv)(),s=(0,se.Z)(),r=(0,_.Ye)((()=>Object.keys(t||{})),[t]),c=(0,_.I4)((()=>{o()}),[o]),[l,d]=(0,Ee.Z)(c,r,r.length>=a);return _.ZP.createElement("div",{className:"participants"},_.ZP.createElement("div",{className:"invite-btn",onClick:function(){i()}},_.ZP.createElement("div",{className:"icon"},_.ZP.createElement("i",{className:"icon-add-user"})),_.ZP.createElement("div",{className:"text"},s("VoipGroupInviteMember"))),_.ZP.createElement(Te.Z,{items:l,onLoadMore:d},l?.map((e=>t[e]&&_.ZP.createElement(Ne,{key:e,openParticipantMenu:n,participant:t[e]})))))}))),Ve=(0,_.X$)((0,x.c$)(((e,t)=>{let{participant:a}=t;return{currentUserId:e.currentUserId,user:a.isUser?(0,B.dy)(e,a.id):void 0,chat:a.isUser?void 0:(0,B.Z1)(e,a.id),isActive:(a.amplitude||0)>r}}))((e=>{let{type:t,onClick:a,user:n,chat:i,isActive:o,isFullscreen:s}=e;const r=(0,se.Z)(),c=(0,_.I4)((()=>{a&&a(n?.id||i.id,t)}),[i,a,t,n?.id]);if(!n&&!i)return;const l=C(n?.id||i.id);return _.ZP.createElement("div",{className:(0,ie.Z)("GroupCallParticipantVideo",o&&"active"),onClick:c},s&&_.ZP.createElement("button",{className:"back-button"},_.ZP.createElement("i",{className:"icon-arrow-left"}),r("Back")),_.ZP.createElement(Se.Z,{user:n,chat:i,className:"thumbnail-avatar"}),!F.gdz&&_.ZP.createElement("div",{className:"thumbnail-wrapper"},_.ZP.createElement("video",{className:"thumbnail",muted:!0,autoPlay:!0,playsInline:!0,srcObject:l?.[t]})),_.ZP.createElement("video",{className:"video",muted:!0,autoPlay:!0,playsInline:!0,srcObject:l?.[t]}),_.ZP.createElement("div",{className:"info"},_.ZP.createElement("i",{className:"icon-microphone-alt"}),_.ZP.createElement("span",{className:"name"},n?.firstName||i?.title),"presentation"===t&&_.ZP.createElement("i",{className:"last-icon icon-active-sessions"})))}))),Ge=(0,_.X$)((0,x.c$)((e=>{const{participants:t}=(0,q.mU)(e)||{};return{participants:t}}))((e=>{let{participants:t,onDoubleClick:a}=e;const[n,i]=(0,_.eJ)(void 0),o=(0,_.Ye)((()=>Object.values(t||{}).filter((e=>e.hasPresentationStream))),[t]),s=(0,_.Ye)((()=>Object.values(t||{}).filter((e=>e.hasVideoStream))),[t]),r=s.length+o.length,c=r<=2?1:r<=6?2:r<=9?3:4,l=3===r||2===c&&r%2!=0,d=(0,_.I4)(((e,t)=>{n&&e===n.id&&t===n.type?i(void 0):i({id:e,type:t})}),[n]);return _.ZP.createElement("div",{className:"streams",onDoubleClick:a},_.ZP.createElement("div",{className:(0,ie.Z)("videos",l&&"span-last-video"),style:`--column-count: ${n?1:c}`},n&&_.ZP.createElement(Ve,{key:n.id,isFullscreen:!0,onClick:d,participant:t[n.id],type:n.type}),n?void 0:o.map((e=>_.ZP.createElement(Ve,{key:e.id,onClick:d,participant:e,type:"presentation"}))),n?void 0:s.map((e=>_.ZP.createElement(Ve,{key:e.id,onClick:d,participant:e,type:"video"})))))}))),De=[0,10],Ue=(0,_.X$)((0,x.c$)(((e,t)=>{let{groupCallId:a}=t;const{connectionState:n,title:i,isSpeakerDisabled:o,participants:s,participantsCount:r}=(0,q.$5)(e,a)||{};return{connectionState:n,title:i,isSpeakerEnabled:!o,participantsCount:r,meParticipant:(0,q.GU)(e,a,e.currentUserId),isCallPanelVisible:Boolean((0,B.jU)(e).isCallPanelVisible),isAdmin:(0,q.Ht)(e),participants:s}}))((e=>{let{groupCallId:t,isCallPanelVisible:a,connectionState:n,isSpeakerEnabled:i,title:o,meParticipant:s,isAdmin:r,participants:l}=e;const{toggleGroupCallVideo:d,toggleGroupCallPresentation:u,leaveGroupCall:p,toggleGroupCallPanel:m,connectToActiveGroupCall:g,playGroupCallSound:f}=(0,x.Sv)(),h=(0,se.Z)(),C=(0,_.sO)(null),{isMobile:P,isLandscape:b}=(0,re.ZP)(),[y,Z]=(0,_.eJ)(!1),[k,E,S]=(0,oe.Z)(),[I,N,T]=(0,oe.Z)(!0),M=Object.values(l).some((e=>{let{video:t,presentation:a}=e;return t||a})),V=k&&(!P||b)&&M,[G,D]=(0,_.eJ)(),[U,A,$]=(0,oe.Z)(),[O,R,j]=(0,oe.Z)(),[F,L]=(0,_.eJ)(!1),[B,q]=(0,_.eJ)(!1),H=s?.hasVideoStream,J=s?.hasPresentationStream,z="connected"!==n,X=s?.canSelfUnmute,Y=!X&&s?.isMuted,K=(0,_.I4)(((e,t)=>{const a=e.getBoundingClientRect(),n=C.current;D({anchor:{x:a.left,y:a.top-n.offsetTop+60},participant:t}),A()}),[A]);(0,_.d4)((()=>{"connected"===n?f({sound:"join"}):"reconnecting"===n&&f({sound:"connecting"})}),[n,f]);const Q=(0,_.I4)((()=>{j(),L(!1)}),[j]),ee=(0,_.Ye)((()=>e=>{let{onTrigger:t,isOpen:a}=e;return _.ZP.createElement(le.Z,{round:!0,size:"smaller",color:"translucent",className:a?"active":void 0,onClick:t,ariaLabel:h("AccDescrMoreOptions")},_.ZP.createElement("i",{className:"icon-more"}))}),[h]),te=(0,_.I4)((()=>{C.current&&(k?document.exitFullscreen().then(S):C.current.requestFullscreen().then(E))}),[S,k,E]),ae=(0,_.I4)((()=>{I?T():N()}),[T,I,N]),me=(0,_.I4)((()=>{W.t0&&(k||T(),te())}),[T,te,k]),ge=(0,_.I4)((()=>{k?S():E()}),[S,k,E]),Ce=(0,_.I4)((()=>{m(),k&&S()}),[S,k,m]);(0,_.d4)((()=>{if(!W.t0)return;const e=C.current;return e?(e.addEventListener("fullscreenchange",ge),()=>{e.removeEventListener("fullscreenchange",ge)}):void 0}),[ge]),(0,_.d4)((()=>{g()}),[g,t]);const Pe=(0,_.I4)((()=>{L(!0),q(!0),R(),k&&te()}),[te,k,R]),be=(0,_.I4)((()=>{if(r&&!O)return R(),void(k&&te());f({sound:"leave"}),Z(!0),j()}),[j,te,r,O,k,R,f]),ye=(0,_.I4)((()=>{y&&p({shouldDiscard:B})}),[y,p,B]),Ze=(0,_.I4)((()=>{u()}),[u]);return _.ZP.createElement(pe.Z,{isOpen:!a&&!y,onClose:m,className:(0,ie.Z)("GroupCall",P&&!b&&"single-column",V&&"landscape",!I&&"no-sidebar"),dialogRef:C,onCloseAnimationEnd:ye},_.ZP.createElement("div",{className:"header"},_.ZP.createElement("h3",null,o||h("VoipGroupVoiceChat")),W.t0&&_.ZP.createElement(le.Z,{round:!0,size:"smaller",color:"translucent",onClick:te,ariaLabel:h(k?"AccExitFullscreen":"AccSwitchToFullscreen")},_.ZP.createElement("i",{className:k?"icon-smallscreen":"icon-fullscreen"})),V&&_.ZP.createElement(le.Z,{round:!0,size:"smaller",color:"translucent",onClick:ae},_.ZP.createElement("i",{className:"icon-sidebar"})),(c&&!Y||r)&&_.ZP.createElement(de.Z,{positionX:"right",trigger:ee},c&&!Y&&_.ZP.createElement(ue.Z,{icon:"share-screen-outlined",onClick:Ze},h(J?"VoipChatStopScreenCapture":"VoipChatStartScreenCapture")),r&&_.ZP.createElement(ue.Z,{icon:"phone-discard-outline",onClick:Pe,destructive:!0},h("VoipGroupLeaveAlertEndChat"))),_.ZP.createElement(le.Z,{round:!0,size:"smaller",color:"translucent",onClick:Ce},_.ZP.createElement("i",{className:"icon-close"}))),_.ZP.createElement("div",{className:"scrollable custom-scroll"},_.ZP.createElement(Ge,{onDoubleClick:me}),(!V||I)&&_.ZP.createElement(Me,{openParticipantMenu:K})),_.ZP.createElement(ke,{participant:G?.participant,anchor:G?.anchor,isDropdownOpen:U,closeDropdown:$}),_.ZP.createElement("div",{className:"buttons"},z&&_.ZP.createElement(ce.Z,null),_.ZP.createElement("div",{className:"button-wrapper"},_.ZP.createElement("div",{className:"video-buttons"},H&&(W.wZ||W.cj)&&_.ZP.createElement("button",{className:"smaller-button",onClick:w},_.ZP.createElement(ve.Z,{tgsUrl:ne.l.CameraFlip,playSegment:De,size:24})),_.ZP.createElement("button",{className:(0,ie.Z)("small-button",Y?"speaker":"camera",(H||Y&&i)&&"active"),onClick:()=>{Y?v&&(v.isSpeakerDisabled=!v.isSpeakerDisabled,v?.onUpdate?.({"@type":"updateGroupCallConnectionState",connectionState:"connected",isSpeakerDisabled:v.isSpeakerDisabled}),v.participantFunctions&&Object.values(v.participantFunctions).forEach((e=>{e.toggleMute?.(!!v?.isSpeakerDisabled)}))):d()}},_.ZP.createElement("i",{className:Y?"icon-speaker":H?"icon-video-stop":"icon-video"}))),_.ZP.createElement("div",{className:"button-text"},h(Y?"VoipSpeaker":"VoipCamera"))),_.ZP.createElement(fe,null),_.ZP.createElement("div",{className:"button-wrapper"},_.ZP.createElement("button",{className:"small-button leave",onClick:be},_.ZP.createElement("i",{className:"icon-phone-discard"})),_.ZP.createElement("div",{className:"button-text"},h("VoipGroupLeave")))),_.ZP.createElement(pe.Z,{isOpen:O,onClose:Q,className:"error",title:h(F?"VoipGroupEndAlertTitle":"VoipGroupLeaveAlertTitle")},_.ZP.createElement("p",null,h(F?"VoipGroupEndAlertText":"VoipGroupLeaveAlertText")),!F&&_.ZP.createElement(he.Z,{label:h("VoipGroupEndChat"),checked:B,onCheck:q}),_.ZP.createElement("div",{className:"dialog-buttons"},_.ZP.createElement(le.Z,{isText:!0,className:"confirm-dialog-button",onClick:be},h(F?"VoipGroupEnd":"VoipGroupLeave")),_.ZP.createElement(le.Z,{isText:!0,className:"confirm-dialog-button",onClick:Q},h("Cancel")))))}))),Ae=(0,_.X$)((0,x.c$)((e=>{const t=(0,B.jU)(e);return{groupCall:t.isMasterTab?(0,q.mU)(e):void 0,isCallPanelVisible:t.isCallPanelVisible,phoneCallUser:t.isMasterTab?(0,q.fu)(e):void 0}}))((e=>{let{groupCall:t,phoneCallUser:a,isCallPanelVisible:n}=e;const{toggleGroupCallPanel:i}=(0,x.Sv)(),o=(0,se.Z)();if((0,_.d4)((()=>(document.body.classList.toggle("has-call-header",Boolean(n)),()=>{document.body.classList.toggle("has-call-header",!1)})),[n]),t||a)return _.ZP.createElement("div",{className:(0,ie.Z)("ActiveCallHeader",n&&"open"),onClick:function(){i()}},_.ZP.createElement("span",{className:"title"},a?.firstName||t?.title||o("VoipGroupVoiceChat")))})));var $e=a(32340),Oe=a(790),Re=a(62357),je=a(65326);const _e=(0,_.X$)((e=>{let{onClick:t,label:a,customIcon:n,icon:i,iconClassName:o,className:s,isDisabled:r,isActive:c}=e;return _.ZP.createElement("div",{className:"eWbOLx__FZXR1sqKEJek"},_.ZP.createElement(le.Z,{round:!0,className:(0,ie.Z)(s,"XKOJvKiD4DsRfJLLhnw2",c&&"qvAVe7qcyaEvRQQ1StFI"),onClick:t,disabled:r},n||_.ZP.createElement("i",{className:(0,ie.Z)(o,`icon-${i}`)})),_.ZP.createElement("div",{className:"wnAniFJmQ7ocVtjRHNey"},a))})),xe={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"},Fe=(0,_.X$)((0,x.c$)((e=>{const{phoneCall:t,currentUserId:a}=e,{isCallPanelVisible:n,isMasterTab:i}=(0,B.jU)(e);return{isCallPanelVisible:Boolean(n),user:(0,q.fu)(e),isOutgoing:t?.adminId===a,phoneCall:i?t:void 0,animationLevel:e.settings.byKey.animationLevel}}))((e=>{let{user:t,isOutgoing:a,phoneCall:n,isCallPanelVisible:i,animationLevel:o}=e;const s=(0,se.Z)(),{hangUp:r,requestMasterAndAcceptCall:l,playGroupCallSound:d,toggleGroupCallPanel:u,connectToActivePhoneCall:p}=(0,x.Sv)(),m=(0,_.sO)(null),[g,v,h]=(0,oe.Z)(),{isMobile:C}=(0,re.ZP)(),P=(0,_.I4)((()=>{g?h():v()}),[h,g,v]),b=(0,_.I4)((()=>{m.current&&(g?document.exitFullscreen().then(h):m.current.requestFullscreen().then(v))}),[h,g,v]);(0,_.d4)((()=>{if(!W.t0)return;const e=m.current;return e?(e.addEventListener("fullscreenchange",P),()=>{e.removeEventListener("fullscreenchange",P)}):void 0}),[P]);const y=(0,_.I4)((()=>{u(),g&&h()}),[h,g,u]),Z="discarded"===n?.state,w="busy"===n?.reason,k="requested"===n?.state&&!a,E=("requested"===n?.state||"waiting"===n?.state)&&a,S="active"===n?.state,I=n?.isConnected,[N,T,M]=(0,oe.Z)(),V=(0,_.I4)((()=>{T(),r()}),[r,T]);(0,_.d4)((()=>{N?d({sound:"end"}):k?d({sound:"incoming"}):w?d({sound:"busy"}):Z?d({sound:"end"}):E?d({sound:"ringing"}):I&&d({sound:"connect"})}),[w,Z,k,E,I,d,N]),(0,_.d4)((()=>{n?.id?M():p()}),[p,n?.id,M]);const A=(0,je.Z)();(0,Re.Z)((()=>{A()}),I?1e3:void 0);const $=(0,_.Ye)((()=>{const e=n?.state;return N?s("lng_call_status_hanging"):w?"busy":"requesting"===e?s("lng_call_status_requesting"):"requested"===e?s(a?"lng_call_status_ringing":"lng_call_status_incoming"):"waiting"===e?s("lng_call_status_waiting"):"active"===e&&I?void 0:s("lng_call_status_exchanging")}),[w,I,N,a,s,n?.state]),O="active"===n?.videoState,R="active"===n?.screencastState,j=f?.streams,F=j?.ownAudio?.getTracks()[0].enabled,L=j?.ownPresentation?.getTracks()[0].enabled,B=j?.ownVideo?.getTracks()[0].enabled,[q,H,J]=(0,oe.Z)(),[z,X,Y]=(0,oe.Z)(),K=(0,_.I4)((()=>{L&&H(),B&&X(),setTimeout((async()=>{await U("presentation"),J(),Y()}),250)}),[L,B,H,X,J,Y]),Q=(0,_.I4)((()=>{B&&X(),L&&H(),setTimeout((async()=>{await U("video"),J(),Y()}),250)}),[L,B,H,X,J,Y]),ee=(0,_.I4)((()=>{U("audio")}),[]),[te,ae,ce]=(0,oe.Z)(),[de,ue,me]=(0,oe.Z)(),ge=(0,_.I4)((()=>{ue(),async function(){if(!f||!f.facingMode)return;const e=f.streams.ownVideo;if(!e)return;const t=e.getTracks()[0];if(!t)return;const a=f.connection.getSenders().find((e=>t.id===e.track?.id));if(a){f.facingMode="environment"===f.facingMode?"user":"environment";try{const e=await D("video",f.facingMode);await a.replaceTrack(e.getTracks()[0]),f.streams.ownVideo=e,G()}catch(e){}}}(),setTimeout(me,250)}),[ue,me]),fe=n?.startDate&&Number(new Date)/1e3-n.startDate;return(0,_.d4)((()=>{"discarded"===n?.state&&setTimeout(r,250)}),[r,n?.reason,n?.state]),_.ZP.createElement(pe.Z,{isOpen:n&&"discarded"!==n?.state&&!i,onClose:y,className:(0,ie.Z)(xe.root,C&&xe.singleColumn),dialogRef:m},_.ZP.createElement(Se.Z,{user:t,size:"jumbo",className:O||R?xe.blurred:"",withVideo:!0,noLoop:"requesting"!==n?.state,animationLevel:o}),"active"===n?.screencastState&&j?.presentation&&_.ZP.createElement("video",{className:xe.mainVideo,muted:!0,autoPlay:!0,playsInline:!0,srcObject:j.presentation}),"active"===n?.videoState&&j?.video&&_.ZP.createElement("video",{className:xe.mainVideo,muted:!0,autoPlay:!0,playsInline:!0,srcObject:j.video}),_.ZP.createElement("video",{className:(0,ie.Z)(xe.secondVideo,!q&&L&&xe.visible,g&&xe.fullscreen),muted:!0,autoPlay:!0,playsInline:!0,srcObject:j?.ownPresentation}),_.ZP.createElement("video",{className:(0,ie.Z)(xe.secondVideo,!z&&B&&xe.visible,g&&xe.fullscreen),muted:!0,autoPlay:!0,playsInline:!0,srcObject:j?.ownVideo}),_.ZP.createElement("div",{className:xe.header},W.t0&&_.ZP.createElement(le.Z,{round:!0,size:"smaller",color:"translucent",onClick:b,ariaLabel:s(g?"AccExitFullscreen":"AccSwitchToFullscreen")},_.ZP.createElement("i",{className:g?"icon-smallscreen":"icon-fullscreen"})),_.ZP.createElement(le.Z,{round:!0,size:"smaller",color:"translucent",onClick:y,className:xe.closeButton},_.ZP.createElement("i",{className:"icon-close"}))),_.ZP.createElement("div",{className:(0,ie.Z)(xe.emojisBackdrop,te&&xe.open),onClick:te?ce:ae},_.ZP.createElement("div",{className:(0,ie.Z)(xe.emojis,te&&xe.open)},n?.isConnected&&n?.emojis&&(0,$e.Z)(n.emojis,["emoji"])),_.ZP.createElement("div",{className:(0,ie.Z)(xe.emojiTooltip,te&&xe.open)},s("CallEmojiKeyTooltip",t?.firstName).replace("%%","%"))),_.ZP.createElement("div",{className:xe.userInfo},_.ZP.createElement("h1",null,t?.firstName),_.ZP.createElement("span",{className:xe.status},$||(0,Oe.k9)(fe||0))),_.ZP.createElement("div",{className:xe.buttons},_.ZP.createElement(_e,{onClick:ee,icon:"microphone",isDisabled:!S,isActive:F,label:s(F?"lng_call_mute_audio":"lng_call_unmute_audio")}),_.ZP.createElement(_e,{onClick:Q,icon:"video",isDisabled:!S,isActive:B,label:s(B?"lng_call_stop_video":"lng_call_start_video")}),B&&(W.wZ||W.cj)&&_.ZP.createElement(_e,{onClick:ge,customIcon:_.ZP.createElement(ve.Z,{tgsUrl:ne.l.CameraFlip,playSegment:de?[0,10]:[0,1],size:32}),isDisabled:!S,label:s("VoipFlip")}),c&&_.ZP.createElement(_e,{onClick:K,icon:"share-screen",isDisabled:!S,isActive:L,label:s("lng_call_screencast")}),k&&_.ZP.createElement(_e,{onClick:l,icon:"phone-discard",isDisabled:Z,label:s("lng_call_accept"),className:xe.accept,iconClassName:xe.acceptIcon}),_.ZP.createElement(_e,{onClick:V,icon:"phone-discard",isDisabled:Z,label:s(k?"lng_call_decline":"lng_call_end_call"),className:xe.leave})))})));var Le=a(97687);const Be=(0,_.X$)((e=>{let{isOpen:t}=e;const{closeCallRatingModal:a,setCallRating:n}=(0,x.Sv)(),i=(0,_.sO)(null),o=(0,se.Z)(),[s,r]=(0,_.eJ)(),c=(0,_.I4)((()=>{s?n({rating:s+1,comment:i.current?.value||""}):a()}),[a,s,n]),l=(0,_.I4)((()=>{a()}),[a]);return _.ZP.createElement(pe.Z,{title:o("lng_call_rate_label"),className:"narrow",onClose:a,isOpen:t},_.ZP.createElement("div",{className:"wLqZtZzJMOmPkr1Z7kT5"},new Array(5).fill(void 0).map(((e,t)=>{const a=void 0!==s&&s>=t;return _.ZP.createElement("i",{className:(0,ie.Z)(a?"icon-favorite-filled":"icon-favorite",a&&"o_nOyYqj5URif5S86StK","OLQPS_OeztNYIaL15tdz"),onClick:(n=t,()=>r(s===n?void 0:n))});var n}))),_.ZP.createElement(Le.Z,{ref:i,placeholder:o("lng_call_rate_comment"),className:(0,ie.Z)("ZToDNX6q1Yhf4aDPyuJF",4!==s&&void 0!==s&&"HdCq8jVctaJoit7bdgZd")}),_.ZP.createElement("div",{className:"dialog-buttons mt-2"},_.ZP.createElement(le.Z,{className:"confirm-dialog-button",isText:!0,onClick:c},o("Send")),_.ZP.createElement(le.Z,{className:"confirm-dialog-button",isText:!0,onClick:l},o("Cancel"))))}))}}]);
|
|
//# sourceMappingURL=9954.3bf950d563b2c8a7df4c.js.map
|