1import{_ as q,w as N,r as t,o as D,a as j,b as F,c as U,d as E,e as C,f,g as M,t as B,u as K,h as G,i as A,n as O,j as T,k as n,l as o,m as W,p as Z,q as L,E as P}from"./index-CUKZucj7.js";const J="/assets/bg-login2-A9qU0CtG.jpg",Q={key:0,class:"error-message"},X={__name:"CaptchaV2",props:{siteKey:{type:String,required:!0},theme:{type:String,default:"light",validator:y=>["light","dark"].includes(y)},size:{type:String,default:"normal",validator:y=>["normal","compact"].includes(y)},tabindex:{type:Number,default:0},language:{type:String,default:""},autoRerender:{type:Boolean,default:!0}},emits:["verify","expire","error","load","reset"],setup(y,{expose:z,emit:R}){const d=y,l=R,m=t(null),u=t(null),i=t(""),v=t(!1),c=t(!1),a=t(!1),s=t(!1),I=()=>(window._recaptchaLoaderPromise||(window._recaptchaLoaderPromise=new Promise((e,w)=>{if(window.grecaptcha&&window.grecaptcha.render&&typeof window.grecaptcha.render=="function"){e();return}if(window.grecaptcha){const g=setInterval(()=>{window.grecaptcha&&window.grecaptcha.render&&typeof window.grecaptcha.render=="function"&&(clearInterval(g),e())},100);return}window.recaptchaOnLoad=()=>{const g=setInterval(()=>{window.grecaptcha&&window.grecaptcha.render&&(clearInterval(g),e())},100)};const r=document.createElement("script"),x=d.language?`&hl=${d.language}`:"";r.src=`https://www.google.com/recaptcha/api.js?onload=recaptchaOnLoad&render=explicit${x}`,r.async=!0,r.defer=!0,r.onerror=g=>{w(g)},document.head.appendChild(r)})),window._recaptchaLoaderPromise),b=()=>window.grecaptcha&&window.grecaptcha.render&&typeof window.grecaptcha.render=="function",k=()=>{if(u.value!==null){try{b()&&window.grecaptcha.reset(u.value)}catch(e){console.warn("Error al limpiar reCAPTCHA:",e)}u.value=null}c.value=!1},_=()=>{if(!(a.value||!s.value)){if(!b()||!m.value){i.value="reCAPTCHA no está listo para renderizar",l("error","reCAPTCHA not ready");return}try{k(),u.value=window.grecaptcha.render(m.value,{sitekey:d.siteKey,theme:d.theme,size:d.size,tabindex:d.tabindex,callback:e=>{a.value||l("verify",e)},"expired-callback":()=>{a.value||l("expire")},"error-callback":()=>{a.value||(i.value="Error en la verificación de reCAPTCHA",l("error","Verification error"))}}),c.value=!0}catch(e){a.value||(i.value=`Error al renderizar reCAPTCHA: ${e.message}`,l("error",e.message))}}},V=async()=>{if(!a.value)try{await I(),v.value=!0,a.value||(s.value=!0,l("load"),setTimeout(()=>{a.value||_()},200))}catch(e){a.value||(i.value=`Error al inicializar reCAPTCHA: ${e.message}`,l("error",e.message))}};return z({reset:()=>{if(!(a.value||!s.value)){if(!b()||u.value===null){a.value||(i.value="No se puede reiniciar reCAPTCHA, no está inicializado correctamente",l("error","Cannot reset, not initialized"));return}try{window.grecaptcha.reset(u.value),a.value||l("reset")}catch(e){a.value||(i.value=`Error al reiniciar reCAPTCHA: ${e.message}`,l("error",e.message))}}},getResponse:()=>{if(a.value||!s.value)return null;if(!b()||u.value===null)return a.value||(i.value="No se puede obtener respuesta, reCAPTCHA no está inicializado correctamente",l("error","Cannot get response, not initialized")),null;try{return window.grecaptcha.getResponse(u.value)}catch(e){return a.value||(i.value=`Error al obtener respuesta de reCAPTCHA: ${e.message}`,l("error",e.message)),null}},forceRender:()=>{v.value&&!a.value&&(s.value=!0,_())}}),N(()=>d.siteKey,()=>{v.value&&c.value&&!a.value&&_()}),D(()=>{a.value=!1,V()}),j(()=>{a.value=!0,s.value=!1,k()}),F(()=>{a.value=!1,d.autoRerender&&v.value&&(s.value=!0,setTimeout(()=>{a.value||_()},200))}),U(()=>{s.value=!1,k()}),(e,w)=>(C(),E("div",null,[f("div",{ref_key:"recaptchaContainer",ref:m,class:"g-recaptcha"},null,512),i.value?(C(),E("p",Q,B(i.value),1)):M("",!0)]))}},Y=q(X,[["__scopeId","data-v-b69f49d0"]]),ee={class:"relative w-screen h-screen"},ae={class:"relative w-full h-full flex lg:flex-row"},re={class:"w-full lg:w-1/2 flex items-center justify-center p-5"},le={__name:"SignIn",setup(y){const z=t(J),R=K(),d=G(),l=t(null),m=t(!1),u=t(!1),i=t(!1),v=t(null),c=t({email:"",password:"",recaptcha:""}),a=t(null),s=t({code:""}),I=!0,b=t({email:[{required:!0,message:"Campo obligatorio",trigger:"blur"},{type:"email",message:"Debe ser un correo electrónico válido",trigger:"blur"}],password:[{required:!0,message:"Campo obligatorio",trigger:"blur"}],recaptcha:[{required:!0,message:"Recaptcha obligatorio",trigger:"blur"}]}),k=p=>{c.value.recaptcha=p},_=p=>{console.log(p),v.value.reset()},V=async p=>{p&&await p.validate((e,w)=>{e?(m.value=!0,c.value.recaptcha=window.grecaptcha.getResponse(),d.signIn(c.value).then(r=>{m.value=!1,R.push("/dashboard")}
1).catch(r=>{console.error(r),m.value=!1,r.response?.status==403||r.response?.status==401?P.error({message:r.response.data.message}):P.error({message:"Valide sus credenciales o contacte al administrador del sistema"}),v.value.reset()})):console.error("error submit!",w)})},S=async()=>{if(s.value.code.length!==6){P.error("Debe ingresar un código de 6 dÃgitos");return}u.value=!0;try{await d.validateMfaCode(s.value.code),R.push("/dashboard")}catch(p){console.error(p),P.error(p.response?.data?.error||"Error al validar código")}finally{u.value=!1}},$=()=>{i.value=!1,a.value.code=""};return D(()=>{c.value={email:"",password:"",recaptcha:""}}),(p,e)=>{const w=A("el-input"),r=A("el-form-item"),x=A("el-row"),g=A("el-button"),H=A("el-form");return C(),E("div",ee,[f("div",{class:"absolute inset-0 bg-cover bg-center",style:O({backgroundImage:`url(${z.value})`})},null,4),e[11]||(e[11]=f("div",{class:"absolute inset-0 bg-black/30 lg:bg-transparent"},null,-1)),f("div",ae,[e[10]||(e[10]=f("div",{class:"hidden lg:block lg:w-1/2"},null,-1)),f("div",re,[i.value?(C(),T(H,{key:1,ref_key:"mfaForm",ref:a,model:s.value,"label-position":"top",class:"bg-cyan-50/60 dark:bg-gray-950/40 backdrop-blur-sm rounded-lg shadow-lg p-8 w-full max-w-md
1space-y-6"},{default:n(()=>[e[9]||(e[9]=f("h2",{class:"text-2xl font-semibold text-gray-800 dark:text-gray-100 text-center mb-4"}," Verificación de Dos Pasos ",-1)),o(r,{label:"Código de Verificación"},{default:n(()=>[o(w,{modelValue:s.value.code,"onUpdate:modelValue":e[4]||(e[4]=h=>s.value.code=h),size:"large",placeholder:"Ingrese código de 6 dÃgitos",maxlength:"6",class:"text-center"},null,8,["modelValue"])]),_:1}),o(x,{justify:"center"},{default:n(()=>[o(r,null,{default:n(()=>[o(g,{type:"primary",size:"large",loading:u.value,onClick:S},{default:n(()=>[...e[7]||(e[7]=[L(" Verificar ",-1)])]),_:1},8,["loading"]),o(g,{class:"ml-2",onClick:$},{default:n(()=>[...e[8]||(e[8]=[L(" Regresar ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])):(C(),T(H,{key:0,ref_key:"loginForm",ref:l,model:c.value,rules:b.value,"label-position":"top",class:"bg-cyan-50/60 dark:bg-gray-950/40 backdrop-blur-sm rounded-lg shadow-lg p-8 w-full max-w-md space-y-6"},{default:n(()=>[e[6]||(e[6]=f("h2",{class:"text-2xl font-semibold text-gray-800 dark:text-gray-100 text-center"},[f("img",{src:W,alt:"Main Logo"})],-1)),o(r,{prop:"email",label:"Correo electronico"},{default:n(()=>[o(w,{modelValue:c.value.email,"onUpdate:modelValue":e[0]||(e[0]=h=>c.value.email=h),size:"large",placeholder:"Correo electronico",class:"dark:bg-gray-700/60 overflow-none rounded-sm"},null,8,["modelValue"])]),_:1}),o(r,{prop:"password",label:"Contraseña"},{default:n(()=>[o(w,{modelValue:c.value.password,"onUpdate:modelValue":e[1]||(e[1]=h=>c.value.password=h),size:"large",type:"password",placeholder:"Contraseña",class:"dark:bg-gray-700/60 overflow-none rounded-sm",onKeyup:e[2]||(e[2]=Z(h=>V(l.value),["enter"]))},null,8,["modelValue"])]),_:1}),I?(C(),T(x,{key:0},{default:n(()=>[o(r,{prop:"recaptcha"},{default:n(()=>[o(Y,{ref_key:"captcha",ref:v,"site-key":"6Leo8wUrAAAAAGP2_4O9M9MEvZAMSPRGcDrRe6Ts",onVerify:k,onError:_},null,512)]),_:1})]),_:1})):M("",!0),o(x,{justify:"center"},{default:n(()=>[o(r,null,{default:n(()=>[o(g,{type:"primary",size:"large",loading:m.value,onClick:e[3]||(e[3]=h=>V(l.value))},{default:n(()=>[...e[5]||(e[5]=[L(" Iniciar Sesión ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model","rules"]))])])])}}};export{le 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.