PageSourceSearch

https://chesstv.com/_nuxt/BdEROXN_.js

js chesstv.com collected 2026-10-02 12:56:03 UTC 10,427 bytes, 6 lines download raw bytes

1import{_ as te}from"./Do1_6gpd.js";import{_ as le}from"./Bhb2p2U7.js";import{_ as re}from"./BjTVQjNT.js";import{_ as se}from"./CavvyutC.js";import{_ as oe}from"./lj6J7vG8.js";import{d as ne,H as de,m as s,J as ie,k as ue,n as ce,c as d,f as t,j as r,b as m,w as C,F as $,h as b,A as c,t as n,g as k,r as me,W as pe,z as M,v as ve,o,_ as xe}from"./C8OjvWdH.js";import{u as ge}from"./Da29uDOb.js";import{u as be}from"./P63G9Z40.js";import{u as ke}from"./DYXeJdKS.js";import{u as fe}from"./BKWCDHyT.js";import{u as he}from"./CsH_g-2F.js";import{C as ye}from"./noCnhanm.js";import{C as we}from"./BRtjp1mi.js";import{c as Se}from"./UqDMAV0q.js";import"./De4UH7iN.js";import"./DL_peLvu.js";import"./DsNaPUU9.js";import"./ZieHwLMl.js";import"./CRrUdjPr.js";import"./DztA_lAj.js";import"./DsDANMh0.js";import"./BKill5pA.js";import"./CK0EeR0i.js";/**
2* @license lucide-vue-next v0.469.0 - ISC
3*
4* This source code is licensed under the ISC license.
5* See the LICENSE file in the root directory of this source tree.
6*/const Ce=Se("FlameIcon",[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]]),_e={class:"min-h-[calc(100vh-180px)] bg-slate-50 text-slate-950 dark:bg-slate-950 dark:text-white"},Pe={class:"mx-auto max-w-5xl px-4 py-8 sm:px-6 lg:px-8 lg:py-12"},Ne={key:0,class:"rounded-xl border border-slate-200 bg-white p-10 text-center text-slate-600 dark:text-slate-300 dark:border-slate-800 dark:bg-slate-900"},Le={key:1,class:"rounded-xl border border-red-200 bg-white p-8 text-center dark:border-red-900 dark:bg-slate-900"},Te={class:"overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-lg shadow-slate-950/5 dark:border-slate-800 dark:bg-slate-900"},je={class:"relative bg-gradient-to-br from-indigo-50 via-white to-rose-50 p-6 dark:from-indigo-950/40 dark:via-slate-900 dark:to-rose-950/30 sm:p-8"},$e={class:"flex flex-col gap-5 pr-20 sm:flex-row sm:items-center sm:pr-24"},Me=["src","alt"],Ae={class:"min-w-0 flex-1"},Ie={class:"mt-2 break-words text-3xl font-black sm:text-4xl"},Ue={key:0,class:"mt-1 text-base font-bold text-slate-600 dark:text-slate-300"},Ve={class:"mt-4 flex flex-wrap gap-x-5 gap-y-2 text-sm text-slate-600 dark:text-slate-300"},De={key:0,class:"inline-flex items-center gap-2"},Be={key:1,class:"inline-flex items-center gap-2"},Fe={key:0,class:"w-full sm:w-auto sm:shrink-0"},We={class:"flex flex-wrap items-center justify-start gap-2 sm:justify-end"},Ge={class:"mt-2 max-w-64 text-sm text-slate-600 dark:text-slate-300 sm:ml-auto sm:text-right"},Oe={class:"grid grid-cols-2 gap-px bg-slate-200 dark:bg-slate-800 sm:grid-cols-4"},Ee={class:"mt-1 text-xs font-bold uppercase tracking-wide text-slate-600 dark:text-slate-300"},ze={class:"mt-6 grid gap-6 md:grid-cols-[1fr_320px]"},Je={class:"rounded-xl border border-slate-200 bg-white p-6 dark:border-slate-800 dark:bg-slate-900"},qe={class:"flex items-center justify-between gap-4"},He={class:"text-3xl font-black text-orange-700 dark:text-orange-300"},Re={class:"mt-5 h-3 overflow-hidden rounded-full bg-slate-100 dark:bg-slate-800"},Ye={class:"mt-3 text-sm text-slate-600 dark:text-slate-300"},Ke={class:"rounded-xl border border-slate-200 bg-white p-6 dark:border-slate-800 dark:bg-slate-900"},Qe={class:"mt-3 flex items-center gap-3"},Xe={class:"text-xl font-black"},Ze={class:"text-sm text-slate-600 dark:text-slate-300"},ea=ne({__name:"[username]",async setup(ta){var _;let v,P;const f=de(),N=s(()=>String(f.params.username||"")),{getPublicPlayer:A}=ge(),{data:e,pending:I,error:U}=([v,P]=ie(()=>be(`public-player-${N.value.toLowerCase()}`,()=>A(N.value))),v=await v,P(),v),i=ue();i.loadTokenFromLocalStorage(),i.loadUserProfileFromLocalStorage();const h=s(()=>i.isAuthenticated),V=s(()=>!h.value||!!i.currentUser),L=s(()=>{const l=i.currentUser;if(!l||!e.value)return!1;const a=Number(l.id||l.userId||0);return a&&a===Number(e.value.id)?!0:!!(l.username&&e.value.username&&String(l.username).toLowerCase()===String(e.value.username).toLowerCase())}),{statuses:D,connections:B,getConnections:F}=ke(),W=s(()=>{var l;return e.value?(l=D.value[e.value.id])==null?void 0:l.status:void 0}),G=s(()=>{var l;return!!(e.value&&(l=B.value.find(a=>Number(a.user.id||a.user.userId)===e.value.id))!=null&&l.online)}),{blockStatuses:O,getBlockStatus:E}=fe(),x=s(()=>e.value?O.value[e.value.id]:void 0),y=s(()=>{var l,a;return!!((l=x.value)!=null&&l.blockedByMe||(a=x.value)!=null&&a.blockedMe)}),u=s(()=>ve(e.value)),T=s(()=>{var l;return!!((l=e.value)!=null&&l.username&&u.value.toLowerCase()!==e.value.username.toLowerCase())}),w=()=>e.value&&E(e.value.id).catch(()=>{});ce(async()=>{i.isAuthenticated&&(i.currentUser||await i.loadUserProfile(),!L.value&&(F().catch(()=>{}),w()))});const z=s(()=>({path:"/login",query:{redirect:f.fullPath}})),J=s(()=>e.value?[{label:"Games",value:e.value.totalGamesPlayed,color:"text-slate-950 dar
6k:text-white"},{label:"Wins",value:e.value.wins,color:"text-emerald-700 dark:text-emerald-300"},{label:"Losses",value:e.value.losses,color:"text-red-700 dark:text-red-300"},{label:"Draws",value:e.value.draws,color:"text-amber-700 dark:text-amber-300"}]:[]),q=s(()=>{var l;return Math.min(100,Math.max(0,Number(((l=e.value)==null?void 0:l.winPercentage)||0)))}),H=l=>`${Number(l||0).toFixed(1).replace(".0","")}%`,R=l=>new Intl.DateTimeFormat("en",{month:"short",day:"numeric",year:"numeric"}).format(new Date(l)),Y=l=>{const a=Math.max(0,Math.floor((Date.now()-new Date(l).getTime())/864e5));return a===0?"today":a===1?"yesterday":`${a} days ago`},K=s(()=>{var l,a,p;return((l=e.value)==null?void 0:l.lastStreak)==="NONE"?"No streak yet":`${((a=e.value)==null?void 0:a.lastStreak)==="WIN"?"Win":((p=e.value)==null?void 0:p.lastStreak)==="LOSS"?"Loss":"Draw"} streak`}),Q=s(()=>{var l,a;return((l=e.value)==null?void 0:l.lastStreak)==="NONE"?"Complete a game to begin.":`${((a=e.value)==null?void 0:a.lastStreakCount)||0} in a row`}),X=s(()=>{var l,a;return((l=e.value)==null?void 0:l.lastStreak)==="WIN"?"bg-emerald-100 text-emerald-700 dark:bg-emerald-950 dark:text-emerald-300":((a=e.value)==null?void 0:a.lastStreak)==="LOSS"?"bg-red-100 text-red-700 dark:bg-red-950 dark:text-red-300":"bg-amber-100 text-amber-700 dark:bg-amber-950 dark:text-amber-300"});return he({title:`${u.value}${T.value?` (@${(_=e.value)==null?void 0:_.username})`:""} | ChessTV`,description:`View ${u.value}'s ChessTV room game statistics and connect to play again.`,path:f.path}),(l,a)=>{var p,j;const S=te,Z=le,ee=re,ae=se;return o(),d("div",_e,[t("div",Pe,[r(I)?(o(),d("div",Ne,"Loading player profile\u2026")):r(U)||!r(e)?(o(),d("div",Le,[a[1]||(a[1]=t("h1",{class:"text-2xl font-black"},"Player not found",-1)),a[2]||(a[2]=t("p",{class:"mt-2 text-slate-600 dark:text-slate-300"},"This ChessTV player profile is unavailable.",-1)),m(S,{to:"/play",class:"mt-5 inline-flex h-10 items-center rounded-md bg-indigo-700 px-4 text-sm font-bold text-white"},{default:C(()=>a[0]||(a[0]=[k("Go to Play")])),_:1})])):(o(),d($,{key:2},[t("section",Te,[t("div",je,[r(e).creatorSlug?(o(),b(S,{key:0,to:`/creators/${r(e).creatorSlug}`,class:"creator-stamp absolute right-5 top-5 z-10 sm:right-8 sm:top-8","aria-label":"ChessTV Creator \u2014 view creator page",title:"View creator page"},{default:C(()=>a[3]||(a[3]=[t("span",{class:"creator-stamp__inner"},[t("span",{class:"creator-stamp__check"},"\u2713"),t("span",null,"ChessTV"),t("span",null,"Creator")],-1)])),_:1},8,["to"])):c("",!0),t("div",$e,[t("img",{src:r(e).profileImageUrl||"/img/UserProfileNoPic.jpg",alt:u.value,class:"h-28 w-28 rounded-full border-4 border-white object-cover shadow-lg dark:border-slate-800"},null,8,Me),t("div",Ae,[a[4]||(a[4]=t("p",{class:"text-xs font-black uppercase tracking-[0.18em] text-indigo-700 dark:text-indigo-300"},"ChessTV player",-1)),t("h1",Ie,n(u.value),1),m(oe,{class:"mt-4",rating:r(e).overallRating,"show-games":""},null,8,["rating"]),T.value?(o(),d("p",Ue,"@"+n(r(e).username),1)):c("",!0),t("div",Ve,[r(e).joinedAt?(o(),d("span",De,[m(r(ye),{class:"h-4 w-4"}),k("Joined "+n(R(r(e).joinedAt)),1)])):c("",!0),r(e).lastPlayedAt?(o(),d("span",Be,[m(r(we),{class:"h-4 w-4"}),k("Last played "+n(Y(r(e).lastPlayedAt)),1)])):c("",!0)])]),h.value&&V.value&&!L.value?(o(),d("div",Fe,[t("div",We,[y.value?c("",!0):(o(),b(Z,{key:0,"user-id":r(e).id,"show-remove":!0},null,8,["user-id"])),!y.value&&W.value==="CONNECTED"?(o(),b(ee,{key:1,"user-id":r(e).id,"display-name":u.value,"can-challenge":G.value},null,8,["user-id","display-name","can-challenge"])):c("",!0),m(ae,{"user-id":r(e).id,"player-name":u.value,"blocked-by-me":!!((p=x.value)!=null&&p.blockedByMe),"can-report":"",onBlocked:w,onUnblocked:w},null,8,["user-id","player-name","blocked-by-me"])]),t("p",Ge,n(y.value?(j=x.value)!=null&&j.blockedByMe?"Blocked. You can manage this player in Settings.":"This player is unavailable.":"Connect so you can easily play each other again."),1)])):h.value?c("",!0):(o(),b(S,{key:1,to:z.value,rel:"nofollow",class:"inline-flex min-h-11 shrink-0 items-center justify-center rounded-md bg-indigo-700 px-5 text-sm font-bold text-white hover:bg-indigo-800"},{default:C(()=>a[5]||(a[5]=[k("Sign in to connect")])),_:1},8,["to"]))])]),t("div",Oe,[(o(!0),d($,null,me(J.value,g=>(o(),d("div",{key:g.label,class:"bg-white p-5 text-center dark:bg-slate-900"},[t("p",{class:M(["text-2xl font-black",g.color])},n(g.value),3),t("p",Ee,n(g.label),1)]))),128))])]),t("div",ze,[t("section",Je,[t("div",qe,[a[6]||(a[6]=t("div",null,[t("p",{class:"text-xs font-black uppercase tracking-wide text-rose-700 dark:text-rose-300"},"Performance"),t("h2",{class:"mt-1 text-xl font-black"},"Completed room games")],-1)),t("span",He,n(H(r(e).winPercentage)),1)]),t("div",Re,[t("div",{class:"h-full rounded-full bg-orange-600 transition-all",style:pe({width:`${q.value}%`})},null,4)]),t("p",Ye,"Win percentage across "+n(r(e).totalGamesPlayed)+" completed "+n(r(e).totalGamesPlayed===1?"game":"games")+".",1)]),t("section",Ke,[a[7]||(a[7]=t("p",{class:"text-xs font-black uppercase tracking-wide text-rose-700 dark:text-rose-300"},"Latest streak",-1)),t("div",Qe,[t("div",{class:M(["flex h-12 w-12 items-center justify-center rounded-full",X.value])},[m(r(Ce),{class:"h-6 w-6"})],2),t("div",null,[t("p",Xe,n(K.value),1),t("p",Ze,n(Q.value),1)])])])])],64))])])}}}),aa=xe(ea,[["__scopeId","data-v-c14286a7"]]);export{aa as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.