PageSourceSearch

https://genixai.ai/chunk-6PDSHK4U.js

js genixai.ai collected 2026-09-24 14:29:30 UTC 8,675 bytes, 1 lines download raw bytes

1import{a as F}from"./chunk-7H45KBGC.js";import{i as A}from"./chunk-KGVH7VIN.js";import{a as $}from"./chunk-DSIDUYXM.js";import{i as z}from"./chunk-UDKRQ2FU.js";import{a as L}from"./chunk-C6JOS4CG.js";import{a as R}from"./chunk-DA6X5B4D.js";import"./chunk-YPIHMCBJ.js";import{g as j}from"./chunk-5DGPUUKX.js";import{Ab as k,Eb as h,Fb as g,Oa as r,Tb as l,Ub as y,Va as u,Vb as O,Wb as S,Za as T,ba as E,ca as w,da as V,dc as p,ea as D,ec as m,f as I,kb as v,kc as _,mb as x,na as f,pb as N,qb as B,vb as a,wb as d,xb as M,zb as P}from"./chunk-FEHQSQD2.js";var X=(i,c)=>c.i;function H(i,c){if(i&1){let e=P();a(0,"input",15),h("input",function(t){let o=E(e).$implicit,s=g();return w(s.onDigitInput(o.i,t))})("keydown",function(t){let o=E(e).$implicit,s=g();return w(s.onDigitKeydown(o.i,t))}),d()}if(i&2){let e=c.$implicit;k("id","digit-"+e.i)("value",e.d)}}function K(i,c){i&1&&M(0,"span",11)}function W(i,c){if(i&1&&(a(0,"span",13),l(1),p(2,"t"),d()),i&2){let e=g(2);r(),S("",m(2,2,"verify.resend_wait")," ",e.cooldown(),"s")}}function G(i,c){i&1&&M(0,"span",19)}function q(i,c){if(i&1){let e=P();a(0,"button",18),h("click",function(){E(e);let t=g(2);return w(t.resend())}),v(1,G,1,0,"span",19),l(2),p(3,"t"),d()}if(i&2){let e=g(2);k("disabled",e.resending()),r(),x(e.resending()?1:-1),r(),O(" ",m(3,3,"verify.resend")," ")}}function J(i,c){if(i&1&&(v(0,W,3,4,"span",13)(1,q,4,5,"button",16),a(2,"span",17),l(3),p(4,"t"),d()),i&2){let e=g();x(e.cooldown()>0?0:1),r(3),S("",m(4,3,"verify.attempts_left")," ",e.MAX_RESENDS-e.resendCount())}}function Q(i,c){i&1&&(a(0,"span",13),l(1),p(2,"t"),d()),i&2&&(r(),y(m(2,1,"verify.no_attempts")))}var se=(()=>{class i{get MAX_RESENDS(){return this.cfg.limits.maxVerificationResends}get COOLDOWN_SEC(){return this.cfg.limits.verificationCooldownSec}constructor(e,n,t,o,s){this.auth=e,this.router=n,this.ts=t,this.toast=o,this.cfg=s,this.digits=f(["","","","","",""]),this.digitItems=_(()=>this.digits().map((C,b)=>({d:C,i:b}))),this.verifying=f(!1),this.resending=f(!1),this.resendCount=f(0),this.cooldown=f(0),this.cooldownInterval=null,this.co
1de=_(()=>this.digits().join("")),this.canVerify=_(()=>this.code().length===6&&!this.verifying()),this.canResend=_(()=>this.cooldown()===0&&this.resendCount()<this.MAX_RESENDS&&!this.resending()),this.email=_(()=>this.auth.user()?.email??"")}ngOnInit(){this.startCooldown()}ngOnDestroy(){this.clearCooldown()}onDigitInput(e,n){let t=n.target,o=t.value.replace(/\D/g,"").slice(-1),s=[...this.digits()];s[e]=o,this.digits.set(s),t.value=o,o&&e<5&&document.getElementById(`digit-${e+1}`)?.focus()}onDigitKeydown(e,n){if(n.key==="Backspace"){let t=[...this.digits()];t[e]?(t[e]="",this.digits.set(t)):e>0&&document.getElementById(`digit-${e-1}`)?.focus()}}onPaste(e){let t=(e.clipboardData?.getData("text")??"").replace(/\D/g,"").slice(0,6).split("");if(t.length===0)return;e.preventDefault();let o=["","","","","",""];t.forEach((C,b)=>{b<6&&(o[b]=C)}),this.digits.set(o);let s=Math.min(t.length,5);setTimeout(()=>{document.getElementById(`digit-${s}`)?.focus()})}verify(){return I(this,null,function*(){if(this.canVerify()){this.verifying.set(!0);try{yield this.auth.verifyCode(this.code()),this.toast.success(this.ts.t("verify.success")),this.router.navigate(["/explore"])}catch(e){let n=e?.error?.message??this.ts.t("verify.error_invalid");this.toast.error(n),this.digits.set(["","","","","",""]),setTimeout(()=>document.getElementById("digit-0")?.focus())}finally{this.verifying.set(!1)}}})}resend(){return I(this,null,function*(){if(this.canResend()){this.resending.set(!0);try{yield this.auth.resendVerificationCode(),this.resendCount.update(e=>e+1),this.toast.success(this.ts.t("verify.resent")),this.startCooldown()}catch(e){let n=e?.error?.message??this.ts.t("verify.error_resend");this.toast.error(n)}finally{this.resending.set(!1)}}})}logout(){this.auth.logout(),this.router.navigate(["/explore"])}startCooldown(){this.clearCooldown(),this.cooldown.set(this.COOLDOWN_SEC),this.cooldownInterval=setInterval(()=>{this.cooldown.update(e=>e<=1?(this.clearCooldown(),0):e-1)},1e3)}clearCooldown(){this.cooldownInterval!==null&&(clearInterval(this.cooldownInterval),this.cooldownInterval=null)}static{this.\u0275fac=function(n){return new(n||i)(u(A),u(z),u(R),u(F),u($))}}static{this.\u0275cmp=T({type:i,selectors:[["app-verify-email"]],decls:27,vars:16,consts:[[1,"page"],[1,"card"],[1,"icon-wrap"],["viewBox","0 0 24 24"],["d","M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"],["points","22,6 12,13 2,6"],[1,"title"],[1,"subtitle"],[1,"digit-row",3,"paste"],["type","text","inputmode","numeric","maxlength","1",1,"digit-box",3,"id","value"],[1,"btn-primary",3,"click","disabled"],[1,"spinner"],[1,"resend-row"],[1,"resend-hint"],[1,"btn-logout",3,"click"],["type","text","inputmode","numeric","maxlength","1",1,"digit-box",3,"input","keydown","id","value"],[1,"btn-link",3,"disabled"],[1,"attempts"],[1,"btn-link",3,"click","disabled"],[1,"spinner","small"]],template:function(n,t){n&1&&(a(0,"div",0)(1,"div",1)(2,"div",2),V(),a(3,"svg",3),M(4,"path",4)(5,"polyline",5),d()(),D(),a(6,"h1",6),l(7),p(8,"t"),d(),a(9,"p",7),l(10),p(11,"t"),a(12,"strong"),l(13),d()(),a(14,"div",8),h("paste",function(s){return t.onPaste(s)}),N(15,H,1,2,"input",9,X),d(),a(17,"button",10),h("click",function(){return t.verify()}),v(18,K,1,0,"span",11),l(19),p(20,"t"),d(),a(21,"div",12),v(22,J,5,5)(23,Q,3,3,"span",13),d(),a(24,"button",14),h("click",function(){return t.logout()}),l(25),p(26,"t"),d()()()),n&2&&(r(7),y(m(8,8,"verify.title")),r(3),O(" ",m(11,10,"verify.subtitle")," "),r(3),y(t.email()),r(2),B(t.digitItems()),r(2),k("disabled",!t.canVerify()),r(),x(t.verifying()?18:-1),r(),O(" ",m(20,12,"verify.confirm")," "),r(3),x(t.resendCount()<t.MAX_RESENDS?22:23),r(3),y(m(26,14,"verify.logout")))},dependencies:[j,L],styles:["[_nghost-%COMP%]{display:flex;flex:1}svg[_ngcontent-%COMP%]{stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.page[_ngcontent-%COMP%]{flex:1;display:flex;align-items:center;justify-content:center;background:#f4f6fb;padding:40px 16px}.card[_ngcontent-%COMP%]{background:#fff;border-radius:20px;padding:40px 36px;width:100%;max-width:420px;text-align:center;box-shadow:0 4px 32px #00000014;display:flex;flex-direction:column;align-items:center;gap:20px}.icon-wrap[_ngcontent-%COMP%]{width:60px;height:60px;border-radius:16px;background:color-mix(in oklch,var(--d-primary) 9%,transparent);color:var(--d-primary);display:flex;align-items:center;justify-content:center}.icon-wrap[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:28px;height:28px}.title[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;color:var(--d-navy);margin:0}.subtitle[_ngcontent-%COMP%]{font-size:.85rem;color:#6b7280;line-height:1.6;margin:0}.digit-row[_ngcontent-%COMP%]{display:flex;gap:10px}.digit-box[_ngcontent-%COMP%]{width:48px;height:56px;border-radius:10px;border:1.5px solid #e8eaf0;background:#fafafa;font-size:1.4rem;font-weight:700;color:var(--d-navy);text-align:center;outline:none;transition:border-color .2s}.digit-box[_ngcontent-%COMP%]:focus{border-color:var(--d-primary);background:#fff}.btn-primary[_ngcontent-%COMP%]{width:100%;padding:12px;background:linear-gradient(135deg,var(--d-primary),var(--d-accent));border:none;border-radius:10px;font-size:.88rem;font-weight:600;color:#fff;cursor:pointer;transition:opacity .2s;display:flex;align-items:center;justify-content:center;gap:8px}.btn-primary[_ngcontent-%COMP%]:hover{opacity:.88}.btn-primary[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.btn-link[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;color:var(--d-primary);font-size:.83rem;font-weight:600;padding:0;display:inline-flex;align-items:center;gap:6px}.btn-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.btn-link[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.btn-logout[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;color:#9ca3af;font-size:.78rem;padding:0}.btn-logout[_ngcontent-%COMP%]:hover{color:#6b7280}.resend-row[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%}.resend-hint[_ngcontent-%COMP%]{font-size:.82rem;color:#9ca3af}.attempts[_ngcontent-%COMP%]{font-size:.75rem;color:#c0c5d0}.spinner[_ngcontent-%COMP%]{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;animation:spin .8s linear infinite}.spinner.small[_ngcontent-%COMP%]{width:12px;height:12px;border-color:color-mix(in oklch,var(--d-primary) 30%,transparent);border-top-color:var(--d-primary)}"],changeDetection:0})}}return i})();export{se as VerifyEmailComponent};

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.