{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/core/core.module.ts","./src/app/core/services/api/api.service.ts","./src/app/core/services/api/user/cognito.service.ts","./src/app/core/services/api/user/user.service.ts","./src/app/core/utils/router-path.ts","./src/app/modules/auth/auth-routing.module.ts","./src/app/modules/auth/auth.module.ts","./src/app/modules/auth/login/login.component.ts","./src/app/modules/auth/login/login.component.html","./src/app/modules/redirection/login-redirection/login-redirection.component.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { PATHS } from './core/utils/router-path';\nimport { LoginRedirectionComponent } from './modules/redirection/login-redirection/login-redirection.component';\n\nconst routes: Routes = [\n {\n canActivate: [],\n loadChildren: () =>\n import('./modules/auth/auth.module').then(m => m.AuthModule),\n path: PATHS.AUTH.BASE\n },\n {\n canActivate: [],\n loadChildren: () =>\n import('./modules/register/register.module').then(m => m.RegisterModule),\n path: PATHS.REGISTER.BASE\n },\n {\n canActivate: [],\n loadChildren: () =>\n import('./modules/forget/forget.module').then(m => m.ForgetModule),\n path: 'password',\n data: { state: 'password' }\n },\n {\n path: PATHS.WILDCARD,\n component: LoginRedirectionComponent\n }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { enableTracing: true } )],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n title = 'amcham';\n}\n","\n","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { AuthModule } from './modules/auth/auth.module';\nimport { CoreModule } from './core/core.module';\nimport { CookieService } from 'ng2-cookies';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\n\n@NgModule({\n declarations: [\n AppComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n AuthModule,\n CoreModule,\n BrowserAnimationsModule\n ],\n providers: [CookieService],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, HttpClientModule],\n providers: [],\n})\nexport class CoreModule {}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject} from 'rxjs';\nimport {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n\n private expired = new Subject();\n /**\n * Base URL for all requests made through this\n * service.\n */\n public apiUrl: string;\n\n /**\n * HTTP headers applied to all requests made through this\n * service.\n */\n public httpHeaders = new HttpHeaders();\n\n /**\n * Creates a new HttpApiService instance and initializes it.\n */\n constructor(\n public http: HttpClient,\n ) {\n this.apiUrl = environment.apiUrl;\n this.setDefaultHeaders();\n }\n\n /**\n * Sets the default headers and values for all requests made\n * through this service.\n */\n public setDefaultHeaders(): void {\n this.httpHeaders = this.httpHeaders\n .set('Content-Type', 'application/json')\n .set('Accept', 'application/json');\n\n }\n\n /**\n * Returns all headers and values currently beign used by the service.\n */\n public getHeaders(): HttpHeaders {\n return this.httpHeaders;\n }\n\n /**\n * Sets a header value for a given name. If the header name already\n * exists, its value is replaced with the given value.\n *\n * @param headerName The header name.\n * @param headerValue Provides the value to set or overide for a given name.\n */\n public setHeader(headerName: string, headerValue: string | string[]): void {\n this.httpHeaders = this.httpHeaders.set(headerName, headerValue);\n }\n\n /**\n * Checks for existence of a header by a given name. Then deletes all\n * header values for the given name, or logs an error in development mode.\n *\n * @param headerName The header name.\n */\n public deleteHeader(headerName: string): void {\n if (this.httpHeaders.has(headerName)) {\n this.httpHeaders = this.httpHeaders.delete(headerName);\n } else {\n console.warn('Tried to delete a header that does not exist.');\n }\n }\n\n /**\n * Constructs a `GET` request that interprets the body as a JSON object and returns it as a JSON object.\n * @param url The endpoint URL.\n * @param params The HTTP GET parameters.\n * @return An `Observable` of the response body as a JSON object.\n */\n public get(url: string, params?: HttpParams): Observable;\n\n /**\n * Constructs a `GET` request that interprets the body as T and returns it as T.\n * @param url The endpoint URL.\n * @param params The HTTP GET parameters.\n * @return An `Observable` of the response body as a JSON object.\n */\n public get(url: string, params?: HttpParams): Observable;\n\n public get(url: string, params?: HttpParams) {\n const opts = {\n headers: this.httpHeaders,\n params: (params ? params : null) as HttpParams,\n };\n if (params) {\n opts.params = params;\n }\n\n return this.http.get(this.apiUrl + url, opts).pipe()\n }\n\n /**\n * Constructs a `POST` request that interprets the body as a JSON object and returns it as a JSON object.\n * @param url The endpoint URL.\n * @param body The content to replace with.\n * @return An `Observable` of the response, with the response body as a JSON object.\n */\n public post(url: string, body?: unknown): Observable;\n\n /**\n * Constructs a `POST` request that interprets the body as T and returns it as T.\n * @param url The endpoint URL.\n * @param body The content to replace with.\n * @return An `Observable` of the response, with the response body as T.\n */\n public post(url: string, body?: unknown): Observable;\n\n public post(url: string, body?: unknown) {\n let postBody = body;\n const opts = {\n headers: this.httpHeaders,\n };\n\n if (!postBody) {\n postBody = {};\n }\n\n return this.http.post(this.apiUrl + url, postBody, opts).pipe();\n }\n\n /**\n * Constructs a `PUT` request that interprets the body as a JSON object and returns it as a JSON object.\n * @param url The endpoint URL.\n * @param body The resources to add/update.\n * @return An `Observable` of the response, with the response body as a JSON object.\n */\n public put(url: string, body?: unknown): Observable;\n\n /**\n * Constructs a `PUT` request that interprets the body as T and returns it as T.\n * @param url The endpoint URL.\n * @param body The resources to add/update.\n * @return An `Observable` of the response, with the response body as a JSON object.\n */\n public put(url: string, body?: unknown): Observable;\n\n public put(url: string, body?: unknown) {\n let putBody = body;\n const opts = {\n headers: this.httpHeaders,\n };\n\n if (!putBody) {\n putBody = {};\n }\n\n return this.http.put(this.apiUrl + url, putBody, opts).pipe();\n }\n\n /**\n * Constructs a `DELETE` request that interprets the body as a JSON object and returns it as a JSON object.\n * @param url The endpoint URL.\n * @return An `Observable` of the response, with the response body of type `Object`.\n */\n public delete(url: string): Observable;\n\n /**\n * Constructs a `DELETE` request that interprets the body as T and returns it as T.\n * @param url The endpoint URL.\n * @return An `Observable` of the response, with the response body as T.\n */\n public delete(url: string): Observable;\n\n public delete(url: string) {\n const opts = {\n headers: this.httpHeaders,\n };\n\n return this.http.delete(this.apiUrl + url, opts).pipe();\n }\n\n tokenExpired() {\n return this.expired.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpParams } from '@angular/common/http';\r\nimport { CookieService } from 'ng2-cookies';\r\nimport { CognitoAuthResponse, CognitoUserAttributes } from 'src/app/shared/models/cognito.model';\r\nimport { ApiService } from '../api.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CognitoService {\r\n private cookieDomain = '.amcham.com.ar';\r\n private accessTokenCookie = 'cogToken';\r\n private refreshTokenCookie = 'cogRefreshToken';\r\n private idTokenCookie = 'cogIdToken';\r\n\r\n constructor(\r\n private http: ApiService,\r\n private cookieService: CookieService,\r\n ) { }\r\n\r\n /**\r\n * Returns a paginated list of Users registered in Cognito, \r\n * optionally searching by email and filtering attributes\r\n * @param email User's email to look for \r\n * @param attributes Attributes to return. Default: all attributes returned\r\n */\r\n public listCognitoUsers(email?: string, attributes?: string[]) {\r\n let params = new HttpParams();\r\n if (email) params = params.append('findmail', email);\r\n if (attributes) {\r\n attributes.forEach(attr => {\r\n params.append('attributes', attr)\r\n })\r\n }\r\n return this.http.get('cognito', params);\r\n }\r\n\r\n /**\r\n * Attempts to SignIn a User in Cognito. \r\n * If it fails, attempts to Register with the attributes provided.\r\n * @param email Email of the user (acts as username)\r\n * @param password Password of the user\r\n * @param updateCurrent Attribute to retry: _null | 'mobilephone' | 'password'_\r\n * @param attributes Object containing user attributes\r\n */\r\n public verifyCognitoAndRegister(\r\n email: string, password: string,\r\n updateCurrent: string | null,\r\n attributes: {[key: string]: string }\r\n ) {\r\n const body = {\r\n email, password,\r\n updateCurrent,\r\n ...attributes\r\n }\r\n\r\n return this.http.post('cognito/check', body);\r\n }\r\n\r\n /**\r\n * Register a new User in Cognito with the attributes provided.\r\n * @param email Email of the User (acts as username)\r\n * @param password Password of the User\r\n * @param attributes Object containing User attributes\r\n */\r\n public registerCognitoUser(\r\n email: string, password: string,\r\n attributes: CognitoUserAttributes | {}\r\n ) {\r\n const body = {\r\n email, password,\r\n ...attributes\r\n }\r\n\r\n return this.http.post('cognito/signup', body);\r\n }\r\n\r\n /**\r\n * Completes registration of a User in Cognito using a confirmation code.\r\n * @param email Email of the User (acts as username)\r\n * @param confirmationCode Six-digit confirmation code (passed as string)\r\n */\r\n public confirmCognitoUser(email: string, confirmationCode: string) {\r\n const body = {\r\n email,\r\n confirmationCode\r\n };\r\n return this.http.post('cognito/confirm', body);\r\n }\r\n\r\n /**\r\n * Requests a new confirmation code from Cognito for the provided email.\r\n * @param email Email of the User (acts as username)\r\n */\r\n public requestNewConfirmationCode(email: string) {\r\n const params = new HttpParams().set('u', email);\r\n return this.http.get('cognito/confirm', params);\r\n }\r\n\r\n /**\r\n * Starts a Forgot Password sequence. Sends a confirmation code to User's email.\r\n * @param email Email of the User (acts as username)\r\n */\r\n public startForgotPassword(email: string ) {\r\n const params = new HttpParams().set('u', email);\r\n return this.http.get('cognito/password', params);\r\n }\r\n\r\n /**\r\n * Completes the Forgot Password sequence, \r\n * resetting User's password to the one provided.\r\n * @param email Email of the User (acts as username)\r\n * @param pass New Password associated to the User\r\n * @param confirmationCode Six-digit confirmation code (passed as string)\r\n */\r\n public completeForgotPassword(\r\n email: string, pass: string,\r\n confirmationCode: string\r\n ) {\r\n const body = {\r\n email,\r\n pass,\r\n confirmationCode\r\n }\r\n return this.http.put('cognito/password', body);\r\n }\r\n\r\n /**\r\n * Authenticates a User in Cognito and returns the corresponding tokens.\r\n * @param email Email of the User (acts as username)\r\n * @param password Password of the User\r\n */\r\n public signInCognitoUser(email: string, password: string) {\r\n const body = {\r\n email,\r\n password\r\n }\r\n return this.http.post('cognito/signin', body);\r\n }\r\n\r\n /**\r\n * Reads Cognito cookies and returns Refresh Token.\r\n */\r\n public getRefreshToken() {\r\n return this.cookieService.get(this.refreshTokenCookie);\r\n }\r\n\r\n /**\r\n * Refresh Access and Id tokens using a Refresh token.\r\n */\r\n public refreshAccessToken() {\r\n const refreshToken = this.getRefreshToken();\r\n const body = {\r\n refreshToken\r\n }\r\n\r\n return this.http.post('cognito/token', body);\r\n }\r\n\r\n /**\r\n * List the attributes stored in Cognito for an authenticated User. \r\n * A valid Access token must be provided as Bearer.\r\n */\r\n public getUserAttributes() {\r\n return this.http.get('cognito/attributes');\r\n }\r\n\r\n /**\r\n * Update in Cognito the provided attributes for an authenticated User. \r\n * A valid Access token must be provided as Bearer.\r\n */\r\n public updateUserAttributes(attributes: any) {\r\n const body = {\r\n ...attributes\r\n }\r\n\r\n return this.http.put('cognito/attributes', body);\r\n }\r\n\r\n /**\r\n * Change the password for an authenticated User. \r\n * A valid Access token must be provided as Bearer.\r\n * @param oldPassword The current password\r\n * @param proposedPassword The desired new password\r\n */\r\n public changeOwnPassword(oldPassword: string, proposedPassword: string) {\r\n const body = {\r\n oldPassword,\r\n proposedPassword\r\n }\r\n\r\n return this.http.post('cognito/password', body);\r\n }\r\n\r\n /**\r\n * Attempts to revoke all tokens issued to the current User\r\n */\r\n public signOutCognitoUser() {\r\n return this.http.get('cognito/signout');\r\n }\r\n\r\n /**\r\n * Reads Cognito cookies and sets Authorization header if found.\r\n * @param tokenType Specify the token to load: 'access' | 'id'\r\n */\r\n public loadCognitoUser(tokenType?: string) {\r\n let token: string;\r\n if (tokenType == 'id') {\r\n token = this.cookieService.get(this.idTokenCookie);\r\n } else {\r\n token = this.cookieService.get(this.accessTokenCookie);\r\n }\r\n\r\n if (token) {\r\n // Set Authorization Header for all requests.\r\n this.http.setHeader('Authorization', 'Bearer ' + token);\r\n }\r\n }\r\n\r\n /**\r\n * Sets cookies with the tokens returned by Cognito.\r\n * @param authUser Cognito user authentication response.\r\n */\r\n public setCognitoUser(authUser: CognitoAuthResponse) {\r\n const accessToken = authUser.AccessToken;\r\n const refreshToken = authUser.RefreshToken;\r\n const idToken = authUser.IdToken;\r\n const expiresIn = new Date();\r\n expiresIn.setSeconds(expiresIn.getSeconds() + authUser.ExpiresIn);\r\n\r\n this.cookieService.set(this.accessTokenCookie, accessToken, expiresIn, '/', this.cookieDomain);\r\n this.cookieService.set(this.refreshTokenCookie, refreshToken as string, 30, '/', this.cookieDomain);\r\n this.cookieService.set(this.idTokenCookie, idToken, expiresIn, '/', this.cookieDomain);\r\n\r\n // Set Authorization Header for all requests.\r\n this.http.setHeader('Authorization', 'Bearer ' + accessToken);\r\n }\r\n\r\n /**\r\n * Clears all Cognito related cookies.\r\n */\r\n public clearCognitoCookies(): void {\r\n this.cookieService.delete(this.accessTokenCookie);\r\n this.cookieService.delete(this.refreshTokenCookie);\r\n this.cookieService.delete(this.idTokenCookie);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { CookieService } from 'ng2-cookies';\r\nimport { Router } from '@angular/router';\r\nimport { HttpParams } from '@angular/common/http';\r\nimport { ApiService } from '../api.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService {\r\n\r\n public user: any = null;\r\n public dataUser: any;\r\n public fromEvent: boolean = false;\r\n public eventId: string = \"\";\r\n public mailUserNewForm: string;\r\n private passUserNewForm: string = \"\";\r\n public partnerId: string = \"\";\r\n private registerUserSubject = new BehaviorSubject(null);\r\n private cognitoUserSubject = new BehaviorSubject(null);\r\n\r\n constructor(\r\n public http: ApiService,\r\n public cookieService: CookieService,\r\n public router: Router,\r\n ) {\r\n this.mailUserNewForm = '';\r\n this.loadUser();\r\n }\r\n\r\n public getEventId(): string{\r\n return this.eventId;\r\n }\r\n\r\n public getDataUser(): any {\r\n return this.dataUser;\r\n }\r\n\r\n public getPartnetId(): string {\r\n return this.partnerId;\r\n }\r\n\r\n public toSSOLogin() {\r\n window.location.href = 'https://login.amcham.com.ar/?client_id=connect';\r\n }\r\n\r\n public setMailUserNewForm(val: string): void {\r\n this.mailUserNewForm = val;\r\n }\r\n\r\n public getMailUserNewForm(): string {\r\n return this.mailUserNewForm;\r\n }\r\n \r\n public setPassUserNewForm(val: string): void {\r\n this.passUserNewForm = val;\r\n }\r\n\r\n public getPassUserNewForm(): string {\r\n return this.passUserNewForm;\r\n }\r\n\r\n public getContactId(): string {\r\n return this.cookieService.get('contactId');\r\n }\r\n\r\n public getRegisterUserSubject(): BehaviorSubject{\r\n return this.registerUserSubject;\r\n }\r\n \r\n public getCognitoUserSubject(): BehaviorSubject{\r\n return this.cognitoUserSubject;\r\n }\r\n \r\n /**\r\n * logIn\r\n * @param email User's E-Mail\r\n * @param password User's Password\r\n */\r\n public logIn(email: string, password: string): Observable {\r\n const body = { email, password };\r\n\r\n return this.http.post('contacts/login', body);\r\n }\r\n\r\n\r\n /**\r\n * setUser\r\n * @param user Server user response.\r\n */\r\n public setUser(user: any): void {\r\n this.user = user.contact.fullname;\r\n\r\n // TODO: [AECP-88] Contact Object it's too long to sotre in a cookie.\r\n const contact = user.contact.fullname;\r\n const token = user.token;\r\n const refreshToken = user.refreshToken;\r\n const contactId = user.contact.contactid;\r\n\r\n this.cookieService.set('contactId', contactId, undefined, '/');\r\n this.cookieService.set('contact', contact, undefined, '/');\r\n this.cookieService.set('token', token, undefined, '/');\r\n this.cookieService.set('refreshToken', refreshToken, undefined, '/');\r\n\r\n // Set Authorization Header for all requests.\r\n this.http.setHeader('Authorization', 'Bearer ' + user.token);\r\n }\r\n\r\n\r\n /**\r\n * loadUser\r\n */\r\n public loadUser(): void {\r\n // TODO: Secure Cookies against CSRF.\r\n const contactId = this.cookieService.get('contactId');\r\n const contact = this.cookieService.get('contact');\r\n const token = this.cookieService.get('token');\r\n const refreshToken = this.cookieService.get('refreshToken');\r\n\r\n if (contactId && contact && token && refreshToken) {\r\n this.user = contact;\r\n\r\n // Set Authorization Header for all requests.\r\n this.http.setHeader('Authorization', 'Bearer ' + token);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * isLoggedIn\r\n */\r\n public isLoggedIn(): boolean {\r\n if (this.user) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n public getRefreshToken(): string {\r\n return this.cookieService.get('refreshToken');\r\n }\r\n\r\n\r\n /**\r\n * refreshToken\r\n */\r\n public refreshToken(refreshToken: string) {\r\n const body = {\r\n refreshToken\r\n };\r\n\r\n return this.http.post('users/token', body);\r\n }\r\n\r\n\r\n /**\r\n * logOut\r\n */\r\n public logOut(): void {\r\n this.user = null;\r\n this.cookieService.delete('contactId');\r\n this.cookieService.delete('contact');\r\n this.cookieService.delete('token');\r\n this.cookieService.delete('refreshToken');\r\n this.cookieService.deleteAll('/');\r\n }\r\n\r\n /**\r\n * Starts a legacy Forgot Password sequence. Sends a reset link to User's email.\r\n * @param email Email of the User (acts as username)\r\n */\r\n public startResetPassword(email: string, redirectUrl?: string ) {\r\n let params = new HttpParams().set('email', email);\r\n if (redirectUrl) params = params.append('redirect_to', redirectUrl);\r\n return this.http.get('contacts/resetpass', params);\r\n }\r\n\r\n /**\r\n * Checks a URL Id that was sent as a reset link to User's email.\r\n * @param urlId Id extracted from the URL\r\n */\r\n public getIsResetLinkValid(urlId: string) {\r\n const body = {\r\n urlId\r\n }\r\n return this.http.put('contacts/resetpass', body);\r\n }\r\n \r\n /**\r\n * Completes the legacy Forgot Password sequence, \r\n * resetting User's password to the one provided.\r\n * @param urlId Id extracted from the URL\r\n * @param email Email of the User (acts as username)\r\n * @param pass New Password associated to the User\r\n */\r\n public completeResetPassword(urlId: string, email: string, pass: string) {\r\n const body = {\r\n urlId,\r\n email,\r\n pass,\r\n }\r\n return this.http.post('contacts/resetpass', body);\r\n }\r\n \r\n /**\r\n * send Email recovery password */\r\n\r\n public sendEmailPassword(email: string, pass: string) {\r\n let body;\r\n if (pass.length > 0) {\r\n body = { email, pass };\r\n } else {\r\n body = { email };\r\n }\r\n return this.http.post('contacts/password', body);\r\n }\r\n \r\n /**\r\n * get user or Contact myAccout */\r\n public getContactCRM(contactId: string, action: string) {\r\n const params = new HttpParams()\r\n .set('action', action)\r\n .set('contactId', contactId);\r\n return this.http.get(`contacts/myaccount/${contactId}`, params);\r\n }\r\n\r\n public getMyEvents(month: string, year: string, contactId: string) {\r\n const params = new HttpParams()\r\n .set('contactId', contactId)\r\n .set('month', month)\r\n .set('year', year);\r\n return this.http.get(`contacts/myaccount/events/${contactId}`, params);\r\n }\r\n\r\n /**\r\n * get department'list */\r\n public getDepartments() {\r\n const params = new HttpParams()\r\n return this.http.get('department', params);\r\n }\r\n\r\n public registerInteres(contactId: string, typeInteres: string, field: string, value: boolean) {\r\n const body = { contactId, typeInteres, field, value };\r\n return this.http.post('contacts/myaccount/interest', body);\r\n }\r\n\r\n /**\r\n * get user or Contact form Web */\r\n\r\n public getContactDetails(id: string) {\r\n const body = { id };\r\n return this.http.post('contacts/web', body);\r\n }\r\n\r\n public getVerifyContact(email: string, accountId: string) {\r\n const body = { email, accountId };\r\n return this.http.post('contacts/verify', body);\r\n }\r\n\r\n public registerUserGuest(\r\n companyName: string, companyId: string,\r\n sector: string, firstName: string,\r\n lastName: string, email: string, pass: string,\r\n mobilePhone: string, linkedin: string,\r\n departament: string, jobTitle: string, \r\n jerarquia: string, interests: [],\r\n eventId = this.eventId,\r\n \r\n ) {\r\n const body = {\r\n companyName, companyId,\r\n sector, firstName,\r\n lastName, email, pass,\r\n mobilePhone, linkedin, departament,\r\n jobTitle, jerarquia, interests, eventId,\r\n \r\n };\r\n return this.http.post(`contacts/guest/register/`, body); \r\n }\r\n\r\n \r\n}\r\n","export const PATHS = {\n AUTH: {\n BASE: 'auth',\n LOGIN: {\n BASE: 'login'\n },\n },\n REGISTER: {\n BASE: 'register'\n },\n EMPTY: '',\n WILDCARD: '**'\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { LoginComponent } from './login/login.component';\nimport { PATHS } from 'src/app/core/utils/router-path';\n\nconst routes: Routes = [\n {\n component: LoginComponent,\n path: PATHS.AUTH.LOGIN.BASE\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class AuthRoutingModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AuthRoutingModule } from './auth-routing.module';\nimport { LoginComponent } from './login/login.component';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n\n@NgModule({\n declarations: [\n LoginComponent\n ],\n imports: [\n CommonModule,\n AuthRoutingModule, \n ReactiveFormsModule\n ]\n})\nexport class AuthModule { }\n","import { Component, OnInit, AfterViewInit } from '@angular/core';\nimport { FormBuilder, FormControl, Validators, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { take } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment';\nimport { CognitoErrorResponse } from 'src/app/shared/models/cognito.model';\nimport { UserService } from 'src/app/core/services/api/user/user.service';\nimport { CognitoService } from 'src/app/core/services/api/user/cognito.service';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent implements OnInit, AfterViewInit {\n\n public loginForm: FormGroup;\n public showSpinner: boolean;\n public errorMessage: string = \"\";\n public eventId: string = \"\";\n public redirect: boolean = false;\n public redirectUrl: string = \"\";\n public fromEvent: boolean = false;\n public forgotPassword: string = \"\";\n public urlNewUser: string = \"\";\n\n\n constructor(\n public formBuilder: FormBuilder,\n public userService: UserService,\n public cognitoService: CognitoService,\n public route: ActivatedRoute,\n public router: Router\n ) {\n // Email Regex (RFC 5322 Official Standard)\n // tslint:disable-next-line: max-line-length\n const emailRegex = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;\n this.loginForm = this.formBuilder.group({\n email: new FormControl('', Validators.compose([\n Validators.pattern((emailRegex)),\n Validators.required,\n Validators.minLength(3),\n Validators.maxLength(320)\n ])),\n password: new FormControl('', Validators.compose([\n Validators.required,\n Validators.minLength(6),\n Validators.maxLength(256)\n ]))\n });\n\n this.showSpinner = false;\n\n this.route.queryParams.pipe(take(1)).subscribe(\n (res: any) => {\n this.redirect = res.r;\n this.redirectUrl = res.redirect_to;\n this.eventId = res.event;\n this.fromEvent = false;\n this.userService.fromEvent = false;\n if (this.eventId && this.eventId.length > 0){\n this.fromEvent = true;\n this.userService.fromEvent = true;\n this.userService.eventId = this.eventId;\n }\n },\n (err: any) => console.error(err)\n );\n }\n\n ngOnInit() {\n this.constructURLs();\n }\n\n ngAfterViewInit() {\n this.resetForm();\n }\n\n /**\n * Construct URLs with dynamic redirection value\n */\n constructURLs() {\n const fromUrl = this.redirectUrl ? this.redirectUrl : environment.connectUrl;\n const baseUrl = window.location.origin;\n // this.forgotPassword = `${environment.baseUrl}password?redirect_to=${fromUrl}`;\n // this.urlNewUser = `${environment.baseUrl}guest/?redirect_to=${fromUrl}`;\n this.forgotPassword = `/password?redirect_to=${fromUrl}`;\n this.urlNewUser = `/register/?redirect_to=${fromUrl}`;\n }\n\n /**\n * resetForm\n */\n public resetForm(email?: string): void {\n this.loginForm.reset();\n if(email) {\n this.loginForm.controls['email'].setValue(email);\n }\n this.showSpinner = false;\n }\n\n\n /**\n * Tries to log-in an user and sets the state of the\n * page accordingly.\n */\n public login(): void {\n this.showSpinner = true;\n this.errorMessage = \"\";\n\n const email = this.loginForm.controls['email'].value;\n const password = this.loginForm.controls['password'].value;\n\n this.userService.logIn(email, password).subscribe(\n (res: any) => {\n if (res.cognito && (res.cognito.UserSub || res.cognito.statusCode === 400)) {\n /*\n Depending on the Cognito response object properties, the 'action' is decided:\n res.cognito.UserSub: User successfully registered in Cognito => proceed to confirm\n res.cognito.statusCode: User registration in Cognito failed => parse error and proceed\n */\n const action = res.cognito.UserSub ? 'login_confirm' : this.actionOnCognitoError(res.cognito);\n const redirect_to = this.redirectUrl ? this.redirectUrl : null;\n const params = {\n action,\n redirect_to,\n }\n\n this.userService.setMailUserNewForm(email);\n this.userService.setPassUserNewForm(password);\n this.userService.getCognitoUserSubject().next({ cognito: res.cognito, contact: res.contact });\n this.router.navigate(['/forget', res.contact.contactid, 'verify'], { queryParams: params });\n } else {\n this.cognitoService.setCognitoUser(res.cognito);\n if (this.redirectUrl && this.redirectUrl.indexOf('connect.amcham.com.ar') !== -1) {\n const newRedirect = `redirect_to=${this.redirectUrl}`;\n const index = res.appURL.indexOf('redirect_to');\n const replaceUrl = res.appURL.substring(0, index) + newRedirect;\n window.location.replace(replaceUrl);\n } else if(!this.redirectUrl) {\n window.location.replace(res.appURL);\n }\n else {\n window.location.replace(this.redirectUrl);\n }\n }\n },\n (err: any) => {\n this.errorMessage = err.error.errors[0].msg\n ;\n this.resetForm(email);\n }\n );\n }\n\n /**\n * Parses a Cognito error object and returns a string to use as a query param.\n * @param cognitoError A Cognito error response object.\n */\n actionOnCognitoError(cognitoError: CognitoErrorResponse) {\n let action: string = \"\";\n if (cognitoError.message.indexOf('phone') > -1) action = 'login_phone';\n if (cognitoError.code === 'InvalidPasswordException') action = 'login_pass';\n if (cognitoError.code === 'UserNotConfirmedException') action = 'login_confirm';\n if (cognitoError.code === 'UsernameExistsException') action = 'login_conflict';\n return action;\n }\n\n\n /**\n * Determines whether a field has a valid value or not.\n * @param fieldName Field name based on the FormControl property.\n * @returns true if valid.\n */\n public isValid(fieldName: string): boolean {\n const field = this.loginForm.controls[fieldName];\n\n return field.valid && field.touched;\n }\n\n\n /**\n * Determines whether a field has an invalid value or not.\n * @param fieldName Field name based on the FormControl property.\n * @returns true if invalid.\n */\n public isInvalid(fieldName: string): boolean {\n const field = this.loginForm.controls[fieldName];\n\n return field.invalid && field.touched;\n }\n\n\n /**\n * Determines whether the submit button is enabled or not based\n * on the login form status.\n * @returns true if the log in form is valid.\n */\n public buttonEnabled(): boolean {\n return this.loginForm.valid;\n }\n\n public toLogin(): void {\n this.userService.toSSOLogin();\n }\n\n}\n","
\n
\n
\n
\n
\n
\n \"logo-amcham\"\n

Iniciar sesión

\n\n

\n
\n {{errorMessage}}\n
\n
\n
\n
\n \n
El correo electrónico no es válido.
\n
El correo electrónico es obligatorio.
\n
\n
\n
\n
\n \n\n
La contraseña debe contener al menos 6 caracteres.
\n
La contraseña es obligatoria.
\n
\n
\n
\n
\n
\n \n

\n
\n

\n
\n
¿No tenés un usuario?

\n \n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { NavigationExtras, Router } from '@angular/router';\n\n@Component({\n selector: 'app-login-redirection',\n templateUrl: './login-redirection.component.html',\n styleUrls: ['./login-redirection.component.scss']\n})\nexport class LoginRedirectionComponent implements OnInit{\n\n constructor(\n public router: Router\n ){\n }\n\n ngOnInit() {\n this.router.navigate(['/auth/login'], { queryParamsHandling: 'merge' })\n }\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n baseUrl: 'https://apiv2.amcham.com.ar/api/',\n apiUrl: 'https://apiv2.amcham.com.ar/api/',\n connectUrl:'https://www.amcham.com.ar/',\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\n\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"names":["RouterModule","PATHS","LoginRedirectionComponent","routes","canActivate","loadChildren","then","m","AuthModule","path","AUTH","BASE","RegisterModule","REGISTER","ForgetModule","data","state","WILDCARD","component","AppRoutingModule","_","_2","_3","forRoot","enableTracing","imports","i1","exports","AppComponent","constructor","title","selectors","decls","vars","template","AppComponent_Template","rf","ctx","i0","ɵɵelement","BrowserModule","CoreModule","CookieService","BrowserAnimationsModule","AppModule","bootstrap","declarations","CommonModule","HttpClientModule","Subject","HttpHeaders","environment","ApiService","http","expired","httpHeaders","apiUrl","setDefaultHeaders","set","getHeaders","setHeader","headerName","headerValue","deleteHeader","has","delete","console","warn","get","url","params","opts","headers","pipe","post","body","postBody","put","putBody","tokenExpired","asObservable","ɵɵinject","HttpClient","factory","ɵfac","providedIn","HttpParams","CognitoService","cookieService","cookieDomain","accessTokenCookie","refreshTokenCookie","idTokenCookie","listCognitoUsers","email","attributes","append","forEach","attr","verifyCognitoAndRegister","password","updateCurrent","registerCognitoUser","confirmCognitoUser","confirmationCode","requestNewConfirmationCode","startForgotPassword","completeForgotPassword","pass","signInCognitoUser","getRefreshToken","refreshAccessToken","refreshToken","getUserAttributes","updateUserAttributes","changeOwnPassword","oldPassword","proposedPassword","signOutCognitoUser","loadCognitoUser","tokenType","token","setCognitoUser","authUser","accessToken","AccessToken","RefreshToken","idToken","IdToken","expiresIn","Date","setSeconds","getSeconds","ExpiresIn","clearCognitoCookies","i2","BehaviorSubject","UserService","router","user","fromEvent","eventId","passUserNewForm","partnerId","registerUserSubject","cognitoUserSubject","mailUserNewForm","loadUser","getEventId","getDataUser","dataUser","getPartnetId","toSSOLogin","window","location","href","setMailUserNewForm","val","getMailUserNewForm","setPassUserNewForm","getPassUserNewForm","getContactId","getRegisterUserSubject","getCognitoUserSubject","logIn","setUser","contact","fullname","contactId","contactid","undefined","isLoggedIn","logOut","deleteAll","startResetPassword","redirectUrl","getIsResetLinkValid","urlId","completeResetPassword","sendEmailPassword","length","getContactCRM","action","getMyEvents","month","year","getDepartments","registerInteres","typeInteres","field","value","getContactDetails","id","getVerifyContact","accountId","registerUserGuest","companyName","companyId","sector","firstName","lastName","mobilePhone","linkedin","departament","jobTitle","jerarquia","interests","i3","Router","LOGIN","EMPTY","LoginComponent","AuthRoutingModule","forChild","ReactiveFormsModule","FormControl","Validators","take","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","errorMessage","formBuilder","userService","cognitoService","route","redirect","forgotPassword","urlNewUser","emailRegex","loginForm","group","compose","pattern","required","minLength","maxLength","showSpinner","queryParams","subscribe","res","r","redirect_to","event","err","error","ngOnInit","constructURLs","ngAfterViewInit","resetForm","fromUrl","connectUrl","baseUrl","origin","reset","controls","setValue","login","cognito","UserSub","statusCode","actionOnCognitoError","next","navigate","indexOf","newRedirect","index","appURL","replaceUrl","substring","replace","errors","msg","cognitoError","message","code","isValid","fieldName","valid","touched","isInvalid","invalid","buttonEnabled","toLogin","ɵɵdirectiveInject","FormBuilder","i4","ActivatedRoute","consts","LoginComponent_Template","ɵɵtemplate","LoginComponent_div_11_Template","LoginComponent_div_16_Template","LoginComponent_div_17_Template","LoginComponent_div_21_Template","LoginComponent_div_22_Template","ɵɵlistener","LoginComponent_Template_button_click_29_listener","LoginComponent_span_30_Template","LoginComponent_span_31_Template","ɵɵproperty","ɵɵclassProp","hasError","ɵɵpropertyInterpolate","ɵɵsanitizeUrl","queryParamsHandling","LoginRedirectionComponent_Template","styles","production","__NgCli_bootstrap_1","platformBrowser","bootstrapModule","catch"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}