{"version":3,"file":"6296.0cb5d8be7472efe1.js","mappings":"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","names":["i0","ctx_r0","routeId","signupForm","get","loading","error","DEFAULT_RETURN_URL","NAV_PAGE_ON_LOGIN","Routes","Free","Pro","Weddings","Events","SignupPage","_SignupPage","signupPageReturnUrl","this","returnUrl","length","constructor","formBuilder","store","userService","loadingCtrl","tokensService","analyticsService","translate","route","router","snapshot","paramMap","toUpperCase","group","username","Validators","required","UsernameValidator","isValid","email","password","PasswordValidator","token","showingTokenInput","usernameRequirements","patternDesc","passwordRequirements","backgroundPosition","sideBlocks","onDestroy$","Subject","ngOnInit","queryParams","pipe","takeUntil","subscribe","params","console","log","_b","_a","getCurrentNavigation","extras","state","TOKEN_QUERY_PARAM","tokenId","tokenId$","filter","Boolean","take","patchValue","setTimeout","combineLatest","isLoggedIn$","isLoggedIn","applyTokenToCurrentUser","signUpFromInvite","navigate","queryParamsHandling","backgroundUrl","buildSideBlocks","SIGNUP_RETURN_URL_PRO","SIGNUP_RETURN_URL_EVENTS","SIGNUP_RETURN_URL_WEDDINGS","ngOnDestroy","next","complete","isKnownRouteId","Object","values","includes","isBusy","invalid","onUsernameChange","signup","_this","_asyncToGenerator","loader","create","message","instant","present","usernameInput","value","toLowerCase","register","signUp","AuthMethod","Email","CONFIRM_AUTH_PAGE","err","name","controls","setErrors","usernameExists","dismiss","path","root","max","rootPath","ret","index","level","titlePath","subtitlePath","descriptionPath","title","subtitle","description","block","push","i1","i2","i3","i4","i5","i6","i7","i8","selectors","standalone","features","decls","vars","consts","template","rf","ctx","SignupPage_h2_2_Template","SignupPage_fs_form_input_26_Template","SignupPage_div_27_Template","NgIf","FormsModule","ReactiveFormsModule","ButtonComponent","FormInputComponent","SplitLayoutComponent","TermsPolicyModalsComponent","IonItem","IonContent","FormControlCastPipe","TranslatePipe","styles"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/app/pages/auth/signup/signup.page.html","./src/app/pages/auth/signup/signup.page.ts"],"sourcesContent":["<ion-content>\n  <app-split-layout\n    [backgroundPosition]=\"backgroundPosition\"\n    [backgroundUrl]=\"backgroundUrl\"\n    [sideBlocks]=\"sideBlocks\"\n    [showSignupBtn]=\"false\"\n    [returnUrl]=\"signupPageReturnUrl\"\n  >\n    <h2 *ngIf=\"isKnownRouteId\">{{ 'AUTH.PLANS.' + routeId | translate }}</h2>\n    <h1>{{ 'AUTH.SIGNUP.TITLE' | translate }}</h1>\n\n    <form [formGroup]=\"signupForm\" class=\"ion-padding-start\" (ngSubmit)=\"signup()\">\n      <fs-form-input\n        [label]=\"'AUTH.USERNAME' | translate\"\n        type=\"username\"\n        [control]=\"signupForm.get('username') | formControlCast\"\n        [disabled]=\"loading\"\n        (change)=\"onUsernameChange()\"\n      ></fs-form-input>\n      <div class=\"form-input_hint ion-padding-start\">\n        <p class=\"italic\">{{ usernameRequirements }}</p>\n      </div>\n      <fs-form-input\n        [label]=\"'AUTH.EMAIL' | translate\"\n        type=\"email\"\n        [control]=\"signupForm.get('email') | formControlCast\"\n        [disabled]=\"loading\"\n        class=\"ion-margin-bottom\"\n      ></fs-form-input>\n      <fs-form-input\n        [label]=\"'AUTH.PASSWORD' | translate\"\n        type=\"password\"\n        [control]=\"signupForm.get('password') | formControlCast\"\n        [disabled]=\"loading\"\n      ></fs-form-input>\n      <div class=\"form-input_hint ion-padding-start\">\n        <p class=\"italic\">{{ passwordRequirements }}</p>\n      </div>\n\n      <!--\n        MVP-1216 HOW DID YOU HEAR ABOUT FILMSTACKER?\n        The field block would be prefilled with the text \"My wedding coordinator's name is...\"\n      -->\n      <div class=\"token\">\n        <fs-button\n          class=\"show-token-button\"\n          buttonStyle=\"clear\"\n          color=\"primary\"\n          [disabled]=\"showingTokenInput\"\n          (click)=\"showingTokenInput = true\"\n        >\n          {{ 'AUTH.SIGNUP.SHOW_TOKEN_BUTTON' | translate }}\n        </fs-button>\n\n        <fs-form-input *ngIf=\"showingTokenInput\"\n          [label]=\"'AUTH.INVITE_REFERRAL_CODE' | translate\"\n          type=\"text\"\n          [control]=\"signupForm.get('token') | formControlCast\"\n          [disabled]=\"loading\"\n        ></fs-form-input>\n      </div>\n\n      <div class=\"error\" *ngIf=\"error\">\n        <div><strong>{{ 'ERRORS.ERROR' | translate }}:</strong> {{ error }}</div>\n      </div>\n      <ion-item class=\"submit\">\n        <fs-button type=\"submit\" size=\"large\" [disabled]=\"isBusy\">{{ 'AUTH.SIGNUP.ACTION' | translate }}</fs-button>\n      </ion-item>\n      <ion-item>\n        <p class=\"indent\">\n          <app-terms-policy-modals\n            [agreeTo] = \"'POLICIES.AGREE_INTRO' | translate\"\n          ></app-terms-policy-modals>\n        </p>\n      </ion-item>\n    </form>\n  </app-split-layout>\n</ion-content>\n","/** @format */\n\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { UntypedFormBuilder, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { TranslateService, TranslatePipe } from '@ngx-translate/core';\nimport { LoadingController, IonContent, IonItem } from '@ionic/angular/standalone';\nimport { combineLatest, Subject } from 'rxjs';\nimport { filter, take, takeUntil } from 'rxjs/operators';\nimport { CONFIRM_AUTH_PAGE, NAV_PAGE_ON_LOGIN } from '@app/app.routes';\nimport { AnalyticsService, AuthMethod } from '@app/core/services/analytics/analytics.service';\nimport { UserService } from '@app/core/services/user.service';\nimport { ButtonComponent } from '@app/shared/components/ui/buttons/button/button.component';\nimport { UsernameValidator } from '@app/shared/validators/username';\nimport { PasswordValidator } from '@app/shared/validators/password';\nimport { SideBlock } from '@app/shared/components/layouts/split-layout/split-layout.component';\nimport { SplitLayoutComponent } from '@app/shared/components/layouts/split-layout/split-layout.component';\nimport { FormInputComponent } from '@app/shared/components/ui/form/form-input/form-input.component';\nimport { FormControlCastPipe } from '@app/shared/pipes/form-control-cast.pipe';\nimport { TermsPolicyModalsComponent } from '@app/shared/components/terms-policy-modals/terms-policy-modals.component';\nimport { TOKEN_QUERY_PARAM } from '@app/tokens/shared/tokens.model';\nimport { TokensService } from '@app/tokens/shared/services/tokens.service';\n\nimport { Store } from '@ngrx/store';\n// import { getHydrateState, selectHydrated } from '@store/reducers/hydrate.reducers';\nimport {\n  SIGNUP_RETURN_URL_EVENTS,\n  SIGNUP_RETURN_URL_PRO,\n  SIGNUP_RETURN_URL_WEDDINGS,\n} from '@app/onboarding/shared/onboarding.model';\n\nconst DEBUG_LOGS = false;\nconst DEFAULT_RETURN_URL = `/${NAV_PAGE_ON_LOGIN}`;\n\nenum Routes {\n  Free = 'FREE',\n  Pro = 'PRO',\n  // Teams = 'TEAMS',\n  Weddings = 'WEDDINGS',\n  Events = 'EVENTS',\n}\n\n// type ValidRoutes = keyof typeof Routes;\n\n@Component({\n  selector: 'app-signup',\n  templateUrl: './signup.page.html',\n  styleUrls: ['./signup.page.scss'],\n  standalone: true,\n  imports: [\n    NgIf,\n    FormsModule,\n    ReactiveFormsModule,\n    ButtonComponent,\n    FormInputComponent,\n    SplitLayoutComponent,\n    TermsPolicyModalsComponent,\n    IonItem,\n    IonContent,\n    FormControlCastPipe,\n    TranslatePipe,\n  ],\n})\nexport class SignupPage implements OnInit, OnDestroy {\n  routeId = (this.route.snapshot.paramMap.get('id') || '').toUpperCase();\n  signupForm = this.formBuilder.group({\n    username: ['', [Validators.required, UsernameValidator.isValid]],\n    email: ['', [Validators.required, Validators.email]],\n    password: ['', [Validators.required, PasswordValidator.isValid]],\n    token: [''],\n  });\n  loading = false;\n  error: string;\n  showingTokenInput = false;\n  usernameRequirements = UsernameValidator.patternDesc;\n  passwordRequirements = PasswordValidator.patternDesc;\n\n  backgroundUrl: string;\n  backgroundPosition = 'center';\n  sideBlocks: SideBlock[] = [];\n  returnUrl = DEFAULT_RETURN_URL;\n\n  get signupPageReturnUrl() {\n    return this.returnUrl && this.returnUrl.length > 0 && this.returnUrl !== DEFAULT_RETURN_URL ? this.returnUrl : '';\n  }\n\n  private tokenId: string;\n  private onDestroy$ = new Subject<void>();\n\n  constructor(\n    private formBuilder: UntypedFormBuilder,\n    private store: Store,\n    private userService: UserService,\n    private loadingCtrl: LoadingController,\n    private tokensService: TokensService,\n    private analyticsService: AnalyticsService,\n    private translate: TranslateService,\n    private route: ActivatedRoute,\n    private router: Router\n  ) {}\n\n  ngOnInit() {\n    this.route.queryParams.pipe(takeUntil(this.onDestroy$)).subscribe((params) => {\n      if (params?.returnUrl) {\n        this.returnUrl = params.returnUrl;\n        console.log(`[Signup] queryParams returnUrl:`, this.returnUrl);\n      } else if (this.router.getCurrentNavigation()?.extras?.state) {\n        this.returnUrl = this.router.getCurrentNavigation().extras.state.returnUrl || DEFAULT_RETURN_URL;\n        console.log(`[Signup] navState returnUrl:`, this.returnUrl);\n      }\n      if (params && params[TOKEN_QUERY_PARAM]) {\n        this.tokenId = params[TOKEN_QUERY_PARAM];\n      }\n    });\n\n    // distinctUntilChanged(),takeUntil(this.onDestroy$), // taking (1) instead of takeUntil\n    this.tokensService.tokenId$.pipe(filter(Boolean), take(1)).subscribe((tokenId: string) => {\n      // DEBUG_LOGS && console.log(`[Signup] tokenId$: '${tokenId}'`)\n      this.signupForm.patchValue({\n        token: tokenId,\n      });\n      this.showingTokenInput = true;\n      this.tokenId = tokenId;\n    });\n\n    /**\n     * if there's a tokenId & loggedIn - send to accept token page\n     * Wait for Auth to be set,\n     * then nav away if already loggedIn\n     * but save the Token & apply if found.\n     */\n    setTimeout(() => {\n      combineLatest([this.userService.isLoggedIn$, this.tokensService.tokenId$])\n        .pipe(take(1))\n        .subscribe(([isLoggedIn, tokenId]) => {\n          DEBUG_LOGS && console.log(`[Signup] result$:`, [isLoggedIn, tokenId]);\n\n          if (isLoggedIn) {\n            if (tokenId) {\n              // apply the token & toast success\n              this.tokensService.applyTokenToCurrentUser({ tokenId });\n              this.analyticsService.signUpFromInvite();\n            }\n            this.router.navigate([this.returnUrl ? this.returnUrl : DEFAULT_RETURN_URL], {\n              queryParams: {\n                [TOKEN_QUERY_PARAM]: null,\n                returnUrl: null,\n              },\n              queryParamsHandling: 'merge',\n            });\n          }\n        });\n    }, 1200);\n\n    switch (this.routeId) {\n      case Routes.Pro: {\n        this.backgroundUrl = '/assets/images/split-pane/fs-layout-2@2.jpg';\n        this.sideBlocks = this.buildSideBlocks(this.routeId);\n        if (!this.returnUrl || this.returnUrl === DEFAULT_RETURN_URL) {\n          this.returnUrl = SIGNUP_RETURN_URL_PRO;\n        }\n        break;\n      }\n      // case Routes.Teams: {\n      //   this.backgroundUrl = '/assets/images/split-pane/fs-layout-4@2.jpg';\n      //   this.sideBlocks = this.buildSideBlocks(this.routeId);\n      //   if (!this.returnUrl || this.returnUrl === DEFAULT_RETURN_URL) {\n      //     this.returnUrl = SIGNUP_RETURN_URL_EVENTS;\n      //   }\n      //   break;\n      // }\n      case Routes.Events: {\n        this.backgroundUrl = '/assets/images/split-pane/fs-layout-8@2.jpg';\n        this.sideBlocks = this.buildSideBlocks(this.routeId);\n        if (!this.returnUrl || this.returnUrl === DEFAULT_RETURN_URL) {\n          this.returnUrl = SIGNUP_RETURN_URL_EVENTS;\n        }\n        break;\n      }\n      case Routes.Weddings: {\n        this.backgroundUrl = '/assets/images/events/weddings-hands@2.jpg';\n        this.sideBlocks = this.buildSideBlocks(this.routeId);\n        if (!this.returnUrl || this.returnUrl === DEFAULT_RETURN_URL) {\n          this.returnUrl = SIGNUP_RETURN_URL_WEDDINGS;\n        }\n        break;\n      }\n      case Routes.Free: {\n        this.backgroundUrl = '/assets/images/split-pane/fs-layout-3@2.jpg'; // camera, position bottom-right\n        this.backgroundPosition = 'bottom right';\n        this.sideBlocks = this.buildSideBlocks(this.routeId);\n        if (!this.returnUrl) {\n          this.returnUrl = DEFAULT_RETURN_URL;\n        }\n        break;\n      }\n      default: {\n        // console.log(`[Signup] routeId: '${this.routeId}'`) // UNHANDLED\n        this.backgroundUrl = '/assets/images/split-pane/fs-layout-1@2.jpg';\n        this.sideBlocks = this.buildSideBlocks('');\n        if (!this.returnUrl) {\n          this.returnUrl = DEFAULT_RETURN_URL;\n        }\n      }\n    }\n    // await translations to be set\n    setTimeout(() => {\n      this.usernameRequirements = UsernameValidator.patternDesc;\n      this.passwordRequirements = PasswordValidator.patternDesc;\n    }, 1200);\n  }\n\n  ngOnDestroy() {\n    this.onDestroy$.next();\n    this.onDestroy$.complete();\n  }\n\n  get isKnownRouteId(): boolean {\n    return Object.values(Routes).includes(this.routeId as Routes);\n  }\n\n  get isBusy(): boolean {\n    return this.loading || this.signupForm.invalid;\n  }\n\n  onUsernameChange() {\n    this.error = '';\n  }\n\n  async signup() {\n    this.loading = true;\n    const loader = await this.loadingCtrl.create({\n      message: this.translate.instant('COMMON.PLEASE_WAIT'),\n    });\n    await loader.present();\n\n    const { username: usernameInput, email, password, token } = this.signupForm.value;\n    this.error = null;\n    try {\n      const username = usernameInput.toLowerCase();\n      const tokenId = token || this.tokenId;\n      await this.userService.register(username, password, { email });\n      const queryParams = { username };\n      if (this.returnUrl !== DEFAULT_RETURN_URL) {\n        queryParams['returnUrl'] = this.returnUrl;\n      }\n      if (tokenId) {\n        queryParams[TOKEN_QUERY_PARAM] = tokenId;\n        this.analyticsService.signUpFromInvite();\n      } else {\n        this.analyticsService.signUp(AuthMethod.Email);\n      }\n      this.router.navigate([`/${CONFIRM_AUTH_PAGE}`], { queryParams });\n    } catch (err) {\n      if (err.name === 'UsernameExistsException') {\n        this.signupForm.controls['username'].setErrors({ usernameExists: true });\n      }\n      this.error = err.message;\n    }\n    loader.dismiss();\n    this.loading = false;\n  }\n\n  /**\n   * take the translateDepth and add if they exist\n   * @param root root prop(s)\n   * @param path inner path (free, pro, teams, events )\n   * @param max the most you want, if they exist\n   * @returns SideBlock[]\n   *\n   *\n   */\n  buildSideBlocks(path = '', root = 'AUTH.SIGNUP', max = 3): SideBlock[] {\n    const rootPath = `${root}${path ? '.' + path : ''}`;\n    const ret: SideBlock[] = [];\n\n    for (let index = 0; index < max; index++) {\n      // root index items do not have _#\n      const level = index > 0 ? `_${index + 1}` : ``;\n\n      // playing around with observables for live reload...\n      // const translations = forkJoin([\n      //   this.translate.get(`${rootPath}.SIDE_TITLE${level}`),\n      //   this.translate.get(`${rootPath}.SIDE_SUBTITLE${level}`),\n      //   this.translate.get(`${rootPath}.SIDE_DESCRIPTION${level}`)\n      // ]);\n      // translations.pipe(take(1)).subscribe((data) => {\n      //   //=> ['Content.Id1', 'Content.Id2'];\n      //   console.log(data)\n      // });\n\n      const titlePath = `${rootPath}.SIDE_TITLE${level}`,\n        subtitlePath = `${rootPath}.SIDE_SUBTITLE${level}`,\n        descriptionPath = `${rootPath}.SIDE_DESCRIPTION${level}`;\n\n      const title = this.translate.instant(titlePath),\n        subtitle = this.translate.instant(subtitlePath),\n        description = this.translate.instant(descriptionPath);\n      const block = {\n        ...(title && title !== titlePath && { title }),\n        ...(subtitle && subtitle !== subtitlePath && { subtitle }),\n        ...(description && description !== descriptionPath && { description }),\n      };\n      // console.log(`buildSideBlocks:`, block)\n\n      if (block) {\n        ret.push(block);\n      } else {\n        break;\n      }\n    }\n    return ret;\n  }\n}\n"],"x_google_ignoreList":[]}