PageSourceSearch

https://iarnold.fr/chunk-WOC7Q4KK.js

js iarnold.fr collected 2026-10-05 11:30:59 UTC 15,605 bytes, 1 lines download raw bytes

1import{a as fe}from"./chunk-YO7BOOG2.js";import{a as ue}from"./chunk-EBUVMDL5.js";import{a as de}from"./chunk-3KCPQPZU.js";import{a as pe}from"./chunk-LHFYPSBG.js";import{a as me}from"./chunk-ESEVFZ26.js";import{a as se,b as ce}from"./chunk-OMOPOPXR.js";import{b as oe,c as le}from"./chunk-QJGYZCFV.js";import{a as re}from"./chunk-LDAMUVJ2.js";import{a as ne,h as ae}from"./chunk-PJZZ56M4.js";import"./chunk-BAM57MVZ.js";import{b as L,c as z,e as R}from"./chunk-VTPTPVNC.js";import"./chunk-I5BLKYPX.js";import"./chunk-ZVN4IWVI.js";import"./chunk-Q7YURHGR.js";import{b as Q,d as v,g as W,h as X,l as Y,o as Z,p as ee,x as te,z as ie}from"./chunk-TJRCDPRL.js";import{a as U}from"./chunk-NDVK3LO4.js";import"./chunk-V4NGKXML.js";import{l as j}from"./chunk-L57FUZKD.js";import"./chunk-MUSEYSTK.js";import{a as $,b as J}from"./chunk-K5SIGACR.js";import"./chunk-3BWKJVYF.js";import"./chunk-KLQLJPFE.js";import{b as G}from"./chunk-NGBSICQC.js";import{R as H,T as K}from"./chunk-2KJCBSN7.js";import"./chunk-LLUZSIO4.js";import{Ab as g,Cb as f,Ic as q,Ja as e,Pa as E,Qb as l,Rb as p,Sb as y,Va as T,ba as M,fc as a,ga as _,gc as r,ha as C,kb as b,lb as x,nb as O,ob as N,pb as D,qb as u,rb as i,sb as t,ta as S,tb as h,yb as w}from"./chunk-5MSOMBZS.js";import"./chunk-Q7L6LLAK.js";function ye(s,o){if(s&1){let n=w();i(0,"app-error-state",3),a(1,"translate"),a(2,"translate"),a(3,"translate"),g("retry",function(){_(n);let m=f();return C(m.load())}),t()}s&2&&u("title",r(1,3,"errors.title"))("description",r(2,5,"errors.accountSecurityLoad"))("retryLabel",r(3,7,"common.retry"))}function _e(s,o){s&1&&h(0,"app-skeleton",2),s&2&&u("count",3)}function Ce(s,o){s&1&&(i(0,"div",14)(1,"mat-icon",26),l(2,"gpp_maybe"),t(),i(3,"span"),l(4),a(5,"translate"),t()()),s&2&&(e(4),p(r(5,1,"accountSecurity.mfaNudge")))}function he(s,o){if(s&1){let n=w();i(0,"p"),l(1),a(2,"translate"),t(),i(3,"button",27),g("click",function(){_(n);let m=f(2);return C(m.disableMfa())}),l(4),a(5,"translate"),t()}s&2&&(e(),p(r(2,2,"accountSecurity.mfaEnabledText")),e(3),y(" ",r(5,4,"accountSecurity.disableMfa")," "))}function ve(s,o){if(s&1){let n=w();i(0,"p",28),l(1),t(),i(2,"p",28),l(3),t(),i(4,"form",20),g("ngSubmit",function(){_(n);let m=f(3);return C(m.enableMfa())}),i(5,"mat-form-field",9)(6,"mat-label"),l(7),a(8,"translate"),t(),h(9,"input",29),t(),i(10,"button",22),l(11),a(12,"translate"),t()()}if(s&2){let n=o,c=f(3);e(),p(n.sharedKey),e(2),p(n.authenticatorUri),e(),u("formGroup",c.mfaForm),e(3),p(r(8,5,"accountSecurity.mfaCode")),e(4),y(" ",r(12,7,"accountSecurity.enableMfa")," ")}}function Se(s,o){if(s&1){let n=w();i(0,"button",25),g("click",function(){_(n);let m=f(2);return C(m.loadMfaSetup())}),l(1),a(2,"translate"),t(),b(3,ve,13,9)}if(s&2){let n,c=f(2);e(),y(" ",r(2,2,"accountSecurity.prepareMfa")," "),e(2),x((n=c.mfaSetup())?3:-1,n)}}function be(s,o){if(s&1&&(i(0,"code"),l(1),t()),s&2){let n=o.$implicit;e(),p(n)}}function xe(s,o){if(s&1&&(i(0,"div",15)(1,"strong"),l(2),a(3,"translate"),t(),N(4,be,2,1,"code",null,O),t()),s&2){let n=f(2);e(2),p(r(3,1,"accountSecurity.recoveryCodes")),e(2),D(n.recoveryCodes())}}function we(s,o){if(s&1){let n=w();i(0,"section",4)(1,"article")(2,"span"),l(3),a(4,"translate"),t(),i(5,"strong"),l(6),t()(),i(7,"article")(8,"span"),l(9),a(10,"translate"),t(),i(11,"app-status-chip",5),l(12),a(13,"translate"),t()(),i(14,"article")(15,"span"),l(16),a(17,"translate"),t(),i(18,"app-status-chip",5),l(19),a(20,"translate"),t()()(),i(21,"section",6)(22,"app-section-card",7),a(23,"translate"),i(24,"form",8),g("ngSubmit",function(){_(n);let m=f();return C(m.changePassword())}),i(25,"mat-form-field",9)(26,"mat-label"),l(27),a(28,"translate"),t(),h(29,"input",10),t(),i(30,"mat-form-field",9)(31,"mat-label"),l(32),a(33,"translate"),t(),h(34,"input",11),t(),i(35,"button",12),l(36),a(37,"translate"),a(38,"translate"),t()()(),i(39,"app-section-card",7),a(40,"translate"),i(41,"div",13),b(42,Ce,6,3,"div",14),b(43,he,6,6)(44,Se,4,4),b(45,xe,6,3,"div",15),t()()(),i(46,"app-section-card",16),a(47,"translate"),i(48,"div",17)(49,"div",18)(50,"h3"),l(51),a(52,"translate"),t(),i(53,"div",13)(54,"button",19),g("click",function(){_(n);let m=f();return C(m.requestEmailVerification())}),l(55),a(56,"translate"),t(),i(57,"form",20),g("ngSubmit",function(){_(n);let m=f();return C(m.confirmEmail())}),i(58,"mat-form-field",9)(59,"mat-label"),l(60),a(61,"translate"),t(),h(62,"textarea",21),t(),i(63,"button",22),l(64),a(65,"translate"),t()()()(),i(66,"div",18)(67,"h3"),l(68),a(69,"translate"),t(),i(70,"div",13)(71,"form",23)(72,"mat-form-field",9)(73,"mat-label"),l(74),a(75,"translate"),t(),h(76,"input",24),t(),i(77,"button",19),g("click",function(){_(n);let m=f();return C(m.requestEmailChange())}),l(78),a(79,"translate"),t(),i(80,"mat-form-field",9)(81,"mat-label"),l(82),a(83,"translate"),t(),h(84,"textarea",21),t(),i(85,"button",25),g("click",function(){_(n);let m=f();return C(m.confirmEmailChange())}),l(86),a(87,"translate"),t()()()()()()}if(s&2){let n,c,m,k,B,F,P,I,V,A,d=f();e(3),p(r(4,34,"accountSecurity.email")),e(3),p((n=d.security())==null?null:n.email),e(3),p(r(10,36,"accountSecurity.emailStatus")),e(2),u("tone",(c=d.security())!=null&&c.emailConfirmed?"success":"warning")("icon",(m=d.security())!=null&&m.emailConfirmed?"verified":"error_outline"),e(),y(" ",r(13,38,(k=d.security())!=null&&k.emailConfirmed?"accountSecurity.confirmed":"accountSecurity.notConfirmed")," "),e(4),p(r(17,40,"accountSecurity.mfaStatus")),e(2),u("tone",(B=d.security())!=null&&B.twoFactorEnabled?"success":"warning")("icon",(F=d.security())!=null&&F.twoFactorEnabled?"shield":"gpp_maybe"),e(),y(" ",r(20,42,(P=d.security())!=null&&P.twoFactorEnabled?"accountSecurity.enabled":"accountSecurity.disabled")," "),e(3),u("title",r(23,44,"accountSecurity.passwordTitle")),e(2),u("formGroup",d.passwordForm),e(3),p(r(28,46,"accountSecurity.currentPassword")),e(5),p(r(33,48,"accountSecurity.newPassword")),e(3),u("disabled",d.saving()),e(),y(" ",d.saving()?r(37,50,"common.loading"):r(38,52,"common.save")," "),e(3),u("title",r(40,54,"accountSecurity.mfaTitle")),e(3),x((I=d.security())!=null&&I.twoFactorEnabled?-1:42),e(),x((V=d.security())!=null&&V.twoFactorEnabled?43:44),e(2),x(d.recoveryCodes().length>0?45:-1),e(),u("title",r(47,56,"accountSecurity.emailOpsTitle"))("collapsible",!0)("expanded",!((A=d.security())!=null&&A.emailConfirmed)),e(5),p(r(52,58,"accountSecurity.emailVerificationTitle")),e(4),y(" ",r(56,60,"accountSecurity.requestVerification")," "),e(2),u("formGroup",d.emailVerificationForm),e(3),p(r(61,62,"accountSecurity.token")),e(4),y(" ",r(65,64,"accountSecurity.confirmEmail")," "),e(4),p(r(69,66,"accountSecurity.emailChangeTitle")),e(3),u("formGroup",d.emailChangeForm),e(3),p(r(75,68,"accountSecurity.newEmail")),e(4),y(" ",r(79,70,"accountSecurity.requestEmailChange")," "),e(4),p(r(83,72,"accountSecurity.token")),e(4),y(" ",r(87,74,"accountSecurity.confirmEmailChange")," ")}}var ge=class s{constructor(o,n,c,m){this.api=o;this.auth=n;this.snackBar=c;this.translate=m}fb=M(te);route=M(G);loading=S(!1);loadError=S(!1);saving=S(!1);security=S(null);mfaSetup=S(null);recoveryCodes=S([]);passwordForm=this.fb.nonNullable.group({currentPassword:["",v.required],newPassword:["",[v.required,v.minLength(8)]]});emailVerificationForm=this.fb.nonNullable.group({token:["",v.required]});emailChangeForm=this.fb.nonNullable.group({newEmail:["",[v.required,v.email]],token:[""]});mfaForm=this.fb.nonNullable.group({code:["",v.required]});
1ngOnInit(){let o=this.route.snapshot.queryParamMap.get("emailVerificationToken");o&&this.emailVerificationForm.controls.token.setValue(o);let n=this.route.snapshot.queryParamMap.get("emailChangeToken"),c=this.route.snapshot.queryParamMap.get("newEmail");n&&this.emailChangeForm.controls.token.setValue(n),c&&this.emailChangeForm.controls.newEmail.setValue(c),this.load()}load(){this.loading.set(!0),this.loadError.set(!1),this.api.getAccountSecurity().subscribe({next:o=>{this.security.set(o),this.loading.set(!1)},error:()=>{this.loading.set(!1),this.loadError.set(!0),this.snackBar.open(this.translate.instant("messages.accountSecurityLoadFailed"),void 0,{duration:2200})}})}changePassword(){if(this.passwordForm.invalid||this.saving()){this.passwordForm.markAllAsTouched();return}this.saving.set(!0);let o=this.passwordForm.getRawValue();this.api.changePassword(o.currentPassword,o.newPassword).subscribe({next:()=>{this.saving.set(!1),this.passwordForm.reset({currentPassword:"",newPassword:""}),this.snackBar.open(this.translate.instant("messages.passwordChanged"),void 0,{duration:1800})},error:()=>{this.saving.set(!1),this.snackBar.open(this.translate.instant("messages.passwordChangeFailed"),void 0,{duration:2400})}})}requestEmailVerification(){this.api.requestEmailVerification().subscribe({next:()=>{this.snackBar.open(this.translate.instant("messages.emailVerificationRequested"),void 0,{duration:1600})},error:()=>this.snackBar.open(this.translate.instant("messages.emailVerificationFailed"),void 0,{duration:2200})})}confirmEmail(){if(this.emailVerificationForm.invalid){this.emailVerificationForm.markAllAsTouched();return}this.api.confirmEmail(this.emailVerificationForm.controls.token.value).subscribe({next:()=>{this.emailVerificationForm.reset({token:""}),this.load(),this.snackBar.open(this.translate.instant("messages.emailConfirmed"),void 0,{duration:1600})},error:()=>this.snackBar.open(this.translate.instant("messages.emailConfirmFailed"),void 0,{duration:2200})})}requestEmailChange(){let o=this.emailChangeForm.controls.newEmail.value;if(this.emailChangeForm.controls.newEmail.invalid){this.emailChangeForm.controls.newEmail.markAsTouched();return}this.api.requestEmailChange(o).subscribe({next:()=>{this.snackBar.open(this.translate.instant("messages.emailChangeRequested"),void 0,{duration:1600})},error:()=>this.snackBar.open(this.translate.instant("messages.emailChangeFailed"),void 0,{duration:2200})})}confirmEmailChange(){if(this.emailChangeForm.invalid){this.emailChangeForm.markAllAsTouched();return}let o=this.emailChangeForm.getRawValue();this.api.confirmEmailChange(o.newEmail,o.token).subscribe({next:n=>{this.auth.applyAuthResponse(n),this.emailChangeForm.reset({newEmail:"",token:""}),this.load(),this.snackBar.open(this.translate.instant("messages.emailChanged"),void 0,{duration:1600})},error:()=>this.snackBar.open(this.translate.instant("messages.emailChangeConfirmFailed"),void 0,{duration:2200})})}loadMfaSetup(){this.api.getMfaSetup().subscribe({next:o=>this.mfaSetup.set(o),error:()=>this.snackBar.open(this.translate.instant("messages.mfaSetupFailed"),void 0,{duration:2200})})}enableMfa(){if(this.mfaForm.invalid){this.mfaForm.markAllAsTouched();return}this.api.enableMfa(this.mfaForm.controls.code.value).subscribe({next:o=>{this.recoveryCodes.set([...o.recoveryCodes??[]]),this.mfaForm.reset({code:""}),this.load(),this.snackBar.open(this.translate.instant("messages.mfaEnabled"),void 0,{duration:1600})},error:()=>this.snackBar.open(this.translate.instant("messages.mfaEnableFailed"),void 0,{duration:2200})})}disableMfa(){this.api.disableMfa().subscribe({next:()=>{this.mfaSetup.set(null),this.recoveryCodes.set([]),this.load(),this.snackBar.open(this.translate.instant("messages.mfaDisabled"),void 0,{duration:1600})},error:()=>this.snackBar.open(this.translate.instant("messages.mfaDisableFailed"),void 0,{duration:2200})})}static \u0275fac=function(n){return new(n||s)(E(j),E(U),E(se),E(L))};static \u0275cmp=T({type:s,selectors:[["app-account-security"]],decls:7,vars:11,consts:[["actionIcon","refresh",3,"action","title","subtitle","actionLabel"],[3,"title","description","retryLabel"],["variant","card",3,"count"],[3,"retry","title","description","retryLabel"],[1,"security-summary"],[3,"tone","icon"],[1,"security-grid","security-grid--primary"],[3,"title"],[1,"security-form",3,"ngSubmit","formGroup"],["appearance","outline"],["matInput","","type","password","formControlName","currentPassword"],["matInput","","type","password","formControlName","newPassword"],["mat-flat-button","","color","primary","type","submit",3,"disabled"],[1,"security-form"],[1,"mfa-nudge"],[1,"recovery-list"],[3,"title","collapsible","expanded"],[1,"email-ops"],[1,"email-op"],["mat-stroked-button","","type","button",3,"click"],[3,"ngSubmit","formGroup"],["matInput","","rows","2","formControlName","token"],["mat-flat-button","","color","primary","type","submit"],[3,"formGroup"],["matInput","","type","email","formControlName","newEmail"],["mat-flat-button","","color","primary","type","button",3,"click"],["aria-hidden","true"],["mat-stroked-button","","color","warn","type","button",3,"click"],[1,"token-box"],["matInput","","formControlName","code","inputmode","numeric"]],template:function(n,c){n&1&&(i(0,"app-page-header",0),a(1,"translate"),a(2,"translate"),a(3,"translate"),g("action",function(){return c.load()}),t(),b(4,ye,4,9,"app-error-state",1),b(5,_e,1,1,"app-skeleton",2)(6,we,88,76)),n&2&&(u("title",r(1,5,"accountSecurity.title"))("subtitle",r(2,7,"accountSecurity.subtitle"))("actionLabel",r(3,9,"common.refresh")),e(4),x(c.loadError()?4:-1),e(),x(c.loading()?5:6))},dependencies:[q,ie,Y,Q,W,X,ee,Z,R,K,H,re,ae,ne,J,$,le,oe,ce,de,pe,fe,me,ue,z],styles:['@charset "UTF-8";[_nghost-%COMP%]{display:grid;gap:var(--space-16)}.security-summary[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-12)}.security-summary[_ngcontent-%COMP%]   article[_ngcontent-%COMP%], .token-box[_ngcontent-%COMP%], .recovery-list[_ngcontent-%COMP%]{border:1px solid var(--border-color);border-radius:var(--radius-field);background:var(--bg-surface);padding:var(--space-12)}.security-summary[_ngcontent-%COMP%]   article[_ngcontent-%COMP%]{display:grid;gap:var(--space-4)}.security-summary[_ngcontent-%COMP%]   span[_ngcontent-%COMP%], p[_ngcontent-%COMP%]{color:var(--text-muted);font-size:var(--font-body-sm-size)}.security-summary[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{font-size:var(--font-body-size);overflow-wrap:anywhere}.security-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-12)}.security-form[_ngcontent-%COMP%], .security-form[_ngcontent-%COMP%]   form[_ngcontent-%COMP%]{display:grid;gap:var(--space-12)}.token-box[_ngcontent-%COMP%]{margin:0;font-family:monospace;font-size:12px;color:var(--text-primary);overflow-wrap:anywhere;background:var(--bg-elevated)}.recovery-list[_ngcontent-%COMP%]{display:grid;gap:var(--space-8);background:var(--bg-elevated)}.recovery-list[_ngcontent-%COMP%]   code[_ngcontent-%COMP%]{font-size:13px}
1@media(max-width:900px){.security-summary[_ngcontent-%COMP%], .security-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}.security-grid--primary[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-16)}.mfa-nudge[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-10) var(--space-12);border-radius:var(--radius-field);background:var(--color-warning-bg);color:var(--color-warning-700);font-size:var(--font-body-sm)}.mfa-nudge[_ngcontent-%COMP%]   mat-icon[_ngcontent-%COMP%]{flex-shrink:0}.security-summary[_ngcontent-%COMP%]   app-status-chip[_ngcontent-%COMP%]{justify-self:start}.email-ops[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-24)}.email-op[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{margin:0 0 var(--space-8);font-size:var(--font-title-md)}@media(max-width:900px){.security-grid--primary[_ngcontent-%COMP%], .email-ops[_ngcontent-%COMP%]{grid-template-columns:1fr}}'],changeDetection:0})};export{ge as AccountSecurityComponent};

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.