UNPKG

ng7-auth

Version:

Firestore Authentication with Angular. A Fork form Anthony Nahas.

1 lines 46.6 kB
{"__symbolic":"module","version":4,"metadata":{"ɵa":{"toastMessageOnAuthSuccess":true,"toastMessageOnAuthError":true},"NgxAuthFirebaseUIConfigToken":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":45,"character":48},"arguments":["NgxAuthFirebaseUIConfig"]},"NgxAuthFirebaseUIModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":47,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":49,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":50,"character":4},{"__symbolic":"reference","module":"@angular/flex-layout","name":"FlexLayoutModule","line":51,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":52,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":53,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTabsModule","line":54,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatCardModule","line":55,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatInputModule","line":56,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":57,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatIconModule","line":58,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSnackBarModule","line":59,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDividerModule","line":60,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatChipsModule","line":61,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTooltipModule","line":62,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDialogModule","line":63,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatCheckboxModule","line":64,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatProgressSpinnerModule","line":65,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatProgressBarModule","line":66,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDialogModule","line":67,"character":4},{"__symbolic":"reference","module":"@angular/fire/auth","name":"AngularFireAuthModule","line":68,"character":4},{"__symbolic":"reference","module":"@angular/fire/firestore","name":"AngularFirestoreModule","line":69,"character":4}],"exports":[{"__symbolic":"reference","name":"AuthComponent"},{"__symbolic":"reference","name":"UserComponent"},{"__symbolic":"reference","name":"AuthProvidersComponent"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","module":"@angular/fire/auth","name":"AngularFireAuthModule","line":76,"character":4},{"__symbolic":"reference","module":"@angular/fire/firestore","name":"AngularFirestoreModule","line":77,"character":4}],"declarations":[{"__symbolic":"reference","name":"AuthComponent"},{"__symbolic":"reference","name":"UserComponent"},{"__symbolic":"reference","name":"AuthProvidersComponent"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"LegalityDialogComponent"}],"entryComponents":[{"__symbolic":"reference","name":"LegalityDialogComponent"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["configFactory","appNameFactory","config"],"defaults":[null,null,{"__symbolic":"reference","name":"ɵa"}],"value":{"ngModule":{"__symbolic":"reference","name":"NgxAuthFirebaseUIModule"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/fire","name":"FirebaseOptionsToken","line":101,"character":21},"useValue":{"__symbolic":"reference","name":"configFactory"}},{"provide":{"__symbolic":"reference","module":"@angular/fire","name":"FirebaseNameOrConfigToken","line":105,"character":21},"useFactory":{"__symbolic":"reference","name":"appNameFactory"}},{"provide":{"__symbolic":"reference","name":"NgxAuthFirebaseUIConfigToken"},"useValue":{"__symbolic":"reference","name":"config"}},{"__symbolic":"reference","name":"AuthProcessService"},{"__symbolic":"reference","name":"FirestoreSyncService"}]}}}},"AuthComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":19,"character":1},"arguments":[{"selector":"ngx-auth-firebaseui","template":"\n <mat-tab-group [color]=\"color\" [selectedIndex]=\"tabIndex\">\n <!--Reset password tab-->\n <mat-tab *ngIf=\"passwordResetWished\" label=\"Reset Password\">\n <form [formGroup]=\"resetPasswordFormGroup\" (ngSubmit)=\"resetPasswordFormGroup.valid && resetPassword()\">\n\n <mat-card>\n <mat-card-header fxLayoutAlign=\"end\">\n <button mat-icon-button\n [color]=\"color\"\n matTooltip=\"close\"\n matTooltipPosition=\"above\"\n (click)=\"passwordResetWished = false\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field class=\"full-width\" [appearance]=\"appearance\">\n <mat-label>Reset e-mail address to password</mat-label>\n <input matInput\n [readonly]=\"passReset\"\n formControlName=\"email\"\n title=\"Reset e-mail address to password\"\n required>\n <mat-icon matSuffix [color]=\"color\">email</mat-icon>\n <mat-error *ngIf=\"resetPasswordEmailFormControl.hasError('required')\">\n E-mail is required to reset the password!\n </mat-error>\n <mat-error *ngIf=\"resetPasswordEmailFormControl.hasError('pattern')\">\n Please enter a valid e-mail address\n </mat-error>\n </mat-form-field>\n </mat-card-content>\n <mat-card-actions fxLayoutAlign=\"center\">\n <button mat-raised-button\n type=\"submit\"\n [color]=\"color\"\n [disabled]=\"passReset\">\n Reset\n </button>\n </mat-card-actions>\n <mat-card-footer *ngIf=\"passReset\" fxLayoutAlign=\"center\">\n <p>Reset requested. Check your e-mail instructions.</p>\n </mat-card-footer>\n <mat-card-footer>\n <mat-progress-bar *ngIf=\"authProcess.isLoading\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-footer>\n </mat-card>\n </form>\n </mat-tab>\n\n <!--Sign in tab-->\n <mat-tab label=\"Sign in\">\n <mat-card>\n <mat-card-title>Signing in</mat-card-title>\n <mat-card-content>\n <form [formGroup]=\"signInFormGroup\"\n (ngSubmit)=\"signInFormGroup.valid &&\n authProcess.signInWith\n (authProviders.EmailAndPassword,signInFormGroup.value.email,signInFormGroup.value.password)\">\n <div fxLayout=\"column\" fxLayoutAlign=\"center\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-label>E-mail</mat-label>\n <input matInput\n placeholder=\"E-mail\"\n formControlName=\"email\"\n required>\n <mat-icon matSuffix [color]=\"color\">email</mat-icon>\n <mat-error *ngIf=\"signInEmailFormControl.hasError('required')\">\n E-mail is required\n </mat-error>\n <mat-error *ngIf=\"signInEmailFormControl.hasError('pattern')\">\n Please enter a valid e-mail address\n </mat-error>\n </mat-form-field>\n\n <mat-form-field [appearance]=\"appearance\">\n <mat-label>Password</mat-label>\n <input matInput\n type=\"current-password\"\n placeholder=\"Password\"\n minlength=\"6\"\n maxlength=\"25\"\n formControlName=\"password\"\n required>\n <mat-icon matSuffix [color]=\"color\">lock</mat-icon>\n <mat-hint align=\"end\" aria-live=\"polite\">\n {{signInFormGroup.value.password.length}} / 25\n </mat-hint>\n <mat-error *ngIf=\"sigInPasswordFormControl.hasError('required')\">\n Please do not forget the password\n </mat-error>\n <mat-error *ngIf=\"sigInPasswordFormControl.hasError('minlength')\">\n The password must be at least 6 characters long.\n </mat-error>\n <mat-error *ngIf=\"sigInPasswordFormControl.hasError('maxlength')\">\n The password must not exceed 25 characters\n </mat-error>\n </mat-form-field>\n\n <button mat-raised-button\n style=\"margin-top: 20px\"\n type=\"submit\"\n class=\"space-top\"\n [color]=\"color\">\n Log In\n </button>\n\n </div>\n </form>\n\n <div fxLayoutAlign=\"center\">\n <button mat-button\n class=\"space-top\"\n [color]=\"color\"\n (click)=\"createForgotPasswordTab()\">\n Forgot Password?\n </button>\n </div>\n\n </mat-card-content>\n <mat-card-footer *ngIf=\"authProcess.isLoading\">\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-footer>\n </mat-card>\n </mat-tab>\n\n <!--tab register-->\n <mat-tab label=\"Register\">\n <mat-card>\n <mat-card-title>Registration</mat-card-title>\n <div *ngIf=\"!authProcess.emailConfirmationSent;then register else confirm\"></div>\n <ng-template #register>\n <mat-card-content fxLayout=\"column\" fxLayoutAlign=\"center\">\n <form [formGroup]=\"signUpFormGroup\" (ngSubmit)=\"signUpFormGroup.valid &&\n authProcess.signUp\n (signUpFormGroup.value.name,signUpFormGroup.value.email,signUpFormGroup.value.password)\">\n <div fxLayout=\"column\" fxLayoutAlign=\"center\">\n <!--name-->\n <mat-form-field [appearance]=\"appearance\">\n <!--labels will work only with @angular/material@6.2.0 -->\n <mat-label>Name</mat-label>\n <input matInput\n placeholder=\"Name\"\n minlength=\"2\"\n maxlength=\"30\"\n [formControl]=\"sigUpNameFormControl\"\n required>\n <mat-icon matSuffix [color]=\"color\">person</mat-icon>\n <mat-hint align=\"end\" aria-live=\"polite\">\n {{signUpFormGroup.value.name?.length}} / 25\n </mat-hint>\n <mat-error *ngIf=\"sigUpNameFormControl.hasError('required')\">\n Name is required\n </mat-error>\n <mat-error *ngIf=\"sigUpPasswordFormControl.hasError('minlength')\">\n The name is too short!\n </mat-error>\n <mat-error *ngIf=\"sigUpPasswordFormControl.hasError('maxlength')\">\n The name is too long!\n </mat-error>\n </mat-form-field>\n\n <!--email-->\n <mat-form-field [appearance]=\"appearance\">\n <mat-label>E-mail</mat-label>\n <input matInput\n placeholder=\"E-mail\"\n type=\"email\"\n [formControl]=\"sigUpEmailFormControl\">\n <mat-icon matSuffix [color]=\"color\">email</mat-icon>\n <mat-error *ngIf=\"sigUpEmailFormControl.hasError('required')\">\n E-mail is required\n </mat-error>\n <mat-error *ngIf=\"sigUpEmailFormControl.hasError('pattern')\">\n Please enter a valid e-mail address\n </mat-error>\n </mat-form-field>\n\n <!--password-->\n <div fxLayout=\"column\">\n\n <mat-form-field [appearance]=\"appearance\">\n <mat-label>Password</mat-label>\n <input matInput\n type=\"password\"\n placeholder=\"password\"\n name=\"password\"\n [formControl]=\"sigUpPasswordFormControl\"\n required>\n <mat-icon matSuffix [color]=\"color\">lock</mat-icon>\n\n <mat-hint align=\"end\" aria-live=\"polite\">\n {{signUpFormGroup.value.password?.length}} / 25\n </mat-hint>\n\n <mat-error *ngIf=\"sigUpPasswordFormControl.hasError('required')\" class=\"cut-text\">\n Please do not forget the password\n </mat-error>\n\n <mat-error *ngIf=\"sigUpPasswordFormControl.hasError('minlength')\" class=\"cut-text\">\n The password must be at least 6 characters long.\n </mat-error>\n <mat-error *ngIf=\"sigUpPasswordFormControl.hasError('maxlength')\" class=\"cut-text\">\n The password can not be longer than 25 characters.\n </mat-error>\n\n </mat-form-field>\n\n </div>\n\n <button mat-raised-button\n style=\"margin-top: 20px\"\n type=\"submit\"\n [color]=\"color\">\n Register\n </button>\n\n </div>\n </form>\n\n <button *ngIf=\"guestEnabled\"\n mat-button\n style=\"margin-top: 20px\"\n [color]=\"color\"\n (click)=\"openLegalityDialog(authProvider.ANONYMOUS)\">\n <mat-icon>fingerprint</mat-icon>\n continue as guest\n </button>\n\n </mat-card-content>\n\n <mat-card-footer *ngIf=\"authProcess.isLoading\">\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-footer>\n\n </ng-template>\n\n <!--confirm template-->\n <ng-template #confirm>\n <ngx-auth-firebaseui-email-confirmation [email]=\"authProcess.emailToConfirm\"\n [goBackURL]=\"goBackURL\">\n </ngx-auth-firebaseui-email-confirmation>\n </ng-template>\n\n </mat-card>\n </mat-tab>\n </mat-tab-group>\n <mat-divider></mat-divider>\n <ngx-auth-firebaseui-providers [providers]=\"providers\"></ngx-auth-firebaseui-providers>\n ","styles":["\n .mat-card{margin:2rem}.space-top{margin-top:.5rem}.full-width{width:100%}.cut-text{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}\n "]}]}],"members":{"providers":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":280,"character":3}}]}],"appearance":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":283,"character":3}}]}],"tabIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":286,"character":3}}]}],"guestEnabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":289,"character":3}}]}],"tosUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":292,"character":3}}]}],"privacyPolicyUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":295,"character":3}}]}],"goBackURL":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":298,"character":3}}]}],"onSuccess":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":301,"character":3}}]}],"onError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":304,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":331,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":331,"character":22}]}],null,null,null],"parameters":[{"__symbolic":"reference","name":"Object"},{"__symbolic":"reference","module":"@angular/fire/auth","name":"AngularFireAuth","line":332,"character":27},{"__symbolic":"reference","name":"AuthProcessService"},{"__symbolic":"reference","module":"@angular/material","name":"MatDialog","line":334,"character":29}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"createForgotPasswordTab":[{"__symbolic":"method"}],"openLegalityDialog":[{"__symbolic":"method"}],"signUp":[{"__symbolic":"method"}],"signUpAnonymously":[{"__symbolic":"method"}],"resetPassword":[{"__symbolic":"method"}],"_initSignInFormGroupBuilder":[{"__symbolic":"method"}],"_initSignUpFormGroupBuilder":[{"__symbolic":"method"}],"_initResetPasswordFormGroupBuilder":[{"__symbolic":"method"}],"_afterSignUpMiddleware":[{"__symbolic":"method"}]}},"UserComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"ngx-auth-firebaseui-user","template":"\n <div *ngIf=\"auth.authState| async as user; then authenticated else none\">\n\n </div>\n\n <ng-template #authenticated>\n <mat-card *ngIf=\"auth.user | async as user\">\n <!--<form [formGroup]=\"updateFormGroup\" >-->\n <!--card header-->\n <mat-card-header fxLayout=\"column\" fxLayoutAlign=\"center center\">\n\n <img mat-card-avatar [src]=\"authProcess?.getUserPhotoUrl()\">\n\n <div *ngIf=\"user.emailVerified; then emailVerified else emailNotVerified\"></div>\n <ng-template #emailVerified>\n <mat-icon color=\"primary\"\n matTooltip=\"email is verified\"\n matTooltipPosition=\"after\">\n verified_user\n </mat-icon>\n </ng-template>\n <ng-template #emailNotVerified>\n <mat-icon color=\"warn\"\n matTooltip=\"email is not verified\"\n matTooltipPosition=\"after\">\n warning\n </mat-icon>\n </ng-template>\n\n </mat-card-header>\n\n <!--card content-->\n <mat-card-content *ngIf=\"editMode; then edit else readonly\">\n </mat-card-content>\n\n <ng-template #edit>\n <form [formGroup]=\"updateFormGroup\" (submit)=\"save()\">\n\n <mat-card-content fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <div fxLayoutAlign=\"center\">\n <button mat-raised-button color=\"warn\" class=\"edit-button\"\n (click)=\"changeEditMode()\">\n cancel\n </button>\n </div>\n\n <!--name-->\n <mat-form-field class=\"full-width\" [appearance]=\"appearance\">\n <mat-label>Name</mat-label>\n <input matInput\n placeholder=\"Name\"\n [formControl]=\"updateNameFormControl\"\n [value]=\"user.displayName\">\n <mat-icon matSuffix>person</mat-icon>\n <mat-hint align=\"end\" aria-live=\"polite\">\n {{updateNameFormControl.value.length}} / 25\n </mat-hint>\n <mat-error *ngIf=\"updateNameFormControl.hasError('required')\">\n Name is required\n </mat-error>\n </mat-form-field>\n\n <!--email-->\n <mat-form-field class=\"full-width\" [appearance]=\"appearance\">\n <mat-label>E-mail</mat-label>\n <input matInput\n placeholder=\"E-mail\"\n [formControl]=\"updateEmailFormControl\"\n [value]=\"user.email\">\n <mat-icon matSuffix>email</mat-icon>\n <mat-error *ngIf=\"updateEmailFormControl.hasError('required')\">\n E-mail is required {{updateEmailFormControl.value}}\n </mat-error>\n <mat-error *ngIf=\"updateEmailFormControl.hasError('pattern')\">\n Please enter a valid e-mail address {{updateEmailFormControl.value}}\n </mat-error>\n </mat-form-field>\n\n <!--phone number-->\n <mat-form-field class=\"full-width\" [appearance]=\"appearance\">\n <mat-label>Phone number</mat-label>\n <input matInput\n type=\"number\"\n placeholder=\"Phone number\"\n [formControl]=\"updatePhoneNumberFormControl\"\n [value]=\"user.phoneNumber\">\n <mat-icon matSuffix>phone</mat-icon>\n <mat-hint align=\"end\" aria-live=\"polite\">\n The phone number is international. Therefore, it should start with a + sign or 00,\n followed by the country code, - and national number e.g: +49-12345678 or 0041-1234567890\n\n NOTE : the phone number must be a valid phone credential !!\n </mat-hint>\n <mat-error *ngIf=\"updatePhoneNumberFormControl.hasError('pattern')\">\n Please enter a valid phone number\n </mat-error>\n </mat-form-field>\n\n </mat-card-content>\n\n <mat-card-actions fxLayout=\"column\">\n <button mat-button\n color=\"primary\"\n type=\"submit\">\n Save changes\n </button>\n </mat-card-actions>\n </form>\n </ng-template>\n\n <ng-template #readonly>\n <div fxLayoutAlign=\"center\">\n <button mat-raised-button color=\"primary\" class=\"edit-button\"\n (click)=\"changeEditMode()\">\n edit\n </button>\n </div>\n\n <!--name-->\n <mat-form-field class=\"full-width\" [appearance]=\"appearance\">\n <mat-label>Name</mat-label>\n <input matInput\n placeholder=\"Name\"\n [value]=\"user.displayName\"\n [disabled]=\"!editMode\">\n <mat-icon matSuffix color=\"primary\">person</mat-icon>\n </mat-form-field>\n\n <!--email-->\n <mat-form-field class=\"full-width\" [appearance]=\"appearance\">\n <mat-label>E-mail</mat-label>\n <input matInput\n placeholder=\"E-mail\" [value]=\"user.email\"\n [disabled]=\"!editMode\">\n <mat-icon matSuffix color=\"primary\">email</mat-icon>\n </mat-form-field>\n\n <!--phone number-->\n <mat-form-field class=\"full-width\" [appearance]=\"appearance\">\n <mat-label>Phone number</mat-label>\n <input matInput\n placeholder=\"Phone number\"\n [value]=\"user.phoneNumber\"\n [disabled]=\"!editMode\">\n <mat-icon matSuffix color=\"primary\">phone</mat-icon>\n </mat-form-field>\n\n <mat-card-actions fxLayout=\"column\">\n <button mat-button color=\"primary\" (click)=\"auth.auth.signOut()\">Sign out</button>\n <button mat-button color=\"warn\" (click)=\"deleteAccount()\">Delete account</button>\n </mat-card-actions>\n\n </ng-template>\n\n </mat-card>\n\n </ng-template>\n\n\n <ng-template #none>\n <mat-card class=\"none-card\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-card-content fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-icon color=\"accent\">warning</mat-icon>\n <span>You are not logged in!</span>\n </mat-card-content>\n </mat-card>\n </ng-template>\n ","styles":["\n .edit-button{margin:1rem}.full-width{width:100%}.cut-text{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.none-card{min-height:430px}.none-card span{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}\n "]}]}],"members":{"editMode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":185,"character":3}}]}],"appearance":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":188,"character":3}}]}],"onAccountDeleted":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":191,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/fire/auth","name":"AngularFireAuth","line":200,"character":27},{"__symbolic":"reference","name":"AuthProcessService"},{"__symbolic":"reference","name":"FirestoreSyncService"},{"__symbolic":"reference","module":"@angular/material","name":"MatSnackBar","line":203,"character":32}]}],"ngOnInit":[{"__symbolic":"method"}],"initUpdateFormGroup":[{"__symbolic":"method"}],"changeEditMode":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"deleteAccount":[{"__symbolic":"method"}]}},"AuthProvidersComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":19,"character":1},"arguments":[{"selector":"ngx-auth-firebaseui-providers","template":"\n <div [ngSwitch]=\"theme\">\n\n <!--default icon buttons-->\n <div *ngSwitchDefault\n [fxLayout]=\"layout\"\n fxLayout.xs=\"column\"\n [fxLayoutAlign]=\"layout == 'row' ? 'space-around center' : 'stretch'\">\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Google)\"\n mat-button\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Google)\">\n <mat-icon svgIcon=\"google-colored\"></mat-icon>\n Google\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Facebook)\"\n mat-button\n class=\"facebook-filled\"\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Facebook)\">\n <mat-icon svgIcon=\"facebook\"></mat-icon>\n Facebook\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Twitter)\"\n mat-button\n class=\"twitter-filled\"\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Twitter)\">\n <mat-icon svgIcon=\"twitter\"></mat-icon>\n Twitter\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Github)\"\n mat-button\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Github)\">\n <mat-icon svgIcon=\"github\"></mat-icon>\n GitHub\n </button>\n </div>\n\n <!--classic-->\n <div *ngSwitchCase=\"themes.CLASSIC\"\n class=\"buttons-classic\"\n [fxLayout]=\"layout\"\n fxLayout.xs=\"column\"\n [fxLayoutAlign]=\"layout == 'row' ? 'space-around center' : 'stretch'\">\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Google)\"\n mat-button\n class=\"google-classic\"\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Google)\">\n Google\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Facebook)\"\n mat-button\n class=\"facebook-classic\"\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Facebook)\">\n Facebook\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Twitter)\"\n mat-button\n class=\"twitter-classic\"\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Twitter)\">\n Twitter\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Github)\"\n mat-button\n class=\"github-classic\"\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Github)\">\n GitHub\n </button>\n </div>\n\n <!--stroked-->\n <div *ngSwitchCase=\"themes.STROKED\"\n class=\"buttons-classic\"\n [fxLayout]=\"layout\"\n fxLayout.xs=\"column\"\n [fxLayoutAlign]=\"layout == 'row' ? 'space-around center' : 'stretch'\">\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Google)\"\n mat-stroked-button\n class=\"google-classic\"\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Google)\">\n Google\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Facebook)\"\n mat-stroked-button\n class=\"facebook-classic\"\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Facebook)\">\n Facebook\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Twitter)\"\n mat-stroked-button\n class=\"twitter-classic\"\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Twitter)\">\n Twitter\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Github)\"\n mat-stroked-button\n class=\"github-classic\"\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Github)\">\n GitHub\n </button>\n </div>\n\n <!--raised-->\n <div *ngSwitchCase=\"themes.RAISED\"\n class=\"buttons-raised\"\n [fxLayout]=\"layout\"\n fxLayout.xs=\"column\"\n [fxLayoutAlign]=\"layout == 'row' ? 'space-around center' : 'stretch'\">\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Google)\"\n mat-raised-button\n class=\"google-raised\"\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Google)\">\n Google\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Facebook)\"\n mat-raised-button\n class=\"facebook-raised\"\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Facebook)\">\n Facebook\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Twitter)\"\n mat-raised-button\n class=\"twitter-raised\"\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Twitter)\">\n Twitter\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Github)\"\n mat-raised-button\n class=\"github-raised\"\n [ngClass.xs]=\"{'space-full-xs':true}\"\n (click)=\"authProcess.signInWith(authProvider.Github)\">\n GitHub\n </button>\n </div>\n\n <!--fab-->\n <div *ngSwitchCase=\"themes.FAB\"\n class=\"buttons-raised\"\n [fxLayout]=\"layout\"\n [fxLayoutAlign]=\"layout == 'row' ? 'space-around center' : 'stretch'\">\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Google)\"\n mat-fab\n class=\"google-raised\"\n (click)=\"authProcess.signInWith(authProvider.Google)\">\n <mat-icon svgIcon=\"google\"></mat-icon>\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Facebook)\"\n mat-fab\n class=\"facebook-raised\"\n (click)=\"authProcess.signInWith(authProvider.Facebook)\">\n <mat-icon svgIcon=\"facebook\"></mat-icon>\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Twitter)\"\n mat-fab\n class=\"twitter-raised\"\n (click)=\"authProcess.signInWith(authProvider.Twitter)\">\n <mat-icon svgIcon=\"twitter\"></mat-icon>\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Github)\"\n mat-fab\n class=\"github-raised\"\n (click)=\"authProcess.signInWith(authProvider.Github)\">\n <mat-icon svgIcon=\"github\"></mat-icon>\n </button>\n </div>\n\n <!--mini-fab-->\n <div *ngSwitchCase=\"themes.MINI_FAB\"\n class=\"buttons-raised\"\n [fxLayout]=\"layout\"\n fxLayoutAlign.xs=\"center center\"\n [fxLayoutAlign]=\"layout == 'row' ? 'space-around center' : 'stretch'\">\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Google)\"\n mat-mini-fab\n class=\"google-raised\"\n fxFlexAlign=\"center\"\n (click)=\"authProcess.signInWith(authProvider.Google)\">\n <mat-icon svgIcon=\"google\"></mat-icon>\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Facebook)\"\n mat-mini-fab\n class=\"facebook-raised\"\n (click)=\"authProcess.signInWith(authProvider.Facebook)\">\n <mat-icon svgIcon=\"facebook\"></mat-icon>\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Twitter)\"\n mat-mini-fab\n class=\"twitter-raised\"\n (click)=\"authProcess.signInWith(authProvider.Twitter)\">\n <mat-icon svgIcon=\"twitter\" class=\"icon-white\"></mat-icon>\n </button>\n <button *ngIf=\"providers === authProvider.ALL || providers.includes(authProvider.Github)\"\n mat-mini-fab\n class=\"github-raised\"\n (click)=\"authProcess.signInWith(authProvider.Github)\">\n <mat-icon svgIcon=\"github\"></mat-icon>\n </button>\n </div>\n </div>\n ","styles":["\n :host{display:block}:host .mat-icon{vertical-align:inherit}.space-full-xs{width:100%;margin:.4rem}.facebook-filled mat-icon{fill:#385899}.twitter-filled mat-icon{fill:#1da1f2}.buttons-raised button{color:#fff!important}.buttons-raised .google-raised{background-color:#db4437}.buttons-raised .facebook-raised{background-color:#385899}.buttons-raised .twitter-raised{background-color:#1da1f2}.buttons-raised .github-raised{background-color:#000}.buttons-classic button.google-classic{color:#db4437!important}.buttons-classic .facebook-classic{color:#385899!important}.buttons-classic .twitter-classic{color:#1da1f2!important}.buttons-classic .github-classic{color:#000!important}.icon-white{color:#fff}.icon-white mat-icon{fill:#fff}\n "]}]}],"members":{"theme":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":240,"character":3}}]}],"layout":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":244,"character":3}}]}],"providers":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":247,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AuthProcessService"},{"__symbolic":"reference","module":"@angular/material","name":"MatIconRegistry","line":254,"character":37},{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":255,"character":34}]}]}},"Theme":{"DEFAULT":"default","CLASSIC":"classic","STROKED":"stroked","FAB":"fab","MINI_FAB":"mini-fab","RAISED":"raised"},"Layout":{"ROW":"row","COLUMN":"column"},"LegalityDialogComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"ngx-auth-firebaseui-legality-dialog","template":"\n <h1 matDialogTitle>Legal requirements</h1>\n\n <mat-dialog-content>\n <div fxLayout=\"column\" fxLayoutAlign=\"start\">\n <mat-checkbox *ngIf=\"this.data.tosUrl\" [(ngModel)]=\"checkTOS\">\n I agree to the\n <span>&nbsp;</span>\n <a target=\"_blank\"\n [href]=\"this.data.tosUrl\">\n Terms of Service and Conditions\n </a>\n </mat-checkbox>\n\n <mat-checkbox *ngIf=\"this.data.privacyPolicyUrl\"\n [(ngModel)]=\"checkPrivacyPolicy\">\n I have read and agree to the\n <span>&nbsp;</span>\n <a target=\"_blank\"\n [href]=\"this.data.privacyPolicyUrl\">\n Privacy\n </a>\n </mat-checkbox>\n </div>\n </mat-dialog-content>\n\n <mat-dialog-actions>\n <button id=\"decline-action\"\n mat-raised-button\n matDialogClose\n color=\"warn\">Decline</button>\n <button id=\"confirm-action\"\n mat-raised-button\n color=\"primary\"\n [disabled]=\"disableConfirmActionButton\"\n (click)=\"closeDialog()\">Confirm\n </button>\n </mat-dialog-actions>\n ","styles":["\n ::ng-deep .mat-checkbox-label{display:flex;flex-wrap:wrap}mat-dialog-content div{margin-top:1.5rem}mat-dialog-actions{margin-top:1rem}\n "]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":56,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/material","name":"MAT_DIALOG_DATA","line":56,"character":22}]}]],"parameters":[{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material","arguments":[{"__symbolic":"reference","name":"LegalityDialogComponent"}]},{"__symbolic":"reference","name":"ɵc"}]}],"closeDialog":[{"__symbolic":"method"}]}},"AuthProcessService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":31,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":40,"character":15},"arguments":[{"__symbolic":"reference","name":"NgxAuthFirebaseUIConfigToken"}]}],null,null,null],"parameters":[{"__symbolic":"reference","name":"NgxAuthFirebaseUIConfig"},{"__symbolic":"reference","module":"@angular/fire/auth","name":"AngularFireAuth","line":42,"character":26},{"__symbolic":"reference","module":"@angular/material","name":"MatSnackBar","line":43,"character":32},{"__symbolic":"reference","name":"FirestoreSyncService"}]}],"resetPassword":[{"__symbolic":"method"}],"signInWith":[{"__symbolic":"method"}],"signUp":[{"__symbolic":"method"}],"updateProfile":[{"__symbolic":"method"}],"deleteAccount":[{"__symbolic":"method"}],"parseUserInfo":[{"__symbolic":"method"}],"getUserPhotoUrl":[{"__symbolic":"method"}],"getPhotoPath":[{"__symbolic":"method"}],"signInWithPhoneNumber":[{"__symbolic":"method"}],"handleSuccess":[{"__symbolic":"method"}],"handleError":[{"__symbolic":"method"}]}},"AuthProvider":{"ALL":"all","ANONYMOUS":"anonymous","EmailAndPassword":"firebase","Google":"google","Facebook":"facebook","Twitter":"twitter","Github":"github","PhoneNumber":"phoneNumber"},"FirestoreSyncService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/fire/firestore","name":"AngularFirestore","line":12,"character":26}]}],"getUserDocRefByUID":[{"__symbolic":"method"}],"getUsersCollectionRef":[{"__symbolic":"method"}],"deleteUserData":[{"__symbolic":"method"}],"updateUserData":[{"__symbolic":"method"}]}},"NgxAuthFirebaseUIConfig":{"__symbolic":"interface"},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"ngx-auth-firebaseui-email-confirmation","template":"\n <mat-card-content fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-icon>email</mat-icon>\n <div class=\"title\">\n Confirm your e-mail address!\n </div>\n <div class=\"subtitle\">\n <p>A confirmation e-mail has been sent to\n <b><strong>{{email}}</strong></b>.</p>\n <p>Check your inbox and click on the link\n              \"Confirm my e-mail\" to confirm your e-mail address.</p>\n </div>\n </mat-card-content>\n\n <mat-card-actions *ngIf=\"goBackURL\"\n fxLayoutAlign=\"center center\">\n <a mat-button\n color=\"primary\"\n [href]=\"goBackURL\">\n Go back to the sign up page\n </a>\n </mat-card-actions>\n ","styles":["\n .material-icons{font-size:4rem}.mat-icon{height:4rem;width:4rem;color:rgba(0,0,0,.54)}.title{font-size:20px;margin-top:16px}.subtitle{margin:16px auto;max-width:300px;color:rgba(0,0,0,.54);font-size:15px;text-align:center}.subtitle p{display:block;-webkit-margin-before:1em;-webkit-margin-after:1em;-webkit-margin-start:0;-webkit-margin-end:0}\n "]}]}],"members":{"email":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"goBackURL":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}]}},"ɵc":{"__symbolic":"interface"}},"origins":{"ɵa":"./module/interfaces/config.interface","NgxAuthFirebaseUIConfigToken":"./module/ngx-auth-firebase-u-i.module","NgxAuthFirebaseUIModule":"./module/ngx-auth-firebase-u-i.module","AuthComponent":"./module/components/auth/auth.component","UserComponent":"./module/components/user/user.component","AuthProvidersComponent":"./module/components/providers/auth.providers.component","Theme":"./module/components/providers/auth.providers.component","Layout":"./module/components/providers/auth.providers.component","LegalityDialogComponent":"./module/components/legality-dialog/legality-dialog.component","AuthProcessService":"./module/services/auth-process.service","AuthProvider":"./module/services/auth-process.service","FirestoreSyncService":"./module/services/firestore-sync.service","NgxAuthFirebaseUIConfig":"./module/interfaces/config.interface","ɵb":"./module/components/email-confirmation/email-confirmation.component","ɵc":"./module/interfaces/legality.dialog.intreface"},"importAs":"ngx-auth-firebaseui"}