@xcpcio/board-app 0.43.0 → 0.44.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/404.html +1 -1
- package/dist/assets/Board-4569fc6c.js +3 -0
- package/dist/assets/{Board-78c68c35.css → Board-916a327e.css} +1 -1
- package/dist/assets/DataSourceInput.vue_vue_type_script_setup_true_lang-86e39d12.js +1 -0
- package/dist/assets/{TheInput.vue_vue_type_script_setup_true_lang-9cd306c7.js → TheInput.vue_vue_type_script_setup_true_lang-6e8ca92c.js} +1 -1
- package/dist/assets/_...all_-de087eb0.js +1 -0
- package/dist/assets/_name_-06edfd14.js +1 -0
- package/dist/assets/{about-8408eddf.js → about-c21c664b.js} +1 -1
- package/dist/assets/board-472d3cb3.js +1 -0
- package/dist/assets/{board-layout-db1006f7.js → board-layout-d77cb1f2.js} +1 -1
- package/dist/assets/{headless-4685ba2c.js → headless-fb293940.js} +1 -1
- package/dist/assets/{home-649aa1f3.js → home-20deb86b.js} +1 -1
- package/dist/assets/index-125c12c1.js +1 -0
- package/dist/assets/index-3dc9c47f.js +1 -0
- package/dist/assets/{index-a4eda403.js → index-40d709ed.js} +71 -71
- package/dist/assets/{index-layout-f67288b7.js → index-layout-d4fc4afd.js} +1 -1
- package/dist/assets/query-7b63ef07.js +1 -0
- package/dist/assets/{test-838ba8f2.js → test-d415daee.js} +1 -1
- package/dist/assets/{user-f204821f.js → user-1cebd436.js} +1 -1
- package/dist/assets/{virtual_pwa-register-53ed75bd.js → virtual_pwa-register-11341dab.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/package.json +3 -3
- package/src/auto-imports.d.ts +3 -0
- package/src/components/battle-of-giants/GiantsOptions.vue +1 -1
- package/src/components/board/Board.vue +10 -0
- package/src/components/board/OptionsModal.vue +24 -3
- package/src/composables/query.ts +8 -0
- package/src/composables/useQueryBoardData.ts +3 -2
- package/src/pages/index.vue +4 -1
- package/dist/assets/Board-5ab7c967.js +0 -3
- package/dist/assets/DataSourceInput.vue_vue_type_script_setup_true_lang-ae8a0f7c.js +0 -1
- package/dist/assets/_...all_-b536c4f8.js +0 -1
- package/dist/assets/_name_-73ea91e2.js +0 -1
- package/dist/assets/board-d5243ade.js +0 -1
- package/dist/assets/index-41b501c0.js +0 -1
- package/dist/assets/index-4339f7e3.js +0 -1
- package/dist/assets/useQueryBoardData-93b68e58.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as s,r as a,o as c,c as r,b as e,d as _,F as m,e as p,f as l}from"./index-
|
|
1
|
+
import{a as s,r as a,o as c,c as r,b as e,d as _,F as m,e as p,f as l}from"./index-40d709ed.js";const i={},d={class:"lg:mt-[-52px]","py-2":"","text-gray-700":"","dark:text-gray-200":""};function u(x,f){const o=p,t=a("RouterView"),n=l;return c(),r(m,null,[e(o,{width:"sm:w-[1024px] lg:w-screen"}),_("main",d,[e(t),e(n,{class:"sm:w-[1024px] lg:w-screen"})])],64)}const w=s(i,[["render",u]]);export{w as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{at as K,au as S,av as B,aw as U,ax as D,ay as W,az as N,aA as V,aB as A,aC as z,aD as H,aE as $,aF as G,aG as J,s as P,aH as Y,w as b,aI as x,aJ as _,aK as X,aL as Z,aM as ee,l as C,aN as te,aO as se,ai as j}from"./index-40d709ed.js";class re extends K{constructor(e,t){super(),this.client=e,this.options=t,this.trackedProps=new Set,this.selectError=null,this.bindMethods(),this.setOptions(t)}bindMethods(){this.remove=this.remove.bind(this),this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.currentQuery.addObserver(this),M(this.currentQuery,this.options)&&this.executeFetch(),this.updateTimers())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return E(this.currentQuery,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return E(this.currentQuery,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.clearStaleTimeout(),this.clearRefetchInterval(),this.currentQuery.removeObserver(this)}setOptions(e,t){const s=this.options,i=this.currentQuery;if(this.options=this.client.defaultQueryOptions(e),S(s,this.options)||this.client.getQueryCache().notify({type:"observerOptionsUpdated",query:this.currentQuery,observer:this}),typeof this.options.enabled<"u"&&typeof this.options.enabled!="boolean")throw new Error("Expected enabled to be a boolean");this.options.queryKey||(this.options.queryKey=s.queryKey),this.updateQuery();const n=this.hasListeners();n&&k(this.currentQuery,i,this.options,s)&&this.executeFetch(),this.updateResult(t),n&&(this.currentQuery!==i||this.options.enabled!==s.enabled||this.options.staleTime!==s.staleTime)&&this.updateStaleTimeout();const u=this.computeRefetchInterval();n&&(this.currentQuery!==i||this.options.enabled!==s.enabled||u!==this.currentRefetchInterval)&&this.updateRefetchInterval(u)}getOptimisticResult(e){const t=this.client.getQueryCache().build(this.client,e),s=this.createResult(t,e);return ie(this,s,e)&&(this.currentResult=s,this.currentResultOptions=this.options,this.currentResultState=this.currentQuery.state),s}getCurrentResult(){return this.currentResult}trackResult(e){const t={};return Object.keys(e).forEach(s=>{Object.defineProperty(t,s,{configurable:!1,enumerable:!0,get:()=>(this.trackedProps.add(s),e[s])})}),t}getCurrentQuery(){return this.currentQuery}remove(){this.client.getQueryCache().remove(this.currentQuery)}refetch({refetchPage:e,...t}={}){return this.fetch({...t,meta:{refetchPage:e}})}fetchOptimistic(e){const t=this.client.defaultQueryOptions(e),s=this.client.getQueryCache().build(this.client,t);return s.isFetchingOptimistic=!0,s.fetch().then(()=>this.createResult(s,t))}fetch(e){var t;return this.executeFetch({...e,cancelRefetch:(t=e.cancelRefetch)!=null?t:!0}).then(()=>(this.updateResult(),this.currentResult))}executeFetch(e){this.updateQuery();let t=this.currentQuery.fetch(this.options,e);return e!=null&&e.throwOnError||(t=t.catch(B)),t}updateStaleTimeout(){if(this.clearStaleTimeout(),U||this.currentResult.isStale||!D(this.options.staleTime))return;const t=W(this.currentResult.dataUpdatedAt,this.options.staleTime)+1;this.staleTimeoutId=setTimeout(()=>{this.currentResult.isStale||this.updateResult()},t)}computeRefetchInterval(){var e;return typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.currentResult.data,this.currentQuery):(e=this.options.refetchInterval)!=null?e:!1}updateRefetchInterval(e){this.clearRefetchInterval(),this.currentRefetchInterval=e,!(U||this.options.enabled===!1||!D(this.currentRefetchInterval)||this.currentRefetchInterval===0)&&(this.refetchIntervalId=setInterval(()=>{(this.options.refetchIntervalInBackground||N.isFocused())&&this.executeFetch()},this.currentRefetchInterval))}updateTimers(){this.updateStaleTimeout(),this.updateRefetchInterval(this.computeRefetchInterval())}clearStaleTimeout(){this.staleTimeoutId&&(clearTimeout(this.staleTimeoutId),this.staleTimeoutId=void 0)}clearRefetchInterval(){this.refetchIntervalId&&(clearInterval(this.refetchIntervalId),this.refetchIntervalId=void 0)}createResult(e,t){const s=this.currentQuery,i=this.options,n=this.currentResult,u=this.currentResultState,a=this.currentResultOptions,l=e!==s,h=l?e.state:this.currentQueryInitialState,c=l?this.currentResult:this.previousQueryResult,{state:o}=e;let{dataUpdatedAt:d,error:R,errorUpdatedAt:m,fetchStatus:v,status:f}=o,w=!1,F=!1,y;if(t._optimisticResults){const p=this.hasListeners(),O=!p&&M(e,t),q=p&&k(e,s,t,i);(O||q)&&(v=V(e.options.networkMode)?"fetching":"paused",d||(f="loading")),t._optimisticResults==="isRestoring"&&(v="idle")}if(t.keepPreviousData&&!o.dataUpdatedAt&&c!=null&&c.isSuccess&&f!=="error")y=c.data,d=c.dataUpdatedAt,f=c.status,w=!0;else if(t.select&&typeof o.data<"u")if(n&&o.data===(u==null?void 0:u.data)&&t.select===this.selectFn)y=this.selectResult;else try{this.selectFn=t.select,y=t.select(o.data),y=A(n==null?void 0:n.data,y,t),this.selectResult=y,this.selectError=null}catch(p){this.selectError=p}else y=o.data;if(typeof t.placeholderData<"u"&&typeof y>"u"&&f==="loading"){let p;if(n!=null&&n.isPlaceholderData&&t.placeholderData===(a==null?void 0:a.placeholderData))p=n.data;else if(p=typeof t.placeholderData=="function"?t.placeholderData():t.placeholderData,t.select&&typeof p<"u")try{p=t.select(p),this.selectError=null}catch(O){this.selectError=O}typeof p<"u"&&(f="success",y=A(n==null?void 0:n.data,p,t),F=!0)}this.selectError&&(R=this.selectError,y=this.selectResult,m=Date.now(),f="error");const Q=v==="fetching",g=f==="loading",I=f==="error";return{status:f,fetchStatus:v,isLoading:g,isSuccess:f==="success",isError:I,isInitialLoading:g&&Q,data:y,dataUpdatedAt:d,error:R,errorUpdatedAt:m,failureCount:o.fetchFailureCount,failureReason:o.fetchFailureReason,errorUpdateCount:o.errorUpdateCount,isFetched:o.dataUpdateCount>0||o.errorUpdateCount>0,isFetchedAfterMount:o.dataUpdateCount>h.dataUpdateCount||o.errorUpdateCount>h.errorUpdateCount,isFetching:Q,isRefetching:Q&&!g,isLoadingError:I&&o.dataUpdatedAt===0,isPaused:v==="paused",isPlaceholderData:F,isPreviousData:w,isRefetchError:I&&o.dataUpdatedAt!==0,isStale:T(e,t),refetch:this.refetch,remove:this.remove}}updateResult(e){const t=this.currentResult,s=this.createResult(this.currentQuery,this.options);if(this.currentResultState=this.currentQuery.state,this.currentResultOptions=this.options,S(s,t))return;this.currentResult=s;const i={cache:!0},n=()=>{if(!t)return!0;const{notifyOnChangeProps:u}=this.options,a=typeof u=="function"?u():u;if(a==="all"||!a&&!this.trackedProps.size)return!0;const l=new Set(a??this.trackedProps);return this.options.useErrorBoundary&&l.add("error"),Object.keys(this.currentResult).some(h=>{const c=h;return this.currentResult[c]!==t[c]&&l.has(c)})};(e==null?void 0:e.listeners)!==!1&&n()&&(i.listeners=!0),this.notify({...i,...e})}updateQuery(){const e=this.client.getQueryCache().build(this.client,this.options);if(e===this.currentQuery)return;const t=this.currentQuery;this.currentQuery=e,this.currentQueryInitialState=e.state,this.previousQueryResult=this.currentResult,this.hasListeners()&&(t==null||t.removeObserver(this),e.addObserver(this))}onQueryUpdate(e){const t={};e.type==="success"?t.onSuccess=!e.manual:e.type==="error"&&!z(e.error)&&(t.onError=!0),this.updateResult(t),this.hasListeners()&&this.updateTimers()}notify(e){H.batch(()=>{if(e.onSuccess){var t,s,i,n;(t=(s=this.options).onSuccess)==null||t.call(s,this.currentResult.data),(i=(n=this.options).onSettled)==null||i.call(n,this.currentResult.data,null)}else if(e.onError){var u,a,l,h;(u=(a=this.options).onError)==null||u.call(a,this.currentResult.error),(l=(h=this.options).onSettled)==null||l.call(h,void 0,this.currentResult.error)}e.listeners&&this.listeners.forEach(({listener:c})=>{c(this.currentResult)}),e.cache&&this.client.getQueryCache().notify({query:this.currentQuery,type:"observerResultsUpdated"})})}}function ne(r,e){return e.enabled!==!1&&!r.state.dataUpdatedAt&&!(r.state.status==="error"&&e.retryOnMount===!1)}function M(r,e){return ne(r,e)||r.state.dataUpdatedAt>0&&E(r,e,e.refetchOnMount)}function E(r,e,t){if(e.enabled!==!1){const s=typeof t=="function"?t(r):t;return s==="always"||s!==!1&&T(r,e)}return!1}function k(r,e,t,s){return t.enabled!==!1&&(r!==e||s.enabled===!1)&&(!t.suspense||r.state.status!=="error")&&T(r,t)}function T(r,e){return r.isStaleByTime(e.staleTime)}function ie(r,e,t){return t.keepPreviousData?!1:t.placeholderData!==void 0?e.isPlaceholderData:!S(r.getCurrentResult(),e)}function ue(r=""){var e;if(!((e=$())==null?void 0:e.proxy))throw new Error("vue-query hooks can only be used inside setup() function.");const s=J(r),i=G(s);if(!i)throw new Error("No 'queryClient' found in Vue context, use 'VueQueryPlugin' to properly initialize the library.");return i}function ae(r,e,t={},s={}){var i;const n=P(()=>ce(e,t,s)),u=(i=n.value.queryClient)!=null?i:ue(n.value.queryClientKey),a=P(()=>{const d=u.defaultQueryOptions(n.value);return d._optimisticResults=u.isRestoring.value?"isRestoring":"optimistic",d}),l=new r(u,a.value),h=Y(l.getCurrentResult());let c=()=>{};b(u.isRestoring,d=>{d||(c(),c=l.subscribe(R=>{x(h,R)}))},{immediate:!0}),b(a,()=>{l.setOptions(a.value),x(h,l.getCurrentResult())}),_(()=>{c()});const o=()=>new Promise((d,R)=>{let m=()=>{};const v=()=>{if(a.value.enabled!==!1){const f=l.getOptimisticResult(a.value);f.isStale?(m(),l.fetchOptimistic(a.value).then(d,R)):(m(),d(f))}};v(),m=b(a,v,{deep:!0})});return b(()=>h.error,d=>{if(h.isError&&!h.isFetching&&X(a.value.useErrorBoundary,[d,l.getCurrentQuery()]))throw d}),{...Z(ee(h)),suspense:o}}function ce(r,e={},t={}){const s=C(r),i=C(e),n=C(t);let u=s;return te(s)?typeof i=="function"?u={...n,queryKey:s,queryFn:i}:u={...i,queryKey:s}:u=s,se(u)}function le(r,e,t){const s=ae(re,r,e,t);return{...s,refetch:s.refetch.value,remove:s.remove.value}}const oe=3,L=30*1e3;async function he(r,e){const t=r.startsWith("/")?r.slice(1):r;let s=`${window.DATA_HOST}${t}`;r.startsWith("http")&&(s=r),s.endsWith("/")&&(s=s.slice(0,-1));const i=await fetch(`${s}/config.json?t=${e??0}`),n=await fetch(`${s}/team.json?t=${e??0}`),u=await fetch(`${s}/run.json?t=${e??0}`),{status:a,statusText:l}=i;if(a>=300||a<200)throw new Error(`fetch data failed. [status=${a}] [statusText=${l}]`);return Promise.all([i.json(),n.json(),u.json()]).then(c=>({contest:c[0],teams:c[1],submissions:c[2]}))}function pe(r,e){const t=Math.floor(e.value.getTime()/1e3);return le({queryKey:[r,t],queryFn:()=>he(r,t),retry:oe,staleTime:L,refetchInterval:L})}function ye(){return j("data-source","",{transform:String})}function ve(){return j("battle-of-giants","",{transform:String})}export{ve as a,ye as g,pe as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as m}from"./TheInput.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import{_ as m}from"./TheInput.vue_vue_type_script_setup_true_lang-6e8ca92c.js";import{g as _,i as p,G as f,u as h,o as b,c as v,d as e,t as n,l as o,b as y,H as x,I as g,q as l}from"./index-40d709ed.js";import{u as w}from"./user-1cebd436.js";const V={flex:"","flex-col":"","justify-center":"","items-center":""},k=e("div",{"text-4xl":""},[e("div",{"i-carbon-campsite":""})],-1),I=e("p",null,[e("a",{rel:"noreferrer",href:"https://github.com/antfu/vitesse",target:"_blank"}," Vitesse ")],-1),B={"text-sm":"","opacity-75":""},C=e("div",{"py-4":""},null,-1),K={"w-48":""},N={class:"hidden",for:"input"},R=["disabled"],U=_({name:"IndexPage",__name:"test",setup(S){const r=w(),t=p(r.savedName),c=f();function a(){t.value&&c.push(`/hi/${encodeURIComponent(t.value)}`)}const{t:s}=h();return($,i)=>{const u=m;return b(),v("div",V,[k,I,e("p",null,[e("em",B,n(o(s)("intro.desc")),1)]),C,e("div",K,[y(u,{modelValue:o(t),"onUpdate:modelValue":i[0]||(i[0]=d=>x(t)?t.value=d:null),placeholder:o(s)("intro.whats-your-name"),autocomplete:"false",onKeydown:g(a,["enter"])},null,8,["modelValue","placeholder","onKeydown"]),e("label",N,n(o(s)("intro.whats-your-name")),1)]),e("div",null,[e("button",{"m-3":"","text-sm":"",btn:"",disabled:!o(t),onClick:a},n(o(s)("button.go")),9,R)])])}}});typeof l=="function"&&l(U);export{U as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aS as m,i as r,s as t}from"./index-
|
|
1
|
+
import{aS as m,i as r,s as t}from"./index-40d709ed.js";const l=m("user",()=>{const e=r(""),s=r(new Set),o=t(()=>Array.from(s.value)),u=t(()=>o.value.filter(a=>a!==e.value));function n(a){e.value&&s.value.add(e.value),e.value=a}return{setNewName:n,otherNames:u,savedName:e}});export{l as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as u}from"./index-
|
|
1
|
+
import{_ as u}from"./index-40d709ed.js";function p(d={}){const{immediate:l=!1,onNeedRefresh:v,onOfflineReady:t,onRegistered:r,onRegisteredSW:o,onRegisterError:s}=d;let i,n;const c=async(a=!0)=>{await n};async function f(){if("serviceWorker"in navigator){const{Workbox:a}=await u(()=>import("./workbox-window.prod.es5-a7b12eab.js"),[],import.meta.url);i=new a("/sw.js",{scope:"/",type:"classic"}),i.addEventListener("activated",e=>{(e.isUpdate||e.isExternal)&&window.location.reload()}),i.addEventListener("installed",e=>{e.isUpdate||t==null||t()}),i.register({immediate:l}).then(e=>{o?o("/sw.js",e):r==null||r(e)}).catch(e=>{s==null||s(e)})}}return n=f(),c}export{p as registerSW};
|
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.44.1/dist/balloon-192x192.png"><link rel="mask-icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.44.1/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.44.1/dist";_=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"}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.44.1/dist/assets/index-40d709ed.js"></script><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.44.1/dist/assets/index-06792736.css"><link rel="manifest" href="/manifest.webmanifest"><style></style></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-b8d87ee1"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"assets/_...all_-de087eb0.js",revision:null},{url:"assets/_name_-06edfd14.js",revision:null},{url:"assets/about-c21c664b.js",revision:null},{url:"assets/Board-4569fc6c.js",revision:null},{url:"assets/board-472d3cb3.js",revision:null},{url:"assets/Board-916a327e.css",revision:null},{url:"assets/board-layout-d77cb1f2.js",revision:null},{url:"assets/DataSourceInput.vue_vue_type_script_setup_true_lang-86e39d12.js",revision:null},{url:"assets/en-c9a8dbb5.js",revision:null},{url:"assets/headless-fb293940.js",revision:null},{url:"assets/home-20deb86b.js",revision:null},{url:"assets/index-06792736.css",revision:null},{url:"assets/index-125c12c1.js",revision:null},{url:"assets/index-39ee8a2c.css",revision:null},{url:"assets/index-3dc9c47f.js",revision:null},{url:"assets/index-40d709ed.js",revision:null},{url:"assets/index-layout-d4fc4afd.js",revision:null},{url:"assets/query-7b63ef07.js",revision:null},{url:"assets/test-d415daee.js",revision:null},{url:"assets/TheInput.vue_vue_type_script_setup_true_lang-6e8ca92c.js",revision:null},{url:"assets/user-1cebd436.js",revision:null},{url:"assets/virtual_pwa-register-11341dab.js",revision:null},{url:"assets/workbox-window.prod.es5-a7b12eab.js",revision:null},{url:"assets/zh-CN-8e545f66.js",revision:null},{url:"index.html",revision:"3e7020078bb4099612177c1b4a593ca4"},{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/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.44.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.44.1",
|
|
57
|
+
"@xcpcio/types": "0.44.1"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@antfu/eslint-config": "^0.39.8",
|
package/src/auto-imports.d.ts
CHANGED
|
@@ -249,6 +249,7 @@ declare global {
|
|
|
249
249
|
const useRefHistory: typeof import('@vueuse/core')['useRefHistory']
|
|
250
250
|
const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver']
|
|
251
251
|
const useRoute: typeof import('vue-router')['useRoute']
|
|
252
|
+
const useRouteQueryForBattleOfGiants: typeof import('./composables/query')['useRouteQueryForBattleOfGiants']
|
|
252
253
|
const useRouter: typeof import('vue-router')['useRouter']
|
|
253
254
|
const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation']
|
|
254
255
|
const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea']
|
|
@@ -562,6 +563,7 @@ declare module 'vue' {
|
|
|
562
563
|
readonly useRefHistory: UnwrapRef<typeof import('@vueuse/core')['useRefHistory']>
|
|
563
564
|
readonly useResizeObserver: UnwrapRef<typeof import('@vueuse/core')['useResizeObserver']>
|
|
564
565
|
readonly useRoute: UnwrapRef<typeof import('vue-router')['useRoute']>
|
|
566
|
+
readonly useRouteQueryForBattleOfGiants: UnwrapRef<typeof import('./composables/query')['useRouteQueryForBattleOfGiants']>
|
|
565
567
|
readonly useRouter: UnwrapRef<typeof import('vue-router')['useRouter']>
|
|
566
568
|
readonly useScreenOrientation: UnwrapRef<typeof import('@vueuse/core')['useScreenOrientation']>
|
|
567
569
|
readonly useScreenSafeArea: UnwrapRef<typeof import('@vueuse/core')['useScreenSafeArea']>
|
|
@@ -869,6 +871,7 @@ declare module '@vue/runtime-core' {
|
|
|
869
871
|
readonly useRefHistory: UnwrapRef<typeof import('@vueuse/core')['useRefHistory']>
|
|
870
872
|
readonly useResizeObserver: UnwrapRef<typeof import('@vueuse/core')['useResizeObserver']>
|
|
871
873
|
readonly useRoute: UnwrapRef<typeof import('vue-router')['useRoute']>
|
|
874
|
+
readonly useRouteQueryForBattleOfGiants: UnwrapRef<typeof import('./composables/query')['useRouteQueryForBattleOfGiants']>
|
|
872
875
|
readonly useRouter: UnwrapRef<typeof import('vue-router')['useRouter']>
|
|
873
876
|
readonly useScreenOrientation: UnwrapRef<typeof import('@vueuse/core')['useScreenOrientation']>
|
|
874
877
|
readonly useScreenSafeArea: UnwrapRef<typeof import('@vueuse/core')['useScreenSafeArea']>
|
|
@@ -41,6 +41,16 @@ const enableAutoScroll = ref(false);
|
|
|
41
41
|
}
|
|
42
42
|
})();
|
|
43
43
|
|
|
44
|
+
(() => {
|
|
45
|
+
const routeQueryForBattleOfGiants = useRouteQueryForBattleOfGiants();
|
|
46
|
+
if (
|
|
47
|
+
routeQueryForBattleOfGiants.value !== null
|
|
48
|
+
&& routeQueryForBattleOfGiants.value !== undefined
|
|
49
|
+
) {
|
|
50
|
+
rankOptions.value.battleOfGiants.FromBase64(routeQueryForBattleOfGiants.value);
|
|
51
|
+
}
|
|
52
|
+
})();
|
|
53
|
+
|
|
44
54
|
const currentGroup = ref("all");
|
|
45
55
|
function onChangeCurrentGroup(nextGroup: string) {
|
|
46
56
|
if (nextGroup === rankOptions.value.group) {
|
|
@@ -93,8 +93,27 @@ function teamsOnSelect(selectedItems: Array<SelectOptionItem>, _lastSelectItem:
|
|
|
93
93
|
rankOptions.value.setFilterTeams(selectedItems);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
const routeQueryForBattleOfGiants = useRouteQueryForBattleOfGiants();
|
|
97
|
+
function persistBattleOfGiants() {
|
|
98
|
+
if (rankOptions.value.battleOfGiants.persist) {
|
|
99
|
+
routeQueryForBattleOfGiants.value = rankOptions.value.battleOfGiants.ToBase64();
|
|
100
|
+
} else {
|
|
101
|
+
routeQueryForBattleOfGiants.value = undefined as unknown as string;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
watch(
|
|
106
|
+
() => rankOptions.value.battleOfGiants.persist,
|
|
107
|
+
() => {
|
|
108
|
+
persistBattleOfGiants();
|
|
109
|
+
},
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
async function onCancel() {
|
|
97
113
|
rankOptions.value.setSelf(beforeRankOptions);
|
|
114
|
+
await nextTick();
|
|
115
|
+
persistBattleOfGiants();
|
|
116
|
+
|
|
98
117
|
isHidden.value = true;
|
|
99
118
|
}
|
|
100
119
|
|
|
@@ -106,6 +125,8 @@ function onConfirm() {
|
|
|
106
125
|
localStorage.setItem(localStorageKeyForFilterOrganizations, JSON.stringify(orgSelectedItems.value));
|
|
107
126
|
localStorage.setItem(localStorageKeyForFilterTeams, JSON.stringify(teamsSelectedItems.value));
|
|
108
127
|
|
|
128
|
+
persistBattleOfGiants();
|
|
129
|
+
|
|
109
130
|
isHidden.value = true;
|
|
110
131
|
}
|
|
111
132
|
</script>
|
|
@@ -218,7 +239,7 @@ function onConfirm() {
|
|
|
218
239
|
v-model="rankOptions.battleOfGiants.equalTeams"
|
|
219
240
|
/>
|
|
220
241
|
|
|
221
|
-
|
|
242
|
+
<span
|
|
222
243
|
text-sm font-medium
|
|
223
244
|
text-gray-900 dark:text-gray-300
|
|
224
245
|
>
|
|
@@ -227,7 +248,7 @@ function onConfirm() {
|
|
|
227
248
|
|
|
228
249
|
<TheCheckbox
|
|
229
250
|
v-model="rankOptions.battleOfGiants.persist"
|
|
230
|
-
/>
|
|
251
|
+
/>
|
|
231
252
|
|
|
232
253
|
<span
|
|
233
254
|
text-sm font-medium
|
package/src/composables/query.ts
CHANGED
|
@@ -46,9 +46,10 @@ async function fetcher(target: string, timestamp?: number): Promise<BoardData> {
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
export function useQueryBoardData(target: string, timestamp?: any) {
|
|
49
|
+
const timestampSeconds = Math.floor(timestamp.value.getTime() / 1000);
|
|
49
50
|
return useQuery({
|
|
50
|
-
queryKey: [target,
|
|
51
|
-
queryFn: () => fetcher(target,
|
|
51
|
+
queryKey: [target, timestampSeconds],
|
|
52
|
+
queryFn: () => fetcher(target, timestampSeconds),
|
|
52
53
|
retry: RETRY,
|
|
53
54
|
staleTime: REFETCH_INTERVAL,
|
|
54
55
|
refetchInterval: REFETCH_INTERVAL,
|
package/src/pages/index.vue
CHANGED
|
@@ -13,7 +13,10 @@ const { t } = useI18n();
|
|
|
13
13
|
useTitle(TITLE_SUFFIX);
|
|
14
14
|
|
|
15
15
|
const now = ref(new Date());
|
|
16
|
-
const
|
|
16
|
+
const nowMinutes = computed(() => {
|
|
17
|
+
return Math.floor(now.value.getTime() / 1000 / 60);
|
|
18
|
+
});
|
|
19
|
+
const url = ref(`${window.DATA_HOST}index/contest_list.json?t=${nowMinutes.value}`);
|
|
17
20
|
const refetch = ref(false);
|
|
18
21
|
|
|
19
22
|
const s = useRouteQuery<string | null>("s", "", { transform: String });
|