@xcpcio/board-app 0.78.7 → 0.79.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.
- package/dist/404.html +1 -1
- package/dist/assets/{Balloon.vue_vue_type_script_setup_true_lang-BYv4sSXI.js → Balloon.vue_vue_type_script_setup_true_lang-B00Gx9xy.js} +1 -1
- package/dist/assets/{Board-Ct8NIezO.js → Board-9UdVtYkM.js} +28 -28
- package/dist/assets/{Board-DvrHjMvX.css → Board-DyNUqHQ1.css} +1 -1
- package/dist/assets/ContestStateBadge-CYj8MSKF.js +1 -0
- package/dist/assets/{Countdown-B-5pbR1J.js → Countdown-DE3dAUV0.js} +1 -1
- package/dist/assets/{DataSourceInput.vue_vue_type_script_setup_true_lang-DDx6X5NO.js → DataSourceInput.vue_vue_type_script_setup_true_lang-bUMTraXc.js} +1 -1
- package/dist/assets/{NavBar-CvFc1sKB.js → NavBar-ClC2q8Kv.js} +1 -1
- package/dist/assets/{Resolver-C7LjZEK_.js → Resolver-C6d7ETsf.js} +1 -1
- package/dist/assets/{RightArrowIcon-DysHIFjb.js → RightArrowIcon-G5YvRZ0T.js} +1 -1
- package/dist/assets/TheInput.vue_vue_type_script_setup_true_lang-CSPfD74Q.js +1 -0
- package/dist/assets/{Tooltip.vue_vue_type_script_setup_true_lang-CgVLOGkF.js → Tooltip.vue_vue_type_script_setup_true_lang-B8kySxg3.js} +1 -1
- package/dist/assets/{_...all_-B1UckaJq.js → _...all_-B7gP5OWR.js} +1 -1
- package/dist/assets/{_...all_-CoZ_DKa3.js → _...all_-BW06ZKnK.js} +1 -1
- package/dist/assets/{board-layout-DKZAkzNn.js → board-layout-DVpKaNDH.js} +1 -1
- package/dist/assets/constant-CD_aNnBa.js +1 -0
- package/dist/assets/{dayjs-Czv7I8qo.js → dayjs-CfxKyPst.js} +1 -1
- package/dist/assets/default-DdjpF8Uq.js +1 -0
- package/dist/assets/{en-hjY7qlkM.js → en-Bst-_xHy.js} +1 -1
- package/dist/assets/{headless-J8oLcDX7.js → headless-CbC-9Lhi.js} +1 -1
- package/dist/assets/{index-Cmb9jb6j.js → index--VvlqRge.js} +1 -1
- package/dist/assets/{index-BnD-3E1r.css → index-3SyI24FC.css} +1 -1
- package/dist/assets/index-B-o1SaFB.js +1 -0
- package/dist/assets/{index-CSOLUjab.js → index-B98VaFMW.js} +1 -1
- package/dist/assets/{index-DHAbxriO.js → index-CQUENpIa.js} +3 -3
- package/dist/assets/index-DpYR2IKr.js +1 -0
- package/dist/assets/{index-DBibl2XB.js → index-Dx4lW11i.js} +1 -1
- package/dist/assets/{index-By_Wvz69.js → index-XI1JLot1.js} +1 -1
- package/dist/assets/{index-layout-C7nR6Mii.js → index-layout-BnuSwbrp.js} +1 -1
- package/dist/assets/{pagination-BaUgYYU0.js → pagination-D2j0VKWA.js} +1 -1
- package/dist/assets/{person-CiWEX8YD.js → person-DnUqF1hd.js} +1 -1
- package/dist/assets/rank-8trCh7ZE.js +1 -0
- package/dist/assets/{use-vmodel-DGXB7G3O.js → use-vmodel-D00zHSe_.js} +6 -6
- package/dist/assets/{zh-CN-C9a78y95.js → zh-CN-CkLmVKF-.js} +1 -1
- package/dist/index.html +1 -1
- package/package.json +3 -3
- package/src/components/board/BottomStatistics.vue +0 -4
- package/src/components/board/Standings.vue +1 -8
- package/src/components/board/TeamUI.vue +23 -14
- package/src/composables/useQueryBoardData.ts +34 -11
- package/dist/assets/ContestStateBadge-D5OSWWnX.js +0 -1
- package/dist/assets/TheInput.vue_vue_type_script_setup_true_lang-Chh9_j1N.js +0 -1
- package/dist/assets/constant-B8FME2MI.js +0 -1
- package/dist/assets/default-D8wrCQrJ.js +0 -1
- package/dist/assets/index-CBF3jiuu.js +0 -1
- package/dist/assets/index-DCOVM4HU.js +0 -1
- package/dist/assets/rank-CCfIZ8Uq.js +0 -1
|
@@ -1 +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:"统计"}},streams:{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:"倒计时"}}},streams:{webcam:{t:0,b:{t:2,i:[{t:3}],s:"摄像头"}},screen:{t:0,b:{t:2,i:[{t:3}],s:"屏幕"}},unavailable:{t:0,b:{t:2,i:[{t:3}],s:"直播不可用"}},layout:{side_by_side:{t:0,b:{t:2,i:[{t:3}],s:"并排"}},pip:{t:0,b:{t:2,i:[{t:3}],s:"画中画"}}},pip:{main:{t:0,b:{t:2,i:[{t:3}],s:"主画面"}},position:{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:"题目数"}},organizations:{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};
|
|
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:"统计"}},streams:{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:"倒计时"}}},streams:{webcam:{t:0,b:{t:2,i:[{t:3}],s:"摄像头"}},screen:{t:0,b:{t:2,i:[{t:3}],s:"屏幕"}},unavailable:{t:0,b:{t:2,i:[{t:3}],s:"直播不可用"}},layout:{side_by_side:{t:0,b:{t:2,i:[{t:3}],s:"并排"}},pip:{t:0,b:{t:2,i:[{t:3}],s:"画中画"}}},pip:{main:{t:0,b:{t:2,i:[{t:3}],s:"主画面"}},position:{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"}},organization:{t:0,b:{t:2,i:[{t:3}],s:"Organization"}},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:"题目数"}},organizations:{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.
|
|
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.79.0/dist/favicon.svg" type="image/svg+xml"/><link rel="mask-icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.79.0/dist/balloon-512x512.svg" color="#00aba9"/><link rel="apple-touch-icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.79.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.79.0/dist";_=normalizePath(_),window.CDN_HOST=_,window.__toAssetUrl=_=>window.CDN_HOST+_}try{let _=__BASE_URL__;window.BASE_URL=_}catch(_){}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"}try{window.REFETCH_INTERVAL=Number(__REFETCH_INTERVAL__)}catch(_){window.REFETCH_INTERVAL=15e3}</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.79.0/dist/assets/index-CQUENpIa.js"></script><link rel="stylesheet" crossorigin href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.79.0/dist/assets/index-3SyI24FC.css"></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/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xcpcio/board-app",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.79.0",
|
|
5
5
|
"description": "The ICPC Series Competition Leaderboard Visualization Engine",
|
|
6
6
|
"author": "Dup4 <hi@dup4.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
"vue-router": "^4.6.4",
|
|
55
55
|
"vue-search-select": "^3.2.0",
|
|
56
56
|
"vue-toast-notification": "^3.1.3",
|
|
57
|
-
"@xcpcio/core": "0.
|
|
58
|
-
"@xcpcio/types": "0.
|
|
57
|
+
"@xcpcio/core": "0.79.0",
|
|
58
|
+
"@xcpcio/types": "0.79.0"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@iconify/json": "^2.2.427",
|
|
@@ -166,19 +166,12 @@ const maxTeamLength = computed(() => {
|
|
|
166
166
|
>
|
|
167
167
|
{{ t("standings.place") }}
|
|
168
168
|
</th>
|
|
169
|
-
<th
|
|
170
|
-
v-if="rank.contest.badge"
|
|
171
|
-
class="title"
|
|
172
|
-
style="width: 2.5rem;"
|
|
173
|
-
>
|
|
174
|
-
{{ rank.contest.badge }}
|
|
175
|
-
</th>
|
|
176
169
|
<th
|
|
177
170
|
v-if="rank.contest.organization"
|
|
178
171
|
class="title"
|
|
179
172
|
:style="{ width: `${Math.min(32, Math.ceil(maxOrgLength * 1.1))}rem` }"
|
|
180
173
|
>
|
|
181
|
-
{{
|
|
174
|
+
{{ t("standings.organization") }}
|
|
182
175
|
</th>
|
|
183
176
|
<th
|
|
184
177
|
class="title"
|
|
@@ -88,22 +88,21 @@ function isRenderByVisible() {
|
|
|
88
88
|
>
|
|
89
89
|
{{ team.rank }}
|
|
90
90
|
</td>
|
|
91
|
-
<td
|
|
92
|
-
v-if="rank.contest.badge && team.badge && isRenderByVisible()"
|
|
93
|
-
class="empty flex items-center justify-center"
|
|
94
|
-
style="padding: 0px !important; margin: 0px !important;"
|
|
95
|
-
>
|
|
96
|
-
<Badge
|
|
97
|
-
:image="team.badge"
|
|
98
|
-
width-class="w-full h-full"
|
|
99
|
-
/>
|
|
100
|
-
</td>
|
|
101
91
|
<td
|
|
102
92
|
v-if="rank.contest.organization && isRenderByVisible()"
|
|
103
|
-
class="stnd"
|
|
93
|
+
class="stnd relative"
|
|
104
94
|
:class="[getStandClassName(team)]"
|
|
105
95
|
>
|
|
106
|
-
<div
|
|
96
|
+
<div
|
|
97
|
+
v-if="team?.organization?.logo"
|
|
98
|
+
class="absolute left-0 top-0 bottom-0 flex items-center px-1"
|
|
99
|
+
>
|
|
100
|
+
<Badge
|
|
101
|
+
:image="team?.organization?.logo"
|
|
102
|
+
width-class="h-full w-auto"
|
|
103
|
+
/>
|
|
104
|
+
</div>
|
|
105
|
+
<div flex flex-1 :class="team?.organization?.logo ? 'pl-10' : ''">
|
|
107
106
|
<div
|
|
108
107
|
float-left pl-2
|
|
109
108
|
>
|
|
@@ -124,11 +123,21 @@ function isRenderByVisible() {
|
|
|
124
123
|
|
|
125
124
|
<td
|
|
126
125
|
v-if="isRenderByVisible()"
|
|
127
|
-
class="stnd"
|
|
126
|
+
class="stnd relative"
|
|
128
127
|
:class="[getStandClassName(team)]"
|
|
129
128
|
>
|
|
130
129
|
<div
|
|
131
|
-
|
|
130
|
+
v-if="team.badge"
|
|
131
|
+
class="absolute left-0 top-0 bottom-0 flex items-center px-1"
|
|
132
|
+
>
|
|
133
|
+
<Badge
|
|
134
|
+
:image="team.badge"
|
|
135
|
+
width-class="h-full w-auto"
|
|
136
|
+
/>
|
|
137
|
+
</div>
|
|
138
|
+
<div
|
|
139
|
+
flex items-center justify-center cursor-pointer
|
|
140
|
+
:class="team.badge ? 'pl-10' : ''"
|
|
132
141
|
@click="onClickTeamModal"
|
|
133
142
|
>
|
|
134
143
|
<span>{{ teamName }}</span>
|
|
@@ -7,6 +7,27 @@ export interface BoardData {
|
|
|
7
7
|
submissions: Submissions;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
function isDataItem(obj: unknown): obj is { url: string } {
|
|
11
|
+
return obj !== null && typeof obj === "object" && "url" in obj;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async function fetchAndAssignOrganizations(contest: Contest, baseUrl: string): Promise<void> {
|
|
15
|
+
if (!contest?.organizations || !isDataItem(contest.organizations)) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const { url } = contest.organizations;
|
|
20
|
+
let fetchUrl = url;
|
|
21
|
+
if (!url.startsWith("http")) {
|
|
22
|
+
fetchUrl = `${baseUrl}/${url}`;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const orgRes = await fetch(fetchUrl);
|
|
26
|
+
if (orgRes.ok) {
|
|
27
|
+
contest.organizations = await orgRes.json();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
10
31
|
async function fetch_board_data(target: string): Promise<BoardData> {
|
|
11
32
|
const endpoint = target.startsWith("/") ? target.slice(1) : target;
|
|
12
33
|
let prefix = `${window.DATA_HOST}${endpoint}`;
|
|
@@ -36,21 +57,23 @@ async function fetch_board_data(target: string): Promise<BoardData> {
|
|
|
36
57
|
];
|
|
37
58
|
|
|
38
59
|
const { status, statusText } = res[0];
|
|
39
|
-
if (status >=
|
|
60
|
+
if (status >= 400 || status < 200) {
|
|
40
61
|
throw new Error(`fetch data failed. [status=${status}] [statusText=${statusText}]`);
|
|
41
62
|
}
|
|
42
63
|
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
};
|
|
51
|
-
});
|
|
64
|
+
const jsonData = await Promise.all(res.map(r => r.json()));
|
|
65
|
+
if (options.allInOne) {
|
|
66
|
+
return jsonData[0];
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const contest = jsonData[0];
|
|
70
|
+
await fetchAndAssignOrganizations(contest, prefix);
|
|
52
71
|
|
|
53
|
-
return
|
|
72
|
+
return {
|
|
73
|
+
contest,
|
|
74
|
+
teams: jsonData[1],
|
|
75
|
+
submissions: jsonData[2],
|
|
76
|
+
};
|
|
54
77
|
}
|
|
55
78
|
|
|
56
79
|
export function useQueryBoardData(target: string, queryOnce = false) {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as u,k as A}from"./use-vmodel-DGXB7G3O.js";import{e as F,h as B,m as r,U as G,D as V,c as v,o as h,b as c,I,n as D,u as x,q as E,F as X,t as k}from"./index-DHAbxriO.js";import{c as j,g as q}from"./dayjs-Czv7I8qo.js";import{_ as C}from"./_plugin-vue_export-helper-DlAUqK2U.js";function H(e){for(;e.endsWith("/");)e=e.slice(0,-1);return`${e}/`}function re(e,t){return e?.url?!t||e.url.startsWith("http")||e.url.startsWith("/")?e.url:`${H(t)}${e.url}`:e?.base64?`data:image/${e.type??"png"};base64,${e.base64}`:""}const J=F({__name:"Progress",props:{width:null,state:null,needScroll:{type:Boolean},rank:null,rankOptions:null,elapsedTime:null},emits:["update:rank-options"],setup(e,{emit:t}){const s=e,M=t,g=B({get(){return s.rankOptions},set(l){M("update:rank-options",l)}}),N=B(()=>{switch(s.state){case u.PENDING:return"am-progress-bar-secondary";case u.RUNNING:return"am-progress-bar-success";case u.FROZEN:return"am-progress-bar-danger";case u.FINISHED:return"am-progress-bar-primary";case u.PAUSED:return"am-progress-bar-danger"}return""}),n=r(!1),S=r(!1),m=r(0),_=r(s.width),T=r(0),d=A(),o=r(null),L=r(null),p=r(null),W=r(null),U=r(null);function z(l){S.value=!0;const f=l.clientX-p.value.offsetLeft,b=w=>{if(!S.value)return;n.value=!0;let a=w.clientX-f;a=Math.max(a,0),a=Math.min(a,o.value.offsetWidth-p.value.offsetWidth);const $=o.value.offsetWidth*Number.parseInt(L.value.style?.width)*.01;a>=$&&(a=$,n.value=!1);let i=0;a>0&&(i=Math.round((a+p.value.offsetWidth)/o.value.offsetWidth*1e4)),i>1e4&&(i=1e4),i===1e4&&(n.value=!1),window.getSelection()?.removeAllRanges(),m.value=i,T.value=a,_.value=i*.01},y=()=>{document.removeEventListener("mouseup",y),document.removeEventListener("mousemove",b),S.value=!1,n.value===!0?(d.value=m.value,g.value?.setWidth(m.value,s.rank.contest)):(d.value=void 0,g.value?.disableFilterSubmissionByTimestamp())};document.addEventListener("mousemove",b),document.addEventListener("mouseup",y)}function R(){const l=s.rank.contest.getStartTime(),f=s.rank.contest.getEndTime(),b=f.unix()-l.unix(),y=Math.floor(b*_.value*.01),w=j(),a=Math.max(0,Math.min(w.unix(),f.unix())-l.unix());return q(Math.min(y,a))}function O(){return n.value===!0?R():s.elapsedTime}function P(){return n.value===!0?`${Math.max(0,T.value)}px`:`max(calc(0%), min(calc(${s.width}%), calc(100% - 10px)))`}return G(()=>{s.needScroll===!0&&(o.value.onmouseenter=()=>{W.value.classList.add("in")},o.value.onmouseleave=()=>{W.value.classList.remove("in")}),d.value!==-1?(n.value=!0,m.value=Math.max(0,Math.min(1e4,d.value)),_.value=m.value*.01,T.value=_.value*.01*o.value.offsetWidth-p.value.offsetWidth,g.value?.setWidth(d.value,s.rank.contest)):g.value?.disableFilterSubmissionByTimestamp()}),V(()=>{}),(l,f)=>(h(),v("div",{ref_key:"scroll",ref:o,class:"am-progress am-progress-striped am-active","w-full":"",style:{position:"relative"}},[c("div",{ref_key:"mask",ref:L,class:D(["am-progress-bar",[x(N)]]),style:I({width:`${s.width}%`})},[s.needScroll?(h(),v(X,{key:0},[c("div",{ref_key:"tooltip",ref:W,class:"tooltip tooltip-top",style:I({marginLeft:"-32px",bottom:"22px",left:P()})},[c("div",{ref_key:"tooltipInner",ref:U,class:"tooltip-inner"},k(O()),513)],4),c("div",{ref_key:"bar",ref:p,class:D(["am-progress-bar am-progress-cursor am-progress-scroll-size z-99",[x(N)]]),style:I({left:P()}),onMousedown:z},null,38)],64)):E("",!0)],6)],512))}}),ne=C(J,[["__scopeId","data-v-4607820e"]]),Q={flex:"","flex-row":"","items-center":"","justify-center":""},Z={key:0,"ml-2":""},K={key:1,"ml-2":""},Y=F({__name:"ContestStateBadge",props:{state:null,pendingTime:null,pausedTime:null},setup(e){const t=e;return(s,M)=>(h(),v("div",Q,[c("div",{class:D(["label",t.state])},null,2),c("div",null,k(t.state),1),t.pendingTime&&t.state===x(u).PENDING?(h(),v("div",Z,k(t.pendingTime),1)):E("",!0),t.pausedTime&&t.state===x(u).PAUSED?(h(),v("div",K,k(t.pausedTime),1)):E("",!0)]))}}),oe=C(Y,[["__scopeId","data-v-68586c4d"]]);export{oe as _,ne as a,re as g};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a3 as W,a4 as F,a5 as p,a6 as Q,a7 as O,a8 as B,a9 as k,aa as j,ab as z,ac as I,ad as H,ae as K,af as M,ag as N,ah as G,ai as J,aj as X,h as Y,ak as Z,al as q,am as tt,C as x,an as A,ao as et,ap as L,aq as st,ar as it,as as nt,e as at,v as rt,at as ot,u as ht,c as lt,o as ut,y as ct,z as dt}from"./index-DHAbxriO.js";import{_ as ft}from"./use-vmodel-DGXB7G3O.js";var pt=class extends W{constructor(t,e){super(),this.options=e,this.#s=t,this.#n=null,this.#i=F(),this.bindMethods(),this.setOptions(e)}#s;#t=void 0;#p=void 0;#e=void 0;#r;#u;#i;#n;#v;#c;#d;#o;#h;#a;#f=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),V(this.#t,this.options)?this.#l():this.updateResult(),this.#R())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return _(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return _(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#g(),this.#O(),this.#t.removeObserver(this)}setOptions(t){const e=this.options,s=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 p(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&&!Q(this.options,e)&&this.#s.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#t,observer:this});const n=this.hasListeners();n&&$(this.#t,s,this.options,e)&&this.#l(),this.updateResult(),n&&(this.#t!==s||p(this.options.enabled,this.#t)!==p(e.enabled,this.#t)||O(this.options.staleTime,this.#t)!==O(e.staleTime,this.#t))&&this.#b();const i=this.#m();n&&(this.#t!==s||p(this.options.enabled,this.#t)!==p(e.enabled,this.#t)||i!==this.#a)&&this.#y(i)}getOptimisticResult(t){const e=this.#s.getQueryCache().build(this.#s,t),s=this.createResult(e,t);return bt(this,s)&&(this.#e=s,this.#u=this.options,this.#r=this.#t.state),s}getCurrentResult(){return this.#e}trackResult(t,e){return new Proxy(t,{get:(s,n)=>(this.trackProp(n),e?.(n),n==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&this.#i.status==="pending"&&this.#i.reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(s,n))})}trackProp(t){this.#f.add(t)}getCurrentQuery(){return this.#t}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const e=this.#s.defaultQueryOptions(t),s=this.#s.getQueryCache().build(this.#s,e);return s.fetch().then(()=>this.createResult(s,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(B)),e}#b(){this.#g();const t=O(this.options.staleTime,this.#t);if(k||this.#e.isStale||!j(t))return;const s=z(this.#e.dataUpdatedAt,t)+1;this.#o=I.setTimeout(()=>{this.#e.isStale||this.updateResult()},s)}#m(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#y(t){this.#O(),this.#a=t,!(k||p(this.options.enabled,this.#t)===!1||!j(this.#a)||this.#a===0)&&(this.#h=I.setInterval(()=>{(this.options.refetchIntervalInBackground||H.isFocused())&&this.#l()},this.#a))}#R(){this.#b(),this.#y(this.#m())}#g(){this.#o&&(I.clearTimeout(this.#o),this.#o=void 0)}#O(){this.#h&&(I.clearInterval(this.#h),this.#h=void 0)}createResult(t,e){const s=this.#t,n=this.options,i=this.#e,a=this.#r,l=this.#u,u=t!==s?t.state:this.#p,{state:w}=t;let h={...w},C=!1,o;if(e._optimisticResults){const d=this.hasListeners(),S=!d&&V(t,e),R=d&&$(t,s,e,n);(S||R)&&(h={...h,...K(w.data,t.options)}),e._optimisticResults==="isRestoring"&&(h.fetchStatus="idle")}let{error:r,errorUpdatedAt:f,status:c}=h;o=h.data;let g=!1;if(e.placeholderData!==void 0&&o===void 0&&c==="pending"){let d;i?.isPlaceholderData&&e.placeholderData===l?.placeholderData?(d=i.data,g=!0):d=typeof e.placeholderData=="function"?e.placeholderData(this.#d?.state.data,this.#d):e.placeholderData,d!==void 0&&(c="success",o=M(i?.data,d,e),C=!0)}if(e.select&&o!==void 0&&!g)if(i&&o===a?.data&&e.select===this.#v)o=this.#c;else try{this.#v=e.select,o=e.select(o),o=M(i?.data,o,e),this.#c=o,this.#n=null}catch(d){this.#n=d}this.#n&&(r=this.#n,o=this.#c,f=Date.now(),c="error");const m=h.fetchStatus==="fetching",y=c==="pending",E=c==="error",U=y&&m,P=o!==void 0,v={status:c,fetchStatus:h.fetchStatus,isPending:y,isSuccess:c==="success",isError:E,isInitialLoading:U,isLoading:U,data:o,dataUpdatedAt:h.dataUpdatedAt,error:r,errorUpdatedAt:f,failureCount:h.fetchFailureCount,failureReason:h.fetchFailureReason,errorUpdateCount:h.errorUpdateCount,isFetched:h.dataUpdateCount>0||h.errorUpdateCount>0,isFetchedAfterMount:h.dataUpdateCount>u.dataUpdateCount||h.errorUpdateCount>u.errorUpdateCount,isFetching:m,isRefetching:m&&!y,isLoadingError:E&&!P,isPaused:h.fetchStatus==="paused",isPlaceholderData:C,isRefetchError:E&&P,isStale:D(t,e),refetch:this.refetch,promise:this.#i,isEnabled:p(e.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const d=T=>{v.status==="error"?T.reject(v.error):v.data!==void 0&&T.resolve(v.data)},S=()=>{const T=this.#i=v.promise=F();d(T)},R=this.#i;switch(R.status){case"pending":t.queryHash===s.queryHash&&d(R);break;case"fulfilled":(v.status==="error"||v.data!==R.value)&&S();break;case"rejected":(v.status!=="error"||v.error!==R.reason)&&S();break}}return v}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),Q(e,t))return;this.#e=e;const s=()=>{if(!t)return!0;const{notifyOnChangeProps:n}=this.options,i=typeof n=="function"?n():n;if(i==="all"||!i&&!this.#f.size)return!0;const a=new Set(i??this.#f);return this.options.throwOnError&&a.add("error"),Object.keys(this.#e).some(l=>{const b=l;return this.#e[b]!==t[b]&&a.has(b)})};this.#C({listeners:s()})}#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.#R()}#C(t){N.batch(()=>{t.listeners&&this.listeners.forEach(e=>{e(this.#e)}),this.#s.getQueryCache().notify({query:this.#t,type:"observerResultsUpdated"})})}};function vt(t,e){return p(e.enabled,t)!==!1&&t.state.data===void 0&&!(t.state.status==="error"&&e.retryOnMount===!1)}function V(t,e){return vt(t,e)||t.state.data!==void 0&&_(t,e,e.refetchOnMount)}function _(t,e,s){if(p(e.enabled,t)!==!1&&O(e.staleTime,t)!=="static"){const n=typeof s=="function"?s(t):s;return n==="always"||n!==!1&&D(t,e)}return!1}function $(t,e,s,n){return(t!==e||p(n.enabled,t)===!1)&&(!s.suspense||t.state.status!=="error")&&D(t,s)}function D(t,e){return p(e.enabled,t)!==!1&&t.isStaleByTime(O(e.staleTime,t))}function bt(t,e){return!Q(t.getCurrentResult(),e)}function mt(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),s=J(e);if(!s)throw new Error("No 'queryClient' found in Vue context, use 'VueQueryPlugin' to properly initialize the library.");return s}function yt(t,e,s){const n=mt(),i=Y(()=>{let r=e;typeof r=="function"&&(r=r());const f=Z(r);typeof f.enabled=="function"&&(f.enabled=f.enabled());const c=n.defaultQueryOptions(f);return c._optimisticResults=n.isRestoring?.value?"isRestoring":"optimistic",c}),a=new t(n,i.value),l=i.value.shallow?q(a.getCurrentResult()):tt(a.getCurrentResult());let b=()=>{};n.isRestoring&&x(n.isRestoring,r=>{r||(b(),b=a.subscribe(f=>{A(l,f)}))},{immediate:!0});const u=()=>{a.setOptions(i.value),A(l,a.getCurrentResult())};x(i,u),et(()=>{b()});const w=(...r)=>(u(),l.refetch(...r)),h=()=>new Promise((r,f)=>{let c=()=>{};const g=()=>{if(i.value.enabled!==!1){a.setOptions(i.value);const m=a.getOptimisticResult(i.value);m.isStale?(c(),a.fetchOptimistic(i.value).then(r,y=>{L(i.value.throwOnError,[y,a.getCurrentQuery()])?f(y):r(a.getCurrentResult())})):(c(),r(m))}};g(),c=x(i,g)});x(()=>l.error,r=>{if(l.isError&&!l.isFetching&&L(i.value.throwOnError,[r,a.getCurrentQuery()]))throw r});const C=i.value.shallow?st(l):it(l),o=nt(C);for(const r in l)typeof l[r]=="function"&&(o[r]=l[r]);return o.suspense=h,o.refetch=w,o}function Rt(t,e){return yt(pt,t)}async function gt(t){const e=t.startsWith("/")?t.slice(1):t;let s=`${window.DATA_HOST}${e}`;const n={allInOne:!1};if(s.includes("#")){const u=new URLSearchParams(s.split("#")[1]);n.allInOne=u.get("allInOne")==="true",s=s.split("#")[0]}t.startsWith("http")&&(s=t),s.endsWith("/")&&(s=s.slice(0,-1));const i=n.allInOne?[await fetch(s)]:[await fetch(`${s}/config.json`),await fetch(`${s}/team.json`),await fetch(`${s}/run.json`)],{status:a,statusText:l}=i[0];if(a>=300||a<200)throw new Error(`fetch data failed. [status=${a}] [statusText=${l}]`);return Promise.all(i.map(u=>u.json())).then(u=>n.allInOne?u[0]:{contest:u[0],teams:u[1],submissions:u[2]})}function Tt(t,e=!1){let i=window.REFETCH_INTERVAL;return e&&(i=!1),Rt({queryKey:[t],queryFn:()=>gt(t),retry:3,staleTime:3e4,refetchInterval:i})}const Ot=["type","text"],It=at({__name:"TheInput",props:{textAlign:null,textType:null,modelValue:null},emits:["update:modelValue"],setup(t){const e=t,{modelValue:s}=ft("modelValue");return(n,i)=>rt((ut(),lt("input",ct({id:"input","onUpdate:modelValue":i[0]||(i[0]=a=>dt(s)?s.value=a:null)},n.$attrs,{type:e.textType??"text",text:e.textAlign??"center",p:"x-4 y-2","w-full":"",bg:"transparent",border:"~ rounded gray-200 dark:gray-700",outline:"none active:none"}),null,16,Ot)),[[ot,ht(s)]])}});export{It as _,Tt as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as t}from"./index-DHAbxriO.js";const a="0.78.7",T="https://github.com/xcpcio/xcpcio",c="f072f6dba2",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,T as G,d as R,r as T,I as X,c as a,e as b,i as c,_ as d,C as e};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as r,a}from"./NavBar-CvFc1sKB.js";import{_}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{c,o as s,a as o,b as m,r as p,F as i}from"./index-DHAbxriO.js";import"./Tooltip.vue_vue_type_script_setup_true_lang-CgVLOGkF.js";import"./constant-B8FME2MI.js";const u={},l={"py-10":"","text-gray-700":"","dark:text-gray-200":""};function f(d,g){const e=r,t=p("RouterView"),n=a;return s(),c(i,null,[o(e),m("main",l,[o(t),o(n)])],64)}const F=_(u,[["render",f]]);export{F as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as p}from"./Resolver-C7LjZEK_.js";import{_ as l}from"./DataSourceInput.vue_vue_type_script_setup_true_lang-DDx6X5NO.js";import{b as d}from"./use-vmodel-DGXB7G3O.js";import{e as f,c as e,o as t,F as h,q as c,u as r,b as v,a as n}from"./index-DHAbxriO.js";import{b as a}from"./route-block-B_A1xBdJ.js";import{_ as k}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./rank-CCfIZ8Uq.js";import"./dayjs-Czv7I8qo.js";import"./person-CiWEX8YD.js";import"./constant-B8FME2MI.js";import"./TheInput.vue_vue_type_script_setup_true_lang-Chh9_j1N.js";const x={key:0},b={"mt-20":""},g={key:1},y=f({__name:"CustomResolver",setup(m){const o=d();return(s,B)=>{const u=l,i=p;return t(),e(h,null,[r(o).length===0?(t(),e("div",x,[v("div",b,[n(u)])])):c("",!0),r(o).length>0?(t(),e("div",g,[n(i,{"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 Q=k(_,[["render",C]]);export{Q as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as u}from"./Board-Ct8NIezO.js";import{_ as i}from"./DataSourceInput.vue_vue_type_script_setup_true_lang-DDx6X5NO.js";import{b as f}from"./use-vmodel-DGXB7G3O.js";import{e as l,c as e,o as t,a as n,q as d,u as a,F as B,G as k}from"./index-DHAbxriO.js";import{b as c}from"./route-block-B_A1xBdJ.js";import{_ as x}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./pagination-BaUgYYU0.js";import"./Tooltip.vue_vue_type_script_setup_true_lang-CgVLOGkF.js";import"./TheInput.vue_vue_type_script_setup_true_lang-Chh9_j1N.js";import"./rank-CCfIZ8Uq.js";import"./dayjs-Czv7I8qo.js";import"./person-CiWEX8YD.js";import"./ContestStateBadge-D5OSWWnX.js";import"./constant-B8FME2MI.js";const h={key:0},C=l({__name:"CustomBoard",setup(m){const o=f();return(r,g)=>{const _=i,p=u;return t(),e(B,null,[n(_),a(o).length>0?(t(),e("div",h,[n(p,{"data-source-url":a(o)},null,8,["data-source-url"])])):d("",!0)],64)}}}),s={};function b(m,o){const r=C;return t(),k(r)}typeof c=="function"&&c(s);const j=x(s,[["render",b]]);export{j as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as q,d as p,P as J,T as Q,M as T,A as R}from"./use-vmodel-DGXB7G3O.js";import{I as _}from"./dayjs-Czv7I8qo.js";import{c as D}from"./person-CiWEX8YD.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 Dt={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"},Ct={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 tt(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 et(e){return[r.ACCEPTED,r.CORRECT].includes(e)}function it(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 st(e){return[r.PENDING,r.WAITING,r.COMPILING,r.JUDGING,r.FROZEN].includes(e)}function nt(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 et(this.status)}isRejected(){return it(this.status)}isPending(){return st(this.status)}isNotCalculatedPenaltyStatus(){return nt(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 M(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=tt(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&&!e.missing_reaction&&(i.reaction={url:t.options.reactionVideoUrlTemplate.replace(/\$\{submission_id\}/,i.id)}),t?.options.submissionExternalUrlTemplate&&(i.externalUrl=t.options.submissionExternalUrlTemplate.replace(/\$\{submission_id\}/,i.id)),i}function Pt(e,t){return Array.isArray(e)?e.map((i,s)=>M({...i,id:i.id??i.submission_id??String(s)},t)):Object.entries(e).map(([s,n])=>M({...n,id:n.id??n.submission_id??String(s)},t))}class f{constructor(){this.id="",this.name=new _,this.isFirstRankOfOrganization=!1,this.group=[],this.tag=[],this.coaches=[],this.members=[],this.rank=0,this.originalRank=0,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.isFirstRankOfOrganization=!1,this.rank=0,this.originalRank=0,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 q(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 y(e){const t=new f;t.id=e.id??e.team_id??"",t.name=_.fromIText(e.name??e.team_name??""),e.organization?(t.organizationId=e.organization,t.organizationName=e.organization):t.organizationId=e.organization_id,t.group=p.cloneDeep(e.group??[]),t.tag=p.cloneDeep(e.tag??[]),t.members=D(e.members),e.coach?t.coaches=D(e.coach):t.coaches=D(e.coaches),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),e.ip&&(t.ip=e.ip),t}function At(e){return Array.isArray(e)?e.map(t=>y(t)):Object.entries(e).map(([i,s])=>y({...s,id:s.id??s.team_id??String(i)}))}class rt{constructor(){this.problem=new J,this.team=new f,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",at=G,E=typeof Buffer=="function",U=typeof TextDecoder=="function"?new TextDecoder:void 0,L=typeof TextEncoder=="function"?new TextEncoder:void 0,ot="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d=Array.prototype.slice.call(ot),g=(e=>{let t={};return e.forEach((i,s)=>t[i]=s),t})(d),lt=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,u=String.fromCharCode.bind(String),v=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):e=>new Uint8Array(Array.prototype.slice.call(e,0)),w=e=>e.replace(/=/g,"").replace(/[+\/]/g,t=>t=="+"?"-":"_"),B=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),z=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},O=typeof btoa=="function"?e=>btoa(e):E?e=>Buffer.from(e,"binary").toString("base64"):z,P=E?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 O(i.join(""))},N=(e,t=!1)=>t?w(P(e)):P(e),mt=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)}},ct=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,W=e=>e.replace(ct,mt),x=E?e=>Buffer.from(e,"utf8").toString("base64"):L?e=>P(L.encode(e)):e=>O(W(e)),h=(e,t=!1)=>t?w(x(e)):x(e),F=e=>h(e,!0),ut=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,ht=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))}},X=e=>e.replace(ut,ht),Y=e=>{if(e=e.replace(/\s+/g,""),!lt.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=g[e.charAt(a++)]<<18|g[e.charAt(a++)]<<12|(i=g[e.charAt(a++)])<<6|(s=g[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(B(e)):E?e=>Buffer.from(e,"base64").toString("binary"):Y,K=E?e=>v(Buffer.from(e,"base64")):e=>v(S(e).split("").map(t=>t.charCodeAt(0))),j=e=>K(V(e)),Et=E?e=>Buffer.from(e,"base64").toString("utf8"):U?e=>U.decode(K(e)):e=>X(S(e)),V=e=>B(e.replace(/[-_]/g,t=>t=="-"?"+":"/")),A=e=>Et(V(e)),dt=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)},Z=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),$=function(){const e=(t,i)=>Object.defineProperty(String.prototype,t,Z(i));e("fromBase64",function(){return A(this)}),e("toBase64",function(t){return h(this,t)}),e("toBase64URI",function(){return h(this,!0)}),e("toBase64URL",function(){return h(this,!0)}),e("toUint8Array",function(){return j(this)})},H=function(){const e=(t,i)=>Object.defineProperty(Uint8Array.prototype,t,Z(i));e("toBase64",function(t){return N(this,t)}),e("toBase64URI",function(){return N(this,!0)}),e("toBase64URL",function(){return N(this,!0)})},pt=()=>{$(),H()},C={version:G,VERSION:at,atob:S,atobPolyfill:Y,btoa:O,btoaPolyfill:z,fromBase64:A,toBase64:h,encode:h,encodeURI:F,encodeURL:F,utob:W,btou:X,decode:A,isValid:dt,fromUint8Array:N,toUint8Array:j,extendString:$,extendUint8Array:H,extendBuiltins:pt};var ft=(e=>(e[e.BLUE=0]="BLUE",e[e.RED=1]="RED",e))(ft||{});class I{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 Tt{constructor(){this.enable=!1,this.topX=5,this.equalTeams=!0,this.persist=!1,this.blueTeam=new I(0),this.redTeam=new I(1)}ToBase64(){return C.encode(JSON.stringify(this))}FromBase64(t){if(t.length===0||C.isValid(t)===!1)return;const i=JSON.parse(C.decode(t));this.enable=i.enable,this.topX=i.topX,this.equalTeams=i.equalTeams,this.persist=i.persist,this.blueTeam=new I(0),this.blueTeam.name=i.blueTeam.name,this.blueTeam.setFilterOrganizations(i.blueTeam.filterOrganizations),this.blueTeam.setFilterTeams(i.blueTeam.filterTeams),this.redTeam=new I(1),this.redTeam.name=i.redTeam.name,this.redTeam.setFilterOrganizations(i.redTeam.filterOrganizations),this.redTeam.setFilterTeams(i.redTeam.filterTeams)}}class k{constructor(){this.id="",this.name=new _,this.teams=[],this.rank=-1}reset(){this.rank=-1}static compare(t,i){return t.id<i.id?-1:t.id>i.id?1:0}}class Rt{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 gt{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 Tt}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 Ot{constructor(t,i,s){this.contest=t,this.teams=p.cloneDeep(i),this.teamsMap=new Map(this.teams.map(n=>[n.id,n])),this.submissions=p.cloneDeep(s).sort(b.compare);{const n=this.contest.options,a=p.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.organizationsMap=this.buildOrganizationsMap(),this.organizations=[...this.organizationsMap.values()],this.organizations.sort(k.compare),this.originTeams=this.teams.map(n=>n),this.originTeams.sort(f.compare),this.rankStatistics=new Rt,this.options=new gt,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()}}buildOrganizationsMap(){if(!this.contest.organization)return new Map;const t=new Map;return this.teams.forEach(i=>{if(!i.organizationId)return;if(t.has(i.organizationId)){const n=t.get(i.organizationId);n?.teams.push(i),i.organization=n;return}const s=new k;s.id=i.organizationId,s.name=new _,s.name.fallback=i.organizationName,s.teams.push(i),i.organization=s,t.set(s.id,s)}),t}cleanRank(){(()=>{this.teams=[];for(const[t,i]of this.teamsMap)this.filterTeamByOrg(i)||this.teams.push(i)})();for(const t of this.organizations)t.reset();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(f.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(f.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;for(const s of this.teams){const n=s.organization;!n||n.rank>-1||(n.rank=t++,s.isFirstRankOfOrganization=!0,i&&s.isEqualRank(i)&&(n.rank=i.organization.rank),i=s)}}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 rt;o.team=l,o.problem=m,o.submission=s,this.balloons.push(o)}})()}}setReplayTime(t){this.contest.setReplayTime(t)}}export{rt as B,ft as G,Ot as R,r as S,f as T,Pt as a,nt as b,At as c,st as d,Ct as e,b as f,it as g,Dt as h,et as i,gt as j};
|