UNPKG

63.6 kBSource Map (JSON)View Raw
1{"version":3,"file":"soushians-authentication.umd.js.map","sources":["ng://@soushians/authentication/lib/models/user.model.ts","ng://@soushians/authentication/lib/actions/signin.actions.ts","ng://@soushians/authentication/lib/authentication.config.ts","ng://@soushians/authentication/lib/services/authentication-configuration.service.ts","ng://@soushians/authentication/lib/actions/authentication.actions.ts","ng://@soushians/authentication/lib/actions/captcha.actions.ts","ng://@soushians/authentication/lib/services/signin.service.ts","ng://@soushians/authentication/lib/smart-components/signin-container/signin-container.component.ts","ng://@soushians/authentication/lib/smart-components/authentication-container/authentication-container.component.ts","ng://@soushians/authentication/lib/smart-components/signup-container/signup-container.component.ts","ng://@soushians/authentication/lib/authentication-routing.module.ts","ng://@soushians/authentication/lib/dump-components/signin/signin.component.ts","ng://@soushians/authentication/lib/interceptors/with-credential.interceptor.ts","ng://@soushians/authentication/lib/interceptors/unauthorized.interceptor.ts","dist/@soushians/authentication/node_modules/tslib/tslib.es6.js","ng://@soushians/authentication/lib/reducers/user.reducer.ts","ng://@soushians/authentication/lib/reducers/index.ts","ng://@soushians/authentication/lib/effects/signin.effects.ts","ng://@soushians/authentication/lib/effects/authentication.effects.ts","ng://@soushians/authentication/lib/dump-components/signup/signup.component.ts","ng://@soushians/authentication/lib/routing-guards/signin.guard.ts","ng://@soushians/authentication/lib/authentication.module.ts"],"sourcesContent":["export class UserModel {\r\n\t_id: string;\r\n\t// FirstName: string;\r\n\t// LastName: string;\r\n\tUsername: string;\r\n\t// MobileNumber: string;\r\n\t// Sex: string;\r\n\t// Birthdate: string;\r\n\tEmail: string;\r\n\t// IdentificationNo: string;\r\n\t// IdentifierType: string;\r\n\t// RegisterDate: string;\r\n\t// UserType: string;\r\n\tRoles: string[] = [];\r\n\r\n\tconstructor(params?: any) {\r\n\t\tparams &&\r\n\t\t\tObject.keys(params).forEach(key => {\r\n\t\t\t\tif (key in params) (this as any)[key] = params[key];\r\n\t\t\t});\r\n\t}\r\n}\r\n","import { Action } from \"@ngrx/store\";\r\n\r\nimport { Signin_ApiModel } from \"../models\";\r\n\r\nexport enum SignInActionTypes {\r\n\tWHO_AM_I = \"[AUTHENTICATION] who am i\",\r\n\tSIGNUP = \"[AUTHENTICATION][SIGNUP] start\",\r\n\tSIGNUP_SUCCEED = \"[AUTHENTICATION][SIGNUP] Success\",\r\n\tSIGNUP_FAILURE = \"[AUTHENTICATION][SIGNUP] Failure\",\r\n\tSIGNIN = \"[AUTHENTICATION] Signin\",\r\n\tDO_SIGNOUT = \"[AUTHENTICATION] Do Signout\",\r\n\tSIGNOUT = \"[AUTHENTICATION] Signout\",\r\n\tSIGNIN_SUCCEED = \"[AUTHENTICATION][Signin] Success\",\r\n\tSIGNIN_FAILURE = \"[AUTHENTICATION][Signin] Failure\",\r\n\tSIGNIN_REDIRECT = \"[AUTHENTICATION][Signin] Redirect\",\r\n\tSIGNIN_REQUIRED = \"[AUTHENTICATION][Signin] Required\"\r\n}\r\n\r\nexport class WhoAmIAction implements Action {\r\n\treadonly type = SignInActionTypes.WHO_AM_I;\r\n}\r\n\r\n/**\r\n * \tsign up\r\n */\r\nexport class Signup implements Action {\r\n\treadonly type = SignInActionTypes.SIGNUP;\r\n\tconstructor(public payload: Signin_ApiModel.Request) {}\r\n}\r\n\r\nexport class SignupSecceed implements Action {\r\n\treadonly type = SignInActionTypes.SIGNUP_SUCCEED;\r\n\tconstructor(public payload: any) {}\r\n}\r\n\r\nexport class SignupFailed implements Action {\r\n\treadonly type = SignInActionTypes.SIGNUP_FAILURE;\r\n\tconstructor(public payload: any) {}\r\n}\r\n\r\n/**\r\n * Sign in\r\n */\r\nexport class Signin implements Action {\r\n\treadonly type = SignInActionTypes.SIGNIN;\r\n\tconstructor(public payload: Signin_ApiModel.Request) {}\r\n}\r\n\r\nexport class SigninSecceed implements Action {\r\n\treadonly type = SignInActionTypes.SIGNIN_SUCCEED;\r\n\tconstructor(public payload: any) {}\r\n}\r\n\r\nexport class SigninFailed implements Action {\r\n\treadonly type = SignInActionTypes.SIGNIN_FAILURE;\r\n\tconstructor(public payload: any) {}\r\n}\r\n\r\nexport class SigninRedirect implements Action {\r\n\treadonly type = SignInActionTypes.SIGNIN_REDIRECT;\r\n}\r\n\r\nexport class DoSignoutAction implements Action {\r\n\treadonly type = SignInActionTypes.DO_SIGNOUT;\r\n}\r\n\r\nexport class SignoutAction implements Action {\r\n\treadonly type = SignInActionTypes.SIGNOUT;\r\n}\r\n\r\nexport class SigninRequiredAction implements Action {\r\n\treadonly type = SignInActionTypes.SIGNIN_REQUIRED;\r\n}\r\n\r\nexport type SigninAction =\r\n\t| WhoAmIAction\r\n\t| Signup\r\n\t| SignupSecceed\r\n\t| SignupFailed\r\n\t| Signin\r\n\t| SigninSecceed\r\n\t| SigninFailed\r\n\t| SigninRedirect\r\n\t| DoSignoutAction\r\n\t| SignoutAction\r\n\t| SigninRequiredAction;\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { Observable, of } from \"rxjs\";\r\n\r\nexport interface AuthenticationModuleConfig {\r\n\tmode?: string; // \"token-base\" | \"cookie-base\";\r\n\ttoken?: {\r\n\t\ttime: number;\r\n\t};\r\n\tserver?: string;\r\n\tendpoints?: {\r\n\t\tsignOut?: string;\r\n\t\tsignOutMethod?: string;\r\n\t\tsignIn?: string;\r\n\t\tsignUp?: string;\r\n\t\twhoAmI?: string;\r\n\t};\r\n\tforms?: {\r\n\t\tsignIn: string;\r\n\t\tsignUp: string;\r\n\t};\r\n\tenv?: {\r\n\t\tproduction: boolean;\r\n\t\tfrontend_server: string;\r\n\t\tserver: string;\r\n\t};\r\n\tafterSignoutRedirectTo?: string;\r\n\tsignupValidator?: (value: any) => Observable<boolean>;\r\n\tafterSignin?: (user: any) => void;\r\n\tresponseToUser?: (user: any) => any;\r\n}\r\n\r\nexport const MODULE_DEFAULT_CONFIG: AuthenticationModuleConfig = {\r\n\tmode: \"cookie-base\",\r\n\ttoken: {\r\n\t\ttime: 24 * 12 * 60 * 60\r\n\t},\r\n\tserver: \"frontend_server\",\r\n\tendpoints: {\r\n\t\tsignOut: \"\",\r\n\t\tsignOutMethod: \"get\",\r\n\t\tsignIn: \"\",\r\n\t\tsignUp: \"\",\r\n\t\twhoAmI: \"\"\r\n\t},\r\n\tforms: {\r\n\t\tsignIn: \"\",\r\n\t\tsignUp: \"\"\r\n\t},\r\n\tenv: {\r\n\t\tproduction: false,\r\n\t\tfrontend_server: \"auth/module/frontend_server/did/not/set\",\r\n\t\tserver: \"auth/module/server/did/not/set\"\r\n\t},\r\n\tafterSignoutRedirectTo: \"/\",\r\n\tsignupValidator: value => of(true),\r\n\tafterSignin: user => { },\r\n\tresponseToUser: user => user\r\n};\r\n\r\nexport const MODULE_CONFIG_TOKEN = new InjectionToken<AuthenticationModuleConfig>(\"ModuleConfig\");\r\n","import { Injectable, Inject } from \"@angular/core\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\nimport { getAuthenticationModuleConfig } from \"@soushians/config\";\r\n\r\nimport { MODULE_CONFIG_TOKEN, AuthenticationModuleConfig, MODULE_DEFAULT_CONFIG } from \"../authentication.config\";\r\nimport { AuthenticationState } from \"../reducers\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\"\r\n})\r\nexport class AuthenticationConfigurationService {\r\n\tprivate _config: AuthenticationModuleConfig;\r\n\tget config() {\r\n\t\treturn this._config;\r\n\t}\r\n\tconfig$ = new BehaviorSubject(this._config);\r\n\r\n\tconstructor(@Inject(MODULE_CONFIG_TOKEN) configFile: any, private store: Store<AuthenticationState>) {\r\n\t\tthis._config = Object.assign({}, MODULE_DEFAULT_CONFIG, configFile);\r\n\t\tthis.config$.next(this._config);\r\n\t\tthis.store.select(getAuthenticationModuleConfig).subscribe(storeConfig => {\r\n\t\t\tif (!storeConfig) return;\r\n\t\t\tthis._config = Object.assign({}, this._config, storeConfig.Config);\r\n\t\t\tthis.config$.next(this._config);\r\n\t\t});\r\n\t}\r\n}\r\n","import { Action } from '@ngrx/store';\r\n\r\nexport const enum AuthenticationActionTypes {\r\n\tPROGRESSING_STARTED = '[AUTHENTICATION] PROGRESSING_STARTED',\r\n\tPROGRESSING_FINISHED = '[AUTHENTICATION] PROGRESSING_FINISHED',\r\n\tFAILED_HAPPENED = '[AUTHENTICATION] FAILED_HAPPENED'\r\n}\r\n\r\nexport class ProgressingStarted implements Action {\r\n\treadonly type = AuthenticationActionTypes.PROGRESSING_STARTED;\r\n}\r\nexport class ProgressingFinished implements Action {\r\n\treadonly type = AuthenticationActionTypes.PROGRESSING_FINISHED;\r\n}\r\nexport class FailedHappened implements Action {\r\n\treadonly type = AuthenticationActionTypes.FAILED_HAPPENED;\r\n\tconstructor(public payload: any) {}\r\n}\r\n\r\nexport type AuthenticationAction = ProgressingStarted | ProgressingFinished | FailedHappened;\r\n","import { Action } from '@ngrx/store';\r\n\r\nimport { TokenModel } from '../models';\r\n\r\nexport const NEW_CAPTCHA = '[captcha] new captcha';\r\nexport const TOKEN_REQUESTED = '[captcha] token_requested';\r\nexport const TOKEN_RECEIVED = '[captcha] token_received';\r\nexport const CAPTCHA_IMAGE_REQUESTED = '[captcha] captcha_image_requested';\r\nexport const CAPTCHA_IMAGE_LOADED = '[captcha] captcha_image_loaded';\r\nexport const CAPTCHA_ENTERED = '[captcha] CAPTCHA_ENTERED';\r\nexport const CLEAR_CAPTCHA = '[captcha] CLEAR_CAPTCHA';\r\n\r\nexport class NewCaptcha implements Action {\r\n readonly type = NEW_CAPTCHA;\r\n}\r\nexport class TokenRequested implements Action {\r\n readonly type = TOKEN_REQUESTED;\r\n}\r\nexport class TokenReceived implements Action {\r\n readonly type = TOKEN_RECEIVED;\r\n constructor(public payload: TokenModel) { }\r\n}\r\nexport class CaptchaImageRequested implements Action {\r\n readonly type = CAPTCHA_IMAGE_REQUESTED;\r\n}\r\nexport class CaptchaImageLoaded implements Action {\r\n readonly type = CAPTCHA_IMAGE_LOADED;\r\n}\r\nexport class CaptchaEntered implements Action {\r\n readonly type = CAPTCHA_ENTERED;\r\n constructor(public payload: string) { }\r\n}\r\nexport class ClearCaptcha implements Action {\r\n readonly type = CLEAR_CAPTCHA;\r\n}\r\nexport type CaptchaAction =\r\n | NewCaptcha\r\n | TokenRequested\r\n | TokenReceived\r\n | CaptchaImageRequested\r\n | CaptchaImageLoaded\r\n | CaptchaEntered\r\n | ClearCaptcha;","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { MatSnackBar } from \"@angular/material\";\r\nimport { BehaviorSubject } from \"rxjs/BehaviorSubject\";\r\nimport { map, switchMap, take, filter, tap, catchError } from \"rxjs/operators\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\n// import { environment } from \"../../environments/environment\";\r\nimport { stringTemplate } from \"@soushians/shared\";\r\n\r\nimport { Signin_ApiModel, UserModel } from \"../models\";\r\nimport { AuthenticationConfigurationService } from \"./authentication-configuration.service\";\r\nimport { FeatureState } from \"../reducers\";\r\nimport { WhoAmIAction } from \"../actions\";\r\nimport { Cookie } from \"@soushians/shared\";\r\n\r\nconst COOKIE_NAME = \"ngs-authentication\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\"\r\n})\r\nexport class SigninService {\r\n\tconstructor(\r\n\t\tprivate http: HttpClient,\r\n\t\tprivate store: Store<FeatureState>,\r\n\t\tprivate configurationService: AuthenticationConfigurationService,\r\n\t\tprivate snackBar: MatSnackBar\r\n\t) {\r\n\t\tsetTimeout(() => this.store.dispatch(new WhoAmIAction()), 300);\r\n\t}\r\n\r\n\tsignup(model: any): Observable<UserModel> {\r\n\t\treturn this.configurationService.config$.pipe(\r\n\t\t\tfilter(config => config.endpoints.signUp != \"\"),\r\n\t\t\ttake(1),\r\n\t\t\tswitchMap(config =>\r\n\t\t\t\tthis.http.post<Signin_ApiModel.Response>(config.env[config.server] + config.endpoints.signUp, model)\r\n\t\t\t),\r\n\t\t\tmap(response => {\r\n\t\t\t\tconst user: any = Object.assign({}, response.Result);\r\n\t\t\t\tif (user.Role) {\r\n\t\t\t\t\tuser.Roles = [ user.Role ];\r\n\t\t\t\t}\r\n\t\t\t\treturn user;\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\tsignin(model: any): Observable<UserModel> {\r\n\t\treturn this.configurationService.config$.pipe(\r\n\t\t\tfilter(config => config.endpoints.signIn != \"\"),\r\n\t\t\ttake(1),\r\n\t\t\tswitchMap(config => this.http.post<any>(config.env[config.server] + config.endpoints.signIn, model)),\r\n\t\t\tmap(this.configurationService.config.responseToUser),\r\n\t\t\tmap(user => {\r\n\t\t\t\tif (user.Role) {\r\n\t\t\t\t\tuser.Roles = [ user.Role ];\r\n\t\t\t\t}\r\n\t\t\t\treturn user;\r\n\t\t\t}),\r\n\t\t\ttap(user => {\r\n\t\t\t\tif (this.configurationService.config.mode == \"token-base\")\r\n\t\t\t\t\tCookie.setCookie(COOKIE_NAME, JSON.stringify(user), this.configurationService.config.token.time);\r\n\t\t\t}),\r\n\t\t\ttap(user => this.configurationService.config.afterSignin(user))\r\n\t\t);\r\n\t}\r\n\r\n\t// TODO:\r\n\tsignout(): Observable<any> {\r\n\t\tconst config = this.configurationService.config;\r\n\t\tconst tokenObject = JSON.parse(Cookie.getCookie(COOKIE_NAME));\r\n\r\n\t\tconst endpoint = stringTemplate(config.env[config.server] + config.endpoints.signOut, tokenObject);\r\n\t\tconst method = config.endpoints.signOutMethod || \"get\";\r\n\r\n\t\tif ([ \"get\", \"put\", \"post\", \"patch\", \"delete\" ].indexOf(method) === -1) {\r\n\t\t\tthrowError(`${method} is not valid http method. [ @starter/authentication/signinservice/singout ]`);\r\n\t\t}\r\n\r\n\t\treturn this.http[method](endpoint).pipe(\r\n\t\t\ttap(() => {\r\n\t\t\t\tCookie.deleteCookie(COOKIE_NAME);\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\twhoAmI(): Observable<any> {\r\n\t\tdebugger;\r\n\t\tlet user = { Token: \"--\" };\r\n\t\tif (this.configurationService.config.mode == \"token-base\") {\r\n\t\t\ttry {\r\n\t\t\t\tuser = JSON.parse(Cookie.getCookie(COOKIE_NAME));\r\n\t\t\t} catch (error) {}\r\n\t\t}\r\n\t\treturn this.configurationService.config$.pipe(\r\n\t\t\tfilter(config => config.endpoints.whoAmI != \"\"),\r\n\t\t\ttake(1),\r\n\t\t\tswitchMap(config =>\r\n\t\t\t\tthis.http.get(stringTemplate(config.env[config.server] + config.endpoints.whoAmI, { user }))\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n}\r\n","import { Component, OnInit, OnDestroy, Output, EventEmitter } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport { Signin } from \"../../actions\";\r\nimport { AuthenticationConfigurationService } from \"../../services/authentication-configuration.service\";\r\nimport { FeatureState } from \"../../reducers\";\r\n\r\n@Component({\r\n\ttemplate: `\r\n <auth-signin \r\n [formId]='(formId$ | async)'\r\n (signedin)=\"signIn($event)\"\r\n ></auth-signin>\r\n `\r\n})\r\nexport class SigninContainerComponent {\r\n\tformId$: Observable<string>;\r\n\t@Output() signedIn$ = new EventEmitter<boolean>();\r\n\tconstructor(private configurationService: AuthenticationConfigurationService, private store: Store<FeatureState>) {\r\n\t\tthis.formId$ = this.configurationService.config$.map(config => config.forms.signIn);\r\n\t}\r\n\r\n\tsignIn(formValue: any) {\r\n\t\tthis.store.dispatch(new Signin(formValue));\r\n\t\tthis.signedIn$.emit(true);\r\n\t}\r\n}\r\n","import { Component } from \"@angular/core\";\r\n\r\n@Component({\r\n\ttemplate: `\r\n <router-outlet></router-outlet>\r\n `\r\n})\r\nexport class AuthenticationContainerComponent {}\r\n","import { Component, OnInit, OnDestroy, Output, EventEmitter } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport { Signup } from \"../../actions\";\r\nimport { CaptchaModel } from \"../../models\";\r\nimport { AuthenticationConfigurationService } from \"../../services/authentication-configuration.service\";\r\nimport { FeatureState } from \"../../reducers\";\r\nimport { MatSnackBar } from \"@angular/material\";\r\nimport { take, switchMap, filter, tap } from \"rxjs/operators\";\r\n\r\n@Component({\r\n\ttemplate: `\r\n <auth-signup \r\n [formId]='(formId$ | async)'\r\n (signedup)=\"signup($event)\"\r\n ></auth-signup>\r\n `\r\n})\r\nexport class SignupContainerComponent {\r\n\tformId$: Observable<string>;\r\n\t@Output() signedUp$ = new EventEmitter<boolean>();\r\n\tconstructor(\r\n\t\tprivate configurationService: AuthenticationConfigurationService,\r\n\t\tprivate store: Store<FeatureState>,\r\n\t\tprivate snackBar: MatSnackBar\r\n\t) {\r\n\t\tthis.formId$ = this.configurationService.config$.map(config => config.forms.signUp);\r\n\t}\r\n\r\n\tsignup(formValue: any) {\r\n\t\tthis.configurationService.config$\r\n\t\t\t.pipe(take(1), switchMap(config => config.signupValidator(formValue)))\r\n\t\t\t.subscribe(validation => {\r\n\t\t\t\tif (validation) {\r\n\t\t\t\t\tthis.store.dispatch(new Signup(formValue));\r\n\t\t\t\t\tthis.signedUp$.emit(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.snackBar.open(\"رمز عبور یکسان نیست\", null, {\r\n\t\t\t\t\t\tduration: 2222\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n}\r\n","import { ModuleWithProviders } from \"@angular/core\";\r\nimport { RouterModule, Routes } from \"@angular/router\";\r\n\r\nimport { SigninGuard } from \"./routing-guards\";\r\nimport { AuthenticationContainerComponent } from \"./smart-components/authentication-container/authentication-container.component\";\r\nimport { SigninContainerComponent } from \"./smart-components/signin-container/signin-container.component\";\r\nimport { SignupContainerComponent } from \"./smart-components/signup-container/signup-container.component\";\r\n\r\nconst routes: Routes = [\r\n\t{\r\n\t\tpath: \"auth\",\r\n\t\tcomponent: AuthenticationContainerComponent,\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\tpath: \"signin\",\r\n\t\t\t\t// canActivate: [ SigninGuard ],\r\n\t\t\t\tcomponent: SigninContainerComponent\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"signup\",\r\n\t\t\t\t// canActivate: [ SigninGuard ],\r\n\t\t\t\tcomponent: SignupContainerComponent\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n];\r\n\r\nexport const AuthenticationRoutingModule: ModuleWithProviders = RouterModule.forChild(routes);\r\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { Observable } from \"rxjs/Rx\";\r\n\r\n@Component({\r\n\tselector: \"auth-signin\",\r\n\ttemplateUrl: \"./signin.component.html\",\r\n\tstyleUrls: [ \"./signin.component.scss\" ]\r\n})\r\nexport class SigninComponent {\r\n\t@Output() signedin = new EventEmitter();\r\n\r\n\t@Input() formId: string;\r\n\r\n\tsignin(formGroup: FormGroup) {\r\n\t\tif (!formGroup.valid) return;\r\n\t\tthis.signedin.emit(formGroup.value);\r\n\t}\r\n\r\n\tconstructor() {}\r\n}\r\n","import \"rxjs/add/operator/do\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpInterceptor } from \"@angular/common/http\";\r\nimport { HttpRequest } from \"@angular/common/http\";\r\nimport { HttpHandler } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { HttpEvent } from \"@angular/common/http\";\r\nimport { HttpResponse } from \"@angular/common/http\";\r\nimport { AuthenticationConfigurationService } from \"../services/authentication-configuration.service\";\r\n// import { environment } from \"../../../environments/environment\";\r\n\r\n@Injectable()\r\nexport class WithCredentialInterceptor implements HttpInterceptor {\r\n\tconstructor(private configurationService: AuthenticationConfigurationService) {}\r\n\tintercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\t\t// if (!this.configurationService.config.env.production)\r\n\t\t(request as any).withCredentials = true;\r\n\t\treturn next.handle(request);\r\n\t}\r\n}\r\n","import { HttpInterceptor } from \"@angular/common/http\";\r\nimport { HttpRequest } from \"@angular/common/http\";\r\nimport { HttpHandler } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { HttpEvent } from \"@angular/common/http\";\r\nimport { HttpResponse } from \"@angular/common/http\";\r\nimport { HttpErrorResponse } from \"@angular/common/http\";\r\n\r\nimport { Store } from \"@ngrx/store\";\r\nimport { SignoutAction } from \"../actions\";\r\nimport * as fromAuth from \"../reducers\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { of, throwError } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class UnauthorizedInterceptor implements HttpInterceptor {\r\n\tconstructor(\r\n\t\tprivate router: Router,\r\n\t\tprivate store: Store<fromAuth.FeatureState> // private signinService: SigninService\r\n\t) {}\r\n\tintercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\t\treturn next\r\n\t\t\t.handle(request)\r\n\t\t\t.map((event: HttpEvent<any>) => {\r\n\t\t\t\tif (event instanceof HttpResponse) return event;\r\n\t\t\t})\r\n\t\t\t.catch(err => {\r\n\t\t\t\tif (!(err instanceof HttpErrorResponse)) return throwError(err);\r\n\t\t\t\tif (err.status != 401) return throwError(err);\r\n\t\t\t\tif (err.url.includes(\"logout\")) return throwError(err);\r\n\t\t\t\tif (err.url.includes(\"user/account/profile\")) return throwError(err);\r\n\r\n\t\t\t\tthis.store.dispatch(new SignoutAction());\r\n\r\n\t\t\t\treturn throwError(\"Unauthorized\");\r\n\t\t\t});\r\n\t}\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { SigninAction, SignInActionTypes } from \"../actions/signin.actions\";\r\nimport { UserModel } from \"../models/user.model\";\r\n\r\nexport interface State {\r\n\tloggedIn: boolean;\r\n\tuser: UserModel;\r\n}\r\n\r\nexport const initialState: State = {\r\n\tloggedIn: false,\r\n\tuser: new UserModel({ Id: 1 })\r\n};\r\n\r\nexport function UserReducer(state = initialState, action: SigninAction): State {\r\n\tswitch (action.type) {\r\n\t\tcase SignInActionTypes.SIGNIN_SUCCEED: {\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tloggedIn: true,\r\n\t\t\t\tuser: action.payload\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tcase SignInActionTypes.SIGNOUT: {\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tloggedIn: false,\r\n\t\t\t\tuser: new UserModel()\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tdefault: {\r\n\t\t\treturn state;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n//#region selectors\r\nexport const getLoggedIn = (state: State) => state.loggedIn;\r\nexport const getUser = (state: State) => state.user;\r\n//#endregion\r\n","import { createSelector, createFeatureSelector, MemoizedSelector } from \"@ngrx/store\";\r\n\r\nimport * as userReducer from \"./user.reducer\";\r\n// import * as captchaReducer from \"./captcha.reducer\";\r\n\r\nimport { UserModel } from \"../models/user.model\";\r\n\r\nexport interface AuthenticationState {\r\n\tuserStatus: userReducer.State;\r\n\t// captcha: captchaReducer.State;\r\n}\r\n\r\nexport interface FeatureState {\r\n\t\"authentication\": AuthenticationState;\r\n}\r\n\r\nexport const AuthenticationReducers = {\r\n\tuserStatus: userReducer.UserReducer\r\n\t// captcha: captchaReducer.CaptchaReducer\r\n};\r\n\r\n//#region selectors\r\n\r\nexport const selectAuthenticationState = createFeatureSelector<AuthenticationState>(\"authentication\");\r\n\r\nexport const selectAuthState = createSelector(\r\n\tselectAuthenticationState,\r\n\t(state: AuthenticationState) => state.userStatus\r\n);\r\n\r\nexport const getLoggedIn = createSelector(selectAuthState, userReducer.getLoggedIn);\r\nexport const getUser = createSelector(selectAuthState, userReducer.getUser);\r\n\r\n// export const selectCaptchaState = createSelector(selectAuthenticationState, (state: AuthenticationState) => {\r\n// \treturn state.captcha;\r\n// });\r\n\r\n// export const getCaptcha = createSelector(selectCaptchaState, captchaReducer.getCaptcha);\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Action } from \"@ngrx/store\";\r\nimport { Actions, Effect, ofType } from \"@ngrx/effects\";\r\nimport { RouterAction } from \"@ngrx/router-store\";\r\nimport { switchMap, map, catchError, tap, pluck } from \"rxjs/operators\";\r\nimport { of } from \"rxjs\";\r\n\r\nimport {\r\n\tSignoutAction,\r\n\tSignInActionTypes,\r\n\tSigninSecceed,\r\n\tSigninFailed,\r\n\tSigninRedirect,\r\n\tSignin,\r\n\tSignupSecceed,\r\n\tSignupFailed\r\n} from \"../actions/signin.actions\";\r\nimport { SigninService } from \"../services/signin.service\";\r\nimport { NewCaptcha } from \"../actions\";\r\nimport { SigninContainerComponent } from \"../smart-components/signin-container\";\r\nimport { MatBottomSheet } from \"@angular/material\";\r\nimport { AuthenticationConfigurationService } from \"../services/authentication-configuration.service\";\r\n\r\n@Injectable()\r\nexport class SigninEffects {\r\n\tconstructor(\r\n\t\tprivate actions$: Actions,\r\n\t\tprivate router: Router,\r\n\t\tpublic signinService: SigninService,\r\n\t\tpublic configurationService: AuthenticationConfigurationService,\r\n\t\tprivate bottomSheet: MatBottomSheet\r\n\t) {}\r\n\r\n\t@Effect()\r\n\twhoAmI$ = this.actions$.pipe(\r\n\t\tofType(SignInActionTypes.WHO_AM_I),\r\n\t\tswitchMap(() =>\r\n\t\t\tthis.signinService\r\n\t\t\t\t.whoAmI()\r\n\t\t\t\t.pipe(map(user => new SigninSecceed(user)), catchError(error => of(new SigninFailed(error))))\r\n\t\t)\r\n\t);\r\n\r\n\t@Effect()\r\n\tSignin$ = this.actions$.pipe(\r\n\t\tofType(SignInActionTypes.SIGNIN),\r\n\t\tpluck(\"payload\"),\r\n\t\tswitchMap(payload =>\r\n\t\t\tthis.signinService\r\n\t\t\t\t.signin(payload)\r\n\t\t\t\t.pipe(map(user => new SigninSecceed(user)), catchError(error => of(new SigninFailed(error))))\r\n\t\t)\r\n\t);\r\n\r\n\t@Effect()\r\n\tsignup$ = this.actions$.pipe(\r\n\t\tofType(SignInActionTypes.SIGNUP),\r\n\t\tpluck(\"payload\"),\r\n\t\tswitchMap(payload =>\r\n\t\t\tthis.signinService\r\n\t\t\t\t.signup(payload)\r\n\t\t\t\t.pipe(map(user => new SignupSecceed(user)), catchError(error => of(new SignupFailed(error))))\r\n\t\t)\r\n\t);\r\n\r\n\t@Effect({ dispatch: false })\r\n\tsignupSucceed$ = this.actions$.pipe(\r\n\t\tofType(SignInActionTypes.SIGNUP_SUCCEED),\r\n\t\ttap(() => {\r\n\t\t\tdebugger;\r\n\t\t\tthis.router.navigate([ \"auth/signin\" ]);\r\n\t\t})\r\n\t);\r\n\r\n\t@Effect({ dispatch: false })\r\n\tSignInRequired$ = this.actions$.pipe(\r\n\t\tofType(SignInActionTypes.SIGNIN_REQUIRED),\r\n\t\ttap((data: any) => {\r\n\t\t\tconst signinBottomSheetRef = this.bottomSheet.open(SigninContainerComponent, {\r\n\t\t\t\tpanelClass: \"clear-mat-card-box\"\r\n\t\t\t});\r\n\t\t\tsigninBottomSheetRef.instance.signedIn$.subscribe(() => {\r\n\t\t\t\tsigninBottomSheetRef.dismiss();\r\n\t\t\t});\r\n\t\t\treturn signinBottomSheetRef;\r\n\t\t})\r\n\t);\r\n\r\n\t@Effect({ dispatch: false })\r\n\tSigninSucceed$ = this.actions$.pipe(\r\n\t\tofType(SignInActionTypes.SIGNIN_SUCCEED),\r\n\t\ttap((data: any) => {\r\n\t\t\tif (location.pathname.indexOf(\"signin\") > -1) this.router.navigate([ \"/\" ]);\r\n\t\t})\r\n\t);\r\n\r\n\t@Effect()\r\n\tAfterSigninFiled$ = this.actions$.pipe(ofType(SignInActionTypes.SIGNIN_FAILURE), map(() => new NewCaptcha()));\r\n\r\n\t@Effect()\r\n\tDoSignout$ = this.actions$.pipe(\r\n\t\tofType(SignInActionTypes.DO_SIGNOUT),\r\n\t\tswitchMap(data =>\r\n\t\t\tthis.signinService.signout().pipe(\r\n\t\t\t\tmap(() => new SignoutAction()),\r\n\t\t\t\tcatchError(err => {\r\n\t\t\t\t\t// TODO: dispatch valid action\r\n\t\t\t\t\tdebugger;\r\n\t\t\t\t\treturn of(err);\r\n\t\t\t\t})\r\n\t\t\t)\r\n\t\t)\r\n\t);\r\n\r\n\t// TODO\r\n\t// @Effect() Signout$ = this.actions$.ofType(SignInActionTypes.DO_SIGNOUT).pipe(map(() => new SignoutAction()));\r\n\r\n\t@Effect({ dispatch: false })\r\n\tredirectToLoginPage$ = this.actions$.pipe(\r\n\t\tofType(SignInActionTypes.SIGNIN_REDIRECT),\r\n\t\ttap(authed => this.router.navigate([ \"auth/signin\" ]))\r\n\t);\r\n\r\n\t@Effect({ dispatch: false })\r\n\tredirectAfterSignout$ = this.actions$.pipe(\r\n\t\tofType(SignInActionTypes.SIGNOUT),\r\n\t\ttap(authed => this.router.navigate([ this.configurationService.config$.getValue().afterSignoutRedirectTo ]))\r\n\t);\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Actions, Effect, ofType } from \"@ngrx/effects\";\r\n\r\nimport { SignInActionTypes, FailedHappened, ProgressingStarted, ProgressingFinished } from \"../actions\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\n@Injectable()\r\nexport class AuthenticationEffects {\r\n\tconstructor(private actions$: Actions<any>) {}\r\n\r\n\t@Effect()\r\n\tdispachProgressingStarted$ = this.actions$.pipe(\r\n\t\tofType(SignInActionTypes.SIGNIN),\r\n\t\tmap(() => new ProgressingStarted())\r\n\t);\r\n\r\n\t@Effect()\r\n\tdispachProgressingFinished$ = this.actions$.pipe(\r\n\t\tofType(SignInActionTypes.SIGNIN_FAILURE, SignInActionTypes.SIGNIN_SUCCEED),\r\n\t\tmap(() => new ProgressingFinished())\r\n\t);\r\n}\r\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { Observable } from \"rxjs/Rx\";\r\n\r\n@Component({\r\n\tselector: \"auth-signup\",\r\n\ttemplateUrl: \"./signup.component.html\",\r\n\tstyleUrls: [ \"./signup.component.scss\" ]\r\n})\r\nexport class SignupComponent {\r\n\t@Output() signedup = new EventEmitter();\r\n\r\n\t@Input() formId: string;\r\n\r\n\tsignup(formGroup: FormGroup) {\r\n\t\tif (!formGroup.valid) return;\r\n\t\tthis.signedup.emit(formGroup.value);\r\n\t}\r\n\r\n\tconstructor() {}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { CanActivate, RouterStateSnapshot, ActivatedRouteSnapshot } from \"@angular/router\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { Observable } from \"rxjs/Observable\";\r\n\r\nimport { FeatureState, getLoggedIn } from \"../reducers\";\r\n\r\n@Injectable()\r\nexport class SigninGuard implements CanActivate {\r\n\tconstructor(private store: Store<FeatureState>) {}\r\n\r\n\tcanActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\r\n\t\treturn this.store.select(getLoggedIn).take(1).map(authed => !authed);\r\n\t}\r\n}\r\n","// import { name, version } from \"../../package.json\";\r\n\r\nimport { NgModule, ModuleWithProviders, InjectionToken, Injectable, Inject } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from \"@angular/common/http\";\r\nimport { FlexLayoutModule } from \"@angular/flex-layout\";\r\nimport {\r\n\tMatIconModule,\r\n\tMatButtonModule,\r\n\tMatCardModule,\r\n\tMatSnackBarModule,\r\n\tMatSidenavModule,\r\n\tMatExpansionModule,\r\n\tMatSelectModule,\r\n\tMatFormFieldModule,\r\n\tMatListModule,\r\n\tMatMenuModule,\r\n\tMatRadioModule,\r\n\tMatInputModule,\r\n\tMatToolbarModule,\r\n\tMatDatepickerModule,\r\n\tMatProgressBarModule,\r\n\tMatBottomSheetModule\r\n} from \"@angular/material\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { StoreModule } from \"@ngrx/store\";\r\nimport { EffectsModule } from \"@ngrx/effects\";\r\n\r\nimport { NgsFormModule } from \"@soushians/form\";\r\n\r\nimport { AuthenticationModuleConfig, MODULE_CONFIG_TOKEN } from \"./authentication.config\";\r\nimport { AuthenticationRoutingModule } from \"./authentication-routing.module\";\r\nimport { SigninContainerComponent } from \"./smart-components/signin-container/signin-container.component\";\r\nimport { SigninComponent } from \"./dump-components/signin/signin.component\";\r\nimport { AuthenticationContainerComponent } from \"./smart-components/authentication-container/authentication-container.component\";\r\n\r\nimport { WithCredentialInterceptor } from \"./interceptors/with-credential.interceptor\";\r\nimport { UnauthorizedInterceptor } from \"./interceptors/unauthorized.interceptor\";\r\n\r\nimport { AuthenticationReducers } from \"./reducers/index\";\r\n\r\nimport { SigninEffects } from \"./effects/signin.effects\";\r\nimport { AuthenticationEffects } from \"./effects/authentication.effects\";\r\nimport { SigninService } from \"./services/signin.service\";\r\nimport { SignupContainerComponent } from \"./smart-components/signup-container/signup-container.component\";\r\nimport { SignupComponent } from \"./dump-components/signup/signup.component\";\r\nimport { SigninGuard } from \"./routing-guards/signin.guard\";\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tRouterModule,\r\n\t\tFormsModule,\r\n\t\tHttpClientModule,\r\n\t\tFlexLayoutModule,\r\n\t\tMatIconModule,\r\n\t\tMatButtonModule,\r\n\t\tMatCardModule,\r\n\t\tMatSnackBarModule,\r\n\t\tMatSidenavModule,\r\n\t\tMatExpansionModule,\r\n\t\tMatSelectModule,\r\n\t\tMatBottomSheetModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatListModule,\r\n\t\tMatMenuModule,\r\n\t\tMatRadioModule,\r\n\t\tMatInputModule,\r\n\t\tMatToolbarModule,\r\n\t\tMatDatepickerModule,\r\n\t\tMatProgressBarModule,\r\n\t\tBrowserAnimationsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tFormsModule,\r\n\t\tNgsFormModule\r\n\t],\r\n\tdeclarations: [\r\n\t\tSigninContainerComponent,\r\n\t\tSigninComponent,\r\n\t\tAuthenticationContainerComponent,\r\n\t\tSignupContainerComponent,\r\n\t\tSignupComponent\r\n\t],\r\n\tentryComponents: [SigninContainerComponent],\r\n\tproviders: [SigninGuard],\r\n\texports: []\r\n})\r\nexport class NgsAuthenticationModule {\r\n\tstatic forRoot(config: AuthenticationModuleConfig = <AuthenticationModuleConfig>{}): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t\tngModule: RootNgsAuthenticationModule,\r\n\t\t\tproviders: [\r\n\t\t\t\t{ provide: MODULE_CONFIG_TOKEN, useValue: config },\r\n\t\t\t\t{\r\n\t\t\t\t\tprovide: HTTP_INTERCEPTORS,\r\n\t\t\t\t\tuseClass: UnauthorizedInterceptor,\r\n\t\t\t\t\tmulti: true\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tprovide: HTTP_INTERCEPTORS,\r\n\t\t\t\t\tuseClass: WithCredentialInterceptor,\r\n\t\t\t\t\tmulti: true\r\n\t\t\t\t},\r\n\t\t\t\tSigninService\r\n\t\t\t]\r\n\t\t};\r\n\t}\r\n}\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tStoreModule.forFeature(\"authentication\", AuthenticationReducers),\r\n\t\tEffectsModule.forFeature([SigninEffects, AuthenticationEffects]),\r\n\t\tAuthenticationRoutingModule,\r\n\t\tNgsAuthenticationModule\r\n\t]\r\n})\r\nexport class RootNgsAuthenticationModule {\r\n\tconstructor() {\r\n\t\t(<any>window).___starter = (<any>window).___starter || {};\r\n\t\t(<any>window).___starter.authentication = \"7.8.0\";\r\n\t}\r\n}\r\n"],"names":["of","InjectionToken","BehaviorSubject","getAuthenticationModuleConfig","Injectable","Inject","Store","filter","config","take","switchMap","map","tap","Cookie","stringTemplate","throwError","HttpClient","MatSnackBar","EventEmitter","Component","Output","RouterModule","Input","router","HttpResponse","HttpErrorResponse","Router","userReducer.UserReducer","createFeatureSelector","createSelector","getLoggedIn","userReducer.getLoggedIn","getUser","userReducer.getUser","ofType","catchError","pluck","Actions","MatBottomSheet","tslib_1.__decorate","Effect","HTTP_INTERCEPTORS","NgModule","CommonModule","FormsModule","HttpClientModule","FlexLayoutModule","MatIconModule","MatButtonModule","MatCardModule","MatSnackBarModule","MatSidenavModule","MatExpansionModule","MatSelectModule","MatBottomSheetModule","MatFormFieldModule","MatListModule","MatMenuModule","MatRadioModule","MatInputModule","MatToolbarModule","MatDatepickerModule","MatProgressBarModule","BrowserAnimationsModule","ReactiveFormsModule","NgsFormModule","StoreModule","EffectsModule"],"mappings":"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"}