Loading
function(e,t,n){n.d(t,{A:()=>V});var l=n(627968),s=n(64700),i=n(735438),a=n(404778),r=n(17928),o=n(459838),u=n(661531),c=n(990078),d=n(602853),m=n(778712),h=n(834730),p=n(243721),f=n(742158),g=n(106236),x=n(821609),A=n(827343),C=n(717558),v=n(964486),E=n(85448),T=n(495544),j=n(734057),N=n(761853),_=n(763827),S=n(287809),R=n(977997),y=n(935208),b=n(829997),I=n(329139),M=n(375708),w=n(36482);function U(e){let{worldX:t,worldY:n,worldZ:l}=e;return{x:t,y:n,z:l}}function O(e,t){let n=7/t,l=e/2;return{zoom:n,pan:{offsetX:l*(1-n),offsetY:l-l*(1-t/14)*n}}}function D(e){let{mode:t,users:n,onUserDragged:i,distance:a,view:r,setView:o,canvasSize:c,setCanvasSize:m}=e,h=s.useRef(null),p=s.useRef(null),[f,g]=s.useState(null),[x,A]=s.useState(!1),C=(0,d.r)(u.A.colors.BACKGROUND_BASE_LOW).hex(),E=(0,d.r)(u.A.colors.BACKGROUND_MOD_MUTED).hex(),T=(0,d.r)(u.A.colors.STATUS_POSITIVE).hex(),j=(0,d.r)(u.A.colors.TEXT_DEFAULT).hex(),N=M.intl.string(I.default.chrbRg);(0,v.u5)(()=>{let e=h.current;if(null==e)return;let t=!0,n=new ResizeObserver(e=>{let n=Math.floor(e[0].contentRect.width);n<=0||(t&&(t=!1,o(O(n,a))),m(n))});return n.observe(e),()=>n.disconnect()}),s.useEffect(()=>{let e=h.current;if(null==e)return;let t=t=>{t.preventDefault();let n=e.getBoundingClientRect(),l=t.clientX-n.left,s=t.clientY-n.top;o(e=>{let{zoom:n,pan:i}=e,a=Math.max(P,Math.min(k,n*Math.exp(-t.deltaY*L))),r=a/n;return{zoom:a,pan:{offsetX:l-(l-i.offsetX)*r,offsetY:s-(s-i.offsetY)*r}}})};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[o]),s.useEffect(()=>{let e=p.current;if(null==e||0===c)return;let t=e.getContext("2d");if(null!=t){t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,c,c),t.fillStyle=C,t.fillRect(0,0,c,c),t.setTransform(r.zoom,0,0,r.zoom,r.pan.offsetX,r.pan.offsetY),t.strokeStyle=E,t.lineWidth=1/r.zoom;for(let e=0;e<=10;e++){let n=e*c/10;t.beginPath(),t.moveTo(n,0),t.lineTo(n,c),t.stroke(),t.beginPath(),t.moveTo(0,n),t.lineTo(c,n),t.stroke()}t.fillStyle=T,t.beginPath(),t.arc(c/2,c/2,10/r.zoom,0,2*Math.PI),t.fill(),t.fillStyle=j,t.font=`bold ${11/r.zoom}px gg sans`,t.textAlign="center",t.fillText(N,c/2,c/2-16/r.zoom)}},[c,r,C,E,T,j,N]);let _=s.useCallback((e,n)=>{"manual"===t&&0===e.button&&(e.stopPropagation(),g(n))},[t]),S=s.useCallback(e=>{0===e.button&&A(!0)},[]),R=s.useCallback(e=>{if(x)return void o(t=>({zoom:t.zoom,pan:{offsetX:t.pan.offsetX+e.movementX,offsetY:t.pan.offsetY+e.movementY}}));if(null==f)return;let t=p.current;if(null==t||0===c)return;let n=t.getBoundingClientRect();i(f,{canvasX:(e.clientX-n.left-r.pan.offsetX)/r.zoom,canvasY:(e.clientY-n.top-r.pan.offsetY)/r.zoom})},[x,f,c,r.pan.offsetX,r.pan.offsetY,r.zoom,o,i]),b=s.useCallback(()=>{g(null),A(!1)},[]),U=x?"grabbing":"default";return(0,l.jsxs)("div",{ref:h,className:w.BW,style:{cursor:U},onMouseDown:S,onMouseMove:R,onMouseUp:b,onMouseLeave:b,onContextMenu:e=>e.preventDefault(),children:[(0,l.jsx)("canvas",{ref:p,width:c,height:c,className:w.Ji}),y.default.entries(n).map(e=>{let[n,s]=e;return(0,l.jsx)(F,{userId:n,position:{canvasX:s.canvasX*r.zoom+r.pan.offsetX,canvasY:s.canvasY*r.zoom+r.pan.offsetY},draggable:"manual"===t,onMouseDown:_},n)})]})}let P=.25,k=4,L=.002;function F(e){let{userId:t,position:n,draggable:s,onMouseDown:i}=e,a=(0,r.bG)([S.default],()=>S.default.getUser(t)),o=(0,C.A)({userId:t});return null==a?null:(0,l.jsx)(c.m,{text:a.username,children:(0,l.jsx)("div",{className:w.my,style:{left:n.canvasX-12,top:n.canvasY-12,cursor:s?"grab":"default"},onMouseDown:e=>i(e,t),children:(0,l.jsx)(E.A,{userId:t,size:m._3.SIZE_24,src:a.getAvatarURL(void 0,24),speaking:o,ringing:!1})})})}function V(){let e=(0,r.bG)([N.Ay],()=>N.Ay.getAudioMixerSettings()),t=o.x.DEFAULT,[n,u]=s.useState({zoom:1,pan:{offsetX:0,offsetY:0}}),[c,d]=s.useState(0),m=s.useCallback(e=>{let{worldX:t,worldZ:n}=e,l=c/2;return{canvasX:l+t/7*l,canvasY:l+n/7*l}},[c]),C=s.useCallback(e=>{let{canvasX:t,canvasY:n}=e,l=c/2;return{worldX:(t-l)/l*7,worldY:0,worldZ:(n-l)/l*7}},[c]),v=(0,r.bG)([_.A,j.A],()=>{let e=_.A.getChannelId();return null!=e?j.A.getChannel(e):null}),E=T.default.getId(),S=v?.id,y=(0,r.yK)([R.A],()=>null==S?[]:Object.values(R.A.getVoiceStatesForChannel(S)).filter(e=>{let{userId:t}=e;return t!==E}),[S,E]),P=e.mode,k=s.useMemo(()=>({line:t=>{if(1===y.length)return{worldX:0,worldY:0,worldZ:-e.distance};let n=t/(y.length-1);return{worldX:-e.spread/2+e.spread*n,worldY:0,worldZ:-e.distance}},arc:t=>{if(1===y.length)return{worldX:0,worldY:0,worldZ:-e.distance};let n=e.arcAngle*Math.PI/180,l=Math.PI/2+n/2-t/(y.length-1)*n;return{worldX:e.distance*Math.cos(l),worldY:0,worldZ:-e.distance*Math.sin(l)}},grid:t=>{let n=e.gridColumns,l=Math.floor(t/n);return{worldX:(t%n-(n-1)/2)*e.gridSpacing,worldY:0,worldZ:-(e.distance+l*e.gridSpacing)}}}),[e,y.length]),[L,F]=s.useState(new Map),V=s.useMemo(()=>0===c?{}:Object.fromEntries(y.map((e,t)=>{let{userId:n}=e;if("manual"===P){let e=L.get(n);return[n,e??{canvasX:c/2,canvasY:c/2}]}return[n,m(k[P](t))]})),[c,L,P,y,k,m]);s.useEffect(()=>{"manual"===P||0===c||N.Ay.getMediaEngine().eachConnection(e=>{y.forEach((t,n)=>{let{userId:l}=t,s=k[P](n);e.setUserPosition(l,U(s))})})},[e,c,P,y,k]);let G=s.useCallback((e,t)=>{if(F(n=>new Map(n).set(e,t)),0===c)return;let n=C(t);N.Ay.getMediaEngine().eachConnection(t=>{t.setUserPosition(e,U(n))})},[c,C]),B=s.useCallback(n=>{A.A.setAudioMixerSettings({...e,...n},t)},[e,t]),[H,Q]=s.useState(e.roomSize),z=s.useRef(null),W=s.useCallback(e=>{Q(e),null!==z.current&&clearTimeout(z.current),z.current=window.setTimeout(()=>{B({roomSize:e}),z.current=null},500)},[B]),q=[{value:"line",label:M.intl.string(I.default.xwwX9a),ariaLabel:M.intl.string(I.default.Go69Wz)},{value:"arc",label:M.intl.string(I.default.k21Ys4),ariaLabel:M.intl.string(I.default["g8+1Gb"])},{value:"grid",label:M.intl.string(I.default.nVAKlB),ariaLabel:M.intl.string(I.default.fxMbmH)},{value:"manual",label:M.intl.string(I.default.Wmv386),ariaLabel:M.intl.string(I.default.U9PON6)}];return(0,l.jsxs)("div",{className:w.kL,children:[(0,l.jsxs)("div",{className:w.ne,children:[(0,l.jsxs)("div",{className:w.nM,children:[(0,l.jsx)(h.E,{variant:"text-md/normal",children:M.intl.string(I.default["p/J17q"])}),(0,l.jsx)(p.d,{checked:e.enabled,onChange:e=>B({enabled:e}),"aria-label":M.intl.string(I.default.gtmo6U)})]}),(0,l.jsx)(a.c,{className:w.yF}),(0,l.jsx)(f.z,{className:w.Pf,children:M.intl.string(I.default.FCvOS0)}),(0,l.jsx)(g.A,{className:w.aw,initialValue:e.spatialBlend,value:e.spatialBlend,minValue:0,maxValue:1,asValueChanges:e=>B({spatialBlend:e}),onValueRender:e=>`${Math.round(100*e)}%`,"aria-label":M.intl.string(I.default.FCvOS0)}),(0,l.jsx)(f.z,{className:w.Pf,children:M.intl.string(I.default["/GM1bA"])}),(0,l.jsx)(g.A,{className:w.aw,initialValue:H,value:H,minValue:10,maxValue:150,asValueChanges:W,onValueRender:e=>e.toFixed(0),"aria-label":M.intl.string(I.default.l5XHLy)}),(0,l.jsx)(a.c,{className:w.yF}),(0,l.jsx)(f.z,{className:w.Pf,children:M.intl.string(I.default.CMFya4)}),(0,l.jsx)("div",{className:w.XU,role:"group","aria-label":M.intl.string(I.default.CMFya4),children:q.map(t=>{let{value:n,label:s,ariaLabel:i}=t;return(0,l.jsx)("button",{className:`${w._V} ${P===n?w.cB:""}`,"aria-label":i,"aria-pressed":P===n,onClick:()=>{if("manual"===n&&"manual"!==P&&c>0){let e=new Map;y.forEach((t,n)=>{let{userId:l}=t;e.set(l,m(k[P](n)))}),F(e)}B({mode:n}),c>0&&u(O(c,e.distance))},children:s},n)})}),"manual"!==P&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(f.z,{className:w.Pf,children:M.intl.string(I.default.i4BAoc)}),(0,l.jsx)(g.A,{className:w.aw,initialValue:e.distance,value:e.distance,minValue:1,maxValue:10,asValueChanges:e=>B({distance:e}),onValueRender:e=>e.toFixed(1),"aria-label":M.intl.string(I.default.i4BAoc)})]}),"line"===P&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(f.z,{className:w.Pf,children:M.intl.string(I.default["/ZoKQI"])}),(0,l.jsx)(g.A,{className:w.aw,initialValue:e.spread,value:e.spread,minValue:0,maxValue:10,asValueChanges:e=>B({spread:e}),onValueRender:e=>e.toFixed(1),"aria-label":M.intl.string(I.default["/ZoKQI"])})]}),"arc"===P&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(f.z,{className:w.Pf,children:M.intl.string(I.default.EOmtMO)}),(0,l.jsx)(g.A,{className:w.aw,initialValue:e.arcAngle,value:e.arcAngle,minValue:0,maxValue:180,asValueChanges:e=>B({arcAngle:e}),onValueRender:e=>`${e.toFixed(0)}\xb0`,"aria-label":M.intl.string(I.default.FbPuig)})]}),"grid"===P&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(f.z,{className:w.Pf,children:M.intl.string(I.default.Q5EMQe)}),(0,l.jsx)(g.A,{className:w.aw,initialValue:e.gridColumns,value:e.gridColumns,minValue:2,maxValue:6,keyboardStep:1,asValueChanges:e=>B({gridColumns:Math.round(e)}),onValueRender:e=>e.toFixed(0),"aria-label":M.intl.string(I.default.Q5EMQe)}),(0,l.jsx)(f.z,{className:w.Pf,children:M.intl.string(I.default.lxrCwG)}),(0,l.jsx)(g.A,{className:w.aw,initialValue:e.gridSpacing,value:e.gridSpacing,minValue:.5,maxValue:3,asValueChanges:e=>B({gridSpacing:e}),onValueRender:e=>e.toFixed(1),"aria-label":M.intl.string(I.default.LDP0hu)})]}),(0,l.jsx)(a.c,{className:w.yF}),(0,l.jsx)(x.$,{variant:"secondary",size:"sm",text:M.intl.string(I.default.HlbWSY),onClick:()=>{let e=(0,i.omit)(b.b,["enabled","experimentOverride"]);Q(e.roomSize),c>0&&u(O(c,e.distance)),B(e)}})]}),(0,l.jsx)(D,{mode:P,users:V,onUserDragged:G,distance:e.distance,view:n,setView:u,canvasSize:c,setCanvasSize:d})]})}}