{"version":3,"file":"freshfox-ng-auth.mjs","sources":["../../../../projects/freshfox/ng-auth/src/ui/tokens.ts","../../../../projects/freshfox/ng-auth/src/ui/auth-ui.service.ts","../../../../projects/freshfox/ng-auth/src/ui/public.component.ts","../../../../projects/freshfox/ng-auth/src/auth/types.ts","../../../../projects/freshfox/ng-auth/src/auth/auth.service.ts","../../../../projects/freshfox/ng-auth/src/ui/auth-provider-button.component.ts","../../../../projects/freshfox/ng-auth/src/ui/login-form.component.ts","../../../../projects/freshfox/ng-auth/src/ui/password-reset.component.ts","../../../../projects/freshfox/ng-auth/src/auth/public.guard.ts","../../../../projects/freshfox/ng-auth/src/auth/internal.guard.ts","../../../../projects/freshfox/ng-auth/src/auth/api-token.interceptor.ts","../../../../projects/freshfox/ng-auth/src/auth/auth.module.ts","../../../../projects/freshfox/ng-auth/src/ui/password-reset-confirm.component.ts","../../../../projects/freshfox/ng-auth/src/ui/login.component.ts","../../../../projects/freshfox/ng-auth/src/ui/auth-ui.module.ts","../../../../projects/freshfox/ng-auth/src/reauth/reauthentication.component.ts","../../../../projects/freshfox/ng-auth/src/reauth/reauthentication.service.ts","../../../../projects/freshfox/ng-auth/src/reauth/reauthentication.module.ts","../../../../projects/freshfox/ng-auth/src/public-api.ts","../../../../projects/freshfox/ng-auth/src/freshfox-ng-auth.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport enum FirebaseAuthProvider {\n\tEmail,\n\tGoogle,\n\tApple,\n\tFacebook,\n}\n\nexport const FF_AUTH_UI_TAGLINE = new InjectionToken<Observable<string>>('FF_AUTH_UI_TAGLINE');\nexport const FF_AUTH_UI_LOGO_PATH = new InjectionToken<string>('FF_AUTH_UI_LOGO_PATH');\nexport const FF_AUTH_UI_BACKGROUND_PATH = new InjectionToken<string>('FF_AUTH_UI_BACKGROUND_PATH');\nexport const FF_AUTH_UI_LOGIN_PROVIDERS = new InjectionToken<FirebaseAuthProvider[]>('FF_AUTH_UI_LOGIN_PROVIDERS');\nexport const FF_AUTH_UI_PASSWORD_RESET_ENABLED = new InjectionToken<FirebaseAuthProvider[]>(\n\t'FF_AUTH_UI_PASSWORD_RESET_ENABLED'\n);\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class AuthUiService {\n\treadonly asideWidth$ = new BehaviorSubject(AuthUiAsideWidth.TwoThirds);\n\n\tconstructor() {}\n}\n\nexport enum AuthUiAsideWidth {\n\tOneThird = 'one_third',\n\tHalf = 'half',\n\tTwoThirds = 'two_thirds',\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Inject, Input } from '@angular/core';\nimport { FF_AUTH_UI_BACKGROUND_PATH, FF_AUTH_UI_LOGO_PATH } from './tokens';\nimport { AuthUiAsideWidth, AuthUiService } from './auth-ui.service';\nimport { Observable } from 'rxjs';\n\n@Component({\n    selector: 'ff-public',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    styles: [\n        `\n\t\t\t.ff-public__content:after {\n\t\t\t\tcontent: '';\n\t\t\t\tflex: 1 1 0%;\n\t\t\t\tmargin-top: 16px;\n\t\t\t}\n\t\t`,\n    ],\n    template: `\n\t\t<div class=\"relative flex\">\n\t\t\t<ng-container *ngIf=\"asideWidth$ | async as asideWidth\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"hidden transition-[flex-basis] duration-500\t trans md:block\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'md:flex-[0_0_50%]': asideWidth === AuthUiAsideWidth.Half,\n\t\t\t\t\t\t'md:flex-[0_0_33%]': asideWidth === AuthUiAsideWidth.OneThird,\n\t\t\t\t\t\t'md:flex-[0_0_50%] xl:flex-[0_0_60%]': asideWidth === AuthUiAsideWidth.TwoThirds\n\t\t\t\t\t}\">\n\t\t\t\t\t<img\n\t\t\t\t\t\tclass=\"w-full h-full object-cover ff-public__background\"\n\t\t\t\t\t\t*ngIf=\"backgroundPath\"\n\t\t\t\t\t\t[src]=\"backgroundPath\"\n\t\t\t\t\t\talt=\"Background\" />\n\t\t\t\t\t<ng-content select=\"[ffPublicAside]\"></ng-content>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\n\t\t\t<div\n\t\t\t\tclass=\"w-full transition-[flex-basis] duration-500 flex flex-col min-h-screen h-full ff-public__content\">\n\t\t\t\t<div class=\"flex-1\">\n\t\t\t\t\t<div class=\"flex items-center px-4 h-16 lg:h-20 lg:px-10\">\n\t\t\t\t\t\t<img class=\"h-auto w-[var(--ff-auth-logo-size)]\" [src]=\"logoPath\" *ngIf=\"logoPath\" alt=\"Logo\" />\n\t\t\t\t\t\t<ng-content select=\"[ffPublicTop]\"></ng-content>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"w-full relative\">\n\t\t\t\t\t<router-outlet *ngIf=\"routerMode\"></router-outlet>\n\t\t\t\t\t<ng-content></ng-content>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`,\n    standalone: false\n})\nexport class PublicComponent {\n\t@Input() routerMode = true;\n\n\t@HostBinding('class') clazz = 'ff-public block bg-white dark:bg-gray-900';\n\n\tasideWidth$: Observable<AuthUiAsideWidth>;\n\tAuthUiAsideWidth = AuthUiAsideWidth;\n\n\tconstructor(\n\t\t@Inject(FF_AUTH_UI_BACKGROUND_PATH) public backgroundPath: string,\n\t\t@Inject(FF_AUTH_UI_LOGO_PATH) public logoPath: string,\n\t\tprivate authUiService: AuthUiService\n\t) {\n\t\tthis.asideWidth$ = authUiService.asideWidth$;\n\t}\n}\n","import { InjectionToken } from '@angular/core';\nexport const FIREBASE_AUTH_INSTANCE = new InjectionToken('FIREBASE_AUTH_INSTANCE');\n","import { Inject, Injectable } from '@angular/core';\nimport { from, Observable, of, ReplaySubject } from 'rxjs';\nimport { first, map, switchMap } from 'rxjs/operators';\nimport {\n\tEmailAuthProvider,\n\tFacebookAuthProvider,\n\tGoogleAuthProvider,\n\tOAuthProvider,\n\treauthenticateWithCredential,\n\tUserCredential,\n\tUser,\n\tAuth,\n\tonAuthStateChanged,\n\tsignInWithEmailAndPassword,\n\tsignInWithCustomToken,\n\tcreateUserWithEmailAndPassword,\n\tsignInWithRedirect,\n\tgetRedirectResult,\n\tupdateEmail,\n\tsignOut,\n\tsendPasswordResetEmail,\n\tconfirmPasswordReset,\n} from 'firebase/auth';\nimport { FIREBASE_AUTH_INSTANCE } from './types';\n\n@Injectable()\nexport class AuthService {\n\tauthState = new ReplaySubject<User | null>(1);\n\n\tconstructor(@Inject(FIREBASE_AUTH_INSTANCE) private readonly auth: Auth) {\n\t\tif (auth) {\n\t\t\tonAuthStateChanged(this.auth, (user) => {\n\t\t\t\tthis.authState.next(user || null);\n\t\t\t});\n\t\t}\n\t}\n\n\tlogin(email: string, password: string): Observable<any> {\n\t\treturn from(signInWithEmailAndPassword(this.auth, email, password)).pipe(\n\t\t\tmap((result) => {\n\t\t\t\treturn result;\n\t\t\t})\n\t\t);\n\t}\n\n\tloginWithCustomToken(token: string) {\n\t\treturn from(signInWithCustomToken(this.auth, token));\n\t}\n\n\tsignInWithOAuth(providerId: string) {\n\t\treturn from(signInWithRedirect(this.auth, new OAuthProvider(providerId)));\n\t}\n\n\tsignUp(email: string, password: string): Observable<UserCredential> {\n\t\treturn from(createUserWithEmailAndPassword(this.auth, email, password));\n\t}\n\n\tsignInWithGoogle() {\n\t\treturn signInWithRedirect(this.auth, new GoogleAuthProvider());\n\t}\n\n\tsignInWithApple(locale?: string) {\n\t\tconst provider = new OAuthProvider('apple.com');\n\t\tprovider.addScope('email');\n\t\tprovider.addScope('name');\n\t\tif (locale) {\n\t\t\tprovider.setCustomParameters({ locale });\n\t\t}\n\t\treturn signInWithRedirect(this.auth, provider);\n\t}\n\n\tsignInWithFacebook() {\n\t\treturn signInWithRedirect(this.auth, new FacebookAuthProvider());\n\t}\n\n\tgetRedirectResult() {\n\t\treturn getRedirectResult(this.auth);\n\t}\n\n\tupdateEmail(newEmail: string) {\n\t\treturn this.authState.pipe(\n\t\t\tswitchMap((user) => {\n\t\t\t\treturn updateEmail(user, newEmail);\n\t\t\t})\n\t\t);\n\t}\n\n\tlogout(): Observable<any> {\n\t\treturn from(signOut(this.auth));\n\t}\n\n\tresetPassword(email: string) {\n\t\treturn from(sendPasswordResetEmail(this.auth, email));\n\t}\n\n\tconfirmPasswordReset(token: string, newPassword: string) {\n\t\treturn from(confirmPasswordReset(this.auth, token, newPassword));\n\t}\n\n\tisLoggedIn(): Observable<boolean> {\n\t\treturn this.authState.pipe(map((auth) => !!auth));\n\t}\n\n\tgetAuthToken(forceRefresh?: boolean): Observable<string> {\n\t\treturn this.authState.pipe(\n\t\t\tswitchMap((user) => {\n\t\t\t\treturn user?.getIdToken(forceRefresh) || of(null);\n\t\t\t})\n\t\t);\n\t}\n\n\treauthenticate(password: string) {\n\t\treturn this.authState.pipe(first()).pipe(\n\t\t\tswitchMap((state) => {\n\t\t\t\tconst credential = EmailAuthProvider.credential(state.email, password);\n\t\t\t\treturn reauthenticateWithCredential(state, credential);\n\t\t\t})\n\t\t);\n\t}\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n    selector: 'ff-social-button',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    template: `\n\t\t<button (click)=\"click.emit()\" class=\"ff-social-button {{ buttonClass }}\">\n\t\t\t<ng-container [ngSwitch]=\"provider\">\n\t\t\t\t<img\n\t\t\t\t\t*ngSwitchCase=\"'google'\"\n\t\t\t\t\tsrc=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMiA2LjQ4QzEzLjY5IDYuNDggMTQuODMgNy4yMSAxNS40OCA3LjgyTDE4LjAyIDUuMzRDMTYuNDYgMy44OSAxNC40MyAzIDEyIDNDOC40Nzk5NiAzIDUuNDM5OTYgNS4wMiAzLjk1OTk2IDcuOTZMNi44Njk5NiAxMC4yMkM3LjU5OTk2IDguMDUgOS42MTk5NiA2LjQ4IDEyIDYuNDhaIiBmaWxsPSIjRUE0MzM1Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuNjQgMTIuMkMyMC42NCAxMS40NiAyMC41OCAxMC45MiAyMC40NSAxMC4zNkgxMlYxMy43SDE2Ljk2QzE2Ljg2IDE0LjUzIDE2LjMyIDE1Ljc4IDE1LjEyIDE2LjYyTDE3Ljk2IDE4LjgyQzE5LjY2IDE3LjI1IDIwLjY0IDE0Ljk0IDIwLjY0IDEyLjJaIiBmaWxsPSIjNDI4NUY0Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNi44OCAxMy43OEM2LjY5IDEzLjIyIDYuNTggMTIuNjIgNi41OCAxMkM2LjU4IDExLjM4IDYuNjkgMTAuNzggNi44NyAxMC4yMkwzLjk2IDcuOTU5OTZDMy4zNSA5LjE3OTk2IDMgMTAuNTUgMyAxMkMzIDEzLjQ1IDMuMzUgMTQuODIgMy45NiAxNi4wNEw2Ljg4IDEzLjc4WiIgZmlsbD0iI0ZCQkMwNSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExLjk5OTcgMjFDMTQuNDI5NyAyMSAxNi40Njk3IDIwLjIgMTcuOTU5NyAxOC44MkwxNS4xMTk3IDE2LjYyQzE0LjM1OTcgMTcuMTUgMTMuMzM5NyAxNy41MiAxMS45OTk3IDE3LjUyQzkuNjE5NzMgMTcuNTIgNy41OTk3MyAxNS45NSA2Ljg3OTczIDEzLjc4TDMuOTY5NzMgMTYuMDRDNS40NDk3MyAxOC45OCA4LjQ3OTczIDIxIDExLjk5OTcgMjFaIiBmaWxsPSIjMzRBODUzIi8+Cjwvc3ZnPgo=\"\n\t\t\t\t\talt=\"Google Logo\" />\n\t\t\t\t<img\n\t\t\t\t\t*ngSwitchCase=\"'apple'\"\n\t\t\t\t\tsrc=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI2ZmZmZmZiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIyIDE3LjYwN0MyMS4yMTQgMTkuODg3IDE4Ljg2MSAyMy45MjQgMTYuNDM3IDIzLjk2OEMxNC44MjkgMjMuOTk5IDE0LjMxMiAyMy4wMTUgMTIuNDc0IDIzLjAxNUMxMC42MzcgMjMuMDE1IDEwLjA2MiAyMy45MzggOC41NDIgMjMuOTk4QzUuOTcgMjQuMDk3IDIgMTguMTcxIDIgMTMuMDAzQzIgOC4yNTYgNS4zMDggNS45MDMgOC4xOTggNS44NkM5Ljc0OCA1LjgzMiAxMS4yMTIgNi45MDUgMTIuMTU3IDYuOTA1QzEzLjEwNiA2LjkwNSAxNC44ODQgNS42MTUgMTYuNzUzIDUuODA0QzE3LjUzNSA1LjgzNyAxOS43MzIgNi4xMTkgMjEuMTQyIDguMTgxQzE3LjQwMSAxMC42MjMgMTcuOTg0IDE1LjczIDIyIDE3LjYwN1pNMTYuNzc4IDBDMTMuOTUyIDAuMTE0IDExLjY0NiAzLjA3OSAxMS45NjggNS41MzFDMTQuNTggNS43MzQgMTcuMDg2IDIuODA2IDE2Ljc3OCAwWiIgLz4KPC9zdmc+Cg==\"\n\t\t\t\t\talt=\"Apple Logo\" />\n\t\t\t\t<img\n\t\t\t\t\t*ngSwitchCase=\"'facebook'\"\n\t\t\t\t\tsrc=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xOCA5LjA1NTAzQzE4IDQuMDU0MDcgMTMuOTcwNiAwIDkgMEM0LjAyOTQzIDAgMCA0LjA1NDA3IDAgOS4wNTUwM0MwIDEzLjU3NDcgMy4yOTExNyAxNy4zMjA3IDcuNTkzNzUgMThWMTEuNjcyNUg1LjMwODU5VjkuMDU1MDNINy41OTM3NVY3LjA2MDA5QzcuNTkzNzUgNC43OTA2OCA4LjkzNzM5IDMuNTM3MTIgMTAuOTkzMiAzLjUzNzEyQzExLjk3NzkgMy41MzcxMiAxMy4wMDc4IDMuNzEzOTggMTMuMDA3OCAzLjcxMzk4VjUuOTQyMzZIMTEuODcyOUMxMC43NTQ5IDUuOTQyMzYgMTAuNDA2MiA2LjY0MDM2IDEwLjQwNjIgNy4zNTY0NVY5LjA1NTAzSDEyLjkwMjNMMTIuNTAzMyAxMS42NzI1SDEwLjQwNjJWMThDMTQuNzA4OCAxNy4zMjA3IDE4IDEzLjU3NDcgMTggOS4wNTUwM1oiIGZpbGw9IiNGQUZBRkEiLz4KPC9zdmc+Cg==\"\n\t\t\t\t\talt=\"Facebook Logo\" />\n\t\t\t</ng-container>\n\n\t\t\t<span *ngIf=\"type === 'login'\">{{\n\t\t\t\t'ff-auth.provider-button.login' | translate : { provider: providerName }\n\t\t\t}}</span>\n\t\t\t<span *ngIf=\"type === 'signup'\">{{\n\t\t\t\t'ff-auth.provider-button.signup' | translate : { provider: providerName }\n\t\t\t}}</span>\n\t\t</button>\n\t`,\n    host: {\n        class: 'block',\n    },\n    standalone: false\n})\nexport class AuthProviderButtonComponent implements OnInit {\n\t@Input() type: AuthProviderButtonAuthType = 'login';\n\t@Input() provider: AuthProviderButtonProviderType = 'google';\n\n\t@Output() click = new EventEmitter();\n\n\tproviderName: string;\n\tbuttonClass: string;\n\n\tconstructor() {}\n\n\tngOnInit() {\n\t\tthis.providerName = AuthProviderButtonComponent.getAuthProviderName(this.provider);\n\t\tthis.buttonClass = AuthProviderButtonComponent.getButtonClass(this.provider);\n\t}\n\n\tprivate static getButtonClass(provider: AuthProviderButtonProviderType) {\n\t\tswitch (provider) {\n\t\t\tcase 'google':\n\t\t\t\treturn 'ff-social-button--google';\n\t\t\tcase 'apple':\n\t\t\t\treturn 'ff-social-button--apple';\n\t\t\tcase 'facebook':\n\t\t\t\treturn 'ff-social-button--facebook';\n\t\t}\n\t}\n\n\tprivate static getAuthProviderName(provider: AuthProviderButtonProviderType): string {\n\t\tswitch (provider) {\n\t\t\tcase 'apple':\n\t\t\t\treturn 'Apple';\n\t\t\tcase 'facebook':\n\t\t\t\treturn 'Facebook';\n\t\t\tcase 'google':\n\t\t\t\treturn 'Google';\n\t\t}\n\t}\n}\n\nexport type AuthProviderButtonProviderType = 'facebook' | 'apple' | 'google';\nexport type AuthProviderButtonAuthType = 'login' | 'signup';\n","import { ChangeDetectionStrategy, Component, EventEmitter, Inject, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AuthService } from '../auth/auth.service';\nimport { SnackBarService } from '@freshfox/ng-core';\nimport { BehaviorSubject } from 'rxjs';\nimport { FF_AUTH_UI_LOGIN_PROVIDERS, FF_AUTH_UI_PASSWORD_RESET_ENABLED, FirebaseAuthProvider } from './tokens';\n\n@Component({\n    selector: 'ff-login-form',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    template: `\n\t\t<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" *ngIf=\"emailProviderEnabled\">\n\t\t\t<ff-input\n\t\t\t\t[placeholder]=\"'ff-auth.email' | translate\"\n\t\t\t\t[size]=\"'large'\"\n\t\t\t\ttype=\"email\"\n\t\t\t\t[formControl]=\"form.controls.username\"></ff-input>\n\n\t\t\t<ff-input\n\t\t\t\t[placeholder]=\"'ff-auth.password' | translate\"\n\t\t\t\t[size]=\"'large'\"\n\t\t\t\t[formControl]=\"form.controls.password\"\n\t\t\t\ttype=\"password\"></ff-input>\n\n\t\t\t<div class=\"flex items-center\">\n\t\t\t\t<a\n\t\t\t\t\t[routerLink]=\"['/password-reset']\"\n\t\t\t\t\tclass=\"text-sm text-gray-500 dark:text-gray-400 underline\"\n\t\t\t\t\t*ngIf=\"passwordResetEnabled\"\n\t\t\t\t\t>{{ 'ff-auth.login.reset-password' | translate }}</a\n\t\t\t\t>\n\n\t\t\t\t<button\n\t\t\t\t\tff-button\n\t\t\t\t\t(click)=\"onSubmit()\"\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t[loading]=\"loading$ | async\"\n\t\t\t\t\tclass=\"ml-auto\">\n\t\t\t\t\t{{ 'ff-auth.login.submit' | translate }}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</form>\n\n\t\t<ng-container *ngIf=\"socialProviders.length\">\n\t\t\t<hr\n\t\t\t\tclass=\"h-0 border-t border-solid border-gray-200 dark:border-gray-600 my-8\"\n\t\t\t\t*ngIf=\"emailProviderEnabled\" />\n\n\t\t\t<div class=\"space-y-4\">\n\t\t\t\t<ff-social-button\n\t\t\t\t\t[type]=\"'login'\"\n\t\t\t\t\t[provider]=\"'google'\"\n\t\t\t\t\t*ngIf=\"googleEnabled\"\n\t\t\t\t\t(click)=\"signInWithGoogle()\"></ff-social-button>\n\t\t\t\t<ff-social-button\n\t\t\t\t\t[type]=\"'login'\"\n\t\t\t\t\t[provider]=\"'apple'\"\n\t\t\t\t\t*ngIf=\"appleEnabled\"\n\t\t\t\t\t(click)=\"signInWithApple()\"></ff-social-button>\n\t\t\t\t<ff-social-button\n\t\t\t\t\t[type]=\"'login'\"\n\t\t\t\t\t[provider]=\"'facebook'\"\n\t\t\t\t\t*ngIf=\"facebookEnabled\"\n\t\t\t\t\t(click)=\"signInWithFacebook()\"></ff-social-button>\n\t\t\t</div>\n\t\t</ng-container>\n\n\t\t<div class=\"ff-auth__after-form\">\n\t\t\t<ng-content select=\"[after-form]\"></ng-content>\n\t\t</div>\n\t`,\n    standalone: false\n})\nexport class LoginFormComponent implements OnInit {\n\tloading$ = new BehaviorSubject(false);\n\tform: FormGroup<LoginForm>;\n\n\temailProviderEnabled = false;\n\tsocialProviders: FirebaseAuthProvider[];\n\tgoogleEnabled = false;\n\tappleEnabled = false;\n\tfacebookEnabled = false;\n\n\t@Output() loginSuccess = new EventEmitter();\n\n\tconstructor(\n\t\tprivate authService: AuthService,\n\t\tprivate fb: FormBuilder,\n\t\tprivate snackbarService: SnackBarService,\n\t\t@Inject(FF_AUTH_UI_LOGIN_PROVIDERS) protected providers: FirebaseAuthProvider[],\n\t\t@Inject(FF_AUTH_UI_PASSWORD_RESET_ENABLED) protected passwordResetEnabled: boolean,\n\t\tprivate translate: TranslateService\n\t) {\n\t\tthis.emailProviderEnabled = this.providers.includes(FirebaseAuthProvider.Email);\n\t\tthis.googleEnabled = this.providers.includes(FirebaseAuthProvider.Google);\n\t\tthis.appleEnabled = this.providers.includes(FirebaseAuthProvider.Apple);\n\t\tthis.facebookEnabled = this.providers.includes(FirebaseAuthProvider.Facebook);\n\t\tthis.socialProviders = this.providers.filter((p) => p !== FirebaseAuthProvider.Email);\n\t}\n\n\tngOnInit() {\n\t\tthis.form = this.fb.group({\n\t\t\tusername: ['', Validators.compose([Validators.required, Validators.email])],\n\t\t\tpassword: ['', Validators.required],\n\t\t});\n\t}\n\n\tonSubmit() {\n\t\tthis.form.markAllAsTouched();\n\t\tif (this.form.valid) {\n\t\t\tconst data = this.form.value;\n\t\t\tthis.loading$.next(true);\n\t\t\tthis.authService.login(data.username, data.password).subscribe(\n\t\t\t\t() => {\n\t\t\t\t\tthis.loginSuccess.emit();\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tlet alertMessage;\n\t\t\t\t\tswitch (error.code) {\n\t\t\t\t\t\tcase 'auth/network-request-failed':\n\t\t\t\t\t\t\talertMessage = this.translate.instant('ff-auth.login.errors.network-request-failed');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'auth/invalid-email':\n\t\t\t\t\t\t\talertMessage = this.translate.instant('ff-auth.login.errors.invalid-email');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'auth/user-not-found':\n\t\t\t\t\t\t\talertMessage = this.translate.instant('ff-auth.login.errors.user-not-found');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'auth/wrong-password':\n\t\t\t\t\t\t\talertMessage = this.translate.instant('ff-auth.login.errors.wrong-password');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'auth/too-many-requests':\n\t\t\t\t\t\t\talertMessage = this.translate.instant('ff-auth.login.errors.too-many-attempts');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'auth/email-already-in-use':\n\t\t\t\t\t\t\talertMessage = this.translate.instant('ff-auth.login.errors.email-already-in-use');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.snackbarService.error(alertMessage, null, {\n\t\t\t\t\t\tduration: 4000,\n\t\t\t\t\t});\n\t\t\t\t\tthis.loading$.next(false);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\tsignInWithGoogle() {\n\t\tthis.authService.signInWithGoogle();\n\t}\n\n\tsignInWithApple() {\n\t\tthis.authService.signInWithApple();\n\t}\n\n\tsignInWithFacebook() {\n\t\tthis.authService.signInWithFacebook();\n\t}\n}\n\ninterface LoginForm {\n\tusername: FormControl<string>;\n\tpassword: FormControl<string>;\n}\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { take } from 'rxjs/operators';\nimport { AuthService } from '../auth/auth.service';\nimport { SnackBarService } from '@freshfox/ng-core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n    selector: 'ff-password-reset',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    template: `\n\t\t<form class=\"ff-auth__default-form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n\t\t\t<h1 class=\"ff-auth__form-title\">\n\t\t\t\t{{ 'ff-auth.reset.title' | translate }}\n\t\t\t</h1>\n\n\t\t\t<ff-input\n\t\t\t\ttype=\"email\"\n\t\t\t\t[placeholder]=\"'ff-auth.email' | translate\"\n\t\t\t\t[size]=\"'large'\"\n\t\t\t\t[formControl]=\"form.controls['email']\"></ff-input>\n\n\t\t\t<div class=\"flex items-center\">\n\t\t\t\t<a [routerLink]=\"['/login']\" class=\"text-sm text-gray-500 dark:text-gray-400 underline\">{{\n\t\t\t\t\t'ff-auth.back-to-login' | translate\n\t\t\t\t}}</a>\n\n\t\t\t\t<button\n\t\t\t\t\tff-button\n\t\t\t\t\t(click)=\"onSubmit()\"\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t[loading]=\"loading$ | async\"\n\t\t\t\t\tclass=\"ml-auto\">\n\t\t\t\t\t{{ 'ff-auth.reset.submit' | translate }}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</form>\n\t`,\n    standalone: false\n})\nexport class PasswordResetComponent implements OnInit {\n\tform: UntypedFormGroup;\n\tloading$ = new BehaviorSubject(false);\n\n\tconstructor(\n\t\tprivate authService: AuthService,\n\t\tprivate snackbar: SnackBarService,\n\t\tprivate fb: UntypedFormBuilder,\n\t\tprivate translate: TranslateService\n\t) {}\n\n\tngOnInit() {\n\t\tthis.form = this.fb.group({\n\t\t\temail: ['', Validators.compose([Validators.required, Validators.email])],\n\t\t});\n\t}\n\n\tonSubmit() {\n\t\tthis.form.markAllAsTouched();\n\t\tif (this.form.valid) {\n\t\t\tthis.loading$.next(true);\n\t\t\tthis.authService\n\t\t\t\t.resetPassword(this.form.value.email)\n\t\t\t\t.pipe(take(1))\n\t\t\t\t.subscribe(\n\t\t\t\t\t() => {\n\t\t\t\t\t\tthis.loading$.next(false);\n\t\t\t\t\t\tthis.snackbar.success(this.translate.instant('ff-auth.reset.success'));\n\t\t\t\t\t},\n\t\t\t\t\t() => {\n\t\t\t\t\t\tthis.loading$.next(false);\n\t\t\t\t\t\tthis.snackbar.error(this.translate.instant('ff-auth.reset.error'));\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t}\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { catchError, map } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { AuthService } from './auth.service';\n\n@Injectable()\nexport class PublicGuard  {\n\tconstructor(private authService: AuthService, private router: Router) {}\n\n\tcanActivate() {\n\t\treturn this.authService.isLoggedIn().pipe(\n\t\t\tmap((loggedIn) => {\n\t\t\t\tif (loggedIn) {\n\t\t\t\t\tthis.router.navigate(['/']);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}),\n\t\t\tcatchError((err) => {\n\t\t\t\treturn of(true);\n\t\t\t})\n\t\t);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { catchError, map } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { AuthService } from './auth.service';\n\n@Injectable()\nexport class InternalGuard  {\n\tconstructor(private authService: AuthService, private router: Router) {}\n\n\tcanActivate() {\n\t\treturn this.authService.isLoggedIn().pipe(\n\t\t\tmap((loggedIn) => {\n\t\t\t\tif (loggedIn) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tthis.router.navigate(['/login']);\n\t\t\t\treturn false;\n\t\t\t}),\n\t\t\tcatchError((error) => {\n\t\t\t\tthis.router.navigate(['/login']);\n\t\t\t\treturn of(false);\n\t\t\t})\n\t\t);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { AuthService } from './auth.service';\nimport { catchError, switchMap } from 'rxjs/operators';\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n\tconstructor(private authService: AuthService) {}\n\n\tintercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n\t\treturn this.authService\n\t\t\t.getAuthToken()\n\t\t\t.pipe(\n\t\t\t\tswitchMap((token) => {\n\t\t\t\t\tif (!token) {\n\t\t\t\t\t\treturn next.handle(req);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Clone the request to add the new header.\n\t\t\t\t\tconst authReq = req.clone({ headers: req.headers.set('Authorization', `Bearer ${token}`) });\n\t\t\t\t\t// Pass on the cloned request instead of the original request.\n\t\t\t\t\treturn next.handle(authReq);\n\t\t\t\t})\n\t\t\t)\n\t\t\t.pipe(\n\t\t\t\tcatchError((error) => {\n\t\t\t\t\tif (error instanceof HttpErrorResponse) {\n\t\t\t\t\t\tswitch ((error as HttpErrorResponse).status) {\n\t\t\t\t\t\t\tcase 401:\n\t\t\t\t\t\t\t\tthis.authService.logout();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn throwError(error);\n\t\t\t\t})\n\t\t\t);\n\t}\n}\n","import {\n\tExistingSansProvider,\n\tFactorySansProvider,\n\tModuleWithProviders,\n\tNgModule,\n\tValueSansProvider,\n} from '@angular/core';\nimport { PublicGuard } from './public.guard';\nimport { InternalGuard } from './internal.guard';\nimport { AuthService } from './auth.service';\nimport { Firestore } from 'firebase/firestore';\nimport { FIREBASE_AUTH_INSTANCE } from './types';\n\nexport * from './auth.service';\nexport * from './internal.guard';\nexport * from './public.guard';\nexport * from './api-token.interceptor';\nexport { FIREBASE_AUTH_INSTANCE } from './types';\n\n@NgModule({\n\timports: [],\n\tproviders: [PublicGuard, InternalGuard, AuthService],\n})\nexport class FFAuthModule {\n\tstatic forRoot(instance: Firestore): ModuleWithProviders<FFAuthModule> {\n\t\treturn this.forRootAsync({\n\t\t\tuseValue: instance,\n\t\t});\n\t}\n\n\tstatic forRootAsync(firestoreProvider: AsyncProvider): ModuleWithProviders<FFAuthModule> {\n\t\treturn {\n\t\t\tngModule: FFAuthModule,\n\t\t\tproviders: [\n\t\t\t\t{\n\t\t\t\t\tprovide: FIREBASE_AUTH_INSTANCE,\n\t\t\t\t\t...firestoreProvider,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n}\n\ntype AsyncProvider = FactorySansProvider | ExistingSansProvider | ValueSansProvider;\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { first } from 'rxjs/operators';\nimport { AuthService } from '../auth/auth.service';\nimport { formValidatorEqual, SnackBarService } from '@freshfox/ng-core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n    selector: 'ff-password-reset-confirm',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    template: `\n\t\t<form class=\"ff-auth__default-form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n\t\t\t<ng-container *ngIf=\"token$ | async\">\n\t\t\t\t<h1 class=\"ff-auth__form-title\">{{ 'ff-auth.reset-confirm.title' | translate }}</h1>\n\t\t\t\t<ff-input\n\t\t\t\t\ttype=\"password\"\n\t\t\t\t\t[placeholder]=\"'ff-auth.password' | translate\"\n\t\t\t\t\t[size]=\"'large'\"\n\t\t\t\t\t[formControl]=\"form.controls.password\"></ff-input>\n\n\t\t\t\t<ff-input\n\t\t\t\t\ttype=\"password\"\n\t\t\t\t\t[placeholder]=\"'ff-auth.password-confirm' | translate\"\n\t\t\t\t\t[size]=\"'large'\"\n\t\t\t\t\t[formControl]=\"form.controls.passwordConfirm\"></ff-input>\n\n\t\t\t\t<div class=\"flex items-center\">\n\t\t\t\t\t<a [routerLink]=\"['/login']\" class=\"text-sm text-gray-500 dark:text-gray-400 underline\">{{\n\t\t\t\t\t\t'ff-auth.back-to-login' | translate\n\t\t\t\t\t}}</a>\n\n\t\t\t\t\t<button\n\t\t\t\t\t\tff-button\n\t\t\t\t\t\t(click)=\"onSubmit()\"\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t[loading]=\"loading$ | async\"\n\t\t\t\t\t\tclass=\"ml-auto\">\n\t\t\t\t\t\t{{ 'ff-auth.reset-confirm.submit' | translate }}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\n\t\t\t<ng-container *ngIf=\"(token$ | async) === null\">\n\t\t\t\t<div class=\"rounded-md bg-red-50 p-4 mb-4\">\n\t\t\t\t\t<span class=\"text-red-800\">\n\t\t\t\t\t\t{{ 'ff-auth.reset-confirm.missing-token' | translate }}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t<a [routerLink]=\"['/login']\" class=\"text-sm text-gray-500 underline\">{{\n\t\t\t\t\t'ff-auth.back-to-login' | translate\n\t\t\t\t}}</a>\n\t\t\t</ng-container>\n\t\t</form>\n\t`,\n    standalone: false\n})\nexport class PasswordResetConfirmComponent implements OnInit {\n\tform: UntypedFormGroup;\n\tloading$ = new BehaviorSubject(false);\n\n\ttoken$ = new BehaviorSubject<string>(null);\n\n\tconstructor(\n\t\tprivate authService: AuthService,\n\t\tprivate snackbar: SnackBarService,\n\t\tprivate fb: UntypedFormBuilder,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate router: Router,\n\t\tprivate translate: TranslateService\n\t) {}\n\n\tngOnInit() {\n\t\tthis.form = this.fb.group(\n\t\t\t{\n\t\t\t\tpassword: ['', Validators.compose([Validators.required, Validators.minLength(6)])],\n\t\t\t\tpasswordConfirm: ['', Validators.compose([Validators.required, Validators.minLength(6)])],\n\t\t\t},\n\t\t\t{ validators: [formValidatorEqual] }\n\t\t);\n\n\t\tthis.route.queryParams.pipe(first()).subscribe((params) => {\n\t\t\tif (params.oobCode) {\n\t\t\t\tthis.token$.next(params.oobCode);\n\t\t\t}\n\t\t});\n\t}\n\n\tonSubmit() {\n\t\tthis.form.markAllAsTouched();\n\t\tif (this.form.valid) {\n\t\t\tthis.loading$.next(true);\n\t\t\tthis.authService\n\t\t\t\t.confirmPasswordReset(this.token$.value, this.form.value.password)\n\t\t\t\t.pipe(first())\n\t\t\t\t.subscribe(\n\t\t\t\t\t() => {\n\t\t\t\t\t\tthis.loading$.next(false);\n\t\t\t\t\t\tthis.snackbar.success(this.translate.instant('ff-auth.reset-confirm.success'));\n\t\t\t\t\t\tthis.router.navigate(['/login']);\n\t\t\t\t\t},\n\t\t\t\t\t(error) => {\n\t\t\t\t\t\tlet key = 'generic';\n\t\t\t\t\t\tswitch (error.code) {\n\t\t\t\t\t\t\tcase 'auth/expired-action-code':\n\t\t\t\t\t\t\t\tkey = 'expired-action-code';\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'auth/invalid-action-code':\n\t\t\t\t\t\t\t\tkey = 'invalid-action-code';\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'auth/user-disabled':\n\t\t\t\t\t\t\t\tkey = 'user-disabled';\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'auth/user-not-found':\n\t\t\t\t\t\t\t\tkey = 'user-not-found';\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'auth/weak-password':\n\t\t\t\t\t\t\t\tkey = 'weak-password';\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.loading$.next(false);\n\t\t\t\t\t\tconst errorMessage = this.translate.instant('ff-auth.reset-confirm.errors.' + key);\n\t\t\t\t\t\tthis.snackbar.error(errorMessage);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t}\n\t}\n}\n","import { ChangeDetectionStrategy, Component, Inject, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { FF_AUTH_UI_TAGLINE } from './tokens';\nimport { Observable } from 'rxjs';\n\n@Component({\n    selector: 'ff-login',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    template: `\n\t\t<div class=\"ff-auth__default-form\">\n\t\t\t<h1 class=\"ff-auth__form-title\" *ngIf=\"tagline$ | async as tagline\">\n\t\t\t\t{{ tagline }}\n\t\t\t</h1>\n\t\t\t<ff-login-form (loginSuccess)=\"loginSuccess()\"></ff-login-form>\n\t\t</div>\n\t`,\n    standalone: false\n})\nexport class LoginComponent implements OnInit {\n\tconstructor(private router: Router, @Inject(FF_AUTH_UI_TAGLINE) public tagline$: Observable<string>) {}\n\n\tngOnInit() {}\n\n\tloginSuccess() {\n\t\tthis.router.navigateByUrl('/');\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { PublicComponent } from './public.component';\nimport { LoginFormComponent } from './login-form.component';\nimport { CommonModule } from '@angular/common';\nimport { PasswordResetComponent } from './password-reset.component';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { RouterModule } from '@angular/router';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FFButtonModule, FFInputModule, FFSnackbarModule } from '@freshfox/ng-core';\nimport { FFAuthModule } from '../auth/auth.module';\nimport {\n\tFF_AUTH_UI_BACKGROUND_PATH,\n\tFF_AUTH_UI_LOGIN_PROVIDERS,\n\tFF_AUTH_UI_LOGO_PATH,\n\tFF_AUTH_UI_PASSWORD_RESET_ENABLED,\n\tFF_AUTH_UI_TAGLINE,\n\tFirebaseAuthProvider,\n} from './tokens';\nimport { PasswordResetConfirmComponent } from './password-reset-confirm.component';\nimport { AuthProviderButtonComponent } from './auth-provider-button.component';\n\nimport de from '../i18n/de.json';\nimport en from '../i18n/en.json';\nimport { AuthUiService } from './auth-ui.service';\nimport { LoginComponent } from './login.component';\nimport { MatButtonModule } from '@angular/material/button';\n\nexport * from './login-form.component';\nexport * from './login.component';\nexport * from './password-reset.component';\nexport * from './password-reset-confirm.component';\nexport * from './public.component';\nexport * from './auth-provider-button.component';\nexport * from './tokens';\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tMatButtonModule,\n\t\tTranslateModule,\n\t\tRouterModule,\n\t\tFormsModule,\n\t\tReactiveFormsModule,\n\t\tFFSnackbarModule,\n\t\tFFInputModule,\n\t\tFFAuthModule,\n\t\tFFButtonModule,\n\t],\n\texports: [\n\t\tPublicComponent,\n\t\tLoginComponent,\n\t\tLoginFormComponent,\n\t\tPasswordResetComponent,\n\t\tPasswordResetConfirmComponent,\n\t\tAuthProviderButtonComponent,\n\t],\n\tdeclarations: [\n\t\tPublicComponent,\n\t\tLoginComponent,\n\t\tLoginFormComponent,\n\t\tPasswordResetComponent,\n\t\tPasswordResetConfirmComponent,\n\t\tAuthProviderButtonComponent,\n\t],\n\tproviders: [\n\t\t{ provide: FF_AUTH_UI_TAGLINE, useValue: null },\n\t\t{ provide: FF_AUTH_UI_LOGIN_PROVIDERS, useValue: [FirebaseAuthProvider.Email] },\n\t\t{ provide: FF_AUTH_UI_LOGO_PATH, useValue: 'assets/images/login/logo.svg' },\n\t\t{ provide: FF_AUTH_UI_BACKGROUND_PATH, useValue: 'assets/images/login/bg.jpg' },\n\t\t{ provide: FF_AUTH_UI_PASSWORD_RESET_ENABLED, useValue: true },\n\t\tAuthUiService,\n\t],\n})\nexport class FFAuthUserInterfaceModule {\n\tconstructor(private translate: TranslateService) {\n\t\tthis.translate.setTranslation('de', de, true);\n\t\tthis.translate.setTranslation('en', en, true);\n\t}\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { AuthService } from '../auth/auth.service';\nimport { BehaviorSubject } from 'rxjs';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n    selector: 'ff-reauthentication',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        class: 'block p-10 dark:bg-gray-900',\n    },\n    template: `\n\t\t<p class=\"text-gray-600 mb-6 dark:text-white\">{{ 'ff-auth.reauthentication.text' | translate }}</p>\n\t\t<form (ngSubmit)=\"submit()\" [formGroup]=\"form\">\n\t\t\t<ff-input\n\t\t\t\t[placeholder]=\"'ff-auth.reauthentication.input-label' | translate\"\n\t\t\t\ttype=\"password\"\n\t\t\t\t[size]=\"'large'\"\n\t\t\t\t[formControl]=\"form.controls.password\"></ff-input>\n\n\t\t\t<button\n\t\t\t\tff-button\n\t\t\t\tclass=\"block w-full\"\n\t\t\t\tcolor=\"primary\"\n\t\t\t\ttype=\"submit\"\n\t\t\t\t[loading]=\"loading$ | async\"\n\t\t\t\t(click)=\"submit()\">\n\t\t\t\t{{ 'ff-auth.reauthentication.submit' | translate }}\n\t\t\t</button>\n\t\t</form>\n\n\t\t<button\n\t\t\tclass=\"mx-auto text-primary w-full dark:text-gray-400 font-medium py-2 mt-6 text-sm block\"\n\t\t\t(click)=\"cancel()\">\n\t\t\t{{ 'ff-auth.reauthentication.cancel' | translate }}\n\t\t</button>\n\t`,\n    standalone: false\n})\nexport class ReauthenticationComponent implements OnInit {\n\tform = new UntypedFormGroup({\n\t\tpassword: new UntypedFormControl('', Validators.required),\n\t});\n\n\tloading$ = new BehaviorSubject(false);\n\n\t@Output() success = new EventEmitter<void>();\n\n\tconstructor(private dialogRef: MatDialogRef<ReauthenticationComponent>, private authService: AuthService) {}\n\n\tngOnInit() {}\n\n\tsubmit() {\n\t\tif (!this.form.valid) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.loading$.next(true);\n\t\tthis.form.controls.password.setErrors(null);\n\t\tthis.authService.reauthenticate(this.form.value.password).subscribe(\n\t\t\t() => {\n\t\t\t\tthis.loading$.next(false);\n\t\t\t\tthis.success.emit();\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tthis.loading$.next(false);\n\t\t\t\tthis.form.controls.password.setErrors({ 'invalid-password': true }, { emitEvent: true });\n\t\t\t}\n\t\t);\n\t}\n\n\tcancel() {\n\t\tthis.dialogRef.close();\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { DialogService } from '@freshfox/ng-core';\nimport { ReauthenticationComponent } from './reauthentication.component';\n\n@Injectable()\nexport class ReauthenticationService {\n\tconstructor(private dialog: DialogService) {}\n\n\tpromptReauthentication() {\n\t\tconst ref = this.dialog.create(ReauthenticationComponent, {\n\t\t\tdisableClose: true,\n\t\t});\n\n\t\treturn ref.componentInstance.success;\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { ReauthenticationComponent } from './reauthentication.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ReauthenticationService } from './reauthentication.service';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FFButtonModule, FFInputModule } from '@freshfox/ng-core';\nimport { CommonModule } from '@angular/common';\nimport { FFAuthModule } from '../auth/auth.module';\n\nexport * from './reauthentication.service';\nexport * from './reauthentication.component';\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tTranslateModule,\n\t\tFFInputModule,\n\t\tFFButtonModule,\n\t\tFormsModule,\n\t\tReactiveFormsModule,\n\t\tFFAuthModule,\n\t],\n\texports: [ReauthenticationComponent],\n\tdeclarations: [ReauthenticationComponent],\n\tproviders: [ReauthenticationService],\n})\nexport class FFAuthReauthenticationModule {}\n","/*\n * Public API Surface of ng-auth\n */\n\nexport * from './ui/auth-ui.module';\nexport * from './auth/auth.module';\nexport * from './reauth/reauthentication.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AuthUiService","i3","i1","i2","i1.AuthService","i4","i5","i6","i7.AuthProviderButtonComponent","i3.LoginFormComponent","i2.AuthService"],"mappings":"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"}