@xcpcio/board-app 0.53.2 → 0.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +3 -3
  2. package/dist/404.html +1 -1
  3. package/dist/assets/{Balloon.vue_vue_type_script_setup_true_lang-CNaNh1cd.js → Balloon.vue_vue_type_script_setup_true_lang-4AVGJCMI.js} +1 -1
  4. package/dist/assets/Board-DI2_Xyh3.css +1 -0
  5. package/dist/assets/Board-DpMNDnwb.js +1 -0
  6. package/dist/assets/{ContestStateBadge-fTJw-IjF.js → ContestStateBadge-Dhbid94g.js} +1 -1
  7. package/dist/assets/Countdown-BvdJWWuk.js +1 -0
  8. package/dist/assets/DataSourceInput.vue_vue_type_script_setup_true_lang-BdYOS7Pt.js +1 -0
  9. package/dist/assets/{Footer.vue_vue_type_script_setup_true_lang-Bk0nFBfB.js → Footer.vue_vue_type_script_setup_true_lang-DoBaeAhT.js} +1 -1
  10. package/dist/assets/{NavBar-C6sQ5txU.js → NavBar-B9KggQU-.js} +1 -1
  11. package/dist/assets/Resolver-B6m5f_LD.css +1 -0
  12. package/dist/assets/Resolver-CxzATvRW.js +25 -0
  13. package/dist/assets/{RightArrowIcon-ClOVVo1B.js → RightArrowIcon-UrcrWsjs.js} +1 -1
  14. package/dist/assets/{TheInput.vue_vue_type_script_setup_true_lang-D5spkHqx.js → TheInput.vue_vue_type_script_setup_true_lang-Fq7AIk4r.js} +1 -1
  15. package/dist/assets/Tooltip.vue_vue_type_script_setup_true_lang-C9T_K5RC.js +27 -0
  16. package/dist/assets/_...all_-CpbyYPnu.js +1 -0
  17. package/dist/assets/{_...all_-BSvAEkM-.js → _...all_-DizdgePm.js} +2 -2
  18. package/dist/assets/_name_-CyHYBF6H.js +1 -0
  19. package/dist/assets/{about-tPNAra1j.js → about-CfqrcwJT.js} +1 -1
  20. package/dist/assets/board-layout-DDF2wubP.js +1 -0
  21. package/dist/assets/board-vgh1WXMi.js +1 -0
  22. package/dist/assets/{constant-b2ZZlr_Y.js → constant-CKMKwY_M.js} +1 -1
  23. package/dist/assets/default-REGvX7tC.js +1 -0
  24. package/dist/assets/{en-DDlXf_8q.js → en-Bjc9Zdq9.js} +1 -1
  25. package/dist/assets/headless-DedxMF3x.js +1 -0
  26. package/dist/assets/home-DSppcc6C.js +1 -0
  27. package/dist/assets/index-B8vw3ErJ.js +198 -0
  28. package/dist/assets/{index-DQYGiW5A.js → index-BZdyM9Qh.js} +1 -1
  29. package/dist/assets/index-Bx4d8xqO.js +1 -0
  30. package/dist/assets/{index-XjAdtRAz.js → index-CaB6yvAO.js} +1 -1
  31. package/dist/assets/index-Cc2LPl6E.js +50 -0
  32. package/dist/assets/{index-BP90wE2A.css → index-CkWanoDO.css} +1 -1
  33. package/dist/assets/index-DLur0B0J.css +5 -0
  34. package/dist/assets/index-LvyoMonD.js +1 -0
  35. package/dist/assets/index-Y1YIGHJj.js +1 -0
  36. package/dist/assets/index-Yf5aNxDp.js +1 -0
  37. package/dist/assets/{index-BnOiKE-V.js → index-_3n9Ahv3.js} +2 -2
  38. package/dist/assets/index-layout-qLKsk6Zm.js +1 -0
  39. package/dist/assets/pagination-zmuISHg-.js +3 -0
  40. package/dist/assets/query-DymhAP9l.js +1 -0
  41. package/dist/assets/{test-Bw2mUsPy.js → test-C8r9tN4s.js} +1 -1
  42. package/dist/assets/{use-vmodel-BKVjZ-1P.js → use-vmodel-BusQKjfF.js} +1 -1
  43. package/dist/assets/{user-o9hs8HNN.js → user-B1iInd_U.js} +1 -1
  44. package/dist/assets/{virtual_pwa-register-8shrxAmh.js → virtual_pwa-register-Bw1WWEdI.js} +1 -1
  45. package/dist/assets/{workbox-window.prod.es5-D5gOYdM7.js → workbox-window.prod.es5-B9K5rw8f.js} +2 -2
  46. package/dist/assets/{zh-CN-CNJkghp4.js → zh-CN-BgAN9IOl.js} +1 -1
  47. package/dist/index.html +1 -1
  48. package/dist/manifest.webmanifest +1 -1
  49. package/dist/sw.js +1 -1
  50. package/dist/{workbox-86deb690.js → workbox-7ee6f867.js} +1 -1
  51. package/package.json +49 -51
  52. package/src/auto-imports.d.ts +21 -2
  53. package/src/components/Resolver.vue +1 -1
  54. package/src/components/ResolverTeamRow.vue +6 -14
  55. package/src/components/battle-of-giants/GiantsOptions.vue +2 -1
  56. package/src/components/board/AnimatedSubmissionBlock.vue +2 -2
  57. package/src/components/board/AnimatedSubmissionsModal.vue +2 -2
  58. package/src/components/board/Board.vue +4 -3
  59. package/src/components/board/HeatMapTooltip.less +115 -0
  60. package/src/components/board/HeatMapTooltip.vue +68 -0
  61. package/src/components/board/Progress.less +15 -9
  62. package/src/components/board/Statistics.vue +6 -0
  63. package/src/components/board/SubmitHeatMap.less +13 -0
  64. package/src/components/board/SubmitHeatMap.vue +226 -0
  65. package/src/components/flowbite/Tooltip.css +25 -23
  66. package/src/components/rating/rating.less +5 -1
  67. package/src/components.d.ts +3 -0
  68. package/src/composables/constant.ts +1 -0
  69. package/src/composables/statistics.ts +2 -1
  70. package/src/modules/i18n.ts +1 -1
  71. package/src/modules/nprogress.ts +1 -1
  72. package/src/modules/pinia.ts +1 -1
  73. package/src/modules/toast.ts +1 -1
  74. package/src/styles/color.css +5 -5
  75. package/src/styles/main.css +4 -4
  76. package/src/styles/markdown.css +1 -1
  77. package/src/styles/submission-status-background.css +0 -4
  78. package/src/styles/submission-status-filter.css +0 -4
  79. package/src/styles/submission-status.css +31 -34
  80. package/.eslintrc.json +0 -6
  81. package/dist/assets/Board-D7W2MZ4t.js +0 -1
  82. package/dist/assets/Board-_AOcbImO.css +0 -1
  83. package/dist/assets/Countdown-1A-2QJ7m.js +0 -1
  84. package/dist/assets/DataSourceInput.vue_vue_type_script_setup_true_lang-CXts-riZ.js +0 -1
  85. package/dist/assets/Resolver-A6qSPE_R.js +0 -25
  86. package/dist/assets/Resolver-DRiWpQTB.css +0 -1
  87. package/dist/assets/Tooltip.vue_vue_type_script_setup_true_lang-FgOX36Lq.js +0 -27
  88. package/dist/assets/_...all_-DmfbP4Ao.js +0 -1
  89. package/dist/assets/_name_-AmLA_ZW6.js +0 -1
  90. package/dist/assets/board-D0VTebOf.js +0 -1
  91. package/dist/assets/board-layout-C2v-fo1W.js +0 -1
  92. package/dist/assets/default-D4907N0j.js +0 -1
  93. package/dist/assets/headless-C_cFBCtG.js +0 -1
  94. package/dist/assets/home-CRZ6rGwZ.js +0 -1
  95. package/dist/assets/index-BjCWriHl.css +0 -5
  96. package/dist/assets/index-Bvki346r.js +0 -1
  97. package/dist/assets/index-CVZtA3I-.js +0 -50
  98. package/dist/assets/index-ClcpF-3G.js +0 -1
  99. package/dist/assets/index-D5Eq7tNN.js +0 -1
  100. package/dist/assets/index-Dar9HUtt.js +0 -198
  101. package/dist/assets/index-cu4LZbd6.js +0 -1
  102. package/dist/assets/index-layout-Bp7ERlAB.js +0 -1
  103. package/dist/assets/pagination-CHOfWwrE.js +0 -3
  104. package/dist/assets/query-C-pLpLZb.js +0 -1
  105. /package/dist/assets/{ContestStateBadge-yOXRkC0c.css → ContestStateBadge-DawlTsHs.css} +0 -0
  106. /package/dist/assets/{Countdown-De6dfmWB.css → Countdown-CGwMuG9S.css} +0 -0
  107. /package/dist/assets/{NavBar-K1-1c5jR.css → NavBar-C0cqpBnK.css} +0 -0
  108. /package/dist/assets/{Tooltip-VVqtpO6L.css → Tooltip-DzyPDwbo.css} +0 -0
  109. /package/dist/assets/{_..-8Wh-Y8sB.css → _..-5I0UWqRG.css} +0 -0
  110. /package/dist/assets/{index-BerApwlM.css → index-D0wLFbYO.css} +0 -0
@@ -0,0 +1 @@
1
+ var ut=i=>{throw TypeError(i)};var Y=(i,t,e)=>t.has(i)||ut("Cannot "+e);var s=(i,t,e)=>(Y(i,t,"read from private field"),e?e.call(i):t.get(i)),b=(i,t,e)=>t.has(i)?ut("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(i):t.set(i,e),c=(i,t,e,n)=>(Y(i,t,"write to private field"),n?n.call(i,e):t.set(i,e),e),d=(i,t,e)=>(Y(i,t,"access private method"),e);import{a4 as St,a5 as ct,a6 as w,a7 as q,a8 as K,a9 as wt,aa as lt,ab as ft,ac as Ct,ad as It,ae as Tt,af as dt,ag as Et,ah as Qt,ai as Dt,aj as Ut,f as Rt,ak as Ft,al as jt,C as H,am as pt,an as xt,ao as bt,ap as Pt}from"./index-Cc2LPl6E.js";import{a as Lt}from"./constant-CKMKwY_M.js";import{u as gt}from"./index-Y1YIGHJj.js";var v,r,B,y,D,A,T,S,V,_,k,U,F,E,N,u,W,J,X,Z,tt,et,st,it,Ot,vt,Mt=(vt=class extends St{constructor(t,e){super();b(this,u);b(this,v);b(this,r);b(this,B);b(this,y);b(this,D);b(this,A);b(this,T);b(this,S);b(this,V);b(this,_);b(this,k);b(this,U);b(this,F);b(this,E);b(this,N,new Set);this.options=e,c(this,v,t),c(this,S,null),c(this,T,ct()),this.options.experimental_prefetchInRender||s(this,T).reject(new Error("experimental_prefetchInRender feature flag is not enabled")),this.bindMethods(),this.setOptions(e)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(s(this,r).addObserver(this),mt(s(this,r),this.options)?d(this,u,W).call(this):this.updateResult(),d(this,u,tt).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return nt(s(this,r),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return nt(s(this,r),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,d(this,u,et).call(this),d(this,u,st).call(this),s(this,r).removeObserver(this)}setOptions(t){const e=this.options,n=s(this,r);if(this.options=s(this,v).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof w(this.options.enabled,s(this,r))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");d(this,u,it).call(this),s(this,r).setOptions(this.options),e._defaulted&&!q(this.options,e)&&s(this,v).getQueryCache().notify({type:"observerOptionsUpdated",query:s(this,r),observer:this});const o=this.hasListeners();o&&yt(s(this,r),n,this.options,e)&&d(this,u,W).call(this),this.updateResult(),o&&(s(this,r)!==n||w(this.options.enabled,s(this,r))!==w(e.enabled,s(this,r))||K(this.options.staleTime,s(this,r))!==K(e.staleTime,s(this,r)))&&d(this,u,J).call(this);const a=d(this,u,X).call(this);o&&(s(this,r)!==n||w(this.options.enabled,s(this,r))!==w(e.enabled,s(this,r))||a!==s(this,E))&&d(this,u,Z).call(this,a)}getOptimisticResult(t){const e=s(this,v).getQueryCache().build(s(this,v),t),n=this.createResult(e,t);return At(this,n)&&(c(this,y,n),c(this,A,this.options),c(this,D,s(this,r).state)),n}getCurrentResult(){return s(this,y)}trackResult(t,e){const n={};return Object.keys(t).forEach(o=>{Object.defineProperty(n,o,{configurable:!1,enumerable:!0,get:()=>(this.trackProp(o),e==null||e(o),t[o])})}),n}trackProp(t){s(this,N).add(t)}getCurrentQuery(){return s(this,r)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const e=s(this,v).defaultQueryOptions(t),n=s(this,v).getQueryCache().build(s(this,v),e);return n.fetch().then(()=>this.createResult(n,e))}fetch(t){return d(this,u,W).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),s(this,y)))}createResult(t,e){var ht;const n=s(this,r),o=this.options,a=s(this,y),l=s(this,D),R=s(this,A),j=t!==n?t.state:s(this,B),{state:p}=t;let f={...p},Q=!1,h;if(e._optimisticResults){const m=this.hasListeners(),M=!m&&mt(t,e),$=m&&yt(t,n,e,o);(M||$)&&(f={...f,...Tt(p.data,t.options)}),e._optimisticResults==="isRestoring"&&(f.fetchStatus="idle")}let{error:I,errorUpdatedAt:x,status:g}=f;if(e.select&&f.data!==void 0)if(a&&f.data===(l==null?void 0:l.data)&&e.select===s(this,V))h=s(this,_);else try{c(this,V,e.select),h=e.select(f.data),h=dt(a==null?void 0:a.data,h,e),c(this,_,h),c(this,S,null)}catch(m){c(this,S,m)}else h=f.data;if(e.placeholderData!==void 0&&h===void 0&&g==="pending"){let m;if(a!=null&&a.isPlaceholderData&&e.placeholderData===(R==null?void 0:R.placeholderData))m=a.data;else if(m=typeof e.placeholderData=="function"?e.placeholderData((ht=s(this,k))==null?void 0:ht.state.data,s(this,k)):e.placeholderData,e.select&&m!==void 0)try{m=e.select(m),c(this,S,null)}catch(M){c(this,S,M)}m!==void 0&&(g="success",h=dt(a==null?void 0:a.data,m,e),Q=!0)}s(this,S)&&(I=s(this,S),h=s(this,_),x=Date.now(),g="error");const P=f.fetchStatus==="fetching",L=g==="pending",G=g==="error",rt=L&&P,ot=h!==void 0,O={status:g,fetchStatus:f.fetchStatus,isPending:L,isSuccess:g==="success",isError:G,isInitialLoading:rt,isLoading:rt,data:h,dataUpdatedAt:f.dataUpdatedAt,error:I,errorUpdatedAt:x,failureCount:f.fetchFailureCount,failureReason:f.fetchFailureReason,errorUpdateCount:f.errorUpdateCount,isFetched:f.dataUpdateCount>0||f.errorUpdateCount>0,isFetchedAfterMount:f.dataUpdateCount>j.dataUpdateCount||f.errorUpdateCount>j.errorUpdateCount,isFetching:P,isRefetching:P&&!L,isLoadingError:G&&!ot,isPaused:f.fetchStatus==="paused",isPlaceholderData:Q,isRefetchError:G&&ot,isStale:at(t,e),refetch:this.refetch,promise:s(this,T)};if(this.options.experimental_prefetchInRender){const m=z=>{O.status==="error"?z.reject(O.error):O.data!==void 0&&z.resolve(O.data)},M=()=>{const z=c(this,T,O.promise=ct());m(z)},$=s(this,T);switch($.status){case"pending":t.queryHash===n.queryHash&&m($);break;case"fulfilled":(O.status==="error"||O.data!==$.value)&&M();break;case"rejected":(O.status!=="error"||O.error!==$.reason)&&M();break}}return O}updateResult(){const t=s(this,y),e=this.createResult(s(this,r),this.options);if(c(this,D,s(this,r).state),c(this,A,this.options),s(this,D).data!==void 0&&c(this,k,s(this,r)),q(e,t))return;c(this,y,e);const n=()=>{if(!t)return!0;const{notifyOnChangeProps:o}=this.options,a=typeof o=="function"?o():o;if(a==="all"||!a&&!s(this,N).size)return!0;const l=new Set(a??s(this,N));return this.options.throwOnError&&l.add("error"),Object.keys(s(this,y)).some(R=>{const C=R;return s(this,y)[C]!==t[C]&&l.has(C)})};d(this,u,Ot).call(this,{listeners:n()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&d(this,u,tt).call(this)}},v=new WeakMap,r=new WeakMap,B=new WeakMap,y=new WeakMap,D=new WeakMap,A=new WeakMap,T=new WeakMap,S=new WeakMap,V=new WeakMap,_=new WeakMap,k=new WeakMap,U=new WeakMap,F=new WeakMap,E=new WeakMap,N=new WeakMap,u=new WeakSet,W=function(t){d(this,u,it).call(this);let e=s(this,r).fetch(this.options,t);return t!=null&&t.throwOnError||(e=e.catch(wt)),e},J=function(){d(this,u,et).call(this);const t=K(this.options.staleTime,s(this,r));if(lt||s(this,y).isStale||!ft(t))return;const n=Ct(s(this,y).dataUpdatedAt,t)+1;c(this,U,setTimeout(()=>{s(this,y).isStale||this.updateResult()},n))},X=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(s(this,r)):this.options.refetchInterval)??!1},Z=function(t){d(this,u,st).call(this),c(this,E,t),!(lt||w(this.options.enabled,s(this,r))===!1||!ft(s(this,E))||s(this,E)===0)&&c(this,F,setInterval(()=>{(this.options.refetchIntervalInBackground||It.isFocused())&&d(this,u,W).call(this)},s(this,E)))},tt=function(){d(this,u,J).call(this),d(this,u,Z).call(this,d(this,u,X).call(this))},et=function(){s(this,U)&&(clearTimeout(s(this,U)),c(this,U,void 0))},st=function(){s(this,F)&&(clearInterval(s(this,F)),c(this,F,void 0))},it=function(){const t=s(this,v).getQueryCache().build(s(this,v),this.options);if(t===s(this,r))return;const e=s(this,r);c(this,r,t),c(this,B,t.state),this.hasListeners()&&(e==null||e.removeObserver(this),t.addObserver(this))},Ot=function(t){Et.batch(()=>{t.listeners&&this.listeners.forEach(e=>{e(s(this,y))}),s(this,v).getQueryCache().notify({query:s(this,r),type:"observerResultsUpdated"})})},vt);function $t(i,t){return w(t.enabled,i)!==!1&&i.state.data===void 0&&!(i.state.status==="error"&&t.retryOnMount===!1)}function mt(i,t){return $t(i,t)||i.state.data!==void 0&&nt(i,t,t.refetchOnMount)}function nt(i,t,e){if(w(t.enabled,i)!==!1){const n=typeof e=="function"?e(i):e;return n==="always"||n!==!1&&at(i,t)}return!1}function yt(i,t,e,n){return(i!==t||w(n.enabled,i)===!1)&&(!e.suspense||i.state.status!=="error")&&at(i,e)}function at(i,t){return w(t.enabled,i)!==!1&&i.isStaleByTime(K(t.staleTime,i))}function At(i,t){return!q(i.getCurrentResult(),t)}function _t(i=""){if(!Qt())throw new Error("vue-query hooks can only be used inside setup() function or functions that support injection context.");const t=Ut(i),e=Dt(t);if(!e)throw new Error("No 'queryClient' found in Vue context, use 'VueQueryPlugin' to properly initialize the library.");return e}function kt(i,t,e){const n=_t(),o=Rt(()=>{const h=Ft(t);typeof h.enabled=="function"&&(h.enabled=h.enabled());const I=n.defaultQueryOptions(h);return I._optimisticResults=n.isRestoring.value?"isRestoring":"optimistic",I}),a=new i(n,o.value),l=jt(a.getCurrentResult());let R=()=>{};H(n.isRestoring,h=>{h||(R(),R=a.subscribe(I=>{pt(l,I)}))},{immediate:!0});const C=()=>{a.setOptions(o.value),pt(l,a.getCurrentResult())};H(o,C),xt(()=>{R()});const j=(...h)=>(C(),l.refetch(...h)),p=()=>new Promise((h,I)=>{let x=()=>{};const g=()=>{if(o.value.enabled!==!1){a.setOptions(o.value);const P=a.getOptimisticResult(o.value);P.isStale?(x(),a.fetchOptimistic(o.value).then(h,L=>{bt(o.value.throwOnError,[L,a.getCurrentQuery()])?I(L):h(a.getCurrentResult())})):(x(),h(P))}};g(),x=H(o,g)});H(()=>l.error,h=>{if(l.isError&&!l.isFetching&&bt(o.value.throwOnError,[h,a.getCurrentQuery()]))throw h});const Q=Pt(l);for(const h in l)typeof l[h]=="function"&&(Q[h]=l[h]);return Q.suspense=p,Q.refetch=j,Q}function Nt(i,t){return kt(Mt,i)}const Wt=3;async function Bt(i,t){const e=i.startsWith("/")?i.slice(1):i;let n=`${window.DATA_HOST}${e}`;const o={allInOne:!1};if(n.includes("#")){const p=new URLSearchParams(n.split("#")[1]);o.allInOne=p.get("allInOne")==="true",n=n.split("#")[0]}i.startsWith("http")&&(n=i),n.endsWith("/")&&(n=n.slice(0,-1));const a=p=>p.includes("?")?`${p}&t=${t??0}`:`${p}?t=${t??0}`,l=o.allInOne?[await fetch(a(n))]:[await fetch(a(`${n}/config.json`)),await fetch(a(`${n}/team.json`)),await fetch(a(`${n}/run.json`))],{status:R,statusText:C}=l[0];if(R>=300||R<200)throw new Error(`fetch data failed. [status=${R}] [statusText=${C}]`);return Promise.all(l.map(p=>p.json())).then(p=>o.allInOne?p[0]:{contest:p[0],teams:p[1],submissions:p[2]})}function Yt(i,t,e=!1){let n=3e4,o=n;const a=Rt(()=>Math.floor(t.value.getTime()/1e3/10));return Lt.value==="I18N"&&(n=10*1e3,o=n),e&&(n=Number.POSITIVE_INFINITY,o=!1),Nt({queryKey:[i,a.value],queryFn:()=>Bt(i,a.value),retry:Wt,staleTime:n,refetchInterval:o})}function qt(){return gt("data-source","",{transform:String})}function Jt(){return gt("battle-of-giants","",{transform:String})}export{Jt as a,qt as g,Yt as u};
@@ -1 +1 @@
1
- import{_ as p}from"./TheInput.vue_vue_type_script_setup_true_lang-D5spkHqx.js";import{d as c,p as f,H as _,u as b,o as h,c as v,b as e,k as a,h as s,a as x,z as y,O as g}from"./index-CVZtA3I-.js";import{u as k}from"./user-o9hs8HNN.js";import{b as l}from"./route-block-B_A1xBdJ.js";import"./use-vmodel-BKVjZ-1P.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 h(),v("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=>y(o)?o.value=m:null),placeholder:s(n)("intro.whats-your-name"),autocomplete:"false",onKeydown:g(r,["enter"])},null,8,["modelValue","placeholder"]),e("label",B,a(s(n)("intro.whats-your-name")),1)]),e("div",null,[e("button",{"m-3":"","text-sm":"",btn:"",disabled:!s(o),onClick:r},a(s(n)("button.go")),9,C)])])}}});typeof l=="function"&&l(N);export{N as default};
1
+ import{_ as p}from"./TheInput.vue_vue_type_script_setup_true_lang-Fq7AIk4r.js";import{d as c,p 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-Cc2LPl6E.js";import{u as k}from"./user-B1iInd_U.js";import{b as l}from"./route-block-B_A1xBdJ.js";import"./use-vmodel-BusQKjfF.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{aw as c,ax as r}from"./index-CVZtA3I-.js";const d=(...p)=>{const s=c().proxy.$props,t=Object.create(null);for(const e of p)if(typeof e=="string")t[e]=r(s,e,void 0,{eventName:`update:${e}`,passive:!0});else{const[o,n=o,a=`update:${o}`,u={}]=e;t[o]=r(s,n,void 0,{eventName:a,passive:!0,...u})}return t};export{d as _};
1
+ import{aw as c,ax as r}from"./index-Cc2LPl6E.js";const d=(...p)=>{const s=c().proxy.$props,t=Object.create(null);for(const e of p)if(typeof e=="string")t[e]=r(s,e,void 0,{eventName:`update:${e}`,passive:!0});else{const[o,n=o,a=`update:${o}`,u={}]=e;t[o]=r(s,n,void 0,{eventName:a,passive:!0,...u})}return t};export{d as _};
@@ -1 +1 @@
1
- import{au as m,p as r,g as t}from"./index-CVZtA3I-.js";const l=m("user",()=>{const e=r(""),s=r(new Set),u=t(()=>Array.from(s.value)),o=t(()=>u.value.filter(a=>a!==e.value));function n(a){e.value&&s.value.add(e.value),e.value=a}return{setNewName:n,otherNames:o,savedName:e}});export{l as u};
1
+ import{au as m,p as r,f as t}from"./index-Cc2LPl6E.js";const f=m("user",()=>{const e=r(""),s=r(new Set),u=t(()=>Array.from(s.value)),o=t(()=>u.value.filter(a=>a!==e.value));function n(a){e.value&&s.value.add(e.value),e.value=a}return{setNewName:n,otherNames:o,savedName:e}});export{f as u};
@@ -1 +1 @@
1
- import{_ as u}from"./index-CVZtA3I-.js";function _(c={}){const{immediate:o=!1,onNeedRefresh:p,onOfflineReady:a,onRegistered:r,onRegisteredSW:s,onRegisterError:t}=c;let i,n;const d=async(e=!0)=>{await n};async function l(){if("serviceWorker"in navigator){if(i=await u(async()=>{const{Workbox:e}=await import("./workbox-window.prod.es5-D5gOYdM7.js");return{Workbox:e}},[],import.meta.url).then(({Workbox:e})=>new e("/sw.js",{scope:"/",type:"classic"})).catch(e=>{t==null||t(e)}),!i)return;i.addEventListener("activated",e=>{(e.isUpdate||e.isExternal)&&window.location.reload()}),i.addEventListener("installed",e=>{e.isUpdate||a==null||a()}),i.register({immediate:o}).then(e=>{s?s("/sw.js",e):r==null||r(e)}).catch(e=>{t==null||t(e)})}}return n=l(),d}export{_ as registerSW};
1
+ import{_ as u}from"./index-Cc2LPl6E.js";function _(c={}){const{immediate:o=!1,onNeedRefresh:p,onOfflineReady:a,onRegistered:r,onRegisteredSW:s,onRegisterError:t}=c;let i,n;const d=async(e=!0)=>{await n};async function l(){if("serviceWorker"in navigator){if(i=await u(async()=>{const{Workbox:e}=await import("./workbox-window.prod.es5-B9K5rw8f.js");return{Workbox:e}},[],import.meta.url).then(({Workbox:e})=>new e("/sw.js",{scope:"/",type:"classic"})).catch(e=>{t==null||t(e)}),!i)return;i.addEventListener("activated",e=>{(e.isUpdate||e.isExternal)&&window.location.reload()}),i.addEventListener("installed",e=>{e.isUpdate||a==null||a()}),i.register({immediate:o}).then(e=>{s?s("/sw.js",e):r==null||r(e)}).catch(e=>{t==null||t(e)})}}return n=l(),d}export{_ as registerSW};
@@ -1,2 +1,2 @@
1
- try{self["workbox:window:7.0.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.0.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};
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};
@@ -1 +1 @@
1
- const t={button:{about:{t:0,b:{t:2,i:[{t:3}],s:"关于"}},back:{t:0,b:{t:2,i:[{t:3}],s:"返回"}},go:{t:0,b:{t:2,i:[{t:3}],s:"确定"}},home:{t:0,b:{t:2,i:[{t:3}],s:"首页"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"确认"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},toggle_dark:{t:0,b:{t:2,i:[{t:3}],s:"切换深色模式"}},toggle_langs:{t:0,b:{t:2,i:[{t:3}],s:"切换语言"}}},intro:{desc:{t:0,b:{t:2,i:[{t:3}],s:"固执己见的 Vite 项目模板"}},"dynamic-route":{t:0,b:{t:2,i:[{t:3}],s:"动态路由演示"}},hi:{t:0,b:{t:2,i:[{t:3,v:"你好,"},{t:4,k:"name"}]}},aka:{t:0,b:{t:2,i:[{t:3}],s:"也叫"}},"whats-your-name":{t:0,b:{t:2,i:[{t:3}],s:"输入你的名字"}}},"not-found":{t:0,b:{t:2,i:[{t:3}],s:"未找到页面"}},common:{loading:{t:0,b:{t:2,i:[{t:3}],s:"加载中"}},colon:{t:0,b:{t:2,i:[{t:3}],s:":"}}},index:{start:{t:0,b:{t:2,i:[{t:3}],s:"开始时间"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"持续时长"}}},type_menu:{rank:{t:0,b:{t:2,i:[{t:3}],s:"排名"}},submissions:{t:0,b:{t:2,i:[{t:3}],s:"提交"}},statistics:{t:0,b:{t:2,i:[{t:3}],s:"统计"}},balloon:{t:0,b:{t:2,i:[{t:3}],s:"气球"}},export:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},resolver:{t:0,b:{t:2,i:[{t:3}],s:"滚榜"}},options:{t:0,b:{t:2,i:[{t:3}],s:"选项"}},awards:{t:0,b:{t:2,i:[{t:3}],s:"奖项"}},utility:{t:0,b:{t:2,i:[{t:3}],s:"工具"}},countdown:{t:0,b:{t:2,i:[{t:3}],s:"倒计时"}}},standings:{start_time:{t:0,b:{t:2,i:[{t:3}],s:"开始时间"}},end_time:{t:0,b:{t:2,i:[{t:3}],s:"结束时间"}},elapsed:{t:0,b:{t:2,i:[{t:3}],s:"当前时间"}},remaining:{t:0,b:{t:2,i:[{t:3}],s:"剩余时间"}},place:{t:0,b:{t:2,i:[{t:3}],s:"Place"}},team:{t:0,b:{t:2,i:[{t:3}],s:"Team"}},solved:{t:0,b:{t:2,i:[{t:3}],s:"Solved"}},penalty:{t:0,b:{t:2,i:[{t:3}],s:"Penalty"}},dirt:{t:0,b:{t:2,i:[{t:3}],s:"Dirt"}},se:{t:0,b:{t:2,i:[{t:3}],s:"SE"}},statistics:{submitted:{t:0,b:{t:2,i:[{t:3}],s:"Submitted"}},attempted:{t:0,b:{t:2,i:[{t:3}],s:"Attempted"}},accepted:{t:0,b:{t:2,i:[{t:3}],s:"Accepted"}},dirt:{t:0,b:{t:2,i:[{t:3}],s:"Dirt"}},se:{t:0,b:{t:2,i:[{t:3}],s:"SE"}},first_solved:{t:0,b:{t:2,i:[{t:3}],s:"First Solved"}},last_solved:{t:0,b:{t:2,i:[{t:3}],s:"Last Solved"}},head_data:{problems:{t:0,b:{t:2,i:[{t:3}],s:"题目数"}},teams:{t:0,b:{t:2,i:[{t:3}],s:"队伍数"}},submissions:{t:0,b:{t:2,i:[{t:3}],s:"提交数"}}}},options:{calculation_of_penalty:{t:0,b:{t:2,i:[{t:3}],s:"罚时计算方式"}},in_minutes:{t:0,b:{t:2,i:[{t:3}],s:"精确到分钟进行累加"}},in_seconds:{t:0,b:{t:2,i:[{t:3}],s:"精确到秒进行累加"}},accumulate_in_seconds_and_finally_to_the_minute:{t:0,b:{t:2,i:[{t:3}],s:"精确到秒进行累加,最后精确到分钟"}}}},submissions:{total_submissions:{t:0,b:{t:2,i:[{t:3}],s:"总提交数"}}}};export{t as default};
1
+ const t={button:{about:{t:0,b:{t:2,i:[{t:3}],s:"关于"}},back:{t:0,b:{t:2,i:[{t:3}],s:"返回"}},go:{t:0,b:{t:2,i:[{t:3}],s:"确定"}},home:{t:0,b:{t:2,i:[{t:3}],s:"首页"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"确认"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},toggle_dark:{t:0,b:{t:2,i:[{t:3}],s:"切换深色模式"}},toggle_langs:{t:0,b:{t:2,i:[{t:3}],s:"切换语言"}}},intro:{desc:{t:0,b:{t:2,i:[{t:3}],s:"固执己见的 Vite 项目模板"}},"dynamic-route":{t:0,b:{t:2,i:[{t:3}],s:"动态路由演示"}},hi:{t:0,b:{t:2,i:[{t:3,v:"你好,"},{t:4,k:"name"}]}},aka:{t:0,b:{t:2,i:[{t:3}],s:"也叫"}},"whats-your-name":{t:0,b:{t:2,i:[{t:3}],s:"输入你的名字"}}},"not-found":{t:0,b:{t:2,i:[{t:3}],s:"未找到页面"}},common:{loading:{t:0,b:{t:2,i:[{t:3}],s:"加载中"}},colon:{t:0,b:{t:2,i:[{t:3}],s:":"}}},index:{start:{t:0,b:{t:2,i:[{t:3}],s:"开始时间"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"持续时长"}}},type_menu:{rank:{t:0,b:{t:2,i:[{t:3}],s:"排名"}},submissions:{t:0,b:{t:2,i:[{t:3}],s:"提交"}},statistics:{t:0,b:{t:2,i:[{t:3}],s:"统计"}},balloon:{t:0,b:{t:2,i:[{t:3}],s:"气球"}},export:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},resolver:{t:0,b:{t:2,i:[{t:3}],s:"滚榜"}},options:{t:0,b:{t:2,i:[{t:3}],s:"选项"}},awards:{t:0,b:{t:2,i:[{t:3}],s:"奖项"}},utility:{t:0,b:{t:2,i:[{t:3}],s:"工具"}},countdown:{t:0,b:{t:2,i:[{t:3}],s:"倒计时"}}},standings:{start_time:{t:0,b:{t:2,i:[{t:3}],s:"开始时间"}},end_time:{t:0,b:{t:2,i:[{t:3}],s:"结束时间"}},elapsed:{t:0,b:{t:2,i:[{t:3}],s:"当前时间"}},remaining:{t:0,b:{t:2,i:[{t:3}],s:"剩余时间"}},place:{t:0,b:{t:2,i:[{t:3}],s:"Place"}},team:{t:0,b:{t:2,i:[{t:3}],s:"Team"}},solved:{t:0,b:{t:2,i:[{t:3}],s:"Solved"}},penalty:{t:0,b:{t:2,i:[{t:3}],s:"Penalty"}},dirt:{t:0,b:{t:2,i:[{t:3}],s:"Dirt"}},se:{t:0,b:{t:2,i:[{t:3}],s:"SE"}},statistics:{submitted:{t:0,b:{t:2,i:[{t:3}],s:"Submitted"}},attempted:{t:0,b:{t:2,i:[{t:3}],s:"Attempted"}},accepted:{t:0,b:{t:2,i:[{t:3}],s:"Accepted"}},dirt:{t:0,b:{t:2,i:[{t:3}],s:"Dirt"}},se:{t:0,b:{t:2,i:[{t:3}],s:"SE"}},first_solved:{t:0,b:{t:2,i:[{t:3}],s:"First Solved"}},last_solved:{t:0,b:{t:2,i:[{t:3}],s:"Last Solved"}},head_data:{problems:{t:0,b:{t:2,i:[{t:3}],s:"题目数"}},teams:{t:0,b:{t:2,i:[{t:3}],s:"队伍数"}},submissions:{t:0,b:{t:2,i:[{t:3}],s:"提交数"}}},submit_heatmap:{t:0,b:{t:2,i:[{t:3}],s:"提交热力图"}}},options:{calculation_of_penalty:{t:0,b:{t:2,i:[{t:3}],s:"罚时计算方式"}},in_minutes:{t:0,b:{t:2,i:[{t:3}],s:"精确到分钟进行累加"}},in_seconds:{t:0,b:{t:2,i:[{t:3}],s:"精确到秒进行累加"}},accumulate_in_seconds_and_finally_to_the_minute:{t:0,b:{t:2,i:[{t:3}],s:"精确到秒进行累加,最后精确到分钟"}}}},submissions:{total_submissions:{t:0,b:{t:2,i:[{t:3}],s:"总提交数"}}}};export{t as default};
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.53.2/dist/balloon-192x192.png"><link rel="mask-icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.53.2/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.53.2/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.53.2/dist/assets/index-CVZtA3I-.js"></script><link rel="stylesheet" crossorigin href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.53.2/dist/assets/index-BjCWriHl.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>
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.55.0/dist/balloon-192x192.png"/><link rel="mask-icon" href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.55.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.55.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.55.0/dist/assets/index-Cc2LPl6E.js"></script><link rel="stylesheet" crossorigin href="https://cdn.jsdelivr.net/npm/@xcpcio/board-app@0.55.0/dist/assets/index-DLur0B0J.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>
@@ -1 +1 @@
1
- {"name":"Board","short_name":"Board","start_url":"/","display":"standalone","background_color":"#ffffff","lang":"en","scope":"/","theme_color":"#ffffff","icons":[{"src":"/balloon2-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/balloon2-512x512.png","sizes":"512x512","type":"image/png"},{"src":"/balloon2-512x512.png","sizes":"512x512","type":"image/png","purpose":"any maskable"}]}
1
+ {"name":"Board","short_name":"Board","description":"XCPCIO Board App","start_url":"/","display":"standalone","background_color":"#ffffff","theme_color":"#ffffff","lang":"en","scope":"/","icons":[{"src":"/balloon2-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/balloon2-512x512.png","sizes":"512x512","type":"image/png"},{"src":"/balloon2-512x512.png","sizes":"512x512","type":"image/png","purpose":"any maskable"}]}
package/dist/sw.js CHANGED
@@ -1 +1 @@
1
- if(!self.define){let s,e={};const l=(l,n)=>(l=new URL(l+".js",n).href,e[l]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()})).then((()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s})));self.define=(n,r)=>{const i=s||("document"in self?document.currentScript.src:"")||location.href;if(e[i])return;let u={};const t=s=>l(s,i),o={module:{uri:i},exports:u,require:t};e[i]=Promise.all(n.map((s=>o[s]||t(s)))).then((s=>(r(...s),u)))}}define(["./workbox-86deb690"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"assets/_..-8Wh-Y8sB.css",revision:null},{url:"assets/_...all_-BSvAEkM-.js",revision:null},{url:"assets/_...all_-DmfbP4Ao.js",revision:null},{url:"assets/_name_-AmLA_ZW6.js",revision:null},{url:"assets/_plugin-vue_export-helper-DlAUqK2U.js",revision:null},{url:"assets/about-tPNAra1j.js",revision:null},{url:"assets/Balloon.vue_vue_type_script_setup_true_lang-CNaNh1cd.js",revision:null},{url:"assets/Board-_AOcbImO.css",revision:null},{url:"assets/board-D0VTebOf.js",revision:null},{url:"assets/Board-D7W2MZ4t.js",revision:null},{url:"assets/board-layout-C2v-fo1W.js",revision:null},{url:"assets/constant-b2ZZlr_Y.js",revision:null},{url:"assets/ContestStateBadge-fTJw-IjF.js",revision:null},{url:"assets/ContestStateBadge-yOXRkC0c.css",revision:null},{url:"assets/Countdown-1A-2QJ7m.js",revision:null},{url:"assets/Countdown-De6dfmWB.css",revision:null},{url:"assets/DataSourceInput.vue_vue_type_script_setup_true_lang-CXts-riZ.js",revision:null},{url:"assets/default-D4907N0j.js",revision:null},{url:"assets/en-DDlXf_8q.js",revision:null},{url:"assets/Footer.vue_vue_type_script_setup_true_lang-Bk0nFBfB.js",revision:null},{url:"assets/headless-C_cFBCtG.js",revision:null},{url:"assets/home-CRZ6rGwZ.js",revision:null},{url:"assets/index-BerApwlM.css",revision:null},{url:"assets/index-BjCWriHl.css",revision:null},{url:"assets/index-BnOiKE-V.js",revision:null},{url:"assets/index-BP90wE2A.css",revision:null},{url:"assets/index-Bvki346r.js",revision:null},{url:"assets/index-ClcpF-3G.js",revision:null},{url:"assets/index-cu4LZbd6.js",revision:null},{url:"assets/index-CVZtA3I-.js",revision:null},{url:"assets/index-D5Eq7tNN.js",revision:null},{url:"assets/index-Dar9HUtt.js",revision:null},{url:"assets/index-DQYGiW5A.js",revision:null},{url:"assets/index-layout-Bp7ERlAB.js",revision:null},{url:"assets/index-XjAdtRAz.js",revision:null},{url:"assets/NavBar-C6sQ5txU.js",revision:null},{url:"assets/NavBar-K1-1c5jR.css",revision:null},{url:"assets/pagination-CHOfWwrE.js",revision:null},{url:"assets/query-C-pLpLZb.js",revision:null},{url:"assets/Resolver-A6qSPE_R.js",revision:null},{url:"assets/Resolver-DRiWpQTB.css",revision:null},{url:"assets/RightArrowIcon-ClOVVo1B.js",revision:null},{url:"assets/route-block-B_A1xBdJ.js",revision:null},{url:"assets/test-Bw2mUsPy.js",revision:null},{url:"assets/TheInput.vue_vue_type_script_setup_true_lang-D5spkHqx.js",revision:null},{url:"assets/Tooltip-VVqtpO6L.css",revision:null},{url:"assets/Tooltip.vue_vue_type_script_setup_true_lang-FgOX36Lq.js",revision:null},{url:"assets/use-vmodel-BKVjZ-1P.js",revision:null},{url:"assets/user-o9hs8HNN.js",revision:null},{url:"assets/virtual_pwa-register-8shrxAmh.js",revision:null},{url:"assets/workbox-window.prod.es5-D5gOYdM7.js",revision:null},{url:"assets/zh-CN-CNJkghp4.js",revision:null},{url:"index.html",revision:"cec084a37d5583416ca750c439bd4224"},{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:"3082e8d8ebc9619c6c1055ff243a02a8"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))}));
1
+ if(!self.define){let s,e={};const l=(l,n)=>(l=new URL(l+".js",n).href,e[l]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()})).then((()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s})));self.define=(n,r)=>{const i=s||("document"in self?document.currentScript.src:"")||location.href;if(e[i])return;let u={};const t=s=>l(s,i),o={module:{uri:i},exports:u,require:t};e[i]=Promise.all(n.map((s=>o[s]||t(s)))).then((s=>(r(...s),u)))}}define(["./workbox-7ee6f867"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"assets/_..-5I0UWqRG.css",revision:null},{url:"assets/_...all_-CpbyYPnu.js",revision:null},{url:"assets/_...all_-DizdgePm.js",revision:null},{url:"assets/_name_-CyHYBF6H.js",revision:null},{url:"assets/_plugin-vue_export-helper-DlAUqK2U.js",revision:null},{url:"assets/about-CfqrcwJT.js",revision:null},{url:"assets/Balloon.vue_vue_type_script_setup_true_lang-4AVGJCMI.js",revision:null},{url:"assets/Board-DI2_Xyh3.css",revision:null},{url:"assets/Board-DpMNDnwb.js",revision:null},{url:"assets/board-layout-DDF2wubP.js",revision:null},{url:"assets/board-vgh1WXMi.js",revision:null},{url:"assets/constant-CKMKwY_M.js",revision:null},{url:"assets/ContestStateBadge-DawlTsHs.css",revision:null},{url:"assets/ContestStateBadge-Dhbid94g.js",revision:null},{url:"assets/Countdown-BvdJWWuk.js",revision:null},{url:"assets/Countdown-CGwMuG9S.css",revision:null},{url:"assets/DataSourceInput.vue_vue_type_script_setup_true_lang-BdYOS7Pt.js",revision:null},{url:"assets/default-REGvX7tC.js",revision:null},{url:"assets/en-Bjc9Zdq9.js",revision:null},{url:"assets/Footer.vue_vue_type_script_setup_true_lang-DoBaeAhT.js",revision:null},{url:"assets/headless-DedxMF3x.js",revision:null},{url:"assets/home-DSppcc6C.js",revision:null},{url:"assets/index-_3n9Ahv3.js",revision:null},{url:"assets/index-B8vw3ErJ.js",revision:null},{url:"assets/index-Bx4d8xqO.js",revision:null},{url:"assets/index-BZdyM9Qh.js",revision:null},{url:"assets/index-CaB6yvAO.js",revision:null},{url:"assets/index-Cc2LPl6E.js",revision:null},{url:"assets/index-CkWanoDO.css",revision:null},{url:"assets/index-D0wLFbYO.css",revision:null},{url:"assets/index-DLur0B0J.css",revision:null},{url:"assets/index-layout-qLKsk6Zm.js",revision:null},{url:"assets/index-LvyoMonD.js",revision:null},{url:"assets/index-Y1YIGHJj.js",revision:null},{url:"assets/index-Yf5aNxDp.js",revision:null},{url:"assets/NavBar-B9KggQU-.js",revision:null},{url:"assets/NavBar-C0cqpBnK.css",revision:null},{url:"assets/pagination-zmuISHg-.js",revision:null},{url:"assets/query-DymhAP9l.js",revision:null},{url:"assets/Resolver-B6m5f_LD.css",revision:null},{url:"assets/Resolver-CxzATvRW.js",revision:null},{url:"assets/RightArrowIcon-UrcrWsjs.js",revision:null},{url:"assets/route-block-B_A1xBdJ.js",revision:null},{url:"assets/test-C8r9tN4s.js",revision:null},{url:"assets/TheInput.vue_vue_type_script_setup_true_lang-Fq7AIk4r.js",revision:null},{url:"assets/Tooltip-DzyPDwbo.css",revision:null},{url:"assets/Tooltip.vue_vue_type_script_setup_true_lang-C9T_K5RC.js",revision:null},{url:"assets/use-vmodel-BusQKjfF.js",revision:null},{url:"assets/user-B1iInd_U.js",revision:null},{url:"assets/virtual_pwa-register-Bw1WWEdI.js",revision:null},{url:"assets/workbox-window.prod.es5-B9K5rw8f.js",revision:null},{url:"assets/zh-CN-BgAN9IOl.js",revision:null},{url:"index.html",revision:"2c22e37f24a5bab02d55f4de808a95f3"},{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")))}));
@@ -1 +1 @@
1
- define(["exports"],(function(t){"use strict";try{self["workbox:core:7.0.0"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=` :: ${JSON.stringify(e)}`),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}try{self["workbox:routing:7.0.0"]&&_()}catch(t){}const n=t=>t&&"object"==typeof t?t:{handle:t};class i{constructor(t,e,s="GET"){this.handler=n(e),this.match=t,this.method=s}setCatchHandler(t){this.catchHandler=n(t)}}class r extends i{constructor(t,e,s){super((({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)}),e,s)}}class o{constructor(){this.t=new Map,this.i=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",(t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)}))}addCacheListener(){self.addEventListener("message",(t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map((e=>{"string"==typeof e&&(e=[e]);const s=new Request(...e);return this.handleRequest({request:s,event:t})})));t.waitUntil(s),t.ports&&t.ports[0]&&s.then((()=>t.ports[0].postMessage(!0)))}}))}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:i,route:r}=this.findMatchingRoute({event:e,request:t,sameOrigin:n,url:s});let o=r&&r.handler;const c=t.method;if(!o&&this.i.has(c)&&(o=this.i.get(c)),!o)return;let a;try{a=o.handle({url:s,request:t,event:e,params:i})}catch(t){a=Promise.reject(t)}const h=r&&r.catchHandler;return a instanceof Promise&&(this.o||h)&&(a=a.catch((async n=>{if(h)try{return await h.handle({url:s,request:t,event:e,params:i})}catch(t){t instanceof Error&&(n=t)}if(this.o)return this.o.handle({url:s,request:t,event:e});throw n}))),a}findMatchingRoute({url:t,sameOrigin:e,request:s,event:n}){const i=this.t.get(s.method)||[];for(const r of i){let i;const o=r.match({url:t,sameOrigin:e,request:s,event:n});if(o)return i=o,(Array.isArray(i)&&0===i.length||o.constructor===Object&&0===Object.keys(o).length||"boolean"==typeof o)&&(i=void 0),{route:r,params:i}}return{}}setDefaultHandler(t,e="GET"){this.i.set(e,n(t))}setCatchHandler(t){this.o=n(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let c;const a=()=>(c||(c=new o,c.addFetchListener(),c.addCacheListener()),c);function h(t,e,n){let o;if("string"==typeof t){const s=new URL(t,location.href);o=new i((({url:t})=>t.href===s.href),e,n)}else if(t instanceof RegExp)o=new r(t,e,n);else if("function"==typeof t)o=new i(t,e,n);else{if(!(t instanceof i))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});o=t}return a().registerRoute(o),o}const u={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},l=t=>[u.prefix,t,u.suffix].filter((t=>t&&t.length>0)).join("-"),f=t=>t||l(u.precache),w=t=>t||l(u.runtime);function d(t,e){const s=e();return t.waitUntil(s),s}try{self["workbox:precaching:7.0.0"]&&_()}catch(t){}function p(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const i=new URL(n,location.href),r=new URL(n,location.href);return i.searchParams.set("__WB_REVISION__",e),{cacheKey:i.href,url:r.href}}class y{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:s})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}}class g{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const s=(null==e?void 0:e.cacheKey)||this.h.getCacheKeyForURL(t.url);return s?new Request(s,{headers:t.headers}):t},this.h=t}}let R;async function m(t,e){let n=null;if(t.url){n=new URL(t.url).origin}if(n!==self.location.origin)throw new s("cross-origin-copy-response",{origin:n});const i=t.clone(),r={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},o=e?e(r):r,c=function(){if(void 0===R){const t=new Response("");if("body"in t)try{new Response(t.body),R=!0}catch(t){R=!1}R=!1}return R}()?i.body:await i.blob();return new Response(c,o)}function v(t,e){const s=new URL(t);for(const t of e)s.searchParams.delete(t);return s.href}class q{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}const U=new Set;try{self["workbox:strategies:7.0.0"]&&_()}catch(t){}function L(t){return"string"==typeof t?new Request(t):t}class b{constructor(t,e){this.u={},Object.assign(this,e),this.event=e.event,this.l=t,this.p=new q,this.R=[],this.m=[...t.plugins],this.v=new Map;for(const t of this.m)this.v.set(t,{});this.event.waitUntil(this.p.promise)}async fetch(t){const{event:e}=this;let n=L(t);if("navigate"===n.mode&&e instanceof FetchEvent&&e.preloadResponse){const t=await e.preloadResponse;if(t)return t}const i=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))n=await t({request:n.clone(),event:e})}catch(t){if(t instanceof Error)throw new s("plugin-error-request-will-fetch",{thrownErrorMessage:t.message})}const r=n.clone();try{let t;t=await fetch(n,"navigate"===n.mode?void 0:this.l.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))t=await s({event:e,request:r,response:t});return t}catch(t){throw i&&await this.runCallbacks("fetchDidFail",{error:t,event:e,originalRequest:i.clone(),request:r.clone()}),t}}async fetchAndCachePut(t){const e=await this.fetch(t),s=e.clone();return this.waitUntil(this.cachePut(t,s)),e}async cacheMatch(t){const e=L(t);let s;const{cacheName:n,matchOptions:i}=this.l,r=await this.getCacheKey(e,"read"),o=Object.assign(Object.assign({},i),{cacheName:n});s=await caches.match(r,o);for(const t of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await t({cacheName:n,matchOptions:i,cachedResponse:s,request:r,event:this.event})||void 0;return s}async cachePut(t,e){const n=L(t);var i;await(i=0,new Promise((t=>setTimeout(t,i))));const r=await this.getCacheKey(n,"write");if(!e)throw new s("cache-put-with-no-response",{url:(o=r.url,new URL(String(o),location.href).href.replace(new RegExp(`^${location.origin}`),""))});var o;const c=await this.q(e);if(!c)return!1;const{cacheName:a,matchOptions:h}=this.l,u=await self.caches.open(a),l=this.hasCallback("cacheDidUpdate"),f=l?await async function(t,e,s,n){const i=v(e.url,s);if(e.url===i)return t.match(e,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),o=await t.keys(e,r);for(const e of o)if(i===v(e.url,s))return t.match(e,n)}(u,r.clone(),["__WB_REVISION__"],h):null;try{await u.put(r,l?c.clone():c)}catch(t){if(t instanceof Error)throw"QuotaExceededError"===t.name&&await async function(){for(const t of U)await t()}(),t}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:a,oldResponse:f,newResponse:c.clone(),request:r,event:this.event});return!0}async getCacheKey(t,e){const s=`${t.url} | ${e}`;if(!this.u[s]){let n=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))n=L(await t({mode:e,request:n,event:this.event,params:this.params}));this.u[s]=n}return this.u[s]}hasCallback(t){for(const e of this.l.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const s of this.iterateCallbacks(t))await s(e)}*iterateCallbacks(t){for(const e of this.l.plugins)if("function"==typeof e[t]){const s=this.v.get(e),n=n=>{const i=Object.assign(Object.assign({},n),{state:s});return e[t](i)};yield n}}waitUntil(t){return this.R.push(t),t}async doneWaiting(){let t;for(;t=this.R.shift();)await t}destroy(){this.p.resolve(null)}async q(t){let e=t,s=!1;for(const t of this.iterateCallbacks("cacheWillUpdate"))if(e=await t({request:this.request,response:e,event:this.event})||void 0,s=!0,!e)break;return s||e&&200!==e.status&&(e=void 0),e}}class C{constructor(t={}){this.cacheName=w(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,s="string"==typeof t.request?new Request(t.request):t.request,n="params"in t?t.params:void 0,i=new b(this,{event:e,request:s,params:n}),r=this.U(i,s,e);return[r,this.L(r,i,s,e)]}async U(t,e,n){let i;await t.runCallbacks("handlerWillStart",{event:n,request:e});try{if(i=await this._(e,t),!i||"error"===i.type)throw new s("no-response",{url:e.url})}catch(s){if(s instanceof Error)for(const r of t.iterateCallbacks("handlerDidError"))if(i=await r({error:s,event:n,request:e}),i)break;if(!i)throw s}for(const s of t.iterateCallbacks("handlerWillRespond"))i=await s({event:n,request:e,response:i});return i}async L(t,e,s,n){let i,r;try{i=await t}catch(r){}try{await e.runCallbacks("handlerDidRespond",{event:n,request:s,response:i}),await e.doneWaiting()}catch(t){t instanceof Error&&(r=t)}if(await e.runCallbacks("handlerDidComplete",{event:n,request:s,response:i,error:r}),e.destroy(),r)throw r}}class E extends C{constructor(t={}){t.cacheName=f(t.cacheName),super(t),this.C=!1!==t.fallbackToNetwork,this.plugins.push(E.copyRedirectedCacheableResponsesPlugin)}async _(t,e){const s=await e.cacheMatch(t);return s||(e.event&&"install"===e.event.type?await this.O(t,e):await this.N(t,e))}async N(t,e){let n;const i=e.params||{};if(!this.C)throw new s("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{const s=i.integrity,r=t.integrity,o=!r||r===s;n=await e.fetch(new Request(t,{integrity:"no-cors"!==t.mode?r||s:void 0})),s&&o&&"no-cors"!==t.mode&&(this.k(),await e.cachePut(t,n.clone()))}return n}async O(t,e){this.k();const n=await e.fetch(t);if(!await e.cachePut(t,n.clone()))throw new s("bad-precaching-response",{url:t.url,status:n.status});return n}k(){let t=null,e=0;for(const[s,n]of this.plugins.entries())n!==E.copyRedirectedCacheableResponsesPlugin&&(n===E.defaultPrecacheCacheabilityPlugin&&(t=s),n.cacheWillUpdate&&e++);0===e?this.plugins.push(E.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}E.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:t})=>!t||t.status>=400?null:t},E.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await m(t):t};class O{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:s=!0}={}){this.K=new Map,this.P=new Map,this.T=new Map,this.l=new E({cacheName:f(t),plugins:[...e,new g({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this.l}precache(t){this.addToCacheList(t),this.W||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this.W=!0)}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:i}=p(n),r="string"!=typeof n&&n.revision?"reload":"default";if(this.K.has(i)&&this.K.get(i)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.K.get(i),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.T.has(t)&&this.T.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:i});this.T.set(t,n.integrity)}if(this.K.set(i,t),this.P.set(i,r),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return d(t,(async()=>{const e=new y;this.strategy.plugins.push(e);for(const[e,s]of this.K){const n=this.T.get(s),i=this.P.get(e),r=new Request(e,{integrity:n,cache:i,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s},request:r,event:t}))}const{updatedURLs:s,notUpdatedURLs:n}=e;return{updatedURLs:s,notUpdatedURLs:n}}))}activate(t){return d(t,(async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),s=new Set(this.K.values()),n=[];for(const i of e)s.has(i.url)||(await t.delete(i),n.push(i.url));return{deletedURLs:n}}))}getURLsToCacheKeys(){return this.K}getCachedURLs(){return[...this.K.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.K.get(e.href)}getIntegrityForCacheKey(t){return this.T.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(t){const e=this.getCacheKeyForURL(t);if(!e)throw new s("non-precached-url",{url:t});return s=>(s.request=new Request(t),s.params=Object.assign({cacheKey:e},s.params),this.strategy.handle(s))}}let x;const N=()=>(x||(x=new O),x);class k extends i{constructor(t,e){super((({request:s})=>{const n=t.getURLsToCacheKeys();for(const i of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:i}={}){const r=new URL(t,location.href);r.hash="",yield r.href;const o=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some((t=>t.test(s)))&&t.searchParams.delete(s);return t}(r,e);if(yield o.href,s&&o.pathname.endsWith("/")){const t=new URL(o.href);t.pathname+=s,yield t.href}if(n){const t=new URL(o.href);t.pathname+=".html",yield t.href}if(i){const t=i({url:r});for(const e of t)yield e.href}}(s.url,e)){const e=n.get(i);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}}),t.strategy)}}t.NavigationRoute=class extends i{constructor(t,{allowlist:e=[/./],denylist:s=[]}={}){super((t=>this.j(t)),t),this.M=e,this.S=s}j({url:t,request:e}){if(e&&"navigate"!==e.mode)return!1;const s=t.pathname+t.search;for(const t of this.S)if(t.test(s))return!1;return!!this.M.some((t=>t.test(s)))}},t.cleanupOutdatedCaches=function(){self.addEventListener("activate",(t=>{const e=f();t.waitUntil((async(t,e="-precache-")=>{const s=(await self.caches.keys()).filter((s=>s.includes(e)&&s.includes(self.registration.scope)&&s!==t));return await Promise.all(s.map((t=>self.caches.delete(t)))),s})(e).then((t=>{})))}))},t.clientsClaim=function(){self.addEventListener("activate",(()=>self.clients.claim()))},t.createHandlerBoundToURL=function(t){return N().createHandlerBoundToURL(t)},t.precacheAndRoute=function(t,e){!function(t){N().precache(t)}(t),function(t){const e=N();h(new k(e,t))}(e)},t.registerRoute=h}));
1
+ define(["exports"],(function(t){"use strict";try{self["workbox:core:7.2.0"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=` :: ${JSON.stringify(e)}`),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}try{self["workbox:routing:7.2.0"]&&_()}catch(t){}const n=t=>t&&"object"==typeof t?t:{handle:t};class i{constructor(t,e,s="GET"){this.handler=n(e),this.match=t,this.method=s}setCatchHandler(t){this.catchHandler=n(t)}}class r extends i{constructor(t,e,s){super((({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)}),e,s)}}class o{constructor(){this.t=new Map,this.i=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",(t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)}))}addCacheListener(){self.addEventListener("message",(t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map((e=>{"string"==typeof e&&(e=[e]);const s=new Request(...e);return this.handleRequest({request:s,event:t})})));t.waitUntil(s),t.ports&&t.ports[0]&&s.then((()=>t.ports[0].postMessage(!0)))}}))}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:i,route:r}=this.findMatchingRoute({event:e,request:t,sameOrigin:n,url:s});let o=r&&r.handler;const c=t.method;if(!o&&this.i.has(c)&&(o=this.i.get(c)),!o)return;let a;try{a=o.handle({url:s,request:t,event:e,params:i})}catch(t){a=Promise.reject(t)}const h=r&&r.catchHandler;return a instanceof Promise&&(this.o||h)&&(a=a.catch((async n=>{if(h)try{return await h.handle({url:s,request:t,event:e,params:i})}catch(t){t instanceof Error&&(n=t)}if(this.o)return this.o.handle({url:s,request:t,event:e});throw n}))),a}findMatchingRoute({url:t,sameOrigin:e,request:s,event:n}){const i=this.t.get(s.method)||[];for(const r of i){let i;const o=r.match({url:t,sameOrigin:e,request:s,event:n});if(o)return i=o,(Array.isArray(i)&&0===i.length||o.constructor===Object&&0===Object.keys(o).length||"boolean"==typeof o)&&(i=void 0),{route:r,params:i}}return{}}setDefaultHandler(t,e="GET"){this.i.set(e,n(t))}setCatchHandler(t){this.o=n(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let c;const a=()=>(c||(c=new o,c.addFetchListener(),c.addCacheListener()),c);function h(t,e,n){let o;if("string"==typeof t){const s=new URL(t,location.href);o=new i((({url:t})=>t.href===s.href),e,n)}else if(t instanceof RegExp)o=new r(t,e,n);else if("function"==typeof t)o=new i(t,e,n);else{if(!(t instanceof i))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});o=t}return a().registerRoute(o),o}const u={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},l=t=>[u.prefix,t,u.suffix].filter((t=>t&&t.length>0)).join("-"),f=t=>t||l(u.precache),w=t=>t||l(u.runtime);function d(t,e){const s=e();return t.waitUntil(s),s}try{self["workbox:precaching:7.2.0"]&&_()}catch(t){}function p(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const i=new URL(n,location.href),r=new URL(n,location.href);return i.searchParams.set("__WB_REVISION__",e),{cacheKey:i.href,url:r.href}}class y{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:s})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}}class g{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const s=(null==e?void 0:e.cacheKey)||this.h.getCacheKeyForURL(t.url);return s?new Request(s,{headers:t.headers}):t},this.h=t}}let R;async function m(t,e){let n=null;if(t.url){n=new URL(t.url).origin}if(n!==self.location.origin)throw new s("cross-origin-copy-response",{origin:n});const i=t.clone(),r={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},o=e?e(r):r,c=function(){if(void 0===R){const t=new Response("");if("body"in t)try{new Response(t.body),R=!0}catch(t){R=!1}R=!1}return R}()?i.body:await i.blob();return new Response(c,o)}function v(t,e){const s=new URL(t);for(const t of e)s.searchParams.delete(t);return s.href}class q{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}const U=new Set;try{self["workbox:strategies:7.2.0"]&&_()}catch(t){}function L(t){return"string"==typeof t?new Request(t):t}class b{constructor(t,e){this.u={},Object.assign(this,e),this.event=e.event,this.l=t,this.p=new q,this.R=[],this.m=[...t.plugins],this.v=new Map;for(const t of this.m)this.v.set(t,{});this.event.waitUntil(this.p.promise)}async fetch(t){const{event:e}=this;let n=L(t);if("navigate"===n.mode&&e instanceof FetchEvent&&e.preloadResponse){const t=await e.preloadResponse;if(t)return t}const i=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))n=await t({request:n.clone(),event:e})}catch(t){if(t instanceof Error)throw new s("plugin-error-request-will-fetch",{thrownErrorMessage:t.message})}const r=n.clone();try{let t;t=await fetch(n,"navigate"===n.mode?void 0:this.l.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))t=await s({event:e,request:r,response:t});return t}catch(t){throw i&&await this.runCallbacks("fetchDidFail",{error:t,event:e,originalRequest:i.clone(),request:r.clone()}),t}}async fetchAndCachePut(t){const e=await this.fetch(t),s=e.clone();return this.waitUntil(this.cachePut(t,s)),e}async cacheMatch(t){const e=L(t);let s;const{cacheName:n,matchOptions:i}=this.l,r=await this.getCacheKey(e,"read"),o=Object.assign(Object.assign({},i),{cacheName:n});s=await caches.match(r,o);for(const t of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await t({cacheName:n,matchOptions:i,cachedResponse:s,request:r,event:this.event})||void 0;return s}async cachePut(t,e){const n=L(t);var i;await(i=0,new Promise((t=>setTimeout(t,i))));const r=await this.getCacheKey(n,"write");if(!e)throw new s("cache-put-with-no-response",{url:(o=r.url,new URL(String(o),location.href).href.replace(new RegExp(`^${location.origin}`),""))});var o;const c=await this.q(e);if(!c)return!1;const{cacheName:a,matchOptions:h}=this.l,u=await self.caches.open(a),l=this.hasCallback("cacheDidUpdate"),f=l?await async function(t,e,s,n){const i=v(e.url,s);if(e.url===i)return t.match(e,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),o=await t.keys(e,r);for(const e of o)if(i===v(e.url,s))return t.match(e,n)}(u,r.clone(),["__WB_REVISION__"],h):null;try{await u.put(r,l?c.clone():c)}catch(t){if(t instanceof Error)throw"QuotaExceededError"===t.name&&await async function(){for(const t of U)await t()}(),t}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:a,oldResponse:f,newResponse:c.clone(),request:r,event:this.event});return!0}async getCacheKey(t,e){const s=`${t.url} | ${e}`;if(!this.u[s]){let n=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))n=L(await t({mode:e,request:n,event:this.event,params:this.params}));this.u[s]=n}return this.u[s]}hasCallback(t){for(const e of this.l.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const s of this.iterateCallbacks(t))await s(e)}*iterateCallbacks(t){for(const e of this.l.plugins)if("function"==typeof e[t]){const s=this.v.get(e),n=n=>{const i=Object.assign(Object.assign({},n),{state:s});return e[t](i)};yield n}}waitUntil(t){return this.R.push(t),t}async doneWaiting(){let t;for(;t=this.R.shift();)await t}destroy(){this.p.resolve(null)}async q(t){let e=t,s=!1;for(const t of this.iterateCallbacks("cacheWillUpdate"))if(e=await t({request:this.request,response:e,event:this.event})||void 0,s=!0,!e)break;return s||e&&200!==e.status&&(e=void 0),e}}class C{constructor(t={}){this.cacheName=w(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,s="string"==typeof t.request?new Request(t.request):t.request,n="params"in t?t.params:void 0,i=new b(this,{event:e,request:s,params:n}),r=this.U(i,s,e);return[r,this.L(r,i,s,e)]}async U(t,e,n){let i;await t.runCallbacks("handlerWillStart",{event:n,request:e});try{if(i=await this._(e,t),!i||"error"===i.type)throw new s("no-response",{url:e.url})}catch(s){if(s instanceof Error)for(const r of t.iterateCallbacks("handlerDidError"))if(i=await r({error:s,event:n,request:e}),i)break;if(!i)throw s}for(const s of t.iterateCallbacks("handlerWillRespond"))i=await s({event:n,request:e,response:i});return i}async L(t,e,s,n){let i,r;try{i=await t}catch(r){}try{await e.runCallbacks("handlerDidRespond",{event:n,request:s,response:i}),await e.doneWaiting()}catch(t){t instanceof Error&&(r=t)}if(await e.runCallbacks("handlerDidComplete",{event:n,request:s,response:i,error:r}),e.destroy(),r)throw r}}class E extends C{constructor(t={}){t.cacheName=f(t.cacheName),super(t),this.C=!1!==t.fallbackToNetwork,this.plugins.push(E.copyRedirectedCacheableResponsesPlugin)}async _(t,e){const s=await e.cacheMatch(t);return s||(e.event&&"install"===e.event.type?await this.O(t,e):await this.N(t,e))}async N(t,e){let n;const i=e.params||{};if(!this.C)throw new s("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{const s=i.integrity,r=t.integrity,o=!r||r===s;n=await e.fetch(new Request(t,{integrity:"no-cors"!==t.mode?r||s:void 0})),s&&o&&"no-cors"!==t.mode&&(this.k(),await e.cachePut(t,n.clone()))}return n}async O(t,e){this.k();const n=await e.fetch(t);if(!await e.cachePut(t,n.clone()))throw new s("bad-precaching-response",{url:t.url,status:n.status});return n}k(){let t=null,e=0;for(const[s,n]of this.plugins.entries())n!==E.copyRedirectedCacheableResponsesPlugin&&(n===E.defaultPrecacheCacheabilityPlugin&&(t=s),n.cacheWillUpdate&&e++);0===e?this.plugins.push(E.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}E.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:t})=>!t||t.status>=400?null:t},E.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await m(t):t};class O{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:s=!0}={}){this.K=new Map,this.P=new Map,this.T=new Map,this.l=new E({cacheName:f(t),plugins:[...e,new g({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this.l}precache(t){this.addToCacheList(t),this.W||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this.W=!0)}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:i}=p(n),r="string"!=typeof n&&n.revision?"reload":"default";if(this.K.has(i)&&this.K.get(i)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.K.get(i),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.T.has(t)&&this.T.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:i});this.T.set(t,n.integrity)}if(this.K.set(i,t),this.P.set(i,r),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return d(t,(async()=>{const e=new y;this.strategy.plugins.push(e);for(const[e,s]of this.K){const n=this.T.get(s),i=this.P.get(e),r=new Request(e,{integrity:n,cache:i,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s},request:r,event:t}))}const{updatedURLs:s,notUpdatedURLs:n}=e;return{updatedURLs:s,notUpdatedURLs:n}}))}activate(t){return d(t,(async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),s=new Set(this.K.values()),n=[];for(const i of e)s.has(i.url)||(await t.delete(i),n.push(i.url));return{deletedURLs:n}}))}getURLsToCacheKeys(){return this.K}getCachedURLs(){return[...this.K.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.K.get(e.href)}getIntegrityForCacheKey(t){return this.T.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(t){const e=this.getCacheKeyForURL(t);if(!e)throw new s("non-precached-url",{url:t});return s=>(s.request=new Request(t),s.params=Object.assign({cacheKey:e},s.params),this.strategy.handle(s))}}let x;const N=()=>(x||(x=new O),x);class k extends i{constructor(t,e){super((({request:s})=>{const n=t.getURLsToCacheKeys();for(const i of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:i}={}){const r=new URL(t,location.href);r.hash="",yield r.href;const o=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some((t=>t.test(s)))&&t.searchParams.delete(s);return t}(r,e);if(yield o.href,s&&o.pathname.endsWith("/")){const t=new URL(o.href);t.pathname+=s,yield t.href}if(n){const t=new URL(o.href);t.pathname+=".html",yield t.href}if(i){const t=i({url:r});for(const e of t)yield e.href}}(s.url,e)){const e=n.get(i);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}}),t.strategy)}}t.NavigationRoute=class extends i{constructor(t,{allowlist:e=[/./],denylist:s=[]}={}){super((t=>this.j(t)),t),this.M=e,this.S=s}j({url:t,request:e}){if(e&&"navigate"!==e.mode)return!1;const s=t.pathname+t.search;for(const t of this.S)if(t.test(s))return!1;return!!this.M.some((t=>t.test(s)))}},t.cleanupOutdatedCaches=function(){self.addEventListener("activate",(t=>{const e=f();t.waitUntil((async(t,e="-precache-")=>{const s=(await self.caches.keys()).filter((s=>s.includes(e)&&s.includes(self.registration.scope)&&s!==t));return await Promise.all(s.map((t=>self.caches.delete(t)))),s})(e).then((t=>{})))}))},t.clientsClaim=function(){self.addEventListener("activate",(()=>self.clients.claim()))},t.createHandlerBoundToURL=function(t){return N().createHandlerBoundToURL(t)},t.precacheAndRoute=function(t,e){!function(t){N().precache(t)}(t),function(t){const e=N();h(new k(e,t))}(e)},t.registerRoute=h}));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xcpcio/board-app",
3
3
  "type": "module",
4
- "version": "0.53.2",
4
+ "version": "0.55.0",
5
5
  "description": "XCPCIO Board App",
6
6
  "author": "Dup4 <lyuzhi.pan@gmail.com>",
7
7
  "license": "MIT",
@@ -30,80 +30,78 @@
30
30
  "node": ">=18"
31
31
  },
32
32
  "dependencies": {
33
- "@tanstack/vue-query": "^5.59.6",
34
- "@unhead/vue": "^1.11.7",
35
- "@unocss/reset": "^0.63.4",
36
- "@vueuse/components": "^11.1.0",
37
- "@vueuse/core": "^11.1.0",
33
+ "@tanstack/vue-query": "^5.70.0",
34
+ "@unhead/vue": "^2.0.2",
35
+ "@unocss/reset": "^66.0.0",
36
+ "@vueuse/components": "^13.0.0",
37
+ "@vueuse/core": "^13.0.0",
38
38
  "@vueuse/head": "^2.0.0",
39
- "@vueuse/router": "^11.1.0",
39
+ "@vueuse/router": "^13.0.0",
40
40
  "dayjs": "^1.11.13",
41
41
  "file-saver": "^2.0.5",
42
42
  "floating-vue": "5.2.2",
43
- "flowbite": "^2.5.2",
44
- "gsap": "^3.12.5",
45
- "highcharts": "^11.4.8",
43
+ "flowbite": "^3.1.2",
44
+ "gsap": "^3.12.7",
45
+ "highcharts": "^12.1.2",
46
46
  "highcharts-vue": "^2.0.1",
47
47
  "lodash": "^4.17.21",
48
48
  "nprogress": "^0.2.0",
49
- "pinia": "^2.2.4",
49
+ "pinia": "^3.0.1",
50
50
  "sleep-promise": "^9.1.0",
51
- "vue": "^3.5.11",
51
+ "vue": "^3.5.13",
52
52
  "vue-demi": "^0.14.10",
53
- "vue-i18n": "^10.0.4",
54
- "vue-router": "^4.4.5",
53
+ "vue-i18n": "^10.0.6",
54
+ "vue-router": "^4.5.0",
55
55
  "vue-search-select": "^3.2.0",
56
56
  "vue-toast-notification": "^3.1.3",
57
- "@xcpcio/core": "0.53.2",
58
- "@xcpcio/types": "0.53.2"
57
+ "@xcpcio/core": "0.55.0",
58
+ "@xcpcio/types": "0.55.0"
59
59
  },
60
60
  "devDependencies": {
61
- "@antfu/eslint-config": "^3.7.3",
62
- "@iconify/json": "^2.2.258",
63
- "@intlify/unplugin-vue-i18n": "^5.2.0",
64
- "@shikijs/markdown-it": "^1.22.0",
61
+ "@iconify/json": "^2.2.321",
62
+ "@intlify/unplugin-vue-i18n": "^6.0.5",
63
+ "@shikijs/markdown-it": "^3.2.1",
65
64
  "@types/file-saver": "^2.0.7",
66
- "@types/lodash": "^4.17.10",
65
+ "@types/lodash": "^4.17.16",
67
66
  "@types/markdown-it-link-attributes": "^3.0.5",
68
67
  "@types/nprogress": "^0.2.3",
69
- "@unocss/eslint-config": "^0.63.4",
70
- "@vitejs/plugin-vue": "^5.1.4",
71
- "@vue-macros/volar": "^0.30.3",
68
+ "@vitejs/plugin-vue": "^5.2.3",
69
+ "@vue-macros/volar": "^0.30.15",
72
70
  "@vue/test-utils": "^2.4.6",
73
- "critters": "^0.0.24",
71
+ "critters": "^0.0.25",
74
72
  "cross-env": "^7.0.3",
75
- "cypress": "^13.15.0",
76
- "cypress-vite": "^1.5.0",
77
- "eslint": "^9.12.0",
78
- "eslint-plugin-cypress": "^3.5.0",
79
- "eslint-plugin-format": "^0.1.2",
73
+ "cypress": "^14.2.1",
74
+ "cypress-vite": "^1.6.0",
75
+ "eslint": "^9.23.0",
76
+ "eslint-plugin-cypress": "^4.2.0",
77
+ "eslint-plugin-format": "^1.0.1",
80
78
  "https-localhost": "^4.7.1",
81
- "less": "^4.2.0",
79
+ "less": "^4.2.2",
82
80
  "markdown-it-link-attributes": "^4.0.1",
83
- "rollup": "^4.24.0",
84
- "shiki": "^1.22.0",
85
- "taze": "^0.17.2",
86
- "typescript": "^5.6.3",
87
- "unocss": "^0.63.4",
88
- "unplugin-auto-import": "^0.18.3",
89
- "unplugin-vue-components": "^0.27.4",
90
- "unplugin-vue-macros": "^2.12.3",
91
- "unplugin-vue-markdown": "^0.26.2",
92
- "unplugin-vue-router": "^0.10.8",
93
- "vite": "^5.4.8",
81
+ "rollup": "^4.38.0",
82
+ "shiki": "^3.2.1",
83
+ "taze": "^19.0.4",
84
+ "typescript": "^5.8.2",
85
+ "unocss": "^66.0.0",
86
+ "unplugin-auto-import": "^19.1.2",
87
+ "unplugin-vue-components": "^28.4.1",
88
+ "unplugin-vue-macros": "^2.14.5",
89
+ "unplugin-vue-markdown": "^28.3.1",
90
+ "unplugin-vue-router": "^0.12.0",
91
+ "vite": "^5.4.15",
94
92
  "vite-bundle-visualizer": "^1.2.1",
95
93
  "vite-plugin-html": "^3.2.2",
96
- "vite-plugin-inspect": "^0.8.7",
97
- "vite-plugin-pwa": "^0.20.5",
98
- "vite-plugin-vue-devtools": "^7.4.6",
94
+ "vite-plugin-inspect": "^11.0.0",
95
+ "vite-plugin-pwa": "^1.0.0",
96
+ "vite-plugin-vue-devtools": "^7.7.2",
99
97
  "vite-plugin-vue-layouts": "^0.11.0",
100
- "vite-plugin-webfont-dl": "^3.9.5",
101
- "vite-ssg": "^0.23.8",
98
+ "vite-plugin-webfont-dl": "^3.10.4",
99
+ "vite-ssg": "^26.1.1",
102
100
  "vite-ssg-sitemap": "^0.8.1",
103
- "vitest": "^2.1.2",
104
- "vue-tsc": "^2.1.6",
105
- "workbox-build": "^7.1.1",
106
- "workbox-window": "^7.1.0"
101
+ "vitest": "^3.0.9",
102
+ "vue-tsc": "^2.2.8",
103
+ "workbox-build": "^7.3.0",
104
+ "workbox-window": "^7.3.0"
107
105
  },
108
106
  "scripts": {
109
107
  "build": "vite build",
@@ -17,6 +17,7 @@ declare global {
17
17
  const RATING_DATA_HOST: typeof import('./composables/constant')['RATING_DATA_HOST']
18
18
  const RATING_TITLE_SUFFIX: typeof import('./composables/constant')['RATING_TITLE_SUFFIX']
19
19
  const RESOLVER_TITLE_SUFFIX: typeof import('./composables/constant')['RESOLVER_TITLE_SUFFIX']
20
+ const SUBMISSION_TITLE_SUFFIX: typeof import('./composables/constant')['SUBMISSION_TITLE_SUFFIX']
20
21
  const TITLE_SUFFIX: typeof import('./composables/constant')['TITLE_SUFFIX']
21
22
  const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
22
23
  const autoResetRef: typeof import('@vueuse/core')['autoResetRef']
@@ -36,6 +37,7 @@ declare global {
36
37
  const createGlobalState: typeof import('@vueuse/core')['createGlobalState']
37
38
  const createInjectionState: typeof import('@vueuse/core')['createInjectionState']
38
39
  const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn']
40
+ const createRef: typeof import('@vueuse/core')['createRef']
39
41
  const createReusableTemplate: typeof import('@vueuse/core')['createReusableTemplate']
40
42
  const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable']
41
43
  const createTemplatePromise: typeof import('@vueuse/core')['createTemplatePromise']
@@ -82,6 +84,7 @@ declare global {
82
84
  const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
83
85
  const onClickOutside: typeof import('@vueuse/core')['onClickOutside']
84
86
  const onDeactivated: typeof import('vue')['onDeactivated']
87
+ const onElementRemoval: typeof import('@vueuse/core')['onElementRemoval']
85
88
  const onErrorCaptured: typeof import('vue')['onErrorCaptured']
86
89
  const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke']
87
90
  const onLongPress: typeof import('@vueuse/core')['onLongPress']
@@ -168,6 +171,7 @@ declare global {
168
171
  const useCloned: typeof import('@vueuse/core')['useCloned']
169
172
  const useColorMode: typeof import('@vueuse/core')['useColorMode']
170
173
  const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog']
174
+ const useCountdown: typeof import('@vueuse/core')['useCountdown']
171
175
  const useCounter: typeof import('@vueuse/core')['useCounter']
172
176
  const useCssModule: typeof import('vue')['useCssModule']
173
177
  const useCssVar: typeof import('@vueuse/core')['useCssVar']
@@ -253,6 +257,7 @@ declare global {
253
257
  const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark']
254
258
  const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages']
255
259
  const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion']
260
+ const usePreferredReducedTransparency: typeof import('@vueuse/core')['usePreferredReducedTransparency']
256
261
  const usePrevious: typeof import('@vueuse/core')['usePrevious']
257
262
  const useQueryBoardData: typeof import('./composables/useQueryBoardData')['useQueryBoardData']
258
263
  const useRafFn: typeof import('@vueuse/core')['useRafFn']
@@ -261,6 +266,7 @@ declare global {
261
266
  const useRoute: typeof import('vue-router')['useRoute']
262
267
  const useRouteQueryForBattleOfGiants: typeof import('./composables/query')['useRouteQueryForBattleOfGiants']
263
268
  const useRouter: typeof import('vue-router')['useRouter']
269
+ const useSSRWidth: typeof import('@vueuse/core')['useSSRWidth']
264
270
  const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation']
265
271
  const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea']
266
272
  const useScriptTag: typeof import('@vueuse/core')['useScriptTag']
@@ -335,9 +341,16 @@ declare global {
335
341
  export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
336
342
  import('vue')
337
343
  // @ts-ignore
338
- export type { LastBlockDisplayType } from './composables/type'
344
+ export type { Pagination } from './composables/pagination'
345
+ import('./composables/pagination')
346
+ // @ts-ignore
347
+ export type { LastBlockDisplayType, AnimatedSubmissionBlockItem } from './composables/type'
339
348
  import('./composables/type')
349
+ // @ts-ignore
350
+ export type { BoardData } from './composables/useQueryBoardData'
351
+ import('./composables/useQueryBoardData')
340
352
  }
353
+
341
354
  // for vue template auto import
342
355
  import { UnwrapRef } from 'vue'
343
356
  declare module 'vue' {
@@ -354,6 +367,7 @@ declare module 'vue' {
354
367
  readonly RATING_DATA_HOST: UnwrapRef<typeof import('./composables/constant')['RATING_DATA_HOST']>
355
368
  readonly RATING_TITLE_SUFFIX: UnwrapRef<typeof import('./composables/constant')['RATING_TITLE_SUFFIX']>
356
369
  readonly RESOLVER_TITLE_SUFFIX: UnwrapRef<typeof import('./composables/constant')['RESOLVER_TITLE_SUFFIX']>
370
+ readonly SUBMISSION_TITLE_SUFFIX: UnwrapRef<typeof import('./composables/constant')['SUBMISSION_TITLE_SUFFIX']>
357
371
  readonly TITLE_SUFFIX: UnwrapRef<typeof import('./composables/constant')['TITLE_SUFFIX']>
358
372
  readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']>
359
373
  readonly autoResetRef: UnwrapRef<typeof import('@vueuse/core')['autoResetRef']>
@@ -369,6 +383,7 @@ declare module 'vue' {
369
383
  readonly createGlobalState: UnwrapRef<typeof import('@vueuse/core')['createGlobalState']>
370
384
  readonly createInjectionState: UnwrapRef<typeof import('@vueuse/core')['createInjectionState']>
371
385
  readonly createReactiveFn: UnwrapRef<typeof import('@vueuse/core')['createReactiveFn']>
386
+ readonly createRef: UnwrapRef<typeof import('@vueuse/core')['createRef']>
372
387
  readonly createReusableTemplate: UnwrapRef<typeof import('@vueuse/core')['createReusableTemplate']>
373
388
  readonly createSharedComposable: UnwrapRef<typeof import('@vueuse/core')['createSharedComposable']>
374
389
  readonly createTemplatePromise: UnwrapRef<typeof import('@vueuse/core')['createTemplatePromise']>
@@ -414,6 +429,7 @@ declare module 'vue' {
414
429
  readonly onBeforeUpdate: UnwrapRef<typeof import('vue')['onBeforeUpdate']>
415
430
  readonly onClickOutside: UnwrapRef<typeof import('@vueuse/core')['onClickOutside']>
416
431
  readonly onDeactivated: UnwrapRef<typeof import('vue')['onDeactivated']>
432
+ readonly onElementRemoval: UnwrapRef<typeof import('@vueuse/core')['onElementRemoval']>
417
433
  readonly onErrorCaptured: UnwrapRef<typeof import('vue')['onErrorCaptured']>
418
434
  readonly onKeyStroke: UnwrapRef<typeof import('@vueuse/core')['onKeyStroke']>
419
435
  readonly onLongPress: UnwrapRef<typeof import('@vueuse/core')['onLongPress']>
@@ -498,6 +514,7 @@ declare module 'vue' {
498
514
  readonly useCloned: UnwrapRef<typeof import('@vueuse/core')['useCloned']>
499
515
  readonly useColorMode: UnwrapRef<typeof import('@vueuse/core')['useColorMode']>
500
516
  readonly useConfirmDialog: UnwrapRef<typeof import('@vueuse/core')['useConfirmDialog']>
517
+ readonly useCountdown: UnwrapRef<typeof import('@vueuse/core')['useCountdown']>
501
518
  readonly useCounter: UnwrapRef<typeof import('@vueuse/core')['useCounter']>
502
519
  readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
503
520
  readonly useCssVar: UnwrapRef<typeof import('@vueuse/core')['useCssVar']>
@@ -582,6 +599,7 @@ declare module 'vue' {
582
599
  readonly usePreferredDark: UnwrapRef<typeof import('@vueuse/core')['usePreferredDark']>
583
600
  readonly usePreferredLanguages: UnwrapRef<typeof import('@vueuse/core')['usePreferredLanguages']>
584
601
  readonly usePreferredReducedMotion: UnwrapRef<typeof import('@vueuse/core')['usePreferredReducedMotion']>
602
+ readonly usePreferredReducedTransparency: UnwrapRef<typeof import('@vueuse/core')['usePreferredReducedTransparency']>
585
603
  readonly usePrevious: UnwrapRef<typeof import('@vueuse/core')['usePrevious']>
586
604
  readonly useQueryBoardData: UnwrapRef<typeof import('./composables/useQueryBoardData')['useQueryBoardData']>
587
605
  readonly useRafFn: UnwrapRef<typeof import('@vueuse/core')['useRafFn']>
@@ -590,6 +608,7 @@ declare module 'vue' {
590
608
  readonly useRoute: UnwrapRef<typeof import('vue-router')['useRoute']>
591
609
  readonly useRouteQueryForBattleOfGiants: UnwrapRef<typeof import('./composables/query')['useRouteQueryForBattleOfGiants']>
592
610
  readonly useRouter: UnwrapRef<typeof import('vue-router')['useRouter']>
611
+ readonly useSSRWidth: UnwrapRef<typeof import('@vueuse/core')['useSSRWidth']>
593
612
  readonly useScreenOrientation: UnwrapRef<typeof import('@vueuse/core')['useScreenOrientation']>
594
613
  readonly useScreenSafeArea: UnwrapRef<typeof import('@vueuse/core')['useScreenSafeArea']>
595
614
  readonly useScriptTag: UnwrapRef<typeof import('@vueuse/core')['useScriptTag']>
@@ -658,4 +677,4 @@ declare module 'vue' {
658
677
  readonly watchWithFilter: UnwrapRef<typeof import('@vueuse/core')['watchWithFilter']>
659
678
  readonly whenever: UnwrapRef<typeof import('@vueuse/core')['whenever']>
660
679
  }
661
- }
680
+ }
@@ -90,7 +90,7 @@ onMounted(() => {
90
90
  const clientHeight = resolverRef.value.clientHeight;
91
91
 
92
92
  gsap.to(resolverRef.value, {
93
- duration: Math.round(resolver.value.teams.length * 0.5),
93
+ duration: Math.round(resolver.value.teams.length * 0.2),
94
94
  scrollTop: scrollHeight - clientHeight,
95
95
  ease: "power1.inOut",
96
96
  onComplete: () => {
@@ -49,20 +49,12 @@ function showTeamName(team: Team) {
49
49
  <div
50
50
  flex flex-1 flex-col justify-center items-start gap-y-3
51
51
  >
52
- <Tooltip>
53
- <div
54
- class="resolver-team-name"
55
- truncate overflow-hidden
56
- >
57
- {{ showTeamName(team) }}
58
- </div>
59
- <template #popper>
60
- <div>
61
- {{ showTeamName(team) }}
62
- </div>
63
- </template>
64
- </Tooltip>
65
-
52
+ <div
53
+ class="resolver-team-name"
54
+ truncate overflow-hidden
55
+ >
56
+ {{ showTeamName(team) }}
57
+ </div>
66
58
  <div
67
59
  flex flex-row text-sm items-start gap-x-2
68
60
  >
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
- import { type Giants, GiantsType, type Rank, type SelectOptionItem } from "@xcpcio/core";
2
+ import type { Giants, Rank, SelectOptionItem } from "@xcpcio/core";
3
+ import { GiantsType } from "@xcpcio/core";
3
4
  import { MultiSelect } from "vue-search-select";
4
5
 
5
6
  const props = defineProps<{
@@ -1,8 +1,8 @@
1
1
  <script setup lang="ts">
2
- import { SubmissionStatusToSimpleString } from "@xcpcio/types";
2
+ import type { AnimatedSubmissionBlockItem } from "~/composables/type";
3
3
 
4
+ import { SubmissionStatusToSimpleString } from "@xcpcio/types";
4
5
  import { getMedalColor } from "~/composables/color";
5
- import type { AnimatedSubmissionBlockItem } from "~/composables/type";
6
6
  import { LastBlockDisplayType } from "~/composables/type";
7
7
 
8
8
  const props = defineProps<{
@@ -1,8 +1,8 @@
1
1
  <script setup lang="ts">
2
2
  import type { Rank } from "@xcpcio/core";
3
- import { Submission } from "@xcpcio/core";
4
-
5
3
  import type { AnimatedSubmissionBlockItem } from "~/composables/type";
4
+
5
+ import { Submission } from "@xcpcio/core";
6
6
  import { LastBlockDisplayType } from "~/composables/type";
7
7
 
8
8
  const props = defineProps<{
@@ -1,13 +1,14 @@
1
1
  <script setup lang="ts">
2
2
  import type { Contest, Submissions, Teams } from "@xcpcio/core";
3
+ import type { Contest as IContest, Submissions as ISubmissions, Teams as ITeams } from "@xcpcio/types";
4
+ import type { Item } from "~/components/board/SecondLevelMenu.vue";
5
+
3
6
  import { onKeyStroke, useDocumentVisibility, useIntervalFn, useNow } from "@vueuse/core";
4
7
  import { useRouteQuery } from "@vueuse/router";
5
8
 
6
9
  import { createContest, createSubmissions, createTeams, getImageSource, getTimeDiff, Rank, RankOptions } from "@xcpcio/core";
7
- import { ContestState, type Contest as IContest, type Submissions as ISubmissions, type Teams as ITeams } from "@xcpcio/types";
8
-
10
+ import { ContestState } from "@xcpcio/types";
9
11
  import _ from "lodash";
10
- import type { Item } from "~/components/board/SecondLevelMenu.vue";
11
12
 
12
13
  import { TITLE_SUFFIX } from "~/composables/constant";
13
14