@xcpcio/board-app 0.55.2 → 0.57.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-BZ_MJL62.js +1 -0
- package/dist/assets/{Board-DI2_Xyh3.css → Board-DnZBiplC.css} +1 -1
- package/dist/assets/Board-M3nEiC5v.js +1 -0
- package/dist/assets/{ContestStateBadge-DawlTsHs.css → ContestStateBadge-BqhxSQpe.css} +1 -1
- package/dist/assets/ContestStateBadge-IsAa8PiB.js +1 -0
- package/dist/assets/Countdown-BwX0pjKA.js +1 -0
- package/dist/assets/{DataSourceInput.vue_vue_type_script_setup_true_lang-J0bb2eXG.js → DataSourceInput.vue_vue_type_script_setup_true_lang-CwVxRE-c.js} +1 -1
- package/dist/assets/Footer.vue_vue_type_script_setup_true_lang-MkbrUjXL.js +1 -0
- package/dist/assets/NavBar-BmAanNCq.js +1 -0
- package/dist/assets/{Resolver-B6m5f_LD.css → Resolver-BTlxgfNF.css} +1 -1
- package/dist/assets/Resolver-RnjyvoQY.js +22 -0
- package/dist/assets/RightArrowIcon-Dma7noLJ.js +1 -0
- package/dist/assets/{TheInput.vue_vue_type_script_setup_true_lang-DsqG2YZ8.js → TheInput.vue_vue_type_script_setup_true_lang-CX1T1Yaw.js} +1 -1
- package/dist/assets/Tooltip.vue_vue_type_script_setup_true_lang-C4y8ve-6.js +27 -0
- package/dist/assets/{_...all_-Dkuyof0N.js → _...all_-B68s9hsC.js} +1 -1
- package/dist/assets/{_...all_-CWEYFf-1.js → _...all_-mCyltngd.js} +2 -2
- package/dist/assets/{_name_-DkCB2ylA.js → _name_-CjfqvPfr.js} +1 -1
- package/dist/assets/{about-Bei-zdpH.js → about-C-cjF9jO.js} +2 -2
- package/dist/assets/board-DiVdPUVH.js +1 -0
- package/dist/assets/{board-layout-K8sw8NsP.js → board-layout-Ddotwr4-.js} +1 -1
- package/dist/assets/{constant-2MSuUQN9.js → constant-CGob-gWE.js} +1 -1
- package/dist/assets/{default-1E2MOw97.js → default-BV_KbRwY.js} +1 -1
- package/dist/assets/{headless-Sa2QJJjX.js → headless-Cxtb9X1L.js} +1 -1
- package/dist/assets/{home-CtJUZVCZ.js → home-B31uh5iL.js} +1 -1
- package/dist/assets/index-BPqC3WJ9.js +198 -0
- package/dist/assets/{index-BNZRV8LR.js → index-BfIZBk7d.js} +1 -1
- package/dist/assets/{index-DIl_xwmv.js → index-CAgdB_-E.js} +1 -1
- package/dist/assets/{index-D0wLFbYO.css → index-CD2Bzcv5.css} +1 -1
- package/dist/assets/{index-BZMvrIyG.css → index-CTdHCzhg.css} +3 -3
- package/dist/assets/{index-B15dCUpg.js → index-Cy4xbqNj.js} +1 -1
- package/dist/assets/index-DPh0sBpA.js +1 -0
- package/dist/assets/{index-DXMw63yv.js → index-DmBTAYlT.js} +1 -1
- package/dist/assets/{index-CPJc3gEW.js → index-d753Ov31.js} +2 -2
- package/dist/assets/index-hXLRQaA1.js +1 -0
- package/dist/assets/index-kacUN_O7.js +67 -0
- package/dist/assets/{index-CkWanoDO.css → index-kywOXmCz.css} +1 -1
- package/dist/assets/{index-layout-D7MYCKsY.js → index-layout-BaQrY3iI.js} +1 -1
- package/dist/assets/pagination-ClXw8clh.js +3 -0
- package/dist/assets/query-Chl7pD8x.js +1 -0
- package/dist/assets/{test-C0jX_snI.js → test-DKJ99bxw.js} +1 -1
- package/dist/assets/{use-vmodel-CT985YGh.js → use-vmodel-DBwTGXRm.js} +1 -1
- package/dist/assets/user-DeAJw0vU.js +1 -0
- package/dist/assets/virtual_pwa-register-CsMcElxS.js +1 -0
- package/dist/assets/workbox-window.prod.es5-CwtvwXb3.js +2 -0
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/package.json +47 -47
- package/src/auto-imports.d.ts +7 -1
- package/src/components/Balloon.vue +1 -1
- package/src/components/Resolver.vue +1 -1
- package/src/components/board/Board.vue +11 -1
- package/src/components/board/Progress.vue +1 -1
- package/src/typed-router.d.ts +68 -0
- package/vite.config.ts +11 -11
- package/dist/assets/Balloon.vue_vue_type_script_setup_true_lang-CmkJalmb.js +0 -1
- package/dist/assets/Board-Dum-tExZ.js +0 -1
- package/dist/assets/ContestStateBadge-hRbbyZ5a.js +0 -1
- package/dist/assets/Countdown-DAdiIlkO.js +0 -1
- package/dist/assets/Footer.vue_vue_type_script_setup_true_lang-CZWhuawj.js +0 -1
- package/dist/assets/NavBar-o7LroIec.js +0 -1
- package/dist/assets/Resolver-DQAiggp3.js +0 -25
- package/dist/assets/RightArrowIcon-DcfHXHHq.js +0 -1
- package/dist/assets/Tooltip.vue_vue_type_script_setup_true_lang-OTaxJAgs.js +0 -27
- package/dist/assets/board-DYwZDF6d.js +0 -1
- package/dist/assets/index-6jZiIup0.js +0 -1
- package/dist/assets/index-BYh7ktqe.js +0 -198
- package/dist/assets/index-Biv_orBr.js +0 -1
- package/dist/assets/index-CYsJ2gG-.js +0 -67
- package/dist/assets/pagination-D1pCU19r.js +0 -3
- package/dist/assets/query-DfOnN8jV.js +0 -1
- package/dist/assets/user-bpzU-F74.js +0 -1
- package/dist/assets/virtual_pwa-register-C3KS-ZjO.js +0 -1
- package/dist/assets/workbox-window.prod.es5-B9K5rw8f.js +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a4 as V,a5 as j,a6 as d,a7 as D,a8 as w,a9 as z,aa as k,ab as M,ac as H,ad as T,ae as K,af as G,ag as L,ah as Y,ai as J,aj as X,ak as Z,f as W,al as q,am as tt,an as et,C as Q,ao as $,ap as st,aq as A,ar as it,as as nt,at as rt}from"./index-kacUN_O7.js";import{a as at}from"./constant-CGob-gWE.js";import{u as B}from"./index-DmBTAYlT.js";var ot=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;#a;#l;#i;#n;#b;#c;#f;#o;#h;#r;#d=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),_(this.#t,this.options)?this.#u():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.#g(),this.#O(),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 d(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.#u(),this.updateResult(),s&&(this.#t!==i||d(this.options.enabled,this.#t)!==d(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||d(this.options.enabled,this.#t)!==d(e.enabled,this.#t)||n!==this.#r)&&this.#R(n)}getOptimisticResult(t){const e=this.#s.getQueryCache().build(this.#s,t),i=this.createResult(e,t);return ut(this,i)&&(this.#e=i,this.#l=this.options,this.#a=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.#d.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.#u({...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#e))}#u(t){this.#w();let e=this.#t.fetch(this.options,t);return t?.throwOnError||(e=e.catch(z)),e}#v(){this.#g();const t=w(this.options.staleTime,this.#t);if(k||this.#e.isStale||!M(t))return;const i=H(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.#O(),this.#r=t,!(k||d(this.options.enabled,this.#t)===!1||!M(this.#r)||this.#r===0)&&(this.#h=T.setInterval(()=>{(this.options.refetchIntervalInBackground||K.isFocused())&&this.#u()},this.#r))}#y(){this.#v(),this.#R(this.#m())}#g(){this.#o&&(T.clearTimeout(this.#o),this.#o=void 0)}#O(){this.#h&&(T.clearInterval(this.#h),this.#h=void 0)}createResult(t,e){const i=this.#t,s=this.options,n=this.#e,a=this.#a,u=this.#l,v=t!==i?t.state:this.#p,{state:g}=t;let r={...g},S=!1,h;if(e._optimisticResults){const c=this.hasListeners(),C=!c&&_(t,e),y=c&&N(t,i,e,s);(C||y)&&(r={...r,...G(g.data,t.options)}),e._optimisticResults==="isRestoring"&&(r.fetchStatus="idle")}let{error:o,errorUpdatedAt:b,status:f}=r;h=r.data;let O=!1;if(e.placeholderData!==void 0&&h===void 0&&f==="pending"){let c;n?.isPlaceholderData&&e.placeholderData===u?.placeholderData?(c=n.data,O=!0):c=typeof e.placeholderData=="function"?e.placeholderData(this.#f?.state.data,this.#f):e.placeholderData,c!==void 0&&(f="success",h=L(n?.data,c,e),S=!0)}if(e.select&&h!==void 0&&!O)if(n&&h===a?.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(),f="error");const m=r.fetchStatus==="fetching",R=f==="pending",E=f==="error",P=R&&m,x=h!==void 0,p={status:f,fetchStatus:r.fetchStatus,isPending:R,isSuccess:f==="success",isError:E,isInitialLoading:P,isLoading:P,data:h,dataUpdatedAt:r.dataUpdatedAt,error:o,errorUpdatedAt:b,failureCount:r.fetchFailureCount,failureReason:r.fetchFailureReason,errorUpdateCount:r.errorUpdateCount,isFetched:r.dataUpdateCount>0||r.errorUpdateCount>0,isFetchedAfterMount:r.dataUpdateCount>v.dataUpdateCount||r.errorUpdateCount>v.errorUpdateCount,isFetching:m,isRefetching:m&&!R,isLoadingError:E&&!x,isPaused:r.fetchStatus==="paused",isPlaceholderData:S,isRefetchError:E&&x,isStale:F(t,e),refetch:this.refetch,promise:this.#i,isEnabled:d(e.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const c=I=>{p.status==="error"?I.reject(p.error):p.data!==void 0&&I.resolve(p.data)},C=()=>{const I=this.#i=p.promise=j();c(I)},y=this.#i;switch(y.status){case"pending":t.queryHash===i.queryHash&&c(y);break;case"fulfilled":(p.status==="error"||p.data!==y.value)&&C();break;case"rejected":(p.status!=="error"||p.error!==y.reason)&&C();break}}return p}updateResult(){const t=this.#e,e=this.createResult(this.#t,this.options);if(this.#a=this.#t.state,this.#l=this.options,this.#a.data!==void 0&&(this.#f=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.#d.size)return!0;const a=new Set(n??this.#d);return this.options.throwOnError&&a.add("error"),Object.keys(this.#e).some(u=>{const l=u;return this.#e[l]!==t[l]&&a.has(l)})};this.#S({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()}#S(t){Y.batch(()=>{t.listeners&&this.listeners.forEach(e=>{e(this.#e)}),this.#s.getQueryCache().notify({query:this.#t,type:"observerResultsUpdated"})})}};function ht(t,e){return d(e.enabled,t)!==!1&&t.state.data===void 0&&!(t.state.status==="error"&&e.retryOnMount===!1)}function _(t,e){return ht(t,e)||t.state.data!==void 0&&U(t,e,e.refetchOnMount)}function U(t,e,i){if(d(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||d(s.enabled,t)===!1)&&(!i.suspense||t.state.status!=="error")&&F(t,i)}function F(t,e){return d(e.enabled,t)!==!1&&t.isStaleByTime(w(e.staleTime,t))}function ut(t,e){return!D(t.getCurrentResult(),e)}function lt(t=""){if(!J())throw new Error("vue-query hooks can only be used inside setup() function or functions that support injection context.");const e=Z(t),i=X(e);if(!i)throw new Error("No 'queryClient' found in Vue context, use 'VueQueryPlugin' to properly initialize the library.");return i}function ct(t,e,i){const s=lt(),n=W(()=>{const o=q(e);typeof o.enabled=="function"&&(o.enabled=o.enabled());const b=s.defaultQueryOptions(o);return b._optimisticResults=s.isRestoring?.value?"isRestoring":"optimistic",b}),a=new t(s,n.value),u=n.value.shallow?tt(a.getCurrentResult()):et(a.getCurrentResult());let l=()=>{};s.isRestoring&&Q(s.isRestoring,o=>{o||(l(),l=a.subscribe(b=>{$(u,b)}))},{immediate:!0});const v=()=>{a.setOptions(n.value),$(u,a.getCurrentResult())};Q(n,v),st(()=>{l()});const g=(...o)=>(v(),u.refetch(...o)),r=()=>new Promise((o,b)=>{let f=()=>{};const O=()=>{if(n.value.enabled!==!1){a.setOptions(n.value);const m=a.getOptimisticResult(n.value);m.isStale?(f(),a.fetchOptimistic(n.value).then(o,R=>{A(n.value.throwOnError,[R,a.getCurrentQuery()])?b(R):o(a.getCurrentResult())})):(f(),o(m))}};O(),f=Q(n,O)});Q(()=>u.error,o=>{if(u.isError&&!u.isFetching&&A(n.value.throwOnError,[o,a.getCurrentQuery()]))throw o});const S=n.value.shallow?it(u):nt(u),h=rt(S);for(const o in u)typeof u[o]=="function"&&(h[o]=u[o]);return h.suspense=r,h.refetch=g,h}function ft(t,e){return ct(ot,t)}const dt=3;async function pt(t,e){const i=t.startsWith("/")?t.slice(1):t;let s=`${window.DATA_HOST}${i}`;const n={allInOne:!1};if(s.includes("#")){const r=new URLSearchParams(s.split("#")[1]);n.allInOne=r.get("allInOne")==="true",s=s.split("#")[0]}t.startsWith("http")&&(s=t),s.endsWith("/")&&(s=s.slice(0,-1));const a=r=>r.includes("?")?`${r}&t=${e??0}`:`${r}?t=${e??0}`,u=n.allInOne?[await fetch(a(s))]:[await fetch(a(`${s}/config.json`)),await fetch(a(`${s}/team.json`)),await fetch(a(`${s}/run.json`))],{status:l,statusText:v}=u[0];if(l>=300||l<200)throw new Error(`fetch data failed. [status=${l}] [statusText=${v}]`);return Promise.all(u.map(r=>r.json())).then(r=>n.allInOne?r[0]:{contest:r[0],teams:r[1],submissions:r[2]})}function yt(t,e,i=!1){let s=3e4,n=s;const a=W(()=>Math.floor(e.value.getTime()/1e3/10));return at.value==="I18N"&&(s=10*1e3,n=s),i&&(s=Number.POSITIVE_INFINITY,n=!1),ft({queryKey:[t,a.value],queryFn:()=>pt(t,a.value),retry:dt,staleTime:s,refetchInterval:n})}function gt(){return B("data-source","",{transform:String})}function Ot(){return B("battle-of-giants","",{transform:String})}export{Ot as a,gt as g,yt as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as p}from"./TheInput.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import{_ as p}from"./TheInput.vue_vue_type_script_setup_true_lang-CX1T1Yaw.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,O as y,z as g}from"./index-kacUN_O7.js";import{u as k}from"./user-DeAJw0vU.js";import{b as l}from"./route-block-B_A1xBdJ.js";import"./use-vmodel-DBwTGXRm.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{
|
|
1
|
+
import{aA as c,aB as r}from"./index-kacUN_O7.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 _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ay as n,m as r,f as t}from"./index-kacUN_O7.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as f}from"./index-kacUN_O7.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,2 @@
|
|
|
1
|
+
try{self["workbox:window:7.2.0"]&&_()}catch{}function E(n,r){return new Promise((function(t){var i=new MessageChannel;i.port1.onmessage=function(c){t(c.data)},n.postMessage(r,[i.port2])}))}function W(n){var r=(function(t,i){if(typeof t!="object"||!t)return t;var c=t[Symbol.toPrimitive];if(c!==void 0){var h=c.call(t,i);if(typeof h!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)})(n,"string");return typeof r=="symbol"?r:r+""}function k(n,r){for(var t=0;t<r.length;t++){var i=r[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,W(i.key),i)}}function P(n,r){return P=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,i){return t.__proto__=i,t},P(n,r)}function j(n,r){(r==null||r>n.length)&&(r=n.length);for(var t=0,i=new Array(r);t<r;t++)i[t]=n[t];return i}function L(n,r){var t=typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(t)return(t=t.call(n)).next.bind(t);if(Array.isArray(n)||(t=(function(c,h){if(c){if(typeof c=="string")return j(c,h);var l=Object.prototype.toString.call(c).slice(8,-1);return l==="Object"&&c.constructor&&(l=c.constructor.name),l==="Map"||l==="Set"?Array.from(c):l==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(l)?j(c,h):void 0}})(n))||r){t&&(n=t);var i=0;return function(){return i>=n.length?{done:!0}:{done:!1,value:n[i++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
2
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}try{self["workbox:core:7.2.0"]&&_()}catch{}var w=function(){var n=this;this.promise=new Promise((function(r,t){n.resolve=r,n.reject=t}))};function b(n,r){var t=location.href;return new URL(n,t).href===new URL(r,t).href}var g=function(n,r){this.type=n,Object.assign(this,r)};function d(n,r,t){return t?r?r(n):n:(n&&n.then||(n=Promise.resolve(n)),r?n.then(r):n)}function O(){}var x={type:"SKIP_WAITING"};function S(n,r){return n&&n.then?n.then(O):Promise.resolve()}var U=(function(n){function r(v,u){var e,o;return u===void 0&&(u={}),(e=n.call(this)||this).nn={},e.tn=0,e.rn=new w,e.en=new w,e.on=new w,e.un=0,e.an=new Set,e.cn=function(){var s=e.fn,a=s.installing;e.tn>0||!b(a.scriptURL,e.sn.toString())||performance.now()>e.un+6e4?(e.vn=a,s.removeEventListener("updatefound",e.cn)):(e.hn=a,e.an.add(a),e.rn.resolve(a)),++e.tn,a.addEventListener("statechange",e.ln)},e.ln=function(s){var a=e.fn,f=s.target,p=f.state,m=f===e.vn,y={sw:f,isExternal:m,originalEvent:s};!m&&e.mn&&(y.isUpdate=!0),e.dispatchEvent(new g(p,y)),p==="installed"?e.wn=self.setTimeout((function(){p==="installed"&&a.waiting===f&&e.dispatchEvent(new g("waiting",y))}),200):p==="activating"&&(clearTimeout(e.wn),m||e.en.resolve(f))},e.yn=function(s){var a=e.hn,f=a!==navigator.serviceWorker.controller;e.dispatchEvent(new g("controlling",{isExternal:f,originalEvent:s,sw:a,isUpdate:e.mn})),f||e.on.resolve(a)},e.gn=(o=function(s){var a=s.data,f=s.ports,p=s.source;return d(e.getSW(),(function(){e.an.has(p)&&e.dispatchEvent(new g("message",{data:a,originalEvent:s,ports:f,sw:p}))}))},function(){for(var s=[],a=0;a<arguments.length;a++)s[a]=arguments[a];try{return Promise.resolve(o.apply(this,s))}catch(f){return Promise.reject(f)}}),e.sn=v,e.nn=u,navigator.serviceWorker.addEventListener("message",e.gn),e}var t,i;i=n,(t=r).prototype=Object.create(i.prototype),t.prototype.constructor=t,P(t,i);var c,h,l=r.prototype;return l.register=function(v){var u=(v===void 0?{}:v).immediate,e=u!==void 0&&u;try{var o=this;return d((function(s,a){var f=s();return f&&f.then?f.then(a):a(f)})((function(){if(!e&&document.readyState!=="complete")return S(new Promise((function(s){return window.addEventListener("load",s)})))}),(function(){return o.mn=!!navigator.serviceWorker.controller,o.dn=o.pn(),d(o.bn(),(function(s){o.fn=s,o.dn&&(o.hn=o.dn,o.en.resolve(o.dn),o.on.resolve(o.dn),o.dn.addEventListener("statechange",o.ln,{once:!0}));var a=o.fn.waiting;return a&&b(a.scriptURL,o.sn.toString())&&(o.hn=a,Promise.resolve().then((function(){o.dispatchEvent(new g("waiting",{sw:a,wasWaitingBeforeRegister:!0}))})).then((function(){}))),o.hn&&(o.rn.resolve(o.hn),o.an.add(o.hn)),o.fn.addEventListener("updatefound",o.cn),navigator.serviceWorker.addEventListener("controllerchange",o.yn),o.fn}))})))}catch(s){return Promise.reject(s)}},l.update=function(){try{return this.fn?d(S(this.fn.update())):d()}catch(v){return Promise.reject(v)}},l.getSW=function(){return this.hn!==void 0?Promise.resolve(this.hn):this.rn.promise},l.messageSW=function(v){try{return d(this.getSW(),(function(u){return E(u,v)}))}catch(u){return Promise.reject(u)}},l.messageSkipWaiting=function(){this.fn&&this.fn.waiting&&E(this.fn.waiting,x)},l.pn=function(){var v=navigator.serviceWorker.controller;return v&&b(v.scriptURL,this.sn.toString())?v:void 0},l.bn=function(){try{var v=this;return d((function(u,e){try{var o=u()}catch(s){return e(s)}return o&&o.then?o.then(void 0,e):o})((function(){return d(navigator.serviceWorker.register(v.sn,v.nn),(function(u){return v.un=performance.now(),u}))}),(function(u){throw u})))}catch(u){return Promise.reject(u)}},c=r,(h=[{key:"active",get:function(){return this.en.promise}},{key:"controlling",get:function(){return this.on.promise}}])&&k(c.prototype,h),Object.defineProperty(c,"prototype",{writable:!1}),c})((function(){function n(){this.Pn=new Map}var r=n.prototype;return r.addEventListener=function(t,i){this.jn(t).add(i)},r.removeEventListener=function(t,i){this.jn(t).delete(i)},r.dispatchEvent=function(t){t.target=this;for(var i,c=L(this.jn(t.type));!(i=c()).done;)(0,i.value)(t)},r.jn=function(t){return this.Pn.has(t)||this.Pn.set(t,new Set),this.Pn.get(t)},n})());export{U as Workbox,g as WorkboxEvent,E as messageSW};
|
package/dist/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="UTF-8"/><link rel="apple-touch-icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="UTF-8"/><link rel="apple-touch-icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.57.0/dist/balloon-192x192.png"/><link rel="mask-icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.57.0/dist/balloon-512x512.svg" color="#00aba9"/><meta name="msapplication-TileColor" content="#00aba9"/><script>function normalizePath(_){for(;_.endsWith("/");)_=_.slice(0,-1);return`${_}/`}{let _="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.57.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.57.0/dist/assets/index-kacUN_O7.js"></script><link rel="stylesheet" crossorigin href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.57.0/dist/assets/index-CTdHCzhg.css"><link rel="manifest" href="/manifest.webmanifest"></head><body class="font-sans"><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 plausibleJSUrl=__PLAUSIBLE_JS_URL__,plausibleDataDomain=__PLAUSIBLE_DATA_DOMAIN__;!function(){var e=document.createElement("script");e.src=plausibleJSUrl,e.defer=!0,e.setAttribute("data-domain",plausibleDataDomain);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){}try{var googleAnalyticsId=__GOOGLE_ANALYTICS_ID__;!function(){var e,t,a,r,c,n;location.port||(e=window,t=document,a="script",r="ga",e.GoogleAnalyticsObject=r,e[r]=e[r]||function(){(e[r].q=e[r].q||[]).push(arguments)},e[r].l=1*new Date,c=t.createElement(a),n=t.getElementsByTagName(a)[0],c.async=1,c.src="//www.google-analytics.com/analytics.js",n.parentNode.insertBefore(c,n),ga("create",`${googleAnalyticsId}`,"auto"),ga("send","pageview"))}()}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,
|
|
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,i)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let u={};const t=s=>l(s,r),o={module:{uri:r},exports:u,require:t};e[r]=Promise.all(n.map((s=>o[s]||t(s)))).then((s=>(i(...s),u)))}}define(["./workbox-7ee6f867"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"assets/_..-5I0UWqRG.css",revision:null},{url:"assets/_...all_-B68s9hsC.js",revision:null},{url:"assets/_...all_-mCyltngd.js",revision:null},{url:"assets/_name_-CjfqvPfr.js",revision:null},{url:"assets/_plugin-vue_export-helper-DlAUqK2U.js",revision:null},{url:"assets/about-C-cjF9jO.js",revision:null},{url:"assets/Balloon.vue_vue_type_script_setup_true_lang-BZ_MJL62.js",revision:null},{url:"assets/board-DiVdPUVH.js",revision:null},{url:"assets/Board-DnZBiplC.css",revision:null},{url:"assets/board-layout-Ddotwr4-.js",revision:null},{url:"assets/Board-M3nEiC5v.js",revision:null},{url:"assets/constant-CGob-gWE.js",revision:null},{url:"assets/ContestStateBadge-BqhxSQpe.css",revision:null},{url:"assets/ContestStateBadge-IsAa8PiB.js",revision:null},{url:"assets/Countdown-BwX0pjKA.js",revision:null},{url:"assets/Countdown-CGwMuG9S.css",revision:null},{url:"assets/DataSourceInput.vue_vue_type_script_setup_true_lang-CwVxRE-c.js",revision:null},{url:"assets/default-BV_KbRwY.js",revision:null},{url:"assets/en-Bjc9Zdq9.js",revision:null},{url:"assets/Footer.vue_vue_type_script_setup_true_lang-MkbrUjXL.js",revision:null},{url:"assets/headless-Cxtb9X1L.js",revision:null},{url:"assets/home-B31uh5iL.js",revision:null},{url:"assets/index-BfIZBk7d.js",revision:null},{url:"assets/index-BPqC3WJ9.js",revision:null},{url:"assets/index-CAgdB_-E.js",revision:null},{url:"assets/index-CD2Bzcv5.css",revision:null},{url:"assets/index-CTdHCzhg.css",revision:null},{url:"assets/index-Cy4xbqNj.js",revision:null},{url:"assets/index-d753Ov31.js",revision:null},{url:"assets/index-DmBTAYlT.js",revision:null},{url:"assets/index-DPh0sBpA.js",revision:null},{url:"assets/index-hXLRQaA1.js",revision:null},{url:"assets/index-kacUN_O7.js",revision:null},{url:"assets/index-kywOXmCz.css",revision:null},{url:"assets/index-layout-BaQrY3iI.js",revision:null},{url:"assets/NavBar-BmAanNCq.js",revision:null},{url:"assets/NavBar-C0cqpBnK.css",revision:null},{url:"assets/pagination-ClXw8clh.js",revision:null},{url:"assets/query-Chl7pD8x.js",revision:null},{url:"assets/Resolver-BTlxgfNF.css",revision:null},{url:"assets/Resolver-RnjyvoQY.js",revision:null},{url:"assets/RightArrowIcon-Dma7noLJ.js",revision:null},{url:"assets/route-block-B_A1xBdJ.js",revision:null},{url:"assets/test-DKJ99bxw.js",revision:null},{url:"assets/TheInput.vue_vue_type_script_setup_true_lang-CX1T1Yaw.js",revision:null},{url:"assets/Tooltip-DzyPDwbo.css",revision:null},{url:"assets/Tooltip.vue_vue_type_script_setup_true_lang-C4y8ve-6.js",revision:null},{url:"assets/use-vmodel-DBwTGXRm.js",revision:null},{url:"assets/user-DeAJw0vU.js",revision:null},{url:"assets/virtual_pwa-register-CsMcElxS.js",revision:null},{url:"assets/workbox-window.prod.es5-CwtvwXb3.js",revision:null},{url:"assets/zh-CN-BgAN9IOl.js",revision:null},{url:"index.html",revision:"930b90e4e2ccf19ea09280599239e4fb"},{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:"e3e2be135eb58ab7933fee8cff2fd3b4"}],{}),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.
|
|
4
|
+
"version": "0.57.0",
|
|
5
5
|
"description": "XCPCIO Board App",
|
|
6
6
|
"author": "Dup4 <lyuzhi.pan@gmail.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -27,79 +27,79 @@
|
|
|
27
27
|
"src"
|
|
28
28
|
],
|
|
29
29
|
"engines": {
|
|
30
|
-
"node": ">=
|
|
30
|
+
"node": ">=20"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@tanstack/vue-query": "^5.
|
|
34
|
-
"@unhead/vue": "^2.0.
|
|
35
|
-
"@unocss/reset": "^66.
|
|
36
|
-
"@vueuse/components": "^13.
|
|
37
|
-
"@vueuse/core": "^13.
|
|
33
|
+
"@tanstack/vue-query": "^5.87.1",
|
|
34
|
+
"@unhead/vue": "^2.0.14",
|
|
35
|
+
"@unocss/reset": "^66.5.0",
|
|
36
|
+
"@vueuse/components": "^13.9.0",
|
|
37
|
+
"@vueuse/core": "^13.9.0",
|
|
38
38
|
"@vueuse/head": "^2.0.0",
|
|
39
|
-
"@vueuse/router": "^13.
|
|
40
|
-
"dayjs": "^1.11.
|
|
39
|
+
"@vueuse/router": "^13.9.0",
|
|
40
|
+
"dayjs": "^1.11.18",
|
|
41
41
|
"file-saver": "^2.0.5",
|
|
42
42
|
"floating-vue": "5.2.2",
|
|
43
43
|
"flowbite": "^3.1.2",
|
|
44
|
-
"gsap": "^3.
|
|
45
|
-
"highcharts": "^12.
|
|
44
|
+
"gsap": "^3.13.0",
|
|
45
|
+
"highcharts": "^12.4.0",
|
|
46
46
|
"highcharts-vue": "^2.0.1",
|
|
47
47
|
"lodash": "^4.17.21",
|
|
48
48
|
"nprogress": "^0.2.0",
|
|
49
|
-
"pinia": "^3.0.
|
|
49
|
+
"pinia": "^3.0.3",
|
|
50
50
|
"sleep-promise": "^9.1.0",
|
|
51
|
-
"vue": "^3.5.
|
|
51
|
+
"vue": "^3.5.21",
|
|
52
52
|
"vue-demi": "^0.14.10",
|
|
53
|
-
"vue-i18n": "^11.1.
|
|
54
|
-
"vue-router": "^4.5.
|
|
53
|
+
"vue-i18n": "^11.1.12",
|
|
54
|
+
"vue-router": "^4.5.1",
|
|
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.57.0",
|
|
58
|
+
"@xcpcio/types": "0.57.0"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@iconify/json": "^2.2.
|
|
62
|
-
"@intlify/unplugin-vue-i18n": "^
|
|
63
|
-
"@shikijs/markdown-it": "^3.
|
|
61
|
+
"@iconify/json": "^2.2.381",
|
|
62
|
+
"@intlify/unplugin-vue-i18n": "^11.0.0",
|
|
63
|
+
"@shikijs/markdown-it": "^3.12.2",
|
|
64
64
|
"@types/file-saver": "^2.0.7",
|
|
65
|
-
"@types/lodash": "^4.17.
|
|
65
|
+
"@types/lodash": "^4.17.20",
|
|
66
66
|
"@types/markdown-it-link-attributes": "^3.0.5",
|
|
67
67
|
"@types/nprogress": "^0.2.3",
|
|
68
|
-
"@vitejs/plugin-vue": "^
|
|
69
|
-
"@vue-macros/volar": "^3.0.0-beta.
|
|
68
|
+
"@vitejs/plugin-vue": "^6.0.1",
|
|
69
|
+
"@vue-macros/volar": "^3.0.0-beta.23",
|
|
70
70
|
"@vue/test-utils": "^2.4.6",
|
|
71
71
|
"critters": "^0.0.25",
|
|
72
|
-
"cross-env": "^
|
|
73
|
-
"cypress": "^
|
|
74
|
-
"cypress-vite": "^1.
|
|
75
|
-
"eslint": "^9.
|
|
76
|
-
"eslint-plugin-cypress": "^
|
|
72
|
+
"cross-env": "^10.0.0",
|
|
73
|
+
"cypress": "^15.1.0",
|
|
74
|
+
"cypress-vite": "^1.7.0",
|
|
75
|
+
"eslint": "^9.35.0",
|
|
76
|
+
"eslint-plugin-cypress": "^5.1.1",
|
|
77
77
|
"eslint-plugin-format": "^1.0.1",
|
|
78
78
|
"https-localhost": "^4.7.1",
|
|
79
|
-
"less": "^4.
|
|
79
|
+
"less": "^4.4.1",
|
|
80
80
|
"markdown-it-link-attributes": "^4.0.1",
|
|
81
|
-
"rollup": "^4.
|
|
82
|
-
"shiki": "^3.
|
|
83
|
-
"taze": "^19.0
|
|
84
|
-
"typescript": "^5.
|
|
85
|
-
"unocss": "^66.
|
|
86
|
-
"unplugin-auto-import": "^
|
|
87
|
-
"unplugin-vue-components": "^
|
|
81
|
+
"rollup": "^4.50.0",
|
|
82
|
+
"shiki": "^3.12.2",
|
|
83
|
+
"taze": "^19.5.0",
|
|
84
|
+
"typescript": "^5.9.2",
|
|
85
|
+
"unocss": "^66.5.0",
|
|
86
|
+
"unplugin-auto-import": "^20.1.0",
|
|
87
|
+
"unplugin-vue-components": "^29.0.0",
|
|
88
88
|
"unplugin-vue-macros": "^2.14.5",
|
|
89
|
-
"unplugin-vue-markdown": "^
|
|
90
|
-
"unplugin-vue-router": "^0.
|
|
91
|
-
"vite": "^
|
|
89
|
+
"unplugin-vue-markdown": "^29.1.0",
|
|
90
|
+
"unplugin-vue-router": "^0.15.0",
|
|
91
|
+
"vite": "^7.1.4",
|
|
92
92
|
"vite-bundle-visualizer": "^1.2.1",
|
|
93
93
|
"vite-plugin-html": "^3.2.2",
|
|
94
|
-
"vite-plugin-inspect": "^11.
|
|
95
|
-
"vite-plugin-pwa": "^1.0.
|
|
96
|
-
"vite-plugin-vue-devtools": "^
|
|
94
|
+
"vite-plugin-inspect": "^11.3.3",
|
|
95
|
+
"vite-plugin-pwa": "^1.0.3",
|
|
96
|
+
"vite-plugin-vue-devtools": "^8.0.1",
|
|
97
97
|
"vite-plugin-vue-layouts": "^0.11.0",
|
|
98
|
-
"vite-plugin-webfont-dl": "^3.
|
|
99
|
-
"vite-ssg": "^
|
|
100
|
-
"vite-ssg-sitemap": "^0.
|
|
101
|
-
"vitest": "^3.
|
|
102
|
-
"vue-tsc": "^
|
|
98
|
+
"vite-plugin-webfont-dl": "^3.11.1",
|
|
99
|
+
"vite-ssg": "^28.1.0",
|
|
100
|
+
"vite-ssg-sitemap": "^0.10.0",
|
|
101
|
+
"vitest": "^3.2.4",
|
|
102
|
+
"vue-tsc": "^3.0.6",
|
|
103
103
|
"workbox-build": "^7.3.0",
|
|
104
104
|
"workbox-window": "^7.3.0"
|
|
105
105
|
},
|
package/src/auto-imports.d.ts
CHANGED
|
@@ -52,6 +52,7 @@ declare global {
|
|
|
52
52
|
const extendRef: typeof import('@vueuse/core')['extendRef']
|
|
53
53
|
const getCurrentInstance: typeof import('vue')['getCurrentInstance']
|
|
54
54
|
const getCurrentScope: typeof import('vue')['getCurrentScope']
|
|
55
|
+
const getCurrentWatcher: typeof import('vue')['getCurrentWatcher']
|
|
55
56
|
const getDataSourceUrl: typeof import('./composables/query')['getDataSourceUrl']
|
|
56
57
|
const getLocalStorageKeyForFilterOrganizations: typeof import('./composables/useLocalStorage')['getLocalStorageKeyForFilterOrganizations']
|
|
57
58
|
const getLocalStorageKeyForFilterTeams: typeof import('./composables/useLocalStorage')['getLocalStorageKeyForFilterTeams']
|
|
@@ -74,6 +75,7 @@ declare global {
|
|
|
74
75
|
const isReactive: typeof import('vue')['isReactive']
|
|
75
76
|
const isReadonly: typeof import('vue')['isReadonly']
|
|
76
77
|
const isRef: typeof import('vue')['isRef']
|
|
78
|
+
const isShallow: typeof import('vue')['isShallow']
|
|
77
79
|
const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable']
|
|
78
80
|
const markRaw: typeof import('vue')['markRaw']
|
|
79
81
|
const nextTick: typeof import('vue')['nextTick']
|
|
@@ -299,6 +301,7 @@ declare global {
|
|
|
299
301
|
const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn']
|
|
300
302
|
const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory']
|
|
301
303
|
const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo']
|
|
304
|
+
const useTimeAgoIntl: typeof import('@vueuse/core')['useTimeAgoIntl']
|
|
302
305
|
const useTimeout: typeof import('@vueuse/core')['useTimeout']
|
|
303
306
|
const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn']
|
|
304
307
|
const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll']
|
|
@@ -343,7 +346,7 @@ declare global {
|
|
|
343
346
|
// for type re-export
|
|
344
347
|
declare global {
|
|
345
348
|
// @ts-ignore
|
|
346
|
-
export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
|
|
349
|
+
export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, ShallowRef, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
|
|
347
350
|
import('vue')
|
|
348
351
|
// @ts-ignore
|
|
349
352
|
export type { Pagination } from './composables/pagination'
|
|
@@ -403,6 +406,7 @@ declare module 'vue' {
|
|
|
403
406
|
readonly extendRef: UnwrapRef<typeof import('@vueuse/core')['extendRef']>
|
|
404
407
|
readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']>
|
|
405
408
|
readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']>
|
|
409
|
+
readonly getCurrentWatcher: UnwrapRef<typeof import('vue')['getCurrentWatcher']>
|
|
406
410
|
readonly getDataSourceUrl: UnwrapRef<typeof import('./composables/query')['getDataSourceUrl']>
|
|
407
411
|
readonly getLocalStorageKeyForFilterOrganizations: UnwrapRef<typeof import('./composables/useLocalStorage')['getLocalStorageKeyForFilterOrganizations']>
|
|
408
412
|
readonly getLocalStorageKeyForFilterTeams: UnwrapRef<typeof import('./composables/useLocalStorage')['getLocalStorageKeyForFilterTeams']>
|
|
@@ -424,6 +428,7 @@ declare module 'vue' {
|
|
|
424
428
|
readonly isReactive: UnwrapRef<typeof import('vue')['isReactive']>
|
|
425
429
|
readonly isReadonly: UnwrapRef<typeof import('vue')['isReadonly']>
|
|
426
430
|
readonly isRef: UnwrapRef<typeof import('vue')['isRef']>
|
|
431
|
+
readonly isShallow: UnwrapRef<typeof import('vue')['isShallow']>
|
|
427
432
|
readonly makeDestructurable: UnwrapRef<typeof import('@vueuse/core')['makeDestructurable']>
|
|
428
433
|
readonly markRaw: UnwrapRef<typeof import('vue')['markRaw']>
|
|
429
434
|
readonly nextTick: UnwrapRef<typeof import('vue')['nextTick']>
|
|
@@ -646,6 +651,7 @@ declare module 'vue' {
|
|
|
646
651
|
readonly useThrottleFn: UnwrapRef<typeof import('@vueuse/core')['useThrottleFn']>
|
|
647
652
|
readonly useThrottledRefHistory: UnwrapRef<typeof import('@vueuse/core')['useThrottledRefHistory']>
|
|
648
653
|
readonly useTimeAgo: UnwrapRef<typeof import('@vueuse/core')['useTimeAgo']>
|
|
654
|
+
readonly useTimeAgoIntl: UnwrapRef<typeof import('@vueuse/core')['useTimeAgoIntl']>
|
|
649
655
|
readonly useTimeout: UnwrapRef<typeof import('@vueuse/core')['useTimeout']>
|
|
650
656
|
readonly useTimeoutFn: UnwrapRef<typeof import('@vueuse/core')['useTimeoutFn']>
|
|
651
657
|
readonly useTimeoutPoll: UnwrapRef<typeof import('@vueuse/core')['useTimeoutPoll']>
|
|
@@ -35,7 +35,7 @@ watch(data, async () => {
|
|
|
35
35
|
title.value = `${contestData.value.name} | ${BALLOON_TITLE_SUFFIX}`;
|
|
36
36
|
|
|
37
37
|
teamsData.value = createTeams(data.value?.teams as ITeams);
|
|
38
|
-
submissionsData.value = createSubmissions(data.value?.submissions as ISubmissions);
|
|
38
|
+
submissionsData.value = createSubmissions(data.value?.submissions as ISubmissions, contestData.value);
|
|
39
39
|
|
|
40
40
|
reBuildBalloons();
|
|
41
41
|
|
|
@@ -40,7 +40,7 @@ watch(data, async () => {
|
|
|
40
40
|
title.value = `${contest.value.name} | ${RESOLVER_TITLE_SUFFIX}`;
|
|
41
41
|
|
|
42
42
|
teams.value = createTeams(data.value?.teams as ITeams);
|
|
43
|
-
submissions.value = createSubmissions(data.value?.submissions as ISubmissions);
|
|
43
|
+
submissions.value = createSubmissions(data.value?.submissions as ISubmissions, contest.value);
|
|
44
44
|
|
|
45
45
|
reBuildResolver();
|
|
46
46
|
|
|
@@ -110,7 +110,7 @@ watch(data, async () => {
|
|
|
110
110
|
title.value = `${contestData.value.name} | ${TITLE_SUFFIX}`;
|
|
111
111
|
|
|
112
112
|
teamsData.value = createTeams(data.value?.teams as ITeams);
|
|
113
|
-
submissionsData.value = createSubmissions(data.value?.submissions as ISubmissions);
|
|
113
|
+
submissionsData.value = createSubmissions(data.value?.submissions as ISubmissions, contestData.value);
|
|
114
114
|
|
|
115
115
|
if (rankOptions.value.enableFilterSubmissionsByTimestamp) {
|
|
116
116
|
return;
|
|
@@ -239,6 +239,15 @@ function clearAutoScrollInterval() {
|
|
|
239
239
|
}
|
|
240
240
|
|
|
241
241
|
onKeyStroke("S", (_e) => {
|
|
242
|
+
if (!isHiddenOptionsModal.value) {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
const activeElement = document.activeElement;
|
|
247
|
+
if (activeElement?.matches("input, textarea, select, [contenteditable]")) {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
|
|
242
251
|
enableAutoScroll.value = !enableAutoScroll.value;
|
|
243
252
|
|
|
244
253
|
if (enableAutoScroll.value === true) {
|
|
@@ -360,6 +369,7 @@ const widthClass = "sm:w-[1260px] xl:w-screen";
|
|
|
360
369
|
<div class="max-w-[92%]">
|
|
361
370
|
<img
|
|
362
371
|
:src="getImageSource(rank.contest.banner, `${DATA_HOST}${fixPath(route.path).slice(1)}`)"
|
|
372
|
+
class="w-screen"
|
|
363
373
|
alt="banner"
|
|
364
374
|
>
|
|
365
375
|
</div>
|
|
@@ -68,7 +68,7 @@ function startDrag(event: MouseEvent) {
|
|
|
68
68
|
barLeft = Math.min(barLeft, scroll.value.offsetWidth - bar.value.offsetWidth);
|
|
69
69
|
|
|
70
70
|
const maskWidth
|
|
71
|
-
|
|
71
|
+
= scroll.value.offsetWidth * Number.parseInt(mask.value.style?.width) * 0.01;
|
|
72
72
|
|
|
73
73
|
// When dragging beyond the current time bar,
|
|
74
74
|
// then automatic updating resumes
|
package/src/typed-router.d.ts
CHANGED
|
@@ -30,4 +30,72 @@ declare module 'vue-router/auto-routes' {
|
|
|
30
30
|
'/resolver/': RouteRecordInfo<'/resolver/', '/resolver', Record<never, never>, Record<never, never>>,
|
|
31
31
|
'/test': RouteRecordInfo<'/test', '/test', Record<never, never>, Record<never, never>>,
|
|
32
32
|
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Route file to route info map by unplugin-vue-router.
|
|
36
|
+
* Used by the volar plugin to automatically type useRoute()
|
|
37
|
+
*
|
|
38
|
+
* Each key is a file path relative to the project root with 2 properties:
|
|
39
|
+
* - routes: union of route names of the possible routes when in this page (passed to useRoute<...>())
|
|
40
|
+
* - views: names of nested views (can be passed to <RouterView name="...">)
|
|
41
|
+
*
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
44
|
+
export interface _RouteFileInfoMap {
|
|
45
|
+
'src/pages/index.vue': {
|
|
46
|
+
routes: '/'
|
|
47
|
+
views: never
|
|
48
|
+
}
|
|
49
|
+
'src/pages/[...all].vue': {
|
|
50
|
+
routes: '/[...all]'
|
|
51
|
+
views: never
|
|
52
|
+
}
|
|
53
|
+
'src/pages/about.md': {
|
|
54
|
+
routes: '/about'
|
|
55
|
+
views: never
|
|
56
|
+
}
|
|
57
|
+
'src/pages/balloon/index.vue': {
|
|
58
|
+
routes: '/balloon/'
|
|
59
|
+
views: never
|
|
60
|
+
}
|
|
61
|
+
'src/pages/board.vue': {
|
|
62
|
+
routes: '/board'
|
|
63
|
+
views: never
|
|
64
|
+
}
|
|
65
|
+
'src/pages/countdown/index.vue': {
|
|
66
|
+
routes: '/countdown/'
|
|
67
|
+
views: never
|
|
68
|
+
}
|
|
69
|
+
'src/pages/hi/[name].vue': {
|
|
70
|
+
routes: '/hi/[name]'
|
|
71
|
+
views: never
|
|
72
|
+
}
|
|
73
|
+
'src/pages/rating/index.vue': {
|
|
74
|
+
routes: '/rating/'
|
|
75
|
+
views: never
|
|
76
|
+
}
|
|
77
|
+
'src/pages/rating/[...all].vue': {
|
|
78
|
+
routes: '/rating/[...all]'
|
|
79
|
+
views: never
|
|
80
|
+
}
|
|
81
|
+
'src/pages/resolver/index.vue': {
|
|
82
|
+
routes: '/resolver/'
|
|
83
|
+
views: never
|
|
84
|
+
}
|
|
85
|
+
'src/pages/test.vue': {
|
|
86
|
+
routes: '/test'
|
|
87
|
+
views: never
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Get a union of possible route names in a certain route component file.
|
|
93
|
+
* Used by the volar plugin to automatically type useRoute()
|
|
94
|
+
*
|
|
95
|
+
* @internal
|
|
96
|
+
*/
|
|
97
|
+
export type _RouteNamesForFilePath<FilePath extends string> =
|
|
98
|
+
_RouteFileInfoMap extends Record<FilePath, infer Info>
|
|
99
|
+
? Info['routes']
|
|
100
|
+
: keyof RouteNamedMap
|
|
33
101
|
}
|
package/vite.config.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
+
import process from "node:process";
|
|
2
3
|
import VueI18n from "@intlify/unplugin-vue-i18n/vite";
|
|
3
4
|
import Shiki from "@shikijs/markdown-it";
|
|
4
5
|
import { unheadVueComposablesImports } from "@unhead/vue";
|
|
@@ -22,8 +23,7 @@ import generateSitemap from "vite-ssg-sitemap";
|
|
|
22
23
|
import "vitest/config";
|
|
23
24
|
|
|
24
25
|
const proxyConfig = {
|
|
25
|
-
target: "https://board.xcpcio.com",
|
|
26
|
-
// target: "http://127.0.0.1:8080",
|
|
26
|
+
target: process.env.PROXY_TARGET || "https://board.xcpcio.com",
|
|
27
27
|
changeOrigin: true,
|
|
28
28
|
};
|
|
29
29
|
|
|
@@ -35,6 +35,12 @@ export default defineConfig({
|
|
|
35
35
|
},
|
|
36
36
|
|
|
37
37
|
plugins: [
|
|
38
|
+
// https://github.com/posva/unplugin-vue-router
|
|
39
|
+
VueRouter({
|
|
40
|
+
extensions: [".vue", ".md"],
|
|
41
|
+
dts: "src/typed-router.d.ts",
|
|
42
|
+
}),
|
|
43
|
+
|
|
38
44
|
VueMacros({
|
|
39
45
|
plugins: {
|
|
40
46
|
vue: Vue({
|
|
@@ -43,12 +49,6 @@ export default defineConfig({
|
|
|
43
49
|
},
|
|
44
50
|
}),
|
|
45
51
|
|
|
46
|
-
// https://github.com/posva/unplugin-vue-router
|
|
47
|
-
VueRouter({
|
|
48
|
-
extensions: [".vue", ".md"],
|
|
49
|
-
dts: "src/typed-router.d.ts",
|
|
50
|
-
}),
|
|
51
|
-
|
|
52
52
|
// https://github.com/JohnCampionJr/vite-plugin-vue-layouts
|
|
53
53
|
Layouts(),
|
|
54
54
|
|
|
@@ -147,12 +147,12 @@ export default defineConfig({
|
|
|
147
147
|
include: [path.resolve(__dirname, "locales/**")],
|
|
148
148
|
}),
|
|
149
149
|
|
|
150
|
-
// https://github.com/feat-agency/vite-plugin-webfont-dl
|
|
151
|
-
WebfontDownload(),
|
|
152
|
-
|
|
153
150
|
// https://github.com/webfansplz/vite-plugin-vue-devtools
|
|
154
151
|
VueDevTools(),
|
|
155
152
|
|
|
153
|
+
// https://github.com/feat-agency/vite-plugin-webfont-dl
|
|
154
|
+
WebfontDownload(),
|
|
155
|
+
|
|
156
156
|
// https://github.com/vbenjs/vite-plugin-html
|
|
157
157
|
createHtmlPlugin({
|
|
158
158
|
minify: {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as C,f as b,p as i,q as E,c as n,o as s,s as j,h as e,n as L,b as o,K as w,k as f,A as N,u as F,m as V,C as z,F as I,E as R,G as U}from"./index-CYsJ2gG-.js";import{a as A,b as O,d as q,B as G,R as K}from"./index-BYh7ktqe.js";import{B as g}from"./constant-2MSuUQN9.js";import{u as M}from"./query-DfOnN8jV.js";const Q={flex:"","flex-1":"","flex-col":"","justify-center":"","items-start":""},X={class:"resolver-team-name",truncate:"","overflow-hidden":""},H={"w-32":"",flex:"","flex-shrink-0":"","flex-row":"","justify-start":"","items-center":""},J=C({__name:"BalloonBlock",props:{index:null,balloon:null},setup(p){const v=p,k=b(()=>v.index),l=b(()=>v.balloon),c=i(null),u=E(c);function _(t){return[t.location,t.organization,t.name].filter(y=>y).join(" - ")}const m=b(()=>l.value.problem.balloonColor);return(t,d)=>(s(),n("div",{ref_key:"el",ref:c,"h-24":""},[e(u)?(s(),n("div",{key:0,"h-24":"",flex:"","flex-row":"","gap-x-4":"","font-mono":"","text-4xl":"",class:L([e(k)%2===0?"bg-resolver-bg-0":"bg-resolver-bg-1"])},[o("div",{"w-20":"",flex:"","flex-shrink-0":"","justify-center":"","items-center":"",style:w({backgroundColor:e(m).background_color})},[o("div",{style:w({color:e(m).color})},f(e(l).problem.label),5)],4),o("div",Q,[o("div",X,f(_(e(l).team)),1),d[0]||(d[0]=o("div",{flex:"","flex-row":"","text-sm":"","items-start":"","gap-x-2":""},null,-1))]),o("div",H,f(e(l).submission.timestampToMinute),1)],2)):j("",!0)],512))}}),P={class:"bg-[#323443]","text-gray-200":"","w-screen":"","h-screen":""},W={key:0},Y={flex:"","flex-col":"","justify-center":"","items-center":"","w-screen":"","h-screen":"","text-xl":"",italic:""},Z={key:0},ee={key:1},oe={flex:"","flex-col":"","justify-between":""},ae=C({__name:"Balloon",props:{dataSourceUrl:null},setup(p){const v=p,k=N(g),{t:l}=F(),c=i(!1),u=i({}),_=i([]),m=i([]),t=i({}),d=V();function y(){const r=new K(u.value,_.value,m.value);r.buildBalloons(),t.value=r}const{data:a,isError:S,error:T}=M(v.dataSourceUrl,d);z(a,async()=>{var r,h,x;a.value===null||a.value===void 0||(u.value=A((r=a.value)==null?void 0:r.contest),k.value=`${u.value.name} | ${g}`,_.value=O((h=a.value)==null?void 0:h.teams),m.value=q((x=a.value)==null?void 0:x.submissions),y(),c.value=!0)},{immediate:!0});const $=b(()=>t.value.balloons.sort(G.compare).reverse().slice(0,256));return(r,h)=>{const x=J;return s(),n("div",P,[e(c)?(s(),n("div",ee,[o("div",oe,[(s(!0),n(I,null,R(e($),(B,D)=>(s(),U(x,{key:B.key,index:D,balloon:B},null,8,["index","balloon"]))),128))])])):(s(),n("div",W,[o("div",Y,[o("div",null,f(e(l)("common.loading"))+"... ",1),e(S)?(s(),n("div",Z,f(e(T)),1)):j("",!0)])]))])}}});export{ae as _};
|