{"version":3,"file":"qorpo-authentification.mjs","sources":["../../../../projects/qorpo/authentification/src/lib/lib-config.ts","../../../../projects/qorpo/authentification/src/lib/authentification.service.ts","../../../../projects/qorpo/authentification/src/lib/authentification.component.ts","../../../../projects/qorpo/authentification/src/lib/endpoints/endpoints.config.ts","../../../../projects/qorpo/authentification/src/lib/services/recaptcha.service.ts","../../../../projects/qorpo/authentification/src/lib/services/auth-routing.service.ts","../../../../projects/qorpo/authentification/src/lib/directives/isFocused.directive.ts","../../../../projects/qorpo/authentification/src/lib/components/forgot-password/forgot-password.component.ts","../../../../projects/qorpo/authentification/src/lib/components/forgot-password/forgot-password.component.html","../../../../projects/qorpo/authentification/src/lib/validators/password-match-validator.ts","../../../../projects/qorpo/authentification/src/lib/validators/password-strength-validator.ts","../../../../projects/qorpo/authentification/src/lib/files/animations.ts","../../../../projects/qorpo/authentification/src/lib/components/form-components/form-checkbox-input/form-checkbox-input.component.ts","../../../../projects/qorpo/authentification/src/lib/components/form-components/form-checkbox-input/form-checkbox-input.component.html","../../../../projects/qorpo/authentification/src/lib/components/form-components/email-registration-form/email-registration-form.component.ts","../../../../projects/qorpo/authentification/src/lib/components/form-components/email-registration-form/email-registration-form.component.html","../../../../projects/qorpo/authentification/src/lib/components/form-components/login-form/login-form.component.ts","../../../../projects/qorpo/authentification/src/lib/components/form-components/login-form/login-form.component.html","../../../../projects/qorpo/authentification/src/lib/components/form-components/reset-password-form/reset-password-form.component.ts","../../../../projects/qorpo/authentification/src/lib/components/form-components/reset-password-form/reset-password-form.component.html","../../../../projects/qorpo/authentification/src/lib/components/form-components/simple-registration-form/simple-registration-form.component.ts","../../../../projects/qorpo/authentification/src/lib/components/form-components/simple-registration-form/simple-registration-form.component.html","../../../../projects/qorpo/authentification/src/lib/components/loading/loading.component.ts","../../../../projects/qorpo/authentification/src/lib/components/loading/loading.component.html","../../../../projects/qorpo/authentification/src/lib/components/social-logins/base-login-provider.ts","../../../../projects/qorpo/authentification/src/lib/services/auth-storage-management.service.ts","../../../../projects/qorpo/authentification/src/lib/components/social-logins/twitter-login-provider.ts","../../../../projects/qorpo/authentification/src/lib/enums/auth-actions-list.enum.ts","../../../../projects/qorpo/authentification/src/lib/models/methods.ts","../../../../projects/qorpo/authentification/src/lib/models/social-user.ts","../../../../projects/qorpo/authentification/src/lib/components/social-logins/facebook-login-provider.ts","../../../../projects/qorpo/authentification/src/lib/components/social-logins/google-login-provider.ts","../../../../projects/qorpo/authentification/src/lib/services/auth.service.ts","../../../../projects/qorpo/authentification/src/lib/components/social-logins/social-auth.service.ts","../../../../projects/qorpo/authentification/src/lib/components/ue-succ-modal/ue-succ-modal.component.ts","../../../../projects/qorpo/authentification/src/lib/components/ue-succ-modal/ue-succ-modal.component.html","../../../../projects/qorpo/authentification/src/lib/components/login/login.component.ts","../../../../projects/qorpo/authentification/src/lib/components/login/login.component.html","../../../../projects/qorpo/authentification/src/lib/components/register/register.component.ts","../../../../projects/qorpo/authentification/src/lib/components/register/register.component.html","../../../../projects/qorpo/authentification/src/lib/components/reset-password/reset-password.component.ts","../../../../projects/qorpo/authentification/src/lib/components/reset-password/reset-password.component.html","../../../../projects/qorpo/authentification/src/lib/components/social-logins/twitter-callback/twitter-callback.component.ts","../../../../projects/qorpo/authentification/src/lib/components/social-logins/twitter-callback/twitter-callback.component.html","../../../../projects/qorpo/authentification/src/lib/components/verify-registration/verify-registration.component.ts","../../../../projects/qorpo/authentification/src/lib/components/verify-registration/verify-registration.component.html","../../../../projects/qorpo/authentification/src/lib/authentification.module.ts","../../../../projects/qorpo/authentification/src/lib/interceptors/jwt.interceptor.ts","../../../../projects/qorpo/authentification/src/lib/validators/unique-credentials-validator.ts","../../../../projects/qorpo/authentification/src/public-api.ts","../../../../projects/qorpo/authentification/src/qorpo-authentification.ts"],"sourcesContent":["export class AuthLibConfig {\n  loginRedirectRoute = '/qorpo-id/dashboard';\n  registerRedirectRoute = '/qorpo-id/auth/registration-complete';\n  logoutRedirectRoute = '/login';\n  themeType: 'qid' | 'qmarket' = 'qid';\n  twitterCallback: string;\n  tosFilePath = '/assets/docs/qorpoid-TOS.pdf';\n  privacyPolicyFilePath = '/assets/docs/qorpoid-privacy-policy.pdf';\n  storageKeys = {\n    id_token: 'q_idToken',\n    access_token: 'q_accesToken',\n    refresh_token: 'q_refreshToken',\n    identity_key: 'q_authUser',\n    chain_id_key: 'chain_id',\n    meta_signature_backup_key: 'meta_signature_backup',\n    meta_signature_key: 'meta_signature',\n    ref_count_key: 'ref_count',\n    email_key: 'email',\n    twitter_challenge_key: 'twitter_challenge',\n    saved_login_mfa_key: 'saved_login_mfa',\n    saved_recovery_code: 'saved_recovery_code',\n    ue_token_key: 'ue_token',\n    social_login_method: 'social_login_method',\n    is_admin_key: 'is_admin',\n    is_register_from_campaign: 'is_register_from_campaign',\n    user_referal: 'user_referal'\n  };\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AuthentificationService {\n\n  constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'lib-authentification',\n  template: `\n    <p>\n      authentification works!\n    </p>\n  `,\n  styles: [\n  ]\n})\nexport class AuthentificationComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","\nconst ROOT_EP_STRING = '/api/v1';\n\nexport function getEndpointName(endpointPath: string): string {\n  return ROOT_EP_STRING + endpointPath;\n}\n\nexport const EP_LIST = {\n  USER_MANAGEMENT: {\n    ME: '/me'\n  },\n  AUTH: {\n    ISSUE_TOKEN: '/auth/issue-token',\n    CONFIRM_ACTIVATION_CODE: '/auth/confirm-activation-code',\n    RESEND_ACTIVATION_CODE: '/auth/resend-activation-code',\n    REFRESH_TOKEN: '/auth/refresh-token',\n    REVOKE_TOKEN: '/auth/revoke-token',\n    REGISTER: '/auth/register',\n    RESET_PASSWORD: '/auth/reset-password',\n    SEND_RESET_PASSWORD_CODE: '/auth/send-reset-password-code',\n  },\n  TWITTER_AUTH: {\n    AUTHORIZE: '/twitter/authorize'\n  },\n  UE_AUTH: {\n    AUTHORIZE: '/ueauth/authorize'\n  },\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class RecaptchaService {\n\n  recaptchaId = '6LfH0kseAAAAAP_tCY0oLTZZSfgJrLebMPtVcr50';\n  recaptchaActions = {\n    login: 'issue_token',\n    register: 'register',\n    activation: 'confirm_activation_code',\n    resend_activation: 'resend_activation_code',\n    reset_password: 'reset_password',\n    reset_password_confirmation: 'send_reset_password_confirmation_code',\n  };\n\n  constructor() { }\n}\n","\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AuthRoutingService {\n\n  routingAction$: Subject<{key: string, param?: any, path?: string}> = new Subject<{key: string, param?: any, path?: string}>();\n\n  constructor() { }\n\n  goToLogin() {\n    this.routingAction$.next({ key: 'auth_redirect_login' });\n  }\n\n  goToRegister() {\n    this.routingAction$.next({ key: 'auth_redirect_register' });\n  }\n\n  goToHomepage() {\n    this.routingAction$.next({ key: 'auth_redirect_home' });\n  }\n\n  goToForgotPassword() {\n    this.routingAction$.next({ key: 'auth_redirect_forgot_password' });\n  }\n\n  goToVerification() {\n    this.routingAction$.next({ key: 'auth_redirect_verification' });\n  }\n\n  goToResetPassword() {\n    this.routingAction$.next({ key: 'auth_redirect_reset_password' });\n  }\n\n  goToCustom(key: string, data?: { param?: any, path?: string }) {\n    let dataObj = { key: key, param: null, path: null };\n    if (data?.param) {\n      dataObj.param = data?.param;\n    }\n    if (data?.path) {\n      dataObj.path = data?.path;\n    }\n    this.routingAction$.next(dataObj);\n\n  }\n\n}\n","import { Directive, ElementRef, HostListener, Output } from '@angular/core';\n\n@Directive({\n  selector: '[isFocused]',\n})\nexport class IsFocusedDirective {\n  constructor(private el: ElementRef) {}\n\n  @HostListener('focus', ['$event'])\n  focusListener() {\n    this.el.nativeElement.dataset.isFocused = 'true';\n  }\n\n  @HostListener('blur', ['$event'])\n  blurListener() {\n    this.el.nativeElement.dataset.isFocused = 'false';\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { RecaptchaService } from '../../services/recaptcha.service';\nimport { HttpRequestMethod, HttpRequestParamType, RequestCallsService } from '@qorpo/common';\nimport { Router } from '@angular/router';\n\nimport {\n  Validators,\n  FormBuilder,\n} from '@angular/forms';\nimport { catchError, finalize, of } from 'rxjs';\nimport { AuthLibConfig } from '../../lib-config';\nimport { AuthRoutingService } from '../../services/auth-routing.service';\nimport { EP_LIST, getEndpointName } from '../../endpoints/endpoints.config';\n\ndeclare let grecaptcha: any;\n\n@Component({\n  selector: 'app-forgot-password',\n  templateUrl: './forgot-password.component.html',\n  styleUrls: ['./forgot-password.component.scss'],\n})\nexport class ForgotPasswordComponent implements OnInit {\n  loading = false;\n  form = this.fb.group({\n    email: ['', [Validators.required, Validators.email]],\n  });\n\n  theme: 'qid' | 'qmarket';\n\n  constructor(\n    private router: Router,\n    private request: RequestCallsService,\n    private recaptcha: RecaptchaService,\n    private fb: FormBuilder,\n    private readonly libConfig: AuthLibConfig,\n    public routing: AuthRoutingService\n  ) {\n    this.theme = libConfig.themeType;\n  }\n\n  ngOnInit(): void {}\n\n  requestResetCode() {\n    this.loading = true;\n    grecaptcha.enterprise\n      .execute(this.recaptcha.recaptchaId, {\n        action: this.recaptcha.recaptchaActions.reset_password,\n      })\n      .then((token) => {\n        this.requestCode(token);\n      });\n  }\n\n  requestCode(token) {\n    let data = {\n      email: this.emailField.value.toLowerCase(),\n      'g-recaptcha-token': token,\n    };\n\n    this.request\n      .callHttpRequest(getEndpointName(EP_LIST.AUTH.SEND_RESET_PASSWORD_CODE), {\n        method: HttpRequestMethod.POST_METHOD,\n        params: [{value: data, type: HttpRequestParamType.BODY_PARAM}],\n      }).pipe(\n        catchError((error) => {\n          this.loading = false;\n          return of(error);\n        }),\n        finalize(() => {\n          this.routing.goToCustom('auth_redirect_reset_password', { path: this.emailField.value.toLowerCase() });\n        })\n      )\n      .subscribe();\n  }\n\n  counter(i): Array<any> {\n    return new Array(i);\n  }\n  get emailField() {\n    return this.form.controls['email'];\n  }\n}\n","<div class=\"auth-body\" [ngClass]=\"theme\">\n  <div class=\"center-content\">\n    <svg\n      *ngIf=\"theme === 'qid' else marketLogo\"\n      (click)=\"routing.goToHomepage()\"\n      class=\"product-logo\"\n      width=\"329\"\n      height=\"79\"\n      viewBox=\"0 0 329 79\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      >\n      <path\n      d=\"M236.994 71.7466H249.177L264.32 0H252.138L236.994 71.7466Z\"\n      fill=\"#5C2BFF\"\n      />\n      <path\n      d=\"M254.751 71.7466H284.809C289.212 71.7466 293.728 70.8267 298.358 68.9871C303.064 67.1474 307.429 64.6179 311.452 61.3985C315.475 58.1791 318.966 54.4231 321.927 50.1306C324.887 45.7614 326.899 41.0856 327.961 36.1032C329.024 31.1208 329.062 26.445 328.075 22.0759C327.164 17.7067 325.418 13.8741 322.838 10.578C320.333 7.28197 317.107 4.71411 313.16 2.87446C309.213 0.958153 304.734 0 299.724 0H269.894L254.751 71.7466ZM297.333 11.9578C300.521 11.9578 303.406 12.6093 305.987 13.9124C308.567 15.2155 310.693 17.0168 312.363 19.3164C314.109 21.5393 315.323 24.1071 316.006 27.0199C316.689 29.9327 316.689 32.9988 316.006 36.2182C315.323 39.4376 313.995 42.4654 312.021 45.3015C310.048 48.1376 307.695 50.6672 304.962 52.8901C302.229 55.0364 299.307 56.761 296.195 58.0641C293.083 59.2906 290.047 59.9038 287.086 59.9038H269.438L279.572 11.9578H297.333Z\"\n      fill=\"#5C2BFF\"\n      />\n      <path\n      d=\"M105.466 20.4625C104.702 19.6138 103.939 18.7651 103.09 17.9164C97.5734 12.7394 90.1049 9.5144 81.8726 9.5144C72.8765 9.5144 64.7291 13.4184 59.0429 19.6138C58.279 20.4625 57.5152 21.3961 56.8363 22.3296C53.3566 27.1672 51.15 32.9383 50.8954 39.3034C50.8954 39.7278 50.9803 40.1521 50.9803 40.6613C50.9803 41.0857 50.9803 41.5949 50.8954 42.0192C50.7257 44.8199 49.9619 47.366 48.6888 49.7423C46.9915 52.9673 44.3605 55.6832 41.1355 57.4654V70.3655C46.3974 68.6681 51.0652 65.6977 54.6297 61.7088C55.3935 60.8602 56.1573 59.9266 56.8363 58.993C60.3159 54.1555 62.5225 48.3844 62.7771 42.0192C62.7771 41.5949 62.6922 41.0857 62.6922 40.6613C62.6922 40.237 62.6922 39.7278 62.7771 39.3034C62.9468 36.5028 63.7106 33.8718 64.9837 31.5803C68.2087 25.5546 74.5739 21.4809 81.8726 21.4809C88.6621 21.4809 94.603 24.9606 97.9977 30.3073C99.9497 33.2777 101.053 36.8422 101.053 40.6613C101.053 42.6133 100.714 44.5653 100.204 46.3476C97.7431 54.1555 90.4444 59.8417 81.8726 59.8417C74.5739 59.8417 68.2087 55.768 64.9837 49.7423C63.7955 54.1555 61.7587 58.1444 59.0429 61.7088C64.7291 67.9043 72.8765 71.7234 81.8726 71.7234C90.699 71.7234 98.6767 67.9892 104.363 62.1332C105.551 60.945 106.57 59.5871 107.503 58.2292C107.758 57.8049 108.097 57.3805 108.352 56.9562C108.946 55.9377 109.54 54.9193 109.964 53.9009C111.831 49.9121 112.85 45.414 112.85 40.7462C112.935 32.9383 110.134 25.8941 105.466 20.4625Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M31.7149 48.9785C28.405 48.9785 25.7741 51.6094 25.7741 54.9193V55.2588V58.9082C24.5859 58.4838 23.4826 58.0595 22.3793 57.3805C16.5233 54.0706 12.5345 47.7903 12.5345 40.6613C12.5345 30.0527 21.1063 21.4809 31.7149 21.4809C39.0136 21.4809 45.3788 25.5547 48.6038 31.5804C49.792 27.1672 51.8288 23.1783 54.5447 19.6138C48.8584 13.4184 40.711 9.5144 31.7149 9.5144C14.5713 9.5144 0.652832 23.4329 0.652832 40.5765C0.652832 54.4101 9.81868 66.2069 22.3793 70.1958C23.4826 70.5352 24.5859 70.8747 25.7741 71.0444V72.5721C25.7741 73.251 25.8589 73.93 26.1135 74.6089C26.9622 76.9004 29.084 78.5129 31.7149 78.5129C34.3458 78.5129 36.4676 76.9004 37.3163 74.6089C37.5709 74.0149 37.6557 73.3359 37.6557 72.5721V71.0444V58.9082V55.2588V54.9193C37.6557 51.6094 35.0248 48.9785 31.7149 48.9785Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M149.598 61.7937C151.55 64.0003 151.635 67.2253 149.853 69.4319C149.428 68.4135 149.259 67.3102 149.259 66.122V61.3694C149.343 61.5391 149.513 61.7089 149.598 61.7937Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M203.235 29.7981C203.066 28.9494 202.896 28.1007 202.556 27.252C202.302 26.4033 202.047 25.6395 201.623 24.7908C200.944 23.1783 200.095 21.6507 199.162 20.2928C199.077 20.2079 199.077 20.123 198.992 20.0382C198.398 19.1895 197.719 18.3408 196.955 17.577C196.87 17.4921 196.87 17.4921 196.785 17.4072C192.202 12.5697 185.667 9.5144 178.454 9.5144C174.55 9.5144 170.9 10.3631 167.675 11.9756C166.657 12.4848 165.723 12.994 164.79 13.5881L164.705 13.673C159.782 16.898 155.963 21.9901 154.351 27.931C153.757 30.0527 153.417 32.3442 153.417 34.6356V47.7055V66.122C153.417 67.3951 153.842 68.5832 154.521 69.6017C155.624 71.1293 157.321 72.0629 159.358 72.0629C162.668 72.0629 165.299 69.4319 165.299 66.122V59.672V55.9377C166.317 56.6167 167.421 57.1259 168.524 57.6351C171.579 58.993 174.974 59.7569 178.538 59.7569C183.291 59.7569 187.789 58.3989 191.523 56.1075C191.608 56.1075 191.693 56.0226 191.693 56.0226C192.627 55.4285 193.475 54.8345 194.324 54.1555C194.409 54.0706 194.409 54.0706 194.494 53.9858C197.634 51.3548 200.18 47.9601 201.708 44.141C201.793 43.8864 201.877 43.6317 202.047 43.3771C202.217 43.0377 202.302 42.6982 202.387 42.2738C202.641 41.5949 202.811 40.8311 202.981 40.1521C203.066 39.8126 203.15 39.3883 203.235 39.0488C203.32 38.3699 203.49 37.6909 203.49 37.012C203.575 36.2481 203.575 35.4843 203.575 34.6356C203.745 33.0231 203.575 31.3257 203.235 29.7981ZM191.523 37.2666C191.014 39.6429 189.911 41.8495 188.298 43.5469C188.214 43.6317 188.129 43.7166 188.044 43.8015C187.619 44.3107 187.11 44.735 186.601 45.0745C186.092 45.4989 185.583 45.8383 185.073 46.0929C183.206 47.1114 181 47.7903 178.708 47.7903C174.719 47.7903 171.155 46.0081 168.694 43.2074C166.742 40.9159 165.469 37.9455 165.469 34.6356C165.469 31.3257 166.657 28.3553 168.694 26.0639C171.07 23.2632 174.719 21.4809 178.708 21.4809C181.169 21.4809 183.461 22.1599 185.413 23.3481C187.45 24.5362 189.062 26.3185 190.166 28.3553C190.25 28.4402 190.25 28.6099 190.335 28.6948C191.269 30.4771 191.778 32.5139 191.778 34.6356C191.778 34.9751 191.778 35.2297 191.778 35.5692C191.778 35.8238 191.693 36.0784 191.693 36.333C191.693 36.333 191.693 36.333 191.693 36.4179C191.608 36.7574 191.608 37.012 191.523 37.2666Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M126.089 21.4809C133.388 21.4809 139.244 27.3368 139.244 34.6356C139.244 39.7277 136.274 44.2258 132.03 46.3475C135.51 47.6205 139.668 49.4876 143.827 52.2883C146.119 49.9969 147.986 47.1962 149.259 44.2258C149.683 43.2922 150.022 42.2738 150.277 41.3402C150.871 39.2185 151.211 37.0119 151.211 34.7204C151.211 32.429 150.871 30.1375 150.277 28.0158C150.022 26.9974 149.683 26.0638 149.259 25.1302C145.524 16.0493 136.528 9.68408 126.174 9.68408C118.876 9.68408 112.256 12.8242 107.673 17.8315C110.558 21.0565 112.85 24.7908 114.293 28.9493C116.414 24.5362 120.912 21.4809 126.089 21.4809Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M149.174 61.3692C147.561 59.5869 145.779 57.9744 143.997 56.6165C143.063 55.8527 142.045 55.1737 141.111 54.5797C134.152 49.9967 127.193 48.2145 124.222 47.6204C124.222 47.6204 124.222 47.6204 124.137 47.6204C123.713 47.5355 123.374 47.4507 123.119 47.4507C123.034 47.4507 123.034 47.4507 123.034 47.4507C121.082 47.0263 119.385 46.0928 117.857 44.9046C117.263 44.4803 116.754 43.8862 116.245 43.377C116.16 44.3105 116.075 45.3289 115.905 46.2625C115.396 49.5724 114.377 52.7125 112.935 55.683C112.935 55.7678 112.85 55.8527 112.85 55.9376C112.935 56.0224 113.02 56.0224 113.104 56.1073C113.444 56.277 113.699 56.4468 114.038 56.6165C115.566 57.4652 117.263 58.229 119.045 58.7382C119.554 58.908 120.149 59.0777 120.658 59.1626C120.828 59.2475 120.997 59.2475 121.167 59.2475C121.167 59.2475 121.337 59.2475 121.506 59.3323C121.591 59.3323 121.591 59.3323 121.676 59.3323C121.846 59.4172 122.016 59.4172 122.185 59.4172C123.883 59.7567 127.362 60.6902 131.351 62.6422C134.576 64.2547 137.971 66.5462 140.857 69.7712C142.045 71.0443 143.657 71.7232 145.27 71.7232C146.713 71.7232 148.07 71.214 149.259 70.1956C149.513 69.941 149.768 69.6863 149.938 69.4317C151.72 67.2251 151.72 64.0001 149.683 61.7935C149.513 61.7087 149.344 61.5389 149.174 61.3692Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M112.935 59.8416C111.831 59.8416 110.813 60.0962 109.879 60.6054C108.606 61.3692 107.673 62.4725 107.248 63.8304C107.079 64.4245 106.909 65.0186 106.909 65.6975C106.909 69.0074 109.54 71.6383 112.85 71.6383C116.16 71.6383 118.791 69.0074 118.791 65.6975C118.791 64.085 118.112 62.6422 117.093 61.5389C116.075 60.5205 114.632 59.8416 112.935 59.8416Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M222.5 9.5144C214.438 9.5144 207.054 12.5697 201.538 17.6618C201.538 17.7467 201.623 17.7467 201.707 17.8316C204.253 21.2263 205.951 25.3 206.715 29.6284C210.194 24.6211 215.965 21.3112 222.5 21.3112C233.109 21.3112 241.681 29.883 241.681 40.4916C241.681 51.1002 233.109 59.672 222.5 59.672C214.098 59.672 206.969 54.3252 204.423 46.7719C202.556 50.6759 199.755 54.1555 196.361 56.8713C196.276 56.8713 196.276 56.9562 196.191 56.9562C201.707 65.6977 211.467 71.5537 222.5 71.5537C239.644 71.5537 253.562 57.6351 253.562 40.4916C253.562 23.4329 239.559 9.5144 222.5 9.5144Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M77.4592 32.8533V48.2146L90.7837 40.5764L77.4592 32.8533Z\"\n      fill=\"white\"\n      />\n    </svg>\n    <ng-template #marketLogo>\n      <img\n        (click)=\"routing.goToHomepage()\"\n        class=\"logo\"\n        src=\"/assets/images/logos/qorpo-market-logo.svg\"\n        alt=\"Qorpo Market logo\"\n      />\n    </ng-template>\n\n    <p class=\"main-heading f-s-32\">Forgot password</p>\n    <p class=\"main-desc disclaimer f-s-16\">\n      Fill in the email you used to create your account and we will send you a\n      recovery code so you can create a new password.\n    </p>\n\n    <div class=\"form-holder\">\n      <!--Forgot password form-->\n      <form [formGroup]=\"form\">\n        <!--Email input-->\n        <div class=\"input-row\">\n          <label class=\"f-s-16\" for=\"email\">Email</label>\n          <div class=\"input-holder\">\n            <input\n              class=\"common-height\"\n              #emailInput\n              type=\"email\"\n              id=\"email\"\n              formControlName=\"email\"\n              placeholder=\"Enter your Email\"\n              autofocus\n              isFocused\n            />\n            <!--Errors here-->\n            <ng-container\n              *ngIf=\"\n                emailField.errors?.email &&\n                emailField.dirty &&\n                emailField.touched &&\n                emailInput.dataset.isFocused === 'true'\n              \"\n            >\n              <div class=\"error-holder common-height\" @opacityIfTransition>\n                <p class=\"f-s-16\">Please enter a valid e-mail.</p>\n              </div>\n            </ng-container>\n          </div>\n        </div>\n      </form>\n\n      <button\n        (click)=\"requestResetCode()\"\n        class=\"my-cta-btn f-s-16 common-height\"\n        [ngClass]=\"{ disabled: !form.valid }\"\n      >\n        <ng-container *ngIf=\"!loading; else loadingBtn\">Confirm</ng-container>\n        <ng-template #loadingBtn>\n          Loading\n          <ng-container *ngFor=\"let item of counter(3); let i = index\">\n            <span class=\"loading-dot\" [attr.data-index]=\"i\">.</span>\n          </ng-container>\n        </ng-template>\n      </button>\n    </div>\n    <p class=\"disclaimer spaced f-s-16\">\n      Back to\n      <a (click)=\"routing.goToHomepage()\">QORPO Homepage</a>\n    </p>\n  </div>\n</div>\n","import { FormGroup, ValidatorFn, Validators } from '@angular/forms';\n\nexport function createPasswordMatchValidator(passKey: string, repeatPassKey: string): ValidatorFn {\n  return (form: FormGroup): Validators | null => {\n    const password = form.get(passKey);\n    const repeatPassword = form.get(repeatPassKey);\n\n    if (!password || !repeatPassword || password.value?.length === 0) {\n      return null;\n    }\n\n    const passwordsMatching = password.value === repeatPassword.value;\n\n    return passwordsMatching ? null : { passwordMatch: true };\n  };\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nlet REQUIRED_LENGTH = 8;\n\nexport function createPasswordStrengthValidator(): ValidatorFn {\n  return (password: AbstractControl): ValidationErrors | null => {\n    const passValue = password.value;\n\n    if (!passValue) return null;\n\n    const hasUppercase = /[A-Z]+/.test(passValue);\n    const hasLowercase = /[a-z]+/.test(passValue);\n    const hasNumericFields = /[0-9]+/.test(passValue);\n    const hasRequiredLength = passValue?.length >= REQUIRED_LENGTH;\n    const passwordValid =\n      hasUppercase && hasLowercase && hasNumericFields && hasRequiredLength;\n\n    if (!passwordValid) {\n      const errorObj = {\n        hasUppercase: !hasUppercase,\n        hasLowercase: !hasLowercase,\n        hasNumericFields: !hasNumericFields,\n        hasRequiredLength: !hasRequiredLength,\n      };\n      return errorObj;\n    }\n\n    return null;\n  };\n}\n","import {\n  animate,\n  style,\n  transition,\n  trigger,\n  state,\n  AUTO_STYLE,\n  query,\n  group,\n  animateChild\n} from '@angular/animations';\n\nexport let growInOut = trigger('growInOut', [\n  state(\n    'void',\n    style({\n      opacity: 0,\n      height: 0,\n      marginTop: 0,\n    })\n  ),\n  state(\n    '*',\n    style({\n      opacity: 1,\n      height: AUTO_STYLE,\n      marginTop: AUTO_STYLE,\n    })\n  ),\n  transition('* => void', animate('.3s ease')),\n  transition('void => *', animate('.3s .3s ease')),\n]);\n\nexport let fade = trigger('opacityIfTransition', [\n  transition(':enter', [\n    style({\n      opacity: 0,\n    }),\n    animate(\n      '.2s ease-in-out',\n      style({\n        opacity: 1,\n      })\n    ),\n  ]),\n  transition(':leave', [\n    style({\n      opacity: 1,\n    }),\n    animate(\n      '.15s ease-in-out',\n      style({\n        opacity: 0,\n      })\n    ),\n  ]),\n]);\n\nexport let growInOutNoDelay = trigger('growInOutNoDelay', [\n  state(\n    'void',\n    style({\n      opacity: 0,\n      height: 0,\n    })\n  ),\n  state(\n    '*',\n    style({\n      opacity: 1,\n      height: AUTO_STYLE,\n    })\n  ),\n  transition('* => *', animate('.3s ease')),\n]);\n","import { Component, OnInit } from '@angular/core';\nimport {\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR,\n} from '@angular/forms';\n\n@Component({\n  selector: 'form-checkbox-input',\n  templateUrl: './form-checkbox-input.component.html',\n  styleUrls: ['./form-checkbox-input.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      multi: true,\n      useExisting: FormCheckboxInputComponent,\n    },\n  ],\n})\nexport class FormCheckboxInputComponent implements ControlValueAccessor {\n  isChecked = false;\n  isDisabled = false;\n  isTouched = false;\n\n  onChange = (val) => {};\n  onTouched = () => {};\n\n  constructor() {}\n\n  registerOnChange(onChange: any): void {\n    this.onChange = onChange;\n  }\n\n  registerOnTouched(onTouched: any): void {\n    this.onTouched = onTouched;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n  }\n\n  writeValue(value: any): void {\n    this.isChecked = value;\n  }\n\n  toggleCheckbox(): void {\n    if (!this.isTouched) {\n      this.isTouched = true;\n      this.onTouched();\n    }\n    this.isChecked = !this.isChecked;\n    this.onChange(this.isChecked);\n  }\n}\n","<div class=\"input-holder\" (click)=\"toggleCheckbox()\">\n  <div class=\"rectangle\" [ngClass]=\"{ checked: isChecked }\">\n    <div class=\"inner\">\n      <svg viewBox=\"0 0 10 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n        <path\n          fill-rule=\"evenodd\"\n          clip-rule=\"evenodd\"\n          d=\"M9.65146 0.524274C10.0219 0.930177 10.0004 1.56634 9.60356 1.94518L3.98648 7.30694C3.6088 7.66745 3.02272 7.66745 2.64505 7.30694L0.398219 5.16224C0.00133614 4.78339 -0.0201128 4.14723 0.350311 3.74133C0.720735 3.33543 1.34276 3.31349 1.73964 3.69233L3.31576 5.19681L8.26213 0.475277C8.65902 0.0964339 9.28104 0.118372 9.65146 0.524274Z\"\n          fill=\"#FAFAFA\"\n        />\n      </svg>\n    </div>\n  </div>\n  <ng-content></ng-content>\n</div>\n","import { Component, Input } from '@angular/core';\nimport {\n  FormBuilder,\n  FormControl,\n  FormGroup,\n  Validators,\n} from '@angular/forms';\nimport { createPasswordMatchValidator } from '../../../validators/password-match-validator';\nimport { createPasswordStrengthValidator } from '../../../validators/password-strength-validator';\nimport { growInOut, fade } from '../../../files/animations';\nimport { CountryList } from '@qorpo/common';\nimport { AuthLibConfig } from '../../../lib-config';\n\n@Component({\n  selector: 'email-registration-form',\n  templateUrl: './email-registration-form.component.html',\n  styleUrls: ['./email-registration-form.component.scss'],\n  animations: [fade, growInOut],\n})\nexport class EmailRegistrationFormComponent {\n  @Input() countries: CountryList;\n  form: FormGroup = this.fb.group(\n    {\n      email: ['', [Validators.required, Validators.email]],\n      username: [\n        '',\n        [\n          Validators.required,\n          Validators.minLength(5),\n          Validators.maxLength(100),\n        ],\n      ],\n      country: [null, [Validators.required]],\n      password: ['', [Validators.required, createPasswordStrengthValidator()]],\n      repeatPassword: new FormControl('', {\n        validators: [Validators.required],\n        updateOn: 'blur',\n      }),\n      tosCheck: [false, [Validators.requiredTrue]],\n      promotionsCheck: [true],\n    },\n    {\n      validators: [createPasswordMatchValidator('password', 'repeatPassword')],\n    }\n  );\n\n  theme: 'qid' | 'qmarket';\n\n  constructor(\n    private fb: FormBuilder,\n    public readonly libConfig: AuthLibConfig,\n  ) {\n    this.theme = libConfig.themeType;\n  }\n\n  get emailField() {\n    return this.form.controls['email'];\n  }\n\n  get usernameField() {\n    return this.form.controls['username'];\n  }\n\n  get countryField() {\n    return this.form.controls['country'];\n  }\n\n  get passwordField() {\n    return this.form.controls['password'];\n  }\n\n  get repeatPasswordField() {\n    return this.form.controls['repeatPassword'];\n  }\n\n  get tosField() {\n    return this.form.controls['tos'];\n  }\n\n  get promotionsField() {\n    return this.form.controls['promotions'];\n  }\n  set emailErrors(value) {\n    this.emailField.setErrors(value);\n  }\n  set usernameErrors(value) {\n    this.usernameField.setErrors(value);\n  }\n}\n","<form [formGroup]=\"form\">\n  <h2 class=\"f-s-32 main-heading\">Create your account</h2>\n  <p class=\"f-s-16 disclaimer\">It's free and easy</p>\n  <!--Username Input-->\n  <div class=\"input-row\">\n    <label class=\"f-s-14\" for=\"username\">Nickname</label>\n    <div class=\"input-holder\">\n      <input\n        class=\"common-height\"\n        [ngClass]=\"{ 'direct-error': usernameField.errors?.nickUnique }\"\n        #usernameInput\n        type=\"text\"\n        id=\"username\"\n        formControlName=\"username\"\n        placeholder=\"Enter your Username\"\n        isFocused\n        autofocus\n      />\n      <!--Errors here-->\n      <ng-container\n        *ngIf=\"\n          (usernameField.errors?.minlength ||\n            usernameField.errors?.maxlength) &&\n          usernameField.touched &&\n          usernameField.dirty &&\n          usernameInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder\" [@opacityIfTransition]>\n          <p class=\"f-s-14\" *ngIf=\"usernameField.errors?.minlength\">\n            Minimum username length is 5 characters.\n          </p>\n          <p class=\"f-s-14\" *ngIf=\"usernameField.errors?.maxlength\">\n            Maximum username length is 100 characters.\n          </p>\n        </div>\n      </ng-container>\n      <ng-container\n        *ngIf=\"\n          usernameField.errors?.usernameError &&\n          usernameField.dirty &&\n          usernameField.touched &&\n          usernameInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" [@opacityIfTransition]>\n          <p class=\"f-s-16\">{{ usernameField.errors?.usernameError }}</p>\n        </div>\n      </ng-container>\n      <!--Unique username-->\n      <ng-container\n        *ngIf=\"\n          usernameField.errors?.nickUnique &&\n          usernameInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" [@opacityIfTransition]>\n          <p class=\"f-s-16\">Username is already taken.</p>\n        </div>\n      </ng-container>\n    </div>\n  </div>\n  <!--Email input-->\n  <div class=\"input-row\">\n    <label class=\"f-s-14\" for=\"email\">Email</label>\n    <div class=\"input-holder\">\n      <input\n        class=\"common-height\"\n        [ngClass]=\"{ 'direct-error': emailField.errors?.emailUnique }\"\n        #emailInput\n        type=\"email\"\n        id=\"email\"\n        formControlName=\"email\"\n        placeholder=\"Enter your Email\"\n        isFocused\n      />\n      <!--Errors here-->\n      <ng-container\n        *ngIf=\"\n          emailField.errors?.email &&\n          emailField.dirty &&\n          emailField.touched &&\n          emailInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" [@opacityIfTransition]>\n          <p class=\"f-s-16\">Please enter a valid e-mail.</p>\n        </div>\n      </ng-container>\n      <!--Backend error message-->\n      <ng-container\n        *ngIf=\"\n          emailField.errors?.emailError &&\n          emailField.dirty &&\n          emailField.touched &&\n          emailInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" [@opacityIfTransition]>\n          <p class=\"f-s-16\">{{ emailField.errors?.emailError }}</p>\n        </div>\n      </ng-container>\n      <!--Unique email-->\n      <ng-container\n        *ngIf=\"\n          emailField.errors?.emailUnique &&\n          emailInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" [@opacityIfTransition]>\n          <p class=\"f-s-16\">Email is already taken.</p>\n        </div>\n      </ng-container>\n    </div>\n  </div>\n  <!--Country Input-->\n  <div class=\"input-row\">\n    <label class=\"f-s-14\" for=\"email\">Country</label>\n    <q-country-picker\n      class=\"common-height\"\n      [countries]=\"countries\"\n      formControlName=\"country\"\n      #countryPicker\n    >\n    </q-country-picker>\n  </div>\n  <!--Password input-->\n  <div class=\"input-row\">\n    <label class=\"f-s-14\" for=\"password\">Password</label>\n    <div class=\"input-holder\">\n      <input\n        class=\"common-height\"\n        #passwordInput\n        type=\"password\"\n        id=\"password\"\n        formControlName=\"password\"\n        placeholder=\"Enter your Password\"\n        isFocused\n      />\n      <div\n        class=\"eye-holder\"\n        (click)=\"\n          passwordInput.type =\n            passwordInput.type === 'password' ? 'text' : 'password'\n        \"\n        [ngClass]=\"{ visible: passwordInput.type === 'text' }\"\n      >\n        <svg viewBox=\"0 0 25 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n          <path\n            d=\"M9.53879 9.8229C9.53879 10.5964 9.84204 11.3383 10.3818 11.8853C10.9216 12.4323 11.6537 12.7396 12.4171 12.7396C13.1804 12.7396 13.9126 12.4323 14.4523 11.8853C14.9921 11.3383 15.2954 10.5964 15.2954 9.8229C15.2954 9.04935 14.9921 8.30748 14.4523 7.7605C13.9126 7.21352 13.1804 6.90623 12.4171 6.90623C11.6537 6.90623 10.9216 7.21352 10.3818 7.7605C9.84204 8.30748 9.53879 9.04935 9.53879 9.8229ZM23.5756 9.15102C21.1393 3.9505 17.4567 1.33331 12.5199 1.33331C7.58052 1.33331 3.90042 3.9505 1.46416 9.15363C1.36644 9.3633 1.31576 9.59231 1.31576 9.8242C1.31576 10.0561 1.36644 10.2851 1.46416 10.4948C3.90042 15.6953 7.58309 18.3125 12.5199 18.3125C17.4592 18.3125 21.1393 15.6953 23.5756 10.4922C23.7735 10.0703 23.7735 9.58071 23.5756 9.15102ZM12.4171 14.4062C9.91913 14.4062 7.89405 12.3541 7.89405 9.8229C7.89405 7.29165 9.91913 5.23956 12.4171 5.23956C14.915 5.23956 16.9401 7.29165 16.9401 9.8229C16.9401 12.3541 14.915 14.4062 12.4171 14.4062Z\"\n            fill=\"white\"\n          />\n        </svg>\n      </div>\n      <!--Errors here-->\n      <ng-container\n        *ngIf=\"\n          (passwordField.errors?.hasRequiredLength ||\n            passwordField.errors?.hasUppercase ||\n            passwordField.errors?.hasLowercase ||\n            passwordField.errors?.hasNumericFields) &&\n          passwordField.dirty &&\n          passwordField.touched &&\n          passwordInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" [@opacityIfTransition]>\n          <p\n            class=\"f-s-14\"\n            [@growInOut]\n            *ngIf=\"passwordField.errors?.hasRequiredLength\"\n          >\n            The password must be at least 8 characters.\n          </p>\n          <p\n            class=\"f-s-14\"\n            [@growInOut]\n            *ngIf=\"passwordField.errors?.hasUppercase\"\n          >\n            The password must contain at least one uppercase letter.\n          </p>\n          <p\n            class=\"f-s-14\"\n            [@growInOut]\n            *ngIf=\"passwordField.errors?.hasLowercase\"\n          >\n            The password must contain at least one lowercase letter.\n          </p>\n          <p\n            class=\"f-s-14\"\n            [@growInOut]\n            *ngIf=\"passwordField.errors?.hasNumericFields\"\n          >\n            The password must contain at least one number.\n          </p>\n        </div>\n      </ng-container>\n    </div>\n  </div>\n  <!--Repeat password input-->\n  <div class=\"input-row\">\n    <label class=\"f-s-14\" for=\"repeatPassword\">Confirm Password</label>\n    <div class=\"input-holder\">\n      <input\n        class=\"common-height\"\n        #repeatPasswordInput\n        type=\"password\"\n        id=\"repeatPassword\"\n        formControlName=\"repeatPassword\"\n        placeholder=\"Confirm your Password\"\n        [ngClass]=\"{ invalid: form.errors?.passwordMatch }\"\n        isFocused\n      />\n      <div\n        class=\"eye-holder\"\n        (click)=\"\n          repeatPasswordInput.type =\n            repeatPasswordInput.type === 'password' ? 'text' : 'password'\n        \"\n        [ngClass]=\"{ visible: repeatPasswordInput.type === 'text' }\"\n      >\n        <svg viewBox=\"0 0 25 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n          <path\n            d=\"M9.53879 9.8229C9.53879 10.5964 9.84204 11.3383 10.3818 11.8853C10.9216 12.4323 11.6537 12.7396 12.4171 12.7396C13.1804 12.7396 13.9126 12.4323 14.4523 11.8853C14.9921 11.3383 15.2954 10.5964 15.2954 9.8229C15.2954 9.04935 14.9921 8.30748 14.4523 7.7605C13.9126 7.21352 13.1804 6.90623 12.4171 6.90623C11.6537 6.90623 10.9216 7.21352 10.3818 7.7605C9.84204 8.30748 9.53879 9.04935 9.53879 9.8229ZM23.5756 9.15102C21.1393 3.9505 17.4567 1.33331 12.5199 1.33331C7.58052 1.33331 3.90042 3.9505 1.46416 9.15363C1.36644 9.3633 1.31576 9.59231 1.31576 9.8242C1.31576 10.0561 1.36644 10.2851 1.46416 10.4948C3.90042 15.6953 7.58309 18.3125 12.5199 18.3125C17.4592 18.3125 21.1393 15.6953 23.5756 10.4922C23.7735 10.0703 23.7735 9.58071 23.5756 9.15102ZM12.4171 14.4062C9.91913 14.4062 7.89405 12.3541 7.89405 9.8229C7.89405 7.29165 9.91913 5.23956 12.4171 5.23956C14.915 5.23956 16.9401 7.29165 16.9401 9.8229C16.9401 12.3541 14.915 14.4062 12.4171 14.4062Z\"\n            fill=\"white\"\n          />\n        </svg>\n      </div>\n      <!--Errors here-->\n      <ng-container\n        *ngIf=\"\n          form.errors?.passwordMatch &&\n          repeatPasswordField.dirty &&\n          repeatPasswordField.touched &&\n          repeatPasswordInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" [@opacityIfTransition]>\n          <p class=\"f-s-14\">Passwords do not match.</p>\n        </div>\n      </ng-container>\n    </div>\n  </div>\n  <!--TOS input-->\n  <div class=\"input-row\">\n    <div class=\"input-holder\">\n      <form-checkbox-input formControlName=\"tosCheck\">\n        <p class=\"f-s-14 disclaimer\">\n          By creating an account means you agree to the\n          <a [href]=\"libConfig.tosFilePath\" target=\"_blank\"\n            >Terms and Conditions</a\n          >, and our\n          <a [href]=\"libConfig.privacyPolicyFilePath\" target=\"_blank\"\n            >Privacy Policy</a\n          >\n        </p>\n      </form-checkbox-input>\n    </div>\n  </div>\n  <!--Newsletter input-->\n  <div class=\"input-row\">\n    <div class=\"input-holder\">\n      <form-checkbox-input formControlName=\"promotionsCheck\">\n        <p class=\"f-s-14 disclaimer\">\n          Allow team to send me personalized marketing promotions (sales,\n          newsletters)\n        </p>\n      </form-checkbox-input>\n    </div>\n  </div>\n</form>\n","import {\n  AfterViewInit,\n  Component,\n  Input,\n  OnDestroy,\n  OnInit,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { fade, growInOut } from '../../../files/animations';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { Subscription, take } from 'rxjs';\nimport { AuthRoutingService } from '../../../services/auth-routing.service';\n\n@Component({\n  selector: 'login-form',\n  templateUrl: './login-form.component.html',\n  styleUrls: ['./login-form.component.scss'],\n  animations: [growInOut, fade],\n})\nexport class LoginFormComponent implements OnInit {\n  @Input() mfaOnly = false;\n\n  form = this.fb.group({\n    email: ['', [Validators.required, Validators.email]],\n    password: ['', [Validators.required]],\n    authCode: [\n      {\n        value: '',\n        disabled: true,\n      },\n    ],\n    recoveryCode: [\n      {\n        value: '',\n        disabled: true,\n      },\n    ],\n  });\n  routeSub: Subscription;\n\n  constructor(\n    private fb: FormBuilder,\n    private route: ActivatedRoute,\n    public routing: AuthRoutingService\n  ) {\n    this.routeSub = this.route.queryParams\n      .pipe(take(1))\n      .subscribe((params: Params) => {\n        if (params.emailLogin) {\n          this.setEmail =\n            params.emailLogin !== 'true' ? params.emailLogin : null;\n        }\n        routing.goToCustom('auth_redirect_login', { param: { queryParams: { emailLogin: null }, queryParamsHandling: 'merge' } });\n      });\n  }\n\n  ngOnInit(): void {\n    if (this.mfaOnly) {\n      this.removeValidators(['email', 'password']);\n      this.authCodeField.setValidators([Validators.required]);\n      this.authCodeField.updateValueAndValidity();\n      this.authCodeField.enable();\n    }\n  }\n\n  removeValidators(validatorsArray: Array<string>) {\n    validatorsArray.forEach((val) => {\n      this.form.get(val).clearValidators();\n      this.form.get(val).updateValueAndValidity();\n    });\n  }\n\n  testCode(val): boolean {\n    const regex = /^\\d{6}$/;\n    return regex.test(val);\n  }\n\n  testRecovery(val): boolean {\n    const regex = /^(?=.{21}$).*$/;\n    return regex.test(val);\n  }\n\n  enableRecovery(): void {\n    if (this.authCodeField.enabled) {\n      this.authCodeField.disable();\n      this.authCodeField.clearValidators();\n    }\n    this.recoveryCodeField.setValidators([Validators.required]);\n    this.recoveryCodeField.enable();\n  }\n\n  enable2Fa(): void {\n    if (this.recoveryCodeField) {\n      this.recoveryCodeField.disable();\n      this.recoveryCodeField.clearValidators();\n    }\n    this.authCodeField.setValidators([Validators.required]);\n    this.authCodeField.enable();\n  }\n\n  get emailField() {\n    return this.form.controls['email'];\n  }\n\n  get passwordField() {\n    return this.form.controls['password'];\n  }\n\n  get authCodeField() {\n    return this.form.controls['authCode'];\n  }\n\n  get recoveryCodeField() {\n    return this.form.controls['recoveryCode'];\n  }\n\n  set codeErrors(value: any) {\n    this.authCodeField.setErrors(value);\n  }\n\n  set setEmail(val: string) {\n    this.form.patchValue({ email: val });\n  }\n\n}\n","<form [formGroup]=\"form\">\n  <h2 class=\"f-s-32 main-heading\">Log in</h2>\n  <!--Email input-->\n  <div class=\"input-row\" *ngIf=\"!mfaOnly\">\n    <label class=\"f-s-16\" for=\"email\">Email</label>\n    <div class=\"input-holder\">\n      <input\n        class=\"common-height\"\n        #emailInput\n        type=\"email\"\n        id=\"email\"\n        formControlName=\"email\"\n        placeholder=\"Enter your Email\"\n        autofocus\n        isFocused\n      />\n      <!--Errors here-->\n      <ng-container\n        *ngIf=\"\n          emailField.errors?.email &&\n          emailField.dirty &&\n          emailField.touched &&\n          emailInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" @opacityIfTransition>\n          <p class=\"f-s-16\">Please enter a valid e-mail.</p>\n        </div>\n      </ng-container>\n    </div>\n  </div>\n  <!--Password input-->\n  <div class=\"input-row\" *ngIf=\"!mfaOnly\">\n    <label class=\"f-s-16\" for=\"password\">Password</label>\n    <div class=\"input-holder\">\n      <input\n        class=\"common-height\"\n        #passwordInput\n        type=\"password\"\n        id=\"password\"\n        formControlName=\"password\"\n        placeholder=\"Enter your Password\"\n      />\n      <div\n        class=\"eye-holder\"\n        (click)=\"\n          passwordInput.type =\n            passwordInput.type === 'password' ? 'text' : 'password'\n        \"\n        [ngClass]=\"{ visible: passwordInput.type === 'text' }\"\n      >\n        <svg viewBox=\"0 0 25 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n          <path\n            d=\"M9.53879 9.8229C9.53879 10.5964 9.84204 11.3383 10.3818 11.8853C10.9216 12.4323 11.6537 12.7396 12.4171 12.7396C13.1804 12.7396 13.9126 12.4323 14.4523 11.8853C14.9921 11.3383 15.2954 10.5964 15.2954 9.8229C15.2954 9.04935 14.9921 8.30748 14.4523 7.7605C13.9126 7.21352 13.1804 6.90623 12.4171 6.90623C11.6537 6.90623 10.9216 7.21352 10.3818 7.7605C9.84204 8.30748 9.53879 9.04935 9.53879 9.8229ZM23.5756 9.15102C21.1393 3.9505 17.4567 1.33331 12.5199 1.33331C7.58052 1.33331 3.90042 3.9505 1.46416 9.15363C1.36644 9.3633 1.31576 9.59231 1.31576 9.8242C1.31576 10.0561 1.36644 10.2851 1.46416 10.4948C3.90042 15.6953 7.58309 18.3125 12.5199 18.3125C17.4592 18.3125 21.1393 15.6953 23.5756 10.4922C23.7735 10.0703 23.7735 9.58071 23.5756 9.15102ZM12.4171 14.4062C9.91913 14.4062 7.89405 12.3541 7.89405 9.8229C7.89405 7.29165 9.91913 5.23956 12.4171 5.23956C14.915 5.23956 16.9401 7.29165 16.9401 9.8229C16.9401 12.3541 14.915 14.4062 12.4171 14.4062Z\"\n            fill=\"white\"\n          />\n        </svg>\n      </div>\n    </div>\n    <p\n      class=\"f-s-16 disclaimer spaced\"\n      *ngIf=\"\n        form.controls.recoveryCode.disabled && form.controls.authCode.disabled\n      \"\n    >\n      Forgot password?\n      <span (click)=\"routing.goToForgotPassword()\"\n        >Make a new one</span\n      >\n    </p>\n    <!--Errors here-->\n  </div>\n  <!--2fa input-->\n  <div class=\"input-row\" *ngIf=\"form.controls.authCode.enabled\" @growInOut>\n    <label class=\"f-s-16\" for=\"auth\">2-factor Authentification</label>\n    <div class=\"input-holder\">\n      <input\n        class=\"common-height\"\n        #mfaInput\n        type=\"text\"\n        pattern=\"^[0-9]{6}$\"\n        id=\"auth\"\n        formControlName=\"authCode\"\n        placeholder=\"Enter Authentification code\"\n        isFocused\n      />\n      <!--Errors here-->\n      <div\n        class=\"error-holder\"\n        @opacityIfTransition\n        *ngIf=\"\n          mfaInput.dataset.isFocused === 'true' &&\n          authCodeField.touched &&\n          authCodeField.dirty &&\n          !testCode(mfaInput.value)\n        \"\n      >\n        <p class=\"f-s-14\">Enter valid mfa code.</p>\n      </div>\n      <div\n        class=\"error-holder\"\n        @opacityIfTransition\n        *ngIf=\"\n          mfaInput.dataset.isFocused === 'true' &&\n          authCodeField.errors?.mfa_code\n        \"\n      >\n        <p class=\"f-s-14\">Invalid mfa code.</p>\n      </div>\n    </div>\n    <p class=\"f-s-16 disclaimer spaced\">\n      Unable to find 2FA Code?\n      <span (click)=\"enableRecovery()\">Enter Recovery</span>\n    </p>\n  </div>\n  <!--Recovery input-->\n  <div class=\"input-row\" *ngIf=\"form.controls.recoveryCode.enabled\" @growInOut>\n    <label class=\"f-s-16\" for=\"recovery\">Recovery Code</label>\n    <div class=\"input-holder\">\n      <input\n        class=\"common-height\"\n        #recoveryInput\n        type=\"text\"\n        id=\"recovery\"\n        formControlName=\"recoveryCode\"\n        pattern=\"(?=.{21}$).*$\"\n        placeholder=\"Enter Recovery code\"\n        isFocused\n      />\n      <!--Errors here-->\n      <div\n        class=\"error-holder\"\n        @opacityIfTransition\n        *ngIf=\"\n          recoveryInput.dataset.isFocused === 'true' &&\n          recoveryCodeField.touched &&\n          recoveryCodeField.dirty &&\n          !testRecovery(recoveryInput.value)\n        \"\n      >\n        <p class=\"f-s-14\">Enter valid recovery code.</p>\n      </div>\n    </div>\n    <p class=\"f-s-16 disclaimer spaced\">\n      Back to\n      <span (click)=\"enable2Fa()\">Enter Authentification code</span>\n    </p>\n  </div>\n</form>\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, Validators } from '@angular/forms';\nimport { fade, growInOut } from '../../../files/animations';\nimport { ActivatedRoute } from '@angular/router';\nimport { createPasswordMatchValidator } from '../../../validators/password-match-validator';\nimport { createPasswordStrengthValidator } from '../../../validators/password-strength-validator';\n\n@Component({\n  selector: 'reset-password-form',\n  templateUrl: './reset-password-form.component.html',\n  styleUrls: ['./reset-password-form.component.scss'],\n  animations: [fade, growInOut],\n})\nexport class ResetPasswordFormComponent {\n  form = this.fb.group(\n    {\n      email: ['', [Validators.required, Validators.email]],\n      code: ['', [Validators.required]],\n      password: ['', [Validators.required, createPasswordStrengthValidator()]],\n      repeatPassword: new FormControl('', {\n        validators: [Validators.required],\n        updateOn: 'blur',\n      }),\n    },\n    {\n      validators: [createPasswordMatchValidator('password', 'repeatPassword')],\n    }\n  );\n\n  constructor(private fb: FormBuilder, private route: ActivatedRoute) {\n    this.emailFieldValue = this.route.snapshot.params.email;\n  }\n\n  testCode(val) {\n    const regex = /^\\d{6}$/;\n    return regex.test(val);\n  }\n\n  get emailField() {\n    return this.form.controls['email'];\n  }\n  get codeField() {\n    return this.form.controls['code'];\n  }\n  get passwordField() {\n    return this.form.controls['password'];\n  }\n  get repeatPasswordField() {\n    return this.form.controls['repeatPassword'];\n  }\n\n  set emailFieldValue(value: string) {\n    this.form.patchValue({ email: value });\n  }\n  set codeErrors(value: any) {\n    this.codeField.setErrors(value);\n  }\n}\n","<form [formGroup]=\"form\">\n  <!--Email input-->\n  <div class=\"input-row\">\n    <label class=\"f-s-16\" for=\"email\">Email</label>\n    <div class=\"input-holder\">\n      <input\n        class=\"common-height\"\n        #emailInput\n        type=\"email\"\n        id=\"email\"\n        formControlName=\"email\"\n        placeholder=\"Enter your Email\"\n        autofocus\n        isFocused\n      />\n      <!--Errors here-->\n      <ng-container\n        *ngIf=\"\n          emailField.errors?.email &&\n          emailField.dirty &&\n          emailField.touched &&\n          emailInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" [@opacityIfTransition]>\n          <p class=\"f-s-14\">Please enter a valid e-mail.</p>\n        </div>\n      </ng-container>\n    </div>\n  </div>\n  <!--Recovery code input-->\n  <div class=\"input-row\">\n    <label class=\"f-s-16\" for=\"recoveryCode\">Recovery code</label>\n    <div class=\"input-holder\">\n      <input\n        class=\"common-height\"\n        #recoveryInput\n        type=\"text\"\n        id=\"recoveryCode\"\n        formControlName=\"code\"\n        placeholder=\"Enter code sent to your e-mail\"\n        pattern=\"^\\d{6}$\"\n        autocomplete=\"off\"\n        isFocused\n      />\n      <!--Errors here-->\n      <div\n        class=\"error-holder\"\n        [@opacityIfTransition]\n        *ngIf=\"\n          recoveryInput.dataset.isFocused === 'true' &&\n          codeField.touched &&\n          codeField.dirty &&\n          !testCode(recoveryInput.value)\n        \"\n      >\n        <p class=\"f-s-14\">Enter valid recovery code.</p>\n      </div>\n      <div\n        class=\"error-holder\"\n        [@opacityIfTransition]\n        *ngIf=\"\n          recoveryInput.dataset.isFocused === 'true' &&\n          codeField.errors?.recoveryCode\n        \"\n      >\n        <p class=\"f-s-14\">Invalid recovery code.</p>\n      </div>\n    </div>\n  </div>\n  <!--Password input-->\n  <div class=\"input-row\">\n    <label class=\"f-s-16\" for=\"password\">Password</label>\n    <div class=\"input-holder\">\n      <input\n        class=\"common-height\"\n        #passwordInput\n        type=\"password\"\n        id=\"password\"\n        formControlName=\"password\"\n        placeholder=\"Enter your Password\"\n        isFocused\n      />\n      <div\n        class=\"eye-holder\"\n        (click)=\"\n          passwordInput.type =\n            passwordInput.type === 'password' ? 'text' : 'password'\n        \"\n        [ngClass]=\"{ visible: passwordInput.type === 'text' }\"\n      >\n        <svg viewBox=\"0 0 25 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n          <path\n            d=\"M9.53879 9.8229C9.53879 10.5964 9.84204 11.3383 10.3818 11.8853C10.9216 12.4323 11.6537 12.7396 12.4171 12.7396C13.1804 12.7396 13.9126 12.4323 14.4523 11.8853C14.9921 11.3383 15.2954 10.5964 15.2954 9.8229C15.2954 9.04935 14.9921 8.30748 14.4523 7.7605C13.9126 7.21352 13.1804 6.90623 12.4171 6.90623C11.6537 6.90623 10.9216 7.21352 10.3818 7.7605C9.84204 8.30748 9.53879 9.04935 9.53879 9.8229ZM23.5756 9.15102C21.1393 3.9505 17.4567 1.33331 12.5199 1.33331C7.58052 1.33331 3.90042 3.9505 1.46416 9.15363C1.36644 9.3633 1.31576 9.59231 1.31576 9.8242C1.31576 10.0561 1.36644 10.2851 1.46416 10.4948C3.90042 15.6953 7.58309 18.3125 12.5199 18.3125C17.4592 18.3125 21.1393 15.6953 23.5756 10.4922C23.7735 10.0703 23.7735 9.58071 23.5756 9.15102ZM12.4171 14.4062C9.91913 14.4062 7.89405 12.3541 7.89405 9.8229C7.89405 7.29165 9.91913 5.23956 12.4171 5.23956C14.915 5.23956 16.9401 7.29165 16.9401 9.8229C16.9401 12.3541 14.915 14.4062 12.4171 14.4062Z\"\n            fill=\"white\"\n          />\n        </svg>\n      </div>\n      <!--Errors here-->\n      <ng-container\n        *ngIf=\"\n          (passwordField.errors?.hasRequiredLength ||\n            passwordField.errors?.hasUppercase ||\n            passwordField.errors?.hasLowercase ||\n            passwordField.errors?.hasNumericFields) &&\n          passwordField.dirty &&\n          passwordField.touched &&\n          passwordInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" [@opacityIfTransition]>\n          <p\n            class=\"f-s-14\"\n            [@growInOut]\n            *ngIf=\"passwordField.errors?.hasRequiredLength\"\n          >\n            The password must be at least 8 characters.\n          </p>\n          <p\n            class=\"f-s-14\"\n            [@growInOut]\n            *ngIf=\"passwordField.errors?.hasUppercase\"\n          >\n            The password must contain at least one uppercase letter.\n          </p>\n          <p\n            class=\"f-s-14\"\n            [@growInOut]\n            *ngIf=\"passwordField.errors?.hasLowercase\"\n          >\n            The password must contain at least one lowercase letter.\n          </p>\n          <p\n            class=\"f-s-14\"\n            [@growInOut]\n            *ngIf=\"passwordField.errors?.hasNumericFields\"\n          >\n            The password must contain at least one number.\n          </p>\n        </div>\n      </ng-container>\n    </div>\n  </div>\n  <!--Repeat password input-->\n  <div class=\"input-row\">\n    <label class=\"f-s-16\" for=\"repeatPassword\">Confirm Password</label>\n    <div class=\"input-holder\">\n      <input\n        class=\"common-height\"\n        #repeatPasswordInput\n        type=\"password\"\n        id=\"repeatPassword\"\n        formControlName=\"repeatPassword\"\n        placeholder=\"Confirm your Password\"\n        [ngClass]=\"{ invalid: form.errors?.passwordMatch }\"\n        isFocused\n      />\n      <div\n        class=\"eye-holder\"\n        (click)=\"\n          repeatPasswordInput.type =\n            repeatPasswordInput.type === 'password' ? 'text' : 'password'\n        \"\n        [ngClass]=\"{ visible: repeatPasswordInput.type === 'text' }\"\n      >\n        <svg viewBox=\"0 0 25 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n          <path\n            d=\"M9.53879 9.8229C9.53879 10.5964 9.84204 11.3383 10.3818 11.8853C10.9216 12.4323 11.6537 12.7396 12.4171 12.7396C13.1804 12.7396 13.9126 12.4323 14.4523 11.8853C14.9921 11.3383 15.2954 10.5964 15.2954 9.8229C15.2954 9.04935 14.9921 8.30748 14.4523 7.7605C13.9126 7.21352 13.1804 6.90623 12.4171 6.90623C11.6537 6.90623 10.9216 7.21352 10.3818 7.7605C9.84204 8.30748 9.53879 9.04935 9.53879 9.8229ZM23.5756 9.15102C21.1393 3.9505 17.4567 1.33331 12.5199 1.33331C7.58052 1.33331 3.90042 3.9505 1.46416 9.15363C1.36644 9.3633 1.31576 9.59231 1.31576 9.8242C1.31576 10.0561 1.36644 10.2851 1.46416 10.4948C3.90042 15.6953 7.58309 18.3125 12.5199 18.3125C17.4592 18.3125 21.1393 15.6953 23.5756 10.4922C23.7735 10.0703 23.7735 9.58071 23.5756 9.15102ZM12.4171 14.4062C9.91913 14.4062 7.89405 12.3541 7.89405 9.8229C7.89405 7.29165 9.91913 5.23956 12.4171 5.23956C14.915 5.23956 16.9401 7.29165 16.9401 9.8229C16.9401 12.3541 14.915 14.4062 12.4171 14.4062Z\"\n            fill=\"white\"\n          />\n        </svg>\n      </div>\n      <!--Errors here-->\n      <ng-container\n        *ngIf=\"\n          form.errors?.passwordMatch &&\n          repeatPasswordField.dirty &&\n          repeatPasswordField.touched &&\n          repeatPasswordInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" [@opacityIfTransition]>\n          <p class=\"f-s-14\">Passwords do not match.</p>\n        </div>\n      </ng-container>\n    </div>\n  </div>\n</form>\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { RequestCallsService } from '@qorpo/common';\nimport { fade } from '../../../files/animations';\nimport { CountryList } from '@qorpo/common';\nimport { AuthLibConfig } from '../../../lib-config';\n\n@Component({\n  selector: 'simple-registration-form',\n  templateUrl: './simple-registration-form.component.html',\n  styleUrls: ['./simple-registration-form.component.scss'],\n  animations: [fade],\n})\nexport class SimpleRegistrationFormComponent implements OnDestroy, OnInit {\n  @Input() countries: CountryList;\n  @Input() usernameOnly = false;\n\n  form = this.fb.group({\n    email: ['', [Validators.required, Validators.email]],\n    username: [\n      '',\n      [Validators.required, Validators.minLength(5), Validators.maxLength(100)],\n    ],\n    country: [null, [Validators.required]],\n    tosCheck: [false, [Validators.requiredTrue]],\n    promotionsCheck: [true],\n  });\n\n  constructor(\n    private fb: FormBuilder,\n    public readonly libConfig: AuthLibConfig,\n  ) {}\n\n  ngOnInit(): void {\n    if (this.usernameOnly) {\n      this.emailField.clearValidators();\n      this.emailField.updateValueAndValidity();\n    } else {\n      this.emailField.updateValueAndValidity();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.form.clearValidators();\n    this.form.reset();\n  }\n\n  get emailField() {\n    return this.form.controls['email'];\n  }\n\n  get usernameField() {\n    return this.form.controls['username'];\n  }\n\n  get countryField() {\n    return this.form.controls['country'];\n  }\n\n  get tosField() {\n    return this.form.controls['tosCheck'];\n  }\n\n  get promotionsField() {\n    return this.form.controls['promotionsCheck'];\n  }\n\n  set emailErrors(value) {\n    this.emailField.setErrors(value);\n  }\n\n  set usernameErrors(value) {\n    this.usernameField.setErrors(value);\n  }\n}\n","<form [formGroup]=\"form\">\n  <!--Email input-->\n  <div class=\"input-row\" *ngIf=\"!usernameOnly\">\n    <label class=\"f-s-16\" for=\"email\">Email</label>\n    <div class=\"input-holder\">\n      <input\n        class=\"common-height\"\n        [ngClass]=\"{ 'direct-error': emailField.errors?.emailUnique }\"\n        #emailInput\n        type=\"email\"\n        id=\"email\"\n        formControlName=\"email\"\n        placeholder=\"Enter your Email\"\n        autofocus\n        isFocused\n      />\n      <!--Errors here-->\n      <ng-container\n        *ngIf=\"\n          emailField.errors?.email &&\n          emailField.dirty &&\n          emailField.touched &&\n          emailInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" [@opacityIfTransition]>\n          <p class=\"f-s-16\">Please enter a valid e-mail.</p>\n        </div>\n      </ng-container>\n      <ng-container\n        *ngIf=\"\n          emailField.errors?.emailError &&\n          emailField.dirty &&\n          emailField.touched &&\n          emailInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" [@opacityIfTransition]>\n          <p class=\"f-s-16\">{{ emailField.errors?.emailError }}</p>\n        </div>\n      </ng-container>\n      <!--Unique email-->\n      <ng-container\n        *ngIf=\"\n          emailField.errors?.emailUnique &&\n          emailInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" [@opacityIfTransition]>\n          <p class=\"f-s-16\">Email is already taken.</p>\n        </div>\n      </ng-container>\n    </div>\n  </div>\n  <!--Username Input-->\n  <div class=\"input-row\">\n    <label class=\"f-s-16\" for=\"username\">Username</label>\n    <div class=\"input-holder\">\n      <input\n        class=\"common-height\"\n        [ngClass]=\"{ 'direct-error': usernameField.errors?.emailUnique }\"\n        #usernameInput\n        type=\"text\"\n        id=\"username\"\n        formControlName=\"username\"\n        placeholder=\"Enter your Username\"\n        isFocused\n      />\n      <!--Errors here-->\n      <ng-container\n        *ngIf=\"\n          (usernameField.errors?.minlength ||\n            usernameField.errors?.maxlength) &&\n          usernameField.touched &&\n          usernameField.dirty &&\n          usernameInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder\" [@opacityIfTransition]>\n          <p class=\"f-s-14\" *ngIf=\"usernameField.errors?.minlength\">\n            Minimum username length is 5 characters.\n          </p>\n          <p class=\"f-s-14\" *ngIf=\"usernameField.errors?.maxlength\">\n            Maximum username length is 100 characters.\n          </p>\n        </div>\n      </ng-container>\n      <ng-container\n        *ngIf=\"\n          usernameField.errors?.usernameError &&\n          usernameField.dirty &&\n          usernameField.touched &&\n          usernameInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" [@opacityIfTransition]>\n          <p class=\"f-s-16\">{{ usernameField.errors?.usernameError }}</p>\n        </div>\n      </ng-container>\n      <!--Unique username-->\n      <ng-container\n        *ngIf=\"\n          usernameField.errors?.nickUnique &&\n          usernameInput.dataset.isFocused === 'true'\n        \"\n      >\n        <div class=\"error-holder common-height\" [@opacityIfTransition]>\n          <p class=\"f-s-16\">Username is already taken.</p>\n        </div>\n      </ng-container>\n    </div>\n  </div>\n  <!--Country Input-->\n  <div class=\"input-row\">\n    <label class=\"f-s-14\" for=\"email\">Country</label>\n    <q-country-picker\n      class=\"common-height\"\n      [countries]=\"countries\"\n      formControlName=\"country\"\n      #countryPicker\n    >\n    </q-country-picker>\n  </div>\n  <!--TOS input-->\n  <div class=\"input-row\">\n    <div class=\"input-holder\">\n      <form-checkbox-input formControlName=\"tosCheck\">\n        <p class=\"f-s-14\">\n          I have read the\n          <a [href]=\"libConfig.tosFilePath\">Terms and Conditions</a>\n        </p>\n      </form-checkbox-input>\n    </div>\n  </div>\n  <!--Newsletter input-->\n  <div class=\"input-row\">\n    <div class=\"input-holder\">\n      <form-checkbox-input formControlName=\"promotionsCheck\">\n        <p class=\"f-s-14\">\n          Allow team to send me personalized marketing promotions (sales,\n          newsletters)\n        </p>\n      </form-checkbox-input>\n    </div>\n  </div>\n</form>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-loading',\n  templateUrl: './loading.component.html',\n  styleUrls: ['./loading.component.scss'],\n})\nexport class LoadingComponent implements OnInit {\n  @Input() type: string = 'dots';\n  @Input() color: string = 'purple';\n  @Input() small: boolean = false;\n  constructor() { }\n\n  ngOnInit(): void { }\n}\n","<div class=\"wrap\" [ngClass]=\"{'small': small}\" *ngIf=\"type === 'dots'\">\n  <div class=\"dot first\"></div>\n  <div class=\"dot second\"></div>\n  <div class=\"dot third\"></div>\n</div>\n<div class=\"container\" *ngIf=\"type === 'spin'\">\n  <svg\n    class=\"loading-icon\"\n    [ngClass]=\"{ red: color === 'red', 'white': color === 'white' }\"\n    viewBox=\"0 0 40 40\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n  >\n    <path\n      d=\"M27.3383 36.4362C23.793 38.0191 19.831 38.4132 16.0434 37.5598C12.2557 36.7063 8.8456 34.6511 6.32178 31.7007C3.79795 28.7503 2.29575 25.063 2.03931 21.1889C1.78286 17.3148 2.78594 13.4616 4.89885 10.2043C7.01177 6.94702 10.1213 4.46022 13.7633 3.11498C17.4054 1.76974 21.3848 1.63817 25.1078 2.73992C28.8308 3.84167 32.0977 6.11766 34.4212 9.22829C36.7446 12.3389 38 16.1174 38 20\"\n      stroke=\"url(#paint0_linear_5483_790)\"\n      stroke-width=\"4\"\n      stroke-linecap=\"round\"\n    />\n    <defs>\n      <linearGradient\n        id=\"paint0_linear_5483_790\"\n        x1=\"35.5\"\n        y1=\"23\"\n        x2=\"39\"\n        y2=\"36\"\n        gradientUnits=\"userSpaceOnUse\"\n      >\n        <stop />\n        <stop offset=\"0.685599\" stop-opacity=\"0\" />\n      </linearGradient>\n    </defs>\n  </svg>\n</div>\n","import { EventEmitter } from '@angular/core';\nimport { LoginProvider } from '../../models/login-provider';\nimport { SocialUser } from '../../models/social-user';\n\n\nexport abstract class BaseLoginProvider implements LoginProvider {\n  constructor() { }\n  readonly changeUser?: EventEmitter<SocialUser>;\n  abstract initialize(autoLogin?: boolean): Promise<void>;\n  abstract getLoginStatus(): Promise<SocialUser>;\n  abstract signIn(signInOptions?: object): Promise<SocialUser>;\n  abstract signOut(revoke?: boolean): Promise<void>;\n  refreshToken?(): Promise<SocialUser | null>;\n\n  protected loadScript(\n    id: string,\n    src: string,\n    onload: any,\n    parentElement = null\n  ): void {\n    if (typeof document !== 'undefined' && !document.getElementById(id)) {\n      let signInJS = document.createElement('script');\n\n      signInJS.async = true;\n      signInJS.src = src;\n      signInJS.onload = onload;\n\n      if (!parentElement) {\n        parentElement = document.head;\n      }\n\n      parentElement.appendChild(signInJS);\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AuthLibConfig } from '../lib-config';\n\nvar ID_TOKEN = 'q_idToken';\nvar ACCESS_TOKEN = 'q_accesToken';\nvar REFRESH_TOKEN = 'q_refreshToken';\nvar IDENTITY_KEY = 'q_authUser';\nvar CHAIN_ID_KEY = 'chain_id';\nvar META_SIGNATURE_BACKUP_KEY = 'meta_signature_backup';\nvar META_SIGNATURE_KEY = 'meta_signature';\nvar REF_COUNT_KEY = 'ref_count';\nvar USER_EMAIL_KEY = 'user_email';\nvar TWITTER_CHALLENGE_KEY = 'twitter_challenge';\nvar SAVED_LOGIN_MFA_KEY = 'saved_login_mfa';\nvar SAVED_RECOVERY_CODE = 'saved_recovery_code';\nvar UE_TOKEN_KEY = 'ue_token';\nvar SOCIAL_LOGIN_METHOD = 'social_login_method';\nvar IS_ADMIN_KEY = 'is_admin';\nvar IS_REGISTER_FROM_CAMPAIGN = 'is_register_from_campaign'\nvar USER_REFERAL = 'user_referal';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class AuthStorageManagementService {\n\n  storageAction$: Subject<{key: string, value: any}> = new Subject<{key: string, value: any}>();\n\n  constructor(\n    private readonly libConfig: AuthLibConfig,\n  ) {\n    ID_TOKEN = libConfig.storageKeys.id_token;\n    ACCESS_TOKEN = libConfig.storageKeys.access_token;\n    REFRESH_TOKEN = libConfig.storageKeys.refresh_token;\n    IDENTITY_KEY = libConfig.storageKeys.identity_key;\n    CHAIN_ID_KEY = libConfig.storageKeys.chain_id_key;\n    META_SIGNATURE_BACKUP_KEY = libConfig.storageKeys.meta_signature_backup_key;\n    META_SIGNATURE_KEY = libConfig.storageKeys.meta_signature_key;\n    REF_COUNT_KEY = libConfig.storageKeys.ref_count_key;\n    USER_EMAIL_KEY = libConfig.storageKeys.email_key;\n    TWITTER_CHALLENGE_KEY = libConfig.storageKeys.twitter_challenge_key;\n    SAVED_LOGIN_MFA_KEY = libConfig.storageKeys.saved_login_mfa_key;\n    SAVED_RECOVERY_CODE = libConfig.storageKeys.saved_recovery_code;\n    UE_TOKEN_KEY = libConfig.storageKeys.ue_token_key;\n    SOCIAL_LOGIN_METHOD = libConfig.storageKeys.social_login_method;\n    IS_ADMIN_KEY = libConfig.storageKeys.is_admin_key;\n    IS_REGISTER_FROM_CAMPAIGN = libConfig.storageKeys.is_register_from_campaign;\n    USER_REFERAL = libConfig.storageKeys.user_referal;\n  }\n\n  // SETS\n\n  setIdentity(identity: any) {\n    localStorage.setItem(IDENTITY_KEY, JSON.stringify(identity));\n  }\n\n  setIdToken(token: string) {\n    localStorage.setItem(ID_TOKEN, token);\n  }\n\n  setAccessToken(token: string) {\n    localStorage.setItem(ACCESS_TOKEN, token);\n  }\n\n  setRefreshToken(token: string) {\n    localStorage.setItem(REFRESH_TOKEN, token);\n  }\n\n  setRefCount(count: number) {\n    localStorage.setItem(REF_COUNT_KEY, count.toString());\n  }\n\n  setTwitterChallenge(challenge: string) {\n    localStorage.setItem(TWITTER_CHALLENGE_KEY, challenge);\n  }\n\n  setSavedLoginMfa(value: string) {\n    localStorage.setItem(SAVED_LOGIN_MFA_KEY, JSON.stringify(value));\n  }\n\n  setSavedRecoveryCode(value: string) {\n    localStorage.setItem(SAVED_RECOVERY_CODE, JSON.stringify(value));\n  }\n\n  setUeToken(token: string) {\n    localStorage.setItem(UE_TOKEN_KEY, token);\n  }\n\n  setSocialLoginType(value: string) {\n    localStorage.setItem(SOCIAL_LOGIN_METHOD, value);\n  }\n\n  setIsAdmin(isAdmin: string): void {\n    const value = isAdmin === 'oujeee';\n    localStorage.setItem(IS_ADMIN_KEY, JSON.stringify(value));\n    this.storageAction$.next({ key: 'storage_admin_switch_layout', value: value });    \n  }\n\n  setIsRegisterFromCampaign(value: string) {    \n    localStorage.setItem(IS_REGISTER_FROM_CAMPAIGN, value);   \n  }\n\n  setUserReferal(value: string) {\n    localStorage.setItem(USER_REFERAL, value);  \n  }\n\n  // GETS\n\n  getIdToken() {\n    const token = localStorage.getItem(ID_TOKEN);\n    return token;\n  }\n\n  getRefreshToken() {\n    const token = localStorage.getItem(REFRESH_TOKEN);\n    return token;\n  }\n\n  getIsAdmin() {\n    const user = JSON.parse(localStorage.getItem(IDENTITY_KEY));\n    return user?.ia ? true : false;\n  }\n\n  getUserEmail() {\n\n    let identity = JSON.parse(this.getIdentity());\n    let email = identity.email;\n    return email;\n  }\n\n  getChainId() {\n    const chainId = localStorage.getItem(CHAIN_ID_KEY);\n    return chainId;\n  }\n\n  getMetaSignature() {\n    const signature = JSON.parse(localStorage.getItem(META_SIGNATURE_KEY));\n    return signature;\n  }\n\n  getMetaSignatureBackup() {\n    const signature = JSON.parse(localStorage.getItem(META_SIGNATURE_BACKUP_KEY));\n    return signature;\n  }\n\n  getRefCount() {\n    const count = localStorage.getItem(REF_COUNT_KEY);\n    return count;\n  }\n\n  getIdentity() {\n    let value = localStorage.getItem(IDENTITY_KEY);\n    return value;\n  }\n\n  getTwitterChallenge() {\n    let challenge = localStorage.getItem(TWITTER_CHALLENGE_KEY);\n    return challenge;\n  }\n\n  getSavedLoginMfa() {\n    let code = JSON.parse(localStorage.getItem(SAVED_LOGIN_MFA_KEY));\n    return code;\n  }\n\n  getSavedRecoveryCode() {\n    const recoveryCode = JSON.parse(localStorage.getItem(SAVED_RECOVERY_CODE));\n    return recoveryCode;\n  }\n\n  getUeToken() {\n    let token = localStorage.getItem(UE_TOKEN_KEY);\n    return token;\n  }\n\n  getSocialLoginType() {\n    let data = localStorage.getItem(SOCIAL_LOGIN_METHOD);\n    return data;\n  }\n\n  getIsRegisterFromCampaign() {    \n    let data = localStorage.getItem(IS_REGISTER_FROM_CAMPAIGN);   \n    return data;\n  }\n\n  getUserReferal() {\n    let data = localStorage.getItem(USER_REFERAL);   \n    return data;\n  }\n\n  // REMOVES\n\n  clearAccessTokens(): void {\n    localStorage.removeItem(ID_TOKEN);\n    localStorage.removeItem(ACCESS_TOKEN);\n  }\n\n  clearStorage() {\n    localStorage.clear();\n  }\n\n  removeMetaSignatureBackup() {\n    localStorage.removeItem(META_SIGNATURE_BACKUP_KEY);\n  }\n\n  removeRefCount() {\n    localStorage.removeItem(REF_COUNT_KEY);\n  }\n\n  removeTwitterChallenge() {\n    localStorage.removeItem(TWITTER_CHALLENGE_KEY);\n  }\n\n  removeSavedLoginMfa() {\n    localStorage.removeItem(SAVED_LOGIN_MFA_KEY);\n  }\n\n  removeSavedRecoveryCode() {\n    localStorage.removeItem(SAVED_RECOVERY_CODE);\n  }\n\n  removeUeToken() {\n    localStorage.removeItem(UE_TOKEN_KEY);\n  }\n\n  removeSocialLoginType() {\n    localStorage.removeItem(SOCIAL_LOGIN_METHOD);\n  }\n\n  removeMetaSignature() {\n    localStorage.removeItem(META_SIGNATURE_KEY);\n  }\n  \n  removeIsRegisterFromCampaign() {\n    localStorage.removeItem(IS_REGISTER_FROM_CAMPAIGN);\n  }\n\n  removeUserReferal() {\n    localStorage.removeItem(USER_REFERAL);\n  }\n\n}\n","import { SocialUser } from '../../models/social-user';\nimport { BaseLoginProvider } from './base-login-provider';\nimport { AuthStorageManagementService } from '../../services/auth-storage-management.service';\nimport { AuthLibConfig } from '../../lib-config';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class TwitterLoginProvider extends BaseLoginProvider {\n  public static readonly PROVIDER_ID: string = 'TWITTER';\n  twitterRedirectUrl = 'https://twitter.com/i/oauth2/authorize';\n  clientId = 'TDhoaUxRdUFNVFFua3V3YllQS1E6MTpjaQ';\n\n  constructor(\n    private storage: AuthStorageManagementService,\n    private readonly libConfig: AuthLibConfig\n  ) {\n    super();\n  }\n\n  initialize(): Promise<void> {\n    return new Promise((resolve, reject) => {\n      resolve();\n    });\n  }\n\n  getLoginStatus(): Promise<SocialUser> {\n    return new Promise((resolve, reject) => {});\n  }\n\n  signIn(signInOptions?: any): Promise<SocialUser> {\n    return new Promise((resolve, reject) => {\n      this.constructRedirectUrl(signInOptions.state, signInOptions.challenge);\n    });\n  }\n\n  constructRedirectUrl(state: string, challenge: string): void {\n    let redirectUrl: string;\n    redirectUrl = this.twitterRedirectUrl;\n    redirectUrl += '?response_type=code';\n    redirectUrl += '&client_id=' + this.clientId;\n    redirectUrl += '&redirect_uri=' + this.libConfig.twitterCallback;\n    redirectUrl += '&scope=tweet.read%20users.read%20offline.access';\n    redirectUrl += '&state=' + state;\n    redirectUrl += '&code_challenge=' + challenge;\n    redirectUrl += '&code_challenge_method=plain';\n    this.storage.setTwitterChallenge(challenge);\n    // console.log('callback', this.libConfig.twitterCallback);\n    // console.log('libConfig', this.libConfig);\n    window.open(redirectUrl, '_self').focus();\n  }\n\n  signOut(): Promise<void> {\n    return new Promise((resolve, reject) => {});\n  }\n}\n","\nexport enum AuthActionsList {\n  USER_LOGOUT = 'user_logout',\n  ME_DATA_SUCCESSFULL = 'me_data',\n  ME_DATA_ERROR = 'me_data_error',\n  RESEND_SUCCESSFULL = 'resend_succ',\n  RESEND_ERROR = 'resend_error',\n  VERIFICATION_SUCCESSFULL = 'verification_succ',\n  VERIFICATION_ERROR = 'confirmation_error',\n  CREDENTIALS_ERROR = 'credentials_error',\n  METAMASK_CREDENTIALS_ERROR = 'credentials_error_metamask',\n  WALLETCONNECT_CREDENTIALS_ERROR = 'credentials_error_walletconnect',\n  UE_ISSUE_TOKEN_ERROR = 'ue_issue_error',\n  UE_AUTHORIZATION_SUCCESSFULL = 'ue_authorization_response',\n  UE_AUTHORIZATION_ERROR = 'ue_authorize_error',\n  REGISTER_DATA_SUCCESSFULL = 'register_data',\n  REGISTER_CREDENTIALS_ERROR = 'register_credentials_error',\n  METAMASK_REGISTER_CREDENTIALS_ERROR = 'register_credentials_error_metamask',\n  WALLETCONNECT_REGISTER_CREDENTIALS_ERROR = 'register_credentials_error_walletconnect',\n}\n","export enum Methods {\n  METAMASK,\n  OKX,\n  WALLET_CONNECT,\n  EMAIL,\n  FACEBOOK,\n  GOOGLE,\n  TWITTER,\n}\n","export class SocialUser {\n  provider: string;\n  id: string;\n  email: string;\n  name: string;\n  photoUrl: string;\n  firstName: string;\n  lastName: string;\n  authToken: string;\n  authentication?: {\n    acessToken: string;\n    idToken: string;\n    refreshToken: string;\n  }\n  response: any;\n}\n","import { SocialUser } from \"../../models/social-user\";\nimport { BaseLoginProvider } from \"./base-login-provider\";\nimport { FacebookLogin } from '@capacitor-community/facebook-login';\n\ndeclare let FB: any;\n\nexport class FacebookLoginProvider extends BaseLoginProvider {\n  public static readonly PROVIDER_ID: string = 'FACEBOOK';\n\n  initialized = false;\n\n  requestOptions = {\n    scopes: ['email', 'public_profile', 'user_photos'],\n    locale: 'en_US',\n    fields: ['name', 'email', 'picture', 'first_name', 'last_name'],\n    version: 'v10.0',\n  };\n\n  constructor(private clientId: string, initOptions: Object = {}) {\n    super();\n  }\n\n  initialize(): Promise<void> {\n    return new Promise((resolve, reject) => {\n      try {\n        FacebookLogin.initialize({ appId: this.clientId }).then(() => {\n          this.initialized = true;\n          resolve();\n        })\n      } catch (err) {\n        reject(err);\n      }\n\n      // try {\n      //   this.loadScript(\n      //     FacebookLoginProvider.PROVIDER_ID,\n      //     `//connect.facebook.net/${this.requestOptions.locale}/sdk.js`,\n      //     () => {\n      //       FB.init({\n      //         appId: this.clientId,\n      //         autoLogAppEvents: true,\n      //         cookie: true,\n      //         xfbml: true,\n      //         version: this.requestOptions.version,\n      //       });\n      //       resolve();\n      //     }\n      //   );\n      // } catch (err) {\n      //   reject(err);\n      // }\n    });\n  }\n\n  getLoginStatus(): Promise<SocialUser> {\n    return new Promise((resolve, reject) => {\n      if (this.initialized) {\n        resolve(new SocialUser());\n      } else {\n        reject(\n          `No user is currently logged in with ${FacebookLoginProvider.PROVIDER_ID}`\n        );\n      }\n      // FB.getLoginStatus((response: any) => {\n      //   if (response.status === 'connected') {\n      //     let authResponse = response.authResponse;\n      //     FB.api(`/me?fields=${this.requestOptions.fields}`, (fbUser: any) => {\n      //       let user: SocialUser = new SocialUser();\n\n      //       user.id = fbUser.id;\n      //       user.name = fbUser.name;\n      //       user.email = fbUser.email;\n      //       user.photoUrl =\n      //         'https://graph.facebook.com/' +\n      //         fbUser.id +\n      //         '/picture?type=normal&access_token=' +\n      //         authResponse.accessToken;\n      //       user.firstName = fbUser.first_name;\n      //       user.lastName = fbUser.last_name;\n      //       user.authToken = authResponse.accessToken;\n\n      //       user.response = fbUser;\n\n      //       resolve(user);\n      //     });\n      //   } else {\n      //     reject(\n      //       `No user is currently logged in with ${FacebookLoginProvider.PROVIDER_ID}`\n      //     );\n      //   }\n      // });\n    });\n  }\n\n  signIn(signInOptions?: any): Promise<SocialUser> {\n    return new Promise((resolve, reject) => {\n      try {\n        FacebookLogin.login({ permissions: this.requestOptions.scopes }).then((fbResponse) => {\n          console.log(`Facebook response`, fbResponse);\n          if (fbResponse.accessToken) {\n            FacebookLogin.getProfile<{\n              id: string;\n              email: string,\n              name: string,\n              first_name: string,\n              last_name: string,\n              picture: {\n                data: {\n                  height: number,\n                  width: number,\n                  url: string,\n                  is_silhouette: boolean\n                }\n              }\n            }>({ fields: this.requestOptions.fields })\n              .then((fbUser) => {\n                console.log(`Facebook user`, fbUser);\n                let user: SocialUser = new SocialUser();\n                user.id = fbUser.id;\n                user.name = fbUser.name ? fbUser.name : fbUser.first_name + fbUser.last_name;\n                user.email = fbUser.email;\n                user.photoUrl = fbUser.picture.data.url;\n                user.firstName = fbUser.first_name;\n                user.lastName = fbUser.last_name;\n                user.authToken = fbResponse.accessToken.token\n                user.response = fbUser;\n                resolve(user);\n              })\n          }\n        })\n      }\n      catch (err) {\n        reject(err);\n      }\n\n      // FB.login((response: any) => {\n      //   if (response.authResponse) {\n      //     let authResponse = response.authResponse;\n      //     FB.api(`/me?fields=${options.fields}`, (fbUser: any) => {\n      //       let user: SocialUser = new SocialUser();\n\n      //       user.id = fbUser.id;\n      //       user.name = fbUser.name;\n      //       user.email = fbUser.email;\n      //       user.photoUrl =\n      //         'https://graph.facebook.com/' +\n      //         fbUser.id +\n      //         '/picture?type=normal';\n      //       user.firstName = fbUser.first_name;\n      //       user.lastName = fbUser.last_name;\n      //       user.authToken = authResponse.accessToken;\n\n      //       user.response = fbUser;\n\n      //       resolve(user);\n      //     });\n      //   } else {\n      //     reject('User cancelled login or did not fully authorize.');\n      //   }\n      // }, options);\n    });\n  }\n\n  signOut(): Promise<void> {\n    return new Promise((resolve, reject) => {\n      // FB.logout((response: any) => {\n      //   resolve();\n      // });\n      FacebookLogin.logout().then(() => {\n        resolve();\n      })\n    });\n  }\n}\n","\n\nimport { SocialUser } from \"../../models/social-user\";\nimport { BaseLoginProvider } from \"./base-login-provider\";\nimport { GoogleAuth } from '@codetrix-studio/capacitor-google-auth';\n\nexport interface GoogleInitOptions {\n  /**\n   * enables the One Tap mechanism, and makes auto-login possible\n   */\n  oneTapEnabled?: boolean;\n  /**\n   * list of permission scopes to grant in case we request an access token\n   */\n  scopes?: string[];\n  /**\n    * This attribute sets the DOM ID of the container element. If it's not set, the One Tap prompt is displayed in the top-right corner of the window.\n    */\n  prompt_parent_id?: string;\n\n  /**\n   * Optional, defaults to 'select_account'.\n   * A space-delimited, case-sensitive list of prompts to present the\n   * user.\n   * Possible values are:\n   * empty string The user will be prompted only the first time your\n   *     app requests access. Cannot be specified with other values.\n   * 'none' Do not display any authentication or consent screens. Must\n   *     not be specified with other values.\n   * 'consent' Prompt the user for consent.\n   * 'select_account' Prompt the user to select an account.\n   */\n  prompt?: '' | 'none' | 'consent' | 'select_account';\n}\n\nconst defaultInitOptions: GoogleInitOptions = {\n  oneTapEnabled: true,\n};\n\nexport class GoogleLoginProvider extends BaseLoginProvider {\n  public static readonly PROVIDER_ID: string = 'GOOGLE';\n\n  initialized = false;\n  initOptions: GoogleInitOptions = {\n    oneTapEnabled: false,\n    prompt: 'none',\n    scopes: [\n      'https://www.googleapis.com/auth/userinfo.email',\n      'https://www.googleapis.com/auth/userinfo.profile',\n      'openid']\n  };\n\n  constructor(\n    private clientId: string,\n  ) {\n    super();\n  }\n\n  initialize(): Promise<void> {\n    return new Promise((resolve, reject) => {\n      try {\n        GoogleAuth.initialize({\n          clientId: this.clientId,\n          scopes: this.initOptions.scopes,\n          grantOfflineAccess: false,\n        });\n        resolve();\n        this.initialized = true\n      } catch (err) {\n        reject(err);\n      }\n    });\n  }\n\n  getLoginStatus(): Promise<SocialUser> {\n    return new Promise((resolve, reject) => {\n      if (this.initialized) {\n        resolve(new SocialUser());\n      } else {\n        reject(\n          `No user is currently logged in with ${GoogleLoginProvider.PROVIDER_ID}`\n        );\n      }\n    });\n  }\n\n  signIn(signInOptions?: any): Promise<SocialUser> {\n    return new Promise((resolve, reject) => {\n      try {\n        GoogleAuth.signIn().then((googleUser) => {\n          let user: SocialUser = new SocialUser();\n          user.id = googleUser.id;\n          user.name = googleUser.name ? googleUser.name : googleUser.givenName + googleUser.familyName;\n          user.email = googleUser.email;\n          user.photoUrl = googleUser.imageUrl;\n          user.firstName = googleUser.givenName;\n          user.lastName = googleUser.familyName;\n          user.authToken = googleUser.authentication.accessToken;\n          user.response = googleUser;\n          resolve(user);\n        })\n      } catch (err) {\n        reject(err);\n      }\n    });\n  }\n\n  signOut(): Promise<void> {\n    return new Promise((resolve, reject) => {\n      GoogleAuth.signOut().then(() => {\n        resolve();\n      });\n    });\n  }\n\n  getAccessToken(): Promise<string> {\n    return new Promise((resolve, reject) => {\n    });\n  }\n\n  revokeAccessToken(): Promise<void> {\n    return new Promise((resolve, reject) => {\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AuthLibConfig } from '../lib-config';\n\nimport {\n  CookieService,\n  FlashMessageService,\n  HttpRequestMethod,\n  HttpRequestParamType,\n  RequestCallsService,\n} from '@qorpo/common';\nimport { AuthStorageManagementService } from './auth-storage-management.service';\nimport { RecaptchaService } from './recaptcha.service';\n\nimport { AuthSubjectAction } from '../models/auth-subject-action.model';\nimport { IssueTokenBodyMetamask } from '../models/issue-token-body-metamask';\nimport { IssueTokenBodySocial } from '../models/issue-token-body-social';\nimport { IssueTokenReqCognito } from '../models/issue-token-req-cognito';\nimport { RegisterBodyCognito } from '../models/register-body-cognito';\nimport { RegisterBodyMetamask } from '../models/register-body-metamask';\n\nimport { Observable, of, Subject } from 'rxjs';\n\nimport { StorageManagementService } from '@qorpo/metamask';\nimport { EP_LIST, getEndpointName } from '../endpoints/endpoints.config';\nimport { AuthActionsList } from '../enums/auth-actions-list.enum';\n\ndeclare let grecaptcha: any;\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class AuthService {\n  authActions$: Subject<AuthSubjectAction> = new Subject<AuthSubjectAction>();\n\n  private useHomeRedirect = true;\n  private useRegistrationDoneRedirect = false;\n\n  constructor(\n    private recaptcha: RecaptchaService,\n    private request: RequestCallsService,\n    private storage: AuthStorageManagementService,\n    private web3Storage: StorageManagementService,\n    private flash: FlashMessageService,\n    private readonly libConfig: AuthLibConfig,\n    private router: Router,\n    private cookie: CookieService\n  ) {}\n\n  login(\n    dataObj: any,\n    useMFA: boolean,\n    useMFARecovery: boolean,\n    ueToken?: string\n  ): void {\n    let provider = 'cognito';\n    if (dataObj.provider) {\n      provider = dataObj.provider;\n    }\n    grecaptcha.enterprise\n      .execute(this.recaptcha.recaptchaId, {\n        action: this.recaptcha.recaptchaActions.login,\n      })\n      .then((token) => {\n        const datas: IssueTokenReqCognito = {\n          password: dataObj.password,\n          provider,\n          'g-recaptcha-token': token,\n        };\n        if (dataObj?.email) {\n          datas.email = dataObj?.email?.toLowerCase();\n        }\n        if (useMFA && !useMFARecovery) {\n          datas.mfa_code = dataObj?.authCode ? dataObj.authCode : dataObj.mfa_code;\n        }\n        if (useMFARecovery) {\n          datas.mfa_recovery_code = dataObj.recoveryCode ? dataObj.recoveryCode : dataObj.mfa_recovery_code;\n        }\n        if (dataObj?.token) {\n          datas.token = dataObj.token;\n        }\n        if (ueToken) {\n          datas.ue_token = ueToken;\n          this.useHomeRedirect = false;\n        }\n\n        this.postCredentialsItem(datas, provider);\n      });\n  }\n\n  web3Login(\n    dataObj: any,\n    useMFA: boolean,\n    useMFARecovery: boolean,\n    type: 'metamask' | 'wallet_connect',\n    ueToken?: string\n  ): void {\n    const mmew = this.storage.getMetaSignatureBackup();\n    const chaind = this.storage.getChainId();\n    let numberChainId = null;\n    if (chaind) {\n      numberChainId = Number(chaind);\n    } else {\n      console.error('Chain ID not detected in localStorage');\n      return;\n    }\n    if (mmew) {\n      grecaptcha.enterprise\n        .execute(this.recaptcha.recaptchaId, {\n          action: this.recaptcha.recaptchaActions.login,\n        })\n        .then((token) => {\n          const issueTokenBody: IssueTokenBodyMetamask = {\n            signature: mmew,\n            chain_id: numberChainId,\n            provider: type,\n            'g-recaptcha-token': token,\n          };\n          if (useMFA && !useMFARecovery) {\n            issueTokenBody.mfa_code = dataObj.authCode;\n          }\n          if (useMFARecovery) {\n            issueTokenBody.mfa_recovery_code = dataObj.recoveryCode;\n          }\n          if (ueToken) {\n            issueTokenBody.ue_token = ueToken;\n            this.useHomeRedirect = false;\n          }\n\n          this.postCredentialsItem(issueTokenBody, type);\n          this.storage.removeMetaSignatureBackup();\n        });\n    } else {\n      console.error('Web3 backup signature not detected in localStorage');\n      return;\n    }\n  }\n\n  postCredentialsItem(\n    data: IssueTokenReqCognito | IssueTokenBodyMetamask | IssueTokenBodySocial,\n    // type: 'metamask' | 'wallet_connect' | 'cognito' | 'socials'\n    type: string\n  ): void {\n    this.request\n      .callHttpRequest(getEndpointName(EP_LIST.AUTH.ISSUE_TOKEN), {\n        method: HttpRequestMethod.POST_METHOD,\n        params: [{ value: data, type: HttpRequestParamType.BODY_PARAM },\n        {\n          value: true,\n          key: 'skipAuth',\n          type: HttpRequestParamType.HEADER_PARAM,\n        }],\n      })\n      .subscribe({\n        next: (response) => {\n          this.setStorageTokens(response.data);\n          this.getMeData();\n          this.authActions$.next({ key: AuthActionsList.UE_ISSUE_TOKEN_ERROR, value: response });\n        },\n        error: (error) => {\n          switch (type) {\n            case 'cognito':\n              {\n                this.authActions$.next({\n                  key: AuthActionsList.CREDENTIALS_ERROR,\n                  value: error,\n                });\n              }\n              break;\n            case 'metamask':\n              {\n                this.authActions$.next({\n                  key: AuthActionsList.METAMASK_CREDENTIALS_ERROR,\n                  value: error,\n                });\n              }\n              break;\n            case 'wallet_connect':\n              {\n                this.authActions$.next({\n                  key: AuthActionsList.WALLETCONNECT_CREDENTIALS_ERROR,\n                  value: error,\n                });\n              }\n              break;\n\n            default:\n              this.authActions$.next({\n                key: AuthActionsList.CREDENTIALS_ERROR,\n                value: error,\n              });\n              break;\n          }\n        },\n      });\n  }\n\n  postConfirmAuthCode(data: { email: string; code: string }): void {\n    grecaptcha.enterprise\n      .execute(this.recaptcha.recaptchaId, {\n        action: this.recaptcha.recaptchaActions.activation,\n      })\n      .then((token) => {\n        const body = {\n          'g-recaptcha-token': token,\n          email: data.email,\n          code: data.code,\n        };\n        this.request\n          .callHttpRequest(getEndpointName(EP_LIST.AUTH.CONFIRM_ACTIVATION_CODE), {\n            method: HttpRequestMethod.POST_METHOD,\n            params: [{ value: body, type: HttpRequestParamType.BODY_PARAM }],\n          })\n          .subscribe({\n            next: (response) => {\n              this.setStorageTokens(response.data);\n              this.useRegistrationDoneRedirect = true;\n              this.useHomeRedirect = false;\n              this.authActions$.next({\n                key: AuthActionsList.VERIFICATION_SUCCESSFULL,\n                value: response,\n              });\n              this.getMeData();\n            },\n            error: (error) => {\n              this.authActions$.next({\n                key: AuthActionsList.VERIFICATION_ERROR,\n                value: error,\n              });\n            },\n          });\n      });\n  }\n\n  postResetConfirmation(email: string): void {\n    grecaptcha.enterprise\n      .execute(this.recaptcha.recaptchaId, {\n        action: this.recaptcha.recaptchaActions.resend_activation,\n      })\n      .then((token) => {\n        this.request\n          .callHttpRequest(getEndpointName(EP_LIST.AUTH.RESEND_ACTIVATION_CODE), {\n            method: HttpRequestMethod.POST_METHOD,\n            params: [\n              { value: { email, 'g-recaptcha-token': token }, type: HttpRequestParamType.BODY_PARAM },\n            ],\n          })\n          .subscribe(\n            (response) => {\n              this.authActions$.next({ key: AuthActionsList.RESEND_SUCCESSFULL, value: response });\n            },\n            (error) => {\n              this.authActions$.next({ key: AuthActionsList.RESEND_ERROR, value: error });\n            }\n          );\n      });\n  }\n\n  setStorageTokens(token: any): void {\n    this.storage.setIdToken(token.id_token);\n    this.storage.setAccessToken(token.access_token);\n    this.storage.setRefreshToken(token.refresh_token);\n  }\n\n  getMeData(): void {\n    this.request\n      .callHttpRequest(getEndpointName(EP_LIST.USER_MANAGEMENT.ME), {\n        method: HttpRequestMethod.GET_METHOD,\n      })\n      .subscribe({\n        next: (response) => {\n          this.storage.setIdentity(response.data);\n          if (this.useHomeRedirect) {\n            this.homeRedirect();\n          }\n          if (this.useRegistrationDoneRedirect) {\n            this.registrationDoneRedirect();\n          }\n          this.authActions$.next({ key: AuthActionsList.ME_DATA_SUCCESSFULL, value: response });\n        },\n        error: (error) => {\n          console.log(error);\n          this.authActions$.next({ key: AuthActionsList.ME_DATA_ERROR, value: error });\n        },\n      });\n  }\n\n  tokenRefresh(): Observable<any> {\n    const token = this.storage.getRefreshToken();\n    const mail = this.storage.getUserEmail();\n\n    const subject = new Subject<any>();\n    if (!token) {\n      this.logout();\n      return of(false);\n    } else {\n      this.request\n        .callHttpRequest(getEndpointName(EP_LIST.AUTH.REFRESH_TOKEN), {\n          method: HttpRequestMethod.POST_METHOD,\n          params: [\n            {\n              value: {\n                email: mail,\n                refresh_token: token,\n              },\n              type: HttpRequestParamType.BODY_PARAM,\n            },\n            {\n              value: true,\n              key: 'skipAuth',\n              type: HttpRequestParamType.HEADER_PARAM,\n            },\n          ],\n        })\n        .subscribe({\n          next: (response) => {\n            this.storage.setIdToken(response.data.id_token);\n            subject.next(response);\n          },\n          error: () => {\n            this.logout();\n            window.location.reload();\n            return of(false);\n          },\n        });\n      return subject.asObservable();\n    }\n  }\n\n  homeRedirect(): void {\n    this.router.navigate([this.libConfig.loginRedirectRoute]);\n  }\n\n  registrationDoneRedirect(): void {\n    this.router.navigate([this.libConfig.registerRedirectRoute]);\n  }\n\n  logout(withoutNotif?: boolean): void {    \n    const token = this.storage.getRefreshToken();  \n    if (withoutNotif !== true) {\n      this.flash.error('Logout', 'You were logged out');\n    }\n    \n    this.storage.clearStorage();    \n    this.authActions$.next({ key: AuthActionsList.USER_LOGOUT, value: null });   \n    this.router.navigate([this.libConfig.logoutRedirectRoute]);\n    \n    this.revokeToken(token);\n  }\n\n  register(dataObj: any, ref?: string): void {\n    grecaptcha.enterprise\n      .execute(this.recaptcha.recaptchaId, {\n        action: this.recaptcha.recaptchaActions.register,\n      })\n      .then((token) => {\n        let provider = 'cognito';\n        let isFromCampaign = this.storage.getIsRegisterFromCampaign();\n        if (dataObj.provider) {\n          provider = dataObj.provider;\n        }\n\n        const datas: RegisterBodyCognito = {\n          'g-recaptcha-token': token,\n          tos: dataObj.tosCheck,\n          privacy_marketing_consent: dataObj.promotionsCheck,\n          email: dataObj?.email ? dataObj?.email?.toLowerCase() : null,\n          password: dataObj.password,\n          password_confirmation: dataObj.repeatPassword,\n          nick: dataObj.username,\n          provider,\n          country_id: dataObj?.country?.id ? dataObj?.country?.id : null,\n          ref: ref ? ref : this.cookie.getCookie(this.libConfig.storageKeys.user_referal),\n          token: dataObj?.token,\n          registration_campaign: isFromCampaign\n        };\n\n        this.postRegisterItem(datas, provider);\n      });\n  }\n\n  registerByWeb3(\n    dataObj: any,\n    provider: 'metamask' | 'wallet_connect',\n    ref?: string\n  ) {\n    const metaData = this.getMetamaskData();\n    grecaptcha.enterprise\n      .execute(this.recaptcha.recaptchaId, {\n        action: this.recaptcha.recaptchaActions.register,\n      })\n      .then((token) => {\n        let isFromCampaign = this.storage.getIsRegisterFromCampaign();\n        const registerBody: RegisterBodyMetamask = {\n          'g-recaptcha-token': token,\n          tos: dataObj.tosCheck,\n          privacy_marketing_consent: dataObj.promotionsCheck,\n          email: dataObj?.email ? dataObj?.email?.toLowerCase() : null,\n          signature: metaData.signature,\n          chain_id: metaData.chainId,\n          nick: dataObj.username,\n          country_id: dataObj?.country?.id ? dataObj?.country?.id : null,\n          provider: provider,\n          ref: ref ? ref : this.cookie.getCookie(this.libConfig.storageKeys.user_referal),\n          registration_campaign: isFromCampaign,\n        };\n\n        this.postRegisterItem(registerBody, provider);\n      });\n  }\n\n  getMetamaskData(): { signature: string; chainId: number } | null {\n    const signature = this.storage.getMetaSignature();\n    const chaind = this.storage.getChainId();\n    if (signature && chaind) {\n      return { signature: signature, chainId: Number(chaind) };\n    } else {\n      return null;\n    }\n  }\n\n  postRegisterItem(\n    data: RegisterBodyCognito | RegisterBodyMetamask,\n    type: string\n    // type: 'metamask' | 'wallet_connect' | 'cognito'\n  ): void {\n    this.request\n      .callHttpRequest(getEndpointName(EP_LIST.AUTH.REGISTER), {\n        method: HttpRequestMethod.POST_METHOD,\n        params: [{ value: data, type: HttpRequestParamType.BODY_PARAM }],\n      })\n      .subscribe({\n        next: (response) => {\n          this.authActions$.next({ key: AuthActionsList.REGISTER_DATA_SUCCESSFULL, value: response });\n        },\n        error: (error) => {\n          switch (type) {\n            case 'cognito':\n              {\n                this.authActions$.next({\n                  key: AuthActionsList.REGISTER_CREDENTIALS_ERROR,\n                  value: error,\n                });\n              }\n              break;\n            case 'metamask':\n              {\n                this.authActions$.next({\n                  key: AuthActionsList.METAMASK_REGISTER_CREDENTIALS_ERROR,\n                  value: error,\n                });\n              }\n              break;\n            case 'wallet_connect':\n              {\n                this.authActions$.next({\n                  key: AuthActionsList.WALLETCONNECT_REGISTER_CREDENTIALS_ERROR,\n                  value: error,\n                });\n              }\n              break;\n\n            default:\n              this.authActions$.next({\n                key: AuthActionsList.REGISTER_CREDENTIALS_ERROR,\n                value: error,\n              });\n              break;\n          }\n        },\n      });\n  }\n\n  authorizeUeLoggedUser(ueToken: string) {\n    this.request\n      .callHttpRequest(getEndpointName(EP_LIST.UE_AUTH.AUTHORIZE), {\n        method: HttpRequestMethod.POST_METHOD,\n        params: [{ value: { token: ueToken }, type: HttpRequestParamType.BODY_PARAM }],\n      })\n      .subscribe({\n        next: (response) => {\n          this.authActions$.next({\n            key: AuthActionsList.UE_AUTHORIZATION_SUCCESSFULL,\n            value: response,\n          });\n        },\n        error: (error) => {\n          this.authActions$.next({ key: AuthActionsList.UE_AUTHORIZATION_ERROR, value: error });\n        },\n      });\n  }\n\n  private revokeToken(token) {\n    this.request\n    .callHttpRequest(getEndpointName(EP_LIST.AUTH.REVOKE_TOKEN), {\n      method: HttpRequestMethod.POST_METHOD,\n      params: [\n        {\n          value: {\n            refresh_token: token,\n          },\n          type: HttpRequestParamType.BODY_PARAM,\n        }       \n      ],\n    }).subscribe();\n  }\n}\n","import { Inject, Injectable, Injector, NgZone, Type } from '@angular/core';\nimport { AsyncSubject, isObservable, Observable, ReplaySubject } from 'rxjs';\nimport { LoginProvider } from '../../models/login-provider';\nimport { SocialUser } from '../../models/social-user';\nimport { GoogleLoginProvider } from './google-login-provider';\n\n/**\n * An interface to define the shape of the service configuration options.\n */\nexport interface SocialAuthServiceConfig {\n  autoLogin?: boolean;\n  providers: { id: string; provider: LoginProvider | Type<LoginProvider> }[];\n  onError?: (error: any) => any;\n}\n\n/**\n * The service encapsulating the social login functionality. Exposes methods like\n * `signIn`, `signOut`. Also, exposes an `authState` `Observable` that one can\n * subscribe to get the current logged in user information.\n *\n * @dynamic\n */\n@Injectable({ providedIn: 'root' })\nexport class SocialAuthService {\n  private static readonly ERR_LOGIN_PROVIDER_NOT_FOUND =\n    'Login provider not found';\n  private static readonly ERR_NOT_LOGGED_IN = 'Not logged in';\n  private static readonly ERR_NOT_INITIALIZED =\n    'Login providers not ready yet. Are there errors on your console?';\n  private static readonly ERR_NOT_SUPPORTED_FOR_REFRESH_TOKEN =\n    'Chosen login provider is not supported for refreshing a token';\n  private static readonly ERR_NOT_SUPPORTED_FOR_ACCESS_TOKEN =\n    'Chosen login provider is not supported for getting an access token';\n\n  private providers: Map<string, LoginProvider> = new Map();\n  private autoLogin = false;\n\n  private _user: SocialUser | null = null;\n  private _authState: ReplaySubject<SocialUser | null> = new ReplaySubject(1);\n\n  /* Consider making this an enum comprising LOADING, LOADED, FAILED etc. */\n  private initialized = false;\n  private _initState: AsyncSubject<boolean> = new AsyncSubject();\n\n  /** An `Observable` that one can subscribe to get the current logged in user information */\n  get authState(): Observable<SocialUser> {\n    return this._authState.asObservable();\n  }\n\n  /** An `Observable` to communicate the readiness of the service and associated login providers */\n  get initState(): Observable<boolean> {\n    return this._initState.asObservable();\n  }\n\n  /**\n   * @param config A `SocialAuthServiceConfig` object or a `Promise` that resolves to a `SocialAuthServiceConfig` object\n   */\n  constructor(\n    @Inject('SocialAuthServiceConfig')\n    config: SocialAuthServiceConfig | Promise<SocialAuthServiceConfig>,\n    private readonly _ngZone: NgZone,\n    private readonly _injector: Injector\n  ) {\n    if (config instanceof Promise) {\n      config.then((config: SocialAuthServiceConfig) => {\n        this.initialize(config);\n      });\n    } else {\n      this.initialize(config);\n    }\n  }\n\n  private initialize(config: SocialAuthServiceConfig) {\n    this.autoLogin = config.autoLogin !== undefined ? config.autoLogin : false;\n    const { onError = console.error } = config;\n\n    config.providers.forEach((item) => {\n      this.providers.set(\n        item.id,\n        'prototype' in item.provider\n          ? this._injector.get(item.provider)\n          : item.provider\n      );\n    });\n\n    Promise.all(\n      Array.from(this.providers.values()).map((provider) =>\n        provider.initialize(this.autoLogin)\n      )\n    )\n      .then(() => {\n        if (this.autoLogin) {\n          const loginStatusPromises = [];\n          let loggedIn = false;\n\n          this.providers.forEach((provider: LoginProvider, key: string) => {\n            const promise = provider.getLoginStatus();\n            loginStatusPromises.push(promise);\n            promise\n              .then((user: SocialUser) => {\n                this.setUser(user, key);\n                loggedIn = true;\n              })\n              .catch(console.debug);\n          });\n          Promise.all(loginStatusPromises).catch(() => {\n            if (!loggedIn) {\n              this._user = null;\n              this._authState.next(null);\n            }\n          });\n        }\n\n        this.providers.forEach((provider, key) => {\n          if (isObservable(provider.changeUser)) {\n            provider.changeUser.subscribe((user) => {\n              this._ngZone.run(() => {\n                this.setUser(user, key);\n              });\n            });\n          }\n        });\n      })\n      .catch((error) => {\n        onError(error);\n      })\n      .finally(() => {\n        this.initialized = true;\n        this._initState.next(this.initialized);\n        this._initState.complete();\n      });\n  }\n\n  async getAccessToken(providerId: string): Promise<string> {\n    const providerObject = this.providers.get(providerId);\n    if (!this.initialized) {\n      throw SocialAuthService.ERR_NOT_INITIALIZED;\n    } else if (!providerObject) {\n      throw SocialAuthService.ERR_LOGIN_PROVIDER_NOT_FOUND;\n    } else if (!(providerObject instanceof GoogleLoginProvider)) {\n      throw SocialAuthService.ERR_NOT_SUPPORTED_FOR_ACCESS_TOKEN;\n    }\n\n    return await providerObject.getAccessToken();\n  }\n\n  refreshAuthToken(providerId: string): Promise<void> {\n    return new Promise((resolve, reject) => {\n      if (!this.initialized) {\n        reject(SocialAuthService.ERR_NOT_INITIALIZED);\n      } else {\n        const providerObject = this.providers.get(providerId);\n        if (providerObject) {\n          if (typeof providerObject.refreshToken !== 'function') {\n            reject(SocialAuthService.ERR_NOT_SUPPORTED_FOR_REFRESH_TOKEN);\n          } else {\n            providerObject\n              .refreshToken()\n              .then((user) => {\n                this.setUser(user, providerId);\n                resolve();\n              })\n              .catch((err) => {\n                reject(err);\n              });\n          }\n        } else {\n          reject(SocialAuthService.ERR_LOGIN_PROVIDER_NOT_FOUND);\n        }\n      }\n    });\n  }\n\n  refreshAccessToken(providerId: string): Promise<void> {\n    return new Promise((resolve, reject) => {\n      if (!this.initialized) {\n        reject(SocialAuthService.ERR_NOT_INITIALIZED);\n      } else if (providerId !== GoogleLoginProvider.PROVIDER_ID) {\n        reject(SocialAuthService.ERR_NOT_SUPPORTED_FOR_REFRESH_TOKEN);\n      } else {\n        const providerObject = this.providers.get(providerId);\n        if (providerObject instanceof GoogleLoginProvider) {\n          providerObject.revokeAccessToken().then(resolve).catch(reject);\n        } else {\n          reject(SocialAuthService.ERR_LOGIN_PROVIDER_NOT_FOUND);\n        }\n      }\n    });\n  }\n\n  /**\n   * A method used to sign in a user with a specific `LoginProvider`.\n   *\n   * @param providerId Id with which the `LoginProvider` has been registered with the service\n   * @param signInOptions Optional `LoginProvider` specific arguments\n   * @returns A `Promise` that resolves to the authenticated user information\n   */\n  signIn(providerId: string, signInOptions?: any): Promise<SocialUser> {\n    return new Promise((resolve, reject) => {\n      if (!this.initialized) {\n        reject(SocialAuthService.ERR_NOT_INITIALIZED);\n      } else {\n        let providerObject = this.providers.get(providerId);\n        if (providerObject) {\n          providerObject\n            .signIn(signInOptions)\n            .then((user: SocialUser) => {\n              this.setUser(user, providerId);\n              resolve(user);\n            })\n            .catch((err) => {\n              reject(err);\n            });\n        } else {\n          reject(SocialAuthService.ERR_LOGIN_PROVIDER_NOT_FOUND);\n        }\n      }\n    });\n  }\n\n  /**\n   * A method used to sign out the currently loggen in user.\n   *\n   * @param revoke Optional parameter to specify whether a hard sign out is to be performed\n   * @returns A `Promise` that resolves if the operation is successful, rejects otherwise\n   */\n  signOut(revoke: boolean = false): Promise<void> {\n    return new Promise((resolve, reject) => {\n      if (!this.initialized) {\n        reject(SocialAuthService.ERR_NOT_INITIALIZED);\n      } else if (!this._user) {\n        reject(SocialAuthService.ERR_NOT_LOGGED_IN);\n      } else {\n        let providerId = this._user.provider;\n        let providerObject = this.providers.get(providerId);\n        if (providerObject) {\n          providerObject\n            .signOut(revoke)\n            .then(() => {\n              resolve();\n              this.setUser(null);\n            })\n            .catch((err) => {\n              reject(err);\n            });\n        } else {\n          reject(SocialAuthService.ERR_LOGIN_PROVIDER_NOT_FOUND);\n        }\n      }\n    });\n  }\n\n  private setUser(user: SocialUser | null, id?: string) {\n    if (user && id) user.provider = id;\n    this._user = user;\n    this._authState.next(user);\n  }\n}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { AuthLibConfig } from '../../lib-config';\nimport { Router } from '@angular/router';\n\n@Component({\n  selector: 'q-ue-succ-modal',\n  templateUrl: './ue-succ-modal.component.html',\n  styleUrls: ['./ue-succ-modal.component.scss'],\n})\nexport class UeSuccModalComponent {\n  @Output() closeEmitted = new EventEmitter<any>();\n\n  constructor(\n    private router: Router,\n    private readonly libConfig: AuthLibConfig\n  ) {}\n\n  routeToDashboard(): void {\n    this.router.navigate([this.libConfig.loginRedirectRoute]);\n    this.closeEmitted.emit();\n  }\n}\n","<div class=\"main-holder\">\n  <div class=\"form-holder\">\n    <button class=\"close-btn\" (click)=\"closeEmitted.emit()\">\n      <svg viewBox=\"0 0 37 37\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n        <circle cx=\"18.6055\" cy=\"18.7549\" r=\"18.1777\" fill=\"#333333\" />\n        <path\n          d=\"M18.4287 16.3252L18.6055 16.502L18.7823 16.3252L22.3938 12.7137C23.0159 12.0916 24.0246 12.0916 24.6467 12.7137L24.8235 12.5369L24.6467 12.7137C25.2688 13.3358 25.2688 14.3445 24.6467 14.9666L21.0352 18.5781L20.8584 18.7549L21.0352 18.9317L24.6466 22.5432C25.2688 23.1653 25.2688 24.1739 24.6466 24.7961C24.0245 25.4182 23.0159 25.4182 22.3938 24.7961L18.7823 21.1846L18.6055 21.0078L18.4287 21.1846L14.8172 24.7961C14.1951 25.4182 13.1864 25.4182 12.5643 24.7961C11.9422 24.174 11.9422 23.1653 12.5643 22.5432L16.1758 18.9317L16.3526 18.7549L16.1758 18.5781L12.5642 14.9666C11.9421 14.3444 11.9421 13.3358 12.5642 12.7137C13.1864 12.0915 14.195 12.0915 14.8171 12.7137L18.4287 16.3252Z\"\n          fill=\"white\"\n          fill-opacity=\"0.8\"\n          stroke=\"#333333\"\n          stroke-width=\"0.5\"\n          stroke-linecap=\"round\"\n        />\n      </svg>\n    </button>\n\n    <img\n      class=\"success-icon\"\n      src=\"/assets/images/icons/login-succ-icon.png\"\n      alt=\"success icon\"\n    />\n\n    <div class=\"top-msg-holder\">\n      <h2 class=\"top-msg\">\n        YOU WERE SUCCESSFULLY <br />\n        LOGGED IN\n      </h2>\n    </div>\n    <p class=\"description\">Now you can continue to the game.</p>\n    <div class=\"back-btn-holder\">\n      <button class=\"back-btn\" (click)=\"routeToDashboard()\">\n        Go back to dashboard\n        <svg\n          class=\"button-arrow\"\n          viewBox=\"0 0 20 17\"\n          fill=\"none\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n        >\n          <path\n            d=\"M0.941406 8.50558C0.941406 7.62005 1.65927 6.90218 2.54481 6.90218L13.6389 6.90218L9.9625 3.22575C9.33633 2.59958 9.33633 1.58437 9.9625 0.9582C10.5887 0.332034 11.6039 0.332033 12.2301 0.9582L18.6437 7.3718C18.9444 7.6725 19.1133 8.08033 19.1133 8.50558C19.1133 8.93083 18.9444 9.33866 18.6437 9.63935L12.2301 16.053C11.6039 16.6791 10.5887 16.6791 9.9625 16.053C9.33634 15.4268 9.33634 14.4116 9.9625 13.7854L13.6389 10.109L2.54481 10.109C1.65927 10.109 0.941406 9.39112 0.941406 8.50558Z\"\n            fill=\"white\"\n          />\n        </svg>\n      </button>\n    </div>\n  </div>\n</div>\n","import {\n    AfterViewInit,\n    Component,\n    HostListener,\n    Injector,\n    OnDestroy,\n    OnInit,\n    ViewChild,\n} from '@angular/core';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { TwitterLoginProvider } from '../social-logins/twitter-login-provider';\n\nimport { Subscription } from 'rxjs';\n\nimport { EP_LIST, getEndpointName } from '../../endpoints/endpoints.config';\n\nimport { HttpHeaders } from '@angular/common/http';\nimport {\n    CookieService,\n    FlashMessageService,\n    HttpRequestMethod,\n    HttpRequestParamType,\n    RequestCallsService,\n} from '@qorpo/common';\nimport { MetamaskActionsService } from '@qorpo/metamask';\nimport { Moralis } from 'moralis-v1';\nimport { AuthActionsList } from '../../enums/auth-actions-list.enum';\nimport { growInOut } from '../../files/animations';\nimport { AuthLibConfig } from '../../lib-config';\nimport { IssueTokenBodySocial } from '../../models/issue-token-body-social';\nimport { Methods } from '../../models/methods';\nimport { TwitterAuthRes } from '../../models/twitter-auth-res';\nimport { AuthRoutingService } from '../../services/auth-routing.service';\nimport { AuthStorageManagementService } from '../../services/auth-storage-management.service';\nimport { AuthService as QorpoAuth } from '../../services/auth.service';\nimport { RecaptchaService } from '../../services/recaptcha.service';\nimport { LoginFormComponent } from '../form-components/login-form/login-form.component';\nimport { FacebookLoginProvider } from '../social-logins/facebook-login-provider';\nimport { GoogleLoginProvider } from '../social-logins/google-login-provider';\nimport { SocialAuthService } from '../social-logins/social-auth.service';\n\ndeclare let grecaptcha: any;\n\nconst httpOptions = {\n  headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n  withCredentials: true,\n};\n@Component({\n  selector: 'app-login',\n  templateUrl: './login.component.html',\n  styleUrls: ['./login.component.scss'],\n  animations: [growInOut],\n})\nexport class LoginComponent implements OnInit, OnDestroy, AfterViewInit {\n  readonly provider = 'cognito';\n\n  loading = false;\n  socialLoading = false;\n  loginSucc = false;\n  socialLoadingTimeout: any;\n  token: string = undefined;\n  gauthfired = false;\n  usinggauth = false;\n  showForm = false;\n\n  isMetamaskLogin = false;\n  isWalletConnectLogin = false;\n  isSocialLogin = false;\n  selectedProvider = 'google';\n\n  email: string;\n\n  ueToken: string;\n\n  mmewa: string;\n\n  metaSwitch = false;\n  okxSwitch = false;\n\n  walletType: string;\n\n  walletConnectSwitch = false;\n  animationDisabled = true;\n  loginOptions = [\n    {\n      method: 'Metamask',\n      icon: 'metamask-icon.svg',\n      callback: () => {\n        this.checkMeta();\n      },\n    },\n    {\n      method: 'OKX',\n      icon: 'okx-logo.png',\n      callback: () => {\n        this.checkOkx();\n      },\n    },\n    {\n      method: 'WalletConnect',\n      icon: 'wallet-connect-logo.png',\n      callback: () => {\n        this.loginMethod = Methods.WALLET_CONNECT;\n        this.walletConnectSwitch = true;\n      },\n    },\n    {\n      method: 'Email',\n      icon: 'mail-icon.svg',\n      callback: () => {\n        this.loginMethod = Methods.EMAIL;\n        this.showForm = true;\n      },\n    },\n    {\n      method: 'Facebook',\n      icon: 'facebook-logo.svg',\n      callback: () => {\n        this.triggerSocialLogin('facebook');\n      },\n    },\n    {\n      method: 'Google',\n      icon: 'google-logo.svg',\n      callback: () => {\n        this.triggerSocialLogin('google');\n      },\n    },\n    {\n      method: 'Twitter',\n      icon: 'twitter-register.svg',\n      callback: () => {\n        this.triggerSocialLogin('twitter');\n      },\n    },\n  ];\n\n  mfaOnly = false;\n  twitterAuthRes: TwitterAuthRes;\n\n  loginObserver: Subscription;\n\n  Methods: typeof Methods = Methods;\n  loginMethod: Methods;\n  @ViewChild('emailForm') loginForm: LoginFormComponent;\n\n  ueNoLockedException = false;\n\n  theme: 'qid' | 'qmarket';\n\n  constructor(\n    protected injector: Injector,\n    private qAuth: QorpoAuth,\n    private router: Router,\n    private recaptcha: RecaptchaService,\n    private flash: FlashMessageService,\n    private activatedRoute: ActivatedRoute,\n    private socialAuthService: SocialAuthService,\n    private metaActions: MetamaskActionsService,\n    private storage: AuthStorageManagementService,\n    private cookie: CookieService,\n    private request: RequestCallsService,\n    private readonly libConfig: AuthLibConfig,\n    public routing: AuthRoutingService\n  ) {\n    this.theme = libConfig.themeType;\n    // super(injector);\n    this.setRouteHandler();\n  }\n\n  ngOnInit(): void {\n    this.storage.removeSocialLoginType();\n    this.setLoginObserver();\n    let token = this.storage.getIdToken();\n    if (token && this.ueToken) {\n      this.authorizeLoggedUser(this.ueToken);\n    }\n    this.clearProvider();\n  }\n\n  ngAfterViewInit() {\n    setTimeout(() => {\n      this.animationDisabled = false;\n    }, 0);\n  }\n\n  ngOnDestroy(): void {\n    if (this.loginObserver) {\n      this.loginObserver.unsubscribe();\n    }\n    this.storage.removeSavedLoginMfa();\n    this.storage.removeSavedRecoveryCode();\n    this.storage.removeUeToken();\n  }\n\n  setLoginObserver(): void {\n    this.loginObserver = this.qAuth.authActions$.subscribe({\n      next: (data) => {\n        switch (data.key) {\n          case AuthActionsList.CREDENTIALS_ERROR:\n            {\n              this.handleCredentialsError(data.value);\n            }\n            break;\n          case AuthActionsList.METAMASK_CREDENTIALS_ERROR:\n          case AuthActionsList.WALLETCONNECT_CREDENTIALS_ERROR:\n            {\n              this.handleError(data.value);\n            }\n            break;\n          case AuthActionsList.ME_DATA_SUCCESSFULL:\n            {\n              this.metaSwitch = false;\n              this.storage.setIsAdmin(data.value.data.ia);\n              this.storage.storageAction$.next({\n                key: 'storage_balance_refreshed',\n                value: null,\n              });\n              this.loading = false;\n              if (this.ueToken) {\n                this.loginSucc = true;\n                if (this.ueNoLockedException) {\n                  this.router.navigate(['/qorpo-id/manage']);\n                }\n              }\n            }\n            break;\n          case AuthActionsList.UE_AUTHORIZATION_SUCCESSFULL:\n            {\n              if (this.ueToken) {\n                this.loginSucc = true;\n              }\n            }\n            break;\n          case AuthActionsList.UE_AUTHORIZATION_ERROR:\n            {\n              if (data.value.error.error.key === 'uel_no_locked_asset') {\n                this.router.navigate(['/qorpo-id/manage']);\n              } else {\n                this.qAuth.logout(true);\n              }\n            }\n            break;\n          case AuthActionsList.UE_ISSUE_TOKEN_ERROR:\n            {\n              if (data.value.data.uel) {\n                if (\n                  data.value.data.uel.authorized === false &&\n                  data.value.data.uel.error.key === 'uel_no_locked_asset'\n                ) {\n                  this.ueNoLockedException = true;\n                  this.flash.warning('Warning', data.value.data.uel.error.message);\n                }\n              }\n            }\n            break;\n          default:\n            {\n              this.loading = false;\n              this.socialLoading = false;\n              this.walletConnectSwitch = false;\n              this.metaSwitch = false;\n            }\n            break;\n        }\n      },\n    });\n  }\n\n  setRouteHandler() {\n    this.activatedRoute.queryParams.subscribe((params: Params) => {\n      if (params.state && params.code) {\n        this.showSocialLoading();\n        const challange = this.storage.getTwitterChallenge();\n\n        let data = {\n          code: params.code,\n          code_verifier: challange,\n        };\n\n        this.request\n          .callHttpRequest(getEndpointName(EP_LIST.TWITTER_AUTH.AUTHORIZE), {\n            method: HttpRequestMethod.POST_METHOD,\n            params: [{ value: data, type: HttpRequestParamType.BODY_PARAM }],\n          })\n          .subscribe((response) => {\n            this.twitterAuthRes = response.data;\n            this.isSocialLogin = true;\n            this.selectedProvider = 'twitter';\n            this.loginMethod = Methods.TWITTER;\n            grecaptcha.enterprise\n              .execute(this.recaptcha.recaptchaId, {\n                action: this.recaptcha.recaptchaActions.login,\n              })\n              .then((token) => {\n                this.token = token;\n                const issueTokenBody: IssueTokenBodySocial = {\n                  token: this.twitterAuthRes.token,\n                  provider: 'twitter',\n                  'g-recaptcha-token': this.token,\n                };\n\n                const mfaCode = this.storage.getSavedLoginMfa();\n                const recoveryCode = this.storage.getSavedRecoveryCode();\n\n                if (mfaCode || recoveryCode) {\n                  this.usinggauth = true;\n                }\n\n                this.storage.removeSavedLoginMfa();\n                this.storage.removeSavedRecoveryCode();\n\n                const storedUeToken = this.storage.getUeToken();\n\n                if (storedUeToken) {\n                  this.ueToken = storedUeToken;\n                }\n                if (mfaCode) {\n                  issueTokenBody.mfa_code = mfaCode;\n                } else if (recoveryCode) {\n                  issueTokenBody.mfa_recovery_code = recoveryCode;\n                }\n                if (this.ueToken) {\n                  issueTokenBody.ue_token = this.ueToken;\n                }\n                this.qAuth.login(\n                  issueTokenBody,\n                  this.usinggauth,\n                  this.loginForm?.recoveryCodeField.enabled,\n                  this.ueToken\n                );\n              });\n          });\n      }\n      if (params.metaLogin) {\n        this.checkMeta();\n      }\n      if (params.emailLogin) {\n        this.showForm = true;\n        return;\n      }\n      if (params.socialLogin) {\n        const provider = this.storage.getSocialLoginType();\n        this.storage.removeSocialLoginType();\n        setTimeout(() => {\n          this.triggerSocialLogin(provider);\n        }, 500);\n      }\n      if (params['ue_token']) {\n        this.ueToken = params['ue_token'];\n      } else if (!this.ueToken) {\n        this.routing.goToLogin();\n      }\n    });\n  }\n\n  resetValues() {\n    this.isSocialLogin =\n      this.isMetamaskLogin =\n      this.isWalletConnectLogin =\n      this.usinggauth =\n      this.gauthfired =\n      this.showForm =\n      this.mfaOnly =\n        false;\n    this.loginForm.form.reset();\n    this.clearProvider();\n    this.closeModals();\n  }\n\n  resolveLoginButtonAction(): void {\n    if (this.isSocialLogin && !this.isMetamaskLogin && this.usinggauth) {\n      this.triggerSocialLogin(this.selectedProvider);\n    } else if (this.isMetamaskLogin && !this.isSocialLogin && this.usinggauth) {\n      let sig = this.storage.getMetaSignature();\n      if (sig) {\n        this.loading = true;\n        this.metaActions.finalizeLogin(sig);\n        this.triggerMetamaskLogin();\n        return;\n      }\n      this.checkMeta();\n    } else if (\n      this.isWalletConnectLogin &&\n      !this.isSocialLogin &&\n      this.usinggauth\n    ) {\n      let sig = this.storage.getMetaSignature();\n      if (sig) {\n        this.loading = true;\n        this.metaActions.finalizeLogin(sig);\n        this.triggerWalletConnectLogin();\n        return;\n      }\n      this.toggleWalletConnectModal(true);\n    } else {\n      this.triggerCognitoLogin();\n    }\n  }\n  triggerMetamaskLogin(): void {\n    this.isMetamaskLogin = true;\n    this.isWalletConnectLogin = false;\n    this.qAuth.web3Login(\n      this.loginForm?.form.value,\n      this.usinggauth,\n      this.loginForm?.recoveryCodeField.enabled,\n      'metamask',\n      this.ueToken\n    );\n  }\n\n  triggerWalletConnectLogin(): void {\n    this.isWalletConnectLogin = true;\n    this.isMetamaskLogin = false;\n    this.qAuth.web3Login(\n      this.loginForm?.form.value,\n      this.usinggauth,\n      this.loginForm?.recoveryCodeField.enabled,\n      'wallet_connect',\n      this.ueToken\n    );\n  }\n\n  triggerCognitoLogin(): void {\n    this.loginMethod = Methods.EMAIL;\n    this.loading = true;\n    this.qAuth.login(\n      this.loginForm.form.value,\n      this.usinggauth,\n      this.loginForm?.recoveryCodeField.enabled,\n      this.ueToken\n    );\n  }\n  triggerSocialLogin(provider: string): void {\n    switch (provider) {\n      case 'facebook': {\n        this.loginMethod = Methods.FACEBOOK;\n        break;\n      }\n      case 'google': {\n        this.loginMethod = Methods.GOOGLE;\n        break;\n      }\n      case 'twitter': {\n        this.loginMethod = Methods.TWITTER;\n        break;\n      }\n      default: {\n        this.loginMethod = Methods.EMAIL;\n        break;\n      }\n    }\n    this.showSocialLoading();\n    if (this.usinggauth) {\n      this.storage.setSocialLoginType(provider);\n      if (\n        this.loginForm?.authCodeField?.value &&\n        this.loginForm?.authCodeField?.enabled\n      ) {\n        this.storage.setSavedLoginMfa(this.loginForm?.authCodeField?.value);\n      }\n      if (\n        this.loginForm?.recoveryCodeField?.value &&\n        this.loginForm?.recoveryCodeField?.enabled\n      ) {\n        this.storage.setSavedRecoveryCode(\n          this.loginForm?.recoveryCodeField?.value\n        );\n      }\n    }\n    if (this.ueToken) {\n      this.storage.setUeToken(this.ueToken);\n    }\n    this.socialAuthService\n      .signIn(\n        provider === 'facebook'\n          ? FacebookLoginProvider.PROVIDER_ID\n          : provider === 'google'\n          ? GoogleLoginProvider.PROVIDER_ID\n          : TwitterLoginProvider.PROVIDER_ID,\n        provider === 'twitter'\n          ? { state: 'l', challenge: this.generateRandomString() }\n          : null\n      )\n      .then((user) => {\n        this.selectedProvider = provider;\n        grecaptcha.enterprise\n          .execute(this.recaptcha.recaptchaId, {\n            action: this.recaptcha.recaptchaActions.login,\n          })\n          .then((token) => {\n            this.token = token;\n            const issueTokenBody: IssueTokenBodySocial = {\n              token: user.authToken,\n              provider,\n              'g-recaptcha-token': this.token,\n            };\n            if (this.usinggauth && !this.loginForm?.recoveryCodeField.enabled) {\n              issueTokenBody.mfa_code = this.loginForm?.authCodeField.value;\n            }\n            if (this.usinggauth && this.loginForm?.recoveryCodeField.enabled) {\n              issueTokenBody.mfa_recovery_code =\n                this.loginForm?.recoveryCodeField.value;\n            }\n\n            if (this.ueToken) {\n              issueTokenBody.ue_token = this.ueToken;\n            }\n\n            this.isSocialLogin = true;\n            this.qAuth.postCredentialsItem(issueTokenBody, 'socials');\n            this.loading = false;\n          });\n      });\n  }\n\n  handleCredentialsError(error: any): void {\n    this.token = null;\n    const errorObj = error?.error?.error;\n    if (error?.status === 480) {\n      this.routing.goToVerification();\n    }\n    const violations = error?.error?.error?.violations || {};\n    if (error?.status === 422) {\n      // for (const [key, config] of Object.entries(this.dataObj)) {\n      //   if (violations.hasOwnProperty(key)) {\n      //     config.message = violations[key]\n      //       .reduce((result, error) => result + '\\n' + error?.message, '')\n      //       .trim();\n      //     config.valid = false;\n      //   }\n      // }\n    }\n    if (errorObj?.key === 'socialite_invalid') {\n      this.routing.goToCustom('auth_redirect_register', {\n        param: {\n          queryParams: { socialRegister: this.storage.getSocialLoginType() },\n          queryParamsHandling: 'merge',\n        },\n      });\n      this.storage.removeSocialLoginType();\n    }\n    if (errorObj?.key === 'mfa_code_required') {\n      this.flash.warning(\n        'MFA Code is required',\n        'You have enabled 2-factor authentication.'\n      );\n      if (this.isSocialLogin) {\n        this.mfaOnly = true;\n      }\n      this.fireGAuth();\n    }\n    if (errorObj?.key === 'user_not_confirmed_exception') {\n      this.flash.warning(\n        'Activation required',\n        'Your acount has not been activated yet.'\n      );\n      let email = null;\n      if (this.loginForm?.emailField?.value) {\n        email = this.loginForm?.emailField.value.toLocaleLowerCase();\n      }\n      this.routing.goToCustom('auth_redirect_verification', { path: email });\n    }\n    this.loading = false;\n    this.socialLoading = false;\n  }\n\n  fireGAuth(): void {\n    this.usinggauth = true;\n    this.showForm = true;\n    setTimeout(() => {\n      this.loginForm.enable2Fa();\n    }, 0);\n    this.loading = false;\n    this.gauthfired = true;\n    this.metaSwitch = false;\n    this.walletConnectSwitch = false;\n  }\n\n  handleError(error: any): void {\n    if (error.error?.error?.violations?.mfa_code) {\n      this.loginForm.codeErrors = { mfa_code: true };\n    }\n    if (error.error.error.key === 'user_not_confirmed_exception') {\n      this.flash.warning(\n        'Activation required',\n        'Your acount has not been activated yet.'\n      );\n      this.routing.goToVerification();\n    }\n    if (error.error.error.key === 'mfa_code_required') {\n      this.flash.warning(\n        'MFA Code is required',\n        'You have enabled 2-factor authentication.'\n      );\n      this.mfaOnly = true;\n      this.fireGAuth();\n      return;\n    }\n    if (\n      error.error.error.key === 'wallet_invalid' &&\n      this.loginMethod === Methods.METAMASK\n    ) {\n      this.metaSwitch = false;\n      this.routing.goToCustom('auth_redirect_register', {\n        param: {\n          queryParams: { register: 'metamask' },\n          queryParamsHandling: 'merge',\n        },\n      });\n    }\n    if (\n      error.error.error.key === 'wallet_invalid' &&\n      this.loginMethod === Methods.WALLET_CONNECT\n    ) {\n      this.walletConnectSwitch = false;\n      this.routing.goToCustom('auth_redirect_register', {\n        param: {\n          queryParams: { register: 'wallet_connect' },\n          queryParamsHandling: 'merge',\n        },\n      });\n    }\n    this.loading = false;\n    this.clearProvider();\n    this.closeModals();\n  }\n\n  async clearProvider() {\n    await Moralis.deactivateWeb3();\n\n    if (Moralis.isWeb3Enabled()) {\n      await Moralis.cleanup();\n    }\n\n    this.storage.removeMetaSignature();\n    this.storage.removeMetaSignatureBackup();\n    this.mmewa = null;\n  }\n\n  closeModals() {\n    this.metaSwitch = false;\n    this.walletConnectSwitch = false;\n  }\n\n  toggleMetamaskModal(state: boolean): void {\n    this.metaSwitch = state;\n  }\n\n  toggleWalletConnectModal(state: boolean): void {\n    this.walletConnectSwitch = state;\n  }\n\n  checkMeta() {\n    this.loginMethod = Methods.METAMASK;\n    this.metaActions.isMetamaskInstalled().then((response) => {\n      if (response === true) {\n        this.metaSwitch = true;\n      }\n    });\n  }\n\n  checkOkx() {\n    this.loginMethod = Methods.OKX;\n    if (window.okxwallet !== 'undefined') {\n      this.metaSwitch = true;\n    } else {\n      this.flash.warning('Warning', 'No OKX Wallet extension detected');\n    }\n  }\n\n  generateRandomString(): string {\n    let randomString = '';\n    randomString = Math.random().toString(36).slice(2, 12);\n    return randomString;\n  }\n\n  showSocialLoading(): void {\n    this.socialLoading = true;\n    if (this.socialLoadingTimeout) {\n      window.clearTimeout(this.socialLoadingTimeout);\n    }\n    this.socialLoadingTimeout = setTimeout(() => {\n      this.socialLoading = false;\n      window.clearTimeout(this.socialLoadingTimeout);\n    }, 10000);\n  }\n\n  authorizeLoggedUser(ueToken: string): void {\n    this.qAuth.authorizeUeLoggedUser(ueToken);\n  }\n\n  counter(i: number): Array<any> {\n    return new Array(i);\n  }\n\n  @HostListener('window:keydown', ['$event'])\n  onKeyDown($event) {\n    if ($event.keyCode !== 13) {\n      return;\n    }\n    if (this.showForm && this.loginForm.form.valid) {\n      this.resolveLoginButtonAction();\n    }\n  }\n}\n","<div class=\"auth-body\" [ngClass]=\"theme\">\n  <div class=\"center-content\">\n    <button *ngIf=\"showForm\" class=\"back-btn\" (click)=\"resetValues()\">\n      &lt; Back\n    </button>\n\n    <p\n      class=\"main-heading f-s-32\"\n      *ngIf=\"!showForm\"\n      [@growInOut]\n      [@.disabled]=\"animationDisabled\"\n    >\n      Log In\n    </p>\n\n    <!--Login form -->\n    <div class=\"form-holder\" *ngIf=\"showForm\">\n      <login-form #emailForm [mfaOnly]=\"mfaOnly\"></login-form>\n      <!--Submit button-->\n      <button\n        (click)=\"resolveLoginButtonAction()\"\n        class=\"my-cta-btn f-s-16 common-height\"\n        [ngClass]=\"{ disabled: !emailForm.form.valid }\"\n      >\n        <ng-container *ngIf=\"!loading; else loadingBtn\">Log in</ng-container>\n        <ng-template #loadingBtn>\n          Loading\n          <ng-container *ngFor=\"let item of counter(3); let i = index\">\n            <span class=\"loading-dot\" [attr.data-index]=\"i\">.</span>\n          </ng-container>\n        </ng-template>\n      </button>\n      <ng-container *ngIf=\"loginMethod === Methods.EMAIL\">\n        <p class=\"f-s-14 disclaimer spaced\">or do it via other accounts</p>\n        <div class=\"form-buttons-row\">\n          <ng-container *ngFor=\"let item of loginOptions\">\n            <button\n              *ngIf=\"item.method !== 'Email'\"\n              class=\"via-button\"\n              (click)=\"\n                item.method !== 'email' ? (showForm = false) : null;\n                item.callback()\n              \"\n            >\n              <img\n                [src]=\"'/assets/images/icons/' + item.icon\"\n                [alt]=\"item.method + ' icon'\"\n              />\n            </button>\n          </ng-container>\n        </div>\n      </ng-container>\n    </div>\n    <!--login options-->\n    <div class=\"buttons-holder\" *ngIf=\"!showForm\">\n      <ng-container *ngFor=\"let item of loginOptions\">\n        <button\n          class=\"option-login-btn common-height\"\n          (click)=\"item.callback()\"\n        >\n          <img\n            [src]=\"'/assets/images/icons/' + item.icon\"\n            [alt]=\"item.method + ' icon'\"\n          />\n          <p class=\"f-s-14\">Log in via {{ item.method }}</p>\n        </button>\n      </ng-container>\n    </div>\n\n    <p class=\"disclaimer f-s-16\" *ngIf=\"!showForm\">\n      Don&lsquo;t have an account?\n      <a class=\"link\" (click)=\"routing.goToRegister()\">Sign up</a>\n    </p>\n  </div>\n\n  <ng-container *ngIf=\"metaSwitch\">\n    <q-metamask-auth\n      (modalOpen)=\"toggleMetamaskModal($event)\"\n      (authFinalized)=\"triggerMetamaskLogin()\"\n      #metaAuth\n    >      \n    <app-loading [type]=\"'spin'\" [color]=\"'red'\"></app-loading>\n    </q-metamask-auth>\n  </ng-container>\n</div>\n\n<div class=\"social-loading\" *ngIf=\"socialLoading\">\n  <app-loading [type]=\"'spin'\" [color]=\"'red'\"></app-loading>\n</div>\n\n<q-ue-succ-modal\n  *ngIf=\"loginSucc && ueToken\"\n  (closeEmitted)=\"loginSucc = false\"\n>\n</q-ue-succ-modal>\n\n<ng-container *ngIf=\"walletConnectSwitch\">\n  <q-wallet-connect-auth\n    (modalOpen)=\"toggleWalletConnectModal($event)\"\n    (authFinalized)=\"triggerWalletConnectLogin()\"\n    #wcAuth\n  >\n    <div class=\"main-holder\">\n      <div class=\"form-holder\">\n        <button\n          class=\"close-btn\"\n          [ngClass]=\"{ disabled: wcAuth.web3Loading }\"\n          (click)=\"wcAuth.closeMetamaskModal()\"\n        >\n          <svg\n            viewBox=\"0 0 37 37\"\n            fill=\"none\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n          >\n            <circle cx=\"18.6055\" cy=\"18.7549\" r=\"18.1777\" fill=\"#333333\" />\n            <path\n              d=\"M18.4287 16.3252L18.6055 16.502L18.7823 16.3252L22.3938 12.7137C23.0159 12.0916 24.0246 12.0916 24.6467 12.7137L24.8235 12.5369L24.6467 12.7137C25.2688 13.3358 25.2688 14.3445 24.6467 14.9666L21.0352 18.5781L20.8584 18.7549L21.0352 18.9317L24.6466 22.5432C25.2688 23.1653 25.2688 24.1739 24.6466 24.7961C24.0245 25.4182 23.0159 25.4182 22.3938 24.7961L18.7823 21.1846L18.6055 21.0078L18.4287 21.1846L14.8172 24.7961C14.1951 25.4182 13.1864 25.4182 12.5643 24.7961C11.9422 24.174 11.9422 23.1653 12.5643 22.5432L16.1758 18.9317L16.3526 18.7549L16.1758 18.5781L12.5642 14.9666C11.9421 14.3444 11.9421 13.3358 12.5642 12.7137C13.1864 12.0915 14.195 12.0915 14.8171 12.7137L18.4287 16.3252Z\"\n              fill=\"white\"\n              fill-opacity=\"0.8\"\n              stroke=\"#333333\"\n              stroke-width=\"0.5\"\n              stroke-linecap=\"round\"\n            />\n          </svg>\n        </button>\n\n        <app-loading [type]=\"'spin'\" [color]=\"'red'\"></app-loading>\n        <div class=\"top-msg-holder\">\n          <h2 class=\"top-msg\">\n            YOUR LOGIN IS <br />\n            PROCESSING...\n          </h2>\n        </div>\n        <p class=\"description\">\n          You'll be asked to approve your login from your wallet.\n        </p>\n        <div class=\"back-btn-holder\">\n          <button class=\"back-btn disabled\">\n            Continue\n            <svg\n              class=\"button-arrow\"\n              viewBox=\"0 0 20 17\"\n              fill=\"none\"\n              xmlns=\"http://www.w3.org/2000/svg\"\n            >\n              <path\n                d=\"M0.941406 8.50558C0.941406 7.62005 1.65927 6.90218 2.54481 6.90218L13.6389 6.90218L9.9625 3.22575C9.33633 2.59958 9.33633 1.58437 9.9625 0.9582C10.5887 0.332034 11.6039 0.332033 12.2301 0.9582L18.6437 7.3718C18.9444 7.6725 19.1133 8.08033 19.1133 8.50558C19.1133 8.93083 18.9444 9.33866 18.6437 9.63935L12.2301 16.053C11.6039 16.6791 10.5887 16.6791 9.9625 16.053C9.33634 15.4268 9.33634 14.4116 9.9625 13.7854L13.6389 10.109L2.54481 10.109C1.65927 10.109 0.941406 9.39112 0.941406 8.50558Z\"\n                fill=\"white\"\n              />\n            </svg>\n          </button>\n        </div>\n      </div>\n    </div>\n  </q-wallet-connect-auth>\n</ng-container>\n","import {\n  AfterViewInit,\n  Component,\n  HostListener,\n  OnDestroy,\n  OnInit,\n  ViewChild,\n} from '@angular/core';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { CountryList, CountryManagementService, FlashMessageService, HttpRequestMethod, HttpRequestParamType, RequestCallsService } from '@qorpo/common';\nimport { MetamaskActionsService } from '@qorpo/metamask';\nimport { Subscription } from 'rxjs';\nimport { RecaptchaService } from '../../services/recaptcha.service';\n\nimport { EP_LIST, getEndpointName } from '../../endpoints/endpoints.config';\nimport { AuthService as QorpoAuth } from '../../services/auth.service';\n\nimport { EmailRegistrationFormComponent } from '../../components/form-components/email-registration-form/email-registration-form.component';\nimport { SimpleRegistrationFormComponent } from '../../components/form-components/simple-registration-form/simple-registration-form.component';\nimport { AuthActionsList } from '../../enums/auth-actions-list.enum';\nimport { growInOut } from '../../files/animations';\nimport { AuthLibConfig } from '../../lib-config';\nimport { Methods } from '../../models/methods';\nimport { TwitterAuthRes } from '../../models/twitter-auth-res';\nimport { AuthRoutingService } from '../../services/auth-routing.service';\nimport { AuthStorageManagementService } from '../../services/auth-storage-management.service';\nimport { FacebookLoginProvider } from '../social-logins/facebook-login-provider';\nimport { GoogleLoginProvider } from '../social-logins/google-login-provider';\nimport { SocialAuthService } from '../social-logins/social-auth.service';\nimport { TwitterLoginProvider } from '../social-logins/twitter-login-provider';\n\ndeclare let grecaptcha: any;\n\n@Component({\n  selector: 'app-register',\n  templateUrl: './register.component.html',\n  styleUrls: ['./register.component.scss'],\n  animations: [growInOut],\n})\nexport class RegisterComponent implements OnInit, OnDestroy, AfterViewInit {\n  metamaskModal = false;\n  walletConnectModal = false;\n  metaSwitch = false;\n  wcSwitch = false;\n  loading = false;\n  tosCheck = false;\n  marketingCheck = false;\n  socialRegister = false;\n  showForm = false;\n  socialUser: any;\n  signature: string;\n  metamaskSignature: string;\n  chainId: number;\n  animationDisabled = true;\n\n  registerOptions = [\n    {\n      method: 'Metamask',\n      icon: 'metamask-icon.svg',\n      callback: () => {\n        this.registrationMethod = Methods.METAMASK;\n        this.checkMeta();\n      },\n    },\n    {\n      method: 'OKX',\n      icon: 'okx-logo.png',\n      callback: () => {\n        this.registrationMethod = Methods.OKX;\n        this.checkOkx();\n      },\n    },\n    {\n      method: 'WalletConnect',\n      icon: 'wallet-connect-logo.png',\n      callback: () => {\n        this.registrationMethod = Methods.WALLET_CONNECT;\n        this.walletConnectRegister();\n      },\n    },\n    {\n      method: 'Email',\n      icon: 'mail-icon.svg',\n      callback: () => {\n        this.registrationMethod = Methods.EMAIL;\n        this.showForm = true;\n      },\n    },\n    {\n      method: 'Facebook',\n      icon: 'facebook-logo.svg',\n      callback: () => {\n        this.registrationMethod = Methods.FACEBOOK;\n        this.getSocialData('facebook');\n      },\n    },\n    {\n      method: 'Google',\n      icon: 'google-logo.svg',\n      callback: () => {\n        this.registrationMethod = Methods.GOOGLE;\n        this.getSocialData('google');\n      },\n    },\n    {\n      method: 'Twitter',\n      icon: 'twitter-register-icon.svg',\n      callback: () => {\n        this.registrationMethod = Methods.TWITTER;\n        this.getSocialData('twitter');\n      },\n    },\n  ];\n\n  showPassword = 'password';\n  showConfirmPassword = 'password';\n  email: string;\n  //\n  token: string;\n  twitterAuthRes: TwitterAuthRes;\n  registerObserver: Subscription;\n  web3ActionsObserver: Subscription;\n  registrationMethod: Methods = null;\n  refId: string;\n\n  countriesList: CountryList;\n\n  Methods: typeof Methods = Methods;\n  @ViewChild('emailRegistrationForm')\n  emailRegistrationForm: EmailRegistrationFormComponent;\n  @ViewChild('simpleRegistrationForm')\n  simpleRegistrationForm: SimpleRegistrationFormComponent;\n\n  theme: 'qid' | 'qmarket';\n  refferalId: string;\n\n  constructor(\n    private router: Router,\n    private recaptcha: RecaptchaService,\n    private request: RequestCallsService,\n    private flash: FlashMessageService,\n    private activatedRoute: ActivatedRoute,\n    private socialAuthService: SocialAuthService,\n    private qAuth: QorpoAuth,\n    private metaActions: MetamaskActionsService,\n    private storage: AuthStorageManagementService,\n    private countryService: CountryManagementService,\n    private readonly libConfig: AuthLibConfig,\n    public routing: AuthRoutingService\n  ) {\n    this.theme = libConfig.themeType;\n    if (this.activatedRoute.snapshot.params?.ref) {\n      this.refId = this.activatedRoute.snapshot.params?.ref;\n    }\n    this.activatedRoute.queryParams.subscribe((params: Params) => {\n      if (params.register && params.register === 'metamask') {\n        this.showMetamaskRegister(true);\n        this.getMetamaskData();\n        this.toggleMetamaskModal(true);\n        this.registrationMethod = Methods.METAMASK;\n        this.showForm = true;\n      }\n      if (params.state && params.code) {\n        const challange = this.storage.getTwitterChallenge();\n        this.storage.removeTwitterChallenge();\n\n        let data = {\n          code: params.code,\n          code_verifier: challange,\n        };\n\n        this.request\n          .callHttpRequest(getEndpointName(EP_LIST.TWITTER_AUTH.AUTHORIZE), {\n            method: HttpRequestMethod.POST_METHOD,\n            params: [{ value: data, type: HttpRequestParamType.BODY_PARAM }],\n          })\n          .subscribe((response) => {\n            this.twitterAuthRes = response.data;\n            this.showTwitterRegister(true);\n            this.socialUser = {\n              authToken: this.twitterAuthRes.token,\n              nick: this.twitterAuthRes.nick,\n              email: this.twitterAuthRes.email,\n              provider: 'twitter',\n            };\n            this.registrationMethod = Methods.TWITTER;\n            this.showForm = true;\n          });\n      }\n      if (params.socialRegister) {\n        const provider = params.socialRegister;\n        this.storage.removeSocialLoginType();\n        setTimeout(() => {\n          console.warn(`${provider} account not found!`);\n          this.getSocialData(provider);\n        }, 500);\n      }\n      if (params?.ref) {\n        this.refferalId = params?.ref;\n      }\n    });\n  }\n\n  ngOnInit(): void {\n    this.storage.removeSocialLoginType();\n    this.getMetamaskData();\n    this.setRegisterObserver();\n    this.setWeb3ActionsObserver();\n  }\n\n  ngAfterViewInit() {\n    setTimeout(() => {\n      this.animationDisabled = false;\n    }, 0);\n    this.getCountries();\n  }\n\n  ngOnDestroy(): void {\n    if (this.web3ActionsObserver) {\n      this.web3ActionsObserver.unsubscribe();\n    }\n  }\n\n  setRegisterObserver(): void {\n    this.registerObserver = this.qAuth.authActions$.subscribe({\n      next: (data) => {\n        switch (data.key) {\n          case AuthActionsList.REGISTER_CREDENTIALS_ERROR:\n          case AuthActionsList.METAMASK_REGISTER_CREDENTIALS_ERROR:\n          case AuthActionsList.WALLETCONNECT_REGISTER_CREDENTIALS_ERROR:\n            {\n              this.handleSignupError(data.value);\n            }\n            break;\n          case AuthActionsList.REGISTER_DATA_SUCCESSFULL:\n            {\n              this.flash.success(\n                'Successfully registered',\n                'Now please verify your account.'\n              );\n              let email = this.email;\n              if (!this.email) {\n                email = this.socialUser.email;\n              }\n              this.routing.goToCustom('auth_redirect_verification', {\n                path: email,\n              });\n              this.loading = false;\n              this.socialRegister = false;\n            }\n            break;\n          default:\n            break;\n        }\n      },\n    });\n  }\n\n  setWeb3ActionsObserver(): void {\n    this.web3ActionsObserver = this.metaActions.providerActions$.subscribe({\n      next: (data) => {\n        if (data.key === 'reset_options') {\n          this.backToOptions();\n        }\n      },\n    });\n  }\n\n  async getCountries() {\n    this.countriesList = await this.countryService.countryList;\n  }\n\n  triggerMetamaskSignIn(): void {\n    this.socialRegister = false;\n    this.loading = true;\n    this.getEmail();\n    this.qAuth.registerByWeb3(\n      this.simpleRegistrationForm.form.value,\n      'metamask',\n      this.refId\n    );\n  }\n\n  triggerWalletConnectSignIn(): void {\n    this.registrationMethod = Methods.WALLET_CONNECT;\n    this.socialRegister = false;\n    this.loading = true;\n    this.getEmail();\n    this.qAuth.registerByWeb3(\n      this.simpleRegistrationForm.form.value,\n      'wallet_connect',\n      this.refId\n    );\n  }\n\n  triggerCognitoSignIn(): void {\n    this.registrationMethod = Methods.EMAIL;\n    this.socialRegister = false;\n    this.loading = true;\n    this.getEmail();\n    this.qAuth.register(this.emailRegistrationForm.form.value, this.refId);\n  }\n\n  getEmail() {\n    if (this.socialRegister) {\n      this.email = this.simpleRegistrationForm?.emailField.value;\n    } else if (this.registrationMethod === Methods.EMAIL) {\n      this.email = this.emailRegistrationForm.emailField.value;\n    } else {\n      this.email = this.simpleRegistrationForm?.emailField.value;\n    }\n  }\n\n  getSocialData(provider: string): void {\n    this.socialAuthService\n      .signIn(\n        provider === 'facebook'\n          ? FacebookLoginProvider.PROVIDER_ID\n          : provider === 'google'\n          ? GoogleLoginProvider.PROVIDER_ID\n          : TwitterLoginProvider.PROVIDER_ID,\n        provider === 'twitter'\n          ? { state: 'r', challenge: this.generateRandomString() }\n          : null\n      )\n      .then((user) => {\n        this.showSocialRegister(true);\n        this.registrationMethod =\n          provider === 'facebook'\n            ? Methods.FACEBOOK\n            : provider === 'google'\n            ? Methods.GOOGLE\n            : provider === 'twitter'\n            ? Methods.TWITTER\n            : null;\n        this.showForm = true;\n        this.simpleRegistrationForm?.usernameField?.patchValue(\n          user.name.replace(/\\s/g, '')\n        );\n        this.socialUser = user;\n      });\n  }\n\n  triggerSocialSignIn(): void {\n    this.getEmail();\n    grecaptcha.enterprise\n      .execute(this.recaptcha.recaptchaId, {\n        action: this.recaptcha.recaptchaActions.register,\n      })\n      .then((token) => {\n        this.token = token;\n        const email = this.socialRegister\n          ? this.socialUser.email\n          : this.registrationMethod === Methods.EMAIL\n          ? this.emailRegistrationForm.emailField.value\n          : this.simpleRegistrationForm?.emailField?.value;\n        const registerBody: any = {\n          token: this.socialUser.authToken,\n          tosCheck: this.simpleRegistrationForm.tosField.value,\n          promotionsCheck: this.simpleRegistrationForm.promotionsField.value,\n          email,\n          username: this.simpleRegistrationForm.usernameField.value,\n          provider: this.socialUser.provider.toLowerCase(),\n          'g-recaptcha-token': this.token,\n          country: this.simpleRegistrationForm.countryField.value,\n        };\n        if (this.twitterAuthRes) {\n          registerBody.email = this.socialUser.email =\n            this.simpleRegistrationForm.emailField.value;\n        }\n        this.qAuth.register(registerBody, this.refferalId);\n      });\n  }\n\n  handleSignupError(error: any): void {\n    const violations = error?.error?.error?.violations || {};\n    const errorObj = error?.error?.error;\n    if (error?.status === 422) {\n      if (violations.hasOwnProperty('nick')) {\n        const nickError = {\n          usernameError: violations.nick\n            .reduce((result, err) => result + '\\n' + err?.message, '')\n            .trim(),\n        };\n        this.registrationMethod === Methods.EMAIL\n          ? (this.emailRegistrationForm.usernameErrors = nickError)\n          : (this.simpleRegistrationForm.usernameErrors = nickError);\n      }\n      if (violations.hasOwnProperty('email')) {\n        const emailError = {\n          emailError: violations.email\n            .reduce((result, err) => result + '\\n' + err?.message, '')\n            .trim(),\n        };\n        this.registrationMethod === Methods.EMAIL\n          ? (this.emailRegistrationForm.emailErrors = emailError)\n          : (this.simpleRegistrationForm.emailErrors = emailError);\n      }\n    }\n    if (errorObj?.key === 'metamask_already_exists') {\n      if (this.metaSwitch) {\n        this.routing.goToCustom('auth_redirect_login', {\n          param: {\n            queryParams: { metaLogin: true },\n            queryParamsHandling: 'merge',\n          },\n        });\n      } else if (this.wcSwitch) {\n        this.routing.goToCustom('auth_redirect_login', {\n          param: {\n            queryParams: { wcLogin: true },\n            queryParamsHandling: 'merge',\n          },\n        });\n      }\n    }\n    if (errorObj?.key === 'validation_failed') {\n      if (violations !== null && violations?.hasOwnProperty('email')) {\n        if (violations?.email[0]?.key === 'unique_rule_error') {\n          this.routing.goToCustom('auth_redirect_login', {\n            param: {\n              queryParams: {\n                emailLogin:\n                  this.registrationMethod === Methods.EMAIL\n                    ? this.emailRegistrationForm.emailField.value\n                    : this.simpleRegistrationForm.emailField.value,\n              },\n              queryParamsHandling: 'merge',\n            },\n          });\n        }\n      }\n    }\n    if (errorObj?.key === 'username_exists_exception') {\n      this.routing.goToLogin();\n    }\n    this.loading = false;\n  }\n\n  toggleShowPassword(): void {\n    if (this.showPassword === 'password') {\n      this.showPassword = 'text';\n    } else {\n      this.showPassword = 'password';\n    }\n  }\n\n  toggleShowConfirmPassword(): void {\n    if (this.showConfirmPassword === 'password') {\n      this.showConfirmPassword = 'text';\n    } else {\n      this.showConfirmPassword = 'password';\n    }\n  }\n\n  showMetamaskRegister(state: boolean, isOkx?: boolean): void {\n    this.metaSwitch = state;\n    if (isOkx) {\n      this.registrationMethod = Methods.OKX;\n    } else {\n      this.registrationMethod = Methods.METAMASK;\n    }\n  }\n\n  showWalletConnectRegister(state: boolean): void {\n    this.wcSwitch = state;\n    this.registrationMethod = Methods.WALLET_CONNECT;\n  }\n\n  showSocialRegister(state: boolean): void {\n    this.socialRegister = state;\n  }\n\n  showTwitterRegister(state: boolean): void {\n    this.socialRegister = state;\n  }\n\n  clearRegisterForm() {\n    this.registrationMethod === Methods.EMAIL\n      ? this.emailRegistrationForm.form.reset()\n      : this.simpleRegistrationForm.form.reset();\n  }\n\n  toggleMetamaskModal(state: boolean) {\n    this.metamaskModal = state;\n  }\n\n  toggleWalletConnectModal(state: boolean): void {\n    this.walletConnectModal = state;\n  }\n\n  getMetamaskData(): void {\n    const signature = this.storage.getMetaSignature();\n    if (signature) {\n      this.metamaskSignature = signature;\n    }\n    const chaind = this.storage.getChainId();\n    if (chaind) {\n      this.chainId = Number(chaind);\n    }\n  }\n\n  async checkMeta(): Promise<void> {\n    this.metaActions.isMetamaskInstalled().then((response) => {\n      if (response === true) {\n        this.toggleMetamaskModal(true);\n        this.showMetamaskRegister(true);\n        this.showForm = true;\n      }\n    });\n  }\n\n  async checkOkx(): Promise<void>  {\n    this.metaActions.isOkxInstalled().then((response) => {\n      if (response === true) {\n        this.toggleMetamaskModal(true);\n        this.showMetamaskRegister(true, true);\n        this.showForm = true;\n      }\n    })\n  }\n\n  walletConnectRegister() {\n    this.showWalletConnectRegister(true);\n    this.toggleWalletConnectModal(true);\n  }\n\n  handleRegister() {\n    switch (this.registrationMethod) {\n      case Methods.METAMASK:\n      case Methods.OKX:\n        this.triggerMetamaskSignIn();\n        break;\n      case Methods.WALLET_CONNECT:\n        this.triggerWalletConnectSignIn();\n        break;\n      case Methods.FACEBOOK:\n      case Methods.GOOGLE:\n      case Methods.TWITTER:\n        this.triggerSocialSignIn();\n        break;\n      case Methods.EMAIL:\n        this.triggerCognitoSignIn();\n        break;\n\n      default:\n        this.triggerCognitoSignIn();\n        break;\n    }\n  }\n\n  backToOptions() {\n    this.socialRegister = false;\n    this.metaSwitch = false;\n    this.wcSwitch = false;\n    this.clearRegisterForm();\n    this.showForm = false;\n  }\n\n  generateRandomString(): string {\n    return Math.random().toString(36).slice(2, 12);\n  }\n\n  counter(i): Array<any> {\n    return new Array(i);\n  }\n\n  @HostListener('window:keydown', ['$event'])\n  onKeyDown($event) {\n    if ($event.keyCode !== 13) {\n      return;\n    }\n    if (\n      this.showForm &&\n      this.registrationMethod === Methods.EMAIL &&\n      this.emailRegistrationForm.form.valid\n    ) {\n      this.handleRegister();\n    } else if (\n      this.showForm &&\n      this.registrationMethod !== Methods.EMAIL &&\n      this.simpleRegistrationForm.form.valid\n    ) {\n      this.handleRegister();\n    }\n  }\n}\n","<div class=\"auth-body\" [ngClass]=\"theme\">\n  <div class=\"center-content\">\n    <button *ngIf=\"showForm\" class=\"back-btn\" (click)=\"backToOptions()\">\n      &lt; Back\n    </button>\n\n    <div *ngIf=\"!showForm\" @growInOut [@.disabled]=\"animationDisabled\">\n      <p class=\"main-heading f-s-32\" *ngIf=\"theme === 'qid'\">\n        Sign Up to Qorpo ID\n      </p>\n      <p class=\"main-heading f-s-32\" *ngIf=\"theme === 'qmarket'\">\n        Sign Up to QORPO Market\n      </p>\n      <p class=\"disclaimer f-s-16\">Create your unique QORPO account</p>\n    </div>\n\n    <!--place for a register form -->\n    <div class=\"form-holder marginless\" *ngIf=\"showForm\">\n      <ng-container *ngIf=\"registrationMethod === Methods.EMAIL\">\n        <email-registration-form\n          #emailRegistrationForm\n          [countries]=\"countriesList\"\n        >\n        </email-registration-form>\n      </ng-container>\n      <ng-container *ngIf=\"registrationMethod !== Methods.EMAIL\">\n        <simple-registration-form\n          #simpleRegistrationForm\n          [countries]=\"countriesList\"\n          [usernameOnly]=\"\n            registrationMethod !== Methods.TWITTER &&\n            registrationMethod !== Methods.METAMASK &&\n            registrationMethod !== Methods.OKX &&\n            registrationMethod !== Methods.WALLET_CONNECT\n          \"\n        >\n        </simple-registration-form>\n      </ng-container>\n      <button\n        (click)=\"handleRegister()\"\n        class=\"my-cta-btn f-s-16 common-height\"\n        [ngClass]=\"{\n          disabled:\n            (registrationMethod === Methods.EMAIL &&\n              !emailRegistrationForm?.form?.valid) ||\n            (registrationMethod !== Methods.EMAIL &&\n              !simpleRegistrationForm?.form?.valid)\n        }\"\n      >\n        <ng-container *ngIf=\"!loading; else loadingBtn\">Sign Up</ng-container>\n        <ng-template #loadingBtn>\n          Loading\n          <ng-container *ngFor=\"let item of counter(3); let i = index\">\n            <span class=\"loading-dot\" [attr.data-index]=\"i\">.</span>\n          </ng-container>\n        </ng-template>\n      </button>\n\n      <ng-container *ngIf=\"registrationMethod === Methods.EMAIL\">\n        <p class=\"f-s-14 disclaimer spaced\">or do it via other accounts</p>\n        <div class=\"form-buttons-row\">\n          <ng-container *ngFor=\"let item of registerOptions\">\n            <button\n              *ngIf=\"item.method !== 'Email'\"\n              class=\"via-button\"\n              (click)=\"item.callback()\"\n            >\n              <img\n                [src]=\"'/assets/images/icons/' + item.icon\"\n                [alt]=\"item.method + ' icon'\"\n              />\n            </button>\n          </ng-container>\n        </div>\n      </ng-container>\n    </div>\n    <!--register options-->\n    <div class=\"buttons-holder\" *ngIf=\"!showForm\">\n      <ng-container *ngFor=\"let item of registerOptions\">\n        <button\n          class=\"option-login-btn common-height\"\n          (click)=\"item.callback()\"\n        >\n          <img\n            [src]=\"'/assets/images/icons/' + item.icon\"\n            [alt]=\"item.method + ' icon'\"\n          />\n          <p class=\"f-s-14\">Create Account via {{ item.method }}</p>\n        </button>\n      </ng-container>\n    </div>\n    <p class=\"disclaimer f-s-16\" *ngIf=\"!showForm\">\n      Already have an QORPO account?\n      <a class=\"link\" (click)=\"routing.goToLogin()\">Log in</a>\n    </p>\n  </div>\n</div>\n\n<ng-container *ngIf=\"metamaskModal === true\">\n  <q-metamask-auth\n    (modalOpen)=\"toggleMetamaskModal($event); showMetamaskRegister($event)\"\n    (authFinalized)=\"toggleMetamaskModal(!$event); getMetamaskData()\"\n    #metaAuth\n  >\n    <div class=\"main-holder\">\n      <div class=\"form-holder\">\n        <button\n          class=\"close-btn\"\n          [ngClass]=\"{ disabled: metaAuth.metaLoading }\"\n          (click)=\"metaAuth.closeMetamaskModal(true)\"\n        >\n          <svg\n            viewBox=\"0 0 37 37\"\n            fill=\"none\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n          >\n            <circle cx=\"18.6055\" cy=\"18.7549\" r=\"18.1777\" fill=\"#333333\" />\n            <path\n              d=\"M18.4287 16.3252L18.6055 16.502L18.7823 16.3252L22.3938 12.7137C23.0159 12.0916 24.0246 12.0916 24.6467 12.7137L24.8235 12.5369L24.6467 12.7137C25.2688 13.3358 25.2688 14.3445 24.6467 14.9666L21.0352 18.5781L20.8584 18.7549L21.0352 18.9317L24.6466 22.5432C25.2688 23.1653 25.2688 24.1739 24.6466 24.7961C24.0245 25.4182 23.0159 25.4182 22.3938 24.7961L18.7823 21.1846L18.6055 21.0078L18.4287 21.1846L14.8172 24.7961C14.1951 25.4182 13.1864 25.4182 12.5643 24.7961C11.9422 24.174 11.9422 23.1653 12.5643 22.5432L16.1758 18.9317L16.3526 18.7549L16.1758 18.5781L12.5642 14.9666C11.9421 14.3444 11.9421 13.3358 12.5642 12.7137C13.1864 12.0915 14.195 12.0915 14.8171 12.7137L18.4287 16.3252Z\"\n              fill=\"white\"\n              fill-opacity=\"0.8\"\n              stroke=\"#333333\"\n              stroke-width=\"0.5\"\n              stroke-linecap=\"round\"\n            />\n          </svg>\n        </button>\n\n        <app-loading [type]=\"'spin'\" [color]=\"'red'\"></app-loading>\n        <div class=\"top-msg-holder\">\n          <h2 class=\"top-msg\">\n            NOW PLEASE USE <br />\n            {{ registrationMethod === Methods.METAMASK ? 'METAMASK' : 'OKX' }} PLUGIN\n          </h2>\n        </div>\n        <div class=\"back-btn-holder\">\n          <button class=\"back-btn disabled\">\n            Continue\n            <svg\n              class=\"button-arrow\"\n              viewBox=\"0 0 20 17\"\n              fill=\"none\"\n              xmlns=\"http://www.w3.org/2000/svg\"\n            >\n              <path\n                d=\"M0.941406 8.50558C0.941406 7.62005 1.65927 6.90218 2.54481 6.90218L13.6389 6.90218L9.9625 3.22575C9.33633 2.59958 9.33633 1.58437 9.9625 0.9582C10.5887 0.332034 11.6039 0.332033 12.2301 0.9582L18.6437 7.3718C18.9444 7.6725 19.1133 8.08033 19.1133 8.50558C19.1133 8.93083 18.9444 9.33866 18.6437 9.63935L12.2301 16.053C11.6039 16.6791 10.5887 16.6791 9.9625 16.053C9.33634 15.4268 9.33634 14.4116 9.9625 13.7854L13.6389 10.109L2.54481 10.109C1.65927 10.109 0.941406 9.39112 0.941406 8.50558Z\"\n                fill=\"white\"\n              />\n            </svg>\n          </button>\n        </div>\n      </div>\n    </div>\n  </q-metamask-auth>\n</ng-container>\n\n<ng-container *ngIf=\"walletConnectModal\">\n  <q-wallet-connect-auth\n    (modalOpen)=\"toggleWalletConnectModal($event); showMetamaskRegister($event)\"\n    (authFinalized)=\"\n      showForm = true; toggleWalletConnectModal(!$event); getMetamaskData()\n    \"\n    #wcAuth\n  >\n    <div class=\"main-holder\">\n      <div class=\"form-holder\">\n        <button\n          class=\"close-btn\"\n          [ngClass]=\"{ disabled: wcAuth.web3Loading }\"\n          (click)=\"wcAuth.closeMetamaskModal()\"\n        >\n          <svg\n            viewBox=\"0 0 37 37\"\n            fill=\"none\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n          >\n            <circle cx=\"18.6055\" cy=\"18.7549\" r=\"18.1777\" fill=\"#333333\" />\n            <path\n              d=\"M18.4287 16.3252L18.6055 16.502L18.7823 16.3252L22.3938 12.7137C23.0159 12.0916 24.0246 12.0916 24.6467 12.7137L24.8235 12.5369L24.6467 12.7137C25.2688 13.3358 25.2688 14.3445 24.6467 14.9666L21.0352 18.5781L20.8584 18.7549L21.0352 18.9317L24.6466 22.5432C25.2688 23.1653 25.2688 24.1739 24.6466 24.7961C24.0245 25.4182 23.0159 25.4182 22.3938 24.7961L18.7823 21.1846L18.6055 21.0078L18.4287 21.1846L14.8172 24.7961C14.1951 25.4182 13.1864 25.4182 12.5643 24.7961C11.9422 24.174 11.9422 23.1653 12.5643 22.5432L16.1758 18.9317L16.3526 18.7549L16.1758 18.5781L12.5642 14.9666C11.9421 14.3444 11.9421 13.3358 12.5642 12.7137C13.1864 12.0915 14.195 12.0915 14.8171 12.7137L18.4287 16.3252Z\"\n              fill=\"white\"\n              fill-opacity=\"0.8\"\n              stroke=\"#333333\"\n              stroke-width=\"0.5\"\n              stroke-linecap=\"round\"\n            />\n          </svg>\n        </button>\n\n        <app-loading [type]=\"'spin'\" [color]=\"'red'\"></app-loading>\n        <div class=\"top-msg-holder\">\n          <h2 class=\"top-msg\">\n            NOW PLEASE USE <br />\n            WALLETCONNECT PLUGIN\n          </h2>\n        </div>\n        <div class=\"back-btn-holder\">\n          <button class=\"back-btn disabled\">\n            Continue\n            <svg\n              class=\"button-arrow\"\n              viewBox=\"0 0 20 17\"\n              fill=\"none\"\n              xmlns=\"http://www.w3.org/2000/svg\"\n            >\n              <path\n                d=\"M0.941406 8.50558C0.941406 7.62005 1.65927 6.90218 2.54481 6.90218L13.6389 6.90218L9.9625 3.22575C9.33633 2.59958 9.33633 1.58437 9.9625 0.9582C10.5887 0.332034 11.6039 0.332033 12.2301 0.9582L18.6437 7.3718C18.9444 7.6725 19.1133 8.08033 19.1133 8.50558C19.1133 8.93083 18.9444 9.33866 18.6437 9.63935L12.2301 16.053C11.6039 16.6791 10.5887 16.6791 9.9625 16.053C9.33634 15.4268 9.33634 14.4116 9.9625 13.7854L13.6389 10.109L2.54481 10.109C1.65927 10.109 0.941406 9.39112 0.941406 8.50558Z\"\n                fill=\"white\"\n              />\n            </svg>\n          </button>\n        </div>\n      </div>\n    </div>\n  </q-wallet-connect-auth>\n</ng-container>\n\n<div class=\"sign-up-modal\" *ngIf=\"theme === 'qid' && !showForm\">\n  <div class=\"content-holder\">\n    <h2 class=\"heading\">\n      Sign up and never miss <br />\n      a chance to get free rewards\n    </h2>\n    <img\n      class=\"banner-image center\"\n      src=\"/assets/images/qorpo-id/register/register-banner-center.png\"\n      alt=\"sign up banner\"\n    />\n    <img\n      class=\"banner-image right\"\n      src=\"/assets/images/qorpo-id/register/register-banner-avatar.png\"\n      alt=\"sign up banner avatar\"\n    />\n  </div>\n</div>\n\n<div class=\"sign-up-modal market\" *ngIf=\"theme === 'qmarket' && !showForm\">\n  <div class=\"content-holder\">\n    <img\n      class=\"logo-left\"\n      src=\"/assets/images/registration/cc-logo.png\"\n      alt=\"cc logo\"\n    />\n    <img\n      class=\"left-avatar\"\n      src=\"/assets/images/registration/registration-avatar.png\"\n      alt=\"sign up banner avatar\"\n    />\n    <h2 class=\"heading\">REGISTER TO GET ALPHA KEY</h2>\n    <img\n      class=\"logo-right\"\n      src=\"/assets/images/registration/cc-symbol.png\"\n      alt=\"cc symbol\"\n    />\n  </div>\n</div>\n","import { RecaptchaService } from '../../services/recaptcha.service';\nimport { Component, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { FlashMessageService, HttpRequestMethod, HttpRequestParamType, RequestCallsService } from '@qorpo/common';\nimport { ResetPasswordFormComponent } from '../../components/form-components/reset-password-form/reset-password-form.component';\nimport { AuthLibConfig } from '../../lib-config';\nimport { AuthRoutingService } from '../../services/auth-routing.service';\nimport { EP_LIST, getEndpointName } from '../../endpoints/endpoints.config';\n\ndeclare let grecaptcha: any;\n\n@Component({\n  selector: 'app-reset-password',\n  templateUrl: './reset-password.component.html',\n  styleUrls: ['./reset-password.component.scss'],\n})\nexport class ResetPasswordComponent {\n  loading = false;\n  token: string;\n\n  @ViewChild('resetPasswordForm') resetPasswordForm: ResetPasswordFormComponent;\n\n  theme: 'qid' | 'qmarket';\n\n  constructor(\n    private router: Router,\n    private flash: FlashMessageService,\n    private recaptcha: RecaptchaService,\n    private request: RequestCallsService,\n    private readonly libConfig: AuthLibConfig,\n    public routing: AuthRoutingService\n  ) {}\n\n  setNewPassword(): void {\n    this.loading = true;\n    grecaptcha.enterprise\n      .execute(this.recaptcha.recaptchaId, {\n        action: this.recaptcha.recaptchaActions.reset_password_confirmation,\n      })\n      .then((token) => {\n        this.token = token;\n        this.requestPasswordChange(token);\n      });\n  }\n\n  requestPasswordChange(token) {\n\n    let data = {\n      email: this.resetPasswordForm.emailField.value.toLowerCase(),\n      password: this.resetPasswordForm.passwordField.value,\n      password_confirmation:\n        this.resetPasswordForm.repeatPasswordField.value,\n      code: this.resetPasswordForm.codeField.value.toString(),\n      'g-recaptcha-token': token,\n    };\n\n    this.request\n      .callHttpRequest(getEndpointName(EP_LIST.AUTH.RESET_PASSWORD), {\n        method: HttpRequestMethod.POST_METHOD,\n        params: [{value: data, type: HttpRequestParamType.BODY_PARAM}],\n      }).subscribe({\n        next: () => {\n          this.loading = false;\n          this.flash.success(\n            'Password changed',\n            'Your password was successfully changed.'\n          );\n          this.routing.goToLogin();\n        },\n        error: (error) => {\n          this.loading = false;\n          if (error.error?.error?.key === 'code_mismatch_exception') {\n            this.resetPasswordForm.codeErrors = { recoveryCode: true };\n          }\n        }\n      });\n  }\n\n  counter(i): Array<any> {\n    return new Array(i);\n  }\n}\n","<div class=\"auth-body\" [ngClass]=\"theme\">\n  <div class=\"center-content\">\n    <svg\n      *ngIf=\"theme === 'qid' else marketLogo\"\n      (click)=\"routing.goToHomepage()\"\n      class=\"product-logo\"\n      width=\"329\"\n      height=\"79\"\n      viewBox=\"0 0 329 79\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      >\n      <path\n      d=\"M236.994 71.7466H249.177L264.32 0H252.138L236.994 71.7466Z\"\n      fill=\"#5C2BFF\"\n      />\n      <path\n      d=\"M254.751 71.7466H284.809C289.212 71.7466 293.728 70.8267 298.358 68.9871C303.064 67.1474 307.429 64.6179 311.452 61.3985C315.475 58.1791 318.966 54.4231 321.927 50.1306C324.887 45.7614 326.899 41.0856 327.961 36.1032C329.024 31.1208 329.062 26.445 328.075 22.0759C327.164 17.7067 325.418 13.8741 322.838 10.578C320.333 7.28197 317.107 4.71411 313.16 2.87446C309.213 0.958153 304.734 0 299.724 0H269.894L254.751 71.7466ZM297.333 11.9578C300.521 11.9578 303.406 12.6093 305.987 13.9124C308.567 15.2155 310.693 17.0168 312.363 19.3164C314.109 21.5393 315.323 24.1071 316.006 27.0199C316.689 29.9327 316.689 32.9988 316.006 36.2182C315.323 39.4376 313.995 42.4654 312.021 45.3015C310.048 48.1376 307.695 50.6672 304.962 52.8901C302.229 55.0364 299.307 56.761 296.195 58.0641C293.083 59.2906 290.047 59.9038 287.086 59.9038H269.438L279.572 11.9578H297.333Z\"\n      fill=\"#5C2BFF\"\n      />\n      <path\n      d=\"M105.466 20.4625C104.702 19.6138 103.939 18.7651 103.09 17.9164C97.5734 12.7394 90.1049 9.5144 81.8726 9.5144C72.8765 9.5144 64.7291 13.4184 59.0429 19.6138C58.279 20.4625 57.5152 21.3961 56.8363 22.3296C53.3566 27.1672 51.15 32.9383 50.8954 39.3034C50.8954 39.7278 50.9803 40.1521 50.9803 40.6613C50.9803 41.0857 50.9803 41.5949 50.8954 42.0192C50.7257 44.8199 49.9619 47.366 48.6888 49.7423C46.9915 52.9673 44.3605 55.6832 41.1355 57.4654V70.3655C46.3974 68.6681 51.0652 65.6977 54.6297 61.7088C55.3935 60.8602 56.1573 59.9266 56.8363 58.993C60.3159 54.1555 62.5225 48.3844 62.7771 42.0192C62.7771 41.5949 62.6922 41.0857 62.6922 40.6613C62.6922 40.237 62.6922 39.7278 62.7771 39.3034C62.9468 36.5028 63.7106 33.8718 64.9837 31.5803C68.2087 25.5546 74.5739 21.4809 81.8726 21.4809C88.6621 21.4809 94.603 24.9606 97.9977 30.3073C99.9497 33.2777 101.053 36.8422 101.053 40.6613C101.053 42.6133 100.714 44.5653 100.204 46.3476C97.7431 54.1555 90.4444 59.8417 81.8726 59.8417C74.5739 59.8417 68.2087 55.768 64.9837 49.7423C63.7955 54.1555 61.7587 58.1444 59.0429 61.7088C64.7291 67.9043 72.8765 71.7234 81.8726 71.7234C90.699 71.7234 98.6767 67.9892 104.363 62.1332C105.551 60.945 106.57 59.5871 107.503 58.2292C107.758 57.8049 108.097 57.3805 108.352 56.9562C108.946 55.9377 109.54 54.9193 109.964 53.9009C111.831 49.9121 112.85 45.414 112.85 40.7462C112.935 32.9383 110.134 25.8941 105.466 20.4625Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M31.7149 48.9785C28.405 48.9785 25.7741 51.6094 25.7741 54.9193V55.2588V58.9082C24.5859 58.4838 23.4826 58.0595 22.3793 57.3805C16.5233 54.0706 12.5345 47.7903 12.5345 40.6613C12.5345 30.0527 21.1063 21.4809 31.7149 21.4809C39.0136 21.4809 45.3788 25.5547 48.6038 31.5804C49.792 27.1672 51.8288 23.1783 54.5447 19.6138C48.8584 13.4184 40.711 9.5144 31.7149 9.5144C14.5713 9.5144 0.652832 23.4329 0.652832 40.5765C0.652832 54.4101 9.81868 66.2069 22.3793 70.1958C23.4826 70.5352 24.5859 70.8747 25.7741 71.0444V72.5721C25.7741 73.251 25.8589 73.93 26.1135 74.6089C26.9622 76.9004 29.084 78.5129 31.7149 78.5129C34.3458 78.5129 36.4676 76.9004 37.3163 74.6089C37.5709 74.0149 37.6557 73.3359 37.6557 72.5721V71.0444V58.9082V55.2588V54.9193C37.6557 51.6094 35.0248 48.9785 31.7149 48.9785Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M149.598 61.7937C151.55 64.0003 151.635 67.2253 149.853 69.4319C149.428 68.4135 149.259 67.3102 149.259 66.122V61.3694C149.343 61.5391 149.513 61.7089 149.598 61.7937Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M203.235 29.7981C203.066 28.9494 202.896 28.1007 202.556 27.252C202.302 26.4033 202.047 25.6395 201.623 24.7908C200.944 23.1783 200.095 21.6507 199.162 20.2928C199.077 20.2079 199.077 20.123 198.992 20.0382C198.398 19.1895 197.719 18.3408 196.955 17.577C196.87 17.4921 196.87 17.4921 196.785 17.4072C192.202 12.5697 185.667 9.5144 178.454 9.5144C174.55 9.5144 170.9 10.3631 167.675 11.9756C166.657 12.4848 165.723 12.994 164.79 13.5881L164.705 13.673C159.782 16.898 155.963 21.9901 154.351 27.931C153.757 30.0527 153.417 32.3442 153.417 34.6356V47.7055V66.122C153.417 67.3951 153.842 68.5832 154.521 69.6017C155.624 71.1293 157.321 72.0629 159.358 72.0629C162.668 72.0629 165.299 69.4319 165.299 66.122V59.672V55.9377C166.317 56.6167 167.421 57.1259 168.524 57.6351C171.579 58.993 174.974 59.7569 178.538 59.7569C183.291 59.7569 187.789 58.3989 191.523 56.1075C191.608 56.1075 191.693 56.0226 191.693 56.0226C192.627 55.4285 193.475 54.8345 194.324 54.1555C194.409 54.0706 194.409 54.0706 194.494 53.9858C197.634 51.3548 200.18 47.9601 201.708 44.141C201.793 43.8864 201.877 43.6317 202.047 43.3771C202.217 43.0377 202.302 42.6982 202.387 42.2738C202.641 41.5949 202.811 40.8311 202.981 40.1521C203.066 39.8126 203.15 39.3883 203.235 39.0488C203.32 38.3699 203.49 37.6909 203.49 37.012C203.575 36.2481 203.575 35.4843 203.575 34.6356C203.745 33.0231 203.575 31.3257 203.235 29.7981ZM191.523 37.2666C191.014 39.6429 189.911 41.8495 188.298 43.5469C188.214 43.6317 188.129 43.7166 188.044 43.8015C187.619 44.3107 187.11 44.735 186.601 45.0745C186.092 45.4989 185.583 45.8383 185.073 46.0929C183.206 47.1114 181 47.7903 178.708 47.7903C174.719 47.7903 171.155 46.0081 168.694 43.2074C166.742 40.9159 165.469 37.9455 165.469 34.6356C165.469 31.3257 166.657 28.3553 168.694 26.0639C171.07 23.2632 174.719 21.4809 178.708 21.4809C181.169 21.4809 183.461 22.1599 185.413 23.3481C187.45 24.5362 189.062 26.3185 190.166 28.3553C190.25 28.4402 190.25 28.6099 190.335 28.6948C191.269 30.4771 191.778 32.5139 191.778 34.6356C191.778 34.9751 191.778 35.2297 191.778 35.5692C191.778 35.8238 191.693 36.0784 191.693 36.333C191.693 36.333 191.693 36.333 191.693 36.4179C191.608 36.7574 191.608 37.012 191.523 37.2666Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M126.089 21.4809C133.388 21.4809 139.244 27.3368 139.244 34.6356C139.244 39.7277 136.274 44.2258 132.03 46.3475C135.51 47.6205 139.668 49.4876 143.827 52.2883C146.119 49.9969 147.986 47.1962 149.259 44.2258C149.683 43.2922 150.022 42.2738 150.277 41.3402C150.871 39.2185 151.211 37.0119 151.211 34.7204C151.211 32.429 150.871 30.1375 150.277 28.0158C150.022 26.9974 149.683 26.0638 149.259 25.1302C145.524 16.0493 136.528 9.68408 126.174 9.68408C118.876 9.68408 112.256 12.8242 107.673 17.8315C110.558 21.0565 112.85 24.7908 114.293 28.9493C116.414 24.5362 120.912 21.4809 126.089 21.4809Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M149.174 61.3692C147.561 59.5869 145.779 57.9744 143.997 56.6165C143.063 55.8527 142.045 55.1737 141.111 54.5797C134.152 49.9967 127.193 48.2145 124.222 47.6204C124.222 47.6204 124.222 47.6204 124.137 47.6204C123.713 47.5355 123.374 47.4507 123.119 47.4507C123.034 47.4507 123.034 47.4507 123.034 47.4507C121.082 47.0263 119.385 46.0928 117.857 44.9046C117.263 44.4803 116.754 43.8862 116.245 43.377C116.16 44.3105 116.075 45.3289 115.905 46.2625C115.396 49.5724 114.377 52.7125 112.935 55.683C112.935 55.7678 112.85 55.8527 112.85 55.9376C112.935 56.0224 113.02 56.0224 113.104 56.1073C113.444 56.277 113.699 56.4468 114.038 56.6165C115.566 57.4652 117.263 58.229 119.045 58.7382C119.554 58.908 120.149 59.0777 120.658 59.1626C120.828 59.2475 120.997 59.2475 121.167 59.2475C121.167 59.2475 121.337 59.2475 121.506 59.3323C121.591 59.3323 121.591 59.3323 121.676 59.3323C121.846 59.4172 122.016 59.4172 122.185 59.4172C123.883 59.7567 127.362 60.6902 131.351 62.6422C134.576 64.2547 137.971 66.5462 140.857 69.7712C142.045 71.0443 143.657 71.7232 145.27 71.7232C146.713 71.7232 148.07 71.214 149.259 70.1956C149.513 69.941 149.768 69.6863 149.938 69.4317C151.72 67.2251 151.72 64.0001 149.683 61.7935C149.513 61.7087 149.344 61.5389 149.174 61.3692Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M112.935 59.8416C111.831 59.8416 110.813 60.0962 109.879 60.6054C108.606 61.3692 107.673 62.4725 107.248 63.8304C107.079 64.4245 106.909 65.0186 106.909 65.6975C106.909 69.0074 109.54 71.6383 112.85 71.6383C116.16 71.6383 118.791 69.0074 118.791 65.6975C118.791 64.085 118.112 62.6422 117.093 61.5389C116.075 60.5205 114.632 59.8416 112.935 59.8416Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M222.5 9.5144C214.438 9.5144 207.054 12.5697 201.538 17.6618C201.538 17.7467 201.623 17.7467 201.707 17.8316C204.253 21.2263 205.951 25.3 206.715 29.6284C210.194 24.6211 215.965 21.3112 222.5 21.3112C233.109 21.3112 241.681 29.883 241.681 40.4916C241.681 51.1002 233.109 59.672 222.5 59.672C214.098 59.672 206.969 54.3252 204.423 46.7719C202.556 50.6759 199.755 54.1555 196.361 56.8713C196.276 56.8713 196.276 56.9562 196.191 56.9562C201.707 65.6977 211.467 71.5537 222.5 71.5537C239.644 71.5537 253.562 57.6351 253.562 40.4916C253.562 23.4329 239.559 9.5144 222.5 9.5144Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M77.4592 32.8533V48.2146L90.7837 40.5764L77.4592 32.8533Z\"\n      fill=\"white\"\n      />\n    </svg>\n    <ng-template #marketLogo>\n      <img\n        (click)=\"routing.goToHomepage()\"\n        class=\"logo\"\n        src=\"/assets/images/logos/qorpo-market-logo.svg\"\n        alt=\"Qorpo Market logo\"\n      />\n    </ng-template>\n\n    <p class=\"main-heading f-s-32\">Set up a new password</p>\n\n    <div class=\"form-holder\">\n      <reset-password-form #resetPasswordForm></reset-password-form>\n      <button\n        (click)=\"setNewPassword()\"\n        class=\"my-cta-btn f-s-16 common-height\"\n        [ngClass]=\"{ disabled: !resetPasswordForm.form.valid }\"\n      >\n        <ng-container *ngIf=\"!loading; else loadingBtn\">Confirm</ng-container>\n        <ng-template #loadingBtn>\n          Loading\n          <ng-container *ngFor=\"let item of counter(3); let i = index\">\n            <span class=\"loading-dot\" [attr.data-index]=\"i\">.</span>\n          </ng-container>\n        </ng-template>\n      </button>\n    </div>\n\n    <p class=\"disclaimer spaced f-s-16\">\n      Back to\n      <a (click)=\"routing.goToHomepage()\">QORPO Homepage</a>\n    </p>\n  </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { AuthRoutingService } from '../../../services/auth-routing.service';\nimport { FlashMessageService } from '@qorpo/common';\n\n@Component({\n  selector: 'app-twitter-callback',\n  templateUrl: './twitter-callback.component.html',\n  styleUrls: ['./twitter-callback.component.scss']\n})\nexport class TwitterCallbackComponent implements OnInit {\n\n  constructor(\n    private activatedRoute: ActivatedRoute,\n    private routing: AuthRoutingService,\n    private flash: FlashMessageService\n  ) {\n    this.activatedRoute.queryParams.subscribe((params: Params) => {\n      if (params['state'] && params['code']) {\n        params['state'] === 'r' ? this.routing.goToCustom('auth_redirect_register', { param: { queryParams: { state: params['state'], code: params['code'] }, queryParamsHandling: 'merge' } })\n        :\n        this.routing.goToCustom('auth_redirect_login', { param: { queryParams: { state: params['state'], code: params['code'] }, queryParamsHandling: 'merge' } })\n      }\n      if (params['error'] && params['error'] === 'access_denied') {\n        this.flash.error('Error', 'User cancelled the request');\n        this.routing.goToCustom('auth_redirect_login', { param: { queryParams: { state: null, code: null, error: null }, queryParamsHandling: 'merge' } })\n      }\n    });\n  }\n\n  ngOnInit(): void {\n  }\n\n}\n","\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport {\n  FormGroup,\n  FormBuilder,\n  FormControl,\n  Validators,\n} from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { FlashMessageService } from '@qorpo/common';\nimport { AuthService as QorpoAuthService } from '../../services/auth.service';\nimport { AuthStorageManagementService } from '../../services/auth-storage-management.service';\nimport { fade } from '../../files/animations';\nimport { AuthLibConfig } from '../../lib-config';\nimport { AuthRoutingService } from '../../services/auth-routing.service';\nimport { AuthActionsList } from '../../enums/auth-actions-list.enum';\n\ndeclare var gtag;\ndeclare var dataLayer;\n\n@Component({\n  selector: 'app-verify-registration',\n  templateUrl: './verify-registration.component.html',\n  styleUrls: ['./verify-registration.component.scss'],\n  animations: [fade],\n})\nexport class VerifyRegistrationComponent implements OnInit, OnDestroy {\n  code = '';\n  loading = false;\n  email: string;\n  verifyForm = this.fb.group({\n    code: [\n      '',\n      [Validators.required, Validators.minLength(6), Validators.maxLength(6)],\n    ],\n  });\n\n  emailForm = this.fb.group({\n    email: ['', [Validators.required, Validators.email]],\n  });\n\n  confirmObserver: Subscription;\n\n  theme: 'qid' | 'qmarket';\n\n  constructor(\n    private route: ActivatedRoute,\n    private fb: FormBuilder,\n    private flash: FlashMessageService,\n    private qAuth: QorpoAuthService,\n    private storage: AuthStorageManagementService,\n    private readonly libConfig: AuthLibConfig,\n    public routing: AuthRoutingService,\n    private router: Router,\n  ) {\n    this.theme = libConfig.themeType;\n  }\n\n  ngOnInit(): void {\n    this.route.params.subscribe((params) => {\n      this.email = params.email;\n    });\n    this.setConfirmObserver();\n  }\n\n  ngOnDestroy(): void {\n    if (this.confirmObserver) {\n      this.confirmObserver.unsubscribe();\n    }\n  }\n\n  testCode(val) {\n    const regex = /^\\d{6}$/;\n    return regex.test(val);\n  }\n\n  setConfirmObserver(): void {\n    this.confirmObserver = this.qAuth.authActions$.subscribe({\n      next: (data) => {\n        switch (data.key) {\n          case AuthActionsList.VERIFICATION_ERROR || AuthActionsList.ME_DATA_ERROR || AuthActionsList.RESEND_ERROR:\n            {\n              // this.flash.error('Something went wrong', '');\n              this.loading = false;\n              this.codeField.setErrors({ code: true });\n            }\n            break;\n          case AuthActionsList.RESEND_SUCCESSFULL:\n            {\n              this.flash.success(\n                'Email sent',\n                'An activation code has been sent to email'\n              );\n            }\n            break;\n          case AuthActionsList.ME_DATA_SUCCESSFULL:\n            {\n              this.storage.setIsAdmin(data.value.data.ia);\n              this.storage.storageAction$.next({\n                key: 'storage_balance_refreshed',\n                value: null,\n              });\n              this.flash.success(\n                'Successfully verified!',\n                'Now you are logged in.'\n              );\n            }\n            break;\n          case AuthActionsList.VERIFICATION_SUCCESSFULL:\n            {\n              dataLayer.push({ event: 'verify' });\n              gtag('event', 'sign_up', {\n                event_category: 'full_registration',\n                event_label: 'dashboard_page_loaded',\n                event_action: 'form_fulfilled_email_confirmed',\n                value: 1,\n                method: 'Google',\n              });\n            }\n            break;\n          default:\n            break;\n        }\n      },\n    });\n  }\n\n  resendCode(): void {\n    this.qAuth.postResetConfirmation(this.email);\n  }\n\n  tryActivation(): void {\n    const email = this.email;\n    const code = this.verifyForm.controls['code'].value;\n    this.loading = true;\n    this.qAuth.postConfirmAuthCode({ email, code: code });\n  }\n\n  enterEmail(email: string) {\n    this.email = email;\n    this.router.navigate(['/confirm-user/' + email]);\n  }\n\n  counter(i): Array<any> {\n    return new Array(i);\n  }\n\n  get codeField() {\n    return this.verifyForm.controls['code'];\n  }\n  get emailField() {\n    return this.emailForm.controls['email'];\n  }\n}\n","<div class=\"auth-body\" [ngClass]=\"theme\">\n  <div class=\"center-content\">\n    <svg\n      *ngIf=\"theme === 'qid' else marketLogo\"\n      (click)=\"routing.goToHomepage()\"\n      class=\"product-logo\"\n      width=\"329\"\n      height=\"79\"\n      viewBox=\"0 0 329 79\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      >\n      <path\n      d=\"M236.994 71.7466H249.177L264.32 0H252.138L236.994 71.7466Z\"\n      fill=\"#5C2BFF\"\n      />\n      <path\n      d=\"M254.751 71.7466H284.809C289.212 71.7466 293.728 70.8267 298.358 68.9871C303.064 67.1474 307.429 64.6179 311.452 61.3985C315.475 58.1791 318.966 54.4231 321.927 50.1306C324.887 45.7614 326.899 41.0856 327.961 36.1032C329.024 31.1208 329.062 26.445 328.075 22.0759C327.164 17.7067 325.418 13.8741 322.838 10.578C320.333 7.28197 317.107 4.71411 313.16 2.87446C309.213 0.958153 304.734 0 299.724 0H269.894L254.751 71.7466ZM297.333 11.9578C300.521 11.9578 303.406 12.6093 305.987 13.9124C308.567 15.2155 310.693 17.0168 312.363 19.3164C314.109 21.5393 315.323 24.1071 316.006 27.0199C316.689 29.9327 316.689 32.9988 316.006 36.2182C315.323 39.4376 313.995 42.4654 312.021 45.3015C310.048 48.1376 307.695 50.6672 304.962 52.8901C302.229 55.0364 299.307 56.761 296.195 58.0641C293.083 59.2906 290.047 59.9038 287.086 59.9038H269.438L279.572 11.9578H297.333Z\"\n      fill=\"#5C2BFF\"\n      />\n      <path\n      d=\"M105.466 20.4625C104.702 19.6138 103.939 18.7651 103.09 17.9164C97.5734 12.7394 90.1049 9.5144 81.8726 9.5144C72.8765 9.5144 64.7291 13.4184 59.0429 19.6138C58.279 20.4625 57.5152 21.3961 56.8363 22.3296C53.3566 27.1672 51.15 32.9383 50.8954 39.3034C50.8954 39.7278 50.9803 40.1521 50.9803 40.6613C50.9803 41.0857 50.9803 41.5949 50.8954 42.0192C50.7257 44.8199 49.9619 47.366 48.6888 49.7423C46.9915 52.9673 44.3605 55.6832 41.1355 57.4654V70.3655C46.3974 68.6681 51.0652 65.6977 54.6297 61.7088C55.3935 60.8602 56.1573 59.9266 56.8363 58.993C60.3159 54.1555 62.5225 48.3844 62.7771 42.0192C62.7771 41.5949 62.6922 41.0857 62.6922 40.6613C62.6922 40.237 62.6922 39.7278 62.7771 39.3034C62.9468 36.5028 63.7106 33.8718 64.9837 31.5803C68.2087 25.5546 74.5739 21.4809 81.8726 21.4809C88.6621 21.4809 94.603 24.9606 97.9977 30.3073C99.9497 33.2777 101.053 36.8422 101.053 40.6613C101.053 42.6133 100.714 44.5653 100.204 46.3476C97.7431 54.1555 90.4444 59.8417 81.8726 59.8417C74.5739 59.8417 68.2087 55.768 64.9837 49.7423C63.7955 54.1555 61.7587 58.1444 59.0429 61.7088C64.7291 67.9043 72.8765 71.7234 81.8726 71.7234C90.699 71.7234 98.6767 67.9892 104.363 62.1332C105.551 60.945 106.57 59.5871 107.503 58.2292C107.758 57.8049 108.097 57.3805 108.352 56.9562C108.946 55.9377 109.54 54.9193 109.964 53.9009C111.831 49.9121 112.85 45.414 112.85 40.7462C112.935 32.9383 110.134 25.8941 105.466 20.4625Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M31.7149 48.9785C28.405 48.9785 25.7741 51.6094 25.7741 54.9193V55.2588V58.9082C24.5859 58.4838 23.4826 58.0595 22.3793 57.3805C16.5233 54.0706 12.5345 47.7903 12.5345 40.6613C12.5345 30.0527 21.1063 21.4809 31.7149 21.4809C39.0136 21.4809 45.3788 25.5547 48.6038 31.5804C49.792 27.1672 51.8288 23.1783 54.5447 19.6138C48.8584 13.4184 40.711 9.5144 31.7149 9.5144C14.5713 9.5144 0.652832 23.4329 0.652832 40.5765C0.652832 54.4101 9.81868 66.2069 22.3793 70.1958C23.4826 70.5352 24.5859 70.8747 25.7741 71.0444V72.5721C25.7741 73.251 25.8589 73.93 26.1135 74.6089C26.9622 76.9004 29.084 78.5129 31.7149 78.5129C34.3458 78.5129 36.4676 76.9004 37.3163 74.6089C37.5709 74.0149 37.6557 73.3359 37.6557 72.5721V71.0444V58.9082V55.2588V54.9193C37.6557 51.6094 35.0248 48.9785 31.7149 48.9785Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M149.598 61.7937C151.55 64.0003 151.635 67.2253 149.853 69.4319C149.428 68.4135 149.259 67.3102 149.259 66.122V61.3694C149.343 61.5391 149.513 61.7089 149.598 61.7937Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M203.235 29.7981C203.066 28.9494 202.896 28.1007 202.556 27.252C202.302 26.4033 202.047 25.6395 201.623 24.7908C200.944 23.1783 200.095 21.6507 199.162 20.2928C199.077 20.2079 199.077 20.123 198.992 20.0382C198.398 19.1895 197.719 18.3408 196.955 17.577C196.87 17.4921 196.87 17.4921 196.785 17.4072C192.202 12.5697 185.667 9.5144 178.454 9.5144C174.55 9.5144 170.9 10.3631 167.675 11.9756C166.657 12.4848 165.723 12.994 164.79 13.5881L164.705 13.673C159.782 16.898 155.963 21.9901 154.351 27.931C153.757 30.0527 153.417 32.3442 153.417 34.6356V47.7055V66.122C153.417 67.3951 153.842 68.5832 154.521 69.6017C155.624 71.1293 157.321 72.0629 159.358 72.0629C162.668 72.0629 165.299 69.4319 165.299 66.122V59.672V55.9377C166.317 56.6167 167.421 57.1259 168.524 57.6351C171.579 58.993 174.974 59.7569 178.538 59.7569C183.291 59.7569 187.789 58.3989 191.523 56.1075C191.608 56.1075 191.693 56.0226 191.693 56.0226C192.627 55.4285 193.475 54.8345 194.324 54.1555C194.409 54.0706 194.409 54.0706 194.494 53.9858C197.634 51.3548 200.18 47.9601 201.708 44.141C201.793 43.8864 201.877 43.6317 202.047 43.3771C202.217 43.0377 202.302 42.6982 202.387 42.2738C202.641 41.5949 202.811 40.8311 202.981 40.1521C203.066 39.8126 203.15 39.3883 203.235 39.0488C203.32 38.3699 203.49 37.6909 203.49 37.012C203.575 36.2481 203.575 35.4843 203.575 34.6356C203.745 33.0231 203.575 31.3257 203.235 29.7981ZM191.523 37.2666C191.014 39.6429 189.911 41.8495 188.298 43.5469C188.214 43.6317 188.129 43.7166 188.044 43.8015C187.619 44.3107 187.11 44.735 186.601 45.0745C186.092 45.4989 185.583 45.8383 185.073 46.0929C183.206 47.1114 181 47.7903 178.708 47.7903C174.719 47.7903 171.155 46.0081 168.694 43.2074C166.742 40.9159 165.469 37.9455 165.469 34.6356C165.469 31.3257 166.657 28.3553 168.694 26.0639C171.07 23.2632 174.719 21.4809 178.708 21.4809C181.169 21.4809 183.461 22.1599 185.413 23.3481C187.45 24.5362 189.062 26.3185 190.166 28.3553C190.25 28.4402 190.25 28.6099 190.335 28.6948C191.269 30.4771 191.778 32.5139 191.778 34.6356C191.778 34.9751 191.778 35.2297 191.778 35.5692C191.778 35.8238 191.693 36.0784 191.693 36.333C191.693 36.333 191.693 36.333 191.693 36.4179C191.608 36.7574 191.608 37.012 191.523 37.2666Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M126.089 21.4809C133.388 21.4809 139.244 27.3368 139.244 34.6356C139.244 39.7277 136.274 44.2258 132.03 46.3475C135.51 47.6205 139.668 49.4876 143.827 52.2883C146.119 49.9969 147.986 47.1962 149.259 44.2258C149.683 43.2922 150.022 42.2738 150.277 41.3402C150.871 39.2185 151.211 37.0119 151.211 34.7204C151.211 32.429 150.871 30.1375 150.277 28.0158C150.022 26.9974 149.683 26.0638 149.259 25.1302C145.524 16.0493 136.528 9.68408 126.174 9.68408C118.876 9.68408 112.256 12.8242 107.673 17.8315C110.558 21.0565 112.85 24.7908 114.293 28.9493C116.414 24.5362 120.912 21.4809 126.089 21.4809Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M149.174 61.3692C147.561 59.5869 145.779 57.9744 143.997 56.6165C143.063 55.8527 142.045 55.1737 141.111 54.5797C134.152 49.9967 127.193 48.2145 124.222 47.6204C124.222 47.6204 124.222 47.6204 124.137 47.6204C123.713 47.5355 123.374 47.4507 123.119 47.4507C123.034 47.4507 123.034 47.4507 123.034 47.4507C121.082 47.0263 119.385 46.0928 117.857 44.9046C117.263 44.4803 116.754 43.8862 116.245 43.377C116.16 44.3105 116.075 45.3289 115.905 46.2625C115.396 49.5724 114.377 52.7125 112.935 55.683C112.935 55.7678 112.85 55.8527 112.85 55.9376C112.935 56.0224 113.02 56.0224 113.104 56.1073C113.444 56.277 113.699 56.4468 114.038 56.6165C115.566 57.4652 117.263 58.229 119.045 58.7382C119.554 58.908 120.149 59.0777 120.658 59.1626C120.828 59.2475 120.997 59.2475 121.167 59.2475C121.167 59.2475 121.337 59.2475 121.506 59.3323C121.591 59.3323 121.591 59.3323 121.676 59.3323C121.846 59.4172 122.016 59.4172 122.185 59.4172C123.883 59.7567 127.362 60.6902 131.351 62.6422C134.576 64.2547 137.971 66.5462 140.857 69.7712C142.045 71.0443 143.657 71.7232 145.27 71.7232C146.713 71.7232 148.07 71.214 149.259 70.1956C149.513 69.941 149.768 69.6863 149.938 69.4317C151.72 67.2251 151.72 64.0001 149.683 61.7935C149.513 61.7087 149.344 61.5389 149.174 61.3692Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M112.935 59.8416C111.831 59.8416 110.813 60.0962 109.879 60.6054C108.606 61.3692 107.673 62.4725 107.248 63.8304C107.079 64.4245 106.909 65.0186 106.909 65.6975C106.909 69.0074 109.54 71.6383 112.85 71.6383C116.16 71.6383 118.791 69.0074 118.791 65.6975C118.791 64.085 118.112 62.6422 117.093 61.5389C116.075 60.5205 114.632 59.8416 112.935 59.8416Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M222.5 9.5144C214.438 9.5144 207.054 12.5697 201.538 17.6618C201.538 17.7467 201.623 17.7467 201.707 17.8316C204.253 21.2263 205.951 25.3 206.715 29.6284C210.194 24.6211 215.965 21.3112 222.5 21.3112C233.109 21.3112 241.681 29.883 241.681 40.4916C241.681 51.1002 233.109 59.672 222.5 59.672C214.098 59.672 206.969 54.3252 204.423 46.7719C202.556 50.6759 199.755 54.1555 196.361 56.8713C196.276 56.8713 196.276 56.9562 196.191 56.9562C201.707 65.6977 211.467 71.5537 222.5 71.5537C239.644 71.5537 253.562 57.6351 253.562 40.4916C253.562 23.4329 239.559 9.5144 222.5 9.5144Z\"\n      fill=\"white\"\n      />\n      <path\n      d=\"M77.4592 32.8533V48.2146L90.7837 40.5764L77.4592 32.8533Z\"\n      fill=\"white\"\n      />\n    </svg>\n    <ng-template #marketLogo>\n      <img\n        (click)=\"routing.goToHomepage()\"\n        class=\"logo\"\n        src=\"/assets/images/logos/qorpo-market-logo.svg\"\n        alt=\"Qorpo Market logo\"\n      />\n    </ng-template>\n\n    <ng-container *ngIf=\"email; else noEmail\">\n      <p class=\"main-heading f-s-32\">Code sent to your e-mail</p>\n      <p class=\"main-desc disclaimer f-s-16\">\n        Please complete your registration by entering verification code sent to\n        <strong>{{ email }}</strong>\n      </p>\n\n      <div class=\"form-holder\">\n        <form [formGroup]=\"verifyForm\">\n          <!--Recovery code input-->\n          <div class=\"input-row\">\n            <label class=\"f-s-16\" for=\"code\">Verification code</label>\n            <div class=\"input-holder\">\n              <input\n                class=\"common-height\"\n                #codeInput\n                type=\"text\"\n                id=\"code\"\n                formControlName=\"code\"\n                placeholder=\"Enter code sent to your e-mail\"\n                pattern=\"^\\d{6}$\"\n                autocomplete=\"off\"\n                isFocused\n                autofocus\n              />\n              <!--Errors here-->\n              <div\n                class=\"error-holder\"\n                [@opacityIfTransition]\n                *ngIf=\"\n                  codeInput.dataset.isFocused === 'true' &&\n                  codeField.touched &&\n                  codeField.dirty &&\n                  !testCode(codeInput.value)\n                \"\n              >\n                <p class=\"f-s-14\">Enter valid code.</p>\n              </div>\n              <div\n                class=\"error-holder\"\n                [@opacityIfTransition]\n                *ngIf=\"\n                  codeInput.dataset.isFocused === 'true' && codeField.errors?.code\n                \"\n              >\n                <p class=\"f-s-14\">Invalid verification code.</p>\n              </div>\n            </div>\n          </div>\n        </form>\n\n        <button\n          (click)=\"tryActivation()\"\n          class=\"my-cta-btn speci-title-font f-s-16 common-height\"\n          [ngClass]=\"{ disabled: !verifyForm.valid }\"\n        >\n          <ng-container *ngIf=\"!loading; else loadingBtn\">Confirm</ng-container>\n          <ng-template #loadingBtn>\n            Loading\n            <ng-container *ngFor=\"let item of counter(3); let i = index\">\n              <span class=\"loading-dot\" [attr.data-index]=\"i\">.</span>\n            </ng-container>\n          </ng-template>\n        </button>\n      </div>\n      <p class=\"disclaimer f-s-16 spaced\">\n        Didn&lsquo;t receive code?\n        <a (click)=\"resendCode()\" class=\"link\">Resend code.</a>\n      </p>\n    </ng-container>\n\n    <ng-template #noEmail>\n      <p class=\"main-heading f-s-32\">Enter your e-mail</p>\n      <p class=\"main-desc disclaimer f-s-16\">\n        Please enter the e-mail that you used during your registration\n      </p>\n\n      <div class=\"form-holder\">\n        <form [formGroup]=\"emailForm\">\n          <!--Recovery code input-->\n          <div class=\"input-row\">\n            <label class=\"f-s-16\" for=\"code\">E-mail</label>\n            <div class=\"input-holder\">\n              <input\n                class=\"common-height\"\n                #emailInput\n                type=\"text\"\n                id=\"email\"\n                formControlName=\"email\"\n                placeholder=\"Enter your e-mail\"\n                isFocused\n                autofocus\n              />\n              <!--Errors here-->\n              <ng-container\n                *ngIf=\"\n                  emailField.errors?.email &&\n                  emailField.dirty &&\n                  emailField.touched &&\n                  emailInput.dataset.isFocused === 'true'\n                \"\n              >\n                <div class=\"error-holder common-height\" [@opacityIfTransition]>\n                  <p class=\"f-s-16\">Please enter a valid e-mail.</p>\n                </div>\n              </ng-container>\n              <!--Backend error message-->\n              <ng-container\n                *ngIf=\"\n                  emailField.errors?.emailError &&\n                  emailField.dirty &&\n                  emailField.touched &&\n                  emailInput.dataset.isFocused === 'true'\n                \"\n              >\n                <div class=\"error-holder common-height\" [@opacityIfTransition]>\n                  <p class=\"f-s-16\">{{ emailField.errors?.emailError }}</p>\n                </div>\n              </ng-container>\n            </div>\n          </div>\n        </form>\n\n        <button\n          (click)=\"enterEmail(emailForm.controls['email'].value)\"\n          class=\"my-cta-btn speci-title-font f-s-16 common-height\"\n          [ngClass]=\"{ disabled: !emailForm.valid }\"\n        >\n          <ng-container *ngIf=\"!loading; else loadingBtn\">Confirm</ng-container>\n          <ng-template #loadingBtn>\n            Loading\n            <ng-container *ngFor=\"let item of counter(3); let i = index\">\n              <span class=\"loading-dot\" [attr.data-index]=\"i\">.</span>\n            </ng-container>\n          </ng-template>\n        </button>\n      </div>\n    </ng-template>\n\n\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule as QorpoCommon } from '@qorpo/common';\nimport { MetamaskModule } from '@qorpo/metamask';\n\nimport { AuthentificationComponent } from './authentification.component';\n\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\nimport { EmailRegistrationFormComponent } from './components/form-components/email-registration-form/email-registration-form.component';\nimport { FormCheckboxInputComponent } from './components/form-components/form-checkbox-input/form-checkbox-input.component';\nimport { LoginFormComponent } from './components/form-components/login-form/login-form.component';\nimport { ResetPasswordFormComponent } from './components/form-components/reset-password-form/reset-password-form.component';\nimport { SimpleRegistrationFormComponent } from './components/form-components/simple-registration-form/simple-registration-form.component';\nimport { LoadingComponent } from './components/loading/loading.component';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { ResetPasswordComponent } from './components/reset-password/reset-password.component';\nimport { FacebookLoginProvider } from './components/social-logins/facebook-login-provider';\nimport { GoogleLoginProvider } from './components/social-logins/google-login-provider';\nimport { SocialAuthServiceConfig } from './components/social-logins/social-auth.service';\nimport { TwitterCallbackComponent } from './components/social-logins/twitter-callback/twitter-callback.component';\nimport { TwitterLoginProvider } from './components/social-logins/twitter-login-provider';\nimport { UeSuccModalComponent } from './components/ue-succ-modal/ue-succ-modal.component';\nimport { VerifyRegistrationComponent } from './components/verify-registration/verify-registration.component';\nimport { IsFocusedDirective } from './directives/isFocused.directive';\nimport { AuthLibConfig } from './lib-config';\n\n@NgModule({\n  declarations: [\n    AuthentificationComponent,\n    LoginComponent,\n    ForgotPasswordComponent,\n    EmailRegistrationFormComponent,\n    FormCheckboxInputComponent,\n    LoginFormComponent,\n    ResetPasswordFormComponent,\n    SimpleRegistrationFormComponent,\n    RegisterComponent,\n    ResetPasswordComponent,\n    VerifyRegistrationComponent,\n    TwitterCallbackComponent,\n    LoadingComponent,\n    UeSuccModalComponent,\n    IsFocusedDirective,\n  ],\n  imports: [\n    RouterModule.forChild([]),\n    ReactiveFormsModule,\n    FormsModule,\n    CommonModule,\n    MetamaskModule,\n    QorpoCommon\n  ],\n  exports: [AuthentificationComponent, IsFocusedDirective, LoginComponent],\n  providers: [\n    TwitterLoginProvider,\n    {\n      provide: 'SocialAuthServiceConfig',\n      useValue: {\n        autoLogin: false,\n        providers: [\n          {\n            id: FacebookLoginProvider.PROVIDER_ID,\n            provider: new FacebookLoginProvider('1169826077248799'),\n          },\n          {\n            id: GoogleLoginProvider.PROVIDER_ID,\n            provider: new GoogleLoginProvider(\n              '680765763313-9jicri8mql3fhuo33o2mm8i4htqrskmo.apps.googleusercontent.com'\n            ),\n          },\n          {\n            id: TwitterLoginProvider.PROVIDER_ID,\n            provider: TwitterLoginProvider,\n          },\n        ],\n        onError: (err) => {},\n      } as SocialAuthServiceConfig,\n    },\n  ],\n})\nexport class AuthentificationModule {\n  static forRoot(\n    libConfiguration: AuthLibConfig\n  ): ModuleWithProviders<AuthentificationModule> {\n    return {\n      ngModule: AuthentificationModule,\n      providers: [\n        {\n          provide: AuthLibConfig,\n          useValue: libConfiguration,\n        },\n      ],\n    };\n  }\n}\n","import { Injectable } from '@angular/core';\nimport {\n  HttpRequest,\n  HttpHandler,\n  HttpInterceptor,\n} from '@angular/common/http';\nimport { FlashMessageService } from '@qorpo/common';\n\nimport { AuthService } from '../services/auth.service';\nimport { AuthStorageManagementService } from '../services/auth-storage-management.service';\n\nimport { throwError, of } from 'rxjs';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { switchMap } from 'rxjs/internal/operators/switchMap';\nimport { catchError } from 'rxjs/internal/operators/catchError';\nimport { finalize } from 'rxjs/internal/operators/finalize';\n\n\n@Injectable()\nexport class JwtInterceptor implements HttpInterceptor {\n\n  refCount = 0;\n  isRefreshingToken = false;\n\n  tokenSubject: BehaviorSubject<string> = new BehaviorSubject<string>(null);\n\n  constructor(\n    private authService: AuthService,\n    private storage: AuthStorageManagementService,\n    private flash: FlashMessageService,\n  ) {}\n\n  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<any> {\n    const idToken = this.storage.getIdToken();\n    let checkToken;\n\n    if (request.headers.get('skipAuth') || !idToken) {\n      checkToken = {};\n    } else {\n      checkToken = {\n        Authorization: `Bearer ` + idToken,\n      };\n    }\n\n    request = request.clone({\n      withCredentials: true,\n      setHeaders: checkToken,\n    });\n\n    return next.handle(request).pipe(\n      catchError((err) => {\n        if (err.status === 401) {\n          this.refCount++;\n          this.storage.setRefCount(this.refCount);\n          return this.handle401Error(request, next);\n        } else if (err.status === 422) {\n          const violations = err.error.error.violations;\n          const message = [];\n          for (const [key, violation] of Object.entries(violations)) {\n            message.push(\n              violations[key]\n                .reduce((result, error) => {\n                  if (error.message != null){\n                    return result + '\\n' + error.message;\n                  }\n                  else {\n                    return result + '\\n' + error;\n                  }\n                }, '')\n                .trim(),\n            );\n          }\n          this.flash.error('Error', message.join('\\n'));\n          return throwError(err);\n        } else if (err.status === 503) {\n          this.flash.error('Error', err.error.error.message);\n          return throwError(err);\n        } else {\n          console.log(err);\n          this.flash.error('Error', err.error.error.message);\n          return throwError(err);\n        }\n      })\n    );\n  }\n\n  private handle401Error(request: HttpRequest<any>, next: HttpHandler) {\n    const refCounter = this.storage.getRefCount();\n    if (refCounter && Number(refCounter) > 1) {\n      return null;\n    }\n\n    if (!this.isRefreshingToken) {\n      this.isRefreshingToken = true;\n      const token = this.storage.getRefreshToken();\n\n      if (token) {\n        return this.authService.tokenRefresh().pipe(\n          switchMap((response) => {\n            if (response) {\n              this.tokenSubject.next(response.data.id_token);\n              this.storage.setIdToken(response.data.id_token);\n              this.refCount = 0;\n              this.storage.removeRefCount();\n            } else {\n              this.authService.logout();\n            }\n            this.isRefreshingToken = false;\n            return next.handle(this.setBearerHeader(request, response.data.id_token));\n          }),\n          catchError((error) => {\n            this.isRefreshingToken = false;\n            this.authService.logout();\n            return <any>this.authService.logout();\n          }),\n          finalize(() => {\n            this.isRefreshingToken = false;\n          })\n        );\n      } else {\n        this.isRefreshingToken = false;\n        return this.tokenSubject.pipe(\n          switchMap((token) => {\n            return next.handle(this.setBearerHeader(request, token));\n          })\n        );\n      }\n    }\n    return of(false);\n  }\n\n  private setBearerHeader(\n    request: HttpRequest<any>,\n    token: string\n  ): HttpRequest<any> {\n\n    return request.clone({\n      setHeaders: {\n        Authorization: `Bearer ` + token,\n      },\n    });\n  }\n}\n","import { AbstractControl, AsyncValidatorFn } from '@angular/forms';\nimport { RecaptchaService } from '../services/recaptcha.service';\nimport { RequestCallsService } from '@qorpo/common';\nimport { BehaviorSubject, catchError, of, switchMap, take, timer } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { UniqueCredentialsRes } from '../models/unique-credentials-res';\n\ndeclare let grecaptcha: any;\nlet fieldValue;\n\nexport function uniqueCredentialsValidator(\n  request: RequestCallsService,\n  recaptcha: RecaptchaService,\n  attribute: string\n): AsyncValidatorFn {\n  return (control: AbstractControl) => {\n    fieldValue = control.value;\n    if (!fieldValue || fieldValue?.length === 0) {\n      return null;\n    }\n    return timer(500).pipe(\n      switchMap(() => generateCaptcha(request, recaptcha, attribute)),\n      map((val: UniqueCredentialsRes) => {\n        return !val.status ? { [`${attribute}Unique`]: true } : null;\n      }),\n      take(1),\n      catchError(() => of(null))\n    );\n  };\n}\n\nfunction generateCaptcha(\n  request,\n  recaptcha,\n  attribute\n): Promise<UniqueCredentialsRes> {\n  return new Promise(async (resolve, reject) => {\n    const subject = new BehaviorSubject<UniqueCredentialsRes>({});\n    const token = await grecaptcha?.enterprise.execute(recaptcha.recaptchaId, {\n      action: recaptcha.recaptchaActions.register,\n    });\n\n    const data = {\n      attribute,\n      value: fieldValue,\n      'g-recaptcha-token': token,\n    };\n\n    await request\n      .callHttpRequest('/api/v1/auth/check-unique-user-data', {\n        method: 'post',\n        params: [{ value: data, type: 'body' }],\n      })\n      .subscribe(\n        (res) => {\n          subject.next(res.data);\n          resolve(subject.getValue());\n        },\n        (error) => {\n          reject(error);\n        }\n      );\n  });\n}\n","/*\n * Public API Surface of authentification\n */\n\nexport * from './lib/lib-config';\n\nexport * from './lib/authentification.service';\nexport * from './lib/authentification.component';\nexport * from './lib/authentification.module';\n\nexport * from './lib/services/recaptcha.service';\nexport * from './lib/services/auth.service';\nexport * from './lib/services/auth-storage-management.service';\nexport * from './lib/services/auth-routing.service';\nexport * from './lib/components/social-logins/social-auth.service';\n\nexport * from './lib/interceptors/jwt.interceptor';\n\nexport * from './lib/directives/isFocused.directive';\n\nexport * from './lib/enums/auth-actions-list.enum';\n\nexport * from './lib/validators/password-match-validator';\nexport * from './lib/validators/password-strength-validator';\nexport * from './lib/validators/unique-credentials-validator';\n\nexport * from './lib/components/forgot-password/forgot-password.component';\nexport * from './lib/components/login/login.component';\nexport * from './lib/components/register/register.component';\nexport * from './lib/components/reset-password/reset-password.component';\nexport * from './lib/components/verify-registration/verify-registration.component';\nexport * from './lib/components/social-logins/twitter-callback/twitter-callback.component';\nexport * from './lib/components/ue-succ-modal/ue-succ-modal.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.RecaptchaService","i4","i5.AuthLibConfig","i6.AuthRoutingService","i7","i8.IsFocusedDirective","i1","i2.AuthLibConfig","i5.FormCheckboxInputComponent","i6.IsFocusedDirective","i2","i3.AuthRoutingService","i5.IsFocusedDirective","i4.IsFocusedDirective","i1.AuthLibConfig","i1.AuthStorageManagementService","i1.RecaptchaService","i3.AuthStorageManagementService","i6","i1.AuthService","i5.SocialAuthService","i7.AuthStorageManagementService","i8.AuthLibConfig","i9.AuthRoutingService","i10","i11.LoginFormComponent","i12.LoadingComponent","i13.UeSuccModalComponent","i2.RecaptchaService","i3","i4.SocialAuthService","i5.AuthService","i11.EmailRegistrationFormComponent","i12.SimpleRegistrationFormComponent","i13.LoadingComponent","i4.AuthLibConfig","i5.AuthRoutingService","i7.ResetPasswordFormComponent","i2.AuthRoutingService","i4.AuthService","i5.AuthStorageManagementService","i6.AuthLibConfig","i7.AuthRoutingService","i8","i9.IsFocusedDirective","QorpoCommon","catchError","finalize","i2.AuthStorageManagementService","switchMap","BehaviorSubject"],"mappings":"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"}