UNPKG

@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
/** * @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" [@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" [@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'" [@screen]="'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=