{ "version": 3, "sources": ["src/app/user/profile/user-profile.component.ts", "src/app/user/profile/user-profile.component.html", "src/app/user/user-routing.module.ts", "src/app/user/user.module.ts"], "sourcesContent": ["import { KeyValue } from \"@angular/common\";\nimport { AfterViewInit, ChangeDetectionStrategy, Component, OnDestroy, OnInit, QueryList, ViewChild, ViewChildren } from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ReplaySubject, interval, merge, of } from \"rxjs\";\nimport { debounce, finalize, map, mergeMap } from \"rxjs/operators\";\nimport { InputType } from \"src/app/admin/add-edit-user/add-edit-users-models\";\nimport { AddEditUserUtils } from \"src/app/admin/add-edit-user/add-edit-users-utils\";\nimport { BaseUserInfoComponent } from \"src/app/admin/add-edit-user/base-user-info/base-user-info.component\";\nimport { UserDataValidator } from \"src/app/admin/add-edit-user/user-data-validator\";\nimport { AdminService } from \"src/app/admin/admin.service\";\nimport { AppService } from \"src/app/services/app.service\";\nimport { MessageToUiService } from \"src/app/services/message-to-ui.service\";\nimport { GlobalSpinnerService } from \"src/app/shared/global-spinner/global-spinner.service\";\nimport { MailFrequencyEnum, UserViewModel } from \"src/app/shared/models\";\nimport { ValidatorService } from \"src/app/shared/validator.service\";\n\n@Component({\n selector: 'app-user-profile',\n templateUrl:\"./user-profile.component.html\",\n styleUrls: [\"./user-profile.component.scss\"],\n changeDetection : ChangeDetectionStrategy.OnPush\n })\n export class UserProfileComponent implements OnInit, OnDestroy, AfterViewInit{\n \n constructor(\n private adminService : AdminService,\n private spinnerService : GlobalSpinnerService,\n public validator: ValidatorService,\n private translate : TranslateService,\n private messageToUiService : MessageToUiService,\n private application : AppService,){}\n \n \n user : UserViewModel = new UserViewModel();\n saveButtonLabel : string = 'Save';\n pageTitleLabel : string = 'User.MyProfile';\n requestInProgress : boolean = false;\n utils : AddEditUserUtils = new AddEditUserUtils();\n \n dataValidator : UserDataValidator;\n $validatingSubject : ReplaySubject = new ReplaySubject(1);\n $userSubject : ReplaySubject = new ReplaySubject(1);\n \n @ViewChildren('form') public forms !: QueryList;\n @ViewChild('baseInfo') public baseInfoComponent !: BaseUserInfoComponent;\n\n\n mailFrequency : KeyValue[] = [\n {key:MailFrequencyEnum[MailFrequencyEnum.NoEmail],value:this.translate.instant('Admin.MailFrequency.NoEmail')}\n ,{key:MailFrequencyEnum[MailFrequencyEnum.Daily],value:this.translate.instant('Admin.MailFrequency.Daily')}\n ,{key:MailFrequencyEnum[MailFrequencyEnum.Weekly],value:this.translate.instant('Admin.MailFrequency.Weekly')}\n ];\n\n \n baseUserInputs : any = {\n webEmail : {name:\"webEmail\",type:\"text\", value: this.user.webEmail, label:\"Admin.UsernameEmail\",formOrder:0,labelClass:\"required\",readonly:true} as InputType,\n name : {name:\"name\",type:\"text\", value: this.user.name, label:\"General.Name\",formOrder:1, labelClass:\"required\",readonly:true}as InputType,\n password : {name:\"password\",type:\"text\",subtype:\"password\", label:\"Admin.Password\",formOrder:2}as InputType,\n passwordConfirm : {name:\"passwordConfirm\",type:\"text\",subtype:\"password\", label:\"Admin.ConfirmPassword\",formOrder:3}as InputType,\n phoneNumber : {name:\"phoneNumber\",type:\"text\", value: this.user.phone, label:\"Admin.PhoneNumber\",formOrder:4}as InputType,\n mailFrequency : {name:\"mailFrequency\",type:\"select\",options:this.mailFrequency, value : this.user.webMailFrequency, label:\"Admin.MailFrequency\",formOrder:5,labelClass:\"required\"}as InputType,\n };\n\n\n ngOnInit(): void {\n\n this.$validatingSubject.pipe(debounce(() => interval(300)))\n .subscribe(() => {\n this.dataValidator?.validate();\n this.baseInfoComponent.checkChanges();\n })\n\n let applicationUserCode$ = this.application.user$.pipe(map(_ => _.code));\n\n let $user = merge(applicationUserCode$,this.$userSubject).pipe(mergeMap(userCode => {\n if(userCode)\n return this.adminService.getUser(userCode);\n return of(new UserViewModel)\n }))\n\n $user.subscribe(user =>{\n this.user = user;\n this.user.webMailFrequency ??= MailFrequencyEnum[MailFrequencyEnum.NoEmail]\n\n this.createUserBaseData();\n\n this.baseInfoComponent.inputs = this.baseUserInputs;\n this.baseInfoComponent.checkChanges();\n this.dataValidator = new UserDataValidator(false,this.baseUserInputs,this.forms.first);\n this.$validatingSubject.next(null);\n this.spinnerService.hide();\n })\n }\n\n ngAfterViewInit(): void {\n this.forms.first.valueChanges.subscribe(()=>{\n this.$validatingSubject.next(null)\n }) \n }\n \n ngOnDestroy(): void {\n this.$userSubject.complete();\n this.$validatingSubject.complete();\n }\n\n createUserBaseData()\n {\n this.baseUserInputs.name.value = this.user.name;\n this.baseUserInputs.webEmail.value = this.user.webEmail;\n this.baseUserInputs.phoneNumber.value = this.user.phone;\n this.baseUserInputs.mailFrequency.value = this.user.webMailFrequency;\n this.baseUserInputs.mailFrequency.options = this.mailFrequency;\n this.baseUserInputs.password.value = \"\";\n this.baseUserInputs.passwordConfirm.value = \"\";\n }\n\n save()\n {\n this.spinnerService.show();\n \n this.transferProprieties();\n \n this.requestInProgress = true;\n this.adminService.addEditUser(this.user)\n .pipe(finalize(() => {\n this.spinnerService.hide(); \n this.requestInProgress = false;\n this.baseInfoComponent?.checkChanges();\n }))\n .subscribe({\n next : (user : UserViewModel) => { this.$userSubject.next(user.code) },\n error : (e) => { \n this.formatErrors(e?.error?.result?.errors)\n this.validator.handleError(this.forms.first,e,true);\n },\n complete: () =>{\n this.messageToUiService.success(this.translate.instant('Generic.Success'));\n } \n })\n \n }\n\n canSave()\n {\n return !this.requestInProgress && this.forms?.first?.valid\n }\n \n private transferProprieties()\n {\n this.user.webEmail = this.baseUserInputs.webEmail.value \n this.user.name = this.baseUserInputs.name.value \n this.user.webMailFrequency = this.baseUserInputs.mailFrequency.value \n this.user.password = this.baseUserInputs.password.value \n this.user.phone = this.baseUserInputs.phoneNumber.value \n }\n\n\n private formatErrors(errors = [])\n {\n for (let i = 0; i < errors.length; i++) {\n let split = errors[i].propertyName?.split(\".\") \n errors[i].propertyName = split?.pop();\n }\n }\n\n\n validate()\n {\n this.$validatingSubject.next(null);\n }\n\n}", "
\n
\n

{{pageTitleLabel | translate}}

\n
\n
\n\n
\n
\n \n \n
\n \n
\n
", "import { RouterModule, Routes } from \"@angular/router\";\nimport { UserProfileComponent } from \"./profile/user-profile.component\";\nimport { AuthGuard } from \"../auth/auth.guard\";\nimport { NgModule } from \"@angular/core\";\n\nconst routes: Routes = [\n { path: 'user/profile', component: UserProfileComponent, canActivate: [AuthGuard] }, \n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class UserRoutingModule { }", "import { NgModule } from \"@angular/core\";\nimport { UserProfileComponent } from \"./profile/user-profile.component\";\nimport { SharedModule } from \"../shared/shared.module\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { UserRoutingModule } from \"./user-routing.module\";\nimport { BaseUserInfoComponent } from \"../admin/add-edit-user/base-user-info/base-user-info.component\";\n\n@NgModule({\n declarations: [\n UserProfileComponent\n ],\n imports: [\n TranslateModule,\n SharedModule\n ],\n exports: [\n UserRoutingModule\n ]\n })\n export class UserModule { }\n "], "mappings": "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", "names": [] }