@xcpcio/board-app 0.25.0 → 0.26.1
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/about.html +2 -2
- package/dist/assets/{DataSourceInput.vue_vue_type_script_setup_true_lang-7dd754fb.js → DataSourceInput.vue_vue_type_script_setup_true_lang-6fc6f8ea.js} +1 -1
- package/dist/assets/{TheInput.vue_vue_type_script_setup_true_lang-bd7b9fe6.js → TheInput.vue_vue_type_script_setup_true_lang-4ea0bd97.js} +1 -1
- package/dist/assets/_...all_-cf83185b.js +3 -0
- package/dist/assets/{_...all_-16dbd7b8.css → _...all_-f6dd53aa.css} +1 -1
- package/dist/assets/{_name_-94d749aa.js → _name_-58c24204.js} +1 -1
- package/dist/assets/{about-f01d587e.js → about-94580762.js} +1 -1
- package/dist/assets/{app-b6bf8dd1.js → app-21014468.js} +3 -3
- package/dist/assets/{board-layout-52e96f00.js → board-layout-430c688d.js} +1 -1
- package/dist/assets/{headless-e8cc73cd.js → headless-4d39b6f3.js} +1 -1
- package/dist/assets/{home-334a9895.js → home-401b6bdc.js} +1 -1
- package/dist/assets/{index-7f7e6de0.css → index-00889800.css} +1 -1
- package/dist/assets/{index-43dadeef.js → index-95c5e1ae.js} +1 -1
- package/dist/assets/{index-layout-ad419356.js → index-layout-bb5b04eb.js} +1 -1
- package/dist/assets/{test-27f85731.js → test-5e95874d.js} +1 -1
- package/dist/assets/{user-b8ba5adf.js → user-57f2ad93.js} +1 -1
- package/dist/assets/{virtual_pwa-register-698ae235.js → virtual_pwa-register-8d09e89c.js} +1 -1
- package/dist/balloon.html +1 -1
- package/dist/index.html +1 -1
- package/dist/sitemap.xml +1 -1
- package/dist/ssr-manifest.json +400 -128
- package/dist/sw.js +1 -1
- package/dist/test.html +1 -1
- package/package.json +3 -3
- package/src/components/board/Board.vue +2 -2
- package/src/components/board/BoardTab.vue +133 -15
- package/src/pages/index.vue +2 -1
- package/dist/assets/_...all_-d6af1410.js +0 -3
package/dist/sw.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
if(!self.define){let e
|
|
1
|
+
if(!self.define){let s,e={};const l=(l,i)=>(l=new URL(l+".js",i).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=(i,n)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let u={};const t=s=>l(s,r),a={module:{uri:r},exports:u,require:t};e[r]=Promise.all(i.map((s=>a[s]||t(s)))).then((s=>(n(...s),u)))}}define(["./workbox-b8d87ee1"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"about.html",revision:"d938561988fbf3104e0b31aa9e4a2bc1"},{url:"assets/_...all_-cf83185b.js",revision:null},{url:"assets/_...all_-f6dd53aa.css",revision:null},{url:"assets/_name_-58c24204.js",revision:null},{url:"assets/about-94580762.js",revision:null},{url:"assets/app-21014468.js",revision:null},{url:"assets/board-layout-430c688d.js",revision:null},{url:"assets/DataSourceInput.vue_vue_type_script_setup_true_lang-6fc6f8ea.js",revision:null},{url:"assets/en-644e039f.js",revision:null},{url:"assets/headless-4d39b6f3.js",revision:null},{url:"assets/home-401b6bdc.js",revision:null},{url:"assets/index-00889800.css",revision:null},{url:"assets/index-95c5e1ae.js",revision:null},{url:"assets/index-layout-bb5b04eb.js",revision:null},{url:"assets/test-5e95874d.js",revision:null},{url:"assets/TheInput.vue_vue_type_script_setup_true_lang-4ea0bd97.js",revision:null},{url:"assets/user-57f2ad93.js",revision:null},{url:"assets/virtual_pwa-register-8d09e89c.js",revision:null},{url:"assets/workbox-window.prod.es5-a7b12eab.js",revision:null},{url:"assets/zh-CN-44b801f0.js",revision:null},{url:"balloon.html",revision:"6bbc39347b6afd40a71f3dcb5c4bc0ac"},{url:"index.html",revision:"d061c4d0ec28103a37250d1248587ef9"},{url:"test.html",revision:"fd33f2dea27eb2db073de93005863ff6"},{url:"favicon.svg",revision:"5a744f4ccbb122d4a0575be779ddcd43"},{url:"safari-pinned-tab.svg",revision:"5eaf74d1c43d30e0af743b68a3f48504"},{url:"balloon2-192x192.png",revision:"c857ae6d9dfae118ab4397d4358422bd"},{url:"balloon2-512x512.png",revision:"065594f4f743fe3884793c03d3fe7d9e"},{url:"manifest.webmanifest",revision:"3082e8d8ebc9619c6c1055ff243a02a8"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))}));
|
package/dist/test.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" data-critters-container><head><meta charset="UTF-8"><!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> --><link rel="apple-touch-icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.
|
|
1
|
+
<!DOCTYPE html><html lang="en" data-critters-container><head><meta charset="UTF-8"><!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> --><link rel="apple-touch-icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.26.1/dist/balloon-192x192.png"><link rel="mask-icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.26.1/dist/balloon-512x512.svg" color="#00aba9"><meta name="msapplication-TileColor" content="#00aba9"><script>function normalizePath(_){for(;_.endsWith("/");)_=_.slice(0,-1);return _+"/"}{let _="__CDN_HOST__";_=normalizePath(_),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"}</script><script>!function(){var e=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches,t=localStorage.getItem("vueuse-color-scheme")||"auto";("dark"===t||e&&"light"!==t)&&document.documentElement.classList.toggle("dark",!0)}()</script><script type="module" async crossorigin src="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.26.1/dist/assets/app-21014468.js"></script><link rel="manifest" href="/manifest.webmanifest"><style></style><link rel="modulepreload" crossorigin href="/assets/home-401b6bdc.js"><link rel="modulepreload" crossorigin href="/assets/test-5e95874d.js"><title>Board - XCPCIO</title><meta name="description" content="XCPCIO-Board 主要收录 *CPC 系列竞赛的榜单。"><meta name="keywords" content="icpc, ccpc, rank, board, standings"><meta name="theme-color" content="#ffffff"><link rel="icon" type="image/svg+xml" href="/favicon.svg"></head><body class="font-sans"><div id="app" data-server-rendered="true"><main px-4 py-10 text="center gray-700 dark:gray-200"><div flex flex-col justify-center items-center><div text-4xl><div i-carbon-campsite></div></div><p><a rel="noreferrer" href="https://github.com/antfu/vitesse" target="_blank">Vitesse</a></p><p><em text-sm opacity-75>Opinionated Vite Starter Template</em></p><div py-4></div><div w-48><input id="input" value type="text" placeholder="What's your name?" autocomplete="false" p="x-4 y-2" w-full text="center" bg="transparent" border="~ rounded gray-200 dark:gray-700" outline="none active:none"><label class="hidden" for="input">What's your name?</label></div><div><button m-3 text-sm btn disabled="disabled">GO</button></div></div><footer mt-8 py-4 md:py-8 lg:py-10 w-full flex justify-center items-center><div text-center w-full><a href="/" class flex items-center justify-center text-2xl font-semibold text-gray-900 dark:text-white><div i-ion-balloon-sharp mr-4 h-8></div>Get more balloons</a><p my-6 text-gray-500 dark:text-gray-400 w-full flex justify-center>Open-source project of ICPC/CCPC Standings.</p><ul mb-6 w-full flex flex-wrap items-center justify-center text-gray-900 dark:text-white><li><a href="/" class mr-4 md:mr-6 hover:underline>Home</a></li><li><div class="v-popper v-popper--theme-tooltip" w-inherit><!--[--><!--[--><a href="https://github.com/xcpcio/xcpcio" class="mr-4 md:mr-6 hover:underline" rel="noreferrer" target="_blank" title="GitHub">GitHub</a><!--]--><div id="popper_5axco4vw_7xicj7" class="v-popper__popper v-popper--theme-tooltip v-popper__popper--hidden v-popper__popper--hide-to" style="position:absolute;transform:translate3d(0,0,0)" aria-hidden="true" data-popper-placement><div class="v-popper__backdrop"></div><div class="v-popper__wrapper" style><div class="v-popper__inner"><!----></div><div class="v-popper__arrow-container" style="left:0;top:0"><div class="v-popper__arrow-outer"></div><div class="v-popper__arrow-inner"></div></div></div></div><!--]--></div></li><li><div class="v-popper v-popper--theme-tooltip" w-inherit><!--[--><!--[--><a href="mailto:hi@dup4.com" mr-4 md:mr-6 hover:underline>Contact</a><!--]--><div id="popper_nkovm4c0_7xicj7" class="v-popper__popper v-popper--theme-tooltip v-popper__popper--hidden v-popper__popper--hide-to" style="position:absolute;transform:translate3d(0,0,0)" aria-hidden="true" data-popper-placement><div class="v-popper__backdrop"></div><div class="v-popper__wrapper" style><div class="v-popper__inner"><!----></div><div class="v-popper__arrow-container" style="left:0;top:0"><div class="v-popper__arrow-outer"></div><div class="v-popper__arrow-inner"></div></div></div></div><!--]--></div></li></ul><span text-sm text-gray-500 sm:text-center dark:text-gray-400 w-full>© 2020-PRESENT <a href="/" class hover:underline>XCPCIO™</a>. All Rights Reserved.</span></div></footer><div mx-auto mt-5 text-center text-sm opacity-50>[Home Layout]</div></main></div><script>window.__INITIAL_STATE__='{"pinia":{"user":{"savedName":""}}}'</script><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"),t=(e.src=umamiJSUrl,e.defer=!0,e.setAttribute("data-website-id",umamiWebsiteId),document.getElementsByTagName("script")[0]);t.parentNode.insertBefore(e,t)}()}catch(e){}try{var plausibleJSUrl=__PLAUSIBLE_JS_URL__,plausibleDataDomain=__PLAUSIBLE_DATA_DOMAIN__;!function(){var e=document.createElement("script"),t=(e.src=plausibleJSUrl,e.defer=!0,e.setAttribute("data-domain",plausibleDataDomain),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"),t=(e.src="https://hm.baidu.com/hm.js?"+baiduAnalyticsId,document.getElementsByTagName("script")[0]);t.parentNode.insertBefore(e,t)}()}catch(e){}try{var googleAnalyticsId=__GOOGLE_ANALYTICS_ID__;!function(){var e,t,a,r;location.port||(e=window,r=document,t="script",a="ga",e.GoogleAnalyticsObject=a,e.ga=e.ga||function(){(e.ga.q=e.ga.q||[]).push(arguments)},e.ga.l=+new Date,a=r.createElement(t),r=r.getElementsByTagName(t)[0],a.async=1,a.src="//www.google-analytics.com/analytics.js",r.parentNode.insertBefore(a,r),ga("create",""+googleAnalyticsId,"auto"),ga("send","pageview"))}()}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.26.1",
|
|
5
5
|
"description": "XCPCIO Board App",
|
|
6
6
|
"author": "Dup4 <lyuzhi.pan@gmail.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"vue-router": "^4.2.4",
|
|
54
54
|
"vue-search-select": "^3.1.2",
|
|
55
55
|
"vue-toast-notification": "^3",
|
|
56
|
-
"@xcpcio/core": "0.
|
|
57
|
-
"@xcpcio/types": "0.
|
|
56
|
+
"@xcpcio/core": "0.26.1",
|
|
57
|
+
"@xcpcio/types": "0.26.1"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@antfu/eslint-config": "^0.39.8",
|
|
@@ -325,7 +325,7 @@ const widthClass = "sm:w-[1260px] xl:w-screen";
|
|
|
325
325
|
</div>
|
|
326
326
|
</div>
|
|
327
327
|
|
|
328
|
-
<div mt-
|
|
328
|
+
<div mt-2>
|
|
329
329
|
<BoardTab
|
|
330
330
|
:rank="rank"
|
|
331
331
|
/>
|
|
@@ -333,7 +333,7 @@ const widthClass = "sm:w-[1260px] xl:w-screen";
|
|
|
333
333
|
|
|
334
334
|
<div
|
|
335
335
|
:class="[widthClass]"
|
|
336
|
-
mt-
|
|
336
|
+
mt-2
|
|
337
337
|
flex flex-row justify-center
|
|
338
338
|
>
|
|
339
339
|
<div class="w-[92%]">
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import type { Rank } from "@xcpcio/core";
|
|
3
3
|
|
|
4
|
+
import type { DropdownOptions } from "flowbite";
|
|
5
|
+
import { Dropdown } from "flowbite";
|
|
6
|
+
import { useToast } from "vue-toast-notification";
|
|
7
|
+
|
|
4
8
|
const props = defineProps<{
|
|
5
9
|
rank: Rank,
|
|
6
10
|
}>();
|
|
@@ -8,28 +12,142 @@ const props = defineProps<{
|
|
|
8
12
|
const rank = computed(() => props.rank);
|
|
9
13
|
|
|
10
14
|
const { t } = useI18n();
|
|
15
|
+
const $toast = useToast();
|
|
16
|
+
const { copy, isSupported } = useClipboard();
|
|
17
|
+
|
|
18
|
+
let dropdown: Dropdown | null = null;
|
|
19
|
+
const dropdownTargetEl = ref(null);
|
|
20
|
+
const dropdownTriggerEl = ref(null);
|
|
21
|
+
|
|
22
|
+
function preCheck() {
|
|
23
|
+
if (!window) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (!isSupported.value) {
|
|
28
|
+
$toast.warning("clipboard is not supported");
|
|
29
|
+
dropdown?.hide();
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function postCall() {
|
|
37
|
+
$toast.success("copy success");
|
|
38
|
+
dropdown?.hide();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function copyLink() {
|
|
42
|
+
if (!preCheck()) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
copy(window.location.href);
|
|
47
|
+
postCall();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function copyCode() {
|
|
51
|
+
if (!preCheck()) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const code = `<iframe src="${window.location.href}" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="width: 100%; height: 720px"></iframe>`;
|
|
56
|
+
copy(code);
|
|
57
|
+
postCall();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
onMounted(() => {
|
|
61
|
+
{
|
|
62
|
+
if (dropdownTargetEl.value && dropdownTriggerEl.value) {
|
|
63
|
+
const options: DropdownOptions = {
|
|
64
|
+
placement: "right",
|
|
65
|
+
triggerType: "click",
|
|
66
|
+
offsetSkidding: 32,
|
|
67
|
+
offsetDistance: 5,
|
|
68
|
+
delay: 300,
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
dropdown = new Dropdown(dropdownTargetEl.value, dropdownTriggerEl.value, options);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
});
|
|
11
75
|
</script>
|
|
12
76
|
|
|
13
77
|
<template>
|
|
14
|
-
<div
|
|
15
|
-
|
|
16
|
-
|
|
78
|
+
<div
|
|
79
|
+
flex
|
|
80
|
+
>
|
|
81
|
+
<div>
|
|
82
|
+
<VTooltip
|
|
83
|
+
w-inherit
|
|
84
|
+
>
|
|
85
|
+
<div>
|
|
86
|
+
<div
|
|
87
|
+
i-material-symbols-info-outline
|
|
88
|
+
text-lg
|
|
89
|
+
/>
|
|
90
|
+
</div>
|
|
91
|
+
|
|
92
|
+
<template #popper>
|
|
93
|
+
<div
|
|
94
|
+
flex
|
|
95
|
+
>
|
|
96
|
+
<div>
|
|
97
|
+
{{ t("standings.options.calculation_of_penalty") }}: {{ t(`standings.options.${rank.contest.options?.calculationOfPenalty}`) }}
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
</template>
|
|
101
|
+
</VTooltip>
|
|
102
|
+
</div>
|
|
103
|
+
|
|
104
|
+
<div
|
|
105
|
+
class="border-l-[1px] border-r-[1px]"
|
|
106
|
+
mx-2
|
|
107
|
+
h-6
|
|
108
|
+
border-color-black
|
|
109
|
+
dark:border-color-white
|
|
110
|
+
/>
|
|
111
|
+
|
|
112
|
+
<div
|
|
113
|
+
flex
|
|
17
114
|
>
|
|
18
115
|
<div
|
|
116
|
+
ref="dropdownTriggerEl"
|
|
117
|
+
i-material-symbols-share
|
|
19
118
|
text-lg
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
</div>
|
|
119
|
+
cursor-pointer
|
|
120
|
+
/>
|
|
23
121
|
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
122
|
+
<div
|
|
123
|
+
ref="dropdownTargetEl"
|
|
124
|
+
class="z-9999 hidden divide-y divide-gray-100 rounded shadow w-36"
|
|
125
|
+
bg-white
|
|
126
|
+
dark:bg-gray-700
|
|
127
|
+
>
|
|
128
|
+
<ul
|
|
129
|
+
class="py-2 text-sm text-gray-700 dark:text-gray-200"
|
|
27
130
|
>
|
|
28
|
-
<
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
131
|
+
<li>
|
|
132
|
+
<div
|
|
133
|
+
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
134
|
+
cursor-pointer
|
|
135
|
+
@click="copyLink"
|
|
136
|
+
>
|
|
137
|
+
Copy Page Link
|
|
138
|
+
</div>
|
|
139
|
+
</li>
|
|
140
|
+
<li>
|
|
141
|
+
<div
|
|
142
|
+
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
143
|
+
cursor-pointer
|
|
144
|
+
@click="copyCode"
|
|
145
|
+
>
|
|
146
|
+
Copy Page Code
|
|
147
|
+
</div>
|
|
148
|
+
</li>
|
|
149
|
+
</ul>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
34
152
|
</div>
|
|
35
153
|
</template>
|
package/src/pages/index.vue
CHANGED
|
@@ -37,7 +37,8 @@ function onSearch() {
|
|
|
37
37
|
s.value = searchText.value;
|
|
38
38
|
|
|
39
39
|
if (c.contest.name.includes(searchText.value)
|
|
40
|
-
|| c.contest.name.toLowerCase().includes(searchText.value.toLowerCase())
|
|
40
|
+
|| c.contest.name.toLowerCase().includes(searchText.value.toLowerCase())
|
|
41
|
+
|| c.boardLink.toLocaleLowerCase().includes(searchText.value.toLowerCase())) {
|
|
41
42
|
return true;
|
|
42
43
|
}
|
|
43
44
|
|