1import{a as Y}from"./chunk-3QCFYAPI.js";import{a as O,e as W,j,o as z,z as Z}from"./chunk-BZ3HPJ2E.js";import{c as B}from"./chunk-K5PQLTCC.js";import{ia as $,ja as L}from"./chunk-3ZUFDTQ4.js";import"./chunk-AIJXG4SL.js";import{k as D,q as U}from"./chunk-LW67GT5U.js";import{$b as h,Aa as P,Ac as E,Bb as V,Dc as T,Ec as I,Fc as R,Gb as S,Ja as _,Kc as A,Mc as C,Sb as p,Ub as M,Yb as v,Zb as y,_ as b,ac as x,bc as s,cc as n,dc as k,fc as g,ja as m,jc as f,kc as c,mb as l,nc as N,sa as u,ta as w,yc as d,zc as F}from"./chunk-S4I72I6Q.js";import"./chunk-QWWW7GFA.js";var G=()=>["/login"],H=(t,a)=>({"text-danger":t,"text-success":a}),J=(t,a)=>({fas:!0,"fa-xmark":t,"fa-check":a});function K(t,a){if(t&1){let e=g();s(0,"span",12),f("click",function(){u(e);let o=c().$implicit,r=c();return w(r.togglePasswordVisibility(o))}),d(1," visibility "),n()}}function Q(t,a){if(t&1){let e=g();s(0,"span",12),f("click",function(){u(e);let o=c().$implicit,r=c();return w(r.togglePasswordVisibility(o))}),d(1," visibility_off "),n()}}function X(t,a){if(t&1&&(s(0,"div",13),k(1,"i",14),d(2),n()),t&2){let e=a.$implicit;p("ngClass",C(3,H,e.error,!e.error)),l(),p("ngClass",C(6,J,e.error,!e.error)),l(),E(" ",e.label," ")}}function ee(t,a){if(t&1&&(s(0,"div",11),h(1,X,3,9,"div",13,y),n()),t&2){let e=c().$implicit;l(),x(e.passwordValidations)}}function te(t,a){if(t&1){let e=g();s(0,"div",2)(1,"div",8)(2,"input",9),R("ngModelChange",function(o){let r=u(e).$implicit;return I(r.ngModel,o)||(r.ngModel=o),w(o)}),f("input",function(o){let r=u(e).$implicit,q=c();return w(q.validatePassword(o,r))}),n(),s(3,"label"),d(4),n(),S(5,K,2,0,"span",10)(6,Q,2,0,"span",10)(7,ee,3,0,"div",11),n()()}if(t&2){let e=a.$implicit;l(2),M("is-invalid",e.isInvalid)("is-valid",!e.isInvalid&&e.ngModel()),N("placeholder",e.label),p("type",e.hidePassword()?"password":"text"),T("ngModel",e.ngModel),p("disabled",e.disabled),l(2),F(e.label),l(),v(e.hidePassword()?5:6),l(2),v(e.ngModel()?7:-1)}}var we=(()=>{class t{constructor(){this.destroyRef=m(P),this.notificationService=m(B),this.accountRecoveryService=m(Y),this.router=m($),this.inputConfig=[]}ngOnInit(){this.setUpInputs()}ngAfterViewInit(){(!this.accountRecoveryService.code()||!this.accountRecoveryService.email())&&this.router.navigate(["/account-recovery/check-email"])}setUpInputs(){this.inputConfig=[{label:"New password",ngModel:_(""),passwordValidations:this.setUpPasswordsValidators(),hidePassword:_(!0)},{label:"Confirm password",ngModel:_(""),passwordValidations:this.setUpPasswordsValidators(),hidePassword:_(!0)}]}setUpPasswordsValidators(){return[{label:"At least 8 Characters",error:!0},{label:"At least 1 Number (0-9)",error:!0},{label:"At least 1 Symbol",error:!0},{label:"At least 1 Lowercase (a-z)",error:!0},{label:"At least 1 Uppercase (A-Z)",error:!0},{label:"Do not include spaces",error:!0}]}validatePassword(e,i){if(!e?.target?.value)return;let o=e.target.value;i.passwordValidations[0].error=o.length<8,i.passwordValidations[1].error=!/\d/.test(o),i.passwordValidations[2].error=!/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/.test(o),i.passwordValidations[3].error=!/[a-z]/.test(o),i.passwordValidations[4].error=!/[A-Z]/.test(o),i.passwordValidations[5].error=o.includes(" "),i.isInvalid=i.passwordValidations.map(r=>r.error).some(r=>r)}togglePasswordVisibility(e){e.hidePassword.update(i=>!i)}resetPassword(){if(this.inputConfig.map(e=>e.isInvalid).some(e=>e))return this.notificationService.show({text:"Please validate your password",type:"error"});if(this.inputConfig[0].ngModel()!==this.inputConfig[1].ngModel())return this.notificationService.show({text:"Passwords do not match",type:"error"});this.accountRecoveryService.resetPassword(this.inputConfig[0].ngModel()).pipe(b(()=>this.router.navigate(["/account-recovery/password-restored"])),O(this.destroyRef)).subscribe()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=V({type:t,selectors:[["app-new-password"]],decls:16,vars:2,consts:[[1,"container","text-center","px-5"],[1,"row","gap-4"],[1,"col-12"],[1,"fw-bolder"],[1,"d-grid","col-12","mx-auto"],[1,"btn","btn-primary","w-100",3,"click"],["href","javascript:void(0)",1,"link-primary","link-underline-opacity-0","w-100","d-flex","align-items-center","justify-content-end","gap-2",3,"routerLink"],[1,"material-symbols-outlined"],[1,"form-floating","has-validation"],[1,"form-control","custom-validation-control",3,"ngModelChange","input","type","placeholder","ngModel","disabled"],[1,"material-symbols-outlined","text-body-tertiary","show-password-icon"],[1,"row"],[1,"material-symbols-outlined","text-body-tertiary","show-password-icon",3,"click"],[1,"col-12","d-flex","gap-2","align-items-center","text-start",3,"ngClass"],[3,"ngClass"]],template:function(i,o){i&1&&(s(0,"div",0)(1,"div",1)(2,"section",2)(3,"h1",3),d(4,"Set new password"),n(),s(5,"p"),d(6,"Your new password must be different to your previously used passwords"),n()(),h(7,te,8,11,"div",2,y),s(9,"section",4)(10,"button",5),f("click",function(){return o.resetPassword()}),d(11," RESET PASSWORD "),n(),s(12,"a",6)(13,"span",7),d(14," west "),n(),d(15," Back to login "),n()()()()),i&2&&(l(7),x(o.inputConfig),l(5),p("routerLink",A(1,G)))},dependencies:[Z,W,j,z,U,D,L],styles:[".show-password-icon[_ngcontent-%COMP%]{position:absolute;top:10px;right:10px;cursor:pointer}.custom-validation-control[_ngcontent-%COMP%]{background-image:none!important}"]})}}return t})();export{we as NewPasswordComponent};
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.