1import{a as U}from"./chunk-5XFC5N3E.js";import{b as k,f as T}from"./chunk-AHEY7ZSI.js";import"./chunk-VD7BPICQ.js";import{a as G}from"./chunk-JSQLBCPQ.js";import{c as A,d as C,e as V,f as L,g as D,i as _,k as F,m as O,n as q,w as B}from"./chunk-FRLPC7US.js";import{a as x}from"./chunk-ZY3B5BDG.js";import{b as h}from"./chunk-EYNTA7Y3.js";import{A as I,w as N}from"./chunk-6MCFLBZG.js";import{Hb as l,Ib as d,Nb as u,Ob as n,Pb as o,Qb as a,Ub as P,Yb as M,_a as s,_b as p,da as f,ia as y,ja as S,jc as v,lc as i,mc as g,oa as E,ob as R,sa as c,xc as w}from"./chunk-XHRUROUP.js";var b=t=>["/",t];function j(t,r){t&1&&(n(0,"div",5)(1,"output",6)(2,"span",7),i(3,"Loading..."),o()()())}function z(t,r){if(t&1&&(n(0,"div",1)(1,"div",8),a(2,"i",9),n(3,"strong"),i(4),o()(),n(5,"a",10),i(6,"Back to Login"),o(),n(7,"a",11),i(8,"Request New Reset Link"),o()()),t&2){let e=p();s(4),g(e.errorMessage()),s(),u("routerLink",w(3,b,e.UrlElements.LOGIN)),s(2),u("routerLink",w(5,b,e.UrlElements.FORGOTTEN_LINK))}}function K(t,r){if(t&1&&(n(0,"div",1)(1,"div",12)(2,"div",13)(3,"div",14),a(4,"i",15),n(5,"h3",16),i(6,"Password Updated"),o(),n(7,"p",17),i(8,"Your password has been changed successfully. You can now sign in with your new password."),o(),n(9,"a",18),i(10,"Go to Login"),o()()()()()),t&2){let e=p();s(9),u("routerLink",w(1,b,e.UrlElements.LOGIN))}}function W(t,r){if(t&1&&(n(0,"div",25),a(1,"i",43),n(2,"strong"),i(3),o()()),t&2){let e=p(2);s(3),g(e.multipleUsersMessage())}}function Z(t,r){if(t&1&&(n(0,"div",26),a(1,"i",9),n(2,"strong"),i(3),o()()),t&2){let e=p(2);s(3),g(e.errorMessage())}}function $(t,r){t&1&&i(0," Password is required. ")}function J(t,r){t&1&&i(0," Password must be at least 10 characters. ")}function Q(t,r){t&1&&i(0," Password must contain at least one uppercase letter. ")}function X(t,r){t&1&&i(0," Password must contain at least one lowercase letter. ")}function ee(t,r){t&1&&i(0," Password must contain at least one number. ")}function te(t,r){t&1&&i(0," Password must contain at least one special character. ")}function ie(t,r){if(t&1&&(n(0,"div",32),l(1,$,1,0)(2,J,1,0)(3,Q,1,0)(4,X,1,0)(5,ee,1,0)(6,te,1,0),o()),t&2){let e=p(2);s(),d(e.form.controls.pw1.hasError("required")?1:e.form.controls.pw1.hasError("minlength")?2:e.form.controls.pw1.hasError("uppercase")?3:e.form.controls.pw1.hasError("lowercase")?4:e.form.controls.pw1.hasError("digit")?5:e.form.controls.pw1.hasError("specialChar")?6:-1)}}function ne(t,r){t&1&&(n(0,"div",32),i(1,"Please confirm your password."),o())}function re(t,r){t&1&&(n(0,"div",32),i(1,"Passwords do not match."),o())}function oe(t,r){t&1&&(n(0,"div",28)(1,"label",44),i(2,"Updated By"),o(),a(3,"input",45),o())}function se(t,r){t&1&&(n(0,"output",46)(1,"span",7),i(2,"Saving..."),o()(),i(3," Saving\u2026 "))}function ae(t,r){t&1&&(a(0,"i",47),i(1,"Set New Password "))}function le(t,r){if(t&1){let e=P();n(0,"div",1)(1,"h2",19),i(2,"Choose a New Password"),o(),n(3,"div",20)(4,"div",13)(5,"div",21)(6,"div",22),a(7,"i",23),n(8,"h3",24),i(9,"New Password"),o(),n(10,"p",17),i(11,"Please enter and confirm your new password below."),o()(),l(12,W,4,1,"div",25),l(13,Z,4,1,"div",26),n(14,"form",27),M("ngSubmit",function(){y(e);let Y=p();return S(Y.onSubmit())}),n(15,"div",28)(16,"label",29)(17,"span"),a(18,"i",30),i(19,"New Password"),o()(),a(20,"input",31),l(21,ie,7,1,"div",32),o(),n(22,"div",28)(23,"label",33)(24,"span"),a(25,"i",30),i(26,"Confirm New Password"),o()(),a(27,"input",34),l(28,ne,2,0,"div",32),l(29,re,2,0,"div",32),o(),l(30,oe,4,0,"div",28),n(31,"button",35),l(32,se,4,0)(33,ae,2,0),o()()()(),n(34,"div",13)(35,"div",36)(36,"p",2),a(37,"i",37),i(38,"Password Requirements "),o(),n(39,"p",16),i(40," Your new password must be "),n(41,"strong"),i(42,"at least 10 characters long"),o(),i(43," and must contain: "),o(),n(44,"ul",38)(45,"li",28),a(46,"i",39),i(47," At least one "),n(48,"strong"),i(49,"lowercase"),o(),i(50," letter (a\u2013z) "),o(),n(51,"li",28),a(52,"i",39),i(53," At least one "),n(54,"strong"),i(55,"uppercase"),o(),i(56," letter (A\u2013Z) "),o(),n(57,"li",28),a(58,"i",39),i(59," At least one "),n(60,"strong"),i(61,"number"),o(),i(62," (0\u20139) "),o(),n(63,"li",28),a(64,"i",39),i(65," At least one "),n(66,"strong"),i(67,"special character"),o(),i(68," from: "),n(69,"code",40),i(70,"!\"#$%&'()*+,-./:;<=>?@[]^_`{|}~"),o()()(),a(71,"hr",41),n(72,"p",2),i(73,"Need Help?"),o(),n(74,"p",16),i(75," If you did not request a password reset or your link has expired, you can request a new reset link below. "),o(),n(76,"a",42),i(77," Request a New Reset Link "),o()()()()()}if(t&2){let e=p();s(12),d(e.multipleUsersMessage()?12:-1),s(),d(e.errorMessage()?13:-1),s(),u("formGroup",e.form),s(6),v("is-invalid",e.isInvalid("pw1")),s(),d(e.isInvalid("pw1")?21:-1),s(6),v("is-invalid",e.isInvalid("pw2")||e.passwordMismatch),s(),d(e.isInvalid("pw2")&&e.form.controls.pw2.hasError("required")?28:-1),s(),d(e.passwordMismatch?29:-1),s(),d(e.isMultipleUserAccount()?30:-1),s(),u("disabled",e.form.invali
1d||e.submitting()),s(),d(e.submitting()?32:33),s(44),u("routerLink",w(14,b,e.UrlElements.FORGOTTEN_LINK))}}var de=/[!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~]/;function me(){return t=>{let r=t.value??"";if(!r)return null;let e={};return r.length<10&&(e.minlength=!0),/[a-z]/.test(r)||(e.lowercase=!0),/[A-Z]/.test(r)||(e.uppercase=!0),/\d/.test(r)||(e.digit=!0),de.test(r)||(e.specialChar=!0),Object.keys(e).length?e:null}}var ce=t=>{let r=t.get("pw1")?.value??"",e=t.get("pw2")?.value??"";return r&&e&&r!==e?{passwordMismatch:!0}:null},H=class t{UrlElements=U;loading=c(!0);isValid=c(!1);isMultipleUserAccount=c(!1);multipleUsersMessage=c("");errorMessage=c("");submitting=c(!1);submitted=c(!1);resetCode="";subscriberId="";form=new D({pw1:new _("",[C.required,me()]),pw2:new _("",C.required),updatedBy:new _("")},{validators:ce});route=f(k);csrf=f(G);http=f(I);destroyRef=f(E);ngOnInit(){if(this.resetCode=this.route.snapshot.queryParamMap.get("resetCode")??"",!this.resetCode){this.isValid.set(!1),this.errorMessage.set("Invalid or missing reset link. Please request a new one."),this.loading.set(!1);return}this.loading.set(!0),this.http.get(h.getUrl("reset-password/init"),{params:{resetCode:this.resetCode}}).pipe(x(this.destroyRef)).subscribe({next:r=>{this.isValid.set(r.valid),this.isMultipleUserAccount.set(r.multipleUserAccount),this.subscriberId=r.subscriberId??"",r.errorMessage&&this.errorMessage.set(r.errorMessage),r.multipleUsersMessage&&this.multipleUsersMessage.set(r.multipleUsersMessage),this.loading.set(!1)},error:()=>{this.isValid.set(!1),this.errorMessage.set("An error occurred validating your reset link. Please try again."),this.loading.set(!1)}})}onSubmit(){if(this.form.invalid||this.submitting())return;this.submitting.set(!0),this.errorMessage.set("");let r=new N().set("pw1",this.form.value.pw1??"").set("pw2",this.form.value.pw2??"").set("updatedBy",this.form.value.updatedBy??"").set("subscriberId",this.subscriberId).set("resetCode",this.resetCode).set("vstoken",this.csrf.token());this.http.post(h.getUrl("reset-password/submit"),r,{headers:{"Content-Type":"application/x-www-form-urlencoded"}}).pipe(x(this.destroyRef)).subscribe({next:e=>{e.status==="ERROR"?(this.errorMessage.set(e.message??"An error occurred."),this.submitting.set(!1)):(this.submitted.set(!0),this.submitting.set(!1))},error:()=>{this.errorMessage.set("A network error occurred. Please try again."),this.submitting.set(!1)}})}isInvalid(r){let e=this.form.controls[r];return e.invalid&&e.touched}get passwordMismatch(){return!!this.form.errors?.passwordMismatch&&this.form.controls.pw2.touched}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=R({type:t,selectors:[["app-reset-password"]],decls:12,vars:4,consts:[[1,"full-width-stripe","background-indigo-pale"],[1,"container","element-padding-y"],[1,"category-path","text-uppercase","font-main-b"],[1,"title-l"],[1,"fs-5-fluid","mt-3"],[1,"element-padding-y","content-center"],[1,"spinner-border","text-secondary"],[1,"visually-hidden"],[1,"alert","alert-danger"],[1,"bi","bi-x-circle","me-2"],[1,"btn","btn-outline-secondary","me-2",3,"routerLink"],[1,"btn","btn-primary",3,"routerLink"],[1,"row","justify-content-center"],[1,"col-lg-6"],[1,"plate","bg-pale","text-center"],[1,"bi","bi-check-circle","fs-1","text-success"],[1,"mt-3"],[1,"mt-2"],[1,"btn","btn-primary","w-100","mt-3",3,"routerLink"],[1,"has-line-right","text-uppercase","mb-5"],[1,"row","g-4"],[1,"plate","bg-pale"],[1,"text-center","mb-4"],[1,"bi","bi-key","fs-1","
1secondary"],[1,"secondary","mt-3"],[1,"alert","alert-warning","mb-3"],[1,"alert","alert-danger","mb-3"],[3,"ngSubmit","formGroup"],[1,"mb-3"],["for","pw1",1,"form-label","secondary"],[1,"bi","bi-lock","me-1"],["type","password","id","pw1","formControlName","pw1","placeholder","Enter new password","autocomplete","new-password",1,"form-control"],[1,"invalid-feedback"],["for","pw2",1,"form-label","secondary"],["type","password","id","pw2","formControlName","pw2","placeholder","Re-enter new password","autocomplete","new-password",1,"form-control"],["type","submit",1,"btn","btn-primary","w-100","mt-2",3,"disabled"],[1,"plate","bg-pale","h-100"],[1,"bi","bi-info-circle","me-2"],[1,"list-unstyled","mt-3"],[1,"bi","bi-check-circle","text-success","me-2"],[1,"d-block","mt-1"],[1,"my-4"],[1,"btn","btn-outline-secondary","w-100",3,"routerLink"],[1,"bi","bi-exclamation-triangle","me-2"],["for","updatedBy",1,"form-label","secondary"],["type","text","id","updatedBy","formControlName","updatedBy","placeholder","Enter your identifier",1,"form-control"],[1,"spinner-border","spinner-border-sm","me-2"],[1,"bi","bi-shield-check","me-2"]],template:function(e,m){e&1&&(n(0,"div",0)(1,"div",1)(2,"p",2),i(3,"Account Access"),o(),n(4,"h1",3),i(5,"Set Your Password"),o(),n(6,"p",4),i(7,"Enter a new password for your account."),o()()(),l(8,j,4,0,"div",5),l(9,z,9,7,"div",1),l(10,K,11,3,"div",1),l(11,le,78,16,"div",1)),e&2&&(s(8),d(m.loading()?8:-1),s(),d(!m.loading()&&!m.isValid()?9:-1),s(),d(!m.loading()&&m.isValid()&&m.submitted()?10:-1),s(),d(!m.loading()&&m.isValid()&&!m.submitted()?11:-1))},dependencies:[B,F,A,V,L,O,q,T],encapsulation:2,changeDetection:0})};export{H as ResetPassword};
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.