@xcpcio/board-app 0.69.5 → 0.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/404.html +1 -1
  2. package/dist/assets/{Balloon.vue_vue_type_script_setup_true_lang-DfbwZnd2.js → Balloon.vue_vue_type_script_setup_true_lang-oEmN2FUH.js} +1 -1
  3. package/dist/assets/{Board-BMeYlAwA.js → Board-Bhkqgu1Y.js} +97 -97
  4. package/dist/assets/{Board-C89Lc-cb.css → Board-tx1moXfi.css} +1 -1
  5. package/dist/assets/{ContestStateBadge-DoEREwpQ.js → ContestStateBadge-CvO-EMgm.js} +1 -1
  6. package/dist/assets/{Countdown-_PA1hqgx.js → Countdown-TVEha-GX.js} +1 -1
  7. package/dist/assets/{DataSourceInput.vue_vue_type_script_setup_true_lang-eUwkTVcq.js → DataSourceInput.vue_vue_type_script_setup_true_lang-DPoc3DXZ.js} +1 -1
  8. package/dist/assets/{Footer-BWt3hS1p.js → Footer-D8toReDQ.js} +1 -1
  9. package/dist/assets/{NavBar-DBduFBvK.js → NavBar-o5bwwfFh.js} +1 -1
  10. package/dist/assets/{Resolver-DYqdxinL.js → Resolver-DHnKaMVV.js} +1 -1
  11. package/dist/assets/{RightArrowIcon-CLEfqdYw.js → RightArrowIcon-DYbq8Bub.js} +1 -1
  12. package/dist/assets/{TheInput.vue_vue_type_script_setup_true_lang-BToUgLKT.js → TheInput.vue_vue_type_script_setup_true_lang-BdUca1-n.js} +1 -1
  13. package/dist/assets/{Tooltip.vue_vue_type_script_setup_true_lang-DDqugeXb.js → Tooltip.vue_vue_type_script_setup_true_lang-JtL4ZY65.js} +1 -1
  14. package/dist/assets/{_...all_-Cw819WoH.js → _...all_-CtqfVkht.js} +1 -1
  15. package/dist/assets/{_...all_-FGT9N2sj.js → _...all_-DMSafAfm.js} +1 -1
  16. package/dist/assets/{_name_-CuQ3cIKi.js → _name_-BmEIkMG7.js} +1 -1
  17. package/dist/assets/{about-BAhmu_eA.js → about-BR3jUE0_.js} +1 -1
  18. package/dist/assets/{board-layout-GCp2jR8Y.js → board-layout-DbzTYtb3.js} +1 -1
  19. package/dist/assets/board-q5on1RUR.js +1 -0
  20. package/dist/assets/constant-Ds9q2BQF.js +1 -0
  21. package/dist/assets/{dayjs-BswMS1T6.js → dayjs-DRRP86hV.js} +1 -1
  22. package/dist/assets/{default-BSnA2z3z.js → default--P8qjAUG.js} +1 -1
  23. package/dist/assets/en-Bc_VXYkH.js +1 -0
  24. package/dist/assets/{headless-DaRP-RlQ.js → headless---RphLCU.js} +1 -1
  25. package/dist/assets/{home-CQ7J5jfy.js → home-CRBm3f13.js} +1 -1
  26. package/dist/assets/{index-D_YfgkHi.js → index-BJ0B1S7n.js} +5 -5
  27. package/dist/assets/{index-BLzpiSXU.js → index-BKVhu7Tw.js} +1 -1
  28. package/dist/assets/{index-BGJAeisZ.css → index-CBwoaX68.css} +1 -1
  29. package/dist/assets/index-D7Dv5u2i.js +1 -0
  30. package/dist/assets/index-DDXtBC57.js +1 -0
  31. package/dist/assets/{index-BShKuYMv.js → index-DF3noR7O.js} +1 -1
  32. package/dist/assets/index-DwDo-flU.js +1 -0
  33. package/dist/assets/{index-layout-Dzd9pPBi.js → index-layout-DpgBAC2O.js} +1 -1
  34. package/dist/assets/{pagination-4SkVHmrY.js → pagination-CCDih46R.js} +1 -1
  35. package/dist/assets/{person-BqGZA5vO.js → person-wOxxwhEX.js} +1 -1
  36. package/dist/assets/{query-951tnQE0.js → query-Cwkn7-aW.js} +1 -1
  37. package/dist/assets/{rank-D0grINCt.js → rank-CzKFUPaY.js} +1 -1
  38. package/dist/assets/{test-BXOoffz6.js → test-2P7EDOc4.js} +1 -1
  39. package/dist/assets/{use-vmodel-B2gtAybe.js → use-vmodel-eKIPpK5B.js} +1 -1
  40. package/dist/assets/{useQueryBoardData-Bo2tfx6C.js → useQueryBoardData-BxZkFBMO.js} +1 -1
  41. package/dist/assets/{user-B76vXuTP.js → user-CgerVobA.js} +1 -1
  42. package/dist/assets/{virtual_pwa-register-DAgoMBVn.js → virtual_pwa-register-CeNObX1m.js} +1 -1
  43. package/dist/assets/zh-CN-DJPqkv-M.js +1 -0
  44. package/dist/index.html +1 -1
  45. package/dist/sw.js +1 -1
  46. package/package.json +3 -3
  47. package/src/components/board/{TeamInfoModal.vue → TeamModal.vue} +2 -13
  48. package/src/components/board/{TeamInfo.vue → TeamOverview.vue} +38 -0
  49. package/src/components/board/TeamUI.vue +7 -7
  50. package/src/components.d.ts +2 -3
  51. package/dist/assets/board-B2-AY2i9.js +0 -1
  52. package/dist/assets/constant-CglMAQbu.js +0 -1
  53. package/dist/assets/en-2FPgP2UC.js +0 -1
  54. package/dist/assets/index-B57ZqXF4.js +0 -1
  55. package/dist/assets/index-BhnYlDUf.js +0 -1
  56. package/dist/assets/index-Bo0N8sE9.js +0 -1
  57. package/dist/assets/zh-CN-HUuGZsB1.js +0 -1
  58. package/src/components/board/TeamAwards.vue +0 -121
@@ -1 +1 @@
1
- import{I as n}from"./dayjs-BswMS1T6.js";class e{constructor(r){this.name=r??new n}toIPerson(){return{name:this.name.toI18NStringSet(),cf_id:this.cfID,icpc_id:this.icpcID}}static fromIPerson(r){const c=new e;return c.name=n.fromIText(r.name),c.cfID=r.cf_id,c.icpcID=r.icpc_id,c}}function m(t){if(!t)return[];if(typeof t=="string"){for(const r of" ,、|")if(t.includes(r))return t.split(r).map(c=>new e(n.fromIText(c)));return[new e(n.fromIText(t))]}return Array.isArray(t)?t.length>0&&typeof t[0]=="object"&&"name"in t[0]?t.map(r=>e.fromIPerson(r)):t.map(r=>new e(n.fromIText(r))):[new e(n.fromIText(t))]}export{e as P,m as c};
1
+ import{I as n}from"./dayjs-DRRP86hV.js";class e{constructor(r){this.name=r??new n}toIPerson(){return{name:this.name.toI18NStringSet(),cf_id:this.cfID,icpc_id:this.icpcID}}static fromIPerson(r){const c=new e;return c.name=n.fromIText(r.name),c.cfID=r.cf_id,c.icpcID=r.icpc_id,c}}function m(t){if(!t)return[];if(typeof t=="string"){for(const r of" ,、|")if(t.includes(r))return t.split(r).map(c=>new e(n.fromIText(c)));return[new e(n.fromIText(t))]}return Array.isArray(t)?t.length>0&&typeof t[0]=="object"&&"name"in t[0]?t.map(r=>e.fromIPerson(r)):t.map(r=>new e(n.fromIText(r))):[new e(n.fromIText(t))]}export{e as P,m as c};
@@ -1,4 +1,4 @@
1
- import{I as fi,c as Un,d as Xr,g as Pf}from"./dayjs-BswMS1T6.js";import{R as Qr,M as _p,g as bp,H as mp,av as vp,aw as wp,ax as Vr,P as yp,C as xp}from"./index-D_YfgkHi.js";var je=(i=>(i.UNKNOWN="Unknown",i.GOLD="Gold",i.SILVER="Silver",i.BRONZE="Bronze",i.HONORABLE="Honorable",i))(je||{});class No{constructor(){this.medalType="Unknown",this.minRank=0,this.maxRank=0}}function D_(i){return["Gold","Silver","Bronze","Honorable"].includes(i)}var nr={exports:{}};/**
1
+ import{I as fi,c as Un,d as Xr,g as Pf}from"./dayjs-DRRP86hV.js";import{R as Qr,M as _p,g as bp,H as mp,av as vp,aw as wp,ax as Vr,P as yp,C as xp}from"./index-BJ0B1S7n.js";var je=(i=>(i.UNKNOWN="Unknown",i.GOLD="Gold",i.SILVER="Silver",i.BRONZE="Bronze",i.HONORABLE="Honorable",i))(je||{});class No{constructor(){this.medalType="Unknown",this.minRank=0,this.maxRank=0}}function D_(i){return["Gold","Silver","Bronze","Honorable"].includes(i)}var nr={exports:{}};/**
2
2
  * @license
3
3
  * Lodash <https://lodash.com/>
4
4
  * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
@@ -1 +1 @@
1
- import{k as H,_ as f,P as $,T as q,M as T,A as R}from"./query-951tnQE0.js";import{I as F}from"./dayjs-BswMS1T6.js";import{c as A}from"./person-BqGZA5vO.js";var r=(e=>(e.PENDING="PENDING",e.WAITING="WAITING",e.PREPARING="PREPARING",e.COMPILING="COMPILING",e.RUNNING="RUNNING",e.JUDGING="JUDGING",e.FROZEN="FROZEN",e.ACCEPTED="ACCEPTED",e.CORRECT="CORRECT",e.PARTIALLY_CORRECT="PARTIALLY_CORRECT",e.REJECTED="REJECTED",e.WRONG_ANSWER="WRONG_ANSWER",e.NO_OUTPUT="NO_OUTPUT",e.COMPILATION_ERROR="COMPILATION_ERROR",e.PRESENTATION_ERROR="PRESENTATION_ERROR",e.RUNTIME_ERROR="RUNTIME_ERROR",e.TIME_LIMIT_EXCEEDED="TIME_LIMIT_EXCEEDED",e.MEMORY_LIMIT_EXCEEDED="MEMORY_LIMIT_EXCEEDED",e.OUTPUT_LIMIT_EXCEEDED="OUTPUT_LIMIT_EXCEEDED",e.IDLENESS_LIMIT_EXCEEDED="IDLENESS_LIMIT_EXCEEDED",e.HACKED="HACKED",e.JUDGEMENT_FAILED="JUDGEMENT_FAILED",e.CONFIGURATION_ERROR="CONFIGURATION_ERROR",e.FILE_ERROR="FILE_ERROR",e.SYSTEM_ERROR="SYSTEM_ERROR",e.CANCELED="CANCELED",e.SKIPPED="SKIPPED",e.SECURITY_VIOLATED="SECURITY_VIOLATED",e.DENIAL_OF_JUDGEMENT="DENIAL_OF_JUDGEMENT",e.UNKNOWN="UNKNOWN",e.UNDEFINED="UNDEFINED",e))(r||{});const _t={PENDING:"Pending",WAITING:"Waiting",PREPARING:"Preparing",COMPILING:"Compiling",RUNNING:"Running",JUDGING:"Judging",FROZEN:"Frozen",ACCEPTED:"Accepted",CORRECT:"Correct",PARTIALLY_CORRECT:"Partially Correct",REJECTED:"Rejected",WRONG_ANSWER:"Wrong Answer",NO_OUTPUT:"No Output",COMPILATION_ERROR:"Compilation Error",PRESENTATION_ERROR:"Presentation Error",RUNTIME_ERROR:"Runtime Error",TIME_LIMIT_EXCEEDED:"Time Limit Exceeded",MEMORY_LIMIT_EXCEEDED:"Memory Limit Exceeded",OUTPUT_LIMIT_EXCEEDED:"Output Limit Exceeded",IDLENESS_LIMIT_EXCEEDED:"Idleness Limit Exceeded",HACKED:"Hacked",JUDGEMENT_FAILED:"Judgement Failed",CONFIGURATION_ERROR:"Configuration Error",FILE_ERROR:"File Error",SYSTEM_ERROR:"System Error",CANCELED:"Canceled",SKIPPED:"Skipped",SECURITY_VIOLATED:"Security Violated",DENIAL_OF_JUDGEMENT:"Denial Of Judgement",UNKNOWN:"Unknown",UNDEFINED:"Undefined"},Dt={PENDING:"PD",WAITING:"PD",PREPARING:"PD",COMPILING:"PD",RUNNING:"PD",JUDGING:"PD",FROZEN:"?",ACCEPTED:"AC",CORRECT:"AC",PARTIALLY_CORRECT:"RJ",REJECTED:"RJ",WRONG_ANSWER:"WA",NO_OUTPUT:"NO",COMPILATION_ERROR:"CE",PRESENTATION_ERROR:"PE",RUNTIME_ERROR:"RTE",TIME_LIMIT_EXCEEDED:"TLE",MEMORY_LIMIT_EXCEEDED:"MLE",OUTPUT_LIMIT_EXCEEDED:"OLE",IDLENESS_LIMIT_EXCEEDED:"ILE",HACKED:"RJ",JUDGEMENT_FAILED:"RJ",CONFIGURATION_ERROR:"RJ",FILE_ERROR:"RJ",SYSTEM_ERROR:"RJ",CANCELED:"RJ",SKIPPED:"RJ",SECURITY_VIOLATED:"RJ",DENIAL_OF_JUDGEMENT:"RJ",UNKNOWN:"RJ",UNDEFINED:"RJ"};function Q(e){return e=e.toUpperCase().replace(" ","_"),["OK","AC",r.ACCEPTED.toString()].includes(e)||[r.CORRECT.toString()].includes(e)?r.ACCEPTED:[r.PARTIALLY_CORRECT.toString()].includes(e)?r.PARTIALLY_CORRECT:["WA",r.WRONG_ANSWER.toString()].includes(e)?r.WRONG_ANSWER:["RJ","INCORRECT",r.REJECTED.toString()].includes(e)?r.REJECTED:["NO",r.NO_OUTPUT.toString()].includes(e)?r.NO_OUTPUT:["PD",r.PENDING.toString()].includes(e)?r.PENDING:[r.WAITING.toString()].includes(e)?r.WAITING:[r.JUDGING.toString()].includes(e)?r.JUDGING:[r.FROZEN.toString()].includes(e)?r.FROZEN:["CE",r.COMPILATION_ERROR.toString()].includes(e)?r.COMPILATION_ERROR:["PE",r.PRESENTATION_ERROR.toString()].includes(e)?r.PRESENTATION_ERROR:["TL","TLE",r.TIME_LIMIT_EXCEEDED.toString()].includes(e)?r.TIME_LIMIT_EXCEEDED:["ML","MLE",r.MEMORY_LIMIT_EXCEEDED.toString()].includes(e)?r.MEMORY_LIMIT_EXCEEDED:["OL","OLE",r.OUTPUT_LIMIT_EXCEEDED.toString()].includes(e)?r.OUTPUT_LIMIT_EXCEEDED:["IL","ILE",r.IDLENESS_LIMIT_EXCEEDED.toString()].includes(e)?r.IDLENESS_LIMIT_EXCEEDED:["RT","RE","RTE",r.RUNTIME_ERROR.toString()].includes(e)?r.RUNTIME_ERROR:["JE",r.JUDGEMENT_FAILED.toString()].includes(e)?r.JUDGEMENT_FAILED:["SE",r.SYSTEM_ERROR.toString()].includes(e)?r.SYSTEM_ERROR:[r.HACKED.toString()].includes(e)?r.HACKED:[r.CONFIGURATION_ERROR.toString()].includes(e)?r.CONFIGURATION_ERROR:[r.CANCELED.toString()].includes(e)?r.CANCELED:[r.SKIPPED.toString()].includes(e)?r.SKIPPED:[r.SECURITY_VIOLATED.toString()].includes(e)?r.SECURITY_VIOLATED:[r.DENIAL_OF_JUDGEMENT.toString()].includes(e)?r.DENIAL_OF_JUDGEMENT:r.UNKNOWN}function tt(e){return[r.ACCEPTED,r.CORRECT].includes(e)}function et(e){return[r.RUNTIME_ERROR,r.TIME_LIMIT_EXCEEDED,r.MEMORY_LIMIT_EXCEEDED,r.OUTPUT_LIMIT_EXCEEDED,r.IDLENESS_LIMIT_EXCEEDED,r.WRONG_ANSWER,r.REJECTED,r.NO_OUTPUT,r.JUDGEMENT_FAILED,r.HACKED].includes(e)}function it(e){return[r.PENDING,r.WAITING,r.COMPILING,r.JUDGING,r.FROZEN].includes(e)}function st(e){return[r.COMPILATION_ERROR,r.PRESENTATION_ERROR,r.CONFIGURATION_ERROR,r.SYSTEM_ERROR,r.CANCELED,r.SKIPPED,r.UNKNOWN,r.UNDEFINED].includes(e)}class b{constructor(){this.status=r.UNKNOWN,this.isIgnore=!1,this.isSolved=!1,this.isFirstSolved=!1,this.id="",this.teamId="",this.problemId="",this.timestamp=0,this.timestampUnit="second"}isAccepted(){return tt(this.status)}isRejected(){return et(this.status)}isPending(){return it(this.status)}isNotCalculatedPenaltyStatus(){return st(this.status)}get timestampToMinute(){return this.timestampUnit==="nanosecond"?Math.floor(this.timestamp/60/1e3/1e3/1e3):this.timestampUnit==="microsecond"?Math.floor(this.timestamp/60/1e3/1e3):this.timestampUnit==="millisecond"?Math.floor(this.timestamp/60/1e3):Math.floor(this.timestamp/60)}get timestampToSecond(){return this.timestampUnit==="nanosecond"?Math.floor(this.timestamp/1e3/1e3/1e3):this.timestampUnit==="microsecond"?Math.floor(this.timestamp/1e3/1e3):this.timestampUnit==="millisecond"?Math.floor(this.timestamp/1e3):this.timestamp}get timestampDisplayFormatWithSecond(){const t=this.timestampToSecond,i=Math.floor(t/3600),s=Math.floor(t%3600/60),n=t%60,a=m=>m.toString().padStart(2,"0");return`${a(i)}:${a(s)}:${a(n)}`}get timestampDisplayFormatWithMilliSecond(){let t=this.timestampDisplayFormatWithSecond;if(this.timestampUnit==="millisecond"){const i=(this.timestamp%1e3).toString().padStart(3,"0");t+=`.${i}`}return t}static compare(t,i){if(t.timestamp!==i.timestamp)return t.timestamp-i.timestamp;if(t.teamId===i.teamId){if(t.isAccepted()&&!i.isAccepted())return-1;if(!t.isAccepted()&&i.isAccepted())return 1}return t.id<i.id?-1:t.id===i.id?0:1}}function O(e,t){const i=new b;return i.id=String(e.id??e.submission_id??""),i.teamId=String(e.team_id),i.problemId=String(e.problem_id),i.timestamp=e.timestamp,i.status=Q(e.status),i.isIgnore=e.is_ignore??!1,e.time&&(i.time=e.time),e.language&&(i.language=e.language),e.reaction?i.reaction=e.reaction:t?.options.reactionVideoUrlTemplate&&(i.reaction={url:t.options.reactionVideoUrlTemplate.replace(/\$\{submission_id\}/,i.id)}),i}function Ct(e,t){return Array.isArray(e)?e.map((i,s)=>O({...i,id:i.submission_id??String(s)},t)):Object.entries(e).map(([s,n])=>O({...n,id:n.submission_id??s},t))}class p{constructor(){this.id="",this.name=new F,this.organization="",this.group=[],this.tag=[],this.coaches=[],this.members=[],this.rank=0,this.originalRank=0,this.organizationRank=-1,this.solvedProblemNum=0,this.attemptedProblemNum=0,this.lastSolvedProblem=null,this.lastSolvedProblemStatistics=null,this.penalty=0,this.problemStatistics=[],this.problemStatisticsMap=new Map,this.submissions=[],this.placeChartPoints=[],this.awards=[],this.missingPhoto=!1,this.se=0}reset(){this.rank=0,this.originalRank=0,this.organizationRank=-1,this.solvedProblemNum=0,this.attemptedProblemNum=0,this.lastSolvedProblem=null,this.lastSolvedProblemStatistics=null,this.penalty=0,this.problemStatistics=[],this.problemStatisticsMap=new Map,this.submissions=[],this.placeChartPoints=[],this.awards=[],this.se=0}get penaltyToMinute(){return Math.floor(this.penalty/60)}get isUnofficial(){return this.group.includes("unofficial")}get isGirl(){return this.group.includes("girl")}get isEffectiveTeam(){return this.solvedProblemNum>0}get dirt(){const t=this.attemptedProblemNum,i=this.solvedProblemNum;return H(t,i)}membersToString(t){return this.members.map(i=>i.name.getOrDefault(t)).join(", ")}coachesToString(t){return this.coaches.map(i=>i.name.getOrDefault(t)).join(", ")}calcSE(t){let i=0,s=0;if(this.problemStatistics.forEach(a=>{a.isSolved&&(i+=1,s+=a.problem.statistics.acceptedNum)}),t===0||i===0)return 0;const n=(i*t-s)/t/i;return this.se=Math.round(n*100)/100,this.se}calcSolvedData(t){this.solvedProblemNum=0,this.attemptedProblemNum=0,this.penalty=0;for(const i of this.problemStatistics)i.isAccepted&&(this.solvedProblemNum++,this.attemptedProblemNum+=i.failedCount+1,t?.calculationOfPenalty==="in_seconds"||t?.calculationOfPenalty==="accumulate_in_seconds_and_finally_to_the_minute"?this.penalty+=i.penaltyInSecond:this.penalty+=i.penalty);t?.calculationOfPenalty==="accumulate_in_seconds_and_finally_to_the_minute"&&(this.penalty=Math.floor(this.penalty/60)*60)}calcAwards(t){if(t)for(const i of t)this.rank>=i.minRank&&this.rank<=i.maxRank&&this.awards.push(i.medalType)}isEqualRank(t){return this.solvedProblemNum===t.solvedProblemNum&&this.penalty===t.penalty&&this.lastSolvedProblemStatistics?.solvedTimestampToMinute===t.lastSolvedProblemStatistics?.solvedTimestampToMinute}postProcessPlaceChartPoints(){if(this.placeChartPoints.length===0)return;const t=[];t.push(this.placeChartPoints[0]);for(let i=1;i<this.placeChartPoints.length-1;i++){const s=this.placeChartPoints[i],n=t[t.length-1];(s.rank!==n.rank||s.lastSolvedProblem!==n.lastSolvedProblem)&&t.push(s)}this.placeChartPoints.length>1&&t.push(this.placeChartPoints[this.placeChartPoints.length-1]),this.placeChartPoints=t}static compare(t,i){return t.solvedProblemNum!==i.solvedProblemNum?i.solvedProblemNum-t.solvedProblemNum:t.penalty!==i.penalty?t.penalty-i.penalty:t.lastSolvedProblemStatistics&&i.lastSolvedProblemStatistics?t.lastSolvedProblemStatistics.solvedTimestampToMinute-i.lastSolvedProblemStatistics.solvedTimestampToMinute:t.name<i.name?-1:t.name>i.name?1:0}}function M(e){const t=new p;t.id=e.id??e.team_id??"",t.name=F.fromIText(e.name??e.team_name??""),t.organization=e.organization??"",t.group=f.cloneDeep(e.group??[]),t.tag=f.cloneDeep(e.tag??[]),t.coaches=A(e.coach),t.members=A(e.members),e.official&&t.group.push("official"),e.unofficial&&t.group.push("unofficial"),e.girl&&t.group.push("girl");{const i=e;for(const s of Object.keys(i))s!=="missing_photo"&&(i[s]===1||i[s]===!0)&&t.group.push(s)}return t.group=[...new Set(t.group)],t.group.sort(),t.badge=e.badge,e.missing_photo&&(t.missingPhoto=!0),t.photo=e.photo,e.location&&(t.location=e.location),e.icpc_id&&(t.icpcID=e.icpc_id),t}function Pt(e){return Array.isArray(e)?e.map(t=>M(t)):Object.entries(e).map(([i,s])=>M({...s,team_id:s.team_id??i}))}class nt{constructor(){this.problem=new $,this.team=new p,this.submission=new b}get key(){return`balloon-${this.team.id}-${this.problem.id}`}static compare(t,i){return b.compare(t.submission,i.submission)}}const G="3.7.8",rt=G,h=typeof Buffer=="function",y=typeof TextDecoder=="function"?new TextDecoder:void 0,U=typeof TextEncoder=="function"?new TextEncoder:void 0,at="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d=Array.prototype.slice.call(at),I=(e=>{let t={};return e.forEach((i,s)=>t[i]=s),t})(d),ot=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,u=String.fromCharCode.bind(String),L=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):e=>new Uint8Array(Array.prototype.slice.call(e,0)),k=e=>e.replace(/=/g,"").replace(/[+\/]/g,t=>t=="+"?"-":"_"),w=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),B=e=>{let t,i,s,n,a="";const l=e.length%3;for(let m=0;m<e.length;){if((i=e.charCodeAt(m++))>255||(s=e.charCodeAt(m++))>255||(n=e.charCodeAt(m++))>255)throw new TypeError("invalid character found");t=i<<16|s<<8|n,a+=d[t>>18&63]+d[t>>12&63]+d[t>>6&63]+d[t&63]}return l?a.slice(0,l-3)+"===".substring(l):a},P=typeof btoa=="function"?e=>btoa(e):h?e=>Buffer.from(e,"binary").toString("base64"):B,D=h?e=>Buffer.from(e).toString("base64"):e=>{let i=[];for(let s=0,n=e.length;s<n;s+=4096)i.push(u.apply(null,e.subarray(s,s+4096)));return P(i.join(""))},N=(e,t=!1)=>t?k(D(e)):D(e),lt=e=>{if(e.length<2){var t=e.charCodeAt(0);return t<128?e:t<2048?u(192|t>>>6)+u(128|t&63):u(224|t>>>12&15)+u(128|t>>>6&63)+u(128|t&63)}else{var t=65536+(e.charCodeAt(0)-55296)*1024+(e.charCodeAt(1)-56320);return u(240|t>>>18&7)+u(128|t>>>12&63)+u(128|t>>>6&63)+u(128|t&63)}},mt=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,z=e=>e.replace(mt,lt),v=h?e=>Buffer.from(e,"utf8").toString("base64"):U?e=>D(U.encode(e)):e=>P(z(e)),E=(e,t=!1)=>t?k(v(e)):v(e),x=e=>E(e,!0),ct=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,ut=e=>{switch(e.length){case 4:var t=(7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3),i=t-65536;return u((i>>>10)+55296)+u((i&1023)+56320);case 3:return u((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return u((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},W=e=>e.replace(ct,ut),X=e=>{if(e=e.replace(/\s+/g,""),!ot.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(e.length&3));let t,i,s,n=[];for(let a=0;a<e.length;)t=I[e.charAt(a++)]<<18|I[e.charAt(a++)]<<12|(i=I[e.charAt(a++)])<<6|(s=I[e.charAt(a++)]),i===64?n.push(u(t>>16&255)):s===64?n.push(u(t>>16&255,t>>8&255)):n.push(u(t>>16&255,t>>8&255,t&255));return n.join("")},S=typeof atob=="function"?e=>atob(w(e)):h?e=>Buffer.from(e,"base64").toString("binary"):X,Y=h?e=>L(Buffer.from(e,"base64")):e=>L(S(e).split("").map(t=>t.charCodeAt(0))),K=e=>Y(j(e)),Et=h?e=>Buffer.from(e,"base64").toString("utf8"):y?e=>y.decode(Y(e)):e=>W(S(e)),j=e=>w(e.replace(/[-_]/g,t=>t=="-"?"+":"/")),C=e=>Et(j(e)),ht=e=>{if(typeof e!="string")return!1;const t=e.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},V=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),Z=function(){const e=(t,i)=>Object.defineProperty(String.prototype,t,V(i));e("fromBase64",function(){return C(this)}),e("toBase64",function(t){return E(this,t)}),e("toBase64URI",function(){return E(this,!0)}),e("toBase64URL",function(){return E(this,!0)}),e("toUint8Array",function(){return K(this)})},J=function(){const e=(t,i)=>Object.defineProperty(Uint8Array.prototype,t,V(i));e("toBase64",function(t){return N(this,t)}),e("toBase64URI",function(){return N(this,!0)}),e("toBase64URL",function(){return N(this,!0)})},dt=()=>{Z(),J()},_={version:G,VERSION:rt,atob:S,atobPolyfill:X,btoa:P,btoaPolyfill:B,fromBase64:C,toBase64:E,encode:E,encodeURI:x,encodeURL:x,utob:z,btou:W,decode:C,isValid:ht,fromUint8Array:N,toUint8Array:K,extendString:Z,extendUint8Array:J,extendBuiltins:dt};var ft=(e=>(e[e.BLUE=0]="BLUE",e[e.RED=1]="RED",e))(ft||{});class g{constructor(t=0){this.type=t,this.name=`${t===0?"Blue":"Red"} Team`,this.teams=[],this.filterOrganizations=[],this.filterOrganizationMap=new Map,this.filterTeams=[],this.filterTeamMap=new Map}setFilterOrganizations(t){const i=new Map;t.forEach(s=>{i.set(s.value,s)}),this.filterOrganizations=t,this.filterOrganizationMap=i}setFilterTeams(t){const i=new Map;t.forEach(s=>{i.set(s.value,s)}),this.filterTeams=t,this.filterTeamMap=i}refreshName(){return this.filterOrganizations.length>0?this.name=this.filterOrganizations[0].text:this.name=`${this.type===0?"Blue":"Red"} Team`,this.name}get totalSolvedProblemNum(){let t=0;return this.teams.forEach(i=>{t+=i.solvedProblemNum}),t}get totalPenalty(){let t=0;return this.teams.forEach(i=>{t+=i.penaltyToMinute}),t}get totalPenaltyToString(){const t=this.totalPenalty,i=a=>a<10?`0${a}`:String(a),s=Math.floor(t/60),n=Math.floor(t%60);return[i(s),i(n)].join(":")}toJSON(){return{type:this.type,name:this.name,filterOrganizations:this.filterOrganizations,filterTeams:this.filterTeams}}}class pt{constructor(){this.enable=!1,this.topX=5,this.equalTeams=!0,this.persist=!1,this.blueTeam=new g(0),this.redTeam=new g(1)}ToBase64(){return _.encode(JSON.stringify(this))}FromBase64(t){if(t.length===0||_.isValid(t)===!1)return;const i=JSON.parse(_.decode(t));this.enable=i.enable,this.topX=i.topX,this.equalTeams=i.equalTeams,this.persist=i.persist,this.blueTeam=new g(0),this.blueTeam.name=i.blueTeam.name,this.blueTeam.setFilterOrganizations(i.blueTeam.filterOrganizations),this.blueTeam.setFilterTeams(i.blueTeam.filterTeams),this.redTeam=new g(1),this.redTeam.name=i.redTeam.name,this.redTeam.setFilterOrganizations(i.redTeam.filterOrganizations),this.redTeam.setFilterTeams(i.redTeam.filterTeams)}}class Tt{constructor(){this.teamSolvedNum=[],this.teamSolvedNumIndex=[],this.maxSolvedProblems=0,this.effectiveTeamNum=0,this.totalTeamNum=0}reset(){this.teamSolvedNum=[],this.teamSolvedNumIndex=[],this.maxSolvedProblems=0,this.effectiveTeamNum=0,this.totalTeamNum=0}getTeamSolvedNumIndex(t){return this.teamSolvedNumIndex[t]??0}}class Rt{constructor(){this.enableFilterSubmissionsByTimestamp=!1,this.width=0,this.timestamp=0,this.enableFilterTeamsByGroup=!1,this.group="all",this.filterOrganizations=[],this.filterOrganizationMap=new Map,this.filterTeams=[],this.filterTeamMap=new Map,this.enableAnimatedSubmissions=!1,this.battleOfGiants=new pt}setSelf(t){this.enableFilterSubmissionsByTimestamp=t.enableFilterSubmissionsByTimestamp,this.width=t.width,this.timestamp=t.timestamp,this.enableFilterTeamsByGroup=t.enableFilterTeamsByGroup,this.group=t.group,this.filterOrganizations=t.filterOrganizations,this.filterOrganizationMap=t.filterOrganizationMap,this.filterTeams=t.filterTeams,this.filterTeamMap=t.filterTeamMap,this.enableAnimatedSubmissions=t.enableAnimatedSubmissions,this.battleOfGiants=t.battleOfGiants}setWidth(t,i){this.width=t,this.timestamp=Math.floor((i.getEndTime().unix()-i.getStartTime().unix())*this.width*1e-4),this.enableFilterSubmissionsByTimestamp=!0}disableFilterSubmissionByTimestamp(){this.enableFilterSubmissionsByTimestamp=!1}setGroup(t){this.group=t,this.enableFilterTeamsByGroup=!0,this.group==="all"&&this.disableFilterTeamsByGroup()}disableFilterTeamsByGroup(){this.enableFilterTeamsByGroup=!1,this.group="all"}setFilterOrganizations(t){const i=new Map;t.forEach(s=>{i.set(s.value,s)}),this.filterOrganizations=t,this.filterOrganizationMap=i}setFilterTeams(t){const i=new Map;t.forEach(s=>{i.set(s.value,s)}),this.filterTeams=t,this.filterTeamMap=i}isNeedReBuildRank(t){return this.enableFilterSubmissionsByTimestamp!==t.enableFilterSubmissionsByTimestamp||this.width!==t.width||this.timestamp!==t.timestamp||this.enableFilterTeamsByGroup!==t.enableFilterTeamsByGroup||this.group!==t.group}}class St{constructor(t,i,s){this.contest=t,this.teams=f.cloneDeep(i),this.teamsMap=new Map(this.teams.map(n=>[n.id,n])),this.submissions=f.cloneDeep(s).sort(b.compare);{const n=this.contest.options,a=f.cloneDeep(n.submissionTimestampUnit);this.submissions.forEach(l=>{l.timestampUnit=a,l.time&&(n.submissionHasTimeField=!0),l.language&&(n.submissionHasLanguageField=!0)})}this.submissionsMap=new Map(this.submissions.map(n=>[n.id,n])),this.organizations=this.buildOrganizations(),this.originTeams=this.teams.map(n=>n),this.originTeams.sort(p.compare),this.rankStatistics=new Tt,this.options=new Rt,this.balloons=[];{const n=new Set;this.submissions.forEach(a=>{a.language&&n.add(a.language)}),this.languages=[...n].sort()}{const n=new Set;this.submissions.forEach(a=>{n.add(a.status)}),this.statuses=[...n].sort()}}cleanRank(){(()=>{this.teams=[];for(const[t,i]of this.teamsMap)this.filterTeamByOrg(i)||this.teams.push(i)})();for(const t of this.teams)t.reset(),t.problemStatistics=this.contest.problems.map(i=>{const s=new q;return s.problem=i,s.contestPenalty=this.contest.penalty,s}),t.problemStatisticsMap=new Map(t.problemStatistics.map(i=>[i.problem.id,i]));this.contest.problems.forEach(t=>{t.statistics.reset()})}buildRank(){return(()=>{this.cleanRank(),this.teams.forEach(s=>s.placeChartPoints.push({timePoint:0,rank:1,lastSolvedProblem:null})),this.rankStatistics.reset(),this.rankStatistics.teamSolvedNum=Array.from({length:this.contest.problems.length+1}).fill(0),this.rankStatistics.teamSolvedNumIndex=Array.from({length:this.contest.problems.length+1}).fill(0);let t=0;const i=this.getSubmissions();for(let s=0;s<i.length;s++){const n=i[s],a=n.teamId,l=n.problemId,m=this.teamsMap.get(a),c=this.contest.problemsMap.get(l);(()=>{if(m===void 0||this.filterTeamByOrg(m)||c===void 0)return;const o=m.problemStatisticsMap.get(l);if(o.submissions.push(n),m.submissions.push(n),c.statistics.submittedNum++,o.isSolved){n.isSolved=!1,n.isFirstSolved=!1;return}if(n.isIgnore||n.isNotCalculatedPenaltyStatus()){c.statistics.ignoreNum++,o.ignoreCount++;return}if(o.isSubmitted=!0,o.lastSubmitTimestamp=n.timestampToSecond,o.totalCount++,n.isAccepted()){for(n.isSolved=!0,o.isSolved=!0,o.solvedTimestamp=n.timestampToSecond,c.statistics.acceptedNum++,c.statistics.attemptedNum+=o.failedCount+1,(c.statistics.firstSolveSubmissions.length===0||c.statistics.firstSolveSubmissions[c.statistics.firstSolveSubmissions.length-1].timestamp===n.timestamp)&&(n.isFirstSolved=!0,o.isFirstSolved=!0,c.statistics.firstSolveSubmissions.push(n));c.statistics.lastSolveSubmissions.length>0;)c.statistics.lastSolveSubmissions.pop();c.statistics.lastSolveSubmissions.push(n),m.lastSolvedProblem=c,m.lastSolvedProblemStatistics=o}n.isRejected()&&(o.failedCount++,c.statistics.rejectedNum++),n.isPending()&&(o.pendingCount++,c.statistics.pendingNum++)})(),(n.timestampToMinute>t||s===i.length-1)&&(this.teams.forEach(o=>o.calcSolvedData(this.contest.options)),this.teams.sort(p.compare),this.buildTeamRank(),this.teams.forEach(o=>o.placeChartPoints.push({timePoint:n.timestampToMinute,rank:o.rank,lastSolvedProblem:o.lastSolvedProblem}))),t=n.timestampToMinute}this.teams.forEach(s=>s.calcSolvedData(this.contest.options)),this.teams.sort(p.compare),this.buildTeamRank(),this.buildOrgRank(),this.rankStatistics.effectiveTeamNum=this.teams.filter(s=>s.isEffectiveTeam).length,this.rankStatistics.totalTeamNum=this.teams.length,this.teams.forEach(s=>s.calcSE(this.rankStatistics.totalTeamNum)),this.contest.problems.forEach(s=>s.statistics.calcSE(this.rankStatistics.totalTeamNum)),this.buildAwards(),this.teams.forEach(s=>s.calcAwards(this.contest.awards?.get(this.options.group))),this.teams.forEach(s=>s.postProcessPlaceChartPoints())})(),(()=>{for(const t of this.teams)this.rankStatistics.teamSolvedNum[t.solvedProblemNum]++;{let t=0;const i=this.rankStatistics.teamSolvedNum,s=this.rankStatistics.teamSolvedNumIndex;for(let n=s.length-1;n>=0;n--)t+=i[n]>0?1:0,s[n]=t}this.teams.length>0&&(this.rankStatistics.maxSolvedProblems=this.teams[0].solvedProblemNum)})(),this}buildTeamRank(){let t=1,i=1,s=null;for(const n of this.teams)n.rank=t++,n.originalRank=i++,s!==null&&n.isEqualRank(s)&&(n.rank=s.rank),s=n}buildOrgRank(){if(!this.contest.organization)return;let t=1,i=null;const s=new Set;for(const n of this.teams){const a=n.organization;s.has(a)||(s.add(a),n.organizationRank=t++,i!==null&&n.isEqualRank(i)&&(n.organizationRank=i.organizationRank),i=n)}}buildOrganizations(){if(!this.contest.organization)return[];const t=new Array,i=new Set;return this.teams.forEach(s=>{const n=s.organization;i.has(n)||(t.push(n),i.add(n))}),t.sort(),t}buildAwards(){if(this.contest.medal==="ccpc"){this.contest.awards=new Map;const t=this.rankStatistics.effectiveTeamNum,i=[],s=new R,n=new R,a=new R,l=new R;s.medalType=T.GOLD,s.minRank=1,s.maxRank=Math.ceil(t*.1),s.maxRank>=s.minRank&&i.push(s),n.medalType=T.SILVER,n.minRank=s.maxRank+1,n.maxRank=Math.ceil(t*.3),n.maxRank>=n.minRank&&i.push(n),a.medalType=T.BRONZE,a.minRank=n.maxRank+1,a.maxRank=Math.ceil(t*.6),a.maxRank>=a.minRank&&i.push(a),l.medalType=T.HONORABLE,l.minRank=a.maxRank+1,this.teams.forEach(m=>{m.solvedProblemNum>0&&(l.maxRank=Math.max(l.maxRank,m.rank))}),l.maxRank>=l.minRank&&i.push(l),this.contest.awards.set("official",i)}}filterTeamByOrg(t){const i=this.options;return!!(i.enableFilterTeamsByGroup&&!t.group?.includes(i.group))}getSubmissions(){return this.contest.replayContestStartTimestamp===void 0&&this.options.enableFilterSubmissionsByTimestamp===!1?this.submissions:this.submissions.filter(t=>!(this.contest.replayContestStartTimestamp!==void 0&&t.timestampToSecond>this.contest.replayContestStartTimestamp||this.options.enableFilterSubmissionsByTimestamp&&t.timestampToSecond>this.options.timestamp))}buildBalloons(){this.balloons=[],this.cleanRank();const t=this.getSubmissions();for(let i=0;i<t.length;i++){const s=t[i],n=s.teamId,a=s.problemId,l=this.teamsMap.get(n),m=this.contest.problemsMap.get(a);(()=>{if(l===void 0||m===void 0)return;const c=l.problemStatisticsMap.get(a);if(!c.isSolved&&s.isAccepted()){c.isSolved=!0,c.solvedTimestamp=s.timestampToSecond;const o=new nt;o.team=l,o.problem=m,o.submission=s,this.balloons.push(o)}})()}}setReplayTime(t){this.contest.setReplayTime(t)}}export{nt as B,ft as G,St as R,r as S,p as T,Ct as a,st as b,Pt as c,it as d,Dt as e,b as f,et as g,_t as h,tt as i,Rt as j};
1
+ import{k as H,_ as f,P as $,T as q,M as T,A as R}from"./query-Cwkn7-aW.js";import{I as F}from"./dayjs-DRRP86hV.js";import{c as A}from"./person-wOxxwhEX.js";var r=(e=>(e.PENDING="PENDING",e.WAITING="WAITING",e.PREPARING="PREPARING",e.COMPILING="COMPILING",e.RUNNING="RUNNING",e.JUDGING="JUDGING",e.FROZEN="FROZEN",e.ACCEPTED="ACCEPTED",e.CORRECT="CORRECT",e.PARTIALLY_CORRECT="PARTIALLY_CORRECT",e.REJECTED="REJECTED",e.WRONG_ANSWER="WRONG_ANSWER",e.NO_OUTPUT="NO_OUTPUT",e.COMPILATION_ERROR="COMPILATION_ERROR",e.PRESENTATION_ERROR="PRESENTATION_ERROR",e.RUNTIME_ERROR="RUNTIME_ERROR",e.TIME_LIMIT_EXCEEDED="TIME_LIMIT_EXCEEDED",e.MEMORY_LIMIT_EXCEEDED="MEMORY_LIMIT_EXCEEDED",e.OUTPUT_LIMIT_EXCEEDED="OUTPUT_LIMIT_EXCEEDED",e.IDLENESS_LIMIT_EXCEEDED="IDLENESS_LIMIT_EXCEEDED",e.HACKED="HACKED",e.JUDGEMENT_FAILED="JUDGEMENT_FAILED",e.CONFIGURATION_ERROR="CONFIGURATION_ERROR",e.FILE_ERROR="FILE_ERROR",e.SYSTEM_ERROR="SYSTEM_ERROR",e.CANCELED="CANCELED",e.SKIPPED="SKIPPED",e.SECURITY_VIOLATED="SECURITY_VIOLATED",e.DENIAL_OF_JUDGEMENT="DENIAL_OF_JUDGEMENT",e.UNKNOWN="UNKNOWN",e.UNDEFINED="UNDEFINED",e))(r||{});const _t={PENDING:"Pending",WAITING:"Waiting",PREPARING:"Preparing",COMPILING:"Compiling",RUNNING:"Running",JUDGING:"Judging",FROZEN:"Frozen",ACCEPTED:"Accepted",CORRECT:"Correct",PARTIALLY_CORRECT:"Partially Correct",REJECTED:"Rejected",WRONG_ANSWER:"Wrong Answer",NO_OUTPUT:"No Output",COMPILATION_ERROR:"Compilation Error",PRESENTATION_ERROR:"Presentation Error",RUNTIME_ERROR:"Runtime Error",TIME_LIMIT_EXCEEDED:"Time Limit Exceeded",MEMORY_LIMIT_EXCEEDED:"Memory Limit Exceeded",OUTPUT_LIMIT_EXCEEDED:"Output Limit Exceeded",IDLENESS_LIMIT_EXCEEDED:"Idleness Limit Exceeded",HACKED:"Hacked",JUDGEMENT_FAILED:"Judgement Failed",CONFIGURATION_ERROR:"Configuration Error",FILE_ERROR:"File Error",SYSTEM_ERROR:"System Error",CANCELED:"Canceled",SKIPPED:"Skipped",SECURITY_VIOLATED:"Security Violated",DENIAL_OF_JUDGEMENT:"Denial Of Judgement",UNKNOWN:"Unknown",UNDEFINED:"Undefined"},Dt={PENDING:"PD",WAITING:"PD",PREPARING:"PD",COMPILING:"PD",RUNNING:"PD",JUDGING:"PD",FROZEN:"?",ACCEPTED:"AC",CORRECT:"AC",PARTIALLY_CORRECT:"RJ",REJECTED:"RJ",WRONG_ANSWER:"WA",NO_OUTPUT:"NO",COMPILATION_ERROR:"CE",PRESENTATION_ERROR:"PE",RUNTIME_ERROR:"RTE",TIME_LIMIT_EXCEEDED:"TLE",MEMORY_LIMIT_EXCEEDED:"MLE",OUTPUT_LIMIT_EXCEEDED:"OLE",IDLENESS_LIMIT_EXCEEDED:"ILE",HACKED:"RJ",JUDGEMENT_FAILED:"RJ",CONFIGURATION_ERROR:"RJ",FILE_ERROR:"RJ",SYSTEM_ERROR:"RJ",CANCELED:"RJ",SKIPPED:"RJ",SECURITY_VIOLATED:"RJ",DENIAL_OF_JUDGEMENT:"RJ",UNKNOWN:"RJ",UNDEFINED:"RJ"};function Q(e){return e=e.toUpperCase().replace(" ","_"),["OK","AC",r.ACCEPTED.toString()].includes(e)||[r.CORRECT.toString()].includes(e)?r.ACCEPTED:[r.PARTIALLY_CORRECT.toString()].includes(e)?r.PARTIALLY_CORRECT:["WA",r.WRONG_ANSWER.toString()].includes(e)?r.WRONG_ANSWER:["RJ","INCORRECT",r.REJECTED.toString()].includes(e)?r.REJECTED:["NO",r.NO_OUTPUT.toString()].includes(e)?r.NO_OUTPUT:["PD",r.PENDING.toString()].includes(e)?r.PENDING:[r.WAITING.toString()].includes(e)?r.WAITING:[r.JUDGING.toString()].includes(e)?r.JUDGING:[r.FROZEN.toString()].includes(e)?r.FROZEN:["CE",r.COMPILATION_ERROR.toString()].includes(e)?r.COMPILATION_ERROR:["PE",r.PRESENTATION_ERROR.toString()].includes(e)?r.PRESENTATION_ERROR:["TL","TLE",r.TIME_LIMIT_EXCEEDED.toString()].includes(e)?r.TIME_LIMIT_EXCEEDED:["ML","MLE",r.MEMORY_LIMIT_EXCEEDED.toString()].includes(e)?r.MEMORY_LIMIT_EXCEEDED:["OL","OLE",r.OUTPUT_LIMIT_EXCEEDED.toString()].includes(e)?r.OUTPUT_LIMIT_EXCEEDED:["IL","ILE",r.IDLENESS_LIMIT_EXCEEDED.toString()].includes(e)?r.IDLENESS_LIMIT_EXCEEDED:["RT","RE","RTE",r.RUNTIME_ERROR.toString()].includes(e)?r.RUNTIME_ERROR:["JE",r.JUDGEMENT_FAILED.toString()].includes(e)?r.JUDGEMENT_FAILED:["SE",r.SYSTEM_ERROR.toString()].includes(e)?r.SYSTEM_ERROR:[r.HACKED.toString()].includes(e)?r.HACKED:[r.CONFIGURATION_ERROR.toString()].includes(e)?r.CONFIGURATION_ERROR:[r.CANCELED.toString()].includes(e)?r.CANCELED:[r.SKIPPED.toString()].includes(e)?r.SKIPPED:[r.SECURITY_VIOLATED.toString()].includes(e)?r.SECURITY_VIOLATED:[r.DENIAL_OF_JUDGEMENT.toString()].includes(e)?r.DENIAL_OF_JUDGEMENT:r.UNKNOWN}function tt(e){return[r.ACCEPTED,r.CORRECT].includes(e)}function et(e){return[r.RUNTIME_ERROR,r.TIME_LIMIT_EXCEEDED,r.MEMORY_LIMIT_EXCEEDED,r.OUTPUT_LIMIT_EXCEEDED,r.IDLENESS_LIMIT_EXCEEDED,r.WRONG_ANSWER,r.REJECTED,r.NO_OUTPUT,r.JUDGEMENT_FAILED,r.HACKED].includes(e)}function it(e){return[r.PENDING,r.WAITING,r.COMPILING,r.JUDGING,r.FROZEN].includes(e)}function st(e){return[r.COMPILATION_ERROR,r.PRESENTATION_ERROR,r.CONFIGURATION_ERROR,r.SYSTEM_ERROR,r.CANCELED,r.SKIPPED,r.UNKNOWN,r.UNDEFINED].includes(e)}class b{constructor(){this.status=r.UNKNOWN,this.isIgnore=!1,this.isSolved=!1,this.isFirstSolved=!1,this.id="",this.teamId="",this.problemId="",this.timestamp=0,this.timestampUnit="second"}isAccepted(){return tt(this.status)}isRejected(){return et(this.status)}isPending(){return it(this.status)}isNotCalculatedPenaltyStatus(){return st(this.status)}get timestampToMinute(){return this.timestampUnit==="nanosecond"?Math.floor(this.timestamp/60/1e3/1e3/1e3):this.timestampUnit==="microsecond"?Math.floor(this.timestamp/60/1e3/1e3):this.timestampUnit==="millisecond"?Math.floor(this.timestamp/60/1e3):Math.floor(this.timestamp/60)}get timestampToSecond(){return this.timestampUnit==="nanosecond"?Math.floor(this.timestamp/1e3/1e3/1e3):this.timestampUnit==="microsecond"?Math.floor(this.timestamp/1e3/1e3):this.timestampUnit==="millisecond"?Math.floor(this.timestamp/1e3):this.timestamp}get timestampDisplayFormatWithSecond(){const t=this.timestampToSecond,i=Math.floor(t/3600),s=Math.floor(t%3600/60),n=t%60,a=m=>m.toString().padStart(2,"0");return`${a(i)}:${a(s)}:${a(n)}`}get timestampDisplayFormatWithMilliSecond(){let t=this.timestampDisplayFormatWithSecond;if(this.timestampUnit==="millisecond"){const i=(this.timestamp%1e3).toString().padStart(3,"0");t+=`.${i}`}return t}static compare(t,i){if(t.timestamp!==i.timestamp)return t.timestamp-i.timestamp;if(t.teamId===i.teamId){if(t.isAccepted()&&!i.isAccepted())return-1;if(!t.isAccepted()&&i.isAccepted())return 1}return t.id<i.id?-1:t.id===i.id?0:1}}function O(e,t){const i=new b;return i.id=String(e.id??e.submission_id??""),i.teamId=String(e.team_id),i.problemId=String(e.problem_id),i.timestamp=e.timestamp,i.status=Q(e.status),i.isIgnore=e.is_ignore??!1,e.time&&(i.time=e.time),e.language&&(i.language=e.language),e.reaction?i.reaction=e.reaction:t?.options.reactionVideoUrlTemplate&&(i.reaction={url:t.options.reactionVideoUrlTemplate.replace(/\$\{submission_id\}/,i.id)}),i}function Ct(e,t){return Array.isArray(e)?e.map((i,s)=>O({...i,id:i.submission_id??String(s)},t)):Object.entries(e).map(([s,n])=>O({...n,id:n.submission_id??s},t))}class p{constructor(){this.id="",this.name=new F,this.organization="",this.group=[],this.tag=[],this.coaches=[],this.members=[],this.rank=0,this.originalRank=0,this.organizationRank=-1,this.solvedProblemNum=0,this.attemptedProblemNum=0,this.lastSolvedProblem=null,this.lastSolvedProblemStatistics=null,this.penalty=0,this.problemStatistics=[],this.problemStatisticsMap=new Map,this.submissions=[],this.placeChartPoints=[],this.awards=[],this.missingPhoto=!1,this.se=0}reset(){this.rank=0,this.originalRank=0,this.organizationRank=-1,this.solvedProblemNum=0,this.attemptedProblemNum=0,this.lastSolvedProblem=null,this.lastSolvedProblemStatistics=null,this.penalty=0,this.problemStatistics=[],this.problemStatisticsMap=new Map,this.submissions=[],this.placeChartPoints=[],this.awards=[],this.se=0}get penaltyToMinute(){return Math.floor(this.penalty/60)}get isUnofficial(){return this.group.includes("unofficial")}get isGirl(){return this.group.includes("girl")}get isEffectiveTeam(){return this.solvedProblemNum>0}get dirt(){const t=this.attemptedProblemNum,i=this.solvedProblemNum;return H(t,i)}membersToString(t){return this.members.map(i=>i.name.getOrDefault(t)).join(", ")}coachesToString(t){return this.coaches.map(i=>i.name.getOrDefault(t)).join(", ")}calcSE(t){let i=0,s=0;if(this.problemStatistics.forEach(a=>{a.isSolved&&(i+=1,s+=a.problem.statistics.acceptedNum)}),t===0||i===0)return 0;const n=(i*t-s)/t/i;return this.se=Math.round(n*100)/100,this.se}calcSolvedData(t){this.solvedProblemNum=0,this.attemptedProblemNum=0,this.penalty=0;for(const i of this.problemStatistics)i.isAccepted&&(this.solvedProblemNum++,this.attemptedProblemNum+=i.failedCount+1,t?.calculationOfPenalty==="in_seconds"||t?.calculationOfPenalty==="accumulate_in_seconds_and_finally_to_the_minute"?this.penalty+=i.penaltyInSecond:this.penalty+=i.penalty);t?.calculationOfPenalty==="accumulate_in_seconds_and_finally_to_the_minute"&&(this.penalty=Math.floor(this.penalty/60)*60)}calcAwards(t){if(t)for(const i of t)this.rank>=i.minRank&&this.rank<=i.maxRank&&this.awards.push(i.medalType)}isEqualRank(t){return this.solvedProblemNum===t.solvedProblemNum&&this.penalty===t.penalty&&this.lastSolvedProblemStatistics?.solvedTimestampToMinute===t.lastSolvedProblemStatistics?.solvedTimestampToMinute}postProcessPlaceChartPoints(){if(this.placeChartPoints.length===0)return;const t=[];t.push(this.placeChartPoints[0]);for(let i=1;i<this.placeChartPoints.length-1;i++){const s=this.placeChartPoints[i],n=t[t.length-1];(s.rank!==n.rank||s.lastSolvedProblem!==n.lastSolvedProblem)&&t.push(s)}this.placeChartPoints.length>1&&t.push(this.placeChartPoints[this.placeChartPoints.length-1]),this.placeChartPoints=t}static compare(t,i){return t.solvedProblemNum!==i.solvedProblemNum?i.solvedProblemNum-t.solvedProblemNum:t.penalty!==i.penalty?t.penalty-i.penalty:t.lastSolvedProblemStatistics&&i.lastSolvedProblemStatistics?t.lastSolvedProblemStatistics.solvedTimestampToMinute-i.lastSolvedProblemStatistics.solvedTimestampToMinute:t.name<i.name?-1:t.name>i.name?1:0}}function M(e){const t=new p;t.id=e.id??e.team_id??"",t.name=F.fromIText(e.name??e.team_name??""),t.organization=e.organization??"",t.group=f.cloneDeep(e.group??[]),t.tag=f.cloneDeep(e.tag??[]),t.coaches=A(e.coach),t.members=A(e.members),e.official&&t.group.push("official"),e.unofficial&&t.group.push("unofficial"),e.girl&&t.group.push("girl");{const i=e;for(const s of Object.keys(i))s!=="missing_photo"&&(i[s]===1||i[s]===!0)&&t.group.push(s)}return t.group=[...new Set(t.group)],t.group.sort(),t.badge=e.badge,e.missing_photo&&(t.missingPhoto=!0),t.photo=e.photo,e.location&&(t.location=e.location),e.icpc_id&&(t.icpcID=e.icpc_id),t}function Pt(e){return Array.isArray(e)?e.map(t=>M(t)):Object.entries(e).map(([i,s])=>M({...s,team_id:s.team_id??i}))}class nt{constructor(){this.problem=new $,this.team=new p,this.submission=new b}get key(){return`balloon-${this.team.id}-${this.problem.id}`}static compare(t,i){return b.compare(t.submission,i.submission)}}const G="3.7.8",rt=G,h=typeof Buffer=="function",y=typeof TextDecoder=="function"?new TextDecoder:void 0,U=typeof TextEncoder=="function"?new TextEncoder:void 0,at="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d=Array.prototype.slice.call(at),I=(e=>{let t={};return e.forEach((i,s)=>t[i]=s),t})(d),ot=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,u=String.fromCharCode.bind(String),L=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):e=>new Uint8Array(Array.prototype.slice.call(e,0)),k=e=>e.replace(/=/g,"").replace(/[+\/]/g,t=>t=="+"?"-":"_"),w=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),B=e=>{let t,i,s,n,a="";const l=e.length%3;for(let m=0;m<e.length;){if((i=e.charCodeAt(m++))>255||(s=e.charCodeAt(m++))>255||(n=e.charCodeAt(m++))>255)throw new TypeError("invalid character found");t=i<<16|s<<8|n,a+=d[t>>18&63]+d[t>>12&63]+d[t>>6&63]+d[t&63]}return l?a.slice(0,l-3)+"===".substring(l):a},P=typeof btoa=="function"?e=>btoa(e):h?e=>Buffer.from(e,"binary").toString("base64"):B,D=h?e=>Buffer.from(e).toString("base64"):e=>{let i=[];for(let s=0,n=e.length;s<n;s+=4096)i.push(u.apply(null,e.subarray(s,s+4096)));return P(i.join(""))},N=(e,t=!1)=>t?k(D(e)):D(e),lt=e=>{if(e.length<2){var t=e.charCodeAt(0);return t<128?e:t<2048?u(192|t>>>6)+u(128|t&63):u(224|t>>>12&15)+u(128|t>>>6&63)+u(128|t&63)}else{var t=65536+(e.charCodeAt(0)-55296)*1024+(e.charCodeAt(1)-56320);return u(240|t>>>18&7)+u(128|t>>>12&63)+u(128|t>>>6&63)+u(128|t&63)}},mt=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,z=e=>e.replace(mt,lt),v=h?e=>Buffer.from(e,"utf8").toString("base64"):U?e=>D(U.encode(e)):e=>P(z(e)),E=(e,t=!1)=>t?k(v(e)):v(e),x=e=>E(e,!0),ct=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,ut=e=>{switch(e.length){case 4:var t=(7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3),i=t-65536;return u((i>>>10)+55296)+u((i&1023)+56320);case 3:return u((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return u((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},W=e=>e.replace(ct,ut),X=e=>{if(e=e.replace(/\s+/g,""),!ot.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(e.length&3));let t,i,s,n=[];for(let a=0;a<e.length;)t=I[e.charAt(a++)]<<18|I[e.charAt(a++)]<<12|(i=I[e.charAt(a++)])<<6|(s=I[e.charAt(a++)]),i===64?n.push(u(t>>16&255)):s===64?n.push(u(t>>16&255,t>>8&255)):n.push(u(t>>16&255,t>>8&255,t&255));return n.join("")},S=typeof atob=="function"?e=>atob(w(e)):h?e=>Buffer.from(e,"base64").toString("binary"):X,Y=h?e=>L(Buffer.from(e,"base64")):e=>L(S(e).split("").map(t=>t.charCodeAt(0))),K=e=>Y(j(e)),Et=h?e=>Buffer.from(e,"base64").toString("utf8"):y?e=>y.decode(Y(e)):e=>W(S(e)),j=e=>w(e.replace(/[-_]/g,t=>t=="-"?"+":"/")),C=e=>Et(j(e)),ht=e=>{if(typeof e!="string")return!1;const t=e.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},V=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),Z=function(){const e=(t,i)=>Object.defineProperty(String.prototype,t,V(i));e("fromBase64",function(){return C(this)}),e("toBase64",function(t){return E(this,t)}),e("toBase64URI",function(){return E(this,!0)}),e("toBase64URL",function(){return E(this,!0)}),e("toUint8Array",function(){return K(this)})},J=function(){const e=(t,i)=>Object.defineProperty(Uint8Array.prototype,t,V(i));e("toBase64",function(t){return N(this,t)}),e("toBase64URI",function(){return N(this,!0)}),e("toBase64URL",function(){return N(this,!0)})},dt=()=>{Z(),J()},_={version:G,VERSION:rt,atob:S,atobPolyfill:X,btoa:P,btoaPolyfill:B,fromBase64:C,toBase64:E,encode:E,encodeURI:x,encodeURL:x,utob:z,btou:W,decode:C,isValid:ht,fromUint8Array:N,toUint8Array:K,extendString:Z,extendUint8Array:J,extendBuiltins:dt};var ft=(e=>(e[e.BLUE=0]="BLUE",e[e.RED=1]="RED",e))(ft||{});class g{constructor(t=0){this.type=t,this.name=`${t===0?"Blue":"Red"} Team`,this.teams=[],this.filterOrganizations=[],this.filterOrganizationMap=new Map,this.filterTeams=[],this.filterTeamMap=new Map}setFilterOrganizations(t){const i=new Map;t.forEach(s=>{i.set(s.value,s)}),this.filterOrganizations=t,this.filterOrganizationMap=i}setFilterTeams(t){const i=new Map;t.forEach(s=>{i.set(s.value,s)}),this.filterTeams=t,this.filterTeamMap=i}refreshName(){return this.filterOrganizations.length>0?this.name=this.filterOrganizations[0].text:this.name=`${this.type===0?"Blue":"Red"} Team`,this.name}get totalSolvedProblemNum(){let t=0;return this.teams.forEach(i=>{t+=i.solvedProblemNum}),t}get totalPenalty(){let t=0;return this.teams.forEach(i=>{t+=i.penaltyToMinute}),t}get totalPenaltyToString(){const t=this.totalPenalty,i=a=>a<10?`0${a}`:String(a),s=Math.floor(t/60),n=Math.floor(t%60);return[i(s),i(n)].join(":")}toJSON(){return{type:this.type,name:this.name,filterOrganizations:this.filterOrganizations,filterTeams:this.filterTeams}}}class pt{constructor(){this.enable=!1,this.topX=5,this.equalTeams=!0,this.persist=!1,this.blueTeam=new g(0),this.redTeam=new g(1)}ToBase64(){return _.encode(JSON.stringify(this))}FromBase64(t){if(t.length===0||_.isValid(t)===!1)return;const i=JSON.parse(_.decode(t));this.enable=i.enable,this.topX=i.topX,this.equalTeams=i.equalTeams,this.persist=i.persist,this.blueTeam=new g(0),this.blueTeam.name=i.blueTeam.name,this.blueTeam.setFilterOrganizations(i.blueTeam.filterOrganizations),this.blueTeam.setFilterTeams(i.blueTeam.filterTeams),this.redTeam=new g(1),this.redTeam.name=i.redTeam.name,this.redTeam.setFilterOrganizations(i.redTeam.filterOrganizations),this.redTeam.setFilterTeams(i.redTeam.filterTeams)}}class Tt{constructor(){this.teamSolvedNum=[],this.teamSolvedNumIndex=[],this.maxSolvedProblems=0,this.effectiveTeamNum=0,this.totalTeamNum=0}reset(){this.teamSolvedNum=[],this.teamSolvedNumIndex=[],this.maxSolvedProblems=0,this.effectiveTeamNum=0,this.totalTeamNum=0}getTeamSolvedNumIndex(t){return this.teamSolvedNumIndex[t]??0}}class Rt{constructor(){this.enableFilterSubmissionsByTimestamp=!1,this.width=0,this.timestamp=0,this.enableFilterTeamsByGroup=!1,this.group="all",this.filterOrganizations=[],this.filterOrganizationMap=new Map,this.filterTeams=[],this.filterTeamMap=new Map,this.enableAnimatedSubmissions=!1,this.battleOfGiants=new pt}setSelf(t){this.enableFilterSubmissionsByTimestamp=t.enableFilterSubmissionsByTimestamp,this.width=t.width,this.timestamp=t.timestamp,this.enableFilterTeamsByGroup=t.enableFilterTeamsByGroup,this.group=t.group,this.filterOrganizations=t.filterOrganizations,this.filterOrganizationMap=t.filterOrganizationMap,this.filterTeams=t.filterTeams,this.filterTeamMap=t.filterTeamMap,this.enableAnimatedSubmissions=t.enableAnimatedSubmissions,this.battleOfGiants=t.battleOfGiants}setWidth(t,i){this.width=t,this.timestamp=Math.floor((i.getEndTime().unix()-i.getStartTime().unix())*this.width*1e-4),this.enableFilterSubmissionsByTimestamp=!0}disableFilterSubmissionByTimestamp(){this.enableFilterSubmissionsByTimestamp=!1}setGroup(t){this.group=t,this.enableFilterTeamsByGroup=!0,this.group==="all"&&this.disableFilterTeamsByGroup()}disableFilterTeamsByGroup(){this.enableFilterTeamsByGroup=!1,this.group="all"}setFilterOrganizations(t){const i=new Map;t.forEach(s=>{i.set(s.value,s)}),this.filterOrganizations=t,this.filterOrganizationMap=i}setFilterTeams(t){const i=new Map;t.forEach(s=>{i.set(s.value,s)}),this.filterTeams=t,this.filterTeamMap=i}isNeedReBuildRank(t){return this.enableFilterSubmissionsByTimestamp!==t.enableFilterSubmissionsByTimestamp||this.width!==t.width||this.timestamp!==t.timestamp||this.enableFilterTeamsByGroup!==t.enableFilterTeamsByGroup||this.group!==t.group}}class St{constructor(t,i,s){this.contest=t,this.teams=f.cloneDeep(i),this.teamsMap=new Map(this.teams.map(n=>[n.id,n])),this.submissions=f.cloneDeep(s).sort(b.compare);{const n=this.contest.options,a=f.cloneDeep(n.submissionTimestampUnit);this.submissions.forEach(l=>{l.timestampUnit=a,l.time&&(n.submissionHasTimeField=!0),l.language&&(n.submissionHasLanguageField=!0)})}this.submissionsMap=new Map(this.submissions.map(n=>[n.id,n])),this.organizations=this.buildOrganizations(),this.originTeams=this.teams.map(n=>n),this.originTeams.sort(p.compare),this.rankStatistics=new Tt,this.options=new Rt,this.balloons=[];{const n=new Set;this.submissions.forEach(a=>{a.language&&n.add(a.language)}),this.languages=[...n].sort()}{const n=new Set;this.submissions.forEach(a=>{n.add(a.status)}),this.statuses=[...n].sort()}}cleanRank(){(()=>{this.teams=[];for(const[t,i]of this.teamsMap)this.filterTeamByOrg(i)||this.teams.push(i)})();for(const t of this.teams)t.reset(),t.problemStatistics=this.contest.problems.map(i=>{const s=new q;return s.problem=i,s.contestPenalty=this.contest.penalty,s}),t.problemStatisticsMap=new Map(t.problemStatistics.map(i=>[i.problem.id,i]));this.contest.problems.forEach(t=>{t.statistics.reset()})}buildRank(){return(()=>{this.cleanRank(),this.teams.forEach(s=>s.placeChartPoints.push({timePoint:0,rank:1,lastSolvedProblem:null})),this.rankStatistics.reset(),this.rankStatistics.teamSolvedNum=Array.from({length:this.contest.problems.length+1}).fill(0),this.rankStatistics.teamSolvedNumIndex=Array.from({length:this.contest.problems.length+1}).fill(0);let t=0;const i=this.getSubmissions();for(let s=0;s<i.length;s++){const n=i[s],a=n.teamId,l=n.problemId,m=this.teamsMap.get(a),c=this.contest.problemsMap.get(l);(()=>{if(m===void 0||this.filterTeamByOrg(m)||c===void 0)return;const o=m.problemStatisticsMap.get(l);if(o.submissions.push(n),m.submissions.push(n),c.statistics.submittedNum++,o.isSolved){n.isSolved=!1,n.isFirstSolved=!1;return}if(n.isIgnore||n.isNotCalculatedPenaltyStatus()){c.statistics.ignoreNum++,o.ignoreCount++;return}if(o.isSubmitted=!0,o.lastSubmitTimestamp=n.timestampToSecond,o.totalCount++,n.isAccepted()){for(n.isSolved=!0,o.isSolved=!0,o.solvedTimestamp=n.timestampToSecond,c.statistics.acceptedNum++,c.statistics.attemptedNum+=o.failedCount+1,(c.statistics.firstSolveSubmissions.length===0||c.statistics.firstSolveSubmissions[c.statistics.firstSolveSubmissions.length-1].timestamp===n.timestamp)&&(n.isFirstSolved=!0,o.isFirstSolved=!0,c.statistics.firstSolveSubmissions.push(n));c.statistics.lastSolveSubmissions.length>0;)c.statistics.lastSolveSubmissions.pop();c.statistics.lastSolveSubmissions.push(n),m.lastSolvedProblem=c,m.lastSolvedProblemStatistics=o}n.isRejected()&&(o.failedCount++,c.statistics.rejectedNum++),n.isPending()&&(o.pendingCount++,c.statistics.pendingNum++)})(),(n.timestampToMinute>t||s===i.length-1)&&(this.teams.forEach(o=>o.calcSolvedData(this.contest.options)),this.teams.sort(p.compare),this.buildTeamRank(),this.teams.forEach(o=>o.placeChartPoints.push({timePoint:n.timestampToMinute,rank:o.rank,lastSolvedProblem:o.lastSolvedProblem}))),t=n.timestampToMinute}this.teams.forEach(s=>s.calcSolvedData(this.contest.options)),this.teams.sort(p.compare),this.buildTeamRank(),this.buildOrgRank(),this.rankStatistics.effectiveTeamNum=this.teams.filter(s=>s.isEffectiveTeam).length,this.rankStatistics.totalTeamNum=this.teams.length,this.teams.forEach(s=>s.calcSE(this.rankStatistics.totalTeamNum)),this.contest.problems.forEach(s=>s.statistics.calcSE(this.rankStatistics.totalTeamNum)),this.buildAwards(),this.teams.forEach(s=>s.calcAwards(this.contest.awards?.get(this.options.group))),this.teams.forEach(s=>s.postProcessPlaceChartPoints())})(),(()=>{for(const t of this.teams)this.rankStatistics.teamSolvedNum[t.solvedProblemNum]++;{let t=0;const i=this.rankStatistics.teamSolvedNum,s=this.rankStatistics.teamSolvedNumIndex;for(let n=s.length-1;n>=0;n--)t+=i[n]>0?1:0,s[n]=t}this.teams.length>0&&(this.rankStatistics.maxSolvedProblems=this.teams[0].solvedProblemNum)})(),this}buildTeamRank(){let t=1,i=1,s=null;for(const n of this.teams)n.rank=t++,n.originalRank=i++,s!==null&&n.isEqualRank(s)&&(n.rank=s.rank),s=n}buildOrgRank(){if(!this.contest.organization)return;let t=1,i=null;const s=new Set;for(const n of this.teams){const a=n.organization;s.has(a)||(s.add(a),n.organizationRank=t++,i!==null&&n.isEqualRank(i)&&(n.organizationRank=i.organizationRank),i=n)}}buildOrganizations(){if(!this.contest.organization)return[];const t=new Array,i=new Set;return this.teams.forEach(s=>{const n=s.organization;i.has(n)||(t.push(n),i.add(n))}),t.sort(),t}buildAwards(){if(this.contest.medal==="ccpc"){this.contest.awards=new Map;const t=this.rankStatistics.effectiveTeamNum,i=[],s=new R,n=new R,a=new R,l=new R;s.medalType=T.GOLD,s.minRank=1,s.maxRank=Math.ceil(t*.1),s.maxRank>=s.minRank&&i.push(s),n.medalType=T.SILVER,n.minRank=s.maxRank+1,n.maxRank=Math.ceil(t*.3),n.maxRank>=n.minRank&&i.push(n),a.medalType=T.BRONZE,a.minRank=n.maxRank+1,a.maxRank=Math.ceil(t*.6),a.maxRank>=a.minRank&&i.push(a),l.medalType=T.HONORABLE,l.minRank=a.maxRank+1,this.teams.forEach(m=>{m.solvedProblemNum>0&&(l.maxRank=Math.max(l.maxRank,m.rank))}),l.maxRank>=l.minRank&&i.push(l),this.contest.awards.set("official",i)}}filterTeamByOrg(t){const i=this.options;return!!(i.enableFilterTeamsByGroup&&!t.group?.includes(i.group))}getSubmissions(){return this.contest.replayContestStartTimestamp===void 0&&this.options.enableFilterSubmissionsByTimestamp===!1?this.submissions:this.submissions.filter(t=>!(this.contest.replayContestStartTimestamp!==void 0&&t.timestampToSecond>this.contest.replayContestStartTimestamp||this.options.enableFilterSubmissionsByTimestamp&&t.timestampToSecond>this.options.timestamp))}buildBalloons(){this.balloons=[],this.cleanRank();const t=this.getSubmissions();for(let i=0;i<t.length;i++){const s=t[i],n=s.teamId,a=s.problemId,l=this.teamsMap.get(n),m=this.contest.problemsMap.get(a);(()=>{if(l===void 0||m===void 0)return;const c=l.problemStatisticsMap.get(a);if(!c.isSolved&&s.isAccepted()){c.isSolved=!0,c.solvedTimestamp=s.timestampToSecond;const o=new nt;o.team=l,o.problem=m,o.submission=s,this.balloons.push(o)}})()}}setReplayTime(t){this.contest.setReplayTime(t)}}export{nt as B,ft as G,St as R,r as S,p as T,Ct as a,st as b,Pt as c,it as d,Dt as e,b as f,et as g,_t as h,tt as i,Rt as j};
@@ -1 +1 @@
1
- import{_ as p}from"./TheInput.vue_vue_type_script_setup_true_lang-BToUgLKT.js";import{d as c,m as f,H as _,u as b,c as h,o as v,b as e,k as a,h as s,a as x,a2 as y,z as g}from"./index-D_YfgkHi.js";import{u as k}from"./user-B76vXuTP.js";import{b as l}from"./route-block-B_A1xBdJ.js";import"./use-vmodel-B2gtAybe.js";const V={flex:"","flex-col":"","justify-center":"","items-center":""},w={"text-sm":"","opacity-75":""},I={"w-48":""},B={class:"hidden",for:"input"},C=["disabled"],N=c({name:"IndexPage",__name:"test",setup(R){const i=k(),o=f(i.savedName),u=_();function r(){o.value&&u.push(`/hi/${encodeURIComponent(o.value)}`)}const{t:n}=b();return(U,t)=>{const d=p;return v(),h("div",V,[t[1]||(t[1]=e("div",{"text-4xl":""},[e("div",{"i-carbon-campsite":""})],-1)),t[2]||(t[2]=e("p",null,[e("a",{rel:"noreferrer",href:"https://github.com/antfu/vitesse",target:"_blank"}," Vitesse ")],-1)),e("p",null,[e("em",w,a(s(n)("intro.desc")),1)]),t[3]||(t[3]=e("div",{"py-4":""},null,-1)),e("div",I,[x(d,{modelValue:s(o),"onUpdate:modelValue":t[0]||(t[0]=m=>g(o)?o.value=m:null),placeholder:s(n)("intro.whats-your-name"),autocomplete:"false",onKeydown:y(r,["enter"])},null,8,["modelValue","placeholder"]),e("label",B,a(s(n)("intro.whats-your-name")),1)]),e("div",null,[e("button",{"m-3":"","text-sm":"",btn:"",disabled:!s(o),onClick:r},a(s(n)("button.go")),9,C)])])}}});typeof l=="function"&&l(N);export{N as default};
1
+ import{_ as p}from"./TheInput.vue_vue_type_script_setup_true_lang-BdUca1-n.js";import{d as c,m as f,H as _,u as b,c as h,o as v,b as e,k as a,h as s,a as x,a2 as y,z as g}from"./index-BJ0B1S7n.js";import{u as k}from"./user-CgerVobA.js";import{b as l}from"./route-block-B_A1xBdJ.js";import"./use-vmodel-eKIPpK5B.js";const V={flex:"","flex-col":"","justify-center":"","items-center":""},w={"text-sm":"","opacity-75":""},I={"w-48":""},B={class:"hidden",for:"input"},C=["disabled"],N=c({name:"IndexPage",__name:"test",setup(R){const i=k(),o=f(i.savedName),u=_();function r(){o.value&&u.push(`/hi/${encodeURIComponent(o.value)}`)}const{t:n}=b();return(U,t)=>{const d=p;return v(),h("div",V,[t[1]||(t[1]=e("div",{"text-4xl":""},[e("div",{"i-carbon-campsite":""})],-1)),t[2]||(t[2]=e("p",null,[e("a",{rel:"noreferrer",href:"https://github.com/antfu/vitesse",target:"_blank"}," Vitesse ")],-1)),e("p",null,[e("em",w,a(s(n)("intro.desc")),1)]),t[3]||(t[3]=e("div",{"py-4":""},null,-1)),e("div",I,[x(d,{modelValue:s(o),"onUpdate:modelValue":t[0]||(t[0]=m=>g(o)?o.value=m:null),placeholder:s(n)("intro.whats-your-name"),autocomplete:"false",onKeydown:y(r,["enter"])},null,8,["modelValue","placeholder"]),e("label",B,a(s(n)("intro.whats-your-name")),1)]),e("div",null,[e("button",{"m-3":"","text-sm":"",btn:"",disabled:!s(o),onClick:r},a(s(n)("button.go")),9,C)])])}}});typeof l=="function"&&l(N);export{N as default};
@@ -1 +1 @@
1
- import{aA as c,aB as r}from"./index-D_YfgkHi.js";const d=(...p)=>{const s=c().proxy.$props,t=Object.create(null);for(const e of p)if(typeof e=="string")t[e]=r(s,e,void 0,{eventName:`update:${e}`,passive:!0});else{const[o,n=o,a=`update:${o}`,u={}]=e;t[o]=r(s,n,void 0,{eventName:a,passive:!0,...u})}return t};export{d as _};
1
+ import{aA as c,aB as r}from"./index-BJ0B1S7n.js";const d=(...p)=>{const s=c().proxy.$props,t=Object.create(null);for(const e of p)if(typeof e=="string")t[e]=r(s,e,void 0,{eventName:`update:${e}`,passive:!0});else{const[o,n=o,a=`update:${o}`,u={}]=e;t[o]=r(s,n,void 0,{eventName:a,passive:!0,...u})}return t};export{d as _};
@@ -1 +1 @@
1
- import{a5 as V,a6 as j,a7 as f,a8 as D,a9 as w,aa as z,ab as k,ac as M,ad as B,ae as T,af as H,ag as K,ah as L,ai as Y,aj as G,ak as J,al as X,f as W,am as Z,an as q,ao as tt,C as Q,ap as $,aq as et,ar as A,as as st,at as it,au as nt}from"./index-D_YfgkHi.js";import{b as at}from"./constant-CglMAQbu.js";var rt=class extends V{constructor(t,e){super(),this.options=e,this.#s=t,this.#n=null,this.#i=j(),this.bindMethods(),this.setOptions(e)}#s;#t=void 0;#p=void 0;#e=void 0;#r;#u;#i;#n;#b;#c;#d;#o;#h;#a;#f=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),_(this.#t,this.options)?this.#l():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return U(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return U(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#O(),this.#g(),this.#t.removeObserver(this)}setOptions(t){const e=this.options,i=this.#t;if(this.options=this.#s.defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof f(this.options.enabled,this.#t)!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#w(),this.#t.setOptions(this.options),e._defaulted&&!D(this.options,e)&&this.#s.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#t,observer:this});const s=this.hasListeners();s&&N(this.#t,i,this.options,e)&&this.#l(),this.updateResult(),s&&(this.#t!==i||f(this.options.enabled,this.#t)!==f(e.enabled,this.#t)||w(this.options.staleTime,this.#t)!==w(e.staleTime,this.#t))&&this.#v();const n=this.#m();s&&(this.#t!==i||f(this.options.enabled,this.#t)!==f(e.enabled,this.#t)||n!==this.#a)&&this.#R(n)}getOptimisticResult(t){const e=this.#s.getQueryCache().build(this.#s,t),i=this.createResult(e,t);return ht(this,i)&&(this.#e=i,this.#u=this.options,this.#r=this.#t.state),i}getCurrentResult(){return this.#e}trackResult(t,e){return new Proxy(t,{get:(i,s)=>(this.trackProp(s),e?.(s),s==="promise"&&!this.options.experimental_prefetchInRender&&this.#i.status==="pending"&&this.#i.reject(new Error("experimental_prefetchInRender feature flag is not enabled")),Reflect.get(i,s))})}trackProp(t){this.#f.add(t)}getCurrentQuery(){return this.#t}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const e=this.#s.defaultQueryOptions(t),i=this.#s.getQueryCache().build(this.#s,e);return i.fetch().then(()=>this.createResult(i,e))}fetch(t){return this.#l({...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#e))}#l(t){this.#w();let e=this.#t.fetch(this.options,t);return t?.throwOnError||(e=e.catch(z)),e}#v(){this.#O();const t=w(this.options.staleTime,this.#t);if(k||this.#e.isStale||!M(t))return;const i=B(this.#e.dataUpdatedAt,t)+1;this.#o=T.setTimeout(()=>{this.#e.isStale||this.updateResult()},i)}#m(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#R(t){this.#g(),this.#a=t,!(k||f(this.options.enabled,this.#t)===!1||!M(this.#a)||this.#a===0)&&(this.#h=T.setInterval(()=>{(this.options.refetchIntervalInBackground||H.isFocused())&&this.#l()},this.#a))}#y(){this.#v(),this.#R(this.#m())}#O(){this.#o&&(T.clearTimeout(this.#o),this.#o=void 0)}#g(){this.#h&&(T.clearInterval(this.#h),this.#h=void 0)}createResult(t,e){const i=this.#t,s=this.options,n=this.#e,r=this.#r,l=this.#u,v=t!==i?t.state:this.#p,{state:O}=t;let a={...O},C=!1,h;if(e._optimisticResults){const c=this.hasListeners(),I=!c&&_(t,e),y=c&&N(t,i,e,s);(I||y)&&(a={...a,...K(O.data,t.options)}),e._optimisticResults==="isRestoring"&&(a.fetchStatus="idle")}let{error:o,errorUpdatedAt:b,status:d}=a;h=a.data;let g=!1;if(e.placeholderData!==void 0&&h===void 0&&d==="pending"){let c;n?.isPlaceholderData&&e.placeholderData===l?.placeholderData?(c=n.data,g=!0):c=typeof e.placeholderData=="function"?e.placeholderData(this.#d?.state.data,this.#d):e.placeholderData,c!==void 0&&(d="success",h=L(n?.data,c,e),C=!0)}if(e.select&&h!==void 0&&!g)if(n&&h===r?.data&&e.select===this.#b)h=this.#c;else try{this.#b=e.select,h=e.select(h),h=L(n?.data,h,e),this.#c=h,this.#n=null}catch(c){this.#n=c}this.#n&&(o=this.#n,h=this.#c,b=Date.now(),d="error");const m=a.fetchStatus==="fetching",R=d==="pending",E=d==="error",P=R&&m,x=h!==void 0,p={status:d,fetchStatus:a.fetchStatus,isPending:R,isSuccess:d==="success",isError:E,isInitialLoading:P,isLoading:P,data:h,dataUpdatedAt:a.dataUpdatedAt,error:o,errorUpdatedAt:b,failureCount:a.fetchFailureCount,failureReason:a.fetchFailureReason,errorUpdateCount:a.errorUpdateCount,isFetched:a.dataUpdateCount>0||a.errorUpdateCount>0,isFetchedAfterMount:a.dataUpdateCount>v.dataUpdateCount||a.errorUpdateCount>v.errorUpdateCount,isFetching:m,isRefetching:m&&!R,isLoadingError:E&&!x,isPaused:a.fetchStatus==="paused",isPlaceholderData:C,isRefetchError:E&&x,isStale:F(t,e),refetch:this.refetch,promise:this.#i,isEnabled:f(e.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const c=S=>{p.status==="error"?S.reject(p.error):p.data!==void 0&&S.resolve(p.data)},I=()=>{const S=this.#i=p.promise=j();c(S)},y=this.#i;switch(y.status){case"pending":t.queryHash===i.queryHash&&c(y);break;case"fulfilled":(p.status==="error"||p.data!==y.value)&&I();break;case"rejected":(p.status!=="error"||p.error!==y.reason)&&I();break}}return p}updateResult(){const t=this.#e,e=this.createResult(this.#t,this.options);if(this.#r=this.#t.state,this.#u=this.options,this.#r.data!==void 0&&(this.#d=this.#t),D(e,t))return;this.#e=e;const i=()=>{if(!t)return!0;const{notifyOnChangeProps:s}=this.options,n=typeof s=="function"?s():s;if(n==="all"||!n&&!this.#f.size)return!0;const r=new Set(n??this.#f);return this.options.throwOnError&&r.add("error"),Object.keys(this.#e).some(l=>{const u=l;return this.#e[u]!==t[u]&&r.has(u)})};this.#C({listeners:i()})}#w(){const t=this.#s.getQueryCache().build(this.#s,this.options);if(t===this.#t)return;const e=this.#t;this.#t=t,this.#p=t.state,this.hasListeners()&&(e?.removeObserver(this),t.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(t){Y.batch(()=>{t.listeners&&this.listeners.forEach(e=>{e(this.#e)}),this.#s.getQueryCache().notify({query:this.#t,type:"observerResultsUpdated"})})}};function ot(t,e){return f(e.enabled,t)!==!1&&t.state.data===void 0&&!(t.state.status==="error"&&e.retryOnMount===!1)}function _(t,e){return ot(t,e)||t.state.data!==void 0&&U(t,e,e.refetchOnMount)}function U(t,e,i){if(f(e.enabled,t)!==!1&&w(e.staleTime,t)!=="static"){const s=typeof i=="function"?i(t):i;return s==="always"||s!==!1&&F(t,e)}return!1}function N(t,e,i,s){return(t!==e||f(s.enabled,t)===!1)&&(!i.suspense||t.state.status!=="error")&&F(t,i)}function F(t,e){return f(e.enabled,t)!==!1&&t.isStaleByTime(w(e.staleTime,t))}function ht(t,e){return!D(t.getCurrentResult(),e)}function lt(t=""){if(!G())throw new Error("vue-query hooks can only be used inside setup() function or functions that support injection context.");const e=X(t),i=J(e);if(!i)throw new Error("No 'queryClient' found in Vue context, use 'VueQueryPlugin' to properly initialize the library.");return i}function ut(t,e,i){const s=lt(),n=W(()=>{const o=Z(e);typeof o.enabled=="function"&&(o.enabled=o.enabled());const b=s.defaultQueryOptions(o);return b._optimisticResults=s.isRestoring?.value?"isRestoring":"optimistic",b}),r=new t(s,n.value),l=n.value.shallow?q(r.getCurrentResult()):tt(r.getCurrentResult());let u=()=>{};s.isRestoring&&Q(s.isRestoring,o=>{o||(u(),u=r.subscribe(b=>{$(l,b)}))},{immediate:!0});const v=()=>{r.setOptions(n.value),$(l,r.getCurrentResult())};Q(n,v),et(()=>{u()});const O=(...o)=>(v(),l.refetch(...o)),a=()=>new Promise((o,b)=>{let d=()=>{};const g=()=>{if(n.value.enabled!==!1){r.setOptions(n.value);const m=r.getOptimisticResult(n.value);m.isStale?(d(),r.fetchOptimistic(n.value).then(o,R=>{A(n.value.throwOnError,[R,r.getCurrentQuery()])?b(R):o(r.getCurrentResult())})):(d(),o(m))}};g(),d=Q(n,g)});Q(()=>l.error,o=>{if(l.isError&&!l.isFetching&&A(n.value.throwOnError,[o,r.getCurrentQuery()]))throw o});const C=n.value.shallow?st(l):it(l),h=nt(C);for(const o in l)typeof l[o]=="function"&&(h[o]=l[o]);return h.suspense=a,h.refetch=O,h}function ct(t,e){return ut(rt,t)}const dt=3;async function ft(t,e){const i=t.startsWith("/")?t.slice(1):t;let s=`${window.DATA_HOST}${i}`;const n={allInOne:!1};if(s.includes("#")){const a=new URLSearchParams(s.split("#")[1]);n.allInOne=a.get("allInOne")==="true",s=s.split("#")[0]}t.startsWith("http")&&(s=t),s.endsWith("/")&&(s=s.slice(0,-1));const r=a=>a.includes("?")?`${a}&t=${e??0}`:`${a}?t=${e??0}`,l=n.allInOne?[await fetch(r(s))]:[await fetch(r(`${s}/config.json`)),await fetch(r(`${s}/team.json`)),await fetch(r(`${s}/run.json`))],{status:u,statusText:v}=l[0];if(u>=300||u<200)throw new Error(`fetch data failed. [status=${u}] [statusText=${v}]`);return Promise.all(l.map(a=>a.json())).then(a=>n.allInOne?a[0]:{contest:a[0],teams:a[1],submissions:a[2]})}function mt(t,e,i=!1){let s=3e4,n=s;const r=W(()=>Math.floor(e.value.getTime()/1e3/10));return at.value==="I18N"&&(s=10*1e3,n=s),i&&(s=Number.POSITIVE_INFINITY,n=!1),ct({queryKey:[t,r.value],queryFn:()=>ft(t,r.value),retry:dt,staleTime:s,refetchInterval:n})}export{mt as u};
1
+ import{a5 as V,a6 as j,a7 as f,a8 as D,a9 as w,aa as z,ab as k,ac as M,ad as B,ae as T,af as H,ag as K,ah as L,ai as Y,aj as G,ak as J,al as X,f as W,am as Z,an as q,ao as tt,C as Q,ap as $,aq as et,ar as A,as as st,at as it,au as nt}from"./index-BJ0B1S7n.js";import{b as at}from"./constant-Ds9q2BQF.js";var rt=class extends V{constructor(t,e){super(),this.options=e,this.#s=t,this.#n=null,this.#i=j(),this.bindMethods(),this.setOptions(e)}#s;#t=void 0;#p=void 0;#e=void 0;#r;#u;#i;#n;#b;#c;#d;#o;#h;#a;#f=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),_(this.#t,this.options)?this.#l():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return U(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return U(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#O(),this.#g(),this.#t.removeObserver(this)}setOptions(t){const e=this.options,i=this.#t;if(this.options=this.#s.defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof f(this.options.enabled,this.#t)!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#w(),this.#t.setOptions(this.options),e._defaulted&&!D(this.options,e)&&this.#s.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#t,observer:this});const s=this.hasListeners();s&&N(this.#t,i,this.options,e)&&this.#l(),this.updateResult(),s&&(this.#t!==i||f(this.options.enabled,this.#t)!==f(e.enabled,this.#t)||w(this.options.staleTime,this.#t)!==w(e.staleTime,this.#t))&&this.#v();const n=this.#m();s&&(this.#t!==i||f(this.options.enabled,this.#t)!==f(e.enabled,this.#t)||n!==this.#a)&&this.#R(n)}getOptimisticResult(t){const e=this.#s.getQueryCache().build(this.#s,t),i=this.createResult(e,t);return ht(this,i)&&(this.#e=i,this.#u=this.options,this.#r=this.#t.state),i}getCurrentResult(){return this.#e}trackResult(t,e){return new Proxy(t,{get:(i,s)=>(this.trackProp(s),e?.(s),s==="promise"&&!this.options.experimental_prefetchInRender&&this.#i.status==="pending"&&this.#i.reject(new Error("experimental_prefetchInRender feature flag is not enabled")),Reflect.get(i,s))})}trackProp(t){this.#f.add(t)}getCurrentQuery(){return this.#t}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const e=this.#s.defaultQueryOptions(t),i=this.#s.getQueryCache().build(this.#s,e);return i.fetch().then(()=>this.createResult(i,e))}fetch(t){return this.#l({...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#e))}#l(t){this.#w();let e=this.#t.fetch(this.options,t);return t?.throwOnError||(e=e.catch(z)),e}#v(){this.#O();const t=w(this.options.staleTime,this.#t);if(k||this.#e.isStale||!M(t))return;const i=B(this.#e.dataUpdatedAt,t)+1;this.#o=T.setTimeout(()=>{this.#e.isStale||this.updateResult()},i)}#m(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#R(t){this.#g(),this.#a=t,!(k||f(this.options.enabled,this.#t)===!1||!M(this.#a)||this.#a===0)&&(this.#h=T.setInterval(()=>{(this.options.refetchIntervalInBackground||H.isFocused())&&this.#l()},this.#a))}#y(){this.#v(),this.#R(this.#m())}#O(){this.#o&&(T.clearTimeout(this.#o),this.#o=void 0)}#g(){this.#h&&(T.clearInterval(this.#h),this.#h=void 0)}createResult(t,e){const i=this.#t,s=this.options,n=this.#e,r=this.#r,l=this.#u,v=t!==i?t.state:this.#p,{state:O}=t;let a={...O},C=!1,h;if(e._optimisticResults){const c=this.hasListeners(),I=!c&&_(t,e),y=c&&N(t,i,e,s);(I||y)&&(a={...a,...K(O.data,t.options)}),e._optimisticResults==="isRestoring"&&(a.fetchStatus="idle")}let{error:o,errorUpdatedAt:b,status:d}=a;h=a.data;let g=!1;if(e.placeholderData!==void 0&&h===void 0&&d==="pending"){let c;n?.isPlaceholderData&&e.placeholderData===l?.placeholderData?(c=n.data,g=!0):c=typeof e.placeholderData=="function"?e.placeholderData(this.#d?.state.data,this.#d):e.placeholderData,c!==void 0&&(d="success",h=L(n?.data,c,e),C=!0)}if(e.select&&h!==void 0&&!g)if(n&&h===r?.data&&e.select===this.#b)h=this.#c;else try{this.#b=e.select,h=e.select(h),h=L(n?.data,h,e),this.#c=h,this.#n=null}catch(c){this.#n=c}this.#n&&(o=this.#n,h=this.#c,b=Date.now(),d="error");const m=a.fetchStatus==="fetching",R=d==="pending",E=d==="error",P=R&&m,x=h!==void 0,p={status:d,fetchStatus:a.fetchStatus,isPending:R,isSuccess:d==="success",isError:E,isInitialLoading:P,isLoading:P,data:h,dataUpdatedAt:a.dataUpdatedAt,error:o,errorUpdatedAt:b,failureCount:a.fetchFailureCount,failureReason:a.fetchFailureReason,errorUpdateCount:a.errorUpdateCount,isFetched:a.dataUpdateCount>0||a.errorUpdateCount>0,isFetchedAfterMount:a.dataUpdateCount>v.dataUpdateCount||a.errorUpdateCount>v.errorUpdateCount,isFetching:m,isRefetching:m&&!R,isLoadingError:E&&!x,isPaused:a.fetchStatus==="paused",isPlaceholderData:C,isRefetchError:E&&x,isStale:F(t,e),refetch:this.refetch,promise:this.#i,isEnabled:f(e.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const c=S=>{p.status==="error"?S.reject(p.error):p.data!==void 0&&S.resolve(p.data)},I=()=>{const S=this.#i=p.promise=j();c(S)},y=this.#i;switch(y.status){case"pending":t.queryHash===i.queryHash&&c(y);break;case"fulfilled":(p.status==="error"||p.data!==y.value)&&I();break;case"rejected":(p.status!=="error"||p.error!==y.reason)&&I();break}}return p}updateResult(){const t=this.#e,e=this.createResult(this.#t,this.options);if(this.#r=this.#t.state,this.#u=this.options,this.#r.data!==void 0&&(this.#d=this.#t),D(e,t))return;this.#e=e;const i=()=>{if(!t)return!0;const{notifyOnChangeProps:s}=this.options,n=typeof s=="function"?s():s;if(n==="all"||!n&&!this.#f.size)return!0;const r=new Set(n??this.#f);return this.options.throwOnError&&r.add("error"),Object.keys(this.#e).some(l=>{const u=l;return this.#e[u]!==t[u]&&r.has(u)})};this.#C({listeners:i()})}#w(){const t=this.#s.getQueryCache().build(this.#s,this.options);if(t===this.#t)return;const e=this.#t;this.#t=t,this.#p=t.state,this.hasListeners()&&(e?.removeObserver(this),t.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(t){Y.batch(()=>{t.listeners&&this.listeners.forEach(e=>{e(this.#e)}),this.#s.getQueryCache().notify({query:this.#t,type:"observerResultsUpdated"})})}};function ot(t,e){return f(e.enabled,t)!==!1&&t.state.data===void 0&&!(t.state.status==="error"&&e.retryOnMount===!1)}function _(t,e){return ot(t,e)||t.state.data!==void 0&&U(t,e,e.refetchOnMount)}function U(t,e,i){if(f(e.enabled,t)!==!1&&w(e.staleTime,t)!=="static"){const s=typeof i=="function"?i(t):i;return s==="always"||s!==!1&&F(t,e)}return!1}function N(t,e,i,s){return(t!==e||f(s.enabled,t)===!1)&&(!i.suspense||t.state.status!=="error")&&F(t,i)}function F(t,e){return f(e.enabled,t)!==!1&&t.isStaleByTime(w(e.staleTime,t))}function ht(t,e){return!D(t.getCurrentResult(),e)}function lt(t=""){if(!G())throw new Error("vue-query hooks can only be used inside setup() function or functions that support injection context.");const e=X(t),i=J(e);if(!i)throw new Error("No 'queryClient' found in Vue context, use 'VueQueryPlugin' to properly initialize the library.");return i}function ut(t,e,i){const s=lt(),n=W(()=>{const o=Z(e);typeof o.enabled=="function"&&(o.enabled=o.enabled());const b=s.defaultQueryOptions(o);return b._optimisticResults=s.isRestoring?.value?"isRestoring":"optimistic",b}),r=new t(s,n.value),l=n.value.shallow?q(r.getCurrentResult()):tt(r.getCurrentResult());let u=()=>{};s.isRestoring&&Q(s.isRestoring,o=>{o||(u(),u=r.subscribe(b=>{$(l,b)}))},{immediate:!0});const v=()=>{r.setOptions(n.value),$(l,r.getCurrentResult())};Q(n,v),et(()=>{u()});const O=(...o)=>(v(),l.refetch(...o)),a=()=>new Promise((o,b)=>{let d=()=>{};const g=()=>{if(n.value.enabled!==!1){r.setOptions(n.value);const m=r.getOptimisticResult(n.value);m.isStale?(d(),r.fetchOptimistic(n.value).then(o,R=>{A(n.value.throwOnError,[R,r.getCurrentQuery()])?b(R):o(r.getCurrentResult())})):(d(),o(m))}};g(),d=Q(n,g)});Q(()=>l.error,o=>{if(l.isError&&!l.isFetching&&A(n.value.throwOnError,[o,r.getCurrentQuery()]))throw o});const C=n.value.shallow?st(l):it(l),h=nt(C);for(const o in l)typeof l[o]=="function"&&(h[o]=l[o]);return h.suspense=a,h.refetch=O,h}function ct(t,e){return ut(rt,t)}const dt=3;async function ft(t,e){const i=t.startsWith("/")?t.slice(1):t;let s=`${window.DATA_HOST}${i}`;const n={allInOne:!1};if(s.includes("#")){const a=new URLSearchParams(s.split("#")[1]);n.allInOne=a.get("allInOne")==="true",s=s.split("#")[0]}t.startsWith("http")&&(s=t),s.endsWith("/")&&(s=s.slice(0,-1));const r=a=>a.includes("?")?`${a}&t=${e??0}`:`${a}?t=${e??0}`,l=n.allInOne?[await fetch(r(s))]:[await fetch(r(`${s}/config.json`)),await fetch(r(`${s}/team.json`)),await fetch(r(`${s}/run.json`))],{status:u,statusText:v}=l[0];if(u>=300||u<200)throw new Error(`fetch data failed. [status=${u}] [statusText=${v}]`);return Promise.all(l.map(a=>a.json())).then(a=>n.allInOne?a[0]:{contest:a[0],teams:a[1],submissions:a[2]})}function mt(t,e,i=!1){let s=3e4,n=s;const r=W(()=>Math.floor(e.value.getTime()/1e3/10));return at.value==="I18N"&&(s=10*1e3,n=s),i&&(s=Number.POSITIVE_INFINITY,n=!1),ct({queryKey:[t,r.value],queryFn:()=>ft(t,r.value),retry:dt,staleTime:s,refetchInterval:n})}export{mt as u};
@@ -1 +1 @@
1
- import{ay as n,m as r,f as t}from"./index-D_YfgkHi.js";const f=n("user",()=>{const e=r(""),s=r(new Set),o=t(()=>Array.from(s.value)),u=t(()=>o.value.filter(a=>a!==e.value));function m(a){e.value&&s.value.add(e.value),e.value=a}return{setNewName:m,otherNames:u,savedName:e}});export{f as u};
1
+ import{ay as n,m as r,f as t}from"./index-BJ0B1S7n.js";const f=n("user",()=>{const e=r(""),s=r(new Set),o=t(()=>Array.from(s.value)),u=t(()=>o.value.filter(a=>a!==e.value));function m(a){e.value&&s.value.add(e.value),e.value=a}return{setNewName:m,otherNames:u,savedName:e}});export{f as u};
@@ -1 +1 @@
1
- import{_ as f}from"./index-D_YfgkHi.js";function p(n={}){const{immediate:s=!1,onNeedRefresh:u,onOfflineReady:o,onRegistered:d,onRegisteredSW:r,onRegisterError:i}=n;let t,a;const c=async(e=!0)=>{await a};async function l(){if("serviceWorker"in navigator){if(t=await f(async()=>{const{Workbox:e}=await import("./workbox-window.prod.es5-CwtvwXb3.js");return{Workbox:e}},[],import.meta.url).then(({Workbox:e})=>new e("/sw.js",{scope:"/",type:"classic"})).catch(e=>{i?.(e)}),!t)return;t.addEventListener("activated",e=>{(e.isUpdate||e.isExternal)&&window.location.reload()}),t.addEventListener("installed",e=>{e.isUpdate||o?.()}),t.register({immediate:s}).then(e=>{r?r("/sw.js",e):d?.(e)}).catch(e=>{i?.(e)})}}return a=l(),c}export{p as registerSW};
1
+ import{_ as f}from"./index-BJ0B1S7n.js";function p(n={}){const{immediate:s=!1,onNeedRefresh:u,onOfflineReady:o,onRegistered:d,onRegisteredSW:r,onRegisterError:i}=n;let t,a;const c=async(e=!0)=>{await a};async function l(){if("serviceWorker"in navigator){if(t=await f(async()=>{const{Workbox:e}=await import("./workbox-window.prod.es5-CwtvwXb3.js");return{Workbox:e}},[],import.meta.url).then(({Workbox:e})=>new e("/sw.js",{scope:"/",type:"classic"})).catch(e=>{i?.(e)}),!t)return;t.addEventListener("activated",e=>{(e.isUpdate||e.isExternal)&&window.location.reload()}),t.addEventListener("installed",e=>{e.isUpdate||o?.()}),t.register({immediate:s}).then(e=>{r?r("/sw.js",e):d?.(e)}).catch(e=>{i?.(e)})}}return a=l(),c}export{p as registerSW};
@@ -0,0 +1 @@
1
+ const t={button:{about:{t:0,b:{t:2,i:[{t:3}],s:"关于"}},back:{t:0,b:{t:2,i:[{t:3}],s:"返回"}},go:{t:0,b:{t:2,i:[{t:3}],s:"确定"}},home:{t:0,b:{t:2,i:[{t:3}],s:"首页"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"确认"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},toggle_dark:{t:0,b:{t:2,i:[{t:3}],s:"切换深色模式"}},toggle_langs:{t:0,b:{t:2,i:[{t:3}],s:"切换语言"}}},intro:{desc:{t:0,b:{t:2,i:[{t:3}],s:"固执己见的 Vite 项目模板"}},"dynamic-route":{t:0,b:{t:2,i:[{t:3}],s:"动态路由演示"}},hi:{t:0,b:{t:2,i:[{t:3,v:"你好,"},{t:4,k:"name"}]}},aka:{t:0,b:{t:2,i:[{t:3}],s:"也叫"}},"whats-your-name":{t:0,b:{t:2,i:[{t:3}],s:"输入你的名字"}}},"not-found":{t:0,b:{t:2,i:[{t:3}],s:"未找到页面"}},common:{loading:{t:0,b:{t:2,i:[{t:3}],s:"加载中"}},colon:{t:0,b:{t:2,i:[{t:3}],s:":"}}},index:{start:{t:0,b:{t:2,i:[{t:3}],s:"开始时间"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"持续时长"}}},type_menu:{rank:{t:0,b:{t:2,i:[{t:3}],s:"排名"}},overview:{t:0,b:{t:2,i:[{t:3}],s:"简介"}},submissions:{t:0,b:{t:2,i:[{t:3}],s:"提交"}},statistics:{t:0,b:{t:2,i:[{t:3}],s:"统计"}},balloon:{t:0,b:{t:2,i:[{t:3}],s:"气球"}},resolver:{t:0,b:{t:2,i:[{t:3}],s:"滚榜"}},filter:{t:0,b:{t:2,i:[{t:3}],s:"筛选"}},options:{t:0,b:{t:2,i:[{t:3}],s:"选项"}},utility:{t:0,b:{t:2,i:[{t:3}],s:"工具"}},countdown:{t:0,b:{t:2,i:[{t:3}],s:"倒计时"}}},utility:{tools:{t:0,b:{t:2,i:[{t:3}],s:"工具集"}},export:{t:0,b:{t:2,i:[{t:3}],s:"导出"}}},standings:{start_time:{t:0,b:{t:2,i:[{t:3}],s:"开始时间"}},end_time:{t:0,b:{t:2,i:[{t:3}],s:"结束时间"}},elapsed:{t:0,b:{t:2,i:[{t:3}],s:"当前时间"}},remaining:{t:0,b:{t:2,i:[{t:3}],s:"剩余时间"}},place:{t:0,b:{t:2,i:[{t:3}],s:"Place"}},team:{t:0,b:{t:2,i:[{t:3}],s:"Team"}},solved:{t:0,b:{t:2,i:[{t:3}],s:"Solved"}},penalty:{t:0,b:{t:2,i:[{t:3}],s:"Penalty"}},dirt:{t:0,b:{t:2,i:[{t:3}],s:"Dirt"}},se:{t:0,b:{t:2,i:[{t:3}],s:"SE"}},statistics:{submitted:{t:0,b:{t:2,i:[{t:3}],s:"Submitted"}},attempted:{t:0,b:{t:2,i:[{t:3}],s:"Attempted"}},accepted:{t:0,b:{t:2,i:[{t:3}],s:"Accepted"}},dirt:{t:0,b:{t:2,i:[{t:3}],s:"Dirt"}},se:{t:0,b:{t:2,i:[{t:3}],s:"SE"}},first_solved:{t:0,b:{t:2,i:[{t:3}],s:"First Solved"}},last_solved:{t:0,b:{t:2,i:[{t:3}],s:"Last Solved"}},head_data:{problems:{t:0,b:{t:2,i:[{t:3}],s:"题目数"}},teams:{t:0,b:{t:2,i:[{t:3}],s:"队伍数"}},submissions:{t:0,b:{t:2,i:[{t:3}],s:"提交数"}}},submit_heatmap:{t:0,b:{t:2,i:[{t:3}],s:"提交热力图"}}},options:{calculation_of_penalty:{t:0,b:{t:2,i:[{t:3}],s:"罚时计算方式"}},in_minutes:{t:0,b:{t:2,i:[{t:3}],s:"精确到分钟进行累加"}},in_seconds:{t:0,b:{t:2,i:[{t:3}],s:"精确到秒进行累加"}},accumulate_in_seconds_and_finally_to_the_minute:{t:0,b:{t:2,i:[{t:3}],s:"精确到秒进行累加,最后精确到分钟"}}}},submissions:{total_submissions:{t:0,b:{t:2,i:[{t:3}],s:"总提交数"}}},team_info:{rank:{t:0,b:{t:2,i:[{t:3}],s:"排名"}},team_name:{t:0,b:{t:2,i:[{t:3}],s:"队名"}},organization:{t:0,b:{t:2,i:[{t:3}],s:"组织"}},group:{t:0,b:{t:2,i:[{t:3}],s:"组别"}},members:{t:0,b:{t:2,i:[{t:3}],s:"队员"}},coaches:{t:0,b:{t:2,i:[{t:3}],s:"教练"}},location:{t:0,b:{t:2,i:[{t:3}],s:"位置"}},award:{t:0,b:{t:2,i:[{t:3}],s:"奖项"}}},medal:{gold:{t:0,b:{t:2,i:[{t:3}],s:"金奖"}},silver:{t:0,b:{t:2,i:[{t:3}],s:"银奖"}},bronze:{t:0,b:{t:2,i:[{t:3}],s:"铜奖"}},honorable:{t:0,b:{t:2,i:[{t:3}],s:"优胜奖"}}}};export{t as default};
package/dist/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang="en-US" dir="ltr"><head><meta charset="UTF-8"/><title>Board - XCPCIO</title><script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-WHLF55BJ",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer")</script><link rel="icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.69.5/dist/balloon-512x512.svg" type="image/svg+xml"/><link rel="mask-icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.69.5/dist/balloon-512x512.svg" color="#00aba9"/><link rel="apple-touch-icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.69.5/dist/balloon-192x192.png"/><meta name="msapplication-TileColor" content="#00aba9"/><meta name="author" content="Dup4"/><meta name="title" content="Board - XCPCIO"/><meta name="description" content="The ICPC Series Competition Leaderboard Visualization Engine."/><meta name="keywords" content="ICPC, Rank, Board, Leaderboard, ScoreBoard, Standings"/><meta property="og:site_name" content="XCPCIO"/><meta property="og:title" content="Board - XCPCIO"/><meta property="og:description" content="The ICPC Series Competition Leaderboard Visualization Engine."/><meta property="og:type" content="website"/><meta property="og:image" content="https://xcpcio.com/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta name="twitter:title" content="Board - XCPCIO"/><meta name="twitter:description" content="The ICPC Series Competition Leaderboard Visualization Engine."/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:image" content="https://xcpcio.com/og.png"/><script>function normalizePath(_){for(;_.endsWith("/");)_=_.slice(0,-1);return`${_}/`}{let _="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.69.5/dist";_=normalizePath(_),window.CDN_HOST=_,window.__toAssetUrl=_=>window.CDN_HOST+_}try{let _=__DATA_HOST__;_=normalizePath(_),window.DATA_HOST=_}catch(_){window.DATA_HOST="/data/"}try{let _=__DATA_REGION__;window.DATA_REGION=_}catch(_){window.DATA_REGION="CN"}try{let _=__DEFAULT_LANG__;window.DEFAULT_LANG=_}catch(_){window.DEFAULT_LANG="en"}</script><script>!function(){localStorage.getItem("vueuse-color-scheme")||localStorage.setItem("vueuse-color-scheme","light");const e=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches,o=localStorage.getItem("vueuse-color-scheme")||"auto";("dark"===o||e&&"light"!==o)&&document.documentElement.classList.toggle("dark",!0)}()</script><script type="module" crossorigin src="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.69.5/dist/assets/index-D_YfgkHi.js"></script><link rel="stylesheet" crossorigin href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.69.5/dist/assets/index-BGJAeisZ.css"><link rel="manifest" href="/manifest.webmanifest"></head><body class="font-sans"><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WHLF55BJ" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div id="app"></div><noscript>This website requires JavaScript to function properly. Please enable JavaScript to continue.</noscript><script>try{var umamiJSUrl=__UMAMI_JS_URL__,umamiWebsiteId=__UMAMI_WEBSITE_ID__;!function(){var e=document.createElement("script");e.src=umamiJSUrl,e.defer=!0,e.setAttribute("data-website-id",umamiWebsiteId);var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()}catch(e){}try{var baiduAnalyticsId=__BAIDU_ANALYTICS_ID__,_hmt=_hmt||[];!function(){var e=document.createElement("script");e.src=`https://hm.baidu.com/hm.js?${baiduAnalyticsId}`;var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()}catch(e){}</script></body></html>
1
+ <!doctype html><html lang="en-US" dir="ltr"><head><meta charset="UTF-8"/><title>Board - XCPCIO</title><script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-WHLF55BJ",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer")</script><link rel="icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.70.0/dist/balloon-512x512.svg" type="image/svg+xml"/><link rel="mask-icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.70.0/dist/balloon-512x512.svg" color="#00aba9"/><link rel="apple-touch-icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.70.0/dist/balloon-192x192.png"/><meta name="msapplication-TileColor" content="#00aba9"/><meta name="author" content="Dup4"/><meta name="title" content="Board - XCPCIO"/><meta name="description" content="The ICPC Series Competition Leaderboard Visualization Engine."/><meta name="keywords" content="ICPC, Rank, Board, Leaderboard, ScoreBoard, Standings"/><meta property="og:site_name" content="XCPCIO"/><meta property="og:title" content="Board - XCPCIO"/><meta property="og:description" content="The ICPC Series Competition Leaderboard Visualization Engine."/><meta property="og:type" content="website"/><meta property="og:image" content="https://xcpcio.com/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta name="twitter:title" content="Board - XCPCIO"/><meta name="twitter:description" content="The ICPC Series Competition Leaderboard Visualization Engine."/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:image" content="https://xcpcio.com/og.png"/><script>function normalizePath(_){for(;_.endsWith("/");)_=_.slice(0,-1);return`${_}/`}{let _="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.70.0/dist";_=normalizePath(_),window.CDN_HOST=_,window.__toAssetUrl=_=>window.CDN_HOST+_}try{let _=__DATA_HOST__;_=normalizePath(_),window.DATA_HOST=_}catch(_){window.DATA_HOST="/data/"}try{let _=__DATA_REGION__;window.DATA_REGION=_}catch(_){window.DATA_REGION="CN"}try{let _=__DEFAULT_LANG__;window.DEFAULT_LANG=_}catch(_){window.DEFAULT_LANG="en"}</script><script>!function(){localStorage.getItem("vueuse-color-scheme")||localStorage.setItem("vueuse-color-scheme","light");const e=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches,o=localStorage.getItem("vueuse-color-scheme")||"auto";("dark"===o||e&&"light"!==o)&&document.documentElement.classList.toggle("dark",!0)}()</script><script type="module" crossorigin src="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.70.0/dist/assets/index-BJ0B1S7n.js"></script><link rel="stylesheet" crossorigin href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.70.0/dist/assets/index-CBwoaX68.css"><link rel="manifest" href="/manifest.webmanifest"></head><body class="font-sans"><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WHLF55BJ" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div id="app"></div><noscript>This website requires JavaScript to function properly. Please enable JavaScript to continue.</noscript><script>try{var umamiJSUrl=__UMAMI_JS_URL__,umamiWebsiteId=__UMAMI_WEBSITE_ID__;!function(){var e=document.createElement("script");e.src=umamiJSUrl,e.defer=!0,e.setAttribute("data-website-id",umamiWebsiteId);var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()}catch(e){}try{var baiduAnalyticsId=__BAIDU_ANALYTICS_ID__,_hmt=_hmt||[];!function(){var e=document.createElement("script");e.src=`https://hm.baidu.com/hm.js?${baiduAnalyticsId}`;var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()}catch(e){}</script></body></html>
package/dist/sw.js CHANGED
@@ -1 +1 @@
1
- if(!self.define){let s,e={};const l=(l,n)=>(l=new URL(l+".js",n).href,e[l]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()})).then((()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s})));self.define=(n,r)=>{const i=s||("document"in self?document.currentScript.src:"")||location.href;if(e[i])return;let u={};const t=s=>l(s,i),o={module:{uri:i},exports:u,require:t};e[i]=Promise.all(n.map((s=>o[s]||t(s)))).then((s=>(r(...s),u)))}}define(["./workbox-7ee6f867"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"assets/_..-5I0UWqRG.css",revision:null},{url:"assets/_...all_-Cw819WoH.js",revision:null},{url:"assets/_...all_-FGT9N2sj.js",revision:null},{url:"assets/_name_-CuQ3cIKi.js",revision:null},{url:"assets/_plugin-vue_export-helper-DlAUqK2U.js",revision:null},{url:"assets/about-BAhmu_eA.js",revision:null},{url:"assets/Balloon.vue_vue_type_script_setup_true_lang-DfbwZnd2.js",revision:null},{url:"assets/board-B2-AY2i9.js",revision:null},{url:"assets/Board-BMeYlAwA.js",revision:null},{url:"assets/Board-C89Lc-cb.css",revision:null},{url:"assets/board-layout-GCp2jR8Y.js",revision:null},{url:"assets/constant-CglMAQbu.js",revision:null},{url:"assets/ContestStateBadge-D6uf8wH-.css",revision:null},{url:"assets/ContestStateBadge-DoEREwpQ.js",revision:null},{url:"assets/Countdown-_PA1hqgx.js",revision:null},{url:"assets/Countdown-BzEYBgj7.css",revision:null},{url:"assets/DataSourceInput.vue_vue_type_script_setup_true_lang-eUwkTVcq.js",revision:null},{url:"assets/dayjs-BswMS1T6.js",revision:null},{url:"assets/default-BSnA2z3z.js",revision:null},{url:"assets/en-2FPgP2UC.js",revision:null},{url:"assets/Footer-BWt3hS1p.js",revision:null},{url:"assets/headless-DaRP-RlQ.js",revision:null},{url:"assets/home-CQ7J5jfy.js",revision:null},{url:"assets/index-B57ZqXF4.js",revision:null},{url:"assets/index-Bce8wPYb.css",revision:null},{url:"assets/index-BGJAeisZ.css",revision:null},{url:"assets/index-BhnYlDUf.js",revision:null},{url:"assets/index-BLzpiSXU.js",revision:null},{url:"assets/index-Bo0N8sE9.js",revision:null},{url:"assets/index-BShKuYMv.js",revision:null},{url:"assets/index-D_YfgkHi.js",revision:null},{url:"assets/index-D-msPqye.css",revision:null},{url:"assets/index-layout-Dzd9pPBi.js",revision:null},{url:"assets/NavBar-aT2xEvYz.css",revision:null},{url:"assets/NavBar-DBduFBvK.js",revision:null},{url:"assets/pagination-4SkVHmrY.js",revision:null},{url:"assets/person-BqGZA5vO.js",revision:null},{url:"assets/query-951tnQE0.js",revision:null},{url:"assets/rank-D0grINCt.js",revision:null},{url:"assets/Resolver-DWEPObm3.css",revision:null},{url:"assets/Resolver-DYqdxinL.js",revision:null},{url:"assets/RightArrowIcon-CLEfqdYw.js",revision:null},{url:"assets/route-block-B_A1xBdJ.js",revision:null},{url:"assets/test-BXOoffz6.js",revision:null},{url:"assets/TheInput.vue_vue_type_script_setup_true_lang-BToUgLKT.js",revision:null},{url:"assets/Tooltip-DzyPDwbo.css",revision:null},{url:"assets/Tooltip.vue_vue_type_script_setup_true_lang-DDqugeXb.js",revision:null},{url:"assets/use-vmodel-B2gtAybe.js",revision:null},{url:"assets/useQueryBoardData-Bo2tfx6C.js",revision:null},{url:"assets/user-B76vXuTP.js",revision:null},{url:"assets/virtual_pwa-register-DAgoMBVn.js",revision:null},{url:"assets/workbox-window.prod.es5-CwtvwXb3.js",revision:null},{url:"assets/zh-CN-HUuGZsB1.js",revision:null},{url:"index.html",revision:"fbdf322af7da7522292412b80a96e6e9"},{url:"balloon2-192x192.png",revision:"c857ae6d9dfae118ab4397d4358422bd"},{url:"balloon2-512x512.png",revision:"065594f4f743fe3884793c03d3fe7d9e"},{url:"favicon.svg",revision:"5a744f4ccbb122d4a0575be779ddcd43"},{url:"safari-pinned-tab.svg",revision:"5eaf74d1c43d30e0af743b68a3f48504"},{url:"manifest.webmanifest",revision:"2a3579b4def3b981643d514aab210ae8"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))}));
1
+ if(!self.define){let s,e={};const l=(l,n)=>(l=new URL(l+".js",n).href,e[l]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()})).then((()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s})));self.define=(n,r)=>{const i=s||("document"in self?document.currentScript.src:"")||location.href;if(e[i])return;let u={};const t=s=>l(s,i),o={module:{uri:i},exports:u,require:t};e[i]=Promise.all(n.map((s=>o[s]||t(s)))).then((s=>(r(...s),u)))}}define(["./workbox-7ee6f867"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"assets/_..-5I0UWqRG.css",revision:null},{url:"assets/_...all_-CtqfVkht.js",revision:null},{url:"assets/_...all_-DMSafAfm.js",revision:null},{url:"assets/_name_-BmEIkMG7.js",revision:null},{url:"assets/_plugin-vue_export-helper-DlAUqK2U.js",revision:null},{url:"assets/about-BR3jUE0_.js",revision:null},{url:"assets/Balloon.vue_vue_type_script_setup_true_lang-oEmN2FUH.js",revision:null},{url:"assets/Board-Bhkqgu1Y.js",revision:null},{url:"assets/board-layout-DbzTYtb3.js",revision:null},{url:"assets/board-q5on1RUR.js",revision:null},{url:"assets/Board-tx1moXfi.css",revision:null},{url:"assets/constant-Ds9q2BQF.js",revision:null},{url:"assets/ContestStateBadge-CvO-EMgm.js",revision:null},{url:"assets/ContestStateBadge-D6uf8wH-.css",revision:null},{url:"assets/Countdown-BzEYBgj7.css",revision:null},{url:"assets/Countdown-TVEha-GX.js",revision:null},{url:"assets/DataSourceInput.vue_vue_type_script_setup_true_lang-DPoc3DXZ.js",revision:null},{url:"assets/dayjs-DRRP86hV.js",revision:null},{url:"assets/default--P8qjAUG.js",revision:null},{url:"assets/en-Bc_VXYkH.js",revision:null},{url:"assets/Footer-D8toReDQ.js",revision:null},{url:"assets/headless---RphLCU.js",revision:null},{url:"assets/home-CRBm3f13.js",revision:null},{url:"assets/index-Bce8wPYb.css",revision:null},{url:"assets/index-BJ0B1S7n.js",revision:null},{url:"assets/index-BKVhu7Tw.js",revision:null},{url:"assets/index-CBwoaX68.css",revision:null},{url:"assets/index-D-msPqye.css",revision:null},{url:"assets/index-D7Dv5u2i.js",revision:null},{url:"assets/index-DDXtBC57.js",revision:null},{url:"assets/index-DF3noR7O.js",revision:null},{url:"assets/index-DwDo-flU.js",revision:null},{url:"assets/index-layout-DpgBAC2O.js",revision:null},{url:"assets/NavBar-aT2xEvYz.css",revision:null},{url:"assets/NavBar-o5bwwfFh.js",revision:null},{url:"assets/pagination-CCDih46R.js",revision:null},{url:"assets/person-wOxxwhEX.js",revision:null},{url:"assets/query-Cwkn7-aW.js",revision:null},{url:"assets/rank-CzKFUPaY.js",revision:null},{url:"assets/Resolver-DHnKaMVV.js",revision:null},{url:"assets/Resolver-DWEPObm3.css",revision:null},{url:"assets/RightArrowIcon-DYbq8Bub.js",revision:null},{url:"assets/route-block-B_A1xBdJ.js",revision:null},{url:"assets/test-2P7EDOc4.js",revision:null},{url:"assets/TheInput.vue_vue_type_script_setup_true_lang-BdUca1-n.js",revision:null},{url:"assets/Tooltip-DzyPDwbo.css",revision:null},{url:"assets/Tooltip.vue_vue_type_script_setup_true_lang-JtL4ZY65.js",revision:null},{url:"assets/use-vmodel-eKIPpK5B.js",revision:null},{url:"assets/useQueryBoardData-BxZkFBMO.js",revision:null},{url:"assets/user-CgerVobA.js",revision:null},{url:"assets/virtual_pwa-register-CeNObX1m.js",revision:null},{url:"assets/workbox-window.prod.es5-CwtvwXb3.js",revision:null},{url:"assets/zh-CN-DJPqkv-M.js",revision:null},{url:"index.html",revision:"b1ba65f9feea6e2e23dc50cafe7fe886"},{url:"balloon2-192x192.png",revision:"c857ae6d9dfae118ab4397d4358422bd"},{url:"balloon2-512x512.png",revision:"065594f4f743fe3884793c03d3fe7d9e"},{url:"favicon.svg",revision:"5a744f4ccbb122d4a0575be779ddcd43"},{url:"safari-pinned-tab.svg",revision:"5eaf74d1c43d30e0af743b68a3f48504"},{url:"manifest.webmanifest",revision:"2a3579b4def3b981643d514aab210ae8"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))}));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xcpcio/board-app",
3
3
  "type": "module",
4
- "version": "0.69.5",
4
+ "version": "0.70.0",
5
5
  "description": "The ICPC Series Competition Leaderboard Visualization Engine",
6
6
  "author": "Dup4 <hi@dup4.com>",
7
7
  "license": "MIT",
@@ -53,8 +53,8 @@
53
53
  "vue-router": "^4.5.1",
54
54
  "vue-search-select": "^3.2.0",
55
55
  "vue-toast-notification": "^3.1.3",
56
- "@xcpcio/types": "0.69.5",
57
- "@xcpcio/core": "0.69.5"
56
+ "@xcpcio/core": "0.70.0",
57
+ "@xcpcio/types": "0.70.0"
58
58
  },
59
59
  "devDependencies": {
60
60
  "@iconify/json": "^2.2.394",
@@ -14,8 +14,7 @@ const emit = defineEmits(["update:isHidden"]);
14
14
  const TYPE_OVERVIEW = "overview";
15
15
  const TYPE_SUBMISSIONS = "submissions";
16
16
  const TYPE_STATISTICS = "statistics";
17
- const TYPE_AWARDS = "awards";
18
- const types = [TYPE_OVERVIEW, TYPE_SUBMISSIONS, TYPE_STATISTICS, TYPE_AWARDS];
17
+ const types = [TYPE_OVERVIEW, TYPE_SUBMISSIONS, TYPE_STATISTICS];
19
18
 
20
19
  const { locale } = useI18n();
21
20
  const lang = computed(() => locale.value as unknown as Lang);
@@ -115,7 +114,7 @@ const headerTitle = computed(() => {
115
114
  v-if="currentType === TYPE_OVERVIEW"
116
115
  w-full
117
116
  >
118
- <TeamInfo
117
+ <TeamOverview
119
118
  :rank="rank"
120
119
  :team="team"
121
120
  />
@@ -143,16 +142,6 @@ const headerTitle = computed(() => {
143
142
  :options="getTeamPlaceChart(rank, team)"
144
143
  />
145
144
  </div>
146
-
147
- <div
148
- v-if="currentType === TYPE_AWARDS"
149
- w-full
150
- >
151
- <TeamAwards
152
- :team="team"
153
- :rank="rank"
154
- />
155
- </div>
156
145
  </div>
157
146
  </Modal>
158
147
  </template>
@@ -1,6 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import type { Rank, Team } from "@xcpcio/core";
3
3
  import type { Lang } from "@xcpcio/types";
4
+ import { MedalType } from "@xcpcio/core";
4
5
 
5
6
  const props = defineProps<{
6
7
  rank: Rank;
@@ -56,6 +57,37 @@ const groupNames = computed(() => {
56
57
  .join(", ");
57
58
  });
58
59
 
60
+ const medal = computed(() => {
61
+ if (team.value.awards.includes(MedalType.GOLD)) {
62
+ return {
63
+ emoji: "i-twemoji-1st-place-medal",
64
+ text: t("medal.gold"),
65
+ };
66
+ }
67
+
68
+ if (team.value.awards.includes(MedalType.SILVER)) {
69
+ return {
70
+ emoji: "i-twemoji-2nd-place-medal",
71
+ text: t("medal.silver"),
72
+ };
73
+ }
74
+
75
+ if (team.value.awards.includes(MedalType.BRONZE)) {
76
+ return {
77
+ emoji: "i-twemoji-3rd-place-medal",
78
+ text: t("medal.bronze"),
79
+ };
80
+ }
81
+
82
+ if (team.value.awards.includes(MedalType.HONORABLE)) {
83
+ return {
84
+ text: t("medal.honorable"),
85
+ };
86
+ }
87
+
88
+ return null;
89
+ });
90
+
59
91
  const tableRows = computed(() => {
60
92
  const rows = [
61
93
  { label: t("team_info.rank"), value: team.value.rank, show: true },
@@ -65,6 +97,7 @@ const tableRows = computed(() => {
65
97
  { label: t("team_info.members"), value: team.value.membersToString(lang.value), show: team.value.members.length > 0 },
66
98
  { label: t("team_info.coaches"), value: team.value.coachesToString(lang.value), show: team.value.coaches.length > 0 },
67
99
  { label: t("team_info.location"), value: team.value.location, show: !!team.value.location },
100
+ { label: t("team_info.award"), value: medal.value?.text, emoji: medal.value?.emoji, show: !!medal.value },
68
101
  ];
69
102
  return rows.filter(row => row.show);
70
103
  });
@@ -90,6 +123,11 @@ const tableRows = computed(() => {
90
123
  {{ row.label }}
91
124
  </td>
92
125
  <td px-4 py-2>
126
+ <span
127
+ v-if="!!row.emoji"
128
+ :class="row.emoji"
129
+ text-xl
130
+ />
93
131
  {{ row.value }}
94
132
  </td>
95
133
  </tr>
@@ -14,9 +14,9 @@ const props = defineProps<{
14
14
  const el = ref(null);
15
15
  const isVisible = useElementVisibility(el);
16
16
 
17
- const hiddenTeamInfoModal = ref(true);
18
- function onClickTeamInfoModal() {
19
- hiddenTeamInfoModal.value = false;
17
+ const hiddenTeamModal = ref(true);
18
+ function onClickTeamModal() {
19
+ hiddenTeamModal.value = false;
20
20
  }
21
21
 
22
22
  const { locale } = useI18n();
@@ -129,7 +129,7 @@ function isRenderByVisible() {
129
129
  >
130
130
  <div
131
131
  cursor-pointer
132
- @click="onClickTeamInfoModal"
132
+ @click="onClickTeamModal"
133
133
  >
134
134
  <span>{{ teamName }}</span>
135
135
  <span v-if="team.group.includes('unofficial')" class="i-line-md:star-alt-filled" />
@@ -137,9 +137,9 @@ function isRenderByVisible() {
137
137
  </div>
138
138
 
139
139
  <div>
140
- <TeamInfoModal
141
- v-if="!hiddenTeamInfoModal"
142
- v-model:is-hidden="hiddenTeamInfoModal"
140
+ <TeamModal
141
+ v-if="!hiddenTeamModal"
142
+ v-model:is-hidden="hiddenTeamModal"
143
143
  :rank="rank"
144
144
  :team="team"
145
145
  />
@@ -59,9 +59,8 @@ declare module 'vue' {
59
59
  SubmissionsTableModal: typeof import('./components/board/SubmissionsTableModal.vue')['default']
60
60
  SubmitHeatMap: typeof import('./components/board/SubmitHeatMap.vue')['default']
61
61
  TablePagination: typeof import('./components/table/TablePagination.vue')['default']
62
- TeamAwards: typeof import('./components/board/TeamAwards.vue')['default']
63
- TeamInfo: typeof import('./components/board/TeamInfo.vue')['default']
64
- TeamInfoModal: typeof import('./components/board/TeamInfoModal.vue')['default']
62
+ TeamModal: typeof import('./components/board/TeamModal.vue')['default']
63
+ TeamOverview: typeof import('./components/board/TeamOverview.vue')['default']
65
64
  TeamProblemBlock: typeof import('./components/board/TeamProblemBlock.vue')['default']
66
65
  TeamUI: typeof import('./components/board/TeamUI.vue')['default']
67
66
  TheCheckbox: typeof import('./components/common/TheCheckbox.vue')['default']
@@ -1 +0,0 @@
1
- import{_ as i}from"./Board-BMeYlAwA.js";import{_ as u}from"./DataSourceInput.vue_vue_type_script_setup_true_lang-eUwkTVcq.js";import{b as f}from"./query-951tnQE0.js";import{d,c as e,o as t,a as n,q as l,h as a,F as B,G as h}from"./index-D_YfgkHi.js";import{b as c}from"./route-block-B_A1xBdJ.js";import{_ as k}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./pagination-4SkVHmrY.js";import"./Tooltip.vue_vue_type_script_setup_true_lang-DDqugeXb.js";import"./TheInput.vue_vue_type_script_setup_true_lang-BToUgLKT.js";import"./use-vmodel-B2gtAybe.js";import"./rank-D0grINCt.js";import"./dayjs-BswMS1T6.js";import"./person-BqGZA5vO.js";import"./ContestStateBadge-DoEREwpQ.js";import"./constant-CglMAQbu.js";import"./useQueryBoardData-Bo2tfx6C.js";const b={key:0},x=d({__name:"CustomBoard",setup(s){const o=f();return(r,g)=>{const _=u,p=i;return t(),e(B,null,[n(_),a(o).length>0?(t(),e("div",b,[n(p,{"data-source-url":a(o)},null,8,["data-source-url"])])):l("",!0)],64)}}}),m={};function C(s,o){const r=x;return t(),h(r)}typeof c=="function"&&c(m);const z=k(m,[["render",C]]);export{z as default};
@@ -1 +0,0 @@
1
- import{f as t}from"./index-D_YfgkHi.js";const a="0.69.5",c="https://github.com/xcpcio/xcpcio",T="644dc59f62",I="https://xcpcio.com",r="Board - XCPCIO",_="Rating - XCPCIO",O="Balloon - XCPCIO",C="Resolver - XCPCIO",i="Countdown - XCPCIO",A=t(()=>window?window.CDN_HOST:""),o=t(()=>window?window.DATA_HOST:""),d=t(()=>o.value.replace("/data/","/rating-data/")),e=t(()=>window?window.DATA_REGION:"");export{a as A,O as B,A as C,o as D,c as G,d as R,r as T,I as X,T as a,e as b,i as c,_ as d,C as e};
@@ -1 +0,0 @@
1
- const t={button:{about:{t:0,b:{t:2,i:[{t:3}],s:"About"}},back:{t:0,b:{t:2,i:[{t:3}],s:"Back"}},go:{t:0,b:{t:2,i:[{t:3}],s:"GO"}},home:{t:0,b:{t:2,i:[{t:3}],s:"Home"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"Confirm"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Cancel"}},toggle_dark:{t:0,b:{t:2,i:[{t:3}],s:"Toggle dark mode"}},toggle_langs:{t:0,b:{t:2,i:[{t:3}],s:"Change languages"}}},intro:{desc:{t:0,b:{t:2,i:[{t:3}],s:"Opinionated Vite Starter Template"}},"dynamic-route":{t:0,b:{t:2,i:[{t:3}],s:"Demo of dynamic route"}},hi:{t:0,b:{t:2,i:[{t:3,v:"Hi, "},{t:4,k:"name"},{t:3,v:"!"}]}},aka:{t:0,b:{t:2,i:[{t:3}],s:"Also known as"}},"whats-your-name":{t:0,b:{t:2,i:[{t:3}],s:"What's your name?"}}},"not-found":{t:0,b:{t:2,i:[{t:3}],s:"Not found"}},common:{loading:{t:0,b:{t:2,i:[{t:3}],s:"Loading"}},colon:{t:0,b:{t:2,i:[{t:3}],s:":"}}},index:{start:{t:0,b:{t:2,i:[{t:3}],s:"StartTime"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Duration"}}},type_menu:{rank:{t:0,b:{t:2,i:[{t:3}],s:"Rank"}},overview:{t:0,b:{t:2,i:[{t:3}],s:"Overview"}},submissions:{t:0,b:{t:2,i:[{t:3}],s:"Submissions"}},statistics:{t:0,b:{t:2,i:[{t:3}],s:"Statistics"}},balloon:{t:0,b:{t:2,i:[{t:3}],s:"Balloon"}},resolver:{t:0,b:{t:2,i:[{t:3}],s:"Resolver"}},filter:{t:0,b:{t:2,i:[{t:3}],s:"Filter"}},options:{t:0,b:{t:2,i:[{t:3}],s:"Options"}},awards:{t:0,b:{t:2,i:[{t:3}],s:"Awards"}},utility:{t:0,b:{t:2,i:[{t:3}],s:"Utility"}},countdown:{t:0,b:{t:2,i:[{t:3}],s:"Countdown"}}},utility:{tools:{t:0,b:{t:2,i:[{t:3}],s:"Tools"}},export:{t:0,b:{t:2,i:[{t:3}],s:"Export"}}},standings:{start_time:{t:0,b:{t:2,i:[{t:3}],s:"Start"}},end_time:{t:0,b:{t:2,i:[{t:3}],s:"End"}},elapsed:{t:0,b:{t:2,i:[{t:3}],s:"Elapsed"}},remaining:{t:0,b:{t:2,i:[{t:3}],s:"Remaining"}},place:{t:0,b:{t:2,i:[{t:3}],s:"Place"}},team:{t:0,b:{t:2,i:[{t:3}],s:"Team"}},solved:{t:0,b:{t:2,i:[{t:3}],s:"Solved"}},penalty:{t:0,b:{t:2,i:[{t:3}],s:"Penalty"}},dirt:{t:0,b:{t:2,i:[{t:3}],s:"Dirt"}},se:{t:0,b:{t:2,i:[{t:3}],s:"SE"}},statistics:{submitted:{t:0,b:{t:2,i:[{t:3}],s:"Submitted"}},attempted:{t:0,b:{t:2,i:[{t:3}],s:"Attempted"}},accepted:{t:0,b:{t:2,i:[{t:3}],s:"Accepted"}},dirt:{t:0,b:{t:2,i:[{t:3}],s:"Dirt"}},se:{t:0,b:{t:2,i:[{t:3}],s:"SE"}},first_solved:{t:0,b:{t:2,i:[{t:3}],s:"First Solved"}},last_solved:{t:0,b:{t:2,i:[{t:3}],s:"Last Solved"}},head_data:{problems:{t:0,b:{t:2,i:[{t:3}],s:"Problems"}},teams:{t:0,b:{t:2,i:[{t:3}],s:"Teams"}},submissions:{t:0,b:{t:2,i:[{t:3}],s:"Submissions"}}},submit_heatmap:{t:0,b:{t:2,i:[{t:3}],s:"Submit Heatmap"}}},options:{calculation_of_penalty:{t:0,b:{t:2,i:[{t:3}],s:"Calculation Of Penalty"}},in_minutes:{t:0,b:{t:2,i:[{t:3}],s:"in minutes"}},in_seconds:{t:0,b:{t:2,i:[{t:3}],s:"in seconds"}},accumulate_in_seconds_and_finally_to_the_minute:{t:0,b:{t:2,i:[{t:3}],s:"Accumulate in seconds and finally to the minute"}}}},submissions:{total_submissions:{t:0,b:{t:2,i:[{t:3}],s:"Total Submissions"}}},team_info:{rank:{t:0,b:{t:2,i:[{t:3}],s:"Rank"}},team_name:{t:0,b:{t:2,i:[{t:3}],s:"Team Name"}},organization:{t:0,b:{t:2,i:[{t:3}],s:"Organization"}},group:{t:0,b:{t:2,i:[{t:3}],s:"Group"}},members:{t:0,b:{t:2,i:[{t:3}],s:"Members"}},coaches:{t:0,b:{t:2,i:[{t:3}],s:"Coaches"}},location:{t:0,b:{t:2,i:[{t:3}],s:"Location"}}}};export{t as default};
@@ -1 +0,0 @@
1
- import{_ as u}from"./Resolver-DYqdxinL.js";import{_ as l}from"./DataSourceInput.vue_vue_type_script_setup_true_lang-eUwkTVcq.js";import{b as d}from"./query-951tnQE0.js";import{d as f,c as e,o as t,F as h,q as c,h as r,b as v,a as n}from"./index-D_YfgkHi.js";import{b as a}from"./route-block-B_A1xBdJ.js";import{_ as k}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./rank-D0grINCt.js";import"./dayjs-BswMS1T6.js";import"./person-BqGZA5vO.js";import"./constant-CglMAQbu.js";import"./useQueryBoardData-Bo2tfx6C.js";import"./TheInput.vue_vue_type_script_setup_true_lang-BToUgLKT.js";import"./use-vmodel-B2gtAybe.js";const x={key:0},b={"mt-20":""},g={key:1},y=f({__name:"CustomResolver",setup(m){const o=d();return(s,B)=>{const i=l,p=u;return t(),e(h,null,[r(o).length===0?(t(),e("div",x,[v("div",b,[n(i)])])):c("",!0),r(o).length>0?(t(),e("div",g,[n(p,{"data-source-url":r(o)},null,8,["data-source-url"])])):c("",!0)],64)}}}),_={};function C(m,o){const s=y;return t(),e("div",null,[n(s)])}typeof a=="function"&&a(_);const w=k(_,[["render",C]]);export{w as default};
@@ -1 +0,0 @@
1
- import{_ as p}from"./Countdown-_PA1hqgx.js";import{_ as d}from"./DataSourceInput.vue_vue_type_script_setup_true_lang-eUwkTVcq.js";import{b as f}from"./query-951tnQE0.js";import{d as l,c as t,o as e,F as h,q as c,h as n,b as C,a as r}from"./index-D_YfgkHi.js";import{b as a}from"./route-block-B_A1xBdJ.js";import{_ as k}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./constant-CglMAQbu.js";import"./useQueryBoardData-Bo2tfx6C.js";import"./TheInput.vue_vue_type_script_setup_true_lang-BToUgLKT.js";import"./use-vmodel-B2gtAybe.js";import"./dayjs-BswMS1T6.js";const x={key:0},b={"mt-20":""},g={key:1},v=l({__name:"CustomCountdown",setup(m){const o=f();return(s,w)=>{const u=d,i=p;return e(),t(h,null,[n(o).length===0?(e(),t("div",x,[C("div",b,[r(u)])])):c("",!0),n(o).length>0?(e(),t("div",g,[r(i,{"data-source-url":n(o)},null,8,["data-source-url"])])):c("",!0)],64)}}}),_={};function y(m,o){const s=v;return e(),t("div",null,[r(s)])}typeof a=="function"&&a(_);const Q=k(_,[["render",y]]);export{Q as default};
@@ -1 +0,0 @@
1
- import{_ as u}from"./Balloon.vue_vue_type_script_setup_true_lang-DfbwZnd2.js";import{_ as l}from"./DataSourceInput.vue_vue_type_script_setup_true_lang-eUwkTVcq.js";import{b as d}from"./query-951tnQE0.js";import{d as f,c as t,o as e,F as h,q as s,h as r,b as B,a as n}from"./index-D_YfgkHi.js";import{b as c}from"./route-block-B_A1xBdJ.js";import{_ as k}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./constant-CglMAQbu.js";import"./rank-D0grINCt.js";import"./dayjs-BswMS1T6.js";import"./person-BqGZA5vO.js";import"./useQueryBoardData-Bo2tfx6C.js";import"./TheInput.vue_vue_type_script_setup_true_lang-BToUgLKT.js";import"./use-vmodel-B2gtAybe.js";const x={key:0},b={"mt-20":""},v={key:1},y=f({__name:"CustomBalloon",setup(_){const o=d();return(a,g)=>{const i=l,p=u;return e(),t(h,null,[r(o).length===0?(e(),t("div",x,[B("div",b,[n(i)])])):s("",!0),r(o).length>0?(e(),t("div",v,[n(p,{"data-source-url":r(o)},null,8,["data-source-url"])])):s("",!0)],64)}}}),m={};function C(_,o){const a=y;return e(),t("div",null,[n(a)])}typeof c=="function"&&c(m);const z=k(m,[["render",C]]);export{z as default};
@@ -1 +0,0 @@
1
- const t={button:{about:{t:0,b:{t:2,i:[{t:3}],s:"关于"}},back:{t:0,b:{t:2,i:[{t:3}],s:"返回"}},go:{t:0,b:{t:2,i:[{t:3}],s:"确定"}},home:{t:0,b:{t:2,i:[{t:3}],s:"首页"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"确认"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},toggle_dark:{t:0,b:{t:2,i:[{t:3}],s:"切换深色模式"}},toggle_langs:{t:0,b:{t:2,i:[{t:3}],s:"切换语言"}}},intro:{desc:{t:0,b:{t:2,i:[{t:3}],s:"固执己见的 Vite 项目模板"}},"dynamic-route":{t:0,b:{t:2,i:[{t:3}],s:"动态路由演示"}},hi:{t:0,b:{t:2,i:[{t:3,v:"你好,"},{t:4,k:"name"}]}},aka:{t:0,b:{t:2,i:[{t:3}],s:"也叫"}},"whats-your-name":{t:0,b:{t:2,i:[{t:3}],s:"输入你的名字"}}},"not-found":{t:0,b:{t:2,i:[{t:3}],s:"未找到页面"}},common:{loading:{t:0,b:{t:2,i:[{t:3}],s:"加载中"}},colon:{t:0,b:{t:2,i:[{t:3}],s:":"}}},index:{start:{t:0,b:{t:2,i:[{t:3}],s:"开始时间"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"持续时长"}}},type_menu:{rank:{t:0,b:{t:2,i:[{t:3}],s:"排名"}},overview:{t:0,b:{t:2,i:[{t:3}],s:"简介"}},submissions:{t:0,b:{t:2,i:[{t:3}],s:"提交"}},statistics:{t:0,b:{t:2,i:[{t:3}],s:"统计"}},balloon:{t:0,b:{t:2,i:[{t:3}],s:"气球"}},resolver:{t:0,b:{t:2,i:[{t:3}],s:"滚榜"}},filter:{t:0,b:{t:2,i:[{t:3}],s:"筛选"}},options:{t:0,b:{t:2,i:[{t:3}],s:"选项"}},awards:{t:0,b:{t:2,i:[{t:3}],s:"奖项"}},utility:{t:0,b:{t:2,i:[{t:3}],s:"工具"}},countdown:{t:0,b:{t:2,i:[{t:3}],s:"倒计时"}}},utility:{tools:{t:0,b:{t:2,i:[{t:3}],s:"工具集"}},export:{t:0,b:{t:2,i:[{t:3}],s:"导出"}}},standings:{start_time:{t:0,b:{t:2,i:[{t:3}],s:"开始时间"}},end_time:{t:0,b:{t:2,i:[{t:3}],s:"结束时间"}},elapsed:{t:0,b:{t:2,i:[{t:3}],s:"当前时间"}},remaining:{t:0,b:{t:2,i:[{t:3}],s:"剩余时间"}},place:{t:0,b:{t:2,i:[{t:3}],s:"Place"}},team:{t:0,b:{t:2,i:[{t:3}],s:"Team"}},solved:{t:0,b:{t:2,i:[{t:3}],s:"Solved"}},penalty:{t:0,b:{t:2,i:[{t:3}],s:"Penalty"}},dirt:{t:0,b:{t:2,i:[{t:3}],s:"Dirt"}},se:{t:0,b:{t:2,i:[{t:3}],s:"SE"}},statistics:{submitted:{t:0,b:{t:2,i:[{t:3}],s:"Submitted"}},attempted:{t:0,b:{t:2,i:[{t:3}],s:"Attempted"}},accepted:{t:0,b:{t:2,i:[{t:3}],s:"Accepted"}},dirt:{t:0,b:{t:2,i:[{t:3}],s:"Dirt"}},se:{t:0,b:{t:2,i:[{t:3}],s:"SE"}},first_solved:{t:0,b:{t:2,i:[{t:3}],s:"First Solved"}},last_solved:{t:0,b:{t:2,i:[{t:3}],s:"Last Solved"}},head_data:{problems:{t:0,b:{t:2,i:[{t:3}],s:"题目数"}},teams:{t:0,b:{t:2,i:[{t:3}],s:"队伍数"}},submissions:{t:0,b:{t:2,i:[{t:3}],s:"提交数"}}},submit_heatmap:{t:0,b:{t:2,i:[{t:3}],s:"提交热力图"}}},options:{calculation_of_penalty:{t:0,b:{t:2,i:[{t:3}],s:"罚时计算方式"}},in_minutes:{t:0,b:{t:2,i:[{t:3}],s:"精确到分钟进行累加"}},in_seconds:{t:0,b:{t:2,i:[{t:3}],s:"精确到秒进行累加"}},accumulate_in_seconds_and_finally_to_the_minute:{t:0,b:{t:2,i:[{t:3}],s:"精确到秒进行累加,最后精确到分钟"}}}},submissions:{total_submissions:{t:0,b:{t:2,i:[{t:3}],s:"总提交数"}}},team_info:{rank:{t:0,b:{t:2,i:[{t:3}],s:"排名"}},team_name:{t:0,b:{t:2,i:[{t:3}],s:"队名"}},organization:{t:0,b:{t:2,i:[{t:3}],s:"组织"}},group:{t:0,b:{t:2,i:[{t:3}],s:"组别"}},members:{t:0,b:{t:2,i:[{t:3}],s:"队员"}},coaches:{t:0,b:{t:2,i:[{t:3}],s:"教练"}},location:{t:0,b:{t:2,i:[{t:3}],s:"位置"}}}};export{t as default};