firebaseui-angular
Version:
[](https://github.com/RaphaelJenni/FirebaseUI-Angular/actions/workflows/firebaseui-angular.yml/badge.svg) [
{"version":3,"file":"firebaseui-angular.mjs","sources":["../../../projects/firebaseui-angular-library/src/lib/firebaseui-angular-library.service.ts","../../../projects/firebaseui-angular-library/src/lib/firebaseui-angular-library.component.ts","../../../projects/firebaseui-angular-library/src/lib/firebaseui-angular-library.helper.ts","../../../projects/firebaseui-angular-library/src/lib/firebaseui-angular-library.module.ts","../../../projects/firebaseui-angular-library/src/public_api.ts","../../../projects/firebaseui-angular-library/src/firebaseui-angular.ts"],"sourcesContent":["import { Inject, Injectable, NgZone, Optional } from '@angular/core';\nimport * as firebaseui from 'firebaseui';\nimport {FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp, ɵfirebaseAppFactory} from '@angular/fire/compat';\nimport { FirebaseOptions, FirebaseAppSettings } from 'firebase/app';\n\nimport _firebase from 'firebase/compat/app';\nimport { USE_EMULATOR as USE_AUTH_EMULATOR } from '@angular/fire/compat/auth';\n\ntype UseEmulatorArguments = [string, number];\n\n@Injectable()\nexport class FirebaseuiAngularLibraryService {\n public firebaseUiInstance: firebaseui.auth.AuthUI;\n\n constructor(@Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) nameOrConfig: string | FirebaseAppSettings | null | undefined,\n @Optional() @Inject(USE_AUTH_EMULATOR) _useEmulator: any, // can't use the tuple here\n zone: NgZone) {\n // noinspection JSNonASCIINames\n const app: FirebaseApp = ɵfirebaseAppFactory(options, zone, nameOrConfig);\n\n const useEmulator: UseEmulatorArguments | null = _useEmulator;\n\n if (!(<any>window).firebaseUiInstance) {\n const auth: _firebase.auth.Auth = app.auth();\n if (useEmulator) {\n const connectionString = useEmulator[0].startsWith('http') ? useEmulator[0] : `http://${useEmulator.join(':')}`;\n auth.useEmulator(connectionString);\n }\n (<any>window).firebaseUiInstance = new firebaseui.auth.AuthUI(auth);\n }\n // store the firebaseui instance on the window object to prevent double initialization\n this.firebaseUiInstance = (<any>window).firebaseUiInstance as firebaseui.auth.AuthUI;\n }\n}\n","import {Component, EventEmitter, Inject, NgZone, OnDestroy, OnInit, Output} from '@angular/core';\nimport {AngularFireAuth} from '@angular/fire/compat/auth';\nimport {Subscription} from 'rxjs';\nimport {\n FirebaseUISignInFailure,\n FirebaseUISignInSuccessWithAuthResult,\n NativeFirebaseUIAuthConfig,\n} from './firebaseui-angular-library.helper';\nimport * as firebaseui from 'firebaseui';\nimport firebase from 'firebase/compat/app';\nimport {FirebaseuiAngularLibraryService} from './firebaseui-angular-library.service';\nimport 'firebase/compat/auth';\nimport User = firebase.User;\nimport UserCredential = firebase.auth.UserCredential;\n\n@Component({\n selector: 'firebase-ui',\n template: '<div id=\"firebaseui-auth-container\"></div>',\n standalone: true\n})\nexport class FirebaseuiAngularLibraryComponent implements OnInit, OnDestroy {\n private static readonly COMPUTED_CALLBACKS = 'COMPUTED_CALLBACKS';\n\n @Output('signInSuccessWithAuthResult') signInSuccessWithAuthResultCallback: EventEmitter<FirebaseUISignInSuccessWithAuthResult> = new EventEmitter(); // tslint:disable-line\n @Output('signInFailure') signInFailureCallback: EventEmitter<FirebaseUISignInFailure> = new EventEmitter(); // tslint:disable-line\n @Output('uiShown') uiShownCallback: EventEmitter<void> = new EventEmitter(); // tslint:disable-line\n\n private subscription: Subscription;\n\n constructor(private angularFireAuth: AngularFireAuth,\n @Inject('firebaseUIAuthConfig') private _firebaseUiConfig: NativeFirebaseUIAuthConfig,\n @Inject('firebaseUIAuthConfigFeature') private _firebaseUiConfig_Feature: NativeFirebaseUIAuthConfig,\n private ngZone: NgZone,\n private firebaseUIService: FirebaseuiAngularLibraryService) {\n }\n\n get firebaseUiConfig(): NativeFirebaseUIAuthConfig {\n return {\n ...this._firebaseUiConfig,\n ...this._firebaseUiConfig_Feature\n } as NativeFirebaseUIAuthConfig;\n }\n\n ngOnInit(): void {\n this.subscription = this.angularFireAuth.authState.subscribe((value: User) => {\n if ((value && value.isAnonymous) || !value) {\n if (this.firebaseUiConfig.signInOptions.length !== 0) {\n this.firebaseUIPopup();\n } else {\n throw new Error('There must be at least one AuthProvider.');\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n if (!!this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n private getUIAuthConfig(): NativeFirebaseUIAuthConfig {\n if (!(this.firebaseUiConfig as NativeFirebaseUIAuthConfig).callbacks) {\n this._firebaseUiConfig[FirebaseuiAngularLibraryComponent.COMPUTED_CALLBACKS] = true;\n (this._firebaseUiConfig as NativeFirebaseUIAuthConfig).callbacks = this.getCallbacks();\n }\n return (this.firebaseUiConfig as NativeFirebaseUIAuthConfig);\n }\n\n private firebaseUIPopup() {\n const firebaseUiInstance = this.firebaseUIService.firebaseUiInstance;\n const uiAuthConfig = this.getUIAuthConfig();\n\n // Check if callbacks got computed to reset them again after providing the to firebaseui.\n // Necessary for allowing updating the firebaseui config during runtime.\n let resetCallbacks = false;\n if (uiAuthConfig[FirebaseuiAngularLibraryComponent.COMPUTED_CALLBACKS]) {\n resetCallbacks = true;\n delete uiAuthConfig[FirebaseuiAngularLibraryComponent.COMPUTED_CALLBACKS];\n }\n\n // show the firebaseui\n firebaseUiInstance.start('#firebaseui-auth-container', uiAuthConfig);\n\n if (resetCallbacks) {\n (this._firebaseUiConfig as NativeFirebaseUIAuthConfig).callbacks = null;\n }\n }\n\n private getCallbacks(): any { // firebaseui.Callbacks\n const signInSuccessWithAuthResultCallback = (authResult: UserCredential, redirectUrl) => {\n this.ngZone.run(() => {\n this.signInSuccessWithAuthResultCallback.emit({\n authResult,\n redirectUrl\n });\n });\n return this.firebaseUiConfig.signInSuccessUrl;\n };\n\n const signInFailureCallback = (error: firebaseui.auth.AuthUIError) => {\n this.ngZone.run(() => {\n this.signInFailureCallback.emit({\n code: error.code,\n credential: error.credential\n });\n });\n return Promise.reject();\n };\n\n const uiShownCallback = () => {\n this.ngZone.run(() => {\n this.uiShownCallback.emit();\n });\n };\n\n return {\n signInSuccessWithAuthResult: signInSuccessWithAuthResultCallback,\n signInFailure: signInFailureCallback,\n uiShown: uiShownCallback\n };\n }\n}\n","/*\n * Created by Raphael Jenni\n * Copyright (c) 2017 Raphael Jenni\n */\n\nimport * as firebaseuiOriginal from 'firebaseui';\nimport firebaseOriginal from 'firebase/compat/app';\nimport UserCredential = firebaseOriginal.auth.UserCredential;\nimport AuthCredential = firebaseOriginal.auth.AuthCredential;\n\nexport const firebase = firebaseOriginal;\nexport const firebaseui = firebaseuiOriginal;\n\nexport type NativeFirebaseUIAuthConfig = firebaseuiOriginal.auth.Config;\n\n\nexport class FirebaseUISignInSuccessWithAuthResult {\n authResult: UserCredential;\n redirectUrl: string;\n}\n\nexport class FirebaseUISignInFailure {\n code: string;\n credential: AuthCredential;\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {FirebaseuiAngularLibraryComponent} from './firebaseui-angular-library.component';\nimport {CommonModule} from '@angular/common';\nimport {NativeFirebaseUIAuthConfig} from './firebaseui-angular-library.helper';\nimport {FirebaseuiAngularLibraryService} from './firebaseui-angular-library.service';\n\n@NgModule({\n imports: [\n CommonModule,\n FirebaseuiAngularLibraryComponent\n ],\n providers: [FirebaseuiAngularLibraryService],\n exports: [FirebaseuiAngularLibraryComponent]\n})\nexport class FirebaseUIModule {\n static forRoot(firebaseUiAuthConfig: NativeFirebaseUIAuthConfig): ModuleWithProviders<FirebaseUIModule> {\n return {\n ngModule: FirebaseUIModule,\n providers: [\n {provide: 'firebaseUIAuthConfig', useValue: firebaseUiAuthConfig},\n {provide: 'firebaseUIAuthConfigFeature', useValue: {}}\n ]\n };\n }\n\n static forFeature(firebaseUIAuthConfig: NativeFirebaseUIAuthConfig | any): ModuleWithProviders<FirebaseUIModule> {\n return {\n ngModule: FirebaseUIModule,\n providers: [\n {provide: 'firebaseUIAuthConfigFeature', useValue: firebaseUIAuthConfig}\n ]\n };\n }\n}\n","/*\n * Public API Surface of firebaseui-angular-library\n */\n\nexport * from './lib/firebaseui-angular-library.service';\nexport * from './lib/firebaseui-angular-library.component';\nexport * from './lib/firebaseui-angular-library.helper';\nexport * from './lib/firebaseui-angular-library.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵfirebaseAppFactory","firebaseui","USE_AUTH_EMULATOR","i2.FirebaseuiAngularLibraryService","firebaseuiOriginal"],"mappings":";;;;;;;;;;MAWa,+BAA+B,CAAA;AAG1C,IAAA,WAAA,CAAsC,OAAwB,EACX,YAA6D,EAC7D,YAAiB;IACxD,IAAY,EAAA;;QAEtB,MAAM,GAAG,GAAgBA,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC;QAEzE,MAAM,WAAW,GAAgC,YAAY;AAE7D,QAAA,IAAI,CAAO,MAAO,CAAC,kBAAkB,EAAE;AACrC,YAAA,MAAM,IAAI,GAAwB,GAAG,CAAC,IAAI,EAAE;YAC5C,IAAI,WAAW,EAAE;AACf,gBAAA,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAA,OAAA,EAAU,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC/G,gBAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;;AAE9B,YAAA,MAAO,CAAC,kBAAkB,GAAG,IAAIC,YAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;;;AAGrE,QAAA,IAAI,CAAC,kBAAkB,GAAS,MAAO,CAAC,kBAA4C;;AArB3E,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,EAGtB,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,gBAAgB,EACJ,EAAA,EAAA,KAAA,EAAA,iBAAiB,6BACjBC,YAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHALtC,+BAA+B,EAAA,CAAA,CAAA;;4FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAD3C;;0BAIc,MAAM;2BAAC,gBAAgB;;0BACvB;;0BAAY,MAAM;2BAAC,iBAAiB;;0BACpC;;0BAAY,MAAM;2BAACA,YAAiB;;;MCItC,iCAAiC,CAAA;aACpB,IAAkB,CAAA,kBAAA,GAAG,oBAAH,CAAwB;IAQlE,WAAoB,CAAA,eAAgC,EACA,iBAA6C,EACtC,yBAAqD,EAC5F,MAAc,EACd,iBAAkD,EAAA;QAJlD,IAAe,CAAA,eAAA,GAAf,eAAe;QACiB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;QACV,IAAyB,CAAA,yBAAA,GAAzB,yBAAyB;QAChE,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;AAVE,QAAA,IAAA,CAAA,mCAAmC,GAAwD,IAAI,YAAY,EAAE,CAAC;AAC5H,QAAA,IAAA,CAAA,qBAAqB,GAA0C,IAAI,YAAY,EAAE,CAAC;AACxF,QAAA,IAAA,CAAA,eAAe,GAAuB,IAAI,YAAY,EAAE,CAAC;;AAW5E,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO;YACL,GAAG,IAAI,CAAC,iBAAiB;YACzB,GAAG,IAAI,CAAC;SACqB;;IAGjC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAW,KAAI;YAC3E,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,KAAK,EAAE;gBAC1C,IAAI,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;oBACpD,IAAI,CAAC,eAAe,EAAE;;qBACjB;AACL,oBAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;;;AAGjE,SAAC,CAAC;;IAGJ,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE;AACvB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;;;IAI3B,eAAe,GAAA;AACrB,QAAA,IAAI,CAAE,IAAI,CAAC,gBAA+C,CAAC,SAAS,EAAE;YACpE,IAAI,CAAC,iBAAiB,CAAC,iCAAiC,CAAC,kBAAkB,CAAC,GAAG,IAAI;YAClF,IAAI,CAAC,iBAAgD,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;;QAExF,OAAQ,IAAI,CAAC,gBAA+C;;IAGtD,eAAe,GAAA;AACrB,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,kBAAkB;AACpE,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE;;;QAI3C,IAAI,cAAc,GAAG,KAAK;AAC1B,QAAA,IAAI,YAAY,CAAC,iCAAiC,CAAC,kBAAkB,CAAC,EAAE;YACtE,cAAc,GAAG,IAAI;AACrB,YAAA,OAAO,YAAY,CAAC,iCAAiC,CAAC,kBAAkB,CAAC;;;AAI3E,QAAA,kBAAkB,CAAC,KAAK,CAAC,4BAA4B,EAAE,YAAY,CAAC;QAEpE,IAAI,cAAc,EAAE;AACjB,YAAA,IAAI,CAAC,iBAAgD,CAAC,SAAS,GAAG,IAAI;;;IAInE,YAAY,GAAA;AAClB,QAAA,MAAM,mCAAmC,GAAG,CAAC,UAA0B,EAAE,WAAW,KAAI;AACtF,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACnB,gBAAA,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC;oBAC5C,UAAU;oBACV;AACD,iBAAA,CAAC;AACJ,aAAC,CAAC;AACF,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB;AAC/C,SAAC;AAED,QAAA,MAAM,qBAAqB,GAAG,CAAC,KAAkC,KAAI;AACnE,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACnB,gBAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;oBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,UAAU,EAAE,KAAK,CAAC;AACnB,iBAAA,CAAC;AACJ,aAAC,CAAC;AACF,YAAA,OAAO,OAAO,CAAC,MAAM,EAAE;AACzB,SAAC;QAED,MAAM,eAAe,GAAG,MAAK;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACnB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC7B,aAAC,CAAC;AACJ,SAAC;QAED,OAAO;AACL,YAAA,2BAA2B,EAAE,mCAAmC;AAChE,YAAA,aAAa,EAAE,qBAAqB;AACpC,YAAA,OAAO,EAAE;SACV;;+GApGQ,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAUxB,sBAAsB,EAAA,EAAA,EAAA,KAAA,EACtB,6BAA6B,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,+BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAXtC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,4NAHhC,4CAA4C,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAG7C,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,4CAA4C;AACtD,oBAAA,UAAU,EAAE;AACf,iBAAA;;0BAWc,MAAM;2BAAC,sBAAsB;;0BAC7B,MAAM;2BAAC,6BAA6B;yGARV,mCAAmC,EAAA,CAAA;sBAAzE,MAAM;uBAAC,6BAA6B;gBACZ,qBAAqB,EAAA,CAAA;sBAA7C,MAAM;uBAAC,eAAe;gBACJ,eAAe,EAAA,CAAA;sBAAjC,MAAM;uBAAC,SAAS;;;ACzBnB;;;AAGG;AAOI,MAAM,QAAQ,GAAG;AACjB,MAAM,UAAU,GAAGC;MAKb,qCAAqC,CAAA;AAGjD;MAEY,uBAAuB,CAAA;AAGnC;;MCVY,gBAAgB,CAAA;IAC3B,OAAO,OAAO,CAAC,oBAAgD,EAAA;QAC7D,OAAO;AACL,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;AACT,gBAAA,EAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,oBAAoB,EAAC;AACjE,gBAAA,EAAC,OAAO,EAAE,6BAA6B,EAAE,QAAQ,EAAE,EAAE;AACtD;SACF;;IAGH,OAAO,UAAU,CAAC,oBAAsD,EAAA;QACtE,OAAO;AACL,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;AACT,gBAAA,EAAC,OAAO,EAAE,6BAA6B,EAAE,QAAQ,EAAE,oBAAoB;AACxE;SACF;;+GAjBQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YANrB,YAAY;AACZ,YAAA,iCAAiC,aAG3B,iCAAiC,CAAA,EAAA,CAAA,CAAA;AAElC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAHd,SAAA,EAAA,CAAC,+BAA+B,CAAC,YAHxC,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAMP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ;AACH,qBAAA;oBACD,SAAS,EAAE,CAAC,+BAA+B,CAAC;oBAC5C,OAAO,EAAE,CAAC,iCAAiC;AAC9C,iBAAA;;;ACbD;;AAEG;;ACFH;;AAEG;;;;"}