UNPKG

58.4 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","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","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","deleteCookie","get","Token","parse","getCookie","error","stringTemplate","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","throwError","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","indexOf","AfterSigninFiled$","DoSignout$","redirectToLoginPage$","authed","redirectAfterSignout$","getValue","Actions","MatBottomSheet","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","StoreModule","forFeature","EffectsModule"],"mappings":"shDAAA,IAAAA,EAeC,SAAAA,GAAYC,GAAZ,IAAAC,EAAAC,KAFAA,KAAAC,MAAkB,GAGjBH,GACCI,OAAOC,KAAKL,GAAQM,QAAQ,SAAAC,GACvBA,KAAOP,IAAQ,EAAcO,GAAOP,EAAOO,UCblDC,SAAW,4BACXC,OAAS,iCACTC,eAAiB,mCACjBC,eAAiB,mCACjBC,OAAS,0BACTC,WAAa,8BACbC,QAAU,2BACVC,eAAiB,mCACjBC,eAAiB,mCACjBC,gBAAkB,oCAClBC,gBAAkB,qCAGnBC,gBACCjB,KAAAkB,KAAgBC,EAAkBb,UAMnCc,EAEC,SAAAA,GAAmBC,GAAArB,KAAAqB,QAAAA,EADnBrB,KAAAkB,KAAgBC,EAAkBZ,QAInCe,EAEC,SAAAA,GAAmBD,GAAArB,KAAAqB,QAAAA,EADnBrB,KAAAkB,KAAgBC,EAAkBX,gBAInCe,EAEC,SAAAA,GAAmBF,GAAArB,KAAAqB,QAAAA,EADnBrB,KAAAkB,KAAgBC,EAAkBV,gBAOnCe,EAEC,SAAAA,GAAmBH,GAAArB,KAAAqB,QAAAA,EADnBrB,KAAAkB,KAAgBC,EAAkBT,QAInCe,EAEC,SAAAA,GAAmBJ,GAAArB,KAAAqB,QAAAA,EADnBrB,KAAAkB,KAAgBC,EAAkBN,gBAInCa,EAEC,SAAAA,GAAmBL,GAAArB,KAAAqB,QAAAA,EADnBrB,KAAAkB,KAAgBC,EAAkBL,gBAQnCa,gBACC3B,KAAAkB,KAAgBC,EAAkBR,YAGnCiB,gBACC5B,KAAAkB,KAAgBC,EAAkBP,SAGnCiB,gBACC7B,KAAAkB,KAAgBC,EAAkBH,iBCxCtBc,EAAoD,CAC7DC,KAAM,cACNC,MAAO,CACHC,KAAM,SAEVC,OAAQ,kBACRC,UAAW,CACPC,QAAS,GACTC,OAAQ,GACRC,OAAQ,GACRC,OAAQ,IAEZC,MAAO,CACHH,OAAQ,GACRC,OAAQ,IAEZG,IAAK,CACDC,YAAY,EACZC,gBAAiB,0CACjBT,OAAQ,kCAEZU,uBAAwB,IACxBC,gBAAiB,SAAAC,GAAS,OAAAC,EAAAA,IAAG,IAC7BC,YAAa,SAACC,KACdC,eAAgB,SAAAD,GAAQ,OAAAA,IAGfE,EAAsB,IAAIC,EAAAA,eAA2C,gBC1DlFC,EAAA,WAoBC,SAAAA,EAAyCC,EAAyBC,GAAlE,IAAAxD,EAAAC,KAAkEA,KAAAuD,MAAAA,EAFlEvD,KAAAwD,QAAU,IAAIC,EAAAA,gBAAgBzD,KAAK0D,SAGlC1D,KAAK0D,QAAUxD,OAAOyD,OAAO,GAAI7B,EAAuBwB,GACxDtD,KAAKwD,QAAQI,KAAK5D,KAAK0D,SACvB1D,KAAKuD,MAAMM,OAAOC,EAAAA,+BAA+BC,UAAU,SAAAC,GACrDA,IACLjE,EAAK2D,QAAUxD,OAAOyD,OAAO,GAAI5D,EAAK2D,QAASM,EAAYC,QAC3DlE,EAAKyD,QAAQI,KAAK7D,EAAK2D,mBAXzBxD,OAAAgE,eAAIb,EAAAc,UAAA,SAAM,KAAV,WACC,OAAOnE,KAAK0D,6DANbU,EAAAA,WAAUC,KAAA,CAAC,CACXC,WAAY,gFASCC,EAAAA,OAAMF,KAAA,CAAClB,YAnBZqB,EAAAA,6IADT,GCQAC,gBACCzE,KAAAkB,KAAA,wCAEDwD,gBACC1E,KAAAkB,KAAA,yCCADyD,gBACQ3E,KAAAkB,KATmB,yBCarB0D,EAAc,kCAMnB,SAAAC,EACSC,EACAvB,EACAwB,EACAC,GAJT,IAAAjF,EAAAC,KACSA,KAAA8E,KAAAA,EACA9E,KAAAuD,MAAAA,EACAvD,KAAA+E,qBAAAA,EACA/E,KAAAgF,SAAAA,EAERC,WAAW,WAAM,OAAAlF,EAAKwD,MAAM2B,SAAS,IAAIjE,IAAiB,YAG3D4D,EAAAV,UAAAgB,OAAA,SAAOC,GAAP,IAAArF,EAAAC,KACC,OAAOA,KAAK+E,qBAAqBvB,QAAQ6B,KACxCC,EAAAA,OAAO,SAAAC,GAAU,MAA2B,IAA3BA,EAAOpD,UAAUG,SAClCkD,EAAAA,KAAK,GACLC,EAAAA,UAAU,SAAAF,GACT,OAAAxF,EAAK+E,KAAKY,KAA+BH,EAAO9C,IAAI8C,EAAOrD,QAAUqD,EAAOpD,UAAUG,OAAQ8C,KAE/FO,EAAAA,IAAI,SAAAC,GACH,IAAM3C,EAAY/C,OAAOyD,OAAO,GAAIiC,EAASC,QAI7C,OAHI5C,EAAK6C,OACR7C,EAAKhD,MAAQ,CAACgD,EAAK6C,OAEb7C,MAKV4B,EAAAV,UAAA4B,OAAA,SAAOX,GAAP,IAAArF,EAAAC,KACC,OAAOA,KAAK+E,qBAAqBvB,QAAQ6B,KACxCC,EAAAA,OAAO,SAAAC,GAAU,MAA2B,IAA3BA,EAAOpD,UAAUE,SAClCmD,EAAAA,KAAK,GACLC,EAAAA,UAAU,SAAAF,GACT,OAAAxF,EAAK+E,KAAKY,KAAUH,EAAO9C,IAAI8C,EAAOrD,QAAUqD,EAAOpD,UAAUE,OAAQ+C,KAE1EO,EAAAA,IAAI3F,KAAK+E,qBAAqBQ,OAAOrC,gBACrCyC,EAAAA,IAAI,SAAC1C,GAIJ,OAHIA,EAAK6C,OACR7C,EAAKhD,MAAQ,CAACgD,EAAK6C,OAEb7C,IAER+C,EAAAA,IAAI,SAAA/C,GAC0C,cAAzClD,EAAKgF,qBAAqBQ,OAAOxD,MACpCkE,EAAAA,OAAOC,UAAUtB,EAAauB,KAAKC,UAAUnD,GAAOlD,EAAKgF,qBAAqBQ,OAAOvD,MAAMC,QAE7F+D,EAAAA,IAAI,SAAC/C,GAAS,OAAAlD,EAAKgF,qBAAqBQ,OAAOvC,YAAYC,OAK7D4B,EAAAV,UAAAkC,QAAA,WAEC,OADAJ,EAAAA,OAAOK,aAAa1B,GACb5E,KAAK8E,KACVyB,IACAvG,KAAK+E,qBAAqBQ,OAAO9C,IAAIzC,KAAK+E,qBAAqBQ,OAAOrD,QAAUlC,KAAK+E,qBAAqBQ,OAAOpD,UAAUC,SAE3HiD,KACAW,EAAAA,IAAI,WACHC,EAAAA,OAAOK,aAAa1B,OAKxBC,EAAAV,UAAA5B,OAAA,WAAA,IAAAxC,EAAAC,KAEKiD,EAAO,CAAEuD,MAAO,MACpB,GAA6C,cAAzCxG,KAAK+E,qBAAqBQ,OAAOxD,KACpC,IACCkB,EAAOkD,KAAKM,MAAMR,EAAAA,OAAOS,UAAU9B,IAClC,MAAO+B,IAEV,OAAO3G,KAAK+E,qBAAqBvB,QAAQ6B,KACxCC,EAAAA,OAAO,SAAAC,GAAU,MAA2B,IAA3BA,EAAOpD,UAAUI,SAClCiD,EAAAA,KAAK,GACLC,EAAAA,UAAU,SAAAF,GACT,OAAAxF,EAAK+E,KAAKyB,IAAIK,EAAAA,eAAerB,EAAO9C,IAAI8C,EAAOrD,QAAUqD,EAAOpD,UAAUI,OAAQ,CAAEU,KAAIA,6BA9E3FmB,EAAAA,WAAUC,KAAA,CAAC,CACXC,WAAY,oDAnBJuC,EAAAA,kBAKArC,EAAAA,aAMAnB,SATAyD,EAAAA,qMCHTC,EAAA,WAmBC,SAAAA,EAAoBhC,EAAkExB,GAAlEvD,KAAA+E,qBAAAA,EAAkE/E,KAAAuD,MAAAA,EADtFvD,KAAAgH,UAAsB,IAAIC,EAAAA,aAEzBjH,KAAKkH,QAAUlH,KAAK+E,qBAAqBvB,QAAQmC,IAAI,SAAAJ,GAAU,OAAAA,EAAO/C,MAAMH,gBAG7E0E,EAAA5C,UAAA9B,OAAA,SAAO8E,GACNnH,KAAKuD,MAAM2B,SAAS,IAAI1D,EAAO2F,IAC/BnH,KAAKgH,UAAUI,MAAK,wBAjBrBC,EAAAA,UAAShD,KAAA,CAAC,CACViD,SAAU,iMAJFjE,SAHAmB,EAAAA,4CAgBP+C,EAAAA,YAlBF,GCAAC,EAAA,oDAECH,EAAAA,UAAShD,KAAA,CAAC,CACViD,SAAU,8DAHX,GCAAG,EAAA,WAsBC,SAAAA,EACS1C,EACAxB,EACAyB,GAFAhF,KAAA+E,qBAAAA,EACA/E,KAAAuD,MAAAA,EACAvD,KAAAgF,SAAAA,EAJThF,KAAA0H,UAAsB,IAAIT,EAAAA,aAMzBjH,KAAKkH,QAAUlH,KAAK+E,qBAAqBvB,QAAQmC,IAAI,SAAAJ,GAAU,OAAAA,EAAO/C,MAAMF,gBAG7EmF,EAAAtD,UAAAgB,OAAA,SAAOgC,GAAP,IAAApH,EAAAC,KACCA,KAAK+E,qBAAqBvB,QACxB6B,KAAKG,EAAAA,KAAK,GAAIC,EAAAA,UAAU,SAAAF,GAAU,OAAAA,EAAO1C,gBAAgBsE,MACzDpD,UAAU,SAAA4D,GACNA,GACH5H,EAAKwD,MAAM2B,SAAS,IAAI9D,EAAO+F,IAC/BpH,EAAK2H,UAAUN,MAAK,IAEpBrH,EAAKiF,SAAS4C,KAAK,sBAAuB,KAAM,CAC/CC,SAAU,8BA5BfR,EAAAA,UAAShD,KAAA,CAAC,CACViD,SAAU,iMANFjE,SAJAmB,EAAAA,aAMAsC,EAAAA,kDAaPS,EAAAA,YArBF,GCQMO,EAAiB,CACtB,CACCC,KAAM,OACNC,UAAWR,EACXS,SAAU,CACT,CACCF,KAAM,SAENC,UAAWjB,GAEZ,CACCgB,KAAM,SAENC,UAAWP,MAMFS,EAAmDC,EAAAA,aAAaC,SAASN,GC3BtFO,EAAA,WAmBC,SAAAA,IATArI,KAAAsI,SAAqB,IAAIrB,EAAAA,oBAIzBoB,EAAAlE,UAAA4B,OAAA,SAAOwC,GACDA,EAAUC,OACfxI,KAAKsI,SAASlB,KAAKmB,EAAUzF,4BAZ9BuE,EAAAA,UAAShD,KAAA,CAAC,CACVoE,SAAU,cACVnB,SAAA,icAICC,EAAAA,uBAEAmB,EAAAA,WAZF,GCAAC,EAAA,WAaC,SAAAA,EAAoB5D,GAAA/E,KAAA+E,qBAAAA,SACpB4D,EAAAxE,UAAAyE,UAAA,SAAUC,EAA2BjF,GAGpC,OADA,EAAiBkF,iBAAkB,EAC5BlF,EAAKmF,OAAOF,wBANpBzE,EAAAA,sDAHQf,OART,GCKA2F,EAAA,WAYC,SAAAA,EACSC,EACA1F,GADAvD,KAAAiJ,OAAAA,EACAjJ,KAAAuD,MAAAA,SAETyF,EAAA7E,UAAAyE,UAAA,SAAUC,EAA2BjF,GAArC,IAAA7D,EAAAC,KACC,OAAO4D,EACLmF,OAAOF,GACPlD,IAAI,SAACuD,GACL,GAAIA,aAAiBC,EAAAA,aAAc,OAAOD,IAE1CE,SAAM,SAAAC,GACN,OAAMA,aAAeC,EAAAA,kBACH,KAAdD,EAAIE,OAAsBC,EAAAA,WAAWH,GACrCA,EAAII,IAAIC,SAAS,UAAkBF,EAAAA,WAAWH,GAC9CA,EAAII,IAAIC,SAAS,wBAAgCF,EAAAA,WAAWH,IAEhEtJ,EAAKwD,MAAM2B,SAAS,IAAItD,GAEjB4H,EAAAA,WAAW,iBAP8BA,EAAAA,WAAWH,0BAb9DjF,EAAAA,sDAHQuF,EAAAA,cAJAnF,EAAAA,WAHT,GCwBWoF,EAAW,WAQlB,OAPAA,EAAW1J,OAAOyD,QAAU,SAAkBkG,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACO7J,OAAOiE,UAAUiG,eAAeC,KAAKP,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,IAE9E,OAAON,IAEKS,MAAMtK,KAAMiK,YAGhC,SAUgBM,EAAWC,EAAYC,EAAQpK,EAAKqK,GAChD,IAA2HC,EAAvHC,EAAIX,UAAUC,OAAQW,EAAID,EAAI,EAAIH,EAAkB,OAATC,EAAgBA,EAAOxK,OAAO4K,yBAAyBL,EAAQpK,GAAOqK,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASR,EAAYC,EAAQpK,EAAKqK,QACpH,IAAK,IAAIX,EAAIS,EAAWN,OAAS,EAAQ,GAALH,EAAQA,KAASY,EAAIH,EAAWT,MAAIc,GAAKD,EAAI,EAAID,EAAEE,GAAS,EAAJD,EAAQD,EAAEF,EAAQpK,EAAKwK,GAAKF,EAAEF,EAAQpK,KAASwK,GAChJ,OAAW,EAAJD,GAASC,GAAK3K,OAAOgE,eAAeuG,EAAQpK,EAAKwK,GAAIA,EAGhE,SAIgBI,EAAWC,EAAaC,GACpC,GAAuB,iBAAZJ,SAAoD,mBAArBA,QAAQK,SAAyB,OAAOL,QAAQK,SAASF,EAAaC,GCtDpH,IAAaE,EAAsB,CAClCC,UAAU,EACVrI,KAAM,IAAIpD,EAAU,CAAE0L,GAAI,KAG3B,SAAgBC,EAAYC,EAAsBC,GACjD,YAD2B,IAAAD,IAAAA,EAAAJ,GACnBK,EAAOxK,MACd,KAAKC,EAAkBN,eACtB,OAAA+I,EAAA,GACI6B,EAAK,CACRH,UAAU,EACVrI,KAAMyI,EAAOrK,UAIf,KAAKF,EAAkBP,QACtB,OAAAgJ,EAAA,GACI6B,EAAK,CACRH,UAAU,EACVrI,KAAM,IAAIpD,IAIZ,QACC,OAAO4L,GAMV,IACaE,EAAU,SAACF,GAAiB,OAAAA,EAAMxI,MCvBlC2I,GAAyB,CACrCC,WAAYC,GAMAC,GAA4BC,EAAAA,sBAA2C,kBAEvEC,GAAkBC,EAAAA,eAC9BH,GACA,SAACN,GAA+B,OAAAA,EAAMI,aAG1BM,GAAcD,EAAAA,eAAeD,GDQf,SAACR,GAAiB,OAAAA,EAAMH,WCPtCK,GAAUO,EAAAA,eAAeD,GAAiBG,iBCJtD,SAAAC,EACSC,EACArD,EACDsD,EACAxH,EACCyH,GALT,IAAAzM,EAAAC,KACSA,KAAAsM,SAAAA,EACAtM,KAAAiJ,OAAAA,EACDjJ,KAAAuM,cAAAA,EACAvM,KAAA+E,qBAAAA,EACC/E,KAAAwM,YAAAA,EAGTxM,KAAAyM,QACUzM,KAAKsM,SACbI,OAAOvL,EAAkBb,UACzB+E,KACAI,EAAAA,UAAU,WACT,OAAA1F,EAAKwM,cACHhK,SACA8C,KAAKM,EAAAA,IAAI,SAAA1C,GAAQ,OAAA,IAAIxB,EAAcwB,KAAQ0J,EAAAA,WAAW,SAAAhG,GAAS,OAAA5D,EAAAA,GAAG,IAAIrB,EAAaiF,UAIxF3G,KAAA4M,QACU5M,KAAKsM,SACbI,OAAOvL,EAAkBT,QACzB2E,KACAwH,EAAAA,MAAM,WACNpH,EAAAA,UAAU,SAAApE,GACT,OAAAtB,EAAKwM,cACHxG,OAAO1E,GACPgE,KAAKM,EAAAA,IAAI,SAAA1C,GAAQ,OAAA,IAAIxB,EAAcwB,KAAQ0J,EAAAA,WAAW,SAAAhG,GAAS,OAAA5D,EAAAA,GAAG,IAAIrB,EAAaiF,UAIxF3G,KAAA8M,QACU9M,KAAKsM,SACbI,OAAOvL,EAAkBZ,QACzB8E,KACAwH,EAAAA,MAAM,WACNpH,EAAAA,UAAU,SAAApE,GACT,OAAAtB,EAAKwM,cACHpH,OAAO9D,GACPgE,KAAKM,EAAAA,IAAI,SAAA1C,GAAQ,OAAA,IAAI3B,EAAc2B,KAAQ0J,EAAAA,WAAW,SAAAhG,GAAS,OAAA5D,EAAAA,GAAG,IAAIxB,EAAaoF,UAIxF3G,KAAA+M,eACiB/M,KAAKsM,SAASI,OAAOvL,EAAkBX,gBAAgB6E,KACvEW,EAAAA,IAAI,WAEHjG,EAAKkJ,OAAO+D,SAAS,CAAC,mBAIxBhN,KAAAiN,gBACkBjN,KAAKsM,SAASI,OAAOvL,EAAkBH,iBAAiBqE,KACzEW,EAAAA,IAAI,SAACkH,GACJ,IAAMC,EAAuBpN,EAAKyM,YAAY5E,KAAKb,EAA0B,CAC5EqG,WAAY,uBAKb,OAHAD,EAAqBE,SAASrG,UAAUjD,UAAU,WACjDoJ,EAAqBG,YAEfH,KAITnN,KAAAuN,eACiBvN,KAAKsM,SAASI,OAAOvL,EAAkBN,gBAAgBwE,KACvEW,EAAAA,IAAI,SAACkH,IACuC,EAAvCM,SAASC,SAASC,QAAQ,WAAgB3N,EAAKkJ,OAAO+D,SAAS,CAAC,SAItEhN,KAAA2N,kBAA8B3N,KAAKsM,SAASI,OAAOvL,EAAkBL,gBAAgB6E,IAAI,WAAM,OAAA,IAAIhB,IAEnG3E,KAAA4N,WACa5N,KAAKsM,SAASI,OAAOvL,EAAkBR,YAAY0E,KAC/DI,EAAAA,UAAU,SAAAyH,GACT,OAAAnN,EAAKwM,cAAclG,UAAUhB,KAC5BM,EAAAA,IAAI,WAAM,OAAA,IAAI/D,IACd+K,EAAAA,WAAW,SAAAtD,GAGV,OAAOtG,EAAAA,GAAGsG,SASdrJ,KAAA6N,qBACuB7N,KAAKsM,SAC1BI,OAAOvL,EAAkBJ,iBACzBsE,KAAKW,EAAAA,IAAI,SAAA8H,GAAU,OAAA/N,EAAKkJ,OAAO+D,SAAS,CAAC,mBAE3ChN,KAAA+N,sBACwB/N,KAAKsM,SAC3BI,OAAOvL,EAAkBP,SACzByE,KACAW,EAAAA,IAAI,SAAA8H,GAAU,OAAA/N,EAAKkJ,OAAO+D,SAAS,CAACjN,EAAKgF,qBAAqBvB,QAAQwK,WAAWpL,uDArGnFwB,EAAAA,sDArBQ6J,EAAAA,eAHAtE,EAAAA,cAkBA9E,SAIAxB,SADA6K,EAAAA,qBAaPC,EAAAA,mEAWAA,EAAAA,mEAYAA,EAAAA,mEAYAA,EAAAA,OAAO,CAAEjJ,UAAU,qEAQnBiJ,EAAAA,OAAO,CAAEjJ,UAAU,sEAanBiJ,EAAAA,OAAO,CAAEjJ,UAAU,qEAOnBiJ,EAAAA,6EAEAA,EAAAA,sEAiBAA,EAAAA,OAAO,CAAEjJ,UAAU,2EAKnBiJ,EAAAA,OAAO,CAAEjJ,UAAU,4FC5GpB,SAAAkJ,EAAoB9B,EAAgCrD,GAAhCjJ,KAAAsM,SAAAA,EAAgCtM,KAAAiJ,OAAAA,EAEpDjJ,KAAAqO,2BAC6BrO,KAAKsM,SAChCI,OAAOvL,EAAkBT,QACzB2E,KAAKM,EAAAA,IAAI,WAAM,OAAA,IAAIlB,KAErBzE,KAAAsO,4BAC8BtO,KAAKsM,SACjCI,OAAOvL,EAAkBL,eAAgBK,EAAkBN,gBAC3DwE,KAAKM,EAAAA,IAAI,WAAM,OAAA,IAAIjB,gCAZrBN,EAAAA,sDALQ6J,EAAAA,eANAtE,EAAAA,aAePwE,EAAAA,sFAKAA,EAAAA,yFCrBFI,GAAA,WAmBC,SAAAA,IATAvO,KAAAwO,SAAqB,IAAIvH,EAAAA,oBAIzBsH,EAAApK,UAAAgB,OAAA,SAAOoD,GACDA,EAAUC,OACfxI,KAAKwO,SAASpH,KAAKmB,EAAUzF,4BAZ9BuE,EAAAA,UAAShD,KAAA,CAAC,CACVoE,SAAU,cACVnB,SAAA,icAICC,EAAAA,uBAEAmB,EAAAA,WAZF,GCAA+F,GAAA,WASC,SAAAA,EAAoBlL,GAAAvD,KAAAuD,MAAAA,SAEpBkL,EAAAtK,UAAAuK,YAAA,SAAYC,EAA+BlD,GAC1C,OAAOzL,KAAKuD,MAAMM,OAAOsI,IAAa3G,KAAK,GAAGG,IAAI,SAAAmI,GAAU,OAACA,yBAL9D1J,EAAAA,sDALQI,EAAAA,WAFT,GCAAoK,GAAA,gCAwFQA,EAAAC,QAAP,SAAetJ,GACd,YADc,IAAAuJ,IAAAvJ,EAAAA,IACP,CACNwJ,SAAUC,GACVC,UAAW,CACV,CAAEC,QAAS/L,EAAqBgM,SAAU5J,GAC1C,CACC2J,QAASE,EAAAA,kBACTC,SAAUrG,EACVsG,OAAO,GAER,CACCJ,QAASE,EAAAA,kBACTC,SAAU1G,EACV2G,OAAO,GAERzK,yBAvDH0K,EAAAA,SAAQlL,KAAA,CAAC,CACTmL,QAAS,CACRC,EAAAA,aACAtH,EAAAA,aACAuH,EAAAA,YACAC,EAAAA,iBACAC,EAAAA,iBACAC,EAAAA,cACAC,EAAAA,gBACAC,EAAAA,cACAC,EAAAA,kBACAC,EAAAA,iBACAC,EAAAA,mBACAC,EAAAA,gBACAC,EAAAA,qBACAC,EAAAA,mBACAC,EAAAA,cACAC,EAAAA,cACAC,EAAAA,eACAC,EAAAA,eACAC,EAAAA,iBACAC,EAAAA,oBACAC,EAAAA,qBACAC,EAAAA,wBACAC,EAAAA,oBACApB,EAAAA,YACAqB,EAAAA,eAEDC,aAAc,CACbjK,EACAsB,EACAb,EACAC,EACA8G,IAED0C,gBAAiB,CAAClK,GAClBkI,UAAW,CAACR,IACZyC,QAAS,SArFV,0DA6GC3B,EAAAA,SAAQlL,KAAA,CAAC,CACTmL,QAAS,CACR2B,EAAAA,YAAYC,WAAW,iBAAkBxF,IACzCyF,EAAAA,cAAcD,WAAW,CAAC/E,GAAe+B,KACzClG,EACA0G","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 mode?: string; // \"token-base\" | \"cookie-base\";\r\n token?: {\r\n time: number\r\n };\r\n server?: string;\r\n endpoints?: {\r\n signOut?: string;\r\n signIn?: string;\r\n signUp?: string;\r\n whoAmI?: string;\r\n };\r\n forms?: {\r\n signIn: string;\r\n signUp: string;\r\n };\r\n env?: {\r\n production: boolean;\r\n frontend_server: string;\r\n server: string;\r\n };\r\n afterSignoutRedirectTo?: string;\r\n signupValidator?: (value: any) => Observable<boolean>;\r\n afterSignin?: (user: any) => void;\r\n responseToUser?: (user: any) => any;\r\n\r\n}\r\n\r\nexport const MODULE_DEFAULT_CONFIG: AuthenticationModuleConfig = {\r\n mode: \"cookie-base\",\r\n token: {\r\n time: 24 * 12 * 60 * 60\r\n },\r\n server: \"frontend_server\",\r\n endpoints: {\r\n signOut: \"\",\r\n signIn: \"\",\r\n signUp: \"\",\r\n whoAmI: \"\"\r\n },\r\n forms: {\r\n signIn: \"\",\r\n signUp: \"\"\r\n },\r\n env: {\r\n production: false,\r\n frontend_server: \"auth/module/frontend_server/did/not/set\",\r\n server: \"auth/module/server/did/not/set\"\r\n },\r\n afterSignoutRedirectTo: \"/\",\r\n signupValidator: value => of(true),\r\n afterSignin: (user) => { },\r\n responseToUser: 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 } 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 =>\r\n\t\t\t\tthis.http.post<any>(config.env[config.server] + config.endpoints.signIn, model)\r\n\t\t\t),\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\tCookie.deleteCookie(COOKIE_NAME);\r\n\t\treturn this.http\r\n\t\t\t.get(\r\n\t\t\t\tthis.configurationService.config.env[this.configurationService.config.server] + this.configurationService.config.endpoints.signOut\r\n\t\t\t)\r\n\t\t\t.pipe(\r\n\t\t\t\ttap(() => {\r\n\t\t\t\t\tCookie.deleteCookie(COOKIE_NAME);\r\n\t\t\t\t})\r\n\t\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++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\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 __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 } 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$\r\n\t\t.ofType(SignInActionTypes.WHO_AM_I)\r\n\t\t.pipe(\r\n\t\t\tswitchMap(() =>\r\n\t\t\t\tthis.signinService\r\n\t\t\t\t\t.whoAmI()\r\n\t\t\t\t\t.pipe(map(user => new SigninSecceed(user)), catchError(error => of(new SigninFailed(error))))\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t@Effect()\r\n\tSignin$ = this.actions$\r\n\t\t.ofType(SignInActionTypes.SIGNIN)\r\n\t\t.pipe(\r\n\t\t\tpluck(\"payload\"),\r\n\t\t\tswitchMap(payload =>\r\n\t\t\t\tthis.signinService\r\n\t\t\t\t\t.signin(payload)\r\n\t\t\t\t\t.pipe(map(user => new SigninSecceed(user)), catchError(error => of(new SigninFailed(error))))\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t@Effect()\r\n\tsignup$ = this.actions$\r\n\t\t.ofType(SignInActionTypes.SIGNUP)\r\n\t\t.pipe(\r\n\t\t\tpluck(\"payload\"),\r\n\t\t\tswitchMap(payload =>\r\n\t\t\t\tthis.signinService\r\n\t\t\t\t\t.signup(payload)\r\n\t\t\t\t\t.pipe(map(user => new SignupSecceed(user)), catchError(error => of(new SignupFailed(error))))\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t@Effect({ dispatch: false })\r\n\tsignupSucceed$ = this.actions$.ofType(SignInActionTypes.SIGNUP_SUCCEED).pipe(\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$.ofType(SignInActionTypes.SIGNIN_REQUIRED).pipe(\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$.ofType(SignInActionTypes.SIGNIN_SUCCEED).pipe(\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() AfterSigninFiled$ = this.actions$.ofType(SignInActionTypes.SIGNIN_FAILURE).map(() => new NewCaptcha());\r\n\r\n\t@Effect()\r\n\tDoSignout$ = this.actions$.ofType(SignInActionTypes.DO_SIGNOUT).pipe(\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$\r\n\t\t.ofType(SignInActionTypes.SIGNIN_REDIRECT)\r\n\t\t.pipe(tap(authed => this.router.navigate([\"auth/signin\"])));\r\n\r\n\t@Effect({ dispatch: false })\r\n\tredirectAfterSignout$ = this.actions$\r\n\t\t.ofType(SignInActionTypes.SIGNOUT)\r\n\t\t.pipe(\r\n\t\t\ttap(authed => this.router.navigate([this.configurationService.config$.getValue().afterSignoutRedirectTo]))\r\n\t\t);\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { of } from \"rxjs/observable/of\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/mergeMap\";\r\nimport { Action } from \"@ngrx/store\";\r\nimport { Actions, Effect } 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>, private router: Router) {}\r\n\r\n\t@Effect()\r\n\tdispachProgressingStarted$ = this.actions$\r\n\t\t.ofType(SignInActionTypes.SIGNIN)\r\n\t\t.pipe(map(() => new ProgressingStarted()));\r\n\r\n\t@Effect()\r\n\tdispachProgressingFinished$ = this.actions$\r\n\t\t.ofType(SignInActionTypes.SIGNIN_FAILURE, SignInActionTypes.SIGNIN_SUCCEED)\r\n\t\t.pipe(map(() => new ProgressingFinished()));\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 { 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"]}
\No newline at end of file