UNPKG

@nowzoo/ngx-firebase-auth

Version:

Angular components for Firebase email-first sign in and out-of-band (oob) actions (reset password, etc).

1 lines 54.6 kB
{"__symbolic":"module","version":4,"metadata":{"ISignInMethodsForEmailResult":{"__symbolic":"interface"},"INgxFirebaseAuthRememberRecord":{"__symbolic":"interface"},"fadeInOutAnimation":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":17,"character":60},"arguments":["fadeInOut",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":18,"character":2},"arguments":["in",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":18,"character":14},"arguments":[{"opacity":1,"display":"block"}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":19,"character":2},"arguments":["void => *",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":20,"character":4},"arguments":[{"opacity":0}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":21,"character":4},"arguments":[300]}]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":23,"character":2},"arguments":["* => void",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":24,"character":4},"arguments":[300,{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":24,"character":17},"arguments":[{"opacity":0}]}]}]]}]]},"screenAnimation":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":28,"character":57},"arguments":["screen",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":29,"character":2},"arguments":["in",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":29,"character":14},"arguments":[{"opacity":1}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":30,"character":2},"arguments":["void => *",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":31,"character":4},"arguments":[{"opacity":0}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":32,"character":4},"arguments":[300]}]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":34,"character":2},"arguments":["* => void",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":35,"character":4},"arguments":[0,{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":35,"character":15},"arguments":[{"opacity":0}]}]}]]}]]},"getOAuthProviderName":{"__symbolic":"error","message":"Lambda not supported","line":39,"character":36,"module":"./lib/shared"},"getOAuthProviderIcon":{"__symbolic":"error","message":"Lambda not supported","line":49,"character":36,"module":"./lib/shared"},"INgxFirebaseAuthOobSuccess":{"__symbolic":"interface"},"NgxFirebaseAuthService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"angularfire2/auth","name":"AngularFireAuth","line":12,"character":21}]}],"getRemembered":[{"__symbolic":"method"}],"setRemembered":[{"__symbolic":"method"}]},"statics":{"rememberKey":"ngx-firebase-auth-remember","ngInjectableDef":{}}},"SignInComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"ngx-firebase-auth-sign-in","template":"<div *ngIf=\"'wait' === screen\" [@screen]=\"'in'\">\n  <div class=\"alert alert-secondary\">\n    <i class=\"fas fa-spin fa-spinner fa-fw\" aria-hidden=\"true\"></i>\n    Please wait...\n  </div>\n</div>\n\n<div *ngIf=\"'unhandledError' === screen\" [@screen]=\"'in'\">\n  <div class=\"alert alert-danger\">\n    <i class=\"fas fa-exclamation-triangle fa-fw text-danger\" aria-hidden=\"true\"></i>\n    <strong>Woops!</strong> An unexpected error occurred.\n  </div>\n  <p class=\"text-muted\">\n    Code: {{unhandledError.code}}. Message: {{unhandledError.message}}\n  </p>\n  <p>\n    <a routerLink=\".\" [queryParams]=\"{action: 'signIn'}\">Start Over</a>\n  </p>\n</div>\n\n\n<div *ngIf=\"'signInSuccess' === screen\" [@screen]=\"'in'\">\n  <div class=\"alert alert-success\">\n    <i class=\"fas fa-check fa-fw\" aria-hidden=\"true\"></i>\n    Welcome, {{cred.user.displayName}}!\n  </div>\n</div>\n\n\n\n\n<div *ngIf=\"'signIn' === screen\" [@screen]=\"'in'\">\n  <div class=\"alert alert-success\" *ngIf=\"signedOut\">\n    <i class=\"fas fa-check fa-fw\" aria-hidden=\"true\"></i>\n    You’re signed out.\n  </div>\n  <ngx-firebase-auth-sign-in-methods-form\n    [(email)]=\"email\"\n    [(remember)]=\"remember\"\n    [oAuthProviderIds]=\"oAuthProviderIds\"\n    (error)=\"showUnhandledError($event)\"\n    (success)=\"showSignInSuccess($event)\"></ngx-firebase-auth-sign-in-methods-form>\n  <small class=\"text-center text-muted my-2 form-text\">\n    <ng-container *ngTemplateOutlet=\"tosTemplate\"></ng-container>\n  </small>\n</div>\n\n<div *ngIf=\"'signInPassword' === screen\" [@screen]=\"'in'\">\n  <ngx-firebase-auth-sign-in-form\n    [email]=\"email\"\n    [(remember)]=\"remember\"\n    (error)=\"showUnhandledError($event)\"\n    (success)=\"showSignInSuccess($event)\"></ngx-firebase-auth-sign-in-form>\n  <small class=\"text-center text-muted my-2 form-text\">\n    <ng-container *ngTemplateOutlet=\"tosTemplate\"></ng-container>\n  </small>\n</div>\n\n<div *ngIf=\"'signUpPassword' === screen\" [@screen]=\"'in'\">\n  <ngx-firebase-auth-sign-up-form\n    [email]=\"email\"\n    [(remember)]=\"remember\"\n    (error)=\"showUnhandledError($event)\"\n    (success)=\"showSignInSuccess($event)\"></ngx-firebase-auth-sign-up-form>\n  <small class=\"text-center text-muted my-2 form-text\">\n    <ng-container *ngTemplateOutlet=\"tosTemplate\"></ng-container>\n  </small>\n</div>\n\n<div *ngIf=\"'signInOAuth' === screen\" [@screen]=\"'in'\">\n  <ngx-firebase-auth-sign-in-oauth\n    [providerId]=\"oAuthProviderId\"\n    [initialError]=\"initialOAuthError\"\n    [useOAuthPopup]=\"useOAuthPopup\"\n    [oAuthProviderFactory]=\"oAuthProviderFactory\"\n    [(email)]=\"email\"\n    [(remember)]=\"remember\"\n    (error)=\"showUnhandledError($event)\"\n    (success)=\"showSignInSuccess($event)\"></ngx-firebase-auth-sign-in-oauth>\n  <small class=\"text-center text-muted my-2 form-text\">\n    <ng-container *ngTemplateOutlet=\"tosTemplate\"></ng-container>\n  </small>\n</div>\n\n\n\n<div *ngIf=\"'resetPassword' === screen\" [@screen]=\"'in'\">\n  <h6>Reset Password</h6>\n  <ngx-firebase-auth-reset-password-send-form\n    [(email)]=\"email\"\n    (error)=\"showUnhandledError($event)\"></ngx-firebase-auth-reset-password-send-form>\n</div>\n","styles":[""],"animations":[{"__symbolic":"reference","name":"screenAnimation"}]}]}],"members":{"oAuthProviderIds":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":113,"character":3}}]}],"useOAuthPopup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":114,"character":3}}]}],"oAuthProviderFactory":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":115,"character":3}}]}],"tosTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":116,"character":3}}]}],"success":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":117,"character":3}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":118,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"angularfire2/auth","name":"AngularFireAuth","line":133,"character":21},{"__symbolic":"reference","name":"NgxFirebaseAuthService"},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":135,"character":20},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":136,"character":21}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"onInitHandleSignOut":[{"__symbolic":"method"}],"onInitHandleOAuthRedirect":[{"__symbolic":"method"}],"showSignOut":[{"__symbolic":"method"}],"showSignIn":[{"__symbolic":"method"}],"showSignInPassword":[{"__symbolic":"method"}],"showSignUpPassword":[{"__symbolic":"method"}],"showSignInOAuth":[{"__symbolic":"method"}],"showSignInSuccess":[{"__symbolic":"method"}],"showResetPassword":[{"__symbolic":"method"}],"showUnhandledError":[{"__symbolic":"method"}]}},"OobComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"ngx-firebase-auth-oob","template":"<div *ngIf=\"'resetPassword' === screen\" [@screen]=\"'in'\">\n  <ngx-firebase-auth-oob-reset-password\n    [oobCode]=\"oobCode\"\n    (success)=\"success.emit($event)\"></ngx-firebase-auth-oob-reset-password>\n</div>\n\n<div *ngIf=\"'verifyEmail' === screen\" [@screen]=\"'in'\">\n  <ngx-firebase-auth-oob-verify-email\n    [oobCode]=\"oobCode\"\n    (success)=\"success.emit($event)\"></ngx-firebase-auth-oob-verify-email>\n</div>\n\n<div *ngIf=\"'recoverEmail' === screen\" [@screen]=\"'in'\">\n  <ngx-firebase-auth-oob-recover-email\n    [oobCode]=\"oobCode\"\n    (success)=\"success.emit($event)\"></ngx-firebase-auth-oob-recover-email>\n</div>\n","styles":[""],"animations":[{"__symbolic":"reference","name":"screenAnimation"}]}]}],"members":{"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":34,"character":3}}]}],"navigationError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":35,"character":3}}]}],"success":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":36,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":40,"character":20}]}],"ngOnInit":[{"__symbolic":"method"}]}},"NgxFirebaseAuthSignInModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":17,"character":4},{"__symbolic":"reference","name":"NgxFirebaseAuthModule"}],"declarations":[{"__symbolic":"reference","name":"SignInComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"}],"exports":[{"__symbolic":"reference","name":"SignInComponent"}]}]}],"members":{}},"NgxFirebaseAuthOobModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":14,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":16,"character":4},{"__symbolic":"reference","name":"NgxFirebaseAuthModule"}],"declarations":[{"__symbolic":"reference","name":"OobComponent"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"}],"exports":[{"__symbolic":"reference","name":"OobComponent"}]}]}],"members":{}},"NgxFirebaseAuthModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4}],"providers":[{"__symbolic":"reference","name":"NgxFirebaseAuthService"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"ngx-firebase-auth-sign-in-methods-form","template":"<form [formGroup]=\"fg\">\n  <div class=\"form-group\">\n    <label [attr.for]=\"formId + 'email'\">Email Address</label>\n    <input\n      #emailInput\n      [attr.id]=\"formId + 'email'\"\n      [attr.aria-describedby]=\"formId + 'email'\"\n      type=\"email\"\n      autocomplete=\"email\"\n      placeholder=\"Email Address\"\n      formControlName=\"email\"\n      (blur)=\"fetch()\"\n      (keyup.enter)=\"emailInput.blur()\"\n      class=\"form-control\"\n      [class.is-invalid]=\"emailFc.touched && emailFc.invalid\">\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.touched && emailFc.hasError('required')\">\n      Required.\n    </div>\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.touched && emailFc.hasError('email')\">\n      Invalid email.\n    </div>\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.touched && emailFc.hasError('auth/invalid-email')\">\n      Invalid email.\n    </div>\n    <small class=\"text-muted form-text\" [attr.id]=\"formId + 'email'\" [ngSwitch]=\"fetchStatus\">\n      <span *ngSwitchCase=\"'unfetched'\" [@fadeInOut]=\"'in'\">\n        To get started, enter your email address.\n        If you don’t yet have an account we’ll create one for you.\n      </span>\n      <span *ngSwitchCase=\"'fetching'\" [@fadeInOut]=\"'in'\">\n        <i class=\"fas fa-spin fa-spinner fa-fw\" aria-hidden=\"true\"></i>\n        Looking up account...\n      </span>\n      <span *ngSwitchCase=\"'fetched'\" [@fadeInOut]=\"'in'\">\n        <i class=\"fas fa-check fa-fw text-success\" aria-hidden=\"true\"></i>\n        <span *ngIf=\"accountExists\">Account found.</span>\n        <span *ngIf=\"accountIsNew\">We'll create an account.</span>\n      </span>\n    </small>\n  </div>\n  <div class=\"form-group\">\n    <div class=\"form-check\">\n      <input\n        class=\"form-check-input\"\n        type=\"checkbox\"\n        [value]=\"true\"\n        formControlName=\"remember\"\n        [attr.id]=\"formId + 'remember'\">\n      <label class=\"form-check-label\" [attr.for]=\"formId + 'remember'\">\n        Remember me on this device.\n      </label>\n    </div>\n  </div>\n</form>\n<div *ngIf=\"methodsFetched && accountExists\" [@screen]=\"'in'\">\n  <small class=\"text-muted mb-1 form-text\">\n    <span *ngIf=\"accountHasPassword\">\n      <span *ngIf=\"accountOAuthMethods.length === 0\">\n        Please sign in with your password...\n      </span>\n      <span *ngIf=\"accountOAuthMethods.length === 1\">\n        Please sign in with your password or your\n        linked {{getOAuthProviderName(accountOAuthMethods[0])}} account...\n      </span>\n      <span *ngIf=\"accountOAuthMethods.length > 1\">\n        Please sign in with your password or one of your linked accounts...\n      </span>\n    </span>\n    <span *ngIf=\"!accountHasPassword\">\n      <span *ngIf=\"accountOAuthMethods.length === 1\">\n        Please sign in with your\n        linked {{getOAuthProviderName(accountOAuthMethods[0])}} account...\n      </span>\n      <span *ngIf=\"accountOAuthMethods.length > 1\">\n        Please sign in with one of your linked accounts...\n      </span>\n    </span>\n\n  </small>\n\n  <div class=\"list-group\">\n    <a\n      *ngIf=\"accountHasPassword\"\n      routerLink=\".\"\n      [queryParams]=\"{action: 'signInPassword'}\"\n      class=\"list-group-item list-group-item-action\">\n      <i class=\"fas fa-lock fa-fw\" aria-hidden=\"true\"></i>\n      <span class=\"ml-2\">\n        Sign In with Your Password\n      </span>\n    </a>\n    <a\n      *ngFor=\"let id of accountOAuthMethods\"\n      routerLink=\".\"\n      [queryParams]=\"{action: 'signInOAuth', providerId: id}\"\n      class=\"list-group-item list-group-item-action\">\n      <i [attr.class]=\"getOAuthProviderIcon(id)\" aria-hidden=\"true\"></i>\n      <span class=\"ml-2\">\n        Sign In with {{getOAuthProviderName(id)}}\n      </span>\n    </a>\n  </div>\n</div>\n\n<div *ngIf=\"methodsFetched && accountIsNew\" [@screen]=\"'in'\">\n  <small class=\"text-muted mb-1 form-text\">\n    <span *ngIf=\"oAuthProviderIds.length === 0\">\n      Please create an account...\n    </span>\n    <span *ngIf=\"oAuthProviderIds.length === 1\">\n      Please sign up with your\n      {{getOAuthProviderName(oAuthProviderIds[0])}} account,\n      or create a separate account with a password....\n    </span>\n    <span *ngIf=\"oAuthProviderIds.length >1\">\n      Please sign up with one of the services listed below,\n      or create a separate account with a password....\n    </span>\n  </small>\n  <div class=\"list-group\">\n\n    <a\n      *ngFor=\"let id of oAuthProviderIds\"\n      routerLink=\".\"\n      [queryParams]=\"{action: 'signInOAuth', providerId: id}\"\n      class=\"list-group-item list-group-item-action\">\n      <i [attr.class]=\"getOAuthProviderIcon(id)\" aria-hidden=\"true\"></i>\n      <span class=\"ml-2\">\n        Sign Up with {{getOAuthProviderName(id)}}\n      </span>\n    </a>\n    <a\n      routerLink=\".\"\n      [queryParams]=\"{action: 'signUpPassword'}\"\n      class=\"list-group-item list-group-item-action\">\n      <i class=\"fas fa-lock fa-fw\" aria-hidden=\"true\"></i>\n      <span class=\"ml-2\">\n        Create\n        <span *ngIf=\"oAuthProviderIds.length > 0\">\n          a Separate\n        </span>\n        Account\n      </span>\n    </a>\n  </div>\n</div>\n","styles":[""],"animations":[{"__symbolic":"reference","name":"fadeInOutAnimation"},{"__symbolic":"reference","name":"screenAnimation"}]}]}],"members":{"emailInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":168,"character":3},"arguments":["emailInput"]}]}],"email":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":169,"character":3}}]}],"remember":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":170,"character":3}}]}],"oAuthProviderIds":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":171,"character":3}}]}],"emailChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":172,"character":3}}]}],"rememberChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":173,"character":3}}]}],"success":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":174,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":175,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"angularfire2/auth","name":"AngularFireAuth","line":188,"character":21},{"__symbolic":"reference","name":"NgxFirebaseAuthService"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":190,"character":21}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"fetch":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"ngx-firebase-auth-sign-in-form","template":"<form [formGroup]=\"fg\" (ngSubmit)=\"submit()\">\n\n  <div class=\"form-group\">\n    <label [attr.for]=\"formId + 'email'\">Email Address</label>\n\n    <input\n      readonly\n      #emailInput\n      [attr.id]=\"formId + 'email'\"\n      [attr.aria-describedby]=\"formId + 'email'\"\n      type=\"email\"\n      autocomplete=\"email\"\n      placeholder=\"Email Address\"\n      formControlName=\"email\"\n      class=\"form-control\">\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.hasError('required')\">\n      Required.\n    </div>\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.hasError('email')\">\n      Invalid email.\n    </div>\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.hasError('auth/invalid-email')\">\n      Invalid email.\n    </div>\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.hasError('auth/user-not-found')\">\n      We could not find an account with that email address.\n      <a routerLink=\".\" [queryParams]=\"{action: 'signIn'}\">Create Account</a>\n    </div>\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.hasError('auth/user-disabled')\">\n      The account with that email address has been disabled.\n    </div>\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.hasError('ngx-firebase-auth/no-password')\">\n      The account with that email address does not have a password.\n      Please sign in using:\n      <span *ngFor=\"let id of methodsForEmail; let isLast = last\">\n        <a routerLink=\".\" [queryParams]=\"{action: 'signInOAuth', providerId: id}\">{{getOAuthProviderName(id)}}</a>\n        <span *ngIf=\"!isLast\">\n          |\n        </span>\n      </span>\n    </div>\n\n    <small class=\"text-muted form-text\" [attr.id]=\"formId + 'email'\" >\n      Not your email address?\n      <a routerLink=\".\" [queryParams]=\"{action: 'signIn'}\">Start Over</a>\n    </small>\n  </div>\n\n\n  <div class=\"form-group\">\n    <div class=\"d-flex justify-content-between align-items-end\">\n      <label [attr.for]=\"formId + 'password'\">Password</label>\n      <small>\n        <a (click)=\"$event.preventDefault(); passwordInput.type = 'password' === passwordInput.type  ? 'text' : 'password'\"\n          href=\"#\" tabindex=\"-1\" class=\"d-inline-block\">\n          <span *ngIf=\"'password' === passwordInput.type\">Show</span>\n          <span *ngIf=\"'text' === passwordInput.type\">Hide</span>\n        </a>\n      </small>\n    </div>\n    <input\n      #passwordInput\n      [attr.id]=\"formId + 'password'\"\n      [attr.aria-describedby]=\"formId + 'password-help'\"\n      type=\"password\"\n      formControlName=\"password\"\n      placeholder=\"Password\"\n      autocomplete=\"password\"\n      class=\"form-control\"\n      [class.is-invalid]=\"passwordFc.touched && passwordFc.invalid\">\n    <div class=\"invalid-feedback\"\n      *ngIf=\"passwordFc.touched && passwordFc.hasError('required')\"\n      [@fadeInOut]=\"'in'\">\n      Required.\n    </div>\n    <div class=\"invalid-feedback\"\n      *ngIf=\"passwordFc.touched && passwordFc.hasError('auth/wrong-password')\"\n      [@fadeInOut]=\"'in'\">\n      Wrong password.\n    </div>\n    <small [attr.id]=\"formId + 'password-help'\" class=\"form-text text-muted\">\n      Forgot? <a routerLink=\".\" [queryParams]=\"{action: 'resetPassword'}\">Reset Password</a>\n    </small>\n  </div>\n  <div class=\"form-group\">\n    <div class=\"form-check\">\n      <input\n        class=\"form-check-input\"\n        type=\"checkbox\"\n        [value]=\"true\"\n        formControlName=\"remember\"\n        [attr.id]=\"formId + 'remember'\">\n      <label class=\"form-check-label\" [attr.for]=\"formId + 'remember'\">\n        Remember me on this device.\n      </label>\n    </div>\n  </div>\n  <div class=\"form-group\">\n    <button type=\"submit\"\n      class=\"btn btn-success btn-block\"\n      [disabled]=\"fg.invalid || submitting\">\n      <i class=\"fas fa-lock fa-fw\" aria-hidden=\"true\"></i>\n      Sign In\n    </button>\n  </div>\n</form>\n","styles":[""],"animations":[{"__symbolic":"reference","name":"fadeInOutAnimation"}]}]}],"members":{"passwordInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":130,"character":3},"arguments":["passwordInput"]}]}],"email":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":131,"character":3}}]}],"remember":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":132,"character":3}}]}],"rememberChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":133,"character":3}}]}],"success":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":134,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":135,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"angularfire2/auth","name":"AngularFireAuth","line":147,"character":21},{"__symbolic":"reference","name":"NgxFirebaseAuthService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"ngx-firebase-auth-sign-up-form","template":"<form [formGroup]=\"fg\" (ngSubmit)=\"submit()\">\n  <div class=\"form-group\">\n    <label [attr.for]=\"formId + 'email'\">Email Address</label>\n    <input\n      readonly\n      #emailInput\n      [attr.id]=\"formId + 'email'\"\n      [attr.aria-describedby]=\"formId + 'email'\"\n      type=\"email\"\n      autocomplete=\"email\"\n      placeholder=\"Email Address\"\n      formControlName=\"email\"\n      class=\"form-control\">\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.hasError('required')\">\n      Required.\n    </div>\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.hasError('email')\">\n      Invalid email.\n    </div>\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.hasError('auth/invalid-email')\">\n      Invalid email.\n    </div>\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.hasError('ngx-firebase-auth/account-exists')\">\n      We found an account with that email address.\n      <a routerLink=\".\" [queryParams]=\"{action: 'signIn'}\">Sign In</a>\n    </div>\n    <small class=\"text-muted form-text\" [attr.id]=\"formId + 'email'\" >\n      Not your email address?\n      <a routerLink=\".\" [queryParams]=\"{action: 'signIn'}\">Go Back</a>\n    </small>\n  </div>\n\n  <div class=\"form-group\">\n    <div class=\"d-flex justify-content-between align-items-end\">\n      <label [attr.for]=\"formId + 'password'\">Choose Password</label>\n      <small>\n        <a (click)=\"$event.preventDefault(); passwordInput.type = 'password' === passwordInput.type  ? 'text' : 'password'\"\n          href=\"#\" tabindex=\"-1\" class=\"d-inline-block\">\n          <span *ngIf=\"'password' === passwordInput.type\">Show</span>\n          <span *ngIf=\"'text' === passwordInput.type\">Hide</span>\n        </a>\n      </small>\n    </div>\n    <input\n      #passwordInput\n      [attr.id]=\"formId + 'password'\"\n      [attr.aria-describedby]=\"formId + 'password-help'\"\n      type=\"password\"\n      formControlName=\"password\"\n      placeholder=\"Choose Password\"\n      autocomplete=\"password\"\n      class=\"form-control\"\n      [class.is-invalid]=\"passwordFc.touched && passwordFc.invalid\">\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"passwordFc.touched && passwordFc.hasError('required')\">\n      Required.\n    </div>\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"passwordFc.touched && passwordFc.hasError('auth/wrong-password')\">\n      Wrong password.\n    </div>\n    <small [attr.id]=\"formId + 'password-help'\" class=\"form-text text-muted\">\n      Please choose a strong password.\n    </small>\n  </div>\n  <div class=\"form-group\">\n    <label [attr.for]=\"formId + 'name'\">Your Name</label>\n    <input\n      [attr.id]=\"formId + 'name'\"\n      type=\"text\"\n      formControlName=\"name\"\n      placeholder=\"Your Name\"\n      class=\"form-control\"\n      [class.is-invalid]=\"nameFc.touched && nameFc.invalid\">\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"nameFc.touched && nameFc.hasError('required')\">\n      Required.\n    </div>\n  </div>\n  <div class=\"form-group\">\n    <div class=\"form-check\">\n      <input\n        class=\"form-check-input\"\n        type=\"checkbox\"\n        [value]=\"true\"\n        formControlName=\"remember\"\n        [attr.id]=\"formId + 'remember'\">\n      <label class=\"form-check-label\" [attr.for]=\"formId + 'remember'\">\n        Remember me on this device.\n      </label>\n    </div>\n  </div>\n  <div class=\"form-group\">\n    <button type=\"submit\"\n      class=\"btn btn-success btn-block\"\n      [disabled]=\"fg.invalid || submitting\">\n      <i class=\"fas fa-lock fa-fw\" aria-hidden=\"true\"></i>\n      Create Account\n    </button>\n  </div>\n</form>\n","styles":[""],"animations":[{"__symbolic":"reference","name":"fadeInOutAnimation"}]}]}],"members":{"passwordInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":121,"character":3},"arguments":["passwordInput"]}]}],"email":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":122,"character":3}}]}],"remember":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":123,"character":3}}]}],"rememberChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":124,"character":3}}]}],"success":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":125,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":126,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"angularfire2/auth","name":"AngularFireAuth","line":136,"character":21},{"__symbolic":"reference","name":"NgxFirebaseAuthService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"ngx-firebase-auth-reset-password-send-form","template":"<form [formGroup]=\"fg\" (ngSubmit)=\"submit()\">\n  <div *ngIf=\"sent\" [@fadeInOut]=\"'in'\">\n    <div class=\"alert alert-success\">\n      <i class=\"fas fa-check fa-fw\" aria-hidden=\"true\"></i>\n      We’ve sent a reset password link to {{sent}}.\n      Please allow a few moments for the email to arrive.\n    </div>\n  </div>\n\n  <div class=\"form-group\">\n    <label [attr.for]=\"formId + 'email'\">Email Address</label>\n    <input\n      #emailInput\n      [attr.id]=\"formId + 'email'\"\n      [attr.aria-describedby]=\"formId + 'email-help'\"\n      type=\"email\"\n      formControlName=\"email\"\n      class=\"form-control\"\n      [class.is-invalid]=\"emailFc.touched && emailFc.invalid\">\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.touched && emailFc.hasError('required')\">\n      Required.\n    </div>\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.touched && emailFc.hasError('auth/user-not-found')\">\n      We could not find an account with that email address.\n      Please <a routerLink=\".\" [queryParams]=\"{action: 'signIUpPassword'}\">sign up</a>.\n    </div>\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.touched && emailFc.hasError('email')\">\n      Invalid email.\n    </div>\n    <div class=\"invalid-feedback\" [@fadeInOut]=\"'in'\"\n      *ngIf=\"emailFc.touched && emailFc.hasError('auth/invalid-email')\">\n      Invalid email.\n    </div>\n    <small [attr.id]=\"formId + 'email-help'\" class=\"form-text text-muted\">\n      Enter the email address you used to sign up. We’ll\n      send a reset password link to that address.\n    </small>\n  </div>\n  <div class=\"form-group\">\n    <button type=\"submit\"\n      class=\"btn btn-block btn-success\"\n      [disabled]=\"fg.invalid || submitting\">\n      <i class=\"fas fa-fw fa-envelope\" aria-hidden=\"true\"></i>\n      Send Link\n    </button>\n  </div>\n</form>\n","styles":[""],"animations":[{"__symbolic":"reference","name":"fadeInOutAnimation"}]}]}],"members":{"emailInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":65,"character":3},"arguments":["emailInput"]}]}],"email":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}}]}],"emailChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":67,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":68,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"angularfire2/auth","name":"AngularFireAuth","line":76,"character":21}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"ngx-firebase-auth-sign-in-oauth","template":"<div *ngIf=\"'wait' === screen\" [@screen]=\"'in'\">\n  <div class=\"alert alert-secondary\">\n    <i class=\"fas fa-spin fa-spinner fa-fw\" aria-hidden=\"true\"></i>\n    Please wait...\n  </div>\n</div>\n\n<div *ngIf=\"'methodError' === screen\" [@screen]=\"'in'\">\n  <div class=\"alert alert-danger\">\n    <i class=\"fas fa-exclamation-triangle fa-fw\" aria-hidden=\"true\"></i>\n    We could not sign you in with {{methodError.credential.providerId}}.\n  </div>\n\n  <p class=\"text-muted\">\n    Please sign in with one of the methods associated with\n    {{methodError.email}}:\n  </p>\n\n  <div class=\"list-group\">\n    <a\n      *ngIf=\"methodError.accountHasPassword\"\n      routerLink=\".\"\n      [queryParams]=\"{action: 'signInPassword'}\"\n      class=\"list-group-item list-group-item-action\">\n      <i class=\"fas fa-unlock\" aria-hidden=\"true\"></i>\n      <span class=\"ml-2\">Sign In with Your Password</span>\n    </a>\n    <button\n      *ngFor=\"let id of methodError.accountOAuthMethods\"\n      (click)=\"oAuthSignIn(id)\"\n      class=\"list-group-item list-group-item-action\">\n      <i [attr.class]=\"getOAuthProviderIcon(id)\" aria-hidden=\"true\"></i>\n      <span class=\"ml-2\">Sign In with {{getOAuthProviderName(id)}}</span>\n    </button>\n  </div>\n\n  <form [formGroup]=\"fg\">\n    <div class=\"form-group\">\n      <div class=\"form-check\">\n        <input\n          class=\"form-check-input\"\n          type=\"checkbox\"\n          [value]=\"true\"\n          formControlName=\"remember\"\n          [attr.id]=\"formId + 'remember'\">\n        <label class=\"form-check-label\" [attr.for]=\"formId + 'remember'\">\n          Remember me on this device.\n        </label>\n      </div>\n    </div>\n  </form>\n\n  <p class=\"text-muted\">\n    Is {{methodError.email}} not your email address?\n    <a routerLink=\".\" [queryParams]=\"{action: 'signIn'}\">Start Over</a>\n  </p>\n\n</div>\n\n<div *ngIf=\"'retry' === screen\" [@screen]=\"'in'\">\n  <div class=\"alert alert-danger\">\n    <i class=\"fas fa-exclamation-triangle fa-fw\" aria-hidden=\"true\"></i>\n    It looks like you cancelled signing in with\n    {{getOAuthProviderName(providerId)}}. Try again:\n  </div>\n\n  <div class=\"list-group\">\n    <button\n      (click)=\"oAuthSignIn(providerId)\"\n      class=\"list-group-item list-group-item-action\">\n      <i [attr.class]=\"getOAuthProviderIcon(providerId)\" aria-hidden=\"true\"></i>\n      <span class=\"ml-2\">Sign In with {{getOAuthProviderName(providerId)}}</span>\n    </button>\n  </div>\n\n  <form [formGroup]=\"fg\">\n    <div class=\"form-group\">\n      <div class=\"form-check\">\n        <input\n          class=\"form-check-input\"\n          type=\"checkbox\"\n          [value]=\"true\"\n          formControlName=\"remember\"\n          [attr.id]=\"formId + 'remember'\">\n        <label class=\"form-check-label\" [attr.for]=\"formId + 'remember'\">\n          Remember me on this device.\n        </label>\n      </div>\n    </div>\n  </form>\n\n\n  <p class=\"text-muted\">\n    <a routerLink=\".\" [queryParams]=\"{action: 'signIn'}\">Start Over</a>\n  </p>\n\n</div>\n","styles":[""],"animations":[{"__symbolic":"reference","name":"screenAnimation"}]}]}],"members":{"providerId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":116,"character":3}}]}],"initialError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":117,"character":3}}]}],"useOAuthPopup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":118,"character":3}}]}],"oAuthProviderFactory":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":119,"character":3}}]}],"email":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":3}}]}],"remember":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":121,"character":3}}]}],"success":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":122,"character":3}}]}],"emailChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":123,"character":3}}]}],"rememberChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":124,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":125,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"angularfire2/auth","name":"AngularFireAuth","line":137,"character":21},{"__symbolic":"reference","name":"NgxFirebaseAuthService"},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":139,"character":20},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":140,"character":21}]}],"ngOnInit":[{"__symbolic":"method"}],"oAuthSignIn":[{"__symbolic":"method"}],"handleOAuthError":[{"__symbolic":"method"}],"getOAuthProvider":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"ngx-firebase-auth-oob-recover-email","template":"\n\n<div *ngIf=\"'wait' === screen\" [@screen]=\"'in'\">\n  <div class=\"alert alert-secondary\">\n    <i class=\"fas fa-spin fa-spinner fa-fw\" aria-hidden=\"true\"></i>\n    Please wait...\n  </div>\n</div>\n\n\n<div *ngIf=\"'success' === screen\" [@screen]=\"'in'\">\n  <div class=\"alert alert-success\">\n    <i class=\"fas fa-check fa-fw\" aria-hidden=\"true\"></i>\n    Your email has been changed back to {{info.data.email}};\n  </div>\n</div>\n\n<div *ngIf=\"screen === 'form'\" [@screen]=\"'in'\">\n  <div class=\"form-group\">\n    <p>\n      Are you sure you want to change your email back to\n      {{info.data.email}} from {{info.data.fromEmail}}?\n    </p>\n    <button\n      type=\"button\"\n      [disabled]=\"submitting\"\n      (click)=\"submit()\"\n      class=\"btn btn-block btn-success\">\n      <i class=\"fas fa-save fa-fw\" aria-hidden=\"true\"></i>\n      Yes, Continue\n    </button>\n  </div>\n</div>\n\n\n\n<div *ngIf=\"screen === 'error'\" [@screen]=\"'in'\">\n  <div class=\"alert alert-danger\">\n    <p>\n      <i class=\"fas fa-exclamation-triangle fa-fw\" aria-hidden=\"true\"></i>\n      Woops! An error occurred.\n    </p>\n    <div [ngSwitch]=\"unhandledError.code\">\n      <p class=\"mb-0\" *ngSwitchCase=\"'auth/expired-action-code'\">\n        The recover email link you used has expired.\n      </p>\n      <p class=\"mb-0\" *ngSwitchCase=\"'auth/invalid-action-code'\">\n        The recover email link you used is not valid. This may be because it\n        has already been used.\n      </p>\n      <p class=\"mb-0\" *ngSwitchCase=\"'auth/user-disabled'\">\n        The account associated with the recover email link you used has been disabled.\n      </p>\n      <p class=\"mb-0\" *ngSwitchCase=\"'auth/user-not-found'\">\n        The account associated with the recover email link you used has been removed.\n      </p>\n      <div *ngSwitchDefault>\n        <p>Code: {{unhandledError.code}}</p>\n        <p class=\"mb-0\">\n          Message: {{unhandledError.message}}\n        </p>\n      </div>\n    </div>\n  </div>\n</div>\n","styles":[""],"animations":[{"__symbolic":"reference","name":"screenAnimation"}]}]}],"members":{"oobCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":80,"character":3}}]}],"success":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":81,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"angularfire2/auth","name":"AngularFireAuth","line":89,"character":21}]}],"ngOnInit":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"ngx-firebase-auth-oob-reset-password","template":"<div *ngIf=\"'wait' === screen\" [@screen]=\"'in'\">\n  <div class=\"alert alert-secondary\">\n    <i class=\"fas fa-spin fa-spinner fa-fw\" aria-hidden=\"true\"></i>\n    Please wait...\n  </div>\n</div>\n\n<div *ngIf=\"'success' === screen\" [@screen]=\"'in'\">\n  <div class=\"alert alert-success\">\n    <i class=\"fas fa-check fa-fw\" aria-hidden=\"true\"></i>\n    Welcome, {{cred.user.displayName}}!\n    Your new password has been saved and you are signed in.\n  </div>\n</div>\n\n<div *ngIf=\"screen === 'error'\" [@screen]=\"'in'\">\n  <div class=\"alert alert-danger\">\n    <p>\n      <i class=\"fas fa-exclamation-triangle fa-fw\" aria-hidden=\"true\"></i>\n      Woops! An error occurred.\n    </p>\n    <div [ngSwitch]=\"unhandledError.code\">\n      <p class=\"mb-0\" *ngSwitchCase=\"'auth/expired-action-code'\">\n        The reset password link you used has expired.\n      </p>\n      <p class=\"mb-0\" *ngSwitchCase=\"'auth/invalid-action-code'\">\n        The reset password link you used is not valid. This may be because it\n        has already been used.\n      </p>\n      <p class=\"mb-0\" *ngSwitchCase=\"'auth/user-disabled'\">\n        The account associated with the reset password link you used has been disabled.\n      </p>\n      <p class=\"mb-0\" *ngSwitchCase=\"'auth/user-not-found'\">\n        The account associated with the reset password link you used has been removed.\n      </p>\n      <div *ngSwitchDefault>\n        <p>Code: {{unhandledError.code}}</p>\n        <p class=\"mb-0\">\n          Message: {{unhandledError.message}}\n        </p>\n      </div>\n    </div>\n  </div>\n</div>\n\n\n<div *ngIf=\"'form' === screen\" [@screen]=\"'in'\">\n  <form [formGroup]=\"fg\" (ngSubmit)=\"submit()\">\n    <div class=\"form-group\">\n      <label [attr.for]=\"formId + 'email'\">Email Address</label>\n\n      <input\n        readonly\n        #emailInput\n        [attr.id]=\"formId + 'email'\"\n        [attr.aria-describedby]=\"formId + 'email'\"\n        type=\"email\"\n        autocomplete=\"email\"\n        placeholder=\"Email Address\"\n        formControlName=\"email\"\n        class=\"form-control\">\n      <small class=\"text-muted form-text\" [attr.id]=\"formId + 'email'\" >\n        You are resetting the password for {{emailFc.value}}.\n      </small>\n    </div>\n\n    <div class=\"form-group\">\n      <div class=\"d-flex justify-content-between align-items-end\">\n        <label [attr.for]=\"formId + 'password'\">Password</label>\n        <small>\n          <a (click)=\"$event.preventDefault(); passwordInput.type = 'password' === passwordInput.type  ? 'text' : 'password'\"\n            href=\"#\" tabindex=\"-1\" class=\"d-inline-block\">\n            <span *ngIf=\"'password' === passwordInput.type\">Show</span>\n            <span *ngIf=\"'text' === passwordInput.type\">Hide</span>\n          </a>\n        </small>\n      </div>\n      <input\n        #passwordInput\n        [attr.id]=\"formId + 'password'\"\n        [attr.aria-describedby]=\"formId + 'password-help'\"\n        type=\"password\"\n        formControlName=\"password\"\n        placeholder=\"Password\"\n        autocomplete=\"password\"\n        class=\"form-control\"\n        [class.is-invalid]=\"passwordFc.touched && passwordFc.invalid\">\n      <div class=\"invalid-feedback\" *ngIf=\"passwordFc.touched && passwordFc.hasError('required')\">\n        Required.\n      </div>\n      <div class=\"invalid-feedback\" *ngIf=\"passwordFc.touched && passwordFc.hasError('auth/weak-password')\">\n        That password is too weak.\n      </div>\n      <small [attr.id]=\"formId + 'password-help'\" class=\"form-text text-muted\">\n        Please choose a strong password.\n      </small>\n    </div>\n    <div class=\"form-group\">\n      <div class=\"form-check\">\n        <input\n          class=\"form-check-input\"\n          type=\"checkbox\"\n          [value]=\"true\"\n          formControlName=\"remember\"\n          [attr.id]=\"formId + 'remember'\">\n        <label class=\"form-check-label\" [attr.for]=\"formId + 'remember'\">\n          Remember me on this device.\n        </label>\n      </div>\n    </div>\n    <div class=\"form-group\">\n      <button type=\"submit\"\n        class=\"btn btn-success btn-block\"\n        [disabled]=\"fg.invalid || submitting\">\n        <i class=\"fas fa-save fa-fw\" aria-hidden=\"true\"></i>\n        Save Password and Sign In\n      </button>\n    </div>\n  </form>\n</div>\n","styles":[""],"animations":[{"__symbolic":"reference","name":"screenAnimation"}]}]}],"members":{"oobCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":137,"character":3}}]}],"success":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":138,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"angularfire2/auth","name":"AngularFireAuth","line":151,"character":21},{"__symbolic":"reference","name":"NgxFirebaseAuthService"}]}],"ngOnInit":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"ngx-firebase-auth-oob-verify-email","template":"<div *ngIf=\"'wait' === screen\" [@screen]=\"'in'\">\n  <div class=\"alert alert-secondary\">\n    <i class=\"fas fa-spin fa-spinner fa-fw\" aria-hidden=\"true\"></i>\n    Please wait...\n  </div>\n</div>\n\n<div *ngIf=\"'success' === screen\" [@screen]=\"'in'\">\n  <div class=\"alert alert-success\">\n    <i class=\"fas fa-check fa-fw\" aria-hidden=\"true\"></i>\n    The email {{info.data.email}} has been verified.\n  </div>\n</div>\n\n<div *ngIf=\"screen === 'error'\" [@screen]=\"'in'\">\n  <div class=\"alert alert-danger\">\n    <p>\n      <i class=\"fas fa-exclamation-triangle fa-fw\" aria-hidden=\"true\"></i>\n      Woops! An error occurred.\n    </p>\n    <div [ngSwitch]=\"unhandledError.code\">\n      <p class=\"mb-0\" *ngSwitchCase=\"'auth/expired-action-code'\">\n        The verify email link you used has expired.\n      </p>\n      <p class=\"mb-0\" *ngSwitchCase=\"'auth/invalid-action-code'\">\n        The verify email link you used is not valid. This may be because it\n        has already been used.\n      </p>\n      <p class=\"mb-0\" *ngSwitchCase=\"'auth/user-disabled'\">\n        The account associated with the verify email link you used has been disabled.\n      </p>\n      <p class=\"mb-0\" *ngSwitchCase=\"'auth/user-not-found'\">\n        The account associated with the verify email link you used has been removed.\n      </p>\n      <div *ngSwitchDefault>\n        <p>Code: {{unhandledError.code}}</p>\n        <p class=\"mb-0\">\n          Message: {{unhandledError.message}}\n        </p>\n      </div>\n    </div>\n  </div>\n</div>\n","styles":[""],"animations":[{"__symbolic":"reference","name":"screenAnimation"}]}]}],"members":{"oobCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"success":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":59,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"angularfire2/auth","name":"AngularFireAuth","line":67,"character":21}]}],"ngOnInit":[{"__symbolic":"method"}]}}},"origins":{"ISignInMethodsForEmailResult":"./lib/shared","INgxFirebaseAuthRememberRecord":"./lib/shared","fadeInOutAnimation":"./lib/shared","screenAnimation":"./lib/shared","getOAuthProviderName":"./lib/shared","getOAuthProviderIcon":"./lib/shared","INgxFirebaseAuthOobSuccess":"./lib/shared","NgxFirebaseAuthService":"./lib/ngx-firebase-auth.service","SignInComponent":"./lib/sign-in/sign-in.component","OobComponent":"./lib/oob/oob.component","NgxFirebaseAuthSignInModule":"./lib/sign-in/ngx-firebase-auth-sign-in.module","NgxFirebaseAuthOobModule":"./lib/oob/ngx-firebase-auth-oob.module","NgxFirebaseAuthModule":"./lib/ngx-firebase-auth.module","ɵa":"./lib/sign-in/sign-in-methods-form/sign-in-methods-form.component","ɵb":"./lib/sign-in/sign-in-form/sign-in-form.component","ɵc":"./lib/sign-in/sign-up-form/sign-up-form.component","ɵd":"./lib/sign-in/reset-password-send-form/reset-password-send-form.component","ɵe":"./lib/sign-in/sign-in-oauth/sign-in-oauth.component","ɵf":"./lib/oob/oob-recover-email/oob-recover-email.component","ɵg":"./lib/oob/oob-reset-password/oob-reset-password.component","ɵh":"./lib/oob/oob-verify-email/oob-verify-email.component"},"importAs":"@nowzoo/ngx-firebase-auth"}