@xcpcio/board-app
Version:
XCPCIO Board App
7 lines (6 loc) • 10.1 kB
JavaScript
import{_ as U,h as A,P as H,w as O,a as D}from"./pagination-D1pCU19r.js";import{_ as N}from"./Tooltip.vue_vue_type_script_setup_true_lang-OTaxJAgs.js";import{l as C,m as j,n as P}from"./index-BYh7ktqe.js";import{d as R,f as h,c as f,o as m,a as _,w as k,b as t,n as L,h as o,k as x,G as z,z as S,p as y,s as T,C as E,j as G,F as V,E as Y,u as W,A as B,B as J,g as X}from"./index-CYsJ2gG-.js";import{R as q,c as I}from"./constant-2MSuUQN9.js";import"./index-BNZRV8LR.js";const K={"text-md":""},Q=R({__name:"RatingBadge",props:{rating:null},setup(d){const s=d,n=h(()=>s.rating);return(u,g)=>{const e=N;return m(),f("div",null,[_(e,null,{popper:k(()=>[t("div",K,x(o(j)[o(C).getRatingLevel(o(n))]),1)]),default:k(()=>[t("div",{"font-mono":"","font-bold":"",class:L(o(C).getRatingLevelClass(o(n)))},x(o(n)),3)]),_:1})])}}});function Z(d,s){const n=s-d;return s>d?`+${n.toString()}`:n.toString()}function tt(d){const s=[];{let g=0;for(const e of d.ratingHistories){const r={};r.x=e.contestTime.unix()*1e3,r.y=e.rating,r.diffRating=Z(g,e.rating),r.rank=e.rank,r.contestName=e.contestName,r.link=`/board/${e.contestID}`,r.contestTime=e.contestTime.format("YYYY-MM-DD HH:mm:ss"),r.teamName=e.teamName,r.ratingTitle=j[C.getRatingLevel(e.rating)],s.push(r),g=e.rating}}let n=[1200,1400,1600,1900,2100,2300,2400,2600,3e3];{let e=Math.max(0,d.minRating-100),r=d.maxRating+100;for(let a=0;a<n.length;++a)if(n[a]>r){r=n[a];break}for(let a=n.length-1;a>=0;--a)if(n[a]<e){e=n[a];break}e<1200&&(n=[e,...n]),r>3e3&&n.push(r),n=n.filter(a=>a>=e&&a<=r)}return{chart:{type:"line",height:"408px"},title:{text:null},xAxis:{tickWidth:0,gridLineWidth:.4,minRange:30*24*60*60*1e3,type:"datetime",showFirstLabel:!0,showLastLabel:!0,dateTimeLabelFormats:{month:"%b %Y"}},yAxis:{showEmpty:!1,showFirstLabel:!1,showLastLabel:!1,tickPositions:n,tickWidth:0,gridLineWidth:.6,labels:{enabled:!0,format:"{value}"},title:{text:null},plotBands:[{from:0,to:1199,color:"#CCCCCC"},{from:1200,to:1399,color:"#98FA87"},{from:1400,to:1599,color:"#90DABD"},{from:1600,to:1899,color:"#A9ACF9"},{from:1900,to:2099,color:"#EF91F9"},{from:2100,to:2299,color:"#F7CD91"},{from:2300,to:2399,color:"#F5BD67"},{from:2400,to:2599,color:"#Ef7F7B"},{from:2600,to:2999,color:"#EB483F"},{from:3e3,to:1061109567,color:"#9C1E14"}]},credits:{enabled:!1},plotOptions:{line:{color:"#ffec3d",dataLabels:{enabled:!1},enableMouseTracking:!0,marker:{enabled:!0,fillColor:"#fffb8f"}}},tooltip:{enabled:!0,headerFormat:"",useHTML:!0,shared:!0,shadow:!0,followPointer:!1,followTouchMove:!1,pointFormat:`= {point.y} ({point.diffRating}), {point.ratingTitle}
<br/>Rank: {point.rank}
<br/>TeamName: {point.teamName}
<br/>ContestTime: {point.contestTime}
<br/><a href="{point.link}">{point.contestName}</a>
<br/>`},series:[{showInLegend:!1,allowPointSelect:!0,data:s}]}}const et={"w-full":"","max-w-screen-xl":"","mx-auto":"","px-4":"","lg:px-8":""},nt={relative:"","overflow-hidden":"","bg-white":"","dark:bg-gray-800":""},ot={flex:"","flex-col":"","items-center":"","justify-between":"","md:flex-row":"","space-y-3":"","md:space-y-0":""},at={flex:"","flex-row":"","space-x-3":""},rt={"text-gray-900":"","dark:text-white":"","text-2xl":"","font-sans":"","font-semibold":"",italic:""},st={flex:"","flex-col":"","justify-start":"","items-start":""},it={"w-full":"","font-bold":"","font-mono":"",flex:"","items-center":"","justify-center":""},lt={"w-full":""},ct=R({__name:"RatingInfoModal",props:{isHidden:{type:Boolean},ratingUser:null},emits:["update:isHidden"],setup(d,{emit:s}){const n=d,u=s,g=h({get(){return n.isHidden},set(a){u("update:isHidden",a)}}),e=h(()=>n.ratingUser),r=h(()=>{let a="";return e.value.organization.length>0&&(a+=`${e.value.organization} - `),a+=`${e.value.name}`,e.value.members.length>0&&(a+=` - ${e.value.members.map(l=>l.name).join(",")}`),e.value.coaches.length>0&&(a+=` - ${e.value.coaches.map(l=>l.name).join(",")}(coach)`),a});return(a,l)=>{const v=N,i=U;return m(),z(i,{"is-hidden":o(g),"onUpdate:isHidden":l[0]||(l[0]=F=>S(g)?g.value=F:null),width:"w-278"},{header:k(()=>[t("div",et,[t("div",nt,[t("div",ot,[t("div",at,[_(v,null,{popper:k(()=>[t("div",st,[t("div",null," TeamID: "+x(o(e).id),1)])]),default:k(()=>[t("h3",rt,x(o(r)),1)]),_:1})])])])])]),default:k(()=>[t("div",it,[t("div",lt,[_(o(A.Chart),{options:("getRatingGraphOptions"in a?a.getRatingGraphOptions:o(tt))(o(e))},null,8,["options"])])])]),_:1},8,["is-hidden"])}}}),dt={class:"border-b dark:border-gray-600 hover:bg-gray-100 dark:hover:bg-gray-700"},ut={class:"whitespace-nowrap px-4 py-2 text-gray-900 dark:text-white"},gt={class:"whitespace-nowrap px-4 py-2 text-gray-900 dark:text-white"},mt={class:"whitespace-nowrap px-4 py-2 text-gray-900 dark:text-white"},pt={class:"whitespace-nowrap px-4 py-2 text-gray-900 dark:text-white"},ft={class:"whitespace-nowrap px-4 py-2 text-gray-900 dark:text-white"},ht=R({__name:"RatingUserUI",props:{ix:null,ratingUser:null},setup(d){const s=d,n=h(()=>s.ratingUser),u=y(!0);function g(){u.value=!1}return(e,r)=>{const a=ct,l=Q;return m(),f("tr",dt,[t("td",ut,x(o(n).organization),1),t("td",null,[t("div",{class:L(["whitespace-nowrap px-4 py-2 text-gray-900 dark:text-white",o(C).getRatingLevelClass(o(n).rating)]),"cursor-pointer":"",onClick:g},x(o(n).name),3),t("div",null,[o(u)?T("",!0):(m(),z(a,{key:0,"is-hidden":o(u),"onUpdate:isHidden":r[0]||(r[0]=v=>S(u)?u.value=v:null),"rating-user":o(n)},null,8,["is-hidden","rating-user"]))])]),t("td",gt,x(o(n).members.map(v=>v.name.trim()).join(" ")),1),t("td",mt,[_(l,{rating:o(n).rating},null,8,["rating"])]),t("td",pt,[_(l,{rating:o(n).maxRating},null,8,["rating"])]),t("td",ft,[_(l,{rating:o(n).minRating},null,8,["rating"])])])}}}),_t={"mx-auto":"","w-full":""},xt={"space-y-3":"",flex:"","flex-col":"","px-4":"","py-3":"","lg:flex-row":"","lg:items-center":"","lg:justify-between":"","lg:space-x-4":"","lg:space-y-0":""},vt={flex:"","flex-shrink-0":"","flex-col":"","md:flex-row":"","md:items-center":"","lg:justify-end":"","space-y-3":"","md:space-x-3":"","md:space-y-0":""},yt={"w-108":""},bt={class:"overflow-x-auto"},wt={class:"w-full text-left text-sm text-gray-500 dark:text-gray-400","font-medium":"","font-mono":""},kt=R({__name:"RatingTable",props:{rating:null,pageSize:null,removeBorder:{type:Boolean}},setup(d){const s=d,n=h(()=>s.rating),u=y({organizations:[],members:[]}),g=h(()=>{let p=n.value.users.map(c=>c.organization);return p=Array.from(new Set(p)),p.map(c=>({value:c,text:c}))}),e=y([]),r=y({});function a(p,c){e.value=p,r.value=c}const l=h(()=>n.value.users.filter(c=>{const b=u.value;if(b.organizations.length===0&&b.members.length===0)return!0;for(const $ of b.organizations)if($===c.organization)return!0;for(const $ of b.members)for(const w of c.members)if($===w.name)return!0;return!1}));function v(){const p={organizations:[],members:[]};p.organizations=e.value.map(c=>c.value),u.value=p}const i=y(new H);i.value.currentPage=0,i.value.pageSize=s.pageSize??20,i.value.totalSize=l.value.length,E(l,()=>{i.value.totalSize=l.value.length,i.value.currentPage>=i.value.totalPage&&(i.value.currentPage=i.value.totalPage-1)});const F=h(()=>l.value.slice(i.value.currentLeft,i.value.currentRight));return(p,c)=>{const b=ht,$=D;return m(),f("section",null,[t("div",_t,[t("div",{relative:"","overflow-hidden":"","bg-white":"","dark:bg-gray-800":"",class:L({"shadow-md":s.removeBorder!==!0,"sm:rounded-sm":s.removeBorder!==!0})},[t("div",xt,[t("div",vt,[t("div",yt,[_(o(O),{options:o(g),"selected-options":o(e),placeholder:"Organization",onSelect:a},null,8,["options","selected-options"])]),t("div",null,[t("button",{type:"button",class:"flex flex-shrink-0 items-center justify-center border border-gray-200 rounded-lg bg-white px-3 py-2 text-sm font-medium text-gray-900 focus:z-10 dark:border-gray-600 dark:bg-gray-800 hover:bg-gray-100 dark:text-gray-400 hover:text-primary-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:hover:bg-gray-700 dark:hover:text-white dark:focus:ring-gray-700",onClick:v},c[1]||(c[1]=[t("div",{"i-material-symbols-search":"","mr-1":"","h-5":"","w-5":""},null,-1),G(" Filter ")]))])])]),t("div",bt,[t("table",wt,[c[2]||(c[2]=t("thead",{"text-xs":"","bg-gray-50":"","text-gray-700":"","dark:bg-gray-700":"","dark:text-gray-400":""},[t("tr",null,[t("th",{scope:"col",class:"px-4 py-3","w-68":""}," Organization "),t("th",{scope:"col",class:"px-4 py-3","w-128":""}," TeamName "),t("th",{scope:"col",class:"px-4 py-3","w-68":""}," Members "),t("th",{scope:"col",class:"px-4 py-3"}," Rating "),t("th",{scope:"col",class:"px-4 py-3"}," MaxRating "),t("th",{scope:"col",class:"px-4 py-3"}," MinRating ")])],-1)),t("tbody",null,[(m(!0),f(V,null,Y(o(F),(w,M)=>(m(),z(b,{key:w.id,ix:M,"rating-user":w},null,8,["ix","rating-user"]))),128))])])]),_($,{pagination:o(i),"onUpdate:pagination":c[0]||(c[0]=w=>S(i)?i.value=w:null)},null,8,["pagination"])],2)])])}}}),Rt={class:"sm:w-[1024px] lg:w-screen","lg:of-x-hidden":"",flex:"","flex-col":"","justify-center":"","items-center":""},$t={key:0,"mt-4":"","mb-4":"",class:"sm:w-[1000px] lg:w-screen",flex:"","justify-center":"","items-center":""},Tt={key:0},Ft={key:1},Ct={key:1,flex:"","flex-col":"","justify-center":"","items-center":""},Lt={"text-4xl":"","font-medium":"","font-serif":""},zt={"mt-4":""},St=R({__name:"Rating",props:{id:null},setup(d){const s=d,n=h(()=>s.id);function u(){return`${q.value}${n.value}/rating.json`}const g=y(u()),e=y({}),{t:r}=W();B(I);const{error:a,isFetching:l,isFinished:v}=J(g,{refetch:!0,afterFetch:i=>(e.value=P.fromJSON(i.data),B(`${e.value.name} | ${I}`),i)}).get();return(i,F)=>{const p=kt;return m(),f("div",Rt,[t("div",null,[o(l)||o(a)?(m(),f("div",$t,[o(l)?(m(),f("div",Tt,x(o(r)("common.loading"))+"... ",1)):T("",!0),o(a)?(m(),f("div",Ft,x(o(a)),1)):T("",!0)])):T("",!0),o(v)?(m(),f("div",Ct,[t("div",Lt,x(o(e).name),1),t("div",zt,[_(p,{rating:o(e),"remove-border":!0},null,8,["rating"])])])):T("",!0)])])}}}),At=R({__name:"[...all]",setup(d){const n=X().path.split("/").pop();return(u,g)=>{const e=St;return m(),f("div",null,[_(e,{id:o(n)},null,8,["id"])])}}});export{At as default};