UNPKG

59.8 kBSource Map (JSON)View Raw
1{"version":3,"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"],"names":["UserModel","params","_this","this","Roles","Object","keys","forEach","key","WHO_AM_I","SIGNUP","SIGNUP_SUCCEED","SIGNUP_FAILURE","SIGNIN","DO_SIGNOUT","SIGNOUT","SIGNIN_SUCCEED","SIGNIN_FAILURE","SIGNIN_REDIRECT","SIGNIN_REQUIRED","WhoAmIAction","type","SignInActionTypes","Signup","payload","SignupSecceed","SignupFailed","Signin","SigninSecceed","SigninFailed","DoSignoutAction","SignoutAction","SigninRequiredAction","MODULE_DEFAULT_CONFIG","mode","token","time","server","endpoints","signOut","signOutMethod","signIn","signUp","whoAmI","forms","env","production","frontend_server","afterSignoutRedirectTo","signupValidator","value","of","afterSignin","user","responseToUser","MODULE_CONFIG_TOKEN","InjectionToken","AuthenticationConfigurationService","configFile","store","config$","BehaviorSubject","_config","assign","next","select","getAuthenticationModuleConfig","subscribe","storeConfig","Config","defineProperty","prototype","Injectable","args","providedIn","Inject","Store","ProgressingStarted","ProgressingFinished","NewCaptcha","COOKIE_NAME","SigninService","http","configurationService","snackBar","setTimeout","dispatch","signup","model","pipe","filter","config","take","switchMap","post","map","response","Result","Role","signin","tap","Cookie","setCookie","JSON","stringify","signout","tokenObject","parse","getCookie","endpoint","stringTemplate","method","indexOf","throwError","deleteCookie","Token","error","get","HttpClient","MatSnackBar","SigninContainerComponent","signedIn$","EventEmitter","formId$","formValue","emit","Component","template","Output","AuthenticationContainerComponent","SignupContainerComponent","signedUp$","validation","open","duration","routes","path","component","children","AuthenticationRoutingModule","RouterModule","forChild","SigninComponent","signedin","formGroup","valid","selector","Input","WithCredentialInterceptor","intercept","request","withCredentials","handle","UnauthorizedInterceptor","router","event","HttpResponse","catch","err","HttpErrorResponse","status","url","includes","Router","__assign","t","s","i","n","arguments","length","p","hasOwnProperty","call","apply","__decorate","decorators","target","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","__metadata","metadataKey","metadataValue","metadata","initialState","loggedIn","Id","UserReducer","state","action","getUser","AuthenticationReducers","userStatus","userReducer.UserReducer","selectAuthenticationState","createFeatureSelector","selectAuthState","createSelector","getLoggedIn","userReducer.getUser","SigninEffects","actions$","signinService","bottomSheet","whoAmI$","ofType","catchError","Signin$","pluck","signup$","signupSucceed$","navigate","SignInRequired$","data","signinBottomSheetRef","panelClass","instance","dismiss","SigninSucceed$","location","pathname","AfterSigninFiled$","DoSignout$","redirectToLoginPage$","authed","redirectAfterSignout$","getValue","Actions","MatBottomSheet","tslib_1.__decorate","Effect","AuthenticationEffects","dispachProgressingStarted$","dispachProgressingFinished$","SignupComponent","signedup","SigninGuard","canActivate","route","NgsAuthenticationModule","forRoot","config$$1","ngModule","RootNgsAuthenticationModule","providers","provide","useValue","HTTP_INTERCEPTORS","useClass","multi","NgModule","imports","CommonModule","FormsModule","HttpClientModule","FlexLayoutModule","MatIconModule","MatButtonModule","MatCardModule","MatSnackBarModule","MatSidenavModule","MatExpansionModule","MatSelectModule","MatBottomSheetModule","MatFormFieldModule","MatListModule","MatMenuModule","MatRadioModule","MatInputModule","MatToolbarModule","MatDatepickerModule","MatProgressBarModule","BrowserAnimationsModule","ReactiveFormsModule","NgsFormModule","declarations","entryComponents","exports","___starter","authentication","StoreModule","forFeature","EffectsModule"],"mappings":"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","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"]}
\No newline at end of file