diff --git a/frontend/dist/assets/AdminUsers-D6GzLMgo.js b/frontend/dist/assets/AdminUsers-DQOxPApl.js similarity index 87% rename from frontend/dist/assets/AdminUsers-D6GzLMgo.js rename to frontend/dist/assets/AdminUsers-DQOxPApl.js index 86cbbb6..588f2ed 100644 --- a/frontend/dist/assets/AdminUsers-D6GzLMgo.js +++ b/frontend/dist/assets/AdminUsers-DQOxPApl.js @@ -1 +1 @@ -import{k as x,c as r,a,t,u,i as d,w as n,v as m,C as g,e as _,F as U,n as k,p as f,r as p,o as i,x as V}from"./index-B1lw4PRH.js";const b={class:"card",style:{"margin-bottom":"16px"}},C={class:"row"},h={key:0,class:"error"},B={style:{flex:"1"}},M={class:"badge"},E={__name:"AdminUsers",setup(N){const v=p([]),o=p(""),s=p({name:"",email:"",password:"",role:"user"});async function c(){v.value=(await f.adminListUsers()).users}async function w(){o.value="";try{await f.adminCreateUser({...s.value}),s.value={name:"",email:"",password:"",role:"user"},await c()}catch(y){o.value=y.message}}return x(c),(y,l)=>(i(),r("div",null,[a("h2",null,t(u(d).t("users")),1),a("div",b,[a("h4",null,"+ "+t(u(d).t("create"))+" user",1),a("div",C,[n(a("input",{"onUpdate:modelValue":l[0]||(l[0]=e=>s.value.name=e),placeholder:"Name",style:{flex:"1"}},null,512),[[m,s.value.name]]),n(a("input",{"onUpdate:modelValue":l[1]||(l[1]=e=>s.value.email=e),placeholder:"Email",style:{flex:"1"}},null,512),[[m,s.value.email]]),n(a("input",{"onUpdate:modelValue":l[2]||(l[2]=e=>s.value.password=e),type:"password",placeholder:"Temp password",style:{flex:"1"}},null,512),[[m,s.value.password]]),n(a("select",{"onUpdate:modelValue":l[3]||(l[3]=e=>s.value.role=e),style:{flex:"1"}},[...l[4]||(l[4]=[a("option",{value:"user"},"user",-1),a("option",{value:"admin"},"admin",-1)])],512),[[g,s.value.role]]),a("button",{class:"primary",onClick:w},t(u(d).t("create")),1)]),o.value?(i(),r("div",h,t(o.value),1)):_("",!0)]),(i(!0),r(U,null,k(v.value,e=>(i(),r("div",{class:"card",key:e.id,style:{"margin-bottom":"8px",display:"flex","align-items":"center",gap:"12px"}},[a("strong",B,t(e.name)+" ("+t(e.email)+")",1),a("span",M,t(e.role),1),a("span",{class:V(["badge",e.active?"won":"lost"])},t(e.active?"active":"inactive"),3)]))),128))]))}};export{E as default}; +import{k as x,c as r,a,t,u,i as d,w as n,v as m,z as g,e as _,F as U,p as k,l as f,r as p,o as i,s as V}from"./index-BA-KDOrj.js";const b={class:"card",style:{"margin-bottom":"16px"}},C={class:"row"},h={key:0,class:"error"},B={style:{flex:"1"}},M={class:"badge"},D={__name:"AdminUsers",setup(N){const v=p([]),o=p(""),s=p({name:"",email:"",password:"",role:"user"});async function c(){v.value=(await f.adminListUsers()).users}async function w(){o.value="";try{await f.adminCreateUser({...s.value}),s.value={name:"",email:"",password:"",role:"user"},await c()}catch(y){o.value=y.message}}return x(c),(y,l)=>(i(),r("div",null,[a("h2",null,t(u(d).t("users")),1),a("div",b,[a("h4",null,"+ "+t(u(d).t("create"))+" user",1),a("div",C,[n(a("input",{"onUpdate:modelValue":l[0]||(l[0]=e=>s.value.name=e),placeholder:"Name",style:{flex:"1"}},null,512),[[m,s.value.name]]),n(a("input",{"onUpdate:modelValue":l[1]||(l[1]=e=>s.value.email=e),placeholder:"Email",style:{flex:"1"}},null,512),[[m,s.value.email]]),n(a("input",{"onUpdate:modelValue":l[2]||(l[2]=e=>s.value.password=e),type:"password",placeholder:"Temp password",style:{flex:"1"}},null,512),[[m,s.value.password]]),n(a("select",{"onUpdate:modelValue":l[3]||(l[3]=e=>s.value.role=e),style:{flex:"1"}},[...l[4]||(l[4]=[a("option",{value:"user"},"user",-1),a("option",{value:"admin"},"admin",-1)])],512),[[g,s.value.role]]),a("button",{class:"primary",onClick:w},t(u(d).t("create")),1)]),o.value?(i(),r("div",h,t(o.value),1)):_("",!0)]),(i(!0),r(U,null,k(v.value,e=>(i(),r("div",{class:"card",key:e.id,style:{"margin-bottom":"8px",display:"flex","align-items":"center",gap:"12px"}},[a("strong",B,t(e.name)+" ("+t(e.email)+")",1),a("span",M,t(e.role),1),a("span",{class:V(["badge",e.active?"won":"lost"])},t(e.active?"active":"inactive"),3)]))),128))]))}};export{D as default}; diff --git a/frontend/dist/assets/Analytics-2sy93Xf6.js b/frontend/dist/assets/Analytics-2sy93Xf6.js new file mode 100644 index 0000000..2b9dcf8 --- /dev/null +++ b/frontend/dist/assets/Analytics-2sy93Xf6.js @@ -0,0 +1 @@ +import{_ as i,k as d,l as v,c as o,a as s,t,u as _,i as u,F as c,p as g,r as p,o as n}from"./index-BA-KDOrj.js";const m={class:"row",style:{gap:"16px",margin:"16px 0"}},y={class:"card stat"},f={class:"card stat"},w={style:{color:"var(--green)"}},x={class:"card stat"},h={style:{color:"var(--red)"}},k={class:"card stat"},b={class:"card stat"},A={class:"badge lost"},B={class:"badge won"},L={class:"muted"},F={__name:"Analytics",setup(S){const l=p({overall:{total_sessions:0,wins:0,losses:0,close_rate:0,avg_score:0},trainee_count:0,hardest_personas:[]});return d(async()=>{l.value=await v.analytics()}),(W,a)=>(n(),o("div",null,[s("h2",null,t(_(u).t("analytics")),1),s("div",m,[s("div",y,[a[0]||(a[0]=s("div",null,"Sessions",-1)),s("strong",null,t(l.value.overall.total_sessions),1)]),s("div",f,[a[1]||(a[1]=s("div",null,"Wins",-1)),s("strong",w,t(l.value.overall.wins),1)]),s("div",x,[a[2]||(a[2]=s("div",null,"Losses",-1)),s("strong",h,t(l.value.overall.losses),1)]),s("div",k,[a[3]||(a[3]=s("div",null,"Close rate",-1)),s("strong",null,t(l.value.overall.close_rate)+"%",1)]),s("div",b,[a[4]||(a[4]=s("div",null,"Avg score",-1)),s("strong",null,t(l.value.overall.avg_score),1)])]),s("h3",null,"Trainees: "+t(l.value.trainee_count),1),a[5]||(a[5]=s("h3",null,"Hardest personas",-1)),(n(!0),o(c,null,g(l.value.hardest_personas,(e,r)=>(n(),o("div",{class:"card",key:r,style:{"margin-bottom":"8px"}},[s("strong",null,t(e.persona_name),1),s("span",A,t(e.losses)+"L",1),s("span",B,t(e.wins)+"W",1),s("span",L,"· avg "+t(e.avg_score),1)]))),128))]))}},D=i(F,[["__scopeId","data-v-8828276e"]]);export{D as default}; diff --git a/frontend/dist/assets/Analytics-D4Q7AW2d.js b/frontend/dist/assets/Analytics-D4Q7AW2d.js deleted file mode 100644 index 1fc9567..0000000 --- a/frontend/dist/assets/Analytics-D4Q7AW2d.js +++ /dev/null @@ -1 +0,0 @@ -import{k as i,p as d,c as l,a as s,t as a,u as v,i as _,F as u,n as c,r as p,o as n}from"./index-B1lw4PRH.js";import{_ as g}from"./_plugin-vue_export-helper-DlAUqK2U.js";const m={class:"row",style:{gap:"16px",margin:"16px 0"}},y={class:"card stat"},f={class:"card stat"},w={style:{color:"var(--green)"}},x={class:"card stat"},h={style:{color:"var(--red)"}},k={class:"card stat"},b={class:"card stat"},A={class:"badge lost"},B={class:"badge won"},L={class:"muted"},F={__name:"Analytics",setup(S){const o=p({overall:{total_sessions:0,wins:0,losses:0,close_rate:0,avg_score:0},trainee_count:0,hardest_personas:[]});return i(async()=>{o.value=await d.analytics()}),(W,t)=>(n(),l("div",null,[s("h2",null,a(v(_).t("analytics")),1),s("div",m,[s("div",y,[t[0]||(t[0]=s("div",null,"Sessions",-1)),s("strong",null,a(o.value.overall.total_sessions),1)]),s("div",f,[t[1]||(t[1]=s("div",null,"Wins",-1)),s("strong",w,a(o.value.overall.wins),1)]),s("div",x,[t[2]||(t[2]=s("div",null,"Losses",-1)),s("strong",h,a(o.value.overall.losses),1)]),s("div",k,[t[3]||(t[3]=s("div",null,"Close rate",-1)),s("strong",null,a(o.value.overall.close_rate)+"%",1)]),s("div",b,[t[4]||(t[4]=s("div",null,"Avg score",-1)),s("strong",null,a(o.value.overall.avg_score),1)])]),s("h3",null,"Trainees: "+a(o.value.trainee_count),1),t[5]||(t[5]=s("h3",null,"Hardest personas",-1)),(n(!0),l(u,null,c(o.value.hardest_personas,(e,r)=>(n(),l("div",{class:"card",key:r,style:{"margin-bottom":"8px"}},[s("strong",null,a(e.persona_name),1),s("span",A,a(e.losses)+"L",1),s("span",B,a(e.wins)+"W",1),s("span",L,"· avg "+a(e.avg_score),1)]))),128))]))}},E=g(F,[["__scopeId","data-v-8828276e"]]);export{E as default}; diff --git a/frontend/dist/assets/Chat-D-rkKKd4.js b/frontend/dist/assets/Chat-D-rkKKd4.js deleted file mode 100644 index f7f1202..0000000 --- a/frontend/dist/assets/Chat-D-rkKKd4.js +++ /dev/null @@ -1 +0,0 @@ -import{k as K,p as k,c as t,l as B,m as D,u as l,a as s,t as e,x as C,e as i,j as _,i as n,F,n as I,w as M,v as q,b as E,h as H,r as c,z as J,q as L,o}from"./index-B1lw4PRH.js";import{_ as O}from"./_plugin-vue_export-helper-DlAUqK2U.js";const P={class:"row",style:{"align-items":"center","margin-bottom":"12px"}},R={style:{margin:"0"}},U={key:0,class:"muted"},$=["disabled"],A={key:0,class:"spinner",style:{"margin-right":"4px"}},G={key:0,class:"card task"},Q={key:0},W={key:0,class:"bubble msg-customer muted"},X={key:2,class:"composer"},Y=["disabled","placeholder"],Z=["disabled"],ee={key:3,class:"card debrief"},se={key:0},ae={class:"json"},te={class:"primary",style:{"margin-top":"12px"}},le={__name:"Chat",setup(ne){const N=H(),m=N.params.gid,g=N.params.pid,r=c(null),f=c(!1),v=c([]),p=c(""),d=c(!1),u=c(null),w=c(""),j=c(null);function T(){J(()=>{y.value&&(y.value.scrollTop=y.value.scrollHeight)})}const y=c(null);K(async()=>{r.value=(await k.getPersona(m,g)).persona;const a=await k.chatStart(m,g);j.value=a.session.id,a.session.task&&(w.value=a.session.task),v.value=a.session.messages||[],f.value=!0,v.value.length&&T()});async function V(){if(p.value.trim()){d.value=!0;try{const a=await k.chatSend(m,g,p.value.trim());v.value=a.messages,p.value="",T()}catch(a){alert(a.message)}finally{d.value=!1}}}async function z(){if(confirm(n.t("finish")+"?")){d.value=!0;try{const a=await k.chatFinish(m,g);u.value=a.debrief,v.value=a.session.messages}catch(a){alert(a.message)}finally{d.value=!1}}}return(a,b)=>{const S=L("router-link");return o(),t("div",null,[B(S,{to:`/groups/${l(m)}/personas`,class:"btn-back"},{default:D(()=>[_("← "+e(l(n).t("personas")),1)]),_:1},8,["to"]),s("div",P,[s("h2",R,e(r.value?r.value.name:"..."),1),s("span",{class:C(["badge",r.value&&r.value.channel])},e(r.value?r.value.channel:""),3),r.value?(o(),t("span",U,e(r.value.profession)+" · "+e(r.value.age_group),1)):i("",!0),s("button",{class:"danger",style:{"margin-left":"auto"},onClick:z,disabled:v.value.length===0||!!u.value},[d.value?(o(),t("span",A)):i("",!0),_(e(l(n).t("finish")),1)],8,$)]),f.value?i("",!0):(o(),t("div",G,[s("strong",null,"📣 "+e(l(n).t("sellerInitiated")),1),w.value?(o(),t("div",Q,e(w.value),1)):i("",!0)])),f.value?(o(),t("div",{key:1,class:"thread",ref_key:"thread",ref:y},[(o(!0),t(F,null,I(v.value,(h,x)=>(o(),t("div",{key:x,class:C(["bubble",h.role==="seller"?"msg-seller":"msg-customer"])},e(h.text),3))),128)),d.value?(o(),t("div",W,"...")):i("",!0)],512)):i("",!0),f.value&&!u.value?(o(),t("div",X,[M(s("input",{"onUpdate:modelValue":b[0]||(b[0]=h=>p.value=h),onKeyup:E(V,["enter"]),disabled:d.value,placeholder:l(n).t("send")},null,40,Y),[[q,p.value]]),s("button",{class:"primary",onClick:V,disabled:d.value||!p.value.trim()},e(l(n).t("send")),9,Z)])):i("",!0),u.value?(o(),t("div",ee,[s("h3",null,e(l(n).t("debrief")),1),s("p",null,[s("span",{class:C(["badge",u.value.outcome])},e(u.value.outcome==="won"?l(n).t("won"):l(n).t("lost")),3),_(" — "+e(l(n).t("score"))+": ",1),s("strong",null,e(u.value.score),1)]),s("p",null,[s("strong",null,e(l(n).t("pain"))+":",1),_(" "+e(u.value.pain||"—"),1)]),s("p",null,[s("strong",null,e(l(n).t("why"))+":",1),_(" "+e(u.value.why),1)]),u.value.coaching&&u.value.coaching.length?(o(),t("div",se,[b[1]||(b[1]=s("strong",null,"Coaching:",-1)),s("ul",null,[(o(!0),t(F,null,I(u.value.coaching,(h,x)=>(o(),t("li",{key:x},e(h),1))),128))])])):i("",!0),s("details",null,[s("summary",null,e(l(n).t("reveal")),1),s("pre",ae,e(JSON.stringify(u.value.revealed_persona,null,2)),1)]),B(S,{to:"/"},{default:D(()=>[s("button",te,e(l(n).t("dashboard")),1)]),_:1})])):i("",!0)])}}},re=O(le,[["__scopeId","data-v-4f54526a"]]);export{re as default}; diff --git a/frontend/dist/assets/Chat-DWAKiJ5k.js b/frontend/dist/assets/Chat-DWAKiJ5k.js new file mode 100644 index 0000000..293ec5c --- /dev/null +++ b/frontend/dist/assets/Chat-DWAKiJ5k.js @@ -0,0 +1 @@ +import{_ as M,k as q,l as k,c as t,m as B,n as D,u as l,a as s,t as e,s as C,e as i,j as m,i as n,F,p as I,w as z,v as E,b as H,h as J,r as c,y as L,q as O,o}from"./index-BA-KDOrj.js";const P={class:"row",style:{"align-items":"center","margin-bottom":"12px"}},R={style:{margin:"0"}},U={key:0,class:"muted"},$=["disabled"],A={key:0,class:"spinner",style:{"margin-right":"4px"}},G={key:0,class:"card task"},Q={key:0},W={key:0,class:"bubble msg-customer muted"},X={key:2,class:"composer"},Y=["disabled","placeholder"],Z=["disabled"],ee={key:3,class:"card debrief"},se={key:0},ae={class:"json"},te={class:"primary",style:{"margin-top":"12px"}},le={__name:"Chat",setup(ne){const N=J(),_=N.params.gid,g=N.params.pid,r=c(null),f=c(!1),v=c([]),p=c(""),d=c(!1),u=c(null),w=c(""),j=c(null);function T(){L(()=>{y.value&&(y.value.scrollTop=y.value.scrollHeight)})}const y=c(null);q(async()=>{r.value=(await k.getPersona(_,g)).persona;const a=await k.chatStart(_,g);j.value=a.session.id,a.session.task&&(w.value=a.session.task),v.value=a.session.messages||[],f.value=!0,v.value.length&&T()});async function V(){if(p.value.trim()){d.value=!0;try{const a=await k.chatSend(_,g,p.value.trim());v.value=a.messages,p.value="",T()}catch(a){alert(a.message)}finally{d.value=!1}}}async function K(){if(confirm(n.t("finish")+"?")){d.value=!0;try{const a=await k.chatFinish(_,g);u.value=a.debrief,v.value=a.session.messages}catch(a){alert(a.message)}finally{d.value=!1}}}return(a,b)=>{const S=O("router-link");return o(),t("div",null,[B(S,{to:`/groups/${l(_)}/personas`,class:"btn-back"},{default:D(()=>[m("← "+e(l(n).t("personas")),1)]),_:1},8,["to"]),s("div",P,[s("h2",R,e(r.value?r.value.name:"..."),1),s("span",{class:C(["badge",r.value&&r.value.channel])},e(r.value?r.value.channel:""),3),r.value?(o(),t("span",U,e(r.value.profession)+" · "+e(r.value.age_group),1)):i("",!0),s("button",{class:"danger",style:{"margin-left":"auto"},onClick:K,disabled:v.value.length===0||!!u.value},[d.value?(o(),t("span",A)):i("",!0),m(e(l(n).t("finish")),1)],8,$)]),f.value?i("",!0):(o(),t("div",G,[s("strong",null,"📣 "+e(l(n).t("sellerInitiated")),1),w.value?(o(),t("div",Q,e(w.value),1)):i("",!0)])),f.value?(o(),t("div",{key:1,class:"thread",ref_key:"thread",ref:y},[(o(!0),t(F,null,I(v.value,(h,x)=>(o(),t("div",{key:x,class:C(["bubble",h.role==="seller"?"msg-seller":"msg-customer"])},e(h.text),3))),128)),d.value?(o(),t("div",W,"...")):i("",!0)],512)):i("",!0),f.value&&!u.value?(o(),t("div",X,[z(s("input",{"onUpdate:modelValue":b[0]||(b[0]=h=>p.value=h),onKeyup:H(V,["enter"]),disabled:d.value,placeholder:l(n).t("send")},null,40,Y),[[E,p.value]]),s("button",{class:"primary",onClick:V,disabled:d.value||!p.value.trim()},e(l(n).t("send")),9,Z)])):i("",!0),u.value?(o(),t("div",ee,[s("h3",null,e(l(n).t("debrief")),1),s("p",null,[s("span",{class:C(["badge",u.value.outcome])},e(u.value.outcome==="won"?l(n).t("won"):l(n).t("lost")),3),m(" — "+e(l(n).t("score"))+": ",1),s("strong",null,e(u.value.score),1)]),s("p",null,[s("strong",null,e(l(n).t("pain"))+":",1),m(" "+e(u.value.pain||"—"),1)]),s("p",null,[s("strong",null,e(l(n).t("why"))+":",1),m(" "+e(u.value.why),1)]),u.value.coaching&&u.value.coaching.length?(o(),t("div",se,[b[1]||(b[1]=s("strong",null,"Coaching:",-1)),s("ul",null,[(o(!0),t(F,null,I(u.value.coaching,(h,x)=>(o(),t("li",{key:x},e(h),1))),128))])])):i("",!0),s("details",null,[s("summary",null,e(l(n).t("reveal")),1),s("pre",ae,e(JSON.stringify(u.value.revealed_persona,null,2)),1)]),B(S,{to:"/"},{default:D(()=>[s("button",te,e(l(n).t("dashboard")),1)]),_:1})])):i("",!0)])}}},ue=M(le,[["__scopeId","data-v-4f54526a"]]);export{ue as default}; diff --git a/frontend/dist/assets/Dashboard-Btd0pap_.js b/frontend/dist/assets/Dashboard-Btd0pap_.js new file mode 100644 index 0000000..1e1db4f --- /dev/null +++ b/frontend/dist/assets/Dashboard-Btd0pap_.js @@ -0,0 +1 @@ +import{_ as k,k as v,l as g,c as r,a as t,t as e,u as s,i as a,f as d,m as c,n as l,e as u,F as f,p as x,r as y,q as b,o,s as w,x as h}from"./index-BA-KDOrj.js";const A={class:"row",style:{"margin-bottom":"16px"}},B={style:{margin:"0"}},N={key:0,style:{"margin-left":"auto"}},C={class:"primary"},D={key:0,class:"row",style:{gap:"16px","margin-bottom":"20px"}},V={class:"card link-card"},F={class:"card link-card"},P={key:1,class:"row",style:{gap:"16px","margin-bottom":"20px"}},$={class:"card link-card"},j={class:"card link-card"},q={class:"card link-card"},z={key:2,class:"card",style:{"min-height":"120px"}},E={key:3,class:"card empty-state"},G={key:0},I={key:1},L={class:"grid"},M={class:"row",style:{"justify-content":"space-between"}},S={class:"muted",style:{margin:"6px 0 12px"}},T={class:"primary"},H={__name:"Dashboard",setup(J){const _=y([]),p=y(!0);return v(async()=>{try{_.value=(await g.listGroups()).groups}finally{p.value=!1}}),(K,m)=>{const i=b("router-link");return o(),r("div",null,[t("div",A,[t("h2",B,e(s(a).t("dashboard")),1),s(d).isAdmin?(o(),r("div",N,[c(i,{to:"/admin/new-group"},{default:l(()=>[t("button",C,e(s(a).t("groupBuilder"))+" +",1)]),_:1})])):u("",!0)]),s(d).isAdmin?(o(),r("div",D,[c(i,{to:"/admin/users",style:{"text-decoration":"none"}},{default:l(()=>[t("div",V,"👥 "+e(s(a).t("users")),1)]),_:1}),c(i,{to:"/admin/analytics",style:{"text-decoration":"none"}},{default:l(()=>[t("div",F,"📊 "+e(s(a).t("analytics")),1)]),_:1})])):u("",!0),s(d).role==="user"?(o(),r("div",P,[c(i,{to:"/my/sessions",style:{"text-decoration":"none"}},{default:l(()=>[t("div",$,"🎯 "+e(s(a).t("myTraining")),1)]),_:1}),c(i,{to:"/my/weak-areas",style:{"text-decoration":"none"}},{default:l(()=>[t("div",j,"⚠️ "+e(s(a).t("weakAreas")),1)]),_:1}),c(i,{to:"/my/generate",style:{"text-decoration":"none"}},{default:l(()=>[t("div",q,"✨ "+e(s(a).t("generatePersona")),1)]),_:1})])):u("",!0),t("h3",null,e(s(a).t("groups")),1),p.value?(o(),r("div",z,[...m[0]||(m[0]=[t("div",{class:"skeleton",style:{height:"60px"}},null,-1),t("div",{class:"skeleton",style:{height:"60px","margin-top":"10px"}},null,-1)])])):_.value.length===0?(o(),r("div",E,[t("strong",null,e(s(d).isAdmin?"No persona groups yet":"No groups available"),1),s(d).isAdmin?(o(),r("span",G,e(s(a).t("groupBuilder"))+" to start.",1)):(o(),r("span",I,"Ask an admin to create a group."))])):u("",!0),t("div",L,[(o(!0),r(f,null,x(_.value,n=>(o(),r("div",{key:n.id,class:"card group-card lift"},[t("div",M,[t("strong",null,e(n.title),1),t("span",{class:w(["badge",n.status])},e(n.status),3)]),t("div",S,e(n.sales_kit&&n.sales_kit.productName||n.input&&n.input.product||""),1),s(d).isAdmin?(o(),h(i,{key:0,to:`/admin/groups/${n.id}/edit`},{default:l(()=>[t("button",null,e(s(a).t("personas"))+" / "+e(s(a).t("create")),1)]),_:1},8,["to"])):n.status==="ready"?(o(),h(i,{key:1,to:`/groups/${n.id}/personas`},{default:l(()=>[t("button",T,e(s(a).t("selectPersona")),1)]),_:1},8,["to"])):u("",!0)]))),128))])])}}},Q=k(H,[["__scopeId","data-v-559fb44c"]]);export{Q as default}; diff --git a/frontend/dist/assets/Dashboard-DD-9mkhT.css b/frontend/dist/assets/Dashboard-DD-9mkhT.css new file mode 100644 index 0000000..e75d54e --- /dev/null +++ b/frontend/dist/assets/Dashboard-DD-9mkhT.css @@ -0,0 +1 @@ +.grid[data-v-559fb44c]{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.group-card[data-v-559fb44c]{display:flex;flex-direction:column}.group-card a[data-v-559fb44c]{margin-top:auto}.link-card[data-v-559fb44c]{text-align:center;min-width:150px} diff --git a/frontend/dist/assets/Dashboard-DYRZN6Ut.js b/frontend/dist/assets/Dashboard-DYRZN6Ut.js deleted file mode 100644 index 3ebcb3b..0000000 --- a/frontend/dist/assets/Dashboard-DYRZN6Ut.js +++ /dev/null @@ -1 +0,0 @@ -import{k as T,c as o,a as s,t as e,u as i,i as r,f as V,l as A,m as B,e as p,w,v as k,F as y,n as C,p as F,q as S,r as c,o as n}from"./index-B1lw4PRH.js";const W={class:"row",style:{"margin-bottom":"16px","align-items":"center"}},q={style:{margin:"0"}},M={class:"muted",style:{margin:"4px 0 0","font-size":"13px"}},N={key:0,style:{"margin-left":"auto"}},P={class:"primary"},U={class:"filter-bar"},z={key:0,class:"card",style:{"min-height":"120px"}},j={class:"stat-grid",style:{"margin-bottom":"20px"}},E={class:"stat-card"},H={class:"stat-value"},Q={class:"stat-card"},R={class:"stat-value",style:{color:"var(--green)"}},$={class:"stat-card"},G={class:"stat-value",style:{color:"var(--red)"}},I={class:"stat-card"},J={class:"stat-value"},K={class:"stat-card"},O={class:"stat-value"},X={class:"stat-card"},Y={class:"stat-value",style:{color:"var(--accent)"}},Z={class:"card",style:{padding:"8px 20px"}},ss={style:{width:"100%","border-collapse":"collapse"}},ts={style:{padding:"8px 0","font-weight":"600"}},es={style:{color:"var(--green)"}},as={style:{color:"var(--red)"}},ls={key:0},os={colspan:"5",class:"muted",style:{padding:"12px 0"}},ns={class:"row",style:{"justify-content":"space-between","align-items":"center"}},is={class:"row",style:{gap:"6px"}},rs={class:"badge won"},ds={class:"badge lost"},us={class:"badge not_tried"},vs={key:0,class:"card empty-state"},ps={__name:"Dashboard",setup(cs){const l=c({overall:{total_sessions:0,wins:0,losses:0,close_rate:0,avg_score:0},trainee_count:0,hardest_personas:[],per_user:[]}),d=c(""),u=c(""),_=c(!0);async function m(){_.value=!0;try{const v=new URLSearchParams;d.value&&v.set("from",d.value),u.value&&v.set("to",u.value);const t=v.toString();l.value=await F.analyticsWithQuery(t?`?${t}`:"")}finally{_.value=!1}}return T(m),(v,t)=>{var g,h,x,b,f;const D=S("router-link");return n(),o("div",null,[s("div",W,[s("div",null,[s("h2",q,e(i(r).t("tabAdminDash")),1),s("p",M,e(i(r).t("analytics")),1)]),i(V).isAdmin?(n(),o("div",N,[A(D,{to:"/admin/new-group"},{default:B(()=>[s("button",P,"+ "+e(i(r).t("groupBuilder")),1)]),_:1})])):p("",!0)]),s("div",U,[t[2]||(t[2]=s("label",{style:{margin:"0"}},"From",-1)),w(s("input",{type:"date","onUpdate:modelValue":t[0]||(t[0]=a=>d.value=a)},null,512),[[k,d.value]]),t[3]||(t[3]=s("label",{style:{margin:"0"}},"To",-1)),w(s("input",{type:"date","onUpdate:modelValue":t[1]||(t[1]=a=>u.value=a)},null,512),[[k,u.value]]),s("button",{class:"primary",onClick:m,style:{"min-height":"44px"}},"Apply")]),_.value?(n(),o("div",z,[...t[4]||(t[4]=[s("div",{class:"skeleton",style:{height:"60px"}},null,-1),s("div",{class:"skeleton",style:{height:"60px","margin-top":"10px"}},null,-1)])])):(n(),o(y,{key:1},[s("div",j,[s("div",E,[t[5]||(t[5]=s("div",{class:"stat-label"},"Sessions",-1)),s("div",H,e(((g=l.value.overall)==null?void 0:g.total_sessions)||0),1)]),s("div",Q,[t[6]||(t[6]=s("div",{class:"stat-label"},"Wins",-1)),s("div",R,e(((h=l.value.overall)==null?void 0:h.wins)||0),1)]),s("div",$,[t[7]||(t[7]=s("div",{class:"stat-label"},"Losses",-1)),s("div",G,e(((x=l.value.overall)==null?void 0:x.losses)||0),1)]),s("div",I,[t[8]||(t[8]=s("div",{class:"stat-label"},"Close rate",-1)),s("div",J,e((b=l.value.overall)==null?void 0:b.close_rate)+"%",1)]),s("div",K,[t[9]||(t[9]=s("div",{class:"stat-label"},"Avg score",-1)),s("div",O,e((f=l.value.overall)==null?void 0:f.avg_score),1)]),s("div",X,[t[10]||(t[10]=s("div",{class:"stat-label"},"Trainees",-1)),s("div",Y,e(l.value.trainee_count||0),1)])]),t[12]||(t[12]=s("h3",{style:{margin:"20px 0 12px"}},"Per trainee",-1)),s("div",Z,[s("table",ss,[t[11]||(t[11]=s("thead",null,[s("tr",{class:"muted",style:{"font-size":"12px","text-align":"left"}},[s("th",{style:{padding:"8px 0"}},"Trainee"),s("th",null,"Played"),s("th",null,"Won"),s("th",null,"Lost"),s("th",null,"Close %")])],-1)),s("tbody",null,[(n(!0),o(y,null,C(l.value.per_user||[],a=>(n(),o("tr",{key:a.user_id,style:{"border-top":"1px solid var(--border)"}},[s("td",ts,e(a.name),1),s("td",null,e(a.sessions),1),s("td",es,e(a.wins),1),s("td",as,e(a.losses),1),s("td",null,e(a.sessions?Math.round(a.wins/a.sessions*100):0)+"%",1)]))),128)),(l.value.per_user||[]).length?p("",!0):(n(),o("tr",ls,[s("td",os,e(i(r).t("noData")),1)]))])])]),t[13]||(t[13]=s("h3",{style:{margin:"20px 0 12px"}},"Hardest personas",-1)),(n(!0),o(y,null,C(l.value.hardest_personas||[],(a,L)=>(n(),o("div",{class:"card",key:L,style:{"margin-bottom":"8px"}},[s("div",ns,[s("strong",null,e(a.persona_name),1),s("div",is,[s("span",rs,e(a.wins)+"W",1),s("span",ds,e(a.losses)+"L",1),s("span",us,"avg "+e(a.avg_score),1)])])]))),128)),(l.value.hardest_personas||[]).length?p("",!0):(n(),o("div",vs,[s("strong",null,e(i(r).t("noData")),1)]))],64))])}}};export{ps as default}; diff --git a/frontend/dist/assets/GenPersona-C6rMCac6.js b/frontend/dist/assets/GenPersona-C6rMCac6.js deleted file mode 100644 index 1b052df..0000000 --- a/frontend/dist/assets/GenPersona-C6rMCac6.js +++ /dev/null @@ -1 +0,0 @@ -import{r as l,k as x,c as r,a as e,t,u as m,i as v,x as p,F as k,w as C,v as P,e as M,n as N,h as V,p as w,q as $,o as u,l as B,m as D}from"./index-B1lw4PRH.js";import{_ as G}from"./_plugin-vue_export-helper-DlAUqK2U.js";const I={class:"card",style:{"margin-bottom":"16px"}},T={class:"row"},q={key:1,class:"muted"},z=["disabled"],E={key:2,class:"error"},F={class:"grid"},L={class:"muted"},R={class:"primary",style:{width:"100%"}},S={__name:"GenPersona",setup(U){const b=V(),o=l(b.query.mode==="weak"?"weak-area":"manual"),i=l(""),d=l(!1),c=l(""),y=l([]),g=l(null);async function _(){const n=await w.myPersonas();g.value=n.group.id,y.value=n.personas}x(_);async function f(){d.value=!0,c.value="";try{const n=o.value==="weak-area"?{mode:"weak-area",spec:{}}:{mode:"manual",spec:{description:i.value}};await w.generatePersona(n),await _()}catch(n){c.value=n.message}finally{d.value=!1}}return(n,a)=>{const h=$("router-link");return u(),r("div",null,[e("h2",null,t(m(v).t("generatePersona")),1),e("div",I,[a[4]||(a[4]=e("label",null,"Mode",-1)),e("div",T,[e("button",{class:p({active:o.value==="manual"}),onClick:a[0]||(a[0]=s=>o.value="manual")},"✏️ "+t(m(v).t("manual")),3),e("button",{class:p({active:o.value==="weak-area"}),onClick:a[1]||(a[1]=s=>o.value="weak-area")},"🔒 Weak-area lock",2)]),o.value==="manual"?(u(),r(k,{key:0},[a[3]||(a[3]=e("label",null,"Describe the persona you want to practice against",-1)),C(e("textarea",{"onUpdate:modelValue":a[2]||(a[2]=s=>i.value=s),rows:"4",placeholder:"e.g. a price-hardball restaurant owner on LINE who stalls when I bring up costs"},null,512),[[P,i.value]])],64)):(u(),r("p",q,"The system will analyze your losses and auto-generate a harder persona targeting your weak points.")),e("button",{class:"primary",style:{"margin-top":"16px"},disabled:d.value||o.value==="manual"&&!i.value.trim(),onClick:f},t(d.value?"...":m(v).t("generatePersona")),9,z),c.value?(u(),r("div",E,t(c.value),1)):M("",!0)]),a[5]||(a[5]=e("h3",null,"My personas",-1)),e("div",F,[(u(!0),r(k,null,N(y.value,s=>(u(),r("div",{key:s.id,class:"card pcard"},[e("strong",null,t(s.name),1),e("span",{class:p(["badge",s.tier])},"Tier "+t(s.tier),3),e("div",L,t(s.profession)+" · "+t(s.age_group),1),B(h,{to:`/groups/${g.value}/chat/${s.id}`,style:{"margin-top":"auto"}},{default:D(()=>[e("button",R,t(m(v).t("chat")),1)]),_:1},8,["to"])]))),128))])])}}},A=G(S,[["__scopeId","data-v-d299d1b3"]]);export{A as default}; diff --git a/frontend/dist/assets/GenPersona-DWlMmhuC.js b/frontend/dist/assets/GenPersona-DWlMmhuC.js new file mode 100644 index 0000000..b6e1604 --- /dev/null +++ b/frontend/dist/assets/GenPersona-DWlMmhuC.js @@ -0,0 +1 @@ +import{_ as x,r as l,k as C,c as r,a as e,t,u as m,i as v,s as p,F as k,w as P,v as M,e as N,p as V,h as $,l as w,q as B,o as u,m as D,n as G}from"./index-BA-KDOrj.js";const I={class:"card",style:{"margin-bottom":"16px"}},T={class:"row"},q={key:1,class:"muted"},z=["disabled"],E={key:2,class:"error"},F={class:"grid"},L={class:"muted"},R={class:"primary",style:{width:"100%"}},S={__name:"GenPersona",setup(U){const b=$(),o=l(b.query.mode==="weak"?"weak-area":"manual"),i=l(""),d=l(!1),c=l(""),y=l([]),g=l(null);async function _(){const n=await w.myPersonas();g.value=n.group.id,y.value=n.personas}C(_);async function f(){d.value=!0,c.value="";try{const n=o.value==="weak-area"?{mode:"weak-area",spec:{}}:{mode:"manual",spec:{description:i.value}};await w.generatePersona(n),await _()}catch(n){c.value=n.message}finally{d.value=!1}}return(n,a)=>{const h=B("router-link");return u(),r("div",null,[e("h2",null,t(m(v).t("generatePersona")),1),e("div",I,[a[4]||(a[4]=e("label",null,"Mode",-1)),e("div",T,[e("button",{class:p({active:o.value==="manual"}),onClick:a[0]||(a[0]=s=>o.value="manual")},"✏️ "+t(m(v).t("manual")),3),e("button",{class:p({active:o.value==="weak-area"}),onClick:a[1]||(a[1]=s=>o.value="weak-area")},"🔒 Weak-area lock",2)]),o.value==="manual"?(u(),r(k,{key:0},[a[3]||(a[3]=e("label",null,"Describe the persona you want to practice against",-1)),P(e("textarea",{"onUpdate:modelValue":a[2]||(a[2]=s=>i.value=s),rows:"4",placeholder:"e.g. a price-hardball restaurant owner on LINE who stalls when I bring up costs"},null,512),[[M,i.value]])],64)):(u(),r("p",q,"The system will analyze your losses and auto-generate a harder persona targeting your weak points.")),e("button",{class:"primary",style:{"margin-top":"16px"},disabled:d.value||o.value==="manual"&&!i.value.trim(),onClick:f},t(d.value?"...":m(v).t("generatePersona")),9,z),c.value?(u(),r("div",E,t(c.value),1)):N("",!0)]),a[5]||(a[5]=e("h3",null,"My personas",-1)),e("div",F,[(u(!0),r(k,null,V(y.value,s=>(u(),r("div",{key:s.id,class:"card pcard"},[e("strong",null,t(s.name),1),e("span",{class:p(["badge",s.tier])},"Tier "+t(s.tier),3),e("div",L,t(s.profession)+" · "+t(s.age_group),1),D(h,{to:`/groups/${g.value}/chat/${s.id}`,style:{"margin-top":"auto"}},{default:G(()=>[e("button",R,t(m(v).t("chat")),1)]),_:1},8,["to"])]))),128))])])}}},j=x(S,[["__scopeId","data-v-d299d1b3"]]);export{j as default}; diff --git a/frontend/dist/assets/GroupBuilder-sLZNwdMq.js b/frontend/dist/assets/GroupBuilder-C2ury1fL.js similarity index 81% rename from frontend/dist/assets/GroupBuilder-sLZNwdMq.js rename to frontend/dist/assets/GroupBuilder-C2ury1fL.js index edff04b..ae21646 100644 --- a/frontend/dist/assets/GroupBuilder-sLZNwdMq.js +++ b/frontend/dist/assets/GroupBuilder-C2ury1fL.js @@ -1 +1 @@ -import{c as g,a as e,t as l,u as o,i as n,w as r,v,C as m,e as x,r as p,g as k,o as f,p as w}from"./index-B1lw4PRH.js";const V={class:"card"},B={class:"row"},C={style:{flex:"1"}},U={value:"facebook"},D={value:"line"},F={style:{flex:"1"}},S={value:"th"},E={value:"en"},G={key:0,class:"error"},M=["disabled"],O={__name:"GroupBuilder",setup(N){const h=k(),t=p({product:"",segment:"",description:"",channel:"facebook",language:"th"}),c=p([]),d=p(""),i=p(!1);function _(a){c.value=Array.from(a.target.files||[])}async function b(){i.value=!0,d.value="";try{const a=new FormData;a.append("product",t.value.product),a.append("segment",t.value.segment),a.append("description",t.value.description),a.append("channel",t.value.channel),a.append("language",t.value.language),c.value.forEach(y=>a.append("files",y));const u=(await w.createGroup(a)).group.id;h.push(`/admin/groups/${u}/edit`)}catch(a){d.value=a.message}finally{i.value=!1}}return(a,s)=>(f(),g("div",V,[e("h2",null,l(o(n).t("groupBuilder")),1),e("label",null,l(o(n).t("product")),1),r(e("textarea",{"onUpdate:modelValue":s[0]||(s[0]=u=>t.value.product=u),rows:"3",placeholder:"e.g. Cloud POS for small restaurants"},null,512),[[v,t.value.product]]),e("label",null,l(o(n).t("segment")),1),r(e("input",{"onUpdate:modelValue":s[1]||(s[1]=u=>t.value.segment=u)},null,512),[[v,t.value.segment]]),e("label",null,l(o(n).t("description")),1),r(e("textarea",{"onUpdate:modelValue":s[2]||(s[2]=u=>t.value.description=u),rows:"3"},null,512),[[v,t.value.description]]),e("div",B,[e("div",C,[e("label",null,l(o(n).t("channel")),1),r(e("select",{"onUpdate:modelValue":s[3]||(s[3]=u=>t.value.channel=u)},[e("option",U,l(o(n).t("facebook")),1),e("option",D,l(o(n).t("line")),1)],512),[[m,t.value.channel]])]),e("div",F,[e("label",null,l(o(n).t("language")),1),r(e("select",{"onUpdate:modelValue":s[4]||(s[4]=u=>t.value.language=u)},[e("option",S,l(o(n).t("thai")),1),e("option",E,l(o(n).t("english")),1)],512),[[m,t.value.language]])])]),e("label",null,"📎 Files (.pdf/.md/.txt) — "+l(o(n).t("product"))+" can come from here",1),e("input",{type:"file",multiple:"",accept:".pdf,.md,.txt",onChange:_},null,32),d.value?(f(),g("div",G,l(d.value),1)):x("",!0),e("button",{class:"primary",style:{"margin-top":"16px"},disabled:i.value||!t.value.product&&!c.value.length,onClick:b},l(i.value?"...":o(n).t("create")),9,M)]))}};export{O as default}; +import{c as g,a as e,t as l,u as o,i as n,w as r,v,z as m,e as x,r as p,g as k,o as f,l as w}from"./index-BA-KDOrj.js";const V={class:"card"},B={class:"row"},U={style:{flex:"1"}},C={value:"facebook"},D={value:"line"},F={style:{flex:"1"}},S={value:"th"},E={value:"en"},G={key:0,class:"error"},M=["disabled"],A={__name:"GroupBuilder",setup(N){const h=k(),t=p({product:"",segment:"",description:"",channel:"facebook",language:"th"}),c=p([]),d=p(""),i=p(!1);function _(a){c.value=Array.from(a.target.files||[])}async function b(){i.value=!0,d.value="";try{const a=new FormData;a.append("product",t.value.product),a.append("segment",t.value.segment),a.append("description",t.value.description),a.append("channel",t.value.channel),a.append("language",t.value.language),c.value.forEach(y=>a.append("files",y));const u=(await w.createGroup(a)).group.id;h.push(`/admin/groups/${u}/edit`)}catch(a){d.value=a.message}finally{i.value=!1}}return(a,s)=>(f(),g("div",V,[e("h2",null,l(o(n).t("groupBuilder")),1),e("label",null,l(o(n).t("product")),1),r(e("textarea",{"onUpdate:modelValue":s[0]||(s[0]=u=>t.value.product=u),rows:"3",placeholder:"e.g. Cloud POS for small restaurants"},null,512),[[v,t.value.product]]),e("label",null,l(o(n).t("segment")),1),r(e("input",{"onUpdate:modelValue":s[1]||(s[1]=u=>t.value.segment=u)},null,512),[[v,t.value.segment]]),e("label",null,l(o(n).t("description")),1),r(e("textarea",{"onUpdate:modelValue":s[2]||(s[2]=u=>t.value.description=u),rows:"3"},null,512),[[v,t.value.description]]),e("div",B,[e("div",U,[e("label",null,l(o(n).t("channel")),1),r(e("select",{"onUpdate:modelValue":s[3]||(s[3]=u=>t.value.channel=u)},[e("option",C,l(o(n).t("facebook")),1),e("option",D,l(o(n).t("line")),1)],512),[[m,t.value.channel]])]),e("div",F,[e("label",null,l(o(n).t("language")),1),r(e("select",{"onUpdate:modelValue":s[4]||(s[4]=u=>t.value.language=u)},[e("option",S,l(o(n).t("thai")),1),e("option",E,l(o(n).t("english")),1)],512),[[m,t.value.language]])])]),e("label",null,"📎 Files (.pdf/.md/.txt) — "+l(o(n).t("product"))+" can come from here",1),e("input",{type:"file",multiple:"",accept:".pdf,.md,.txt",onChange:_},null,32),d.value?(f(),g("div",G,l(d.value),1)):x("",!0),e("button",{class:"primary",style:{"margin-top":"16px"},disabled:i.value||!t.value.product&&!c.value.length,onClick:b},l(i.value?"...":o(n).t("create")),9,M)]))}};export{A as default}; diff --git a/frontend/dist/assets/GroupEdit-Cb7ZBl3o.js b/frontend/dist/assets/GroupEdit-Cb7ZBl3o.js deleted file mode 100644 index 725838a..0000000 --- a/frontend/dist/assets/GroupEdit-Cb7ZBl3o.js +++ /dev/null @@ -1 +0,0 @@ -import{k as S,c as n,l as E,m as J,a as t,t as e,u as d,i,e as m,j as k,F as b,n as x,h as O,p as y,q as z,r as v,o}from"./index-B1lw4PRH.js";import{_ as G}from"./_plugin-vue_export-helper-DlAUqK2U.js";const V={class:"row",style:{"align-items":"center","margin-bottom":"16px"}},j={style:{margin:"0"}},A=["disabled"],P={key:0,class:"spinner",style:{"margin-right":"4px"}},F={key:0,class:"error"},I={key:1,class:"card empty-state"},L={class:"grid"},T={class:"row"},q={key:0,class:"badge"},D={class:"muted"},M={class:"muted",style:{"margin-top":"4px"}},R={style:{"margin-top":"8px"},open:""},$={class:"json"},H=["onClick"],K={__name:"GroupEdit",setup(Q){const _=O().params.gid,g=v(null),p=v([]),l=v(!1),u=v("");async function f(){const s=await y.getGroup(_);g.value=s.group,p.value=(await y.listPersonas(_)).personas}function N(s){return p.value.filter(r=>r.tier===s)}function w(s){return i.t(s==="A"?"tierA":s==="B"?"tierB":"tierC")}async function C(){l.value=!0,u.value="";try{const s=await y.analyzeGroup(_);p.value=s.personas,await f()}catch(s){u.value=s.message}finally{l.value=!1}}function B(s){const r=prompt("Edit persona JSON (full fields):",JSON.stringify(s,null,2));if(r)try{const c=JSON.parse(r);y.updatePersona(_,s.id,c).then(f)}catch(c){u.value="Invalid JSON: "+c.message}}return S(f),(s,r)=>{const c=z("router-link");return o(),n("div",null,[E(c,{to:"/",class:"btn-back"},{default:J(()=>[k("← "+e(d(i).t("dashboard")),1)]),_:1}),t("div",V,[t("h2",j,e(d(i).t("groupBuilder"))+" — "+e(g.value&&g.value.title),1),t("button",{class:"primary",style:{"margin-left":"auto"},onClick:C,disabled:l.value},[l.value?(o(),n("span",P)):m("",!0),k(e(d(i).t("analyze")),1)],8,A)]),u.value?(o(),n("div",F,e(u.value),1)):m("",!0),p.value.length===0&&!l.value?(o(),n("div",I,[r[0]||(r[0]=t("strong",null,"No personas yet",-1)),t("span",null,"Click "+e(d(i).t("analyze"))+" to generate the 15 personas (5 per tier).",1)])):m("",!0),(o(),n(b,null,x(["A","B","C"],h=>t("div",{key:h,style:{"margin-bottom":"20px"}},[t("h4",null,e(w(h)),1),t("div",L,[(o(!0),n(b,null,x(N(h),a=>(o(),n("div",{key:a.id,class:"card pcard"},[t("div",T,[t("strong",null,e(a.name),1),a.special==="wrong_text"?(o(),n("span",q,"⚠️ wrong_text")):m("",!0)]),t("div",D,e(a.profession)+" · "+e(a.age_group)+" · "+e(a.channel)+" · "+e(a.initiation_mode),1),t("div",M,"diff "+e(a.difficulty)+" · "+e(a.income)+" · "+e(a.personality),1),t("details",R,[t("summary",null,e(d(i).t("reveal")),1),t("pre",$,e(JSON.stringify(a,null,2)),1)]),t("button",{onClick:W=>B(a)},"✏️ Edit",8,H)]))),128))])])),64))])}}},Z=G(K,[["__scopeId","data-v-ee1c1944"]]);export{Z as default}; diff --git a/frontend/dist/assets/GroupEdit-gE6WVEsc.js b/frontend/dist/assets/GroupEdit-gE6WVEsc.js new file mode 100644 index 0000000..6a63ec2 --- /dev/null +++ b/frontend/dist/assets/GroupEdit-gE6WVEsc.js @@ -0,0 +1 @@ +import{_ as S,k as E,c as n,m as J,n as O,a as t,t as e,u as d,i as l,e as m,j as k,F as b,p as x,h as z,l as y,q as G,r as v,o}from"./index-BA-KDOrj.js";const V={class:"row",style:{"align-items":"center","margin-bottom":"16px"}},j={style:{margin:"0"}},A=["disabled"],P={key:0,class:"spinner",style:{"margin-right":"4px"}},F={key:0,class:"error"},I={key:1,class:"card empty-state"},L={class:"grid"},T={class:"row"},q={key:0,class:"badge"},D={class:"muted"},M={class:"muted",style:{"margin-top":"4px"}},R={style:{"margin-top":"8px"},open:""},$={class:"json"},H=["onClick"],K={__name:"GroupEdit",setup(Q){const _=z().params.gid,g=v(null),p=v([]),i=v(!1),u=v("");async function f(){const s=await y.getGroup(_);g.value=s.group,p.value=(await y.listPersonas(_)).personas}function N(s){return p.value.filter(r=>r.tier===s)}function w(s){return l.t(s==="A"?"tierA":s==="B"?"tierB":"tierC")}async function C(){i.value=!0,u.value="";try{const s=await y.analyzeGroup(_);p.value=s.personas,await f()}catch(s){u.value=s.message}finally{i.value=!1}}function B(s){const r=prompt("Edit persona JSON (full fields):",JSON.stringify(s,null,2));if(r)try{const c=JSON.parse(r);y.updatePersona(_,s.id,c).then(f)}catch(c){u.value="Invalid JSON: "+c.message}}return E(f),(s,r)=>{const c=G("router-link");return o(),n("div",null,[J(c,{to:"/",class:"btn-back"},{default:O(()=>[k("← "+e(d(l).t("dashboard")),1)]),_:1}),t("div",V,[t("h2",j,e(d(l).t("groupBuilder"))+" — "+e(g.value&&g.value.title),1),t("button",{class:"primary",style:{"margin-left":"auto"},onClick:C,disabled:i.value},[i.value?(o(),n("span",P)):m("",!0),k(e(d(l).t("analyze")),1)],8,A)]),u.value?(o(),n("div",F,e(u.value),1)):m("",!0),p.value.length===0&&!i.value?(o(),n("div",I,[r[0]||(r[0]=t("strong",null,"No personas yet",-1)),t("span",null,"Click "+e(d(l).t("analyze"))+" to generate the 15 personas (5 per tier).",1)])):m("",!0),(o(),n(b,null,x(["A","B","C"],h=>t("div",{key:h,style:{"margin-bottom":"20px"}},[t("h4",null,e(w(h)),1),t("div",L,[(o(!0),n(b,null,x(N(h),a=>(o(),n("div",{key:a.id,class:"card pcard"},[t("div",T,[t("strong",null,e(a.name),1),a.special==="wrong_text"?(o(),n("span",q,"⚠️ wrong_text")):m("",!0)]),t("div",D,e(a.profession)+" · "+e(a.age_group)+" · "+e(a.channel)+" · "+e(a.initiation_mode),1),t("div",M,"diff "+e(a.difficulty)+" · "+e(a.income)+" · "+e(a.personality),1),t("details",R,[t("summary",null,e(d(l).t("reveal")),1),t("pre",$,e(JSON.stringify(a,null,2)),1)]),t("button",{onClick:W=>B(a)},"✏️ Edit",8,H)]))),128))])])),64))])}}},Y=S(K,[["__scopeId","data-v-ee1c1944"]]);export{Y as default}; diff --git a/frontend/dist/assets/Login-B9kRT3Au.js b/frontend/dist/assets/Login-B9kRT3Au.js deleted file mode 100644 index 64f57b4..0000000 --- a/frontend/dist/assets/Login-B9kRT3Au.js +++ /dev/null @@ -1 +0,0 @@ -import{c as d,a as e,t as s,u as c,i as o,w as y,v as b,b as w,d as x,e as k,r as l,f,g as S,h as V,o as v}from"./index-B1lw4PRH.js";import{_ as B}from"./_plugin-vue_export-helper-DlAUqK2U.js";const C={class:"login-wrap"},D={class:"card login-card"},K={class:"pw-wrap"},E=["type"],L=["aria-label"],M={key:0,class:"error",role:"alert"},N=["disabled"],R={key:0,class:"spinner"},U={key:1},q={__name:"Login",setup(H){const g=V(),_=S(),n=l(""),r=l(""),a=l(!1),u=l(""),i=l(!1);async function m(){u.value="",i.value=!0;try{await f.login(n.value.trim(),r.value),f.mustSetup?_.push({path:"/setup"}):_.push(g.query.redirect||"/")}catch{u.value=o.t("loginError")}finally{i.value=!1}}return(h,t)=>(v(),d("div",C,[e("div",D,[e("h1",null,"🎯 "+s(c(o).t("app")),1),t[3]||(t[3]=e("p",{class:"muted",style:{"margin-top":"-8px"}},"Sales training simulator",-1)),e("label",null,s(c(o).t("username")),1),y(e("input",{"onUpdate:modelValue":t[0]||(t[0]=p=>n.value=p),type:"text",autocomplete:"username",onKeyup:w(m,["enter"])},null,544),[[b,n.value]]),e("label",null,s(c(o).t("password")),1),e("div",K,[y(e("input",{"onUpdate:modelValue":t[1]||(t[1]=p=>r.value=p),type:a.value?"text":"password",autocomplete:"current-password",onKeyup:w(m,["enter"])},null,40,E),[[x,r.value]]),e("button",{type:"button",class:"pw-toggle",onClick:t[2]||(t[2]=p=>a.value=!a.value),"aria-label":a.value?"Hide password":"Show password"},s(a.value?"🙈":"👁"),9,L)]),u.value?(v(),d("div",M,s(u.value),1)):k("",!0),e("button",{class:"primary",style:{width:"100%","margin-top":"16px"},disabled:i.value||!n.value||!r.value,onClick:m},[i.value?(v(),d("span",R)):(v(),d("span",U,s(c(o).t("login")),1))],8,N)])]))}},T=B(q,[["__scopeId","data-v-f7904d9f"]]);export{T as default}; diff --git a/frontend/dist/assets/Login-CY2HomOW.js b/frontend/dist/assets/Login-CY2HomOW.js new file mode 100644 index 0000000..90541c1 --- /dev/null +++ b/frontend/dist/assets/Login-CY2HomOW.js @@ -0,0 +1 @@ +import{_ as b,c as d,a as e,t as s,u as c,i as o,w as y,v as x,b as w,d as k,e as S,r as l,f,g as V,h as B,o as v}from"./index-BA-KDOrj.js";const C={class:"login-wrap"},D={class:"card login-card"},K={class:"pw-wrap"},E=["type"],L=["aria-label"],M={key:0,class:"error",role:"alert"},N=["disabled"],R={key:0,class:"spinner"},U={key:1},q={__name:"Login",setup(H){const g=B(),_=V(),n=l(""),u=l(""),a=l(!1),r=l(""),i=l(!1);async function m(){r.value="",i.value=!0;try{await f.login(n.value.trim(),u.value),f.mustSetup?_.push({path:"/setup"}):_.push(g.query.redirect||"/")}catch{r.value=o.t("loginError")}finally{i.value=!1}}return(h,t)=>(v(),d("div",C,[e("div",D,[e("h1",null,"🎯 "+s(c(o).t("app")),1),t[3]||(t[3]=e("p",{class:"muted",style:{"margin-top":"-8px"}},"Sales training simulator",-1)),e("label",null,s(c(o).t("username")),1),y(e("input",{"onUpdate:modelValue":t[0]||(t[0]=p=>n.value=p),type:"text",autocomplete:"username",onKeyup:w(m,["enter"])},null,544),[[x,n.value]]),e("label",null,s(c(o).t("password")),1),e("div",K,[y(e("input",{"onUpdate:modelValue":t[1]||(t[1]=p=>u.value=p),type:a.value?"text":"password",autocomplete:"current-password",onKeyup:w(m,["enter"])},null,40,E),[[k,u.value]]),e("button",{type:"button",class:"pw-toggle",onClick:t[2]||(t[2]=p=>a.value=!a.value),"aria-label":a.value?"Hide password":"Show password"},s(a.value?"🙈":"👁"),9,L)]),r.value?(v(),d("div",M,s(r.value),1)):S("",!0),e("button",{class:"primary",style:{width:"100%","margin-top":"16px"},disabled:i.value||!n.value||!u.value,onClick:m},[i.value?(v(),d("span",R)):(v(),d("span",U,s(c(o).t("login")),1))],8,N)])]))}},P=b(q,[["__scopeId","data-v-f7904d9f"]]);export{P as default}; diff --git a/frontend/dist/assets/MyBoard-FXk4x7AF.js b/frontend/dist/assets/MyBoard-FXk4x7AF.js deleted file mode 100644 index 909c240..0000000 --- a/frontend/dist/assets/MyBoard-FXk4x7AF.js +++ /dev/null @@ -1 +0,0 @@ -import{k as B,p as x,c as n,a as t,t as s,u as l,i as e,F as y,n as v,e as b,r as u,s as f,o as i,x as z}from"./index-B1lw4PRH.js";const D={style:{"margin-bottom":"4px"}},L={class:"muted",style:{margin:"0 0 20px","font-size":"13px"}},A={class:"stat-grid",style:{"margin-bottom":"20px"}},S={class:"stat-card"},C={class:"stat-label"},M={class:"stat-value",style:{color:"var(--ink)"}},j={class:"stat-card"},F={class:"stat-label"},N={class:"stat-value",style:{color:"var(--green)"}},T={class:"stat-card"},V={class:"stat-label"},E={class:"stat-value",style:{color:"var(--red)"}},G={class:"stat-card"},q={class:"stat-label"},H={class:"stat-value",style:{color:"var(--accent)"}},I={style:{margin:"20px 0 12px"}},J={key:0,class:"card",style:{"min-height":"60px"}},K={key:1,class:"card",style:{"margin-bottom":"12px"}},O={style:{"font-weight":"700","font-size":"14px","margin-bottom":"6px"}},P={class:"muted",style:{"font-size":"13px"}},Q={class:"badge lost"},R={key:0,class:"muted",style:{"font-size":"12px"}},U={key:2,class:"card empty-state",style:{"margin-bottom":"8px"}},W={style:{margin:"20px 0 12px"}},X={key:3,class:"card",style:{"min-height":"80px"}},Y={key:4,class:"card",style:{padding:"4px 20px"}},Z={class:"muted",style:{"font-size":"12px"}},$={key:0,class:"muted",style:{padding:"16px 0","text-align":"center"}},et={__name:"MyBoard",setup(tt){const p=u([]),d=u({}),h=u(!0),m=u(!0),k=f(()=>{var a;return(a=d.value.top_loss_personas)!=null&&a.length,""}),g=f(()=>{var o,c,_;const a=d.value,r=[];return(o=a.by_tier)!=null&&o.length&&r.push({title:"By tier · losses",items:a.by_tier}),(c=a.by_initiation)!=null&&c.length&&r.push({title:"By initiation · losses",items:a.by_initiation}),(_=a.by_channel)!=null&&_.length&&r.push({title:"By channel · losses",items:a.by_channel}),r});function w(a){return a==="won"?e.t("won"):a==="lost"?e.t("lost"):e.t("notTried")}return B(async()=>{try{p.value=(await x.myBoard()).board}catch{}finally{h.value=!1}try{d.value=(await x.weakAreas()).insight||{}}catch{}finally{m.value=!1}}),(a,r)=>(i(),n("div",null,[t("h2",D,s(l(e).t("tabMyDash")),1),t("p",L,s(l(e).t("weakAreas"))+" · "+s(l(e).t("mySessions")),1),t("div",A,[t("div",S,[t("div",C,s(l(e).t("mySessions")),1),t("div",M,s(d.value.total_sessions||0),1)]),t("div",j,[t("div",F,s(l(e).t("won")),1),t("div",N,s(d.value.wins||0),1)]),t("div",T,[t("div",V,s(l(e).t("lost")),1),t("div",E,s(d.value.losses||0),1)]),t("div",G,[t("div",q,s(l(e).t("score")),1),t("div",H,s(k.value)+s(d.value.total_sessions?"%":""),1)])]),t("h3",I,s(l(e).t("weakAreas")),1),m.value?(i(),n("div",J,[...r[0]||(r[0]=[t("div",{class:"skeleton",style:{height:"40px"}},null,-1)])])):g.value.length?(i(),n("div",K,[(i(!0),n(y,null,v(g.value,o=>(i(),n("div",{key:o.title,style:{padding:"10px 0","border-bottom":"1px solid var(--border)"}},[t("div",O,s(o.title),1),(i(!0),n(y,null,v(o.items,(c,_)=>(i(),n("div",{key:_,class:"row",style:{"justify-content":"space-between",padding:"2px 0","align-items":"center"}},[t("span",P,s(c.value),1),t("span",Q,s(c.losses)+" "+s(l(e).t("lost").toLowerCase()),1)]))),128)),o.items.length?b("",!0):(i(),n("div",R,s(l(e).t("noData")),1))]))),128))])):(i(),n("div",U,[t("strong",null,s(l(e).t("noData")),1),t("span",null,s(l(e).t("weakAreas")),1)])),t("h3",W,s(l(e).t("myTraining")),1),h.value?(i(),n("div",X,[...r[1]||(r[1]=[t("div",{class:"skeleton",style:{height:"60px"}},null,-1)])])):(i(),n("div",Y,[(i(!0),n(y,null,v(p.value,o=>(i(),n("div",{key:o.group_id+o.persona_id,class:"row",style:{"justify-content":"space-between",padding:"9px 0","border-bottom":"1px solid var(--border)"}},[t("div",null,[t("strong",null,s(o.persona_name),1),t("span",Z," — "+s(o.group_title)+" · "+s(o.tier),1)]),t("span",{class:z(["badge",o.my_outcome])},s(w(o.my_outcome)),3)]))),128)),p.value.length===0?(i(),n("div",$,s(l(e).t("noData")),1)):b("",!0)]))]))}};export{et as default}; diff --git a/frontend/dist/assets/MySessions-DePM3ACg.js b/frontend/dist/assets/MySessions-DePM3ACg.js deleted file mode 100644 index ab3a767..0000000 --- a/frontend/dist/assets/MySessions-DePM3ACg.js +++ /dev/null @@ -1 +0,0 @@ -import{k as l,p as c,c as a,a as s,t,u as d,i as u,F as m,n as p,e as i,r as _,o as n,x as y}from"./index-B1lw4PRH.js";const g={class:"row",style:{"justify-content":"space-between"}},f={class:"muted"},v={key:0,class:"muted",style:{"margin-top":"4px"}},k={key:0,class:"card empty-state"},x={__name:"MySessions",setup(b){const o=_([]);return l(async()=>{o.value=(await c.mySessions()).sessions}),(h,r)=>(n(),a("div",null,[s("h2",null,t(d(u).t("myTraining")),1),(n(!0),a(m,null,p(o.value,e=>(n(),a("div",{class:"card",key:e.id,style:{"margin-bottom":"10px"}},[s("div",g,[s("strong",null,t(e.persona_name),1),s("span",{class:y(["badge",e.outcome||"not_tried"])},t(e.outcome||"—"),3)]),s("div",f,t(e.persona_id)+" · "+t(new Date(e.created_at).toLocaleString()),1),e.debrief?(n(),a("div",v," Score "+t(e.debrief.score)+" — "+t(e.debrief.why),1)):i("",!0)]))),128)),o.value.length===0?(n(),a("div",k,[...r[0]||(r[0]=[s("strong",null,"No training sessions yet",-1),s("span",null,"Pick a persona from a group and practice closing a sale.",-1)])])):i("",!0)]))}};export{x as default}; diff --git a/frontend/dist/assets/MySessions-h4va9mB8.js b/frontend/dist/assets/MySessions-h4va9mB8.js new file mode 100644 index 0000000..056e243 --- /dev/null +++ b/frontend/dist/assets/MySessions-h4va9mB8.js @@ -0,0 +1 @@ +import{k as l,l as c,c as a,a as s,t,u as d,i as u,F as m,p,e as i,r as _,o as n,s as y}from"./index-BA-KDOrj.js";const g={class:"row",style:{"justify-content":"space-between"}},f={class:"muted"},v={key:0,class:"muted",style:{"margin-top":"4px"}},k={key:0,class:"card empty-state"},S={__name:"MySessions",setup(b){const o=_([]);return l(async()=>{o.value=(await c.mySessions()).sessions}),(h,r)=>(n(),a("div",null,[s("h2",null,t(d(u).t("myTraining")),1),(n(!0),a(m,null,p(o.value,e=>(n(),a("div",{class:"card",key:e.id,style:{"margin-bottom":"10px"}},[s("div",g,[s("strong",null,t(e.persona_name),1),s("span",{class:y(["badge",e.outcome||"not_tried"])},t(e.outcome||"—"),3)]),s("div",f,t(e.persona_id)+" · "+t(new Date(e.created_at).toLocaleString()),1),e.debrief?(n(),a("div",v," Score "+t(e.debrief.score)+" — "+t(e.debrief.why),1)):i("",!0)]))),128)),o.value.length===0?(n(),a("div",k,[...r[0]||(r[0]=[s("strong",null,"No training sessions yet",-1),s("span",null,"Pick a persona from a group and practice closing a sale.",-1)])])):i("",!0)]))}};export{S as default}; diff --git a/frontend/dist/assets/Personas-CNMd2u86.js b/frontend/dist/assets/Personas-CNMd2u86.js new file mode 100644 index 0000000..9ca2a80 --- /dev/null +++ b/frontend/dist/assets/Personas-CNMd2u86.js @@ -0,0 +1 @@ +import{_ as B,k as C,c as l,m as L,n as y,a as t,t as s,u as r,i as o,F as p,p as f,h as T,l as A,q as I,r as g,o as i,j as h,s as v,x as N}from"./index-BA-KDOrj.js";const P={class:"row",style:{"align-items":"center"}},V={style:{margin:"0"}},z={class:"grid"},F={class:"row"},$={class:"muted"},j={class:"muted"},q={class:"muted",style:{"margin-top":"6px"}},D={class:"primary",style:{width:"100%"}},E={key:1,class:"muted",style:{"margin-top":"auto","font-size":"12px"}},M={__name:"Personas",setup(R){const d=T().params.gid,u=g([]),k=g(!0);async function b(){try{u.value=(await A.listPersonas(d)).personas}finally{k.value=!1}}function x(a){return u.value.filter(n=>n.tier===a)}function w(a){return o.t(a==="A"?"tierA":a==="B"?"tierB":"tierC")}function _(a){return a==="won"?o.t("won"):a==="lost"?o.t("lost"):o.t("notTried")}return C(b),(a,n)=>{const m=I("router-link");return i(),l("div",null,[L(m,{to:"/",class:"btn-back"},{default:y(()=>[h("← "+s(r(o).t("dashboard")),1)]),_:1}),t("div",P,[t("h2",V,s(r(o).t("personas")),1),n[0]||(n[0]=t("span",{class:"muted",style:{"margin-left":"auto"}},"Levels: choose one to practice (one-shot)",-1))]),(i(),l(p,null,f(["A","B","C"],c=>t("div",{key:c,style:{margin:"20px 0"}},[t("h4",null,s(w(c)),1),t("div",z,[(i(!0),l(p,null,f(x(c),e=>(i(),l("div",{key:e.id,class:"card pcard lift"},[t("div",F,[t("strong",null,s(e.name),1),t("span",{class:v(["badge",e.my_outcome])},s(_(e.my_outcome)),3)]),t("div",$,[h(s(e.profession)+" · "+s(e.age_group)+" · "+s(e.location),1),n[1]||(n[1]=t("br",null,null,-1)),t("span",{class:v(["badge",e.channel])},s(e.channel),3),t("span",j," · "+s(e.initiation_mode==="seller"?r(o).t("sellerInitiated"):r(o).t("customerInitiated")),1)]),t("div",q,s(e.product_context),1),e.my_outcome==="not_tried"?(i(),N(m,{key:0,to:`/groups/${r(d)}/chat/${e.id}`,style:{"margin-top":"auto"}},{default:y(()=>[t("button",D,s(r(o).t("chat")),1)]),_:1},8,["to"])):(i(),l("div",E,"✓ Trained ("+s(_(e.my_outcome))+")",1))]))),128))])])),64))])}}},H=B(M,[["__scopeId","data-v-88c74e17"]]);export{H as default}; diff --git a/frontend/dist/assets/Personas-hA5thick.js b/frontend/dist/assets/Personas-hA5thick.js deleted file mode 100644 index 46b57c3..0000000 --- a/frontend/dist/assets/Personas-hA5thick.js +++ /dev/null @@ -1 +0,0 @@ -import{k as B,c as l,l as C,m as y,a as t,t as s,u as r,i as o,F as p,n as f,h as L,p as T,q as A,r as g,o as i,j as h,x as v,y as I}from"./index-B1lw4PRH.js";import{_ as N}from"./_plugin-vue_export-helper-DlAUqK2U.js";const P={class:"row",style:{"align-items":"center"}},V={style:{margin:"0"}},z={class:"grid"},F={class:"row"},$={class:"muted"},j={class:"muted"},q={class:"muted",style:{"margin-top":"6px"}},D={class:"primary",style:{width:"100%"}},E={key:1,class:"muted",style:{"margin-top":"auto","font-size":"12px"}},M={__name:"Personas",setup(R){const d=L().params.gid,u=g([]),k=g(!0);async function b(){try{u.value=(await T.listPersonas(d)).personas}finally{k.value=!1}}function x(a){return u.value.filter(n=>n.tier===a)}function w(a){return o.t(a==="A"?"tierA":a==="B"?"tierB":"tierC")}function _(a){return a==="won"?o.t("won"):a==="lost"?o.t("lost"):o.t("notTried")}return B(b),(a,n)=>{const m=A("router-link");return i(),l("div",null,[C(m,{to:"/",class:"btn-back"},{default:y(()=>[h("← "+s(r(o).t("dashboard")),1)]),_:1}),t("div",P,[t("h2",V,s(r(o).t("personas")),1),n[0]||(n[0]=t("span",{class:"muted",style:{"margin-left":"auto"}},"Levels: choose one to practice (one-shot)",-1))]),(i(),l(p,null,f(["A","B","C"],c=>t("div",{key:c,style:{margin:"20px 0"}},[t("h4",null,s(w(c)),1),t("div",z,[(i(!0),l(p,null,f(x(c),e=>(i(),l("div",{key:e.id,class:"card pcard lift"},[t("div",F,[t("strong",null,s(e.name),1),t("span",{class:v(["badge",e.my_outcome])},s(_(e.my_outcome)),3)]),t("div",$,[h(s(e.profession)+" · "+s(e.age_group)+" · "+s(e.location),1),n[1]||(n[1]=t("br",null,null,-1)),t("span",{class:v(["badge",e.channel])},s(e.channel),3),t("span",j," · "+s(e.initiation_mode==="seller"?r(o).t("sellerInitiated"):r(o).t("customerInitiated")),1)]),t("div",q,s(e.product_context),1),e.my_outcome==="not_tried"?(i(),I(m,{key:0,to:`/groups/${r(d)}/chat/${e.id}`,style:{"margin-top":"auto"}},{default:y(()=>[t("button",D,s(r(o).t("chat")),1)]),_:1},8,["to"])):(i(),l("div",E,"✓ Trained ("+s(_(e.my_outcome))+")",1))]))),128))])])),64))])}}},J=N(M,[["__scopeId","data-v-88c74e17"]]);export{J as default}; diff --git a/frontend/dist/assets/Settings-D6D_gNDm.js b/frontend/dist/assets/Settings-D6D_gNDm.js deleted file mode 100644 index f88ec3e..0000000 --- a/frontend/dist/assets/Settings-D6D_gNDm.js +++ /dev/null @@ -1 +0,0 @@ -import{k as E,f as i,c as g,a as e,t,u as a,i as o,A as V,w as v,v as _,x as y,e as M,B as U,r as p,s as k,o as b,p as B}from"./index-B1lw4PRH.js";const T={class:"row",style:{margin:"0 0 20px"}},A={style:{margin:"0"}},j={class:"setting-grid"},q={class:"card settings-section"},F={class:"s-title"},G={class:"s-desc"},H={class:"form-grid"},I={for:"p-name"},J=["placeholder"],K={for:"p-email"},L=["placeholder"],O=["disabled"],Q={class:"card settings-section"},R={class:"s-title"},W={class:"s-desc"},X={class:"form-grid"},Y={for:"pw-current"},Z={for:"pw-new"},$={for:"pw-confirm"},ee=["disabled"],se={class:"card settings-section"},te={class:"s-title"},ae={class:"s-desc"},oe={class:"row",style:{gap:"10px","align-items":"center"}},ne={class:"avatar",style:{width:"44px",height:"44px","font-size":"18px"}},le={style:{"font-weight":"700"}},ie={class:"muted",style:{"font-size":"13px"}},ue={__name:"Settings",setup(re){const r=U({name:"",email:""}),l=U({current:"",newp:"",confirm:""}),w=p(!1),d=p(!1),m=p(""),h=p(!1),u=p(""),f=p(!1),C=k(()=>{var n,s;return(((n=i.user)==null?void 0:n.name)||((s=i.user)==null?void 0:s.username)||"?").slice(0,1).toUpperCase()}),D=k(()=>{var n,s;return((n=i.user)==null?void 0:n.name)||((s=i.user)==null?void 0:s.username)||""});E(()=>{var n,s;r.name=((n=i.user)==null?void 0:n.name)||"",r.email=((s=i.user)==null?void 0:s.email)||""});async function N(){w.value=!0,h.value=!1,m.value="";try{const n={};r.name.trim()&&(n.name=r.name.trim()),r.email.trim()&&(n.email=r.email.trim());const s=await B.updateProfile(n);i.user=s.user,m.value=o.t("profileSaved")}catch(n){h.value=!0,m.value=n.message}finally{w.value=!1}}async function z(){if(d.value=!0,f.value=!1,u.value="",l.newp.length<4){f.value=!0,u.value=o.t("passwordTooShort"),d.value=!1;return}if(l.newp!==l.confirm){f.value=!0,u.value=o.t("passwordMismatch"),d.value=!1;return}try{await B.changePassword({current_password:l.current,new_password:l.newp}),l.current="",l.newp="",l.confirm="",u.value=o.t("passwordChanged")}catch(n){f.value=!0,u.value=n.message}finally{d.value=!1}}return(n,s)=>{var x,P,S;return b(),g("div",null,[e("div",T,[e("h2",A,t(a(o).t("settingsTitle")),1)]),e("div",j,[e("section",q,[e("h3",F,t(a(o).t("settingsProfile")),1),e("p",G,t(a(o).t("settingsProfileDesc")),1),e("form",{onSubmit:V(N,["prevent"])},[e("div",H,[e("label",I,t(a(o).t("displayName")),1),v(e("input",{id:"p-name","onUpdate:modelValue":s[0]||(s[0]=c=>r.name=c),placeholder:((x=a(i).user)==null?void 0:x.name)||""},null,8,J),[[_,r.name]]),e("label",K,t(a(o).t("email")),1),v(e("input",{id:"p-email","onUpdate:modelValue":s[1]||(s[1]=c=>r.email=c),type:"email",placeholder:((P=a(i).user)==null?void 0:P.email)||""},null,8,L),[[_,r.email]]),e("button",{class:"primary",type:"submit",disabled:w.value,style:{"margin-top":"16px"}},t(w.value?"…":a(o).t("save")),9,O)])],32),m.value?(b(),g("p",{key:0,class:y(h.value?"error":""),style:{"margin-top":"10px"}},t(m.value),3)):M("",!0)]),e("section",Q,[e("h3",R,t(a(o).t("settingsSecurity")),1),e("p",W,t(a(o).t("settingsSecurityDesc")),1),e("form",{onSubmit:V(z,["prevent"])},[e("div",X,[e("label",Y,t(a(o).t("currentPassword")),1),v(e("input",{id:"pw-current","onUpdate:modelValue":s[2]||(s[2]=c=>l.current=c),type:"password",autocomplete:"current-password"},null,512),[[_,l.current]]),e("label",Z,t(a(o).t("newPassword")),1),v(e("input",{id:"pw-new","onUpdate:modelValue":s[3]||(s[3]=c=>l.newp=c),type:"password",autocomplete:"new-password"},null,512),[[_,l.newp]]),e("label",$,t(a(o).t("confirmPassword")),1),v(e("input",{id:"pw-confirm","onUpdate:modelValue":s[4]||(s[4]=c=>l.confirm=c),type:"password",autocomplete:"new-password"},null,512),[[_,l.confirm]]),e("button",{class:"primary",type:"submit",disabled:d.value,style:{"margin-top":"16px"}},t(d.value?"…":a(o).t("changePassword")),9,ee)])],32),u.value?(b(),g("p",{key:0,class:y(f.value?"error":""),style:{"margin-top":"10px"}},t(u.value),3)):M("",!0)]),e("section",se,[e("h3",te,t(a(o).t("account")),1),e("p",ae,t(a(o).t("role"))+" / "+t(a(o).t("status")),1),e("div",oe,[e("span",ne,t(C.value),1),e("div",null,[e("div",le,t(D.value),1),e("div",ie,t((S=a(i).user)==null?void 0:S.username),1)]),e("span",{class:y(["badge",a(i).role])},t(a(i).role),3)])])])])}}};export{ue as default}; diff --git a/frontend/dist/assets/Setup-BN6K74g6.js b/frontend/dist/assets/Setup-BN6K74g6.js deleted file mode 100644 index 091f189..0000000 --- a/frontend/dist/assets/Setup-BN6K74g6.js +++ /dev/null @@ -1 +0,0 @@ -import{c as v,a as e,t,u as s,i as a,j as x,f as _,w as f,v as w,b as y,e as S,r,g as V,o as m}from"./index-B1lw4PRH.js";import{_ as K}from"./_plugin-vue_export-helper-DlAUqK2U.js";const T={class:"setup-wrap"},B={class:"card setup-card"},N={class:"muted"},U={key:0,class:"error",role:"alert"},C=["disabled"],D={key:0,class:"spinner"},M={key:1},P={__name:"Setup",setup(j){const k=V(),i=r(""),l=r(""),p=r(""),o=r(""),d=r(!1);async function c(){if(o.value="",l.value.length<4){o.value=a.t("passwordTooShort");return}if(l.value!==p.value){o.value=a.t("passwordMismatch");return}d.value=!0;try{await _.finishSetup(i.value.trim(),l.value),k.push("/")}catch(h){o.value=h.message}finally{d.value=!1}}return(h,u)=>{var b,g;return m(),v("div",T,[e("div",B,[e("h1",null,"🔐 "+t(s(a).t("setupTitle")),1),e("p",N,[x(t(s(a).t("setupSubtitle"))+" ",1),e("strong",null,t(((b=s(_).user)==null?void 0:b.name)||((g=s(_).user)==null?void 0:g.username)),1)]),e("label",null,t(s(a).t("email")),1),f(e("input",{"onUpdate:modelValue":u[0]||(u[0]=n=>i.value=n),type:"email",autocomplete:"email",onKeyup:y(c,["enter"])},null,544),[[w,i.value]]),e("label",null,t(s(a).t("newPassword")),1),f(e("input",{"onUpdate:modelValue":u[1]||(u[1]=n=>l.value=n),type:"password",autocomplete:"new-password",onKeyup:y(c,["enter"])},null,544),[[w,l.value]]),e("label",null,t(s(a).t("confirmPassword")),1),f(e("input",{"onUpdate:modelValue":u[2]||(u[2]=n=>p.value=n),type:"password",autocomplete:"new-password",onKeyup:y(c,["enter"])},null,544),[[w,p.value]]),o.value?(m(),v("div",U,t(o.value),1)):S("",!0),e("button",{class:"primary",style:{width:"100%","margin-top":"16px"},disabled:d.value||!i.value||!l.value||l.value!==p.value,onClick:c},[d.value?(m(),v("span",D)):(m(),v("span",M,t(s(a).t("save")),1))],8,C)])])}}},R=K(P,[["__scopeId","data-v-f190e120"]]);export{R as default}; diff --git a/frontend/dist/assets/Setup-BZ-GDYWY.js b/frontend/dist/assets/Setup-BZ-GDYWY.js new file mode 100644 index 0000000..e9322ef --- /dev/null +++ b/frontend/dist/assets/Setup-BZ-GDYWY.js @@ -0,0 +1 @@ +import{_ as x,c as v,a as e,t,u as s,i as a,j as S,f as _,w,v as f,b as y,e as V,r,g as K,o as m}from"./index-BA-KDOrj.js";const T={class:"setup-wrap"},B={class:"card setup-card"},N={class:"muted"},U={key:0,class:"error",role:"alert"},C=["disabled"],D={key:0,class:"spinner"},M={key:1},P={__name:"Setup",setup(j){const k=K(),i=r(""),l=r(""),p=r(""),o=r(""),d=r(!1);async function c(){if(o.value="",l.value.length<4){o.value=a.t("passwordTooShort");return}if(l.value!==p.value){o.value=a.t("passwordMismatch");return}d.value=!0;try{await _.finishSetup(i.value.trim(),l.value),k.push("/")}catch(h){o.value=h.message}finally{d.value=!1}}return(h,u)=>{var b,g;return m(),v("div",T,[e("div",B,[e("h1",null,"🔐 "+t(s(a).t("setupTitle")),1),e("p",N,[S(t(s(a).t("setupSubtitle"))+" ",1),e("strong",null,t(((b=s(_).user)==null?void 0:b.name)||((g=s(_).user)==null?void 0:g.username)),1)]),e("label",null,t(s(a).t("email")),1),w(e("input",{"onUpdate:modelValue":u[0]||(u[0]=n=>i.value=n),type:"email",autocomplete:"email",onKeyup:y(c,["enter"])},null,544),[[f,i.value]]),e("label",null,t(s(a).t("newPassword")),1),w(e("input",{"onUpdate:modelValue":u[1]||(u[1]=n=>l.value=n),type:"password",autocomplete:"new-password",onKeyup:y(c,["enter"])},null,544),[[f,l.value]]),e("label",null,t(s(a).t("confirmPassword")),1),w(e("input",{"onUpdate:modelValue":u[2]||(u[2]=n=>p.value=n),type:"password",autocomplete:"new-password",onKeyup:y(c,["enter"])},null,544),[[f,p.value]]),o.value?(m(),v("div",U,t(o.value),1)):V("",!0),e("button",{class:"primary",style:{width:"100%","margin-top":"16px"},disabled:d.value||!i.value||!l.value||l.value!==p.value,onClick:c},[d.value?(m(),v("span",D)):(m(),v("span",M,t(s(a).t("save")),1))],8,C)])])}}},I=x(P,[["__scopeId","data-v-f190e120"]]);export{I as default}; diff --git a/frontend/dist/assets/Training-BV7L6DKk.js b/frontend/dist/assets/Training-BV7L6DKk.js deleted file mode 100644 index e581fd9..0000000 --- a/frontend/dist/assets/Training-BV7L6DKk.js +++ /dev/null @@ -1 +0,0 @@ -import{k as x,p as f,c as i,a as e,t,u as s,i as o,f as l,l as c,m as p,e as _,F as v,n as k,r as h,q as b,o as n,x as w,y as B}from"./index-B1lw4PRH.js";import{_ as N}from"./_plugin-vue_export-helper-DlAUqK2U.js";const A={class:"row",style:{"margin-bottom":"16px","align-items":"center"}},z={style:{margin:"0"}},C={class:"muted",style:{margin:"4px 0 0","font-size":"13px"}},$={key:0,style:{"margin-left":"auto"}},P={class:"primary"},T={key:0,class:"card",style:{"min-height":"120px"}},V={key:1,class:"card empty-state"},F={key:0},j={key:1},q={class:"grid"},D={class:"row",style:{"justify-content":"space-between","align-items":"center"}},E={key:0,class:"row",style:{gap:"6px"}},G={style:{padding:"6px 12px","min-height":"38px"}},I={style:{padding:"6px 12px","min-height":"38px"}},L={style:{margin:"10px 0 4px","font-weight":"700","font-size":"15px"}},M={class:"muted",style:{"font-size":"13px","margin-bottom":"12px"}},S={key:0,class:"row",style:{gap:"8px","flex-wrap":"wrap","margin-top":"8px"}},H={class:"primary"},J={class:"primary"},K={key:2,class:"muted",style:{"font-size":"12px","margin-top":"8px"}},O={__name:"Training",setup(Q){const u=h([]),m=h(!0);function g(r){return r.sales_kit&&r.sales_kit.productName||r.input&&r.input.product||""}return x(async()=>{try{u.value=(await f.listGroups()).groups}finally{m.value=!1}}),(r,y)=>{const d=b("router-link");return n(),i("div",null,[e("div",A,[e("div",null,[e("h2",z,t(s(o).t("tabTraining")),1),e("p",C,t(s(o).t("selectPersona")),1)]),s(l).isAdmin?(n(),i("div",$,[c(d,{to:"/admin/new-group"},{default:p(()=>[e("button",P,"+ "+t(s(o).t("groupBuilder"))+" / "+t(s(o).t("groupBuilder"))+" "+t(s(o).t("create")),1)]),_:1})])):_("",!0)]),m.value?(n(),i("div",T,[...y[0]||(y[0]=[e("div",{class:"skeleton",style:{height:"60px"}},null,-1),e("div",{class:"skeleton",style:{height:"60px","margin-top":"10px"}},null,-1)])])):u.value.length===0?(n(),i("div",V,[e("strong",null,t(s(l).isAdmin?"No products yet":"No training products available"),1),s(l).isAdmin?(n(),i("span",F,t(s(o).t("groupBuilder"))+" to add a "+t(s(o).t("product"))+" + personas.",1)):(n(),i("span",j,"Ask an admin to add a "+t(s(o).t("product"))+".",1))])):_("",!0),e("div",q,[(n(!0),i(v,null,k(u.value,a=>(n(),i("div",{key:a.id,class:"card group-card lift"},[e("div",D,[e("span",{class:w(["badge",a.status])},t(a.status),3),s(l).isAdmin?(n(),i("span",E,[c(d,{to:`/groups/${a.id}/personas`},{default:p(()=>[e("button",G,t(s(o).t("personas"))+" ("+t((a.personas||[]).length)+")",1)]),_:2},1032,["to"]),c(d,{to:`/admin/groups/${a.id}/edit`},{default:p(()=>[e("button",I,t(s(o).t("edit")),1)]),_:1},8,["to"])])):_("",!0)]),e("div",L,t(a.title),1),e("div",M,t(g(a)),1),s(l).isAdmin?(n(),i("div",S,[c(d,{to:`/groups/${a.id}/personas`},{default:p(()=>[e("button",H,t(s(o).t("selectPersona")),1)]),_:1},8,["to"])])):a.status==="ready"?(n(),B(d,{key:1,to:`/groups/${a.id}/personas`},{default:p(()=>[e("button",J,t(s(o).t("selectPersona")),1)]),_:1},8,["to"])):(n(),i("div",K,"⏳ "+t(s(o).t("status"))+": "+t(a.status),1))]))),128))])])}}},W=N(O,[["__scopeId","data-v-d28970f8"]]);export{W as default}; diff --git a/frontend/dist/assets/Training-n3r0grEv.css b/frontend/dist/assets/Training-n3r0grEv.css deleted file mode 100644 index f27897e..0000000 --- a/frontend/dist/assets/Training-n3r0grEv.css +++ /dev/null @@ -1 +0,0 @@ -.grid[data-v-d28970f8]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.group-card[data-v-d28970f8]{display:flex;flex-direction:column}.group-card>a[data-v-d28970f8]{margin-top:auto} diff --git a/frontend/dist/assets/WeakAreas-D4pzX9E5.js b/frontend/dist/assets/WeakAreas-D4pzX9E5.js deleted file mode 100644 index a3c63cd..0000000 --- a/frontend/dist/assets/WeakAreas-D4pzX9E5.js +++ /dev/null @@ -1 +0,0 @@ -import{k as _,p as m,c as l,a as s,t,u as c,i as v,l as y,m as g,F as r,n as i,e as k,r as x,q as w,o as n,x as f,j as d}from"./index-B1lw4PRH.js";import{_ as b}from"./_plugin-vue_export-helper-DlAUqK2U.js";const N={class:"row",style:{"align-items":"center"}},h={style:{margin:"0"}},A={class:"row",style:{gap:"16px",margin:"16px 0"}},C={class:"card stat"},T={class:"card stat"},V={class:"card stat"},B={key:0,class:"card muted"},W={class:"muted"},F={__name:"WeakAreas",setup(L){const a=x({wins:0,losses:0,total_sessions:0,by_tier:[],top_loss_personas:[]});return _(async()=>{a.value=(await m.weakAreas()).insight}),(j,e)=>{const u=w("router-link");return n(),l("div",null,[s("div",N,[s("h2",h,t(c(v).t("weakAreas")),1),y(u,{to:"/my/generate?mode=weak",style:{"margin-left":"auto"}},{default:g(()=>[...e[0]||(e[0]=[s("button",{class:"primary"},"🔒 Generate a lock persona",-1)])]),_:1})]),s("div",A,[s("div",C,[e[1]||(e[1]=s("div",null,"Wins",-1)),s("strong",null,t(a.value.wins),1)]),s("div",T,[e[2]||(e[2]=s("div",null,"Losses",-1)),s("strong",null,t(a.value.losses),1)]),s("div",V,[e[3]||(e[3]=s("div",null,"Total",-1)),s("strong",null,t(a.value.total_sessions),1)])]),(n(!0),l(r,null,i(a.value.by_tier,o=>(n(),l("div",{key:o.value,class:"card",style:{"margin-bottom":"8px"}},[s("span",{class:f(["badge",o.value])},"Tier "+t(o.value),3),d(" — "+t(o.losses)+" losses ",1)]))),128)),e[5]||(e[5]=s("h3",{style:{"margin-top":"20px"}},"Top loss personas",-1)),!a.value.top_loss_personas||!a.value.top_loss_personas.length?(n(),l("div",B,"No losses yet — 🎉")):k("",!0),(n(!0),l(r,null,i(a.value.top_loss_personas,(o,p)=>(n(),l("div",{class:"card",key:p,style:{"margin-bottom":"8px"}},[s("strong",null,t(o.persona_name),1),d(" — score "+t(o.score),1),e[4]||(e[4]=s("br",null,null,-1)),s("span",W,t(o.why),1)]))),128))])}}},D=b(F,[["__scopeId","data-v-dd8a8071"]]);export{D as default}; diff --git a/frontend/dist/assets/WeakAreas-mVHNUVcG.js b/frontend/dist/assets/WeakAreas-mVHNUVcG.js new file mode 100644 index 0000000..4d18717 --- /dev/null +++ b/frontend/dist/assets/WeakAreas-mVHNUVcG.js @@ -0,0 +1 @@ +import{_ as p,k as m,l as c,c as l,a as s,t,u as v,i as y,m as g,n as k,F as r,p as i,e as w,r as x,q as f,o as n,s as b,j as d}from"./index-BA-KDOrj.js";const N={class:"row",style:{"align-items":"center"}},h={style:{margin:"0"}},A={class:"row",style:{gap:"16px",margin:"16px 0"}},C={class:"card stat"},T={class:"card stat"},V={class:"card stat"},B={key:0,class:"card muted"},W={class:"muted"},F={__name:"WeakAreas",setup(L){const a=x({wins:0,losses:0,total_sessions:0,by_tier:[],top_loss_personas:[]});return m(async()=>{a.value=(await c.weakAreas()).insight}),(j,e)=>{const u=f("router-link");return n(),l("div",null,[s("div",N,[s("h2",h,t(v(y).t("weakAreas")),1),g(u,{to:"/my/generate?mode=weak",style:{"margin-left":"auto"}},{default:k(()=>[...e[0]||(e[0]=[s("button",{class:"primary"},"🔒 Generate a lock persona",-1)])]),_:1})]),s("div",A,[s("div",C,[e[1]||(e[1]=s("div",null,"Wins",-1)),s("strong",null,t(a.value.wins),1)]),s("div",T,[e[2]||(e[2]=s("div",null,"Losses",-1)),s("strong",null,t(a.value.losses),1)]),s("div",V,[e[3]||(e[3]=s("div",null,"Total",-1)),s("strong",null,t(a.value.total_sessions),1)])]),(n(!0),l(r,null,i(a.value.by_tier,o=>(n(),l("div",{key:o.value,class:"card",style:{"margin-bottom":"8px"}},[s("span",{class:b(["badge",o.value])},"Tier "+t(o.value),3),d(" — "+t(o.losses)+" losses ",1)]))),128)),e[5]||(e[5]=s("h3",{style:{"margin-top":"20px"}},"Top loss personas",-1)),!a.value.top_loss_personas||!a.value.top_loss_personas.length?(n(),l("div",B,"No losses yet — 🎉")):w("",!0),(n(!0),l(r,null,i(a.value.top_loss_personas,(o,_)=>(n(),l("div",{class:"card",key:_,style:{"margin-bottom":"8px"}},[s("strong",null,t(o.persona_name),1),d(" — score "+t(o.score),1),e[4]||(e[4]=s("br",null,null,-1)),s("span",W,t(o.why),1)]))),128))])}}},z=p(F,[["__scopeId","data-v-dd8a8071"]]);export{z as default}; diff --git a/frontend/dist/assets/_plugin-vue_export-helper-DlAUqK2U.js b/frontend/dist/assets/_plugin-vue_export-helper-DlAUqK2U.js deleted file mode 100644 index 718edd3..0000000 --- a/frontend/dist/assets/_plugin-vue_export-helper-DlAUqK2U.js +++ /dev/null @@ -1 +0,0 @@ -const s=(t,r)=>{const o=t.__vccOpts||t;for(const[c,e]of r)o[c]=e;return o};export{s as _}; diff --git a/frontend/dist/assets/index-B1lw4PRH.js b/frontend/dist/assets/index-B1lw4PRH.js deleted file mode 100644 index 8a6eb44..0000000 --- a/frontend/dist/assets/index-B1lw4PRH.js +++ /dev/null @@ -1,27 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Login-B9kRT3Au.js","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/Login-D3svPLnW.css","assets/Setup-BN6K74g6.js","assets/Setup-BdS_6JlN.css","assets/WeakAreas-D4pzX9E5.js","assets/WeakAreas-CZWFyB_H.css","assets/GenPersona-C6rMCac6.js","assets/GenPersona-CDFUWMM8.css","assets/Training-BV7L6DKk.js","assets/Training-n3r0grEv.css","assets/Personas-hA5thick.js","assets/Personas-GPRGTf-A.css","assets/Chat-D-rkKKd4.js","assets/Chat-D5cDjkYb.css","assets/GroupEdit-Cb7ZBl3o.js","assets/GroupEdit-BpqVXcH5.css","assets/Analytics-D4Q7AW2d.js","assets/Analytics-CtniKRSj.css"])))=>i.map(i=>d[i]); -(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 i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();/** -* @vue/shared v3.5.41 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function Fs(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const Z={},kt=[],Je=()=>{},si=()=>!1,jn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Gn=e=>e.startsWith("onUpdate:"),pe=Object.assign,Bs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Co=Object.prototype.hasOwnProperty,q=(e,t)=>Co.call(e,t),V=Array.isArray,Ht=e=>vn(e)==="[object Map]",Jt=e=>vn(e)==="[object Set]",or=e=>vn(e)==="[object Date]",H=e=>typeof e=="function",re=e=>typeof e=="string",Ye=e=>typeof e=="symbol",z=e=>e!==null&&typeof e=="object",ri=e=>(z(e)||H(e))&&H(e.then)&&H(e.catch),ii=Object.prototype.toString,vn=e=>ii.call(e),Oo=e=>vn(e).slice(8,-1),oi=e=>vn(e)==="[object Object]",ks=e=>re(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,rn=Fs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Kn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Io=/-\w/g,Se=Kn(e=>e.replace(Io,t=>t.slice(1).toUpperCase())),No=/\B([A-Z])/g,Et=Kn(e=>e.replace(No,"-$1").toLowerCase()),Wn=Kn(e=>e.charAt(0).toUpperCase()+e.slice(1)),ss=Kn(e=>e?`on${Wn(e)}`:""),ze=(e,t)=>!Object.is(e,t),Cn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},$n=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let lr;const qn=()=>lr||(lr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Hs(e){if(V(e)){const t={};for(let n=0;n{if(n){const s=n.split(Do);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Ut(e){let t="";if(re(e))t=e;else if(V(e))for(let n=0;nvt(n,t))}const ai=e=>!!(e&&e.__v_isRef===!0),tt=e=>re(e)?e:e==null?"":V(e)||z(e)&&(e.toString===ii||!H(e.toString))?ai(e)?tt(e.value):JSON.stringify(e,ui,2):String(e),ui=(e,t)=>ai(t)?ui(e,t.value):Ht(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],i)=>(n[rs(s,i)+" =>"]=r,n),{})}:Jt(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>rs(n))}:Ye(t)?rs(t):z(t)&&!V(t)&&!oi(t)?String(t):t,rs=(e,t="")=>{var n;return Ye(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** -* @vue/reactivity v3.5.41 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let de;class Ho{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&&de&&(de.active?(this.parent=de,this.index=(de.scopes||(de.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){const s=this.scopes.slice();for(t=0,n=s.length;t0&&--this._on===0){if(de===this)de=this.prevScope;else{let t=de;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(ln){let t=ln;for(ln=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;on;){let t=on;for(on=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 pi(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),Ks(s),jo(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function ws(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(mi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function mi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===dn)||(e.globalVersion=dn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ws(e))))return;e.flags|=2;const t=e.dep,n=ee,s=Ne;ee=e,Ne=!0;try{pi(e);const r=e.fn(e._value);(t.version===0||ze(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{ee=n,Ne=s,gi(e),e.flags&=-3}}function Ks(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 i=n.computed.deps;i;i=i.nextDep)Ks(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function jo(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ne=!0;const _i=[];function ct(){_i.push(Ne),Ne=!1}function at(){const e=_i.pop();Ne=e===void 0?!0:e}function cr(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ee;ee=void 0;try{t()}finally{ee=n}}}let dn=0;class Go{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 Ws{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(!ee||!Ne||ee===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ee)n=this.activeLink=new Go(ee,this),ee.deps?(n.prevDep=ee.depsTail,ee.depsTail.nextDep=n,ee.depsTail=n):ee.deps=ee.depsTail=n,yi(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=ee.depsTail,n.nextDep=void 0,ee.depsTail.nextDep=n,ee.depsTail=n,ee.deps===n&&(ee.deps=s)}return n}trigger(t){this.version++,dn++,this.notify(t)}notify(t){js();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Gs()}}}function yi(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)yi(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Ss=new WeakMap,Pt=Symbol(""),As=Symbol(""),hn=Symbol("");function ge(e,t,n){if(Ne&&ee){let s=Ss.get(e);s||Ss.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new Ws),r.map=s,r.key=n),r.track()}}function it(e,t,n,s,r,i){const o=Ss.get(e);if(!o){dn++;return}const l=c=>{c&&c.trigger()};if(js(),t==="clear")o.forEach(l);else{const c=V(e),f=c&&ks(n);if(c&&n==="length"){const u=Number(s);o.forEach((h,g)=>{(g==="length"||g===hn||!Ye(g)&&g>=u)&&l(h)})}else switch((n!==void 0||o.has(void 0))&&l(o.get(n)),f&&l(o.get(hn)),t){case"add":c?f&&l(o.get("length")):(l(o.get(Pt)),Ht(e)&&l(o.get(As)));break;case"delete":c||(l(o.get(Pt)),Ht(e)&&l(o.get(As)));break;case"set":Ht(e)&&l(o.get(Pt));break}}Gs()}function Dt(e){const t=$(e);return t===e?t:(ge(t,"iterate",hn),Ie(e)?t:t.map(De))}function zn(e){return ge(e=$(e),"iterate",hn),e}function $e(e,t){return ut(e)?Kt(Ct(e)?De(t):t):De(t)}const Ko={__proto__:null,[Symbol.iterator](){return os(this,Symbol.iterator,e=>$e(this,e))},concat(...e){return Dt(this).concat(...e.map(t=>V(t)?Dt(t):t))},entries(){return os(this,"entries",e=>(e[1]=$e(this,e[1]),e))},every(e,t){return Xe(this,"every",e,t,void 0,arguments)},filter(e,t){return Xe(this,"filter",e,t,n=>n.map(s=>$e(this,s)),arguments)},find(e,t){return Xe(this,"find",e,t,n=>$e(this,n),arguments)},findIndex(e,t){return Xe(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Xe(this,"findLast",e,t,n=>$e(this,n),arguments)},findLastIndex(e,t){return Xe(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Xe(this,"forEach",e,t,void 0,arguments)},includes(...e){return ls(this,"includes",e)},indexOf(...e){return ls(this,"indexOf",e)},join(e){return Dt(this).join(e)},lastIndexOf(...e){return ls(this,"lastIndexOf",e)},map(e,t){return Xe(this,"map",e,t,void 0,arguments)},pop(){return Zt(this,"pop")},push(...e){return Zt(this,"push",e)},reduce(e,...t){return ar(this,"reduce",e,t)},reduceRight(e,...t){return ar(this,"reduceRight",e,t)},shift(){return Zt(this,"shift")},some(e,t){return Xe(this,"some",e,t,void 0,arguments)},splice(...e){return Zt(this,"splice",e)},toReversed(){return Dt(this).toReversed()},toSorted(e){return Dt(this).toSorted(e)},toSpliced(...e){return Dt(this).toSpliced(...e)},unshift(...e){return Zt(this,"unshift",e)},values(){return os(this,"values",e=>$e(this,e))}};function os(e,t,n){const s=zn(e),r=s[t]();return s!==e&&!Ie(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.done||(i.value=n(i.value)),i}),r}const Wo=Array.prototype;function Xe(e,t,n,s,r,i){const o=zn(e),l=o!==e&&!Ie(e),c=o[t];if(c!==Wo[t]){const h=c.apply(e,i);return l?De(h):h}let f=n;o!==e&&(l?f=function(h,g){return n.call(this,$e(e,h),g,e)}:n.length>2&&(f=function(h,g){return n.call(this,h,g,e)}));const u=c.call(o,f,s);return l&&r?r(u):u}function ar(e,t,n,s){const r=zn(e),i=r!==e&&!Ie(e);let o=n,l=!1;r!==e&&(i?(l=s.length===0,o=function(f,u,h){return l&&(l=!1,f=$e(e,f)),n.call(this,f,$e(e,u),h,e)}):n.length>3&&(o=function(f,u,h){return n.call(this,f,u,h,e)}));const c=r[t](o,...s);return l?$e(e,c):c}function ls(e,t,n){const s=$(e);ge(s,"iterate",hn);const r=s[t](...n);return(r===-1||r===!1)&&zs(n[0])?(n[0]=$(n[0]),s[t](...n)):r}function Zt(e,t,n=[]){ct(),js();const s=$(e)[t].apply(e,n);return Gs(),at(),s}const $o=Fs("__proto__,__v_isRef,__isVue"),vi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ye));function qo(e){Ye(e)||(e=String(e));const t=$(this);return ge(t,"has",e),t.hasOwnProperty(e)}class bi{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,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(r?i?sl:Ai:i?Si:wi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=V(t);if(!r){let c;if(o&&(c=Ko[n]))return c;if(n==="hasOwnProperty")return qo}const l=Reflect.get(t,n,_e(t)?t:s);if((Ye(n)?vi.has(n):$o(n))||(r||ge(t,"get",n),i))return l;if(_e(l)){const c=o&&ks(n)?l:l.value;return r&&z(c)?Rs(c):c}return z(l)?r?Rs(l):Yt(l):l}}class Ei extends bi{constructor(t=!1){super(!1,t)}set(t,n,s,r){let i=t[n];const o=V(t)&&ks(n);if(!this._isShallow){const f=ut(i);if(!Ie(s)&&!ut(s)&&(i=$(i),s=$(s)),!o&&_e(i)&&!_e(s))return f||(i.value=s),!0}const l=o?Number(n)e,wn=e=>Reflect.getPrototypeOf(e);function Xo(e,t,n){return function(...s){const r=this.__v_raw,i=$(r),o=Ht(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,f=r[e](...s),u=n?xs:t?Kt:De;return!t&&ge(i,"iterate",c?As:Pt),pe(Object.create(f),{next(){const{value:h,done:g}=f.next();return g?{value:h,done:g}:{value:l?[u(h[0]),u(h[1])]:u(h),done:g}}})}}function Sn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Zo(e,t){const n={get(r){const i=this.__v_raw,o=$(i),l=$(r);e||(ze(r,l)&&ge(o,"get",r),ge(o,"get",l));const{has:c}=wn(o),f=t?xs:e?Kt:De;if(c.call(o,r))return f(i.get(r));if(c.call(o,l))return f(i.get(l));i!==o&&i.get(r)},get size(){const r=this.__v_raw;return!e&&ge($(r),"iterate",Pt),r.size},has(r){const i=this.__v_raw,o=$(i),l=$(r);return e||(ze(r,l)&&ge(o,"has",r),ge(o,"has",l)),r===l?i.has(r):i.has(r)||i.has(l)},forEach(r,i){const o=this,l=o.__v_raw,c=$(l),f=t?xs:e?Kt:De;return!e&&ge(c,"iterate",Pt),l.forEach((u,h)=>r.call(i,f(u),f(h),o))}};return pe(n,e?{add:Sn("add"),set:Sn("set"),delete:Sn("delete"),clear:Sn("clear")}:{add(r){const i=$(this),o=wn(i),l=$(r),c=!t&&!Ie(r)&&!ut(r)?l:r;return o.has.call(i,c)||ze(r,c)&&o.has.call(i,r)||ze(l,c)&&o.has.call(i,l)||(i.add(c),it(i,"add",c,c)),this},set(r,i){!t&&!Ie(i)&&!ut(i)&&(i=$(i));const o=$(this),{has:l,get:c}=wn(o);let f=l.call(o,r);f||(r=$(r),f=l.call(o,r));const u=c.call(o,r);return o.set(r,i),f?ze(i,u)&&it(o,"set",r,i):it(o,"add",r,i),this},delete(r){const i=$(this),{has:o,get:l}=wn(i);let c=o.call(i,r);c||(r=$(r),c=o.call(i,r)),l&&l.call(i,r);const f=i.delete(r);return c&&it(i,"delete",r,void 0),f},clear(){const r=$(this),i=r.size!==0,o=r.clear();return i&&it(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Xo(r,e,t)}),n}function $s(e,t){const n=Zo(e,t);return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(q(n,r)&&r in s?n:s,r,i)}const el={get:$s(!1,!1)},tl={get:$s(!1,!0)},nl={get:$s(!0,!1)};const wi=new WeakMap,Si=new WeakMap,Ai=new WeakMap,sl=new WeakMap;function rl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Yt(e){return ut(e)?e:qs(e,!1,Jo,el,wi)}function xi(e){return qs(e,!1,Qo,tl,Si)}function Rs(e){return qs(e,!0,Yo,nl,Ai)}function qs(e,t,n,s,r){if(!z(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=r.get(e);if(i)return i;const o=rl(Oo(e));if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function Ct(e){return ut(e)?Ct(e.__v_raw):!!(e&&e.__v_isReactive)}function ut(e){return!!(e&&e.__v_isReadonly)}function Ie(e){return!!(e&&e.__v_isShallow)}function zs(e){return e?!!e.__v_raw:!1}function $(e){const t=e&&e.__v_raw;return t?$(t):e}function il(e){return!q(e,"__v_skip")&&Object.isExtensible(e)&&li(e,"__v_skip",!0),e}const De=e=>z(e)?Yt(e):e,Kt=e=>z(e)?Rs(e):e;function _e(e){return e?e.__v_isRef===!0:!1}function ol(e){return Ri(e,!1)}function ll(e){return Ri(e,!0)}function Ri(e,t){return _e(e)?e:new cl(e,t)}class cl{constructor(t,n){this.dep=new Ws,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:$(t),this._value=n?t:De(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||Ie(t)||ut(t);t=s?t:$(t),ze(t,n)&&(this._rawValue=t,this._value=s?t:De(t),this.dep.trigger())}}function ce(e){return _e(e)?e.value:e}const al={get:(e,t,n)=>t==="__v_raw"?e:ce(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return _e(r)&&!_e(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Ti(e){return Ct(e)?e:new Proxy(e,al)}class ul{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Ws(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=dn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&ee!==this)return hi(this,!0),!0}get value(){const t=this.dep.track();return mi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function fl(e,t,n=!1){let s,r;return H(e)?s=e:(s=e.get,r=e.set),new ul(s,r,n)}const An={},Mn=new WeakMap;let Rt;function dl(e,t=!1,n=Rt){if(n){let s=Mn.get(n);s||Mn.set(n,s=[]),s.push(e)}}function hl(e,t,n=Z){const{immediate:s,deep:r,once:i,scheduler:o,augmentJob:l,call:c}=n,f=O=>r?O:Ie(O)||r===!1||r===0?ot(O,1):ot(O);let u,h,g,m,I=!1,x=!1;if(_e(e)?(h=()=>e.value,I=Ie(e)):Ct(e)?(h=()=>f(e),I=!0):V(e)?(x=!0,I=e.some(O=>Ct(O)||Ie(O)),h=()=>e.map(O=>{if(_e(O))return O.value;if(Ct(O))return f(O);if(H(O))return c?c(O,2):O()})):H(e)?t?h=c?()=>c(e,2):e:h=()=>{if(g){ct();try{g()}finally{at()}}const O=Rt;Rt=u;try{return c?c(e,3,[m]):e(m)}finally{Rt=O}}:h=Je,t&&r){const O=h,Q=r===!0?1/0:r;h=()=>ot(O(),Q)}const k=Uo(),F=()=>{u.stop(),k&&k.active&&Bs(k.effects,u)};if(i&&t){const O=t;t=(...Q)=>{const oe=O(...Q);return F(),oe}}let P=x?new Array(e.length).fill(An):An;const N=O=>{if(!(!(u.flags&1)||!u.dirty&&!O))if(t){const Q=u.run();if(O||r||I||(x?Q.some((oe,ne)=>ze(oe,P[ne])):ze(Q,P))){g&&g();const oe=Rt;Rt=u;try{const ne=[Q,P===An?void 0:x&&P[0]===An?[]:P,m];P=Q,c?c(t,3,ne):t(...ne)}finally{Rt=oe}}}else u.run()};return l&&l(N),u=new fi(h),u.scheduler=o?()=>o(N,!1):N,m=O=>dl(O,!1,u),g=u.onStop=()=>{const O=Mn.get(u);if(O){if(c)c(O,4);else for(const Q of O)Q();Mn.delete(u)}},t?s?N(!0):P=u.run():o?o(N.bind(null,!0),!0):u.run(),F.pause=u.pause.bind(u),F.resume=u.resume.bind(u),F.stop=F,F}function ot(e,t=1/0,n){if(t<=0||!z(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,_e(e))ot(e.value,t,n);else if(V(e))for(let s=0;s{ot(s,t,n)});else if(oi(e)){for(const s in e)ot(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&ot(e[s],t,n)}return e}/** -* @vue/runtime-core v3.5.41 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function bn(e,t,n,s){try{return s?e(...s):e()}catch(r){Jn(r,t,n)}}function Le(e,t,n,s){if(H(e)){const r=bn(e,t,n,s);return r&&ri(r)&&r.catch(i=>{Jn(i,t,n)}),r}if(V(e)){const r=[];for(let i=0;i>>1,r=Ee[s],i=pn(r);i=pn(n)?Ee.push(e):Ee.splice(gl(t),0,e),e.flags|=1,Ci()}}function Ci(){Dn||(Dn=Pi.then(Ii))}function ml(e){if(!V(e))_t&&e.id===-1?_t.splice(Lt+1,0,e):e.flags&1||(jt.push(e),e.flags|=1);else for(let t=0;tpn(n)-pn(s));if(jt.length=0,_t){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function Ii(e){try{for(We=0;We{s._d&&Bn(-1);const i=Ln(t),o=Ot.length;let l;try{l=e(...r)}finally{for(let c=Ot.length;c>o;c--)ro();Ln(i),s._d&&Bn(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function Ru(e,t){if(Te===null)return e;const n=es(Te),s=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&H(t)?t.call(s&&s.proxy):t}}const _l=Symbol.for("v-scx"),yl=()=>Me(_l);function In(e,t,n){return Mi(e,t,n)}function Mi(e,t,n=Z){const{immediate:s,deep:r,flush:i,once:o}=n,l=pe({},n),c=t&&s||!t&&i!=="post";let f;if(_n){if(i==="sync"){const m=yl();f=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=Je,m.resume=Je,m.pause=Je,m}}const u=me;l.call=(m,I,x)=>Le(m,u,I,x);let h=!1;i==="post"?l.scheduler=m=>{xe(m,u&&u.suspense)}:i!=="sync"&&(h=!0,l.scheduler=(m,I)=>{I?m():Ys(m)}),l.augmentJob=m=>{t&&(m.flags|=4),h&&(m.flags|=2,u&&(m.id=u.uid,m.i=u))};const g=hl(e,t,l);return _n&&(f?f.push(g):c&&g()),g}function vl(e,t,n){const s=this.proxy,r=re(e)?e.includes(".")?Di(s,e):()=>s[e]:e.bind(s,s);let i;H(t)?i=t:(i=t.handler,n=t);const o=En(this),l=Mi(r,i.bind(s),n);return o(),l}function Di(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;re.__isTeleport,cs=Symbol("_leaveCb");function El(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ft){t=n;break}}return t}function Li(e){if(!Xs(e))return Yn(e.type)&&e.children?El(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&H(n.default))return n.default()}}function Qs(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;Qs(Yn(n.type)&&Li(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Vi(e,t){return H(e)?pe({name:e.name},t,{setup:e}):e}function Fi(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function fr(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Vn=new WeakMap;function cn(e,t,n,s,r=!1){if(V(e)){e.forEach((x,k)=>cn(x,t&&(V(t)?t[k]:t),n,s,r));return}if(an(s)&&!r){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&cn(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?es(s.component):s.el,o=r?null:i,{i:l,r:c}=e,f=t&&t.r,u=l.refs===Z?l.refs={}:l.refs,h=l.setupState,g=$(h),m=h===Z?si:x=>fr(u,x)?!1:q(g,x),I=(x,k)=>!(k&&fr(u,k));if(f!=null&&f!==c){if(dr(t),re(f))u[f]=null,m(f)&&(h[f]=null);else if(_e(f)){const x=t;I(f,x.k)&&(f.value=null),x.k&&(u[x.k]=null)}}if(H(c))bn(c,l,12,[o,u]);else{const x=re(c),k=_e(c);if(x||k){const F=()=>{if(e.f){const P=x?m(c)?h[c]:u[c]:I()||!e.k?c.value:u[e.k];if(r)V(P)&&Bs(P,i);else if(V(P))P.includes(i)||P.push(i);else if(x)u[c]=[i],m(c)&&(h[c]=u[c]);else{const N=[i];I(c,e.k)&&(c.value=N),e.k&&(u[e.k]=N)}}else x?(u[c]=o,m(c)&&(h[c]=o)):k&&(I(c,e.k)&&(c.value=o),e.k&&(u[e.k]=o))};if(o){const P=()=>{F(),Vn.delete(e)};P.id=-1,Vn.set(e,P),xe(P,n)}else dr(e),F()}}}function dr(e){const t=Vn.get(e);t&&(t.flags|=8,Vn.delete(e))}qn().requestIdleCallback;qn().cancelIdleCallback;const an=e=>!!e.type.__asyncLoader,Xs=e=>e.type.__isKeepAlive;function wl(e,t){Bi(e,"a",t)}function Sl(e,t){Bi(e,"da",t)}function Bi(e,t,n=me){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Qn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Xs(r.parent.vnode)&&Al(s,t,n,r),r=r.parent}}function Al(e,t,n,s){const r=Qn(t,e,s,!0);Hi(()=>{Bs(s[t],r)},n)}function Qn(e,t,n=me,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{ct();const l=En(n),c=Le(t,n,e,o);return l(),at(),c});return s?r.unshift(i):r.push(i),i}}const dt=e=>(t,n=me)=>{(!_n||e==="sp")&&Qn(e,(...s)=>t(...s),n)},xl=dt("bm"),ki=dt("m"),Rl=dt("bu"),Tl=dt("u"),Pl=dt("bum"),Hi=dt("um"),Cl=dt("sp"),Ol=dt("rtg"),Il=dt("rtc");function Nl(e,t=me){Qn("ec",e,t)}const Ml="components";function hr(e,t){return Ll(Ml,e,!0,t)||e}const Dl=Symbol.for("v-ndc");function Ll(e,t,n=!0,s=!1){const r=Te||me;if(r){const i=r.type;{const l=vc(i,!1);if(l&&(l===t||l===Se(t)||l===Wn(Se(t))))return i}const o=pr(r[e]||i[e],t)||pr(r.appContext[e],t);return!o&&s?i:o}}function pr(e,t){return e&&(e[t]||e[Se(t)]||e[Wn(Se(t))])}function Tu(e,t,n,s){let r;const i=n,o=V(e);if(o||re(e)){const l=o&&Ct(e);let c=!1,f=!1;l&&(c=!Ie(e),f=ut(e),e=zn(e)),r=new Array(e.length);for(let u=0,h=e.length;ut(l,c,void 0,i));else{const l=Object.keys(e);r=new Array(l.length);for(let c=0,f=l.length;ce?ao(e)?es(e):Ts(e.parent):null,un=pe(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=>Ts(e.parent),$root:e=>Ts(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ji(e),$forceUpdate:e=>e.f||(e.f=()=>{Ys(e.update)}),$nextTick:e=>e.n||(e.n=Js.bind(e.proxy)),$watch:e=>vl.bind(e)}),as=(e,t)=>e!==Z&&!e.__isScriptSetup&&q(e,t),Vl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;if(t[0]!=="$"){const g=o[t];if(g!==void 0)switch(g){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(as(s,t))return o[t]=1,s[t];if(r!==Z&&q(r,t))return o[t]=2,r[t];if(q(i,t))return o[t]=3,i[t];if(n!==Z&&q(n,t))return o[t]=4,n[t];Ps&&(o[t]=0)}}const f=un[t];let u,h;if(f)return t==="$attrs"&&ge(e.attrs,"get",""),f(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(n!==Z&&q(n,t))return o[t]=4,n[t];if(h=c.config.globalProperties,q(h,t))return h[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return as(r,t)?(r[t]=n,!0):s!==Z&&q(s,t)?(s[t]=n,!0):q(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,props:i,type:o}},l){let c;return!!(n[l]||e!==Z&&l[0]!=="$"&&q(e,l)||as(t,l)||q(i,l)||q(s,l)||q(un,l)||q(r.config.globalProperties,l)||(c=o.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:q(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function gr(e){return V(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ps=!0;function Fl(e){const t=ji(e),n=e.proxy,s=e.ctx;Ps=!1,t.beforeCreate&&mr(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:f,created:u,beforeMount:h,mounted:g,beforeUpdate:m,updated:I,activated:x,deactivated:k,beforeDestroy:F,beforeUnmount:P,destroyed:N,unmounted:O,render:Q,renderTracked:oe,renderTriggered:ne,errorCaptured:Fe,serverPrefetch:ht,expose:Be,inheritAttrs:pt,components:wt,directives:ke,filters:Qt}=t;if(f&&Bl(f,s,null),o)for(const J in o){const K=o[J];H(K)&&(s[J]=K.bind(n))}if(r){const J=r.call(n,n);z(J)&&(e.data=Yt(J))}if(Ps=!0,i)for(const J in i){const K=i[J],Qe=H(K)?K.bind(n,n):H(K.get)?K.get.bind(n,n):Je,gt=!H(K)&&H(K.set)?K.set.bind(n):Je,He=we({get:Qe,set:gt});Object.defineProperty(s,J,{enumerable:!0,configurable:!0,get:()=>He.value,set:Ae=>He.value=Ae})}if(l)for(const J in l)Ui(l[J],s,n,J);if(c){const J=H(c)?c.call(n):c;Reflect.ownKeys(J).forEach(K=>{On(K,J[K])})}u&&mr(u,e,"c");function ae(J,K){V(K)?K.forEach(Qe=>J(Qe.bind(n))):K&&J(K.bind(n))}if(ae(xl,h),ae(ki,g),ae(Rl,m),ae(Tl,I),ae(wl,x),ae(Sl,k),ae(Nl,Fe),ae(Il,oe),ae(Ol,ne),ae(Pl,P),ae(Hi,O),ae(Cl,ht),V(Be))if(Be.length){const J=e.exposed||(e.exposed={});Be.forEach(K=>{Object.defineProperty(J,K,{get:()=>n[K],set:Qe=>n[K]=Qe,enumerable:!0})})}else e.exposed||(e.exposed={});Q&&e.render===Je&&(e.render=Q),pt!=null&&(e.inheritAttrs=pt),wt&&(e.components=wt),ke&&(e.directives=ke),ht&&Fi(e)}function Bl(e,t,n=Je){V(e)&&(e=Cs(e));for(const s in e){const r=e[s];let i;z(r)?"default"in r?i=Me(r.from||s,r.default,!0):i=Me(r.from||s):i=Me(r),_e(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function mr(e,t,n){Le(V(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ui(e,t,n,s){let r=s.includes(".")?Di(n,s):()=>n[s];if(re(e)){const i=t[e];H(i)&&In(r,i)}else if(H(e))In(r,e.bind(n));else if(z(e))if(V(e))e.forEach(i=>Ui(i,t,n,s));else{const i=H(e.handler)?e.handler.bind(n):t[e.handler];H(i)&&In(r,i,e)}}function ji(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(f=>Fn(c,f,o,!0)),Fn(c,t,o)),z(t)&&i.set(t,c),c}function Fn(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&Fn(e,i,n,!0),r&&r.forEach(o=>Fn(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=kl[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const kl={data:_r,props:yr,emits:yr,methods:nn,computed:nn,beforeCreate:ve,created:ve,beforeMount:ve,mounted:ve,beforeUpdate:ve,updated:ve,beforeDestroy:ve,beforeUnmount:ve,destroyed:ve,unmounted:ve,activated:ve,deactivated:ve,errorCaptured:ve,serverPrefetch:ve,components:nn,directives:nn,watch:Ul,provide:_r,inject:Hl};function _r(e,t){return t?e?function(){return pe(H(e)?e.call(this,this):e,H(t)?t.call(this,this):t)}:t:e}function Hl(e,t){return nn(Cs(e),Cs(t))}function Cs(e){if(V(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Se(t)}Modifiers`]||e[`${Et(t)}Modifiers`];function Wl(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||Z;let r=n;const i=t.startsWith("update:"),o=i&&Kl(s,t.slice(7));o&&(o.trim&&(r=n.map(u=>re(u)?u.trim():u)),o.number&&(r=n.map($n)));let l,c=s[l=ss(t)]||s[l=ss(Se(t))];!c&&i&&(c=s[l=ss(Et(t))]),c&&Le(c,e,6,r);const f=s[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Le(f,e,6,r)}}const $l=new WeakMap;function Ki(e,t,n=!1){const s=n?$l:t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!H(e)){const c=f=>{const u=Ki(f,t,!0);u&&(l=!0,pe(o,u))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(z(e)&&s.set(e,null),null):(V(i)?i.forEach(c=>o[c]=null):pe(o,i),z(e)&&s.set(e,o),o)}function Xn(e,t){return!e||!jn(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),q(e,t[0].toLowerCase()+t.slice(1))||q(e,Et(t))||q(e,t))}function vr(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:c,render:f,renderCache:u,props:h,data:g,setupState:m,ctx:I,inheritAttrs:x}=e,k=Ln(e);let F,P;try{if(n.shapeFlag&4){const O=r||s,Q=O;F=qe(f.call(Q,O,u,h,m,g,I)),P=l}else{const O=t;F=qe(O.length>1?O(h,{attrs:l,slots:o,emit:c}):O(h,null)),P=t.props?l:ql(l)}}catch(O){Ot.length=0,Jn(O,e,1),F=ue(ft)}let N=F;if(P&&x!==!1){const O=Object.keys(P),{shapeFlag:Q}=N;O.length&&Q&7&&(i&&O.some(Gn)&&(P=zl(P,i)),N=Wt(N,P,!1,!0))}if(n.dirs&&(N=Wt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition){const O=Yn(N.type)&&Li(N)||N;Qs(O,n.transition)}return F=N,Ln(k),F}const ql=e=>{let t;for(const n in e)(n==="class"||n==="style"||jn(n))&&((t||(t={}))[n]=e[n]);return t},zl=(e,t)=>{const n={};for(const s in e)(!Gn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Jl(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,f=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?br(s,o,f):!!o;if(c&8){const u=t.dynamicProps;for(let h=0;hObject.create($i),zi=e=>Object.getPrototypeOf(e)===$i;function Ql(e,t,n,s=!1){const r={},i=qi();e.propsDefaults=Object.create(null),Ji(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:xi(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Xl(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=$(r),[c]=e.propsOptions;let f=!1;if((s||o>0)&&!(o&16)){if(o&8){const u=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[g,m]=Yi(h,t,!0);pe(o,g),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!i&&!c)return z(e)&&s.set(e,kt),kt;if(V(i))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",er=e=>V(e)?e.map(qe):[qe(e)],ec=(e,t,n)=>{if(t._n)return t;const s=Vt((...r)=>er(t(...r)),n);return s._c=!1,s},Qi=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Zs(r))continue;const i=e[r];if(H(i))t[r]=ec(r,i,s);else if(i!=null){const o=er(i);t[r]=()=>o}}},Xi=(e,t)=>{const n=er(t);e.slots.default=()=>n},Zi=(e,t,n)=>{for(const s in t)(n||!Zs(s))&&(e[s]=t[s])},tc=(e,t,n)=>{const s=e.slots=qi();if(e.vnode.shapeFlag&32){const r=t._;r?(Zi(s,t,n),n&&li(s,"_",r,!0)):Qi(t,s)}else t&&Xi(e,t)},nc=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=Z;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:Zi(r,t,n):(i=!t.$stable,Qi(t,r)),o=t}else t&&(Xi(e,t),o={default:1});if(i)for(const l in r)!Zs(l)&&o[l]==null&&delete r[l]},xe=lc;function sc(e){return rc(e)}function rc(e,t){const n=qn();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:f,setElementText:u,parentNode:h,nextSibling:g,setScopeId:m=Je,insertStaticContent:I}=e,x=(a,d,p,y=null,b=null,_=null,A=void 0,S=null,w=!!d.dynamicChildren)=>{if(a===d)return;a&&!en(a,d)&&(y=v(a),Ae(a,b,_,!0),a=null),d.patchFlag===-2&&(w=!1,d.dynamicChildren=null);const{type:E,ref:L,shapeFlag:T}=d;switch(E){case Zn:k(a,d,p,y);break;case ft:F(a,d,p,y);break;case fs:a==null&&P(d,p,y,A);break;case st:wt(a,d,p,y,b,_,A,S,w);break;default:T&1?Q(a,d,p,y,b,_,A,S,w):T&6?ke(a,d,p,y,b,_,A,S,w):(T&64||T&128)&&E.process(a,d,p,y,b,_,A,S,w,M)}L!=null&&b?cn(L,a&&a.ref,_,d||a,!d):L==null&&a&&a.ref!=null&&cn(a.ref,null,_,a,!0)},k=(a,d,p,y)=>{if(a==null)s(d.el=l(d.children),p,y);else{const b=d.el=a.el;d.children!==a.children&&f(b,d.children)}},F=(a,d,p,y)=>{a==null?s(d.el=c(d.children||""),p,y):d.el=a.el},P=(a,d,p,y)=>{[a.el,a.anchor]=I(a.children,d,p,y,a.el,a.anchor)},N=({el:a,anchor:d},p,y)=>{let b;for(;a&&a!==d;)b=g(a),s(a,p,y),a=b;s(d,p,y)},O=({el:a,anchor:d})=>{let p;for(;a&&a!==d;)p=g(a),r(a),a=p;r(d)},Q=(a,d,p,y,b,_,A,S,w)=>{if(d.type==="svg"?A="svg":d.type==="math"&&(A="mathml"),a==null)oe(d,p,y,b,_,A,S,w);else{const E=a.el&&a.el._isVueCE?a.el:null;try{E&&E._beginPatch(),ht(a,d,b,_,A,S,w)}finally{E&&E._endPatch()}}},oe=(a,d,p,y,b,_,A,S)=>{let w,E;const{props:L,shapeFlag:T,transition:D,dirs:B}=a;if(w=a.el=o(a.type,_,L&&L.is,L),T&8?u(w,a.children):T&16&&Fe(a.children,w,null,y,b,us(a,_),A,S),B&&At(a,null,y,"created"),ne(w,a,a.scopeId,A,y),L){for(const X in L)X!=="value"&&!rn(X)&&i(w,X,null,L[X],_,y);"value"in L&&i(w,"value",null,L.value,_),(E=L.onVnodeBeforeMount)&&Ke(E,y,a)}B&&At(a,null,y,"beforeMount");const j=ic(b,D);j&&D.beforeEnter(w),s(w,d,p),((E=L&&L.onVnodeMounted)||j||B)&&xe(()=>{try{E&&Ke(E,y,a),j&&D.enter(w),B&&At(a,null,y,"mounted")}finally{}},b)},ne=(a,d,p,y,b)=>{if(p&&m(a,p),y)for(let _=0;_{for(let E=w;E{const S=d.el=a.el;let{patchFlag:w,dynamicChildren:E,dirs:L}=d;w|=a.patchFlag&16;const T=a.props||Z,D=d.props||Z;let B;if(p&&xt(p,!1),(B=D.onVnodeBeforeUpdate)&&Ke(B,p,d,a),L&&At(d,a,p,"beforeUpdate"),p&&xt(p,!0),E&&(!a.dynamicChildren||a.dynamicChildren.length!==E.length)&&(w=0,A=!1,E=null),(T.innerHTML&&D.innerHTML==null||T.textContent&&D.textContent==null)&&u(S,""),E?Be(a.dynamicChildren,E,S,p,y,us(d,b),_):A||K(a,d,S,null,p,y,us(d,b),_,!1),w>0){if(w&16)pt(S,T,D,p,b);else if(w&2&&T.class!==D.class&&i(S,"class",null,D.class,b),w&4&&i(S,"style",T.style,D.style,b),w&8){const j=d.dynamicProps;for(let X=0;X{B&&Ke(B,p,d,a),L&&At(d,a,p,"updated")},y)},Be=(a,d,p,y,b,_,A)=>{for(let S=0;S{if(d!==p){if(d!==Z)for(const _ in d)!rn(_)&&!(_ in p)&&i(a,_,d[_],null,b,y);for(const _ in p){if(rn(_))continue;const A=p[_],S=d[_];A!==S&&_!=="value"&&i(a,_,S,A,b,y)}"value"in p&&i(a,"value",d.value,p.value,b)}},wt=(a,d,p,y,b,_,A,S,w)=>{const E=d.el=a?a.el:l(""),L=d.anchor=a?a.anchor:l("");let{patchFlag:T,dynamicChildren:D,slotScopeIds:B}=d;B&&(S=S?S.concat(B):B),a==null?(s(E,p,y),s(L,p,y),Fe(d.children||[],p,L,b,_,A,S,w)):T>0&&T&64&&D&&a.dynamicChildren&&a.dynamicChildren.length===D.length?(Be(a.dynamicChildren,D,p,b,_,A,S),(d.key!=null||b&&d===b.subTree)&&eo(a,d,!0)):K(a,d,p,L,b,_,A,S,w)},ke=(a,d,p,y,b,_,A,S,w)=>{d.slotScopeIds=S,a==null?d.shapeFlag&512?b.ctx.activate(d,p,y,A,w):Qt(d,p,y,b,_,A,w):It(a,d,w)},Qt=(a,d,p,y,b,_,A)=>{const S=a.component=hc(a,y,b);if(Xs(a)&&(S.ctx.renderer=M),gc(S,!1,A),S.asyncDep){if(b&&b.registerDep(S,ae,A),!a.el){const w=S.subTree=ue(ft);F(null,w,d,p),a.placeholder=w.el}}else ae(S,a,d,p,b,_,A)},It=(a,d,p)=>{const y=d.component=a.component;if(Jl(a,d,p))if(y.asyncDep&&!y.asyncResolved){J(y,d,p);return}else y.next=d,y.update();else d.el=a.el,y.vnode=d},ae=(a,d,p,y,b,_,A)=>{const S=()=>{if(a.isMounted){let{next:T,bu:D,u:B,parent:j,vnode:X}=a;{const je=to(a);if(je){T&&(T.el=X.el,J(a,T,A)),je.asyncDep.then(()=>{xe(()=>{a.isUnmounted||E()},b)});return}}let Y=T,ie;xt(a,!1),T?(T.el=X.el,J(a,T,A)):T=X,D&&Cn(D),(ie=T.props&&T.props.onVnodeBeforeUpdate)&&Ke(ie,j,T,X),xt(a,!0);const fe=vr(a),Ue=a.subTree;a.subTree=fe,x(Ue,fe,h(Ue.el),v(Ue),a,b,_),T.el=fe.el,Y===null&&Yl(a,fe.el),B&&xe(B,b),(ie=T.props&&T.props.onVnodeUpdated)&&xe(()=>Ke(ie,j,T,X),b)}else{let T;const{el:D,props:B}=d,{bm:j,m:X,parent:Y,root:ie,type:fe}=a,Ue=an(d);xt(a,!1),j&&Cn(j),!Ue&&(T=B&&B.onVnodeBeforeMount)&&Ke(T,Y,d),xt(a,!0);{ie.ce&&ie.ce._hasShadowRoot()&&ie.ce._injectChildStyle(fe,a.parent?a.parent.type:void 0);const je=a.subTree=vr(a);x(null,je,p,y,a,b,_),d.el=je.el}if(X&&xe(X,b),!Ue&&(T=B&&B.onVnodeMounted)){const je=d;xe(()=>Ke(T,Y,je),b)}(d.shapeFlag&256||Y&&an(Y.vnode)&&Y.vnode.shapeFlag&256)&&a.a&&xe(a.a,b),a.isMounted=!0,d=p=y=null}};a.scope.on();const w=a.effect=new fi(S);a.scope.off();const E=a.update=w.run.bind(w),L=a.job=w.runIfDirty.bind(w);L.i=a,L.id=a.uid,w.scheduler=()=>Ys(L),xt(a,!0),E()},J=(a,d,p)=>{d.component=a;const y=a.vnode.props;a.vnode=d,a.next=null,Xl(a,d.props,y,p),nc(a,d.children,p),ct(),ur(a),at()},K=(a,d,p,y,b,_,A,S,w=!1)=>{const E=a&&a.children,L=a?a.shapeFlag:0,T=d.children,{patchFlag:D,shapeFlag:B}=d;if(D>0){if(D&128){gt(E,T,p,y,b,_,A,S,w);return}else if(D&256){Qe(E,T,p,y,b,_,A,S,w);return}}B&8?(L&16&&Oe(E,b,_),T!==E&&u(p,T)):L&16?B&16?gt(E,T,p,y,b,_,A,S,w):Oe(E,b,_,!0):(L&8&&u(p,""),B&16&&Fe(T,p,y,b,_,A,S,w))},Qe=(a,d,p,y,b,_,A,S,w)=>{a=a||kt,d=d||kt;const E=a.length,L=d.length,T=Math.min(E,L);let D;for(D=0;DL?Oe(a,b,_,!0,!1,T):Fe(d,p,y,b,_,A,S,w,T)},gt=(a,d,p,y,b,_,A,S,w)=>{let E=0;const L=d.length;let T=a.length-1,D=L-1;for(;E<=T&&E<=D;){const B=a[E],j=d[E]=w?rt(d[E]):qe(d[E]);if(en(B,j))x(B,j,p,null,b,_,A,S,w);else break;E++}for(;E<=T&&E<=D;){const B=a[T],j=d[D]=w?rt(d[D]):qe(d[D]);if(en(B,j))x(B,j,p,null,b,_,A,S,w);else break;T--,D--}if(E>T){if(E<=D){const B=D+1,j=BD)for(;E<=T;)Ae(a[E],b,_,!0),E++;else{const B=E,j=E,X=new Map;for(E=j;E<=D;E++){const Re=d[E]=w?rt(d[E]):qe(d[E]);Re.key!=null&&X.set(Re.key,E)}let Y,ie=0;const fe=D-j+1;let Ue=!1,je=0;const Xt=new Array(fe);for(E=0;E=fe){Ae(Re,b,_,!0);continue}let Ge;if(Re.key!=null)Ge=X.get(Re.key);else for(Y=j;Y<=D;Y++)if(Xt[Y-j]===0&&en(Re,d[Y])){Ge=Y;break}Ge===void 0?Ae(Re,b,_,!0):(Xt[Ge-j]=E+1,Ge>=je?je=Ge:Ue=!0,x(Re,d[Ge],p,null,b,_,A,S,w),ie++)}const sr=Ue?oc(Xt):kt;for(Y=sr.length-1,E=fe-1;E>=0;E--){const Re=j+E,Ge=d[Re],rr=d[Re+1],ir=Re+1{const{el:_,type:A,transition:S,children:w,shapeFlag:E}=a;if(E&6){He(a.component.subTree,d,p,y);return}if(E&128){a.suspense.move(d,p,y);return}if(E&64){A.move(a,d,p,M);return}if(A===st){s(_,d,p);for(let T=0;TS.enter(_),b));else{const{leave:T,delayLeave:D,afterLeave:B}=S,j=()=>{a.ctx.isUnmounted?r(_):s(_,d,p)},X=()=>{const Y=_._isLeaving||!!_[cs];_._isLeaving&&_[cs](!0),S.persisted&&!Y?j():T(_,()=>{j(),B&&B()})};D?D(_,j,X):X()}else s(_,d,p)},Ae=(a,d,p,y=!1,b=!1)=>{const{type:_,props:A,ref:S,children:w,dynamicChildren:E,shapeFlag:L,patchFlag:T,dirs:D,cacheIndex:B,memo:j}=a;if(T===-2&&(b=!1),S!=null&&(ct(),cn(S,null,p,a,!0),at()),B!=null&&(d.renderCache[B]=void 0),L&256){d.ctx.deactivate(a);return}const X=L&1&&D,Y=!an(a);let ie;if(Y&&(ie=A&&A.onVnodeBeforeUnmount)&&Ke(ie,d,a),L&6)St(a.component,p,y);else{if(L&128){a.suspense.unmount(p,y);return}X&&At(a,null,d,"beforeUnmount"),L&64?a.type.remove(a,d,p,M,y):E&&!E.hasOnce&&(_!==st||T>0&&T&64)?Oe(E,d,p,!1,!0):(_===st&&T&384||!b&&L&16)&&Oe(w,d,p),y&&Nt(a)}const fe=j!=null&&B==null;(Y&&(ie=A&&A.onVnodeUnmounted)||X||fe)&&xe(()=>{ie&&Ke(ie,d,a),X&&At(a,null,d,"unmounted"),fe&&(a.el=null)},p)},Nt=a=>{const{type:d,el:p,anchor:y,transition:b}=a;if(d===st){Mt(p,y);return}if(d===fs){O(a);return}const _=()=>{r(p),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(a.shapeFlag&1&&b&&!b.persisted){const{leave:A,delayLeave:S}=b,w=()=>A(p,_);S?S(a.el,_,w):w()}else _()},Mt=(a,d)=>{let p;for(;a!==d;)p=g(a),r(a),a=p;r(d)},St=(a,d,p)=>{const{bum:y,scope:b,job:_,subTree:A,um:S,m:w,a:E}=a;wr(w),wr(E),y&&Cn(y),b.stop(),_&&(_.flags|=8,Ae(A,a,d,p)),S&&xe(S,d),xe(()=>{a.isUnmounted=!0},d)},Oe=(a,d,p,y=!1,b=!1,_=0)=>{for(let A=_;A{if(a.shapeFlag&6)return v(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const d=g(a.anchor||a.el),p=d&&d[bl];return p?g(p):d};let C=!1;const R=(a,d,p)=>{let y;a==null?d._vnode&&(Ae(d._vnode,null,null,!0),y=d._vnode.component):x(d._vnode||null,a,d,null,null,null,p),d._vnode=a,C||(C=!0,ur(y),Oi(),C=!1)},M={p:x,um:Ae,m:He,r:Nt,mt:Qt,mc:Fe,pc:K,pbc:Be,n:v,o:e};return{render:R,hydrate:void 0,createApp:Gl(R)}}function us({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 xt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ic(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function eo(e,t,n=!1){const s=e.children,r=t.children;if(V(s)&&V(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function to(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:to(t)}function wr(e){if(e)for(let t=0;te.__isSuspense;function lc(e,t){t&&t.pendingBranch?V(e)?t.effects.push(...e):t.effects.push(e):ml(e)}const st=Symbol.for("v-fgt"),Zn=Symbol.for("v-txt"),ft=Symbol.for("v-cmt"),fs=Symbol.for("v-stc"),Ot=[];let Pe=null;function Ft(e=!1){Ot.push(Pe=e?null:[])}function ro(){Ot.pop(),Pe=Ot[Ot.length-1]||null}let gn=1;function Bn(e,t=!1){gn+=e,e<0&&Pe&&t&&(Pe.hasOnce=!0)}function io(e){return e.dynamicChildren=gn>0?Pe||kt:null,ro(),gn>0&&Pe&&Pe.push(e),e}function xn(e,t,n,s,r,i){return io(G(e,t,n,s,r,i,!0))}function oo(e,t,n,s,r){return io(ue(e,t,n,s,r,!0))}function kn(e){return e?e.__v_isVNode===!0:!1}function en(e,t){return e.type===t.type&&e.key===t.key}const lo=({key:e})=>e??null,Nn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?re(e)||_e(e)||H(e)?{i:Te,r:e,k:t,f:!!n}:e:null);function G(e,t=null,n=null,s=0,r=null,i=e===st?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&lo(t),ref:t&&Nn(t),scopeId:Ni,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:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Te};return l?(Hn(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=re(n)?8:16),gn>0&&!o&&Pe&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Pe.push(c),c}const ue=cc;function cc(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===Dl)&&(e=ft),kn(e)){const l=Wt(e,t,!0);return n&&Hn(l,n),gn>0&&!i&&Pe&&(l.shapeFlag&6?Pe[Pe.indexOf(e)]=l:Pe.push(l)),l.patchFlag=-2,l}if(bc(e)&&(e=e.__vccOpts),t){t=ac(t);let{class:l,style:c}=t;l&&!re(l)&&(t.class=Ut(l)),z(c)&&(zs(c)&&!V(c)&&(c=pe({},c)),t.style=Hs(c))}const o=re(e)?1:so(e)?128:Yn(e)?64:z(e)?4:H(e)?2:0;return G(e,t,n,s,r,o,i,!0)}function ac(e){return e?zs(e)||zi(e)?pe({},e):e:null}function Wt(e,t,n=!1,s=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:c}=e,f=t?uc(r||{},t):r,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&lo(f),ref:t&&t.ref?n&&i?V(i)?i.concat(Nn(t)):[i,Nn(t)]:Nn(t):i,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!==st?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Wt(e.ssContent),ssFallback:e.ssFallback&&Wt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&Qs(u,c.clone(u)),u}function co(e=" ",t=0){return ue(Zn,null,e,t)}function Rn(e="",t=!1){return t?(Ft(),oo(ft,null,e)):ue(ft,null,e)}function qe(e){return e==null||typeof e=="boolean"?ue(ft):V(e)?ue(st,null,e.slice()):kn(e)?rt(e):ue(Zn,null,String(e))}function rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Wt(e)}function Hn(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(V(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Hn(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!zi(t)?t._ctx=Te:r===3&&Te&&(Te.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(H(t)){if(s&65){Hn(e,{default:t});return}t={default:t,_ctx:Te},n=32}else t=String(t),s&64?(n=16,t=[co(t)]):n=8;e.children=t,e.shapeFlag|=n}function uc(...e){const t={};for(let n=0;nme||Te;let Un,mn;{const e=qn(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};Un=t("__VUE_INSTANCE_SETTERS__",n=>me=n),mn=t("__VUE_SSR_SETTERS__",n=>_n=n)}const En=e=>{const t=me;return Un(e),e.scope.on(),()=>{e.scope.off(),Un(t)}},Sr=()=>{me&&me.scope.off(),Un(null)};function ao(e){return e.vnode.shapeFlag&4}let _n=!1;function gc(e,t=!1,n=!1){t&&mn(t);const{props:s,children:r}=e.vnode,i=ao(e);Ql(e,s,i,t),tc(e,r,n||t);const o=i?mc(e,t):void 0;return t&&mn(!1),o}function mc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Vl);const{setup:s}=n;if(s){ct();const r=e.setupContext=s.length>1?yc(e):null,i=En(e),o=bn(s,e,0,[e.props,r]),l=ri(o);if(at(),i(),(l||e.sp)&&!an(e)&&Fi(e),l){if(o.then(Sr,Sr),t)return o.then(c=>{mn(!0);try{Ar(e,c,t)}finally{mn(!1)}}).catch(c=>{Jn(c,e,0)});e.asyncDep=o}else Ar(e,o)}else uo(e)}function Ar(e,t,n){H(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:z(t)&&(e.setupState=Ti(t)),uo(e)}function uo(e,t,n){const s=e.type;e.render||(e.render=s.render||Je);{const r=En(e);ct();try{Fl(e)}finally{at(),r()}}}const _c={get(e,t){return ge(e,"get",""),e[t]}};function yc(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,_c),slots:e.slots,emit:e.emit,expose:t}}function es(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ti(il(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in un)return un[n](e)},has(t,n){return n in t||n in un}})):e.proxy}function vc(e,t=!0){return H(e)?e.displayName||e.name:e.name||t&&e.__name}function bc(e){return H(e)&&"__vccOpts"in e}const we=(e,t)=>fl(e,t,_n);function fo(e,t,n){try{Bn(-1);const s=arguments.length;return s===2?z(t)&&!V(t)?kn(t)?ue(e,null,[t]):ue(e,t):ue(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&kn(n)&&(n=[n]),ue(e,t,n))}finally{Bn(1)}}const Ec="3.5.41";/** -* @vue/runtime-dom v3.5.41 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Is;const xr=typeof window<"u"&&window.trustedTypes;if(xr)try{Is=xr.createPolicy("vue",{createHTML:e=>e})}catch{}const ho=Is?e=>Is.createHTML(e):e=>e,wc="http://www.w3.org/2000/svg",Sc="http://www.w3.org/1998/Math/MathML",nt=typeof document<"u"?document:null,Rr=nt&&nt.createElement("template"),Ac={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"?nt.createElementNS(wc,e):t==="mathml"?nt.createElementNS(Sc,e):n?nt.createElement(e,{is:n}):nt.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>nt.createTextNode(e),createComment:e=>nt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>nt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{Rr.innerHTML=ho(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const l=Rr.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[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},xc=Symbol("_vtc");function Rc(e,t,n){const s=e[xc];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Tr=Symbol("_vod"),Tc=Symbol("_vsh"),Pc=Symbol(""),Cc=/(?:^|;)\s*display\s*:/;function Oc(e,t,n){const s=e.style,r=re(n);let i=!1;if(n&&!r){if(t)if(re(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&sn(s,l,"")}else for(const o in t)n[o]==null&&sn(s,o,"");for(const o in n){o==="display"&&(i=!0);const l=n[o];l!=null?Nc(e,o,!re(t)&&t?t[o]:void 0,l)||sn(s,o,l):sn(s,o,"")}}else if(r){if(t!==n){const o=s[Pc];o&&(n+=";"+o),s.cssText=n,i=Cc.test(n)}}else t&&e.removeAttribute("style");Tr in e&&(e[Tr]=i?s.display:"",e[Tc]&&(s.display="none"))}const Pr=/\s*!important$/;function sn(e,t,n){if(V(n))n.forEach(s=>sn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Ic(e,t);Pr.test(n)?e.setProperty(Et(s),n.replace(Pr,""),"important"):e[s]=n}}const Cr=["Webkit","Moz","ms"],ds={};function Ic(e,t){const n=ds[t];if(n)return n;let s=Se(t);if(s!=="filter"&&s in e)return ds[t]=s;s=Wn(s);for(let r=0;rhs||(Bc.then(()=>hs=0),hs=Date.now());function Hc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;const r=n.value;if(V(r)){const i=s.stopImmediatePropagation;s.stopImmediatePropagation=()=>{i.call(s),s._stopped=!0};const o=r.slice(),l=[s];for(let c=0;ce.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Uc=(e,t,n,s,r,i)=>{const o=r==="svg";t==="class"?Rc(e,s,o):t==="style"?Oc(e,n,s):jn(t)?Gn(t)||Dc(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):jc(e,t,s,o))?(Nr(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ir(e,t,s,o,i,t!=="value")):e._isVueCE&&(Gc(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!re(s)))?Nr(e,Se(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Ir(e,t,s,o))};function jc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Dr(t)&&H(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 Dr(t)&&re(n)?!1:t in e}function Gc(e,t){const n=e._def.props;if(!n)return!1;const s=Se(t);return Array.isArray(n)?n.some(r=>Se(r)===s):Object.keys(n).some(r=>Se(r)===s)}const bt=e=>{const t=e.props["onUpdate:modelValue"]||!1;return V(t)?n=>Cn(t,n):t};function Kc(e){e.target.composing=!0}function Lr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ce=Symbol("_assign"),Tn=Symbol("_initialValue");function ps(e,t,n){return t&&(e=e.trim()),n&&(e=$n(e)),e}const Vr={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e.parentNode&&(e.type==="text"?e[Tn]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Tn]=e.defaultValue.replace(/\r\n?/g,` -`))),e[Ce]=bt(r);const i=s||r.props&&r.props.type==="number";lt(e,t?"change":"input",o=>{o.target.composing||e[Ce](ps(e.value,n,i))}),(n||i)&<(e,"change",()=>{e.value=ps(e.value,n,i)}),t||(lt(e,"compositionstart",Kc),lt(e,"compositionend",Lr),lt(e,"change",Lr))},mounted(e,{value:t,modifiers:{trim:n,number:s}}){const r=t??"",i=e[Tn];delete e[Tn],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[Ce](ps(e.value,n,s)):e.value=r},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:i}},o){if(e[Ce]=bt(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?$n(e.value):e.value,c=t??"";if(l===c)return;const f=e.getRootNode();(f instanceof Document||f instanceof ShadowRoot)&&f.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===c)||(e.value=c)}},Wc={deep:!0,created(e,t,n){e[Ce]=bt(n),lt(e,"change",()=>{const s=e._modelValue,r=$t(e),i=e.checked,o=e[Ce];if(V(s)){const l=Us(s,r),c=l!==-1;if(i&&!c)o(s.concat(r));else if(!i&&c){const f=[...s];f.splice(l,1),o(f)}}else if(Jt(s)){const l=new Set(s);i?l.add(r):l.delete(r),o(l)}else o(po(e,i))})},mounted:Fr,beforeUpdate(e,t,n){e[Ce]=bt(n),Fr(e,t,n)}};function Fr(e,{value:t,oldValue:n},s){e._modelValue=t;let r;if(V(t))r=Us(t,s.props.value)>-1;else if(Jt(t))r=t.has(s.props.value);else{if(t===n)return;r=vt(t,po(e,!0))}e.checked!==r&&(e.checked=r)}const $c={created(e,{value:t},n){e.checked=vt(t,n.props.value),e[Ce]=bt(n),lt(e,"change",()=>{e[Ce]($t(e))})},beforeUpdate(e,{value:t,oldValue:n},s){e[Ce]=bt(s),t!==n&&(e.checked=vt(t,s.props.value))}},qc={deep:!0,created(e,{value:t,modifiers:{number:n}},s){e._modelValue=t,lt(e,"change",()=>{const r=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?$n($t(i)):$t(i));e[Ce](e.multiple?Jt(e._modelValue)?new Set(r):r:r[0]),e._assigning=!0,Js(()=>{e._assigning=!1})}),e[Ce]=bt(s)},mounted(e,{value:t}){Br(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[Ce]=bt(n)},updated(e,{value:t}){e._assigning||Br(e,t)}};function Br(e,t){const n=e.multiple,s=V(t);if(!(n&&!s&&!Jt(t))){for(let r=0,i=e.options.length;rString(f)===String(l)):o.selected=Us(t,l)>-1}else o.selected=t.has(l);else if(vt($t(o),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function $t(e){return"_value"in e?e._value:e.value}function po(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Pu={created(e,t,n){Pn(e,t,n,null,"created")},mounted(e,t,n){Pn(e,t,n,null,"mounted")},beforeUpdate(e,t,n,s){Pn(e,t,n,s,"beforeUpdate")},updated(e,t,n,s){Pn(e,t,n,s,"updated")}};function zc(e,t){switch(e){case"SELECT":return qc;case"TEXTAREA":return Vr;default:switch(t){case"checkbox":return Wc;case"radio":return $c;default:return Vr}}}function Pn(e,t,n,s,r){const o=zc(e.tagName,n.props&&n.props.type)[r];o&&o(e,t,n,s)}const Jc=["ctrl","shift","alt","meta"],Yc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Jc.some(n=>e[`${n}Key`]&&!t.includes(n))},Cu=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const i=Et(r.key);if(t.some(o=>o===i||Qc[o]===i))return e(r)})},Xc=pe({patchProp:Uc},Ac);let kr;function Zc(){return kr||(kr=sc(Xc))}const ea=(...e)=>{const t=Zc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=na(s);if(!r)return;const i=t._component;!H(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=n(r,!1,ta(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t};function ta(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function na(e){return re(e)?document.querySelector(e):e}/*! - * vue-router v4.6.4 - * (c) 2025 Eduardo San Martin Morote - * @license MIT - */const Bt=typeof document<"u";function go(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function sa(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&go(e.default)}const W=Object.assign;function gs(e,t){const n={};for(const s in t){const r=t[s];n[s]=Ve(r)?r.map(e):e(r)}return n}const fn=()=>{},Ve=Array.isArray;function Hr(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const mo=/#/g,ra=/&/g,ia=/\//g,oa=/=/g,la=/\?/g,_o=/\+/g,ca=/%5B/g,aa=/%5D/g,yo=/%5E/g,ua=/%60/g,vo=/%7B/g,fa=/%7C/g,bo=/%7D/g,da=/%20/g;function tr(e){return e==null?"":encodeURI(""+e).replace(fa,"|").replace(ca,"[").replace(aa,"]")}function ha(e){return tr(e).replace(vo,"{").replace(bo,"}").replace(yo,"^")}function Ns(e){return tr(e).replace(_o,"%2B").replace(da,"+").replace(mo,"%23").replace(ra,"%26").replace(ua,"`").replace(vo,"{").replace(bo,"}").replace(yo,"^")}function pa(e){return Ns(e).replace(oa,"%3D")}function ga(e){return tr(e).replace(mo,"%23").replace(la,"%3F")}function ma(e){return ga(e).replace(ia,"%2F")}function yn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const _a=/\/$/,ya=e=>e.replace(_a,"");function ms(e,t,n="/"){let s,r={},i="",o="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(s=t.slice(0,c),i=t.slice(c,l>0?l:t.length),r=e(i.slice(1))),l>=0&&(s=s||t.slice(0,l),o=t.slice(l,t.length)),s=wa(s??t,n),{fullPath:s+i+o,path:s,query:r,hash:yn(o)}}function va(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Ur(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ba(e,t,n){const s=t.matched.length-1,r=n.matched.length-1;return s>-1&&s===r&&qt(t.matched[s],n.matched[r])&&Eo(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function qt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Eo(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Ea(e[n],t[n]))return!1;return!0}function Ea(e,t){return Ve(e)?jr(e,t):Ve(t)?jr(t,e):(e==null?void 0:e.valueOf())===(t==null?void 0:t.valueOf())}function jr(e,t){return Ve(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function wa(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 i=n.length-1,o,l;for(o=0;o1&&i--;else break;return n.slice(0,i).join("/")+"/"+s.slice(o).join("/")}const mt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Ms=function(e){return e.pop="pop",e.push="push",e}({}),_s=function(e){return e.back="back",e.forward="forward",e.unknown="",e}({});function Sa(e){if(!e)if(Bt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ya(e)}const Aa=/^[^#]+#/;function xa(e,t){return e.replace(Aa,"#")+t}function Ra(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 ts=()=>({left:window.scrollX,top:window.scrollY});function Ta(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=Ra(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 Gr(e,t){return(history.state?history.state.position-t:-1)+e}const Ds=new Map;function Pa(e,t){Ds.set(e,t)}function Ca(e){const t=Ds.get(e);return Ds.delete(e),t}function Oa(e){return typeof e=="string"||e&&typeof e=="object"}function wo(e){return typeof e=="string"||typeof e=="symbol"}let se=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 So=Symbol("");se.MATCHER_NOT_FOUND+"",se.NAVIGATION_GUARD_REDIRECT+"",se.NAVIGATION_ABORTED+"",se.NAVIGATION_CANCELLED+"",se.NAVIGATION_DUPLICATED+"";function zt(e,t){return W(new Error,{type:e,[So]:!0},t)}function Ze(e,t){return e instanceof Error&&So in e&&(t==null||!!(e.type&t))}const Ia=["params","query","hash"];function Na(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Ia)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Ma(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;sr&&Ns(r)):[s&&Ns(s)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function Da(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=Ve(s)?s.map(r=>r==null?null:""+r):s==null?s:""+s)}return t}const La=Symbol(""),Wr=Symbol(""),ns=Symbol(""),nr=Symbol(""),Ls=Symbol("");function tn(){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 yt(e,t,n,s,r,i=o=>o()){const o=s&&(s.enterCallbacks[r]=s.enterCallbacks[r]||[]);return()=>new Promise((l,c)=>{const f=g=>{g===!1?c(zt(se.NAVIGATION_ABORTED,{from:n,to:t})):g instanceof Error?c(g):Oa(g)?c(zt(se.NAVIGATION_GUARD_REDIRECT,{from:t,to:g})):(o&&s.enterCallbacks[r]===o&&typeof g=="function"&&o.push(g),l())},u=i(()=>e.call(s&&s.instances[r],t,n,f));let h=Promise.resolve(u);e.length<3&&(h=h.then(f)),h.catch(g=>c(g))})}function ys(e,t,n,s,r=i=>i()){const i=[];for(const o of e)for(const l in o.components){let c=o.components[l];if(!(t!=="beforeRouteEnter"&&!o.instances[l]))if(go(c)){const f=(c.__vccOpts||c)[t];f&&i.push(yt(f,n,s,o,l,r))}else{let f=c();i.push(()=>f.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${l}" at "${o.path}"`);const h=sa(u)?u.default:u;o.mods[l]=u,o.components[l]=h;const g=(h.__vccOpts||h)[t];return g&&yt(g,n,s,o,l,r)()}))}}return i}function Va(e,t){const n=[],s=[],r=[],i=Math.max(t.matched.length,e.matched.length);for(let o=0;oqt(f,l))?s.push(l):n.push(l));const c=e.matched[o];c&&(t.matched.find(f=>qt(f,c))||r.push(c))}return[n,s,r]}/*! - * vue-router v4.6.4 - * (c) 2025 Eduardo San Martin Morote - * @license MIT - */let Fa=()=>location.protocol+"//"+location.host;function Ao(e,t){const{pathname:n,search:s,hash:r}=t,i=e.indexOf("#");if(i>-1){let o=r.includes(e.slice(i))?e.slice(i).length:1,l=r.slice(o);return l[0]!=="/"&&(l="/"+l),Ur(l,"")}return Ur(n,e)+s+r}function Ba(e,t,n,s){let r=[],i=[],o=null;const l=({state:g})=>{const m=Ao(e,location),I=n.value,x=t.value;let k=0;if(g){if(n.value=m,t.value=g,o&&o===I){o=null;return}k=x?g.position-x.position:0}else s(m);r.forEach(F=>{F(n.value,I,{delta:k,type:Ms.pop,direction:k?k>0?_s.forward:_s.back:_s.unknown})})};function c(){o=n.value}function f(g){r.push(g);const m=()=>{const I=r.indexOf(g);I>-1&&r.splice(I,1)};return i.push(m),m}function u(){if(document.visibilityState==="hidden"){const{history:g}=window;if(!g.state)return;g.replaceState(W({},g.state,{scroll:ts()}),"")}}function h(){for(const g of i)g();i=[],window.removeEventListener("popstate",l),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",l),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:c,listen:f,destroy:h}}function $r(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?ts():null}}function ka(e){const{history:t,location:n}=window,s={value:Ao(e,n)},r={value:t.state};r.value||i(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(c,f,u){const h=e.indexOf("#"),g=h>-1?(n.host&&document.querySelector("base")?e:e.slice(h))+c:Fa()+e+c;try{t[u?"replaceState":"pushState"](f,"",g),r.value=f}catch(m){console.error(m),n[u?"replace":"assign"](g)}}function o(c,f){i(c,W({},t.state,$r(r.value.back,c,r.value.forward,!0),f,{position:r.value.position}),!0),s.value=c}function l(c,f){const u=W({},r.value,t.state,{forward:c,scroll:ts()});i(u.current,u,!0),i(c,W({},$r(s.value,c,null),{position:u.position+1},f),!1),s.value=c}return{location:s,state:r,push:l,replace:o}}function Ha(e){e=Sa(e);const t=ka(e),n=Ba(e,t.state,t.location,t.replace);function s(i,o=!0){o||n.pauseListeners(),history.go(i)}const r=W({location:"",base:e,go:s,createHref:xa.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 Tt=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var le=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}(le||{});const Ua={type:Tt.Static,value:""},ja=/[a-zA-Z0-9_]/;function Ga(e){if(!e)return[[]];if(e==="/")return[[Ua]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${f}": ${m}`)}let n=le.Static,s=n;const r=[];let i;function o(){i&&r.push(i),i=[]}let l=0,c,f="",u="";function h(){f&&(n===le.Static?i.push({type:Tt.Static,value:f}):n===le.Param||n===le.ParamRegExp||n===le.ParamRegExpEnd?(i.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${f}) must be alone in its segment. eg: '/:ids+.`),i.push({type:Tt.Param,value:f,regexp:u,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),f="")}function g(){f+=c}for(;lt.length?t.length===1&&t[0]===be.Static+be.Segment?1:-1:0}function xo(e,t){let n=0;const s=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const za={strict:!1,end:!0,sensitive:!1};function Ja(e,t,n){const s=$a(Ga(e.path),n),r=W(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Ya(e,t){const n=[],s=new Map;t=Hr(za,t);function r(h){return s.get(h)}function i(h,g,m){const I=!m,x=Yr(h);x.aliasOf=m&&m.record;const k=Hr(t,h),F=[x];if("alias"in h){const O=typeof h.alias=="string"?[h.alias]:h.alias;for(const Q of O)F.push(Yr(W({},x,{components:m?m.record.components:x.components,path:Q,aliasOf:m?m.record:x})))}let P,N;for(const O of F){const{path:Q}=O;if(g&&Q[0]!=="/"){const oe=g.record.path,ne=oe[oe.length-1]==="/"?"":"/";O.path=g.record.path+(Q&&ne+Q)}if(P=Ja(O,g,k),m?m.alias.push(P):(N=N||P,N!==P&&N.alias.push(P),I&&h.name&&!Qr(P)&&o(h.name)),Ro(P)&&c(P),x.children){const oe=x.children;for(let ne=0;ne{o(N)}:fn}function o(h){if(wo(h)){const g=s.get(h);g&&(s.delete(h),n.splice(n.indexOf(g),1),g.children.forEach(o),g.alias.forEach(o))}else{const g=n.indexOf(h);g>-1&&(n.splice(g,1),h.record.name&&s.delete(h.record.name),h.children.forEach(o),h.alias.forEach(o))}}function l(){return n}function c(h){const g=Za(h,n);n.splice(g,0,h),h.record.name&&!Qr(h)&&s.set(h.record.name,h)}function f(h,g){let m,I={},x,k;if("name"in h&&h.name){if(m=s.get(h.name),!m)throw zt(se.MATCHER_NOT_FOUND,{location:h});k=m.record.name,I=W(Jr(g.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),h.params&&Jr(h.params,m.keys.map(N=>N.name))),x=m.stringify(I)}else if(h.path!=null)x=h.path,m=n.find(N=>N.re.test(x)),m&&(I=m.parse(x),k=m.record.name);else{if(m=g.name?s.get(g.name):n.find(N=>N.re.test(g.path)),!m)throw zt(se.MATCHER_NOT_FOUND,{location:h,currentLocation:g});k=m.record.name,I=W({},g.params,h.params),x=m.stringify(I)}const F=[];let P=m;for(;P;)F.unshift(P.record),P=P.parent;return{name:k,path:x,params:I,matched:F,meta:Xa(F)}}e.forEach(h=>i(h));function u(){n.length=0,s.clear()}return{addRoute:i,resolve:f,removeRoute:o,clearRoutes:u,getRoutes:l,getRecordMatcher:r}}function Jr(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function Yr(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Qa(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 Qa(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 Qr(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Xa(e){return e.reduce((t,n)=>W(t,n.meta),{})}function Za(e,t){let n=0,s=t.length;for(;n!==s;){const i=n+s>>1;xo(e,t[i])<0?s=i:n=i+1}const r=eu(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function eu(e){let t=e;for(;t=t.parent;)if(Ro(t)&&xo(e,t)===0)return t}function Ro({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Xr(e){const t=Me(ns),n=Me(nr),s=we(()=>{const c=ce(e.to);return t.resolve(c)}),r=we(()=>{const{matched:c}=s.value,{length:f}=c,u=c[f-1],h=n.matched;if(!u||!h.length)return-1;const g=h.findIndex(qt.bind(null,u));if(g>-1)return g;const m=Zr(c[f-2]);return f>1&&Zr(u)===m&&h[h.length-1].path!==m?h.findIndex(qt.bind(null,c[f-2])):g}),i=we(()=>r.value>-1&&iu(n.params,s.value.params)),o=we(()=>r.value>-1&&r.value===n.matched.length-1&&Eo(n.params,s.value.params));function l(c={}){if(ru(c)){const f=t[ce(e.replace)?"replace":"push"](ce(e.to)).catch(fn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>f),f}return Promise.resolve()}return{route:s,href:we(()=>s.value.href),isActive:i,isExactActive:o,navigate:l}}function tu(e){return e.length===1?e[0]:e}const nu=Vi({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:Xr,setup(e,{slots:t}){const n=Yt(Xr(e)),{options:s}=Me(ns),r=we(()=>({[ei(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[ei(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&tu(t.default(n));return e.custom?i:fo("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},i)}}}),su=nu;function ru(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 iu(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(!Ve(r)||r.length!==s.length||s.some((i,o)=>i.valueOf()!==r[o].valueOf()))return!1}return!0}function Zr(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ei=(e,t,n)=>e??t??n,ou=Vi({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=Me(Ls),r=we(()=>e.route||s.value),i=Me(Wr,0),o=we(()=>{let f=ce(i);const{matched:u}=r.value;let h;for(;(h=u[f])&&!h.components;)f++;return f}),l=we(()=>r.value.matched[o.value]);On(Wr,we(()=>o.value+1)),On(La,l),On(Ls,r);const c=ol();return In(()=>[c.value,l.value,e.name],([f,u,h],[g,m,I])=>{u&&(u.instances[h]=f,m&&m!==u&&f&&f===g&&(u.leaveGuards.size||(u.leaveGuards=m.leaveGuards),u.updateGuards.size||(u.updateGuards=m.updateGuards))),f&&u&&(!m||!qt(u,m)||!g)&&(u.enterCallbacks[h]||[]).forEach(x=>x(f))},{flush:"post"}),()=>{const f=r.value,u=e.name,h=l.value,g=h&&h.components[u];if(!g)return ti(n.default,{Component:g,route:f});const m=h.props[u],I=m?m===!0?f.params:typeof m=="function"?m(f):m:null,k=fo(g,W({},I,t,{onVnodeUnmounted:F=>{F.component.isUnmounted&&(h.instances[u]=null)},ref:c}));return ti(n.default,{Component:k,route:f})||k}}});function ti(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const lu=ou;function cu(e){const t=Ya(e.routes,e),n=e.parseQuery||Ma,s=e.stringifyQuery||Kr,r=e.history,i=tn(),o=tn(),l=tn(),c=ll(mt);let f=mt;Bt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=gs.bind(null,v=>""+v),h=gs.bind(null,ma),g=gs.bind(null,yn);function m(v,C){let R,M;return wo(v)?(R=t.getRecordMatcher(v),M=C):M=v,t.addRoute(M,R)}function I(v){const C=t.getRecordMatcher(v);C&&t.removeRoute(C)}function x(){return t.getRoutes().map(v=>v.record)}function k(v){return!!t.getRecordMatcher(v)}function F(v,C){if(C=W({},C||c.value),typeof v=="string"){const p=ms(n,v,C.path),y=t.resolve({path:p.path},C),b=r.createHref(p.fullPath);return W(p,y,{params:g(y.params),hash:yn(p.hash),redirectedFrom:void 0,href:b})}let R;if(v.path!=null)R=W({},v,{path:ms(n,v.path,C.path).path});else{const p=W({},v.params);for(const y in p)p[y]==null&&delete p[y];R=W({},v,{params:h(p)}),C.params=h(C.params)}const M=t.resolve(R,C),U=v.hash||"";M.params=u(g(M.params));const a=va(s,W({},v,{hash:ha(U),path:M.path})),d=r.createHref(a);return W({fullPath:a,hash:U,query:s===Kr?Da(v.query):v.query||{}},M,{redirectedFrom:void 0,href:d})}function P(v){return typeof v=="string"?ms(n,v,c.value.path):W({},v)}function N(v,C){if(f!==v)return zt(se.NAVIGATION_CANCELLED,{from:C,to:v})}function O(v){return ne(v)}function Q(v){return O(W(P(v),{replace:!0}))}function oe(v,C){const R=v.matched[v.matched.length-1];if(R&&R.redirect){const{redirect:M}=R;let U=typeof M=="function"?M(v,C):M;return typeof U=="string"&&(U=U.includes("?")||U.includes("#")?U=P(U):{path:U},U.params={}),W({query:v.query,hash:v.hash,params:U.path!=null?{}:v.params},U)}}function ne(v,C){const R=f=F(v),M=c.value,U=v.state,a=v.force,d=v.replace===!0,p=oe(R,M);if(p)return ne(W(P(p),{state:typeof p=="object"?W({},U,p.state):U,force:a,replace:d}),C||R);const y=R;y.redirectedFrom=C;let b;return!a&&ba(s,M,R)&&(b=zt(se.NAVIGATION_DUPLICATED,{to:y,from:M}),He(M,M,!0,!1)),(b?Promise.resolve(b):Be(y,M)).catch(_=>Ze(_)?Ze(_,se.NAVIGATION_GUARD_REDIRECT)?_:gt(_):K(_,y,M)).then(_=>{if(_){if(Ze(_,se.NAVIGATION_GUARD_REDIRECT))return ne(W({replace:d},P(_.to),{state:typeof _.to=="object"?W({},U,_.to.state):U,force:a}),C||y)}else _=wt(y,M,!0,d,U);return pt(y,M,_),_})}function Fe(v,C){const R=N(v,C);return R?Promise.reject(R):Promise.resolve()}function ht(v){const C=Mt.values().next().value;return C&&typeof C.runWithContext=="function"?C.runWithContext(v):v()}function Be(v,C){let R;const[M,U,a]=Va(v,C);R=ys(M.reverse(),"beforeRouteLeave",v,C);for(const p of M)p.leaveGuards.forEach(y=>{R.push(yt(y,v,C))});const d=Fe.bind(null,v,C);return R.push(d),Oe(R).then(()=>{R=[];for(const p of i.list())R.push(yt(p,v,C));return R.push(d),Oe(R)}).then(()=>{R=ys(U,"beforeRouteUpdate",v,C);for(const p of U)p.updateGuards.forEach(y=>{R.push(yt(y,v,C))});return R.push(d),Oe(R)}).then(()=>{R=[];for(const p of a)if(p.beforeEnter)if(Ve(p.beforeEnter))for(const y of p.beforeEnter)R.push(yt(y,v,C));else R.push(yt(p.beforeEnter,v,C));return R.push(d),Oe(R)}).then(()=>(v.matched.forEach(p=>p.enterCallbacks={}),R=ys(a,"beforeRouteEnter",v,C,ht),R.push(d),Oe(R))).then(()=>{R=[];for(const p of o.list())R.push(yt(p,v,C));return R.push(d),Oe(R)}).catch(p=>Ze(p,se.NAVIGATION_CANCELLED)?p:Promise.reject(p))}function pt(v,C,R){l.list().forEach(M=>ht(()=>M(v,C,R)))}function wt(v,C,R,M,U){const a=N(v,C);if(a)return a;const d=C===mt,p=Bt?history.state:{};R&&(M||d?r.replace(v.fullPath,W({scroll:d&&p&&p.scroll},U)):r.push(v.fullPath,U)),c.value=v,He(v,C,R,d),gt()}let ke;function Qt(){ke||(ke=r.listen((v,C,R)=>{if(!St.listening)return;const M=F(v),U=oe(M,St.currentRoute.value);if(U){ne(W(U,{replace:!0,force:!0}),M).catch(fn);return}f=M;const a=c.value;Bt&&Pa(Gr(a.fullPath,R.delta),ts()),Be(M,a).catch(d=>Ze(d,se.NAVIGATION_ABORTED|se.NAVIGATION_CANCELLED)?d:Ze(d,se.NAVIGATION_GUARD_REDIRECT)?(ne(W(P(d.to),{force:!0}),M).then(p=>{Ze(p,se.NAVIGATION_ABORTED|se.NAVIGATION_DUPLICATED)&&!R.delta&&R.type===Ms.pop&&r.go(-1,!1)}).catch(fn),Promise.reject()):(R.delta&&r.go(-R.delta,!1),K(d,M,a))).then(d=>{d=d||wt(M,a,!1),d&&(R.delta&&!Ze(d,se.NAVIGATION_CANCELLED)?r.go(-R.delta,!1):R.type===Ms.pop&&Ze(d,se.NAVIGATION_ABORTED|se.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),pt(M,a,d)}).catch(fn)}))}let It=tn(),ae=tn(),J;function K(v,C,R){gt(v);const M=ae.list();return M.length?M.forEach(U=>U(v,C,R)):console.error(v),Promise.reject(v)}function Qe(){return J&&c.value!==mt?Promise.resolve():new Promise((v,C)=>{It.add([v,C])})}function gt(v){return J||(J=!v,Qt(),It.list().forEach(([C,R])=>v?R(v):C()),It.reset()),v}function He(v,C,R,M){const{scrollBehavior:U}=e;if(!Bt||!U)return Promise.resolve();const a=!R&&Ca(Gr(v.fullPath,0))||(M||!R)&&history.state&&history.state.scroll||null;return Js().then(()=>U(v,C,a)).then(d=>d&&Ta(d)).catch(d=>K(d,v,C))}const Ae=v=>r.go(v);let Nt;const Mt=new Set,St={currentRoute:c,listening:!0,addRoute:m,removeRoute:I,clearRoutes:t.clearRoutes,hasRoute:k,getRoutes:x,resolve:F,options:e,push:O,replace:Q,go:Ae,back:()=>Ae(-1),forward:()=>Ae(1),beforeEach:i.add,beforeResolve:o.add,afterEach:l.add,onError:ae.add,isReady:Qe,install(v){v.component("RouterLink",su),v.component("RouterView",lu),v.config.globalProperties.$router=St,Object.defineProperty(v.config.globalProperties,"$route",{enumerable:!0,get:()=>ce(c)}),Bt&&!Nt&&c.value===mt&&(Nt=!0,O(r.location).catch(M=>{}));const C={};for(const M in mt)Object.defineProperty(C,M,{get:()=>c.value[M],enumerable:!0});v.provide(ns,St),v.provide(nr,xi(C)),v.provide(Ls,c);const R=v.unmount;Mt.add(v),v.unmount=function(){Mt.delete(v),Mt.size<1&&(f=mt,ke&&ke(),ke=null,c.value=mt,Nt=!1,J=!1),R()}}};function Oe(v){return v.reduce((C,R)=>C.then(()=>ht(R)),Promise.resolve())}return St}function au(){return Me(ns)}function uu(e){return Me(nr)}const Vs="st_token";function To(){return localStorage.getItem(Vs)}function vs(e){e?localStorage.setItem(Vs,e):localStorage.removeItem(Vs)}async function te(e,t,n,s=!1){const r={},i=To();i&&(r.Authorization=`Bearer ${i}`);let o=n;!s&&n!==void 0&&n!==null&&(r["Content-Type"]="application/json",o=JSON.stringify(n));const l=await fetch(t,{method:e,headers:r,body:o});let c=null;try{c=await l.json()}catch{}if(!l.ok){const f=c&&(c.error||c.message)||`HTTP ${l.status}`;throw new Error(f)}return c}const bs={login:(e,t)=>te("POST","/api/auth/login",{username:e,password:t}),me:()=>te("GET","/api/auth/me"),setup:e=>te("POST","/api/auth/setup",e),changePassword:e=>te("POST","/api/auth/change-password",e),updateProfile:e=>te("PUT","/api/auth/profile",e),adminCreateUser:e=>te("POST","/api/admin/users",e),adminListUsers:()=>te("GET","/api/admin/users"),adminUpdateUser:(e,t)=>te("PUT",`/api/admin/users/${e}`,t),createGroup:e=>te("POST","/api/groups",e,!0),listGroups:()=>te("GET","/api/groups"),getGroup:e=>te("GET",`/api/groups/${e}`),analyzeGroup:e=>te("POST",`/api/groups/${e}/analyze`),listPersonas:e=>te("GET",`/api/groups/${e}/personas`),getPersona:(e,t)=>te("GET",`/api/groups/${e}/personas/${t}`),updatePersona:(e,t,n)=>te("PUT",`/api/groups/${e}/personas/${t}`,n),chatStart:(e,t)=>te("POST",`/api/chat/${e}/personas/${t}/chat/start`),chatSend:(e,t,n)=>te("POST",`/api/chat/${e}/personas/${t}/chat/send`,{text:n}),chatFinish:(e,t)=>te("POST",`/api/chat/${e}/personas/${t}/chat/finish`),mySessions:()=>te("GET","/api/chat/sessions"),myBoard:()=>te("GET","/api/me/board"),weakAreas:()=>te("GET","/api/me/weak-areas"),myPersonas:()=>te("GET","/api/me/personas"),generatePersona:e=>te("POST","/api/me/personas/generate",e),analytics:()=>te("GET","/api/analytics"),analyticsWithQuery:e=>te("GET",`/api/analytics${e}`)},he=Yt({user:null,token:To(),mustSetup:!1,get role(){return this.user?this.user.role:null},get isAdmin(){return this.role==="admin"||this.role==="super_admin"},async load(){var e;if(!this.token)return null;try{const t=await bs.me();return this.user=t.user,this.mustSetup=!!((e=t.user)!=null&&e.must_setup),this.user}catch{return this.user=null,this.mustSetup=!1,vs(null),null}},async login(e,t){const n=await bs.login(e,t);return this.token=n.token,vs(n.token),this.user=n.user,this.mustSetup=!!n.must_setup,n.user},async finishSetup(e,t){const n=await bs.setup({username:this.user.username||this.user.id,email:e,password:t});return this.user=n.user,this.mustSetup=!1,n.user},logout(){this.user=null,this.token=null,this.mustSetup=!1,vs(null)}}),Es={en:{app:"Sales Trainer",login:"Login",logout:"Logout",username:"Username",email:"Email",password:"Password",newPassword:"New password",confirmPassword:"Confirm password",save:"Save",passwordTooShort:"Password must be at least 4 characters",passwordMismatch:"Passwords do not match",setupTitle:"Set up your account",setupSubtitle:"First login for ",loginError:"Invalid credentials",dashboard:"Dashboard",groups:"Persona Groups",myTraining:"My Training",adminTools:"Admin Tools",users:"Users",analytics:"Analytics",groupBuilder:"Group Builder",create:"Create",analyze:"Analyze",manual:"Manual",edit:"Edit",product:"Product",segment:"Initial customer segment (optional)",description:"Additional description / scenario (optional)",channel:"Channel",facebook:"Facebook",line:"LINE",language:"Language",thai:"Thai",english:"English",personas:"Personas",tierA:"Tier A — Ready to buy",tierB:"Tier B — Unsure",tierC:"Tier C — Not interested but has pain",selectPersona:"Select a persona to practice",chat:"Chat",start:"Start",send:"Send",finish:"Finish & get result",debrief:"Result & Coaching",won:"Won",lost:"Lost",notTried:"Not tried",score:"Score",pain:"Pain",why:"Reason",reveal:"Revealed persona details",generatePersona:"Generate my persona",weakAreas:"My weak areas",mySessions:"My sessions",openSaleTask:"The customer did NOT message first. You must open the sale.",sellerInitiated:"You must open the sale (outbound)",customerInitiated:"The customer will message you first",tabAdminDash:"Overview",tabMyDash:"My Dashboard",tabTraining:"Training",settings:"Settings",settingsTitle:"Settings",settingsProfile:"Profile",settingsSecurity:"Change password",settingsProfileDesc:"Update your display name and email.",settingsSecurityDesc:"Change your account password.",displayName:"Display name",currentPassword:"Current password",changePassword:"Change password",passwordChanged:"Password changed successfully",profileSaved:"Profile saved successfully",currentPasswordWrong:"Current password is incorrect",account:"Account",status:"Status",role:"Role",noData:"No data yet"},th:{app:"ตัวฝึกขาย",login:"เข้าสู่ระบบ",logout:"ออกจากระบบ",username:"ชื่อผู้ใช้",email:"อีเมล",password:"รหัสผ่าน",newPassword:"รหัสผ่านใหม่",confirmPassword:"ยืนยันรหัสผ่าน",save:"บันทึก",passwordTooShort:"รหัสผ่านต้องอย่างน้อย 4 ตัวอักษร",passwordMismatch:"รหัสผ่านไม่ตรงกัน",setupTitle:"ตั้งค่าบัญชีของคุณ",setupSubtitle:"เข้าสู่ระบบครั้งแรกสำหรับ ",loginError:"ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง",dashboard:"หน้าหลัก",groups:"กลุ่มลูกค้า (Persona)",myTraining:"การฝึกของฉัน",adminTools:"เครื่องมือ Admin",users:"ผู้ใช้",analytics:"สถิติ",groupBuilder:"สร้างกลุ่มลูกค้า",create:"สร้าง",analyze:"วิเคราะห์",manual:"กำหนดเอง",edit:"แก้ไข",product:"สินค้า/บริการ",segment:"กลุ่มลูกค้าเบื้องต้น (ไม่บังคับ)",description:"คำอธิบาย/สถานการณ์เพิ่มเติม (ไม่บังคับ)",channel:"ช่องทาง",facebook:"Facebook",line:"LINE",language:"ภาษา",thai:"ไทย",english:"อังกฤษ",personas:"Persona",tierA:"ระดับ A — ตั้งใจซื้อ",tierB:"ระดับ B — ยังไม่แน่ใจ",tierC:"ระดับ C — ไม่สนใจแต่มี pain",selectPersona:"เลือก persona เพื่อฝึก",chat:"แชท",start:"เริ่ม",send:"ส่ง",finish:"สรุปผล",debrief:"ผลลัพธ์และคำแนะนำ",won:"ขายได้",lost:"ขายไม่ได้",notTried:"ยังไม่ได้ฝึก",score:"คะแนน",pain:"Pain",why:"เหตุผล",reveal:"ข้อมูล persona ที่ถูกซ่อนไว้",generatePersona:"สร้าง persona ของฉัน",weakAreas:"จุดที่ฉันแพ้บ่อย",mySessions:"การฝึกของฉัน",openSaleTask:"ลูกค้ายังไม่ได้ทักมา คุณต้องเป็นฝ่ายเปิดการขายเอง",sellerInitiated:"คุณต้องเปิดการขาย (เชิงรุก)",customerInitiated:"ลูกค้าจะทักมาเองก่อน",tabAdminDash:"ภาพรวม",tabMyDash:"แดชบอร์ดของฉัน",tabTraining:"การฝึก",settings:"ตั้งค่า",settingsTitle:"ตั้งค่า",settingsProfile:"โปรไฟล์",settingsSecurity:"เปลี่ยนรหัสผ่าน",settingsProfileDesc:"อัปเดตชื่อและอีเมลของคุณ",settingsSecurityDesc:"เปลี่ยนรหัสผ่านบัญชีของคุณ",displayName:"ชื่อที่แสดง",currentPassword:"รหัสผ่านปัจจุบัน",changePassword:"เปลี่ยนรหัสผ่าน",passwordChanged:"เปลี่ยนรหัสผ่านสำเร็จ",profileSaved:"บันทึกโปรไฟล์สำเร็จ",currentPasswordWrong:"รหัสผ่านปัจจุบันไม่ถูกต้อง",account:"บัญชี",status:"สถานะ",role:"บทบาท",noData:"ยังไม่มีข้อมูล"}},et=Yt({locale:localStorage.getItem("locale")||"th",t(e){return Es[this.locale]&&Es[this.locale][e]||Es.en[e]||e},set(e){this.locale=e,localStorage.setItem("locale",e)}}),fu={class:"shell"},du={key:0,class:"shell-header"},hu={class:"shell-actions"},pu={class:"shell-user"},gu={class:"avatar"},mu={class:"muted"},_u={key:0,class:"badge"},yu=["title"],vu={key:1,class:"tabbar","aria-label":"Main"},bu={class:"shell-main"},Eu={__name:"App",setup(e){const t=au(),n=uu(),s=we(()=>{var u,h;return(((u=he.user)==null?void 0:u.name)||((h=he.user)==null?void 0:h.username)||"?").trim().slice(0,1).toUpperCase()}),r=we(()=>n.path==="/"),i=we(()=>n.path.startsWith("/my")),o=we(()=>n.path.startsWith("/training"));function l(){et.set(et.locale==="th"?"en":"th")}function c(){he.logout(),t.push("/login")}return ki(()=>{he.token&&!he.user&&he.load()}),(f,u)=>{const h=hr("router-link"),g=hr("router-view");return Ft(),xn("div",fu,[ce(he).user?(Ft(),xn("header",du,[ue(h,{to:"/",class:"shell-brand"},{default:Vt(()=>[u[0]||(u[0]=G("span",{class:"logo"},"🎯",-1)),co(" "+tt(ce(et).t("app")),1)]),_:1}),G("div",hu,[G("button",{onClick:l,class:"lang"},tt(ce(et).locale==="th"?"EN":"TH"),1),G("div",pu,[G("span",gu,tt(s.value),1),G("span",mu,tt(ce(he).user.name),1),ce(he).isAdmin?(Ft(),xn("span",_u,tt(ce(he).role),1)):Rn("",!0)]),ue(h,{to:"/settings",class:"icon-btn",title:ce(et).t("settings"),"aria-label":"Settings"},{default:Vt(()=>[...u[1]||(u[1]=[G("svg",{class:"icon-16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[G("circle",{cx:"12",cy:"12",r:"3"}),G("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33h0a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51h0a1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82v0a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})],-1)])]),_:1},8,["title"]),G("button",{class:"icon-btn",onClick:c,title:ce(et).t("logout"),"aria-label":"Logout"},[...u[2]||(u[2]=[G("svg",{class:"icon-16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[G("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),G("polyline",{points:"16 17 21 12 16 7"}),G("line",{x1:"21",y1:"12",x2:"9",y2:"12"})],-1)])],8,yu)])])):Rn("",!0),ce(he).user?(Ft(),xn("nav",vu,[ce(he).isAdmin?(Ft(),oo(h,{key:0,to:"/",class:Ut(["tab",{active:r.value}])},{default:Vt(()=>[u[3]||(u[3]=G("svg",{class:"tab-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[G("path",{d:"M3 3v18h18"}),G("path",{d:"M18 17V9"}),G("path",{d:"M13 17V5"}),G("path",{d:"M8 17v-3"})],-1)),G("span",null,tt(ce(et).t("tabAdminDash")),1)]),_:1},8,["class"])):Rn("",!0),ue(h,{to:"/my/board",class:Ut(["tab",{active:i.value}])},{default:Vt(()=>[u[4]||(u[4]=G("svg",{class:"tab-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[G("circle",{cx:"12",cy:"7",r:"4"}),G("path",{d:"M5 21v-2a7 7 0 0 1 14 0v2"})],-1)),G("span",null,tt(ce(et).t("tabMyDash")),1)]),_:1},8,["class"]),ue(h,{to:"/training",class:Ut(["tab",{active:o.value}])},{default:Vt(()=>[u[5]||(u[5]=G("svg",{class:"tab-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[G("path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}),G("path",{d:"M4 19.5V5a2 2 0 0 1 2-2h13a1 1 0 0 1 1 1v13.5"}),G("path",{d:"M9 7h6"}),G("path",{d:"M9 11h4"})],-1)),G("span",null,tt(ce(et).t("tabTraining")),1)]),_:1},8,["class"])])):Rn("",!0),G("main",bu,[ue(g)])])}}},wu="modulepreload",Su=function(e){return"/"+e},ni={},ye=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));r=Promise.allSettled(n.map(c=>{if(c=Su(c),c in ni)return;ni[c]=!0;const f=c.endsWith(".css"),u=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${u}`))return;const h=document.createElement("link");if(h.rel=f?"stylesheet":wu,f||(h.as="script"),h.crossOrigin="",h.href=c,l&&h.setAttribute("nonce",l),document.head.appendChild(h),f)return new Promise((g,m)=>{h.addEventListener("load",g),h.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return r.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})},Au=[{path:"/login",component:()=>ye(()=>import("./Login-B9kRT3Au.js"),__vite__mapDeps([0,1,2])),meta:{public:!0}},{path:"/setup",component:()=>ye(()=>import("./Setup-BN6K74g6.js"),__vite__mapDeps([3,1,4]))},{path:"/",component:()=>ye(()=>import("./Dashboard-DYRZN6Ut.js"),[]),meta:{admin:!0}},{path:"/my/board",component:()=>ye(()=>import("./MyBoard-FXk4x7AF.js"),[])},{path:"/my/sessions",component:()=>ye(()=>import("./MySessions-DePM3ACg.js"),[])},{path:"/my/weak-areas",component:()=>ye(()=>import("./WeakAreas-D4pzX9E5.js"),__vite__mapDeps([5,1,6]))},{path:"/my/generate",component:()=>ye(()=>import("./GenPersona-C6rMCac6.js"),__vite__mapDeps([7,1,8]))},{path:"/training",component:()=>ye(()=>import("./Training-BV7L6DKk.js"),__vite__mapDeps([9,1,10]))},{path:"/groups/:gid/personas",component:()=>ye(()=>import("./Personas-hA5thick.js"),__vite__mapDeps([11,1,12]))},{path:"/groups/:gid/chat/:pid",component:()=>ye(()=>import("./Chat-D-rkKKd4.js"),__vite__mapDeps([13,1,14]))},{path:"/settings",component:()=>ye(()=>import("./Settings-D6D_gNDm.js"),[])},{path:"/admin/new-group",component:()=>ye(()=>import("./GroupBuilder-sLZNwdMq.js"),[]),meta:{admin:!0}},{path:"/admin/groups/:gid/edit",component:()=>ye(()=>import("./GroupEdit-Cb7ZBl3o.js"),__vite__mapDeps([15,1,16])),meta:{admin:!0}},{path:"/admin/users",component:()=>ye(()=>import("./AdminUsers-D6GzLMgo.js"),[]),meta:{admin:!0}},{path:"/admin/analytics",component:()=>ye(()=>import("./Analytics-D4Q7AW2d.js"),__vite__mapDeps([17,1,18])),meta:{admin:!0}}],Po=cu({history:Ha(),routes:Au});function xu(e){return!!(e&&e.must_setup)}Po.beforeEach(async e=>e.meta.public?!0:(he.user||await he.load(),he.user?xu(he.user)&&e.path!=="/setup"?{path:"/setup"}:e.meta.admin&&!he.isAdmin?{path:"/my/board"}:!0:{path:"/login",query:{redirect:e.fullPath}}));ea(Eu).use(Po).mount("#app");export{Cu as A,Yt as B,qc as C,st as F,G as a,Ou as b,xn as c,Pu as d,Rn as e,he as f,au as g,uu as h,et as i,co as j,ki as k,ue as l,Vt as m,Tu as n,Ft as o,bs as p,hr as q,ol as r,we as s,tt as t,ce as u,Vr as v,Ru as w,Ut as x,oo as y,Js as z}; diff --git a/frontend/dist/assets/index-BA-KDOrj.js b/frontend/dist/assets/index-BA-KDOrj.js new file mode 100644 index 0000000..64c9a2f --- /dev/null +++ b/frontend/dist/assets/index-BA-KDOrj.js @@ -0,0 +1,27 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Login-CY2HomOW.js","assets/Login-D3svPLnW.css","assets/Setup-BZ-GDYWY.js","assets/Setup-BdS_6JlN.css","assets/Dashboard-Btd0pap_.js","assets/Dashboard-DD-9mkhT.css","assets/Personas-CNMd2u86.js","assets/Personas-GPRGTf-A.css","assets/Chat-DWAKiJ5k.js","assets/Chat-D5cDjkYb.css","assets/WeakAreas-mVHNUVcG.js","assets/WeakAreas-CZWFyB_H.css","assets/GenPersona-DWlMmhuC.js","assets/GenPersona-CDFUWMM8.css","assets/GroupEdit-gE6WVEsc.js","assets/GroupEdit-BpqVXcH5.css","assets/Analytics-2sy93Xf6.js","assets/Analytics-CtniKRSj.css"])))=>i.map(i=>d[i]); +(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 i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();/** +* @vue/shared v3.5.41 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Ms(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const X={},Ft=[],ze=()=>{},ti=()=>!1,Bn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Hn=e=>e.startsWith("onUpdate:"),ae=Object.assign,Ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Co=Object.prototype.hasOwnProperty,$=(e,t)=>Co.call(e,t),V=Array.isArray,Bt=e=>mn(e)==="[object Map]",$t=e=>mn(e)==="[object Set]",sr=e=>mn(e)==="[object Date]",U=e=>typeof e=="function",se=e=>typeof e=="string",Je=e=>typeof e=="symbol",q=e=>e!==null&&typeof e=="object",ni=e=>(q(e)||U(e))&&U(e.then)&&U(e.catch),si=Object.prototype.toString,mn=e=>si.call(e),Po=e=>mn(e).slice(8,-1),ri=e=>mn(e)==="[object Object]",Ls=e=>se(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,tn=Ms(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Un=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Oo=/-\w/g,_e=Un(e=>e.replace(Oo,t=>t.slice(1).toUpperCase())),Io=/\B([A-Z])/g,yt=Un(e=>e.replace(Io,"-$1").toLowerCase()),jn=Un(e=>e.charAt(0).toUpperCase()+e.slice(1)),Zn=Un(e=>e?`on${jn(e)}`:""),qe=(e,t)=>!Object.is(e,t),wn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},kn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let rr;const Gn=()=>rr||(rr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Vs(e){if(V(e)){const t={};for(let n=0;n{if(n){const s=n.split(Mo);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Fs(e){let t="";if(se(e))t=e;else if(V(e))for(let n=0;nmt(n,t))}const li=e=>!!(e&&e.__v_isRef===!0),Dt=e=>se(e)?e:e==null?"":V(e)||q(e)&&(e.toString===si||!U(e.toString))?li(e)?Dt(e.value):JSON.stringify(e,ci,2):String(e),ci=(e,t)=>li(t)?ci(e,t.value):Bt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],i)=>(n[es(s,i)+" =>"]=r,n),{})}:$t(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>es(n))}:Je(t)?es(t):q(t)&&!V(t)&&!ri(t)?String(t):t,es=(e,t="")=>{var n;return Je(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.41 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let ue;class Ho{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&&ue&&(ue.active?(this.parent=ue,this.index=(ue.scopes||(ue.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){const s=this.scopes.slice();for(t=0,n=s.length;t0&&--this._on===0){if(ue===this)ue=this.prevScope;else{let t=ue;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(sn){let t=sn;for(sn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;nn;){let t=nn;for(nn=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 di(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function hi(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),js(s),jo(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function ys(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(pi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function pi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===un)||(e.globalVersion=un,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ys(e))))return;e.flags|=2;const t=e.dep,n=Z,s=Ie;Z=e,Ie=!0;try{di(e);const r=e.fn(e._value);(t.version===0||qe(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{Z=n,Ie=s,hi(e),e.flags&=-3}}function js(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 i=n.computed.deps;i;i=i.nextDep)js(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function jo(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ie=!0;const gi=[];function it(){gi.push(Ie),Ie=!1}function ot(){const e=gi.pop();Ie=e===void 0?!0:e}function ir(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Z;Z=void 0;try{t()}finally{Z=n}}}let un=0;class ko{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 ks{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(!Z||!Ie||Z===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Z)n=this.activeLink=new ko(Z,this),Z.deps?(n.prevDep=Z.depsTail,Z.depsTail.nextDep=n,Z.depsTail=n):Z.deps=Z.depsTail=n,mi(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=Z.depsTail,n.nextDep=void 0,Z.depsTail.nextDep=n,Z.depsTail=n,Z.deps===n&&(Z.deps=s)}return n}trigger(t){this.version++,un++,this.notify(t)}notify(t){Hs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Us()}}}function mi(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)mi(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const vs=new WeakMap,Rt=Symbol(""),bs=Symbol(""),an=Symbol("");function fe(e,t,n){if(Ie&&Z){let s=vs.get(e);s||vs.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new ks),r.map=s,r.key=n),r.track()}}function nt(e,t,n,s,r,i){const o=vs.get(e);if(!o){un++;return}const l=c=>{c&&c.trigger()};if(Hs(),t==="clear")o.forEach(l);else{const c=V(e),f=c&&Ls(n);if(c&&n==="length"){const a=Number(s);o.forEach((h,g)=>{(g==="length"||g===an||!Je(g)&&g>=a)&&l(h)})}else switch((n!==void 0||o.has(void 0))&&l(o.get(n)),f&&l(o.get(an)),t){case"add":c?f&&l(o.get("length")):(l(o.get(Rt)),Bt(e)&&l(o.get(bs)));break;case"delete":c||(l(o.get(Rt)),Bt(e)&&l(o.get(bs)));break;case"set":Bt(e)&&l(o.get(Rt));break}}Us()}function Nt(e){const t=W(e);return t===e?t:(fe(t,"iterate",an),Pe(e)?t:t.map(Me))}function Kn(e){return fe(e=W(e),"iterate",an),e}function We(e,t){return lt(e)?jt(Tt(e)?Me(t):t):Me(t)}const Go={__proto__:null,[Symbol.iterator](){return ns(this,Symbol.iterator,e=>We(this,e))},concat(...e){return Nt(this).concat(...e.map(t=>V(t)?Nt(t):t))},entries(){return ns(this,"entries",e=>(e[1]=We(this,e[1]),e))},every(e,t){return Qe(this,"every",e,t,void 0,arguments)},filter(e,t){return Qe(this,"filter",e,t,n=>n.map(s=>We(this,s)),arguments)},find(e,t){return Qe(this,"find",e,t,n=>We(this,n),arguments)},findIndex(e,t){return Qe(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Qe(this,"findLast",e,t,n=>We(this,n),arguments)},findLastIndex(e,t){return Qe(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Qe(this,"forEach",e,t,void 0,arguments)},includes(...e){return ss(this,"includes",e)},indexOf(...e){return ss(this,"indexOf",e)},join(e){return Nt(this).join(e)},lastIndexOf(...e){return ss(this,"lastIndexOf",e)},map(e,t){return Qe(this,"map",e,t,void 0,arguments)},pop(){return Yt(this,"pop")},push(...e){return Yt(this,"push",e)},reduce(e,...t){return or(this,"reduce",e,t)},reduceRight(e,...t){return or(this,"reduceRight",e,t)},shift(){return Yt(this,"shift")},some(e,t){return Qe(this,"some",e,t,void 0,arguments)},splice(...e){return Yt(this,"splice",e)},toReversed(){return Nt(this).toReversed()},toSorted(e){return Nt(this).toSorted(e)},toSpliced(...e){return Nt(this).toSpliced(...e)},unshift(...e){return Yt(this,"unshift",e)},values(){return ns(this,"values",e=>We(this,e))}};function ns(e,t,n){const s=Kn(e),r=s[t]();return s!==e&&!Pe(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.done||(i.value=n(i.value)),i}),r}const Ko=Array.prototype;function Qe(e,t,n,s,r,i){const o=Kn(e),l=o!==e&&!Pe(e),c=o[t];if(c!==Ko[t]){const h=c.apply(e,i);return l?Me(h):h}let f=n;o!==e&&(l?f=function(h,g){return n.call(this,We(e,h),g,e)}:n.length>2&&(f=function(h,g){return n.call(this,h,g,e)}));const a=c.call(o,f,s);return l&&r?r(a):a}function or(e,t,n,s){const r=Kn(e),i=r!==e&&!Pe(e);let o=n,l=!1;r!==e&&(i?(l=s.length===0,o=function(f,a,h){return l&&(l=!1,f=We(e,f)),n.call(this,f,We(e,a),h,e)}):n.length>3&&(o=function(f,a,h){return n.call(this,f,a,h,e)}));const c=r[t](o,...s);return l?We(e,c):c}function ss(e,t,n){const s=W(e);fe(s,"iterate",an);const r=s[t](...n);return(r===-1||r===!1)&&Ws(n[0])?(n[0]=W(n[0]),s[t](...n)):r}function Yt(e,t,n=[]){it(),Hs();const s=W(e)[t].apply(e,n);return Us(),ot(),s}const Wo=Ms("__proto__,__v_isRef,__isVue"),_i=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Je));function $o(e){Je(e)||(e=String(e));const t=W(this);return fe(t,"has",e),t.hasOwnProperty(e)}class yi{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,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(r?i?nl:Si:i?Ei:bi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=V(t);if(!r){let c;if(o&&(c=Go[n]))return c;if(n==="hasOwnProperty")return $o}const l=Reflect.get(t,n,he(t)?t:s);if((Je(n)?_i.has(n):Wo(n))||(r||fe(t,"get",n),i))return l;if(he(l)){const c=o&&Ls(n)?l:l.value;return r&&q(c)?Ss(c):c}return q(l)?r?Ss(l):qt(l):l}}class vi extends yi{constructor(t=!1){super(!1,t)}set(t,n,s,r){let i=t[n];const o=V(t)&&Ls(n);if(!this._isShallow){const f=lt(i);if(!Pe(s)&&!lt(s)&&(i=W(i),s=W(s)),!o&&he(i)&&!he(s))return f||(i.value=s),!0}const l=o?Number(n)e,vn=e=>Reflect.getPrototypeOf(e);function Qo(e,t,n){return function(...s){const r=this.__v_raw,i=W(r),o=Bt(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,f=r[e](...s),a=n?Es:t?jt:Me;return!t&&fe(i,"iterate",c?bs:Rt),ae(Object.create(f),{next(){const{value:h,done:g}=f.next();return g?{value:h,done:g}:{value:l?[a(h[0]),a(h[1])]:a(h),done:g}}})}}function bn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Xo(e,t){const n={get(r){const i=this.__v_raw,o=W(i),l=W(r);e||(qe(r,l)&&fe(o,"get",r),fe(o,"get",l));const{has:c}=vn(o),f=t?Es:e?jt:Me;if(c.call(o,r))return f(i.get(r));if(c.call(o,l))return f(i.get(l));i!==o&&i.get(r)},get size(){const r=this.__v_raw;return!e&&fe(W(r),"iterate",Rt),r.size},has(r){const i=this.__v_raw,o=W(i),l=W(r);return e||(qe(r,l)&&fe(o,"has",r),fe(o,"has",l)),r===l?i.has(r):i.has(r)||i.has(l)},forEach(r,i){const o=this,l=o.__v_raw,c=W(l),f=t?Es:e?jt:Me;return!e&&fe(c,"iterate",Rt),l.forEach((a,h)=>r.call(i,f(a),f(h),o))}};return ae(n,e?{add:bn("add"),set:bn("set"),delete:bn("delete"),clear:bn("clear")}:{add(r){const i=W(this),o=vn(i),l=W(r),c=!t&&!Pe(r)&&!lt(r)?l:r;return o.has.call(i,c)||qe(r,c)&&o.has.call(i,r)||qe(l,c)&&o.has.call(i,l)||(i.add(c),nt(i,"add",c,c)),this},set(r,i){!t&&!Pe(i)&&!lt(i)&&(i=W(i));const o=W(this),{has:l,get:c}=vn(o);let f=l.call(o,r);f||(r=W(r),f=l.call(o,r));const a=c.call(o,r);return o.set(r,i),f?qe(i,a)&&nt(o,"set",r,i):nt(o,"add",r,i),this},delete(r){const i=W(this),{has:o,get:l}=vn(i);let c=o.call(i,r);c||(r=W(r),c=o.call(i,r)),l&&l.call(i,r);const f=i.delete(r);return c&&nt(i,"delete",r,void 0),f},clear(){const r=W(this),i=r.size!==0,o=r.clear();return i&&nt(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Qo(r,e,t)}),n}function Gs(e,t){const n=Xo(e,t);return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get($(n,r)&&r in s?n:s,r,i)}const Zo={get:Gs(!1,!1)},el={get:Gs(!1,!0)},tl={get:Gs(!0,!1)};const bi=new WeakMap,Ei=new WeakMap,Si=new WeakMap,nl=new WeakMap;function sl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function qt(e){return lt(e)?e:Ks(e,!1,zo,Zo,bi)}function Ai(e){return Ks(e,!1,Yo,el,Ei)}function Ss(e){return Ks(e,!0,Jo,tl,Si)}function Ks(e,t,n,s,r){if(!q(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=r.get(e);if(i)return i;const o=sl(Po(e));if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function Tt(e){return lt(e)?Tt(e.__v_raw):!!(e&&e.__v_isReactive)}function lt(e){return!!(e&&e.__v_isReadonly)}function Pe(e){return!!(e&&e.__v_isShallow)}function Ws(e){return e?!!e.__v_raw:!1}function W(e){const t=e&&e.__v_raw;return t?W(t):e}function rl(e){return!$(e,"__v_skip")&&Object.isExtensible(e)&&ii(e,"__v_skip",!0),e}const Me=e=>q(e)?qt(e):e,jt=e=>q(e)?Ss(e):e;function he(e){return e?e.__v_isRef===!0:!1}function il(e){return wi(e,!1)}function ol(e){return wi(e,!0)}function wi(e,t){return he(e)?e:new ll(e,t)}class ll{constructor(t,n){this.dep=new ks,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:W(t),this._value=n?t:Me(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||Pe(t)||lt(t);t=s?t:W(t),qe(t,n)&&(this._rawValue=t,this._value=s?t:Me(t),this.dep.trigger())}}function Se(e){return he(e)?e.value:e}const cl={get:(e,t,n)=>t==="__v_raw"?e:Se(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 xi(e){return Tt(e)?e:new Proxy(e,cl)}class ul{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new ks(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=un-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&Z!==this)return fi(this,!0),!0}get value(){const t=this.dep.track();return pi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function al(e,t,n=!1){let s,r;return U(e)?s=e:(s=e.get,r=e.set),new ul(s,r,n)}const En={},Pn=new WeakMap;let At;function fl(e,t=!1,n=At){if(n){let s=Pn.get(n);s||Pn.set(n,s=[]),s.push(e)}}function dl(e,t,n=X){const{immediate:s,deep:r,once:i,scheduler:o,augmentJob:l,call:c}=n,f=O=>r?O:Pe(O)||r===!1||r===0?st(O,1):st(O);let a,h,g,m,I=!1,x=!1;if(he(e)?(h=()=>e.value,I=Pe(e)):Tt(e)?(h=()=>f(e),I=!0):V(e)?(x=!0,I=e.some(O=>Tt(O)||Pe(O)),h=()=>e.map(O=>{if(he(O))return O.value;if(Tt(O))return f(O);if(U(O))return c?c(O,2):O()})):U(e)?t?h=c?()=>c(e,2):e:h=()=>{if(g){it();try{g()}finally{ot()}}const O=At;At=a;try{return c?c(e,3,[m]):e(m)}finally{At=O}}:h=ze,t&&r){const O=h,Y=r===!0?1/0:r;h=()=>st(O(),Y)}const H=Uo(),F=()=>{a.stop(),H&&H.active&&Ds(H.effects,a)};if(i&&t){const O=t;t=(...Y)=>{const ie=O(...Y);return F(),ie}}let C=x?new Array(e.length).fill(En):En;const N=O=>{if(!(!(a.flags&1)||!a.dirty&&!O))if(t){const Y=a.run();if(O||r||I||(x?Y.some((ie,ee)=>qe(ie,C[ee])):qe(Y,C))){g&&g();const ie=At;At=a;try{const ee=[Y,C===En?void 0:x&&C[0]===En?[]:C,m];C=Y,c?c(t,3,ee):t(...ee)}finally{At=ie}}}else a.run()};return l&&l(N),a=new ui(h),a.scheduler=o?()=>o(N,!1):N,m=O=>fl(O,!1,a),g=a.onStop=()=>{const O=Pn.get(a);if(O){if(c)c(O,4);else for(const Y of O)Y();Pn.delete(a)}},t?s?N(!0):C=a.run():o?o(N.bind(null,!0),!0):a.run(),F.pause=a.pause.bind(a),F.resume=a.resume.bind(a),F.stop=F,F}function st(e,t=1/0,n){if(t<=0||!q(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,he(e))st(e.value,t,n);else if(V(e))for(let s=0;s{st(s,t,n)});else if(ri(e)){for(const s in e)st(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&st(e[s],t,n)}return e}/** +* @vue/runtime-core v3.5.41 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function _n(e,t,n,s){try{return s?e(...s):e()}catch(r){Wn(r,t,n)}}function De(e,t,n,s){if(U(e)){const r=_n(e,t,n,s);return r&&ni(r)&&r.catch(i=>{Wn(i,t,n)}),r}if(V(e)){const r=[];for(let i=0;i>>1,r=me[s],i=fn(r);i=fn(n)?me.push(e):me.splice(pl(t),0,e),e.flags|=1,Ti()}}function Ti(){On||(On=Ri.then(Pi))}function gl(e){if(!V(e))pt&&e.id===-1?pt.splice(Lt+1,0,e):e.flags&1||(Ht.push(e),e.flags|=1);else for(let t=0;tfn(n)-fn(s));if(Ht.length=0,pt){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function Pi(e){try{for(Ke=0;Ke{s._d&&Dn(-1);const i=In(t),o=Ct.length;let l;try{l=e(...r)}finally{for(let c=Ct.length;c>o;c--)so();In(i),s._d&&Dn(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function va(e,t){if(Ae===null)return e;const n=Yn(Ae),s=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&U(t)?t.call(s&&s.proxy):t}}const ml=Symbol.for("v-scx"),_l=()=>Ne(ml);function Rn(e,t,n){return Ni(e,t,n)}function Ni(e,t,n=X){const{immediate:s,deep:r,flush:i,once:o}=n,l=ae({},n),c=t&&s||!t&&i!=="post";let f;if(pn){if(i==="sync"){const m=_l();f=m.__watcherHandles||(m.__watcherHandles=[])}else if(!c){const m=()=>{};return m.stop=ze,m.resume=ze,m.pause=ze,m}}const a=de;l.call=(m,I,x)=>De(m,a,I,x);let h=!1;i==="post"?l.scheduler=m=>{ve(m,a&&a.suspense)}:i!=="sync"&&(h=!0,l.scheduler=(m,I)=>{I?m():qs(m)}),l.augmentJob=m=>{t&&(m.flags|=4),h&&(m.flags|=2,a&&(m.id=a.uid,m.i=a))};const g=dl(e,t,l);return pn&&(f?f.push(g):c&&g()),g}function yl(e,t,n){const s=this.proxy,r=se(e)?e.includes(".")?Mi(s,e):()=>s[e]:e.bind(s,s);let i;U(t)?i=t:(i=t.handler,n=t);const o=yn(this),l=Ni(r,i.bind(s),n);return o(),l}function Mi(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;re.__isTeleport,rs=Symbol("_leaveCb");function bl(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ct){t=n;break}}return t}function Di(e){if(!Js(e))return $n(e.type)&&e.children?bl(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&U(n.default))return n.default()}}function zs(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;zs($n(n.type)&&Di(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Li(e,t){return U(e)?ae({name:e.name},t,{setup:e}):e}function Vi(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function cr(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Nn=new WeakMap;function rn(e,t,n,s,r=!1){if(V(e)){e.forEach((x,H)=>rn(x,t&&(V(t)?t[H]:t),n,s,r));return}if(on(s)&&!r){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&rn(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?Yn(s.component):s.el,o=r?null:i,{i:l,r:c}=e,f=t&&t.r,a=l.refs===X?l.refs={}:l.refs,h=l.setupState,g=W(h),m=h===X?ti:x=>cr(a,x)?!1:$(g,x),I=(x,H)=>!(H&&cr(a,H));if(f!=null&&f!==c){if(ur(t),se(f))a[f]=null,m(f)&&(h[f]=null);else if(he(f)){const x=t;I(f,x.k)&&(f.value=null),x.k&&(a[x.k]=null)}}if(U(c))_n(c,l,12,[o,a]);else{const x=se(c),H=he(c);if(x||H){const F=()=>{if(e.f){const C=x?m(c)?h[c]:a[c]:I()||!e.k?c.value:a[e.k];if(r)V(C)&&Ds(C,i);else if(V(C))C.includes(i)||C.push(i);else if(x)a[c]=[i],m(c)&&(h[c]=a[c]);else{const N=[i];I(c,e.k)&&(c.value=N),e.k&&(a[e.k]=N)}}else x?(a[c]=o,m(c)&&(h[c]=o)):H&&(I(c,e.k)&&(c.value=o),e.k&&(a[e.k]=o))};if(o){const C=()=>{F(),Nn.delete(e)};C.id=-1,Nn.set(e,C),ve(C,n)}else ur(e),F()}}}function ur(e){const t=Nn.get(e);t&&(t.flags|=8,Nn.delete(e))}Gn().requestIdleCallback;Gn().cancelIdleCallback;const on=e=>!!e.type.__asyncLoader,Js=e=>e.type.__isKeepAlive;function El(e,t){Fi(e,"a",t)}function Sl(e,t){Fi(e,"da",t)}function Fi(e,t,n=de){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(qn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Js(r.parent.vnode)&&Al(s,t,n,r),r=r.parent}}function Al(e,t,n,s){const r=qn(t,e,s,!0);Hi(()=>{Ds(s[t],r)},n)}function qn(e,t,n=de,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{it();const l=yn(n),c=De(t,n,e,o);return l(),ot(),c});return s?r.unshift(i):r.push(i),i}}const ut=e=>(t,n=de)=>{(!pn||e==="sp")&&qn(e,(...s)=>t(...s),n)},wl=ut("bm"),Bi=ut("m"),xl=ut("bu"),Rl=ut("u"),Tl=ut("bum"),Hi=ut("um"),Cl=ut("sp"),Pl=ut("rtg"),Ol=ut("rtc");function Il(e,t=de){qn("ec",e,t)}const Nl="components";function ar(e,t){return Dl(Nl,e,!0,t)||e}const Ml=Symbol.for("v-ndc");function Dl(e,t,n=!0,s=!1){const r=Ae||de;if(r){const i=r.type;{const l=vc(i,!1);if(l&&(l===t||l===_e(t)||l===jn(_e(t))))return i}const o=fr(r[e]||i[e],t)||fr(r.appContext[e],t);return!o&&s?i:o}}function fr(e,t){return e&&(e[t]||e[_e(t)]||e[jn(_e(t))])}function ba(e,t,n,s){let r;const i=n,o=V(e);if(o||se(e)){const l=o&&Tt(e);let c=!1,f=!1;l&&(c=!Pe(e),f=lt(e),e=Kn(e)),r=new Array(e.length);for(let a=0,h=e.length;at(l,c,void 0,i));else{const l=Object.keys(e);r=new Array(l.length);for(let c=0,f=l.length;ce?co(e)?Yn(e):As(e.parent):null,ln=ae(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=>As(e.parent),$root:e=>As(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ji(e),$forceUpdate:e=>e.f||(e.f=()=>{qs(e.update)}),$nextTick:e=>e.n||(e.n=$s.bind(e.proxy)),$watch:e=>yl.bind(e)}),is=(e,t)=>e!==X&&!e.__isScriptSetup&&$(e,t),Ll={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;if(t[0]!=="$"){const g=o[t];if(g!==void 0)switch(g){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(is(s,t))return o[t]=1,s[t];if(r!==X&&$(r,t))return o[t]=2,r[t];if($(i,t))return o[t]=3,i[t];if(n!==X&&$(n,t))return o[t]=4,n[t];ws&&(o[t]=0)}}const f=ln[t];let a,h;if(f)return t==="$attrs"&&fe(e.attrs,"get",""),f(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==X&&$(n,t))return o[t]=4,n[t];if(h=c.config.globalProperties,$(h,t))return h[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return is(r,t)?(r[t]=n,!0):s!==X&&$(s,t)?(s[t]=n,!0):$(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,props:i,type:o}},l){let c;return!!(n[l]||e!==X&&l[0]!=="$"&&$(e,l)||is(t,l)||$(i,l)||$(s,l)||$(ln,l)||$(r.config.globalProperties,l)||(c=o.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:$(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function dr(e){return V(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ws=!0;function Vl(e){const t=ji(e),n=e.proxy,s=e.ctx;ws=!1,t.beforeCreate&&hr(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:f,created:a,beforeMount:h,mounted:g,beforeUpdate:m,updated:I,activated:x,deactivated:H,beforeDestroy:F,beforeUnmount:C,destroyed:N,unmounted:O,render:Y,renderTracked:ie,renderTriggered:ee,errorCaptured:Ve,serverPrefetch:at,expose:Fe,inheritAttrs:ft,components:vt,directives:Be,filters:zt}=t;if(f&&Fl(f,s,null),o)for(const z in o){const G=o[z];U(G)&&(s[z]=G.bind(n))}if(r){const z=r.call(n,n);q(z)&&(e.data=qt(z))}if(ws=!0,i)for(const z in i){const G=i[z],Ye=U(G)?G.bind(n,n):U(G.get)?G.get.bind(n,n):ze,dt=!U(G)&&U(G.set)?G.set.bind(n):ze,He=Oe({get:Ye,set:dt});Object.defineProperty(s,z,{enumerable:!0,configurable:!0,get:()=>He.value,set:ye=>He.value=ye})}if(l)for(const z in l)Ui(l[z],s,n,z);if(c){const z=U(c)?c.call(n):c;Reflect.ownKeys(z).forEach(G=>{xn(G,z[G])})}a&&hr(a,e,"c");function le(z,G){V(G)?G.forEach(Ye=>z(Ye.bind(n))):G&&z(G.bind(n))}if(le(wl,h),le(Bi,g),le(xl,m),le(Rl,I),le(El,x),le(Sl,H),le(Il,Ve),le(Ol,ie),le(Pl,ee),le(Tl,C),le(Hi,O),le(Cl,at),V(Fe))if(Fe.length){const z=e.exposed||(e.exposed={});Fe.forEach(G=>{Object.defineProperty(z,G,{get:()=>n[G],set:Ye=>n[G]=Ye,enumerable:!0})})}else e.exposed||(e.exposed={});Y&&e.render===ze&&(e.render=Y),ft!=null&&(e.inheritAttrs=ft),vt&&(e.components=vt),Be&&(e.directives=Be),at&&Vi(e)}function Fl(e,t,n=ze){V(e)&&(e=xs(e));for(const s in e){const r=e[s];let i;q(r)?"default"in r?i=Ne(r.from||s,r.default,!0):i=Ne(r.from||s):i=Ne(r),he(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function hr(e,t,n){De(V(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ui(e,t,n,s){let r=s.includes(".")?Mi(n,s):()=>n[s];if(se(e)){const i=t[e];U(i)&&Rn(r,i)}else if(U(e))Rn(r,e.bind(n));else if(q(e))if(V(e))e.forEach(i=>Ui(i,t,n,s));else{const i=U(e.handler)?e.handler.bind(n):t[e.handler];U(i)&&Rn(r,i,e)}}function ji(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(f=>Mn(c,f,o,!0)),Mn(c,t,o)),q(t)&&i.set(t,c),c}function Mn(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&Mn(e,i,n,!0),r&&r.forEach(o=>Mn(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=Bl[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const Bl={data:pr,props:gr,emits:gr,methods:Zt,computed:Zt,beforeCreate:pe,created:pe,beforeMount:pe,mounted:pe,beforeUpdate:pe,updated:pe,beforeDestroy:pe,beforeUnmount:pe,destroyed:pe,unmounted:pe,activated:pe,deactivated:pe,errorCaptured:pe,serverPrefetch:pe,components:Zt,directives:Zt,watch:Ul,provide:pr,inject:Hl};function pr(e,t){return t?e?function(){return ae(U(e)?e.call(this,this):e,U(t)?t.call(this,this):t)}:t:e}function Hl(e,t){return Zt(xs(e),xs(t))}function xs(e){if(V(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${_e(t)}Modifiers`]||e[`${yt(t)}Modifiers`];function Kl(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||X;let r=n;const i=t.startsWith("update:"),o=i&&Gl(s,t.slice(7));o&&(o.trim&&(r=n.map(a=>se(a)?a.trim():a)),o.number&&(r=n.map(kn)));let l,c=s[l=Zn(t)]||s[l=Zn(_e(t))];!c&&i&&(c=s[l=Zn(yt(t))]),c&&De(c,e,6,r);const f=s[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,De(f,e,6,r)}}const Wl=new WeakMap;function Gi(e,t,n=!1){const s=n?Wl:t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!U(e)){const c=f=>{const a=Gi(f,t,!0);a&&(l=!0,ae(o,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(q(e)&&s.set(e,null),null):(V(i)?i.forEach(c=>o[c]=null):ae(o,i),q(e)&&s.set(e,o),o)}function zn(e,t){return!e||!Bn(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),$(e,t[0].toLowerCase()+t.slice(1))||$(e,yt(t))||$(e,t))}function mr(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:c,render:f,renderCache:a,props:h,data:g,setupState:m,ctx:I,inheritAttrs:x}=e,H=In(e);let F,C;try{if(n.shapeFlag&4){const O=r||s,Y=O;F=$e(f.call(Y,O,a,h,m,g,I)),C=l}else{const O=t;F=$e(O.length>1?O(h,{attrs:l,slots:o,emit:c}):O(h,null)),C=t.props?l:$l(l)}}catch(O){Ct.length=0,Wn(O,e,1),F=be(ct)}let N=F;if(C&&x!==!1){const O=Object.keys(C),{shapeFlag:Y}=N;O.length&&Y&7&&(i&&O.some(Hn)&&(C=ql(C,i)),N=kt(N,C,!1,!0))}if(n.dirs&&(N=kt(N,null,!1,!0),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition){const O=$n(N.type)&&Di(N)||N;zs(O,n.transition)}return F=N,In(H),F}const $l=e=>{let t;for(const n in e)(n==="class"||n==="style"||Bn(n))&&((t||(t={}))[n]=e[n]);return t},ql=(e,t)=>{const n={};for(const s in e)(!Hn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function zl(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,f=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?_r(s,o,f):!!o;if(c&8){const a=t.dynamicProps;for(let h=0;hObject.create(Wi),qi=e=>Object.getPrototypeOf(e)===Wi;function Yl(e,t,n,s=!1){const r={},i=$i();e.propsDefaults=Object.create(null),zi(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:Ai(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Ql(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=W(r),[c]=e.propsOptions;let f=!1;if((s||o>0)&&!(o&16)){if(o&8){const a=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[g,m]=Ji(h,t,!0);ae(o,g),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!i&&!c)return q(e)&&s.set(e,Ft),Ft;if(V(i))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",Qs=e=>V(e)?e.map($e):[$e(e)],Zl=(e,t,n)=>{if(t._n)return t;const s=Ii((...r)=>Qs(t(...r)),n);return s._c=!1,s},Yi=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Ys(r))continue;const i=e[r];if(U(i))t[r]=Zl(r,i,s);else if(i!=null){const o=Qs(i);t[r]=()=>o}}},Qi=(e,t)=>{const n=Qs(t);e.slots.default=()=>n},Xi=(e,t,n)=>{for(const s in t)(n||!Ys(s))&&(e[s]=t[s])},ec=(e,t,n)=>{const s=e.slots=$i();if(e.vnode.shapeFlag&32){const r=t._;r?(Xi(s,t,n),n&&ii(s,"_",r,!0)):Yi(t,s)}else t&&Qi(e,t)},tc=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=X;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:Xi(r,t,n):(i=!t.$stable,Yi(t,r)),o=t}else t&&(Qi(e,t),o={default:1});if(i)for(const l in r)!Ys(l)&&o[l]==null&&delete r[l]},ve=oc;function nc(e){return sc(e)}function sc(e,t){const n=Gn();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:f,setElementText:a,parentNode:h,nextSibling:g,setScopeId:m=ze,insertStaticContent:I}=e,x=(u,d,p,y=null,b=null,_=null,w=void 0,A=null,S=!!d.dynamicChildren)=>{if(u===d)return;u&&!Qt(u,d)&&(y=v(u),ye(u,b,_,!0),u=null),d.patchFlag===-2&&(S=!1,d.dynamicChildren=null);const{type:E,ref:L,shapeFlag:T}=d;switch(E){case Jn:H(u,d,p,y);break;case ct:F(u,d,p,y);break;case ls:u==null&&C(d,p,y,w);break;case et:vt(u,d,p,y,b,_,w,A,S);break;default:T&1?Y(u,d,p,y,b,_,w,A,S):T&6?Be(u,d,p,y,b,_,w,A,S):(T&64||T&128)&&E.process(u,d,p,y,b,_,w,A,S,M)}L!=null&&b?rn(L,u&&u.ref,_,d||u,!d):L==null&&u&&u.ref!=null&&rn(u.ref,null,_,u,!0)},H=(u,d,p,y)=>{if(u==null)s(d.el=l(d.children),p,y);else{const b=d.el=u.el;d.children!==u.children&&f(b,d.children)}},F=(u,d,p,y)=>{u==null?s(d.el=c(d.children||""),p,y):d.el=u.el},C=(u,d,p,y)=>{[u.el,u.anchor]=I(u.children,d,p,y,u.el,u.anchor)},N=({el:u,anchor:d},p,y)=>{let b;for(;u&&u!==d;)b=g(u),s(u,p,y),u=b;s(d,p,y)},O=({el:u,anchor:d})=>{let p;for(;u&&u!==d;)p=g(u),r(u),u=p;r(d)},Y=(u,d,p,y,b,_,w,A,S)=>{if(d.type==="svg"?w="svg":d.type==="math"&&(w="mathml"),u==null)ie(d,p,y,b,_,w,A,S);else{const E=u.el&&u.el._isVueCE?u.el:null;try{E&&E._beginPatch(),at(u,d,b,_,w,A,S)}finally{E&&E._endPatch()}}},ie=(u,d,p,y,b,_,w,A)=>{let S,E;const{props:L,shapeFlag:T,transition:D,dirs:B}=u;if(S=u.el=o(u.type,_,L&&L.is,L),T&8?a(S,u.children):T&16&&Ve(u.children,S,null,y,b,os(u,_),w,A),B&&Et(u,null,y,"created"),ee(S,u,u.scopeId,w,y),L){for(const Q in L)Q!=="value"&&!tn(Q)&&i(S,Q,null,L[Q],_,y);"value"in L&&i(S,"value",null,L.value,_),(E=L.onVnodeBeforeMount)&&Ge(E,y,u)}B&&Et(u,null,y,"beforeMount");const k=rc(b,D);k&&D.beforeEnter(S),s(S,d,p),((E=L&&L.onVnodeMounted)||k||B)&&ve(()=>{try{E&&Ge(E,y,u),k&&D.enter(S),B&&Et(u,null,y,"mounted")}finally{}},b)},ee=(u,d,p,y,b)=>{if(p&&m(u,p),y)for(let _=0;_{for(let E=S;E{const A=d.el=u.el;let{patchFlag:S,dynamicChildren:E,dirs:L}=d;S|=u.patchFlag&16;const T=u.props||X,D=d.props||X;let B;if(p&&St(p,!1),(B=D.onVnodeBeforeUpdate)&&Ge(B,p,d,u),L&&Et(d,u,p,"beforeUpdate"),p&&St(p,!0),E&&(!u.dynamicChildren||u.dynamicChildren.length!==E.length)&&(S=0,w=!1,E=null),(T.innerHTML&&D.innerHTML==null||T.textContent&&D.textContent==null)&&a(A,""),E?Fe(u.dynamicChildren,E,A,p,y,os(d,b),_):w||G(u,d,A,null,p,y,os(d,b),_,!1),S>0){if(S&16)ft(A,T,D,p,b);else if(S&2&&T.class!==D.class&&i(A,"class",null,D.class,b),S&4&&i(A,"style",T.style,D.style,b),S&8){const k=d.dynamicProps;for(let Q=0;Q{B&&Ge(B,p,d,u),L&&Et(d,u,p,"updated")},y)},Fe=(u,d,p,y,b,_,w)=>{for(let A=0;A{if(d!==p){if(d!==X)for(const _ in d)!tn(_)&&!(_ in p)&&i(u,_,d[_],null,b,y);for(const _ in p){if(tn(_))continue;const w=p[_],A=d[_];w!==A&&_!=="value"&&i(u,_,A,w,b,y)}"value"in p&&i(u,"value",d.value,p.value,b)}},vt=(u,d,p,y,b,_,w,A,S)=>{const E=d.el=u?u.el:l(""),L=d.anchor=u?u.anchor:l("");let{patchFlag:T,dynamicChildren:D,slotScopeIds:B}=d;B&&(A=A?A.concat(B):B),u==null?(s(E,p,y),s(L,p,y),Ve(d.children||[],p,L,b,_,w,A,S)):T>0&&T&64&&D&&u.dynamicChildren&&u.dynamicChildren.length===D.length?(Fe(u.dynamicChildren,D,p,b,_,w,A),(d.key!=null||b&&d===b.subTree)&&Zi(u,d,!0)):G(u,d,p,L,b,_,w,A,S)},Be=(u,d,p,y,b,_,w,A,S)=>{d.slotScopeIds=A,u==null?d.shapeFlag&512?b.ctx.activate(d,p,y,w,S):zt(d,p,y,b,_,w,S):Pt(u,d,S)},zt=(u,d,p,y,b,_,w)=>{const A=u.component=hc(u,y,b);if(Js(u)&&(A.ctx.renderer=M),gc(A,!1,w),A.asyncDep){if(b&&b.registerDep(A,le,w),!u.el){const S=A.subTree=be(ct);F(null,S,d,p),u.placeholder=S.el}}else le(A,u,d,p,b,_,w)},Pt=(u,d,p)=>{const y=d.component=u.component;if(zl(u,d,p))if(y.asyncDep&&!y.asyncResolved){z(y,d,p);return}else y.next=d,y.update();else d.el=u.el,y.vnode=d},le=(u,d,p,y,b,_,w)=>{const A=()=>{if(u.isMounted){let{next:T,bu:D,u:B,parent:k,vnode:Q}=u;{const je=eo(u);if(je){T&&(T.el=Q.el,z(u,T,w)),je.asyncDep.then(()=>{ve(()=>{u.isUnmounted||E()},b)});return}}let J=T,re;St(u,!1),T?(T.el=Q.el,z(u,T,w)):T=Q,D&&wn(D),(re=T.props&&T.props.onVnodeBeforeUpdate)&&Ge(re,k,T,Q),St(u,!0);const ce=mr(u),Ue=u.subTree;u.subTree=ce,x(Ue,ce,h(Ue.el),v(Ue),u,b,_),T.el=ce.el,J===null&&Jl(u,ce.el),B&&ve(B,b),(re=T.props&&T.props.onVnodeUpdated)&&ve(()=>Ge(re,k,T,Q),b)}else{let T;const{el:D,props:B}=d,{bm:k,m:Q,parent:J,root:re,type:ce}=u,Ue=on(d);St(u,!1),k&&wn(k),!Ue&&(T=B&&B.onVnodeBeforeMount)&&Ge(T,J,d),St(u,!0);{re.ce&&re.ce._hasShadowRoot()&&re.ce._injectChildStyle(ce,u.parent?u.parent.type:void 0);const je=u.subTree=mr(u);x(null,je,p,y,u,b,_),d.el=je.el}if(Q&&ve(Q,b),!Ue&&(T=B&&B.onVnodeMounted)){const je=d;ve(()=>Ge(T,J,je),b)}(d.shapeFlag&256||J&&on(J.vnode)&&J.vnode.shapeFlag&256)&&u.a&&ve(u.a,b),u.isMounted=!0,d=p=y=null}};u.scope.on();const S=u.effect=new ui(A);u.scope.off();const E=u.update=S.run.bind(S),L=u.job=S.runIfDirty.bind(S);L.i=u,L.id=u.uid,S.scheduler=()=>qs(L),St(u,!0),E()},z=(u,d,p)=>{d.component=u;const y=u.vnode.props;u.vnode=d,u.next=null,Ql(u,d.props,y,p),tc(u,d.children,p),it(),lr(u),ot()},G=(u,d,p,y,b,_,w,A,S=!1)=>{const E=u&&u.children,L=u?u.shapeFlag:0,T=d.children,{patchFlag:D,shapeFlag:B}=d;if(D>0){if(D&128){dt(E,T,p,y,b,_,w,A,S);return}else if(D&256){Ye(E,T,p,y,b,_,w,A,S);return}}B&8?(L&16&&Re(E,b,_),T!==E&&a(p,T)):L&16?B&16?dt(E,T,p,y,b,_,w,A,S):Re(E,b,_,!0):(L&8&&a(p,""),B&16&&Ve(T,p,y,b,_,w,A,S))},Ye=(u,d,p,y,b,_,w,A,S)=>{u=u||Ft,d=d||Ft;const E=u.length,L=d.length,T=Math.min(E,L);let D;for(D=0;DL?Re(u,b,_,!0,!1,T):Ve(d,p,y,b,_,w,A,S,T)},dt=(u,d,p,y,b,_,w,A,S)=>{let E=0;const L=d.length;let T=u.length-1,D=L-1;for(;E<=T&&E<=D;){const B=u[E],k=d[E]=S?tt(d[E]):$e(d[E]);if(Qt(B,k))x(B,k,p,null,b,_,w,A,S);else break;E++}for(;E<=T&&E<=D;){const B=u[T],k=d[D]=S?tt(d[D]):$e(d[D]);if(Qt(B,k))x(B,k,p,null,b,_,w,A,S);else break;T--,D--}if(E>T){if(E<=D){const B=D+1,k=BD)for(;E<=T;)ye(u[E],b,_,!0),E++;else{const B=E,k=E,Q=new Map;for(E=k;E<=D;E++){const Ee=d[E]=S?tt(d[E]):$e(d[E]);Ee.key!=null&&Q.set(Ee.key,E)}let J,re=0;const ce=D-k+1;let Ue=!1,je=0;const Jt=new Array(ce);for(E=0;E=ce){ye(Ee,b,_,!0);continue}let ke;if(Ee.key!=null)ke=Q.get(Ee.key);else for(J=k;J<=D;J++)if(Jt[J-k]===0&&Qt(Ee,d[J])){ke=J;break}ke===void 0?ye(Ee,b,_,!0):(Jt[ke-k]=E+1,ke>=je?je=ke:Ue=!0,x(Ee,d[ke],p,null,b,_,w,A,S),re++)}const er=Ue?ic(Jt):Ft;for(J=er.length-1,E=ce-1;E>=0;E--){const Ee=k+E,ke=d[Ee],tr=d[Ee+1],nr=Ee+1{const{el:_,type:w,transition:A,children:S,shapeFlag:E}=u;if(E&6){He(u.component.subTree,d,p,y);return}if(E&128){u.suspense.move(d,p,y);return}if(E&64){w.move(u,d,p,M);return}if(w===et){s(_,d,p);for(let T=0;TA.enter(_),b));else{const{leave:T,delayLeave:D,afterLeave:B}=A,k=()=>{u.ctx.isUnmounted?r(_):s(_,d,p)},Q=()=>{const J=_._isLeaving||!!_[rs];_._isLeaving&&_[rs](!0),A.persisted&&!J?k():T(_,()=>{k(),B&&B()})};D?D(_,k,Q):Q()}else s(_,d,p)},ye=(u,d,p,y=!1,b=!1)=>{const{type:_,props:w,ref:A,children:S,dynamicChildren:E,shapeFlag:L,patchFlag:T,dirs:D,cacheIndex:B,memo:k}=u;if(T===-2&&(b=!1),A!=null&&(it(),rn(A,null,p,u,!0),ot()),B!=null&&(d.renderCache[B]=void 0),L&256){d.ctx.deactivate(u);return}const Q=L&1&&D,J=!on(u);let re;if(J&&(re=w&&w.onVnodeBeforeUnmount)&&Ge(re,d,u),L&6)bt(u.component,p,y);else{if(L&128){u.suspense.unmount(p,y);return}Q&&Et(u,null,d,"beforeUnmount"),L&64?u.type.remove(u,d,p,M,y):E&&!E.hasOnce&&(_!==et||T>0&&T&64)?Re(E,d,p,!1,!0):(_===et&&T&384||!b&&L&16)&&Re(S,d,p),y&&Ot(u)}const ce=k!=null&&B==null;(J&&(re=w&&w.onVnodeUnmounted)||Q||ce)&&ve(()=>{re&&Ge(re,d,u),Q&&Et(u,null,d,"unmounted"),ce&&(u.el=null)},p)},Ot=u=>{const{type:d,el:p,anchor:y,transition:b}=u;if(d===et){It(p,y);return}if(d===ls){O(u);return}const _=()=>{r(p),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(u.shapeFlag&1&&b&&!b.persisted){const{leave:w,delayLeave:A}=b,S=()=>w(p,_);A?A(u.el,_,S):S()}else _()},It=(u,d)=>{let p;for(;u!==d;)p=g(u),r(u),u=p;r(d)},bt=(u,d,p)=>{const{bum:y,scope:b,job:_,subTree:w,um:A,m:S,a:E}=u;vr(S),vr(E),y&&wn(y),b.stop(),_&&(_.flags|=8,ye(w,u,d,p)),A&&ve(A,d),ve(()=>{u.isUnmounted=!0},d)},Re=(u,d,p,y=!1,b=!1,_=0)=>{for(let w=_;w{if(u.shapeFlag&6)return v(u.component.subTree);if(u.shapeFlag&128)return u.suspense.next();const d=g(u.anchor||u.el),p=d&&d[vl];return p?g(p):d};let P=!1;const R=(u,d,p)=>{let y;u==null?d._vnode&&(ye(d._vnode,null,null,!0),y=d._vnode.component):x(d._vnode||null,u,d,null,null,null,p),d._vnode=u,P||(P=!0,lr(y),Ci(),P=!1)},M={p:x,um:ye,m:He,r:Ot,mt:zt,mc:Ve,pc:G,pbc:Fe,n:v,o:e};return{render:R,hydrate:void 0,createApp:kl(R)}}function os({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 St({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function rc(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Zi(e,t,n=!1){const s=e.children,r=t.children;if(V(s)&&V(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function eo(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:eo(t)}function vr(e){if(e)for(let t=0;te.__isSuspense;function oc(e,t){t&&t.pendingBranch?V(e)?t.effects.push(...e):t.effects.push(e):gl(e)}const et=Symbol.for("v-fgt"),Jn=Symbol.for("v-txt"),ct=Symbol.for("v-cmt"),ls=Symbol.for("v-stc"),Ct=[];let we=null;function Tn(e=!1){Ct.push(we=e?null:[])}function so(){Ct.pop(),we=Ct[Ct.length-1]||null}let dn=1;function Dn(e,t=!1){dn+=e,e<0&&we&&t&&(we.hasOnce=!0)}function ro(e){return e.dynamicChildren=dn>0?we||Ft:null,so(),dn>0&&we&&we.push(e),e}function br(e,t,n,s,r,i){return ro(wt(e,t,n,s,r,i,!0))}function io(e,t,n,s,r){return ro(be(e,t,n,s,r,!0))}function Ln(e){return e?e.__v_isVNode===!0:!1}function Qt(e,t){return e.type===t.type&&e.key===t.key}const oo=({key:e})=>e??null,Cn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?se(e)||he(e)||U(e)?{i:Ae,r:e,k:t,f:!!n}:e:null);function wt(e,t=null,n=null,s=0,r=null,i=e===et?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&oo(t),ref:t&&Cn(t),scopeId:Oi,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:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Ae};return l?(Vn(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=se(n)?8:16),dn>0&&!o&&we&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&we.push(c),c}const be=lc;function lc(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===Ml)&&(e=ct),Ln(e)){const l=kt(e,t,!0);return n&&Vn(l,n),dn>0&&!i&&we&&(l.shapeFlag&6?we[we.indexOf(e)]=l:we.push(l)),l.patchFlag=-2,l}if(bc(e)&&(e=e.__vccOpts),t){t=cc(t);let{class:l,style:c}=t;l&&!se(l)&&(t.class=Fs(l)),q(c)&&(Ws(c)&&!V(c)&&(c=ae({},c)),t.style=Vs(c))}const o=se(e)?1:no(e)?128:$n(e)?64:q(e)?4:U(e)?2:0;return wt(e,t,n,s,r,o,i,!0)}function cc(e){return e?Ws(e)||qi(e)?ae({},e):e:null}function kt(e,t,n=!1,s=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:c}=e,f=t?ac(r||{},t):r,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&oo(f),ref:t&&t.ref?n&&i?V(i)?i.concat(Cn(t)):[i,Cn(t)]:Cn(t):i,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!==et?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&kt(e.ssContent),ssFallback:e.ssFallback&&kt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&zs(a,c.clone(a)),a}function lo(e=" ",t=0){return be(Jn,null,e,t)}function uc(e="",t=!1){return t?(Tn(),io(ct,null,e)):be(ct,null,e)}function $e(e){return e==null||typeof e=="boolean"?be(ct):V(e)?be(et,null,e.slice()):Ln(e)?tt(e):be(Jn,null,String(e))}function tt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:kt(e)}function Vn(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(V(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Vn(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!qi(t)?t._ctx=Ae:r===3&&Ae&&(Ae.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(U(t)){if(s&65){Vn(e,{default:t});return}t={default:t,_ctx:Ae},n=32}else t=String(t),s&64?(n=16,t=[lo(t)]):n=8;e.children=t,e.shapeFlag|=n}function ac(...e){const t={};for(let n=0;nde||Ae;let Fn,hn;{const e=Gn(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};Fn=t("__VUE_INSTANCE_SETTERS__",n=>de=n),hn=t("__VUE_SSR_SETTERS__",n=>pn=n)}const yn=e=>{const t=de;return Fn(e),e.scope.on(),()=>{e.scope.off(),Fn(t)}},Er=()=>{de&&de.scope.off(),Fn(null)};function co(e){return e.vnode.shapeFlag&4}let pn=!1;function gc(e,t=!1,n=!1){t&&hn(t);const{props:s,children:r}=e.vnode,i=co(e);Yl(e,s,i,t),ec(e,r,n||t);const o=i?mc(e,t):void 0;return t&&hn(!1),o}function mc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ll);const{setup:s}=n;if(s){it();const r=e.setupContext=s.length>1?yc(e):null,i=yn(e),o=_n(s,e,0,[e.props,r]),l=ni(o);if(ot(),i(),(l||e.sp)&&!on(e)&&Vi(e),l){if(o.then(Er,Er),t)return o.then(c=>{hn(!0);try{Sr(e,c,t)}finally{hn(!1)}}).catch(c=>{Wn(c,e,0)});e.asyncDep=o}else Sr(e,o)}else uo(e)}function Sr(e,t,n){U(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:q(t)&&(e.setupState=xi(t)),uo(e)}function uo(e,t,n){const s=e.type;e.render||(e.render=s.render||ze);{const r=yn(e);it();try{Vl(e)}finally{ot(),r()}}}const _c={get(e,t){return fe(e,"get",""),e[t]}};function yc(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,_c),slots:e.slots,emit:e.emit,expose:t}}function Yn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(xi(rl(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ln)return ln[n](e)},has(t,n){return n in t||n in ln}})):e.proxy}function vc(e,t=!0){return U(e)?e.displayName||e.name:e.name||t&&e.__name}function bc(e){return U(e)&&"__vccOpts"in e}const Oe=(e,t)=>al(e,t,pn);function ao(e,t,n){try{Dn(-1);const s=arguments.length;return s===2?q(t)&&!V(t)?Ln(t)?be(e,null,[t]):be(e,t):be(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&Ln(n)&&(n=[n]),be(e,t,n))}finally{Dn(1)}}const Ec="3.5.41";/** +* @vue/runtime-dom v3.5.41 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ts;const Ar=typeof window<"u"&&window.trustedTypes;if(Ar)try{Ts=Ar.createPolicy("vue",{createHTML:e=>e})}catch{}const fo=Ts?e=>Ts.createHTML(e):e=>e,Sc="http://www.w3.org/2000/svg",Ac="http://www.w3.org/1998/Math/MathML",Ze=typeof document<"u"?document:null,wr=Ze&&Ze.createElement("template"),wc={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"?Ze.createElementNS(Sc,e):t==="mathml"?Ze.createElementNS(Ac,e):n?Ze.createElement(e,{is:n}):Ze.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Ze.createTextNode(e),createComment:e=>Ze.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ze.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{wr.innerHTML=fo(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const l=wr.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[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},xc=Symbol("_vtc");function Rc(e,t,n){const s=e[xc];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const xr=Symbol("_vod"),Tc=Symbol("_vsh"),Cc=Symbol(""),Pc=/(?:^|;)\s*display\s*:/;function Oc(e,t,n){const s=e.style,r=se(n);let i=!1;if(n&&!r){if(t)if(se(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&en(s,l,"")}else for(const o in t)n[o]==null&&en(s,o,"");for(const o in n){o==="display"&&(i=!0);const l=n[o];l!=null?Nc(e,o,!se(t)&&t?t[o]:void 0,l)||en(s,o,l):en(s,o,"")}}else if(r){if(t!==n){const o=s[Cc];o&&(n+=";"+o),s.cssText=n,i=Pc.test(n)}}else t&&e.removeAttribute("style");xr in e&&(e[xr]=i?s.display:"",e[Tc]&&(s.display="none"))}const Rr=/\s*!important$/;function en(e,t,n){if(V(n))n.forEach(s=>en(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Ic(e,t);Rr.test(n)?e.setProperty(yt(s),n.replace(Rr,""),"important"):e[s]=n}}const Tr=["Webkit","Moz","ms"],cs={};function Ic(e,t){const n=cs[t];if(n)return n;let s=_e(t);if(s!=="filter"&&s in e)return cs[t]=s;s=jn(s);for(let r=0;rus||(Bc.then(()=>us=0),us=Date.now());function Uc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;const r=n.value;if(V(r)){const i=s.stopImmediatePropagation;s.stopImmediatePropagation=()=>{i.call(s),s._stopped=!0};const o=r.slice(),l=[s];for(let c=0;ce.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,jc=(e,t,n,s,r,i)=>{const o=r==="svg";t==="class"?Rc(e,s,o):t==="style"?Oc(e,n,s):Bn(t)?Hn(t)||Dc(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):kc(e,t,s,o))?(Or(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Pr(e,t,s,o,i,t!=="value")):e._isVueCE&&(Gc(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!se(s)))?Or(e,_e(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Pr(e,t,s,o))};function kc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Nr(t)&&U(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 Nr(t)&&se(n)?!1:t in e}function Gc(e,t){const n=e._def.props;if(!n)return!1;const s=_e(t);return Array.isArray(n)?n.some(r=>_e(r)===s):Object.keys(n).some(r=>_e(r)===s)}const _t=e=>{const t=e.props["onUpdate:modelValue"]||!1;return V(t)?n=>wn(t,n):t};function Kc(e){e.target.composing=!0}function Mr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const xe=Symbol("_assign"),Sn=Symbol("_initialValue");function as(e,t,n){return t&&(e=e.trim()),n&&(e=kn(e)),e}const Dr={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e.parentNode&&(e.type==="text"?e[Sn]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Sn]=e.defaultValue.replace(/\r\n?/g,` +`))),e[xe]=_t(r);const i=s||r.props&&r.props.type==="number";rt(e,t?"change":"input",o=>{o.target.composing||e[xe](as(e.value,n,i))}),(n||i)&&rt(e,"change",()=>{e.value=as(e.value,n,i)}),t||(rt(e,"compositionstart",Kc),rt(e,"compositionend",Mr),rt(e,"change",Mr))},mounted(e,{value:t,modifiers:{trim:n,number:s}}){const r=t??"",i=e[Sn];delete e[Sn],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[xe](as(e.value,n,s)):e.value=r},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:i}},o){if(e[xe]=_t(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?kn(e.value):e.value,c=t??"";if(l===c)return;const f=e.getRootNode();(f instanceof Document||f instanceof ShadowRoot)&&f.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===c)||(e.value=c)}},Wc={deep:!0,created(e,t,n){e[xe]=_t(n),rt(e,"change",()=>{const s=e._modelValue,r=Gt(e),i=e.checked,o=e[xe];if(V(s)){const l=Bs(s,r),c=l!==-1;if(i&&!c)o(s.concat(r));else if(!i&&c){const f=[...s];f.splice(l,1),o(f)}}else if($t(s)){const l=new Set(s);i?l.add(r):l.delete(r),o(l)}else o(ho(e,i))})},mounted:Lr,beforeUpdate(e,t,n){e[xe]=_t(n),Lr(e,t,n)}};function Lr(e,{value:t,oldValue:n},s){e._modelValue=t;let r;if(V(t))r=Bs(t,s.props.value)>-1;else if($t(t))r=t.has(s.props.value);else{if(t===n)return;r=mt(t,ho(e,!0))}e.checked!==r&&(e.checked=r)}const $c={created(e,{value:t},n){e.checked=mt(t,n.props.value),e[xe]=_t(n),rt(e,"change",()=>{e[xe](Gt(e))})},beforeUpdate(e,{value:t,oldValue:n},s){e[xe]=_t(s),t!==n&&(e.checked=mt(t,s.props.value))}},qc={deep:!0,created(e,{value:t,modifiers:{number:n}},s){e._modelValue=t,rt(e,"change",()=>{const r=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?kn(Gt(i)):Gt(i));e[xe](e.multiple?$t(e._modelValue)?new Set(r):r:r[0]),e._assigning=!0,$s(()=>{e._assigning=!1})}),e[xe]=_t(s)},mounted(e,{value:t}){Vr(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[xe]=_t(n)},updated(e,{value:t}){e._assigning||Vr(e,t)}};function Vr(e,t){const n=e.multiple,s=V(t);if(!(n&&!s&&!$t(t))){for(let r=0,i=e.options.length;rString(f)===String(l)):o.selected=Bs(t,l)>-1}else o.selected=t.has(l);else if(mt(Gt(o),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Gt(e){return"_value"in e?e._value:e.value}function ho(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Ea={created(e,t,n){An(e,t,n,null,"created")},mounted(e,t,n){An(e,t,n,null,"mounted")},beforeUpdate(e,t,n,s){An(e,t,n,s,"beforeUpdate")},updated(e,t,n,s){An(e,t,n,s,"updated")}};function zc(e,t){switch(e){case"SELECT":return qc;case"TEXTAREA":return Dr;default:switch(t){case"checkbox":return Wc;case"radio":return $c;default:return Dr}}}function An(e,t,n,s,r){const o=zc(e.tagName,n.props&&n.props.type)[r];o&&o(e,t,n,s)}const Jc={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Sa=(e,t)=>{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const i=yt(r.key);if(t.some(o=>o===i||Jc[o]===i))return e(r)})},Yc=ae({patchProp:jc},wc);let Fr;function Qc(){return Fr||(Fr=nc(Yc))}const Xc=(...e)=>{const t=Qc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=eu(s);if(!r)return;const i=t._component;!U(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=n(r,!1,Zc(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t};function Zc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function eu(e){return se(e)?document.querySelector(e):e}/*! + * vue-router v4.6.4 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */const Vt=typeof document<"u";function po(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function tu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&po(e.default)}const K=Object.assign;function fs(e,t){const n={};for(const s in t){const r=t[s];n[s]=Le(r)?r.map(e):e(r)}return n}const cn=()=>{},Le=Array.isArray;function Br(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const go=/#/g,nu=/&/g,su=/\//g,ru=/=/g,iu=/\?/g,mo=/\+/g,ou=/%5B/g,lu=/%5D/g,_o=/%5E/g,cu=/%60/g,yo=/%7B/g,uu=/%7C/g,vo=/%7D/g,au=/%20/g;function Xs(e){return e==null?"":encodeURI(""+e).replace(uu,"|").replace(ou,"[").replace(lu,"]")}function fu(e){return Xs(e).replace(yo,"{").replace(vo,"}").replace(_o,"^")}function Cs(e){return Xs(e).replace(mo,"%2B").replace(au,"+").replace(go,"%23").replace(nu,"%26").replace(cu,"`").replace(yo,"{").replace(vo,"}").replace(_o,"^")}function du(e){return Cs(e).replace(ru,"%3D")}function hu(e){return Xs(e).replace(go,"%23").replace(iu,"%3F")}function pu(e){return hu(e).replace(su,"%2F")}function gn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const gu=/\/$/,mu=e=>e.replace(gu,"");function ds(e,t,n="/"){let s,r={},i="",o="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(s=t.slice(0,c),i=t.slice(c,l>0?l:t.length),r=e(i.slice(1))),l>=0&&(s=s||t.slice(0,l),o=t.slice(l,t.length)),s=bu(s??t,n),{fullPath:s+i+o,path:s,query:r,hash:gn(o)}}function _u(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Hr(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function yu(e,t,n){const s=t.matched.length-1,r=n.matched.length-1;return s>-1&&s===r&&Kt(t.matched[s],n.matched[r])&&bo(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Kt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function bo(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!vu(e[n],t[n]))return!1;return!0}function vu(e,t){return Le(e)?Ur(e,t):Le(t)?Ur(t,e):(e==null?void 0:e.valueOf())===(t==null?void 0:t.valueOf())}function Ur(e,t){return Le(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function bu(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 i=n.length-1,o,l;for(o=0;o1&&i--;else break;return n.slice(0,i).join("/")+"/"+s.slice(o).join("/")}const ht={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Ps=function(e){return e.pop="pop",e.push="push",e}({}),hs=function(e){return e.back="back",e.forward="forward",e.unknown="",e}({});function Eu(e){if(!e)if(Vt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),mu(e)}const Su=/^[^#]+#/;function Au(e,t){return e.replace(Su,"#")+t}function wu(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 Qn=()=>({left:window.scrollX,top:window.scrollY});function xu(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=wu(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 jr(e,t){return(history.state?history.state.position-t:-1)+e}const Os=new Map;function Ru(e,t){Os.set(e,t)}function Tu(e){const t=Os.get(e);return Os.delete(e),t}function Cu(e){return typeof e=="string"||e&&typeof e=="object"}function Eo(e){return typeof e=="string"||typeof e=="symbol"}let ne=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 So=Symbol("");ne.MATCHER_NOT_FOUND+"",ne.NAVIGATION_GUARD_REDIRECT+"",ne.NAVIGATION_ABORTED+"",ne.NAVIGATION_CANCELLED+"",ne.NAVIGATION_DUPLICATED+"";function Wt(e,t){return K(new Error,{type:e,[So]:!0},t)}function Xe(e,t){return e instanceof Error&&So in e&&(t==null||!!(e.type&t))}const Pu=["params","query","hash"];function Ou(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Pu)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Iu(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;sr&&Cs(r)):[s&&Cs(s)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function Nu(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=Le(s)?s.map(r=>r==null?null:""+r):s==null?s:""+s)}return t}const Mu=Symbol(""),Gr=Symbol(""),Xn=Symbol(""),Zs=Symbol(""),Is=Symbol("");function Xt(){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 gt(e,t,n,s,r,i=o=>o()){const o=s&&(s.enterCallbacks[r]=s.enterCallbacks[r]||[]);return()=>new Promise((l,c)=>{const f=g=>{g===!1?c(Wt(ne.NAVIGATION_ABORTED,{from:n,to:t})):g instanceof Error?c(g):Cu(g)?c(Wt(ne.NAVIGATION_GUARD_REDIRECT,{from:t,to:g})):(o&&s.enterCallbacks[r]===o&&typeof g=="function"&&o.push(g),l())},a=i(()=>e.call(s&&s.instances[r],t,n,f));let h=Promise.resolve(a);e.length<3&&(h=h.then(f)),h.catch(g=>c(g))})}function ps(e,t,n,s,r=i=>i()){const i=[];for(const o of e)for(const l in o.components){let c=o.components[l];if(!(t!=="beforeRouteEnter"&&!o.instances[l]))if(po(c)){const f=(c.__vccOpts||c)[t];f&&i.push(gt(f,n,s,o,l,r))}else{let f=c();i.push(()=>f.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${o.path}"`);const h=tu(a)?a.default:a;o.mods[l]=a,o.components[l]=h;const g=(h.__vccOpts||h)[t];return g&>(g,n,s,o,l,r)()}))}}return i}function Du(e,t){const n=[],s=[],r=[],i=Math.max(t.matched.length,e.matched.length);for(let o=0;oKt(f,l))?s.push(l):n.push(l));const c=e.matched[o];c&&(t.matched.find(f=>Kt(f,c))||r.push(c))}return[n,s,r]}/*! + * vue-router v4.6.4 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */let Lu=()=>location.protocol+"//"+location.host;function Ao(e,t){const{pathname:n,search:s,hash:r}=t,i=e.indexOf("#");if(i>-1){let o=r.includes(e.slice(i))?e.slice(i).length:1,l=r.slice(o);return l[0]!=="/"&&(l="/"+l),Hr(l,"")}return Hr(n,e)+s+r}function Vu(e,t,n,s){let r=[],i=[],o=null;const l=({state:g})=>{const m=Ao(e,location),I=n.value,x=t.value;let H=0;if(g){if(n.value=m,t.value=g,o&&o===I){o=null;return}H=x?g.position-x.position:0}else s(m);r.forEach(F=>{F(n.value,I,{delta:H,type:Ps.pop,direction:H?H>0?hs.forward:hs.back:hs.unknown})})};function c(){o=n.value}function f(g){r.push(g);const m=()=>{const I=r.indexOf(g);I>-1&&r.splice(I,1)};return i.push(m),m}function a(){if(document.visibilityState==="hidden"){const{history:g}=window;if(!g.state)return;g.replaceState(K({},g.state,{scroll:Qn()}),"")}}function h(){for(const g of i)g();i=[],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:f,destroy:h}}function Kr(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?Qn():null}}function Fu(e){const{history:t,location:n}=window,s={value:Ao(e,n)},r={value:t.state};r.value||i(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(c,f,a){const h=e.indexOf("#"),g=h>-1?(n.host&&document.querySelector("base")?e:e.slice(h))+c:Lu()+e+c;try{t[a?"replaceState":"pushState"](f,"",g),r.value=f}catch(m){console.error(m),n[a?"replace":"assign"](g)}}function o(c,f){i(c,K({},t.state,Kr(r.value.back,c,r.value.forward,!0),f,{position:r.value.position}),!0),s.value=c}function l(c,f){const a=K({},r.value,t.state,{forward:c,scroll:Qn()});i(a.current,a,!0),i(c,K({},Kr(s.value,c,null),{position:a.position+1},f),!1),s.value=c}return{location:s,state:r,push:l,replace:o}}function Bu(e){e=Eu(e);const t=Fu(e),n=Vu(e,t.state,t.location,t.replace);function s(i,o=!0){o||n.pauseListeners(),history.go(i)}const r=K({location:"",base:e,go:s,createHref:Au.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 xt=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var oe=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}(oe||{});const Hu={type:xt.Static,value:""},Uu=/[a-zA-Z0-9_]/;function ju(e){if(!e)return[[]];if(e==="/")return[[Hu]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${f}": ${m}`)}let n=oe.Static,s=n;const r=[];let i;function o(){i&&r.push(i),i=[]}let l=0,c,f="",a="";function h(){f&&(n===oe.Static?i.push({type:xt.Static,value:f}):n===oe.Param||n===oe.ParamRegExp||n===oe.ParamRegExpEnd?(i.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${f}) must be alone in its segment. eg: '/:ids+.`),i.push({type:xt.Param,value:f,regexp:a,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),f="")}function g(){f+=c}for(;lt.length?t.length===1&&t[0]===ge.Static+ge.Segment?1:-1:0}function wo(e,t){let n=0;const s=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const $u={strict:!1,end:!0,sensitive:!1};function qu(e,t,n){const s=Ku(ju(e.path),n),r=K(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function zu(e,t){const n=[],s=new Map;t=Br($u,t);function r(h){return s.get(h)}function i(h,g,m){const I=!m,x=zr(h);x.aliasOf=m&&m.record;const H=Br(t,h),F=[x];if("alias"in h){const O=typeof h.alias=="string"?[h.alias]:h.alias;for(const Y of O)F.push(zr(K({},x,{components:m?m.record.components:x.components,path:Y,aliasOf:m?m.record:x})))}let C,N;for(const O of F){const{path:Y}=O;if(g&&Y[0]!=="/"){const ie=g.record.path,ee=ie[ie.length-1]==="/"?"":"/";O.path=g.record.path+(Y&&ee+Y)}if(C=qu(O,g,H),m?m.alias.push(C):(N=N||C,N!==C&&N.alias.push(C),I&&h.name&&!Jr(C)&&o(h.name)),xo(C)&&c(C),x.children){const ie=x.children;for(let ee=0;ee{o(N)}:cn}function o(h){if(Eo(h)){const g=s.get(h);g&&(s.delete(h),n.splice(n.indexOf(g),1),g.children.forEach(o),g.alias.forEach(o))}else{const g=n.indexOf(h);g>-1&&(n.splice(g,1),h.record.name&&s.delete(h.record.name),h.children.forEach(o),h.alias.forEach(o))}}function l(){return n}function c(h){const g=Qu(h,n);n.splice(g,0,h),h.record.name&&!Jr(h)&&s.set(h.record.name,h)}function f(h,g){let m,I={},x,H;if("name"in h&&h.name){if(m=s.get(h.name),!m)throw Wt(ne.MATCHER_NOT_FOUND,{location:h});H=m.record.name,I=K(qr(g.params,m.keys.filter(N=>!N.optional).concat(m.parent?m.parent.keys.filter(N=>N.optional):[]).map(N=>N.name)),h.params&&qr(h.params,m.keys.map(N=>N.name))),x=m.stringify(I)}else if(h.path!=null)x=h.path,m=n.find(N=>N.re.test(x)),m&&(I=m.parse(x),H=m.record.name);else{if(m=g.name?s.get(g.name):n.find(N=>N.re.test(g.path)),!m)throw Wt(ne.MATCHER_NOT_FOUND,{location:h,currentLocation:g});H=m.record.name,I=K({},g.params,h.params),x=m.stringify(I)}const F=[];let C=m;for(;C;)F.unshift(C.record),C=C.parent;return{name:H,path:x,params:I,matched:F,meta:Yu(F)}}e.forEach(h=>i(h));function a(){n.length=0,s.clear()}return{addRoute:i,resolve:f,removeRoute:o,clearRoutes:a,getRoutes:l,getRecordMatcher:r}}function qr(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function zr(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ju(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 Ju(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 Jr(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Yu(e){return e.reduce((t,n)=>K(t,n.meta),{})}function Qu(e,t){let n=0,s=t.length;for(;n!==s;){const i=n+s>>1;wo(e,t[i])<0?s=i:n=i+1}const r=Xu(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function Xu(e){let t=e;for(;t=t.parent;)if(xo(t)&&wo(e,t)===0)return t}function xo({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Yr(e){const t=Ne(Xn),n=Ne(Zs),s=Oe(()=>{const c=Se(e.to);return t.resolve(c)}),r=Oe(()=>{const{matched:c}=s.value,{length:f}=c,a=c[f-1],h=n.matched;if(!a||!h.length)return-1;const g=h.findIndex(Kt.bind(null,a));if(g>-1)return g;const m=Qr(c[f-2]);return f>1&&Qr(a)===m&&h[h.length-1].path!==m?h.findIndex(Kt.bind(null,c[f-2])):g}),i=Oe(()=>r.value>-1&&sa(n.params,s.value.params)),o=Oe(()=>r.value>-1&&r.value===n.matched.length-1&&bo(n.params,s.value.params));function l(c={}){if(na(c)){const f=t[Se(e.replace)?"replace":"push"](Se(e.to)).catch(cn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>f),f}return Promise.resolve()}return{route:s,href:Oe(()=>s.value.href),isActive:i,isExactActive:o,navigate:l}}function Zu(e){return e.length===1?e[0]:e}const ea=Li({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:Yr,setup(e,{slots:t}){const n=qt(Yr(e)),{options:s}=Ne(Xn),r=Oe(()=>({[Xr(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[Xr(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&Zu(t.default(n));return e.custom?i:ao("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},i)}}}),ta=ea;function na(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 sa(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(!Le(r)||r.length!==s.length||s.some((i,o)=>i.valueOf()!==r[o].valueOf()))return!1}return!0}function Qr(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Xr=(e,t,n)=>e??t??n,ra=Li({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=Ne(Is),r=Oe(()=>e.route||s.value),i=Ne(Gr,0),o=Oe(()=>{let f=Se(i);const{matched:a}=r.value;let h;for(;(h=a[f])&&!h.components;)f++;return f}),l=Oe(()=>r.value.matched[o.value]);xn(Gr,Oe(()=>o.value+1)),xn(Mu,l),xn(Is,r);const c=il();return Rn(()=>[c.value,l.value,e.name],([f,a,h],[g,m,I])=>{a&&(a.instances[h]=f,m&&m!==a&&f&&f===g&&(a.leaveGuards.size||(a.leaveGuards=m.leaveGuards),a.updateGuards.size||(a.updateGuards=m.updateGuards))),f&&a&&(!m||!Kt(a,m)||!g)&&(a.enterCallbacks[h]||[]).forEach(x=>x(f))},{flush:"post"}),()=>{const f=r.value,a=e.name,h=l.value,g=h&&h.components[a];if(!g)return Zr(n.default,{Component:g,route:f});const m=h.props[a],I=m?m===!0?f.params:typeof m=="function"?m(f):m:null,H=ao(g,K({},I,t,{onVnodeUnmounted:F=>{F.component.isUnmounted&&(h.instances[a]=null)},ref:c}));return Zr(n.default,{Component:H,route:f})||H}}});function Zr(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const ia=ra;function oa(e){const t=zu(e.routes,e),n=e.parseQuery||Iu,s=e.stringifyQuery||kr,r=e.history,i=Xt(),o=Xt(),l=Xt(),c=ol(ht);let f=ht;Vt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=fs.bind(null,v=>""+v),h=fs.bind(null,pu),g=fs.bind(null,gn);function m(v,P){let R,M;return Eo(v)?(R=t.getRecordMatcher(v),M=P):M=v,t.addRoute(M,R)}function I(v){const P=t.getRecordMatcher(v);P&&t.removeRoute(P)}function x(){return t.getRoutes().map(v=>v.record)}function H(v){return!!t.getRecordMatcher(v)}function F(v,P){if(P=K({},P||c.value),typeof v=="string"){const p=ds(n,v,P.path),y=t.resolve({path:p.path},P),b=r.createHref(p.fullPath);return K(p,y,{params:g(y.params),hash:gn(p.hash),redirectedFrom:void 0,href:b})}let R;if(v.path!=null)R=K({},v,{path:ds(n,v.path,P.path).path});else{const p=K({},v.params);for(const y in p)p[y]==null&&delete p[y];R=K({},v,{params:h(p)}),P.params=h(P.params)}const M=t.resolve(R,P),j=v.hash||"";M.params=a(g(M.params));const u=_u(s,K({},v,{hash:fu(j),path:M.path})),d=r.createHref(u);return K({fullPath:u,hash:j,query:s===kr?Nu(v.query):v.query||{}},M,{redirectedFrom:void 0,href:d})}function C(v){return typeof v=="string"?ds(n,v,c.value.path):K({},v)}function N(v,P){if(f!==v)return Wt(ne.NAVIGATION_CANCELLED,{from:P,to:v})}function O(v){return ee(v)}function Y(v){return O(K(C(v),{replace:!0}))}function ie(v,P){const R=v.matched[v.matched.length-1];if(R&&R.redirect){const{redirect:M}=R;let j=typeof M=="function"?M(v,P):M;return typeof j=="string"&&(j=j.includes("?")||j.includes("#")?j=C(j):{path:j},j.params={}),K({query:v.query,hash:v.hash,params:j.path!=null?{}:v.params},j)}}function ee(v,P){const R=f=F(v),M=c.value,j=v.state,u=v.force,d=v.replace===!0,p=ie(R,M);if(p)return ee(K(C(p),{state:typeof p=="object"?K({},j,p.state):j,force:u,replace:d}),P||R);const y=R;y.redirectedFrom=P;let b;return!u&&yu(s,M,R)&&(b=Wt(ne.NAVIGATION_DUPLICATED,{to:y,from:M}),He(M,M,!0,!1)),(b?Promise.resolve(b):Fe(y,M)).catch(_=>Xe(_)?Xe(_,ne.NAVIGATION_GUARD_REDIRECT)?_:dt(_):G(_,y,M)).then(_=>{if(_){if(Xe(_,ne.NAVIGATION_GUARD_REDIRECT))return ee(K({replace:d},C(_.to),{state:typeof _.to=="object"?K({},j,_.to.state):j,force:u}),P||y)}else _=vt(y,M,!0,d,j);return ft(y,M,_),_})}function Ve(v,P){const R=N(v,P);return R?Promise.reject(R):Promise.resolve()}function at(v){const P=It.values().next().value;return P&&typeof P.runWithContext=="function"?P.runWithContext(v):v()}function Fe(v,P){let R;const[M,j,u]=Du(v,P);R=ps(M.reverse(),"beforeRouteLeave",v,P);for(const p of M)p.leaveGuards.forEach(y=>{R.push(gt(y,v,P))});const d=Ve.bind(null,v,P);return R.push(d),Re(R).then(()=>{R=[];for(const p of i.list())R.push(gt(p,v,P));return R.push(d),Re(R)}).then(()=>{R=ps(j,"beforeRouteUpdate",v,P);for(const p of j)p.updateGuards.forEach(y=>{R.push(gt(y,v,P))});return R.push(d),Re(R)}).then(()=>{R=[];for(const p of u)if(p.beforeEnter)if(Le(p.beforeEnter))for(const y of p.beforeEnter)R.push(gt(y,v,P));else R.push(gt(p.beforeEnter,v,P));return R.push(d),Re(R)}).then(()=>(v.matched.forEach(p=>p.enterCallbacks={}),R=ps(u,"beforeRouteEnter",v,P,at),R.push(d),Re(R))).then(()=>{R=[];for(const p of o.list())R.push(gt(p,v,P));return R.push(d),Re(R)}).catch(p=>Xe(p,ne.NAVIGATION_CANCELLED)?p:Promise.reject(p))}function ft(v,P,R){l.list().forEach(M=>at(()=>M(v,P,R)))}function vt(v,P,R,M,j){const u=N(v,P);if(u)return u;const d=P===ht,p=Vt?history.state:{};R&&(M||d?r.replace(v.fullPath,K({scroll:d&&p&&p.scroll},j)):r.push(v.fullPath,j)),c.value=v,He(v,P,R,d),dt()}let Be;function zt(){Be||(Be=r.listen((v,P,R)=>{if(!bt.listening)return;const M=F(v),j=ie(M,bt.currentRoute.value);if(j){ee(K(j,{replace:!0,force:!0}),M).catch(cn);return}f=M;const u=c.value;Vt&&Ru(jr(u.fullPath,R.delta),Qn()),Fe(M,u).catch(d=>Xe(d,ne.NAVIGATION_ABORTED|ne.NAVIGATION_CANCELLED)?d:Xe(d,ne.NAVIGATION_GUARD_REDIRECT)?(ee(K(C(d.to),{force:!0}),M).then(p=>{Xe(p,ne.NAVIGATION_ABORTED|ne.NAVIGATION_DUPLICATED)&&!R.delta&&R.type===Ps.pop&&r.go(-1,!1)}).catch(cn),Promise.reject()):(R.delta&&r.go(-R.delta,!1),G(d,M,u))).then(d=>{d=d||vt(M,u,!1),d&&(R.delta&&!Xe(d,ne.NAVIGATION_CANCELLED)?r.go(-R.delta,!1):R.type===Ps.pop&&Xe(d,ne.NAVIGATION_ABORTED|ne.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),ft(M,u,d)}).catch(cn)}))}let Pt=Xt(),le=Xt(),z;function G(v,P,R){dt(v);const M=le.list();return M.length?M.forEach(j=>j(v,P,R)):console.error(v),Promise.reject(v)}function Ye(){return z&&c.value!==ht?Promise.resolve():new Promise((v,P)=>{Pt.add([v,P])})}function dt(v){return z||(z=!v,zt(),Pt.list().forEach(([P,R])=>v?R(v):P()),Pt.reset()),v}function He(v,P,R,M){const{scrollBehavior:j}=e;if(!Vt||!j)return Promise.resolve();const u=!R&&Tu(jr(v.fullPath,0))||(M||!R)&&history.state&&history.state.scroll||null;return $s().then(()=>j(v,P,u)).then(d=>d&&xu(d)).catch(d=>G(d,v,P))}const ye=v=>r.go(v);let Ot;const It=new Set,bt={currentRoute:c,listening:!0,addRoute:m,removeRoute:I,clearRoutes:t.clearRoutes,hasRoute:H,getRoutes:x,resolve:F,options:e,push:O,replace:Y,go:ye,back:()=>ye(-1),forward:()=>ye(1),beforeEach:i.add,beforeResolve:o.add,afterEach:l.add,onError:le.add,isReady:Ye,install(v){v.component("RouterLink",ta),v.component("RouterView",ia),v.config.globalProperties.$router=bt,Object.defineProperty(v.config.globalProperties,"$route",{enumerable:!0,get:()=>Se(c)}),Vt&&!Ot&&c.value===ht&&(Ot=!0,O(r.location).catch(M=>{}));const P={};for(const M in ht)Object.defineProperty(P,M,{get:()=>c.value[M],enumerable:!0});v.provide(Xn,bt),v.provide(Zs,Ai(P)),v.provide(Is,c);const R=v.unmount;It.add(v),v.unmount=function(){It.delete(v),It.size<1&&(f=ht,Be&&Be(),Be=null,c.value=ht,Ot=!1,z=!1),R()}}};function Re(v){return v.reduce((P,R)=>P.then(()=>at(R)),Promise.resolve())}return bt}function la(){return Ne(Xn)}function Aa(e){return Ne(Zs)}const Ns="st_token";function Ro(){return localStorage.getItem(Ns)}function gs(e){e?localStorage.setItem(Ns,e):localStorage.removeItem(Ns)}async function te(e,t,n,s=!1){const r={},i=Ro();i&&(r.Authorization=`Bearer ${i}`);let o=n;!s&&n!==void 0&&n!==null&&(r["Content-Type"]="application/json",o=JSON.stringify(n));const l=await fetch(t,{method:e,headers:r,body:o});let c=null;try{c=await l.json()}catch{}if(!l.ok){const f=c&&(c.error||c.message)||`HTTP ${l.status}`;throw new Error(f)}return c}const ms={login:(e,t)=>te("POST","/api/auth/login",{username:e,password:t}),me:()=>te("GET","/api/auth/me"),setup:e=>te("POST","/api/auth/setup",e),adminCreateUser:e=>te("POST","/api/admin/users",e),adminListUsers:()=>te("GET","/api/admin/users"),adminUpdateUser:(e,t)=>te("PUT",`/api/admin/users/${e}`,t),createGroup:e=>te("POST","/api/groups",e,!0),listGroups:()=>te("GET","/api/groups"),getGroup:e=>te("GET",`/api/groups/${e}`),analyzeGroup:e=>te("POST",`/api/groups/${e}/analyze`),listPersonas:e=>te("GET",`/api/groups/${e}/personas`),getPersona:(e,t)=>te("GET",`/api/groups/${e}/personas/${t}`),updatePersona:(e,t,n)=>te("PUT",`/api/groups/${e}/personas/${t}`,n),chatStart:(e,t)=>te("POST",`/api/chat/${e}/personas/${t}/chat/start`),chatSend:(e,t,n)=>te("POST",`/api/chat/${e}/personas/${t}/chat/send`,{text:n}),chatFinish:(e,t)=>te("POST",`/api/chat/${e}/personas/${t}/chat/finish`),mySessions:()=>te("GET","/api/chat/sessions"),myBoard:()=>te("GET","/api/me/board"),weakAreas:()=>te("GET","/api/me/weak-areas"),myPersonas:()=>te("GET","/api/me/personas"),generatePersona:e=>te("POST","/api/me/personas/generate",e),analytics:()=>te("GET","/api/analytics")},Ce=qt({user:null,token:Ro(),mustSetup:!1,get role(){return this.user?this.user.role:null},get isAdmin(){return this.role==="admin"||this.role==="super_admin"},async load(){var e;if(!this.token)return null;try{const t=await ms.me();return this.user=t.user,this.mustSetup=!!((e=t.user)!=null&&e.must_setup),this.user}catch{return this.user=null,this.mustSetup=!1,gs(null),null}},async login(e,t){const n=await ms.login(e,t);return this.token=n.token,gs(n.token),this.user=n.user,this.mustSetup=!!n.must_setup,n.user},async finishSetup(e,t){const n=await ms.setup({username:this.user.username||this.user.id,email:e,password:t});return this.user=n.user,this.mustSetup=!1,n.user},logout(){this.user=null,this.token=null,this.mustSetup=!1,gs(null)}}),_s={en:{app:"Sales Trainer",login:"Login",logout:"Logout",username:"Username",email:"Email",password:"Password",newPassword:"New password",confirmPassword:"Confirm password",save:"Save",passwordTooShort:"Password must be at least 4 characters",passwordMismatch:"Passwords do not match",setupTitle:"Set up your account",setupSubtitle:"First login for ",loginError:"Invalid credentials",dashboard:"Dashboard",groups:"Persona Groups",myTraining:"My Training",adminTools:"Admin Tools",users:"Users",analytics:"Analytics",groupBuilder:"Group Builder",create:"Create",analyze:"Analyze",manual:"Manual",edit:"Edit",product:"Product",segment:"Initial customer segment (optional)",description:"Additional description / scenario (optional)",channel:"Channel",facebook:"Facebook",line:"LINE",language:"Language",thai:"Thai",english:"English",personas:"Personas",tierA:"Tier A — Ready to buy",tierB:"Tier B — Unsure",tierC:"Tier C — Not interested but has pain",selectPersona:"Select a persona to practice",chat:"Chat",start:"Start",send:"Send",finish:"Finish & get result",debrief:"Result & Coaching",won:"Won",lost:"Lost",notTried:"Not tried",score:"Score",pain:"Pain",why:"Reason",reveal:"Revealed persona details",generatePersona:"Generate my persona",weakAreas:"My weak areas",mySessions:"My sessions",openSaleTask:"The customer did NOT message first. You must open the sale.",sellerInitiated:"You must open the sale (outbound)",customerInitiated:"The customer will message you first"},th:{app:"ตัวฝึกขาย",login:"เข้าสู่ระบบ",logout:"ออกจากระบบ",username:"ชื่อผู้ใช้",email:"อีเมล",password:"รหัสผ่าน",newPassword:"รหัสผ่านใหม่",confirmPassword:"ยืนยันรหัสผ่าน",save:"บันทึก",passwordTooShort:"รหัสผ่านต้องอย่างน้อย 4 ตัวอักษร",passwordMismatch:"รหัสผ่านไม่ตรงกัน",setupTitle:"ตั้งค่าบัญชีของคุณ",setupSubtitle:"เข้าสู่ระบบครั้งแรกสำหรับ ",loginError:"ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง",dashboard:"หน้าหลัก",groups:"กลุ่มลูกค้า (Persona)",myTraining:"การฝึกของฉัน",adminTools:"เครื่องมือ Admin",users:"ผู้ใช้",analytics:"สถิติ",groupBuilder:"สร้างกลุ่มลูกค้า",create:"สร้าง",analyze:"วิเคราะห์",manual:"กำหนดเอง",edit:"แก้ไข",product:"สินค้า/บริการ",segment:"กลุ่มลูกค้าเบื้องต้น (ไม่บังคับ)",description:"คำอธิบาย/สถานการณ์เพิ่มเติม (ไม่บังคับ)",channel:"ช่องทาง",facebook:"Facebook",line:"LINE",language:"ภาษา",thai:"ไทย",english:"อังกฤษ",personas:"Persona",tierA:"ระดับ A — ตั้งใจซื้อ",tierB:"ระดับ B — ยังไม่แน่ใจ",tierC:"ระดับ C — ไม่สนใจแต่มี pain",selectPersona:"เลือก persona เพื่อฝึก",chat:"แชท",start:"เริ่ม",send:"ส่ง",finish:"สรุปผล",debrief:"ผลลัพธ์และคำแนะนำ",won:"ขายได้",lost:"ขายไม่ได้",notTried:"ยังไม่ได้ฝึก",score:"คะแนน",pain:"Pain",why:"เหตุผล",reveal:"ข้อมูล persona ที่ถูกซ่อนไว้",generatePersona:"สร้าง persona ของฉัน",weakAreas:"จุดที่ฉันแพ้บ่อย",mySessions:"การฝึกของฉัน",openSaleTask:"ลูกค้ายังไม่ได้ทักมา คุณต้องเป็นฝ่ายเปิดการขายเอง",sellerInitiated:"คุณต้องเปิดการขาย (เชิงรุก)",customerInitiated:"ลูกค้าจะทักมาเองก่อน"}},Mt=qt({locale:localStorage.getItem("locale")||"th",t(e){return _s[this.locale]&&_s[this.locale][e]||_s.en[e]||e},set(e){this.locale=e,localStorage.setItem("locale",e)}}),ca=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},ua={class:"app"},aa={key:0,class:"topnav"},fa={class:"nav-right"},da={class:"muted"},ha={class:"main"},pa={__name:"App",setup(e){const t=la();function n(){Mt.set(Mt.locale==="th"?"en":"th")}function s(){Ce.logout(),t.push("/login")}return Bi(()=>{Ce.token&&!Ce.user&&Ce.load()}),(r,i)=>{const o=ar("router-link"),l=ar("router-view");return Tn(),br("div",ua,[Se(Ce).user?(Tn(),br("nav",aa,[be(o,{to:"/",class:"brand"},{default:Ii(()=>[lo(Dt(Se(Mt).t("app")),1)]),_:1}),wt("div",fa,[wt("button",{onClick:n,class:"lang"},Dt(Se(Mt).locale==="th"?"EN":"TH"),1),wt("span",da,Dt(Se(Ce).user.name)+" ("+Dt(Se(Ce).role)+")",1),wt("button",{onClick:s},"⏻ "+Dt(Se(Mt).t("logout")),1)])])):uc("",!0),wt("main",ha,[(Tn(),io(l,{key:Se(Mt).locale}))])])}}},ga=ca(pa,[["__scopeId","data-v-6307d773"]]),ma="modulepreload",_a=function(e){return"/"+e},ei={},Te=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));r=Promise.allSettled(n.map(c=>{if(c=_a(c),c in ei)return;ei[c]=!0;const f=c.endsWith(".css"),a=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${a}`))return;const h=document.createElement("link");if(h.rel=f?"stylesheet":ma,f||(h.as="script"),h.crossOrigin="",h.href=c,l&&h.setAttribute("nonce",l),document.head.appendChild(h),f)return new Promise((g,m)=>{h.addEventListener("load",g),h.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return r.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})},ya=[{path:"/login",component:()=>Te(()=>import("./Login-CY2HomOW.js"),__vite__mapDeps([0,1])),meta:{public:!0}},{path:"/setup",component:()=>Te(()=>import("./Setup-BZ-GDYWY.js"),__vite__mapDeps([2,3]))},{path:"/",component:()=>Te(()=>import("./Dashboard-Btd0pap_.js"),__vite__mapDeps([4,5]))},{path:"/groups/:gid/personas",component:()=>Te(()=>import("./Personas-CNMd2u86.js"),__vite__mapDeps([6,7]))},{path:"/groups/:gid/chat/:pid",component:()=>Te(()=>import("./Chat-DWAKiJ5k.js"),__vite__mapDeps([8,9]))},{path:"/my/sessions",component:()=>Te(()=>import("./MySessions-h4va9mB8.js"),[])},{path:"/my/weak-areas",component:()=>Te(()=>import("./WeakAreas-mVHNUVcG.js"),__vite__mapDeps([10,11]))},{path:"/my/generate",component:()=>Te(()=>import("./GenPersona-DWlMmhuC.js"),__vite__mapDeps([12,13]))},{path:"/admin/new-group",component:()=>Te(()=>import("./GroupBuilder-C2ury1fL.js"),[]),meta:{admin:!0}},{path:"/admin/groups/:gid/edit",component:()=>Te(()=>import("./GroupEdit-gE6WVEsc.js"),__vite__mapDeps([14,15])),meta:{admin:!0}},{path:"/admin/users",component:()=>Te(()=>import("./AdminUsers-DQOxPApl.js"),[]),meta:{admin:!0}},{path:"/admin/analytics",component:()=>Te(()=>import("./Analytics-2sy93Xf6.js"),__vite__mapDeps([16,17])),meta:{admin:!0}}],To=oa({history:Bu(),routes:ya});To.beforeEach(async e=>e.meta.public?!0:(Ce.user||await Ce.load(),Ce.user?Ce.mustSetup&&e.path!=="/setup"?{path:"/setup"}:e.meta.admin&&!Ce.isAdmin?{path:"/"}:!0:{path:"/login",query:{redirect:e.fullPath}}));Xc(ga).use(To).mount("#app");export{et as F,ca as _,wt as a,Sa as b,br as c,Ea as d,uc as e,Ce as f,la as g,Aa as h,Mt as i,lo as j,Bi as k,ms as l,be as m,Ii as n,Tn as o,ba as p,ar as q,il as r,Fs as s,Dt as t,Se as u,Dr as v,va as w,io as x,$s as y,qc as z}; diff --git a/frontend/dist/assets/index-CYRckR7U.css b/frontend/dist/assets/index-CYRckR7U.css new file mode 100644 index 0000000..078dc3c --- /dev/null +++ b/frontend/dist/assets/index-CYRckR7U.css @@ -0,0 +1 @@ +.topnav[data-v-6307d773]{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.brand[data-v-6307d773]{font-weight:800;text-decoration:none;color:var(--ink)}.nav-right[data-v-6307d773]{display:flex;align-items:center;gap:12px}.lang[data-v-6307d773]{padding:6px 10px}.main[data-v-6307d773]{max-width:1080px;margin:0 auto;padding:24px}:root{--bg: #f6f7fb;--card: #ffffff;--border: #e5e8ef;--ink: #1a1d29;--muted: #6b7280;--accent: #4f46e5;--accent-2: #7c3aed;--green: #16a34a;--red: #dc2626;--amber: #d97706;--radius: 14px;--shadow: 0 1px 3px rgba(20, 24, 40, .08)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans Thai,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}#app{min-height:100vh}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}button{font-family:inherit;cursor:pointer;border:1px solid var(--border);background:var(--card);padding:10px 16px;border-radius:10px;font-size:14px;color:var(--ink)}button.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border:none}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-family:inherit;font-size:14px}label{font-size:13px;color:var(--muted);display:block;margin:10px 0 4px}.row{display:flex;gap:12px;flex-wrap:wrap}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge.A{background:#dcfce7;color:#166534}.badge.B{background:#fef9c3;color:#854d0e}.badge.C{background:#fee2e2;color:#991b1b}.badge.won{background:#dcfce7;color:#166534}.badge.lost{background:#fee2e2;color:#991b1b}.badge.not_tried{background:#eef2ff;color:#4338ca}.error{color:var(--red);font-size:13px}.muted{color:var(--muted)}.msg-seller{background:var(--accent);color:#fff;align-self:flex-end;border-radius:16px 16px 4px}.msg-customer{background:#fff;align-self:flex-start;border-radius:16px 16px 16px 4px;border:1px solid var(--border)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:inherit}a:focus{outline:2px solid var(--accent);outline-offset:2px}button{min-height:44px;transition:transform .15s ease,box-shadow .2s ease,background .2s ease,opacity .2s ease}button:not(:disabled):hover{box-shadow:0 4px 12px #1418281a}button:not(:disabled):active{transform:scale(.97)}button.primary:not(:disabled):hover{box-shadow:0 6px 18px #4f46e559}input,select,textarea{min-height:44px;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4f46e526}textarea{min-height:88px;resize:vertical}.card.lift{transition:transform .2s ease,box-shadow .25s ease}.card.lift:hover{transform:translateY(-2px);box-shadow:0 10px 24px #1418281a}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-back{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;margin-bottom:12px;background:transparent;border:1px solid var(--border);border-radius:10px;color:var(--muted);font-size:13px;text-decoration:none}.btn-back:hover{color:var(--ink);border-color:var(--accent)}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-radius:8px;background:linear-gradient(90deg,#eef0f5 25%,#e2e5ec 37%,#eef0f5 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.empty-state{text-align:center;padding:40px 20px;color:var(--muted)}.empty-state strong{display:block;margin-bottom:4px;color:var(--ink)}.field-error{color:var(--red);font-size:12px;margin-top:4px}@media (max-width: 640px){.main{padding:16px}.row{gap:10px}.msg-seller,.msg-customer{max-width:84%}} diff --git a/frontend/dist/assets/index-SkBDFfY3.css b/frontend/dist/assets/index-SkBDFfY3.css deleted file mode 100644 index b866260..0000000 --- a/frontend/dist/assets/index-SkBDFfY3.css +++ /dev/null @@ -1 +0,0 @@ -:root{--bg: #f3f5fa;--card: #ffffff;--border: #e5e8ef;--ink: #111827;--muted: #6b7280;--accent: #4f46e5;--accent-2: #7c3aed;--accent-soft: #eef2ff;--green: #16a34a;--red: #dc2626;--amber: #d97706;--radius: 14px;--radius-sm: 10px;--shadow: 0 1px 3px rgba(20, 24, 40, .08);--shadow-md: 0 6px 20px rgba(20, 24, 40, .1);--tab-height: 52px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans Thai,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}#app{min-height:100vh}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}button{font-family:inherit;cursor:pointer;border:1px solid var(--border);background:var(--card);padding:10px 16px;border-radius:10px;font-size:14px;color:var(--ink)}button.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border:none}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-family:inherit;font-size:14px}label{font-size:13px;color:var(--muted);display:block;margin:10px 0 4px}.row{display:flex;gap:12px;flex-wrap:wrap}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge.A{background:#dcfce7;color:#166534}.badge.B{background:#fef9c3;color:#854d0e}.badge.C{background:#fee2e2;color:#991b1b}.badge.won{background:#dcfce7;color:#166534}.badge.lost{background:#fee2e2;color:#991b1b}.badge.not_tried{background:#eef2ff;color:#4338ca}.error{color:var(--red);font-size:13px}.muted{color:var(--muted)}.msg-seller{background:var(--accent);color:#fff;align-self:flex-end;border-radius:16px 16px 4px}.msg-customer{background:#fff;align-self:flex-start;border-radius:16px 16px 16px 4px;border:1px solid var(--border)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:inherit}a:focus{outline:2px solid var(--accent);outline-offset:2px}button{min-height:44px;transition:transform .15s ease,box-shadow .2s ease,background .2s ease,opacity .2s ease}button:not(:disabled):hover{box-shadow:0 4px 12px #1418281a}button:not(:disabled):active{transform:scale(.97)}button.primary:not(:disabled):hover{box-shadow:0 6px 18px #4f46e559}input,select,textarea{min-height:44px;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4f46e526}textarea{min-height:88px;resize:vertical}.card.lift{transition:transform .2s ease,box-shadow .25s ease}.card.lift:hover{transform:translateY(-2px);box-shadow:0 10px 24px #1418281a}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-back{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;margin-bottom:12px;background:transparent;border:1px solid var(--border);border-radius:10px;color:var(--muted);font-size:13px;text-decoration:none}.btn-back:hover{color:var(--ink);border-color:var(--accent)}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-radius:8px;background:linear-gradient(90deg,#eef0f5 25%,#e2e5ec 37%,#eef0f5 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.empty-state{text-align:center;padding:40px 20px;color:var(--muted)}.empty-state strong{display:block;margin-bottom:4px;color:var(--ink)}.field-error{color:var(--red);font-size:12px;margin-top:4px}@media (max-width: 640px){.main{padding:16px}.row{gap:10px}.msg-seller,.msg-customer{max-width:84%}}.shell{min-height:100vh;display:flex;flex-direction:column}.shell-header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:60px;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.shell-brand{font-weight:800;font-size:16px;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:10px}.shell-brand .logo{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;color:#fff;font-size:15px}.shell-actions{display:flex;align-items:center;gap:10px}.shell-user{display:flex;align-items:center;gap:10px;font-size:14px}.avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:700;font-size:14px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--ink);cursor:pointer;transition:all .15s ease}.icon-btn:hover{border-color:var(--accent);color:var(--accent)}.tabbar{display:flex;gap:4px;padding:10px 24px 0;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:60px;z-index:15;overflow-x:auto}.tab{display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border:none;background:transparent;color:var(--muted);font-size:14px;font-weight:600;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap;min-height:48px;transition:color .15s ease}.tab:hover{color:var(--ink)}.tab.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent-soft);border-radius:10px 10px 0 0}.tab .tab-icon{width:18px;height:18px}.shell-main{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:24px}.setting-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}.settings-section .s-title{margin:0 0 4px;font-size:16px}.settings-section .s-desc{margin:0 0 16px;color:var(--muted);font-size:13px}.form-grid{display:grid;gap:4px}.form-grid label{margin:12px 0 4px}.form-row{display:flex;gap:12px;flex-wrap:wrap}.form-row>*{flex:1;min-width:200px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.stat-card .stat-label{font-size:13px;color:var(--muted)}.stat-card .stat-value{font-size:28px;font-weight:800;color:var(--accent);margin-top:4px}.filter-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.filter-bar input[type=date]{width:auto;min-width:150px}.icon-16{width:16px;height:16px}@media (max-width: 640px){.shell-header{padding:0 12px}.tab{padding:10px 12px;font-size:13px}.shell-main{padding:16px}} diff --git a/frontend/dist/index.html b/frontend/dist/index.html index d71c88b..79b6cb4 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -4,8 +4,8 @@ Sales Trainer - - + +