UNPKG

59.8 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../node_modules/tslib/tslib.es6.js","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","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":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","UserModel","params","_this","Roles","keys","forEach","WHO_AM_I","SIGNUP","SIGNUP_SUCCEED","SIGNUP_FAILURE","SIGNIN","DO_SIGNOUT","SIGNOUT","SIGNIN_SUCCEED","SIGNIN_FAILURE","SIGNIN_REDIRECT","SIGNIN_REQUIRED","WhoAmIAction","type","SignInActionTypes","payload","SignupSecceed","SignupFailed","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","next","select","getAuthenticationModuleConfig","subscribe","storeConfig","Config","Injectable","args","providedIn","Inject","Store","ProgressingStarted","ProgressingFinished","NEW_CAPTCHA","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","Signin","emit","Component","template","Output","AuthenticationContainerComponent","SignupContainerComponent","signedUp$","validation","Signup","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","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","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":"60CA6BO,IAAIA,EAAW,WAQlB,OAPAA,EAAWC,OAAOC,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACOJ,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,IAE9E,OAAON,IAEKU,MAAMC,KAAMP,YAezB,SAASQ,EAAWC,EAAYC,EAAQC,EAAKC,GAChD,IAA2HC,EAAvHC,EAAId,UAAUC,OAAQc,EAAID,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOlB,OAAOsB,yBAAyBN,EAAQC,GAAOC,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAAST,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAId,EAAIW,EAAWR,OAAS,EAAGH,GAAK,EAAGA,KAASe,EAAIJ,EAAWX,MAAIiB,GAAKD,EAAI,EAAID,EAAEE,GAAKD,EAAI,EAAID,EAAEH,EAAQC,EAAKI,GAAKF,EAAEH,EAAQC,KAASI,GAChJ,OAAOD,EAAI,GAAKC,GAAKrB,OAAOyB,eAAeT,EAAQC,EAAKI,GAAIA,EAOzD,SAASK,EAAWC,EAAaC,GACpC,GAAuB,iBAAZL,SAAoD,mBAArBA,QAAQM,SAAyB,OAAON,QAAQM,SAASF,EAAaC,GChEpH,IAAAE,EAeC,SAAYC,GAAZ,IAAAC,EAAAnB,KAFAA,KAAAoB,MAAkB,GAGjBF,GACC/B,OAAOkC,KAAKH,GAAQI,SAAO,SAAClB,GACvBA,KAAOc,IAAQ,EAAcd,GAAOc,EAAOd,eCblDmB,SAAW,4BACXC,OAAS,iCACTC,eAAiB,mCACjBC,eAAiB,mCACjBC,OAAS,0BACTC,WAAa,8BACbC,QAAU,2BACVC,eAAiB,mCACjBC,eAAiB,mCACjBC,gBAAkB,oCAClBC,gBAAkB,qCAGnBC,EAAA,WACUlC,KAAAmC,KAAOC,EAAkBb,UAMnC,MAEC,SAAmBc,GAAArC,KAAAqC,QAAAA,EADVrC,KAAAmC,KAAOC,EAAkBZ,QAInC,IAAAc,EAEC,SAAmBD,GAAArC,KAAAqC,QAAAA,EADVrC,KAAAmC,KAAOC,EAAkBX,gBAInC,IAAAc,EAEC,SAAmBF,GAAArC,KAAAqC,QAAAA,EADVrC,KAAAmC,KAAOC,EAAkBV,gBAOnC,MAEC,SAAmBW,GAAArC,KAAAqC,QAAAA,EADVrC,KAAAmC,KAAOC,EAAkBT,QAInC,IAAAa,EAEC,SAAmBH,GAAArC,KAAAqC,QAAAA,EADVrC,KAAAmC,KAAOC,EAAkBN,gBAInC,IAAAW,EAEC,SAAmBJ,GAAArC,KAAAqC,QAAAA,EADVrC,KAAAmC,KAAOC,EAAkBL,gBAQnC,IAAAW,EAAA,WACU1C,KAAAmC,KAAOC,EAAkBR,YAGnC,IAAAe,EAAA,WACU3C,KAAAmC,KAAOC,EAAkBP,SAGnC,IAAAe,EAAA,WACU5C,KAAAmC,KAAOC,EAAkBH,qBCxCtBY,EAAoD,CAChEC,KAAM,cACNC,MAAO,CACNC,KAAM,SAEPC,OAAQ,kBACRC,UAAW,CACVC,QAAS,GACTC,cAAe,MACfC,OAAQ,GACRC,OAAQ,GACRC,OAAQ,IAETC,MAAO,CACNH,OAAQ,GACRC,OAAQ,IAETG,IAAK,CACJC,YAAY,EACZC,gBAAiB,0CACjBV,OAAQ,kCAETW,uBAAwB,IACxBC,gBAAiB,SAAAC,GAAS,OAAAC,EAAAA,IAAG,IAC7BC,YAAa,SAAAC,KACbC,eAAgB,SAAAD,GAAQ,OAAAA,IAGZE,EAAsB,IAAIC,EAAAA,eAA2C,gBC3DlFC,EAAA,WAoBC,SAAAA,EAAyCC,EAAyBC,GAAlE,IAAApD,EAAAnB,KAAkEA,KAAAuE,MAAAA,EAFlEvE,KAAAwE,QAAU,IAAIC,EAAAA,gBAAgBzE,KAAK0E,SAGlC1E,KAAK0E,QAAUvF,OAAOC,OAAO,GAAIyD,EAAuByB,GACxDtE,KAAKwE,QAAQG,KAAK3E,KAAK0E,SACvB1E,KAAKuE,MAAMK,OAAOC,EAAAA,+BAA+BC,WAAS,SAACC,GACrDA,IACL5D,EAAKuD,QAAUvF,OAAOC,OAAO,GAAI+B,EAAKuD,QAASK,EAAYC,QAC3D7D,EAAKqD,QAAQG,KAAKxD,EAAKuD,oBAXzBvF,OAAAyB,eAAIyD,EAAAzE,UAAA,SAAM,KAAV,WACC,OAAOI,KAAK0E,6DANbO,EAAAA,WAAUC,KAAA,CAAC,CACXC,WAAY,6EASCC,EAAAA,OAAMF,KAAA,CAACf,YAnBZkB,EAAAA,mJADT,OCQAC,EAAA,WACUtF,KAAAmC,KAAI,wCAEd,IAAAoD,EAAA,WACUvF,KAAAmC,KAAI,yCCRd,IAAaqD,EAAc,wBAQ3BC,EAAA,WACiBzF,KAAAmC,KAAOqD,OCIlBE,EAAc,qBAEpBC,EAAA,WAIC,SAAAA,EACSC,EACArB,EACAsB,EACAC,GAJT,IAAA3E,EAAAnB,KACSA,KAAA4F,KAAAA,EACA5F,KAAAuE,MAAAA,EACAvE,KAAA6F,qBAAAA,EACA7F,KAAA8F,SAAAA,EAERC,YAAU,WAAO,OAAA5E,EAAKoD,MAAMyB,SAAS,IAAI9D,KAAiB,YAG3DyD,EAAA/F,UAAAqG,OAAA,SAAOC,GAAP,IAAA/E,EAAAnB,KACC,OAAOA,KAAK6F,qBAAqBrB,QAAQ2B,KACxCC,EAAAA,QAAM,SAACC,GAAU,MAA2B,IAA3BA,EAAOnD,UAAUI,UAClCgD,EAAAA,KAAK,GACLC,EAAAA,WAAS,SAACF,GACT,OAAAlF,EAAKyE,KAAKY,KAA+BH,EAAO5C,IAAI4C,EAAOpD,QAAUoD,EAAOnD,UAAUI,OAAQ4C,MAE/FO,EAAAA,KAAG,SAACC,OACGzC,EAAY9E,OAAOC,OAAO,GAAIsH,EAASC,QAI7C,OAHI1C,EAAK2C,OACR3C,EAAK7C,MAAQ,CAAE6C,EAAK2C,OAEd3C,OAKV0B,EAAA/F,UAAAiH,OAAA,SAAOX,GAAP,IAAA/E,EAAAnB,KACC,OAAOA,KAAK6F,qBAAqBrB,QAAQ2B,KACxCC,EAAAA,QAAM,SAACC,GAAU,MAA2B,IAA3BA,EAAOnD,UAAUG,UAClCiD,EAAAA,KAAK,GACLC,EAAAA,WAAS,SAACF,GAAU,OAAAlF,EAAKyE,KAAKY,KAAUH,EAAO5C,IAAI4C,EAAOpD,QAAUoD,EAAOnD,UAAUG,OAAQ6C,MAC7FO,EAAAA,IAAIzG,KAAK6F,qBAAqBQ,OAAOnC,gBACrCuC,EAAAA,KAAG,SAACxC,GAIH,OAHIA,EAAK2C,OACR3C,EAAK7C,MAAQ,CAAE6C,EAAK2C,OAEd3C,KAER6C,EAAAA,KAAG,SAAC7C,GAC0C,cAAzC9C,EAAK0E,qBAAqBQ,OAAOvD,MACpCiE,EAAAA,OAAOC,UAAUtB,EAAauB,KAAKC,UAAUjD,GAAO9C,EAAK0E,qBAAqBQ,OAAOtD,MAAMC,SAE7F8D,EAAAA,KAAG,SAAC7C,GAAQ,OAAA9C,EAAK0E,qBAAqBQ,OAAOrC,YAAYC,QAK3D0B,EAAA/F,UAAAuH,QAAA,eACOd,EAASrG,KAAK6F,qBAAqBQ,OACnCe,EAAcH,KAAKI,MAAMN,EAAAA,OAAOO,UAAU5B,IAE1C6B,EAAWC,EAAAA,eAAenB,EAAO5C,IAAI4C,EAAOpD,QAAUoD,EAAOnD,UAAUC,QAASiE,GAChFK,EAASpB,EAAOnD,UAAUE,eAAiB,MAMjD,OAJqE,IAAjE,CAAE,MAAO,MAAO,OAAQ,QAAS,UAAWsE,QAAQD,IACvDE,EAAAA,WAAcF,EAAM,gFAGdzH,KAAK4F,KAAK6B,GAAQF,GAAUpB,KAClCW,EAAAA,KAAG,WACFC,EAAAA,OAAOa,aAAalC,QAKvBC,EAAA/F,UAAA2D,OAAA,WAAA,IAAApC,EAAAnB,KAEKiE,EAAO,CAAE4D,MAAO,MACpB,GAA6C,cAAzC7H,KAAK6F,qBAAqBQ,OAAOvD,KACpC,IACCmB,EAAOgD,KAAKI,MAAMN,EAAAA,OAAOO,UAAU5B,IAClC,MAAOoC,IAEV,OAAO9H,KAAK6F,qBAAqBrB,QAAQ2B,KACxCC,EAAAA,QAAM,SAACC,GAAU,MAA2B,IAA3BA,EAAOnD,UAAUK,UAClC+C,EAAAA,KAAK,GACLC,EAAAA,WAAS,SAACF,GACT,OAAAlF,EAAKyE,KAAKmC,IAAIP,EAAAA,eAAenB,EAAO5C,IAAI4C,EAAOpD,QAAUoD,EAAOnD,UAAUK,OAAQ,CAAEU,KAAIA,8BAjF3FgB,EAAAA,WAAUC,KAAA,CAAC,CACXC,WAAY,oDAnBJ6C,EAAAA,kBAKA3C,EAAAA,aAMAhB,SATA4D,EAAAA,4MAgBT,GCnBA,IAAAC,EAAA,WAmBC,SAAAA,EAAoBrC,EAAkEtB,GAAlEvE,KAAA6F,qBAAAA,EAAkE7F,KAAAuE,MAAAA,EAD5EvE,KAAAmI,UAAY,IAAIC,EAAAA,aAEzBpI,KAAKqI,QAAUrI,KAAK6F,qBAAqBrB,QAAQiC,KAAG,SAACJ,GAAU,OAAAA,EAAO7C,MAAMH,UAO9E,OAJC6E,EAAAtI,UAAAyD,OAAA,SAAOiF,GACNtI,KAAKuE,MAAMyB,SAAS,IAAIuC,EAAOD,IAC/BtI,KAAKmI,UAAUK,MAAK,wBAjBrBC,EAAAA,UAASvD,KAAA,CAAC,CACVwD,SAAU,iMAJFrE,SAHAgB,EAAAA,4CAgBPsD,EAAAA,UASFT,EA3BA,GCAA,IAAAU,EAAA,WAEA,SAAAA,KAK+C,2BAL9CH,EAAAA,UAASvD,KAAA,CAAC,CACVwD,SAAU,4DAIoCE,EAP/C,GCAAC,EAAA,WAsBC,SAAAA,EACShD,EACAtB,EACAuB,GAFA9F,KAAA6F,qBAAAA,EACA7F,KAAAuE,MAAAA,EACAvE,KAAA8F,SAAAA,EAJC9F,KAAA8I,UAAY,IAAIV,EAAAA,aAMzBpI,KAAKqI,QAAUrI,KAAK6F,qBAAqBrB,QAAQiC,KAAG,SAACJ,GAAU,OAAAA,EAAO7C,MAAMF,UAiB9E,OAdCuF,EAAAjJ,UAAAqG,OAAA,SAAOqC,GAAP,IAAAnH,EAAAnB,KACCA,KAAK6F,qBAAqBrB,QACxB2B,KAAKG,EAAAA,KAAK,GAAIC,EAAAA,WAAS,SAACF,GAAU,OAAAA,EAAOxC,gBAAgByE,OACzDxD,WAAS,SAACiE,GACNA,GACH5H,EAAKoD,MAAMyB,SAAS,IAAIgD,EAAOV,IAC/BnH,EAAK2H,UAAUN,MAAK,IAEpBrH,EAAK2E,SAASmD,KAAK,sBAAuB,KAAM,CAC/CC,SAAU,+BA5BfT,EAAAA,UAASvD,KAAA,CAAC,CACVwD,SAAU,iMANFrE,SAJAgB,EAAAA,aAMA4C,EAAAA,kDAaPU,EAAAA,UAuBFE,EA5CA,OCQMM,EAAiB,CACtB,CACCC,KAAM,OACNC,UAAWT,EACXU,SAAU,CACT,CACCF,KAAM,SAENC,UAAWnB,GAEZ,CACCkB,KAAM,SAENC,UAAWR,MAMFU,EAAmDC,EAAAA,aAAaC,SAASN,GC3BtFO,EAAA,WAmBC,SAAAA,IATU1J,KAAA2J,SAAW,IAAIvB,EAAAA,aAU1B,OANCsB,EAAA9J,UAAAiH,OAAA,SAAO+C,GACDA,EAAUC,OACf7J,KAAK2J,SAASnB,KAAKoB,EAAU9F,4BAZ9B2E,EAAAA,UAASvD,KAAA,CAAC,CACV4E,SAAU,cACVpB,SAAA,icAICC,EAAAA,uBAEAoB,EAAAA,SAQFL,EApBA,GCWA,IAAAM,EAAA,WAEC,SAAAA,EAAoBnE,GAAA7F,KAAA6F,qBAAAA,EAMrB,OALCmE,EAAApK,UAAAqK,UAAA,SAAUC,EAA2BvF,GAGpC,OADA,EAAiBwF,iBAAkB,EAC5BxF,EAAKyF,OAAOF,wBANpBjF,EAAAA,sDAHQZ,KAWT2F,EARA,GCNA,IAAAK,EAAA,WAYC,SAAAA,EACSC,EACA/F,GADAvE,KAAAsK,OAAAA,EACAtK,KAAAuE,MAAAA,EAmBV,OAjBC8F,EAAAzK,UAAAqK,UAAA,SAAUC,EAA2BvF,GAArC,IAAAxD,EAAAnB,KACC,OAAO2E,EACLyF,OAAOF,GACPzD,KAAG,SAAE8D,GACL,GAAIA,aAAiBC,EAAAA,aAAc,OAAOD,KAE1CE,OAAK,SAACC,GACN,OAAMA,aAAeC,EAAAA,kBACH,KAAdD,EAAIE,OAAsBjD,EAAAA,WAAW+C,GACrCA,EAAIG,IAAIC,SAAS,UAAkBnD,EAAAA,WAAW+C,GAC9CA,EAAIG,IAAIC,SAAS,wBAAgCnD,EAAAA,WAAW+C,IAEhEvJ,EAAKoD,MAAMyB,SAAS,IAAIrD,GAEjBgF,EAAAA,WAAW,iBAP8BA,EAAAA,WAAW+C,2BAb9DzF,EAAAA,sDAHQ8F,EAAAA,cAJA1F,EAAAA,SA8BTgF,EAjCA,GCGA,IAAaW,EAAsB,CAClCC,UAAU,EACVhH,KAAM,IAAIhD,EAAU,CAAEiK,GAAI,KAG3B,SAAgBC,EAAYC,EAAsBC,GACjD,YAD2B,IAAAD,IAAAA,EAAAJ,GACnBK,EAAOlJ,MACd,KAAKC,EAAkBN,eACtB,OAAA5C,EAAA,GACIkM,EAAK,CACRH,UAAU,EACVhH,KAAMoH,EAAOhJ,UAIf,KAAKD,EAAkBP,QACtB,OAAA3C,EAAA,GACIkM,EAAK,CACRH,UAAU,EACVhH,KAAM,IAAIhD,IAIZ,QACC,OAAOmK,GAMV,IACaE,EAAO,SAAIF,GAAiB,OAAAA,EAAMnH,MCvB/C,IAAasH,EAAyB,CACrCC,WAAYC,GAMAC,EAA4BC,EAAAA,sBAA2C,kBAEvEC,GAAkBC,EAAAA,eAC9BH,GACA,SAACN,GAA+B,OAAAA,EAAMI,cAG1BM,GAAcD,EAAAA,eAAeD,IDQlB,SAAIR,GAAiB,OAAAA,EAAMH,YCPtCK,GAAUO,EAAAA,eAAeD,GAAiBG,iBCJtD,SAAAC,EACSC,EACA3B,EACD4B,EACArG,EACCsG,GALT,IAAAhL,EAAAnB,KACSA,KAAAiM,SAAAA,EACAjM,KAAAsK,OAAAA,EACDtK,KAAAkM,cAAAA,EACAlM,KAAA6F,qBAAAA,EACC7F,KAAAmM,YAAAA,EAITnM,KAAAoM,QAAUpM,KAAKiM,SAAS9F,KACvBkG,EAAAA,OAAOjK,EAAkBb,UACzBgF,EAAAA,WAAS,WACR,OAAApF,EAAK+K,cACH3I,SACA4C,KAAKM,EAAAA,KAAG,SAACxC,GAAQ,OAAA,IAAIzB,EAAcyB,MAAQqI,EAAAA,YAAU,SAACxE,GAAS,OAAA/D,EAAAA,GAAG,IAAItB,EAAaqF,YAKvF9H,KAAAuM,QAAUvM,KAAKiM,SAAS9F,KACvBkG,EAAAA,OAAOjK,EAAkBT,QACzB6K,EAAAA,MAAM,WACNjG,EAAAA,WAAS,SAAClE,GACT,OAAAlB,EAAK+K,cACHrF,OAAOxE,GACP8D,KAAKM,EAAAA,KAAG,SAACxC,GAAQ,OAAA,IAAIzB,EAAcyB,MAAQqI,EAAAA,YAAU,SAACxE,GAAS,OAAA/D,EAAAA,GAAG,IAAItB,EAAaqF,YAKvF9H,KAAAyM,QAAUzM,KAAKiM,SAAS9F,KACvBkG,EAAAA,OAAOjK,EAAkBZ,QACzBgL,EAAAA,MAAM,WACNjG,EAAAA,WAAS,SAAClE,GACT,OAAAlB,EAAK+K,cACHjG,OAAO5D,GACP8D,KAAKM,EAAAA,KAAG,SAACxC,GAAQ,OAAA,IAAI3B,EAAc2B,MAAQqI,EAAAA,YAAU,SAACxE,GAAS,OAAA/D,EAAAA,GAAG,IAAIxB,EAAauF,YAKvF9H,KAAA0M,eAAiB1M,KAAKiM,SAAS9F,KAC9BkG,EAAAA,OAAOjK,EAAkBX,gBACzBqF,EAAAA,KAAG,WAEF3F,EAAKmJ,OAAOqC,SAAS,CAAE,oBAKzB3M,KAAA4M,gBAAkB5M,KAAKiM,SAAS9F,KAC/BkG,EAAAA,OAAOjK,EAAkBH,iBACzB6E,EAAAA,KAAG,SAAE+F,OACEC,EAAuB3L,EAAKgL,YAAYlD,KAAKf,EAA0B,CAC5E6E,WAAY,uBAKb,OAHAD,EAAqBE,SAAS7E,UAAUrD,WAAS,WAChDgI,EAAqBG,aAEfH,MAKT9M,KAAAkN,eAAiBlN,KAAKiM,SAAS9F,KAC9BkG,EAAAA,OAAOjK,EAAkBN,gBACzBgF,EAAAA,KAAG,SAAE+F,GACAM,SAASC,SAAS1F,QAAQ,WAAa,GAAGvG,EAAKmJ,OAAOqC,SAAS,CAAE,UAKvE3M,KAAAqN,kBAAoBrN,KAAKiM,SAAS9F,KAAKkG,EAAAA,OAAOjK,EAAkBL,gBAAiB0E,EAAAA,KAAG,WAAO,OAAA,IAAIhB,MAG/FzF,KAAAsN,WAAatN,KAAKiM,SAAS9F,KAC1BkG,EAAAA,OAAOjK,EAAkBR,YACzB2E,EAAAA,WAAS,SAACsG,GACT,OAAA1L,EAAK+K,cAAc/E,UAAUhB,KAC5BM,EAAAA,KAAG,WAAO,OAAA,IAAI9D,KACd2J,EAAAA,YAAU,SAAC5B,GAGV,OAAO3G,EAAAA,GAAG2G,WAUd1K,KAAAuN,qBAAuBvN,KAAKiM,SAAS9F,KACpCkG,EAAAA,OAAOjK,EAAkBJ,iBACzB8E,EAAAA,KAAG,SAAC0G,GAAU,OAAArM,EAAKmJ,OAAOqC,SAAS,CAAE,oBAItC3M,KAAAyN,sBAAwBzN,KAAKiM,SAAS9F,KACrCkG,EAAAA,OAAOjK,EAAkBP,SACzBiF,EAAAA,KAAG,SAAC0G,GAAU,OAAArM,EAAKmJ,OAAOqC,SAAS,CAAExL,EAAK0E,qBAAqBrB,QAAQkJ,WAAW9J,6BAEpF,2BAzGCqB,EAAAA,sDArBQ0I,EAAAA,eAHA5C,EAAAA,cAkBApF,SAIAtB,SADAuJ,EAAAA,kBAcRC,EAAAA,CADCC,EAAAA,gEAWDD,EAAAA,CADCC,EAAAA,gEAYDD,EAAAA,CADCC,EAAAA,gEAYDD,EAAAA,CADCC,EAAAA,OAAO,CAAE9H,UAAU,kEAUpB6H,EAAAA,CADCC,EAAAA,OAAO,CAAE9H,UAAU,mEAepB6H,EAAAA,CADCC,EAAAA,OAAO,CAAE9H,UAAU,kEASpB6H,EAAAA,CADCC,EAAAA,0EAIDD,EAAAA,CADCC,EAAAA,mEAmBDD,EAAAA,CADCC,EAAAA,OAAO,CAAE9H,UAAU,wEAOpB6H,EAAAA,CADCC,EAAAA,OAAO,CAAE9H,UAAU,yEAKrBgG,uBC1HC,SAAA+B,EAAoB9B,GAAAjM,KAAAiM,SAAAA,EAGpBjM,KAAAgO,2BAA6BhO,KAAKiM,SAAS9F,KAC1CkG,EAAAA,OAAOjK,EAAkBT,QACzB8E,EAAAA,KAAG,WAAO,OAAA,IAAInB,MAIftF,KAAAiO,4BAA8BjO,KAAKiM,SAAS9F,KAC3CkG,EAAAA,OAAOjK,EAAkBL,eAAgBK,EAAkBN,gBAC3D2E,EAAAA,KAAG,WAAO,OAAA,IAAIlB,MAEhB,2BAfCN,EAAAA,sDALQ0I,EAAAA,WAURE,EAAAA,CADCC,EAAAA,mFAODD,EAAAA,CADCC,EAAAA,oFAKFC,KCrBA,IAAAG,GAAA,WAmBC,SAAAA,IATUlO,KAAAmO,SAAW,IAAI/F,EAAAA,aAU1B,OANC8F,EAAAtO,UAAAqG,OAAA,SAAO2D,GACDA,EAAUC,OACf7J,KAAKmO,SAAS3F,KAAKoB,EAAU9F,4BAZ9B2E,EAAAA,UAASvD,KAAA,CAAC,CACV4E,SAAU,cACVpB,SAAA,icAICC,EAAAA,uBAEAoB,EAAAA,SAQFmE,EApBA,GCAA,IAAAE,GAAA,WASC,SAAAA,EAAoB7J,GAAAvE,KAAAuE,MAAAA,EAKrB,OAHC6J,EAAAxO,UAAAyO,YAAA,SAAYC,EAA+BlD,GAC1C,OAAOpL,KAAKuE,MAAMK,OAAOkH,IAAaxF,KAAK,GAAGG,KAAG,SAAC+G,GAAU,OAACA,0BAL9DvI,EAAAA,sDALQI,EAAAA,SAYT+I,EAdA,qBCkDA,SAAAG,KA2DA,OAnBQA,EAAAC,QAAP,SAAenI,GACd,YADc,IAAAA,IAAAA,EAAA,IACP,CACNoI,SAAUC,GACVC,UAAW,CACV,CAAEC,QAASzK,EAAqB0K,SAAUxI,GAC1C,CACCuI,QAASE,EAAAA,kBACTC,SAAU1E,EACV2E,OAAO,GAER,CACCJ,QAASE,EAAAA,kBACTC,SAAU/E,EACVgF,OAAO,GAERrJ,yBAvDHsJ,EAAAA,SAAQ/J,KAAA,CAAC,CACTgK,QAAS,CACRC,EAAAA,aACA3F,EAAAA,aACA4F,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,CACbxI,EACAwB,EACAd,EACAC,EACAqF,IAEDyC,gBAAiB,CAACzI,GAClByG,UAAW,CAACP,IACZwC,QAAS,OAsBVrC,mBAWC,SAAAG,IACC,OAAcmC,WAAa,OAAcA,YAAc,GACvD,OAAcA,WAAWC,eAAiB,SAE5C,2BAbC7B,EAAAA,SAAQ/J,KAAA,CAAC,CACTgK,QAAS,CACR6B,EAAAA,YAAYC,WAAW,iBAAkBzF,GACzC0F,EAAAA,cAAcD,WAAW,CAAChF,GAAe+B,KACzCxE,EACAgF,8CAQFG","sourcesContent":["/*! *****************************************************************************\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","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","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 = \"8.0.10\";\r\n\t}\r\n}\r\n"]}
\No newline at end of file