{"version":3,"mappings":"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","names":["i0","ModalTwoFactorAuthComponent","constructor","activeModal","loginService","this","verificationCode","FormControl","Validators","ngOnInit","onSubmit","towFactorAuth","code","value","email","access_token","then","result","close","success","catch","onClose","selectors","ctx","RegisterConfirmationComponent","ForgotPasswordComponent","toastr","emailControl","loading$","loadingChange$","sendEmail","submitedEmail","invalid","forgotPassword","timeOut","client_id","environment","gcId","AuthenticationComponent","formBuilder","modalService","storageService","termsAndConditionsService","socialAuthService","authService","termsAndConditions","checkboxControl","checkboxAuthControl","availableCashback","loginForm","group","username","password","registerForm","firstName","lastName","phone","recaptcha","isDesktop","navigator","userAgent","match","user","getCurrentUser","resetForm","subscribe","reset","setTimeout","isMobile","get","setValue","controls","onLoginSubmit","loadingLoging","login","getLoginForm","pipe","first","data","requiredOpt","termsAndConditionsApproved","modalRef","open","ModalTermsAndConditionalsComponent","centered","backdrop","componentInstance","towFactorEnabled","result1","userName","accept","response","phoneVerification","logoutWithoutRedirect","error","logout","s","terms","TermsAnsConditionsModel","setTermsAndConditions","phoneVerified","ModalPhoneVerificationComponent","windowClass","keyboard","isoCode","res","completed","setUser","onRegisterSubmit","emailSuggestion","setValidators","loadingRegister","getRegisterForm","validEmailAfterRegister","Email","localUser","domainSuggestion","setErrors","register","fbq","currency","gtag","dismissAll","setEmail","signInWithFacebook","socialPlatformProvider","FacebookLoginProvider","loadingSubject","next","signIn","userData","externalAuthProvider","authToken","token","provider","externalProviderAuth","ExternalAccessToken","Provider","UserName","FirstName","LastName","BirthDay","birthDate","hasLocalAccount","authUser","userFirstName","userLastName","userEmail","refresh_token","token_type","expires","expires_in","userPhone","userAvatar","photoUrl","emailNotificationsAllowed","smsNotificationsAllowed","userLevel","isZipCodeRequired","promotionMode","preRechargeMode","attachSignin","element","self","auth2","attachClickHandler","googleUser","basicInfo","getBasicProfile","getGivenName","getFamilyName","getImageUrl","getAuthResponse","id_token","getEmail","google","googleLoginWrapper","document","createElement","style","display","classList","add","getElementById","appendChild","googleAuth","interval","undefined","handleCredentialResponse","responsePayload","jwtDecode","credential","given_name","family_name","picture","accounts","id","disableAutoSelect","initialize","callback","clearInterval","renderButton","type","width","querySelector","click","setInterval","verifyEmail","LoginService","decls","AuthenticationModule","bootstrap","TermsAndConditionsService","DataService","RechargeService","provide","RECAPTCHA_SETTINGS","useValue","siteKey","ContactsService","imports","CommonModule","FormsModule","ReactiveFormsModule","RouterModule","SharedModule","RecaptchaModule","RecaptchaFormsModule"],"sources":["webpack:///src/app/shared/components/modal-two-factor-auth/modal-two-factor-auth.component.html","webpack:///src/app/shared/components/modal-two-factor-auth/modal-two-factor-auth.component.ts","webpack:///src/app/shared/components/register-confirmation/register-confirmation.component.ts","webpack:///src/app/shared/components/register-confirmation/register-confirmation.component.html","webpack:///src/app/shared/components/forgot-password/forgot-password.component.html","webpack:///src/app/shared/components/forgot-password/forgot-password.component.ts","webpack:///src/app/menu/authentication/authentication.component.html","webpack:///src/app/menu/authentication/authentication.component.ts","webpack:///src/app/menu/authentication/authentication.module.ts"],"sourcesContent":["
\r\n
VERIFICACIÓN DE ACCESO
\r\n
\r\n
\r\n
\r\n

Por favor, ingrese el código de verificación enviado a su correo electrónico para acceder a su cuenta:

\r\n \r\n
\r\n
El código de verificación es\r\n obligatorio\r\n
\r\n
\r\n El código de verificación debe tener 6 dígitos\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \"Cargando...\"\r\n \r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Observable } from 'rxjs';\r\nimport { LoginService } from '@app/services/login.service';\r\nimport { VerifyOptModel } from '@app/models/verify-opt.model';\r\n\r\n@Component({\r\n selector: 'app-modal-two-factor-auth',\r\n templateUrl: './modal-two-factor-auth.component.html',\r\n styleUrls: ['./modal-two-factor-auth.component.css']\r\n})\r\nexport class ModalTwoFactorAuthComponent implements OnInit {\r\n\r\n @Input()\r\n email: string;\r\n @Input()\r\n access_token: string;\r\n\r\n verificationCode: FormControl;\r\n loading$: Observable;\r\n\r\n constructor(private activeModal: NgbActiveModal, private loginService: LoginService) {\r\n this.verificationCode = new FormControl('', [Validators.required, Validators.maxLength(6), Validators.minLength(6)]);\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n onSubmit() {\r\n const verifyOpt: VerifyOptModel = {\r\n code: this.verificationCode.value,\r\n email: this.email\r\n };\r\n this.loginService.towFactorAuth(verifyOpt, this.access_token)\r\n .then(result => {\r\n if (result.success) {\r\n this.activeModal.close('success');\r\n } else {\r\n this.activeModal.close('error');\r\n }\r\n }).catch(() => this.activeModal.close('error'));\r\n }\r\n\r\n onClose() {\r\n this.activeModal.close(false);\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-register-confirmation',\r\n templateUrl: './register-confirmation.component.html',\r\n styleUrls: ['./register-confirmation.component.css']\r\n})\r\nexport class RegisterConfirmationComponent implements OnInit {\r\n\r\n constructor(public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n \"Cubatel\r\n
¡GRACIAS POR REGISTRARSE EN CUBATEL!
\r\n
\r\n\r\n\r\n
\r\n\r\n

Su cuenta ha sido creada. Para completar
el proceso, revise el email de activación
que\r\n enviamos a su correo

\r\n\r\n\r\n
\r\n\r\n","
\r\n
¿OLVIDÓ SU CONTRASEÑA?
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
El correo es obligatorio\r\n
\r\n
El correo no es válido\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \"Cargando...\"\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { LoginService } from '@app/services/login.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-forgot-password',\r\n templateUrl: './forgot-password.component.html',\r\n styleUrls: ['./forgot-password.component.css']\r\n})\r\nexport class ForgotPasswordComponent implements OnInit {\r\n\r\n emailControl: FormControl;\r\n submitedEmail: boolean;\r\n loading$: Observable;\r\n\r\n constructor(\r\n private loginService: LoginService,\r\n public activeModal: NgbActiveModal,\r\n private toastr: ToastrService\r\n ) {\r\n this.emailControl = new FormControl('', [Validators.required, Validators.email]);\r\n }\r\n\r\n ngOnInit() {\r\n this.loading$ = this.loginService.loadingChange$;\r\n }\r\n\r\n sendEmail() {\r\n this.submitedEmail = false;\r\n\r\n if (this.emailControl.invalid) {\r\n this.submitedEmail = true;\r\n return;\r\n }\r\n const email = this.emailControl.value;\r\n this.loginService.forgotPassword(email)\r\n .then(() => {\r\n this.toastr.success('Su contaseña se ha reiniciado correctamente, por favor verifique su correo para restaurar su contraseña.', null, {\r\n timeOut: 25000\r\n });\r\n this.activeModal.close(true);\r\n });\r\n\r\n }\r\n\r\n onClose() {\r\n this.activeModal.close();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n

Iniciar sesión

\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n
El correo es obligatorio\r\n
\r\n
El correo no es válido\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n
La contraseña es\r\n obligatoria\r\n
\r\n
La contraseña debe tener\r\n al menos 6 caracteres\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n ¿Olvidó su contraseña?\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Regístrate para una mayor Seguridad en\r\n tus recargas

\r\n

Gracias por su confianza

\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n
El nombre es\r\n obligatorio\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
El apellido es\r\n obligatorio\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
El correo es\r\n obligatorio\r\n
\r\n
El correo no es válido\r\n
\r\n
¿Quiso decir {{emailSuggestion}}?
\r\n
\r\n
\r\n Por favor introduzca una dirección válida\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
La contraseña es\r\n obligatoria\r\n
\r\n
La contraseña debe\r\n tener al menos 6 caracteres\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Por favor, valida el captcha para completar la creación de tu cuenta de usuario en Cubatel\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \"Cargando...\"\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \"Cargando...\"\r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, FormBuilder, Validators } from '@angular/forms';\r\nimport { LoginService } from '@app/services/login.service';\r\nimport { first } from 'rxjs/operators';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ModalTermsAndConditionalsComponent } from '@app/shared/components/modal-terms-and-conditionals/modal-terms-and-conditionals.component';\r\nimport { StorageService } from '@app/services/storage.service';\r\nimport { VerifyOptModel } from '@app/models/verify-opt.model';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ModalTwoFactorAuthComponent } from '@app/shared/components/modal-two-factor-auth/modal-two-factor-auth.component';\r\nimport { TermsAnsConditionsModel } from '@app/models/terms-and-conditions.model';\r\nimport { TermsAndConditionsService } from '@app/services/terms-and-conditions.service';\r\nimport { User } from '@app/models/user.model';\r\nimport { PriceModel } from '@app/models/price.model';\r\nimport { RegisterConfirmationComponent } from '@app/shared/components/register-confirmation/register-confirmation.component';\r\nimport { FacebookLoginProvider, SocialAuthService } from 'angularx-social-login';\r\nimport { environment } from '@env/environment';\r\nimport { ForgotPasswordComponent } from '@app/shared/components/forgot-password/forgot-password.component';\r\nimport { AuthenticationService } from '@app/services/authentication.service';\r\nimport { ModalPhoneVerificationComponent } from '@app/shared/components/modal-phone-verification/modal-phone-verification.component';\r\nimport { RegisterValidationModel } from '../../models/auth/register-validation.model';\r\nimport { jwtDecode } from 'jwt-decode';\r\nconst client_id = environment.client_id;\r\nconst gcId = environment.gcId;\r\ndeclare let fbq: Function;\r\ndeclare let gtag: Function;\r\ndeclare let loadGoogleClient: Function;\r\ndeclare let google: any;\r\ndeclare let gapi: any;\r\n@Component({\r\n selector: 'app-authentication',\r\n templateUrl: './authentication.component.html',\r\n styleUrls: ['./authentication.component.css'],\r\n providers: [LoginService]\r\n})\r\nexport class AuthenticationComponent implements OnInit {\r\n\r\n loginForm: FormGroup;\r\n registerForm: FormGroup;\r\n loadingLoging = false;\r\n customLoading = false;\r\n loadingRegister = false;\r\n\r\n user: User;\r\n price: PriceModel;\r\n toRecharge: any;\r\n amountToRecharge: number;\r\n izcr: boolean;\r\n availableCashback: number;\r\n isPreRechargeMode: boolean;\r\n returnUrl = '/perfil';\r\n\r\n checkboxControl: FormControl;\r\n checkboxAuthControl: FormControl;\r\n termsAndConditions: FormControl;\r\n\r\n isMobile = false;\r\n isDesktop: boolean;\r\n\r\n landingPage: boolean;\r\n landinfPageLogin: boolean;\r\n landingPageControl: boolean;\r\n\r\n emailSuggestion: string;\r\n\r\n auth2: any;\r\n gcId = gcId;\r\n\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n public loginService: LoginService,\r\n private modalService: NgbModal,\r\n private storageService: StorageService,\r\n private toastr: ToastrService,\r\n private termsAndConditionsService: TermsAndConditionsService,\r\n private socialAuthService: SocialAuthService,\r\n private authService: AuthenticationService,\r\n ) {\r\n this.termsAndConditions = new FormControl(false);\r\n this.checkboxControl = new FormControl(false);\r\n this.checkboxAuthControl = new FormControl(false);\r\n this.availableCashback = 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.loginForm = this.formBuilder.group({\r\n username: ['', [Validators.required, Validators.email]],\r\n password: ['', [Validators.required, Validators.minLength(6)]]\r\n });\r\n\r\n this.registerForm = this.formBuilder.group({\r\n firstName: ['', Validators.required],\r\n lastName: ['', Validators.required],\r\n username: ['', [Validators.required, Validators.email]],\r\n email: [''],\r\n phone: [''],\r\n password: ['', [Validators.required, Validators.minLength(6)]],\r\n recaptcha: [false, Validators.required]\r\n });\r\n\r\n this.isDesktop = !(navigator.userAgent.match(/iPad|(iPhone)|(iPod)|(android)|(webOs)/i));\r\n this.user = this.storageService.getCurrentUser();\r\n\r\n this.authService.resetForm.subscribe(reset => {\r\n if (reset) {\r\n this.loginForm.reset();\r\n this.registerForm.reset();\r\n setTimeout(() => {\r\n this.isMobile = false;\r\n }, 700);\r\n }\r\n });\r\n\r\n this.authService.username.subscribe(username => {\r\n this.loginForm.get('username').setValue(username);\r\n });\r\n\r\n }\r\n\r\n get getLoginForm() {\r\n return this.loginForm.controls;\r\n }\r\n\r\n get getRegisterForm() {\r\n return this.registerForm.controls;\r\n }\r\n\r\n onLoginSubmit() {\r\n\r\n if (this.loginForm.invalid) {\r\n return;\r\n }\r\n this.loadingLoging = true;\r\n\r\n this.loginService.login(this.getLoginForm.username.value, this.getLoginForm.password.value)\r\n .pipe(first())\r\n .subscribe(\r\n data => {\r\n if (data.requiredOpt == 'true') {\r\n if (data.termsAndConditionsApproved == 'false') {\r\n const modalRef = this.modalService.open(ModalTermsAndConditionalsComponent, { centered: true, backdrop: 'static' });\r\n modalRef.componentInstance.towFactorEnabled = true;\r\n modalRef.result.then(result1 => {\r\n if (!result1) {\r\n this.loadingLoging = false;\r\n this.storageService.logout();\r\n } else {\r\n const verifyOpt: VerifyOptModel = {\r\n code: result1.code,\r\n email: data.userName,\r\n termsAndConditionsApproved: result1.accept,\r\n };\r\n this.loginService.towFactorAuth(verifyOpt, data.access_token)\r\n .then(response => {\r\n if (response.success) {\r\n this.phoneVerification(data);\r\n } else {\r\n this.loadingLoging = false;\r\n this.storageService.logoutWithoutRedirect();\r\n this.toastr.error('El código de verificación no es válido intente autenticarse nuevamente');\r\n }\r\n })\r\n .catch(() => {\r\n this.loadingLoging = false;\r\n this.storageService.logout();\r\n });\r\n }\r\n }).catch(() => {\r\n this.loadingLoging = false;\r\n this.storageService.logout();\r\n });\r\n } else {\r\n const modalRef = this.modalService.open(ModalTwoFactorAuthComponent, { centered: true, backdrop: 'static' });\r\n modalRef.componentInstance.email = data.userName;\r\n modalRef.componentInstance.access_token = data.access_token;\r\n modalRef.result.then(result => {\r\n if (result == 'success') {\r\n this.phoneVerification(data);\r\n } else if (result == 'error') {\r\n this.loadingLoging = false;\r\n this.storageService.logoutWithoutRedirect();\r\n this.toastr.error('El código de verificación no es válido intente autenticarse nuevamente');\r\n } else {\r\n this.loadingLoging = false;\r\n this.storageService.logoutWithoutRedirect();\r\n }\r\n }).catch(() => {\r\n this.loadingLoging = false;\r\n this.storageService.logoutWithoutRedirect();\r\n });\r\n\r\n }\r\n } else {\r\n if (data.termsAndConditionsApproved == 'false') {\r\n const modalRef = this.modalService.open(ModalTermsAndConditionalsComponent, { centered: true, backdrop: 'static' }).result\r\n .then(result1 => {\r\n if (result1) {\r\n const terms = new TermsAnsConditionsModel({ termsAndConditionsApproved: true });\r\n this.termsAndConditionsService.setTermsAndConditions(terms, data.access_token)\r\n .then(() => {\r\n this.phoneVerification(data);\r\n })\r\n .catch(() => {\r\n this.loadingLoging = false;\r\n this.storageService.logout();\r\n });\r\n } else {\r\n this.loadingLoging = false;\r\n this.storageService.logout();\r\n }\r\n }).catch(() => {\r\n this.loadingLoging = false;\r\n this.storageService.logout();\r\n });\r\n } else {\r\n this.phoneVerification(data);\r\n }\r\n }\r\n },\r\n error => this.loadingLoging = false\r\n );\r\n }\r\n\r\n phoneVerification(data: any) {\r\n if (data.phoneVerified == 'false') {\r\n const modalRef = this.modalService.open(ModalPhoneVerificationComponent, { centered: true, windowClass: 'phone-verification', backdrop: 'static', keyboard: false });\r\n modalRef.componentInstance.access_token = data.access_token;\r\n modalRef.componentInstance.isoCode = data.isoCode;\r\n modalRef.result.then(res => {\r\n if (res.completed) {\r\n this.loadingLoging = false;\r\n this.authService.setUser(data);\r\n } else {\r\n this.loadingLoging = false;\r\n }\r\n }).catch(() => this.loadingLoging = false);\r\n } else {\r\n this.loadingLoging = false;\r\n this.authService.setUser(data);\r\n }\r\n }\r\n\r\n onRegisterSubmit() {\r\n this.emailSuggestion = '';\r\n this.registerForm.get('username').setValidators([Validators.required, Validators.email]);\r\n\r\n // stop here if form is invalid\r\n if (this.registerForm.invalid || !this.termsAndConditions.value) {\r\n return;\r\n }\r\n this.loadingRegister = true;\r\n this.getRegisterForm.email.setValue(this.getRegisterForm.username.value);\r\n\r\n this.loginService.validEmailAfterRegister({ Email: this.registerForm.value.username })\r\n .subscribe((result: RegisterValidationModel) => {\r\n if (result.success == false) {\r\n this.emailSuggestion = `${result.data.localUser}@${result.data.domainSuggestion}`;\r\n this.registerForm.get('username').setErrors({ domainSuggestion: true });\r\n this.loadingRegister = false;\r\n return;\r\n }\r\n if (result.data.domainSuggestion != '' && result.data.domainSuggestion != null) {\r\n const email = `${result.data.localUser}@${result.data.domainSuggestion}`;\r\n if (email != this.registerForm.value.username) {\r\n this.emailSuggestion = `${result.data.localUser}@${result.data.domainSuggestion}`;\r\n this.registerForm.get('username').setErrors({ domainSuggestion: true });\r\n this.loadingRegister = false;\r\n return;\r\n } else { this.register(); }\r\n } else { this.register(); }\r\n }, error => {\r\n this.register();\r\n });\r\n\r\n }\r\n\r\n private register() {\r\n this.loginService.register(this.registerForm.value)\r\n .pipe(first())\r\n .subscribe(\r\n data => {\r\n fbq('track', 'CompleteRegistration', { 'currency': 'USD', 'value': 0.00 });\r\n gtag('event', 'sign_up');\r\n gtag('event', 'stu_register');\r\n fbq('track', 'stu_register');\r\n this.loadingRegister = false;\r\n this.loginForm.reset();\r\n this.registerForm.reset();\r\n this.isMobile = !this.isMobile;\r\n this.modalService.dismissAll();\r\n this.modalService.open(RegisterConfirmationComponent, { centered: true });\r\n },\r\n error => {\r\n this.loadingRegister = false;\r\n });\r\n }\r\n\r\n setEmail() {\r\n this.registerForm.get('username').setValue(this.emailSuggestion);\r\n }\r\n\r\n //#region External Auth\r\n\r\n public signInWithFacebook() {\r\n const socialPlatformProvider = FacebookLoginProvider.PROVIDER_ID;\r\n this.loginService.loadingSubject.next(true);\r\n this.socialAuthService.signIn(socialPlatformProvider)\r\n .then((userData) => {\r\n this.externalAuthProvider(userData.authToken, userData.email, 'Facebook', userData);\r\n }).catch(() => this.loginService.loadingSubject.next(false));\r\n }\r\n\r\n public externalAuthProvider(token: string, email: string, provider: string, userData: any) {\r\n const authExternal = {\r\n ExternalAccessToken: token,\r\n Provider: provider,\r\n UserName: email,\r\n Email: email,\r\n FirstName: userData.firstName,\r\n LastName: userData.lastName,\r\n BirthDay: userData.birthDate,\r\n client_id: client_id\r\n };\r\n this.loginService.externalProviderAuth(authExternal)\r\n .pipe(first())\r\n .subscribe(\r\n user => {\r\n\r\n if (!user.hasLocalAccount) {\r\n fbq('track', 'CompleteRegistration', { 'currency': 'USD', 'value': 0.00 });\r\n gtag('event', 'sign_up');\r\n gtag('event', 'stu_register');\r\n fbq('track', 'stu_register');\r\n }\r\n const authUser: User = {\r\n userFirstName: userData.firstName,\r\n userLastName: userData.lastName,\r\n userName: user.userName,\r\n email: user.userEmail,\r\n access_token: user.access_token,\r\n refresh_token: user.refresh_token,\r\n token_type: user.token_type,\r\n expires: user.expires,\r\n expires_in: user.expires_in,\r\n userPhone: '',\r\n userAvatar: userData.photoUrl,\r\n termsAndConditionsApproved: user.termsAndConditionsApproved,\r\n emailNotificationsAllowed: user.emailNotificationsAllowed,\r\n smsNotificationsAllowed: user.smsNotificationsAllowed,\r\n provider: provider,\r\n userLevel: user.userLevel,\r\n phoneVerified: user.phoneVerified,\r\n isoCode: user.isoCode,\r\n isZipCodeRequired: user.isZipCodeRequired,\r\n promotionMode: user.promotionMode,\r\n preRechargeMode: user.preRechargeMode\r\n };\r\n if (authUser.termsAndConditionsApproved !== true) {\r\n const modalRef = this.modalService.open(ModalTermsAndConditionalsComponent, { centered: true, backdrop: 'static' }).result\r\n .then(result1 => {\r\n if (result1) {\r\n const terms = new TermsAnsConditionsModel({ termsAndConditionsApproved: true });\r\n this.termsAndConditionsService.setTermsAndConditions(terms, authUser.access_token)\r\n .then(() => {\r\n //this.loadingLoging = false;\r\n this.loginService.loadingSubject.next(false);\r\n this.phoneVerification(authUser);\r\n })\r\n .catch(() => {\r\n //this.loadingLoging = false;\r\n this.loginService.loadingSubject.next(false);\r\n this.storageService.logout();\r\n });\r\n } else {\r\n //this.loadingLoging = false;\r\n this.loginService.loadingSubject.next(false);\r\n this.storageService.logout();\r\n }\r\n }).catch(() => {\r\n //this.loadingLoging = false;\r\n this.loginService.loadingSubject.next(false);\r\n this.storageService.logout();\r\n });\r\n } else {\r\n //this.loadingLoging = false;\r\n this.loginService.loadingSubject.next(false);\r\n this.phoneVerification(authUser);\r\n }\r\n },\r\n error => {\r\n this.loginService.loadingSubject.next(false);\r\n //this.loadingLoging = false;\r\n }\r\n );\r\n\r\n }\r\n\r\n\r\n attachSignin(element) {\r\n const self = this;\r\n this.auth2.attachClickHandler(element, {},\r\n function (googleUser) {\r\n const basicInfo = googleUser.getBasicProfile();\r\n const userData = {\r\n firstName: basicInfo.getGivenName(),\r\n lastName: basicInfo.getFamilyName(),\r\n photoUrl: basicInfo.getImageUrl()\r\n };\r\n self.externalAuthProvider(googleUser.getAuthResponse().id_token, basicInfo.getEmail(), 'Google', userData);\r\n }, function (error) { self.loginService.loadingSubject.next(false); });\r\n }\r\n\r\n google() {\r\n if(this.loadingLoging == false) {\r\n this.loadingLoging = true;\r\n } else { this.loadingLoging = false; return;}\r\n const googleLoginWrapper = document.createElement(\"div\");\r\n // Or you can simple hide it in CSS rule for custom-google-button\r\n googleLoginWrapper.style.display = \"none\";\r\n googleLoginWrapper.classList.add(\"custom-google-button\");\r\n // Add the wrapper to body\r\n var element = document.getElementById('customBtn');\r\n element.appendChild(googleLoginWrapper);\r\n this.googleAuth(googleLoginWrapper);\r\n }\r\n googleAuth(googleLoginWrapper) {\r\n const self = this;\r\n var interval = undefined;\r\n if (google) {\r\n function handleCredentialResponse(response) {\r\n const responsePayload = jwtDecode(response.credential);\r\n const userData = {\r\n firstName: responsePayload.given_name,\r\n lastName: responsePayload.family_name,\r\n photoUrl: responsePayload.picture\r\n };\r\n self.loginService.loadingSubject.next(true);\r\n self.externalAuthProvider(response.credential, responsePayload.email, 'Google', userData);\r\n }\r\n google.accounts.id.disableAutoSelect();\r\n google.accounts.id.initialize({\r\n client_id: environment.gcId,\r\n callback: handleCredentialResponse,\r\n });\r\n clearInterval(interval);\r\n google.accounts.id.renderButton(googleLoginWrapper, {\r\n type: \"icon\",\r\n width: \"200\",\r\n });\r\n const googleLoginWrapperButton: any =\r\n googleLoginWrapper.querySelector(\"div[role=button]\");\r\n googleLoginWrapperButton.click();\r\n } else {\r\n interval = setInterval(() => this.googleAuth(googleLoginWrapper), 500);\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n forgotPassword() {\r\n const modalRef = this.modalService.open(ForgotPasswordComponent,\r\n { centered: true, backdrop: 'static', windowClass: 'forgot-password' });\r\n }\r\n\r\n verifyEmail() {\r\n this.loginService.validEmailAfterRegister({ Email: this.registerForm.value.username })\r\n .subscribe((result: RegisterValidationModel) => {\r\n if (result.success == false) {\r\n if (result.data.domainSuggestion != '' && result.data.domainSuggestion != null) {\r\n this.emailSuggestion = `${result.data.localUser}@${result.data.domainSuggestion}`;\r\n this.registerForm.get('username').setErrors({ domainSuggestion: true });\r\n }\r\n this.registerForm.get('username').setErrors({ domainSuggestion: true });\r\n }\r\n if (result.data.domainSuggestion != '' && result.data.domainSuggestion != null) {\r\n const email = `${result.data.localUser}@${result.data.domainSuggestion}`;\r\n if (email != this.registerForm.value.username) {\r\n this.emailSuggestion = `${result.data.localUser}@${result.data.domainSuggestion}`;\r\n this.registerForm.get('username').setErrors({ domainSuggestion: true });\r\n }\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AuthenticationComponent } from './authentication.component';\r\nimport { LoginService } from '@app/services/login.service';\r\nimport { ModalTermsAndConditionalsComponent } from '@app/shared/components/modal-terms-and-conditionals/modal-terms-and-conditionals.component';\r\nimport { ModalTwoFactorAuthComponent } from '@app/shared/components/modal-two-factor-auth/modal-two-factor-auth.component';\r\nimport { TermsAndConditionsService } from '@app/services/terms-and-conditions.service';\r\nimport { DataService } from '@app/services/data.service';\r\nimport { RechargeService } from '@app/services/recharge.service';\r\nimport { ContactsService } from '@app/services/contacts.service';\r\nimport { RouterModule } from '@angular/router';\r\nimport { RegisterConfirmationComponent } from '@app/shared/components/register-confirmation/register-confirmation.component';\r\nimport { ForgotPasswordComponent } from '@app/shared/components/forgot-password/forgot-password.component';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { SharedModule } from '@app/shared/shared.module';\r\nimport { RecaptchaFormsModule, RecaptchaModule, RecaptchaSettings, RECAPTCHA_SETTINGS } from 'ng-recaptcha';\r\n@NgModule({\r\n declarations: [\r\n AuthenticationComponent,\r\n ModalTermsAndConditionalsComponent,\r\n ModalTwoFactorAuthComponent,\r\n RegisterConfirmationComponent,\r\n ForgotPasswordComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n SharedModule,\r\n RecaptchaModule,\r\n RecaptchaFormsModule,\r\n ],\r\n providers: [\r\n LoginService,\r\n\r\n TermsAndConditionsService,\r\n DataService,\r\n RechargeService,\r\n {\r\n provide: RECAPTCHA_SETTINGS,\r\n useValue: { siteKey: '6LeSMiUTAAAAAF5apPSCnD0IL-MNutpV2bHQJIdX' } as RecaptchaSettings,\r\n },\r\n ContactsService],\r\n bootstrap: [AuthenticationComponent]\r\n})\r\nexport class AuthenticationModule {\r\n}\r\n"]}