{"__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-persistence-form>\n  ","styles":["\n\n  "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute"},{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵo":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-sign-out-route","template":"\n    <div *ngIf=\" 'wait' === screen \" class=\"alert alert-light\" role=\"alert\">\n      <i class=\"fa fa-fw fa-spin fa-refresh\" aria-hidden=\"true\"></i>\n      Please wait. Signing you out...\n    </div>\n    <div *ngIf=\" 'success' === screen \" class=\"alert alert-success\" role=\"alert\">\n      <i class=\"fa fa-fw fa-check\" aria-hidden=\"true\"></i>\n      Thanks! You’re signed out!\n    </div>\n  ","styles":["\n\n  "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵp":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-index-route","template":"\n    <p class=\"text-muted\">\n      <i class=\"fa fa-spin fa-fw fa-refresh\"></i> Please wait...\n    </p>\n  ","styles":["\n\n  "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute"},{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵq":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-toggleable-password","template":"\n  <div class=\"input-group\">\n    <ng-content></ng-content>\n    <span class=\"input-group-btn\">\n      <button class=\"btn btn-outline-secondary\" type=\"button\" (click)=\"toggle()\">\n        <span *ngIf=\"!visible\" title=\"Show Password\">\n          <i class=\"fa fa-eye fa-fw\" aria-hidden=\"true\"></i>\n          <span class=\"sr-only\">Hide Password</span>\n        </span>\n        <span *ngIf=\"visible\" title=\"Hide Password\">\n          <i class=\"fa fa-eye-slash fa-fw\" aria-hidden=\"true\"></i>\n          <span class=\"sr-only\">Show Password</span>\n        </span>\n      </button>\n    </span>\n  </div>\n  "}]}],"members":{"control":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2"}]}],"toggle":[{"__symbolic":"method"}]}},"ɵr":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive"},"arguments":[{"selector":"[ezfaInvalidFeedback]"}]}],"members":{"ezfaInvalidFeedback":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"key":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"hide":[{"__symbolic":"method"}],"show":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}]}},"ɵs":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive"},"arguments":[{"selector":"[ezfaInvalidInput]"}]}],"members":{"ezfaInvalidInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}]}},"ɵt":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-persistence-form","template":"\n    <div class=\"form-group mb-0\">\n      <div class=\"form-check\">\n        <label class=\"form-check-label\">\n          <input #checkbox\n            type=\"checkbox\"\n            class=\"form-check-input\"\n            [value]=\"true\"\n            [formControl]=\"control\"\n            [attr.aria-describedby]=\"id + 'rememberMeHelp'\">\n          Remember me on this device.\n        </label>\n      </div>\n      <small [attr.id]=\"id + 'rememberMeHelp'\" class=\"form-text text-muted\">\n        Uncheck this box if you’re on a public computer or shared device.\n      </small>\n    </div>\n  ","styles":["\n\n  "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵu":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-provider-label","template":"{{label}}"}]}],"members":{"providerId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵv":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-provider-icon","template":"<i [ngClass]=\"classes\" aria-hidden=\"true\"></i>"}]}],"members":{"providerId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"ngOnInit":[{"__symbolic":"method"}]},"statics":{"PROVIDER_ICONS":{"password":"fa fa-fw fa-envelope","twitter.com":"fa fa-fw fa-twitter","facebook.com":"fa fa-fw fa-facebook","github.com":"fa fa-fw fa-github","google.com":"fa fa-fw fa-google"}}},"ɵw":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-providers-list-phrase","template":"{{phrase}}"}]}],"members":{"providerIds":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"andOr":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵx":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-email-sign-in-form","template":"\n    <form [formGroup]=\"fg\" (ngSubmit)=\"submit()\">\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          [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]=\"['email', 'auth/invalid-email']\">\n          Invalid email address.\n        </div>\n        <div [ezfaInvalidFeedback]=\"fg.get('email')\" key=\"auth/user-disabled\">\n          That user account has been disabled.\n        </div>\n\n        <small [attr.id]=\"id + 'emailHelp'\"  class=\"form-text text-muted\">\n          <span *ngIf=\"'unfetched' === fetchStatus\">\n            Enter your email address. If you don’t have an account, we’ll create one for you.\n          </span>\n          <span *ngIf=\"'fetching' === fetchStatus\">\n            <i class=\"fa fa-fw fa-spin fa-refresh\" aria-hidden=\"true\"></i>\n            Looking up account...\n          </span>\n          <span *ngIf=\"'fetched' === fetchStatus\">\n            <span *ngIf=\"accountExists\">\n              <span *ngIf=\"!accountExistsWithoutPassword\">\n                <i class=\"fa fa-fw fa-check text-success\" aria-hidden=\"true\"></i>\n                <ezfa-provider-label providerId=\"password\"></ezfa-provider-label>\n                account found.\n              </span>\n              <span *ngIf=\"accountExistsWithoutPassword\">\n                <i class=\"fa fa-fw fa-warning text-warning\" aria-hidden=\"true\"></i>\n                Account found, but it does not yet have a password. Please sign in with\n                <ezfa-providers-list-phrase [providerIds]=\"accountOAuthProviders\"></ezfa-providers-list-phrase>\n                instead.\n              </span>\n            </span>\n            <span *ngIf=\"!accountExists\">\n              <i class=\"fa fa-fw fa-check text-success\" aria-hidden=\"true\"></i>\n              We’ll create an account for you.\n            </span>\n          </span>\n        </small>\n\n      </div> <!-- email form-group -->\n\n      <div *ngIf=\"!accountExistsWithoutPassword\">\n        <div class=\"form-group\">\n          <label [attr.for]=\"id + 'password'\">\n            <span *ngIf=\"!accountExists\">Choose</span>\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          <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            <span *ngIf=\"accountExists\">\n              <a routerLink=\"../send-reset-password-link\" [queryParams]=\"{email: fg.get('email').value}\">Forgot?</a>\n            </span>\n            <span *ngIf=\"!accountExists\">\n              Please choose a strong password.\n            </span>\n          </small>\n        </div> <!-- password form-group -->\n        <div *ngIf=\"!accountExists\" [formGroup]=\"signUpFg\">\n          <div class=\"form-group\" *ngIf=\"signUpFg.get('name')\">\n            <label [attr.for]=\"id + 'name'\">\n              Your Name\n            </label>\n            <input\n              [attr.id]=\"id + 'name'\"\n              class=\"form-control\"\n              [ezfaInvalidInput]=\"signUpFg.get('name')\"\n              placeholder=\"Your Name\"\n              type=\"text\"\n              formControlName=\"name\">\n            <div [ezfaInvalidFeedback]=\"signUpFg.get('name')\" key=\"required\">\n              Required.\n            </div>\n          </div> <!-- name form-group -->\n          <div class=\"form-group\" *ngIf=\"signUpFg.get('tos')\">\n            <div class=\"form-check\">\n              <label class=\"form-check-label\">\n                <input\n                  type=\"checkbox\"\n                  class=\"form-check-input\"\n                  [value]=\"true\"\n                  formControlName=\"tos\">\n                I've read the terms of service.\n              </label>\n            </div>\n            <div [ezfaInvalidFeedback]=\"signUpFg.get('tos')\" key=\"required\">\n              Required.\n            </div>\n          </div>\n        </div><!-- *ngIf=\"!accountExists\" -->\n        <div class=\"form-group text-right\">\n          <p *ngIf=\"accountExists\">\n            <button\n              type=\"submit\"\n              [disabled]=\"submitting || fg.invalid\"\n              class=\"btn btn-lg\"\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>\n          <p *ngIf=\"!accountExists\">\n            <button\n              type=\"submit\"\n              [disabled]=\"submitting || fg.invalid || signUpFg.invalid\"\n              class=\"btn btn-lg\"\n              [class.btn-outline-dark]=\"fg.invalid || signUpFg.invalid\"\n              [class.btn-outline-success]=\"!(fg.invalid || signUpFg.invalid)\">\n              <i class=\"fa fa-fw fa-sign-in\" aria-hidden=\"true\"></i>\n              Sign Up\n            </button>\n          </p>\n          <p *ngIf=\"submitting\" class=\"text-muted\">\n            <i class=\"fa fa-fw fa-spin fa-refresh\" aria-hidden=\"true\"></i>\n            <span *ngIf=\"accountExists\">Signing you in...</span>\n            <span *ngIf=\"!accountExists\">Signing you up...</span>\n          </p>\n        </div>\n      </div><!-- *ngIf=\"!accountExistsWithoutPassword\" -->\n    </form>\n  ","styles":["\n\n  "]}]}],"members":{"email":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder"},{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}],"fetchAccountByEmail":[{"__symbolic":"method"}]},"statics":{"FETCH_TIMEOUT":500}},"ɵy":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive"},"arguments":[{"selector":"[ezfaProviderTitle]"}]}],"members":{"sfaProviderTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"},{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵz":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-application-label","template":"{{label}}"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵba":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-oauth-sign-in","template":"\n    <div class=\"form-group\">\n      <div class=\"text-center\">\n        <button *ngFor=\"let id of oAuthProviderIds\"\n          [ezfaProviderTitle]=\"{label: 'Sign in with', id: id}\"\n          (click)=\"oAuthSignIn(id)\" class=\"btn btn-outline-primary btn-lg mx-1 my-1\">\n          <ezfa-provider-icon [providerId]=\"id\"></ezfa-provider-icon>\n          <span class=\"sr-only\">Sign In with {{id}}</span>\n        </button>\n      </div>\n      <div class=\"invalid-feedback\" *ngIf=\"diffCredError\" style=\"display:block;\">\n        The email address {{diffCredError.email}} is not yet\n        linked to a <ezfa-provider-label [providerId]=\"diffCredError.providerId\"></ezfa-provider-label>\n        account. Please sign in using\n        <ezfa-providers-list-phrase [providerIds]=\"diffCredError.providerIdsForEmail\" andOr=\"or\"></ezfa-providers-list-phrase>\n        instead.\n      </div>\n      <div class=\"invalid-feedback\" *ngIf=\"unhandledCredError\" style=\"display:block;\">\n        Sign in with <ezfa-provider-label [providerId]=\"unhandledCredError.providerId\"></ezfa-provider-label>\n        failed. Error code: {{unhandledCredError.code}}.\n      </div>\n    </div>\n  ","styles":["\n\n  "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EzfaService"}]}],"ngOnInit":[{"__symbolic":"method"}],"checkForRedirect":[{"__symbolic":"method"}],"signIn":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}],"onSuccess":[{"__symbolic":"method"}]}},"ɵbb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-icon-wait","template":"<i class=\"fa fa-fw fa-refresh fa-spin\" aria-hidden=\"true\"></i>","styles":[]}]}],"members":{}},"ɵbc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-icon-success","template":"<i class=\"fa fa-fw fa-check\" aria-hidden=\"true\"></i>","styles":[]}]}],"members":{}},"ɵbd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"ezfa-icon-warning","template":"<i class=\"fa fa-fw fa-warning\" aria-hidden=\"true\"></i>","styles":[]}]}],"members":{}}},"origins":{"EzfaEmailChangedEvent":"./ezfa-email-changed-event.class","EzfaOauthMethod":"./ezfa-oauth-method.enum","EzfaOptions":"./ezfa-options.class","EzfaProviderLabels":"./ezfa-provider-labels.class","EzfaProviderLinkedEvent":"./ezfa-provider-linked-event.class","EzfaProviderUnlinkedEvent":"./ezfa-provider-unlinked-event.class","EzfaSignedInEvent":"./ezfa-signed-in-event.class","EzfaSignedOutEvent":"./ezfa-signed-out-event.class","EzfaService":"./ezfa.service","EzfaModule":"./ezfa.module","EzfaRoutesModule":"./routes/ezfa-routes.module","ɵa":"./routes/reauthenticate/reauthenticate-route.component","ɵb":"./routes/base.component","ɵc":"./routes/send-email-verification-link/send-email-verification-link-route.component","ɵd":"./routes/recover-email/recover-email-route.component","ɵe":"./routes/verify-email/verify-email-route.component","ɵf":"./routes/reset-password/reset-password-route.component","ɵg":"./routes/send-reset-password-link/send-reset-password-link-route.component","ɵh":"./routes/change-email/change-email-route.component","ɵi":"./routes/change-password/change-password-route.component","ɵj":"./routes/unlink/unlink-route.component","ɵk":"./routes/link/link-route.component","ɵl":"./routes/add-password/add-password-route.component","ɵm":"./routes/account/account-route.component","ɵn":"./routes/sign-in/sign-in-route.component","ɵo":"./routes/sign-out/sign-out-route.component","ɵp":"./routes/index/index-route.component","ɵq":"./routes/util/toggleable-password.component","ɵr":"./routes/util/invalid-feedback.directive","ɵs":"./routes/util/invalid-input.directive","ɵt":"./routes/persistence-form/persistence-form.component","ɵu":"./routes/util/provider-label.component","ɵv":"./routes/util/provider-icon.component","ɵw":"./routes/util/providers-list-phrase.component","ɵx":"./routes/sign-in/email-sign-in-form.component","ɵy":"./routes/util/provider-title.directive","ɵz":"./routes/util/application-label.component","ɵba":"./routes/sign-in/oauth-sign-in.component","ɵbb":"./routes/util/icon-wait.component","ɵbc":"./routes/util/icon-success.component","ɵbd":"./routes/util/icon-warning.component"},"importAs":"ez-firebase-auth"}