{"version":3,"file":"792.5b98f8eddea2166c.js","mappings":"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","names":["AuthActionTypes","LoadAccountSettings","constructor","origin","this","LoadAccountSettingsSuccess","payload","LoadAccountSettingsFailed","UpdateAccountSettings","UpdateAccountSettingsSuccess","UpdateAccountSettingsFailed","SendForgotPassword","SendForgotPasswordSuccess","SendForgotPasswordFailed","VerifyIdentifier","VerifyIdentifierSuccess","VerifyIdentifierFailed","UpdatePassword","UpdatePasswordSuccess","UpdatePasswordFailed","getAuthFeatureState","createFeatureSelector","getLanguage","createSelector","state","accountSettings","language","getAccountSettingsSaving","accountSettingsSaving","getForgotPasswordSending","forgotPasswordSending","getVerifying","verifying","getVerified","verified","getSaving","passwordSaving","i0","AccountSettingsComponent","fb","Role","EventEmitter","group","value","form","setValue","loading","f","controls","additionalLanguages","role","save","update","emit","selectors","AccountSettingsShellComponent","navService","store","authService","setLocation","_","ngOnInit","_a","currentUserValue","saving$","pipe","select","fromAuth","language$","dispatch","isDirty","ctx","AuthEffects","actions$","accountSettingsApiService","authenticationApiService","router","toastr","translateService","createEffect","ofType","fromActions","mergeMap","action","apiAccountSettingsGet","map","data","catchError","of","switchMap","fromFrame","newOrigin","apiAccountSettingsPost","get","subscribe","text","success","apiAuthenticationSendUpdatePasswordEmailPost","info","identifier","apiAuthenticationVerifyIdentifierPost","validityDate","apiAuthenticationUpdatePasswordPost","navigate","prevOrigin","factory","initialState","reducer","type","ForgotPasswordComponent","formBuilder","username","Validators","onSend","submitted","invalid","send","ForgotPasswordShellComponent","themesStore","authStore","logoUrl$","getlogoUrl","sending$","dto","LoginComponent","route","featureFlagsService","loginForm","password","queryParamMap","params","returnUrl","keys","forEach","key","toLowerCase","fromThemes","onSubmit","saving","login","first","response","permissions","length","isFeatureEnabled","FeatureFlags","useNewTimesheet","getDefaultPageByUserRole","LoginShellComponent","logout","UpdatePasswordComponent","minCharacters","newPassword","newPasswordConfirm","validator","matchValidator","mismatch","onSave","UpdatePasswordShellComponent","activatedRoute","verifying$","verified$","queryParams","LucideFillDirective","el","ngAfterViewInit","svg","nativeElement","querySelector","setAttribute","fill","HandleTokenComponent","currentUser","token","snapshot","paramMap","embedded","window","self","top","inProgress","error","loginByToken","err","warnings","x","HandleTokenShellComponent","NavigateToFlexportalNLComponent","NavigateToFlexportalNLShellComponent","apiAuthenticationGenerateTokenPost","id","url","getFlexportalNLUrl","location","href","AuthModule","LucideAngularModule","User","lucide_angular","KeyRound","Loader","TriangleAlert","CommonModule","SharedModule","FormsModule","TranslateModule","FrameModule","StoreModule","EffectsModule","RouterModule","path","component","canActivate","AuthGuard","canDeactivate","ConfirmLeaveGuard"],"sourceRoot":"webpack:///","sources":["./src/app/auth/state/auth.actions.ts","./src/app/auth/state/index.ts","./src/app/auth/components/account-settings/account-settings.component.html","./src/app/auth/components/account-settings/account-settings.component.ts","./src/app/auth/containers/account-settings-shell/account-settings-shell.component.ts","./src/app/auth/containers/account-settings-shell/account-settings-shell.component.html","./src/app/auth/state/auth.effects.ts","./src/app/auth/state/auth.reducer.ts","./src/app/auth/components/forgot-password/forgot-password.component.html","./src/app/auth/components/forgot-password/forgot-password.component.ts","./src/app/auth/containers/forgot-password-shell/forgot-password-shell.component.ts","./src/app/auth/containers/forgot-password-shell/forgot-password-shell.component.html","./src/app/auth/components/login/login.component.html","./src/app/auth/components/login/login.component.ts","./src/app/auth/containers/login-shell/login-shell.component.ts","./src/app/auth/containers/login-shell/login-shell.component.html","./src/app/auth/components/update-password/update-password.component.html","./src/app/auth/components/update-password/update-password.component.ts","./src/app/auth/containers/update-password-shell/update-password-shell.component.ts","./src/app/auth/containers/update-password-shell/update-password-shell.component.html","./src/app/shared/_directives/lucide-fill.directive.ts","./src/app/auth/components/handle-token/handle-token.component.html","./src/app/auth/components/handle-token/handle-token.component.ts","./src/app/auth/containers/handle-token-shell/handle-token-shell.component.ts","./src/app/auth/containers/handle-token-shell/handle-token-shell.component.html","./src/app/auth/components/navigate-to-flexportal-nl/navigate-to-flexportal-nl.component.ts","./src/app/auth/components/navigate-to-flexportal-nl/navigate-to-flexportal-nl.component.html","./src/app/auth/containers/navigate-to-flexportal-nl-shell/navigate-to-flexportal-nl-shell.component.ts","./src/app/auth/containers/navigate-to-flexportal-nl-shell/navigate-to-flexportal-nl-shell.component.html","./src/app/auth/auth.module.ts"],"sourcesContent":["import { ILanguage, OriginAction, PayloadAction } from 'src/app/state/payload.interfaces';\r\nimport { SendUpdatePasswordEmailDto, UpdatePasswordDto } from 'src/app/rest';\r\n\r\nexport enum AuthActionTypes {\r\n LoadAccountSettings = '[Auth] Load AccountSettings',\r\n LoadAccountSettingsSuccess = '[Auth] Load AccountSettings Success',\r\n LoadAccountSettingsFailed = '[Auth] Load AccountSettings Failed',\r\n\r\n UpdateAccountSettings = '[Auth] Update AccountSettings',\r\n UpdateAccountSettingsSuccess = '[Auth] Update AccountSettings Success',\r\n UpdateAccountSettingsFailed = '[Auth] Update AccountSettings Failed',\r\n\r\n SendForgotPassword = '[Auth] Send Forgot Password',\r\n SendForgotPasswordSuccess = '[Auth] Send Forgot Password Sucess',\r\n SendForgotPasswordFailed = '[Auth] Send Forgot Password Failed',\r\n\r\n VerifyIdentifier = '[Auth] Verify Identifier',\r\n VerifyIdentifierSuccess = '[Auth] Verify Identifier Success',\r\n VerifyIdentifierFailed = '[Auth] Verify Identifier Failed',\r\n\r\n UpdatePassword = '[Auth] Update Password',\r\n UpdatePasswordSuccess = '[Auth] Update Password Success',\r\n UpdatePasswordFailed = '[Auth] Update Password Failed'\r\n}\r\n\r\nexport class LoadAccountSettings implements OriginAction {\r\n readonly type = AuthActionTypes.LoadAccountSettings;\r\n constructor(public origin: string) {}\r\n}\r\nexport class LoadAccountSettingsSuccess implements PayloadAction {\r\n readonly type = AuthActionTypes.LoadAccountSettingsSuccess;\r\n constructor(public origin: string, public payload: ILanguage) {}\r\n}\r\nexport class LoadAccountSettingsFailed implements OriginAction {\r\n readonly type = AuthActionTypes.LoadAccountSettingsFailed;\r\n constructor(public origin: string) {}\r\n}\r\n\r\nexport class UpdateAccountSettings implements PayloadAction {\r\n readonly type = AuthActionTypes.UpdateAccountSettings;\r\n constructor(public origin: string, public payload: ILanguage) {}\r\n}\r\nexport class UpdateAccountSettingsSuccess implements PayloadAction {\r\n readonly type = AuthActionTypes.UpdateAccountSettingsSuccess;\r\n constructor(public origin: string, public payload: ILanguage) {}\r\n}\r\nexport class UpdateAccountSettingsFailed implements OriginAction {\r\n readonly type = AuthActionTypes.UpdateAccountSettingsFailed;\r\n constructor(public origin: string) {}\r\n}\r\n\r\nexport class SendForgotPassword implements PayloadAction {\r\n readonly type = AuthActionTypes.SendForgotPassword;\r\n constructor(public origin: string, public payload: SendUpdatePasswordEmailDto) {}\r\n}\r\nexport class SendForgotPasswordSuccess implements OriginAction {\r\n readonly type = AuthActionTypes.SendForgotPasswordSuccess;\r\n constructor(public origin: string) {}\r\n}\r\nexport class SendForgotPasswordFailed implements OriginAction {\r\n readonly type = AuthActionTypes.SendForgotPasswordFailed;\r\n constructor(public origin: string) {}\r\n}\r\n\r\nexport class VerifyIdentifier implements PayloadAction {\r\n readonly type = AuthActionTypes.VerifyIdentifier;\r\n constructor(public origin: string, public payload: string) {}\r\n}\r\nexport class VerifyIdentifierSuccess implements PayloadAction {\r\n readonly type = AuthActionTypes.VerifyIdentifierSuccess;\r\n constructor(public origin: string, public payload: boolean) {}\r\n}\r\nexport class VerifyIdentifierFailed implements OriginAction {\r\n readonly type = AuthActionTypes.VerifyIdentifierFailed;\r\n constructor(public origin: string) {}\r\n}\r\n\r\nexport class UpdatePassword implements PayloadAction {\r\n readonly type = AuthActionTypes.UpdatePassword;\r\n constructor(public origin: string, public payload: UpdatePasswordDto) {}\r\n}\r\nexport class UpdatePasswordSuccess implements OriginAction {\r\n readonly type = AuthActionTypes.UpdatePasswordSuccess;\r\n constructor(public origin: string) {}\r\n}\r\nexport class UpdatePasswordFailed implements OriginAction {\r\n readonly type = AuthActionTypes.UpdatePasswordFailed;\r\n constructor(public origin: string) {}\r\n}\r\n\r\nexport type AuthActions =\r\n | LoadAccountSettings\r\n | LoadAccountSettingsSuccess\r\n | LoadAccountSettingsFailed\r\n | UpdateAccountSettings\r\n | UpdateAccountSettingsSuccess\r\n | UpdateAccountSettingsFailed\r\n | SendForgotPassword\r\n | SendForgotPasswordSuccess\r\n | SendForgotPasswordFailed\r\n | VerifyIdentifier\r\n | VerifyIdentifierSuccess\r\n | VerifyIdentifierFailed\r\n | UpdatePassword\r\n | UpdatePasswordSuccess\r\n | UpdatePasswordFailed;\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport * as fromRoot from '../../state';\r\n\r\n// Actions\r\nexport * from './auth.actions';\r\n\r\n// State\r\nexport interface State extends fromRoot.State {\r\n auth: AuthState;\r\n}\r\n\r\nexport interface AuthState {\r\n accountSettings: {\r\n language: string;\r\n };\r\n accountSettingsSaving: boolean;\r\n\r\n forgotPasswordSending: boolean;\r\n\r\n verifying: boolean;\r\n verified: boolean;\r\n passwordSaving: boolean;\r\n}\r\n\r\n// Selectors\r\nconst getAuthFeatureState = createFeatureSelector('auth');\r\n\r\nexport const getLanguage = createSelector(\r\n getAuthFeatureState,\r\n state => state.accountSettings.language\r\n);\r\n\r\nexport const getAccountSettingsSaving = createSelector(\r\n getAuthFeatureState,\r\n state => state.accountSettingsSaving\r\n);\r\n\r\nexport const getForgotPasswordSending = createSelector(\r\n getAuthFeatureState,\r\n state => state.forgotPasswordSending\r\n);\r\n\r\nexport const getVerifying = createSelector(\r\n getAuthFeatureState,\r\n state => state.verifying\r\n);\r\nexport const getVerified = createSelector(\r\n getAuthFeatureState,\r\n state => state.verified\r\n);\r\nexport const getSaving = createSelector(\r\n getAuthFeatureState,\r\n state => state.passwordSaving\r\n);\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { UntypedFormBuilder } from '@angular/forms';\r\nimport { Role } from '../../_models/role';\r\n\r\n@Component({\r\n selector: 'fp-account-settings',\r\n templateUrl: './account-settings.component.html',\r\n})\r\nexport class AccountSettingsComponent {\r\n loading = true;\r\n roleValues = Role;\r\n\r\n @Input() set language(value: string) {\r\n this.form.setValue({\r\n language: value,\r\n });\r\n this.loading = false;\r\n }\r\n @Input() saving: boolean;\r\n @Input() role: Role;\r\n\r\n @Output() update = new EventEmitter();\r\n\r\n form = this.fb.group({\r\n language: '',\r\n });\r\n\r\n constructor(private fb: UntypedFormBuilder) {}\r\n\r\n // convenience getter for easy access to form fields\r\n get f(): any {\r\n return this.form.controls;\r\n }\r\n\r\n get additionalLanguages(): boolean {\r\n return !this.role || this.role === Role.Flexworker || this.role === Role.JobSeeker;\r\n }\r\n\r\n save() {\r\n this.update.emit(this.f.language.value);\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy, OnInit } from '@angular/core';\r\n\r\nimport { NavService } from 'src/app/frame/_services/nav.service';\r\nimport { Store, select } from '@ngrx/store';\r\nimport * as fromAuth from '../../state/';\r\nimport { Observable } from 'rxjs';\r\nimport { LoadAccountSettings, UpdateAccountSettings } from '../../state/auth.actions';\r\nimport { IDirtyFormComponent } from 'src/app/shared/_components/confirm-leave/confirm-leave.guard';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { AuthService } from '../../_services/auth.service';\r\nimport { Role } from '../../_models/role';\r\n\r\n@Component({\r\n templateUrl: 'account-settings-shell.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccountSettingsShellComponent implements OnInit, IDirtyFormComponent {\r\n saving$: Observable;\r\n language$: Observable;\r\n role: Role;\r\n\r\n constructor(\r\n private navService: NavService,\r\n private store: Store,\r\n private authService: AuthService\r\n ) {\r\n this.navService.setLocation(_('frame.menu.language-settings'));\r\n }\r\n\r\n ngOnInit(): void {\r\n this.role = this.authService.currentUserValue?.role;\r\n this.saving$ = this.store.pipe(select(fromAuth.getAccountSettingsSaving));\r\n this.language$ = this.store.pipe(select(fromAuth.getLanguage));\r\n\r\n this.store.dispatch(new LoadAccountSettings('AccountSettings Component'));\r\n }\r\n\r\n isDirty(): boolean {\r\n return false;\r\n // return this.form.dirty;\r\n }\r\n\r\n update(language: string) {\r\n this.store.dispatch(new UpdateAccountSettings('AccountSettings Component', { language: language }));\r\n }\r\n}\r\n","\r\n","import { Injectable } from '@angular/core';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { map, mergeMap, catchError, switchMap, concatMap } from 'rxjs/operators';\r\nimport * as fromFrame from '../../frame/state';\r\nimport * as fromActions from './auth.actions';\r\nimport {\r\n AccountSettingsApiService,\r\n GetSettingsResponse,\r\n AuthenticationApiService,\r\n VerifyIdentifierResponse,\r\n VerifyIdentifierDto,\r\n} from 'src/app/rest';\r\nimport { of } from 'rxjs';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\n\r\n@Injectable()\r\nexport class AuthEffects {\r\n constructor(\r\n private actions$: Actions,\r\n private accountSettingsApiService: AccountSettingsApiService,\r\n private authenticationApiService: AuthenticationApiService,\r\n private router: Router,\r\n private toastr: ToastrService,\r\n private translateService: TranslateService,\r\n private store: Store\r\n ) { }\r\n\r\n\r\n loadAccountSettings$ = createEffect(() => this.actions$.pipe(\r\n ofType(fromActions.AuthActionTypes.LoadAccountSettings),\r\n mergeMap((action: fromActions.LoadAccountSettings) =>\r\n this.accountSettingsApiService.apiAccountSettingsGet().pipe(\r\n map(\r\n (data: GetSettingsResponse) =>\r\n new fromActions.LoadAccountSettingsSuccess(action.origin + ' > Auth Effects', {\r\n language: data.language,\r\n })\r\n ),\r\n catchError(() => of(new fromActions.LoadAccountSettingsFailed(action.origin + ' > Auth Effects')))\r\n )\r\n )\r\n ));\r\n\r\n\r\n updateAccountSettings$ = createEffect(() => this.actions$.pipe(\r\n ofType(fromActions.AuthActionTypes.UpdateAccountSettings),\r\n switchMap((action: fromActions.UpdateAccountSettings) => {\r\n this.store.dispatch(\r\n new fromFrame.LanguageChanged(this.newOrigin(action.origin), {\r\n language: action.payload.language,\r\n })\r\n );\r\n\r\n return this.accountSettingsApiService.apiAccountSettingsPost({ language: action.payload.language }).pipe(\r\n map(() => {\r\n this.translateService\r\n .get(_('shared.messages.the-changes-are-saved'))\r\n .subscribe((text) => this.toastr.success(text));\r\n\r\n return new fromActions.UpdateAccountSettingsSuccess(this.newOrigin(action.origin), {\r\n language: action.payload.language,\r\n });\r\n }),\r\n catchError(() => of(new fromActions.UpdateAccountSettingsFailed(this.newOrigin(action.origin))))\r\n );\r\n })\r\n ));\r\n\r\n\r\n sendForgotPassword$ = createEffect(() => this.actions$.pipe(\r\n ofType(fromActions.AuthActionTypes.SendForgotPassword),\r\n switchMap((action: fromActions.SendForgotPassword) =>\r\n this.authenticationApiService.apiAuthenticationSendUpdatePasswordEmailPost(action.payload).pipe(\r\n map(() => {\r\n // TODO: Translate text.\r\n this.toastr.info(\r\n 'Als de gebruikersnaam bekend is dan is er een' + ' e-mail verstuurd naar het bij de gebruiker bekende e-mailadres.'\r\n );\r\n\r\n return new fromActions.SendForgotPasswordSuccess(this.newOrigin(action.origin));\r\n }),\r\n catchError(() => of(new fromActions.SendForgotPasswordFailed(this.newOrigin(action.origin))))\r\n )\r\n )\r\n ));\r\n\r\n\r\n verifyIdentifier$ = createEffect(() => this.actions$.pipe(\r\n ofType(fromActions.AuthActionTypes.VerifyIdentifier),\r\n mergeMap((action: fromActions.VerifyIdentifier) => {\r\n const identifier = action.payload;\r\n if (identifier === null || identifier === undefined || identifier === '') {\r\n return of(new fromActions.VerifyIdentifierFailed(this.newOrigin(action.origin)));\r\n }\r\n\r\n const dto = {\r\n identifier: identifier,\r\n };\r\n\r\n return this.authenticationApiService.apiAuthenticationVerifyIdentifierPost(dto).pipe(\r\n map(\r\n (data: VerifyIdentifierResponse) =>\r\n new fromActions.VerifyIdentifierSuccess(action.origin + ' > Auth Effects', data.validityDate !== null)\r\n ),\r\n catchError(() => of(new fromActions.VerifyIdentifierFailed(action.origin + ' > Auth Effects')))\r\n );\r\n })\r\n ));\r\n\r\n\r\n updatePassword$ = createEffect(() => this.actions$.pipe(\r\n ofType(fromActions.AuthActionTypes.UpdatePassword),\r\n switchMap((action: fromActions.UpdatePassword) =>\r\n this.authenticationApiService.apiAuthenticationUpdatePasswordPost(action.payload).pipe(\r\n map(() => {\r\n this.translateService\r\n .get(_('auth.update-password.password-changed-succesfully'))\r\n .subscribe((text) => this.toastr.success(text));\r\n this.router.navigate(['/auth/login']);\r\n\r\n return new fromActions.UpdatePasswordSuccess(this.newOrigin(action.origin));\r\n }),\r\n catchError(() => of(new fromActions.UpdatePasswordFailed(this.newOrigin(action.origin))))\r\n )\r\n )\r\n ));\r\n\r\n newOrigin(prevOrigin: string): string {\r\n return prevOrigin + ' > Auth Effects';\r\n }\r\n}\r\n","import { AuthActions, AuthActionTypes } from './auth.actions';\r\nimport { AuthState } from '.';\r\n\r\nexport const initialState: AuthState = {\r\n accountSettings: {\r\n language: null\r\n },\r\n accountSettingsSaving: false,\r\n forgotPasswordSending: false,\r\n verifying: false,\r\n verified: false,\r\n passwordSaving: false\r\n};\r\n\r\nexport function reducer(state = initialState, action: AuthActions): AuthState {\r\n switch (action.type) {\r\n case AuthActionTypes.LoadAccountSettings:\r\n return { ...state };\r\n case AuthActionTypes.LoadAccountSettingsSuccess:\r\n return {\r\n ...state,\r\n accountSettings: {\r\n language: action.payload.language\r\n }\r\n };\r\n case AuthActionTypes.LoadAccountSettingsFailed:\r\n return {\r\n ...state,\r\n accountSettings: null\r\n };\r\n\r\n case AuthActionTypes.UpdateAccountSettings:\r\n return {\r\n ...state,\r\n accountSettingsSaving: true\r\n };\r\n case AuthActionTypes.UpdateAccountSettingsSuccess:\r\n return {\r\n ...state,\r\n accountSettings: {\r\n language: action.payload.language\r\n },\r\n accountSettingsSaving: false\r\n };\r\n case AuthActionTypes.UpdateAccountSettingsFailed:\r\n return {\r\n ...state,\r\n accountSettingsSaving: false\r\n };\r\n\r\n case AuthActionTypes.SendForgotPassword:\r\n return {\r\n ...state,\r\n forgotPasswordSending: true\r\n };\r\n case AuthActionTypes.SendForgotPasswordSuccess:\r\n case AuthActionTypes.SendForgotPasswordFailed:\r\n return {\r\n ...state,\r\n forgotPasswordSending: false\r\n };\r\n\r\n case AuthActionTypes.VerifyIdentifier:\r\n return {\r\n ...state,\r\n verifying: true,\r\n verified: false\r\n };\r\n case AuthActionTypes.VerifyIdentifierSuccess:\r\n return {\r\n ...state,\r\n verifying: false,\r\n verified: true\r\n };\r\n case AuthActionTypes.VerifyIdentifierFailed:\r\n return {\r\n ...state,\r\n verifying: false,\r\n verified: false\r\n };\r\n\r\n case AuthActionTypes.UpdatePassword:\r\n return {\r\n ...state,\r\n passwordSaving: true\r\n };\r\n case AuthActionTypes.UpdatePasswordSuccess:\r\n case AuthActionTypes.UpdatePasswordFailed:\r\n return {\r\n ...state,\r\n passwordSaving: false\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ 'shared.messages.this-field-is-required' | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\r\nimport { AuthService } from '../../_services';\r\nimport { SendUpdatePasswordEmailDto } from 'src/app/rest';\r\n\r\n@Component({ selector: 'fp-forgot-password', templateUrl: 'forgot-password.component.html' })\r\nexport class ForgotPasswordComponent {\r\n @Input() logoUrl: string;\r\n @Input() sending: boolean;\r\n\r\n @Output() send = new EventEmitter();\r\n\r\n form = this.formBuilder.group({\r\n username: ['', Validators.required],\r\n });\r\n submitted = false;\r\n\r\n constructor(private formBuilder: UntypedFormBuilder, private router: Router, private authService: AuthService) {\r\n // redirect to home if already logged in\r\n if (this.authService.currentUserValue) {\r\n this.router.navigate(['/']);\r\n }\r\n }\r\n\r\n // Convenience getter for easy access to form fields.\r\n get f(): any {\r\n return this.form.controls;\r\n }\r\n\r\n onSend() {\r\n // stop here if form is invalid\r\n this.submitted = true;\r\n if (this.form.invalid) {\r\n return;\r\n }\r\n\r\n this.send.emit(this.form.value);\r\n }\r\n}\r\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { ThemesState, getlogoUrl } from 'src/app/themes/state';\r\nimport { SendUpdatePasswordEmailDto } from 'src/app/rest';\r\nimport { AuthState, getForgotPasswordSending, SendForgotPassword } from '../../state';\r\n\r\n@Component({\r\n templateUrl: './forgot-password-shell.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ForgotPasswordShellComponent implements OnInit {\r\n logoUrl$: Observable;\r\n sending$: Observable;\r\n\r\n constructor(\r\n private themesStore: Store,\r\n private authStore: Store,\r\n ) {\r\n this.logoUrl$ = this.themesStore.select(getlogoUrl);\r\n this.sending$ = this.authStore.select(getForgotPasswordSending);\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n send(dto: SendUpdatePasswordEmailDto) {\r\n this.authStore.dispatch(new SendForgotPassword('Forgot Password Component', dto));\r\n }\r\n}\r\n","\r\n","
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ 'shared.messages.this-field-is-required' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ 'shared.messages.this-field-is-required' | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs';\r\nimport { first } from 'rxjs/operators';\r\nimport * as fromFrame from 'src/app/frame/state';\r\nimport { UsernameAuthenticateDto } from 'src/app/rest';\r\nimport { FeatureFlags, FeatureFlagsService } from 'src/app/shared/_services/feature-flags.service';\r\nimport * as fromThemes from 'src/app/themes/state';\r\nimport { getlogoUrl, ThemesState } from 'src/app/themes/state';\r\nimport { Role } from '../../_models/role';\r\nimport { AuthService } from '../../_services';\r\nimport { getDefaultPageByUserRole } from './../../../shared/_functions/routing.function';\r\n\r\n@Component({ selector: 'fp-login', templateUrl: 'login.component.html' })\r\nexport class LoginComponent implements OnInit {\r\n logoUrl$: Observable;\r\n\r\n loginForm: UntypedFormGroup;\r\n saving = false;\r\n submitted = false;\r\n returnUrl: string;\r\n\r\n constructor(\r\n private formBuilder: UntypedFormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private authService: AuthService,\r\n private store: Store,\r\n private themesStore: Store,\r\n private featureFlagsService: FeatureFlagsService\r\n ) {\r\n // redirect to home if already logged in\r\n if (this.authService.currentUserValue) {\r\n if (this.authService.currentUserValue.role === Role.Flexworker) {\r\n this.router.navigate(['/timesheets']);\r\n } else {\r\n this.router.navigate(['/']);\r\n }\r\n }\r\n\r\n this.logoUrl$ = this.themesStore.select(getlogoUrl);\r\n }\r\n\r\n ngOnInit() {\r\n // Build the login form.\r\n this.loginForm = this.formBuilder.group({\r\n username: ['', Validators.required],\r\n password: ['', Validators.required],\r\n });\r\n\r\n // Set return url from route parameters or default to '/'.\r\n this.route.queryParamMap.subscribe((params) => {\r\n this.returnUrl = '/';\r\n params.keys.forEach((key) => {\r\n if (key.toLowerCase() === 'returnurl') {\r\n this.returnUrl = params.get(key);\r\n if (this.returnUrl === '/no-access?access=no_access') {\r\n this.returnUrl = '/';\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.store.dispatch(new fromThemes.Load('Login Component'));\r\n }\r\n\r\n // Convenience getter for easy access to form fields.\r\n get f(): any {\r\n return this.loginForm.controls;\r\n }\r\n\r\n onSubmit() {\r\n this.submitted = true;\r\n\r\n // Stop if form is invalid.\r\n if (this.loginForm.invalid) {\r\n return;\r\n }\r\n\r\n this.saving = true;\r\n this.login();\r\n }\r\n\r\n login() {\r\n this.submitted = true;\r\n\r\n // stop here if form is invalid\r\n if (this.loginForm.invalid) {\r\n return;\r\n }\r\n this.saving = true;\r\n\r\n const credentials = {\r\n username: this.f.username.value,\r\n password: this.f.password.value,\r\n };\r\n\r\n this.authService\r\n .login(credentials)\r\n .pipe(first())\r\n .subscribe(\r\n (response) => {\r\n // Set language.\r\n this.store.dispatch(\r\n new fromFrame.LanguageChanged('Login Component', {\r\n language: response.language,\r\n })\r\n );\r\n this.store.dispatch(new fromThemes.Load('Login Component'));\r\n\r\n if (!response?.permissions?.length && !response?.role) {\r\n this.router.navigate(['/no-access']);\r\n } else {\r\n // Stay after login on flexportal.com.\r\n if (\r\n // Admin and Employees are always redirected to flexportal.nl.\r\n // Contacts, flexworkers and job seekers are redirected to flexportal.com.\r\n response.role == Role.Contact ||\r\n response.role == Role.Flexworker ||\r\n response.role == Role.JobSeeker ||\r\n // Unless the user navigates to one of these specific urls.\r\n this.returnUrl === '/flexworker-portal/downloads' ||\r\n this.returnUrl === '/worksheets/select-a-day'\r\n ) {\r\n if (\r\n this.returnUrl === '/' ||\r\n // READ THIS AS: routed to a page to which the user has no rights.\r\n // Replace this with a home page handler that works well (beware of circular trips).\r\n this.returnUrl === '/flexworkers/all-flexworkers'\r\n ) {\r\n this.featureFlagsService.isFeatureEnabled(FeatureFlags.useNewTimesheet).subscribe((useNewTimesheet) => {\r\n this.returnUrl = getDefaultPageByUserRole(Role[response.role], response.permissions, useNewTimesheet);\r\n this.router.navigate([this.returnUrl || '/']);\r\n });\r\n } else {\r\n this.router.navigate([this.returnUrl || '/']);\r\n }\r\n } else {\r\n this.router.navigate(['/auth/flexportalnl', this.returnUrl]);\r\n }\r\n }\r\n },\r\n () => {\r\n this.saving = false;\r\n }\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService } from '../../_services';\r\n\r\n@Component({\r\n selector: 'fp-login-shell',\r\n templateUrl: './login-shell.component.html',\r\n})\r\nexport class LoginShellComponent implements OnInit {\r\n constructor(private authService: AuthService) {}\r\n\r\n ngOnInit() {\r\n this.authService.logout();\r\n }\r\n}\r\n","","
\r\n \r\n
\r\n
\r\n

\r\n {{ 'auth.update-password.identifier-not-verified' | translate }}\r\n

\r\n

\r\n \r\n {{ 'auth.back-to-login' | translate }}\r\n \r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ 'shared.messages.this-field-is-required' | translate }}\r\n
\r\n
\r\n {{ 'auth.update-password.password-min-length' | translate: params }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ 'auth.update-password.the-passwords-are-not-equal' | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\r\nimport { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';\r\n\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\n\r\nconst PASSWORD_MIN_CHARACTERS = 8;\r\n\r\n@Component({ selector: 'fp-update-password', templateUrl: 'update-password.component.html' })\r\nexport class UpdatePasswordComponent {\r\n @Input() logoUrl: string;\r\n @Input() verifying: boolean;\r\n @Input() verified: boolean;\r\n @Input() saving: boolean;\r\n\r\n params = { minCharacters: PASSWORD_MIN_CHARACTERS };\r\n form = this.formBuilder.group(\r\n {\r\n newPassword: ['', Validators.compose([Validators.required, Validators.minLength(PASSWORD_MIN_CHARACTERS)])],\r\n newPasswordConfirm: ''\r\n },\r\n { validator: this.matchValidator }\r\n );\r\n submitted = false;\r\n\r\n @Output() save = new EventEmitter();\r\n\r\n constructor(\r\n private formBuilder: UntypedFormBuilder\r\n ) {\r\n }\r\n\r\n matchValidator(group: UntypedFormGroup) {\r\n return group.controls.newPassword.value === group.controls.newPasswordConfirm.value ? null : { mismatch: true };\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n get f(): any {\r\n return this.form.controls;\r\n }\r\n\r\n onSave() {\r\n // stop here if form is invalid\r\n this.submitted = true;\r\n if (this.form.invalid) {\r\n return;\r\n }\r\n\r\n this.save.emit(this.f.newPassword.value);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from 'src/app/auth/_services';\r\nimport { UpdatePasswordDto } from 'src/app/rest';\r\nimport { getlogoUrl, ThemesState } from 'src/app/themes/state';\r\nimport { AuthState, getSaving, getVerified, getVerifying, UpdatePassword, VerifyIdentifier } from '../../state';\r\n\r\n@Component({\r\n selector: 'fp-update-password-shell',\r\n templateUrl: './update-password-shell.component.html',\r\n})\r\nexport class UpdatePasswordShellComponent implements OnInit {\r\n logoUrl$: Observable;\r\n verifying$: Observable;\r\n verified$: Observable;\r\n saving$: Observable;\r\n\r\n identifier: string;\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private themesStore: Store,\r\n private authStore: Store,\r\n private authService: AuthService\r\n ) {\r\n this.logoUrl$ = this.themesStore.select(getlogoUrl);\r\n this.verifying$ = this.authStore.select(getVerifying);\r\n this.verified$ = this.authStore.select(getVerified);\r\n this.saving$ = this.authStore.select(getSaving);\r\n }\r\n\r\n ngOnInit() {\r\n this.authService.logout();\r\n // Find the identifier.\r\n this.activatedRoute.queryParams.subscribe((params) => {\r\n this.identifier = params.identifier;\r\n this.authStore.dispatch(new VerifyIdentifier('Update Password Component', this.identifier));\r\n });\r\n }\r\n\r\n save(newPassword: string) {\r\n this.authStore.dispatch(\r\n new UpdatePassword('Update Password Component', {\r\n newPassword: newPassword,\r\n identifier: this.identifier,\r\n })\r\n );\r\n }\r\n}\r\n","","import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'i-lucide[fill]'\r\n})\r\nexport class LucideFillDirective implements AfterViewInit {\r\n @Input() fill: string;\r\n\r\n constructor(private el: ElementRef) { }\r\n\r\n ngAfterViewInit() {\r\n const svg = this.el.nativeElement.querySelector('svg');\r\n if (svg) {\r\n svg.setAttribute('fill', this.fill);\r\n }\r\n }\r\n} ","\r\n
\r\n \r\n
\r\n
\r\n {{ embedded ? ('shared.messages.loading' | translate) : ('auth.handle-token.loading' | translate) }}\r\n \r\n
\r\n
\r\n {{ error }}\r\n \r\n
\r\n
\r\n
\r\n \r\n
","import { AfterViewInit, Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\nimport { first } from 'rxjs/operators';\r\nimport * as fromFrame from 'src/app/frame/state';\r\nimport { getDefaultPageByUserRole } from 'src/app/shared/_functions/routing.function';\r\nimport { FeatureFlags, FeatureFlagsService } from 'src/app/shared/_services/feature-flags.service';\r\nimport * as fromThemes from 'src/app/themes/state';\r\nimport { getlogoUrl, ThemesState } from 'src/app/themes/state';\r\nimport { User } from '../../_models';\r\nimport { Role } from '../../_models/role';\r\nimport { AuthService } from '../../_services';\r\n\r\n@Component({\r\n selector: 'fp-handle-token',\r\n templateUrl: './handle-token.component.html',\r\n})\r\nexport class HandleTokenComponent implements OnInit, AfterViewInit {\r\n token: string;\r\n error = '';\r\n logoUrl$: Observable;\r\n inProgress = true;\r\n currentUser: Observable;\r\n returnUrl: string;\r\n embedded: boolean;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private route: ActivatedRoute,\r\n private store: Store,\r\n private router: Router,\r\n private translateService: TranslateService,\r\n private themesStore: Store,\r\n private featureFlagsService: FeatureFlagsService\r\n ) {\r\n this.logoUrl$ = this.themesStore.select(getlogoUrl);\r\n this.currentUser = this.authService.currentUser;\r\n }\r\n\r\n ngOnInit() {\r\n this.token = this.route.snapshot.paramMap.get('token');\r\n // Set return url from route parameters or default to '/'.\r\n this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';\r\n this.embedded = window.self !== window.top;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.inProgress = true;\r\n this.error = '';\r\n\r\n this.authService\r\n .loginByToken(this.token)\r\n .pipe(first())\r\n .subscribe(\r\n (response) => {\r\n // Set language.\r\n this.store.dispatch(\r\n new fromFrame.LanguageChanged('HandleTokenComponent', {\r\n language: response.language,\r\n })\r\n );\r\n this.store.dispatch(new fromThemes.Load('HandleTokenComponent'));\r\n\r\n if (\r\n this.returnUrl === '/' ||\r\n // READ THIS AS: routed to a page to which the user has no rights.\r\n // Replace this with a home page handler that works well (beware of circular trips).\r\n (this.returnUrl === '/flexworkers/all-flexworkers' && Role[response.role] !== Role.Admin)\r\n ) {\r\n this.featureFlagsService.isFeatureEnabled(FeatureFlags.useNewTimesheet).subscribe((useNewTimesheet) => {\r\n this.returnUrl = getDefaultPageByUserRole(Role[response.role], response.permissions, useNewTimesheet);\r\n this.router.navigate([this.returnUrl]);\r\n });\r\n } else {\r\n this.router.navigate([this.returnUrl]);\r\n }\r\n },\r\n (err) => {\r\n this.inProgress = false;\r\n const error = err.error;\r\n if (error && error.warnings) {\r\n error.warnings.forEach((x: string) => {\r\n this.translateService.get(x).subscribe((text) => (this.error += text));\r\n });\r\n } else {\r\n this.translateService.get('shared.messages.external-systems-fail').subscribe((text) => (this.error = text));\r\n }\r\n }\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService } from '../../_services';\r\n\r\n@Component({\r\n selector: 'fp-handle-token-shell',\r\n templateUrl: './handle-token-shell.component.html',\r\n})\r\nexport class HandleTokenShellComponent implements OnInit {\r\n constructor(private authService: AuthService) {}\r\n\r\n ngOnInit() {\r\n this.authService.logout();\r\n }\r\n}\r\n","","import { Component } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs';\r\nimport { getlogoUrl, ThemesState } from 'src/app/themes/state';\r\n\r\n@Component({\r\n selector: 'fp-navigate-to-flexportal-nl',\r\n templateUrl: './navigate-to-flexportal-nl.component.html',\r\n})\r\nexport class NavigateToFlexportalNLComponent {\r\n logoUrl$: Observable;\r\n\r\n constructor(private themesStore: Store) {\r\n this.logoUrl$ = this.themesStore.select(getlogoUrl);\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n {{ ('auth.handle-token.loading' | translate) }}\r\n \r\n
\r\n
\r\n
\r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AuthenticationApiService } from 'src/app/rest/api/authenticationApi.service';\r\nimport { Role } from '../../_models/role';\r\nimport { AuthService } from '../../_services';\r\n\r\n@Component({\r\n templateUrl: './navigate-to-flexportal-nl-shell.component.html',\r\n})\r\nexport class NavigateToFlexportalNLShellComponent implements OnInit {\r\n returnUrl: string;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private authenticationApiService: AuthenticationApiService,\r\n private authService: AuthService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.route.params.subscribe((params) => {\r\n this.returnUrl = params['returnUrl'];\r\n });\r\n // Get a token\r\n this.authenticationApiService.apiAuthenticationGenerateTokenPost(this.authService.currentUserValue.id).subscribe((data) => {\r\n // Compose url to flexportal.nl.\r\n const url = `${this.authService.getFlexportalNLUrl()}/handletoken/${data.token}?returnUrl=${this.returnUrl}`;\r\n // Logoff the current user.\r\n if (this.authService.currentUserValue.role === Role.Contact || this.authService.currentUserValue.role === Role.Flexworker) {\r\n this.authService.logout();\r\n }\r\n // Navigate to this url.\r\n window.location.href = url;\r\n });\r\n }\r\n}\r\n","\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AuthGuard } from './_guards/auth.guard';\r\nimport { AuthorizedGuard } from './_guards/authorized.guard';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\r\nimport { UpdatePasswordComponent } from './components/update-password/update-password.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { FrameModule } from '../frame/frame.module';\r\nimport { AccountSettingsComponent } from './components/account-settings/account-settings.component';\r\nimport { AccountSettingsShellComponent } from './containers/account-settings-shell/account-settings-shell.component';\r\nimport { ConfirmLeaveGuard } from '../shared/_components/confirm-leave/confirm-leave.guard';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { AuthEffects } from './state/auth.effects';\r\nimport { reducer } from './state/auth.reducer';\r\nimport { ForgotPasswordShellComponent } from './containers/forgot-password-shell/forgot-password-shell.component';\r\nimport { LoginShellComponent } from './containers/login-shell/login-shell.component';\r\nimport { UpdatePasswordShellComponent } from './containers/update-password-shell/update-password-shell.component';\r\nimport { HandleTokenShellComponent } from './containers/handle-token-shell/handle-token-shell.component';\r\nimport { HandleTokenComponent } from './components/handle-token/handle-token.component';\r\nimport { NavigateToFlexportalNLComponent } from './components/navigate-to-flexportal-nl/navigate-to-flexportal-nl.component';\r\nimport { NavigateToFlexportalNLShellComponent } from './containers/navigate-to-flexportal-nl-shell/navigate-to-flexportal-nl-shell.component';\r\nimport { LucideAngularModule, User, KeyRound, Loader, TriangleAlert } from 'lucide-angular';\r\n\r\n@NgModule({\r\n imports: [\r\n LucideAngularModule.pick({ User, KeyRound, Loader, TriangleAlert }),\r\n CommonModule,\r\n SharedModule,\r\n FormsModule,\r\n TranslateModule,\r\n FrameModule,\r\n StoreModule.forFeature('auth', reducer),\r\n EffectsModule.forFeature([AuthEffects]),\r\n RouterModule.forChild([\r\n { path: 'forgot-password', component: ForgotPasswordShellComponent },\r\n { path: 'login', component: LoginShellComponent },\r\n { path: 'update-password', component: UpdatePasswordShellComponent },\r\n { path: 'flexportalnl/:returnUrl', canActivate: [AuthGuard], component: NavigateToFlexportalNLShellComponent },\r\n {\r\n path: 'account-settings',\r\n component: AccountSettingsShellComponent,\r\n canActivate: [AuthGuard],\r\n canDeactivate: [ConfirmLeaveGuard],\r\n },\r\n {\r\n path: 'handletoken/:token',\r\n component: HandleTokenShellComponent,\r\n },\r\n ]),\r\n ],\r\n declarations: [\r\n ForgotPasswordComponent,\r\n ForgotPasswordShellComponent,\r\n LoginComponent,\r\n LoginShellComponent,\r\n UpdatePasswordComponent,\r\n UpdatePasswordShellComponent,\r\n AccountSettingsComponent,\r\n AccountSettingsShellComponent,\r\n ForgotPasswordShellComponent,\r\n HandleTokenComponent,\r\n HandleTokenShellComponent,\r\n NavigateToFlexportalNLComponent,\r\n NavigateToFlexportalNLShellComponent,\r\n ],\r\n})\r\nexport class AuthModule { }\r\n"],"x_google_ignoreList":[]}