ez-firebase-auth
Version:
Easy Firebase Auth for Angular 4.x
1 lines • 70.9 kB
JSON
{"__symbolic":"module","version":3,"metadata":{"EzfaEmailChangedEvent":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"firebase","name":"User"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"EzfaEmailChangedEvent"}},"EzfaOauthMethod":{"popup":1,"redirect":2},"EzfaOptions":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{}},"EzfaProviderLabels":{"__symbolic":"class","members":{}},"EzfaProviderLinkedEvent":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"firebase","name":"User"},{"__symbolic":"reference","name":"string"},{"__symbolic":"select","expression":{"__symbolic":"error","message":"Expression form not supported","line":7,"character":23,"module":"./ezfa-provider-linked-event.class"},"member":"UserCredential"}]}]},"statics":{"type":"EzfaProviderLinkedEvent"}},"EzfaProviderUnlinkedEvent":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"firebase","name":"User"},{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"EzfaProviderUnlinkedEvent"}},"EzfaSignedInEvent":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"firebase","name":"User"},{"__symbolic":"reference","name":"string"},{"__symbolic":"select","expression":{"__symbolic":"error","message":"Expression form not supported","line":8,"character":23,"module":"./ezfa-signed-in-event.class"},"member":"UserCredential"}]}]},"statics":{"type":"EzfaSignedInEvent"}},"EzfaSignedOutEvent":{"__symbolic":"class","members":{},"statics":{"type":"EzfaSignedOutEvent"}},"EzfaService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router"},{"__symbolic":"reference","module":"angularfire2/auth","name":"AngularFireAuth"},{"__symbolic":"reference","name":"EzfaOptions"}]}],"getProviderById":[{"__symbolic":"method"}],"routerLink":[{"__symbolic":"method"}],"navigate":[{"__symbolic":"method"}],"setPersistenceLocal":[{"__symbolic":"method"}],"onRouteChange":[{"__symbolic":"method"}],"onSignedIn":[{"__symbolic":"method"}],"onSignedOut":[{"__symbolic":"method"}],"onEmailChanged":[{"__symbolic":"method"}],"onProviderLinked":[{"__symbolic":"method"}],"onProviderUnlinked":[{"__symbolic":"method"}]},"statics":{"STORAGE_KEY_PERSISTENCE":"ezfa-local-persistence-disabled","ENABLED_PROVIDERS":["password","twitter.com","facebook.com","google.com","github.com"],"ENABLED_OAUTH_PROVIDERS":["twitter.com","facebook.com","google.com","github.com"],"OUT_OF_BAND_MODES":{"resetPassword":"resetPassword","verifyEmail":"verifyEmail","recoverEmail":"recoverEmail"}}},"EzfaModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"}],"providers":[{"__symbolic":"reference","name":"EzfaService"}],"declarations":[]}]}],"members":{}},"EzfaRoutesModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule"},"member":"forChild"},"arguments":[[{"path":"","children":[{"path":"reauthenticate","component":{"__symbolic":"reference","name":"ɵa"}},{"path":"send-email-verification-link","component":{"__symbolic":"reference","name":"ɵc"}},{"path":"recover-email","component":{"__symbolic":"reference","name":"ɵd"}},{"path":"verify-email","component":{"__symbolic":"reference","name":"ɵe"}},{"path":"reset-password","component":{"__symbolic":"reference","name":"ɵf"}},{"path":"send-reset-password-link","component":{"__symbolic":"reference","name":"ɵg"}},{"path":"change-email","component":{"__symbolic":"reference","name":"ɵh"}},{"path":"change-password","component":{"__symbolic":"reference","name":"ɵi"}},{"path":"unlink","component":{"__symbolic":"reference","name":"ɵj"}},{"path":"link","component":{"__symbolic":"reference","name":"ɵk"}},{"path":"add-password","component":{"__symbolic":"reference","name":"ɵl"}},{"path":"account","component":{"__symbolic":"reference","name":"ɵm"}},{"path":"sign-in","component":{"__symbolic":"reference","name":"ɵn"}},{"path":"sign-out","component":{"__symbolic":"reference","name":"ɵo"}},{"path":"","component":{"__symbolic":"reference","name":"ɵp"}}]}]]}],"declarations":[{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵv"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","name":"ɵy"},{"__symbolic":"reference","name":"ɵz"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵba"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵbb"},{"__symbolic":"reference","name":"ɵbc"},{"__symbolic":"reference","name":"ɵbd"},{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-reauthenticate-route","template":"\n <div *ngIf=\"user\">\n <div class=\"alert alert-light\" role=\"alert\" [ngSwitch]=\"redirect\">\n <span *ngSwitchCase=\"'change-password'\">\n Please sign in again to change your password.\n </span>\n <span *ngSwitchCase=\"'change-email'\">\n Please sign in again to change your email.\n </span>\n <span *ngSwitchCase=\"'add-password'\">\n Please sign in again to add a password to your account.\n </span>\n <span *ngSwitchDefault>\n Please sign in again.\n </span>\n </div>\n <div *ngIf=\"userProviderData.oauthIds.length > 0\">\n <p *ngFor=\"let id of userProviderData.oauthIds\">\n <button\n [ezfaProviderTitle]=\"{label: 'Sign in with', id: id}\"\n (click)=\"oAuthReauth(id)\" class=\"btn btn-outline-primary btn-lg btn-block\">\n Sign In with\n <ezfa-provider-icon [providerId]=\"id\"></ezfa-provider-icon>\n <ezfa-provider-label [providerId]=\"id\"></ezfa-provider-label>\n </button>\n </p>\n <p *ngIf=\"unhandledOAuthError\">\n <i class=\"fa fa-fw fa-warning text-danger\" aria-hidden=\"true\"></i>\n Error: {{unhandledOAuthError.code}}\n </p>\n\n </div>\n <div *ngIf=\"userProviderData.hasPassword\">\n <h6 class=\"card-subtitle mb-2 text-muted\" *ngIf=\"userProviderData.oauthIds.length > 0\">\n Sign in with your email and password...\n </h6>\n <form [formGroup]=\"fg\" (ngSubmit)=\"emailReauth()\">\n <div class=\"form-group\">\n <label [attr.for]=\"id + 'email'\">Email Address</label>\n <input\n type=\"email\"\n class=\"form-control\"\n placeholder=\"Email Address\"\n [attr.id]=\"id + 'email'\"\n [ezfaInvalidInput]=\"fg.get('email')\"\n formControlName=\"email\">\n </div><!-- email fg -->\n <div class=\"form-group\">\n <label [attr.for]=\"id + 'password'\">\n Password\n </label>\n <ezfa-toggleable-password [control]=\"passwordInput\">\n <input\n #passwordInput\n [attr.id]=\"id + 'password'\"\n class=\"form-control\"\n [ezfaInvalidInput]=\"fg.get('password')\"\n placeholder=\"Password\"\n type=\"password\"\n [attr.aria-describedby]=\"id + 'passwordHelp'\"\n formControlName=\"password\">\n </ezfa-toggleable-password>\n <div [ezfaInvalidFeedback]=\"fg.get('password')\" key=\"required\">\n Required.\n </div>\n <div [ezfaInvalidFeedback]=\"fg.get('password')\" key=\"auth/wrong-password\">\n Wrong password.\n </div>\n <small [attr.id]=\"id + 'passwordHelp'\" class=\"form-text text-muted\">\n <a routerLink=\"../send-reset-password-link\" [queryParams]=\"{email: fg.get('email').value}\">Forgot?</a>\n </small>\n </div> <!-- password form-group -->\n <div class=\"form-group text-right\">\n <button\n type=\"submit\"\n [disabled]=\"submitting || fg.invalid\"\n class=\"btn\"\n [class.btn-outline-dark]=\"fg.invalid\"\n [class.btn-outline-success]=\"!fg.invalid\">\n <i class=\"fa fa-fw fa-sign-in\" aria-hidden=\"true\"></i>\n Sign In\n </button>\n <p *ngIf=\"submitting\">\n <i class=\"fa fa-fw fa-spin fa-refresh\" aria-hidden=\"true\"></i>\n Signing you in...\n </p>\n <p *ngIf=\"unhandledEmailError\">\n <i class=\"fa fa-fw fa-warning text-danger\" aria-hidden=\"true\"></i>\n Error: {{unhandledEmailError.code}}\n </p>\n </div><!-- submit -->\n </form>\n </div>\n </div>\n ","styles":["\n\n "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute"},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder"},{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}],"emailReauth":[{"__symbolic":"method"}],"oauthReauth":[{"__symbolic":"method"}],"checkForRedirect":[{"__symbolic":"method"}],"onReauthSuccess":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"onInitLoadUser":[{"__symbolic":"method"}],"gateToSignedInUser":[{"__symbolic":"method"}],"onAuthChangedUpdate":[{"__symbolic":"method"}],"gateToUserWithNoPassword":[{"__symbolic":"method"}],"gateToUserWithPassword":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-send-email-verification-link-route","template":"\n <div [ngSwitch]=\"screen\" *ngIf=\"user\">\n <div *ngSwitchCase=\"'form'\">\n <p>We’ll send an email verification link to {{user.email}}.</p>\n <div class=\"form-group mb-0 text-right\">\n\n <button type=\"button\" class=\"btn btn-outline-success btn-lg\" [disabled]=\"submitting\" (click)=\"submit()\">\n <i class=\"fa fa-fw fa-envelope\" aria-hidden=\"true\"></i>\n Send Verification Link\n </button>\n <p class=\"text-muted\" *ngIf=\"submitting\">\n <ezfa-icon-wait></ezfa-icon-wait>\n Sending link...\n </p>\n <p class=\"text-muted\" *ngIf=\"error\">\n <ezfa-icon-warning></ezfa-icon-warning>\n Woops! An unforeseen error occurred. Please try again.\n <br>\n <small>Error Code: {{error.code}}</small>\n </p>\n </div>\n </div>\n <div *ngSwitchCase=\"'success'\">\n <div class=\"alert alert-success\" role=\"alert\">\n <p>\n <ezfa-icon-success></ezfa-icon-success>\n <strong>Check Your Inbox</strong>\n </p>\n <p class=\"mb-0\">\n An email verification link has been sent to {{user.email}}.\n </p>\n </div>\n </div>\n <div *ngSwitchCase=\"'alreadyVerified'\">\n <div class=\"alert alert-success\" role=\"alert\">\n <ezfa-icon-success></ezfa-icon-success>\n Email Verified\n </div>\n <p class=\"mb-0\">\n {{user.email}} has already been verified.\n <a routerLink=\"../account\">View Account</a>\n </p>\n\n </div>\n </div>\n ","styles":["\n\n "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-recover-email-route","template":"\n <div [ngSwitch]=\"screen\">\n <div *ngSwitchCase=\"'wait'\">\n <div class=\"alert alert-light\" role=\"alert\">\n <i class=\"fa fa-fw fa-refresh fa-spin\" aria-hidden=\"true\"></i>\n Recovering email.\n Please wait...\n </div>\n </div>\n <div *ngSwitchCase=\"'form'\">\n <div class=\"form-group\">\n <p>\n Are you sure you want to change your email back to {{actionCodeInfo.email}}?\n </p>\n <small class=\"form-text text-muted\">Current email: {{actionCodeInfo.fromEmail}}</small>\n </div>\n <div class=\"form-group text-right mb-0\">\n <button\n type=\"button\"\n (click)=\"submit()\"\n [disabled]=\"submitting\"\n class=\"btn btn-outline-success\">\n <i class=\"fa fa-fw fa-save\" aria-hidden=\"true\"></i>\n Yes, Continue\n </button>\n <p *ngIf=\"submitting\" class=\"text-muted\">\n <i class=\"fa fa-fw fa-spin fa-refresh\" aria-hidden=\"true\"></i>\n Recovering email...\n </p>\n </div>\n </div>\n <div *ngSwitchCase=\"'success'\">\n <div class=\"alert alert-success\" role=\"alert\">\n <i class=\"fa fa-fw fa-check\" aria-hidden=\"true\"></i>\n Your email has been changed back to {{actionCodeInfo.email}}.\n </div>\n <p class=\"text-right\">\n <a *ngIf=\"user\" routerLink=\"../account\">Account</a>\n <a *ngIf=\"!user\" routerLink=\"../sign-in\" [queryParams]=\"{email: actionCodeInfo.email}\">Sign In</a>\n </p>\n </div>\n <div *ngSwitchCase=\"'error'\">\n <div class=\"alert alert-danger\" role=\"alert\">\n <p>\n <i class=\"fa fa-fw fa-warning\" aria-hidden=\"true\"></i>\n <strong>Error</strong>\n </p>\n <p class=\"mb-0\" [ngSwitch]=\"error.code\">\n <span *ngSwitchCase=\"'auth/expired-action-code'\">\n The email recovery link you used has expired.\n </span>\n <span *ngSwitchCase=\"'auth/invalid-action-code'\">\n The email recovery link you used is invalid.\n This is probably because it has already been used once.\n </span>\n <span *ngSwitchCase=\"'auth/user-disabled'\">\n The account associated with that email recovery link has been disabled.\n </span>\n <span *ngSwitchCase=\"'auth/user-not-found'\">\n The account associated with that email recovery link has been deleted.\n </span>\n <span *ngSwitchDefault>\n An unexpected error occurred. Code: {{error.code}}\n </span>\n </p>\n\n </div>\n <p class=\"text-right\">\n <a *ngIf=\"user\" routerLink=\"../account\">Account</a>\n <a *ngIf=\"!user\" routerLink=\"../sign-in\">Sign In</a>\n </p>\n </div>\n\n </div>\n ","styles":["\n\n "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute"},{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}],"checkCode":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-verify-email-route","template":"\n <div [ngSwitch]=\"screen\">\n <div *ngSwitchCase=\"'wait'\">\n <div class=\"alert alert-light\" role=\"alert\">\n <i class=\"fa fa-fw fa-refresh fa-spin\" aria-hidden=\"true\"></i>\n Verifying email<span *ngIf=\"email\"> {{email}}</span>.\n Please wait...\n </div>\n </div>\n <div *ngSwitchCase=\"'success'\">\n <div class=\"alert alert-success\" role=\"alert\">\n <i class=\"fa fa-fw fa-check\" aria-hidden=\"true\"></i>\n {{email}} verified.\n </div>\n <p class=\"text-right\">\n <a *ngIf=\"user\" routerLink=\"../account\">Account</a>\n <a *ngIf=\"!user\" routerLink=\"../sign-in\" [queryParams]=\"{email: email}\">Sign In</a>\n </p>\n </div>\n <div *ngSwitchCase=\"'error'\">\n <div class=\"alert alert-danger\" role=\"alert\">\n <p>\n <i class=\"fa fa-fw fa-warning\" aria-hidden=\"true\"></i>\n <strong>Error</strong>\n </p>\n <p class=\"mb-0\" [ngSwitch]=\"error.code\">\n <span *ngSwitchCase=\"'auth/expired-action-code'\">\n The email verification link you used has expired.\n <a routerLink=\"../send-email-verification-link\" class=\"alert-link\">Click here</a>\n to get a new link.\n </span>\n <span *ngSwitchCase=\"'auth/invalid-action-code'\">\n The email verification link you used is invalid.\n This is probably because it has already been used once.\n <a routerLink=\"../send-email-verification-link\" class=\"alert-link\">Click here</a>\n to get a new link.\n </span>\n <span *ngSwitchCase=\"'auth/user-disabled'\">\n The account associated with that email verification link has been disabled.\n </span>\n <span *ngSwitchCase=\"'auth/user-not-found'\">\n The account associated with that email verification link has been deleted.\n </span>\n <span *ngSwitchDefault>\n An unexpected error occurred. Code: {{error.code}}\n </span>\n </p>\n\n </div>\n <p class=\"text-right\">\n <a *ngIf=\"user\" routerLink=\"../account\">Account</a>\n <a *ngIf=\"!user\" routerLink=\"../sign-in\">Sign In</a>\n </p>\n </div>\n\n </div>\n ","styles":["\n\n "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute"},{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}],"checkCode":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-reset-password-route","template":"\n <div [ngSwitch]=\"screen\">\n <div *ngSwitchCase=\"'wait'\">\n <p class=\"text-muted\">\n <i class=\"fa fa-spin fa-fw fa-refresh\"></i>\n Checking password reset link. Please wait...\n </p>\n </div>\n <div *ngSwitchCase=\"'success'\">\n <p class=\"text-muted\">\n <i class=\"fa fa-fw fa-check text-success\" aria-hidden=\"true\"></i>\n Welcome, {{user.displayName}}. Your password has been saved and you’re signed in.\n </p>\n <p class=\"text-right\">\n <a routerLink=\"../account\">Account</a>\n </p>\n </div>\n <div *ngSwitchCase=\"'error'\">\n <p class=\"text-muted\" [ngSwitch]=\"linkError.code\">\n <i class=\"fa fa-fw fa-warning text-danger\"></i>\n <strong>Error</strong><br>\n <span *ngSwitchCase=\"'auth/expired-action-code'\">\n The reset password link has expired.\n Please <a routerLink=\"../send-reset-password-link\">click here</a>\n to get a new link.\n </span>\n <span *ngSwitchCase=\"'auth/invalid-action-code'\">\n The reset password link is invalid.\n This can happen if it has already been used.\n Please <a routerLink=\"../send-reset-password-link\">click here</a>\n to get a new link.\n </span>\n <span *ngSwitchCase=\"'auth/user-not-found'\">\n The account associated with that reset password link\n has been deleted.\n </span>\n <span *ngSwitchCase=\"'auth/user-disabled'\">\n The account associated with that reset password link\n has been disabled.\n </span>\n </p>\n </div>\n <div *ngSwitchCase=\"'form'\">\n <form [formGroup]=\"fg\" (ngSubmit)=\"submit()\">\n <div class=\"form-group\">\n <label [attr.for]=\"id + 'password'\">\n Choose New Password\n </label>\n <ezfa-toggleable-password [control]=\"passwordInput\">\n <input\n #passwordInput\n [attr.id]=\"id + 'password'\"\n class=\"form-control\"\n [ezfaInvalidInput]=\"fg.get('password')\"\n placeholder=\"Password\"\n type=\"password\"\n [attr.aria-describedby]=\"id + 'passwordHelp'\"\n formControlName=\"password\">\n </ezfa-toggleable-password>\n <div [ezfaInvalidFeedback]=\"fg.get('password')\" key=\"required\">\n Required.\n </div>\n <div [ezfaInvalidFeedback]=\"fg.get('password')\" key=\"auth/weak-password\">\n That password is too weak.\n </div>\n <small [attr.id]=\"id + 'passwordHelp'\" class=\"form-text text-muted\">\n You’re choosing a new password for {{email}}.\n </small>\n </div> <!-- password form-group -->\n <div class=\"form-group text-right\">\n <button\n type=\"submit\"\n [disabled]=\"submitting || fg.invalid\"\n class=\"btn\"\n [class.btn-outline-dark]=\"fg.invalid\"\n [class.btn-outline-success]=\"!fg.invalid\">\n <i class=\"fa fa-fw fa-save\" aria-hidden=\"true\"></i>\n Save Password\n </button>\n <p *ngIf=\"submitting\">\n <i class=\"fa fa-fw fa-spin fa-refresh\" aria-hidden=\"true\"></i>\n Saving password...\n </p>\n <p *ngIf=\"unhandledError\">\n <i class=\"fa fa-fw fa-warning text-danger\" aria-hidden=\"true\"></i>\n Error: {{unhandledError.code}}\n </p>\n </div>\n </form>\n </div>\n </div>\n ","styles":["\n\n "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute"},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder"},{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}],"checkCode":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-send-reset-password-link-route","template":"\n <form [formGroup]=\"fg\" (ngSubmit)=\"submit()\" *ngIf=\"! success\">\n <div class=\"form-group\">\n <label [attr.for]=\"id + 'email'\">\n Email Address\n </label>\n <input\n [attr.id]=\"id + 'email'\"\n class=\"form-control\"\n [ezfaInvalidInput]=\"fg.get('email')\"\n placeholder=\"Email Address\"\n type=\"email\"\n [attr.aria-describedby]=\"id + 'emailHelp'\"\n formControlName=\"email\">\n <div [ezfaInvalidFeedback]=\"fg.get('email')\" key=\"required\">\n Required.\n </div>\n <div [ezfaInvalidFeedback]=\"fg.get('email')\" [key]=\"['auth/invalid-email', 'email']\">\n Invalid email address.\n </div>\n <div [ezfaInvalidFeedback]=\"fg.get('email')\" key=\"auth/user-not-found\">\n We could not find an account with that email address.\n </div>\n <div [ezfaInvalidFeedback]=\"fg.get('email')\" key=\"no-password\">\n The account with that email address does not yet have a password. Please\n <a routerLink=\"../sign-in\">sign in</a> with\n <ezfa-providers-list-phrase [providerIds]=\"oAuthProviderIds\" andOr=\"or\"></ezfa-providers-list-phrase>\n instead.\n </div>\n\n <small [attr.id]=\"id + 'emailHelp'\" class=\"form-text text-muted\">\n Enter the email address you used to sign up with <ezfa-application-label></ezfa-application-label>.\n We’ll send you a link to reset your password.\n </small>\n </div> <!-- password form-group -->\n <div class=\"form-group text-right mb-0\">\n <p>\n <button\n type=\"submit\"\n [disabled]=\"submitting || fg.invalid\"\n class=\"btn\"\n [class.btn-outline-dark]=\"fg.invalid\"\n [class.btn-outline-success]=\"!fg.invalid\">\n <i class=\"fa fa-fw fa-envelope\" aria-hidden=\"true\"></i>\n Send Link\n </button>\n </p>\n <p *ngIf=\"submitting\" class=\"text-muted mt-3 mb-0\">\n <i class=\"fa fa-fw fa-spin fa-refresh\" aria-hidden=\"true\"></i>\n Sending link...\n </p>\n <p *ngIf=\"unhandledError\" class=\"text-muted mt-3 mb-0\">\n <i class=\"fa fa-fw fa-warning text-danger\" aria-hidden=\"true\"></i>\n Error: {{unhandledError.code}}\n </p>\n </div>\n </form>\n\n <div *ngIf=\"success\">\n <div class=\"alert alert-success\" role=\"alert\">\n <p class=\"mb-1\">\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\n <strong>Check Your Email</strong>\n </p>\n <p class=\"mb-0\">\n We’ve sent a reset password link to {{fg.get('email').value}}.\n </p>\n </div>\n\n <p class=\"text-muted\">\n Allow a few moments for the email to arrive.\n </p>\n <p class=\"text-muted text-right mb-0\">\n No email yet?\n <button (click)=\"reset()\" class=\"btn btn-secondary btn-sm ml-3\">Resend Link</button>\n </p>\n </div>\n ","styles":["\n\n "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute"},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder"},{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"ensureUserExistsWithPassword":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-change-email-route","template":"\n\n <div *ngIf=\"user\">\n <form [formGroup]=\"fg\" (ngSubmit)=\"submit()\" *ngIf=\"! success\">\n <div class=\"form-group\">\n <label [attr.for]=\"id + 'email'\">\n New Email\n </label>\n <input\n [attr.id]=\"id + 'email'\"\n class=\"form-control\"\n [ezfaInvalidInput]=\"fg.get('email')\"\n placeholder=\"New Email\"\n type=\"email\"\n [attr.aria-describedby]=\"id + 'emailHelp'\"\n formControlName=\"email\">\n <div [ezfaInvalidFeedback]=\"fg.get('email')\" key=\"required\">\n Required.\n </div>\n <div [ezfaInvalidFeedback]=\"fg.get('email')\" [key]=\"['auth/invalid-email', 'email']\">\n Invalid email address.\n </div>\n <div [ezfaInvalidFeedback]=\"fg.get('email')\" key=\"auth/email-already-in-use\">\n That email is already in use.\n </div>\n <div [ezfaInvalidFeedback]=\"fg.get('email')\" key=\"same\">\n That’s the same as your current email.\n </div>\n\n <small [attr.id]=\"id + 'emailHelp'\" class=\"form-text text-muted\">\n Your current email is {{user.email}}.\n </small>\n </div> <!-- password form-group -->\n <div class=\"form-group text-right\">\n <button\n type=\"submit\"\n [disabled]=\"submitting || fg.invalid\"\n class=\"btn\"\n [class.btn-outline-dark]=\"fg.invalid\"\n [class.btn-outline-success]=\"!fg.invalid\">\n <i class=\"fa fa-fw fa-save\" aria-hidden=\"true\"></i>\n Change Email\n </button>\n <p *ngIf=\"submitting\">\n <i class=\"fa fa-fw fa-spin fa-refresh\" aria-hidden=\"true\"></i>\n Changing account email...\n </p>\n <p *ngIf=\"unhandledError\">\n <i class=\"fa fa-fw fa-warning text-danger\" aria-hidden=\"true\"></i>\n Error: {{unhandledError.code}}\n </p>\n </div>\n </form>\n\n <div *ngIf=\"success\">\n <div class=\"alert alert-success\" role=\"alert\">\n Your email has been changed to {{user.email}}.\n </div>\n <p>\n <a routerLink=\"../account\" class=\"btn btn-secondary btn-block\">\n Back to Account\n </a>\n </p>\n </div>\n\n </div>\n ","styles":["\n\n "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder"},{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}],"validateNotSame":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-change-password-route","template":"\n <div *ngIf=\"user\">\n <form [formGroup]=\"fg\" (ngSubmit)=\"submit()\" *ngIf=\"! success\">\n <div class=\"form-group\">\n <label [attr.for]=\"id + 'password'\">\n Choose New Password\n </label>\n <ezfa-toggleable-password [control]=\"passwordInput\">\n <input\n #passwordInput\n [attr.id]=\"id + 'password'\"\n class=\"form-control\"\n [ezfaInvalidInput]=\"fg.get('password')\"\n placeholder=\"Password\"\n type=\"password\"\n [attr.aria-describedby]=\"id + 'passwordHelp'\"\n formControlName=\"password\">\n </ezfa-toggleable-password>\n <div [ezfaInvalidFeedback]=\"fg.get('password')\" key=\"required\">\n Required.\n </div>\n <div [ezfaInvalidFeedback]=\"fg.get('password')\" key=\"auth/weak-password\">\n That password is too weak.\n </div>\n <small [attr.id]=\"id + 'passwordHelp'\" class=\"form-text text-muted\">\n Please choose a strong password.\n </small>\n </div> <!-- password form-group -->\n <div class=\"form-group text-right\">\n <button\n type=\"submit\"\n [disabled]=\"submitting || fg.invalid\"\n class=\"btn\"\n [class.btn-outline-dark]=\"fg.invalid\"\n [class.btn-outline-success]=\"!fg.invalid\">\n <i class=\"fa fa-fw fa-save\" aria-hidden=\"true\"></i>\n Save Password\n </button>\n <p *ngIf=\"submitting\">\n <i class=\"fa fa-fw fa-spin fa-refresh\" aria-hidden=\"true\"></i>\n Saving password...\n </p>\n <p *ngIf=\"unhandledError\">\n <i class=\"fa fa-fw fa-warning text-danger\" aria-hidden=\"true\"></i>\n Error: {{unhandledError.code}}\n </p>\n </div>\n </form>\n <div *ngIf=\"success\">\n <div class=\"alert alert-success\" role=\"alert\">\n Your new password has been saved.\n </div>\n <p>\n <a routerLink=\"../account\" class=\"btn btn-secondary btn-block\">\n Back to Account\n </a>\n </p>\n </div>\n\n </div>\n ","styles":["\n\n "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder"},{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}]}},"ɵj":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-unlink-route","template":"\n <div *ngIf=\" 'wait' === screen \" class=\"alert alert-info my-3\" role=\"alert\">\n <i class=\"fa fa-fw fa-spin fa-refresh\" aria-hidden=\"true\"></i>\n Please wait...\n </div>\n\n <div *ngIf=\" 'form' === screen \">\n <div class=\"card my-3\">\n <div class=\"card-body\">\n <p>\n Are you sure you want to\n <span *ngIf=\"providerId === 'password'\">remove the password</span>\n <span *ngIf=\"providerId !== 'password'\">\n unlink\n <ezfa-provider-label [providerId]=\"providerId\"></ezfa-provider-label>\n </span>\n from your account?\n </p>\n\n <div class=\"form-group text-right\">\n <p>\n <a class=\"btn btn-secondary\" routerLink=\"../account\">Cancel</a>\n <button class=\"btn btn-danger\" type=\"button\" (click)=\"submit()\">\n <i class=\"fa fa-times fa-fw\" aria-hidden=\"true\"></i>\n <span *ngIf=\"providerId !== 'password'\">\n Unlink\n <ezfa-provider-label [providerId]=\"providerId\"></ezfa-provider-label>\n </span>\n <span *ngIf=\"providerId === 'password'\">\n Remove Password\n </span>\n </button>\n </p>\n <p *ngIf=\"submitting\">\n <i class=\"fa fa-fw fa-spin fa-refresh\" aria-hidden=\"true\"></i>\n Removing <ezfa-provider-label [providerId]=\"providerId\"></ezfa-provider-label>\n sign in method....\n </p>\n <p *ngIf=\"unhandledError\">\n <i class=\"fa fa-fw fa-warning text-danger\" aria-hidden=\"true\"></i>\n Error: {{unhandledError.code}}\n </p>\n </div>\n </div>\n </div>\n </div>\n ","styles":["\n\n "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute"},{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}],"gateByUserAndProvider":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-link-route","template":"\n <p class=\"text-muted\" *ngIf=\"wait\">\n <i class=\"fa fa-spin fa-fw fa-refresh\"></i> Please wait...\n </p>\n\n <div *ngIf=\"error\">\n <div [ngSwitch]=\"error.code\" class=\"alert alert-danger my-3\" role=\"alert\">\n <p>\n <i class=\"fa fa-fw fa-warning\"></i>\n <strong>\n Account Link Error\n </strong>\n </p>\n <div *ngSwitchCase=\"'auth/credential-already-in-use'\">\n <p>\n The <ezfa-provider-label [providerId]=\"error.credential.providerId\"></ezfa-provider-label>\n account you tried to add is already associated with a different\n <ezfa-application-label></ezfa-application-label> account ({{error.email}}.)\n </p>\n <p class=\"mb-0\">\n You’re currently signed in as {{user.email}}.\n </p>\n </div>\n <div *ngSwitchCase=\"'auth/email-already-in-use'\">\n <p>\n The email for the <ezfa-provider-label [providerId]=\"error.credential.providerId\"></ezfa-provider-label>\n account you tried to add ({{error.email}}) is already in use by a different\n <ezfa-application-label></ezfa-application-label> account.\n </p>\n <p class=\"mb-0\">\n You’re currently signed in as {{user.email}}.\n </p>\n </div>\n <div *ngSwitchCase=\"'auth/cancelled-popup-request'\">\n <p class=\"mb-0\">\n You closed the <ezfa-provider-label [providerId]=\"providerId\"></ezfa-provider-label>\n popup window without linking <ezfa-provider-label [providerId]=\"providerId\"></ezfa-provider-label>.\n </p>\n </div>\n <div *ngSwitchCase=\"'auth/popup-closed-by-user'\">\n <p class=\"mb-0\">\n You closed the <ezfa-provider-label [providerId]=\"providerId\"></ezfa-provider-label>\n popup window without linking a <ezfa-provider-label [providerId]=\"providerId\"></ezfa-provider-label>\n account.\n </p>\n </div>\n <p *ngSwitchCase=\"'auth/popup-blocked'\" class=\"mb-0\">\n the popup was blocked.\n </p>\n <p *ngSwitchDefault class=\"mb-0\">\n Unhandled error: {{error | json}}\n </p>\n\n </div>\n <p class=\"text-muted\">\n Try again...\n <button class=\"btn btn-primary btn-block my-1\" (click)=\"link()\">\n Add\n <ezfa-provider-icon [providerId]=\"providerId\"></ezfa-provider-icon>\n <ezfa-provider-label [providerId]=\"providerId\"></ezfa-provider-label>\n </button>\n <small class=\"form-text\">\n Make sure the <ezfa-provider-label [providerId]=\"providerId\"></ezfa-provider-label>\n account you add is associated with the email address {{user.email}}.\n </small>\n </p>\n <p>\n <a routerLink=\"../account\" class=\"btn btn-secondary btn-block\">\n Back to Account\n </a>\n </p>\n </div>\n\n <div *ngIf=\"success\">\n <div class=\"alert alert-success my-3\" role=\"alert\">\n <ezfa-provider-icon [providerId]=\"providerId\"></ezfa-provider-icon>\n <ezfa-provider-label [providerId]=\"providerId\"></ezfa-provider-label>\n added!\n </div>\n <p>\n <a routerLink=\"../account\" class=\"btn btn-secondary btn-block\">\n Back to Account\n </a>\n </p>\n </div>\n ","styles":["\n\n "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute"},{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}],"link":[{"__symbolic":"method"}],"onInitHandleSavedPopupPromise":[{"__symbolic":"method"}],"onInitCheckForRedirect":[{"__symbolic":"method"}],"onSuccess":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}]}},"ɵl":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-add-password-route","template":"\n\n <form [formGroup]=\"fg\" (ngSubmit)=\"submit()\">\n <div class=\"form-group\">\n <label [attr.for]=\"id + 'password'\">\n Choose Password\n </label>\n <ezfa-toggleable-password [control]=\"passwordInput\">\n <input\n #passwordInput\n [attr.id]=\"id + 'password'\"\n class=\"form-control\"\n [ezfaInvalidInput]=\"fg.get('password')\"\n placeholder=\"Password\"\n type=\"password\"\n [attr.aria-describedby]=\"id + 'passwordHelp'\"\n formControlName=\"password\">\n </ezfa-toggleable-password>\n <div [ezfaInvalidFeedback]=\"fg.get('password')\" key=\"required\">\n Required.\n </div>\n <div [ezfaInvalidFeedback]=\"fg.get('password')\" key=\"auth/weak-password\">\n That password is too weak.\n </div>\n <small [attr.id]=\"id + 'passwordHelp'\" class=\"form-text text-muted\">\n Please choose a strong password.\n </small>\n </div> <!-- password form-group -->\n <div class=\"form-group text-right\">\n <button\n type=\"submit\"\n [disabled]=\"submitting || fg.invalid\"\n class=\"btn\"\n [class.btn-outline-dark]=\"fg.invalid\"\n [class.btn-outline-success]=\"!fg.invalid\">\n <i class=\"fa fa-fw fa-save\" aria-hidden=\"true\"></i>\n Add Password\n </button>\n <p *ngIf=\"submitting\">\n <i class=\"fa fa-fw fa-spin fa-refresh\" aria-hidden=\"true\"></i>\n Adding password to account...\n </p>\n <p *ngIf=\"unhandledError\">\n <i class=\"fa fa-fw fa-warning text-danger\" aria-hidden=\"true\"></i>\n Error: {{unhandledError.code}}\n </p>\n </div>\n </form>\n ","styles":["\n\n "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder"},{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}],"addPassword":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-account","template":"\n <div *ngIf=\"user\">\n\n <div *ngIf=\"user.displayName\">\n <h6 class=\"text-muted mb-1\">Name</h6>\n <p>{{user.displayName}}</p>\n </div>\n <h6 class=\"text-muted mb-1\">Email</h6>\n <p>\n {{user.email}}\n <span class=\"badge badge-success\" *ngIf=\"user.emailVerified\">\n <i class=\"fa fa-fw fa-check\" aria-hidden=\"true\"></i>\n Verified\n </span>\n <span *ngIf=\"!user.emailVerified\">\n <a routerLink=\"../send-email-verification-link\">Verify</a>\n </span>\n </p>\n\n <h6 class=\"text-muted mb-1\">Sign In Methods</h6>\n <div class=\"mb-3\" *ngIf=\"userProviderData\">\n <ul class=\"list-group\">\n <li *ngIf=\"userProviderData.hasPassword\" class=\"list-group-item\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <div>\n <span class=\"text-muted\">\n <ezfa-provider-icon providerId=\"password\"></ezfa-provider-icon>\n </span>\n <ezfa-provider-label providerId=\"password\"></ezfa-provider-label>\n <br>\n <small class=\"text-muted\">\n <a routerLink=\"../change-email\">Change Email</a>\n |\n <a routerLink=\"../change-password\">Change Password</a>\n </small>\n\n </div>\n <div>\n <a\n routerLink=\"../unlink\"\n [queryParams]=\"{providerId: 'password'}\"\n type=\"button\"\n *ngIf=\"userProviderData.ids.length > 1\"\n class=\"btn btn-sm btn-outline-light\"\n [ezfaProviderTitle]=\"{label: 'Remove', id: 'password'}\">\n <i class=\"fa fa-fw fa-times text-danger\"></i>\n <span class=\"sr-only\">\n Remove <ezfa-provider-label providerId=\"password\"></ezfa-provider-label>\n </span>\n </a>\n </div>\n </div>\n </li>\n <li *ngFor=\"let id of userProviderData.oauthIds\" class=\"list-group-item\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <div>\n <span class=\"text-muted\">\n <ezfa-provider-icon [providerId]=\"id\"></ezfa-provider-icon>\n </span>\n <ezfa-provider-label [providerId]=\"id\"></ezfa-provider-label>\n </div>\n <div>\n <a\n routerLink=\"../unlink\"\n [queryParams]=\"{providerId: id}\"\n *ngIf=\"userProviderData.ids.length > 1\"\n class=\"btn btn-sm btn-outline-light\"\n [ezfaProviderTitle]=\"{label: 'Remove', id: id}\">\n <i class=\"fa fa-fw fa-times text-danger\"></i>\n <span class=\"sr-only\">\n Remove <ezfa-provider-label [providerId]=\"id\"></ezfa-provider-label>\n </span>\n </a>\n </div>\n </div>\n </li>\n </ul>\n\n <div *ngIf=\"userProviderData.canAddPassword || userProviderData.canAddOauth.length > 0\" >\n <small class=\"text-muted\">\n Add...\n </small>\n <div class=\"list-group\">\n <a\n *ngIf=\"userProviderData.canAddPassword\"\n routerLink=\"../add-password\"\n class=\"list-group-item list-group-item-action\"\n [ezfaProviderTitle]=\"{label: 'Add', id: 'password'}\">\n <ezfa-provider-icon providerId=\"password\"></ezfa-provider-icon>\n Add\n <ezfa-provider-label providerId=\"password\"></ezfa-provider-label>\n </a>\n <button *ngFor=\"let id of userProviderData.canAddOauth\"\n type=\"button\"\n class=\"list-group-item list-group-item-action\"\n (click)=\"addProvider(id)\"\n [ezfaProviderTitle]=\"{label: 'Add', id: id}\">\n <ezfa-provider-icon [providerId]=\"id\"></ezfa-provider-icon>\n Add\n <ezfa-provider-label [providerId]=\"id\"></ezfa-provider-label>\n </button>\n </div>\n </div>\n </div>\n\n\n <ezfa-persistence-form></ezfa-persistence-form>\n\n\n <p class=\"text-right mb-0\">\n <a routerLink=\"../sign-out\">Sign Out</a>\n </p>\n\n </div>\n ","styles":["\n\n "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute"},{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}],"initMessage":[{"__symbolic":"method"}],"addProvider":[{"__symbolic":"method"}]}},"ɵn":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-sign-in-route","template":"\n <div *ngIf=\"authService.passwordProviderEnabled\">\n <ezfa-email-sign-in-form [email]=\"email\"></ezfa-email-sign-in-form>\n <hr *ngIf=\"authService.oauthProviderIds.length > 0\">\n </div>\n\n <div *ngIf=\"authService.oauthProviderIds.length > 0\">\n <h6 class=\"text-muted\">\n <span *ngIf=\"!authService.passwordProviderEnabled\">Sign in with...</span>\n <span *ngIf=\"authService.passwordProviderEnabled\">Or sign in with...</span>\n </h6>\n <ezfa-oauth-sign-in></ezfa-oauth-sign-in>\n </div>\n <hr>\n <ezfa-persistence-form></ezfa