UNPKG

78.1 kBSource Map (JSON)View Raw
1{"version":3,"file":"soushians-user.js.map","sources":["ng://@soushians/user/lib/models/user.model.ts","ng://@soushians/user/lib/user.config.ts","ng://@soushians/user/lib/services/user-configuration.service.ts","ng://@soushians/user/lib/profile-view/profile-view.actions.ts","ng://@soushians/user/lib/dashboard/user.actions.ts","ng://@soushians/user/lib/dashboard/account.reducer.ts","ng://@soushians/user/lib/models/profile-view.model.ts","ng://@soushians/user/lib/models/profile-edit.model.ts","ng://@soushians/user/lib/services/user.service.ts","ng://@soushians/user/lib/profile-edit/edit-profile.actions.ts","ng://@soushians/user/lib/profile-edit/edit-profile.effects.ts","ng://@soushians/user/lib/profile-view/profile-view.effects.ts","ng://@soushians/user/lib/feature/feature.effects.ts","ng://@soushians/user/lib/reset-password/reset-password-request.actions.ts","ng://@soushians/user/lib/reset-password/reset-password-request.reducer.ts","ng://@soushians/user/lib/change-password/change-password.actions.ts","ng://@soushians/user/lib/change-password/change-password.reducer.ts","ng://@soushians/user/lib/profile-edit/edit-profile.reducer.ts","ng://@soushians/user/lib/search-account/search.actions.ts","ng://@soushians/user/lib/search-account/search.reducer.ts","ng://@soushians/user/lib/user.reducers.ts","ng://@soushians/user/lib/search-account/search/search.component.ts","ng://@soushians/user/lib/change-password/change-password/change-password.component.ts","ng://@soushians/user/lib/profile-edit/profile-edit/profile-edit.component.ts","ng://@soushians/user/lib/dashboard/dashboard-links/dashboard-links.component.ts","ng://@soushians/user/lib/reset-password/reset-password-request/reset-password-request.component.ts","ng://@soushians/user/lib/feature/feature-container/feature-container.component.ts","ng://@soushians/user/lib/models/change-password.model.ts","ng://@soushians/user/lib/change-password/change-password-container/change-password-container.component.ts","ng://@soushians/user/lib/profile-edit/profile-edit-container/profile-edit-container.component.ts","ng://@soushians/user/lib/dashboard/dashboard-container/dashboard.component.ts","ng://@soushians/user/lib/profile-view/profile/profile.component.ts","ng://@soushians/user/lib/profile-view/profile-container/profile-container.component.ts","ng://@soushians/user/lib/user.module.ts","ng://@soushians/user/lib/user.routing-module.ts","ng://@soushians/user/lib/models/user-outlets.enum.ts","ng://@soushians/user/lib/services/user.facade-service.ts"],"sourcesContent":["export class UserModel {\r\n\t_id: string;\r\n\t// FirstName: string;\r\n\t// LastName: string;\r\n\t// Username: string;\r\n\tDisplayName: string;\r\n\t// Username: 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\tGroups: string[];\r\n\tconstructor() {\r\n\t\tthis.Roles = [];\r\n\t\tthis.Groups = [];\r\n\t}\r\n}\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { UserModel } from \"./models/user.model\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\nexport interface UserModuleConfig {\r\n\tserver?: string;\r\n\tenv?: {\r\n\t\tproduction: boolean;\r\n\t\tfrontend_server: string;\r\n\t\tserver: string;\r\n\t};\r\n\tendpoints?: {\r\n\t\t// resetPasswordRequest: string;\r\n\t\tchangePassword?: string;\r\n\t\teditProfile?: string;\r\n\t\tgetAccountInfo?: string;\r\n\t\tprofileInformation?: string;\r\n\t\t// resetPassword: string;\r\n\t};\r\n\tforms?: {\r\n\t\tprofile_edit: string;\r\n\t};\r\n\tdashboardLinks?: {\r\n\t\troute: string;\r\n\t\ticon: string;\r\n\t\ttitle: string;\r\n\t}[];\r\n\tresponseToUserInfo?: (user: Observable<any>) => Observable<UserModel>;\r\n\tmapUserDisplayName?: (user: Observable<any>) => Observable<string>;\r\n}\r\n\r\nexport const MODULE_DEFAULT_CONFIG: UserModuleConfig = {\r\n\tserver: \"frontend_server\",\r\n\tenv: {\r\n\t\tproduction: false,\r\n\t\tfrontend_server: \"user/module/frontend/server/did/not/set\",\r\n\t\tserver: \"user/module/server/did/not/set\"\r\n\t},\r\n\tendpoints: {\r\n\t\t// resetPasswordRequest: '',\r\n\t\tchangePassword: \"\",\r\n\t\teditProfile: \"\",\r\n\t\tgetAccountInfo: \"\",\r\n\t\tprofileInformation: \"\"\r\n\t\t// resetPassword: '',\r\n\t},\r\n\tforms: {\r\n\t\tprofile_edit: \"\"\r\n\t},\r\n\tdashboardLinks: [],\r\n\tresponseToUserInfo: user$ => user$,\r\n\tmapUserDisplayName: user$ => user$.pipe(map(user => user.Username))\r\n};\r\n\r\nexport const MODULE_CONFIG_TOKEN = new InjectionToken<UserModuleConfig>(\"UserModuleConfig\");\r\n","import { Injectable, Inject } from \"@angular/core\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { BehaviorSubject } from \"rxjs/BehaviorSubject\";\r\n\r\nimport { getUserModuleConfig } from \"@soushians/config\";\r\n\r\nimport { UserModuleConfig, MODULE_CONFIG_TOKEN, MODULE_DEFAULT_CONFIG } from \"../user.config\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\"\r\n})\r\nexport class UserConfigurationService {\r\n\tprivate _config: UserModuleConfig;\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, private store: Store<any>) {\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(getUserModuleConfig).subscribe(userConfig => {\r\n\t\t\tif (!userConfig) return;\r\n\t\t\tthis._config = Object.assign({}, this._config, userConfig.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\nimport { ProfileViewModel } from \"../models/profile-view.model\";\r\n\r\nexport enum ProfileViewActionTypes {\r\n\tGET_PROFILE = \"[USER][PROFILE] GET_PROFILE\",\r\n\tGET_PROFILE_START = \"[USER][PROFILE] GET_PROFILE_START\",\r\n\tGET_PROFILE_SUCCEED = \"[USER][PROFILE] GET_PROFILE_SUCCEED\",\r\n\tGET_PROFILE_FAILED = \"[USER][PROFILE] GET_PROFILE_FAILED\"\r\n}\r\n\r\nexport class GetProfile implements Action {\r\n\treadonly type = ProfileViewActionTypes.GET_PROFILE;\r\n}\r\nexport class GetProfileStart implements Action {\r\n\treadonly type = ProfileViewActionTypes.GET_PROFILE_START;\r\n}\r\nexport class GetProfileSucceed implements Action {\r\n\treadonly type = ProfileViewActionTypes.GET_PROFILE_SUCCEED;\r\n\tconstructor(public payload: ProfileViewModel.Response) {}\r\n}\r\nexport class GetProfileFailed implements Action {\r\n\treadonly type = ProfileViewActionTypes.GET_PROFILE_FAILED;\r\n}\r\n\r\nexport type ProfileViewAction = GetProfile | GetProfileStart | GetProfileSucceed | GetProfileFailed;\r\n","import { Action } from \"@ngrx/store\";\r\n\r\nimport { UserModel } from \"../models/user.model\";\r\n\r\nexport enum UserActionTypes {\r\n\tUSER_SELECTED = \"[USER] USER_SELECTED\",\r\n\tREFRESH_USER_INFO = \"[USER] REFRESH_USER_INFO\"\r\n}\r\n\r\nexport class UserSelectedAction implements Action {\r\n\treadonly type = UserActionTypes.USER_SELECTED;\r\n\tconstructor(public payload: UserModel) {}\r\n}\r\n\r\nexport class RefreshUserInfoAction implements Action {\r\n\treadonly type = UserActionTypes.REFRESH_USER_INFO;\r\n\tconstructor(public payload: UserModel) {}\r\n}\r\n\r\nexport type UserAction = UserSelectedAction | RefreshUserInfoAction;\r\n","import { UserModel } from \"../models/user.model\";\r\nimport { UserAction, UserActionTypes } from \"./user.actions\";\r\n\r\nexport interface State {\r\n\tloaded: boolean;\r\n\tdata: UserModel;\r\n}\r\nexport const initialState: State = {\r\n\tloaded: false,\r\n\tdata: new UserModel()\r\n};\r\n\r\nexport function userReducer(state = initialState, action: UserAction): State {\r\n\tswitch (action.type) {\r\n\t\tcase UserActionTypes.USER_SELECTED: {\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tloaded: true,\r\n\t\t\t\tdata: action.payload\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase UserActionTypes.REFRESH_USER_INFO: {\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tloaded: true,\r\n\t\t\t\tdata: action.payload\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\nexport const getAccountInfo = (state: State) => state.data;\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpRequestBaseModel } from \"@soushians/shared\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { UserModel } from \"./user.model\";\r\n\r\nexport namespace ProfileViewModel {\r\n\texport class Request implements HttpRequestBaseModel<Request> {\r\n\t\tEmail: string;\r\n\r\n\t\tconstructor(initValue?: ProfileViewModel.Request) {\r\n\t\t\tObject.keys(initValue).forEach(key => (this[key] = initValue[key]));\r\n\t\t}\r\n\r\n\t\tgetRequestBody() {\r\n\t\t\treturn {};\r\n\t\t}\r\n\r\n\t\tstatic get formGroup() {\r\n\t\t\treturn new FormGroup({\r\n\t\t\t\tUsername: new FormControl(\"\", [ Validators.minLength(8), Validators.required ])\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\texport class Response extends UserModel {\r\n\t\tconstructor() {\r\n\t\t\tsuper();\r\n\t\t}\r\n\t}\r\n}\r\n","import { HttpRequestBaseModel, HttpResponseBaseModel } from \"@soushians/shared\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { UserModel } from \"./user.model\";\r\n\r\nexport namespace EditProfile_ApiModel {\r\n\texport class Request implements HttpRequestBaseModel<Request> {\r\n\t\tEmail: string;\r\n\t\tRoles: string[];\r\n\t\tGroups: string[];\r\n\r\n\t\tconstructor(initValue: Partial<Request> = {} as Request) {\r\n\t\t\tObject.keys(initValue).forEach(key => (this[key] = initValue[key]));\r\n\t\t}\r\n\r\n\t\tgetRequestBody() {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tstatic get formGroup() {\r\n\t\t\treturn new FormGroup({\r\n\t\t\t\tEmail: new FormControl(null, [ Validators.required ]),\r\n\t\t\t\tRoles: new FormControl(null, [ Validators.required ]),\r\n\t\t\t\tGroups: new FormControl(null, [ Validators.required ])\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\texport class Response implements HttpResponseBaseModel<Response> {\r\n\t\tResult: { User: UserModel };\r\n\t\tconstructor(initValue: Response = {} as Response) {\r\n\t\t\tObject.keys(initValue).forEach(key => (this[key] = initValue[key]));\r\n\t\t}\r\n\t\textractData() {\r\n\t\t\treturn this.Result.User;\r\n\t\t}\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map, filter, take, switchMap, combineLatest, catchError } from \"rxjs/operators\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport { stringTemplate } from \"@soushians/shared\";\r\nimport { getUser } from \"@soushians/authentication\";\r\n\r\nimport { UserConfigurationService } from \"./user-configuration.service\";\r\nimport { GetProfile } from \"../profile-view/profile-view.actions\";\r\nimport { getAccountInfo } from \"../dashboard/account.reducer\";\r\nimport { UserModuleConfig } from \"../user.config\";\r\nimport { ProfileViewModel } from \"../models/profile-view.model\";\r\nimport { UserModel } from \"../models/user.model\";\r\nimport { EditProfile_ApiModel } from \"../models/profile-edit.model\";\r\nimport { of } from \"rxjs\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\"\r\n})\r\nexport class UserService {\r\n\tconfig: UserModuleConfig;\r\n\tconstructor(\r\n\t\tprivate http: HttpClient,\r\n\t\tprivate store: Store<any>,\r\n\t\tprivate configurationService: UserConfigurationService\r\n\t) {\r\n\t\tthis.configurationService.config$.subscribe(config => (this.config = config));\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.store.dispatch(new GetProfile());\r\n\t\t}, 999);\r\n\t}\r\n\r\n\tgetAccountInfo(): Observable<ProfileViewModel.Response> {\r\n\t\treturn this.configurationService.config$.pipe(\r\n\t\t\tfilter(config => config.endpoints.profileInformation != \"\"),\r\n\t\t\ttake(1),\r\n\t\t\tcombineLatest(this.store.select(getUser)),\r\n\t\t\tfilter(([config, user]: [UserModuleConfig, any]) => user != undefined),\r\n\t\t\tswitchMap(([config, user]: [UserModuleConfig, any]) => {\r\n\t\t\t\treturn this.http\r\n\t\t\t\t\t.get<any>(\r\n\t\t\t\t\t\tstringTemplate(config.env[config.server] + config.endpoints.profileInformation, {\r\n\t\t\t\t\t\t\tuser: user || {}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.let(config.responseToUserInfo)\r\n\t\t\t\t\t.pipe(\r\n\t\t\t\t\t\tmap((response: UserModel) => {\r\n\t\t\t\t\t\t\tconst _user: any = Object.assign({}, response);\r\n\t\t\t\t\t\t\tif (_user.Role) {\r\n\t\t\t\t\t\t\t\t_user.Roles = [_user.Role];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn _user;\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tcatchError(err => of(false))\r\n\t\t\t\t\t);\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\teditProfile(data: EditProfile_ApiModel.Request): Observable<UserModel> {\r\n\t\tconst model = new EditProfile_ApiModel.Request(data);\r\n\t\treturn this.http\r\n\t\t\t.put<EditProfile_ApiModel.Response>(\r\n\t\t\t\tstringTemplate(this.config.env[this.config.server] + this.config.endpoints.editProfile, model),\r\n\t\t\t\tmodel.getRequestBody()\r\n\t\t\t)\r\n\t\t\t.pipe(map(response => new EditProfile_ApiModel.Response(response).extractData()));\r\n\t}\r\n\t// TODO: remove\r\n\tgetInfo(data: ProfileViewModel.Request): Observable<any> {\r\n\t\tconst model = new ProfileViewModel.Request(data);\r\n\r\n\t\treturn this.http\r\n\t\t\t.get<ProfileViewModel.Response>(\r\n\t\t\t\tstringTemplate(this.config.env[this.config.server] + this.config.endpoints.getAccountInfo, model)\r\n\t\t\t)\r\n\t\t\t.pipe(map(response => response));\r\n\t}\r\n\r\n\tis_role(role: string): Observable<boolean> {\r\n\t\treturn this.store\r\n\t\t\t.select(getAccountInfo)\r\n\t\t\t.pipe(filter(user => user && user.Roles != undefined), take(1), map(user => user.Roles.indexOf(role) > -1));\r\n\t}\r\n}\r\n","import { Action } from \"@ngrx/store\";\r\n\r\nimport { UserModel } from \"../models/user.model\";\r\nimport { EditProfile_ApiModel } from \"../models/profile-edit.model\";\r\n\r\nexport enum EditProfileActionTypes {\r\n\tEDIT_PROFILE = \"[USER][PASSWORD] EDIT_PROFILE\",\r\n\tEDIT_PROFILE_START = \"[USER][PASSWORD] EDIT_PROFILE_START\",\r\n\tEDIT_PROFILE_SUCCEED = \"[USER][PASSWORD] EDIT_PROFILE_SUCCEED\",\r\n\tEDIT_PROFILE_FAILED = \"[USER][PASSWORD] EDIT_PROFILE_FAILED\"\r\n}\r\n\r\nexport class EditProfile implements Action {\r\n\treadonly type = EditProfileActionTypes.EDIT_PROFILE;\r\n\tconstructor(public payload: EditProfile_ApiModel.Request) {}\r\n}\r\nexport class EditProfileStart implements Action {\r\n\treadonly type = EditProfileActionTypes.EDIT_PROFILE_START;\r\n\tconstructor(public payload: EditProfile_ApiModel.Request) {}\r\n}\r\nexport class EditProfileSucceed implements Action {\r\n\treadonly type = EditProfileActionTypes.EDIT_PROFILE_SUCCEED;\r\n\tconstructor(public payload: UserModel) {}\r\n}\r\nexport class EditProfileFailed implements Action {\r\n\treadonly type = EditProfileActionTypes.EDIT_PROFILE_FAILED;\r\n}\r\n\r\nexport type EditProfileAction = EditProfile | EditProfileStart | EditProfileSucceed | EditProfileFailed;\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Action } from \"@ngrx/store\";\r\nimport { Actions, Effect } from \"@ngrx/effects\";\r\nimport { of } from \"rxjs\";\r\nimport { map, catchError, switchMap } from \"rxjs/operators\";\r\n\r\nimport { UserService } from \"../services/user.service\";\r\nimport { EditProfile_ApiModel } from \"../models/profile-edit.model\";\r\nimport {\r\n\tEditProfileActionTypes,\r\n\tEditProfileStart,\r\n\tEditProfileSucceed,\r\n\tEditProfileFailed\r\n} from \"./edit-profile.actions\";\r\nimport { GetProfile } from \"../profile-view/profile-view.actions\";\r\n\r\n@Injectable()\r\nexport class EditProfileEffects {\r\n\tconstructor(private actions$: Actions<any>, private router: Router, private service: UserService) {}\r\n\r\n\t@Effect()\r\n\tEditProfileRequest$ = this.actions$\r\n\t\t.ofType(EditProfileActionTypes.EDIT_PROFILE)\r\n\t\t.pipe(map(action => action.payload), map(data => new EditProfileStart(data)));\r\n\r\n\t@Effect()\r\n\tRequestEditProfileLink$ = this.actions$\r\n\t\t.ofType(EditProfileActionTypes.EDIT_PROFILE_START)\r\n\t\t.pipe(\r\n\t\t\tmap(action => action.payload),\r\n\t\t\tswitchMap((data: EditProfile_ApiModel.Request) => this.service.editProfile(data)),\r\n\t\t\tmap(res => new EditProfileSucceed(res)),\r\n\t\t\tcatchError(() => of(new EditProfileFailed()))\r\n\t\t);\r\n\t// .switchMap((data: EditProfile_ApiModel.Request) => {\r\n\t// \treturn this.service\r\n\t// \t\t.editProfile(data)\r\n\t// \t\t.map((res) => new EditProfileSucceed(res))\r\n\t// \t\t.catch(() => of(new EditProfileFailed()));\r\n\t// });\r\n\r\n\t@Effect()\r\n\tgoToView$ = this.actions$.ofType(EditProfileActionTypes.EDIT_PROFILE_SUCCEED).pipe(\r\n\t\tmap(() => {\r\n\t\t\tthis.router.navigate([ \"/user/profile\" ]);\r\n\t\t\treturn new GetProfile();\r\n\t\t})\r\n\t);\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Action } from \"@ngrx/store\";\r\nimport { Actions, Effect } from \"@ngrx/effects\";\r\nimport { of } from \"rxjs\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { map, switchMap, catchError } from \"rxjs/operators\";\r\n\r\nimport { UserService } from \"../services/user.service\";\r\nimport { EditProfile_ApiModel } from \"../models/profile-edit.model\";\r\nimport { ProfileViewActionTypes, GetProfileStart, GetProfileSucceed, GetProfileFailed } from \"./profile-view.actions\";\r\nimport { RefreshUserInfoAction } from \"../dashboard/user.actions\";\r\n\r\n@Injectable()\r\nexport class ProfileViewEffects {\r\n\tconstructor(private actions$: Actions<any>, private userService: UserService) { }\r\n\r\n\t@Effect()\r\n\tProfileRequest$ = this.actions$\r\n\t\t.ofType(ProfileViewActionTypes.GET_PROFILE)\r\n\t\t.pipe(map(action => action.payload), map(data => new GetProfileStart()));\r\n\r\n\t@Effect()\r\n\tgetProfile$ = this.actions$\r\n\t\t.ofType(ProfileViewActionTypes.GET_PROFILE_START)\r\n\t\t.pipe(\r\n\t\t\tmap(action => action.payload),\r\n\t\t\tswitchMap((data: EditProfile_ApiModel.Request) =>\r\n\t\t\t\tthis.userService\r\n\t\t\t\t\t.getAccountInfo()\r\n\t\t\t\t\t.pipe(map(res => new GetProfileSucceed(res)), catchError(() => of(new GetProfileFailed())))\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t@Effect()\r\n\trefreshUserInfo$ = this.actions$\r\n\t\t.ofType(ProfileViewActionTypes.GET_PROFILE_SUCCEED)\r\n\t\t.pipe(map(action => action.payload), map(data => new RefreshUserInfoAction(data)));\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\";\r\nimport { Action } from \"@ngrx/store\";\r\nimport { Actions, Effect } from \"@ngrx/effects\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\nimport { SignInActionTypes } from \"@soushians/authentication\";\r\n\r\nimport { UserService } from \"../services/user.service\";\r\nimport { GetProfile, GetProfileSucceed } from \"../profile-view/profile-view.actions\";\r\nimport { RefreshUserInfoAction } from \"../dashboard/user.actions\";\r\nimport { UserModel } from \"../models/user.model\";\r\n\r\n@Injectable()\r\nexport class UserEffects {\r\n\tconstructor(private actions$: Actions<any>, private router: Router, private service: UserService) {}\r\n\r\n\t// @Effect()\r\n\t// updateProfileInformation$ = this.actions$.ofType(SignInActionTypes.SIGNIN_SUCCEED).pipe(\r\n\t// \tmap(action => action.payload),\r\n\t// \tmap(user => {\r\n\t// \t\treturn new GetProfileSucceed(user);\r\n\t// \t})\r\n\t// );\r\n\t@Effect()\r\n\tgetAccountInfo$ = this.actions$.ofType(SignInActionTypes.SIGNIN_SUCCEED).pipe(\r\n\t\tmap(() => {\r\n\t\t\treturn new GetProfile();\r\n\t\t})\r\n\t);\r\n\t@Effect()\r\n\tsignout$ = this.actions$\r\n\t\t.ofType(SignInActionTypes.SIGNOUT)\r\n\t\t.pipe(map(() => new RefreshUserInfoAction({} as UserModel)));\r\n}\r\n","import { Action } from \"@ngrx/store\";\r\n\r\nimport { ResetPasswordRequestModel } from \"../models/reset-password-request.model\";\r\n\r\nexport enum ResetPasswordRequestActionTypes {\r\n\tGET_RESET_PASSWORD_LINK = \"[USER][PASSWORD] GET_RESET_PASSWORD_LINK\",\r\n\tRESET_PASSWORD_LINK_REQUEST_START = \"[USER][PASSWORD] RESET_PASSWORD_LINK_REQUEST_START\",\r\n\tRESET_PASSWORD_LINK_REQUEST_SUCCEED = \"[USER][PASSWORD] RESET_PASSWORD_LINK_REQUEST_SUCCEED\",\r\n\tRESET_PASSWORD_LINK_REQUEST_FAILED = \"[USER][PASSWORD] RESET_PASSWORD_LINK_REQUEST_FAILED\",\r\n\tDISABLE_GET_LINK = \"[USER][PASSWORD] DISABLE_GET_LINK\",\r\n\tENABLE_GET_LINK = \"[USER][PASSWORD] ENABLE_GET_LINK\",\r\n\tMAXIMUM_TRY_HAPPEND = \"[USER][PASSWORD] MAXIMUM_TRY_HAPPEND\",\r\n\tPASSWORD_CHANGED_SUCCEED = \"[USER][PASSWORD] PASSWORD_CHANGED_SUCCEED\",\r\n\tPASSWORD_CHANGED_FAILED = \"[USER][PASSWORD] PASSWORD_CHANGED_FAILED\"\r\n}\r\n\r\nexport class GetResetPasswordLink implements Action {\r\n\treadonly type = ResetPasswordRequestActionTypes.GET_RESET_PASSWORD_LINK;\r\n\tconstructor(public payload: ResetPasswordRequestModel.Request) {}\r\n}\r\nexport class ResetPasswordLinkRequestStart implements Action {\r\n\treadonly type = ResetPasswordRequestActionTypes.RESET_PASSWORD_LINK_REQUEST_START;\r\n\tconstructor(public payload: ResetPasswordRequestModel.Request) {}\r\n}\r\nexport class ResetPasswordLinkRequestSucceed implements Action {\r\n\treadonly type = ResetPasswordRequestActionTypes.RESET_PASSWORD_LINK_REQUEST_SUCCEED;\r\n\tconstructor() {}\r\n}\r\nexport class ResetPasswordLinkRequestFailed implements Action {\r\n\treadonly type = ResetPasswordRequestActionTypes.RESET_PASSWORD_LINK_REQUEST_FAILED;\r\n\tconstructor() {}\r\n}\r\nexport class DisableGetLink implements Action {\r\n\treadonly type = ResetPasswordRequestActionTypes.DISABLE_GET_LINK;\r\n}\r\nexport class EnableGetLink implements Action {\r\n\treadonly type = ResetPasswordRequestActionTypes.ENABLE_GET_LINK;\r\n}\r\nexport class MaximumTryHappend implements Action {\r\n\treadonly type = ResetPasswordRequestActionTypes.MAXIMUM_TRY_HAPPEND;\r\n}\r\nexport class PasswordChangedSucceed implements Action {\r\n\treadonly type = ResetPasswordRequestActionTypes.PASSWORD_CHANGED_SUCCEED;\r\n}\r\nexport class PasswordChangedFailed implements Action {\r\n\treadonly type = ResetPasswordRequestActionTypes.PASSWORD_CHANGED_FAILED;\r\n\tconstructor(public payload: string) {}\r\n}\r\n\r\nexport type ResetPasswordRequestAction =\r\n\t| GetResetPasswordLink\r\n\t| ResetPasswordLinkRequestStart\r\n\t| ResetPasswordLinkRequestFailed\r\n\t| DisableGetLink\r\n\t| ResetPasswordLinkRequestSucceed\r\n\t| EnableGetLink\r\n\t| MaximumTryHappend\r\n\t| PasswordChangedSucceed\r\n\t| PasswordChangedFailed;\r\n","import { ResetPasswordRequestAction, ResetPasswordRequestActionTypes } from \"./reset-password-request.actions\";\r\n\r\nexport interface State {\r\n\tnumberOfRequested: number;\r\n\tlastRequestedTime: string;\r\n\tdisable: boolean;\r\n}\r\nexport const initialState: State = {\r\n\tnumberOfRequested: 0,\r\n\tlastRequestedTime: null,\r\n\tdisable: false\r\n};\r\nexport function reducer(state = initialState, action: ResetPasswordRequestAction): State {\r\n\tswitch (action.type) {\r\n\t\tcase ResetPasswordRequestActionTypes.GET_RESET_PASSWORD_LINK: {\r\n\t\t\treturn {\r\n\t\t\t\t...state\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase ResetPasswordRequestActionTypes.RESET_PASSWORD_LINK_REQUEST_START: {\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tnumberOfRequested: state.numberOfRequested + 1,\r\n\t\t\t\tlastRequestedTime: Date.now().toString()\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase ResetPasswordRequestActionTypes.RESET_PASSWORD_LINK_REQUEST_SUCCEED: {\r\n\t\t\treturn {\r\n\t\t\t\t...state\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase ResetPasswordRequestActionTypes.DISABLE_GET_LINK: {\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tdisable: true\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase ResetPasswordRequestActionTypes.ENABLE_GET_LINK: {\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tdisable: false\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\nexport var getNumberOfRequeseted = (state: State) => state.numberOfRequested;\r\nexport var getStatus = (state: State) => state.disable;\r\n","import { Action } from \"@ngrx/store\";\r\nimport { ChangePasswordModel } from \"../models/change-password.model\";\r\n\r\nexport enum ChangePasswordActionTypes {\r\n\tCHANGE_PASSWORD = \"[USER][PASSWORD] CHANGE_PASSWORD\",\r\n\tPASSWORD_CHANGED_START = \"[USER][PASSWORD] PASSWORD_CHANGED_START\",\r\n\tPASSWORD_CHANGED_SUCCEED = \"[USER][PASSWORD] PASSWORD_CHANGED_SUCCEED\",\r\n\tPASSWORD_CHANGED_FAILED = \"[USER][PASSWORD] PASSWORD_CHANGED_FAILED\"\r\n}\r\n\r\nexport class ChangePassword implements Action {\r\n\treadonly type = ChangePasswordActionTypes.CHANGE_PASSWORD;\r\n\tconstructor(public payload: ChangePasswordModel.Request) {}\r\n}\r\nexport class ChangePasswordStart implements Action {\r\n\treadonly type = ChangePasswordActionTypes.PASSWORD_CHANGED_START;\r\n\tconstructor(public payload: ChangePasswordModel.Request) {}\r\n}\r\nexport class ChangePasswordSucceed implements Action {\r\n\treadonly type = ChangePasswordActionTypes.PASSWORD_CHANGED_SUCCEED;\r\n\tconstructor(public payload: ChangePasswordModel.Response) {}\r\n}\r\nexport class ChangePasswordFailed implements Action {\r\n\treadonly type = ChangePasswordActionTypes.PASSWORD_CHANGED_FAILED;\r\n}\r\n\r\nexport type ChangePasswordAction = ChangePassword | ChangePasswordStart | ChangePasswordSucceed | ChangePasswordFailed;\r\n","import { responseStatusTypes } from \"@soushians/shared\";\r\nimport { ChangePasswordAction, ChangePasswordActionTypes } from \"./change-password.actions\";\r\n\r\nexport interface State {\r\n\tstatus: responseStatusTypes;\r\n}\r\nexport const initialState: State = {\r\n\tstatus: \"pristine\"\r\n};\r\nexport function reducer(state = initialState, action: ChangePasswordAction): State {\r\n\tswitch (action.type) {\r\n\t\tcase ChangePasswordActionTypes.CHANGE_PASSWORD: {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: \"dirty\"\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase ChangePasswordActionTypes.PASSWORD_CHANGED_START: {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: \"pending\"\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase ChangePasswordActionTypes.PASSWORD_CHANGED_SUCCEED: {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: \"succeed\"\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase ChangePasswordActionTypes.PASSWORD_CHANGED_FAILED: {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: \"failed\"\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tdefault: {\r\n\t\t\treturn initialState;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport var getStatus = (state: State) => state.status;\r\n","import { responseStatusTypes } from \"@soushians/shared\";\r\nimport { EditProfileAction, EditProfileActionTypes } from \"./edit-profile.actions\";\r\n\r\nexport interface State {\r\n\tstatus: responseStatusTypes;\r\n}\r\nexport const initialState: State = {\r\n\tstatus: \"pristine\"\r\n};\r\nexport function reducer(state = initialState, action: EditProfileAction): State {\r\n\tswitch (action.type) {\r\n\t\tcase EditProfileActionTypes.EDIT_PROFILE: {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: \"dirty\"\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase EditProfileActionTypes.EDIT_PROFILE_START: {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: \"pending\"\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase EditProfileActionTypes.EDIT_PROFILE_SUCCEED: {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: \"succeed\"\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase EditProfileActionTypes.EDIT_PROFILE_FAILED: {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: \"failed\"\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\nexport let getStatus = (state: State) => state.status;\r\n","import { Action } from \"@ngrx/store\";\r\n\r\nimport { ProfileViewModel } from \"../models/profile-view.model\";\r\n\r\nexport enum SearchActionTypes {\r\n\tSEARCH = \"[USER][SEARCH] SEARCH\",\r\n\tSEARCH_START = \"[USER][SEARCH] SEARCH_START\",\r\n\tSEARCH_SUCCEED = \"[USER][SEARCH] SEARCH_SUCCEED\",\r\n\tSEARCH_FAILED = \"[USER][SEARCH] SEARCH_FAILED\",\r\n\tCLEAR_SEARCHED_USER = \"[USER][SEARCH] CLEAR_SEARCHED_USER\"\r\n}\r\n\r\nexport class Search implements Action {\r\n\treadonly type = SearchActionTypes.SEARCH;\r\n\tconstructor(public payload: ProfileViewModel.Request) {}\r\n}\r\nexport class SearchStartAction implements Action {\r\n\treadonly type = SearchActionTypes.SEARCH_START;\r\n\tconstructor(public payload: ProfileViewModel.Request) {}\r\n}\r\nexport class SearchSucceed implements Action {\r\n\treadonly type = SearchActionTypes.SEARCH_SUCCEED;\r\n\tconstructor(public payload: ProfileViewModel.Response) {}\r\n}\r\nexport class SearchFailed implements Action {\r\n\treadonly type = SearchActionTypes.SEARCH_FAILED;\r\n}\r\nexport class ClearSearchedUser implements Action {\r\n\treadonly type = SearchActionTypes.CLEAR_SEARCHED_USER;\r\n}\r\n\r\nexport type SearchAction = Search | SearchStartAction | SearchSucceed | SearchFailed | ClearSearchedUser;\r\n","import { responseStatusTypes } from \"@soushians/shared\";\r\nimport { ProfileViewModel } from \"../models/profile-view.model\";\r\nimport { SearchActionTypes, SearchAction } from \"./search.actions\";\r\n\r\nexport interface State {\r\n\tstatus: responseStatusTypes;\r\n\tdata: ProfileViewModel.Response;\r\n}\r\nexport const initialState: State = {\r\n\tstatus: \"pristine\",\r\n\tdata: {} as ProfileViewModel.Response\r\n};\r\nexport function reducer(state = initialState, action: SearchAction): State {\r\n\tswitch (action.type) {\r\n\t\tcase SearchActionTypes.SEARCH: {\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tstatus: \"dirty\",\r\n\t\t\t\tdata: new ProfileViewModel.Response()\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase SearchActionTypes.SEARCH_START: {\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tstatus: \"pending\"\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase SearchActionTypes.SEARCH_SUCCEED: {\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tstatus: \"succeed\",\r\n\t\t\t\tdata: action.payload\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase SearchActionTypes.SEARCH_FAILED: {\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tstatus: \"failed\"\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase SearchActionTypes.CLEAR_SEARCHED_USER: {\r\n\t\t\treturn initialState;\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\nexport var getStatus = (state: State) => state.status;\r\nexport var getAccountInfo = (state: State) => state.data;\r\n","import { createSelector, createFeatureSelector, MemoizedSelector } from \"@ngrx/store\";\r\nimport * as userReducer from \"./dashboard/account.reducer\";\r\nimport { getAccountInfo as _getAccountInfo } from \"./dashboard/account.reducer\";\r\nimport * as resetPasswordRequestReducer from \"./reset-password/reset-password-request.reducer\";\r\nimport * as changePassword from \"./change-password/change-password.reducer\";\r\nimport * as editProfileReducer from \"./profile-edit/edit-profile.reducer\";\r\nimport * as searchReducer from \"./search-account/search.reducer\";\r\nimport { UserModel } from \"./models/user.model\";\r\nimport { responseStatusTypes } from \"@soushians/shared\";\r\n\r\nexport interface UserState {\r\n\tuser: userReducer.State;\r\n\tresetPasswordRequest: resetPasswordRequestReducer.State;\r\n\tsearchView: searchReducer.State;\r\n\tchangePassword: changePassword.State;\r\n\teditProfile: editProfileReducer.State;\r\n}\r\n\r\nexport const UserReducers = {\r\n\tuser: userReducer.userReducer,\r\n\tresetPasswordRequest: resetPasswordRequestReducer.reducer,\r\n\tchangePassword: changePassword.reducer,\r\n\tsearchView: searchReducer.reducer,\r\n\teditProfile: editProfileReducer.reducer\r\n};\r\n\r\nexport interface AppState {\r\n\t\"user\": UserState;\r\n}\r\n\r\n//#region selectors\r\n\r\nexport const selectFeatureState = createFeatureSelector<UserState>(\"user\");\r\n\r\nexport const getUserInforamtionStatus = createSelector(selectFeatureState, (state: UserState) => state.user.loaded);\r\nexport const isSignedIn = createSelector(selectFeatureState, (state: UserState) => state.user.loaded);\r\n\r\nexport const selectResetPasswordRequestState = createSelector(\r\n\tselectFeatureState,\r\n\t(state: UserState) => state.resetPasswordRequest\r\n);\r\nexport const getNumberOfRequeseted = createSelector(\r\n\tselectResetPasswordRequestState,\r\n\tresetPasswordRequestReducer.getNumberOfRequeseted\r\n);\r\nexport const getResetPasswordRequestStatus = createSelector(\r\n\tselectResetPasswordRequestState,\r\n\tresetPasswordRequestReducer.getStatus\r\n);\r\n\r\n//#region user\r\nexport const selectUserInformaionState = createSelector(selectFeatureState, (state: UserState) => state.user);\r\nexport const getAccountInfo = createSelector(selectUserInformaionState, _getAccountInfo);\r\n//#endregion\r\n\r\n//#region search\r\nexport const selectSearchState = createSelector(selectFeatureState, (state: UserState) => state.searchView);\r\nexport const getSearchStatus = createSelector(selectSearchState, searchReducer.getStatus);\r\n//#endregion\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport { responseStatusTypes } from \"@soushians/shared\";\r\n\r\nimport { ProfileViewModel } from \"../../models/profile-view.model\";\r\nimport * as FeatureReducer from \"../../user.reducers\";\r\nimport { Search } from \"../search.actions\";\r\n\r\n@Component({\r\n\tselector: \"search\",\r\n\ttemplateUrl: \"./search.component.html\",\r\n\tstyleUrls: [ \"./search.component.scss\" ]\r\n})\r\nexport class SearchComponent implements OnInit {\r\n\tuser: Observable<ProfileViewModel.Response>;\r\n\tuserStatus$: Observable<responseStatusTypes>;\r\n\tformGroup = ProfileViewModel.Request.formGroup;\r\n\tuserDataLoaded$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\tuserNotFound$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\tconstructor(private store: Store<FeatureReducer.AppState>) {\r\n\t\tthis.user = this.store.select(FeatureReducer.getAccountInfo);\r\n\t\tthis.userStatus$ = this.store.select(FeatureReducer.getSearchStatus);\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.userStatus$.subscribe(value => this.userDataLoaded$.next(!\"pristine|dirty|pending\".includes(value)));\r\n\t}\r\n\tsearch() {\r\n\t\tif (!this.formGroup.valid) return;\r\n\t\tthis.store.dispatch(new Search(this.formGroup.value));\r\n\t}\r\n}\r\n","import { Component, Input, Output, EventEmitter, OnInit } from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { Observable } from \"rxjs/Observable\";\r\n\r\n@Component({\r\n\tselector: \"user-change-password\",\r\n\ttemplateUrl: \"./change-password.component.html\",\r\n\tstyleUrls: [ \"./change-password.component.scss\" ]\r\n})\r\nexport class ChangePasswordComponent implements OnInit {\r\n\t@Input() formGroup: FormGroup;\r\n\t@Output() submited = new EventEmitter();\r\n\r\n\tngOnInit() {}\r\n\r\n\tsubmit() {}\r\n\r\n\tconstructor() {}\r\n\r\n\tchangePassword() {\r\n\t\tif (!this.formGroup.valid) return;\r\n\t\tthis.submited.emit(this.formGroup.value);\r\n\t}\r\n}\r\n","import { Component, OnInit, Output, EventEmitter, Input } from \"@angular/core\";\r\n\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { ConfigModel } from \"@soushians/config\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\n\r\n@Component({\r\n\tselector: \"profile-edit\",\r\n\ttemplateUrl: \"./profile-edit.component.html\"\r\n})\r\nexport class ProfileEditComponent implements OnInit {\r\n\t@Output() submited = new EventEmitter();\r\n\t@Input() userInfo: any;\r\n\t@Input() formId: string;\r\n\t@Input(\"roles\") roles$: Observable<string[]>;\r\n\t@Input() groups: string[];\r\n\tconstructor(private router: Router) {}\r\n\r\n\tngOnInit() {}\r\n\teditProfile(form: FormGroup) {\r\n\t\tif (!form.valid) return;\r\n\t\tthis.submited.emit(form.value);\r\n\t}\r\n\tgoback() {\r\n\t\tthis.router.navigate([ \"..\" ]);\r\n\t}\r\n}\r\n","import { Component, OnInit, Input, AfterViewInit } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\n\r\nimport { UserConfigurationService } from \"../../services/user-configuration.service\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\n@Component({\r\n\tselector: \"user-dashboard-links\",\r\n\ttemplateUrl: \"./dashboard-links.component.html\",\r\n\tstyleUrls: [ \"./dashboard-links.component.scss\" ]\r\n})\r\nexport class DashboardLinksComponent implements AfterViewInit {\r\n\tlinks: any[];\r\n\tlinks$: Observable<any[]>;\r\n\tconstructor(private userConfigurationService: UserConfigurationService, private store: Store<any>) {\r\n\t\tthis.links$ = this.userConfigurationService.config$.pipe(map(data => data.dashboardLinks));\r\n\t\tthis.links = [\r\n\t\t\t{\r\n\t\t\t\ttitle: \"مشاهده حساب کاربری\",\r\n\t\t\t\troute: \"/user/panel/profile\",\r\n\t\t\t\t// description: \"لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم\",\r\n\t\t\t\ticon: \"person\"\r\n\t\t\t}\r\n\t\t\t// ,\r\n\t\t\t// {\r\n\t\t\t// \troute: \"/user/panel/password/change\",\r\n\t\t\t// \ttitle: \"تغییر کلمه عبور\",\r\n\t\t\t// \t// description: \"لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم\",\r\n\t\t\t// \ticon: \"security\"\r\n\t\t\t// }\r\n\t\t];\r\n\t}\r\n\r\n\tngAfterViewInit() {}\r\n}\r\n","import { Component, Input, Output, EventEmitter, OnInit } from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { Observable } from \"rxjs/Observable\";\r\n\r\nimport { ResetPasswordRequestModel } from \"../../models/reset-password-request.model\";\r\nimport { MatSnackBar } from \"@angular/material\";\r\nimport { BehaviorSubject } from \"rxjs/BehaviorSubject\";\r\nimport { map, takeWhile } from \"rxjs/operators\";\r\n\r\n@Component({\r\n\tselector: \"user-reset-password-request\",\r\n\ttemplateUrl: \"./reset-password-request.component.html\",\r\n\tstyleUrls: [ \"./reset-password-request.component.scss\" ]\r\n})\r\nexport class ResetPasswordRequestComponent implements OnInit {\r\n\t@Output() submitted = new EventEmitter<ResetPasswordRequestModel.Request>();\r\n\r\n\t@Input() formGroup: FormGroup;\r\n\t@Input() numberOfRequested: Observable<number>;\r\n\t@Input() canRequestPin: Observable<boolean>;\r\n\t@Input()\r\n\tset pending(isPending: boolean) {\r\n\t\tif (isPending) {\r\n\t\t\tthis.formGroup.disable();\r\n\t\t}\r\n\r\n\t\tthis.formGroup.enable();\r\n\t}\r\n\r\n\ttimer$: Observable<number>;\r\n\tmaximumResendingHappend$ = new BehaviorSubject(false);\r\n\r\n\tconstructor(public snackBar: MatSnackBar) {\r\n\t\tthis.timer$ = Observable.timer(0, 100).pipe(\r\n\t\t\tmap(i => i + 1),\r\n\t\t\ttakeWhile(i => i * 100 <= 3000),\r\n\t\t\tmap(i => 3000 - i * 100)\r\n\t\t);\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.numberOfRequested.subscribe(data => {\r\n\t\t\tif (data > 2) {\r\n\t\t\t\tthis.maximumResendingHappend$.next(true);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tsubmit() {\r\n\t\tif (this.formGroup.valid) {\r\n\t\t\tthis.submitted.emit(this.formGroup.value);\r\n\t\t\tlet message = this.maximumResendingHappend$.getValue()\r\n\t\t\t\t? \"عدم امکان ...\"\r\n\t\t\t\t: \"پیامک جدید برای شما ارسال گردید.\";\r\n\t\t\tthis.snackBar.open(message, \"\", {\r\n\t\t\t\tduration: 3000\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\nimport * as FeatureReducer from \"../../user.reducers\";\r\nimport { ProfileViewModel } from \"../../models/profile-view.model\";\r\nimport { Search } from \"../../search-account/search.actions\";\r\n\r\n@Component({\r\n\ttemplate: \"<router-outlet></router-outlet>\"\r\n})\r\nexport class FeatureContainerComponent {\r\n\tconstructor(private route: ActivatedRoute, private store: Store<FeatureReducer.AppState>) {\r\n\t\tthis.route.params.subscribe(params => {\r\n\t\t\tlet model = new ProfileViewModel.Request({ Email: params.Email } as ProfileViewModel.Request);\r\n\t\t\tthis.store.dispatch(new Search(model));\r\n\t\t});\r\n\t}\r\n}\r\n","import { HttpRequestBaseModel } from \"@soushians/shared\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { MatchValidator } from \"@soushians/shared\";\r\n\r\nexport namespace ChangePasswordModel {\r\n\texport class Request implements HttpRequestBaseModel<Request> {\r\n\t\tUsername: string;\r\n\t\tPassword: string;\r\n\r\n\t\tconstructor(initValue: ChangePasswordModel.Request = {} as ChangePasswordModel.Request) {\r\n\t\t\tObject.keys(initValue).forEach(key => (this[key] = initValue[key]));\r\n\t\t}\r\n\r\n\t\tgetRequestBody() {\r\n\t\t\treturn {\r\n\t\t\t\tPassword: this.Password\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tstatic get formGroup() {\r\n\t\t\treturn new FormGroup({\r\n\t\t\t\tPassword: new FormControl(null, [ Validators.required, Validators.minLength(7) ]),\r\n\t\t\t\tConfirm: new FormControl(null, [ Validators.required, MatchValidator(\"Password\") ])\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\texport class Response {\r\n\t\tconstructor() {}\r\n\t}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport { ChangePasswordModel } from \"../../models/change-password.model\";\r\n\r\nimport * as FeatureReducer from \"../../user.reducers\";\r\nimport { ChangePassword } from \"../change-password.actions\";\r\n\r\n@Component({\r\n\ttemplate: `<user-change-password\r\n (submited)='changePassword($event)'\r\n [formGroup]=\"formGroup\"\r\n ></user-change-password>`\r\n})\r\nexport class ChangePasswordContainerComponent implements OnInit {\r\n\tformGroup = ChangePasswordModel.Request.formGroup;\r\n\tChangePasswordModel = new ChangePasswordModel.Request();\r\n\tconstructor(private route: ActivatedRoute, private store: Store<FeatureReducer.AppState>) {}\r\n\r\n\tngOnInit() {\r\n\t\tthis.store.select(FeatureReducer.getAccountInfo).subscribe(userInfo => {\r\n\t\t\tif (!userInfo) return;\r\n\t\t\t// TODO:\r\n\t\t\t// this.ChangePasswordModel.Username = userInfo.Username;\r\n\t\t});\r\n\t}\r\n\tchangePassword(event) {\r\n\t\tthis.ChangePasswordModel.Password = this.formGroup.get(\"Password\").value;\r\n\r\n\t\tthis.store.dispatch(new ChangePassword(this.ChangePasswordModel));\r\n\t}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { of } from \"rxjs\";\r\n\r\nimport { getAppConfig } from \"@soushians/config\";\r\n\r\nimport { UserModel } from \"../../models/user.model\";\r\nimport * as FeatureReducer from \"../../user.reducers\";\r\nimport { EditProfile } from \"../edit-profile.actions\";\r\nimport { UserConfigurationService } from \"../../services/user-configuration.service\";\r\nimport { UserModuleConfig } from \"../../user.config\";\r\nimport { map, filter } from \"rxjs/operators\";\r\n\r\n@Component({\r\n\tselector: \"profile-edit-contianer\",\r\n\ttemplate: `<profile-edit\r\n (submited)='updateProfile($event)'\r\n [userInfo]=\"userInforamation$ | async\"\r\n [roles]=\"roles$\"\r\n\t\t\t\t[groups]=\"groups | async\"\r\n\t\t\t\t[formId]=\"(config$|async)?.forms.profile_edit\"\r\n ></profile-edit>`\r\n})\r\nexport class ProfileEditContainerComponent implements OnInit {\r\n\tuserInforamation$: Observable<UserModel>;\r\n\troles$: Observable<string[]>;\r\n\tgroups: Observable<string[]>;\r\n\tconfig$: Observable<UserModuleConfig>;\r\n\r\n\tconstructor(private store: Store<FeatureReducer.AppState>, private configService: UserConfigurationService) {\r\n\t\tthis.userInforamation$ = this.store.select(FeatureReducer.getAccountInfo);\r\n\t\tthis.roles$ = this.store\r\n\t\t\t.select(getAppConfig)\r\n\t\t\t.pipe(filter(config => config != undefined), map(config => config.Config.Roles));\r\n\t\t// TODO:\r\n\t\t// this.groups = this.diagramService.getGroups();\r\n\t\tthis.groups = of([ \"test1\", \"test2\" ]);\r\n\r\n\t\tthis.config$ = this.configService.config$;\r\n\t}\r\n\r\n\tngOnInit() {}\r\n\r\n\tupdateProfile(data) {\r\n\t\tthis.store.dispatch(new EditProfile(data));\r\n\t}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport { UserModel } from \"../../models/user.model\";\r\nimport { getAccountInfo } from \"../account.reducer\";\r\n\r\n@Component({\r\n\tselector: \"user-dashboard-container\",\r\n\ttemplateUrl: \"./dashboard.component.html\",\r\n\tstyleUrls: [ \"./dashboard.component.css\" ]\r\n})\r\nexport class DashboardContainerComponent implements OnInit {\r\n\tuser$: Observable<UserModel>;\r\n\t// is_agent : Observable<boolean>;\r\n\tconstructor(private store: Store<any>) {\r\n\t\tthis.user$ = this.store.select(getAccountInfo);\r\n\t\t// this.is_agent = signinService.is_agent();\r\n\t}\r\n\r\n\tngOnInit() {}\r\n}\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\n\r\nimport { UserModel } from \"../../models/user.model\";\r\nimport { BehaviorSubject } from \"rxjs/BehaviorSubject\";\r\n\r\n@Component({\r\n\tselector: \"user-profile\",\r\n\ttemplateUrl: \"./profile.component.html\",\r\n\tstyleUrls: [ \"./profile.component.css\" ]\r\n})\r\nexport class ProfileComponent implements OnInit {\r\n\t@Input()\r\n\tset information(information: UserModel) {\r\n\t\tif (!information) return;\r\n\r\n\t\tObject.keys(information).forEach(k => this.info.push([ k, information[k] ]));\r\n\t}\r\n\t@Input() dataStatus$: BehaviorSubject<boolean>;\r\n\tinfo: any[] = [];\r\n\tconstructor() {}\r\n\r\n\tngOnInit() {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport * as FeatureReducer from \"../../user.reducers\";\r\nimport { UserModel } from \"../../models/user.model\";\r\n\r\n@Component({\r\n\ttemplate: `<user-profile\r\n [information]=\"data$ | async\"\r\n [dataStatus$]='dataStatus$'\r\n ></user-profile>`\r\n})\r\nexport class ProfileContainerComponent implements OnInit {\r\n\tdata$: Observable<UserModel>;\r\n\tdataStatus$: Observable<boolean>;\r\n\r\n\tconstructor(private store: Store<FeatureReducer.AppState>) {\r\n\t\tthis.data$ = this.store.select(FeatureReducer.getAccountInfo);\r\n\t\tthis.dataStatus$ = this.store.select(FeatureReducer.getUserInforamtionStatus);\r\n\t}\r\n\r\n\tngOnInit() {}\r\n}\r\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RouterModule, Routes } from \"@angular/router\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { FlexLayoutModule } from \"@angular/flex-layout\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport {\r\n\tMatExpansionModule,\r\n\tMatSnackBarModule,\r\n\tMatIconModule,\r\n\tMatButtonModule,\r\n\tMatCardModule,\r\n\tMatSelectModule,\r\n\tMatInputModule,\r\n\tMatFormFieldModule,\r\n\tMatTabsModule,\r\n\tMatRadioModule\r\n} from \"@angular/material\";\r\nimport { StoreModule } from \"@ngrx/store\";\r\nimport { StoreDevtoolsModule } from \"@ngrx/store-devtools\";\r\nimport { EffectsModule, mergeEffects } from \"@ngrx/effects\";\r\n\r\nimport { NgsFormModule } from \"@soushians/form\";\r\n\r\nimport { UserModuleConfig, MODULE_CONFIG_TOKEN } from \"./user.config\";\r\nimport { EditProfileEffects } from \"./profile-edit/edit-profile.effects\";\r\nimport { ProfileViewEffects } from \"./profile-view/profile-view.effects\";\r\nimport { UserEffects } from \"./feature/feature.effects\";\r\nimport { SearchComponent } from \"./search-account/search/search.component\";\r\nimport { ChangePasswordComponent } from \"./change-password/change-password/change-password.component\";\r\nimport { ProfileEditComponent } from \"./profile-edit/profile-edit/profile-edit.component\";\r\nimport { DashboardLinksComponent } from \"./dashboard/dashboard-links/dashboard-links.component\";\r\nimport { ResetPasswordRequestComponent } from \"./reset-password/reset-password-request/reset-password-request.component\";\r\nimport { FeatureContainerComponent } from \"./feature/feature-container/feature-container.component\";\r\nimport { ChangePasswordContainerComponent } from \"./change-password/change-password-container/change-password-container.component\";\r\nimport { ProfileEditContainerComponent } from \"./profile-edit/profile-edit-container/profile-edit-container.component\";\r\nimport { DashboardContainerComponent } from \"./dashboard/dashboard-container/dashboard.component\";\r\nimport { ProfileComponent } from \"./profile-view/profile/profile.component\";\r\nimport { ProfileContainerComponent } from \"./profile-view/profile-container/profile-container.component\";\r\nimport { UserReducers } from \"./user.reducers\";\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tHttpClientModule,\r\n\t\tFormsModule,\r\n\t\tRouterModule,\r\n\t\tCommonModule,\r\n\t\tMatExpansionModule,\r\n\t\tMatSnackBarModule,\r\n\t\tMatIconModule,\r\n\t\tMatButtonModule,\r\n\t\tMatCardModule,\r\n\t\tMatSelectModule,\r\n\t\tMatInputModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatTabsModule,\r\n\t\tFlexLayoutModule,\r\n\t\tMatRadioModule,\r\n\t\tReactiveFormsModule,\r\n\t\tBrowserAnimationsModule,\r\n\t\tNgsFormModule\r\n\t],\r\n\tdeclarations: [\r\n\t\tSearchComponent,\r\n\t\tProfileComponent,\r\n\t\tChangePasswordComponent,\r\n\t\tProfileEditComponent,\r\n\t\tProfileContainerComponent,\r\n\t\tDashboardLinksComponent,\r\n\t\tResetPasswordRequestComponent,\r\n\t\tFeatureContainerComponent,\r\n\t\tDashboardContainerComponent,\r\n\t\tChangePasswordContainerComponent,\r\n\t\tProfileEditContainerComponent\r\n\t],\r\n\texports: []\r\n})\r\nexport class NgsUserModule {\r\n\tstatic forRoot(config?: UserModuleConfig): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t\tngModule: RootNgsUserModule,\r\n\t\t\tproviders: [ { provide: MODULE_CONFIG_TOKEN, useValue: config } ]\r\n\t\t};\r\n\t}\r\n}\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tNgsUserModule,\r\n\t\tStoreModule.forFeature(\"user\", UserReducers),\r\n\t\tEffectsModule.forFeature([\r\n\t\t\t// ResetPasswordRequestEffects,\r\n\t\t\tEditProfileEffects,\r\n\t\t\t// ChangePasswordEffects,\r\n\t\t\tProfileViewEffects,\r\n\t\t\t// SearchEffects,\r\n\t\t\tUserEffects\r\n\t\t])\r\n\t]\r\n})\r\nexport class RootNgsUserModule {}\r\n","import { ModuleWithProviders } from \"@angular/core\";\r\nimport { RouterModule, Routes } from \"@angular/router\";\r\n\r\nimport { DashboardContainerComponent } from \"./dashboard/dashboard-container/dashboard.component\";\r\nimport { ProfileContainerComponent } from \"./profile-view/profile-container/profile-container.component\";\r\nimport { ProfileEditContainerComponent } from \"./profile-edit/profile-edit-container/profile-edit-container.component\";\r\n// import { ChangePasswordContainerComponent } from \"./change-password/change-password-container/change-password-container.component\";\r\n// import { SearchComponent } from \"./search-account/search/search.component\";\r\nimport { FeatureContainerComponent } from \"./feature/feature-container/feature-container.component\";\r\nimport { DashboardLinksComponent } from \"./dashboard/dashboard-links/dashboard-links.component\";\r\n\r\nexport const routes: Routes = [\r\n\t{\r\n\t\tpath: \"user/panel\",\r\n\t\tcomponent: DashboardContainerComponent,\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tcomponent: DashboardLinksComponent\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"profile\",\r\n\t\t\t\tcomponent: ProfileContainerComponent\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"profile/edit\",\r\n\t\t\t\tcomponent: ProfileEditContainerComponent\r\n\t\t\t}\r\n\t\t\t// {\r\n\t\t\t// \tpath: \"password/change\",\r\n\t\t\t// \tcomponent: ChangePasswordContainerComponent\r\n\t\t\t// }\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tpath: \"admin/user\",\r\n\t\tchildren: [\r\n\t\t\t// { path: \"managment\", component: SearchComponent },\r\n\t\t\t{\r\n\t\t\t\tpath: \":Email\",\r\n\t\t\t\tcomponent: FeatureContainerComponent,\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpath: \"profile-edit\",\r\n\t\t\t\t\t\tcomponent: ProfileEditContainerComponent\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// {\r\n\t\t\t\t\t// \tpath: \"change-password\",\r\n\t\t\t\t\t// \tcomponent: ChangePasswordContainerComponent\r\n\t\t\t\t\t// }\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n];\r\n\r\nexport const NgsUserRoutingModule: ModuleWithProviders = RouterModule.forChild(routes);\r\n","export enum NgsUserModuleOutlets {\r\n\tngs_user_profile_view = \"ngs-user-profile-view\"\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { Observable } from \"rxjs/Observable\";\r\n\r\nimport { getAccountInfo, AppState } from \"../user.reducers\";\r\nimport { UserConfigurationService } from \"./user-configuration.service\";\r\nimport { UserModel } from \"../models/user.model\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\"\r\n})\r\nexport class UserFacadeService {\r\n\tconstructor(private store: Store<AppState>, private configService: UserConfigurationService) {}\r\n\tgetDisplayName(): Observable<string> {\r\n\t\treturn this.store.select(getAccountInfo).let(this.configService.config$.getValue().mapUserDisplayName);\r\n\t\t// .pipe(filter(displayName => displayName !== undefined));\r\n\t}\r\n\tgetInfo(): Observable<UserModel> {\r\n\t\treturn this.store.select(getAccountInfo);\r\n\t}\r\n}\r\n"],"names":["tslib_1.__extends","initialState","reducer","getStatus","userReducer.userReducer","resetPasswordRequestReducer.reducer","changePassword.reducer","searchReducer.reducer","editProfileReducer.reducer","getNumberOfRequeseted","resetPasswordRequestReducer.getNumberOfRequeseted","resetPasswordRequestReducer.getStatus","getAccountInfo","_getAccountInfo","searchReducer.getStatus","BehaviorSubject","FeatureReducer.getAccountInfo","FeatureReducer.getSearchStatus","FeatureReducer.getUserInforamtionStatus"],"mappings":"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"}