PageSourceSearch

https://megatix.in.th/_nuxt/BylaAVhf.js

js megatix.in.th collected 2026-10-03 20:25:04 UTC 21,963 bytes, 3 lines download raw bytes

1import{_ as re,a as le}from"./CFgTnp9Y.js";import{d as q,N as Z,i as u,x as H,A as O,a as p,o as r,b as e,u as o,g as S,f as R,t as $,l as F,B,C as P,D as N,E as T,w as M,e as C,q as I,_ as Y,s as W,H as J,O as E,F as K,j as ie,z as ue,c as A,r as de,h as ee,P as D,M as ce,n as me,Q as pe}from"./B9gSLCn8.js";import{_ as fe}from"./qLP1_lRV.js";import{_ as Q}from"./DpJQ9SCY.js";import{_ as z}from"./D0U-KR8Z.js";import{_ as ve}from"./kIk4oHJR.js";import{_ as xe}from"./csFu6EyK.js";import{u as ge}from"./FtuwKkgW.js";import{u as he}from"./CjPTXSzo.js";const be={key:0,class:"mt-6"},ye={key:1,class:"mt-4"},_e={key:0,class:"mt-4 rounded-lg border border-danger-surface bg-danger-surface p-3 text-sm text-danger"},we={class:"mt-4 grid gap-4 md:grid-cols-[180px,1fr] md:items-start"},ke={class:"w-full"},$e={class:"rounded-lg border border-neutral-200 bg-white p-3 shadow-sm"},Ce=["src"],Se={class:"flex-1"},Me={class:"relative break-all rounded-lg bg-neutral-50 p-3 pr-11 font-mono text-sm text-ink"},Re=["title"],Te={class:"mt-6 rounded-xl border border-neutral-200 bg-white p-6 shadow-sm"},Pe={class:"mt-4"},Fe={key:0},Ue=q({__name:"MfaSetupPanel",props:{nextRoute:{}},setup(U){const w=U,{get:h,post:l}=Z(),b=u(!0),i=u(""),_=u(""),x=u(""),d=u(!1),f=u(""),a=u(!1);async function s(){b.value=!0,i.value="";try{const v=await h("/api/v3/accounts/mfa/setup");if(!v.qrDataUri){await I({path:"/login",query:{mfa:"challenge",next:w.nextRoute}},{replace:!0});return}_.value=v.qrDataUri,x.value=v.secret??""}catch{i.value="Unable to load MFA set-up. Please try again."}finally{b.value=!1}}async function c(){var v;if(!a.value){a.value=!0,i.value="";try{const n=await l("/api/v3/accounts/mfa/confirm",{code:f.value.replace(/\s+/g,"")}),y=(n==null?void 0:n.recovery_codes)??[];y.length&&sessionStorage.setItem("mfa_recovery_codes",JSON.stringify(y)),await I({path:"/login",query:{mfa:"recovery-codes",next:w.nextRoute}},{replace:!0})}catch(n){i.value=((v=n==null?void 0:n.data)==null?void 0:v.message)??"That code did not work. Please try again."}finally{a.value=!1}}}async function k(){var v;if((v=x.value)!=null&&v.trim())try{await navigator.clipboard.writeText(x.value),d.value=!0,setTimeout(()=>{d.value=!1},2500)}catch{d.value=!1}}return H(async()=>{const v=O();await v.init(),v.user&&await s()}),(v,n)=>{const y=Q,t=z;return r(),p("div",null,[n[8]||(n[8]=e("h2",{class:"pb-2 text-xl text-ink",style:{"font-weight":"500"}}," Set up multi-factor authentication ",-1)),n[9]||(n[9]=e("p",{class:"text-sm text-ink-subtle"}," Use an authenticator app (for example Google Authenticator, 1Password, or Microsoft Authenticator). ",-1)),o(b)?(r(),p("div",be,[S(y,{bgColourClass:"bg-navy"})])):(r(),p("div",ye,[o(i)?(r(),p("div",_e,$(o(i)),1)):R("",!0),e("div",we,[e("div",ke,[e("div",$e,[o(_)?(r(),p("img",{key:0,src:o(_),alt:"MFA QR code",class:"w-full"},null,8,Ce)):R("",!0)])]),e("div",Se,[n[2]||(n[2]=e("p",{class:"text-sm text-ink-subtle"},"Scan the QR code, then enter the 6-digit code from your app to confirm.",-1)),n[3]||(n[3]=e("p",{class:"mb-1 mt-3 text-sm font-medium text-ink"},"Manual set-up key",-1)),e("div",Me,[F($(o(x))+" ",1),e("button",{type:"button",class:"absolute right-2 top-2 rounded-md p-1 text-neutral-500 hover:bg-neutral-100 hover:text-neutral-700",title:o(d)?"Copied":"Copy code","aria-label":"Copy manual set-up key",onClick:k},n[1]||(n[1]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8",class:"h-5 w-5","aria-hidden":"true"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8 7V5a2 2 0 012-2h7a2 2 0 012 2v11a2 2 0 01-2 2h-2"}),e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M4 7h7a2 2 0 012 2v12H6a2 2 0 01-2-2V7z"})],-1)]),8,Re)])])]),n[7]||(n[7]=e("p",{class:"mt-3 text-sm text-neutral-600"}," If you are on a mobile device or having trouble scanning the QR code, copy the manual set-up key and paste it into your authenticator app. ",-1)),e("div",Te,[n[5]||(n[5]=e("h3",{class:"text-base font-medium text-ink"},"Confirm with a code",-1)),n[6]||(n[6]=e("p",{class:"mt-1 text-sm text-neutral-600"},"Enter the 6-digit code shown in your authenticator app.",-1)),e("form",{class:"mt-4",onSubmit:B(c,["prevent"])},[n[4]||(n[4]=e("label",{class:"sr-only"},"6-digit code",-1)),P(e("input",{"onUpdate:modelValue":n[0]||(n[0]=m=>T(f)?f.value=m:null),name:"code",type:"text",class:"login-input",inputmode:"numeric",autocomplete:"one-time-code",placeholder:"123456",required:""},null,512),[[N,o(f)]]),e("div",Pe,[S(t,{classes:"w-full mt-2 h-12 flex justify-center items-center text-md",disabled:o(a)},{default:M(()=>[o(a)?(r(),C(y,{key:1,bgColourClass:"bg-navy",class:"pl-2"})):(r(),p("span",Fe,"Confirm and continue"))]),_:1},8,["disabled"])])],32)])]))])}}}),Ve=Y(Ue,[["__scopeId","data-v-0fe87f39"]]),De={class:"space-y-5"},Le={key:0,class:"rounded-lg border border-danger-surface bg-danger-surface p-3 text-sm text-danger"},je={key:1,class:"rounded-xl border border-neutral-200 bg-white p-6 shadow-sm"},Ae={class:"mt-4 flex items-center gap-2"},Ie={key:0},qe={key:2,class:"rounded-xl border border-neutral-200 bg-white p-6 shadow-sm"},Be={class:"mt-4 flex items-center gap-2"},Ne={key:0},Ee={class:"mt-4 text-center text-sm"},He={key:3,class:"rounded-xl border border-dashed border-neutral-200 bg-neutral-50/90 p-5"},ze={class:"mt-3 list-none space-y-2 p-0 text-sm"},Oe=q({__name:"MfaChallengeFlow",props:{nextRoute:{}},setup(U){const w=U,h=W(),l=O(),{post:b}=Z(),i=u("authenticator"),_=u(""),x=u(""),d=u(!0),f=u(""),a=u(!1);function s(){f.value=""}async function c(){var y;if(!a.value){a.value=!0,f.value="";try{await b("/api/v3/accounts/mfa/verify",{code:_.value.replace(/\s+/g,""),remember_device:d.value}),v()}catch(t){f.value=((y=t==null?void 0:t.data)==null?void 0:y.message)??"That code did not work. Please try again."}finally{a.value=!1}}}async function k(){var y;if(!a.value){a.value=!0,f.value="";try{await b("/api/v3/accounts/mfa/verify",{recovery_code:x.value.replace(/\s+/g,"").toUpperCase(),remember_device:d.value}),v()}catch(t){f.value=((y=t==null?void 0:t.data)==null?void 0:y.message)??"That recovery code did not work. Please try again."}finally{a.value=!1}}}function v(){const y=w.nextRoute,t=`${h.hash??""}`;if(y.startsWith("/dashboard/v2")){window.location.href=`${y}${t}`;return}I(y)}async function n(){await l.logout(),await I({path:"/login",query:{}})}return H(async()=>
1{await l.init()}),(y,t)=>{const m=Q,V=z;return r(),p("div",De,[t[17]||(t[17]=e("div",null,[e("h2",{class:"pb-1 text-xl text-ink",style:{"font-weight":"500"}}," Two-factor authentication "),e("p",{class:"text-sm text-ink-subtle"},"We need to verify it is really you before continuing.")],-1)),o(f)?(r(),p("div",Le,$(o(f)),1)):R("",!0),o(i)==="authenticator"?(r(),p("div",je,[t[9]||(t[9]=J('<div class="mb-4 flex justify-center text-neutral-400" data-v-dc9c5858><svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.25" aria-hidden="true" data-v-dc9c5858><path stroke-linecap="round" stroke-linejoin="round" d="M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z" data-v-dc9c5858></path></svg></div><h3 class="text-center text-base font-semibold text-ink" data-v-dc9c5858>Authenticator app</h3><p class="mt-2 text-center text-sm text-neutral-600" data-v-dc9c5858>Open your authenticator app and enter the 6-digit code.</p>',3)),e("form",{class:"mt-5",onSubmit:B(c,["prevent"])},[t[7]||(t[7]=e("label",{for:"mfa-totp",class:"mb-1 block text-sm font-medium text-ink"},"6-digit code",-1)),t[8]||(t[8]=e("p",{id:"mfa-totp-hint",class:"mb-1 text-xs text-neutral-500"}," Codes refresh every 30 seconds. If a code fails, wait for the next one. ",-1)),P(e("input",{id:"mfa-totp","aria-describedby":"mfa-totp-hint","onUpdate:modelValue":t[0]||(t[0]=g=>T(_)?_.value=g:null),type:"text",name:"code",class:"login-input",inputmode:"numeric",autocomplete:"one-time-code",placeholder:"123456",onInput:s},null,544),[[N,o(_)]]),e("div",Ae,[P(e("input",{id:"rememberDeviceChallenge","onUpdate:modelValue":t[1]||(t[1]=g=>T(d)?d.value=g:null),type:"checkbox",class:"size-5 rounded-md border-ink-subtle ring-0 focus:border-ink-subtle focus:ring-[3px] focus:ring-accent"},null,512),[[E,o(d)]]),t[6]||(t[6]=e("label",{for:"rememberDeviceChallenge",class:"text-sm text-neutral-700"},"Remember this device for 30 days",-1))]),S(V,{classes:"mt-5 w-full h-12 flex justify-center items-center text-md font-semibold",disabled:o(a)||!o(_).trim()},{default:M(()=>[o(a)?(r(),C(m,{key:1,bgColourClass:"bg-navy",class:"pl-2"})):(r(),p("span",Ie,"Verify"))]),_:1},8,["disabled"])],32)])):(r(),p("div",qe,[t[13]||(t[13]=J('<div class="mb-4 flex justify-center text-neutral-400" data-v-dc9c5858><svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.25" aria-hidden="true" data-v-dc9c5858><path stroke-linecap="round" stroke-linejoin="round" d="M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z" data-v-dc9c5858></path></svg></div><h3 class="text-center text-base font-semibold text-ink" data-v-dc9c5858>Recovery code</h3><p class="mt-2 text-center text-sm text-neutral-600" data-v-dc9c5858> If you cannot access your phone or tablet, enter one of your recovery codes. Each code works once. </p>',3)),e("form",{class:"mt-5",onSubmit:B(k,["prevent"])},[t[11]||(t[11]=e("label",{for:"mfa-recovery",class:"mb-1 block text-sm font-medium text-ink"},"Recovery code",-1)),t[12]||(t[12]=e("p",{id:"mfa-recovery-hint",class:"mb-1 text-xs text-neutral-500"}," Each recovery code can only be used once ",-1)),P(e("input",{id:"mfa-recovery","aria-describedby":"mfa-recovery-hint","onUpdate:modelValue":t[2]||(t[2]=g=>T(x)?x.value=g:null),type:"text",name:"recovery_code",class:"login-input font-mono uppercase",autocomplete:"one-time-code",placeholder:"ABCDE-FGHIJ",onInput:s},null,544),[[N,o(x)]]),e("div",Be,[P(e("input",{id:"rememberDeviceRecovery","onUpdate:modelValue":t[3]||(t[3]=g=>
1T(d)?d.value=g:null),type:"checkbox",class:"size-5 rounded-md border-ink-subtle ring-0 focus:border-ink-subtle focus:ring-[3px] focus:ring-accent"},null,512),[[E,o(d)]]),t[10]||(t[10]=e("label",{for:"rememberDeviceRecovery",class:"text-sm text-neutral-700"},"Remember this device for 30 days",-1))]),S(V,{classes:"mt-5 w-full h-12 flex justify-center items-center text-md font-semibold",disabled:o(a)||!o(x).trim()},{default:M(()=>[o(a)?(r(),C(m,{key:1,bgColourClass:"bg-navy",class:"pl-2"})):(r(),p("span",Ne,"Verify"))]),_:1},8,["disabled"])],32),e("p",Ee,[e("button",{type:"button",class:"font-medium text-brand underline hover:no-underline",onClick:t[4]||(t[4]=g=>{i.value="authenticator",s()})}," Use authenticator app instead ")])])),o(i)==="authenticator"?(r(),p("div",He,[t[14]||(t[14]=e("h4",{class:"text-sm font-semibold text-ink"},"Don't have access to your authenticator?",-1)),e("ul",ze,[e("li",null,[e("button",{type:"button",class:"font-medium text-brand underline hover:no-underline",onClick:t[5]||(t[5]=g=>{i.value="recovery",s()})}," Use a recovery code instead ")])])])):R("",!0),e("div",{class:"rounded-xl border border-neutral-100 bg-white p-4 text-center text-sm text-neutral-600"},[t[15]||(t[15]=e("p",{class:"font-medium text-ink"},"Locked out?",-1)),t[16]||(t[16]=e("p",{class:"mt-1"},[F(" Contact "),e("a",{href:"mailto:[email protected]",class:"text-brand underline"},"[email protected]"),F(" for help recovering your account. ")],-1)),e("button",{type:"button",class:"mt-3 text-sm font-medium text-neutral-500 underline hover:text-neutral-700",onClick:n}," Sign out and use a different account ")])])}}}),Ye=Y(Oe,[["__scopeId","data-v-dc9c5858"]]),We={class:"space-y-5"},Qe={key:0,class:"rounded-lg border border-neutral-200 bg-neutral-50 p-4 text-sm text-ink"},Ge={class:"rounded-xl border border-neutral-200 bg-white p-5 shadow-sm"},Je={class:"mt-3 grid list-none gap-2 p-0 sm:grid-cols-2","aria-label":"Recovery codes"},Ke={class:"mt-5 flex flex-col gap-3 sm:flex-row"},Xe={class:"flex cursor-pointer items-start gap-3 rounded-xl border border-neutral-200 bg-white p-4 shadow-sm"},X="mfa_recovery_codes",Ze=q({__name:"MfaRecoveryCodesPanel",props:{nextRoute:{}},setup(U){const w=U,h=W(),l=u([]),b=u(!1),i=u(!1);H(()=>{try{const a=sessionStorage.getItem(X);a&&(l.value=JSON.parse(a)??[])}catch{l.value=[]}});function _(){return["Megatix — multi-factor authentication recovery codes","=====================================================","","IMPORTANT: Each code works only once. Store this file somewhere safe.","You will NOT be able to see these codes again after you leave this page.","",`Generated: ${new Date().toLocaleString("en-AU",{dateStyle:"full",timeStyle:"short"})}`,"","Your recovery codes:","",...l.value.map(s=>`  ${s}`),"","If you lose both your authenticator app and these codes, contact [email protected]"].join(`
2`)}function x(){const a=new Blob([_()],{type:"text/plain;charset=utf-8"}),s=URL.createObjectURL(a),c=document.createElement("a");c.href=s,c.download="megatix-mfa-recovery-codes.txt",c.rel="noopener",document.body.appendChild(c),c.click(),c.remove(),URL.revokeObjectURL(s)}async function d(){const a=l.value.join(`
3`);try{await navigator.clipboard.writeText(a),i.value=!0,setTimeout(()=>{i.value=!1},2500)}catch{i.value=!1}}function f(){sessionStorage.removeItem(X);const a=w.nextRoute,s=`${h.hash??""}`;if(a.startsWith("/dashboard/v2")){window.location.href=`${a}${s}`;return}I(a)}return(a,s)=>{const c=z;return r(),p("div",We,[s[5]||(s[5]=e("div",null,[e("h2",{class:"pb-1 text-xl text-ink",style:{"font-weight":"500"}}," Save your recovery codes "),e("p",{class:"text-sm text-ink-subtle"}," You can only view or download these codes on this screen. After you continue, they will not be shown again. ")],-1)),s[6]||(s[6]=e("div",{class:"rounded-xl border-2 border-warning bg-warning-surface p-4 shadow-sm",role:"alert"},[e("p",{class:"text-sm font-semibold text-warning"},"Download or copy now — this is your only chance"),e("p",{class:"mt-2 text-sm text-warning"}," If you lose your authenticator device, recovery codes are the backup way to sign in. Megatix cannot show these codes to you again later. ")],-1)),o(l).length?(r(),p(K,{key:1},[e("div",Ge,[s[2]||(s[2]=e("p",{class:"text-sm font-medium text-ink"},"Your codes",-1)),e("ul",Je,[(r(!0),p(K,null,ie(o(l),(k,v)=>(r(),p("li",{key:v,class:"rounded-md border border-neutral-100 bg-neutral-50 px-3 py-2 text-center font-mono text-sm text-ink"},$(k),1))),128))]),e("div",Ke,[S(c,{classes:"w-full sm:flex-1 h-11 flex justify-center items-center text-md font-semibold","on-click":x},{default:M(()=>s[1]||(s[1]=[F(" Download .txt file ")])),_:1}),e("button",{type:"button",class:"h-11 w-full rounded-lg border border-info-surface bg-white text-sm font-semibold text-brand shadow-sm hover:bg-neutral-50 sm:flex-1",onClick:d},$(o(i)?"Copied!":"Copy all codes"),1)])]),e("label",Xe,[P(e("input",{"onUpdate:modelValue":s[0]||(s[0]=k=>T(b)?b.value=k:null),type:"checkbox",class:"mt-1 size-5 shrink-0 rounded-md border-ink-subtle ring-0 focus:border-ink-subtle focus:ring-[3px] focus:ring-accent"},null,512),[[E,o(b)]]),s[3]||(s[3]=e("span",{class:"text-sm text-neutral-700"}," I have saved my recovery codes in a safe place (for example a password manager or a downloaded file). ",-1))])],64)):(r(),p("div",Qe," No recovery codes are available here. If you have already saved them, you can continue. Otherwise, contact support. ")),S(c,{classes:"w-full h-12 flex justify-center items-center text-md font-semibold",disabled:o(l).length>0&&!o(b),"on-click":f},{default:M(()=>s[4]||(s[4]=[F(" Continue ")])),_:1},8,["disabled"])])}}}),et={class:"flex min-h-screen"},tt={class:"xl:hidden"},ot={class:"relative hidden min-h-screen flex-1 xl:flex"},st={class:"flex min-h-screen flex-1 items-center justify-center"},nt={class:"w-full px-5 py-16 md:w-[420px] xl:px-2 xl:py-4"},at=q({__name:"AuthSplitShell",setup(U){const w=ue(),h=A(()=>w.theme);return(l,b)=>{const i=ve,_=xe,x=ee;return r(),p("div",et,[e("div",tt,[S(x,{to:"/",alt:"Megatix Home Page",class:"absolute left-0 top-0 z-10 px-6 py-5"},{default:M(()=>[[("PageThemes"in l?l.PageThemes:o(D)).megatix,("PageThemes"in l?l.PageThemes:o(D)).megatix_minimal].includes(o(h).name)?(r(),C(i,{key:0,ticketLeftColour:"var(--mt-brand)",ticketRightColour:"var(--mt-blue)",textColour:"var(--mt-brand)",height:32})):R("",!0),[("PageThemes"in l?l.PageThemes:o(D)).tickethotline].includes(o(h).name)?(r(),C(_,{key:1,colour:"#FF6100",height:32})):R("",!0)]),_:1})]),e("div",ot,[S(x,{to:"/",alt:"Megatix Home Page",class:"absolute left-0 top-0 z-10 px-6 py-5"},{default:M(()=>[[("PageThemes"in l?l.PageThemes:o(D)).megatix,("PageThemes"in l?l.PageThemes:o(D)).megatix_minimal].includes(o(h).name)?(r(),C(i,{key:0,ticketLeftColour:"var(--mt-brand)",ticketRightColour:"var(--mt-blue)",textColour:"var(--mt-brand)",height:32})):R("",!0),[("PageThemes"in l?l.PageThemes:o(D)).tickethotline].includes(o(h).name)?(r(),C(_,{key:1,colour:"#FF6100",height:32})):R("",!0)]),_:1}),S(re)]),e("div",st,[e("div",nt,[de(l.$slots,"default")])])])}}}),rt={key:0,class:"flex w-full flex-col"},lt={class:"pb-2 text-xl text-ink",style:{"font-weight":"500"}},it={class:"flex flex-col"},ut={class:"pb-1 pt-3 text-sm"},dt=["aria-invalid"],ct={class:"flex flex-col"},mt={class:"flex items-end justify-between"},pt={class:"pb-1 pt-3 text-sm"},ft=["title"],vt={class:"flex flex-row items-center pt-4"},xt={for:"remember",class:"pl-2 text-sm"},gt={class:"mt-2"},ht={class:"mt-1 list-inside list-disc text-sm text-royal"},bt={key:0},yt={class:"py-4 text-center text-sm text-ink-subtle"},_t=q({__name:"index",setup(U){const w=O(),h=W(),l=ce(),b=A(()=>{const t=h.query.mfa;return t==="setup"||t==="challenge"||t==="recovery-codes"?t:null}),i=A(()=>{const t=h.query.next;return Array.isArray(t)?t[0]??"/dashboard/v2":t?String(t):"/dashboard/v2"}),_=A(()=>b.value?!w.user:!0),x=A(()=>!!b.value&&!!w.user);he({ogTitle:"Megatix Login",ogDescription:"Login to Megatix"});const d=u(""),f=u(""),a=u(!0),s=u(""),c=u(""),k=u(!1);function v(){var t;return s.value="",c.value="",k.value=!1,(t=d.value)!=null&&t.trim().length?ge.email(d.value.trim())?f.value.trim().length?!0:(s.value="You must include a password.",c.value="password",!1):(s.value="You must use a valid email address.",c.value="email",!1):(s.value="You must include an email address.",c.value="email",!1)}const n=u(!1);async function y(){if(!(n.value||!v())){n.value=!0;try{const t={email:d.value,password:f.value,remember:a.value};if(await w.login(t),w.user){const m=h.query.mfa;if(m==="setup"||m==="challenge"||m==="recovery-codes"){await l.replace({path:"/login",query:{...h.query}});return}const V="/",g=`${h.query.next??V}`;if(l.resolve(g).matched.length>0)await l.push(g);else if(g.startsWith("/dashboard/v2")){const L=`${h.hash??""}`;window.location.href=`${g}${L}`}else if(g.startsWith("/events/")){const L=`${h.hash??""}`;window.location.href=`${g}${L}`}else await l.push(V)}}catch(t){t.name==="FacebookUserError"?(k.value=!0,s.value=t.message||"Your account was created via Facebook Login. Please reset your password to continue."):(k.value=!1,s.value="Login unsuccessful. Please check your email and password.")}finally{n.value=!1}}}return H(async()=>{await w.init()}),(t,m)=>
3{const V=le,g=ee,G=fe,L=Q,te=z,oe=Ve,se=Ye,ne=Ze,ae=at;return r(),C(ae,null,{default:M(()=>[o(_)?(r(),p("div",rt,[e("h2",lt,$(t.$t("login_user_title")),1),e("form",{method:"post",novalidate:"",onSubmit:B(y,["prevent"])},[e("div",it,[e("label",ut,$(t.$t("login_user_email")),1),P(e("input",{"onUpdate:modelValue":m[0]||(m[0]=j=>T(d)?d.value=j:null),name:"email",type:"email",class:me(["login-input",{"login-input-error":o(c)==="email"}]),"aria-invalid":o(c)==="email",tabindex:"1",required:"",autofocus:""},null,10,dt),[[N,o(d)]])]),e("div",ct,[e("div",mt,[e("label",pt,$(t.$t("login_user_password")),1),e("a",{href:"/forgot-password",title:t.$t("login_user_forgot_password_label"),class:"pb-1 pt-3 text-sm text-brand underline",tabindex:"5"},$(t.$t("login_user_forgot_password")),9,ft)]),S(V,{modelValue:o(f),"onUpdate:modelValue":m[1]||(m[1]=j=>T(f)?f.value=j:null),autocomplete:"current-password",invalid:o(c)==="password",tabindex:2,required:""},null,8,["modelValue","invalid"])]),e("div",vt,[P(e("input",{id:"remember","onUpdate:modelValue":m[2]||(m[2]=j=>T(a)?a.value=j:null),type:"checkbox",name:"remember",class:"size-5 rounded-md border-ink-subtle ring-0 focus:border-ink-subtle focus:ring-[3px] focus:ring-accent",tabindex:"3"},null,512),[[E,o(a)]]),e("label",xt,$(t.$t("login_user_remember_me")),1)]),o(s)?(r(),C(G,{key:0,message:o(s),variant:o(k)?"info":"error"},pe({_:2},[o(k)?{name:"extra",fn:M(()=>[e("div",gt,[m[5]||(m[5]=e("p",{class:"text-sm text-royal"},"To access your account:",-1)),e("ul",ht,[e("li",null,[S(g,{to:"/forgot-password",class:"underline"},{default:M(()=>m[3]||(m[3]=[F("Reset your password")])),_:1})]),m[4]||(m[4]=e("li",null,"Contact support if you need help",-1))])])]),key:"0"}:void 0]),1032,["message","variant"])):R("",!0),e("div",null,[S(te,{classes:"w-full mt-4 h-12 flex justify-center items-center text-md",disabled:o(n)},{default:M(()=>[o(n)?(r(),C(L,{key:1,bgColourClass:"bg-navy",class:"pl-2"})):(r(),p("span",bt,$(t.$t("login_user_forgot_login")),1))]),_:1},8,["disabled"])]),e("p",yt,[F($(t.$t("login_user_no_account_1"))+" ",1),S(g,{to:"/register-user",title:"Create an account for Megatix",class:"text-brand underline"},{default:M(()=>[F($(t.$t("login_user_no_account_2")),1)]),_:1})])],32)])):o(b)==="setup"&&o(x)?(r(),C(oe,{key:1,"next-route":o(i)},null,8,["next-route"])):o(b)==="challenge"&&o(x)?(r(),C(se,{key:2,"next-route":o(i)},null,8,["next-route"])):o(b)==="recovery-codes"&&o(x)?(r(),C(ne,{key:3,"next-route":o(i)},null,8,["next-route"])):R("",!0)]),_:1})}}}),Ft=Y(_t,[["__scopeId","data-v-287079a0"]]);export{Ft as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.