UNPKG

76.7 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":["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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"}