Files
esports/build/client/_app/immutable/nodes/7._nuD3LlN.js

2 lines
10 KiB
JavaScript

import"../chunks/DsnmJJEf.js";import{p as ye,t as h,a as v,b as we,c as Ie,f as W,k as e,i as X,d as f,l as E,s,j as ie,e as a,r as t,n as Me,g as ve}from"../chunks/BxEwC6Zc.js";import{d as Ne,a as Ce,s as p}from"../chunks/DoLu9QLy.js";import{i as N}from"../chunks/BQKoxf2Q.js";import{e as T,i as U}from"../chunks/BLQQas77.js";import{a as Le,e as Oe}from"../chunks/BAocuFgQ.js";import{s as K,b as $e}from"../chunks/BnX5ZnVA.js";import{s as Y}from"../chunks/BqOsL1Vv.js";var Ae=f('&middot; <span class="text-green-400"> </span>',1),Se=f('<p class="mt-2 text-sm text-red-400"> </p>'),De=f("<option> </option>"),Ee=f("<option> </option>"),Pe=f("<option> </option>"),Be=f("<option> </option>"),ke=f('<form method="post" action="?/createMatch" class="mt-4 rounded-lg border border-accent/20 bg-surface-800 p-5"><h2 class="text-sm font-600">Create Match</h2> <!> <div class="mt-4 grid grid-cols-2 gap-4"><div><label for="name" class="text-xs font-500 text-text-secondary">Match Name</label> <input type="text" id="name" name="name" placeholder="e.g. Semifinals M1" class="mt-1 w-full rounded-md border border-border bg-surface-700 px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary/50 focus:border-accent focus:outline-none"/></div> <div><label for="bestOf" class="text-xs font-500 text-text-secondary">Best Of</label> <select id="bestOf" name="bestOf" class="mt-1 w-full rounded-md border border-border bg-surface-700 px-3 py-2 text-sm text-text-primary focus:border-accent focus:outline-none"></select></div> <div><label for="team1" class="text-xs font-500 text-text-secondary">Team 1</label> <select id="team1" name="team1" required="" class="mt-1 w-full rounded-md border border-border bg-surface-700 px-3 py-2 text-sm text-text-primary focus:border-accent focus:outline-none"><option>Select team...</option><!></select></div> <div><label for="team2" class="text-xs font-500 text-text-secondary">Team 2</label> <select id="team2" name="team2" required="" class="mt-1 w-full rounded-md border border-border bg-surface-700 px-3 py-2 text-sm text-text-primary focus:border-accent focus:outline-none"><option>Select team...</option><!></select></div> <div class="col-span-2"><label for="mappool" class="text-xs font-500 text-text-secondary">Mappool</label> <select id="mappool" name="mappool" required="" class="mt-1 w-full rounded-md border border-border bg-surface-700 px-3 py-2 text-sm text-text-primary focus:border-accent focus:outline-none"><option>Select mappool...</option><!></select></div></div> <div class="mt-4 flex justify-end"><button type="submit" class="rounded-md bg-accent px-5 py-2 text-sm font-600 text-surface-900 transition-colors hover:bg-accent-hover">Create &amp; Start</button></div></form>'),Ge=f('<img alt="" class="h-8 w-8 rounded-full"/>'),je=f('<img alt="" class="h-8 w-8 rounded-full"/>'),Fe=f("<span></span>"),Re=f('<a class="group flex items-center gap-4 rounded-lg border border-green-500/20 bg-surface-800 p-4 transition-all hover:border-green-500/40 hover:bg-surface-700"><div class="flex flex-1 items-center gap-3"><!> <span class="text-sm font-600"> </span></div> <div class="flex items-center gap-3"><span class="text-xl font-800 tabular-nums"> </span> <span class="text-xs font-600 text-text-secondary">vs</span> <span class="text-xl font-800 tabular-nums"> </span></div> <div class="flex flex-1 items-center justify-end gap-3"><span class="text-sm font-600"> </span> <!></div> <span><!> </span></a>'),Te=f('<div class="mt-6"><h2 class="flex items-center gap-2 text-sm font-600"><div class="relative h-2 w-2"><div class="absolute inset-0 animate-ping rounded-full bg-green-400 opacity-75"></div> <div class="relative h-2 w-2 rounded-full bg-green-400"></div></div> Live Now</h2> <div class="mt-3 flex flex-col gap-2"></div></div>'),Ue=f('<h2 class="text-sm font-600 text-text-secondary">Past Matches</h2>'),Ye=f('<span> </span> <span class="text-xs text-text-secondary">-</span> <span> </span>',1),qe=f('<span class="text-xs text-text-secondary">vs</span>'),He=f('<span class="text-xs font-500 text-green-400"> </span>'),Ke=f('<a class="group flex items-center gap-4 rounded-lg border border-border bg-surface-800 p-3 transition-colors hover:border-accent/30 hover:bg-surface-700"><div class="min-w-0 flex-1"><div class="flex items-center gap-2"><span class="text-sm font-600"> </span> <!> <span class="text-sm font-600"> </span></div> <p class="mt-0.5 text-xs text-text-secondary"> <!></p></div> <!> <span> </span></a>'),ze=f('<div class="rounded-lg border border-dashed border-border py-12 text-center"><p class="text-sm text-text-secondary">No matches yet. Create one to get started.</p></div>'),Je=f('<div class="mx-auto max-w-5xl"><div class="flex items-center justify-between"><div><h1 class="text-2xl font-700 tracking-tight">Matches</h1> <p class="mt-1 text-sm text-text-secondary"> <!></p></div> <button class="rounded-md bg-accent px-4 py-2 text-sm font-600 text-surface-900 transition-colors hover:bg-accent-hover"> </button></div> <!> <!> <div class="mt-6"><!> <div class="mt-3 flex flex-col gap-2"></div></div></div>');function rt(pe,$){ye($,!0);let q=ie(!1),H=ie("");const Z={CREATED:{label:"Created",color:"text-text-secondary border-border"},LOBBY:{label:"In Lobby",color:"text-yellow-400 border-yellow-500/30"},ROLLING:{label:"Rolling",color:"text-yellow-400 border-yellow-500/30",dot:"bg-yellow-400"},PICKING:{label:"Picking",color:"text-blue-400 border-blue-500/30",dot:"bg-blue-400"},PLAYING:{label:"Live",color:"text-green-400 border-green-500/30",dot:"bg-green-400"},FINISHED:{label:"Finished",color:"text-text-secondary border-border"},CANCELLED:{label:"Cancelled",color:"text-red-400 border-red-500/30"}},ee=["LOBBY","ROLLING","PICKING","PLAYING"],j=E(()=>$.data.matches.filter(l=>ee.includes(l.state))),xe=E(()=>$.data.matches.filter(l=>!ee.includes(l.state)));function te(l){const r=l.participants[0],i=l.participants[1];return{p1:r,p2:i}}function ae(l){const r=new Date(l),i=Date.now()-r.getTime(),y=Math.floor(i/6e4);if(y<1)return"just now";if(y<60)return`${y}m ago`;const m=Math.floor(y/60);return m<24?`${m}h ago`:`${Math.floor(m/24)}d ago`}var z=Je(),J=a(z),Q=a(J),re=s(a(Q),2),se=a(re),fe=s(se);{var me=l=>{var r=Ae(),i=s(W(r)),y=a(i);t(i),h(()=>p(y,`${e(j).length??""} live`)),v(l,r)};N(fe,l=>{e(j).length>0&&l(me)})}t(re),t(Q);var V=s(Q,2),ue=a(V,!0);t(V),t(J);var oe=s(J,2);{var _e=l=>{var r=ke(),i=s(a(r),2);{var y=d=>{var o=Se(),n=a(o,!0);t(o),h(()=>p(n,e(H))),v(d,o)};N(i,d=>{e(H)&&d(y)})}var m=s(i,2),x=s(a(m),2),C=s(a(x),2);T(C,20,()=>[3,5,7,9,11,13],U,(d,o)=>{var n=De(),I=a(n);t(n);var u={};h(c=>{$e(n,o===7),p(I,`BO${o??""} (first to ${c??""})`),u!==(u=o)&&(n.value=(n.__value=o)??"")},[()=>Math.ceil(o/2)]),v(d,n)}),t(C),t(x);var M=s(x,2),L=s(a(M),2),A=a(L);A.value=A.__value="";var F=s(A);T(F,17,()=>$.data.teams,U,(d,o)=>{var n=Ee(),I=a(n);t(n);var u={};h(()=>{p(I,`${e(o).name??""}${e(o).isPersonal?" (solo)":""}`),u!==(u=e(o).id)&&(n.value=(n.__value=e(o).id)??"")}),v(d,n)}),t(L),t(M);var S=s(M,2),R=s(a(S),2),O=a(R);O.value=O.__value="";var P=s(O);T(P,17,()=>$.data.teams,U,(d,o)=>{var n=Pe(),I=a(n);t(n);var u={};h(()=>{p(I,`${e(o).name??""}${e(o).isPersonal?" (solo)":""}`),u!==(u=e(o).id)&&(n.value=(n.__value=e(o).id)??"")}),v(d,n)}),t(R),t(S);var B=s(S,2),D=s(a(B),2),k=a(D);k.value=k.__value="";var G=s(k);T(G,17,()=>$.data.mappools,U,(d,o)=>{var n=Be(),I=a(n);t(n);var u={};h(()=>{p(I,`${e(o).name??""} (${e(o).slots.length??""} maps)`),u!==(u=e(o).id)&&(n.value=(n.__value=e(o).id)??"")}),v(d,n)}),t(D),t(B),t(m),Me(2),t(r),Le(r,(d,o)=>Oe?.(d,o),()=>()=>(X(H,""),async({result:d,update:o})=>{d.type==="failure"||d.type==="success"&&d.data?.error?X(H,d.data?.error??"Failed to create match",!0):await o()})),v(l,r)};N(oe,l=>{e(q)&&l(_e)})}var ne=s(oe,2);{var be=l=>{var r=Te(),i=s(a(r),2);T(i,21,()=>e(j),U,(y,m)=>{const x=E(()=>{const{p1:_,p2:g}=te(e(m));return{p1:_,p2:g}}),C=E(()=>Z[e(m).state]);var M=Re(),L=a(M),A=a(L);{var F=_=>{var g=Ge();h(()=>K(g,"src",e(x).p1.team.avatarUrl)),v(_,g)};N(A,_=>{e(x).p1?.team.avatarUrl&&_(F)})}var S=s(A,2),R=a(S,!0);t(S),t(L);var O=s(L,2),P=a(O),B=a(P,!0);t(P);var D=s(P,4),k=a(D,!0);t(D),t(O);var G=s(O,2),d=a(G),o=a(d,!0);t(d);var n=s(d,2);{var I=_=>{var g=je();h(()=>K(g,"src",e(x).p2.team.avatarUrl)),v(_,g)};N(n,_=>{e(x).p2?.team.avatarUrl&&_(I)})}t(G);var u=s(G,2),c=a(u);{var b=_=>{var g=Fe();h(()=>Y(g,1,`h-1.5 w-1.5 rounded-full ${e(C).dot??""}`)),v(_,g)};N(c,_=>{e(C)?.dot&&_(b)})}var w=s(c);t(u),t(M),h(()=>{K(M,"href",`/matches/${e(m).id??""}`),p(R,e(x).p1?.team.name??"?"),p(B,e(x).p1?.score??0),p(k,e(x).p2?.score??0),p(o,e(x).p2?.team.name??"?"),Y(u,1,`flex items-center gap-1.5 rounded border px-2 py-0.5 text-xs font-500 ${e(C)?.color??"border-border"??""}`),p(w,` ${e(C)?.label??e(m).state??""}`)}),v(y,M)}),t(i),t(r),v(l,r)};N(ne,l=>{e(j).length>0&&l(be)})}var le=s(ne,2),de=a(le);{var ge=l=>{var r=Ue();v(l,r)};N(de,l=>{e(j).length>0&&l(ge)})}var ce=s(de,2);T(ce,21,()=>e(xe),U,(l,r)=>{const i=E(()=>{const{p1:c,p2:b}=te(e(r));return{p1:c,p2:b}}),y=E(()=>e(r).config),m=E(()=>Z[e(r).state]);var x=Ke(),C=a(x),M=a(C),L=a(M),A=a(L,!0);t(L);var F=s(L,2);{var S=c=>{var b=Ye(),w=W(b),_=a(w,!0);t(w);var g=s(w,4),he=a(g,!0);t(g),h(()=>{Y(w,1,`text-xs font-700 tabular-nums ${(e(i).p1?.score??0)>(e(i).p2?.score??0)?"text-green-400":"text-text-secondary"}`),p(_,e(i).p1?.score??0),Y(g,1,`text-xs font-700 tabular-nums ${(e(i).p2?.score??0)>(e(i).p1?.score??0)?"text-green-400":"text-text-secondary"}`),p(he,e(i).p2?.score??0)}),v(c,b)},R=c=>{var b=qe();v(c,b)};N(F,c=>{e(r).state==="FINISHED"?c(S):c(R,!1)})}var O=s(F,2),P=a(O,!0);t(O),t(M);var B=s(M,2),D=a(B),k=s(D);{var G=c=>{var b=ve();h(w=>p(b,`· ${w??""}`),[()=>ae(e(r).finishedAt)]),v(c,b)},d=c=>{var b=ve();h(w=>p(b,`· ${w??""}`),[()=>ae(e(r).createdAt)]),v(c,b)};N(k,c=>{e(r).finishedAt?c(G):e(r).createdAt&&c(d,1)})}t(B),t(C);var o=s(C,2);{var n=c=>{const b=E(()=>e(r).participants.find(g=>g.teamId===e(r).winnerId));var w=He(),_=a(w);t(w),h(()=>p(_,`🏆 ${e(b)?.team.name??""}`)),v(c,w)};N(o,c=>{e(r).state==="FINISHED"&&e(r).winnerId&&c(n)})}var I=s(o,2),u=a(I,!0);t(I),t(x),h(()=>{K(x,"href",`/matches/${e(r).id??""}`),p(A,e(i).p1?.team.name??"?"),p(P,e(i).p2?.team.name??"?"),p(D,`${e(r).name?`${e(r).name} · `:""}BO${e(y).bestOf??""} `),Y(I,1,`rounded border px-2 py-0.5 text-xs font-500 ${e(m)?.color??"border-border"??""}`),p(u,e(m)?.label??e(r).state)}),v(l,x)},l=>{var r=Ie(),i=W(r);{var y=m=>{var x=ze();v(m,x)};N(i,m=>{e(j).length===0&&m(y)})}v(l,r)}),t(ce),t(le),t(z),h(()=>{p(se,`${$.data.matches.length??""} match${$.data.matches.length!==1?"es":""} `),p(ue,e(q)?"Cancel":"New Match")}),Ce("click",V,()=>X(q,!e(q))),v(pe,z),we()}Ne(["click"]);export{rt as component};