@nowzoo/ngx-firebase-auth
Version:
Angular components for Firebase email-first sign in and out-of-band (oob) actions (reset password, etc).
123 lines (120 loc) • 9.57 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Component, Input, Output, EventEmitter } from '@angular/core';
import { AngularFireAuth } from 'angularfire2/auth';
import { screenAnimation } from '../../shared';
export class OobVerifyEmailComponent {
/**
* @param {?} _afAuth
*/
constructor(_afAuth) {
this._afAuth = _afAuth;
this.success = new EventEmitter();
this.screen = 'wait';
this.submitting = false;
}
/**
* @return {?}
*/
get auth() {
return this._afAuth.auth;
}
/**
* @return {?}
*/
ngOnInit() {
this.auth.checkActionCode(this.oobCode)
.then((result) => {
this.info = result;
return this.auth.applyActionCode(this.oobCode);
})
.then(() => {
this.screen = 'success';
this.success.emit({
mode: 'verifyEmail',
info: this.info,
user: this.auth.currentUser
});
})
.catch((error) => {
this.unhandledError = error;
this.screen = 'error';
});
}
}
OobVerifyEmailComponent.decorators = [
{ type: Component, args: [{
selector: 'ngx-firebase-auth-oob-verify-email',
template: `<div *ngIf="'wait' === screen" []="'in'">
<div class="alert alert-secondary">
<i class="fas fa-spin fa-spinner fa-fw" aria-hidden="true"></i>
Please wait...
</div>
</div>
<div *ngIf="'success' === screen" []="'in'">
<div class="alert alert-success">
<i class="fas fa-check fa-fw" aria-hidden="true"></i>
The email {{info.data.email}} has been verified.
</div>
</div>
<div *ngIf="screen === 'error'" []="'in'">
<div class="alert alert-danger">
<p>
<i class="fas fa-exclamation-triangle fa-fw" aria-hidden="true"></i>
Woops! An error occurred.
</p>
<div [ngSwitch]="unhandledError.code">
<p class="mb-0" *ngSwitchCase="'auth/expired-action-code'">
The verify email link you used has expired.
</p>
<p class="mb-0" *ngSwitchCase="'auth/invalid-action-code'">
The verify email link you used is not valid. This may be because it
has already been used.
</p>
<p class="mb-0" *ngSwitchCase="'auth/user-disabled'">
The account associated with the verify email link you used has been disabled.
</p>
<p class="mb-0" *ngSwitchCase="'auth/user-not-found'">
The account associated with the verify email link you used has been removed.
</p>
<div *ngSwitchDefault>
<p>Code: {{unhandledError.code}}</p>
<p class="mb-0">
Message: {{unhandledError.message}}
</p>
</div>
</div>
</div>
</div>
`,
styles: [``],
animations: [screenAnimation]
},] },
];
/** @nocollapse */
OobVerifyEmailComponent.ctorParameters = () => [
{ type: AngularFireAuth }
];
OobVerifyEmailComponent.propDecorators = {
oobCode: [{ type: Input }],
success: [{ type: Output }]
};
if (false) {
/** @type {?} */
OobVerifyEmailComponent.prototype.oobCode;
/** @type {?} */
OobVerifyEmailComponent.prototype.success;
/** @type {?} */
OobVerifyEmailComponent.prototype.screen;
/** @type {?} */
OobVerifyEmailComponent.prototype.info;
/** @type {?} */
OobVerifyEmailComponent.prototype.submitting;
/** @type {?} */
OobVerifyEmailComponent.prototype.unhandledError;
/** @type {?} */
OobVerifyEmailComponent.prototype._afAuth;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib29iLXZlcmlmeS1lbWFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abm93em9vL25neC1maXJlYmFzZS1hdXRoLyIsInNvdXJjZXMiOlsibGliL29vYi9vb2ItdmVyaWZ5LWVtYWlsL29vYi12ZXJpZnktZW1haWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBbUQvQyxNQUFNOzs7O0lBVUosWUFDVTtRQUFBLFlBQU8sR0FBUCxPQUFPO3VCQVI2QyxJQUFJLFlBQVksRUFBRTtzQkFFekMsTUFBTTswQkFFaEMsS0FBSztLQUtiOzs7O0lBRUwsSUFBSSxJQUFJO1FBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0tBQzFCOzs7O0lBRUQsUUFBUTtRQUVOLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDcEMsSUFBSSxDQUFDLENBQUMsTUFBMkIsRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1lBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEQsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDaEIsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO2FBQzVCLENBQUMsQ0FBQztTQUNKLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7U0FDdkIsQ0FBQyxDQUFDO0tBQ047OztZQXRGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9DQUFvQztnQkFDOUMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBMkNYO2dCQUNDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDWixVQUFVLEVBQUUsQ0FBQyxlQUFlLENBQUM7YUFDOUI7Ozs7WUFyRFEsZUFBZTs7O3NCQXdEckIsS0FBSztzQkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlQXV0aCB9IGZyb20gJ2FuZ3VsYXJmaXJlMi9hdXRoJztcbmltcG9ydCB7IGF1dGgsIFVzZXIgfSBmcm9tICdmaXJlYmFzZS9hcHAnO1xuaW1wb3J0IHsgSU5neEZpcmViYXNlQXV0aE9vYlN1Y2Nlc3MgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgc2NyZWVuQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LWZpcmViYXNlLWF1dGgtb29iLXZlcmlmeS1lbWFpbCcsXG4gIHRlbXBsYXRlOiBgPGRpdiAqbmdJZj1cIid3YWl0JyA9PT0gc2NyZWVuXCIgW0BzY3JlZW5dPVwiJ2luJ1wiPlxuICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtc2Vjb25kYXJ5XCI+XG4gICAgPGkgY2xhc3M9XCJmYXMgZmEtc3BpbiBmYS1zcGlubmVyIGZhLWZ3XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIFBsZWFzZSB3YWl0Li4uXG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCInc3VjY2VzcycgPT09IHNjcmVlblwiIFtAc2NyZWVuXT1cIidpbidcIj5cbiAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXN1Y2Nlc3NcIj5cbiAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGVjayBmYS1md1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICBUaGUgZW1haWwge3tpbmZvLmRhdGEuZW1haWx9fSBoYXMgYmVlbiB2ZXJpZmllZC5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cInNjcmVlbiA9PT0gJ2Vycm9yJ1wiIFtAc2NyZWVuXT1cIidpbidcIj5cbiAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiPlxuICAgIDxwPlxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZXhjbGFtYXRpb24tdHJpYW5nbGUgZmEtZndcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICBXb29wcyEgQW4gZXJyb3Igb2NjdXJyZWQuXG4gICAgPC9wPlxuICAgIDxkaXYgW25nU3dpdGNoXT1cInVuaGFuZGxlZEVycm9yLmNvZGVcIj5cbiAgICAgIDxwIGNsYXNzPVwibWItMFwiICpuZ1N3aXRjaENhc2U9XCInYXV0aC9leHBpcmVkLWFjdGlvbi1jb2RlJ1wiPlxuICAgICAgICBUaGUgdmVyaWZ5IGVtYWlsIGxpbmsgeW91IHVzZWQgaGFzIGV4cGlyZWQuXG4gICAgICA8L3A+XG4gICAgICA8cCBjbGFzcz1cIm1iLTBcIiAqbmdTd2l0Y2hDYXNlPVwiJ2F1dGgvaW52YWxpZC1hY3Rpb24tY29kZSdcIj5cbiAgICAgICAgVGhlIHZlcmlmeSBlbWFpbCBsaW5rIHlvdSB1c2VkIGlzIG5vdCB2YWxpZC4gVGhpcyBtYXkgYmUgYmVjYXVzZSBpdFxuICAgICAgICBoYXMgYWxyZWFkeSBiZWVuIHVzZWQuXG4gICAgICA8L3A+XG4gICAgICA8cCBjbGFzcz1cIm1iLTBcIiAqbmdTd2l0Y2hDYXNlPVwiJ2F1dGgvdXNlci1kaXNhYmxlZCdcIj5cbiAgICAgICAgVGhlIGFjY291bnQgYXNzb2NpYXRlZCB3aXRoIHRoZSB2ZXJpZnkgZW1haWwgbGluayB5b3UgdXNlZCBoYXMgYmVlbiBkaXNhYmxlZC5cbiAgICAgIDwvcD5cbiAgICAgIDxwIGNsYXNzPVwibWItMFwiICpuZ1N3aXRjaENhc2U9XCInYXV0aC91c2VyLW5vdC1mb3VuZCdcIj5cbiAgICAgICAgVGhlIGFjY291bnQgYXNzb2NpYXRlZCB3aXRoIHRoZSB2ZXJpZnkgZW1haWwgbGluayB5b3UgdXNlZCBoYXMgYmVlbiByZW1vdmVkLlxuICAgICAgPC9wPlxuICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICA8cD5Db2RlOiB7e3VuaGFuZGxlZEVycm9yLmNvZGV9fTwvcD5cbiAgICAgICAgPHAgY2xhc3M9XCJtYi0wXCI+XG4gICAgICAgICAgTWVzc2FnZToge3t1bmhhbmRsZWRFcnJvci5tZXNzYWdlfX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5gLFxuICBzdHlsZXM6IFtgYF0sXG4gIGFuaW1hdGlvbnM6IFtzY3JlZW5BbmltYXRpb25dXG59KVxuZXhwb3J0IGNsYXNzIE9vYlZlcmlmeUVtYWlsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBvb2JDb2RlOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBzdWNjZXNzOiBFdmVudEVtaXR0ZXI8SU5neEZpcmViYXNlQXV0aE9vYlN1Y2Nlc3M+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHNjcmVlbjogJ3dhaXQnIHwgJ2Vycm9yJyB8ICdzdWNjZXNzJyA9ICd3YWl0JztcbiAgaW5mbzogYXV0aC5BY3Rpb25Db2RlSW5mbztcbiAgc3VibWl0dGluZyA9IGZhbHNlO1xuICB1bmhhbmRsZWRFcnJvcjogYXV0aC5FcnJvcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9hZkF1dGg6IEFuZ3VsYXJGaXJlQXV0aCxcbiAgKSB7IH1cblxuICBnZXQgYXV0aCgpOiBhdXRoLkF1dGgge1xuICAgIHJldHVybiB0aGlzLl9hZkF1dGguYXV0aDtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgdGhpcy5hdXRoLmNoZWNrQWN0aW9uQ29kZSh0aGlzLm9vYkNvZGUpXG4gICAgICAudGhlbigocmVzdWx0OiBhdXRoLkFjdGlvbkNvZGVJbmZvKSA9PiB7XG4gICAgICAgIHRoaXMuaW5mbyA9IHJlc3VsdDtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aC5hcHBseUFjdGlvbkNvZGUodGhpcy5vb2JDb2RlKTtcbiAgICAgIH0pXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuc2NyZWVuID0gJ3N1Y2Nlc3MnO1xuICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh7XG4gICAgICAgICAgbW9kZTogJ3ZlcmlmeUVtYWlsJyxcbiAgICAgICAgICBpbmZvOiB0aGlzLmluZm8sXG4gICAgICAgICAgdXNlcjogdGhpcy5hdXRoLmN1cnJlbnRVc2VyXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IGF1dGguRXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy51bmhhbmRsZWRFcnJvciA9IGVycm9yO1xuICAgICAgICB0aGlzLnNjcmVlbiA9ICdlcnJvcic7XG4gICAgICB9KTtcbiAgfVxuXG59XG4iXX0=