PageSourceSearch

https://app.dlserve.ai/chunk-SP3MZRMW.js

js dlserve.ai collected 2026-10-05 11:57:37 UTC 4,651 bytes, 1 lines download raw bytes

1import{a as G}from"./chunk-4RVXEVM2.js";import{a as R}from"./chunk-3C3454K5.js";import{a as L}from"./chunk-R64R5GWL.js";import{a as V}from"./chunk-TY52PRP7.js";import{B as M,e as _,g as A,h as F,i as D,k as N,p as P}from"./chunk-4MQQYOHV.js";import"./chunk-6CG27MNW.js";import"./chunk-B7B4C43F.js";import{c as T}from"./chunk-CN5XT6NN.js";import{c as k,f as E}from"./chunk-2Q2AMY5Q.js";import"./chunk-JMOTCDHF.js";import"./chunk-6M4IBWL3.js";import"./chunk-QE6MR3N2.js";import{$b as v,Ab as i,Bb as h,Ib as y,Kb as b,Mb as m,Oa as a,Y as p,_b as t,ac as S,ca as c,cb as C,da as f,ia as w,la as d,sb as g,tb as x,yb as s,zb as o}from"./chunk-N4WG6FVA.js";import"./chunk-4X36HX5K.js";function j(r,n){r&1&&t(0," send it again in a minute. ")}function q(r,n){if(r&1){let e=y();o(0,"button",8),b("click",function(){c(e);let l=m(2);return f(l.submit())}),t(1," send it again"),i(),t(2,". ")}if(r&2){let e=m(2);s("disabled",e.isSubmitting())}}function O(r,n){if(r&1&&(o(0,"h1",3),t(1,"Check your email"),i(),h(2,"app-error-alert",4),o(3,"p",5),t(4," If an account exists for "),o(5,"span",6),t(6),i(),t(7,", we've sent a link to choose a new password. The link works once and expires in 1 hour. "),i(),o(8,"p",5),t(9," Nothing after a few minutes? Check your spam folder, or "),g(10,j,1,0)(11,q,3,1),i(),o(12,"a",7),t(13," Back to sign in "),i()),r&2){let e=m();a(2),s("error",e.errorAlert()),a(4),v(n),a(4),x(e.resendLocked()?10:11)}}function B(r,n){if(r&1){let e=y();o(0,"form",9),b("ngSubmit",function(){c(e);let l=m();return f(l.submit())}),o(1,"div",10)(2,"h1",3),t(3,"Forgot your password?"),i(),o(4,"p",5),t(5," Enter the email you sign in with and we'll send you a link to choose a new password. "),i()(),h(6,"app-error-alert",4)(7,"app-form-field",11),o(8,"button",12),t(9),i(),o(10,"p",13),t(11," Remembered it? "),o(12,"a",14),t(13,"Back to sign in"),i()()()}if(r&2){let e=m();s("formGroup",e.form),a(6),s("error",e.errorAlert()),a(),s("control",e.form.controls.email),a(),s("disabled",e.isSubmitting()),a(),S(" ",e.isSubmitting()?"Sending\u2026":"Send reset link"," ")}}var W=6e4,I=class r{api=p(T);resendTimer;form=new F({email:new D(p(k).snapshot.queryParamMap.get("email")??"",{nonNullable:!0,validators:[_.required,_.email]})});sentTo=d(null);isSubmitting=d(!1);resendLocked=d(!1);errorAlert=d(null);constructor(){p(w).onDestroy(()=>clearTimeout(this.resendTimer))}submit(){if(this.form.invalid||this.isSubmitting()){this.form.markAllAsTouched();return}let n=this.form.controls.email.value.trim();this.isSubmitting.set(!0),this.errorAlert.set(null),this.api.forgotPassword(n).subscribe({next:()=>{this.isSubmitting.set(!1),this.sentTo.set(n),this.lockResend()},error:e=>{this.isSubmitting.set(!1),this.errorAlert.set({message:G(e),type:"error"})}})}lockResend(){this.resendLocked.set(!0),clearTimeout(this.resendTimer),this.resendTimer=setTimeout(()=>this.resendLocked.set(!1),W)}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=C({type:r,selectors:[["app-forgot-password"]],decls:5,vars:1,consts:[[1,"flex","items-center","justify-center","min-h-dvh","p-4","sm:p-8"],[1,"w-full","max-w-lg","rounded-xl","bg-card","p-6","sm:p-8","shadow-sm","border","border-border","space-y-5"],[1,"space-y-5",3,"formGroup"],[1,"text-2xl","sm:text-3xl","font-semibold","text-foreground"],[3,"error"],[1,"text-sm","text-muted-foreground"],[1,"font-medium","text-foreground"],["routerLink","/auth/login",1,"inline-flex","items-center","justify-center","rounded-md","text-sm","font-semibold","bg-primary","text-primary-foreground","shadow-xs","hover:bg-primary/90","w-full","h-11"],["type","button",1,"font-medium","text-primary","hover:underline","cursor-pointer","disabled:opacity-50",3,"click","disabled"],[1,"space-y-5",3,"ngSubmit","formGroup"],[1,"space-y-2"],["label","Email","placeholder","[email protected]","type","email","inputId","email","autocomplete","email","errorMessage","Enter a valid email address",3,"control"],["type","submit",1,"inline-flex","items-center","justify-center","gap-2","whitespace-nowrap","rounded-md","text-sm","transition-all","disabled:pointer-events-none","disabled:opacity-50","bg-primary","text-primary-foreground","shadow-xs","hover:bg-primary/90","w-full","h-11","cursor-pointer","font-semibold",3,"disabled"],[1,"text-center","text-sm","text-muted-foreground"],["routerLink","/auth/login",1,"font-medium","text-primary","hover:underline"]],template:function(e,u){if(e&1&&(o(0,"app-auth-layout")(1,"div",0)(2,"div",1),g(3,O,14,3)(4,B,14,5,"form",2),i()()()),e&2){let l;a(3),x((l=u.sentTo())?3:4,l)}},dependencies:[M,N,A,P,E,L,R,V],encapsulation:2,changeDetection:0})};export{I as ForgotPasswordComponent};

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.