From 834f3fc73784689c37768255dbcf44ed16d624af Mon Sep 17 00:00:00 2001 From: hyoseung930 <35983843+hyoseung930@users.noreply.github.com> Date: Tue, 12 May 2026 15:06:28 +0900 Subject: [PATCH] feat: initial english-front setup --- .gitignore | 2 + dist/assets/GrammarView-dvqX1h4-.js | 1 + dist/assets/PhrasesView-Cr7ZmGzr.js | 1 + dist/assets/QuizView-WGudUYtA.js | 1 + dist/assets/WordsView-Cjev8bPi.js | 1 + dist/assets/index-BcYnNRd_.js | 37 + dist/assets/index-C5kTBbUm.css | 1 + dist/index.html | 13 + index.html | 12 + package-lock.json | 1600 +++++++++++++++++++++++++++ package.json | 21 + src/App.vue | 15 + src/api/index.js | 32 + src/main.js | 10 + src/router/index.js | 13 + src/stores/session.js | 11 + src/style.css | 139 +++ src/views/GrammarView.vue | 60 + src/views/HomeView.vue | 76 ++ src/views/PhrasesView.vue | 46 + src/views/QuizView.vue | 97 ++ src/views/WordsView.vue | 54 + vite.config.js | 13 + 23 files changed, 2256 insertions(+) create mode 100644 .gitignore create mode 100644 dist/assets/GrammarView-dvqX1h4-.js create mode 100644 dist/assets/PhrasesView-Cr7ZmGzr.js create mode 100644 dist/assets/QuizView-WGudUYtA.js create mode 100644 dist/assets/WordsView-Cjev8bPi.js create mode 100644 dist/assets/index-BcYnNRd_.js create mode 100644 dist/assets/index-C5kTBbUm.css create mode 100644 dist/index.html create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/App.vue create mode 100644 src/api/index.js create mode 100644 src/main.js create mode 100644 src/router/index.js create mode 100644 src/stores/session.js create mode 100644 src/style.css create mode 100644 src/views/GrammarView.vue create mode 100644 src/views/HomeView.vue create mode 100644 src/views/PhrasesView.vue create mode 100644 src/views/QuizView.vue create mode 100644 src/views/WordsView.vue create mode 100644 vite.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2752eb9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +.DS_Store diff --git a/dist/assets/GrammarView-dvqX1h4-.js b/dist/assets/GrammarView-dvqX1h4-.js new file mode 100644 index 0000000..14d1250 --- /dev/null +++ b/dist/assets/GrammarView-dvqX1h4-.js @@ -0,0 +1 @@ +import{o as b,l as h,c as a,a as e,F as u,r as g,b as p,t as l,n as y,d,e as s}from"./index-BcYnNRd_.js";const k={class:"container"},f={key:0},x={key:0,class:"loading"},w={key:1},C=["onClick"],B={style:{display:"flex","justify-content":"space-between","align-items":"center"}},z={class:"grammar-title"},V={class:"grammar-explanation",style:{"margin-bottom":"0","-webkit-line-clamp":"2",display:"-webkit-box","-webkit-box-orient":"vertical",overflow:"hidden"}},j={key:0,class:"empty"},A={key:1},F={class:"card"},N={style:{display:"flex","justify-content":"space-between","align-items":"center","margin-bottom":"1rem"}},$={style:{"font-size":"1.3rem","font-weight":"700"}},D={class:"grammar-explanation"},E={key:0,style:{"margin-top":"1rem"}},G={class:"en"},L={class:"ko"},q={__name:"GrammarView",setup(M){const r=d([]),n=d(null),c=d(!0),m=i=>({beginner:"badge-green",intermediate:"badge-blue",advanced:"badge-purple"})[i]||"badge-orange";return b(async()=>{const i=await h.getAll();r.value=i.data,c.value=!1}),(i,o)=>{var v;return s(),a("div",k,[o[2]||(o[2]=e("h1",{class:"page-title"},"문법 레슨",-1)),n.value?(s(),a("div",A,[e("button",{class:"btn btn-secondary",style:{"margin-bottom":"1.5rem"},onClick:o[0]||(o[0]=t=>n.value=null)},"← 목록으로"),e("div",F,[e("div",N,[e("h2",$,l(n.value.title),1),e("span",{class:y(["badge",m(n.value.level)])},l(n.value.level),3)]),e("div",D,l(n.value.explanation),1),(v=n.value.examples)!=null&&v.length?(s(),a("div",E,[o[1]||(o[1]=e("div",{style:{"font-weight":"600","margin-bottom":"0.5rem","font-size":"0.9rem",color:"#4a5568"}},"예문",-1)),(s(!0),a(u,null,g(n.value.examples,(t,_)=>(s(),a("div",{key:_,class:"grammar-example"},[e("div",G,l(t.en),1),e("div",L,l(t.ko),1)]))),128))])):p("",!0)])])):(s(),a("div",f,[c.value?(s(),a("div",x,"불러오는 중...")):(s(),a("div",w,[(s(!0),a(u,null,g(r.value,t=>(s(),a("div",{key:t.id,class:"card grammar-card",onClick:_=>n.value=t},[e("div",B,[e("div",z,l(t.order_num)+". "+l(t.title),1),e("span",{class:y(["badge",m(t.level)])},l(t.level),3)]),e("div",V,l(t.explanation),1)],8,C))),128)),r.value.length?p("",!0):(s(),a("div",j,"문법 레슨이 없습니다"))]))]))])}}};export{q as default}; diff --git a/dist/assets/PhrasesView-Cr7ZmGzr.js b/dist/assets/PhrasesView-Cr7ZmGzr.js new file mode 100644 index 0000000..ddc4c32 --- /dev/null +++ b/dist/assets/PhrasesView-Cr7ZmGzr.js @@ -0,0 +1 @@ +import{u as h,o as f,p as u,q as k,c as t,a as o,n as y,F as _,r as p,b as v,d as l,e as s,t as r}from"./index-BcYnNRd_.js";const w={class:"container"},C={style:{display:"flex",gap:"0.5rem","flex-wrap":"wrap","margin-bottom":"1.5rem"}},x=["onClick"],A={key:0,class:"loading"},z={key:1,class:"card-grid"},B={style:{"font-size":"1.1rem","font-weight":"700",color:"#2b6cb0","margin-bottom":"0.4rem"}},S={style:{color:"#2d3748","margin-bottom":"0.4rem"}},V={key:0,style:{"font-size":"0.8rem",color:"#718096"}},q={class:"badge badge-purple",style:{"margin-top":"0.5rem"}},F={key:0,class:"empty"},D={__name:"PhrasesView",setup(N){const b=h(),i=l([]),m=l([]),c=l(""),d=l(!1),g=async n=>{c.value=n,d.value=!0;const a=await u.getAll(n||void 0);i.value=a.data,d.value=!1};return f(async()=>{const[n,a]=await Promise.all([u.getAll(),u.getCategories()]);i.value=n.data,m.value=a.data,k.complete({session_id:b.id,type:"phrase"})}),(n,a)=>(s(),t("div",w,[a[1]||(a[1]=o("h1",{class:"page-title"},"회화 표현",-1)),o("div",C,[o("button",{class:y(["btn",c.value===""?"btn-primary":"btn-secondary"]),onClick:a[0]||(a[0]=e=>g(""))},"전체",2),(s(!0),t(_,null,p(m.value,e=>(s(),t("button",{key:e.category,class:y(["btn",c.value===e.category?"btn-primary":"btn-secondary"]),onClick:P=>g(e.category)},r(e.category),11,x))),128))]),d.value?(s(),t("div",A,"불러오는 중...")):(s(),t("div",z,[(s(!0),t(_,null,p(i.value,e=>(s(),t("div",{key:e.id,class:"card"},[o("div",B,r(e.english),1),o("div",S,r(e.korean),1),e.situation?(s(),t("div",V,"💬 "+r(e.situation),1)):v("",!0),o("span",q,r(e.category),1)]))),128)),i.value.length?v("",!0):(s(),t("div",F,"표현이 없습니다"))]))]))}};export{D as default}; diff --git a/dist/assets/QuizView-WGudUYtA.js b/dist/assets/QuizView-WGudUYtA.js new file mode 100644 index 0000000..b9ef349 --- /dev/null +++ b/dist/assets/QuizView-WGudUYtA.js @@ -0,0 +1 @@ +import{u as C,c as o,a as t,g as b,t as a,b as f,F as V,r as N,h as S,i as B,j as R,R as j,d as r,k as z,q as A,e as i,n as F,f as L}from"./index-BcYnNRd_.js";const Q={class:"container",style:{"max-width":"600px"}},D={key:0,class:"card",style:{"text-align":"center",padding:"3rem"}},E={key:1},M={class:"quiz-progress"},T={style:{"text-align":"right","font-size":"0.85rem",color:"#718096","margin-bottom":"0.5rem"}},$={class:"card"},G={class:"quiz-question"},H={key:0,class:"quiz-sub"},I={class:"quiz-choices"},J=["disabled","onClick"],K={key:1,style:{"text-align":"center","margin-top":"1.5rem"}},O={key:2,class:"card",style:{"text-align":"center",padding:"3rem"}},P={style:{"font-size":"3rem","margin-bottom":"1rem"}},U={style:{"margin-bottom":"0.5rem"}},W={style:{color:"#718096","margin-bottom":"2rem"}},X={style:{display:"flex",gap:"0.75rem","justify-content":"center"}},te={__name:"QuizView",setup(Y){const _=C(),m=r(!1),g=r(!1),e=r([]),s=r(0),u=r(null),v=r(!1),n=r(0),k=async()=>{const d=await z.generate(5);e.value=d.data,m.value=!0},w=d=>{u.value=d,v.value=!0,d===e.value[s.value].answer&&n.value++},q=()=>{s.value{m.value=!1,g.value=!1,s.value=0,n.value=0,v.value=!1,u.value=null};return(d,l)=>{var y,p,h;return i(),o("div",Q,[l[4]||(l[4]=t("h1",{class:"page-title"},"퀴즈",-1)),m.value?g.value?(i(),o("div",O,[t("div",P,a(n.value===e.value.length?"🏆":n.value>=e.value.length/2?"👏":"💪"),1),t("h2",U,a(n.value)+" / "+a(e.value.length)+" 정답",1),t("p",W,"정확도 "+a(Math.round(n.value/e.value.length*100))+"%",1),t("div",X,[t("button",{class:"btn btn-secondary",onClick:x},"다시 풀기"),S(R(j),{to:"/",class:"btn btn-primary"},{default:B(()=>[...l[3]||(l[3]=[L("홈으로",-1)])]),_:1})])])):(i(),o("div",E,[t("div",M,[t("div",{class:"quiz-progress-bar",style:b({width:s.value/e.value.length*100+"%"})},null,4)]),t("div",T,a(s.value+1)+" / "+a(e.value.length),1),t("div",$,[t("div",G,a((y=e.value[s.value])==null?void 0:y.english),1),(p=e.value[s.value])!=null&&p.pronunciation?(i(),o("div",H,"["+a(e.value[s.value].pronunciation)+"]",1)):f("",!0),t("div",I,[(i(!0),o(V,null,N((h=e.value[s.value])==null?void 0:h.choices,c=>(i(),o("button",{key:c,class:F(["quiz-choice",v.value?c===e.value[s.value].answer?"correct":c===u.value?"wrong":"":""]),disabled:v.value,onClick:Z=>w(c)},a(c),11,J))),128))]),v.value?(i(),o("div",K,[t("div",{style:b([{"margin-bottom":"1rem","font-weight":"600"},{color:u.value===e.value[s.value].answer?"#38a169":"#e53e3e"}])},a(u.value===e.value[s.value].answer?"✅ 정답!":"❌ 오답"),5),t("button",{class:"btn btn-primary",onClick:q},a(s.value{c.value=l,d.value=!0;const s=await u.getAll(l||void 0);i.value=s.data,d.value=!1};return k(async()=>{const[l,s]=await Promise.all([u.getAll(),u.getCategories()]);i.value=l.data,p.value=s.data,h.complete({session_id:b.id,type:"word"})}),(l,s)=>(a(),t("div",w,[s[2]||(s[2]=n("h1",{class:"page-title"},"단어장",-1)),n("div",C,[n("button",{class:v(["btn",c.value===""?"btn-primary":"btn-secondary"]),onClick:s[0]||(s[0]=e=>y(""))},"전체",2),(a(!0),t(m,null,g(p.value,e=>(a(),t("button",{key:e.category,class:v(["btn",c.value===e.category?"btn-primary":"btn-secondary"]),onClick:L=>y(e.category)},o(e.category),11,A))),128))]),d.value?(a(),t("div",V,"불러오는 중...")):(a(),t("div",B,[(a(!0),t(m,null,g(i.value,e=>(a(),t("div",{key:e.id,class:"card word-card"},[n("div",N,[n("div",S,o(e.english),1),n("span",q,o(e.difficulty),1)]),e.pronunciation?(a(),t("div",F,"["+o(e.pronunciation)+"]",1)):_("",!0),n("div",$,o(e.korean),1),e.example_en?(a(),t("div",j,[x(o(e.example_en),1),s[1]||(s[1]=n("br",null,null,-1)),n("span",z,o(e.example_ko),1)])):_("",!0)]))),128)),i.value.length?_("",!0):(a(),t("div",D,"단어가 없습니다"))]))]))}};export{P as default}; diff --git a/dist/assets/index-BcYnNRd_.js b/dist/assets/index-BcYnNRd_.js new file mode 100644 index 0000000..a1b301a --- /dev/null +++ b/dist/assets/index-BcYnNRd_.js @@ -0,0 +1,37 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function s(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();/** +* @vue/shared v3.5.34 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function pr(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ce={},Xt=[],ht=()=>{},Zo=()=>!1,cs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),as=e=>e.startsWith("onUpdate:"),Ce=Object.assign,mr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ql=Object.prototype.hasOwnProperty,ne=(e,t)=>Ql.call(e,t),k=Array.isArray,Qt=e=>Nn(e)==="[object Map]",ei=e=>Nn(e)==="[object Set]",Vr=e=>Nn(e)==="[object Date]",W=e=>typeof e=="function",de=e=>typeof e=="string",Je=e=>typeof e=="symbol",se=e=>e!==null&&typeof e=="object",ti=e=>(se(e)||W(e))&&W(e.then)&&W(e.catch),ni=Object.prototype.toString,Nn=e=>ni.call(e),Yl=e=>Nn(e).slice(8,-1),si=e=>Nn(e)==="[object Object]",us=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,pn=pr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),fs=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Zl=/-\w/g,Ze=fs(e=>e.replace(Zl,t=>t.slice(1).toUpperCase())),ec=/\B([A-Z])/g,Wt=fs(e=>e.replace(ec,"-$1").toLowerCase()),ri=fs(e=>e.charAt(0).toUpperCase()+e.slice(1)),xs=fs(e=>e?`on${ri(e)}`:""),ft=(e,t)=>!Object.is(e,t),Cs=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},tc=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Wr;const ds=()=>Wr||(Wr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function gr(e){if(k(e)){const t={};for(let n=0;n{if(n){const s=n.split(sc);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Yt(e){let t="";if(de(e))t=e;else if(k(e))for(let n=0;n!!(e&&e.__v_isRef===!0),_t=e=>de(e)?e:e==null?"":k(e)||se(e)&&(e.toString===ni||!W(e.toString))?li(e)?_t(e.value):JSON.stringify(e,ci,2):String(e),ci=(e,t)=>li(t)?ci(e,t.value):Qt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],o)=>(n[Ts(s,o)+" =>"]=r,n),{})}:ei(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Ts(n))}:Je(t)?Ts(t):se(t)&&!k(t)&&!si(t)?String(t):t,Ts=(e,t="")=>{var n;return Je(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.34 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let _e;class ai{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&_e&&(_e.active?(this.parent=_e,this.index=(_e.scopes||(_e.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0){if(_e===this)_e=this.prevScope;else{let t=_e;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n0)return;if(gn){let t=gn;for(gn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;mn;){let t=mn;for(mn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function mi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function gi(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),Er(s),uc(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function zs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(yi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function yi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===An)||(e.globalVersion=An,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!zs(e))))return;e.flags|=2;const t=e.dep,n=le,s=et;le=e,et=!0;try{mi(e);const r=e.fn(e._value);(t.version===0||ft(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{le=n,et=s,gi(e),e.flags&=-3}}function Er(e,t=!1){const{dep:n,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Er(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function uc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let et=!0;const _i=[];function At(){_i.push(et),et=!1}function Ot(){const e=_i.pop();et=e===void 0?!0:e}function $r(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=le;le=void 0;try{t()}finally{le=n}}}let An=0;class fc{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Rr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!le||!et||le===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==le)n=this.activeLink=new fc(le,this),le.deps?(n.prevDep=le.depsTail,le.depsTail.nextDep=n,le.depsTail=n):le.deps=le.depsTail=n,bi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=le.depsTail,n.nextDep=void 0,le.depsTail.nextDep=n,le.depsTail=n,le.deps===n&&(le.deps=s)}return n}trigger(t){this.version++,An++,this.notify(t)}notify(t){_r();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{br()}}}function bi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)bi(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Yn=new WeakMap,Ht=Symbol(""),Gs=Symbol(""),On=Symbol("");function Pe(e,t,n){if(et&&le){let s=Yn.get(e);s||Yn.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new Rr),r.map=s,r.key=n),r.track()}}function Rt(e,t,n,s,r,o){const i=Yn.get(e);if(!i){An++;return}const l=c=>{c&&c.trigger()};if(_r(),t==="clear")i.forEach(l);else{const c=k(e),u=c&&us(n);if(c&&n==="length"){const a=Number(s);i.forEach((f,p)=>{(p==="length"||p===On||!Je(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(On)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Ht)),Qt(e)&&l(i.get(Gs)));break;case"delete":c||(l(i.get(Ht)),Qt(e)&&l(i.get(Gs)));break;case"set":Qt(e)&&l(i.get(Ht));break}}br()}function dc(e,t){const n=Yn.get(e);return n&&n.get(t)}function $t(e){const t=Y(e);return t===e?t:(Pe(t,"iterate",On),$e(e)?t:t.map(tt))}function hs(e){return Pe(e=Y(e),"iterate",On),e}function at(e,t){return xt(e)?en(vt(e)?tt(t):t):tt(t)}const hc={__proto__:null,[Symbol.iterator](){return Ns(this,Symbol.iterator,e=>at(this,e))},concat(...e){return $t(this).concat(...e.map(t=>k(t)?$t(t):t))},entries(){return Ns(this,"entries",e=>(e[1]=at(this,e[1]),e))},every(e,t){return gt(this,"every",e,t,void 0,arguments)},filter(e,t){return gt(this,"filter",e,t,n=>n.map(s=>at(this,s)),arguments)},find(e,t){return gt(this,"find",e,t,n=>at(this,n),arguments)},findIndex(e,t){return gt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return gt(this,"findLast",e,t,n=>at(this,n),arguments)},findLastIndex(e,t){return gt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return gt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Is(this,"includes",e)},indexOf(...e){return Is(this,"indexOf",e)},join(e){return $t(this).join(e)},lastIndexOf(...e){return Is(this,"lastIndexOf",e)},map(e,t){return gt(this,"map",e,t,void 0,arguments)},pop(){return cn(this,"pop")},push(...e){return cn(this,"push",e)},reduce(e,...t){return Kr(this,"reduce",e,t)},reduceRight(e,...t){return Kr(this,"reduceRight",e,t)},shift(){return cn(this,"shift")},some(e,t){return gt(this,"some",e,t,void 0,arguments)},splice(...e){return cn(this,"splice",e)},toReversed(){return $t(this).toReversed()},toSorted(e){return $t(this).toSorted(e)},toSpliced(...e){return $t(this).toSpliced(...e)},unshift(...e){return cn(this,"unshift",e)},values(){return Ns(this,"values",e=>at(this,e))}};function Ns(e,t,n){const s=hs(e),r=s[t]();return s!==e&&!$e(e)&&(r._next=r.next,r.next=()=>{const o=r._next();return o.done||(o.value=n(o.value)),o}),r}const pc=Array.prototype;function gt(e,t,n,s,r,o){const i=hs(e),l=i!==e&&!$e(e),c=i[t];if(c!==pc[t]){const f=c.apply(e,o);return l?tt(f):f}let u=n;i!==e&&(l?u=function(f,p){return n.call(this,at(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,s);return l&&r?r(a):a}function Kr(e,t,n,s){const r=hs(e),o=r!==e&&!$e(e);let i=n,l=!1;r!==e&&(o?(l=s.length===0,i=function(u,a,f){return l&&(l=!1,u=at(e,u)),n.call(this,u,at(e,a),f,e)}):n.length>3&&(i=function(u,a,f){return n.call(this,u,a,f,e)}));const c=r[t](i,...s);return l?at(e,c):c}function Is(e,t,n){const s=Y(e);Pe(s,"iterate",On);const r=s[t](...n);return(r===-1||r===!1)&&ps(n[0])?(n[0]=Y(n[0]),s[t](...n)):r}function cn(e,t,n=[]){At(),_r();const s=Y(e)[t].apply(e,n);return br(),Ot(),s}const mc=pr("__proto__,__v_isRef,__isVue"),Ei=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Je));function gc(e){Je(e)||(e=String(e));const t=Y(this);return Pe(t,"has",e),t.hasOwnProperty(e)}class Ri{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return o;if(n==="__v_raw")return s===(r?o?Oc:Ai:o?vi:Si).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const i=k(t);if(!r){let c;if(i&&(c=hc[n]))return c;if(n==="hasOwnProperty")return gc}const l=Reflect.get(t,n,he(t)?t:s);if((Je(n)?Ei.has(n):mc(n))||(r||Pe(t,"get",n),o))return l;if(he(l)){const c=i&&us(n)?l:l.value;return r&&se(c)?Xs(c):c}return se(l)?r?Xs(l):In(l):l}}class wi extends Ri{constructor(t=!1){super(!1,t)}set(t,n,s,r){let o=t[n];const i=k(t)&&us(n);if(!this._isShallow){const u=xt(o);if(!$e(s)&&!xt(s)&&(o=Y(o),s=Y(s)),!i&&he(o)&&!he(s))return u||(o.value=s),!0}const l=i?Number(n)e,Hn=e=>Reflect.getPrototypeOf(e);function Rc(e,t,n){return function(...s){const r=this.__v_raw,o=Y(r),i=Qt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=r[e](...s),a=n?Js:t?en:tt;return!t&&Pe(o,"iterate",c?Gs:Ht),Ce(Object.create(u),{next(){const{value:f,done:p}=u.next();return p?{value:f,done:p}:{value:l?[a(f[0]),a(f[1])]:a(f),done:p}}})}}function kn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function wc(e,t){const n={get(r){const o=this.__v_raw,i=Y(o),l=Y(r);e||(ft(r,l)&&Pe(i,"get",r),Pe(i,"get",l));const{has:c}=Hn(i),u=t?Js:e?en:tt;if(c.call(i,r))return u(o.get(r));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(r)},get size(){const r=this.__v_raw;return!e&&Pe(Y(r),"iterate",Ht),r.size},has(r){const o=this.__v_raw,i=Y(o),l=Y(r);return e||(ft(r,l)&&Pe(i,"has",r),Pe(i,"has",l)),r===l?o.has(r):o.has(r)||o.has(l)},forEach(r,o){const i=this,l=i.__v_raw,c=Y(l),u=t?Js:e?en:tt;return!e&&Pe(c,"iterate",Ht),l.forEach((a,f)=>r.call(o,u(a),u(f),i))}};return Ce(n,e?{add:kn("add"),set:kn("set"),delete:kn("delete"),clear:kn("clear")}:{add(r){const o=Y(this),i=Hn(o),l=Y(r),c=!t&&!$e(r)&&!xt(r)?l:r;return i.has.call(o,c)||ft(r,c)&&i.has.call(o,r)||ft(l,c)&&i.has.call(o,l)||(o.add(c),Rt(o,"add",c,c)),this},set(r,o){!t&&!$e(o)&&!xt(o)&&(o=Y(o));const i=Y(this),{has:l,get:c}=Hn(i);let u=l.call(i,r);u||(r=Y(r),u=l.call(i,r));const a=c.call(i,r);return i.set(r,o),u?ft(o,a)&&Rt(i,"set",r,o):Rt(i,"add",r,o),this},delete(r){const o=Y(this),{has:i,get:l}=Hn(o);let c=i.call(o,r);c||(r=Y(r),c=i.call(o,r)),l&&l.call(o,r);const u=o.delete(r);return c&&Rt(o,"delete",r,void 0),u},clear(){const r=Y(this),o=r.size!==0,i=r.clear();return o&&Rt(r,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Rc(r,e,t)}),n}function wr(e,t){const n=wc(e,t);return(s,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(ne(n,r)&&r in s?n:s,r,o)}const Sc={get:wr(!1,!1)},vc={get:wr(!1,!0)},Ac={get:wr(!0,!1)};const Si=new WeakMap,vi=new WeakMap,Ai=new WeakMap,Oc=new WeakMap;function xc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Cc(e){return e.__v_skip||!Object.isExtensible(e)?0:xc(Yl(e))}function In(e){return xt(e)?e:Sr(e,!1,_c,Sc,Si)}function Oi(e){return Sr(e,!1,Ec,vc,vi)}function Xs(e){return Sr(e,!0,bc,Ac,Ai)}function Sr(e,t,n,s,r){if(!se(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Cc(e);if(o===0)return e;const i=r.get(e);if(i)return i;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function vt(e){return xt(e)?vt(e.__v_raw):!!(e&&e.__v_isReactive)}function xt(e){return!!(e&&e.__v_isReadonly)}function $e(e){return!!(e&&e.__v_isShallow)}function ps(e){return e?!!e.__v_raw:!1}function Y(e){const t=e&&e.__v_raw;return t?Y(t):e}function vr(e){return!ne(e,"__v_skip")&&Object.isExtensible(e)&&oi(e,"__v_skip",!0),e}const tt=e=>se(e)?In(e):e,en=e=>se(e)?Xs(e):e;function he(e){return e?e.__v_isRef===!0:!1}function yn(e){return xi(e,!1)}function Tc(e){return xi(e,!0)}function xi(e,t){return he(e)?e:new Pc(e,t)}class Pc{constructor(t,n){this.dep=new Rr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Y(t),this._value=n?t:tt(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||$e(t)||xt(t);t=s?t:Y(t),ft(t,n)&&(this._rawValue=t,this._value=s?t:tt(t),this.dep.trigger())}}function Ne(e){return he(e)?e.value:e}const Nc={get:(e,t,n)=>t==="__v_raw"?e:Ne(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return he(r)&&!he(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Ci(e){return vt(e)?e:new Proxy(e,Nc)}function Ic(e){const t=k(e)?new Array(e.length):{};for(const n in e)t[n]=Lc(e,n);return t}class Dc{constructor(t,n,s){this._object=t,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0,this._key=Je(n)?n:String(n),this._raw=Y(t);let r=!0,o=t;if(!k(t)||Je(this._key)||!us(this._key))do r=!ps(o)||$e(o);while(r&&(o=o.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=Ne(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&he(this._raw[this._key])){const n=this._object[this._key];if(he(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return dc(this._raw,this._key)}}function Lc(e,t,n){return new Dc(e,t,n)}class Fc{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Rr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=An-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&le!==this)return pi(this,!0),!0}get value(){const t=this.dep.track();return yi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Mc(e,t,n=!1){let s,r;return W(e)?s=e:(s=e.get,r=e.set),new Fc(s,r,n)}const qn={},Zn=new WeakMap;let Bt;function Bc(e,t=!1,n=Bt){if(n){let s=Zn.get(n);s||Zn.set(n,s=[]),s.push(e)}}function Uc(e,t,n=ce){const{immediate:s,deep:r,once:o,scheduler:i,augmentJob:l,call:c}=n,u=C=>r?C:$e(C)||r===!1||r===0?Dt(C,1):Dt(C);let a,f,p,m,A=!1,_=!1;if(he(e)?(f=()=>e.value,A=$e(e)):vt(e)?(f=()=>u(e),A=!0):k(e)?(_=!0,A=e.some(C=>vt(C)||$e(C)),f=()=>e.map(C=>{if(he(C))return C.value;if(vt(C))return u(C);if(W(C))return c?c(C,2):C()})):W(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){At();try{p()}finally{Ot()}}const C=Bt;Bt=a;try{return c?c(e,3,[m]):e(m)}finally{Bt=C}}:f=ht,t&&r){const C=f,j=r===!0?1/0:r;f=()=>Dt(C(),j)}const E=fi(),v=()=>{a.stop(),E&&E.active&&mr(E.effects,a)};if(o&&t){const C=t;t=(...j)=>{C(...j),v()}}let x=_?new Array(e.length).fill(qn):qn;const P=C=>{if(!(!(a.flags&1)||!a.dirty&&!C))if(t){const j=a.run();if(r||A||(_?j.some((oe,G)=>ft(oe,x[G])):ft(j,x))){p&&p();const oe=Bt;Bt=a;try{const G=[j,x===qn?void 0:_&&x[0]===qn?[]:x,m];x=j,c?c(t,3,G):t(...G)}finally{Bt=oe}}}else a.run()};return l&&l(P),a=new di(f),a.scheduler=i?()=>i(P,!1):P,m=C=>Bc(C,!1,a),p=a.onStop=()=>{const C=Zn.get(a);if(C){if(c)c(C,4);else for(const j of C)j();Zn.delete(a)}},t?s?P(!0):x=a.run():i?i(P.bind(null,!0),!0):a.run(),v.pause=a.pause.bind(a),v.resume=a.resume.bind(a),v.stop=v,v}function Dt(e,t=1/0,n){if(t<=0||!se(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,he(e))Dt(e.value,t,n);else if(k(e))for(let s=0;s{Dt(s,t,n)});else if(si(e)){for(const s in e)Dt(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&Dt(e[s],t,n)}return e}/** +* @vue/runtime-core v3.5.34 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Dn(e,t,n,s){try{return s?e(...s):e()}catch(r){ms(r,t,n)}}function mt(e,t,n,s){if(W(e)){const r=Dn(e,t,n,s);return r&&ti(r)&&r.catch(o=>{ms(o,t,n)}),r}if(k(e)){const r=[];for(let o=0;o>>1,r=Be[s],o=xn(r);o=xn(n)?Be.push(e):Be.splice(Hc(t),0,e),e.flags|=1,Pi()}}function Pi(){es||(es=Ti.then(Ii))}function kc(e){k(e)?Zt.push(...e):Nt&&e.id===-1?Nt.splice(Gt+1,0,e):e.flags&1||(Zt.push(e),e.flags|=1),Pi()}function zr(e,t,n=ct+1){for(;nxn(n)-xn(s));if(Zt.length=0,Nt){Nt.push(...t);return}for(Nt=t,Gt=0;Gte.id==null?e.flags&2?-1:1/0:e.id;function Ii(e){try{for(ct=0;ct{s._d&&rs(-1);const o=ts(t);let i;try{i=e(...r)}finally{ts(o),s._d&&rs(1)}return i};return s._n=!0,s._c=!0,s._d=!0,s}function Ft(e,t,n,s){const r=e.dirs,o=t&&t.dirs;for(let i=0;i1)return n&&W(t)?t.call(s&&s.proxy):t}}function qc(){return!!(ll()||kt)}const Vc=Symbol.for("v-scx"),Wc=()=>pt(Vc);function _n(e,t,n){return Li(e,t,n)}function Li(e,t,n=ce){const{immediate:s,deep:r,flush:o,once:i}=n,l=Ce({},n),c=t&&s||!t&&o!=="post";let u;if(Tn){if(o==="sync"){const m=Wc();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ht,m.resume=ht,m.pause=ht,m}}const a=Ue;l.call=(m,A,_)=>mt(m,a,A,_);let f=!1;o==="post"?l.scheduler=m=>{He(m,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(m,A)=>{A?m():Or(m)}),l.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const p=Uc(e,t,l);return Tn&&(u?u.push(p):c&&p()),p}function $c(e,t,n){const s=this.proxy,r=de(e)?e.includes(".")?Fi(s,e):()=>s[e]:e.bind(s,s);let o;W(t)?o=t:(o=t.handler,n=t);const i=Ln(this),l=Li(r,o.bind(s),n);return i(),l}function Fi(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;re.__isTeleport,Gc=Symbol("_leaveCb");function xr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,xr(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Mi(e,t){return W(e)?Ce({name:e.name},t,{setup:e}):e}function Bi(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Gr(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const ns=new WeakMap;function bn(e,t,n,s,r=!1){if(k(e)){e.forEach((_,E)=>bn(_,t&&(k(t)?t[E]:t),n,s,r));return}if(En(s)&&!r){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&bn(e,t,n,s.component.subTree);return}const o=s.shapeFlag&4?Nr(s.component):s.el,i=r?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===ce?l.refs={}:l.refs,f=l.setupState,p=Y(f),m=f===ce?Zo:_=>Gr(a,_)?!1:ne(p,_),A=(_,E)=>!(E&&Gr(a,E));if(u!=null&&u!==c){if(Jr(t),de(u))a[u]=null,m(u)&&(f[u]=null);else if(he(u)){const _=t;A(u,_.k)&&(u.value=null),_.k&&(a[_.k]=null)}}if(W(c))Dn(c,l,12,[i,a]);else{const _=de(c),E=he(c);if(_||E){const v=()=>{if(e.f){const x=_?m(c)?f[c]:a[c]:A()||!e.k?c.value:a[e.k];if(r)k(x)&&mr(x,o);else if(k(x))x.includes(o)||x.push(o);else if(_)a[c]=[o],m(c)&&(f[c]=a[c]);else{const P=[o];A(c,e.k)&&(c.value=P),e.k&&(a[e.k]=P)}}else _?(a[c]=i,m(c)&&(f[c]=i)):E&&(A(c,e.k)&&(c.value=i),e.k&&(a[e.k]=i))};if(i){const x=()=>{v(),ns.delete(e)};x.id=-1,ns.set(e,x),He(x,n)}else Jr(e),v()}}}function Jr(e){const t=ns.get(e);t&&(t.flags|=8,ns.delete(e))}ds().requestIdleCallback;ds().cancelIdleCallback;const En=e=>!!e.type.__asyncLoader,Ui=e=>e.type.__isKeepAlive;function Jc(e,t){ji(e,"a",t)}function Xc(e,t){ji(e,"da",t)}function ji(e,t,n=Ue){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(gs(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Ui(r.parent.vnode)&&Qc(s,t,n,r),r=r.parent}}function Qc(e,t,n,s){const r=gs(t,e,s,!0);ki(()=>{mr(s[t],r)},n)}function gs(e,t,n=Ue,s=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{At();const l=Ln(n),c=mt(t,n,e,i);return l(),Ot(),c});return s?r.unshift(o):r.push(o),o}}const Ct=e=>(t,n=Ue)=>{(!Tn||e==="sp")&&gs(e,(...s)=>t(...s),n)},Yc=Ct("bm"),Hi=Ct("m"),Zc=Ct("bu"),ea=Ct("u"),ta=Ct("bum"),ki=Ct("um"),na=Ct("sp"),sa=Ct("rtg"),ra=Ct("rtc");function oa(e,t=Ue){gs("ec",e,t)}const ia=Symbol.for("v-ndc");function la(e,t,n,s){let r;const o=n,i=k(e);if(i||de(e)){const l=i&&vt(e);let c=!1,u=!1;l&&(c=!$e(e),u=xt(e),e=hs(e)),r=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);r=new Array(l.length);for(let c=0,u=l.length;ce?cl(e)?Nr(e):Qs(e.parent):null,Rn=Ce(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Qs(e.parent),$root:e=>Qs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Vi(e),$forceUpdate:e=>e.f||(e.f=()=>{Or(e.update)}),$nextTick:e=>e.n||(e.n=Ar.bind(e.proxy)),$watch:e=>$c.bind(e)}),Ds=(e,t)=>e!==ce&&!e.__isScriptSetup&&ne(e,t),ca={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:o,accessCache:i,type:l,appContext:c}=e;if(t[0]!=="$"){const p=i[t];if(p!==void 0)switch(p){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(Ds(s,t))return i[t]=1,s[t];if(r!==ce&&ne(r,t))return i[t]=2,r[t];if(ne(o,t))return i[t]=3,o[t];if(n!==ce&&ne(n,t))return i[t]=4,n[t];Ys&&(i[t]=0)}}const u=Rn[t];let a,f;if(u)return t==="$attrs"&&Pe(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==ce&&ne(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,ne(f,t))return f[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:o}=e;return Ds(r,t)?(r[t]=n,!0):s!==ce&&ne(s,t)?(s[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,props:o,type:i}},l){let c;return!!(n[l]||e!==ce&&l[0]!=="$"&&ne(e,l)||Ds(t,l)||ne(o,l)||ne(s,l)||ne(Rn,l)||ne(r.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Xr(e){return k(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ys=!0;function aa(e){const t=Vi(e),n=e.proxy,s=e.ctx;Ys=!1,t.beforeCreate&&Qr(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:m,updated:A,activated:_,deactivated:E,beforeDestroy:v,beforeUnmount:x,destroyed:P,unmounted:C,render:j,renderTracked:oe,renderTriggered:G,errorCaptured:$,serverPrefetch:K,expose:X,inheritAttrs:ae,components:Ee,directives:Ae,filters:Re}=t;if(u&&ua(u,s,null),i)for(const V in i){const J=i[V];W(J)&&(s[V]=J.bind(n))}if(r){const V=r.call(n,n);se(V)&&(e.data=In(V))}if(Ys=!0,o)for(const V in o){const J=o[V],we=W(J)?J.bind(n,n):W(J.get)?J.get.bind(n,n):ht,pe=!W(J)&&W(J.set)?J.set.bind(n):ht,Se=Ge({get:we,set:pe});Object.defineProperty(s,V,{enumerable:!0,configurable:!0,get:()=>Se.value,set:Oe=>Se.value=Oe})}if(l)for(const V in l)qi(l[V],s,n,V);if(c){const V=W(c)?c.call(n):c;Reflect.ownKeys(V).forEach(J=>{Kn(J,V[J])})}a&&Qr(a,e,"c");function Z(V,J){k(J)?J.forEach(we=>V(we.bind(n))):J&&V(J.bind(n))}if(Z(Yc,f),Z(Hi,p),Z(Zc,m),Z(ea,A),Z(Jc,_),Z(Xc,E),Z(oa,$),Z(ra,oe),Z(sa,G),Z(ta,x),Z(ki,C),Z(na,K),k(X))if(X.length){const V=e.exposed||(e.exposed={});X.forEach(J=>{Object.defineProperty(V,J,{get:()=>n[J],set:we=>n[J]=we,enumerable:!0})})}else e.exposed||(e.exposed={});j&&e.render===ht&&(e.render=j),ae!=null&&(e.inheritAttrs=ae),Ee&&(e.components=Ee),Ae&&(e.directives=Ae),K&&Bi(e)}function ua(e,t,n=ht){k(e)&&(e=Zs(e));for(const s in e){const r=e[s];let o;se(r)?"default"in r?o=pt(r.from||s,r.default,!0):o=pt(r.from||s):o=pt(r),he(o)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[s]=o}}function Qr(e,t,n){mt(k(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function qi(e,t,n,s){let r=s.includes(".")?Fi(n,s):()=>n[s];if(de(e)){const o=t[e];W(o)&&_n(r,o)}else if(W(e))_n(r,e.bind(n));else if(se(e))if(k(e))e.forEach(o=>qi(o,t,n,s));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&_n(r,o,e)}}function Vi(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(u=>ss(c,u,i,!0)),ss(c,t,i)),se(t)&&o.set(t,c),c}function ss(e,t,n,s=!1){const{mixins:r,extends:o}=t;o&&ss(e,o,n,!0),r&&r.forEach(i=>ss(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const l=fa[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const fa={data:Yr,props:Zr,emits:Zr,methods:dn,computed:dn,beforeCreate:Le,created:Le,beforeMount:Le,mounted:Le,beforeUpdate:Le,updated:Le,beforeDestroy:Le,beforeUnmount:Le,destroyed:Le,unmounted:Le,activated:Le,deactivated:Le,errorCaptured:Le,serverPrefetch:Le,components:dn,directives:dn,watch:ha,provide:Yr,inject:da};function Yr(e,t){return t?e?function(){return Ce(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function da(e,t){return dn(Zs(e),Zs(t))}function Zs(e){if(k(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ze(t)}Modifiers`]||e[`${Wt(t)}Modifiers`];function ya(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||ce;let r=n;const o=t.startsWith("update:"),i=o&&ga(s,t.slice(7));i&&(i.trim&&(r=n.map(a=>de(a)?a.trim():a)),i.number&&(r=n.map(tc)));let l,c=s[l=xs(t)]||s[l=xs(Ze(t))];!c&&o&&(c=s[l=xs(Wt(t))]),c&&mt(c,e,6,r);const u=s[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,mt(u,e,6,r)}}const _a=new WeakMap;function $i(e,t,n=!1){const s=n?_a:t.emitsCache,r=s.get(e);if(r!==void 0)return r;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const a=$i(u,t,!0);a&&(l=!0,Ce(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(se(e)&&s.set(e,null),null):(k(o)?o.forEach(c=>i[c]=null):Ce(i,o),se(e)&&s.set(e,i),i)}function ys(e,t){return!e||!cs(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,Wt(t))||ne(e,t))}function eo(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:m,ctx:A,inheritAttrs:_}=e,E=ts(e);let v,x;try{if(n.shapeFlag&4){const C=r||s,j=C;v=ut(u.call(j,C,a,f,m,p,A)),x=l}else{const C=t;v=ut(C.length>1?C(f,{attrs:l,slots:i,emit:c}):C(f,null)),x=t.props?l:ba(l)}}catch(C){wn.length=0,ms(C,e,1),v=be(Lt)}let P=v;if(x&&_!==!1){const C=Object.keys(x),{shapeFlag:j}=P;C.length&&j&7&&(o&&C.some(as)&&(x=Ea(x,o)),P=tn(P,x,!1,!0))}return n.dirs&&(P=tn(P,null,!1,!0),P.dirs=P.dirs?P.dirs.concat(n.dirs):n.dirs),n.transition&&xr(P,n.transition),v=P,ts(E),v}const ba=e=>{let t;for(const n in e)(n==="class"||n==="style"||cs(n))&&((t||(t={}))[n]=e[n]);return t},Ea=(e,t)=>{const n={};for(const s in e)(!as(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Ra(e,t,n){const{props:s,children:r,component:o}=e,{props:i,children:l,patchFlag:c}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?to(s,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(zi),Ji=e=>Object.getPrototypeOf(e)===zi;function Sa(e,t,n,s=!1){const r={},o=Gi();e.propsDefaults=Object.create(null),Xi(e,t,r,o);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=s?r:Oi(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function va(e,t,n,s){const{props:r,attrs:o,vnode:{patchFlag:i}}=e,l=Y(r),[c]=e.propsOptions;let u=!1;if((s||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,m]=Qi(f,t,!0);Ce(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return se(e)&&s.set(e,Xt),Xt;if(k(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Tr=e=>k(e)?e.map(ut):[ut(e)],Oa=(e,t,n)=>{if(t._n)return t;const s=wt((...r)=>Tr(t(...r)),n);return s._c=!1,s},Yi=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Cr(r))continue;const o=e[r];if(W(o))t[r]=Oa(r,o,s);else if(o!=null){const i=Tr(o);t[r]=()=>i}}},Zi=(e,t)=>{const n=Tr(t);e.slots.default=()=>n},el=(e,t,n)=>{for(const s in t)(n||!Cr(s))&&(e[s]=t[s])},xa=(e,t,n)=>{const s=e.slots=Gi();if(e.vnode.shapeFlag&32){const r=t._;r?(el(s,t,n),n&&oi(s,"_",r,!0)):Yi(t,s)}else t&&Zi(e,t)},Ca=(e,t,n)=>{const{vnode:s,slots:r}=e;let o=!0,i=ce;if(s.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:el(r,t,n):(o=!t.$stable,Yi(t,r)),i=t}else t&&(Zi(e,t),i={default:1});if(o)for(const l in r)!Cr(l)&&i[l]==null&&delete r[l]},He=Da;function Ta(e){return Pa(e)}function Pa(e,t){const n=ds();n.__VUE__=!0;const{insert:s,remove:r,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:m=ht,insertStaticContent:A}=e,_=(d,h,g,R=null,S=null,w=null,L=void 0,D=null,N=!!h.dynamicChildren)=>{if(d===h)return;d&&!an(d,h)&&(R=b(d),Oe(d,S,w,!0),d=null),h.patchFlag===-2&&(N=!1,h.dynamicChildren=null);const{type:O,ref:H,shapeFlag:F}=h;switch(O){case _s:E(d,h,g,R);break;case Lt:v(d,h,g,R);break;case Fs:d==null&&x(h,g,R,L);break;case Qe:Ee(d,h,g,R,S,w,L,D,N);break;default:F&1?j(d,h,g,R,S,w,L,D,N):F&6?Ae(d,h,g,R,S,w,L,D,N):(F&64||F&128)&&O.process(d,h,g,R,S,w,L,D,N,B)}H!=null&&S?bn(H,d&&d.ref,w,h||d,!h):H==null&&d&&d.ref!=null&&bn(d.ref,null,w,d,!0)},E=(d,h,g,R)=>{if(d==null)s(h.el=l(h.children),g,R);else{const S=h.el=d.el;h.children!==d.children&&u(S,h.children)}},v=(d,h,g,R)=>{d==null?s(h.el=c(h.children||""),g,R):h.el=d.el},x=(d,h,g,R)=>{[d.el,d.anchor]=A(d.children,h,g,R,d.el,d.anchor)},P=({el:d,anchor:h},g,R)=>{let S;for(;d&&d!==h;)S=p(d),s(d,g,R),d=S;s(h,g,R)},C=({el:d,anchor:h})=>{let g;for(;d&&d!==h;)g=p(d),r(d),d=g;r(h)},j=(d,h,g,R,S,w,L,D,N)=>{if(h.type==="svg"?L="svg":h.type==="math"&&(L="mathml"),d==null)oe(h,g,R,S,w,L,D,N);else{const O=d.el&&d.el._isVueCE?d.el:null;try{O&&O._beginPatch(),K(d,h,S,w,L,D,N)}finally{O&&O._endPatch()}}},oe=(d,h,g,R,S,w,L,D)=>{let N,O;const{props:H,shapeFlag:F,transition:U,dirs:q}=d;if(N=d.el=i(d.type,w,H&&H.is,H),F&8?a(N,d.children):F&16&&$(d.children,N,null,R,S,Ls(d,w),L,D),q&&Ft(d,null,R,"created"),G(N,d,d.scopeId,L,R),H){for(const re in H)re!=="value"&&!pn(re)&&o(N,re,null,H[re],w,R);"value"in H&&o(N,"value",null,H.value,w),(O=H.onVnodeBeforeMount)&<(O,R,d)}q&&Ft(d,null,R,"beforeMount");const Q=Na(S,U);Q&&U.beforeEnter(N),s(N,h,g),((O=H&&H.onVnodeMounted)||Q||q)&&He(()=>{try{O&<(O,R,d),Q&&U.enter(N),q&&Ft(d,null,R,"mounted")}finally{}},S)},G=(d,h,g,R,S)=>{if(g&&m(d,g),R)for(let w=0;w{for(let O=N;O{const D=h.el=d.el;let{patchFlag:N,dynamicChildren:O,dirs:H}=h;N|=d.patchFlag&16;const F=d.props||ce,U=h.props||ce;let q;if(g&&Mt(g,!1),(q=U.onVnodeBeforeUpdate)&<(q,g,h,d),H&&Ft(h,d,g,"beforeUpdate"),g&&Mt(g,!0),(F.innerHTML&&U.innerHTML==null||F.textContent&&U.textContent==null)&&a(D,""),O?X(d.dynamicChildren,O,D,g,R,Ls(h,S),w):L||J(d,h,D,null,g,R,Ls(h,S),w,!1),N>0){if(N&16)ae(D,F,U,g,S);else if(N&2&&F.class!==U.class&&o(D,"class",null,U.class,S),N&4&&o(D,"style",F.style,U.style,S),N&8){const Q=h.dynamicProps;for(let re=0;re{q&<(q,g,h,d),H&&Ft(h,d,g,"updated")},R)},X=(d,h,g,R,S,w,L)=>{for(let D=0;D{if(h!==g){if(h!==ce)for(const w in h)!pn(w)&&!(w in g)&&o(d,w,h[w],null,S,R);for(const w in g){if(pn(w))continue;const L=g[w],D=h[w];L!==D&&w!=="value"&&o(d,w,D,L,S,R)}"value"in g&&o(d,"value",h.value,g.value,S)}},Ee=(d,h,g,R,S,w,L,D,N)=>{const O=h.el=d?d.el:l(""),H=h.anchor=d?d.anchor:l("");let{patchFlag:F,dynamicChildren:U,slotScopeIds:q}=h;q&&(D=D?D.concat(q):q),d==null?(s(O,g,R),s(H,g,R),$(h.children||[],g,H,S,w,L,D,N)):F>0&&F&64&&U&&d.dynamicChildren&&d.dynamicChildren.length===U.length?(X(d.dynamicChildren,U,g,S,w,L,D),(h.key!=null||S&&h===S.subTree)&&tl(d,h,!0)):J(d,h,g,H,S,w,L,D,N)},Ae=(d,h,g,R,S,w,L,D,N)=>{h.slotScopeIds=D,d==null?h.shapeFlag&512?S.ctx.activate(h,g,R,L,N):Re(h,g,R,S,w,L,N):Ke(d,h,N)},Re=(d,h,g,R,S,w,L)=>{const D=d.component=Ha(d,R,S);if(Ui(d)&&(D.ctx.renderer=B),ka(D,!1,L),D.asyncDep){if(S&&S.registerDep(D,Z,L),!d.el){const N=D.subTree=be(Lt);v(null,N,h,g),d.placeholder=N.el}}else Z(D,d,h,g,S,w,L)},Ke=(d,h,g)=>{const R=h.component=d.component;if(Ra(d,h,g))if(R.asyncDep&&!R.asyncResolved){V(R,h,g);return}else R.next=h,R.update();else h.el=d.el,R.vnode=h},Z=(d,h,g,R,S,w,L)=>{const D=()=>{if(d.isMounted){let{next:F,bu:U,u:q,parent:Q,vnode:re}=d;{const ot=nl(d);if(ot){F&&(F.el=re.el,V(d,F,L)),ot.asyncDep.then(()=>{He(()=>{d.isUnmounted||O()},S)});return}}let ie=F,ge;Mt(d,!1),F?(F.el=re.el,V(d,F,L)):F=re,U&&Cs(U),(ge=F.props&&F.props.onVnodeBeforeUpdate)&<(ge,Q,F,re),Mt(d,!0);const xe=eo(d),rt=d.subTree;d.subTree=xe,_(rt,xe,f(rt.el),b(rt),d,S,w),F.el=xe.el,ie===null&&wa(d,xe.el),q&&He(q,S),(ge=F.props&&F.props.onVnodeUpdated)&&He(()=>lt(ge,Q,F,re),S)}else{let F;const{el:U,props:q}=h,{bm:Q,m:re,parent:ie,root:ge,type:xe}=d,rt=En(h);Mt(d,!1),Q&&Cs(Q),!rt&&(F=q&&q.onVnodeBeforeMount)&<(F,ie,h),Mt(d,!0);{ge.ce&&ge.ce._hasShadowRoot()&&ge.ce._injectChildStyle(xe,d.parent?d.parent.type:void 0);const ot=d.subTree=eo(d);_(null,ot,g,R,d,S,w),h.el=ot.el}if(re&&He(re,S),!rt&&(F=q&&q.onVnodeMounted)){const ot=h;He(()=>lt(F,ie,ot),S)}(h.shapeFlag&256||ie&&En(ie.vnode)&&ie.vnode.shapeFlag&256)&&d.a&&He(d.a,S),d.isMounted=!0,h=g=R=null}};d.scope.on();const N=d.effect=new di(D);d.scope.off();const O=d.update=N.run.bind(N),H=d.job=N.runIfDirty.bind(N);H.i=d,H.id=d.uid,N.scheduler=()=>Or(H),Mt(d,!0),O()},V=(d,h,g)=>{h.component=d;const R=d.vnode.props;d.vnode=h,d.next=null,va(d,h.props,R,g),Ca(d,h.children,g),At(),zr(d),Ot()},J=(d,h,g,R,S,w,L,D,N=!1)=>{const O=d&&d.children,H=d?d.shapeFlag:0,F=h.children,{patchFlag:U,shapeFlag:q}=h;if(U>0){if(U&128){pe(O,F,g,R,S,w,L,D,N);return}else if(U&256){we(O,F,g,R,S,w,L,D,N);return}}q&8?(H&16&&Te(O,S,w),F!==O&&a(g,F)):H&16?q&16?pe(O,F,g,R,S,w,L,D,N):Te(O,S,w,!0):(H&8&&a(g,""),q&16&&$(F,g,R,S,w,L,D,N))},we=(d,h,g,R,S,w,L,D,N)=>{d=d||Xt,h=h||Xt;const O=d.length,H=h.length,F=Math.min(O,H);let U;for(U=0;UH?Te(d,S,w,!0,!1,F):$(h,g,R,S,w,L,D,N,F)},pe=(d,h,g,R,S,w,L,D,N)=>{let O=0;const H=h.length;let F=d.length-1,U=H-1;for(;O<=F&&O<=U;){const q=d[O],Q=h[O]=N?Et(h[O]):ut(h[O]);if(an(q,Q))_(q,Q,g,null,S,w,L,D,N);else break;O++}for(;O<=F&&O<=U;){const q=d[F],Q=h[U]=N?Et(h[U]):ut(h[U]);if(an(q,Q))_(q,Q,g,null,S,w,L,D,N);else break;F--,U--}if(O>F){if(O<=U){const q=U+1,Q=qU)for(;O<=F;)Oe(d[O],S,w,!0),O++;else{const q=O,Q=O,re=new Map;for(O=Q;O<=U;O++){const Ve=h[O]=N?Et(h[O]):ut(h[O]);Ve.key!=null&&re.set(Ve.key,O)}let ie,ge=0;const xe=U-Q+1;let rt=!1,ot=0;const ln=new Array(xe);for(O=0;O=xe){Oe(Ve,S,w,!0);continue}let it;if(Ve.key!=null)it=re.get(Ve.key);else for(ie=Q;ie<=U;ie++)if(ln[ie-Q]===0&&an(Ve,h[ie])){it=ie;break}it===void 0?Oe(Ve,S,w,!0):(ln[it-Q]=O+1,it>=ot?ot=it:rt=!0,_(Ve,h[it],g,null,S,w,L,D,N),ge++)}const Hr=rt?Ia(ln):Xt;for(ie=Hr.length-1,O=xe-1;O>=0;O--){const Ve=Q+O,it=h[Ve],kr=h[Ve+1],qr=Ve+1{const{el:w,type:L,transition:D,children:N,shapeFlag:O}=d;if(O&6){Se(d.component.subTree,h,g,R);return}if(O&128){d.suspense.move(h,g,R);return}if(O&64){L.move(d,h,g,B);return}if(L===Qe){s(w,h,g);for(let F=0;FD.enter(w),S);else{const{leave:F,delayLeave:U,afterLeave:q}=D,Q=()=>{d.ctx.isUnmounted?r(w):s(w,h,g)},re=()=>{w._isLeaving&&w[Gc](!0),F(w,()=>{Q(),q&&q()})};U?U(w,Q,re):re()}else s(w,h,g)},Oe=(d,h,g,R=!1,S=!1)=>{const{type:w,props:L,ref:D,children:N,dynamicChildren:O,shapeFlag:H,patchFlag:F,dirs:U,cacheIndex:q,memo:Q}=d;if(F===-2&&(S=!1),D!=null&&(At(),bn(D,null,g,d,!0),Ot()),q!=null&&(h.renderCache[q]=void 0),H&256){h.ctx.deactivate(d);return}const re=H&1&&U,ie=!En(d);let ge;if(ie&&(ge=L&&L.onVnodeBeforeUnmount)&<(ge,h,d),H&6)ve(d.component,g,R);else{if(H&128){d.suspense.unmount(g,R);return}re&&Ft(d,null,h,"beforeUnmount"),H&64?d.type.remove(d,h,g,B,R):O&&!O.hasOnce&&(w!==Qe||F>0&&F&64)?Te(O,h,g,!1,!0):(w===Qe&&F&384||!S&&H&16)&&Te(N,h,g),R&&ue(d)}const xe=Q!=null&&q==null;(ie&&(ge=L&&L.onVnodeUnmounted)||re||xe)&&He(()=>{ge&<(ge,h,d),re&&Ft(d,null,h,"unmounted"),xe&&(d.el=null)},g)},ue=d=>{const{type:h,el:g,anchor:R,transition:S}=d;if(h===Qe){De(g,R);return}if(h===Fs){C(d);return}const w=()=>{r(g),S&&!S.persisted&&S.afterLeave&&S.afterLeave()};if(d.shapeFlag&1&&S&&!S.persisted){const{leave:L,delayLeave:D}=S,N=()=>L(g,w);D?D(d.el,w,N):N()}else w()},De=(d,h)=>{let g;for(;d!==h;)g=p(d),r(d),d=g;r(h)},ve=(d,h,g)=>{const{bum:R,scope:S,job:w,subTree:L,um:D,m:N,a:O}=d;so(N),so(O),R&&Cs(R),S.stop(),w&&(w.flags|=8,Oe(L,d,h,g)),D&&He(D,h),He(()=>{d.isUnmounted=!0},h)},Te=(d,h,g,R=!1,S=!1,w=0)=>{for(let L=w;L{if(d.shapeFlag&6)return b(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),g=h&&h[Kc];return g?p(g):h};let T=!1;const I=(d,h,g)=>{let R;d==null?h._vnode&&(Oe(h._vnode,null,null,!0),R=h._vnode.component):_(h._vnode||null,d,h,null,null,null,g),h._vnode=d,T||(T=!0,zr(R),Ni(),T=!1)},B={p:_,um:Oe,m:Se,r:ue,mt:Re,mc:$,pc:J,pbc:X,n:b,o:e};return{render:I,hydrate:void 0,createApp:ma(I)}}function Ls({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Mt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Na(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function tl(e,t,n=!1){const s=e.children,r=t.children;if(k(s)&&k(r))for(let o=0;o>1,e[n[l]]0&&(t[s]=n[o-1]),n[o]=s)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function nl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:nl(t)}function so(e){if(e)for(let t=0;te.__isSuspense;function Da(e,t){t&&t.pendingBranch?k(e)?t.effects.push(...e):t.effects.push(e):kc(e)}const Qe=Symbol.for("v-fgt"),_s=Symbol.for("v-txt"),Lt=Symbol.for("v-cmt"),Fs=Symbol.for("v-stc"),wn=[];let We=null;function Fe(e=!1){wn.push(We=e?null:[])}function La(){wn.pop(),We=wn[wn.length-1]||null}let Cn=1;function rs(e,t=!1){Cn+=e,e<0&&We&&t&&(We.hasOnce=!0)}function ol(e){return e.dynamicChildren=Cn>0?We||Xt:null,La(),Cn>0&&We&&We.push(e),e}function Xe(e,t,n,s,r,o){return ol(ee(e,t,n,s,r,o,!0))}function zn(e,t,n,s,r){return ol(be(e,t,n,s,r,!0))}function os(e){return e?e.__v_isVNode===!0:!1}function an(e,t){return e.type===t.type&&e.key===t.key}const il=({key:e})=>e??null,Gn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||he(e)||W(e)?{i:dt,r:e,k:t,f:!!n}:e:null);function ee(e,t=null,n=null,s=0,r=null,o=e===Qe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&il(t),ref:t&&Gn(t),scopeId:Di,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:dt};return l?(Pr(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=de(n)?8:16),Cn>0&&!i&&We&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&We.push(c),c}const be=Fa;function Fa(e,t=null,n=null,s=0,r=null,o=!1){if((!e||e===ia)&&(e=Lt),os(e)){const l=tn(e,t,!0);return n&&Pr(l,n),Cn>0&&!o&&We&&(l.shapeFlag&6?We[We.indexOf(e)]=l:We.push(l)),l.patchFlag=-2,l}if($a(e)&&(e=e.__vccOpts),t){t=Ma(t);let{class:l,style:c}=t;l&&!de(l)&&(t.class=Yt(l)),se(c)&&(ps(c)&&!k(c)&&(c=Ce({},c)),t.style=gr(c))}const i=de(e)?1:rl(e)?128:zc(e)?64:se(e)?4:W(e)?2:0;return ee(e,t,n,s,r,i,o,!0)}function Ma(e){return e?ps(e)||Ji(e)?Ce({},e):e:null}function tn(e,t,n=!1,s=!1){const{props:r,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Ba(r||{},t):r,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&il(u),ref:t&&t.ref?n&&o?k(o)?o.concat(Gn(t)):[o,Gn(t)]:Gn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Qe?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&tn(e.ssContent),ssFallback:e.ssFallback&&tn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&xr(a,c.clone(a)),a}function Ye(e=" ",t=0){return be(_s,null,e,t)}function Vn(e="",t=!1){return t?(Fe(),zn(Lt,null,e)):be(Lt,null,e)}function ut(e){return e==null||typeof e=="boolean"?be(Lt):k(e)?be(Qe,null,e.slice()):os(e)?Et(e):be(_s,null,String(e))}function Et(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:tn(e)}function Pr(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(k(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Pr(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!Ji(t)?t._ctx=dt:r===3&&dt&&(dt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:dt},n=32):(t=String(t),s&64?(n=16,t=[Ye(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ba(...e){const t={};for(let n=0;nUe||dt;let is,tr;{const e=ds(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),o=>{r.length>1?r.forEach(i=>i(o)):r[0](o)}};is=t("__VUE_INSTANCE_SETTERS__",n=>Ue=n),tr=t("__VUE_SSR_SETTERS__",n=>Tn=n)}const Ln=e=>{const t=Ue;return is(e),e.scope.on(),()=>{e.scope.off(),is(t)}},ro=()=>{Ue&&Ue.scope.off(),is(null)};function cl(e){return e.vnode.shapeFlag&4}let Tn=!1;function ka(e,t=!1,n=!1){t&&tr(t);const{props:s,children:r}=e.vnode,o=cl(e);Sa(e,s,o,t),xa(e,r,n||t);const i=o?qa(e,t):void 0;return t&&tr(!1),i}function qa(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ca);const{setup:s}=n;if(s){At();const r=e.setupContext=s.length>1?Wa(e):null,o=Ln(e),i=Dn(s,e,0,[e.props,r]),l=ti(i);if(Ot(),o(),(l||e.sp)&&!En(e)&&Bi(e),l){if(i.then(ro,ro),t)return i.then(c=>{oo(e,c)}).catch(c=>{ms(c,e,0)});e.asyncDep=i}else oo(e,i)}else al(e)}function oo(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:se(t)&&(e.setupState=Ci(t)),al(e)}function al(e,t,n){const s=e.type;e.render||(e.render=s.render||ht);{const r=Ln(e);At();try{aa(e)}finally{Ot(),r()}}}const Va={get(e,t){return Pe(e,"get",""),e[t]}};function Wa(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Va),slots:e.slots,emit:e.emit,expose:t}}function Nr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ci(vr(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Rn)return Rn[n](e)},has(t,n){return n in t||n in Rn}})):e.proxy}function $a(e){return W(e)&&"__vccOpts"in e}const Ge=(e,t)=>Mc(e,t,Tn);function ul(e,t,n){try{rs(-1);const s=arguments.length;return s===2?se(t)&&!k(t)?os(t)?be(e,null,[t]):be(e,t):be(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&os(n)&&(n=[n]),be(e,t,n))}finally{rs(1)}}const Ka="3.5.34";/** +* @vue/runtime-dom v3.5.34 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let nr;const io=typeof window<"u"&&window.trustedTypes;if(io)try{nr=io.createPolicy("vue",{createHTML:e=>e})}catch{}const fl=nr?e=>nr.createHTML(e):e=>e,za="http://www.w3.org/2000/svg",Ga="http://www.w3.org/1998/Math/MathML",bt=typeof document<"u"?document:null,lo=bt&&bt.createElement("template"),Ja={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?bt.createElementNS(za,e):t==="mathml"?bt.createElementNS(Ga,e):n?bt.createElement(e,{is:n}):bt.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>bt.createTextNode(e),createComment:e=>bt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>bt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,o){const i=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{lo.innerHTML=fl(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const l=lo.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Xa=Symbol("_vtc");function Qa(e,t,n){const s=e[Xa];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const co=Symbol("_vod"),Ya=Symbol("_vsh"),Za=Symbol(""),eu=/(?:^|;)\s*display\s*:/;function tu(e,t,n){const s=e.style,r=de(n);let o=!1;if(n&&!r){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&hn(s,l,"")}else for(const i in t)n[i]==null&&hn(s,i,"");for(const i in n){i==="display"&&(o=!0);const l=n[i];l!=null?su(e,i,!de(t)&&t?t[i]:void 0,l)||hn(s,i,l):hn(s,i,"")}}else if(r){if(t!==n){const i=s[Za];i&&(n+=";"+i),s.cssText=n,o=eu.test(n)}}else t&&e.removeAttribute("style");co in e&&(e[co]=o?s.display:"",e[Ya]&&(s.display="none"))}const ao=/\s*!important$/;function hn(e,t,n){if(k(n))n.forEach(s=>hn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=nu(e,t);ao.test(n)?e.setProperty(Wt(s),n.replace(ao,""),"important"):e[s]=n}}const uo=["Webkit","Moz","ms"],Ms={};function nu(e,t){const n=Ms[t];if(n)return n;let s=Ze(t);if(s!=="filter"&&s in e)return Ms[t]=s;s=ri(s);for(let r=0;rBs||(cu.then(()=>Bs=0),Bs=Date.now());function uu(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;mt(fu(s,n.value),t,5,[s])};return n.value=e,n.attached=au(),n}function fu(e,t){if(k(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const yo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,du=(e,t,n,s,r,o)=>{const i=r==="svg";t==="class"?Qa(e,s,i):t==="style"?tu(e,n,s):cs(t)?as(t)||iu(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):hu(e,t,s,i))?(po(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ho(e,t,s,i,o,t!=="value")):e._isVueCE&&(pu(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!de(s)))?po(e,Ze(t),s,o,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),ho(e,t,s,i))};function hu(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&yo(t)&&W(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return yo(t)&&de(n)?!1:t in e}function pu(e,t){const n=e._def.props;if(!n)return!1;const s=Ze(t);return Array.isArray(n)?n.some(r=>Ze(r)===s):Object.keys(n).some(r=>Ze(r)===s)}const mu=Ce({patchProp:du},Ja);let _o;function gu(){return _o||(_o=Ta(mu))}const yu=(...e)=>{const t=gu().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=bu(s);if(!r)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const i=n(r,!1,_u(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),i},t};function _u(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function bu(e){return de(e)?document.querySelector(e):e}/*! + * pinia v2.3.1 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */let dl;const bs=e=>dl=e,hl=Symbol();function sr(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Sn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Sn||(Sn={}));function Eu(){const e=ui(!0),t=e.run(()=>yn({}));let n=[],s=[];const r=vr({install(o){bs(r),r._a=o,o.provide(hl,r),o.config.globalProperties.$pinia=r,s.forEach(i=>n.push(i)),s=[]},use(o){return this._a?n.push(o):s.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return r}const pl=()=>{};function bo(e,t,n,s=pl){e.push(t);const r=()=>{const o=e.indexOf(t);o>-1&&(e.splice(o,1),s())};return!n&&fi()&&ac(r),r}function Kt(e,...t){e.slice().forEach(n=>{n(...t)})}const Ru=e=>e(),Eo=Symbol(),Us=Symbol();function rr(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,s)=>e.set(s,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const s=t[n],r=e[n];sr(r)&&sr(s)&&e.hasOwnProperty(n)&&!he(s)&&!vt(s)?e[n]=rr(r,s):e[n]=s}return e}const wu=Symbol();function Su(e){return!sr(e)||!e.hasOwnProperty(wu)}const{assign:Pt}=Object;function vu(e){return!!(he(e)&&e.effect)}function Au(e,t,n,s){const{state:r,actions:o,getters:i}=t,l=n.state.value[e];let c;function u(){l||(n.state.value[e]=r?r():{});const a=Ic(n.state.value[e]);return Pt(a,o,Object.keys(i||{}).reduce((f,p)=>(f[p]=vr(Ge(()=>{bs(n);const m=n._s.get(e);return i[p].call(m,m)})),f),{}))}return c=ml(e,u,t,n,s,!0),c}function ml(e,t,n={},s,r,o){let i;const l=Pt({actions:{}},n),c={deep:!0};let u,a,f=[],p=[],m;const A=s.state.value[e];!o&&!A&&(s.state.value[e]={});let _;function E($){let K;u=a=!1,typeof $=="function"?($(s.state.value[e]),K={type:Sn.patchFunction,storeId:e,events:m}):(rr(s.state.value[e],$),K={type:Sn.patchObject,payload:$,storeId:e,events:m});const X=_=Symbol();Ar().then(()=>{_===X&&(u=!0)}),a=!0,Kt(f,K,s.state.value[e])}const v=o?function(){const{state:K}=n,X=K?K():{};this.$patch(ae=>{Pt(ae,X)})}:pl;function x(){i.stop(),f=[],p=[],s._s.delete(e)}const P=($,K="")=>{if(Eo in $)return $[Us]=K,$;const X=function(){bs(s);const ae=Array.from(arguments),Ee=[],Ae=[];function Re(V){Ee.push(V)}function Ke(V){Ae.push(V)}Kt(p,{args:ae,name:X[Us],store:j,after:Re,onError:Ke});let Z;try{Z=$.apply(this&&this.$id===e?this:j,ae)}catch(V){throw Kt(Ae,V),V}return Z instanceof Promise?Z.then(V=>(Kt(Ee,V),V)).catch(V=>(Kt(Ae,V),Promise.reject(V))):(Kt(Ee,Z),Z)};return X[Eo]=!0,X[Us]=K,X},C={_p:s,$id:e,$onAction:bo.bind(null,p),$patch:E,$reset:v,$subscribe($,K={}){const X=bo(f,$,K.detached,()=>ae()),ae=i.run(()=>_n(()=>s.state.value[e],Ee=>{(K.flush==="sync"?a:u)&&$({storeId:e,type:Sn.direct,events:m},Ee)},Pt({},c,K)));return X},$dispose:x},j=In(C);s._s.set(e,j);const G=(s._a&&s._a.runWithContext||Ru)(()=>s._e.run(()=>(i=ui()).run(()=>t({action:P}))));for(const $ in G){const K=G[$];if(he(K)&&!vu(K)||vt(K))o||(A&&Su(K)&&(he(K)?K.value=A[$]:rr(K,A[$])),s.state.value[e][$]=K);else if(typeof K=="function"){const X=P(K,$);G[$]=X,l.actions[$]=K}}return Pt(j,G),Pt(Y(j),G),Object.defineProperty(j,"$state",{get:()=>s.state.value[e],set:$=>{E(K=>{Pt(K,$)})}}),s._p.forEach($=>{Pt(j,i.run(()=>$({store:j,app:s._a,pinia:s,options:l})))}),A&&o&&n.hydrate&&n.hydrate(j.$state,A),u=!0,a=!0,j}/*! #__NO_SIDE_EFFECTS__ */function Ou(e,t,n){let s,r;const o=typeof t=="function";s=e,r=o?n:t;function i(l,c){const u=qc();return l=l||(u?pt(hl,null):null),l&&bs(l),l=dl,l._s.has(s)||(o?ml(s,t,r,l):Au(s,r,l)),l._s.get(s)}return i.$id=s,i}/*! + * vue-router v4.6.4 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */const Jt=typeof document<"u";function gl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function xu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&gl(e.default)}const te=Object.assign;function js(e,t){const n={};for(const s in t){const r=t[s];n[s]=nt(r)?r.map(e):e(r)}return n}const vn=()=>{},nt=Array.isArray;function Ro(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const yl=/#/g,Cu=/&/g,Tu=/\//g,Pu=/=/g,Nu=/\?/g,_l=/\+/g,Iu=/%5B/g,Du=/%5D/g,bl=/%5E/g,Lu=/%60/g,El=/%7B/g,Fu=/%7C/g,Rl=/%7D/g,Mu=/%20/g;function Ir(e){return e==null?"":encodeURI(""+e).replace(Fu,"|").replace(Iu,"[").replace(Du,"]")}function Bu(e){return Ir(e).replace(El,"{").replace(Rl,"}").replace(bl,"^")}function or(e){return Ir(e).replace(_l,"%2B").replace(Mu,"+").replace(yl,"%23").replace(Cu,"%26").replace(Lu,"`").replace(El,"{").replace(Rl,"}").replace(bl,"^")}function Uu(e){return or(e).replace(Pu,"%3D")}function ju(e){return Ir(e).replace(yl,"%23").replace(Nu,"%3F")}function Hu(e){return ju(e).replace(Tu,"%2F")}function Pn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const ku=/\/$/,qu=e=>e.replace(ku,"");function Hs(e,t,n="/"){let s,r={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(s=t.slice(0,c),o=t.slice(c,l>0?l:t.length),r=e(o.slice(1))),l>=0&&(s=s||t.slice(0,l),i=t.slice(l,t.length)),s=Ku(s??t,n),{fullPath:s+o+i,path:s,query:r,hash:Pn(i)}}function Vu(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function wo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Wu(e,t,n){const s=t.matched.length-1,r=n.matched.length-1;return s>-1&&s===r&&nn(t.matched[s],n.matched[r])&&wl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function nn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function wl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!$u(e[n],t[n]))return!1;return!0}function $u(e,t){return nt(e)?So(e,t):nt(t)?So(t,e):(e==null?void 0:e.valueOf())===(t==null?void 0:t.valueOf())}function So(e,t){return nt(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function Ku(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),r=s[s.length-1];(r===".."||r===".")&&s.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+s.slice(i).join("/")}const Tt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let ir=function(e){return e.pop="pop",e.push="push",e}({}),ks=function(e){return e.back="back",e.forward="forward",e.unknown="",e}({});function zu(e){if(!e)if(Jt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),qu(e)}const Gu=/^[^#]+#/;function Ju(e,t){return e.replace(Gu,"#")+t}function Xu(e,t){const n=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-n.left-(t.left||0),top:s.top-n.top-(t.top||0)}}const Es=()=>({left:window.scrollX,top:window.scrollY});function Qu(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=Xu(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function vo(e,t){return(history.state?history.state.position-t:-1)+e}const lr=new Map;function Yu(e,t){lr.set(e,t)}function Zu(e){const t=lr.get(e);return lr.delete(e),t}function ef(e){return typeof e=="string"||e&&typeof e=="object"}function Sl(e){return typeof e=="string"||typeof e=="symbol"}let fe=function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e}({});const vl=Symbol("");fe.MATCHER_NOT_FOUND+"",fe.NAVIGATION_GUARD_REDIRECT+"",fe.NAVIGATION_ABORTED+"",fe.NAVIGATION_CANCELLED+"",fe.NAVIGATION_DUPLICATED+"";function sn(e,t){return te(new Error,{type:e,[vl]:!0},t)}function yt(e,t){return e instanceof Error&&vl in e&&(t==null||!!(e.type&t))}const tf=["params","query","hash"];function nf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of tf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function sf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;sr&&or(r)):[s&&or(s)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function rf(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=nt(s)?s.map(r=>r==null?null:""+r):s==null?s:""+s)}return t}const of=Symbol(""),Oo=Symbol(""),Dr=Symbol(""),Al=Symbol(""),cr=Symbol("");function un(){let e=[];function t(s){return e.push(s),()=>{const r=e.indexOf(s);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function It(e,t,n,s,r,o=i=>i()){const i=s&&(s.enterCallbacks[r]=s.enterCallbacks[r]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(sn(fe.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):ef(p)?c(sn(fe.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&s.enterCallbacks[r]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(s&&s.instances[r],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function qs(e,t,n,s,r=o=>o()){const o=[];for(const i of e)for(const l in i.components){let c=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(gl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(It(u,n,s,i,l,r))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=xu(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&It(p,n,s,i,l,r)()}))}}return o}function lf(e,t){const n=[],s=[],r=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;inn(u,l))?s.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>nn(u,c))||r.push(c))}return[n,s,r]}/*! + * vue-router v4.6.4 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */let cf=()=>location.protocol+"//"+location.host;function Ol(e,t){const{pathname:n,search:s,hash:r}=t,o=e.indexOf("#");if(o>-1){let i=r.includes(e.slice(o))?e.slice(o).length:1,l=r.slice(i);return l[0]!=="/"&&(l="/"+l),wo(l,"")}return wo(n,e)+s+r}function af(e,t,n,s){let r=[],o=[],i=null;const l=({state:p})=>{const m=Ol(e,location),A=n.value,_=t.value;let E=0;if(p){if(n.value=m,t.value=p,i&&i===A){i=null;return}E=_?p.position-_.position:0}else s(m);r.forEach(v=>{v(n.value,A,{delta:E,type:ir.pop,direction:E?E>0?ks.forward:ks.back:ks.unknown})})};function c(){i=n.value}function u(p){r.push(p);const m=()=>{const A=r.indexOf(p);A>-1&&r.splice(A,1)};return o.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(te({},p.state,{scroll:Es()}),"")}}function f(){for(const p of o)p();o=[],window.removeEventListener("popstate",l),window.removeEventListener("pagehide",a),document.removeEventListener("visibilitychange",a)}return window.addEventListener("popstate",l),window.addEventListener("pagehide",a),document.addEventListener("visibilitychange",a),{pauseListeners:c,listen:u,destroy:f}}function xo(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?Es():null}}function uf(e){const{history:t,location:n}=window,s={value:Ol(e,n)},r={value:t.state};r.value||o(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(c,u,a){const f=e.indexOf("#"),p=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+c:cf()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),r.value=u}catch(m){console.error(m),n[a?"replace":"assign"](p)}}function i(c,u){o(c,te({},t.state,xo(r.value.back,c,r.value.forward,!0),u,{position:r.value.position}),!0),s.value=c}function l(c,u){const a=te({},r.value,t.state,{forward:c,scroll:Es()});o(a.current,a,!0),o(c,te({},xo(s.value,c,null),{position:a.position+1},u),!1),s.value=c}return{location:s,state:r,push:l,replace:i}}function ff(e){e=zu(e);const t=uf(e),n=af(e,t.state,t.location,t.replace);function s(o,i=!0){i||n.pauseListeners(),history.go(o)}const r=te({location:"",base:e,go:s,createHref:Ju.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}let Ut=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var ye=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e}(ye||{});const df={type:Ut.Static,value:""},hf=/[a-zA-Z0-9_]/;function pf(e){if(!e)return[[]];if(e==="/")return[[df]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=ye.Static,s=n;const r=[];let o;function i(){o&&r.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===ye.Static?o.push({type:Ut.Static,value:u}):n===ye.Param||n===ye.ParamRegExp||n===ye.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Ut.Param,value:u,regexp:a,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),u="")}function p(){u+=c}for(;lt.length?t.length===1&&t[0]===Me.Static+Me.Segment?1:-1:0}function xl(e,t){let n=0;const s=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const bf={strict:!1,end:!0,sensitive:!1};function Ef(e,t,n){const s=yf(pf(e.path),n),r=te(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Rf(e,t){const n=[],s=new Map;t=Ro(bf,t);function r(f){return s.get(f)}function o(f,p,m){const A=!m,_=No(f);_.aliasOf=m&&m.record;const E=Ro(t,f),v=[_];if("alias"in f){const C=typeof f.alias=="string"?[f.alias]:f.alias;for(const j of C)v.push(No(te({},_,{components:m?m.record.components:_.components,path:j,aliasOf:m?m.record:_})))}let x,P;for(const C of v){const{path:j}=C;if(p&&j[0]!=="/"){const oe=p.record.path,G=oe[oe.length-1]==="/"?"":"/";C.path=p.record.path+(j&&G+j)}if(x=Ef(C,p,E),m?m.alias.push(x):(P=P||x,P!==x&&P.alias.push(x),A&&f.name&&!Io(x)&&i(f.name)),Cl(x)&&c(x),_.children){const oe=_.children;for(let G=0;G{i(P)}:vn}function i(f){if(Sl(f)){const p=s.get(f);p&&(s.delete(f),n.splice(n.indexOf(p),1),p.children.forEach(i),p.alias.forEach(i))}else{const p=n.indexOf(f);p>-1&&(n.splice(p,1),f.record.name&&s.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=vf(f,n);n.splice(p,0,f),f.record.name&&!Io(f)&&s.set(f.record.name,f)}function u(f,p){let m,A={},_,E;if("name"in f&&f.name){if(m=s.get(f.name),!m)throw sn(fe.MATCHER_NOT_FOUND,{location:f});E=m.record.name,A=te(Po(p.params,m.keys.filter(P=>!P.optional).concat(m.parent?m.parent.keys.filter(P=>P.optional):[]).map(P=>P.name)),f.params&&Po(f.params,m.keys.map(P=>P.name))),_=m.stringify(A)}else if(f.path!=null)_=f.path,m=n.find(P=>P.re.test(_)),m&&(A=m.parse(_),E=m.record.name);else{if(m=p.name?s.get(p.name):n.find(P=>P.re.test(p.path)),!m)throw sn(fe.MATCHER_NOT_FOUND,{location:f,currentLocation:p});E=m.record.name,A=te({},p.params,f.params),_=m.stringify(A)}const v=[];let x=m;for(;x;)v.unshift(x.record),x=x.parent;return{name:E,path:_,params:A,matched:v,meta:Sf(v)}}e.forEach(f=>o(f));function a(){n.length=0,s.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:r}}function Po(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function No(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:wf(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function wf(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function Io(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Sf(e){return e.reduce((t,n)=>te(t,n.meta),{})}function vf(e,t){let n=0,s=t.length;for(;n!==s;){const o=n+s>>1;xl(e,t[o])<0?s=o:n=o+1}const r=Af(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function Af(e){let t=e;for(;t=t.parent;)if(Cl(t)&&xl(e,t)===0)return t}function Cl({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Do(e){const t=pt(Dr),n=pt(Al),s=Ge(()=>{const c=Ne(e.to);return t.resolve(c)}),r=Ge(()=>{const{matched:c}=s.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(nn.bind(null,a));if(p>-1)return p;const m=Lo(c[u-2]);return u>1&&Lo(a)===m&&f[f.length-1].path!==m?f.findIndex(nn.bind(null,c[u-2])):p}),o=Ge(()=>r.value>-1&&Tf(n.params,s.value.params)),i=Ge(()=>r.value>-1&&r.value===n.matched.length-1&&wl(n.params,s.value.params));function l(c={}){if(Cf(c)){const u=t[Ne(e.replace)?"replace":"push"](Ne(e.to)).catch(vn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:s,href:Ge(()=>s.value.href),isActive:o,isExactActive:i,navigate:l}}function Of(e){return e.length===1?e[0]:e}const xf=Mi({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Do,setup(e,{slots:t}){const n=In(Do(e)),{options:s}=pt(Dr),r=Ge(()=>({[Fo(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[Fo(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Of(t.default(n));return e.custom?o:ul("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}}),St=xf;function Cf(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Tf(e,t){for(const n in t){const s=t[n],r=e[n];if(typeof s=="string"){if(s!==r)return!1}else if(!nt(r)||r.length!==s.length||s.some((o,i)=>o.valueOf()!==r[i].valueOf()))return!1}return!0}function Lo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Fo=(e,t,n)=>e??t??n,Pf=Mi({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=pt(cr),r=Ge(()=>e.route||s.value),o=pt(Oo,0),i=Ge(()=>{let u=Ne(o);const{matched:a}=r.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=Ge(()=>r.value.matched[i.value]);Kn(Oo,Ge(()=>i.value+1)),Kn(of,l),Kn(cr,r);const c=yn();return _n(()=>[c.value,l.value,e.name],([u,a,f],[p,m,A])=>{a&&(a.instances[f]=u,m&&m!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),u&&a&&(!m||!nn(a,m)||!p)&&(a.enterCallbacks[f]||[]).forEach(_=>_(u))},{flush:"post"}),()=>{const u=r.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return Mo(n.default,{Component:p,route:u});const m=f.props[a],A=m?m===!0?u.params:typeof m=="function"?m(u):m:null,E=ul(p,te({},A,t,{onVnodeUnmounted:v=>{v.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return Mo(n.default,{Component:E,route:u})||E}}});function Mo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Tl=Pf;function Nf(e){const t=Rf(e.routes,e),n=e.parseQuery||sf,s=e.stringifyQuery||Ao,r=e.history,o=un(),i=un(),l=un(),c=Tc(Tt);let u=Tt;Jt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=js.bind(null,b=>""+b),f=js.bind(null,Hu),p=js.bind(null,Pn);function m(b,T){let I,B;return Sl(b)?(I=t.getRecordMatcher(b),B=T):B=b,t.addRoute(B,I)}function A(b){const T=t.getRecordMatcher(b);T&&t.removeRoute(T)}function _(){return t.getRoutes().map(b=>b.record)}function E(b){return!!t.getRecordMatcher(b)}function v(b,T){if(T=te({},T||c.value),typeof b=="string"){const g=Hs(n,b,T.path),R=t.resolve({path:g.path},T),S=r.createHref(g.fullPath);return te(g,R,{params:p(R.params),hash:Pn(g.hash),redirectedFrom:void 0,href:S})}let I;if(b.path!=null)I=te({},b,{path:Hs(n,b.path,T.path).path});else{const g=te({},b.params);for(const R in g)g[R]==null&&delete g[R];I=te({},b,{params:f(g)}),T.params=f(T.params)}const B=t.resolve(I,T),z=b.hash||"";B.params=a(p(B.params));const d=Vu(s,te({},b,{hash:Bu(z),path:B.path})),h=r.createHref(d);return te({fullPath:d,hash:z,query:s===Ao?rf(b.query):b.query||{}},B,{redirectedFrom:void 0,href:h})}function x(b){return typeof b=="string"?Hs(n,b,c.value.path):te({},b)}function P(b,T){if(u!==b)return sn(fe.NAVIGATION_CANCELLED,{from:T,to:b})}function C(b){return G(b)}function j(b){return C(te(x(b),{replace:!0}))}function oe(b,T){const I=b.matched[b.matched.length-1];if(I&&I.redirect){const{redirect:B}=I;let z=typeof B=="function"?B(b,T):B;return typeof z=="string"&&(z=z.includes("?")||z.includes("#")?z=x(z):{path:z},z.params={}),te({query:b.query,hash:b.hash,params:z.path!=null?{}:b.params},z)}}function G(b,T){const I=u=v(b),B=c.value,z=b.state,d=b.force,h=b.replace===!0,g=oe(I,B);if(g)return G(te(x(g),{state:typeof g=="object"?te({},z,g.state):z,force:d,replace:h}),T||I);const R=I;R.redirectedFrom=T;let S;return!d&&Wu(s,B,I)&&(S=sn(fe.NAVIGATION_DUPLICATED,{to:R,from:B}),Se(B,B,!0,!1)),(S?Promise.resolve(S):X(R,B)).catch(w=>yt(w)?yt(w,fe.NAVIGATION_GUARD_REDIRECT)?w:pe(w):J(w,R,B)).then(w=>{if(w){if(yt(w,fe.NAVIGATION_GUARD_REDIRECT))return G(te({replace:h},x(w.to),{state:typeof w.to=="object"?te({},z,w.to.state):z,force:d}),T||R)}else w=Ee(R,B,!0,h,z);return ae(R,B,w),w})}function $(b,T){const I=P(b,T);return I?Promise.reject(I):Promise.resolve()}function K(b){const T=De.values().next().value;return T&&typeof T.runWithContext=="function"?T.runWithContext(b):b()}function X(b,T){let I;const[B,z,d]=lf(b,T);I=qs(B.reverse(),"beforeRouteLeave",b,T);for(const g of B)g.leaveGuards.forEach(R=>{I.push(It(R,b,T))});const h=$.bind(null,b,T);return I.push(h),Te(I).then(()=>{I=[];for(const g of o.list())I.push(It(g,b,T));return I.push(h),Te(I)}).then(()=>{I=qs(z,"beforeRouteUpdate",b,T);for(const g of z)g.updateGuards.forEach(R=>{I.push(It(R,b,T))});return I.push(h),Te(I)}).then(()=>{I=[];for(const g of d)if(g.beforeEnter)if(nt(g.beforeEnter))for(const R of g.beforeEnter)I.push(It(R,b,T));else I.push(It(g.beforeEnter,b,T));return I.push(h),Te(I)}).then(()=>(b.matched.forEach(g=>g.enterCallbacks={}),I=qs(d,"beforeRouteEnter",b,T,K),I.push(h),Te(I))).then(()=>{I=[];for(const g of i.list())I.push(It(g,b,T));return I.push(h),Te(I)}).catch(g=>yt(g,fe.NAVIGATION_CANCELLED)?g:Promise.reject(g))}function ae(b,T,I){l.list().forEach(B=>K(()=>B(b,T,I)))}function Ee(b,T,I,B,z){const d=P(b,T);if(d)return d;const h=T===Tt,g=Jt?history.state:{};I&&(B||h?r.replace(b.fullPath,te({scroll:h&&g&&g.scroll},z)):r.push(b.fullPath,z)),c.value=b,Se(b,T,I,h),pe()}let Ae;function Re(){Ae||(Ae=r.listen((b,T,I)=>{if(!ve.listening)return;const B=v(b),z=oe(B,ve.currentRoute.value);if(z){G(te(z,{replace:!0,force:!0}),B).catch(vn);return}u=B;const d=c.value;Jt&&Yu(vo(d.fullPath,I.delta),Es()),X(B,d).catch(h=>yt(h,fe.NAVIGATION_ABORTED|fe.NAVIGATION_CANCELLED)?h:yt(h,fe.NAVIGATION_GUARD_REDIRECT)?(G(te(x(h.to),{force:!0}),B).then(g=>{yt(g,fe.NAVIGATION_ABORTED|fe.NAVIGATION_DUPLICATED)&&!I.delta&&I.type===ir.pop&&r.go(-1,!1)}).catch(vn),Promise.reject()):(I.delta&&r.go(-I.delta,!1),J(h,B,d))).then(h=>{h=h||Ee(B,d,!1),h&&(I.delta&&!yt(h,fe.NAVIGATION_CANCELLED)?r.go(-I.delta,!1):I.type===ir.pop&&yt(h,fe.NAVIGATION_ABORTED|fe.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),ae(B,d,h)}).catch(vn)}))}let Ke=un(),Z=un(),V;function J(b,T,I){pe(b);const B=Z.list();return B.length?B.forEach(z=>z(b,T,I)):console.error(b),Promise.reject(b)}function we(){return V&&c.value!==Tt?Promise.resolve():new Promise((b,T)=>{Ke.add([b,T])})}function pe(b){return V||(V=!b,Re(),Ke.list().forEach(([T,I])=>b?I(b):T()),Ke.reset()),b}function Se(b,T,I,B){const{scrollBehavior:z}=e;if(!Jt||!z)return Promise.resolve();const d=!I&&Zu(vo(b.fullPath,0))||(B||!I)&&history.state&&history.state.scroll||null;return Ar().then(()=>z(b,T,d)).then(h=>h&&Qu(h)).catch(h=>J(h,b,T))}const Oe=b=>r.go(b);let ue;const De=new Set,ve={currentRoute:c,listening:!0,addRoute:m,removeRoute:A,clearRoutes:t.clearRoutes,hasRoute:E,getRoutes:_,resolve:v,options:e,push:C,replace:j,go:Oe,back:()=>Oe(-1),forward:()=>Oe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:Z.add,isReady:we,install(b){b.component("RouterLink",St),b.component("RouterView",Tl),b.config.globalProperties.$router=ve,Object.defineProperty(b.config.globalProperties,"$route",{enumerable:!0,get:()=>Ne(c)}),Jt&&!ue&&c.value===Tt&&(ue=!0,C(r.location).catch(B=>{}));const T={};for(const B in Tt)Object.defineProperty(T,B,{get:()=>c.value[B],enumerable:!0});b.provide(Dr,ve),b.provide(Al,Oi(T)),b.provide(cr,c);const I=b.unmount;De.add(b),b.unmount=function(){De.delete(b),De.size<1&&(u=Tt,Ae&&Ae(),Ae=null,c.value=Tt,ue=!1,V=!1),I()}}};function Te(b){return b.reduce((T,I)=>T.then(()=>K(I)),Promise.resolve())}return ve}const If={class:"nav"},Df={__name:"App",setup(e){return(t,n)=>(Fe(),Xe(Qe,null,[ee("nav",If,[n[5]||(n[5]=ee("span",{class:"nav-logo"},"📚 English Study",-1)),be(Ne(St),{to:"/"},{default:wt(()=>[...n[0]||(n[0]=[Ye("홈",-1)])]),_:1}),be(Ne(St),{to:"/words"},{default:wt(()=>[...n[1]||(n[1]=[Ye("단어",-1)])]),_:1}),be(Ne(St),{to:"/phrases"},{default:wt(()=>[...n[2]||(n[2]=[Ye("회화",-1)])]),_:1}),be(Ne(St),{to:"/quiz"},{default:wt(()=>[...n[3]||(n[3]=[Ye("퀴즈",-1)])]),_:1}),be(Ne(St),{to:"/grammar"},{default:wt(()=>[...n[4]||(n[4]=[Ye("문법",-1)])]),_:1})]),be(Ne(Tl))],64))}},Lf="modulepreload",Ff=function(e){return"/"+e},Bo={},Wn=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));r=Promise.allSettled(n.map(c=>{if(c=Ff(c),c in Bo)return;Bo[c]=!0;const u=c.endsWith(".css"),a=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${a}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":Lf,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((p,m)=>{f.addEventListener("load",p),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return r.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};function Pl(e,t){return function(){return e.apply(t,arguments)}}const{toString:Mf}=Object.prototype,{getPrototypeOf:Rs}=Object,{iterator:ws,toStringTag:Nl}=Symbol,Ss=(e=>t=>{const n=Mf.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),st=e=>(e=e.toLowerCase(),t=>Ss(t)===e),vs=e=>t=>typeof t===e,{isArray:on}=Array,rn=vs("undefined");function Fn(e){return e!==null&&!rn(e)&&e.constructor!==null&&!rn(e.constructor)&&qe(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Il=st("ArrayBuffer");function Bf(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Il(e.buffer),t}const Uf=vs("string"),qe=vs("function"),Dl=vs("number"),Mn=e=>e!==null&&typeof e=="object",jf=e=>e===!0||e===!1,Jn=e=>{if(Ss(e)!=="object")return!1;const t=Rs(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Nl in e)&&!(ws in e)},Hf=e=>{if(!Mn(e)||Fn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},kf=st("Date"),qf=st("File"),Vf=e=>!!(e&&typeof e.uri<"u"),Wf=e=>e&&typeof e.getParts<"u",$f=st("Blob"),Kf=st("FileList"),zf=e=>Mn(e)&&qe(e.pipe);function Gf(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const Uo=Gf(),jo=typeof Uo.FormData<"u"?Uo.FormData:void 0,Jf=e=>{if(!e)return!1;if(jo&&e instanceof jo)return!0;const t=Rs(e);if(!t||t===Object.prototype||!qe(e.append))return!1;const n=Ss(e);return n==="formdata"||n==="object"&&qe(e.toString)&&e.toString()==="[object FormData]"},Xf=st("URLSearchParams"),[Qf,Yf,Zf,ed]=["ReadableStream","Request","Response","Headers"].map(st),td=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Bn(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let s,r;if(typeof e!="object"&&(e=[e]),on(e))for(s=0,r=e.length;s0;)if(r=n[s],t===r.toLowerCase())return r;return null}const jt=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Fl=e=>!rn(e)&&e!==jt;function ar(...e){const{caseless:t,skipUndefined:n}=Fl(this)&&this||{},s={},r=(o,i)=>{if(i==="__proto__"||i==="constructor"||i==="prototype")return;const l=t&&Ll(s,i)||i,c=ur(s,l)?s[l]:void 0;Jn(c)&&Jn(o)?s[l]=ar(c,o):Jn(o)?s[l]=ar({},o):on(o)?s[l]=o.slice():(!n||!rn(o))&&(s[l]=o)};for(let o=0,i=e.length;o(Bn(t,(r,o)=>{n&&qe(r)?Object.defineProperty(e,o,{__proto__:null,value:Pl(r,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,o,{__proto__:null,value:r,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:s}),e),sd=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),rd=(e,t,n,s)=>{e.prototype=Object.create(t.prototype,s),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},od=(e,t,n,s)=>{let r,o,i;const l={};if(t=t||{},e==null)return t;do{for(r=Object.getOwnPropertyNames(e),o=r.length;o-- >0;)i=r[o],(!s||s(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Rs(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},id=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const s=e.indexOf(t,n);return s!==-1&&s===n},ld=e=>{if(!e)return null;if(on(e))return e;let t=e.length;if(!Dl(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},cd=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Rs(Uint8Array)),ad=(e,t)=>{const s=(e&&e[ws]).call(e);let r;for(;(r=s.next())&&!r.done;){const o=r.value;t.call(e,o[0],o[1])}},ud=(e,t)=>{let n;const s=[];for(;(n=e.exec(t))!==null;)s.push(n);return s},fd=st("HTMLFormElement"),dd=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,s,r){return s.toUpperCase()+r}),ur=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),hd=st("RegExp"),Ml=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),s={};Bn(n,(r,o)=>{let i;(i=t(r,o,e))!==!1&&(s[o]=i||r)}),Object.defineProperties(e,s)},pd=e=>{Ml(e,(t,n)=>{if(qe(e)&&["arguments","caller","callee"].includes(n))return!1;const s=e[n];if(qe(s)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},md=(e,t)=>{const n={},s=r=>{r.forEach(o=>{n[o]=!0})};return on(e)?s(e):s(String(e).split(t)),n},gd=()=>{},yd=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function _d(e){return!!(e&&qe(e.append)&&e[Nl]==="FormData"&&e[ws])}const bd=e=>{const t=new Array(10),n=(s,r)=>{if(Mn(s)){if(t.indexOf(s)>=0)return;if(Fn(s))return s;if(!("toJSON"in s)){t[r]=s;const o=on(s)?[]:{};return Bn(s,(i,l)=>{const c=n(i,r+1);!rn(c)&&(o[l]=c)}),t[r]=void 0,o}}return s};return n(e,0)},Ed=st("AsyncFunction"),Rd=e=>e&&(Mn(e)||qe(e))&&qe(e.then)&&qe(e.catch),Bl=((e,t)=>e?setImmediate:t?((n,s)=>(jt.addEventListener("message",({source:r,data:o})=>{r===jt&&o===n&&s.length&&s.shift()()},!1),r=>{s.push(r),jt.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",qe(jt.postMessage)),wd=typeof queueMicrotask<"u"?queueMicrotask.bind(jt):typeof process<"u"&&process.nextTick||Bl,Sd=e=>e!=null&&qe(e[ws]),y={isArray:on,isArrayBuffer:Il,isBuffer:Fn,isFormData:Jf,isArrayBufferView:Bf,isString:Uf,isNumber:Dl,isBoolean:jf,isObject:Mn,isPlainObject:Jn,isEmptyObject:Hf,isReadableStream:Qf,isRequest:Yf,isResponse:Zf,isHeaders:ed,isUndefined:rn,isDate:kf,isFile:qf,isReactNativeBlob:Vf,isReactNative:Wf,isBlob:$f,isRegExp:hd,isFunction:qe,isStream:zf,isURLSearchParams:Xf,isTypedArray:cd,isFileList:Kf,forEach:Bn,merge:ar,extend:nd,trim:td,stripBOM:sd,inherits:rd,toFlatObject:od,kindOf:Ss,kindOfTest:st,endsWith:id,toArray:ld,forEachEntry:ad,matchAll:ud,isHTMLForm:fd,hasOwnProperty:ur,hasOwnProp:ur,reduceDescriptors:Ml,freezeMethods:pd,toObjectSet:md,toCamelCase:dd,noop:gd,toFiniteNumber:yd,findKey:Ll,global:jt,isContextDefined:Fl,isSpecCompliantForm:_d,toJSONObject:bd,isAsyncFn:Ed,isThenable:Rd,setImmediate:Bl,asap:wd,isIterable:Sd},vd=y.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Ad=e=>{const t={};let n,s,r;return e&&e.split(` +`).forEach(function(i){r=i.indexOf(":"),n=i.substring(0,r).trim().toLowerCase(),s=i.substring(r+1).trim(),!(!n||t[n]&&vd[n])&&(n==="set-cookie"?t[n]?t[n].push(s):t[n]=[s]:t[n]=t[n]?t[n]+", "+s:s)}),t},Ho=Symbol("internals"),Od=/[^\x09\x20-\x7E\x80-\xFF]/g;function xd(e){let t=0,n=e.length;for(;tt;){const s=e.charCodeAt(n-1);if(s!==9&&s!==32)break;n-=1}return t===0&&n===e.length?e:e.slice(t,n)}function fn(e){return e&&String(e).trim().toLowerCase()}function Cd(e){return xd(e.replace(Od,""))}function Xn(e){return e===!1||e==null?e:y.isArray(e)?e.map(Xn):Cd(String(e))}function Td(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=n.exec(e);)t[s[1]]=s[2];return t}const Pd=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Vs(e,t,n,s,r){if(y.isFunction(s))return s.call(this,t,n);if(r&&(t=n),!!y.isString(t)){if(y.isString(s))return t.indexOf(s)!==-1;if(y.isRegExp(s))return s.test(t)}}function Nd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,s)=>n.toUpperCase()+s)}function Id(e,t){const n=y.toCamelCase(" "+t);["get","set","has"].forEach(s=>{Object.defineProperty(e,s+n,{__proto__:null,value:function(r,o,i){return this[s].call(this,t,r,o,i)},configurable:!0})})}let je=class{constructor(t){t&&this.set(t)}set(t,n,s){const r=this;function o(l,c,u){const a=fn(c);if(!a)throw new Error("header name must be a non-empty string");const f=y.findKey(r,a);(!f||r[f]===void 0||u===!0||u===void 0&&r[f]!==!1)&&(r[f||c]=Xn(l))}const i=(l,c)=>y.forEach(l,(u,a)=>o(u,a,c));if(y.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(y.isString(t)&&(t=t.trim())&&!Pd(t))i(Ad(t),n);else if(y.isObject(t)&&y.isIterable(t)){let l={},c,u;for(const a of t){if(!y.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?y.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,s);return this}get(t,n){if(t=fn(t),t){const s=y.findKey(this,t);if(s){const r=this[s];if(!n)return r;if(n===!0)return Td(r);if(y.isFunction(n))return n.call(this,r,s);if(y.isRegExp(n))return n.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=fn(t),t){const s=y.findKey(this,t);return!!(s&&this[s]!==void 0&&(!n||Vs(this,this[s],s,n)))}return!1}delete(t,n){const s=this;let r=!1;function o(i){if(i=fn(i),i){const l=y.findKey(s,i);l&&(!n||Vs(s,s[l],l,n))&&(delete s[l],r=!0)}}return y.isArray(t)?t.forEach(o):o(t),r}clear(t){const n=Object.keys(this);let s=n.length,r=!1;for(;s--;){const o=n[s];(!t||Vs(this,this[o],o,t,!0))&&(delete this[o],r=!0)}return r}normalize(t){const n=this,s={};return y.forEach(this,(r,o)=>{const i=y.findKey(s,o);if(i){n[i]=Xn(r),delete n[o];return}const l=t?Nd(o):String(o).trim();l!==o&&delete n[o],n[l]=Xn(r),s[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return y.forEach(this,(s,r)=>{s!=null&&s!==!1&&(n[r]=t&&y.isArray(s)?s.join(", "):s)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const s=new this(t);return n.forEach(r=>s.set(r)),s}static accessor(t){const s=(this[Ho]=this[Ho]={accessors:{}}).accessors,r=this.prototype;function o(i){const l=fn(i);s[l]||(Id(r,i),s[l]=!0)}return y.isArray(t)?t.forEach(o):o(t),this}};je.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);y.reduceDescriptors(je.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(s){this[n]=s}}});y.freezeMethods(je);const Dd="[REDACTED ****]";function Ld(e){if(y.hasOwnProp(e,"toJSON"))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(y.hasOwnProp(t,"toJSON"))return!0;t=Object.getPrototypeOf(t)}return!1}function Fd(e,t){const n=new Set(t.map(o=>String(o).toLowerCase())),s=[],r=o=>{if(o===null||typeof o!="object"||y.isBuffer(o))return o;if(s.indexOf(o)!==-1)return;o instanceof je&&(o=o.toJSON()),s.push(o);let i;if(y.isArray(o))i=[],o.forEach((l,c)=>{const u=r(l);y.isUndefined(u)||(i[c]=u)});else{if(!y.isPlainObject(o)&&Ld(o))return s.pop(),o;i=Object.create(null);for(const[l,c]of Object.entries(o)){const u=n.has(l.toLowerCase())?Dd:r(c);y.isUndefined(u)||(i[l]=u)}}return s.pop(),i};return r(e)}let M=class Ul extends Error{static from(t,n,s,r,o,i){const l=new Ul(t.message,n||t.code,s,r,o);return l.cause=t,l.name=t.name,t.status!=null&&l.status==null&&(l.status=t.status),i&&Object.assign(l,i),l}constructor(t,n,s,r,o){super(t),Object.defineProperty(this,"message",{__proto__:null,value:t,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),s&&(this.config=s),r&&(this.request=r),o&&(this.response=o,this.status=o.status)}toJSON(){const t=this.config,n=t&&y.hasOwnProp(t,"redact")?t.redact:void 0,s=y.isArray(n)&&n.length>0?Fd(t,n):y.toJSONObject(t);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:s,code:this.code,status:this.status}}};M.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";M.ERR_BAD_OPTION="ERR_BAD_OPTION";M.ECONNABORTED="ECONNABORTED";M.ETIMEDOUT="ETIMEDOUT";M.ECONNREFUSED="ECONNREFUSED";M.ERR_NETWORK="ERR_NETWORK";M.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";M.ERR_DEPRECATED="ERR_DEPRECATED";M.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";M.ERR_BAD_REQUEST="ERR_BAD_REQUEST";M.ERR_CANCELED="ERR_CANCELED";M.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";M.ERR_INVALID_URL="ERR_INVALID_URL";M.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const Md=null;function fr(e){return y.isPlainObject(e)||y.isArray(e)}function jl(e){return y.endsWith(e,"[]")?e.slice(0,-2):e}function Ws(e,t,n){return e?e.concat(t).map(function(r,o){return r=jl(r),!n&&o?"["+r+"]":r}).join(n?".":""):t}function Bd(e){return y.isArray(e)&&!e.some(fr)}const Ud=y.toFlatObject(y,{},null,function(t){return/^is[A-Z]/.test(t)});function As(e,t,n){if(!y.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=y.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(E,v){return!y.isUndefined(v[E])});const s=n.metaTokens,r=n.visitor||f,o=n.dots,i=n.indexes,l=n.Blob||typeof Blob<"u"&&Blob,c=n.maxDepth===void 0?100:n.maxDepth,u=l&&y.isSpecCompliantForm(t);if(!y.isFunction(r))throw new TypeError("visitor must be a function");function a(_){if(_===null)return"";if(y.isDate(_))return _.toISOString();if(y.isBoolean(_))return _.toString();if(!u&&y.isBlob(_))throw new M("Blob is not supported. Use a Buffer instead.");return y.isArrayBuffer(_)||y.isTypedArray(_)?u&&typeof Blob=="function"?new Blob([_]):Buffer.from(_):_}function f(_,E,v){let x=_;if(y.isReactNative(t)&&y.isReactNativeBlob(_))return t.append(Ws(v,E,o),a(_)),!1;if(_&&!v&&typeof _=="object"){if(y.endsWith(E,"{}"))E=s?E:E.slice(0,-2),_=JSON.stringify(_);else if(y.isArray(_)&&Bd(_)||(y.isFileList(_)||y.endsWith(E,"[]"))&&(x=y.toArray(_)))return E=jl(E),x.forEach(function(C,j){!(y.isUndefined(C)||C===null)&&t.append(i===!0?Ws([E],j,o):i===null?E:E+"[]",a(C))}),!1}return fr(_)?!0:(t.append(Ws(v,E,o),a(_)),!1)}const p=[],m=Object.assign(Ud,{defaultVisitor:f,convertValue:a,isVisitable:fr});function A(_,E,v=0){if(!y.isUndefined(_)){if(v>c)throw new M("Object is too deeply nested ("+v+" levels). Max depth: "+c,M.ERR_FORM_DATA_DEPTH_EXCEEDED);if(p.indexOf(_)!==-1)throw Error("Circular reference detected in "+E.join("."));p.push(_),y.forEach(_,function(P,C){(!(y.isUndefined(P)||P===null)&&r.call(t,P,y.isString(C)?C.trim():C,E,m))===!0&&A(P,E?E.concat(C):[C],v+1)}),p.pop()}}if(!y.isObject(e))throw new TypeError("data must be an object");return A(e),t}function ko(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(s){return t[s]})}function Lr(e,t){this._pairs=[],e&&As(e,this,t)}const Hl=Lr.prototype;Hl.append=function(t,n){this._pairs.push([t,n])};Hl.toString=function(t){const n=t?function(s){return t.call(this,s,ko)}:ko;return this._pairs.map(function(r){return n(r[0])+"="+n(r[1])},"").join("&")};function jd(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function kl(e,t,n){if(!t)return e;const s=n&&n.encode||jd,r=y.isFunction(n)?{serialize:n}:n,o=r&&r.serialize;let i;if(o?i=o(t,r):i=y.isURLSearchParams(t)?t.toString():new Lr(t,r).toString(s),i){const l=e.indexOf("#");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class qo{constructor(){this.handlers=[]}use(t,n,s){return this.handlers.push({fulfilled:t,rejected:n,synchronous:s?s.synchronous:!1,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){y.forEach(this.handlers,function(s){s!==null&&t(s)})}}const Fr={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},Hd=typeof URLSearchParams<"u"?URLSearchParams:Lr,kd=typeof FormData<"u"?FormData:null,qd=typeof Blob<"u"?Blob:null,Vd={isBrowser:!0,classes:{URLSearchParams:Hd,FormData:kd,Blob:qd},protocols:["http","https","file","blob","url","data"]},Mr=typeof window<"u"&&typeof document<"u",dr=typeof navigator=="object"&&navigator||void 0,Wd=Mr&&(!dr||["ReactNative","NativeScript","NS"].indexOf(dr.product)<0),$d=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Kd=Mr&&window.location.href||"http://localhost",zd=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Mr,hasStandardBrowserEnv:Wd,hasStandardBrowserWebWorkerEnv:$d,navigator:dr,origin:Kd},Symbol.toStringTag,{value:"Module"})),Ie={...zd,...Vd};function Gd(e,t){return As(e,new Ie.classes.URLSearchParams,{visitor:function(n,s,r,o){return Ie.isNode&&y.isBuffer(n)?(this.append(s,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function Jd(e){return y.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Xd(e){const t={},n=Object.keys(e);let s;const r=n.length;let o;for(s=0;s=n.length;return i=!i&&y.isArray(r)?r.length:i,c?(y.hasOwnProp(r,i)?r[i]=y.isArray(r[i])?r[i].concat(s):[r[i],s]:r[i]=s,!l):((!r[i]||!y.isObject(r[i]))&&(r[i]=[]),t(n,s,r[i],o)&&y.isArray(r[i])&&(r[i]=Xd(r[i])),!l)}if(y.isFormData(e)&&y.isFunction(e.entries)){const n={};return y.forEachEntry(e,(s,r)=>{t(Jd(s),r,n,0)}),n}return null}const zt=(e,t)=>e!=null&&y.hasOwnProp(e,t)?e[t]:void 0;function Qd(e,t,n){if(y.isString(e))try{return(t||JSON.parse)(e),y.trim(e)}catch(s){if(s.name!=="SyntaxError")throw s}return(n||JSON.stringify)(e)}const Un={transitional:Fr,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const s=n.getContentType()||"",r=s.indexOf("application/json")>-1,o=y.isObject(t);if(o&&y.isHTMLForm(t)&&(t=new FormData(t)),y.isFormData(t))return r?JSON.stringify(ql(t)):t;if(y.isArrayBuffer(t)||y.isBuffer(t)||y.isStream(t)||y.isFile(t)||y.isBlob(t)||y.isReadableStream(t))return t;if(y.isArrayBufferView(t))return t.buffer;if(y.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){const c=zt(this,"formSerializer");if(s.indexOf("application/x-www-form-urlencoded")>-1)return Gd(t,c).toString();if((l=y.isFileList(t))||s.indexOf("multipart/form-data")>-1){const u=zt(this,"env"),a=u&&u.FormData;return As(l?{"files[]":t}:t,a&&new a,c)}}return o||r?(n.setContentType("application/json",!1),Qd(t)):t}],transformResponse:[function(t){const n=zt(this,"transitional")||Un.transitional,s=n&&n.forcedJSONParsing,r=zt(this,"responseType"),o=r==="json";if(y.isResponse(t)||y.isReadableStream(t))return t;if(t&&y.isString(t)&&(s&&!r||o)){const l=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(t,zt(this,"parseReviver"))}catch(c){if(l)throw c.name==="SyntaxError"?M.from(c,M.ERR_BAD_RESPONSE,this,null,zt(this,"response")):c}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ie.classes.FormData,Blob:Ie.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};y.forEach(["delete","get","head","post","put","patch","query"],e=>{Un.headers[e]={}});function $s(e,t){const n=this||Un,s=t||n,r=je.from(s.headers);let o=s.data;return y.forEach(e,function(l){o=l.call(n,o,r.normalize(),t?t.status:void 0)}),r.normalize(),o}function Vl(e){return!!(e&&e.__CANCEL__)}let jn=class extends M{constructor(t,n,s){super(t??"canceled",M.ERR_CANCELED,n,s),this.name="CanceledError",this.__CANCEL__=!0}};function Wl(e,t,n){const s=n.config.validateStatus;!n.status||!s||s(n.status)?e(n):t(new M("Request failed with status code "+n.status,n.status>=400&&n.status<500?M.ERR_BAD_REQUEST:M.ERR_BAD_RESPONSE,n.config,n.request,n))}function Yd(e){const t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||""}function Zd(e,t){e=e||10;const n=new Array(e),s=new Array(e);let r=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=s[o];i||(i=u),n[r]=c,s[r]=u;let f=o,p=0;for(;f!==r;)p+=n[f++],f=f%e;if(r=(r+1)%e,r===o&&(o=(o+1)%e),u-i{n=a,r=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=s?i(u,a):(r=u,o||(o=setTimeout(()=>{o=null,i(r)},s-f)))},()=>r&&i(r)]}const ls=(e,t,n=3)=>{let s=0;const r=Zd(50,250);return eh(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=l!=null?Math.min(i,l):i,u=Math.max(0,c-s),a=r(u);s=Math.max(s,c);const f={loaded:c,total:l,progress:l?c/l:void 0,bytes:u,rate:a||void 0,estimated:a&&l?(l-c)/a:void 0,event:o,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(f)},n)},Vo=(e,t)=>{const n=e!=null;return[s=>t[0]({lengthComputable:n,total:e,loaded:s}),t[1]]},Wo=e=>(...t)=>y.asap(()=>e(...t)),th=Ie.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ie.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ie.origin),Ie.navigator&&/(msie|trident)/i.test(Ie.navigator.userAgent)):()=>!0,nh=Ie.hasStandardBrowserEnv?{write(e,t,n,s,r,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];y.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),y.isString(s)&&l.push(`path=${s}`),y.isString(r)&&l.push(`domain=${r}`),o===!0&&l.push("secure"),y.isString(i)&&l.push(`SameSite=${i}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.split(";");for(let n=0;ne instanceof je?{...e}:e;function Vt(e,t){t=t||{};const n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function s(u,a,f,p){return y.isPlainObject(u)&&y.isPlainObject(a)?y.merge.call({caseless:p},u,a):y.isPlainObject(a)?y.merge({},a):y.isArray(a)?a.slice():a}function r(u,a,f,p){if(y.isUndefined(a)){if(!y.isUndefined(u))return s(void 0,u,f,p)}else return s(u,a,f,p)}function o(u,a){if(!y.isUndefined(a))return s(void 0,a)}function i(u,a){if(y.isUndefined(a)){if(!y.isUndefined(u))return s(void 0,u)}else return s(void 0,a)}function l(u,a,f){if(y.hasOwnProp(t,f))return s(u,a);if(y.hasOwnProp(e,f))return s(void 0,u)}const c={url:o,method:o,data:o,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,allowedSocketPaths:i,responseEncoding:i,validateStatus:l,headers:(u,a,f)=>r($o(u),$o(a),f,!0)};return y.forEach(Object.keys({...e,...t}),function(a){if(a==="__proto__"||a==="constructor"||a==="prototype")return;const f=y.hasOwnProp(c,a)?c[a]:r,p=y.hasOwnProp(e,a)?e[a]:void 0,m=y.hasOwnProp(t,a)?t[a]:void 0,A=f(p,m,a);y.isUndefined(A)&&f!==l||(n[a]=A)}),n}const oh=["content-type","content-length"];function ih(e,t,n){if(n!=="content-only"){e.set(t);return}Object.entries(t).forEach(([s,r])=>{oh.includes(s.toLowerCase())&&e.set(s,r)})}const lh=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(t,n)=>String.fromCharCode(parseInt(n,16))),Kl=e=>{const t=Vt({},e),n=p=>y.hasOwnProp(t,p)?t[p]:void 0,s=n("data");let r=n("withXSRFToken");const o=n("xsrfHeaderName"),i=n("xsrfCookieName");let l=n("headers");const c=n("auth"),u=n("baseURL"),a=n("allowAbsoluteUrls"),f=n("url");if(t.headers=l=je.from(l),t.url=kl($l(u,f,a),e.params,e.paramsSerializer),c&&l.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?lh(c.password):""))),y.isFormData(s)&&(Ie.hasStandardBrowserEnv||Ie.hasStandardBrowserWebWorkerEnv?l.setContentType(void 0):y.isFunction(s.getHeaders)&&ih(l,s.getHeaders(),n("formDataHeaderPolicy"))),Ie.hasStandardBrowserEnv&&(y.isFunction(r)&&(r=r(t)),r===!0||r==null&&th(t.url))){const m=o&&i&&nh.read(i);m&&l.set(o,m)}return t},ch=typeof XMLHttpRequest<"u",ah=ch&&function(e){return new Promise(function(n,s){const r=Kl(e);let o=r.data;const i=je.from(r.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=r,a,f,p,m,A;function _(){m&&m(),A&&A(),r.cancelToken&&r.cancelToken.unsubscribe(a),r.signal&&r.signal.removeEventListener("abort",a)}let E=new XMLHttpRequest;E.open(r.method.toUpperCase(),r.url,!0),E.timeout=r.timeout;function v(){if(!E)return;const P=je.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),j={data:!l||l==="text"||l==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:P,config:e,request:E};Wl(function(G){n(G),_()},function(G){s(G),_()},j),E=null}"onloadend"in E?E.onloadend=v:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.startsWith("file:"))||setTimeout(v)},E.onabort=function(){E&&(s(new M("Request aborted",M.ECONNABORTED,e,E)),_(),E=null)},E.onerror=function(C){const j=C&&C.message?C.message:"Network Error",oe=new M(j,M.ERR_NETWORK,e,E);oe.event=C||null,s(oe),_(),E=null},E.ontimeout=function(){let C=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const j=r.transitional||Fr;r.timeoutErrorMessage&&(C=r.timeoutErrorMessage),s(new M(C,j.clarifyTimeoutError?M.ETIMEDOUT:M.ECONNABORTED,e,E)),_(),E=null},o===void 0&&i.setContentType(null),"setRequestHeader"in E&&y.forEach(i.toJSON(),function(C,j){E.setRequestHeader(j,C)}),y.isUndefined(r.withCredentials)||(E.withCredentials=!!r.withCredentials),l&&l!=="json"&&(E.responseType=r.responseType),u&&([p,A]=ls(u,!0),E.addEventListener("progress",p)),c&&E.upload&&([f,m]=ls(c),E.upload.addEventListener("progress",f),E.upload.addEventListener("loadend",m)),(r.cancelToken||r.signal)&&(a=P=>{E&&(s(!P||P.type?new jn(null,e,E):P),E.abort(),_(),E=null)},r.cancelToken&&r.cancelToken.subscribe(a),r.signal&&(r.signal.aborted?a():r.signal.addEventListener("abort",a)));const x=Yd(r.url);if(x&&!Ie.protocols.includes(x)){s(new M("Unsupported protocol "+x+":",M.ERR_BAD_REQUEST,e));return}E.send(o||null)})},uh=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let s=new AbortController,r;const o=function(u){if(!r){r=!0,l();const a=u instanceof Error?u:this.reason;s.abort(a instanceof M?a:new jn(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new M(`timeout of ${t}ms exceeded`,M.ETIMEDOUT))},t);const l=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(o):u.removeEventListener("abort",o)}),e=null)};e.forEach(u=>u.addEventListener("abort",o));const{signal:c}=s;return c.unsubscribe=()=>y.asap(l),c}},fh=function*(e,t){let n=e.byteLength;if(n{const r=dh(e,t);let o=0,i,l=c=>{i||(i=!0,s&&s(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await r.next();if(u){l(),c.close();return}let f=a.byteLength;if(n){let p=o+=f;n(p)}c.enqueue(new Uint8Array(a))}catch(u){throw l(u),u}},cancel(c){return l(c),r.return()}},{highWaterMark:2})};function ph(e){if(!e||typeof e!="string"||!e.startsWith("data:"))return 0;const t=e.indexOf(",");if(t<0)return 0;const n=e.slice(5,t),s=e.slice(t+1);if(/;base64/i.test(n)){let i=s.length;const l=s.length;for(let m=0;m=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102)&&(_>=48&&_<=57||_>=65&&_<=70||_>=97&&_<=102)&&(i-=2,m+=2)}let c=0,u=l-1;const a=m=>m>=2&&s.charCodeAt(m-2)===37&&s.charCodeAt(m-1)===51&&(s.charCodeAt(m)===68||s.charCodeAt(m)===100);u>=0&&(s.charCodeAt(u)===61?(c++,u--):a(u)&&(c++,u-=3)),c===1&&u>=0&&(s.charCodeAt(u)===61||a(u))&&c++;const p=Math.floor(i/4)*3-(c||0);return p>0?p:0}if(typeof Buffer<"u"&&typeof Buffer.byteLength=="function")return Buffer.byteLength(s,"utf8");let o=0;for(let i=0,l=s.length;i=55296&&c<=56319&&i+1=56320&&u<=57343?(o+=4,i++):o+=3}else o+=3}return o}const Br="1.16.0",zo=64*1024,{isFunction:$n}=y,Go=(e,...t)=>{try{return!!e(...t)}catch{return!1}},mh=e=>{const t=y.global??globalThis,{ReadableStream:n,TextEncoder:s}=t;e=y.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);const{fetch:r,Request:o,Response:i}=e,l=r?$n(r):typeof fetch=="function",c=$n(o),u=$n(i);if(!l)return!1;const a=l&&$n(n),f=l&&(typeof s=="function"?(v=>x=>v.encode(x))(new s):async v=>new Uint8Array(await new o(v).arrayBuffer())),p=c&&a&&Go(()=>{let v=!1;const x=new o(Ie.origin,{body:new n,method:"POST",get duplex(){return v=!0,"half"}}),P=x.headers.has("Content-Type");return x.body!=null&&x.body.cancel(),v&&!P}),m=u&&a&&Go(()=>y.isReadableStream(new i("").body)),A={stream:m&&(v=>v.body)};l&&["text","arrayBuffer","blob","formData","stream"].forEach(v=>{!A[v]&&(A[v]=(x,P)=>{let C=x&&x[v];if(C)return C.call(x);throw new M(`Response type '${v}' is not supported`,M.ERR_NOT_SUPPORT,P)})});const _=async v=>{if(v==null)return 0;if(y.isBlob(v))return v.size;if(y.isSpecCompliantForm(v))return(await new o(Ie.origin,{method:"POST",body:v}).arrayBuffer()).byteLength;if(y.isArrayBufferView(v)||y.isArrayBuffer(v))return v.byteLength;if(y.isURLSearchParams(v)&&(v=v+""),y.isString(v))return(await f(v)).byteLength},E=async(v,x)=>{const P=y.toFiniteNumber(v.getContentLength());return P??_(x)};return async v=>{let{url:x,method:P,data:C,signal:j,cancelToken:oe,timeout:G,onDownloadProgress:$,onUploadProgress:K,responseType:X,headers:ae,withCredentials:Ee="same-origin",fetchOptions:Ae,maxContentLength:Re,maxBodyLength:Ke}=Kl(v);const Z=y.isNumber(Re)&&Re>-1,V=y.isNumber(Ke)&&Ke>-1;let J=r||fetch;X=X?(X+"").toLowerCase():"text";let we=uh([j,oe&&oe.toAbortSignal()],G),pe=null;const Se=we&&we.unsubscribe&&(()=>{we.unsubscribe()});let Oe;try{if(Z&&typeof x=="string"&&x.startsWith("data:")&&ph(x)>Re)throw new M("maxContentLength size of "+Re+" exceeded",M.ERR_BAD_RESPONSE,v,pe);if(V&&P!=="get"&&P!=="head"){const T=await E(ae,C);if(typeof T=="number"&&isFinite(T)&&T>Ke)throw new M("Request body larger than maxBodyLength limit",M.ERR_BAD_REQUEST,v,pe)}if(K&&p&&P!=="get"&&P!=="head"&&(Oe=await E(ae,C))!==0){let T=new o(x,{method:"POST",body:C,duplex:"half"}),I;if(y.isFormData(C)&&(I=T.headers.get("content-type"))&&ae.setContentType(I),T.body){const[B,z]=Vo(Oe,ls(Wo(K)));C=Ko(T.body,zo,B,z)}}y.isString(Ee)||(Ee=Ee?"include":"omit");const ue=c&&"credentials"in o.prototype;if(y.isFormData(C)){const T=ae.getContentType();T&&/^multipart\/form-data/i.test(T)&&!/boundary=/i.test(T)&&ae.delete("content-type")}ae.set("User-Agent","axios/"+Br,!1);const De={...Ae,signal:we,method:P.toUpperCase(),headers:ae.normalize().toJSON(),body:C,duplex:"half",credentials:ue?Ee:void 0};pe=c&&new o(x,De);let ve=await(c?J(pe,Ae):J(x,De));if(Z){const T=y.toFiniteNumber(ve.headers.get("content-length"));if(T!=null&&T>Re)throw new M("maxContentLength size of "+Re+" exceeded",M.ERR_BAD_RESPONSE,v,pe)}const Te=m&&(X==="stream"||X==="response");if(m&&ve.body&&($||Z||Te&&Se)){const T={};["status","statusText","headers"].forEach(g=>{T[g]=ve[g]});const I=y.toFiniteNumber(ve.headers.get("content-length")),[B,z]=$&&Vo(I,ls(Wo($),!0))||[];let d=0;const h=g=>{if(Z&&(d=g,d>Re))throw new M("maxContentLength size of "+Re+" exceeded",M.ERR_BAD_RESPONSE,v,pe);B&&B(g)};ve=new i(Ko(ve.body,zo,h,()=>{z&&z(),Se&&Se()}),T)}X=X||"text";let b=await A[y.findKey(A,X)||"text"](ve,v);if(Z&&!m&&!Te){let T;if(b!=null&&(typeof b.byteLength=="number"?T=b.byteLength:typeof b.size=="number"?T=b.size:typeof b=="string"&&(T=typeof s=="function"?new s().encode(b).byteLength:b.length)),typeof T=="number"&&T>Re)throw new M("maxContentLength size of "+Re+" exceeded",M.ERR_BAD_RESPONSE,v,pe)}return!Te&&Se&&Se(),await new Promise((T,I)=>{Wl(T,I,{data:b,headers:je.from(ve.headers),status:ve.status,statusText:ve.statusText,config:v,request:pe})})}catch(ue){if(Se&&Se(),we&&we.aborted&&we.reason instanceof M){const De=we.reason;throw De.config=v,pe&&(De.request=pe),ue!==De&&(De.cause=ue),De}throw ue&&ue.name==="TypeError"&&/Load failed|fetch/i.test(ue.message)?Object.assign(new M("Network Error",M.ERR_NETWORK,v,pe,ue&&ue.response),{cause:ue.cause||ue}):M.from(ue,ue&&ue.code,v,pe,ue&&ue.response)}}},gh=new Map,zl=e=>{let t=e&&e.env||{};const{fetch:n,Request:s,Response:r}=t,o=[s,r,n];let i=o.length,l=i,c,u,a=gh;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:mh(t)),a=u;return u};zl();const Ur={http:Md,xhr:ah,fetch:{get:zl}};y.forEach(Ur,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});const Jo=e=>`- ${e}`,yh=e=>y.isFunction(e)||e===null||e===!1;function _h(e,t){e=y.isArray(e)?e:[e];const{length:n}=e;let s,r;const o={};for(let i=0;i`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?i.length>1?`since : +`+i.map(Jo).join(` +`):" "+Jo(i[0]):"as no adapter specified";throw new M("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return r}const Gl={getAdapter:_h,adapters:Ur};function Ks(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new jn(null,e)}function Xo(e){return Ks(e),e.headers=je.from(e.headers),e.data=$s.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Gl.getAdapter(e.adapter||Un.adapter,e)(e).then(function(s){Ks(e),e.response=s;try{s.data=$s.call(e,e.transformResponse,s)}finally{delete e.response}return s.headers=je.from(s.headers),s},function(s){if(!Vl(s)&&(Ks(e),s&&s.response)){e.response=s.response;try{s.response.data=$s.call(e,e.transformResponse,s.response)}finally{delete e.response}s.response.headers=je.from(s.response.headers)}return Promise.reject(s)})}const Os={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Os[e]=function(s){return typeof s===e||"a"+(t<1?"n ":" ")+e}});const Qo={};Os.transitional=function(t,n,s){function r(o,i){return"[Axios v"+Br+"] Transitional option '"+o+"'"+i+(s?". "+s:"")}return(o,i,l)=>{if(t===!1)throw new M(r(i," has been removed"+(n?" in "+n:"")),M.ERR_DEPRECATED);return n&&!Qo[i]&&(Qo[i]=!0,console.warn(r(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};Os.spelling=function(t){return(n,s)=>(console.warn(`${s} is likely a misspelling of ${t}`),!0)};function bh(e,t,n){if(typeof e!="object")throw new M("options must be an object",M.ERR_BAD_OPTION_VALUE);const s=Object.keys(e);let r=s.length;for(;r-- >0;){const o=s[r],i=Object.prototype.hasOwnProperty.call(t,o)?t[o]:void 0;if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new M("option "+o+" must be "+c,M.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new M("Unknown option "+o,M.ERR_BAD_OPTION)}}const Qn={assertOptions:bh,validators:Os},ze=Qn.validators;let qt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new qo,response:new qo}}async request(t,n){try{return await this._request(t,n)}catch(s){if(s instanceof Error){let r={};Error.captureStackTrace?Error.captureStackTrace(r):r=new Error;const o=(()=>{if(!r.stack)return"";const i=r.stack.indexOf(` +`);return i===-1?"":r.stack.slice(i+1)})();try{if(!s.stack)s.stack=o;else if(o){const i=o.indexOf(` +`),l=i===-1?-1:o.indexOf(` +`,i+1),c=l===-1?"":o.slice(l+1);String(s.stack).endsWith(c)||(s.stack+=` +`+o)}}catch{}}throw s}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Vt(this.defaults,n);const{transitional:s,paramsSerializer:r,headers:o}=n;s!==void 0&&Qn.assertOptions(s,{silentJSONParsing:ze.transitional(ze.boolean),forcedJSONParsing:ze.transitional(ze.boolean),clarifyTimeoutError:ze.transitional(ze.boolean),legacyInterceptorReqResOrdering:ze.transitional(ze.boolean)},!1),r!=null&&(y.isFunction(r)?n.paramsSerializer={serialize:r}:Qn.assertOptions(r,{encode:ze.function,serialize:ze.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Qn.assertOptions(n,{baseUrl:ze.spelling("baseURL"),withXsrfToken:ze.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&y.merge(o.common,o[n.method]);o&&y.forEach(["delete","get","head","post","put","patch","query","common"],A=>{delete o[A]}),n.headers=je.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(_){if(typeof _.runWhen=="function"&&_.runWhen(n)===!1)return;c=c&&_.synchronous;const E=n.transitional||Fr;E&&E.legacyInterceptorReqResOrdering?l.unshift(_.fulfilled,_.rejected):l.push(_.fulfilled,_.rejected)});const u=[];this.interceptors.response.forEach(function(_){u.push(_.fulfilled,_.rejected)});let a,f=0,p;if(!c){const A=[Xo.bind(this),void 0];for(A.unshift(...l),A.push(...u),p=A.length,a=Promise.resolve(n);f{if(!s._listeners)return;let o=s._listeners.length;for(;o-- >0;)s._listeners[o](r);s._listeners=null}),this.promise.then=r=>{let o;const i=new Promise(l=>{s.subscribe(l),o=l}).then(r);return i.cancel=function(){s.unsubscribe(o)},i},t(function(o,i,l){s.reason||(s.reason=new jn(o,i,l),n(s.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=s=>{t.abort(s)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Jl(function(r){t=r}),cancel:t}}};function Rh(e){return function(n){return e.apply(null,n)}}function wh(e){return y.isObject(e)&&e.isAxiosError===!0}const hr={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(hr).forEach(([e,t])=>{hr[t]=e});function Xl(e){const t=new qt(e),n=Pl(qt.prototype.request,t);return y.extend(n,qt.prototype,t,{allOwnKeys:!0}),y.extend(n,t,null,{allOwnKeys:!0}),n.create=function(r){return Xl(Vt(e,r))},n}const me=Xl(Un);me.Axios=qt;me.CanceledError=jn;me.CancelToken=Eh;me.isCancel=Vl;me.VERSION=Br;me.toFormData=As;me.AxiosError=M;me.Cancel=me.CanceledError;me.all=function(t){return Promise.all(t)};me.spread=Rh;me.isAxiosError=wh;me.mergeConfig=Vt;me.AxiosHeaders=je;me.formToJSON=e=>ql(y.isHTMLForm(e)?new FormData(e):e);me.getAdapter=Gl.getAdapter;me.HttpStatusCode=hr;me.default=me;const{Axios:Xh,AxiosError:Qh,CanceledError:Yh,isCancel:Zh,CancelToken:ep,VERSION:tp,all:np,Cancel:sp,isAxiosError:rp,spread:op,toFormData:ip,AxiosHeaders:lp,HttpStatusCode:cp,formToJSON:ap,getAdapter:up,mergeConfig:fp,create:dp}=me,ke=me.create({baseURL:"/api"}),Sh={getAll:e=>ke.get("/words",{params:{category:e}}),getDaily:()=>ke.get("/words/daily"),getQuiz:(e=5)=>ke.get("/words/quiz",{params:{count:e}}),getCategories:()=>ke.get("/words/categories")},hp={getAll:e=>ke.get("/phrases",{params:{category:e}}),getDaily:()=>ke.get("/phrases/daily"),getCategories:()=>ke.get("/phrases/categories")},pp={getAll:()=>ke.get("/grammar"),getOne:e=>ke.get(`/grammar/${e}`)},mp={generate:(e=5)=>ke.get("/quiz/generate",{params:{count:e}}),saveResult:e=>ke.post("/quiz/result",e)},Yo={getToday:e=>ke.get("/quest/today",{params:{session:e}}),complete:e=>ke.post("/quest/complete",e),getStreak:e=>ke.get("/quest/streak",{params:{session:e}})},vh=Ou("session",{state:()=>({id:localStorage.getItem("session_id")||(()=>{const e="sess_"+Math.random().toString(36).slice(2);return localStorage.setItem("session_id",e),e})()})}),Ah={class:"container"},Oh={class:"streak-box"},xh={class:"streak-num"},Ch={class:"streak-label"},Th={class:"card",style:{"margin-bottom":"1.5rem"}},Ph={class:"quest-item"},Nh={key:1,class:"badge badge-green",style:{"margin-left":"auto"}},Ih={class:"quest-item"},Dh={key:1,class:"badge badge-green",style:{"margin-left":"auto"}},Lh={class:"quest-item"},Fh={style:{"font-size":"0.82rem",color:"#718096"}},Mh={key:0},Bh={key:1,class:"badge badge-green",style:{"margin-left":"auto"}},Uh={class:"card-grid"},jh={class:"word-en"},Hh={key:0,class:"word-pron"},kh={class:"word-ko"},qh={key:1,class:"word-example"},Vh={style:{color:"#a0aec0"}},Wh={key:0,class:"empty"},$h={__name:"HomeView",setup(e){const t=vh(),n=yn([]),s=yn({word_done:!1,phrase_done:!1,quiz_done:!1,quiz_score:null}),r=yn({current_streak:0,max_streak:0});return Hi(async()=>{const[o,i,l]=await Promise.all([Sh.getDaily(),Yo.getToday(t.id),Yo.getStreak(t.id)]);n.value=o.data,s.value=i.data,r.value=l.data}),(o,i)=>(Fe(),Xe("div",Ah,[ee("div",Oh,[ee("div",xh,"🔥 "+_t(r.value.current_streak),1),ee("div",Ch,"일 연속 학습 중 (최고 "+_t(r.value.max_streak)+"일)",1)]),ee("div",Th,[i[7]||(i[7]=ee("h3",{style:{"margin-bottom":"1rem","font-size":"1rem",color:"#4a5568"}},"오늘의 퀘스트",-1)),ee("div",Ph,[ee("div",{class:Yt(["quest-check",{done:s.value.word_done}])},"✓",2),i[1]||(i[1]=ee("div",null,[ee("div",{style:{"font-weight":"600"}},"단어 학습"),ee("div",{style:{"font-size":"0.82rem",color:"#718096"}},"오늘의 단어 5개 확인하기")],-1)),s.value.word_done?(Fe(),Xe("span",Nh,"완료")):(Fe(),zn(Ne(St),{key:0,to:"/words",class:"btn btn-primary",style:{"margin-left":"auto","font-size":"0.8rem",padding:"0.4rem 0.8rem"}},{default:wt(()=>[...i[0]||(i[0]=[Ye("시작",-1)])]),_:1}))]),ee("div",Ih,[ee("div",{class:Yt(["quest-check",{done:s.value.phrase_done}])},"✓",2),i[3]||(i[3]=ee("div",null,[ee("div",{style:{"font-weight":"600"}},"회화 표현"),ee("div",{style:{"font-size":"0.82rem",color:"#718096"}},"오늘의 표현 3개 확인하기")],-1)),s.value.phrase_done?(Fe(),Xe("span",Dh,"완료")):(Fe(),zn(Ne(St),{key:0,to:"/phrases",class:"btn btn-primary",style:{"margin-left":"auto","font-size":"0.8rem",padding:"0.4rem 0.8rem"}},{default:wt(()=>[...i[2]||(i[2]=[Ye("시작",-1)])]),_:1}))]),ee("div",Lh,[ee("div",{class:Yt(["quest-check",{done:s.value.quiz_done}])},"✓",2),ee("div",null,[i[5]||(i[5]=ee("div",{style:{"font-weight":"600"}},"퀴즈",-1)),ee("div",Fh,[i[4]||(i[4]=Ye("5문제 풀기 ",-1)),s.value.quiz_score!==null?(Fe(),Xe("span",Mh,"("+_t(s.value.quiz_score)+"점)",1)):Vn("",!0)])]),s.value.quiz_done?(Fe(),Xe("span",Bh,"완료")):(Fe(),zn(Ne(St),{key:0,to:"/quiz",class:"btn btn-primary",style:{"margin-left":"auto","font-size":"0.8rem",padding:"0.4rem 0.8rem"}},{default:wt(()=>[...i[6]||(i[6]=[Ye("시작",-1)])]),_:1}))])]),i[9]||(i[9]=ee("h2",{class:"page-title"},"오늘의 단어",-1)),ee("div",Uh,[(Fe(!0),Xe(Qe,null,la(n.value,l=>(Fe(),Xe("div",{key:l.id,class:"card word-card"},[ee("div",jh,_t(l.english),1),l.pronunciation?(Fe(),Xe("div",Hh,"["+_t(l.pronunciation)+"]",1)):Vn("",!0),ee("div",kh,_t(l.korean),1),l.example_en?(Fe(),Xe("div",qh,[Ye(_t(l.example_en),1),i[8]||(i[8]=ee("br",null,null,-1)),ee("span",Vh,_t(l.example_ko),1)])):Vn("",!0)]))),128)),n.value.length?Vn("",!0):(Fe(),Xe("div",Wh,"단어 데이터가 없습니다"))])]))}},Kh=Nf({history:ff(),routes:[{path:"/",component:$h},{path:"/words",component:()=>Wn(()=>import("./WordsView-Cjev8bPi.js"),[])},{path:"/phrases",component:()=>Wn(()=>import("./PhrasesView-Cr7ZmGzr.js"),[])},{path:"/quiz",component:()=>Wn(()=>import("./QuizView-WGudUYtA.js"),[])},{path:"/grammar",component:()=>Wn(()=>import("./GrammarView-dvqX1h4-.js"),[])}]}),jr=yu(Df);jr.use(Eu());jr.use(Kh);jr.mount("#app");export{Qe as F,St as R,ee as a,Vn as b,Xe as c,yn as d,Fe as e,Ye as f,gr as g,be as h,wt as i,Ne as j,mp as k,pp as l,Yt as n,Hi as o,hp as p,Yo as q,la as r,_t as t,vh as u,Sh as w}; diff --git a/dist/assets/index-C5kTBbUm.css b/dist/assets/index-C5kTBbUm.css new file mode 100644 index 0000000..5e7502e --- /dev/null +++ b/dist/assets/index-C5kTBbUm.css @@ -0,0 +1 @@ +*{margin:0;padding:0;box-sizing:border-box}body{font-family:Pretendard,-apple-system,BlinkMacSystemFont,sans-serif;background:#f0f4f8;color:#1a202c;min-height:100vh}#app{min-height:100vh}.nav{background:#2d3748;padding:0 1.5rem;display:flex;align-items:center;gap:.5rem;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px #0003}.nav-logo{color:#68d391;font-weight:700;font-size:1.2rem;padding:1rem 0;margin-right:auto}.nav a{color:#cbd5e0;text-decoration:none;padding:1rem .75rem;font-size:.9rem;border-bottom:3px solid transparent;transition:all .2s}.nav a:hover,.nav a.active{color:#68d391;border-bottom-color:#68d391}.container{max-width:900px;margin:0 auto;padding:2rem 1rem}.page-title{font-size:1.6rem;font-weight:700;margin-bottom:1.5rem;color:#2d3748}.card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000000f;margin-bottom:1rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600}.badge-green{background:#c6f6d5;color:#276749}.badge-blue{background:#bee3f8;color:#2b6cb0}.badge-purple{background:#e9d8fd;color:#553c9a}.badge-orange{background:#feebc8;color:#c05621}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.2rem;border-radius:8px;border:none;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s}.btn-primary{background:#48bb78;color:#fff}.btn-primary:hover{background:#38a169}.btn-secondary{background:#e2e8f0;color:#4a5568}.btn-secondary:hover{background:#cbd5e0}.word-card{transition:transform .2s}.word-card:hover{transform:translateY(-2px)}.word-en{font-size:1.4rem;font-weight:700;color:#2b6cb0}.word-pron{font-size:.85rem;color:#718096;margin:.2rem 0}.word-ko{font-size:1rem;color:#2d3748;margin:.4rem 0}.word-example{font-size:.82rem;color:#718096;border-left:3px solid #bee3f8;padding-left:.6rem;margin-top:.5rem}.streak-box{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px;padding:1.5rem;text-align:center;margin-bottom:1.5rem}.streak-num{font-size:3rem;font-weight:800}.streak-label{font-size:.9rem;opacity:.85}.quest-item{display:flex;align-items:center;gap:1rem;padding:.8rem 0;border-bottom:1px solid #e2e8f0}.quest-item:last-child{border-bottom:none}.quest-check{width:24px;height:24px;border-radius:50%;border:2px solid #cbd5e0;display:flex;align-items:center;justify-content:center;font-size:.8rem}.quest-check.done{background:#48bb78;border-color:#48bb78;color:#fff}.quiz-question{font-size:2rem;font-weight:800;text-align:center;color:#2b6cb0;margin:1.5rem 0}.quiz-sub{text-align:center;color:#718096;margin-bottom:1.5rem}.quiz-choices{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.quiz-choice{padding:1rem;border:2px solid #e2e8f0;border-radius:10px;cursor:pointer;font-size:1rem;background:#fff;transition:all .15s;text-align:center}.quiz-choice:hover:not(:disabled){border-color:#4299e1;background:#ebf8ff}.quiz-choice.correct{border-color:#48bb78;background:#f0fff4;color:#276749}.quiz-choice.wrong{border-color:#fc8181;background:#fff5f5;color:#c53030}.quiz-progress{height:6px;background:#e2e8f0;border-radius:3px;margin-bottom:1.5rem}.quiz-progress-bar{height:100%;background:#48bb78;border-radius:3px;transition:width .3s}.grammar-card{cursor:pointer}.grammar-card:hover{box-shadow:0 4px 16px #0000001a}.grammar-title{font-size:1.1rem;font-weight:700;margin-bottom:.4rem}.grammar-explanation{color:#4a5568;font-size:.9rem;line-height:1.6;margin:.8rem 0}.grammar-example{background:#f7fafc;border-radius:8px;padding:.6rem .8rem;margin:.4rem 0;font-size:.88rem}.grammar-example .en{color:#2b6cb0;font-weight:600}.grammar-example .ko{color:#718096}.empty{text-align:center;padding:3rem;color:#a0aec0}.loading{text-align:center;padding:2rem;color:#718096} diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 0000000..9c08fc8 --- /dev/null +++ b/dist/index.html @@ -0,0 +1,13 @@ + + + + + + English Study + + + + +
+ + diff --git a/index.html b/index.html new file mode 100644 index 0000000..4917b38 --- /dev/null +++ b/index.html @@ -0,0 +1,12 @@ + + + + + + English Study + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..9ed8a62 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1600 @@ +{ + "name": "english-front", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "english-front", + "version": "1.0.0", + "dependencies": { + "axios": "^1.7.0", + "pinia": "^2.1.7", + "vue": "^3.4.0", + "vue-router": "^4.3.0" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.0.0", + "vite": "^5.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz", + "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.3.tgz", + "integrity": "sha512-x35CNW/ANXG3hE/EZpRU8MXX1JDN86hBb2wMGAtltkz7pc6cxgjpy1OMMfDosOQ+2hWqIkag/fGok1Yady9nGw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.3.tgz", + "integrity": "sha512-xw3xtkDApIOGayehp2+Rz4zimfkaX65r4t47iy+ymQB2G4iJCBBfj0ogVg5jpvjpn8UWn/+q9tprxleYeNp3Hw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.3.tgz", + "integrity": "sha512-vo6Y5Qfpx7/5EaamIwi0WqW2+zfiusVihKatLvtN1VFVy3D13uERk/6gZLU1UiHRL6fDXqj/ELIeVRGnvcTE1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.3.tgz", + "integrity": "sha512-D+0QGcZhBzTN82weOnsSlY7V7+RMmPuF1CkbxyMAGE8+ZHeUjyb76ZiWmBlCu//AQQONvxcqRbwZTajZKqjuOw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.3.tgz", + "integrity": "sha512-6HnvHCT7fDyj6R0Ph7A6x8dQS/S38MClRWeDLqc0MdfWkxjiu1HSDYrdPhqSILzjTIC/pnXbbJbo+ft+gy/9hQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.3.tgz", + "integrity": "sha512-KHLgC3WKlUYW3ShFKnnosZDOJ0xjg9zp7au3sIm2bs/tGBeC2ipmvRh/N7JKi0t9Ue20C0dpEshi8WUubg+cnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.3.tgz", + "integrity": "sha512-DV6fJoxEYWJOvaZIsok7KrYl0tPvga5OZ2yvKHNNYyk/2roMLqQAbGhr78EQ5YhHpnhLKJD3S1WFusAkmUuV5g==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.3.tgz", + "integrity": "sha512-mQKoJAzvuOs6F+TZybQO4GOTSMUu7v0WdxEk24krQ/uUxXoPTtHjuaUuPmFhtBcM4K0ons8nrE3JyhTuCFtT/w==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.3.tgz", + "integrity": "sha512-Whjj2qoiJ6+OOJMGptTYazaJvjOJm+iKHpXQM1P3LzGjt7Ff++Tp7nH4N8J/BUA7R9IHfDyx4DJIflifwnbmIA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.3.tgz", + "integrity": "sha512-4YTNHKqGng5+yiZt3mg77nmyuCfmNfX4fPmyUapBcIk+BdwSwmCWGXOUxhXbBEkFHtoN5boLj/5NON+u5QC9tg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.3.tgz", + "integrity": "sha512-SU3kNlhkpI4UqlUc2VXPGK9o886ZsSeGfMAX2ba2b8DKmMXq4AL7KUrkSWVbb7koVqx41Yczx6dx5PNargIrEA==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.3.tgz", + "integrity": "sha512-6lDLl5h4TXpB1mTf2rQWnAk/LcXrx9vBfu/DT5TIPhvMhRWaZ5MxkIc8u4lJAmBo6klTe1ywXIUHFjylW505sg==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.3.tgz", + "integrity": "sha512-BMo8bOw8evlup/8G+cj5xWtPyp93xPdyoSN16Zy90Q2QZ0ZYRhCt6ZJSwbrRzG9HApFabjwj2p25TUPDWrhzqQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.3.tgz", + "integrity": "sha512-E0L8X1dZN1/Rph+5VPF6Xj2G7JJvMACVXtamTJIDrVI44Y3K+G8gQaMEAavbqCGTa16InptiVrX6eM6pmJ+7qA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.3.tgz", + "integrity": "sha512-oZJ/WHaVfHUiRAtmTAeo3DcevNsVvH8mbvodjZy7D5QKvCefO371SiKRpxoDcCxB3PTRTLayWBkvmDQKTcX/sw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.3.tgz", + "integrity": "sha512-Dhbyh7j9FybM3YaTgaHmVALwA8AkUwTPccyCQ79TG9AJUsMQqgN1DDEZNr4+QUfwiWvLDumW5vdwzoeUF+TNxQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.3.tgz", + "integrity": "sha512-cJd1X5XhHHlltkaypz1UcWLA8AcoIi1aWhsvaWDskD1oz2eKCypnqvTQ8ykMNI0RSmm7NkTdSqSSD7zM0xa6Ig==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.3.tgz", + "integrity": "sha512-DAZDBHQfG2oQuhY7mc6I3/qB4LU2fQCjRvxbDwd/Jdvb9fypP4IJ4qmtu6lNjes6B531AI8cg1aKC2di97bUxA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.3.tgz", + "integrity": "sha512-cRxsE8c13mZOh3vP+wLDxpQBRrOHDIGOWyDL93Sy0Ga8y515fBcC2pjUfFwUe5T7tqvTvWbCpg1URM/AXdWIXA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.3.tgz", + "integrity": "sha512-QaWcIgRxqEdQdhJqW4DJctsH6HCmo5vHxY0krHSX4jMtOqfzC+dqDGuHM87bu4H8JBeibWx7jFz+h6/4C8wA5Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.3.tgz", + "integrity": "sha512-AaXwSvUi3QIPtroAUw1t5yHGIyqKEXwH54WUocFolZhpGDruJcs8c+xPNDRn4XiQsS7MEwnYsHW2l0MBLDMkWg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.3.tgz", + "integrity": "sha512-65LAKM/bAWDqKNEelHlcHvm2V+Vfb8C6INFxQXRHCvaVN1rJfwr4NvdP4FyzUaLqWfaCGaadf6UbTm8xJeYfEg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.3.tgz", + "integrity": "sha512-EEM2gyhBF5MFnI6vMKdX1LAosE627RGBzIoGMdLloPZkXrUN0Ckqgr2Qi8+J3zip/8NVVro3/FjB+tjhZUgUHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.3.tgz", + "integrity": "sha512-E5Eb5H/DpxaoXH++Qkv28RcUJboMopmdDUALBczvHMf7hNIxaDZqwY5lK12UK1BHacSmvupoEWGu+n993Z0y1A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.3.tgz", + "integrity": "sha512-hPt/bgL5cE+Qp+/TPHBqptcAgPzgj46mPcg/16zNUmbQk0j+mOEQV/+Lqu8QRtDV3Ek95Q6FeFITpuhl6OTsAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.34.tgz", + "integrity": "sha512-s9cLyK5mLcvZ4Agva5QgRsQyLKvts9WbU9DB6NqiZkkGEdwmcEiylj5Jbwkp680drF/NNCV8OlAJSe+yMLxaJw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@vue/shared": "3.5.34", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.34.tgz", + "integrity": "sha512-EbF/T++k0e2MMZlJsBhzK8Sgwt0HcIPOhzn1CTB/lv6sQcyk+OWf8YeiLxZp3ro7MbbLcAfAJ6sEvjFWuNgUCw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.34", + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.34.tgz", + "integrity": "sha512-D/ihr6uZeIt6r+pVZf46RWT1fAsLFMbUP7k8G1VkiiWexriED9GrX3echHd4Abbt17zjlfiFJ8z7a3BxZOPNjg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@vue/compiler-core": "3.5.34", + "@vue/compiler-dom": "3.5.34", + "@vue/compiler-ssr": "3.5.34", + "@vue/shared": "3.5.34", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.14", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.34.tgz", + "integrity": "sha512-cDtTHKibkThKGHH1SP+WdccquNRYQDFH6rRjQCqT9G2ltFAfoR5pUftpab/z+aM5mW9HLLVQW7hfKKQe/1GBeQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.34", + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/reactivity": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.34.tgz", + "integrity": "sha512-y9XDjCEuBp+98k+UL5dbYkh57AHU4o6cxZedOPXw3bmrZZYLQsVHguGurq7hVrPCSrQtrnz1f9dssyFr+dMXfQ==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.34.tgz", + "integrity": "sha512-mKeBYvu8tcMSLhypAHBmriUFfWXKTCF/23Z4jiCoYK3UtWepkliViNLuR90V9XOyD62mUxs9p1jsrpK3CCGIzw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.34", + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.34.tgz", + "integrity": "sha512-e8kZzERmCwUnBRVsgSQlAfrfU2rGoy0FFKPBXSlfEjc/O3KfA7QP0t1/2ZylrbchjmIKB4dPTd07A6WPr0eOrg==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.34", + "@vue/runtime-core": "3.5.34", + "@vue/shared": "3.5.34", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.34.tgz", + "integrity": "sha512-nHxmJoTrKsmrkbILRhkC9gY1G3moZbJTqCzDd7DOOzG5KH9oeJ0Unqrff5f9v0pW//jES05ZkJcNtfE8JjOIew==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.34", + "@vue/shared": "3.5.34" + }, + "peerDependencies": { + "vue": "3.5.34" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.34.tgz", + "integrity": "sha512-24uqU4OIiX29ryC3MeWid/Xf2fa2EFRUVLb77nRhk+UrTVrh/XiGtFAFmJBAtBRbjwNdsPRP+jj/OL27Eg1NDA==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.0.tgz", + "integrity": "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.5", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/pinia": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.3.1.tgz", + "integrity": "sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.3", + "vue-demi": "^0.14.10" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "typescript": ">=4.4.4", + "vue": "^2.7.0 || ^3.5.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/postcss": { + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", + "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/rollup": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.3.tgz", + "integrity": "sha512-pAQK9HalE84QSm4Po3EmWIZPd3FnjkShVkiMlz1iligWYkWQ7wHYd1PF/T7QZ5TVSD6uSTon5gBVMSM4JfBV+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.3", + "@rollup/rollup-android-arm64": "4.60.3", + "@rollup/rollup-darwin-arm64": "4.60.3", + "@rollup/rollup-darwin-x64": "4.60.3", + "@rollup/rollup-freebsd-arm64": "4.60.3", + "@rollup/rollup-freebsd-x64": "4.60.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.3", + "@rollup/rollup-linux-arm-musleabihf": "4.60.3", + "@rollup/rollup-linux-arm64-gnu": "4.60.3", + "@rollup/rollup-linux-arm64-musl": "4.60.3", + "@rollup/rollup-linux-loong64-gnu": "4.60.3", + "@rollup/rollup-linux-loong64-musl": "4.60.3", + "@rollup/rollup-linux-ppc64-gnu": "4.60.3", + "@rollup/rollup-linux-ppc64-musl": "4.60.3", + "@rollup/rollup-linux-riscv64-gnu": "4.60.3", + "@rollup/rollup-linux-riscv64-musl": "4.60.3", + "@rollup/rollup-linux-s390x-gnu": "4.60.3", + "@rollup/rollup-linux-x64-gnu": "4.60.3", + "@rollup/rollup-linux-x64-musl": "4.60.3", + "@rollup/rollup-openbsd-x64": "4.60.3", + "@rollup/rollup-openharmony-arm64": "4.60.3", + "@rollup/rollup-win32-arm64-msvc": "4.60.3", + "@rollup/rollup-win32-ia32-msvc": "4.60.3", + "@rollup/rollup-win32-x64-gnu": "4.60.3", + "@rollup/rollup-win32-x64-msvc": "4.60.3", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.34.tgz", + "integrity": "sha512-WdLBG9gm02OgJIG9axd5Hpx0TFLdzVgfG2evFFu8Rur5O/IoGc5cMjnjh3tPL6GnRGsYvUhBSKVPYVcxRKpMCA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.34", + "@vue/compiler-sfc": "3.5.34", + "@vue/runtime-dom": "3.5.34", + "@vue/server-renderer": "3.5.34", + "@vue/shared": "3.5.34" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-router": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz", + "integrity": "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..81eb388 --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "name": "english-front", + "version": "1.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "axios": "^1.7.0", + "pinia": "^2.1.7", + "vue": "^3.4.0", + "vue-router": "^4.3.0" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.0.0", + "vite": "^5.0.0" + } +} diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..8899077 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,15 @@ + + + diff --git a/src/api/index.js b/src/api/index.js new file mode 100644 index 0000000..09f21c1 --- /dev/null +++ b/src/api/index.js @@ -0,0 +1,32 @@ +import axios from 'axios' + +const api = axios.create({ baseURL: '/api' }) + +export const wordsApi = { + getAll: (category) => api.get('/words', { params: { category } }), + getDaily: () => api.get('/words/daily'), + getQuiz: (count = 5) => api.get('/words/quiz', { params: { count } }), + getCategories: () => api.get('/words/categories'), +} + +export const phrasesApi = { + getAll: (category) => api.get('/phrases', { params: { category } }), + getDaily: () => api.get('/phrases/daily'), + getCategories: () => api.get('/phrases/categories'), +} + +export const grammarApi = { + getAll: () => api.get('/grammar'), + getOne: (id) => api.get(`/grammar/${id}`), +} + +export const quizApi = { + generate: (count = 5) => api.get('/quiz/generate', { params: { count } }), + saveResult: (data) => api.post('/quiz/result', data), +} + +export const questApi = { + getToday: (session) => api.get('/quest/today', { params: { session } }), + complete: (data) => api.post('/quest/complete', data), + getStreak: (session) => api.get('/quest/streak', { params: { session } }), +} diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..501dee0 --- /dev/null +++ b/src/main.js @@ -0,0 +1,10 @@ +import { createApp } from 'vue' +import { createPinia } from 'pinia' +import App from './App.vue' +import router from './router' +import './style.css' + +const app = createApp(App) +app.use(createPinia()) +app.use(router) +app.mount('#app') diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000..efd9027 --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,13 @@ +import { createRouter, createWebHistory } from 'vue-router' +import HomeView from '../views/HomeView.vue' + +export default createRouter({ + history: createWebHistory(), + routes: [ + { path: '/', component: HomeView }, + { path: '/words', component: () => import('../views/WordsView.vue') }, + { path: '/phrases', component: () => import('../views/PhrasesView.vue') }, + { path: '/quiz', component: () => import('../views/QuizView.vue') }, + { path: '/grammar', component: () => import('../views/GrammarView.vue') }, + ], +}) diff --git a/src/stores/session.js b/src/stores/session.js new file mode 100644 index 0000000..763791b --- /dev/null +++ b/src/stores/session.js @@ -0,0 +1,11 @@ +import { defineStore } from 'pinia' + +export const useSessionStore = defineStore('session', { + state: () => ({ + id: localStorage.getItem('session_id') || (() => { + const id = 'sess_' + Math.random().toString(36).slice(2) + localStorage.setItem('session_id', id) + return id + })(), + }), +}) diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..f1172fb --- /dev/null +++ b/src/style.css @@ -0,0 +1,139 @@ +* { margin: 0; padding: 0; box-sizing: border-box; } + +body { + font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, sans-serif; + background: #f0f4f8; + color: #1a202c; + min-height: 100vh; +} + +#app { min-height: 100vh; } + +.nav { + background: #2d3748; + padding: 0 1.5rem; + display: flex; + align-items: center; + gap: 0.5rem; + position: sticky; + top: 0; + z-index: 100; + box-shadow: 0 2px 8px rgba(0,0,0,0.2); +} + +.nav-logo { color: #68d391; font-weight: 700; font-size: 1.2rem; padding: 1rem 0; margin-right: auto; } + +.nav a { + color: #cbd5e0; + text-decoration: none; + padding: 1rem 0.75rem; + font-size: 0.9rem; + border-bottom: 3px solid transparent; + transition: all 0.2s; +} + +.nav a:hover, .nav a.active { color: #68d391; border-bottom-color: #68d391; } + +.container { max-width: 900px; margin: 0 auto; padding: 2rem 1rem; } + +.page-title { font-size: 1.6rem; font-weight: 700; margin-bottom: 1.5rem; color: #2d3748; } + +.card { + background: white; + border-radius: 12px; + padding: 1.5rem; + box-shadow: 0 2px 8px rgba(0,0,0,0.06); + margin-bottom: 1rem; +} + +.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; } + +.badge { + display: inline-block; + padding: 0.2rem 0.6rem; + border-radius: 999px; + font-size: 0.75rem; + font-weight: 600; +} +.badge-green { background: #c6f6d5; color: #276749; } +.badge-blue { background: #bee3f8; color: #2b6cb0; } +.badge-purple { background: #e9d8fd; color: #553c9a; } +.badge-orange { background: #feebc8; color: #c05621; } + +.btn { + display: inline-flex; + align-items: center; + gap: 0.4rem; + padding: 0.6rem 1.2rem; + border-radius: 8px; + border: none; + cursor: pointer; + font-size: 0.9rem; + font-weight: 600; + transition: all 0.2s; +} +.btn-primary { background: #48bb78; color: white; } +.btn-primary:hover { background: #38a169; } +.btn-secondary { background: #e2e8f0; color: #4a5568; } +.btn-secondary:hover { background: #cbd5e0; } + +.word-card { transition: transform 0.2s; } +.word-card:hover { transform: translateY(-2px); } + +.word-en { font-size: 1.4rem; font-weight: 700; color: #2b6cb0; } +.word-pron { font-size: 0.85rem; color: #718096; margin: 0.2rem 0; } +.word-ko { font-size: 1rem; color: #2d3748; margin: 0.4rem 0; } +.word-example { font-size: 0.82rem; color: #718096; border-left: 3px solid #bee3f8; padding-left: 0.6rem; margin-top: 0.5rem; } + +.streak-box { + background: linear-gradient(135deg, #667eea, #764ba2); + color: white; + border-radius: 12px; + padding: 1.5rem; + text-align: center; + margin-bottom: 1.5rem; +} +.streak-num { font-size: 3rem; font-weight: 800; } +.streak-label { font-size: 0.9rem; opacity: 0.85; } + +.quest-item { + display: flex; + align-items: center; + gap: 1rem; + padding: 0.8rem 0; + border-bottom: 1px solid #e2e8f0; +} +.quest-item:last-child { border-bottom: none; } +.quest-check { width: 24px; height: 24px; border-radius: 50%; border: 2px solid #cbd5e0; display: flex; align-items: center; justify-content: center; font-size: 0.8rem; } +.quest-check.done { background: #48bb78; border-color: #48bb78; color: white; } + +.quiz-question { font-size: 2rem; font-weight: 800; text-align: center; color: #2b6cb0; margin: 1.5rem 0; } +.quiz-sub { text-align: center; color: #718096; margin-bottom: 1.5rem; } +.quiz-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; } +.quiz-choice { + padding: 1rem; + border: 2px solid #e2e8f0; + border-radius: 10px; + cursor: pointer; + font-size: 1rem; + background: white; + transition: all 0.15s; + text-align: center; +} +.quiz-choice:hover:not(:disabled) { border-color: #4299e1; background: #ebf8ff; } +.quiz-choice.correct { border-color: #48bb78; background: #f0fff4; color: #276749; } +.quiz-choice.wrong { border-color: #fc8181; background: #fff5f5; color: #c53030; } + +.quiz-progress { height: 6px; background: #e2e8f0; border-radius: 3px; margin-bottom: 1.5rem; } +.quiz-progress-bar { height: 100%; background: #48bb78; border-radius: 3px; transition: width 0.3s; } + +.grammar-card { cursor: pointer; } +.grammar-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.1); } +.grammar-title { font-size: 1.1rem; font-weight: 700; margin-bottom: 0.4rem; } +.grammar-explanation { color: #4a5568; font-size: 0.9rem; line-height: 1.6; margin: 0.8rem 0; } +.grammar-example { background: #f7fafc; border-radius: 8px; padding: 0.6rem 0.8rem; margin: 0.4rem 0; font-size: 0.88rem; } +.grammar-example .en { color: #2b6cb0; font-weight: 600; } +.grammar-example .ko { color: #718096; } + +.empty { text-align: center; padding: 3rem; color: #a0aec0; } +.loading { text-align: center; padding: 2rem; color: #718096; } diff --git a/src/views/GrammarView.vue b/src/views/GrammarView.vue new file mode 100644 index 0000000..a88a5b0 --- /dev/null +++ b/src/views/GrammarView.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue new file mode 100644 index 0000000..b47d89b --- /dev/null +++ b/src/views/HomeView.vue @@ -0,0 +1,76 @@ + + + diff --git a/src/views/PhrasesView.vue b/src/views/PhrasesView.vue new file mode 100644 index 0000000..cc64b8d --- /dev/null +++ b/src/views/PhrasesView.vue @@ -0,0 +1,46 @@ + + + diff --git a/src/views/QuizView.vue b/src/views/QuizView.vue new file mode 100644 index 0000000..55c6372 --- /dev/null +++ b/src/views/QuizView.vue @@ -0,0 +1,97 @@ + + + diff --git a/src/views/WordsView.vue b/src/views/WordsView.vue new file mode 100644 index 0000000..941fd4f --- /dev/null +++ b/src/views/WordsView.vue @@ -0,0 +1,54 @@ + + + diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..c8bca48 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,13 @@ +import { fileURLToPath, URL } from 'node:url' +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) }, + }, + server: { + proxy: { '/api': 'http://localhost:3011' }, + }, +})