1import{r as v,i as H,d as n,o,a as c,b as r,q as Q,w as a,f as l,n as b,t as s,I as B,m as I,Q as Y,T as D,p as U,E as z,c as w,e as f,u as F,F as G,g as O,N as R}from"./app-DDSQZi8b.js";import{_ as W}from"./ActionSection-vEMHjY8Q.js";import{_ as j}from"./DialogModal-Cz8jHdat.js";import{_ as N}from"./InputError-D8hO71hd.js";import{_ as V}from"./PrimaryButton-BZDb06ez.js";import{_ as $}from"./SecondaryButton-DivYDEmO.js";import{_ as q}from"./TextInput-DBP7fcbj.js";import{_ as J}from"./DangerButton-DNLp-pWJ.js";import{_ as X}from"./InputLabel-C8_IfeyK.js";import"./SectionTitle-CplT-p85.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./Modal-3NAjzsI8.js";const Z={class:"mt-4"},y={__name:"ConfirmsPassword",props:{title:{type:String,default:"Confirm Password"},content:{type:String,default:"For your security, please confirm your password to continue."},button:{type:String,default:"Confirm"}},emits:["confirmed"],setup(g,{emit:T}){const k=T,u=v(!1),e=H({password:"",error:"",processing:!1}),m=v(null),_=()=>{axios.get(route("password.confirmation")).then(i=>{i.data.confirmed?k("confirmed"):(u.value=!0,setTimeout(()=>m.value.focus(),250))})},h=()=>{e.processing=!0,axios.post(route("password.confirm"),{password:e.password}).then(()=>{e.processing=!1,p(),I().then(()=>k("confirmed"))}).catch(i=>{e.processing=!1,e.error=i.response.data.errors.password[0],m.value.focus()})},p=()=>{u.value=!1,e.password="",e.error=""};return(i,d)=>(o(),n("span",null,[c("span",{onClick:_},[Q(i.$slots,"default")]),r(j,{show:u.value,onClose:p},{title:a(()=>[l(s(g.title),1)]),content:a(()=>[l(s(g.content)+" ",1),c("div",Z,[r(q,{ref_key:"passwordInput",ref:m,modelValue:e.password,"onUpdate:modelValue":d[0]||(d[0]=S=>e.password=S),type:"password",class:"mt-1 block w-3/4",placeholder:"Password",autocomplete:"current-password",onKeyup:B(h,["enter"])},null,8,["modelValue"]),r(N,{message:e.error,class:"mt-2"},null,8,["message"])])]),footer:a(()=>[r($,{onClick:p},{default:a(()=>d[1]||(d[1]=[l(" Cancel ")])),_:1}),r(V,{class:b(["ms-3",{"opacity-25":e.processing}]),disabled:e.processing,onClick:h},{default:a(()=>[l(s(g.button),1)]),_:1},8,["class","disabled"])]),_:1},8,["show"])]))}},ee={key:0,class:"text-lg font-medium"},te={key:1,class:"text-lg font-medium"},oe={key:2,class:"text-lg font-medium"},se={class:"mt-3 max-w-xl text-sm"},ae={key:3},ne={key:0},re={class:"mt-4 max-w-xl text-sm"},le={key:0,class:"font-semibold"},ie={key:1},ce=["innerHTML"],ue={key:0,class:"mt-4 max-w-xl text-sm"},de={class:"font-semibold"},me=["innerHTML"],fe={key:1,class:"mt-4"},pe={key:1},ve={class:"mt-4 max-w-xl text-sm"},he={class:"font-semibold"},_e={class:"grid gap-1 max-w-xl mt-4 px-4 py-4 font-mono text-smrounded-lg"},we={class:"mt-5"},ye={key:0},ge={key:1},Re={__name:"TwoFactorAuthenticationForm",props:{requiresConfirmation:Boolean},setup(g){const T=g,k=Y(),u=v(!1),e=v(!1),m=v(!1),_=v(null),h=v(null),p=v([]),i=D({code:""}),d=U(()=>{var t;return!u.value&&((t=k.props.auth.user)==null?void 0:t.two_factor_enabled)});z(d,()=>{d.value||(i.reset(),i.clearErrors())});const S=()=>{u.value=!0,R.post(route("two-factor.enable"),{},{preserveScroll:!0,onSuccess:()=>Promise.all([E(),L(),x()]),onFinish:()=>{u.value=!1,e.value=T.requiresConfirmation}})},E=()=>axios.get(route("two-factor.qr-code")).then(t=>{_.value=t.data.svg}),L=()=>axios.get(route("two-factor.secret-key")).then(t=>{h.value=t.data.secretKey}),x=()=>axios.get(route("two-factor.recovery-codes")).then(t=>{p.value=t.data}),A=()=>{i.post(route("two-factor.confirm"),{errorBag:"confirmTwoFactorAuthentication",preserveScroll:!0,preserveState:!0,onSuccess:()=>{e.value=!1,_.value=null,h.value=null}})},M=()=>{axios.post(route("two-factor.recovery-codes")).then(()=>x())},P=()=>{m.value=!0,R.delete(route("two-factor.disable"),{preserveScroll:!0,onSuccess:()=>{m.value=!1,e.value=!1}})};return(t,K)=>(o(),w(W,null,{title:a(()=>[l(s(t.$t("Two Factor Authentication")),1)]),description:a(()=>[l(s(t.$t("Add additional security to your account using two factor authentication.")),1)]),content:a(()=>[d.value&&!e.value?(o(),n("h3",ee,s(t.$t("You have enabled two factor authentication.")),1)):d.value&&e.value?(o(),n("h3",te,s(t.$t("Finish enabling two factor authentication.")),1)):(o(),n("h3",oe,s(t.$t("You have not enabled two factor authentication.")),1)),c("div",se,[c("p",null,s(t.$t("When two factor authentication is enabled, you will be prompted for a secure, random token during authentication. You may retrieve this token from your phone's Google Authenticator application.")),1)]),d.value?(o(),n("div",ae,[_.value?(o(),n("div",ne,[c("div",re,[e.value?(o(),n("p",le,s(t.$t("To finish enabling two factor authentication, scan the following QR code using your phone's authenticator application or enter the setup key and provide the generated OTP code.")),1)):(o(),n("p",ie,s(t.$t("Two factor authentication is now enabled. Scan the following QR code using your phone's authenticator application or enter the setup key.")),1))]),c("div",{class:"mt-4 p-2 inline-block bg-white",innerHTML:_.value},null,8,ce),h.value?(o(),n("div",ue,[c("p",de,[l(s(t.$t("Setup Key"))+": ",1),c("span",{innerHTML:h.value},null,8,me)])])):f("",!0),e.value?(o(),n("div",fe,[r(X,{for:"code",value:t.$t("Code")},null,8,["value"]),r(q,{id:"code",modelValue:F(i).code,"onUpdate:modelValue":K[0]||(K[0]=C=>F(i).code=C),type:"text",name:"code",class:"block mt-1 w-1/2",inputmode:"numeric",autofocus:"",autocomplete:"one-time-code",onKeyup:B(A,["enter"])},null,8,["modelValue"]),r(N,{message:F(i).errors.code,class:"mt-2"},null,8,["message"])])):f("",!0)])):f("",!0),p.value.length>0&&!e.value?(o(),n("div",pe,[c("div",ve,[c("p",he,s(t.$t("Store these recovery codes in a secure password manager. They can be used to recover access to your account if your two factor authentication device is lost.")),1)]),c("div",_e,[(o(!0),n(G,null,O(p.value,C=>(o(),n("div",{key:C},s(C),1))),128))])])):f("",!0)])):f("",!0),c("div",we,[d.value?(o(),n("div",ge,[r(y,{onConfirmed:A},{default:a(()=>
1[e.value?(o(),w(V,{key:0,type:"button",class:b(["me-3",{"opacity-25":u.value}]),disabled:u.value},{default:a(()=>[l(s(t.$t("Confirm")),1)]),_:1},8,["class","disabled"])):f("",!0)]),_:1}),r(y,{onConfirmed:M},{default:a(()=>[p.value.length>0&&!e.value?(o(),w($,{key:0,class:"me-3"},{default:a(()=>[l(s(t.$t("Regenerate Recovery Codes")),1)]),_:1})):f("",!0)]),_:1}),r(y,{onConfirmed:x},{default:a(()=>[p.value.length===0&&!e.value?(o(),w($,{key:0,class:"me-3"},{default:a(()=>[l(s(t.$t("Show Recovery Codes")),1)]),_:1})):f("",!0)]),_:1}),r(y,{onConfirmed:P},{default:a(()=>[e.value?(o(),w($,{key:0,class:b({"opacity-25":m.value}),disabled:m.value},{default:a(()=>[l(s(t.$t("Cancel")),1)]),_:1},8,["class","disabled"])):f("",!0)]),_:1}),r(y,{onConfirmed:P},{default:a(()=>[e.value?f("",!0):(o(),w(J,{key:0,class:b({"opacity-25":m.value}),disabled:m.value},{default:a(()=>[l(s(t.$t("Disable")),1)]),_:1},8,["class","disabled"]))]),_:1})])):(o(),n("div",ye,[r(y,{onConfirmed:S},{default:a(()=>[r(V,{type:"button",class:b({"opacity-25":u.value}),disabled:u.value},{default:a(()=>[l(s(t.$t("Enable")),1)]),_:1},8,["class","disabled"])]),_:1})]))])]),_:1}))}};export{Re 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.