1import{a as yt}from"./chunk-XJHWVPXL.js";import{a as Ut,b as me}from"./chunk-MW2L3MDM.js";import{a as z}from"./chunk-DPNIXA7N.js";import{Bc as gt,F as lt,H as h,Ic as ht,Jc as vt,Mc as xt,N as ct,Pc as St,Rb as mt,Sb as dt,Uc as pe,Vc as G,Wc as _t,Xb as ut,Xc as bt,Yb as ft,Yc as Ue,b as De,bb as pt,bd as Ct,c as O,e as X,f as Y,g as ze,i as V,k as Z,kb as ae,ke as It,l as $,m as ee,n as te,o as qe,r as Be,t as We,v as et,w as tt,x as ne,yc as le,zc as ce}from"./chunk-BPMIFNOR.js";import"./chunk-QNI5GR7H.js";import{$a as Ye,$b as se,Ab as $e,Hb as j,Jb as it,Kb as nt,Nb as rt,Ob as ot,Pb as st,Sb as at,Tb as re,Vb as oe,la as Ke,q as ie,wa as Xe,z as Qe,zb as Ze}from"./chunk-3SOHUSEO.js";import{$a as K,Da as Q,Db as R,Fb as x,Ha as ke,Hb as f,Lb as Ne,Mb as Ce,N as Ee,Nb as Ie,Nc as Le,Qa as q,Rb as Re,Ta as m,W as v,Wb as a,Xb as L,Xc as Ve,Ya as d,Yb as B,_a as P,ec as Ae,fa as we,fc as ye,ga as b,ha as Oe,i as be,ib as Fe,jc as je,k as w,kd as Ge,m as F,mb as C,oa as U,ob as I,pa as H,qd as D,ra as _,rd as He,sa as J,sd as S,tb as g,td as Je,ub as o,vb as s,wa as M,wb as u,wd as W,xa as T,ya as Me,za as Te}from"./chunk-XG6YRYXO.js";var zt=n=>({"!top-[120px]":n});function qt(n,i){if(n&1&&u(0,"fm-system-banner",3),n&2){let p=f();g("banner",p.systemBanner)}}var Pt=(()=>{let i=class i{constructor(t,e,r){this.userService=t,this.rewardsReferralService=e,this.systemBannerService=r,this.showingMaintenanceBanner=!1,this.systemBanner=null}ngOnInit(){setTimeout(()=>{this.isMaintenanceBannerShown()}),this.rewardsReferralService.detectRewardsReferralCode(),this.systemBannerService.bannerSubject.subscribe(t=>{this.systemBanner=t})}ngAfterViewInit(){setTimeout(()=>{this.isMaintenanceBannerShown()})}isMaintenanceBannerShown(){document.getElementById("maintenanceBanner")&&(this.showingMaintenanceBanner=!0)}showLoginOrSignUp(){}ngOnDestroy(){}};i.\u0275fac=function(e){return new(e||i)(d(h),d(se),d(Ut))},i.\u0275cmp=P({type:i,selectors:[["fm-login"]],standalone:!1,decls:5,vars:4,consts:[[1,"fm-site","normalize-box-sizing","fm-global-styles"],["mode","signin"],[1,"fm-signup-container",3,"ngClass"],[3,"banner"]],template:function(e,r){e&1&&(o(0,"div",0),u(1,"fm-navbar",1),o(2,"div",2),C(3,qt,1,1,"fm-system-banner",3),u(4,"router-outlet"),s()()),e&2&&(m(2),g("ngClass",je(2,zt,r.showingMaintenanceBanner)),m(),I(r.systemBanner?3:-1))},dependencies:[Le,ht,He,me],styles:[`.fm-site[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100vh;min-height:100%;width:100%;background-color:#fcfaf7}.fm-site__page[_ngcontent-%COMP%]{flex:1}.fm-site__header[_ngcontent-%COMP%], .fm-site__footer[_ngcontent-%COMP%]{flex:none}.fm-signup-nav[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:80px;z-index:10;background-color:#fcfaf7;display:flex;flex-direction:row;align-items:center;justify-content:center;font-family:Inter;font-style:normal;font-weight:600;font-size:16px;line-height:19px;border-bottom:2px solid #f2e8dc}.fm-signup-nav__content-wrapper[_ngcontent-%COMP%]{position:relative;width:100%;max-width:1300px;display:flex;flex-direction:row;align-items:center;justify-content:center;padding:0 70px}@media screen and (max-width:992px){.fm-signup-nav__content-wrapper[_ngcontent-%COMP%]{padding:16px 35px}}.fm-signup-nav__logo[_ngcontent-%COMP%]{text-decoration:none;position:absolute;left:70px}@media screen and (max-width:992px){.fm-signup-nav__logo[_ngcontent-%COMP%]{left:35px}}.fm-signup-nav__link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:8px;border-radius:10px;color:inherit;text-decoration:none;transition:background-color .2s;cursor:pointer;-webkit-user-select:none;user-select:none}.fm-signup-nav__link[_ngcontent-%COMP%]:hover{background-color:#f2e8dc}.fm-signup-nav__sign-in-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:baseline;color:#4648aa;margin-left:auto}.fm-signup-container[_ngcontent-%COMP%]{position:absolute;top:80px;width:100%} 2/*# sourceMappingURL=signup.component-MKOLHD5T.css.map */`]});let n=i;return n})();function Qt(n,i){n&1&&(o(0,"div",3),a(1," You've been referred by a friend! Sign up today for 30 FREE days of unlimited sessions \u{1F381}"),s())}function Kt(n,i){if(n&1&&(o(0,"div",11),a(1),s()),n&2){let p=f();m(),L(p.socialSignInError)}}function Xt(n,i){if(n&1&&(o(0,"div",12),a(1),s()),n&2){let p=f();m(),L(p.facebookEmailPermissionsErrorString)}}var Yt="Please enter a valid email",Zt="Please enter a valid password",$t="Password must be at least 6 characters",Et=(()=>{let i=class i{constructor(t,e,r,l,c,E){this.analyticsService=t,this.activatedRoute=e,this.userService=r,this.storeRedirectOnLoginService=l,this.rewardsReferralService=c,this.deaAttemptedTrackingService=E,this.afAuth=J(oe),this.signUpForm=new ze({email:new V("",[O.required,O.email]),password:new V("",[O.required,O.minLength(6)])}),this.ngUnsubscribe=new F,this.emailInputError=null,this.passwordInputError=null,this.socialSignInError=null,this.facebookEmailPermissionErrorOccurred=!1,this.facebookEmailPermissionsErrorString=null,this.deaDenied=!1,this.loadingState=null,this.usePopUp=!1,this.queryParams={},this.referrerId=null,this.initialSubmissionFailed=!1,this.showReferralNotice=!1}ngOnInit(){this.activatedRoute.queryParams.pipe(b(this.ngUnsubscribe)).subscribe(e=>{this.queryParams=e,this.queryParams.hasOwnProperty("ref")&&(this.referrerId=this.queryParams.ref)}
2),this.storeRedirectOnLoginService.getSignInUpError().pipe(b(this.ngUnsubscribe)).subscribe(e=>{this.socialSignInError=null,e===tt?(this.emailInputError=e,this.deaAttemptedTrackingService.markDeaAttempted(),this.loadingState=null):e===et?(this.facebookEmailPermissionsErrorString=e,this.facebookEmailPermissionErrorOccurred=!0,this.loadingState=null):e&&(this.socialSignInError=e,this.loadingState=null)}),this.signUpForm.controls.email.valueChanges.pipe(b(this.ngUnsubscribe)).subscribe(()=>{this.initialSubmissionFailed&&this.verifyEmailInput()}),this.signUpForm.controls.password.valueChanges.pipe(b(this.ngUnsubscribe)).subscribe(()=>{this.initialSubmissionFailed&&this.verifyPasswordInput()}),this.rewardsReferralService.getStoredRewardsReferralCode()&&(this.showReferralNotice=!0)}resetErrorFlags(){this.socialSignInError=null,this.emailInputError=null,this.passwordInputError=null,this.facebookEmailPermissionErrorOccurred=!1,this.facebookEmailPermissionsErrorString=null}errorSet(){return this.emailInputError!==null||this.passwordInputError!==null}onSubmit(){this.resetErrorFlags(),this.signUpForm.valid?(this.loadingState="signingUpWithEmail",this.storeRedirectOnLoginService.storeSignInUpError(""),this.analyticsService.logSignUpMethod("createEmailSelected"),this.referrerId&&this.userService.setInviteSignUpReferer(this.referrerId),st(this.afAuth,this.signUpForm.controls.email.value,this.signUpForm.controls.password.value).then(t=>{}).catch(t=>{this.initialSubmissionFailed=!0,this.loadingState=null,this.userService.clearInviteSignUpReferer(),t.code==="auth/email-already-in-use"?this.emailInputError="Oops, email already in use. Sign in instead!":t.code==="auth/invalid-email"?this.emailInputError="Invalid email address!":t.code==="auth/weak-password"?this.passwordInputError="Password must be at least 6 characters!":this.passwordInputError="Temporary issue, please try again shortly!"})):(this.initialSubmissionFailed=!0,this.verifyEmailInput(),this.verifyPasswordInput())}verifyEmailInput(){this.signUpForm.controls.email.errors?.required||this.signUpForm.controls.email.errors?.email?this.emailInputError=Yt:this.emailInputError=null}verifyPasswordInput(){this.signUpForm.controls.password.errors?.required?this.passwordInputError=Zt:this.signUpForm.controls.password.errors?.minlength?this.passwordInputError=$t:this.passwordInputError=null}loginFb(){let t=this.facebookEmailPermissionErrorOccurred;this.storeRedirectOnLoginService.storeSignInUpError(""),this.analyticsService.logSignUpMethod("signUpFBSelected"),this.resetErrorFlags();let e=new it;e.addScope("email"),this.loadingState="signingUpWithFacebook",t?(e.setCustomParameters({auth_type:"rerequest"}),this.analyticsService.logUserSignedOut("fbRerequestRequired"),this.afAuth.signOut().then(()=>{re(this.afAuth,e).then(r=>{}).catch(r=>{this.loadingState=null,this.facebookEmailPermissionsErrorString=r,this.handleFirebaseError(r)})})):re(this.afAuth,e).then(r=>{}).catch(r=>{this.loadingState=null,this.handleFirebaseError(r)})}loginGoogle(){this.storeRedirectOnLoginService.storeSignInUpError(""),this.resetErrorFlags(),this.analyticsService.logSignUpMethod("signUpGoogleSelected"),this.loadingState="signingUpWithGoogle",re(this.afAuth,new nt).then(t=>{}).catch(t=>{this.loadingState=null,this.handleFirebaseError(t)})}handleFirebaseError(t){this.analyticsService.logReceivedError(Ze,t.code),t.code==="auth/account-exists-with-different-credential"?yt(this.afAuth,t).then(e=>{this.storeRedirectOnLoginService.storeSignInUpError(e)}):t.code==="auth/popup-blocked"?this.storeRedirectOnLoginService.storeSignInUpError("Please disable popup blocker to continue signing in"):this.storeRedirectOnLoginService.storeSignInUpError(t.message)}ngOnDestroy(){this.ngUnsubscribe.next(null),this.ngUnsubscribe.complete(),this.storeRedirectOnLoginService.storeSignInUpError("")}};i.\u0275fac=function(e){return new(e||i)(d(j),d(D),d(h),d(ne),d(se),d(lt))},i.\u0275cmp=P({type:i,selectors:[["app-signup"]],standalone:!1,decls:21,vars:10,consts:[[1,"sign-up-method-container"],[1,"sign-up-form",3,"ngSubmit","formGroup"],[1,"sign-up-header"],[1,"text-center","font-semibold","text-grey","text-15-20"],[1,"email-password-inputs-container"],["formControlName","email","ngDefaultControl","","name","email","required","","email","","placeholder","Email","appFmAutofocus","",3,"error"],["ngDefaultControl","","formControlName","password","name","password","required","","placeholder","Password",3,"error","isPassword"],[3,"loading"],[1,"social-login-buttons-container"],["buttonType","google-login",3,"clicked","loading"],["buttonType","facebook-login",3,"clicked","loading"],["role","alert",1,"text-center","font-semibold","text-red"],[1,"error-text"],["routerLink","/login",1,"help-text-link"]],template:function(e,r){e&1&&(o(0,"div",0)(1,"form",1),x("ngSubmit",function(){return r.onSubmit()}),o(2,"div",2),a(3,"Let's get you signed up!"),s(),C(4,Qt,2,0,"div",3),o(5,"div",4),u(6,"fm-text-input",5)(7,"fm-text-input",6),s(),o(8,"fm-button",7),a(9,"Sign up with email"),s(),o(10,"div"),a(11,"or"),s(),o(12,"div",8)(13,"fm-button",9),x("clicked",function(){return r.loginGoogle()}),s(),o(14,"fm-button",10),x("clicked",function(){return r.loginFb()}),s(),C(15,Kt,2,1,"div",11),C(16,Xt,2,1,"div",12),s(),o(17,"div"),a(18,"Already have an account? "),o(19,"a",13),a(20,"Sign in"),s()()()()),e&2&&(m(),g("formGroup",r.signUpForm),m(3),I(r.showReferralNotice?4:-1),m(2),g("error",r.emailInputError),m(),g("error",r.passwordInputError)("isPassword",!0),m(),g("loading",r.loadingState==="signingUpWithEmail"),m(5),g("loading",r.loadingState==="signingUpWithGoogle"),m(),g("loading",r.loadingState==="signingUpWithFacebook"),m(),I(r.socialSignInError?15:-1),m(),I(r.facebookEmailPermissionErrorOccurred?16:-1))},dependencies:[pe,G,Z,De,X,Y,te,qe,ee,$,Je,le],styles:[`.sign-up-method-container[_ngcontent-%COMP%]{padding:32px 35px;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;background-color:#fcfaf7;font-family:Inter;font-weight:400;font-size:16px;line-height:19px;color:#58585b}.sign-up-form[_ngcontent-%COMP%]{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px}.sign-up-header[_ngcontent-%COMP%]{margin:0;color:#4648aa;font-family:Inter;font-weight:600;font-size:24px;line-height:28px;text-align:center}.email-password-inputs-container[_ngcontent-%COMP%], .social-login-buttons-container[_ngcontent-%COMP%]{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.help-text-link[_ngcontent-%COMP%]{font-weight:600;text-decoration:none;cursor:pointer}.error-and-forgot-password-container[_ngcontent-%COMP%]{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.error-text[_ngcontent-%COMP%]{font-weight:600;color:#de3535;text-align:center} 3/*# sourceMappingURL=signup-method-page.component-N6XKBC4K.css.map */`]});let n=i;return n})();var wt=(()=>{let i=class i{constructor(t,e,r,l){this.router=t,this.userService=e,this.authService=r,this.analyticsService=l,this.status="",this.ngUnsubscribe=new F,this.email=""}ngOnInit(){this.userService.currentUser.pipe(b(this.ngUnsubscribe)).subscribe(t=>{this.email=t.email,this.sendNewRequest()})}sendNewRequest(){this.analyticsService.logClickedEvent("request a new verification email","emailVerificationPage"),this.authService.getFirebaseUser().then(t=>{t!==null&&at(t).then(()=>{this.analyticsService.logEmailVerifySent(!0)}).catch(e=>{this.analyticsService.logEmailVerifySent(!1),e.code==="auth/too-many-requests"?this.status="":this.status=e})})}};i.\u0275fac=function(e){return new(e||i)(d(S),d(h),d(ae),d(j))},i.\u0275cmp=P({type:i,selectors:[["app-verify-page"]],standalone:!1,decls:21,vars:1,consts:[[1,"sign-up-verify-container"],[1,"sign-up-verify-content"],[1,"sign-up-header"],[1,"sign-up-body"],[1,"email-text"],[1,"seperator"],[1,"sign-up-help-text"],[1,"request-new-email-link",3,"click"],[1,"text-center"]],template:function(e,r){e&1&&(o(0,"div",0)(1,"div",1)(2,"div",2),a(3,"Final step: email verification"),s(),o(4,"div",3),a(5," We just sent a verification email to"),u(6,"br"),o(7,"span",4),a(8),s(),u(9,"br"),a(10," Please click the link in the email to continue. "),s(),u(11,"div",5),o(12,"div",6),a(13,"Didn\u2019t get the email?"),u(14,"br"),a(15," Be sure to check the spam folder,"),u(16,"br"),a(17," or "),o(18,"div",7),x("click",function(){return r.sendNewRequest()}),a(19,"request a new verification email"),s()(),u(20,"app-not-you-sign-out",8),s()()),e&2&&(m(8),L(r.email))},dependencies:[ce],styles:[`.sign-up-verify-container[_ngcontent-%COMP%]{padding:32px 35px;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;background-color:#fcfaf7;font-family:Inter;font-weight:400;font-size:16px;line-height:19px;color:#58585b}.sign-up-verify-content[_ngcontent-%COMP%]{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px}.sign-up-header[_ngcontent-%COMP%]{margin:0;color:#4648aa;font-family:Inter;font-weight:600;font-size:24px;line-height:28px;text-align:center}.sign-up-body[_ngcontent-%COMP%]{line-height:140%;text-align:center}.sign-up-body[_ngcontent-%COMP%] .email-text[_ngcontent-%COMP%]{font-weight:500}
3.seperator[_ngcontent-%COMP%]{border-bottom:2px solid #f2e8dc;width:90%;max-width:320px}.sign-up-help-text[_ngcontent-%COMP%]{font-size:14px;line-height:140%;text-align:center}.sign-up-help-text[_ngcontent-%COMP%] .request-new-email-link[_ngcontent-%COMP%]{display:inline;font-weight:600;cursor:pointer;text-decoration:underline} 4/*# sourceMappingURL=verify-page.component-744KNMPN.css.map */`,`.fm-site[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100vh;min-height:100%;width:100%;background-color:#fcfaf7}.fm-site__page[_ngcontent-%COMP%]{flex:1}.fm-site__header[_ngcontent-%COMP%], .fm-site__footer[_ngcontent-%COMP%]{flex:none}.fm-signup-nav[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:80px;z-index:10;background-color:#fcfaf7;display:flex;flex-direction:row;align-items:center;justify-content:center;font-family:Inter;font-style:normal;font-weight:600;font-size:16px;line-height:19px;border-bottom:2px solid #f2e8dc}.fm-signup-nav__content-wrapper[_ngcontent-%COMP%]{position:relative;width:100%;max-width:1300px;display:flex;flex-direction:row;align-items:center;justify-content:center;padding:0 70px}@media screen and (max-width:992px){.fm-signup-nav__content-wrapper[_ngcontent-%COMP%]{padding:16px 35px}}.fm-signup-nav__logo[_ngcontent-%COMP%]{text-decoration:none;position:absolute;left:70px}@media screen and (max-width:992px){.fm-signup-nav__logo[_ngcontent-%COMP%]{left:35px}}.fm-signup-nav__link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:8px;border-radius:10px;color:inherit;text-decoration:none;transition:background-color .2s;cursor:pointer;-webkit-user-select:none;user-select:none}.fm-signup-nav__link[_ngcontent-%COMP%]:hover{background-color:#f2e8dc}.fm-signup-nav__sign-in-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:baseline;color:#4648aa;margin-left:auto}.fm-signup-container[_ngcontent-%COMP%]{position:absolute;top:80px;width:100%} 5/*# sourceMappingURL=signup.component-MKOLHD5T.css.map */`]});let n=i;return n})();var ti=["uploadInput"],ii=["cameraInput"];function ni(n,i){if(n&1&&u(0,"img",8),n&2){let p=f();g("src",Ae(p.selectedImageLocation),q)}
5}function ri(n,i){n&1&&(o(0,"div",9),u(1,"fm-icon",12),s())}function oi(n,i){if(n&1&&(o(0,"div",10)(1,"div",13),Me(),o(2,"svg",14),u(3,"path",15)(4,"path",16),s(),Te(),o(5,"span",17),a(6),s()()()),n&2){let p=f();m(4),Fe("stroke-dasharray",p.uploadProgress+", 100"),m(2),B("",p.uploadProgress,"%")}}function si(n,i){if(n&1){let p=R();u(0,"p-menu",21,2),o(2,"button",22),x("click",function(e){M(p);let r=Re(1);return T(r.toggle(e))}),a(3,"Add photo"),s()}if(n&2){let p=f(2);g("model",p.menuItems)("popup",!0)}}function ai(n,i){if(n&1){let p=R();o(0,"button",22),x("click",function(){M(p);let e=f(2);return T(e.openFileSelector())}),a(1,"Upload picture"),s()}}function li(n,i){if(n&1&&(o(0,"div",18),C(1,si,4,2)(2,ai,2,0,"button",19),s(),o(3,"div",20),a(4,"JPG, PNG, GIF, WEBP or BMP file; 6MB or less"),s()),n&2){let p=f();m(),I(p.showTakePhoto()?1:2)}}function ci(n,i){if(n&1&&(o(0,"div",11),a(1),s()),n&2){let p=f();m(),L(p.getUploadStateMessage())}}function pi(n,i){if(n&1){let p=R();o(0,"button",22),x("click",function(){M(p);let e=f();return T(e.openFileSelector())}),a(1,"Try again"),s(),o(2,"div",23),a(3),o(4,"button",24),x("click",function(){M(p);let e=f();return T(e.revertToPreviousState())}),a(5,"Dismiss"),s()()}if(n&2){let p=f();m(3),B("",p.imageUploadError," ")}}function mi(n,i){if(n&1&&(o(0,"div",11),a(1),s()),n&2){let p=f(2);m(),L(p.getUploadStateMessage())}}function di(n,i){if(n&1){let p=R();o(0,"button",22),x("click",function(){M(p);let e=f();return T(e.openFileSelector())}),a(1,"Change"),s(),C(2,mi,2,1,"div",11)}if(n&2){let p=f();m(2),I(p.isUploadComplete()?2:-1)}}var Ot=(()=>{let i=class i{constructor(t,e,r,l,c){this.analyticsService=t,this.profileImageUploadService=e,this.profileImageS3UploadService=r,this.toastService=l,this.viewportService=c,this.initialProfileImage=null,this.onSelectedFileChange=new Q,this.onUploadComplete=new Q,this.onUploadInProgress=new Q,this.POLLING_INTERVAL_MS=2e3,this.MAX_POLLING_ATTEMPTS=30,this.uploadState="initial",this.selectedImageFile=null,this.selectedImageLocation=null,this.imageUploadError=null,this.uploadProgress=0,this.s3UploadState="idle",this.ngUnsubscribe=new F,this.statusPollingSubscription=null,this.showTakePhoto=this.viewportService.isLikelyMobile,this.menuItems=[],ke(()=>{this.showTakePhoto(),this.buildMenuItems()})}ngOnInit(){}openFileSelector(){this.isUploading()||this.uploadInput.nativeElement.click()}openTakePhoto(){this.isUploading()||this.cameraInput.nativeElement.click()}resetFileInput(){this.selectedImageFile=null,this.selectedImageLocation=this.initialProfileImage,this.uploadProgress=0,this.s3UploadState="idle",this.onUploadInProgress.emit(!1)}revertToPreviousState(){this.selectedImageFile&&this.s3UploadState==="completed"?this.uploadState="selected":this.uploadState="initial"}onFileChange(t){if(this.imageUploadError="",t.target.files.length===0)return;let e=t.target.files[0],r=this.profileImageUploadService.validateFile(e);if(!r.valid){this.imageUploadError=r.error||"Invalid file",this.uploadState="error",this.toastService.openErrorToast(this.imageUploadError,8e3);return}this.selectedImageFile=e,this.uploadState="uploading",this.uploadProgress=0,this.s3UploadState="getting_url",this.onUploadInProgress.emit(!0);let l=new FileReader;l.onload=c=>{this.selectedImageLocation=c.target.result},l.readAsDataURL(e),this.profileImageS3UploadService.uploadProfileImage(e).pipe(b(this.ngUnsubscribe)).subscribe({next:c=>{this.s3UploadState=c.state,c.progress&&(this.uploadProgress=c.progress.percent),c.error&&(this.imageUploadError=c.error,this.uploadState="error",this.toastService.openErrorToast(c.error,8e3),this.onUploadComplete.emit(!1),this.onUploadInProgress.emit(!1)),c.state==="processing"&&c.upload_id&&this.pollForProcessingComplete(c.upload_id),c.state==="completed"&&(this.uploadState="selected",this.onUploadComplete.emit(!0),this.onUploadInProgress.emit(!1))},error:c=>{this.imageUploadError=c.message||c||"Upload failed",this.uploadState="error",this.s3UploadState="error",this.toastService.openErrorToast(this.imageUploadError,8e3),this.onUploadComplete.emit(!1),this.onUploadInProgress.emit(!1)}}),this.onSelectedFileChange.emit(this.selectedImageFile)}isUploading(){return this.s3UploadState==="getting_url"||this.s3UploadState==="uploading"||this.s3UploadState==="confirming"||this.s3UploadState==="processing"}isUploadComplete(){return this.s3UploadState==="completed"}getUploadStateMessage(){switch(this.s3UploadState){case"getting_url":return"Preparing upload...";case"uploading":return`Uploading... ${this.uploadProgress}%`;case"confirming":return"Finishing upload...";case"processing":return"Processing image...";case"error":return this.imageUploadError||"Upload failed";case"completed":return"Upload complete";default:return""}}pollForProcessingComplete(t){this.stopPolling();let e=0;this.statusPollingSubscription=Ee(this.POLLING_INTERVAL_MS).pipe(b(this.ngUnsubscribe),Oe(()=>e<this.MAX_POLLING_ATTEMPTS),we(()=>(e++,this.profileImageS3UploadService.getUploadStatus(t)))).subscribe({next:r=>{r.status==="completed"?(this.s3UploadState="completed",this.uploadState="selected",this.onUploadComplete.emit(!0),this.onUploadInProgress.emit(!1),r.image_url&&(this.selectedImageLocation=r.image_url),this.stopPolling()):r.status==="failed"?(this.imageUploadError=r.error||"Image processing failed",this.uploadState="error",this.s3UploadState="error",this.toastService.openErrorToast(this.imageUploadError,8e3),this.onUploadComplete.emit(!1),this.onUploadInProgress.emit(!1),this.stopPolling()):r.status==="expired"&&(this.imageUploadError="Upload expired. Please try again.",this.uploadState="error",this.s3UploadState="error",this.toastService.openErrorToast(this.imageUploadError,8e3),this.onUploadComplete.emit(!1),this.onUploadInProgress.emit(!1),this.stopPolling())},error:()=>{this.onUploadInProgress.emit(!1),this.stopPolling()}})}stopPolling(){this.statusPollingSubscription&&(this.statusPollingSubscription.unsubscribe(),this.statusPollingSubscription=null)}buildMenuItems(){let t=[];this.showTakePhoto()&&t.push({label:"Take photo",icon:"pi pi-camera",command:()=>{this.openTakePhoto()}}),t.push({label:"Upload picture",icon:"pi pi-upload",command:()=>{this.openFileSelector()}}),this.menuItems=t}ngOnDestroy(){this.stopPolling(),this.ngUnsubscribe.next(null),this.ngUnsubscribe.complete()}};i.\u0275fac=function(e){return new(e||i)(d(j),d(ut),d(ft),d(pt),d(Xe))},i.\u0275cmp=P({type:i,selectors:[["app-upload-profile-image"]],viewQuery:function(e,r){if(e&1&&Ne(ti,7)(ii,7),e&2){let l;Ce(l=Ie())&&(r.uploadInput=l.first),Ce(l=Ie())&&(r.cameraInput=l.first)}},inputs:{initialProfileImage:"initialProfileImage"},outputs:{onSelectedFileChange:"onSelectedFileChange",onUploadComplete:"onUploadComplete",onUploadInProgress:"onUploadInProgress"},standalone:!1,decls:14,vars:3,consts:[["uploadInput",""],["cameraInput",""],["photoMenu",""],[1,"profile-image-selector-container","w-full","text-center"],["type","file","hidden","","accept","image/png,image/jpeg,image/jpg,image/gif,image/bmp,image/webp",3,"change"],["type","file","hidden","","accept","image/png,image/jpeg,image/jpg,image/gif,image/bmp,image/webp","capture","user",3,"change"],["for","avatar"],[1,"relative"],[1,"upload-img",3,"src"],[1,"upload-img"],[1,"upload-overlay"],[1,"uploading-text","fm-mt-12px"],["name","blank-profile","size","80px"],[1,"upload-progress-ring"],["viewBox","0 0 36 36",1,"circular-progress"],["d",`M18 2.0845 6 a 15.9155 15.9155 0 0 1 0 31.831 7 a 15.9155 15.9155 0 0 1 0 -31.831`,1,"circle-bg"],["d",`M18 2.0845 8 a 15.9155 15.9155 0 0 1 0 31.831 9 a 15.9155 15.9155 0 0 1 0 -31.831`,1,"circle"],[1,"progress-text"],[1,"w-full","flex","gap-3","items-center","justify-center"],["type","button",1,"upload-btn","fm-mt-12px"],[1,"image-format-text","fm-mt-12px"],["appendTo","body",3,"model","popup"],["type","button",1,"upload-btn","fm-mt-12px",3,"click"],[1,"error-text","fm-mt-12px"],["type","button",1,"dismiss-btn",3,"click"]],template:function(e,r){if(e&1&&(o(0,"div",3)(1,"input",4,0),x("change",function(c){return r.onFileChange(c)}),s(),o(3,"input",5,1),x("change",function(c){return r.onFileChange(c)}),s(),o(5,"label",6)(6,"div",7),C(7,ni,1,2,"img",8)(8,ri,2,0,"div",9),C(9,oi,7,2,"div",10),s()(),C(10,li,5,1)(11,ci,2,1,"div",11)(12,pi,6,1)(13,di,3,1),s()),e&2){let l;m(7),I(r.selectedImageLocation?7:8),m(2),I(r.isUploading()?9:-1),m(),I((l=r.uploadState)==="initial"?10:l==="uploading"?11:l==="error"?12:l==="selected"?13:-1)}},dependencies:[xt,mt],styles:[`.hidden[_ngcontent-%COMP%]{display:none}.upload-img[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;align-items:center;width:80px;height:80px;filter:drop-shadow(0px 5px 10px rgba(211,211,211,.6));border-radius:50%;object-fit:cover;cursor:pointer}.upload-img[_ngcontent-%COMP%]:hover{filter:drop-shadow(0px 5px 10px #d2d2d2)}.profile-image-selector-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:flex-start;align-items:center}.upload-btn[_ngcontent-%COMP%]{box-sizing:border-box;height:40px;font-family:Inter;font-style:normal;font-size:16px;font-weight:500;line-height:19px;outline:none;border:none;background:transparent;color:#58585b;padding:8px;border-radius:4px;cursor:pointer}.upload-btn[_ngcontent-%COMP%]:hover{background:#f2e8dc;border:none}.upload-btn[_ngcontent-%COMP%]:focus-visible{background:transparent;border:2px solid #58585b}.upload-btn[_ngcontent-%COMP%]:active{background:#ecd7bf;border:none}.dismiss-btn[_ngcontent-%COMP%]{box-sizing:border-box;display:inline-flex;justify-content:center;vertical-align:center;align-items:center;height:20px;outline:none;border:none;background:#f8e2e2;color:#58585b;padding:0 8px;border-radius:28px;cursor:pointer;font-family:Inter;font-style:normal;font-weight:500;font-size:12px;line-height:15px;color:#de3535}
9.dismiss-btn[_ngcontent-%COMP%]:hover{background:#f2e8dc;border:none}.dismiss-btn[_ngcontent-%COMP%]:focus-visible{background:transparent;border:2px solid #58585b}.dismiss-btn[_ngcontent-%COMP%]:active{background:#ecd7bf;border:none}.error-text[_ngcontent-%COMP%]{font-family:Inter;font-style:normal;font-weight:500;font-size:14px;line-height:17px;text-align:center;color:#de3535}.image-format-text[_ngcontent-%COMP%]{font-family:Inter;font-style:normal;font-weight:500;font-size:14px;line-height:17px;display:flex;align-items:center;text-align:center;color:#58585b}.uploading-text[_ngcontent-%COMP%]{font-family:Inter;font-style:normal;font-weight:500;font-size:14px;line-height:17px;text-align:center;color:#4648aa}.upload-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;background:#00000080;border-radius:50%;display:flex;justify-content:center;align-items:center}.upload-progress-ring[_ngcontent-%COMP%]{position:relative;width:48px;height:48px;display:flex;justify-content:center;align-items:center}.circular-progress[_ngcontent-%COMP%]{width:48px;height:48px;transform:rotate(-90deg)}.circle-bg[_ngcontent-%COMP%]{fill:none;stroke:#ffffff4d;stroke-width:3}.circle[_ngcontent-%COMP%]{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;transition:stroke-dasharray .3s ease}.progress-text[_ngcontent-%COMP%]{position:absolute;font-family:Inter;font-size:12px;font-weight:600;color:#fff} 10/*# sourceMappingURL=upload-profile-image.component-UPQGOEWJ.css.map */`]});let n=i;return n})();function gi(n,i){n&1&&(o(0,"div",10),a(1,"Please select your time zone"),s())}function hi(n,i){n&1&&(o(0,"div",10),a(1,"Please check the box to contintue."),s())}var vi="First name is required",xi="Last name is required",Mt="Maximum 40 characters",Tt=(()=>{let i=class i{constructor(t,e,r,l,c,E){this.formBuilder=t,this.router=e,this.analyticsService=r,this.storeRedirectOnLoginService=l,this.userService=c,this.utilsService=E,this.faUser=Ye,this.userInitial=new ie,this.ngUnsubscribe=new F,this.firstNameInputError=null,this.lastNameInputError=null,this.tosNotCheckedError=!1,this.timezoneSelectionError=!1,this.selectedImageFile=null,this.imageUploadCompleted=!1,this.imageUploadInProgress=!1,this.submittingProfile=!1,this.initialSubmissionFailed=!1,this.env=Ge}profileImageSelected(t){this.selectedImageFile=t,this.imageUploadCompleted=!1}onImageUploadComplete(t){this.imageUploadCompleted=t}onImageUploadInProgress(t){this.imageUploadInProgress=t}ngOnInit(){this.userService.currentUser.pipe(v(1)).subscribe(t=>{this.user=t,this.userInitial=Object.assign(this.userInitial,t),typeof fpr<"u"&&fpr&&fpr("referral",{email:this.user.email});let e=this.user.timeZone;this.utilsService.isValidTimezone(this.user.timeZone)||(e=this.utilsService.getGuessedTimezone()),this.profileForm=this.formBuilder.group({firstName:new V(this.user.firstName||null,[O.required,O.minLength(1),O.maxLength(40)]),lastName:new V(this.user.familyName||null,[O.required,O.minLength(1),O.maxLength(40)]),timezone:new V(e,[O.required]),tosAccepted:new V(!1,[O.requiredTrue])}),this.profileForm.controls.tosAccepted.valueChanges.pipe(b(this.ngUnsubscribe)).subscribe(r=>{this.tosNotCheckedError&&r===!0&&(this.tosNotCheckedError=!1)}),this.profileForm.controls.timezone.valueChanges.pipe(b(this.ngUnsubscribe)).subscribe(r=>{this.initialSubmissionFailed&&this.verifyTimezoneSelection()}),this.profileForm.controls.firstName.valueChanges.pipe(b(this.ngUnsubscribe)).subscribe(()=>{this.initialSubmissionFailed&&this.verifyFirstName()}),this.profileForm.controls.lastName.valueChanges.pipe(b(this.ngUnsubscribe)).subscribe(()=>{this.initialSubmissionFailed&&this.verifyLastName()})})}trackModifiedFields(){let t=[];this.selectedImageFile&&this.imageUploadCompleted&&t.push("avatar"),this.user.familyName!=this.userInitial.familyName&&t.push("lastName"),this.user.firstName!=this.userInitial.firstName&&t.push("firstName"),this.user.timeZone!=this.userInitial.timeZone&&t.push("timezone"),t.length>0&&this.analyticsService.logProfileEditedEvent(t)}onSubmit(){this.resetErrors(),this.profileForm.valid?(this.submittingProfile=!0,this.trackModifiedFields(),this.user.timeZone=this.profileForm.controls.timezone.value,this.user.firstName=this.profileForm.controls.firstName.value,this.user.familyName=this.profileForm.controls.lastName.value,this.user.properties[ct]=!0,this.userService.update(this.user,null).pipe(b(this.ngUnsubscribe)).subscribe(t=>{this.analyticsService.logNewUserSettings(),this.selectedImageFile&&this.imageUploadCompleted&&this.analyticsService.logNewUserPhotoUploaded(this.selectedImageFile),this.userService.currentUser.pipe(b(this.ngUnsubscribe)).subscribe(e=>{e.emailVerified?this.router.navigate(["signup/setting-up"]):this.router.navigate(["signup/verify"])})},t=>{this.initialSubmissionFailed=!0,this.submittingProfile=!1})):(this.initialSubmissionFailed=!0,this.verifyFirstName(),this.verifyLastName(),this.verifyTimezoneSelection(),(this.profileForm.controls.tosAccepted.errors?.required||this.profileForm.controls.tosAccepted.errors?.requiredTrue)&&(this.tosNotCheckedError=!0))}verifyTimezoneSelection(){this.profileForm.controls.timezone.errors?.required?this.timezoneSelectionError=!0:this.timezoneSelectionError=!1}verifyFirstName(){this.profileForm.controls.firstName.errors?.required?this.firstNameInputError=vi:this.profileForm.controls.firstName.errors?.maxlength?this.firstNameInputError=Mt:this.firstNameInputError=null}verifyLastName(){this.profileForm.controls.lastName.errors?.required?this.lastNameInputError=xi:this.profileForm.controls.lastName.errors?.maxlength?this.lastNameInputError=Mt:this.lastNameInputError=null}resetErrors(){this.lastNameInputError=null,this.firstNameInputError=null,this.tosNotCheckedError=!1}ngOnDestroy(){this.ngUnsubscribe.next(null),this.ngUnsubscribe.complete(),this.storeRedirectOnLoginService.storeSignInUpError("")}};i.\u0275fac=function(e){return new(e||i)(d(Be),d(S),d(j),d(ne),d(h),d(Ke))},i.\u0275cmp=P({type:i,selectors:[["app-signup"]],standalone:!1,decls:30,vars:12,consts:[[1,"sign-up-profile-container"],[1,"sign-up-profile-form",3,"ngSubmit","formGroup"],[1,"sign-up-header"],[3,"onSelectedFileChange","onUploadComplete","onUploadInProgress","initialProfileImage"],[1,"profile-form-inputs"],[1,"name-input-container","w-full"],["formControlName","firstName","name","first-name","required","","placeholder","First name","appFmAutofocus","",3,"error"],["formControlName","lastName","name","last-name","required","","placeholder","Last name",3,"error"],[1,"w-full"],["formControlName","timezone"],[1,"error-text","fm-mt-4px"],[1,"w-full","text-sm"],["formControlName","tosAccepted"],[1,""],[1,"list-outside","list-disc","ml-12","mt-2"],["target","_blank",1,"font-normal","text-sm",3,"href"],[3,"loading","disabled"],[1,"text-center"]],template:function(e,r){e&1&&(o(0,"div",0)(1,"form",1),x("ngSubmit",function(){return r.onSubmit()}),o(2,"div",2),a(3,"Almost done..."),s(),o(4,"app-upload-profile-image",3),x("onSelectedFileChange",function(c){return r.profileImageSelected(c)})("onUploadComplete",function(c){return r.onImageUploadComplete(c)})("onUploadInProgress",function(c){return r.onImageUploadInProgress(c)}),s(),o(5,"div",4)(6,"div",5),u(7,"fm-text-input",6)(8,"fm-text-input",7),s(),o(9,"div",8),u(10,"fm-timezone-select",9),C(11,gi,2,0,"div",10),s(),o(12,"div",11)(13,"fm-checkbox",12)(14,"span",13),a(15,"I confirm that:"),s()(),o(16,"ul",14)(17,"li"),a(18,"I am at least 17 years old"),s(),o(19,"li"),a(20,"I accept and agree to Focusmate's "),o(21,"a",15),a(22,"Terms"),s(),a(23," , "),o(24,"a",15),a(25,"Privacy Policy"),s()()(),C(26,hi,2,0,"div",10),s()(),o(27,"fm-button",16),a(28,"Complete sign up"),s(),u(29,"app-not-you-sign-out",17),s()()),e&2&&(m(),g("formGroup",r.profileForm),m(3),g("initialProfileImage",r.user.photo),m(3),g("error",r.firstNameInputError),m(),g("error",r.lastNameInputError),m(3),I(r.timezoneSelectionError?11:-1),m(10),g("href",ye("",r.env.marketingHomeUrl,"/terms/"),q),m(3),g("href",ye("",r.env.marketingHomeUrl,"/privacy/"),q),m(2),I(r.tosNotCheckedError?26:-1),m(),g("loading",r.submittingProfile)("disabled",r.submittingProfile||r.imageUploadInProgress))},dependencies:[pe,G,bt,Z,X,Y,te,ee,$,le,ce,St,Ot],styles:[`.sign-up-profile-container[_ngcontent-%COMP%]{padding:32px 35px;min-height:calc(100vh - 80px);
10display:flex;flex-direction:column;justify-content:flex-start;align-items:center;background-color:#fcfaf7;font-family:Inter;font-weight:400;font-size:16px;line-height:19px;color:#58585b}.sign-up-profile-form[_ngcontent-%COMP%]{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px}.profile-form-inputs[_ngcontent-%COMP%]{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.sign-up-header[_ngcontent-%COMP%]{font-family:Inter;font-weight:600;font-size:24px;line-height:24px;color:#4648aa;text-align:center}.error-text[_ngcontent-%COMP%]{font-family:Inter;font-style:normal;font-weight:500;font-size:14px;line-height:150%;color:#de3535;text-align:left}.name-input-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:10px} 11/*# sourceMappingURL=signup-profile-page.component-TXBBPZ3M.css.map */`]});let n=i;return n})();var Si="control",_i="experimental",kt=(()=>{let i=class i{constructor(){}randomInt(t,e){return Math.floor(Math.random()*(e-t+1))+t}isControlGroup(t){return parseInt(t.userId.slice(-1),16)%2===0}getExperimentVariant(t){return this.isControlGroup(t)?Si:_i}isFeatureAvailable(t,e){return e.properties.hasOwnProperty(t)?e.properties[t]:!1}};i.\u0275fac=function(e){return new(e||i)},i.\u0275prov=U({token:i,factory:i.\u0275fac,providedIn:"root"});let n=i;return n})();var ue=(()=>{let i=class i{constructor(t,e,r,l){this.router=t,this.ls=e,this.experimentService=r,this.userService=l}canActivate(t,e){return w.create(r=>{t.queryParams.hasOwnProperty("g")&&this.userService.setGroupCode(t.queryParams.g),this.userService.isAuthenticated.pipe(v(1)).subscribe(l=>{l?this.userService.currentUser.pipe(v(1)).subscribe(c=>{c.onboard?(this.router.navigate(["/dashboard"]),r.next(!1)):(this.router.navigate(["signup/profile"]),r.next(!1))}):r.next(!0)})})}};i.\u0275fac=function(e){return new(e||i)(_(S),_(z),_(kt),_(h))},i.\u0275prov=U({token:i,factory:i.\u0275fac,providedIn:"root"});let n=i;return n})();var fe=(()=>{let i=class i{constructor(t,e){this.router=t,this.userService=e}canActivate(t,e){return w.create(r=>{this.userService.isAuthenticated.pipe(v(1)).subscribe(l=>{l?this.userService.currentUser.pipe(v(1)).subscribe(c=>{let E=this.userService.isUserAccountSetupComplete(c),A=c.onboard,Se=c.emailVerified,_e=c.features.experimentVerifyBeforeMatch;E?A?r.next(this.router.parseUrl("dashboard")):Se||_e?r.next(this.router.parseUrl("dashboard")):r.next(!0):r.next(this.router.parseUrl("signup/profile"))}):r.next(this.router.parseUrl("signup"))})})}};i.\u0275fac=function(e){return new(e||i)(_(S),_(h))},i.\u0275prov=U({token:i,factory:i.\u0275fac,providedIn:"root"});let n=i;return n})();var ge=(()=>{let i=class i{constructor(t,e){this.router=t,this.userService=e}canActivate(t,e){return w.create(r=>{this.userService.isAuthenticated.pipe(v(1)).subscribe(l=>{l?this.userService.currentUser.pipe(v(1)).subscribe(c=>{c.onboard?r.next(this.router.parseUrl("dashboard")):this.userService.isEmailVerified.pipe(v(1)).subscribe(E=>{E===!0||c.features.experimentVerifyBeforeMatch,r.next(!0)})}):r.next(this.router.parseUrl("signup"))})})}};i.\u0275fac=function(e){return new(e||i)(_(S),_(h))},i.\u0275prov=U({token:i,factory:i.\u0275fac,providedIn:"root"});let n=i;return n})();function Ci(n,i){if(n&1){let p=R();o(0,"div",0),u(1,"app-group-logo",1),o(2,"div",2),a(3),s(),o(4,"div",3),a(5,"Focusmate: Virtual coworking for getting anything done."),s(),o(6,"div",4)(7,"fm-button",5),x("clicked",function(){M(p);let e=f();return T(e.moveToGetMethod())}),a(8,"Sign up"),s(),o(9,"fm-button",6),x("clicked",function(){M(p);let e=f();return T(e.moveToLogin())}),a(10,"Log in"),s()()()}if(n&2){let p=f();m(),g("logoUrl",p.group.groupLogo)("logoClass","logo-signup-view-lg"),m(2),B(" Join the ",p.group.groupName," group on Focusmate! ")}}function Ii(n,i){if(n&1&&(o(0,"div",0),u(1,"app-group-logo",1),o(2,"div",2),a(3," Sorry, this group doesn't exist "),s(),o(4,"div",3),a(5,"Please confirm your link with the group admin. "),s()()),n&2){let p=f();m(),g("logoUrl",p.group.groupLogo)("logoClass","logo-signup-view-lg")}}var Nt=(()=>{let i=class i{constructor(t,e,r,l){this.route=t,this.router=e,this.groupService=r,this.util=l,this.group=new Qe,this.ngUnsubscribe=new F,this.readyToLoad=!1,this.groupCode=""}ngOnInit(){this.route.params.pipe(b(this.ngUnsubscribe)).subscribe(t=>{this.groupCode=t.code,this.groupCode!==""&&typeof this.groupCode<"u"?this.groupService.getGroupSignUpPageInfo(this.groupCode).pi
11pe(b(this.ngUnsubscribe)).subscribe(e=>{this.group=e,this.group.groupId!==""&&this.group.groupLogo===""&&(this.group.groupLogo="../../assets/images/default_group.svg"),this.readyToLoad=!0}):this.readyToLoad=!0})}moveToGetMethod(){this.router.navigate(["signup/method"],{queryParams:{g:this.groupCode}})}moveToLogin(){this.router.navigate(["login"],{queryParams:{g:this.groupCode}})}ngOnDestroy(){this.ngUnsubscribe.next(null),this.ngUnsubscribe.complete()}};i.\u0275fac=function(e){return new(e||i)(d(D),d(S),d(It),d(z))},i.\u0275cmp=P({type:i,selectors:[["app-join-group"]],standalone:!1,decls:2,vars:1,consts:[[1,"sign-up-group-container"],[3,"logoUrl","logoClass"],[1,"header-text"],[1,"body-text"],[1,"action-btns"],[3,"clicked"],["buttonType","outline",3,"clicked"]],template:function(e,r){e&1&&C(0,Ci,11,3,"div",0)(1,Ii,6,2,"div",0),e&2&&I(r.readyToLoad&&r.group.groupId!=""?0:1)},dependencies:[G,gt],styles:[`*[_ngcontent-%COMP%]{box-sizing:border-box}.sign-up-group-container[_ngcontent-%COMP%]{padding:32px 35px;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;background-color:#fcfaf7;font-family:Inter;font-weight:400;font-size:16px;line-height:19px;color:#58585b;gap:32px;max-width:420px;margin-left:auto;margin-right:auto}.header-text[_ngcontent-%COMP%]{font-family:Inter;font-style:normal;font-weight:600;font-size:24px;line-height:100%;color:#4648aa;text-align:center}.body-text[_ngcontent-%COMP%]{font-family:Inter;font-style:normal;font-weight:400;font-size:16px;line-height:140%;text-align:center;color:#58585b}.action-btns[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center;justify-content:center;flex-direction:row;gap:10px} 12/*# sourceMappingURL=join-group.component-ANTB2BGS.css.map */`,`.fm-site[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100vh;min-height:100%;width:100%;background-color:#fcfaf7}.fm-site__page[_ngcontent-%COMP%]{flex:1}.fm-site__header[_ngcontent-%COMP%], .fm-site__footer[_ngcontent-%COMP%]{flex:none}.fm-signup-nav[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:80px;z-index:10;background-color:#fcfaf7;display:flex;flex-direction:row;align-items:center;justify-content:center;font-family:Inter;font-style:normal;font-weight:600;font-size:16px;line-height:19px;border-bottom:2px solid #f2e8dc}.fm-signup-nav__content-wrapper[_ngcontent-%COMP%]{position:relative;width:100%;max-width:1300px;display:flex;flex-direction:row;align-items:center;justify-content:center;padding:0 70px}@media screen and (max-width:992px){.fm-signup-nav__content-wrapper[_ngcontent-%COMP%]{padding:16px 35px}}.fm-signup-nav__logo[_ngcontent-%COMP%]{text-decoration:none;position:absolute;left:70px}@media screen and (max-width:992px){.fm-signup-nav__logo[_ngcontent-%COMP%]{left:35px}}.fm-signup-nav__link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:8px;border-radius:10px;color:inherit;text-decoration:none;transition:background-color .2s;cursor:pointer;-webkit-user-select:none;user-select:none}.fm-signup-nav__link[_ngcontent-%COMP%]:hover{background-color:#f2e8dc}.fm-signup-nav__sign-in-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:baseline;color:#4648aa;margin-left:auto}.fm-signup-container[_ngcontent-%COMP%]{position:absolute;top:80px;width:100%} 13/*# sourceMappingURL=signup.component-MKOLHD5T.css.map */`]});let n=i;return n})();var he=(()=>{let i=class i{constructor(t,e){this.router=t,this.userService=e}canActivate(t,e){return w.create(r=>{this.userService.setGroupCode(t.params.code),this.userService.isAuthenticated.pipe(v(1)).subscribe(l=>{l?this.userService.currentUser.pipe(v(1)).subscribe(c=>{c.onboard?(this.router.navigate(["/dashboard"]),r.next(!1)):(this.router.navigate(["signup/profile"]),r.next(!1))}):r.next(!0)})})}};i.\u0275fac=function(e){return new(e||i)(_(S),_(h))},i.\u0275prov=U({token:i,factory:i.\u0275fac,providedIn:"root"});let n=i;return n})();function yi(n,i){if(n&1){let p=R();o(0,"div",2),a(1,"Verification failed"),s(),o(2,"div",3),a(3," It could be because the verification link expired, or there was an error while entering the link."),u(4,"br")(5,"br"),a(6,"You can try entering the link in your browser again, or request a new verification email. "),s(),o(7,"fm-button",4),x("click",function(){M(p);let e=f();return T(e.getNewVerificationEmail())}),a(8,"Send new verification email"),s()}if(n&2){let p=f();m(7),g("loading",p.actionTriggered)}}
13function Ui(n,i){if(n&1){let p=R();o(0,"div",2),a(1,"Verification failed"),s(),o(2,"div",3),a(3," It could be because the verification link expired, or there was an error while entering the link."),u(4,"br")(5,"br"),a(6,"You can try entering the link in your browser again, or sign in to request a new verification email. "),s(),o(7,"fm-button",4),x("click",function(){M(p);let e=f();return T(e.goToSignIn())}),a(8,"Sign in"),s()}if(n&2){let p=f();m(7),g("loading",p.actionTriggered)}}function Pi(n,i){if(n&1){let p=R();o(0,"div",2),a(1,"Verification completed!"),s(),o(2,"div",3),a(3," Please sign in to start using Focusmate "),s(),o(4,"fm-button",4),x("click",function(){M(p);let e=f();return T(e.goToSignIn())}),a(5,"Sign in"),s()}if(n&2){let p=f();m(4),g("loading",p.actionTriggered)}}var Rt=(()=>{let i=class i{constructor(t,e){this.router=t,this.userService=e,this.actionTriggered=!1,this.currentNavigation=this.router.currentNavigation()}ngOnInit(){this.verificationStatus=this.determineTemplate(this.currentNavigation)}determineTemplate(t){return t?.extras?.state?.verified===!0?"successNotSignedIn":t?.extras?.state?.verified===!1&&t?.extras?.state?.signedIn===!0?"failedSignedIn":"failedNotSignedIn"}getNewVerificationEmail(){this.actionTriggered=!0,this.router.navigate(["signup/verify"])}goToSignIn(){this.actionTriggered=!0,this.router.navigate(["signup"])}};i.\u0275fac=function(e){return new(e||i)(d(S),d(h))},i.\u0275cmp=P({type:i,selectors:[["app-verify-status"]],standalone:!1,decls:5,vars:1,consts:[[1,"sign-up-verify-failed-container"],[1,"sign-up-verify-failed-content"],[1,"sign-up-header"],[1,"text-center"],[3,"click","loading"]],template:function(e,r){if(e&1&&(o(0,"div",0)(1,"div",1),C(2,yi,9,1)(3,Ui,9,1)(4,Pi,6,1),s()()),e&2){let l;m(2),I((l=r.verificationStatus)==="failedSignedIn"?2:l==="failedNotSignedIn"?3:l==="successNotSignedIn"?4:-1)}},dependencies:[G],styles:[`.sign-up-verify-failed-container[_ngcontent-%COMP%]{padding:32px 35px;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;background-color:#fcfaf7;font-family:Inter;font-weight:400;font-size:16px;line-height:19px;color:#58585b}.sign-up-verify-failed-content[_ngcontent-%COMP%]{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px}.sign-up-header[_ngcontent-%COMP%]{margin:0;color:#4648aa;font-family:Inter;font-weight:600;font-size:24px;line-height:28px;text-align:center} 14/*# sourceMappingURL=verify-status.component-IFQKW7PC.css.map */`]});let n=i;return n})();var ve=(()=>{let i=class i{constructor(t,e){this.router=t,this.userService=e}canActivate(t,e){return w.create(r=>{this.userService.isAuthenticated.pipe(v(1)).subscribe(l=>{(this.router.currentNavigation().extras?.state?.verified??null)!==null?r.next(!0):r.next(this.router.parseUrl("signup"))})})}};i.\u0275fac=function(e){return new(e||i)(_(S),_(h))},i.\u0275prov=U({token:i,factory:i.\u0275fac,providedIn:"root"});let n=i;return n})();var xe=(()=>{let i=class i{constructor(t,e){this.router=t,this.userService=e}canActivate(t,e){return w.create(r=>{let l=t.queryParams?.mode??null,c=t.queryParams?.oobCode??null;this.userService.isAuthenticated.pipe(v(1)).subscribe(E=>{l&&c?r.next(!0):E?this.userService.currentUser.pipe(v(1)).subscribe(A=>{let Se=this.userService.isUserAccountSetupComplete(A),_e=A.onboard,Gt=A.emailVerified,ji=A.features.experimentVerifyBeforeMatch;Se?_e?r.next(this.router.parseUrl("dashboard")):Gt?r.next(!0):r.next(this.router.parseUrl("signup/verify")):r.next(this.router.parseUrl("signup/profile"))}):l&&c?r.next(!0):r.next(this.router.parseUrl("signup"))})})}};i.\u0275fac=function(e){return new(e||i)(_(S),_(h))},i.\u0275prov=U({token:i,factory:i.\u0275fac,providedIn:"root"});let n=i;return n})();var At=3e3,Ei="checkActionCode",wi="applyActionCode",jt=(()=>{let i=class i{constructor(t,e,r,l,c,E){this.router=t,this.analyticsService=e,this.loginSignupUtilService=r,this.userService=l,this.route=c,this.authService=E,this.afAuth=J(oe),this.ngUnsubscribe=new F,this.artificialTimeoutReached=!1,this.isUserSignedIn=!1,this.user=new ie}verifiedSignedOut(){this.router.navigate(["../verify-status"],{state:{verified:!0,signedIn:this.isUserSignedIn},relativeTo:this.route})}verifiedSignedIn(){return be(this,null,function*(){let t=yield this.authService.getFirebaseUser();t?(yield t.reload(),this.userService.setVerified(!0),this.user.emailVerified=!0,this.userService.update(this.user).subscribe(()=>{this.artificialTimeoutReached?this.goToDashboard():this.artificialTimeoutReached=!0},e=>{this.authService.signOutVerify("failedUpdate"),this.router.navigate(["../verify-status"],{state:{verified:!0,signedIn:!1},relativeTo:this.route})})):this.router.navigate(["../verify-status"],{state:{verified:!0,signedIn:!1},relativeTo:this.route})})}handleFirebaseError(t,e){this.router.navigate(["../verify-status"],{state:{verified:!1,signedIn:this.isUserSignedIn},relativeTo:this.route});let r=t?.error||"noErrorCodeProvided";this.analyticsService.logReceivedError($e,e,r)}
14ngOnInit(){let t=this.route.snapshot.queryParams?.mode??null,e=this.route.snapshot.queryParams?.oobCode??null;this.userService.currentUser.pipe(v(1)).subscribe(r=>{this.user=r,!t||!e?this.continueNoVerificationNeeded():(this.isUserSignedIn=!!r.email,this.processEmailVerification(e))})}continueNoVerificationNeeded(){setTimeout(()=>{this.goToDashboard()},At)}startTimeout(){setTimeout(()=>{this.artificialTimeoutReached?this.goToDashboard():this.artificialTimeoutReached=!0},At)}goToDashboard(){this.loginSignupUtilService.setComingFromSignUp(!0),window.location.href="/dashboard"}processEmailVerification(t){return be(this,null,function*(){this.startTimeout();let e=yield ot(this.afAuth,t).catch(l=>(this.handleFirebaseError(l,Ei),null));!e||(this.signOutIfLoggedInWithDifferentAccount(e),(yield rt(this.afAuth,t).catch(l=>(this.handleFirebaseError(l,wi),!0)))===!0)||(this.isUserSignedIn?this.verifiedSignedIn():this.verifiedSignedOut())})}signOutIfLoggedInWithDifferentAccount(t){this.isUserSignedIn&&t.data.email!==this.user.email&&(this.authService.signOutVerify("mismatchedEmail"),this.isUserSignedIn=!1)}ngOnDestroy(){this.ngUnsubscribe.next(null),this.ngUnsubscribe.complete()}};i.\u0275fac=function(e){return new(e||i)(d(S),d(j),d(z),d(h),d(D),d(ae))},i.\u0275cmp=P({type:i,selectors:[["app-signup"]],standalone:!1,decls:5,vars:0,consts:[[1,"sign-up-creating-container","fm-mt-32px"],[1,"setting-up-container"],[1,"background-glow"],[1,"sign-up-header"]],template:function(e,r){e&1&&(o(0,"div",0)(1,"div",1),u(2,"app-fm-loading-indicator",2),o(3,"div",3),a(4," Setting everything up for you... "),s()()())},dependencies:[_t],styles:[`.sign-up-creating-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;align-items:center;max-width:420px;margin-left:auto;margin-right:auto;background-color:#fcfaf7;font-family:Inter;font-weight:400;font-size:16px;line-height:19px;color:#58585b}.setting-up-container[_ngcontent-%COMP%]{position:relative;margin-top:75px;width:359px;height:229px;display:flex;flex-direction:column;align-items:center;justify-content:center}.sign-up-header[_ngcontent-%COMP%]{margin:0;color:#4648aa;font-family:Inter;font-weight:600;font-size:24px;line-height:28px;filter:blur(0);text-align:center}.background-glow[_ngcontent-%COMP%]{position:absolute} 15/*# sourceMappingURL=setting-up.component-LOC4R2EX.css.map */`]});let n=i;return n})();var Oi="Sign Up",Mi="Sign Up Method",Ti="Sign Up Profile",ki="Sign Up Verify",Fi="Sign Up Verify Status",Ni="Landing: Group",Ri="Sign Up Completing",Ai=[{path:"",component:Pt,children:[{path:"",data:{group:"",robots:"index, follow",pageName:Oi},pathMatch:"full",redirectTo:"method"},{path:"method",component:Et,canActivate:[ue],data:{robots:"noindex, nofollow",pageName:Mi}},{path:"profile",component:Tt,canActivate:[ge],data:{robots:"noindex, nofollow",pageName:Ti}},{path:"verify",component:wt,canActivate:[fe],data:{robots:"noindex, nofollow",pageName:ki}},{path:"verify-status",component:Rt,canActivate:[ve],data:{robots:"noindex, nofollow",pageName:Fi}},{path:"setting-up",component:jt,canActivate:[xe],data:{robots:"noindex, nofollow",pageName:Ri}},{path:":code",component:Nt,canActivate:[he],data:{robots:"noindex, nofollow",pageName:Ni}}]}],Lt=(()=>{let i=class i{};i.\u0275fac=function(e){return new(e||i)},i.\u0275mod=K({type:i}),i.\u0275inj=H({imports:[W.forChild(Ai),W]});let n=i;return n})();var Vt=(()=>{let i=class i{constructor(t,e){this.router=t,this.userService=e}canActivate(t,e){return w.create(r=>{this.userService.isAuthenticated.pipe(v(1)).subscribe(l=>{if(l)this.userService.currentUser.pipe(v(1)).subscribe(c=>{c.onboard?(this.router.navigate(["/dashboard"]),r.next(!1)):(this.router.navigate(["signup/profile"]),r.next(!1))});else{let c=this.router.parseUrl(e.url),E=c.queryParams;c.queryParams={};let A;A=this.router.parseUrl("signup/method"),A.queryParams=E,r.next(A)}})})}};i.\u0275fac=function(e){return new(e||i)(_(S),_(h))},i.\u0275prov=U({token:i,factory:i.\u0275fac,providedIn:"root"});let n=i;return n})();var ao=(()=>{let i=class i{};i.\u0275fac=function(e){return new(e||i)},i.\u0275mod=K({type:i}),i.\u0275inj=H({providers:[Vt,ue,fe,ge,xe,he,ve],imports:[Ue,We,Ve,vt,Ct,Ue,W,Lt,me,dt]});let n=i;return n})();export{ao as SignupModule}; 16//# sourceMappingURL=chunk-5GPSJ5PB.js.map
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.