@firestitch/2fa 18.0.15 → 18.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/modules/manage/components/email/email.component.d.ts +0 -1
- package/app/modules/manage/components/number/number.component.d.ts +0 -1
- package/app/modules/verification-setup/views/verify/verify.component.d.ts +0 -1
- package/esm2022/app/modules/manage/components/email/email.component.mjs +3 -6
- package/esm2022/app/modules/manage/components/number/number.component.mjs +3 -6
- package/esm2022/app/modules/verification-setup/views/verify/verify.component.mjs +3 -6
- package/fesm2022/firestitch-2fa.mjs +6 -15
- package/fesm2022/firestitch-2fa.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestitch-2fa.mjs","sources":["../../src/app/enums/verification-method-type.enum.ts","../../src/app/modules/code-input/components/code-input/code-input.component.ts","../../src/app/modules/code-input/components/code-input/code-input.component.html","../../src/app/modules/manage/components/app/app.component.ts","../../src/app/modules/manage/components/app/app.component.html","../../src/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.ts","../../src/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.html","../../src/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.ts","../../src/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.html","../../src/app/modules/verification/components/2fa-verification/2fa-verification.component.ts","../../src/app/modules/verification/components/2fa-verification/2fa-verification.component.html","../../src/app/modules/manage/components/email/email.component.ts","../../src/app/modules/manage/components/email/email.component.html","../../src/app/modules/manage/components/number/number.component.ts","../../src/app/modules/manage/components/number/number.component.html","../../src/app/modules/manage/services/two-factor-manage.service.ts","../../src/app/modules/defaulted/components/defaulted/defaulted.component.ts","../../src/app/modules/defaulted/components/defaulted/defaulted.component.html","../../src/app/modules/verification-methods/components/verification-methods/verification-methods.component.ts","../../src/app/modules/verification-methods/components/verification-methods/verification-methods.component.html","../../src/app/modules/manage/components/emails/emails.component.ts","../../src/app/modules/manage/components/emails/emails.component.html","../../src/app/modules/manage/components/numbers/numbers.component.ts","../../src/app/modules/manage/components/numbers/numbers.component.html","../../src/app/modules/manage/components/manage-methods/manage-methods.component.ts","../../src/app/modules/manage/components/manage-methods/manage-methods.component.html","../../src/app/modules/manage/components/2fa-manage/2fa-manage.component.ts","../../src/app/modules/manage/components/2fa-manage/2fa-manage.component.html","../../src/app/modules/code-input/code-input.module.ts","../../src/app/modules/defaulted/defaulted.module.ts","../../src/app/modules/resend/components/resend/resend.component.ts","../../src/app/modules/resend/components/resend/resend.component.html","../../src/app/modules/resend/resend.module.ts","../../src/app/modules/verification-methods/fs-2f-verification-methods.module.ts","../../src/app/modules/verification/directives/2fa-verification-resend.directive.ts","../../src/app/modules/verification/fs-2fa-verification.module.ts","../../src/app/modules/manage/fs-2f-manage.module.ts","../../src/app/modules/verification-setup/data/verification-method.data.ts","../../src/app/modules/verification-setup/services/verification-setup.service.ts","../../src/app/modules/verification-setup/views/email/email.component.ts","../../src/app/modules/verification-setup/views/email/email.component.html","../../src/app/modules/verification-setup/views/verify/verify.component.ts","../../src/app/modules/verification-setup/views/verify/verify.component.html","../../src/app/modules/verification-setup/verification-setup-routing.module.ts","../../src/app/modules/verification-setup/verification-setup.module.ts","../../src/app/modules/verification-setup/guards/force-verification-setup.guard.ts","../../src/firestitch-2fa.ts"],"sourcesContent":["export enum VerificationMethodType {\n Sms = 'sms',\n Email = 'email',\n App = 'app',\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\n\nimport { FsCodeInputComponent } from '@firestitch/code-input';\n\n\n@Component({\n selector: 'app-code-input',\n templateUrl: './code-input.component.html',\n styleUrls: ['./code-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CodeInputComponent implements OnInit {\n\n @ViewChild(FsCodeInputComponent)\n public codeInput: FsCodeInputComponent;\n\n @Input() public codeLength: number;\n @Input() public code;\n\n @Output() public codeCompleted = new EventEmitter();\n @Output() public codeChanged = new EventEmitter();\n\n public ngOnInit(): void {\n if(!this.codeLength) {\n this.codeLength = 6;\n }\n } \n\n public codeComplete(code): void {\n this.codeCompleted.emit(code);\n }\n\n public focus(): void {\n this.codeInput.focusOnField(0);\n }\n}\n","<fs-code-input\n [codeLength]=\"codeLength\"\n [ngModel]=\"code\"\n name=\"code\"\n [isPrevFocusableAfterClearing]=\"false\"\n (completedLast)=\"codeComplete($event)\"\n (ngModelChange)=\"codeChanged.emit($event)\">\n</fs-code-input>\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, Inject,\n OnInit, ViewChild,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { FsFormDirective } from '@firestitch/form';\nimport { FsMessage } from '@firestitch/message';\n\nimport { of } from 'rxjs';\nimport { switchMap, tap } from 'rxjs/operators';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { TwoFactorManageService } from '../../services';\n\n\n@Component({\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AppComponent implements OnInit {\n\n @ViewChild(FsFormDirective)\n public form: FsFormDirective;\n\n public twoFactorManageService: TwoFactorManageService;\n public mode: 'qr-code' | 'code-input' = 'qr-code';\n public accountId;\n public verificationMethod;\n public qrCodeUrl;\n public code;\n public default; \n public appType: 'google' | 'authy';\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: any,\n private _dialogRef: MatDialogRef<AppComponent>,\n private _cdRef: ChangeDetectorRef,\n private _message: FsMessage,\n ) {}\n\n public ngOnInit(): void {\n this.twoFactorManageService = this._data.twoFactorManageService;\n this.accountId = this._data.accountId;\n this.default = !this.twoFactorManageService.hasVerificationMethods;\n }\n\n public appTypeGoogle(): void {\n this.appTypeSelect('google');\n }\n\n public appTypeAuthy(): void {\n this.appTypeSelect('authy');\n }\n\n public appTypeSelect(appType): void {\n this.appType = appType;\n this.twoFactorManageService.verificationMethodCreate$({\n type: VerificationMethodType.App,\n })\n .subscribe((verificationMethod) => {\n this.verificationMethod = verificationMethod;\n this.qrCodeUrl = verificationMethod.qrCodeUrl;\n this._cdRef.markForCheck();\n });\n }\n\n public codeCompleted(): void {\n this.form.triggerSubmit();\n }\n\n public codeChanged(code): void {\n this.code = code;\n this.form.dirty();\n }\n\n public next(): void {\n this.mode = 'code-input';\n }\n\n public verify = () => {\n return this.twoFactorManageService.verificationMethodVerify$(this.code, true)\n .pipe(\n switchMap(() => {\n return this.default && this.twoFactorManageService.verificationMethodDefault$ ?\n this.twoFactorManageService.verificationMethodDefault$(this.verificationMethod) :\n of(true);\n }),\n tap(() => {\n this._message.success('Created app authenticator verification method');\n this._dialogRef.close(true);\n }),\n );\n };\n\n}\n","<form fsForm [submit]=\"verify\">\n <fs-dialog>\n <h1 mat-dialog-title>Authenticator App Setup</h1>\n <mat-dialog-content>\n\n <div *ngIf=\"mode === 'qr-code'\" class=\"qr-code\">\n <ng-container *ngIf=\"appType\">\n <ol>\n <li>\n <ng-container *ngIf=\"appType === 'authy'\">\n Install the Authy Authenticator App from the <a href=\"https://apps.apple.com/us/app/authy/id494168017\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.authy.authy\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n\n <ng-container *ngIf=\"appType === 'google'\">\n Install the Google Authenticator App from the <a href=\"https://apps.apple.com/us/app/google-authenticator/id388497605\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en_US&gl=US\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n </li>\n <ng-container *ngIf=\"appType === 'authy'\">\n <li>\n Open the Authy app and select <b>Add Account</b>.\n </li>\n <li>\n Select <b>Scan QR Code</b> and scan the QR code below.\n </li>\n </ng-container> \n <ng-container *ngIf=\"appType === 'google'\">\n <li>\n Open the Google Authentictor app and click the <b>Plus icon</b> in the lower right corner.\n </li>\n <li>\n Select <b>Scan a QR code</b> and scan the QR code below.\n </li>\n </ng-container>\n </ol>\n\n <ng-container *fsSkeleton=\"qrCodeUrl\">\n <fs-qrcode\n [value]=\"qrCodeUrl\"\n [width]=\"300\"\n [height]=\"300\">\n </fs-qrcode>\n </ng-container>\n </ng-container>\n\n <div class=\"app-types\" *ngIf=\"!appType\">\n <p>Select the Authenticator App you prefer</p>\n\n <div class=\"row\">\n <span>\n <a (click)=\"appTypeAuthy()\">\n <svg width=\"50\" height=\"50\" viewBox=\"0 0 256 256\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMidYMid\"><path d=\"M256 127.998C256 198.696 198.694 256 127.997 256 57.304 256 0 198.696 0 127.998 0 57.305 57.304 0 127.997 0 198.694 0 256 57.305 256 127.998z\" fill=\"#EC1C24\"/><path d=\"M117.024 100.89l30.691 30.68c4.43 4.436 11.623 4.436 16.064 0 4.431-4.435 4.441-11.622 0-16.058L133.086 84.82C111.125 62.854 75.631 62.5 53.204 83.704a9.536 9.536 0 0 0-.605.548c-.098.098-.178.202-.275.29-.1.096-.202.182-.297.278-.194.193-.371.396-.54.597-21.215 22.437-20.85 57.932 1.113 79.897L83.292 196c4.44 4.433 11.623 4.433 16.062 0 4.442-4.437 4.442-11.633.011-16.06l-30.693-30.691c-13.398-13.393-13.488-35.129-.278-48.637 13.506-13.21 35.23-13.114 48.63.279zm39.612-40.873c-4.435 4.437-4.435 11.623.012 16.059l30.681 30.693c13.39 13.392 13.477 35.125.268 48.636-13.51 13.2-35.227 13.112-48.623-.282l-30.692-30.689c-4.438-4.437-11.633-4.437-16.066 0-4.443 4.433-4.443 11.642 0 16.065l30.682 30.694c21.968 21.965 57.458 22.322 79.889 1.116.208-.184.404-.355.61-.549.094-.095.182-.192.273-.29.1-.095.197-.183.29-.289.197-.183.365-.384.54-.594 21.215-22.428 20.86-57.911-1.102-79.889l-30.692-30.682c-4.436-4.443-11.638-4.443-16.07.001z\" fill=\"#FFF\"/></svg>\n </a>\n Authy\n </span>\n \n <span>\n <a (click)=\"appTypeGoogle()\"> \n <svg width=\"50\" height=\"50\" viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m457.07 45.92c73.67-8.62 149.41.22 218.93 26.24 62.75 23.47 120.59 60.41 167.72 108.09-40.31 39.97-80.25 80.31-120.51 120.33-25.95-25.45-56.19-46.65-89.47-61.37-44.22-19.82-93.39-28.54-141.72-25.2-54.6 3.52-108.11 22.49-152.63 54.3-55.24 38.95-96.61 97.22-114.8 162.35-13.64 47.78-14.77 98.97-3.76 147.4 8.85 39.61 26.09 77.29 50.05 110.03 22.24 30.45 50.3 56.64 82.22 76.71 36.79 23.24 78.76 38.22 121.96 43.48 37.02 4.65 74.9 2.23 111.05-7 3.97-1.91 6.24 2.61 8.73 4.86 40.74 40.95 81.68 81.7 122.43 122.63-73.31 35.6-155.99 51.86-237.3 46.12-68.05-4.51-135.07-24.08-194.71-57.18-24.87-13.6-48.23-29.82-70.33-47.54-17.46-14.81-34.71-30.01-49.72-47.35-25.41-27.39-47.21-58.11-65.17-90.87-4-7.72-8.64-15.12-11.9-23.2-4.47-9.05-8.37-18.36-12.25-27.67-4.96-13.27-10.26-26.44-13.88-40.15-.43-1.81-1.53-3.33-2.52-4.85-8.3-28.66-12.95-58.33-15.44-88.04-2.62-37.36-1.33-75.05 4.78-112.03 12.18-75.48 43.41-147.74 89.86-208.44 30.12-39.5 66.53-74.21 107.46-102.35 62.44-43.11 135.53-70.69 210.92-79.3m49.18 50.48c-5.7.99-10.96 3.76-15.38 7.43-10.4 8.93-14.14 24.81-8.17 37.28 6.33 15.02 25.16 23.1 40.36 17 15.43-5.24 24.78-23.51 19.74-39.06-4.1-15.43-20.92-25.79-36.55-22.65m-267.96 111.99c-5.33.28-10.59 1.92-15.16 4.68-11.47 7.03-17.88 21.74-14.36 34.86 3.09 14.08 16.78 25.06 31.26 24.61 15.03.41 29.08-11.39 31.54-26.17 2.24-10.33-1.61-21.55-9.14-28.85-6.24-6.33-15.3-9.62-24.14-9.13m-115.96 272c-6.62 1.23-12.84 4.58-17.54 9.4-9.45 9.72-11.72 25.57-5.02 37.42 7.16 13.96 25.48 20.86 39.98 14.62 15.02-5.51 23.99-23.42 19.06-38.71-4.04-15.41-20.86-25.96-36.48-22.73m111.98 272.05c-11.49 1.95-21.48 10.72-24.84 21.88-3.87 11.63-.13 25.16 8.9 33.36 6.15 5.48 14.4 8.7 22.67 8.32 11.16-.25 21.98-6.87 27.12-16.8 4.93-8.83 5.15-20.02.71-29.1-5.82-12.78-20.81-20.33-34.56-17.66m272.06 112.03c-11.76 2.02-21.92 11.07-25.09 22.6-3.87 12.57 1.13 27.25 11.91 34.79 7.86 5.79 18.42 7.67 27.77 4.86 9.61-2.77 17.7-10.24 21.07-19.68 4.97-12.74.36-28.32-10.58-36.46-7.02-5.45-16.35-7.67-25.08-6.11z\" fill=\"#a0a0a0\"/>\n <g fill=\"#c1c1c1\">\n <path d=\"m506.25 96.4c15.63-3.14 32.45 7.22 36.55 22.65 5.04 15.55-4.31 33.82-19.74 39.06-15.2 6.1-34.03-1.98-40.36-17-5.97-12.47-2.23-28.35 8.17-37.28 4.42-3.67 9.68-6.44 15.38-7.43z\"/>\n <path d=\"m122.33 480.39c15.62-3.23 32.44 7.32 36.48 22.73 4.93 15.29-4.04 33.2-19.06 38.71-14.5 6.24-32.82-.66-39.98-14.62-6.7-11.85-4.43-27.7 5.02-37.42 4.7-4.82 10.92-8.17 17.54-9.4z\"/>\n </g>\n <path d=\"m843.72 180.25.11-.11c24.64 25.12 46.96 52.6 65.61 82.47 36.01 57.16 59.38 122.22 67.87 189.25 5.67 44.88 5.27 90.6-2.05 135.27-12.7 80.01-46.94 156.41-97.9 219.36-42.3 52.48-95.87 96.04-156.41 125.76l-.63-.26c-1.01-1.1-2.03-2.16-3.05-3.22-40.75-40.93-81.69-81.68-122.43-122.63-2.49-2.25-4.76-6.77-8.73-4.86-36.15 9.23-74.03 11.65-111.05 7-43.2-5.26-85.17-20.24-121.96-43.48-31.92-20.07-59.98-46.26-82.22-76.71-23.96-32.74-41.2-70.42-50.05-110.03-11.01-48.43-9.88-99.62 3.76-147.4 18.19-65.13 59.56-123.4 114.8-162.35 44.52-31.81 98.03-50.78 152.63-54.3 48.33-3.34 97.5 5.38 141.72 25.2 33.28 14.72 63.52 35.92 89.47 61.37 40.26-40.02 80.2-80.36 120.51-120.33m-351.75 183.97c-21.23 2.85-41.89 10.28-59.88 21.94-23.08 14.45-41.76 35.58-53.9 59.91-14.58 29.2-18.64 63.21-12.5 95.17 3.93 19.85 12.03 38.88 23.56 55.51 7.93 11.52 17.65 21.66 27.65 31.38 57.33 57.41 114.61 114.86 171.99 172.21 49.09-13.07 94.67-38.94 131.05-74.4 45.11-43.34 75.66-101.44 86.31-163.06.24-1.04.22-2.91 1.85-2.6 29.63.04 59.26-.01 88.9.05 19.04-.3 36.87-14.77 40.76-33.46.22-1.21 0-2.32-.67-3.35 1.22-5.71 2.08-11.58 1.38-17.43l-.24.4c-2.05-20.34-20.84-37.12-41.25-37.17-80.64-.07-161.28-.01-241.93-.07-6.44-22.08-18.5-42.33-34.03-59.23-25.8-27.5-62.26-45.01-100.02-46.82-9.68.02-19.44-.54-29.03 1.02m286.37 388.31c-12.64 2.06-23.37 12.59-25.7 25.18-1.48 8.14-.14 17.02 4.73 23.85 5.76 9.2 16.8 14.76 27.61 14.25 8.32.03 16.28-3.95 22.16-9.66 4.87-5.6 8.45-12.67 8.67-20.2.86-11.37-5.06-23.1-14.87-28.96-6.52-4.46-14.89-5.75-22.6-4.46z\" fill=\"#686868\"/>\n <path d=\"m238.29 208.39c8.84-.49 17.9 2.8 24.14 9.13 7.53 7.3 11.38 18.52 9.14 28.85-2.46 14.78-16.51 26.58-31.54 26.17-14.48.45-28.17-10.53-31.26-24.61-3.52-13.12 2.89-27.83 14.36-34.86 4.57-2.76 9.83-4.4 15.16-4.68z\" fill=\"#c3c3c3\"/>\n <path d=\"m491.97 364.22c9.59-1.56 19.35-1 29.03-1.02 37.76 1.81 74.22 19.32 100.02 46.82 15.53 16.9 27.59 37.15 34.03 59.23-47.67-.01-95.35-.01-143.03-.01-12.19-.11-24.23 5.42-32.21 14.61-6.01 6.85-9.74 15.65-10.44 24.74-1.19 14.17 5.36 28.7 16.69 37.28 7.62 5.91 17.28 9 26.92 8.8 126.69-.04 253.39-.06 380.08.03 4.76.04 9.59-.15 14.2-1.48 14.21-3.82 26.02-15.47 29.83-29.7.67 1.03.89 2.14.67 3.35-3.89 18.69-21.72 33.16-40.76 33.46-29.64-.06-59.27-.01-88.9-.05-1.63-.31-1.61 1.56-1.85 2.6-10.65 61.62-41.2 119.72-86.31 163.06-36.38 35.46-81.96 61.33-131.05 74.4-57.38-57.35-114.66-114.8-171.99-172.21-10-9.72-19.72-19.86-27.65-31.38-11.53-16.63-19.63-35.66-23.56-55.51-6.14-31.96-2.08-65.97 12.5-95.17 12.14-24.33 30.82-45.46 53.9-59.91 17.99-11.66 38.65-19.09 59.88-21.94z\" fill=\"#474747\"/>\n <g fill=\"#bfbfbf\">\n <path d=\"m479.81 483.85c7.98-9.19 20.02-14.72 32.21-14.61 47.68 0 95.36 0 143.03.01 80.65.06 161.29 0 241.93.07 20.41.05 39.2 16.83 41.25 37.17-.19.33-.58.97-.78 1.29-3.68-18.51-21.57-33.16-40.47-33.05-124.97.1-249.94.12-374.91.17-7.73.13-15.74-.8-23.15 1.96-9.06 2.84-16.73 9.1-22.27 16.7-3.34 4.55-4.39 10.24-7.28 15.03.7-9.09 4.43-17.89 10.44-24.74z\"/>\n <path d=\"m234.31 752.44c13.75-2.67 28.74 4.88 34.56 17.66 4.44 9.08 4.22 20.27-.71 29.1-5.14 9.93-15.96 16.55-27.12 16.8-8.27.38-16.52-2.84-22.67-8.32-9.03-8.2-12.77-21.73-8.9-33.36 3.36-11.16 13.35-19.93 24.84-21.88z\"/>\n </g>\n <path d=\"m498.92 476.86c7.41-2.76 15.42-1.83 23.15-1.96 124.97-.05 249.94-.07 374.91-.17 18.9-.11 36.79 14.54 40.47 33.05.2-.32.59-.96.78-1.29l.24-.4c.7 5.85-.16 11.72-1.38 17.43-3.81 14.23-15.62 25.88-29.83 29.7-4.61 1.33-9.44 1.52-14.2 1.48-126.69-.09-253.39-.07-380.08-.03-9.64.2-19.3-2.89-26.92-8.8-11.33-8.58-17.88-23.11-16.69-37.28 2.89-4.79 3.94-10.48 7.28-15.03 5.54-7.6 13.21-13.86 22.27-16.7z\" fill=\"#b0b0b0\"/>\n <path d=\"m59.49 636.08c.99 1.52 2.09 3.04 2.52 4.85 3.62 13.71 8.92 26.88 13.88 40.15 3.88 9.31 7.78 18.62 12.25 27.67 3.26 8.08 7.9 15.48 11.9 23.2 17.96 32.76 39.76 63.48 65.17 90.87 15.01 17.34 32.26 32.54 49.72 47.35 22.1 17.72 45.46 33.94 70.33 47.54 59.64 33.1 126.66 52.67 194.71 57.18 81.31 5.74 163.99-10.52 237.3-46.12 1.02 1.06 2.04 2.12 3.05 3.22l.03.61c-42.32 21.03-87.88 35.53-134.56 42.91-56.91 8.9-115.46 7.49-171.82-4.5-67.89-14.35-132.42-44.21-187.42-86.51-63.52-48.63-114.32-113.73-145.86-187.27-8.42-19.87-15.93-40.22-21.2-61.15z\" fill=\"#939393\"/>\n <path d=\"m778.34 752.53c7.71-1.29 16.08 0 22.6 4.46 9.81 5.86 15.73 17.59 14.87 28.96-.22 7.53-3.8 14.6-8.67 20.2-5.88 5.71-13.84 9.69-22.16 9.66-10.81.51-21.85-5.05-27.61-14.25-4.87-6.83-6.21-15.71-4.73-23.85 2.33-12.59 13.06-23.12 25.7-25.18z\" fill=\"#767676\"/>\n <path d=\"m506.37 864.47c8.73-1.56 18.06.66 25.08 6.11 10.94 8.14 15.55 23.72 10.58 36.46-3.37 9.44-11.46 16.91-21.07 19.68-9.35 2.81-19.91.93-27.77-4.86-10.78-7.54-15.78-22.22-11.91-34.79 3.17-11.53 13.33-20.58 25.09-22.6z\" fill=\"#bebebe\"/>\n </svg>\n </a>\n Google Authenticator\n </span>\n </div>\n </div>\n \n </div>\n\n <div *ngIf=\"mode === 'code-input'\" class=\"code-input\">\n <div>\n Enter the 6-digit code you see in the App.\n </div>\n\n <app-code-input\n (codeChanged)=\"codeChanged($event)\">\n </app-code-input>\n \n <div class=\"checkboxes\">\n <mat-checkbox name=\"default\" [(ngModel)]=\"default\" [disableRipple]=\"true\">\n Make this the default verification method\n </mat-checkbox>\n </div>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <ng-container *ngIf=\"appType\">\n <button\n *ngIf=\"mode === 'qr-code'\"\n type=\"button\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Next\n </button>\n <button\n *ngIf=\"mode === 'code-input'\"\n type=\"submit\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Verify\n </button> \n </ng-container>\n <button\n type=\"button\"\n mat-button\n [mat-dialog-close]=\"null\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\nimport { FsFormDirective } from '@firestitch/form';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { CodeInputComponent } from '../../../../modules/code-input/components/code-input';\n\n\n@Component({\n selector: 'fs-2fa-verification-code',\n templateUrl: './2fa-verification-code.component.html',\n styleUrls: ['./2fa-verification-code.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [\n {\n provide: ControlContainer,\n useExisting: NgForm,\n },\n ],\n})\nexport class Fs2faVerificationCodeComponent {\n\n @ViewChild(CodeInputComponent)\n public codeInputComponent: CodeInputComponent;\n\n @Input()\n public type: VerificationMethodType;\n\n @Input()\n public recipient: string;\n\n @Input()\n public codeLength;\n\n @Input()\n public code;\n\n @Output()\n public codeChange = new EventEmitter<string>();\n\n @Output()\n public codeComplete = new EventEmitter<void>();\n\n public VerificationMethodType = VerificationMethodType;\n\n constructor(\n private _form: FsFormDirective,\n ) {}\n\n public codeCompleted(code): void {\n this.codeComplete.emit(code);\n }\n\n public codeChanged(code): void {\n this.code = code;\n this.codeChange.emit(this.code);\n this._form.dirty();\n }\n\n public focus(): void {\n this.codeInputComponent.focus();\n }\n\n}\n","<ng-container *ngIf=\"type === VerificationMethodType.Sms\">\n <p class=\"description\">\n A text message with a verification code was just sent to\n <span style=\"white-space: nowrap;\">\n {{ recipient }}\n </span>\n to verify it's you.\n </p>\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n</ng-container>\n<ng-container *ngIf=\"type === VerificationMethodType.Email\">\n <p class=\"description\">\n An email with a verification code was just sent to {{ recipient }} to verify it's you.\n </p>\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n</ng-container>\n<ng-container *ngIf=\"type === VerificationMethodType.App\">\n <p class=\"description\">\n Enter the verification code generated by your 2 factor authenticator app to verify it's you.\n </p>\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n</ng-container>\n<ng-template #input>\n <app-code-input\n [code]=\"code\"\n [codeLength]=\"codeLength\"\n (codeChanged)=\"codeChanged($event)\"\n (codeCompleted)=\"codeCompleted($event)\">\n </app-code-input>\n</ng-template>","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { IFsVerificationMethod } from '../../../../interfaces/verification-method.interface';\n\n\n@Component({\n templateUrl: './2fa-verification-methods.component.html',\n styleUrls: ['./2fa-verification-methods.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Fs2faVerificationMethodsComponent {\n\n public verificationMethod: IFsVerificationMethod;\n public phone: string;\n public code: string;\n public verificationMethods: Record<string, IFsVerificationMethod[]>;\n public readonly verificationMethodType = VerificationMethodType;\n\n private _selectVerificationMethod: (IFsVerificationMethod) => Observable<IFsVerificationMethod>; \n\n constructor(\n @Inject(MAT_DIALOG_DATA)\n private _dialogData: any,\n private _dialogRef: MatDialogRef<Fs2faVerificationMethodsComponent>,\n ) {\n this._selectVerificationMethod = _dialogData.selectVerificationMethod;\n this._setActiveMethod();\n this._initMethods(_dialogData.verificationMethods);\n }\n\n public compareWith(o1, o2) {\n return o1 && o2 && o1.id === o2.id\n }\n\n public setVerificationMethod = () => {\n return this._selectVerificationMethod(this.verificationMethod)\n .pipe(\n tap((method: IFsVerificationMethod) => {\n this._dialogRef.close(method);\n })\n );\n };\n\n private _setActiveMethod(): void {\n this.verificationMethod = this._dialogData?.verificationMethod;\n }\n\n private _initMethods(verificationMethods): void {\n this.verificationMethods = verificationMethods\n .reduce((acc, method) => {\n if (!acc[method.type]) {\n acc[method.type] = [];\n }\n\n acc[method.type].push(method);\n\n return acc;\n }, {});\n }\n}\n","<fs-dialog>\n <h1 mat-dialog-title>\n Verification Methods\n </h1>\n <form fsForm [submit]=\"setVerificationMethod\" [dirtySubmitButton]=\"false\">\n <mat-dialog-content>\n <ng-container>\n <fs-radio-group [(ngModel)]=\"verificationMethod\" name=\"method\" [compareWith]=\"compareWith\">\n <ng-container *ngFor=\"let methodMap of verificationMethods | keyvalue\">\n <div class=\"method\">\n <ng-container [ngSwitch]=\"methodMap.key\">\n <ng-container *ngSwitchCase=\"verificationMethodType.Sms\">\n <div class=\"method-header\">\n <div class=\"method-icon\">\n <mat-icon>\n textsms\n </mat-icon>\n </div>\n <div class=\"method-name\">\n <div class=\"method-title\">Text Message</div>\n <div class=\"method-subtitle\">\n Send verification code to a mobile number\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"verificationMethodType.Email\">\n <div class=\"method-header\">\n <div class=\"method-icon\">\n <mat-icon>\n mail\n </mat-icon>\n </div>\n <div class=\"method-name\">\n <div class=\"method-title\">Email</div>\n <div class=\"method-subtitle\">\n Send verification code to an email address\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"verificationMethodType.App\">\n <div class=\"method-header\">\n <div class=\"method-icon\">\n <mat-icon>\n phone_iphone\n </mat-icon>\n </div>\n <div class=\"method-name\">\n <div class=\"method-title\">Authenticator App</div>\n <div class=\"method-subtitle\">\n Send verification code to your authenticator app\n </div>\n </div>\n </div>\n </ng-container> \n </ng-container>\n\n <mat-radio-button class=\"method-item\" *ngFor=\"let method of methodMap.value\" [value]=\"method\">\n <ng-container [ngSwitch]=\"methodMap.key\">\n <ng-container *ngSwitchCase=\"verificationMethodType.Sms\">\n {{ method.phoneNumber }}\n </ng-container>\n <ng-container *ngSwitchCase=\"verificationMethodType.Email\">\n {{ method.email }}\n </ng-container>\n <ng-container *ngSwitchCase=\"verificationMethodType.App\">\n Authenticator App\n </ng-container> \n </ng-container>\n </mat-radio-button>\n </div>\n </ng-container>\n </fs-radio-group>\n </ng-container>\n </mat-dialog-content>\n <mat-dialog-actions>\n <div class=\"actions\">\n <button mat-button type=\"submit\" color=\"primary\">Next</button>\n <button mat-button type=\"button\" [mat-dialog-close]=\"null\">Cancel</button>\n </div>\n </mat-dialog-actions>\n </form>\n</fs-dialog>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\n\nimport { FsDialog } from '@firestitch/dialog';\nimport { FsMessage } from '@firestitch/message';\n\nimport { Observable, Subject } from 'rxjs';\nimport { filter, finalize, switchMap, tap } from 'rxjs/operators';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { IFsVerificationMethod } from '../../../../interfaces/verification-method.interface';\nimport { Fs2faVerificationCodeComponent } from '../2fa-verification-code/2fa-verification-code.component';\nimport { Fs2faVerificationMethodsComponent } from '../2fa-verification-methods/2fa-verification-methods.component';\n\n\n@Component({\n selector: 'fs-2fa-verification',\n templateUrl: './2fa-verification.component.html',\n styleUrls: ['./2fa-verification.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush, \n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\n})\nexport class Fs2faVerificationComponent implements OnDestroy, AfterViewInit {\n\n @ViewChild(Fs2faVerificationCodeComponent)\n public verificationCodeComponent: Fs2faVerificationCodeComponent;\n\n @Input()\n public verificationMethod: IFsVerificationMethod;\n\n @Input()\n public resend: () => Observable<void>;\n\n @Input()\n public showTrustedDevice = true;\n\n @Input()\n public trustDevice = true;\n\n @Input()\n public codeLength;\n\n @Input()\n public trustDays;\n\n @Input()\n public code;\n\n @Input()\n public formatRecipient = false;\n\n @Input()\n public getVerificationMethods: () => Observable<IFsVerificationMethod[]>;\n\n @Input()\n public selectVerificationMethod: (verificationMethod: IFsVerificationMethod) => Observable<IFsVerificationMethod>;\n\n @Output()\n public verified = new EventEmitter<unknown>();\n\n @Output()\n public codeChange = new EventEmitter<unknown>();\n\n @Output()\n public codeCompleted = new EventEmitter<unknown>();\n\n @Output()\n public trustDeviceChange = new EventEmitter<boolean>();\n\n public VerificationMethodType = VerificationMethodType;\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _dialog: FsDialog,\n private _message: FsMessage,\n ) {}\n\n public get recipient(): string {\n if(this.verificationMethod.type === VerificationMethodType.Email) {\n return this.verificationMethod.email;\n }\n\n if(this.verificationMethod.type === VerificationMethodType.Sms) {\n return this.verificationMethod.phoneNumber;\n }\n }\n\n public codeChanged(code): void {\n this.code = code;\n this.codeChange.emit(this.code);\n }\n\n public codeComplete(code): void {\n this.code = code;\n this.codeCompleted.emit(this.code);\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n public ngAfterViewInit(): void {\n this.verificationCodeComponent.focus(); \n }\n\n public resendCode(): Observable<any> {\n return this.resend()\n .pipe(\n tap(() => {\n this.code = '';\n this._message.success('Resent Code');\n }),\n finalize(() => {\n this.verificationCodeComponent.focus(); \n }),\n );\n }\n\n public showVerificationMethods(): void {\n this.getVerificationMethods()\n .pipe(\n switchMap((verificationMethods) => {\n return this._dialog.open(\n Fs2faVerificationMethodsComponent,\n {\n data: {\n verificationMethod: this.verificationMethod,\n verificationMethods,\n selectVerificationMethod: this.selectVerificationMethod,\n },\n },\n )\n .afterClosed()\n .pipe(\n filter((verificationMethod) => !!verificationMethod),\n );\n }),\n )\n .subscribe((verificationMethod) => {\n this.verificationMethod = verificationMethod;\n this.code = '';\n this._cdRef.markForCheck();\n\n setTimeout(() => {\n this.verificationCodeComponent.focus();\n });\n });\n }\n\n}\n","<div class=\"code-container\">\n <fs-2fa-verification-code\n [recipient]=\"(formatRecipient && verificationMethod.type === VerificationMethodType.Sms) ? (recipient | fsPhone) : recipient\"\n [type]=\"verificationMethod.type\"\n [code]=\"code\"\n [codeLength]=\"codeLength\"\n (codeChange)=\"codeChanged($event)\"\n (codeComplete)=\"codeComplete($event)\">\n </fs-2fa-verification-code>\n</div>\n<div class=\"additional\">\n <div\n class=\"trust-device\"\n *ngIf=\"showTrustedDevice\">\n <mat-checkbox\n name=\"trust-device\"\n [(ngModel)]=\"trustDevice\"\n (ngModelChange)=\"trustDeviceChange.emit($event)\">\n <div class=\"small\">\n Bypass 2-step verification\n <ng-container *ngIf=\"trustDays\">\n for {{ trustDays }} days\n </ng-container>\n <ng-container *ngIf=\"!trustDays\">\n for future signins\n </ng-container>\n </div>\n </mat-checkbox>\n </div>\n</div>","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, Inject,\n ViewChild,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n\nimport { FsFormDirective } from '@firestitch/form';\nimport { FsMessage } from '@firestitch/message';\n\nimport { Observable, of } from 'rxjs';\nimport { switchMap, tap } from 'rxjs/operators';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { TwoFactorManageService } from '../../services';\n\n\n@Component({\n templateUrl: './email.component.html',\n styleUrls: ['./email.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmailComponent {\n\n @ViewChild(FsFormDirective, { static: false })\n public form: FsFormDirective;\n\n public email;\n public code;\n public default;\n public verificationMethod = null;\n public trustDevice = true;\n public twoFactorManageService: TwoFactorManageService;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: any,\n private _dialogRef: MatDialogRef<EmailComponent>,\n private _cdRef: ChangeDetectorRef,\n private _message: FsMessage,\n ) {\n this.twoFactorManageService = _data.twoFactorManageService;\n this.default = !this.twoFactorManageService.hasVerificationMethods;\n }\n\n public resend = (): Observable<void> => {\n return this.twoFactorManageService.verificationMethodResend()\n .pipe(\n tap(() => {\n this._message.success('Resent verification code');\n }),\n );\n };\n\n public submit = () => {\n return of(true)\n .pipe(\n switchMap(() => {\n return this.verificationMethod ?\n this.twoFactorManageService.verificationMethodVerify$(this.code, this.trustDevice)\n .pipe(\n tap((verificationMethod) => {\n this._message.success('Created email verification method');\n this._dialogRef.close(verificationMethod);\n }),\n ) :\n this.twoFactorManageService.verificationMethodCreate$({\n type: VerificationMethodType.Email,\n email: this.email,\n default: this.default,\n })\n .pipe(\n tap((verificationMethod) => {\n this.verificationMethod = verificationMethod;\n this.form.clear();\n this._cdRef.markForCheck();\n }),\n );\n }),\n );\n };\n\n public codeCompleted(code): void {\n this.code = code;\n //Legacy support\n setTimeout(() => {\n if(!this.form.submitting) {\n this.form.triggerSubmit();\n }\n });\n }\n\n public codeChanged(code): void {\n this.code = code;\n }\n\n}\n","<form fsForm [submit]=\"submit\">\n <fs-dialog>\n <h1 mat-dialog-title>\n Email Setup\n </h1>\n <mat-dialog-content>\n <ng-container *ngIf=\"verificationMethod; else notVerificationMethod\">\n <fs-2fa-verification\n [verificationMethod]=\"verificationMethod\"\n (codeChanged)=\"codeChanged($event)\"\n (codeCompleted)=\"codeCompleted($event)\"\n [resend]=\"resend\"\n [(trustDevice)]=\"trustDevice\">\n </fs-2fa-verification>\n </ng-container>\n\n <ng-template #notVerificationMethod>\n <p>The app will only use this email for verifying your account security. </p>\n <mat-form-field>\n <mat-label>Email</mat-label>\n <input\n matInput\n [required]=\"true\"\n [(ngModel)]=\"email\"\n [fsFormEmail]=\"true\"\n name=\"email\">\n </mat-form-field>\n <mat-checkbox \n name=\"default\"\n [(ngModel)]=\"default\"\n [disableRipple]=\"true\">\n Make this the default verification method\n </mat-checkbox>\n </ng-template>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"submit\">\n Next\n </button>\n <button\n mat-button\n type=\"button\"\n [mat-dialog-close]=\"undefined\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, Inject,\n ViewChild,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { FsFormDirective } from '@firestitch/form';\nimport { FsMessage } from '@firestitch/message';\n\nimport { Observable, of } from 'rxjs';\nimport { switchMap, tap } from 'rxjs/operators';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { TwoFactorManageService } from '../../services';\n\n\n@Component({\n templateUrl: './number.component.html',\n styleUrls: ['./number.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NumberComponent {\n\n @ViewChild(FsFormDirective, { static: false })\n public form: FsFormDirective;\n\n public phone;\n public code;\n public default;\n public trustDevice = true;\n public verificationMethod = null;\n public defaultCountry;\n public twoFactorManageService: TwoFactorManageService;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: any,\n private _dialogRef: MatDialogRef<NumberComponent>,\n private _cdRef: ChangeDetectorRef,\n private _message: FsMessage,\n ) {\n this.twoFactorManageService = _data.twoFactorManageService;\n this.defaultCountry = _data.defaultCountry;\n this.default = !this.twoFactorManageService.hasVerificationMethods;\n }\n\n public resend = (): Observable<void> => {\n return this.twoFactorManageService.verificationMethodResend()\n .pipe(\n tap(() => {\n this._message.success('Resent verification code');\n }),\n );\n };\n\n public submit = () => {\n return of(true)\n .pipe(\n switchMap(() => {\n return this.verificationMethod ?\n this.twoFactorManageService.verificationMethodVerify$(this.code, this.trustDevice)\n .pipe(\n tap((verificationMethod) => {\n this._message.success('Created text message verification method');\n this._dialogRef.close(verificationMethod);\n }),\n ) :\n this.twoFactorManageService.verificationMethodCreate$({\n type: VerificationMethodType.Sms,\n phoneNumber: this.phone.number,\n phoneCode: this.phone.countryCode,\n phoneCountry: this.phone.isoCode,\n default: this.default,\n })\n .pipe(\n tap((verificationMethod) => {\n this.verificationMethod = verificationMethod;\n this.form.clear();\n this._cdRef.markForCheck();\n }),\n );\n }),\n );\n };\n\n public codeCompleted(code): void {\n this.code = code;\n //Legacy support\n setTimeout(() => {\n if(!this.form.submitting) {\n this.form.triggerSubmit();\n }\n });\n }\n\n public codeChanged(code): void {\n this.code = code;\n }\n\n}\n","<form fsForm [submit]=\"submit\" [autocomplete]=\"false\">\n <fs-dialog>\n <h1 mat-dialog-title>\n Text Message Setup\n </h1>\n <mat-dialog-content>\n <ng-container *ngIf=\"verificationMethod; else notVerificationMethod\">\n <fs-2fa-verification\n [verificationMethod]=\"verificationMethod\"\n (codeChanged)=\"codeChanged($event)\"\n (codeCompleted)=\"codeCompleted($event)\"\n [resend]=\"resend\"\n [formatRecipient]=\"true\"\n [(trustDevice)]=\"trustDevice\">\n </fs-2fa-verification>\n </ng-container>\n\n <ng-template #notVerificationMethod>\n <p>The app will only use this number for verifying your account security. Message and data rates may apply by your cell phone provider.</p>\n <mat-form-field>\n <mat-label>Phone number</mat-label>\n <input \n matInput\n fsPhoneField\n [(ngModel)]=\"phone\"\n [required]=\"true\"\n [country]=\"defaultCountry\"\n [mode]=\"'object'\"\n autocomplete=\"off\"\n name=\"phone\">\n </mat-form-field>\n <mat-checkbox \n name=\"default\"\n [(ngModel)]=\"default\"\n [disableRipple]=\"true\">\n Make this the default verification method\n </mat-checkbox>\n </ng-template>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"submit\">\n Next\n </button>\n <button\n mat-button\n type=\"button\"\n [mat-dialog-close]=\"undefined\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { AppComponent } from '../components/app';\nimport { VerificationMethodType } from '../../../enums/verification-method-type.enum';\nimport { EmailComponent } from '../components/email';\nimport { NumberComponent } from '../components/number';\nimport { IFsVerificationMethod } from '../../../interfaces';\n\n\n@Injectable()\nexport class TwoFactorManageService implements OnDestroy {\n\n private _destroy$ = new Subject();\n\n private _verificationMethodsFetch: (query: any) => Observable<any[]>;\n private _verificationMethodCreate: (verificationMethod: IFsVerificationMethod) => Observable<IFsVerificationMethod>;\n private _verificationMethodDelete: (verificationMethod: IFsVerificationMethod) => Observable<IFsVerificationMethod>;\n private _verificationMethodDefault: (verificationMethod: IFsVerificationMethod) => Observable<IFsVerificationMethod>;\n private _verificationMethodVerify: (code, trustDevice: boolean) => Observable<any>;\n private _verificationMethodResend: () => Observable<any>;\n private _accountVerify: () => Observable<any[]>;\n private _verificationMethods$ = new BehaviorSubject<any[]>([]);\n\n constructor(\n private _dialog: MatDialog,\n ) {}\n\n public get verificationMethods$() {\n return this._verificationMethods$\n .pipe(\n takeUntil(this._destroy$),\n );\n }\n \n public get verificationMethods() {\n return this._verificationMethods$.getValue();\n }\n\n public get hasVerificationMethods(): boolean {\n return !!this._verificationMethods$.getValue().length;\n }\n\n public get emailVerificationMethods() {\n return this.getVerificationMethods(VerificationMethodType.Email);\n }\n\n public get smsVerificationMethods() {\n return this.getVerificationMethods(VerificationMethodType.Sms);\n }\n\n public get appVerificationMethods() {\n return this.getVerificationMethods(VerificationMethodType.App);\n }\n \n public getVerificationMethods(type) {\n return this.verificationMethods\n .filter((verificationMethod) => {\n return verificationMethod.type === type;\n });\n }\n \n public hasVerificationMethod(type) {\n return this.verificationMethods\n .some((verificationMethod) => {\n return verificationMethod.type === type;\n });\n }\n\n public registerVerificationMethodDefault(value) {\n this._verificationMethodDefault = value;\n }\n\n public registerVerificationMethodResend(value) {\n this._verificationMethodResend = value;\n }\n\n public registerVerificationMethodsFetch(value) {\n this._verificationMethodsFetch = value;\n }\n\n public registerVerificationMethodDelete(value) {\n this._verificationMethodDelete = value;\n }\n\n public registerVerificationMethodCreate(value) {\n this._verificationMethodCreate = value;\n }\n\n public registerVerificationMethodVerify(value) {\n this._verificationMethodVerify = value;\n }\n\n public registerAccountVerify(value) {\n this._accountVerify = value;\n }\n\n public get hasVerificationMethodResend() {\n return !!this._verificationMethodResend;\n }\n\n public get hasVerificationMethodDefault() {\n return !!this._verificationMethodDefault;\n }\n\n public get hasVerificationMethodsFetch() {\n return !!this._verificationMethodsFetch;\n }\n\n public get hasVerificationMethodDelete() {\n return !!this._verificationMethodDelete;\n }\n\n public get hasVerificationMethodCreate() {\n return !!this._verificationMethodCreate;\n }\n\n public get hasVerificationMethodVerify() {\n return !!this._verificationMethodVerify;\n }\n\n public verificationMethodDelete$(verificationMethod): Observable<any> {\n return this._verificationMethodDelete(verificationMethod)\n .pipe(\n tap(() => {\n this.verificationMethodsFetch();\n }),\n );\n }\n\n public verificationMethodVerify$(code, trustDevice): Observable<any> {\n return this._verificationMethodVerify(code, trustDevice)\n .pipe(\n tap(() => {\n this.verificationMethodsFetch();\n }),\n );\n }\n\n public verificationMethodCreate$(verificationMethod): Observable<any> {\n return this._verificationMethodCreate(verificationMethod);\n }\n\n public verificationMethodDefault$(verificationMethod): Observable<any> {\n return this._verificationMethodDefault(verificationMethod);\n }\n\n public verificationMethodResend(): Observable<any> {\n return this._verificationMethodResend();\n }\n\n public verificationMethodsFetch(query?: any) {\n this.verificationMethodsFetch$(query)\n .subscribe();\n }\n\n public verificationMethodsFetch$(query?: any): Observable<any> {\n return this._verificationMethodsFetch(query)\n .pipe(\n tap((verificationMethods) => {\n this._verificationMethods$.next(verificationMethods);\n })\n );\n }\n\n public accountVerify$(): Observable<any> {\n return this._accountVerify ? this._accountVerify() : of(true);\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n public addSms$(defaultCountry): Observable<any>{\n return this.accountVerify$()\n .pipe(\n switchMap(() => this._dialog.open(NumberComponent, {\n data: {\n defaultCountry,\n twoFactorManageService: this,\n },\n })\n .afterClosed(),\n ),\n tap(() => {\n this.verificationMethodsFetch();\n }),\n takeUntil(this._destroy$),\n );\n }\n\n public addEmail$(): Observable<any>{\n return this.accountVerify$()\n .pipe(\n switchMap(() => this._dialog.open(EmailComponent, {\n data: { twoFactorManageService: this },\n })\n .afterClosed(),\n ),\n tap(() => {\n this.verificationMethodsFetch();\n }),\n takeUntil(this._destroy$),\n );\n }\n\n public addApp$(): Observable<any>{\n return this.accountVerify$()\n .pipe(\n switchMap(() => this._dialog.open(AppComponent, {\n data: { twoFactorManageService: this },\n })\n .afterClosed(),\n ),\n tap(() => {\n this.verificationMethodsFetch();\n }),\n takeUntil(this._destroy$),\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\n\n\n@Component({\n selector: 'app-defaulted',\n templateUrl: './defaulted.component.html',\n styleUrls: ['./defaulted.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DefaultedComponent {\n\n}\n","<fs-chip [backgroundColor]=\"'#02A7F0'\" [size]=\"'tiny'\">Default</fs-chip>","import {\n Component, ChangeDetectionStrategy, OnInit, Input, ViewChild, Output, EventEmitter,\n} from '@angular/core';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { map, switchMap } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\n\nimport { IFsVerificationMethod } from '../../../../interfaces';\nimport { VerificationMethodType } from '../../../../enums';\nimport { TwoFactorManageService } from '../../../manage/services';\n\n\n@Component({\n selector: 'fs-2fa-verification-methods',\n templateUrl: './verification-methods.component.html',\n styleUrls: ['./verification-methods.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VerificationMethodsComponent implements OnInit {\n\n @ViewChild(FsListComponent)\n public list: FsListComponent;\n\n @Input() public type: VerificationMethodType;\n @Input() public accountVerify: () => Observable<any>;\n @Input() public verificationMethodsFetch: (query: any) => Observable<IFsVerificationMethod[]>;\n @Input() public verificationMethodDelete: (verificationMethod: IFsVerificationMethod) => Observable<any>;\n @Input() public verificationMethodDefault: (verificationMethod: IFsVerificationMethod) => Observable<any>;\n @Input() public twoFactorManageService: TwoFactorManageService;\n\n @Output() public deleted = new EventEmitter();\n \n public listConfig: FsListConfig;\n public VerificationMethodType = VerificationMethodType;\n\n constructor(\n private _prompt: FsPrompt,\n ) {}\n\n public ngOnInit(): void {\n if(!this.verificationMethodDefault && this.twoFactorManageService?.hasVerificationMethodDefault) {\n this.verificationMethodDefault = (verificationMethod: IFsVerificationMethod) => {\n return this.twoFactorManageService.verificationMethodDefault$(verificationMethod);\n }\n }\n \n if(!this.verificationMethodDelete && this.twoFactorManageService?.hasVerificationMethodDelete) {\n this.verificationMethodDelete = (verificationMethod: IFsVerificationMethod) => {\n return this.twoFactorManageService.verificationMethodDelete$(verificationMethod);\n }\n }\n \n if(!this.verificationMethodsFetch && this.twoFactorManageService?.hasVerificationMethodsFetch) {\n this.verificationMethodsFetch = (query) => {\n return this.twoFactorManageService.verificationMethodsFetch$(query);\n }\n }\n \n if(!this.accountVerify && this.twoFactorManageService?.hasVerificationMethodVerify) {\n this.accountVerify = () => {\n return this.twoFactorManageService?.accountVerify$();\n }\n }\n\n this.listConfig = {\n paging: false,\n rowActions: [\n {\n click: (verificationMethod) => {\n this.accountVerify()\n .pipe(\n switchMap(() => this.verificationMethodDefault(verificationMethod)),\n )\n .subscribe(() => {\n this.list.reload();\n });\n },\n show: (data) => {\n return !!this.verificationMethodDefault && !data.default;\n },\n label: 'Set as Default',\n },\n {\n click: (verificationMethod) => {\n this._prompt.confirm({\n title: 'Confirm',\n template: 'Would you like to delete this verification method?',\n })\n .pipe(\n switchMap(() => this.accountVerify()),\n switchMap(() => this.verificationMethodDelete(verificationMethod)),\n )\n .subscribe(() => {\n this.deleted.emit();\n this.list.reload();\n });\n },\n show: () => {\n return !!this.verificationMethodDelete;\n },\n label: 'Delete',\n },\n ],\n fetch: (query) => {\n query = {\n ...query,\n type: this.type,\n };\n\n return this.verificationMethodsFetch(query) \n .pipe(\n map((verificationMethods) => ({\n data: verificationMethods.filter((verificationMethod) => {\n return !this.type || verificationMethod.type === this.type;\n }),\n }),\n ),\n );\n },\n };\n }\n\n public reload(): void {\n this.list.reload();\n }\n}\n","<fs-list [config]=\"listConfig\">\n <fs-list-column class=\"col-icon\" width=\"1%\">\n <ng-template fs-list-cell let-row=\"row\">\n <ng-container *ngIf=\"row.type === VerificationMethodType.Sms\">\n <mat-icon>textsms</mat-icon>\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.Email\">\n <mat-icon>email</mat-icon>\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.App\">\n <mat-icon>phone_iphone</mat-icon>\n </ng-container>\n </ng-template>\n </fs-list-column>\n <fs-list-column class=\"col-name\">\n <ng-template fs-list-cell let-row=\"row\">\n <div class=\"row\">\n <ng-container *ngIf=\"row.type === VerificationMethodType.Sms\">\n <div class=\"row\">\n <fs-country [code]=\"row.phoneCountry\" [showName]=\"false\"></fs-country> \n <span>{{row.phoneNumber | fsPhone}}</span>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.Email\">\n {{row.email}}\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.App\">\n App\n </ng-container>\n\n <app-defaulted *ngIf=\"row.default\"></app-defaulted>\n </div>\n </ng-template>\n </fs-list-column>\n</fs-list>","import {\n Component, Inject, ChangeDetectionStrategy, ViewChild,\n} from '@angular/core';\n\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { FsMessage } from '@firestitch/message';\nimport { VerificationMethodsComponent } from '../../../../modules/verification-methods/components/verification-methods';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { TwoFactorManageService } from '../../services';\n\n\n@Component({\n templateUrl: './emails.component.html',\n styleUrls: ['./emails.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmailsComponent {\n\n @ViewChild(VerificationMethodsComponent) \n public verificationMethods: VerificationMethodsComponent;\n\n public twoFactorManageService: TwoFactorManageService;\n public VerificationMethodType = VerificationMethodType;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: any,\n private _dialogRef: MatDialogRef<EmailsComponent>,\n private _message: FsMessage,\n ) {\n this.twoFactorManageService = _data.twoFactorManageService;\n }\n\n public add(): void {\n this.twoFactorManageService.addEmail$()\n .subscribe(() =>{\n this.verificationMethods.reload();\n });\n }\n\n public deleted(): void {\n this._message.success('Deleted email verification method');\n if(!this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Email)) {\n this._dialogRef.close();\n }\n }\n\n}\n","<fs-dialog>\n <h1 mat-dialog-title>\n Emails\n </h1>\n <mat-dialog-content>\n <fs-2fa-verification-methods\n [type]=\"VerificationMethodType.Email\"\n [twoFactorManageService]=\"twoFactorManageService\"\n (deleted)=\"deleted()\">\n </fs-2fa-verification-methods>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n type=\"button\"\n color=\"primary\"\n [mat-dialog-close]=\"undefined\">\n Close\n </button>\n <button\n mat-button\n (click)=\"add()\"\n type=\"button\">\n Add Email\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n","import {\n Component, Inject, ChangeDetectionStrategy, ViewChild,\n} from '@angular/core';\n\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { FsMessage } from '@firestitch/message';\nimport { VerificationMethodsComponent } from '../../../../modules/verification-methods/components/verification-methods';\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { TwoFactorManageService } from '../../services';\n\n\n@Component({\n templateUrl: './numbers.component.html',\n styleUrls: ['./numbers.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NumbersComponent {\n\n @ViewChild(VerificationMethodsComponent) \n public verificationMethods: VerificationMethodsComponent;\n\n public defaultCountry;\n public twoFactorManageService: TwoFactorManageService;\n public VerificationMethodType = VerificationMethodType;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: any, \n private _dialogRef: MatDialogRef<NumbersComponent>,\n private _message: FsMessage,\n ) {\n this.twoFactorManageService = _data.twoFactorManageService;\n this.defaultCountry = _data.defaultCountry;\n }\n\n public add(): void {\n this.twoFactorManageService.addSms$(this.defaultCountry)\n .subscribe(() => {\n this.verificationMethods.reload();\n });\n }\n\n public deleted(): void {\n this._message.success('Deleted text message verification method');\n if(!this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Sms)) {\n this._dialogRef.close();\n }\n }\n\n}\n","<fs-dialog>\n <h1 mat-dialog-title>\n Text Message Numbers\n </h1>\n <mat-dialog-content>\n <fs-2fa-verification-methods\n [type]=\"VerificationMethodType.Sms\"\n [twoFactorManageService]=\"twoFactorManageService\"\n (deleted)=\"deleted()\">\n </fs-2fa-verification-methods> \n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n type=\"button\"\n color=\"primary\"\n [mat-dialog-close]=\"undefined\">\n Close\n </button>\n <button\n mat-button\n (click)=\"add()\"\n type=\"button\">\n Add Number\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, Inject,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\n\nimport { Subject } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { TwoFactorManageService } from '../../services';\nimport { EmailsComponent } from '../emails';\nimport { NumbersComponent } from '../numbers';\n\n\n@Component({\n templateUrl: './manage-methods.component.html',\n styleUrls: ['./manage-methods.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ManageMethodsComponent implements OnInit, OnDestroy {\n\n public twoFactorManageService: TwoFactorManageService;\n public verificationMethods;\n public verificationMethodTypes = {};\n public VerificationMethodType = VerificationMethodType;\n public buttonStyle: 'raised' | 'stroked' = 'raised';\n\n private _destroy$ = new Subject();\n private _defaultCountry: string;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: any,\n private _cdRef: ChangeDetectorRef,\n private _dialog: MatDialog,\n private _message: FsMessage,\n ) {}\n\n public ngOnInit(): void {\n this._defaultCountry = this._data.defaultCountry;\n this.twoFactorManageService = this._data.twoFactorManageService;\n this.buttonStyle = this._data.buttonStyle;\n this.verificationMethodTypes = this._data.verificationMethodTypes\n .reduce((verificationMethodTypes, verificationMethodType) => {\n verificationMethodTypes[verificationMethodType] = true;\n\n return verificationMethodTypes;\n }, {});\n\n this.twoFactorManageService.verificationMethods$\n .subscribe((verificationMethods) => {\n this.verificationMethods = verificationMethods;\n this._cdRef.markForCheck();\n });\n }\n\n public get defaultSms(): boolean {\n return this.twoFactorManageService.smsVerificationMethods\n .some((verificationMethod) => {\n return verificationMethod.default;\n });\n }\n\n public get defaultApp(): boolean {\n return this.twoFactorManageService.appVerificationMethods\n .some((verificationMethod) => {\n return verificationMethod.default;\n });\n }\n\n public get defaultEmail(): boolean {\n return this.twoFactorManageService.emailVerificationMethods\n .some((verificationMethod) => {\n return verificationMethod.default;\n });\n }\n\n public get textHasVerificationMethod(): boolean {\n return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Sms);\n }\n\n public get appHasVerificationMethod(): boolean {\n return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.App);\n }\n\n public get emailHasVerificationMethod(): boolean {\n return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Email);\n }\n\n public textMessageManage(): void {\n this._dialog.open(NumbersComponent, {\n data: {\n twoFactorManageService: this.twoFactorManageService,\n defaultCountry: this._defaultCountry,\n },\n });\n }\n\n public textMessageAdd(): void {\n this.twoFactorManageService.addSms$(this._defaultCountry)\n .subscribe();\n }\n\n public emailMessageManage(): void {\n this._dialog.open(EmailsComponent, {\n data: {\n twoFactorManageService: this.twoFactorManageService,\n },\n });\n }\n\n public emailMessageAdd(): void {\n this.twoFactorManageService.addEmail$()\n .subscribe();\n }\n\n public appRemove(): void {\n const verificationMethod = this.verificationMethods\n .find((_verificationMethod) => {\n return _verificationMethod.type === VerificationMethodType.App;\n });\n\n if(verificationMethod) {\n this.twoFactorManageService.accountVerify$()\n .pipe(\n switchMap(() => this.twoFactorManageService.verificationMethodDelete$(verificationMethod)),\n )\n .subscribe(() => {\n this._message.success('Removed App Authenticator verification method');\n this._cdRef.markForCheck();\n });\n }\n }\n\n public appAdd(): void {\n this.twoFactorManageService.addApp$()\n .subscribe();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n}\n","<fs-dialog>\n <h1 mat-dialog-title>2-Step Verification</h1>\n <mat-dialog-content>\n <table>\n <tr *ngIf=\"verificationMethodTypes[VerificationMethodType.Sms]\">\n <td>\n <mat-icon>textsms</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Text Message</span>\n @if(textHasVerificationMethod) {\n <ng-container [ngTemplateOutlet]=\"enabledChip\"></ng-container>\n }\n <app-defaulted *ngIf=\"defaultSms\"></app-defaulted>\n </div>\n <div class=\"small\">\n Verification codes are sent by text message\n <ng-container *ngIf=\"textHasVerificationMethod\">\n to <span class=\"items\">\n <span *ngFor=\"let item of twoFactorManageService.smsVerificationMethods\">{{item.phoneNumber | fsPhone}}</span>\n </span>\n </ng-container>\n </div>\n </td>\n <td>\n @if(textHasVerificationMethod) {\n <button \n mat-button \n [ngClass]=\"{ \n 'mat-mdc-outlined-button': buttonStyle === 'stroked',\n 'mat-mdc-raised-button': buttonStyle === 'raised'\n }\"\n type=\"button\"\n (click)=\"textMessageManage()\">\n Manage\n </button>\n } @else {\n <button \n mat-button \n [ngClass]=\"{ \n 'mat-mdc-outlined-button': buttonStyle === 'stroked',\n 'mat-mdc-raised-button': buttonStyle === 'raised'\n }\"\n type=\"button\"\n (click)=\"textMessageAdd()\">\n Turn On\n </button>\n }\n </td>\n </tr>\n <tr *ngIf=\"verificationMethodTypes[VerificationMethodType.Email]\">\n <td>\n <mat-icon>email</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Email</span> \n @if(emailHasVerificationMethod) {\n <ng-container [ngTemplateOutlet]=\"enabledChip\"></ng-container>\n }\n <app-defaulted *ngIf=\"defaultEmail\"></app-defaulted>\n </div>\n <div class=\"small\">\n Verification codes are sent by email\n <ng-container *ngIf=\"emailHasVerificationMethod\">\n to <span class=\"items\">\n <span *ngFor=\"let item of twoFactorManageService.emailVerificationMethods\">{{item.email}}</span>\n </span>\n </ng-container>\n </div>\n </td>\n <td>\n @if(emailHasVerificationMethod) {\n <button \n mat-button \n [ngClass]=\"{ \n 'mat-mdc-outlined-button': buttonStyle === 'stroked',\n 'mat-mdc-raised-button': buttonStyle === 'raised'\n }\"\n type=\"button\"\n (click)=\"emailMessageManage()\">\n Manage\n </button>\n } @else {\n <button\n mat-button \n [ngClass]=\"{ \n 'mat-mdc-outlined-button': buttonStyle === 'stroked',\n 'mat-mdc-raised-button': buttonStyle === 'raised'\n }\"\n type=\"button\"\n (click)=\"emailMessageAdd()\">\n Turn On\n </button>\n }\n </td>\n </tr>\n <tr *ngIf=\"verificationMethodTypes[VerificationMethodType.App]\">\n <td>\n <mat-icon>phone_iphone</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Authenticator App</span>\n @if(appHasVerificationMethod) {\n <ng-container [ngTemplateOutlet]=\"enabledChip\"></ng-container>\n }\n <app-defaulted *ngIf=\"defaultApp\"></app-defaulted>\n </div>\n <div class=\"small\">Verification code is generated by an authenticator app such as Authy or Google Authenticator</div>\n </td>\n <td>\n @if(appHasVerificationMethod) {\n <button \n mat-button \n [ngClass]=\"{ \n 'mat-mdc-outlined-button': buttonStyle === 'stroked',\n 'mat-mdc-raised-button': buttonStyle === 'raised'\n }\"\n type=\"button\"\n (click)=\"appRemove()\">\n Remove\n </button>\n } @else {\n <button \n mat-button \n [ngClass]=\"{ \n 'mat-mdc-outlined-button': buttonStyle === 'stroked',\n 'mat-mdc-raised-button': buttonStyle === 'raised'\n }\"\n type=\"button\"\n (click)=\"appAdd()\">\n Turn On\n </button>\n }\n </td>\n </tr> \n </table> \n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"button\"\n [mat-dialog-close]=\"undefined\">\n Close\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n\n\n<ng-template #enabledChip>\n <fs-chip [backgroundColor]=\"'#70B601'\" [size]=\"'tiny'\">Enabled</fs-chip>\n</ng-template>","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { VerificationMethodType } from '../../../../enums';\nimport { IFsVerificationMethod } from '../../../../interfaces';\nimport { TwoFactorManageService } from '../../services';\nimport { ManageMethodsComponent } from '../manage-methods';\n\n\n@Component({\n selector: 'fs-2fa-manage',\n templateUrl: './2fa-manage.component.html',\n styleUrls: ['./2fa-manage.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TwoFactorManageService],\n})\nexport class Fs2faManageComponent implements OnDestroy, OnInit {\n\n @Input() public accountVerify: () => Observable<any>;\n @Input() public defaultCountry: string;\n @Input() public buttonStyle: 'raised' | 'stroked' = 'raised';\n @Input() public verificationMethodTypes: VerificationMethodType[];\n @Input() public verificationMethodsFetch: () => Observable<IFsVerificationMethod[]>;\n @Input() public verificationMethodDelete: (verificationMethod: IFsVerificationMethod) => Observable<IFsVerificationMethod>;\n @Input() public verificationMethodCreate: (verificationMethod: IFsVerificationMethod) => Observable<IFsVerificationMethod>;\n @Input() public verificationMethodDefault: (verificationMethod: IFsVerificationMethod) => Observable<IFsVerificationMethod>;\n @Input() public verificationMethodVerify: (code: string, trustDevice) => Observable<any>;\n @Input() public verificationMethodResend: () => Observable<any>;\n\n public statuses;\n\n private _destroy$ = new Subject();\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _dialog: MatDialog,\n private _twoFactorManageService: TwoFactorManageService,\n ) {}\n\n public ngOnInit(): void {\n this.verificationMethodTypes = this.verificationMethodTypes || [\n VerificationMethodType.Sms,\n VerificationMethodType.Email,\n VerificationMethodType.App,\n ];\n\n this._twoFactorManageService.registerVerificationMethodsFetch(this.verificationMethodsFetch);\n this._twoFactorManageService.registerVerificationMethodDelete(this.verificationMethodDelete);\n this._twoFactorManageService.registerVerificationMethodCreate(this.verificationMethodCreate);\n this._twoFactorManageService.registerVerificationMethodVerify(this.verificationMethodVerify);\n this._twoFactorManageService.registerVerificationMethodResend(this.verificationMethodResend);\n this._twoFactorManageService.registerVerificationMethodDefault(this.verificationMethodDefault);\n this._twoFactorManageService.registerAccountVerify(this.accountVerify);\n\n\n this._twoFactorManageService.verificationMethods$\n .subscribe((verificationMethods) => {\n const types = {\n sms: 'Text Message',\n email: 'Email',\n app: 'Authenticator App',\n };\n\n this.statuses = Object.keys(\n verificationMethods.reduce((accum, verificationMethod) => {\n accum[verificationMethod.type] = true;\n\n return accum;\n }, {}),\n )\n .map((type) => {\n return types[type];\n });\n\n this._cdRef.markForCheck();\n });\n\n this._twoFactorManageService.verificationMethodsFetch();\n }\n\n public manage() {\n const dialogRef = this._dialog\n .open(ManageMethodsComponent, {\n autoFocus: false,\n data: {\n defaultCountry: this.defaultCountry,\n twoFactorManageService: this._twoFactorManageService,\n verificationMethodTypes: this.verificationMethodTypes,\n buttonStyle: this.buttonStyle,\n },\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._cdRef.markForCheck();\n });\n }\n\n public reload(): void {\n this._twoFactorManageService.verificationMethodsFetch();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n\n}\n","<fs-label-field>\n <fs-label>Status</fs-label>\n <ng-container *ngIf=\"statuses\">\n <ng-container *ngIf=\"statuses.length === 1\">\n {{statuses[0]}} verification is enabled\n </ng-container>\n\n <ng-container *ngIf=\"statuses.length > 1\">\n {{statuses.join(', ')}} verifications are enabled\n </ng-container>\n\n <ng-container *ngIf=\"statuses.length === 0\">\n No verification methods are enabled\n </ng-container>\n </ng-container>\n</fs-label-field>","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { FsCodeInputModule } from '@firestitch/code-input';\n\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { CodeInputComponent } from './components/code-input';\n\n\n@NgModule({\n imports: [\n FormsModule,\n\n MatFormFieldModule,\n MatInputModule,\n\n FsCodeInputModule,\n ],\n declarations: [\n CodeInputComponent,\n ],\n exports: [\n CodeInputComponent,\n ],\n})\nexport class CodeInputModule {\n}\n","import { NgModule } from '@angular/core';\n\nimport { FsChipModule } from '@firestitch/chip';\n\nimport { DefaultedComponent } from './components/defaulted';\n\n\n@NgModule({\n declarations: [\n DefaultedComponent,\n ],\n imports: [\n FsChipModule,\n ],\n exports: [DefaultedComponent],\n})\nexport class DefautledModule { }\n","import { Component, ChangeDetectionStrategy, Output, EventEmitter, Input, ChangeDetectorRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { finalize, takeUntil } from 'rxjs/operators';\n\n\n@Component({\n selector: 'app-resend',\n templateUrl: './resend.component.html',\n styleUrls: ['./resend.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ResendComponent {\n\n @Input() public resend: () => Observable<any>;\n \n public resendInProgress = false;\n\n private _destroy$ = new Subject();\n \n constructor(\n private _cdRef: ChangeDetectorRef,\n ) {}\n\n public resendClick(): void {\n this.resendInProgress = true;\n this.resend()\n .pipe(\n finalize(() => {\n this.resendInProgress = false; \n this._cdRef.markForCheck(); \n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n\n}","<ng-container *ngIf=\"!resendInProgress else sending\">\n Didn't receive a code? <a (click)=\"resendClick()\">Resend</a>\n</ng-container>\n<ng-template #sending>\n <div class=\"sending\">\n <mat-spinner [diameter]=\"12\"></mat-spinner> Sending\n </div>\n</ng-template>\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { ResendComponent } from './components/resend';\n\n\n@NgModule({\n imports: [\n CommonModule,\n\n MatProgressSpinnerModule,\n ],\n declarations: [\n ResendComponent,\n ],\n exports: [\n ResendComponent,\n ],\n})\nexport class ResendModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\n\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsPhoneModule } from '@firestitch/phone';\nimport { FsCountryModule } from '@firestitch/country';\n\nimport { VerificationMethodsComponent } from './components/verification-methods/verification-methods.component';\nimport { DefautledModule } from '../defaulted/defaulted.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatIconModule,\n\n FsListModule,\n FsPhoneModule,\n FsCountryModule,\n\n DefautledModule,\n ],\n declarations: [\n VerificationMethodsComponent,\n ],\n exports: [VerificationMethodsComponent],\n})\nexport class Fs2faVerificationMethodsModule { }\n","import { Directive, HostListener, inject, Input } from '@angular/core';\n\nimport { MatButton } from '@angular/material/button';\n\nimport { finalize } from 'rxjs/operators';\n\nimport { Fs2faVerificationComponent } from '../components/2fa-verification/2fa-verification.component';\n\n@Directive({\n selector: '[fs2faVerificationResend]',\n})\nexport class Fs2faVerificationResendDirective { \n \n @Input('fs2faVerificationResend') public verification: Fs2faVerificationComponent;\n\n private _button = inject(MatButton);\n \n @HostListener('click')\n public click() {\n this._button.disabled = true;\n this.verification.resendCode()\n .pipe(\n finalize(() => this._button.disabled = false),\n )\n .subscribe();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { FsFormModule } from '@firestitch/form';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsRadioGroupModule } from '@firestitch/radiogroup';\nimport { FsDialogModule } from '@firestitch/dialog';\n\nimport { Fs2faVerificationComponent } from './components/2fa-verification/2fa-verification.component';\nimport { Fs2faVerificationCodeComponent } from './components/2fa-verification-code/2fa-verification-code.component';\nimport { Fs2faVerificationMethodsComponent } from './components/2fa-verification-methods/2fa-verification-methods.component';\n\nimport { CodeInputModule } from '../code-input';\nimport { ResendModule } from '../resend/resend.module';\nimport { Fs2faVerificationResendDirective } from './directives';\nimport { FsPhoneModule } from '@firestitch/phone';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatFormFieldModule,\n MatInputModule,\n MatButtonModule,\n MatIconModule,\n MatRadioModule,\n MatCheckboxModule,\n\n FsFormModule,\n FsRadioGroupModule,\n FsDialogModule,\n FsSkeletonModule,\n FsPhoneModule,\n FsSkeletonModule,\n\n ResendModule,\n CodeInputModule,\n ],\n declarations: [\n Fs2faVerificationComponent,\n Fs2faVerificationCodeComponent,\n Fs2faVerificationMethodsComponent,\n Fs2faVerificationResendDirective,\n ],\n exports: [\n Fs2faVerificationComponent,\n Fs2faVerificationResendDirective,\n ],\n providers: [],\n})\nexport class Fs2faVerificationModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { FsChipModule } from '@firestitch/chip';\nimport { FsCountryModule } from '@firestitch/country';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsListModule } from '@firestitch/list';\nimport { FsPhoneModule } from '@firestitch/phone';\nimport { FsQrcodeModule } from '@firestitch/qrcode';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\n\nimport { CodeInputModule } from '../code-input';\nimport { DefautledModule } from '../defaulted/defaulted.module';\nimport { ResendModule } from '../resend/resend.module';\nimport { Fs2faVerificationMethodsModule } from '../verification-methods';\nimport { Fs2faVerificationModule } from '../verification/fs-2fa-verification.module';\n\nimport { Fs2faManageComponent } from './components/2fa-manage';\nimport { AppComponent } from './components/app';\nimport { EmailComponent } from './components/email';\nimport { EmailsComponent } from './components/emails';\nimport { ManageMethodsComponent } from './components/manage-methods';\nimport { NumberComponent } from './components/number';\nimport { NumbersComponent } from './components/numbers';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatButtonModule,\n MatDialogModule,\n MatInputModule,\n MatIconModule,\n MatCheckboxModule,\n\n FsDialogModule,\n FsListModule,\n FsChipModule,\n FsFormModule,\n FsLabelModule,\n FsPhoneModule,\n FsSkeletonModule,\n FsCountryModule,\n FsQrcodeModule,\n\n CodeInputModule,\n\n ResendModule,\n DefautledModule,\n Fs2faVerificationModule,\n Fs2faVerificationMethodsModule,\n ],\n declarations: [\n Fs2faManageComponent,\n ManageMethodsComponent,\n NumbersComponent,\n AppComponent,\n EmailComponent,\n NumberComponent,\n EmailsComponent,\n ],\n exports: [Fs2faManageComponent],\n})\nexport class Fs2faManageModule { }\n","import { Injectable } from '@angular/core';\n\nimport { FsApi, RequestConfig } from '@firestitch/api';\n\nimport { Observable } from 'rxjs';\n\n\n@Injectable()\nexport class VerificationMethodData<T = any> {\n\n constructor(\n private _api: FsApi,\n ) {}\n\n public verify(code: any, trustDevice: boolean, config: RequestConfig = {}): Observable<T> {\n return this._api.post(\n 'verifications/methods/verify',\n { code, trustDevice },\n {\n key: 'verificationMethod',\n ...config,\n },\n );\n }\n\n public resend(config: RequestConfig = {}): Observable<T> {\n return this._api.post(\n 'verifications/methods/resend',\n {},\n {\n key: '',\n ...config,\n },\n );\n }\n\n public account(config: RequestConfig = {}): Observable<T> {\n return this._api.post(\n 'verifications/methods/account',\n {},\n {\n key: 'verificationMethod',\n ...config,\n },\n );\n }\n\n\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { FsApi } from '@firestitch/api';\n\nimport { finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class VerificationSetupService {\n\n private _api = inject(FsApi);\n private _router = inject(Router);\n\n public signout() {\n return this._api\n .post('auth/signout')\n .pipe(\n finalize(() => {\n this._router.navigateByUrl('/signin');\n }),\n );\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, OnInit,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { FsApi } from '@firestitch/api';\n\nimport { from } from 'rxjs';\n\nimport { VerificationSetupService } from '../../services';\n\n\n@Component({\n templateUrl: './email.component.html',\n styleUrls: ['./email.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmailComponent implements OnInit {\n\n public email = null;\n\n private _api = inject(FsApi);\n private _router = inject(Router);\n private _route = inject(ActivatedRoute);\n private _cdRef = inject(ChangeDetectorRef);\n private _verificationSetupService = inject(VerificationSetupService);\n\n public ngOnInit(): void {\n this._api.get('account', {}, { key: 'account' })\n .subscribe(({ email }) => {\n this.email = email;\n this._cdRef.markForCheck();\n });\n }\n\n public next = () => {\n const redirect = this._route.snapshot.queryParams.redirect || '/';\n\n return from(this._router\n .navigate(['verify'], {\n relativeTo: this._route, \n queryParams: { redirect }, \n }));\n };\n\n public cancel() {\n this._verificationSetupService\n .signout()\n .subscribe();\n }\n\n}\n","<form\r\n fsForm\r\n [submit]=\"next\"\r\n [dirtySubmitButton]=\"false\"\r\n *fsSkeleton=\"email\">\r\n <mat-card>\r\n <mat-card-header>\r\n <mat-card-title>\r\n Enable 2-Step Verification\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <p>\r\n Please enable two factor authentication to protect your account.\r\n The app will use this email for verifying your account\r\n </p>\r\n <fs-label-field>\r\n <fs-label>\r\n Email\r\n </fs-label>\r\n {{ email }}\r\n </fs-label-field>\r\n <div class=\"buttons\">\r\n <button\r\n mat-flat-button\r\n type=\"submit\"\r\n color=\"primary\">\r\n Next\r\n </button>\r\n <button\r\n mat-button\r\n (click)=\"cancel()\"\r\n type=\"button\">\r\n Cancel\r\n </button>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n</form>","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n\nimport { FsCookie } from '@firestitch/cookie';\nimport { FsMessage } from '@firestitch/message';\n\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { IFsVerificationMethod } from '../../../../interfaces';\nimport { Fs2faVerificationComponent } from '../../../verification/components/2fa-verification';\nimport { VerificationMethodData } from '../../data';\nimport { VerificationSetupService } from '../../services';\n\n\n@Component({\n templateUrl: './verify.component.html',\n styleUrls: ['./verify.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VerifyComponent implements OnInit {\n\n @ViewChild(Fs2faVerificationComponent)\n public verification: Fs2faVerificationComponent;\n\n public code = null;\n public verificationMethod: IFsVerificationMethod;\n\n private _cookie = inject(FsCookie);\n private _router = inject(Router);\n private _route = inject(ActivatedRoute);\n private _message = inject(FsMessage);\n private _verificationMethodData = inject(VerificationMethodData);\n private _cdRef = inject(ChangeDetectorRef);\n private _verificationSetupService = inject(VerificationSetupService);\n\n public ngOnInit(): void {\n this._verificationMethodData.account()\n .pipe(\n tap((verificationMethod) => {\n this.verificationMethod = verificationMethod;\n this._cdRef.markForCheck();\n }),\n )\n .subscribe();\n }\n\n public codeChanged(code): void {\n this.code = code;\n }\n\n public verify = (): Observable<any> => {\n return this._verificationMethodData\n .verify(this.code, this.verification.trustDevice)\n .pipe(\n tap(() => {\n const redirect = this._route.snapshot.queryParams.redirect || '/';\n this._message.success('Two factor verification successfully setup');\n this._router.navigateByUrl(redirect);\n this._cookie.delete('Token-Force2fa');\n }),\n );\n };\n\n public resend = (): Observable<void> => {\n return this._verificationMethodData.resend();\n };\n\n public cancel() {\n this._verificationSetupService\n .signout()\n .subscribe();\n }\n\n}\n","<form\n fsForm\n [submit]=\"verify\"\n [dirtySubmitButton]=\"false\"\n *fsSkeleton=\"verificationMethod\">\n <mat-card>\n <mat-card-header>\n <mat-card-title>\n Enable 2-Step Verification\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <fs-2fa-verification\n #verification\n [verificationMethod]=\"verificationMethod\"\n [showTrustedDevice]=\"true\"\n (codeChanged)=\"codeChanged($event)\"\n [resend]=\"resend\">\n </fs-2fa-verification>\n <div class=\"buttons\">\n <button\n mat-flat-button\n type=\"submit\"\n color=\"primary\">\n Verify\n </button>\n <button\n mat-button\n [fs2faVerificationResend]=\"verification\"\n type=\"button\">\n Resend\n </button>\n <button\n mat-button\n (click)=\"cancel()\"\n type=\"button\">\n Cancel\n </button>\n </div>\n </mat-card-content>\n </mat-card>\n</form>","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { EmailComponent, VerifyComponent } from './views';\n\n\nconst routes: Routes = [\n { path: '', component: EmailComponent, pathMatch: 'full' },\n { path: 'verify', component: VerifyComponent },\n];\n\n@NgModule({\n imports: [\n RouterModule.forChild(routes),\n ],\n exports: [\n RouterModule,\n ],\n})\nexport class VerificationSetupRoutingModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { FsFormModule } from '@firestitch/form';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\n\nimport { Fs2faVerificationModule } from '../verification';\nimport { Fs2faVerificationMethodsModule } from '../verification-methods';\n\nimport { VerificationMethodData } from './data';\nimport { VerificationSetupService } from './services';\nimport { VerificationSetupRoutingModule } from './verification-setup-routing.module';\nimport { EmailComponent, VerifyComponent } from './views';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatButtonModule,\n MatCardModule,\n MatInputModule,\n MatFormFieldModule,\n\n FsFormModule,\n FsSkeletonModule,\n FsLabelModule,\n Fs2faVerificationMethodsModule,\n Fs2faVerificationModule,\n\n VerificationSetupRoutingModule,\n ],\n declarations: [\n EmailComponent,\n VerifyComponent,\n ],\n providers: [\n VerificationMethodData,\n VerificationSetupService,\n ],\n})\nexport class FsVerificationSetupModule { }\n","import { inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\n\nimport { FsCookie } from '@firestitch/cookie';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ForceVerificationSetupGuard {\n\n private _cookie = inject(FsCookie);\n private _router = inject(Router);\n\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree {\n if (this._cookie.get('Token-Force2fa')) {\n const redirect = window.location.pathname + window.location.search;\n\n return this._router\n .createUrlTree(['/verification'], { queryParams: { redirect } });\n }\n\n return true;\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i6","i7","i8","i9","i10","i11.CodeInputComponent","i3.CodeInputComponent","i3","i4","i5","i11.Fs2faVerificationComponent","EmailComponent","i11","i12.Fs2faVerificationComponent","i6.DefaultedComponent","i6.VerificationMethodsComponent","i9.DefaultedComponent","i2.TwoFactorManageService","i6.Fs2faVerificationComponent","i7.Fs2faVerificationResendDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"firestitch-2fa.mjs","sources":["../../src/app/enums/verification-method-type.enum.ts","../../src/app/modules/code-input/components/code-input/code-input.component.ts","../../src/app/modules/code-input/components/code-input/code-input.component.html","../../src/app/modules/manage/components/app/app.component.ts","../../src/app/modules/manage/components/app/app.component.html","../../src/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.ts","../../src/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.html","../../src/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.ts","../../src/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.html","../../src/app/modules/verification/components/2fa-verification/2fa-verification.component.ts","../../src/app/modules/verification/components/2fa-verification/2fa-verification.component.html","../../src/app/modules/manage/components/email/email.component.ts","../../src/app/modules/manage/components/email/email.component.html","../../src/app/modules/manage/components/number/number.component.ts","../../src/app/modules/manage/components/number/number.component.html","../../src/app/modules/manage/services/two-factor-manage.service.ts","../../src/app/modules/defaulted/components/defaulted/defaulted.component.ts","../../src/app/modules/defaulted/components/defaulted/defaulted.component.html","../../src/app/modules/verification-methods/components/verification-methods/verification-methods.component.ts","../../src/app/modules/verification-methods/components/verification-methods/verification-methods.component.html","../../src/app/modules/manage/components/emails/emails.component.ts","../../src/app/modules/manage/components/emails/emails.component.html","../../src/app/modules/manage/components/numbers/numbers.component.ts","../../src/app/modules/manage/components/numbers/numbers.component.html","../../src/app/modules/manage/components/manage-methods/manage-methods.component.ts","../../src/app/modules/manage/components/manage-methods/manage-methods.component.html","../../src/app/modules/manage/components/2fa-manage/2fa-manage.component.ts","../../src/app/modules/manage/components/2fa-manage/2fa-manage.component.html","../../src/app/modules/code-input/code-input.module.ts","../../src/app/modules/defaulted/defaulted.module.ts","../../src/app/modules/resend/components/resend/resend.component.ts","../../src/app/modules/resend/components/resend/resend.component.html","../../src/app/modules/resend/resend.module.ts","../../src/app/modules/verification-methods/fs-2f-verification-methods.module.ts","../../src/app/modules/verification/directives/2fa-verification-resend.directive.ts","../../src/app/modules/verification/fs-2fa-verification.module.ts","../../src/app/modules/manage/fs-2f-manage.module.ts","../../src/app/modules/verification-setup/data/verification-method.data.ts","../../src/app/modules/verification-setup/services/verification-setup.service.ts","../../src/app/modules/verification-setup/views/email/email.component.ts","../../src/app/modules/verification-setup/views/email/email.component.html","../../src/app/modules/verification-setup/views/verify/verify.component.ts","../../src/app/modules/verification-setup/views/verify/verify.component.html","../../src/app/modules/verification-setup/verification-setup-routing.module.ts","../../src/app/modules/verification-setup/verification-setup.module.ts","../../src/app/modules/verification-setup/guards/force-verification-setup.guard.ts","../../src/firestitch-2fa.ts"],"sourcesContent":["export enum VerificationMethodType {\n Sms = 'sms',\n Email = 'email',\n App = 'app',\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\n\nimport { FsCodeInputComponent } from '@firestitch/code-input';\n\n\n@Component({\n selector: 'app-code-input',\n templateUrl: './code-input.component.html',\n styleUrls: ['./code-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CodeInputComponent implements OnInit {\n\n @ViewChild(FsCodeInputComponent)\n public codeInput: FsCodeInputComponent;\n\n @Input() public codeLength: number;\n @Input() public code;\n\n @Output() public codeCompleted = new EventEmitter();\n @Output() public codeChanged = new EventEmitter();\n\n public ngOnInit(): void {\n if(!this.codeLength) {\n this.codeLength = 6;\n }\n } \n\n public codeComplete(code): void {\n this.codeCompleted.emit(code);\n }\n\n public focus(): void {\n this.codeInput.focusOnField(0);\n }\n}\n","<fs-code-input\n [codeLength]=\"codeLength\"\n [ngModel]=\"code\"\n name=\"code\"\n [isPrevFocusableAfterClearing]=\"false\"\n (completedLast)=\"codeComplete($event)\"\n (ngModelChange)=\"codeChanged.emit($event)\">\n</fs-code-input>\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, Inject,\n OnInit, ViewChild,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { FsFormDirective } from '@firestitch/form';\nimport { FsMessage } from '@firestitch/message';\n\nimport { of } from 'rxjs';\nimport { switchMap, tap } from 'rxjs/operators';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { TwoFactorManageService } from '../../services';\n\n\n@Component({\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AppComponent implements OnInit {\n\n @ViewChild(FsFormDirective)\n public form: FsFormDirective;\n\n public twoFactorManageService: TwoFactorManageService;\n public mode: 'qr-code' | 'code-input' = 'qr-code';\n public accountId;\n public verificationMethod;\n public qrCodeUrl;\n public code;\n public default; \n public appType: 'google' | 'authy';\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: any,\n private _dialogRef: MatDialogRef<AppComponent>,\n private _cdRef: ChangeDetectorRef,\n private _message: FsMessage,\n ) {}\n\n public ngOnInit(): void {\n this.twoFactorManageService = this._data.twoFactorManageService;\n this.accountId = this._data.accountId;\n this.default = !this.twoFactorManageService.hasVerificationMethods;\n }\n\n public appTypeGoogle(): void {\n this.appTypeSelect('google');\n }\n\n public appTypeAuthy(): void {\n this.appTypeSelect('authy');\n }\n\n public appTypeSelect(appType): void {\n this.appType = appType;\n this.twoFactorManageService.verificationMethodCreate$({\n type: VerificationMethodType.App,\n })\n .subscribe((verificationMethod) => {\n this.verificationMethod = verificationMethod;\n this.qrCodeUrl = verificationMethod.qrCodeUrl;\n this._cdRef.markForCheck();\n });\n }\n\n public codeCompleted(): void {\n this.form.triggerSubmit();\n }\n\n public codeChanged(code): void {\n this.code = code;\n this.form.dirty();\n }\n\n public next(): void {\n this.mode = 'code-input';\n }\n\n public verify = () => {\n return this.twoFactorManageService.verificationMethodVerify$(this.code, true)\n .pipe(\n switchMap(() => {\n return this.default && this.twoFactorManageService.verificationMethodDefault$ ?\n this.twoFactorManageService.verificationMethodDefault$(this.verificationMethod) :\n of(true);\n }),\n tap(() => {\n this._message.success('Created app authenticator verification method');\n this._dialogRef.close(true);\n }),\n );\n };\n\n}\n","<form fsForm [submit]=\"verify\">\n <fs-dialog>\n <h1 mat-dialog-title>Authenticator App Setup</h1>\n <mat-dialog-content>\n\n <div *ngIf=\"mode === 'qr-code'\" class=\"qr-code\">\n <ng-container *ngIf=\"appType\">\n <ol>\n <li>\n <ng-container *ngIf=\"appType === 'authy'\">\n Install the Authy Authenticator App from the <a href=\"https://apps.apple.com/us/app/authy/id494168017\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.authy.authy\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n\n <ng-container *ngIf=\"appType === 'google'\">\n Install the Google Authenticator App from the <a href=\"https://apps.apple.com/us/app/google-authenticator/id388497605\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en_US&gl=US\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n </li>\n <ng-container *ngIf=\"appType === 'authy'\">\n <li>\n Open the Authy app and select <b>Add Account</b>.\n </li>\n <li>\n Select <b>Scan QR Code</b> and scan the QR code below.\n </li>\n </ng-container> \n <ng-container *ngIf=\"appType === 'google'\">\n <li>\n Open the Google Authentictor app and click the <b>Plus icon</b> in the lower right corner.\n </li>\n <li>\n Select <b>Scan a QR code</b> and scan the QR code below.\n </li>\n </ng-container>\n </ol>\n\n <ng-container *fsSkeleton=\"qrCodeUrl\">\n <fs-qrcode\n [value]=\"qrCodeUrl\"\n [width]=\"300\"\n [height]=\"300\">\n </fs-qrcode>\n </ng-container>\n </ng-container>\n\n <div class=\"app-types\" *ngIf=\"!appType\">\n <p>Select the Authenticator App you prefer</p>\n\n <div class=\"row\">\n <span>\n <a (click)=\"appTypeAuthy()\">\n <svg width=\"50\" height=\"50\" viewBox=\"0 0 256 256\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMidYMid\"><path d=\"M256 127.998C256 198.696 198.694 256 127.997 256 57.304 256 0 198.696 0 127.998 0 57.305 57.304 0 127.997 0 198.694 0 256 57.305 256 127.998z\" fill=\"#EC1C24\"/><path d=\"M117.024 100.89l30.691 30.68c4.43 4.436 11.623 4.436 16.064 0 4.431-4.435 4.441-11.622 0-16.058L133.086 84.82C111.125 62.854 75.631 62.5 53.204 83.704a9.536 9.536 0 0 0-.605.548c-.098.098-.178.202-.275.29-.1.096-.202.182-.297.278-.194.193-.371.396-.54.597-21.215 22.437-20.85 57.932 1.113 79.897L83.292 196c4.44 4.433 11.623 4.433 16.062 0 4.442-4.437 4.442-11.633.011-16.06l-30.693-30.691c-13.398-13.393-13.488-35.129-.278-48.637 13.506-13.21 35.23-13.114 48.63.279zm39.612-40.873c-4.435 4.437-4.435 11.623.012 16.059l30.681 30.693c13.39 13.392 13.477 35.125.268 48.636-13.51 13.2-35.227 13.112-48.623-.282l-30.692-30.689c-4.438-4.437-11.633-4.437-16.066 0-4.443 4.433-4.443 11.642 0 16.065l30.682 30.694c21.968 21.965 57.458 22.322 79.889 1.116.208-.184.404-.355.61-.549.094-.095.182-.192.273-.29.1-.095.197-.183.29-.289.197-.183.365-.384.54-.594 21.215-22.428 20.86-57.911-1.102-79.889l-30.692-30.682c-4.436-4.443-11.638-4.443-16.07.001z\" fill=\"#FFF\"/></svg>\n </a>\n Authy\n </span>\n \n <span>\n <a (click)=\"appTypeGoogle()\"> \n <svg width=\"50\" height=\"50\" viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m457.07 45.92c73.67-8.62 149.41.22 218.93 26.24 62.75 23.47 120.59 60.41 167.72 108.09-40.31 39.97-80.25 80.31-120.51 120.33-25.95-25.45-56.19-46.65-89.47-61.37-44.22-19.82-93.39-28.54-141.72-25.2-54.6 3.52-108.11 22.49-152.63 54.3-55.24 38.95-96.61 97.22-114.8 162.35-13.64 47.78-14.77 98.97-3.76 147.4 8.85 39.61 26.09 77.29 50.05 110.03 22.24 30.45 50.3 56.64 82.22 76.71 36.79 23.24 78.76 38.22 121.96 43.48 37.02 4.65 74.9 2.23 111.05-7 3.97-1.91 6.24 2.61 8.73 4.86 40.74 40.95 81.68 81.7 122.43 122.63-73.31 35.6-155.99 51.86-237.3 46.12-68.05-4.51-135.07-24.08-194.71-57.18-24.87-13.6-48.23-29.82-70.33-47.54-17.46-14.81-34.71-30.01-49.72-47.35-25.41-27.39-47.21-58.11-65.17-90.87-4-7.72-8.64-15.12-11.9-23.2-4.47-9.05-8.37-18.36-12.25-27.67-4.96-13.27-10.26-26.44-13.88-40.15-.43-1.81-1.53-3.33-2.52-4.85-8.3-28.66-12.95-58.33-15.44-88.04-2.62-37.36-1.33-75.05 4.78-112.03 12.18-75.48 43.41-147.74 89.86-208.44 30.12-39.5 66.53-74.21 107.46-102.35 62.44-43.11 135.53-70.69 210.92-79.3m49.18 50.48c-5.7.99-10.96 3.76-15.38 7.43-10.4 8.93-14.14 24.81-8.17 37.28 6.33 15.02 25.16 23.1 40.36 17 15.43-5.24 24.78-23.51 19.74-39.06-4.1-15.43-20.92-25.79-36.55-22.65m-267.96 111.99c-5.33.28-10.59 1.92-15.16 4.68-11.47 7.03-17.88 21.74-14.36 34.86 3.09 14.08 16.78 25.06 31.26 24.61 15.03.41 29.08-11.39 31.54-26.17 2.24-10.33-1.61-21.55-9.14-28.85-6.24-6.33-15.3-9.62-24.14-9.13m-115.96 272c-6.62 1.23-12.84 4.58-17.54 9.4-9.45 9.72-11.72 25.57-5.02 37.42 7.16 13.96 25.48 20.86 39.98 14.62 15.02-5.51 23.99-23.42 19.06-38.71-4.04-15.41-20.86-25.96-36.48-22.73m111.98 272.05c-11.49 1.95-21.48 10.72-24.84 21.88-3.87 11.63-.13 25.16 8.9 33.36 6.15 5.48 14.4 8.7 22.67 8.32 11.16-.25 21.98-6.87 27.12-16.8 4.93-8.83 5.15-20.02.71-29.1-5.82-12.78-20.81-20.33-34.56-17.66m272.06 112.03c-11.76 2.02-21.92 11.07-25.09 22.6-3.87 12.57 1.13 27.25 11.91 34.79 7.86 5.79 18.42 7.67 27.77 4.86 9.61-2.77 17.7-10.24 21.07-19.68 4.97-12.74.36-28.32-10.58-36.46-7.02-5.45-16.35-7.67-25.08-6.11z\" fill=\"#a0a0a0\"/>\n <g fill=\"#c1c1c1\">\n <path d=\"m506.25 96.4c15.63-3.14 32.45 7.22 36.55 22.65 5.04 15.55-4.31 33.82-19.74 39.06-15.2 6.1-34.03-1.98-40.36-17-5.97-12.47-2.23-28.35 8.17-37.28 4.42-3.67 9.68-6.44 15.38-7.43z\"/>\n <path d=\"m122.33 480.39c15.62-3.23 32.44 7.32 36.48 22.73 4.93 15.29-4.04 33.2-19.06 38.71-14.5 6.24-32.82-.66-39.98-14.62-6.7-11.85-4.43-27.7 5.02-37.42 4.7-4.82 10.92-8.17 17.54-9.4z\"/>\n </g>\n <path d=\"m843.72 180.25.11-.11c24.64 25.12 46.96 52.6 65.61 82.47 36.01 57.16 59.38 122.22 67.87 189.25 5.67 44.88 5.27 90.6-2.05 135.27-12.7 80.01-46.94 156.41-97.9 219.36-42.3 52.48-95.87 96.04-156.41 125.76l-.63-.26c-1.01-1.1-2.03-2.16-3.05-3.22-40.75-40.93-81.69-81.68-122.43-122.63-2.49-2.25-4.76-6.77-8.73-4.86-36.15 9.23-74.03 11.65-111.05 7-43.2-5.26-85.17-20.24-121.96-43.48-31.92-20.07-59.98-46.26-82.22-76.71-23.96-32.74-41.2-70.42-50.05-110.03-11.01-48.43-9.88-99.62 3.76-147.4 18.19-65.13 59.56-123.4 114.8-162.35 44.52-31.81 98.03-50.78 152.63-54.3 48.33-3.34 97.5 5.38 141.72 25.2 33.28 14.72 63.52 35.92 89.47 61.37 40.26-40.02 80.2-80.36 120.51-120.33m-351.75 183.97c-21.23 2.85-41.89 10.28-59.88 21.94-23.08 14.45-41.76 35.58-53.9 59.91-14.58 29.2-18.64 63.21-12.5 95.17 3.93 19.85 12.03 38.88 23.56 55.51 7.93 11.52 17.65 21.66 27.65 31.38 57.33 57.41 114.61 114.86 171.99 172.21 49.09-13.07 94.67-38.94 131.05-74.4 45.11-43.34 75.66-101.44 86.31-163.06.24-1.04.22-2.91 1.85-2.6 29.63.04 59.26-.01 88.9.05 19.04-.3 36.87-14.77 40.76-33.46.22-1.21 0-2.32-.67-3.35 1.22-5.71 2.08-11.58 1.38-17.43l-.24.4c-2.05-20.34-20.84-37.12-41.25-37.17-80.64-.07-161.28-.01-241.93-.07-6.44-22.08-18.5-42.33-34.03-59.23-25.8-27.5-62.26-45.01-100.02-46.82-9.68.02-19.44-.54-29.03 1.02m286.37 388.31c-12.64 2.06-23.37 12.59-25.7 25.18-1.48 8.14-.14 17.02 4.73 23.85 5.76 9.2 16.8 14.76 27.61 14.25 8.32.03 16.28-3.95 22.16-9.66 4.87-5.6 8.45-12.67 8.67-20.2.86-11.37-5.06-23.1-14.87-28.96-6.52-4.46-14.89-5.75-22.6-4.46z\" fill=\"#686868\"/>\n <path d=\"m238.29 208.39c8.84-.49 17.9 2.8 24.14 9.13 7.53 7.3 11.38 18.52 9.14 28.85-2.46 14.78-16.51 26.58-31.54 26.17-14.48.45-28.17-10.53-31.26-24.61-3.52-13.12 2.89-27.83 14.36-34.86 4.57-2.76 9.83-4.4 15.16-4.68z\" fill=\"#c3c3c3\"/>\n <path d=\"m491.97 364.22c9.59-1.56 19.35-1 29.03-1.02 37.76 1.81 74.22 19.32 100.02 46.82 15.53 16.9 27.59 37.15 34.03 59.23-47.67-.01-95.35-.01-143.03-.01-12.19-.11-24.23 5.42-32.21 14.61-6.01 6.85-9.74 15.65-10.44 24.74-1.19 14.17 5.36 28.7 16.69 37.28 7.62 5.91 17.28 9 26.92 8.8 126.69-.04 253.39-.06 380.08.03 4.76.04 9.59-.15 14.2-1.48 14.21-3.82 26.02-15.47 29.83-29.7.67 1.03.89 2.14.67 3.35-3.89 18.69-21.72 33.16-40.76 33.46-29.64-.06-59.27-.01-88.9-.05-1.63-.31-1.61 1.56-1.85 2.6-10.65 61.62-41.2 119.72-86.31 163.06-36.38 35.46-81.96 61.33-131.05 74.4-57.38-57.35-114.66-114.8-171.99-172.21-10-9.72-19.72-19.86-27.65-31.38-11.53-16.63-19.63-35.66-23.56-55.51-6.14-31.96-2.08-65.97 12.5-95.17 12.14-24.33 30.82-45.46 53.9-59.91 17.99-11.66 38.65-19.09 59.88-21.94z\" fill=\"#474747\"/>\n <g fill=\"#bfbfbf\">\n <path d=\"m479.81 483.85c7.98-9.19 20.02-14.72 32.21-14.61 47.68 0 95.36 0 143.03.01 80.65.06 161.29 0 241.93.07 20.41.05 39.2 16.83 41.25 37.17-.19.33-.58.97-.78 1.29-3.68-18.51-21.57-33.16-40.47-33.05-124.97.1-249.94.12-374.91.17-7.73.13-15.74-.8-23.15 1.96-9.06 2.84-16.73 9.1-22.27 16.7-3.34 4.55-4.39 10.24-7.28 15.03.7-9.09 4.43-17.89 10.44-24.74z\"/>\n <path d=\"m234.31 752.44c13.75-2.67 28.74 4.88 34.56 17.66 4.44 9.08 4.22 20.27-.71 29.1-5.14 9.93-15.96 16.55-27.12 16.8-8.27.38-16.52-2.84-22.67-8.32-9.03-8.2-12.77-21.73-8.9-33.36 3.36-11.16 13.35-19.93 24.84-21.88z\"/>\n </g>\n <path d=\"m498.92 476.86c7.41-2.76 15.42-1.83 23.15-1.96 124.97-.05 249.94-.07 374.91-.17 18.9-.11 36.79 14.54 40.47 33.05.2-.32.59-.96.78-1.29l.24-.4c.7 5.85-.16 11.72-1.38 17.43-3.81 14.23-15.62 25.88-29.83 29.7-4.61 1.33-9.44 1.52-14.2 1.48-126.69-.09-253.39-.07-380.08-.03-9.64.2-19.3-2.89-26.92-8.8-11.33-8.58-17.88-23.11-16.69-37.28 2.89-4.79 3.94-10.48 7.28-15.03 5.54-7.6 13.21-13.86 22.27-16.7z\" fill=\"#b0b0b0\"/>\n <path d=\"m59.49 636.08c.99 1.52 2.09 3.04 2.52 4.85 3.62 13.71 8.92 26.88 13.88 40.15 3.88 9.31 7.78 18.62 12.25 27.67 3.26 8.08 7.9 15.48 11.9 23.2 17.96 32.76 39.76 63.48 65.17 90.87 15.01 17.34 32.26 32.54 49.72 47.35 22.1 17.72 45.46 33.94 70.33 47.54 59.64 33.1 126.66 52.67 194.71 57.18 81.31 5.74 163.99-10.52 237.3-46.12 1.02 1.06 2.04 2.12 3.05 3.22l.03.61c-42.32 21.03-87.88 35.53-134.56 42.91-56.91 8.9-115.46 7.49-171.82-4.5-67.89-14.35-132.42-44.21-187.42-86.51-63.52-48.63-114.32-113.73-145.86-187.27-8.42-19.87-15.93-40.22-21.2-61.15z\" fill=\"#939393\"/>\n <path d=\"m778.34 752.53c7.71-1.29 16.08 0 22.6 4.46 9.81 5.86 15.73 17.59 14.87 28.96-.22 7.53-3.8 14.6-8.67 20.2-5.88 5.71-13.84 9.69-22.16 9.66-10.81.51-21.85-5.05-27.61-14.25-4.87-6.83-6.21-15.71-4.73-23.85 2.33-12.59 13.06-23.12 25.7-25.18z\" fill=\"#767676\"/>\n <path d=\"m506.37 864.47c8.73-1.56 18.06.66 25.08 6.11 10.94 8.14 15.55 23.72 10.58 36.46-3.37 9.44-11.46 16.91-21.07 19.68-9.35 2.81-19.91.93-27.77-4.86-10.78-7.54-15.78-22.22-11.91-34.79 3.17-11.53 13.33-20.58 25.09-22.6z\" fill=\"#bebebe\"/>\n </svg>\n </a>\n Google Authenticator\n </span>\n </div>\n </div>\n \n </div>\n\n <div *ngIf=\"mode === 'code-input'\" class=\"code-input\">\n <div>\n Enter the 6-digit code you see in the App.\n </div>\n\n <app-code-input\n (codeChanged)=\"codeChanged($event)\">\n </app-code-input>\n \n <div class=\"checkboxes\">\n <mat-checkbox name=\"default\" [(ngModel)]=\"default\" [disableRipple]=\"true\">\n Make this the default verification method\n </mat-checkbox>\n </div>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <ng-container *ngIf=\"appType\">\n <button\n *ngIf=\"mode === 'qr-code'\"\n type=\"button\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Next\n </button>\n <button\n *ngIf=\"mode === 'code-input'\"\n type=\"submit\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Verify\n </button> \n </ng-container>\n <button\n type=\"button\"\n mat-button\n [mat-dialog-close]=\"null\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\nimport { FsFormDirective } from '@firestitch/form';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { CodeInputComponent } from '../../../../modules/code-input/components/code-input';\n\n\n@Component({\n selector: 'fs-2fa-verification-code',\n templateUrl: './2fa-verification-code.component.html',\n styleUrls: ['./2fa-verification-code.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [\n {\n provide: ControlContainer,\n useExisting: NgForm,\n },\n ],\n})\nexport class Fs2faVerificationCodeComponent {\n\n @ViewChild(CodeInputComponent)\n public codeInputComponent: CodeInputComponent;\n\n @Input()\n public type: VerificationMethodType;\n\n @Input()\n public recipient: string;\n\n @Input()\n public codeLength;\n\n @Input()\n public code;\n\n @Output()\n public codeChange = new EventEmitter<string>();\n\n @Output()\n public codeComplete = new EventEmitter<void>();\n\n public VerificationMethodType = VerificationMethodType;\n\n constructor(\n private _form: FsFormDirective,\n ) {}\n\n public codeCompleted(code): void {\n this.codeComplete.emit(code);\n }\n\n public codeChanged(code): void {\n this.code = code;\n this.codeChange.emit(this.code);\n this._form.dirty();\n }\n\n public focus(): void {\n this.codeInputComponent.focus();\n }\n\n}\n","<ng-container *ngIf=\"type === VerificationMethodType.Sms\">\n <p class=\"description\">\n A text message with a verification code was just sent to\n <span style=\"white-space: nowrap;\">\n {{ recipient }}\n </span>\n to verify it's you.\n </p>\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n</ng-container>\n<ng-container *ngIf=\"type === VerificationMethodType.Email\">\n <p class=\"description\">\n An email with a verification code was just sent to {{ recipient }} to verify it's you.\n </p>\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n</ng-container>\n<ng-container *ngIf=\"type === VerificationMethodType.App\">\n <p class=\"description\">\n Enter the verification code generated by your 2 factor authenticator app to verify it's you.\n </p>\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n</ng-container>\n<ng-template #input>\n <app-code-input\n [code]=\"code\"\n [codeLength]=\"codeLength\"\n (codeChanged)=\"codeChanged($event)\"\n (codeCompleted)=\"codeCompleted($event)\">\n </app-code-input>\n</ng-template>","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { IFsVerificationMethod } from '../../../../interfaces/verification-method.interface';\n\n\n@Component({\n templateUrl: './2fa-verification-methods.component.html',\n styleUrls: ['./2fa-verification-methods.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Fs2faVerificationMethodsComponent {\n\n public verificationMethod: IFsVerificationMethod;\n public phone: string;\n public code: string;\n public verificationMethods: Record<string, IFsVerificationMethod[]>;\n public readonly verificationMethodType = VerificationMethodType;\n\n private _selectVerificationMethod: (IFsVerificationMethod) => Observable<IFsVerificationMethod>; \n\n constructor(\n @Inject(MAT_DIALOG_DATA)\n private _dialogData: any,\n private _dialogRef: MatDialogRef<Fs2faVerificationMethodsComponent>,\n ) {\n this._selectVerificationMethod = _dialogData.selectVerificationMethod;\n this._setActiveMethod();\n this._initMethods(_dialogData.verificationMethods);\n }\n\n public compareWith(o1, o2) {\n return o1 && o2 && o1.id === o2.id\n }\n\n public setVerificationMethod = () => {\n return this._selectVerificationMethod(this.verificationMethod)\n .pipe(\n tap((method: IFsVerificationMethod) => {\n this._dialogRef.close(method);\n })\n );\n };\n\n private _setActiveMethod(): void {\n this.verificationMethod = this._dialogData?.verificationMethod;\n }\n\n private _initMethods(verificationMethods): void {\n this.verificationMethods = verificationMethods\n .reduce((acc, method) => {\n if (!acc[method.type]) {\n acc[method.type] = [];\n }\n\n acc[method.type].push(method);\n\n return acc;\n }, {});\n }\n}\n","<fs-dialog>\n <h1 mat-dialog-title>\n Verification Methods\n </h1>\n <form fsForm [submit]=\"setVerificationMethod\" [dirtySubmitButton]=\"false\">\n <mat-dialog-content>\n <ng-container>\n <fs-radio-group [(ngModel)]=\"verificationMethod\" name=\"method\" [compareWith]=\"compareWith\">\n <ng-container *ngFor=\"let methodMap of verificationMethods | keyvalue\">\n <div class=\"method\">\n <ng-container [ngSwitch]=\"methodMap.key\">\n <ng-container *ngSwitchCase=\"verificationMethodType.Sms\">\n <div class=\"method-header\">\n <div class=\"method-icon\">\n <mat-icon>\n textsms\n </mat-icon>\n </div>\n <div class=\"method-name\">\n <div class=\"method-title\">Text Message</div>\n <div class=\"method-subtitle\">\n Send verification code to a mobile number\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"verificationMethodType.Email\">\n <div class=\"method-header\">\n <div class=\"method-icon\">\n <mat-icon>\n mail\n </mat-icon>\n </div>\n <div class=\"method-name\">\n <div class=\"method-title\">Email</div>\n <div class=\"method-subtitle\">\n Send verification code to an email address\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"verificationMethodType.App\">\n <div class=\"method-header\">\n <div class=\"method-icon\">\n <mat-icon>\n phone_iphone\n </mat-icon>\n </div>\n <div class=\"method-name\">\n <div class=\"method-title\">Authenticator App</div>\n <div class=\"method-subtitle\">\n Send verification code to your authenticator app\n </div>\n </div>\n </div>\n </ng-container> \n </ng-container>\n\n <mat-radio-button class=\"method-item\" *ngFor=\"let method of methodMap.value\" [value]=\"method\">\n <ng-container [ngSwitch]=\"methodMap.key\">\n <ng-container *ngSwitchCase=\"verificationMethodType.Sms\">\n {{ method.phoneNumber }}\n </ng-container>\n <ng-container *ngSwitchCase=\"verificationMethodType.Email\">\n {{ method.email }}\n </ng-container>\n <ng-container *ngSwitchCase=\"verificationMethodType.App\">\n Authenticator App\n </ng-container> \n </ng-container>\n </mat-radio-button>\n </div>\n </ng-container>\n </fs-radio-group>\n </ng-container>\n </mat-dialog-content>\n <mat-dialog-actions>\n <div class=\"actions\">\n <button mat-button type=\"submit\" color=\"primary\">Next</button>\n <button mat-button type=\"button\" [mat-dialog-close]=\"null\">Cancel</button>\n </div>\n </mat-dialog-actions>\n </form>\n</fs-dialog>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\n\nimport { FsDialog } from '@firestitch/dialog';\nimport { FsMessage } from '@firestitch/message';\n\nimport { Observable, Subject } from 'rxjs';\nimport { filter, finalize, switchMap, tap } from 'rxjs/operators';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { IFsVerificationMethod } from '../../../../interfaces/verification-method.interface';\nimport { Fs2faVerificationCodeComponent } from '../2fa-verification-code/2fa-verification-code.component';\nimport { Fs2faVerificationMethodsComponent } from '../2fa-verification-methods/2fa-verification-methods.component';\n\n\n@Component({\n selector: 'fs-2fa-verification',\n templateUrl: './2fa-verification.component.html',\n styleUrls: ['./2fa-verification.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush, \n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\n})\nexport class Fs2faVerificationComponent implements OnDestroy, AfterViewInit {\n\n @ViewChild(Fs2faVerificationCodeComponent)\n public verificationCodeComponent: Fs2faVerificationCodeComponent;\n\n @Input()\n public verificationMethod: IFsVerificationMethod;\n\n @Input()\n public resend: () => Observable<void>;\n\n @Input()\n public showTrustedDevice = true;\n\n @Input()\n public trustDevice = true;\n\n @Input()\n public codeLength;\n\n @Input()\n public trustDays;\n\n @Input()\n public code;\n\n @Input()\n public formatRecipient = false;\n\n @Input()\n public getVerificationMethods: () => Observable<IFsVerificationMethod[]>;\n\n @Input()\n public selectVerificationMethod: (verificationMethod: IFsVerificationMethod) => Observable<IFsVerificationMethod>;\n\n @Output()\n public verified = new EventEmitter<unknown>();\n\n @Output()\n public codeChange = new EventEmitter<unknown>();\n\n @Output()\n public codeCompleted = new EventEmitter<unknown>();\n\n @Output()\n public trustDeviceChange = new EventEmitter<boolean>();\n\n public VerificationMethodType = VerificationMethodType;\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _dialog: FsDialog,\n private _message: FsMessage,\n ) {}\n\n public get recipient(): string {\n if(this.verificationMethod.type === VerificationMethodType.Email) {\n return this.verificationMethod.email;\n }\n\n if(this.verificationMethod.type === VerificationMethodType.Sms) {\n return this.verificationMethod.phoneNumber;\n }\n }\n\n public codeChanged(code): void {\n this.code = code;\n this.codeChange.emit(this.code);\n }\n\n public codeComplete(code): void {\n this.code = code;\n this.codeCompleted.emit(this.code);\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n public ngAfterViewInit(): void {\n this.verificationCodeComponent.focus(); \n }\n\n public resendCode(): Observable<any> {\n return this.resend()\n .pipe(\n tap(() => {\n this.code = '';\n this._message.success('Resent Code');\n }),\n finalize(() => {\n this.verificationCodeComponent.focus(); \n }),\n );\n }\n\n public showVerificationMethods(): void {\n this.getVerificationMethods()\n .pipe(\n switchMap((verificationMethods) => {\n return this._dialog.open(\n Fs2faVerificationMethodsComponent,\n {\n data: {\n verificationMethod: this.verificationMethod,\n verificationMethods,\n selectVerificationMethod: this.selectVerificationMethod,\n },\n },\n )\n .afterClosed()\n .pipe(\n filter((verificationMethod) => !!verificationMethod),\n );\n }),\n )\n .subscribe((verificationMethod) => {\n this.verificationMethod = verificationMethod;\n this.code = '';\n this._cdRef.markForCheck();\n\n setTimeout(() => {\n this.verificationCodeComponent.focus();\n });\n });\n }\n\n}\n","<div class=\"code-container\">\n <fs-2fa-verification-code\n [recipient]=\"(formatRecipient && verificationMethod.type === VerificationMethodType.Sms) ? (recipient | fsPhone) : recipient\"\n [type]=\"verificationMethod.type\"\n [code]=\"code\"\n [codeLength]=\"codeLength\"\n (codeChange)=\"codeChanged($event)\"\n (codeComplete)=\"codeComplete($event)\">\n </fs-2fa-verification-code>\n</div>\n<div class=\"additional\">\n <div\n class=\"trust-device\"\n *ngIf=\"showTrustedDevice\">\n <mat-checkbox\n name=\"trust-device\"\n [(ngModel)]=\"trustDevice\"\n (ngModelChange)=\"trustDeviceChange.emit($event)\">\n <div class=\"small\">\n Bypass 2-step verification\n <ng-container *ngIf=\"trustDays\">\n for {{ trustDays }} days\n </ng-container>\n <ng-container *ngIf=\"!trustDays\">\n for future signins\n </ng-container>\n </div>\n </mat-checkbox>\n </div>\n</div>","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, Inject,\n ViewChild,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n\nimport { FsFormDirective } from '@firestitch/form';\nimport { FsMessage } from '@firestitch/message';\n\nimport { Observable, of } from 'rxjs';\nimport { switchMap, tap } from 'rxjs/operators';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { TwoFactorManageService } from '../../services';\n\n\n@Component({\n templateUrl: './email.component.html',\n styleUrls: ['./email.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmailComponent {\n\n @ViewChild(FsFormDirective, { static: false })\n public form: FsFormDirective;\n\n public email;\n public code;\n public default;\n public verificationMethod = null;\n public trustDevice = true;\n public twoFactorManageService: TwoFactorManageService;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: any,\n private _dialogRef: MatDialogRef<EmailComponent>,\n private _cdRef: ChangeDetectorRef,\n private _message: FsMessage,\n ) {\n this.twoFactorManageService = _data.twoFactorManageService;\n this.default = !this.twoFactorManageService.hasVerificationMethods;\n }\n\n public resend = (): Observable<void> => {\n return this.twoFactorManageService.verificationMethodResend()\n .pipe(\n tap(() => {\n this._message.success('Resent verification code');\n }),\n );\n };\n\n public submit = () => {\n return of(true)\n .pipe(\n switchMap(() => {\n return this.verificationMethod ?\n this.twoFactorManageService.verificationMethodVerify$(this.code, this.trustDevice)\n .pipe(\n tap((verificationMethod) => {\n this._message.success('Created email verification method');\n this._dialogRef.close(verificationMethod);\n }),\n ) :\n this.twoFactorManageService.verificationMethodCreate$({\n type: VerificationMethodType.Email,\n email: this.email,\n default: this.default,\n })\n .pipe(\n tap((verificationMethod) => {\n this.verificationMethod = verificationMethod;\n this.form.clear();\n this._cdRef.markForCheck();\n }),\n );\n }),\n );\n };\n\n public codeCompleted(code): void {\n this.code = code;\n //Legacy support\n setTimeout(() => {\n if(!this.form.submitting) {\n this.form.triggerSubmit();\n }\n });\n }\n\n}\n","<form\n fsForm\n [submit]=\"submit\">\n <fs-dialog>\n <h1 mat-dialog-title>\n Email Setup\n </h1>\n <mat-dialog-content>\n <ng-container *ngIf=\"verificationMethod; else notVerificationMethod\">\n <fs-2fa-verification\n [verificationMethod]=\"verificationMethod\"\n [(code)]=\"code\"\n (codeCompleted)=\"codeCompleted($event)\"\n [resend]=\"resend\"\n [(trustDevice)]=\"trustDevice\">\n </fs-2fa-verification>\n </ng-container>\n <ng-template #notVerificationMethod>\n <p>\n The app will only use this email for verifying your account security.\n </p>\n <mat-form-field>\n <mat-label>\n Email\n </mat-label>\n <input\n matInput\n [required]=\"true\"\n [(ngModel)]=\"email\"\n [fsFormEmail]=\"true\"\n name=\"email\">\n </mat-form-field>\n <mat-checkbox\n name=\"default\"\n [(ngModel)]=\"default\"\n [disableRipple]=\"true\">\n Make this the default verification method\n </mat-checkbox>\n </ng-template>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"submit\">\n Next\n </button>\n <button\n mat-button\n type=\"button\"\n [mat-dialog-close]=\"undefined\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, Inject,\n ViewChild,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { FsFormDirective } from '@firestitch/form';\nimport { FsMessage } from '@firestitch/message';\n\nimport { Observable, of } from 'rxjs';\nimport { switchMap, tap } from 'rxjs/operators';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { TwoFactorManageService } from '../../services';\n\n\n@Component({\n templateUrl: './number.component.html',\n styleUrls: ['./number.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NumberComponent {\n\n @ViewChild(FsFormDirective, { static: false })\n public form: FsFormDirective;\n\n public phone;\n public code;\n public default;\n public trustDevice = true;\n public verificationMethod = null;\n public defaultCountry;\n public twoFactorManageService: TwoFactorManageService;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: any,\n private _dialogRef: MatDialogRef<NumberComponent>,\n private _cdRef: ChangeDetectorRef,\n private _message: FsMessage,\n ) {\n this.twoFactorManageService = _data.twoFactorManageService;\n this.defaultCountry = _data.defaultCountry;\n this.default = !this.twoFactorManageService.hasVerificationMethods;\n }\n\n public resend = (): Observable<void> => {\n return this.twoFactorManageService.verificationMethodResend()\n .pipe(\n tap(() => {\n this._message.success('Resent verification code');\n }),\n );\n };\n\n public submit = () => {\n return of(true)\n .pipe(\n switchMap(() => {\n return this.verificationMethod ?\n this.twoFactorManageService.verificationMethodVerify$(this.code, this.trustDevice)\n .pipe(\n tap((verificationMethod) => {\n this._message.success('Created text message verification method');\n this._dialogRef.close(verificationMethod);\n }),\n ) :\n this.twoFactorManageService.verificationMethodCreate$({\n type: VerificationMethodType.Sms,\n phoneNumber: this.phone.number,\n phoneCode: this.phone.countryCode,\n phoneCountry: this.phone.isoCode,\n default: this.default,\n })\n .pipe(\n tap((verificationMethod) => {\n this.verificationMethod = verificationMethod;\n this.form.clear();\n this._cdRef.markForCheck();\n }),\n );\n }),\n );\n };\n\n public codeCompleted(code): void {\n this.code = code;\n //Legacy support\n setTimeout(() => {\n if(!this.form.submitting) {\n this.form.triggerSubmit();\n }\n });\n }\n\n}\n","<form\n fsForm\n [submit]=\"submit\"\n [autocomplete]=\"false\">\n <fs-dialog>\n <h1 mat-dialog-title>\n Text Message Setup\n </h1>\n <mat-dialog-content>\n <ng-container *ngIf=\"verificationMethod; else notVerificationMethod\">\n <fs-2fa-verification\n [verificationMethod]=\"verificationMethod\"\n [(code)]=\"code\"\n (codeCompleted)=\"codeCompleted($event)\"\n [resend]=\"resend\"\n [formatRecipient]=\"true\"\n [(trustDevice)]=\"trustDevice\">\n </fs-2fa-verification>\n </ng-container>\n <ng-template #notVerificationMethod>\n <p>\n The app will only use this number for verifying your account security. Message and data rates may apply by your cell phone provider.\n </p>\n <mat-form-field>\n <mat-label>\n Phone number\n </mat-label>\n <input\n matInput\n fsPhoneField\n [(ngModel)]=\"phone\"\n [required]=\"true\"\n [country]=\"defaultCountry\"\n [mode]=\"'object'\"\n autocomplete=\"off\"\n name=\"phone\">\n </mat-form-field>\n <mat-checkbox\n name=\"default\"\n [(ngModel)]=\"default\"\n [disableRipple]=\"true\">\n Make this the default verification method\n </mat-checkbox>\n </ng-template>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"submit\">\n Next\n </button>\n <button\n mat-button\n type=\"button\"\n [mat-dialog-close]=\"undefined\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { AppComponent } from '../components/app';\nimport { VerificationMethodType } from '../../../enums/verification-method-type.enum';\nimport { EmailComponent } from '../components/email';\nimport { NumberComponent } from '../components/number';\nimport { IFsVerificationMethod } from '../../../interfaces';\n\n\n@Injectable()\nexport class TwoFactorManageService implements OnDestroy {\n\n private _destroy$ = new Subject();\n\n private _verificationMethodsFetch: (query: any) => Observable<any[]>;\n private _verificationMethodCreate: (verificationMethod: IFsVerificationMethod) => Observable<IFsVerificationMethod>;\n private _verificationMethodDelete: (verificationMethod: IFsVerificationMethod) => Observable<IFsVerificationMethod>;\n private _verificationMethodDefault: (verificationMethod: IFsVerificationMethod) => Observable<IFsVerificationMethod>;\n private _verificationMethodVerify: (code, trustDevice: boolean) => Observable<any>;\n private _verificationMethodResend: () => Observable<any>;\n private _accountVerify: () => Observable<any[]>;\n private _verificationMethods$ = new BehaviorSubject<any[]>([]);\n\n constructor(\n private _dialog: MatDialog,\n ) {}\n\n public get verificationMethods$() {\n return this._verificationMethods$\n .pipe(\n takeUntil(this._destroy$),\n );\n }\n \n public get verificationMethods() {\n return this._verificationMethods$.getValue();\n }\n\n public get hasVerificationMethods(): boolean {\n return !!this._verificationMethods$.getValue().length;\n }\n\n public get emailVerificationMethods() {\n return this.getVerificationMethods(VerificationMethodType.Email);\n }\n\n public get smsVerificationMethods() {\n return this.getVerificationMethods(VerificationMethodType.Sms);\n }\n\n public get appVerificationMethods() {\n return this.getVerificationMethods(VerificationMethodType.App);\n }\n \n public getVerificationMethods(type) {\n return this.verificationMethods\n .filter((verificationMethod) => {\n return verificationMethod.type === type;\n });\n }\n \n public hasVerificationMethod(type) {\n return this.verificationMethods\n .some((verificationMethod) => {\n return verificationMethod.type === type;\n });\n }\n\n public registerVerificationMethodDefault(value) {\n this._verificationMethodDefault = value;\n }\n\n public registerVerificationMethodResend(value) {\n this._verificationMethodResend = value;\n }\n\n public registerVerificationMethodsFetch(value) {\n this._verificationMethodsFetch = value;\n }\n\n public registerVerificationMethodDelete(value) {\n this._verificationMethodDelete = value;\n }\n\n public registerVerificationMethodCreate(value) {\n this._verificationMethodCreate = value;\n }\n\n public registerVerificationMethodVerify(value) {\n this._verificationMethodVerify = value;\n }\n\n public registerAccountVerify(value) {\n this._accountVerify = value;\n }\n\n public get hasVerificationMethodResend() {\n return !!this._verificationMethodResend;\n }\n\n public get hasVerificationMethodDefault() {\n return !!this._verificationMethodDefault;\n }\n\n public get hasVerificationMethodsFetch() {\n return !!this._verificationMethodsFetch;\n }\n\n public get hasVerificationMethodDelete() {\n return !!this._verificationMethodDelete;\n }\n\n public get hasVerificationMethodCreate() {\n return !!this._verificationMethodCreate;\n }\n\n public get hasVerificationMethodVerify() {\n return !!this._verificationMethodVerify;\n }\n\n public verificationMethodDelete$(verificationMethod): Observable<any> {\n return this._verificationMethodDelete(verificationMethod)\n .pipe(\n tap(() => {\n this.verificationMethodsFetch();\n }),\n );\n }\n\n public verificationMethodVerify$(code, trustDevice): Observable<any> {\n return this._verificationMethodVerify(code, trustDevice)\n .pipe(\n tap(() => {\n this.verificationMethodsFetch();\n }),\n );\n }\n\n public verificationMethodCreate$(verificationMethod): Observable<any> {\n return this._verificationMethodCreate(verificationMethod);\n }\n\n public verificationMethodDefault$(verificationMethod): Observable<any> {\n return this._verificationMethodDefault(verificationMethod);\n }\n\n public verificationMethodResend(): Observable<any> {\n return this._verificationMethodResend();\n }\n\n public verificationMethodsFetch(query?: any) {\n this.verificationMethodsFetch$(query)\n .subscribe();\n }\n\n public verificationMethodsFetch$(query?: any): Observable<any> {\n return this._verificationMethodsFetch(query)\n .pipe(\n tap((verificationMethods) => {\n this._verificationMethods$.next(verificationMethods);\n })\n );\n }\n\n public accountVerify$(): Observable<any> {\n return this._accountVerify ? this._accountVerify() : of(true);\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n public addSms$(defaultCountry): Observable<any>{\n return this.accountVerify$()\n .pipe(\n switchMap(() => this._dialog.open(NumberComponent, {\n data: {\n defaultCountry,\n twoFactorManageService: this,\n },\n })\n .afterClosed(),\n ),\n tap(() => {\n this.verificationMethodsFetch();\n }),\n takeUntil(this._destroy$),\n );\n }\n\n public addEmail$(): Observable<any>{\n return this.accountVerify$()\n .pipe(\n switchMap(() => this._dialog.open(EmailComponent, {\n data: { twoFactorManageService: this },\n })\n .afterClosed(),\n ),\n tap(() => {\n this.verificationMethodsFetch();\n }),\n takeUntil(this._destroy$),\n );\n }\n\n public addApp$(): Observable<any>{\n return this.accountVerify$()\n .pipe(\n switchMap(() => this._dialog.open(AppComponent, {\n data: { twoFactorManageService: this },\n })\n .afterClosed(),\n ),\n tap(() => {\n this.verificationMethodsFetch();\n }),\n takeUntil(this._destroy$),\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\n\n\n@Component({\n selector: 'app-defaulted',\n templateUrl: './defaulted.component.html',\n styleUrls: ['./defaulted.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DefaultedComponent {\n\n}\n","<fs-chip [backgroundColor]=\"'#02A7F0'\" [size]=\"'tiny'\">Default</fs-chip>","import {\n Component, ChangeDetectionStrategy, OnInit, Input, ViewChild, Output, EventEmitter,\n} from '@angular/core';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { map, switchMap } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\n\nimport { IFsVerificationMethod } from '../../../../interfaces';\nimport { VerificationMethodType } from '../../../../enums';\nimport { TwoFactorManageService } from '../../../manage/services';\n\n\n@Component({\n selector: 'fs-2fa-verification-methods',\n templateUrl: './verification-methods.component.html',\n styleUrls: ['./verification-methods.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VerificationMethodsComponent implements OnInit {\n\n @ViewChild(FsListComponent)\n public list: FsListComponent;\n\n @Input() public type: VerificationMethodType;\n @Input() public accountVerify: () => Observable<any>;\n @Input() public verificationMethodsFetch: (query: any) => Observable<IFsVerificationMethod[]>;\n @Input() public verificationMethodDelete: (verificationMethod: IFsVerificationMethod) => Observable<any>;\n @Input() public verificationMethodDefault: (verificationMethod: IFsVerificationMethod) => Observable<any>;\n @Input() public twoFactorManageService: TwoFactorManageService;\n\n @Output() public deleted = new EventEmitter();\n \n public listConfig: FsListConfig;\n public VerificationMethodType = VerificationMethodType;\n\n constructor(\n private _prompt: FsPrompt,\n ) {}\n\n public ngOnInit(): void {\n if(!this.verificationMethodDefault && this.twoFactorManageService?.hasVerificationMethodDefault) {\n this.verificationMethodDefault = (verificationMethod: IFsVerificationMethod) => {\n return this.twoFactorManageService.verificationMethodDefault$(verificationMethod);\n }\n }\n \n if(!this.verificationMethodDelete && this.twoFactorManageService?.hasVerificationMethodDelete) {\n this.verificationMethodDelete = (verificationMethod: IFsVerificationMethod) => {\n return this.twoFactorManageService.verificationMethodDelete$(verificationMethod);\n }\n }\n \n if(!this.verificationMethodsFetch && this.twoFactorManageService?.hasVerificationMethodsFetch) {\n this.verificationMethodsFetch = (query) => {\n return this.twoFactorManageService.verificationMethodsFetch$(query);\n }\n }\n \n if(!this.accountVerify && this.twoFactorManageService?.hasVerificationMethodVerify) {\n this.accountVerify = () => {\n return this.twoFactorManageService?.accountVerify$();\n }\n }\n\n this.listConfig = {\n paging: false,\n rowActions: [\n {\n click: (verificationMethod) => {\n this.accountVerify()\n .pipe(\n switchMap(() => this.verificationMethodDefault(verificationMethod)),\n )\n .subscribe(() => {\n this.list.reload();\n });\n },\n show: (data) => {\n return !!this.verificationMethodDefault && !data.default;\n },\n label: 'Set as Default',\n },\n {\n click: (verificationMethod) => {\n this._prompt.confirm({\n title: 'Confirm',\n template: 'Would you like to delete this verification method?',\n })\n .pipe(\n switchMap(() => this.accountVerify()),\n switchMap(() => this.verificationMethodDelete(verificationMethod)),\n )\n .subscribe(() => {\n this.deleted.emit();\n this.list.reload();\n });\n },\n show: () => {\n return !!this.verificationMethodDelete;\n },\n label: 'Delete',\n },\n ],\n fetch: (query) => {\n query = {\n ...query,\n type: this.type,\n };\n\n return this.verificationMethodsFetch(query) \n .pipe(\n map((verificationMethods) => ({\n data: verificationMethods.filter((verificationMethod) => {\n return !this.type || verificationMethod.type === this.type;\n }),\n }),\n ),\n );\n },\n };\n }\n\n public reload(): void {\n this.list.reload();\n }\n}\n","<fs-list [config]=\"listConfig\">\n <fs-list-column class=\"col-icon\" width=\"1%\">\n <ng-template fs-list-cell let-row=\"row\">\n <ng-container *ngIf=\"row.type === VerificationMethodType.Sms\">\n <mat-icon>textsms</mat-icon>\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.Email\">\n <mat-icon>email</mat-icon>\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.App\">\n <mat-icon>phone_iphone</mat-icon>\n </ng-container>\n </ng-template>\n </fs-list-column>\n <fs-list-column class=\"col-name\">\n <ng-template fs-list-cell let-row=\"row\">\n <div class=\"row\">\n <ng-container *ngIf=\"row.type === VerificationMethodType.Sms\">\n <div class=\"row\">\n <fs-country [code]=\"row.phoneCountry\" [showName]=\"false\"></fs-country> \n <span>{{row.phoneNumber | fsPhone}}</span>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.Email\">\n {{row.email}}\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.App\">\n App\n </ng-container>\n\n <app-defaulted *ngIf=\"row.default\"></app-defaulted>\n </div>\n </ng-template>\n </fs-list-column>\n</fs-list>","import {\n Component, Inject, ChangeDetectionStrategy, ViewChild,\n} from '@angular/core';\n\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { FsMessage } from '@firestitch/message';\nimport { VerificationMethodsComponent } from '../../../../modules/verification-methods/components/verification-methods';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { TwoFactorManageService } from '../../services';\n\n\n@Component({\n templateUrl: './emails.component.html',\n styleUrls: ['./emails.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmailsComponent {\n\n @ViewChild(VerificationMethodsComponent) \n public verificationMethods: VerificationMethodsComponent;\n\n public twoFactorManageService: TwoFactorManageService;\n public VerificationMethodType = VerificationMethodType;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: any,\n private _dialogRef: MatDialogRef<EmailsComponent>,\n private _message: FsMessage,\n ) {\n this.twoFactorManageService = _data.twoFactorManageService;\n }\n\n public add(): void {\n this.twoFactorManageService.addEmail$()\n .subscribe(() =>{\n this.verificationMethods.reload();\n });\n }\n\n public deleted(): void {\n this._message.success('Deleted email verification method');\n if(!this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Email)) {\n this._dialogRef.close();\n }\n }\n\n}\n","<fs-dialog>\n <h1 mat-dialog-title>\n Emails\n </h1>\n <mat-dialog-content>\n <fs-2fa-verification-methods\n [type]=\"VerificationMethodType.Email\"\n [twoFactorManageService]=\"twoFactorManageService\"\n (deleted)=\"deleted()\">\n </fs-2fa-verification-methods>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n type=\"button\"\n color=\"primary\"\n [mat-dialog-close]=\"undefined\">\n Close\n </button>\n <button\n mat-button\n (click)=\"add()\"\n type=\"button\">\n Add Email\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n","import {\n Component, Inject, ChangeDetectionStrategy, ViewChild,\n} from '@angular/core';\n\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { FsMessage } from '@firestitch/message';\nimport { VerificationMethodsComponent } from '../../../../modules/verification-methods/components/verification-methods';\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { TwoFactorManageService } from '../../services';\n\n\n@Component({\n templateUrl: './numbers.component.html',\n styleUrls: ['./numbers.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NumbersComponent {\n\n @ViewChild(VerificationMethodsComponent) \n public verificationMethods: VerificationMethodsComponent;\n\n public defaultCountry;\n public twoFactorManageService: TwoFactorManageService;\n public VerificationMethodType = VerificationMethodType;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: any, \n private _dialogRef: MatDialogRef<NumbersComponent>,\n private _message: FsMessage,\n ) {\n this.twoFactorManageService = _data.twoFactorManageService;\n this.defaultCountry = _data.defaultCountry;\n }\n\n public add(): void {\n this.twoFactorManageService.addSms$(this.defaultCountry)\n .subscribe(() => {\n this.verificationMethods.reload();\n });\n }\n\n public deleted(): void {\n this._message.success('Deleted text message verification method');\n if(!this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Sms)) {\n this._dialogRef.close();\n }\n }\n\n}\n","<fs-dialog>\n <h1 mat-dialog-title>\n Text Message Numbers\n </h1>\n <mat-dialog-content>\n <fs-2fa-verification-methods\n [type]=\"VerificationMethodType.Sms\"\n [twoFactorManageService]=\"twoFactorManageService\"\n (deleted)=\"deleted()\">\n </fs-2fa-verification-methods> \n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n type=\"button\"\n color=\"primary\"\n [mat-dialog-close]=\"undefined\">\n Close\n </button>\n <button\n mat-button\n (click)=\"add()\"\n type=\"button\">\n Add Number\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, Inject,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\n\nimport { Subject } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\n\nimport { VerificationMethodType } from '../../../../enums/verification-method-type.enum';\nimport { TwoFactorManageService } from '../../services';\nimport { EmailsComponent } from '../emails';\nimport { NumbersComponent } from '../numbers';\n\n\n@Component({\n templateUrl: './manage-methods.component.html',\n styleUrls: ['./manage-methods.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ManageMethodsComponent implements OnInit, OnDestroy {\n\n public twoFactorManageService: TwoFactorManageService;\n public verificationMethods;\n public verificationMethodTypes = {};\n public VerificationMethodType = VerificationMethodType;\n public buttonStyle: 'raised' | 'stroked' = 'raised';\n\n private _destroy$ = new Subject();\n private _defaultCountry: string;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: any,\n private _cdRef: ChangeDetectorRef,\n private _dialog: MatDialog,\n private _message: FsMessage,\n ) {}\n\n public ngOnInit(): void {\n this._defaultCountry = this._data.defaultCountry;\n this.twoFactorManageService = this._data.twoFactorManageService;\n this.buttonStyle = this._data.buttonStyle;\n this.verificationMethodTypes = this._data.verificationMethodTypes\n .reduce((verificationMethodTypes, verificationMethodType) => {\n verificationMethodTypes[verificationMethodType] = true;\n\n return verificationMethodTypes;\n }, {});\n\n this.twoFactorManageService.verificationMethods$\n .subscribe((verificationMethods) => {\n this.verificationMethods = verificationMethods;\n this._cdRef.markForCheck();\n });\n }\n\n public get defaultSms(): boolean {\n return this.twoFactorManageService.smsVerificationMethods\n .some((verificationMethod) => {\n return verificationMethod.default;\n });\n }\n\n public get defaultApp(): boolean {\n return this.twoFactorManageService.appVerificationMethods\n .some((verificationMethod) => {\n return verificationMethod.default;\n });\n }\n\n public get defaultEmail(): boolean {\n return this.twoFactorManageService.emailVerificationMethods\n .some((verificationMethod) => {\n return verificationMethod.default;\n });\n }\n\n public get textHasVerificationMethod(): boolean {\n return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Sms);\n }\n\n public get appHasVerificationMethod(): boolean {\n return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.App);\n }\n\n public get emailHasVerificationMethod(): boolean {\n return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Email);\n }\n\n public textMessageManage(): void {\n this._dialog.open(NumbersComponent, {\n data: {\n twoFactorManageService: this.twoFactorManageService,\n defaultCountry: this._defaultCountry,\n },\n });\n }\n\n public textMessageAdd(): void {\n this.twoFactorManageService.addSms$(this._defaultCountry)\n .subscribe();\n }\n\n public emailMessageManage(): void {\n this._dialog.open(EmailsComponent, {\n data: {\n twoFactorManageService: this.twoFactorManageService,\n },\n });\n }\n\n public emailMessageAdd(): void {\n this.twoFactorManageService.addEmail$()\n .subscribe();\n }\n\n public appRemove(): void {\n const verificationMethod = this.verificationMethods\n .find((_verificationMethod) => {\n return _verificationMethod.type === VerificationMethodType.App;\n });\n\n if(verificationMethod) {\n this.twoFactorManageService.accountVerify$()\n .pipe(\n switchMap(() => this.twoFactorManageService.verificationMethodDelete$(verificationMethod)),\n )\n .subscribe(() => {\n this._message.success('Removed App Authenticator verification method');\n this._cdRef.markForCheck();\n });\n }\n }\n\n public appAdd(): void {\n this.twoFactorManageService.addApp$()\n .subscribe();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n}\n","<fs-dialog>\n <h1 mat-dialog-title>2-Step Verification</h1>\n <mat-dialog-content>\n <table>\n <tr *ngIf=\"verificationMethodTypes[VerificationMethodType.Sms]\">\n <td>\n <mat-icon>textsms</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Text Message</span>\n @if(textHasVerificationMethod) {\n <ng-container [ngTemplateOutlet]=\"enabledChip\"></ng-container>\n }\n <app-defaulted *ngIf=\"defaultSms\"></app-defaulted>\n </div>\n <div class=\"small\">\n Verification codes are sent by text message\n <ng-container *ngIf=\"textHasVerificationMethod\">\n to <span class=\"items\">\n <span *ngFor=\"let item of twoFactorManageService.smsVerificationMethods\">{{item.phoneNumber | fsPhone}}</span>\n </span>\n </ng-container>\n </div>\n </td>\n <td>\n @if(textHasVerificationMethod) {\n <button \n mat-button \n [ngClass]=\"{ \n 'mat-mdc-outlined-button': buttonStyle === 'stroked',\n 'mat-mdc-raised-button': buttonStyle === 'raised'\n }\"\n type=\"button\"\n (click)=\"textMessageManage()\">\n Manage\n </button>\n } @else {\n <button \n mat-button \n [ngClass]=\"{ \n 'mat-mdc-outlined-button': buttonStyle === 'stroked',\n 'mat-mdc-raised-button': buttonStyle === 'raised'\n }\"\n type=\"button\"\n (click)=\"textMessageAdd()\">\n Turn On\n </button>\n }\n </td>\n </tr>\n <tr *ngIf=\"verificationMethodTypes[VerificationMethodType.Email]\">\n <td>\n <mat-icon>email</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Email</span> \n @if(emailHasVerificationMethod) {\n <ng-container [ngTemplateOutlet]=\"enabledChip\"></ng-container>\n }\n <app-defaulted *ngIf=\"defaultEmail\"></app-defaulted>\n </div>\n <div class=\"small\">\n Verification codes are sent by email\n <ng-container *ngIf=\"emailHasVerificationMethod\">\n to <span class=\"items\">\n <span *ngFor=\"let item of twoFactorManageService.emailVerificationMethods\">{{item.email}}</span>\n </span>\n </ng-container>\n </div>\n </td>\n <td>\n @if(emailHasVerificationMethod) {\n <button \n mat-button \n [ngClass]=\"{ \n 'mat-mdc-outlined-button': buttonStyle === 'stroked',\n 'mat-mdc-raised-button': buttonStyle === 'raised'\n }\"\n type=\"button\"\n (click)=\"emailMessageManage()\">\n Manage\n </button>\n } @else {\n <button\n mat-button \n [ngClass]=\"{ \n 'mat-mdc-outlined-button': buttonStyle === 'stroked',\n 'mat-mdc-raised-button': buttonStyle === 'raised'\n }\"\n type=\"button\"\n (click)=\"emailMessageAdd()\">\n Turn On\n </button>\n }\n </td>\n </tr>\n <tr *ngIf=\"verificationMethodTypes[VerificationMethodType.App]\">\n <td>\n <mat-icon>phone_iphone</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Authenticator App</span>\n @if(appHasVerificationMethod) {\n <ng-container [ngTemplateOutlet]=\"enabledChip\"></ng-container>\n }\n <app-defaulted *ngIf=\"defaultApp\"></app-defaulted>\n </div>\n <div class=\"small\">Verification code is generated by an authenticator app such as Authy or Google Authenticator</div>\n </td>\n <td>\n @if(appHasVerificationMethod) {\n <button \n mat-button \n [ngClass]=\"{ \n 'mat-mdc-outlined-button': buttonStyle === 'stroked',\n 'mat-mdc-raised-button': buttonStyle === 'raised'\n }\"\n type=\"button\"\n (click)=\"appRemove()\">\n Remove\n </button>\n } @else {\n <button \n mat-button \n [ngClass]=\"{ \n 'mat-mdc-outlined-button': buttonStyle === 'stroked',\n 'mat-mdc-raised-button': buttonStyle === 'raised'\n }\"\n type=\"button\"\n (click)=\"appAdd()\">\n Turn On\n </button>\n }\n </td>\n </tr> \n </table> \n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"button\"\n [mat-dialog-close]=\"undefined\">\n Close\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n\n\n<ng-template #enabledChip>\n <fs-chip [backgroundColor]=\"'#70B601'\" [size]=\"'tiny'\">Enabled</fs-chip>\n</ng-template>","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { VerificationMethodType } from '../../../../enums';\nimport { IFsVerificationMethod } from '../../../../interfaces';\nimport { TwoFactorManageService } from '../../services';\nimport { ManageMethodsComponent } from '../manage-methods';\n\n\n@Component({\n selector: 'fs-2fa-manage',\n templateUrl: './2fa-manage.component.html',\n styleUrls: ['./2fa-manage.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TwoFactorManageService],\n})\nexport class Fs2faManageComponent implements OnDestroy, OnInit {\n\n @Input() public accountVerify: () => Observable<any>;\n @Input() public defaultCountry: string;\n @Input() public buttonStyle: 'raised' | 'stroked' = 'raised';\n @Input() public verificationMethodTypes: VerificationMethodType[];\n @Input() public verificationMethodsFetch: () => Observable<IFsVerificationMethod[]>;\n @Input() public verificationMethodDelete: (verificationMethod: IFsVerificationMethod) => Observable<IFsVerificationMethod>;\n @Input() public verificationMethodCreate: (verificationMethod: IFsVerificationMethod) => Observable<IFsVerificationMethod>;\n @Input() public verificationMethodDefault: (verificationMethod: IFsVerificationMethod) => Observable<IFsVerificationMethod>;\n @Input() public verificationMethodVerify: (code: string, trustDevice) => Observable<any>;\n @Input() public verificationMethodResend: () => Observable<any>;\n\n public statuses;\n\n private _destroy$ = new Subject();\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _dialog: MatDialog,\n private _twoFactorManageService: TwoFactorManageService,\n ) {}\n\n public ngOnInit(): void {\n this.verificationMethodTypes = this.verificationMethodTypes || [\n VerificationMethodType.Sms,\n VerificationMethodType.Email,\n VerificationMethodType.App,\n ];\n\n this._twoFactorManageService.registerVerificationMethodsFetch(this.verificationMethodsFetch);\n this._twoFactorManageService.registerVerificationMethodDelete(this.verificationMethodDelete);\n this._twoFactorManageService.registerVerificationMethodCreate(this.verificationMethodCreate);\n this._twoFactorManageService.registerVerificationMethodVerify(this.verificationMethodVerify);\n this._twoFactorManageService.registerVerificationMethodResend(this.verificationMethodResend);\n this._twoFactorManageService.registerVerificationMethodDefault(this.verificationMethodDefault);\n this._twoFactorManageService.registerAccountVerify(this.accountVerify);\n\n\n this._twoFactorManageService.verificationMethods$\n .subscribe((verificationMethods) => {\n const types = {\n sms: 'Text Message',\n email: 'Email',\n app: 'Authenticator App',\n };\n\n this.statuses = Object.keys(\n verificationMethods.reduce((accum, verificationMethod) => {\n accum[verificationMethod.type] = true;\n\n return accum;\n }, {}),\n )\n .map((type) => {\n return types[type];\n });\n\n this._cdRef.markForCheck();\n });\n\n this._twoFactorManageService.verificationMethodsFetch();\n }\n\n public manage() {\n const dialogRef = this._dialog\n .open(ManageMethodsComponent, {\n autoFocus: false,\n data: {\n defaultCountry: this.defaultCountry,\n twoFactorManageService: this._twoFactorManageService,\n verificationMethodTypes: this.verificationMethodTypes,\n buttonStyle: this.buttonStyle,\n },\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._cdRef.markForCheck();\n });\n }\n\n public reload(): void {\n this._twoFactorManageService.verificationMethodsFetch();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n\n}\n","<fs-label-field>\n <fs-label>Status</fs-label>\n <ng-container *ngIf=\"statuses\">\n <ng-container *ngIf=\"statuses.length === 1\">\n {{statuses[0]}} verification is enabled\n </ng-container>\n\n <ng-container *ngIf=\"statuses.length > 1\">\n {{statuses.join(', ')}} verifications are enabled\n </ng-container>\n\n <ng-container *ngIf=\"statuses.length === 0\">\n No verification methods are enabled\n </ng-container>\n </ng-container>\n</fs-label-field>","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { FsCodeInputModule } from '@firestitch/code-input';\n\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { CodeInputComponent } from './components/code-input';\n\n\n@NgModule({\n imports: [\n FormsModule,\n\n MatFormFieldModule,\n MatInputModule,\n\n FsCodeInputModule,\n ],\n declarations: [\n CodeInputComponent,\n ],\n exports: [\n CodeInputComponent,\n ],\n})\nexport class CodeInputModule {\n}\n","import { NgModule } from '@angular/core';\n\nimport { FsChipModule } from '@firestitch/chip';\n\nimport { DefaultedComponent } from './components/defaulted';\n\n\n@NgModule({\n declarations: [\n DefaultedComponent,\n ],\n imports: [\n FsChipModule,\n ],\n exports: [DefaultedComponent],\n})\nexport class DefautledModule { }\n","import { Component, ChangeDetectionStrategy, Output, EventEmitter, Input, ChangeDetectorRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { finalize, takeUntil } from 'rxjs/operators';\n\n\n@Component({\n selector: 'app-resend',\n templateUrl: './resend.component.html',\n styleUrls: ['./resend.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ResendComponent {\n\n @Input() public resend: () => Observable<any>;\n \n public resendInProgress = false;\n\n private _destroy$ = new Subject();\n \n constructor(\n private _cdRef: ChangeDetectorRef,\n ) {}\n\n public resendClick(): void {\n this.resendInProgress = true;\n this.resend()\n .pipe(\n finalize(() => {\n this.resendInProgress = false; \n this._cdRef.markForCheck(); \n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n\n}","<ng-container *ngIf=\"!resendInProgress else sending\">\n Didn't receive a code? <a (click)=\"resendClick()\">Resend</a>\n</ng-container>\n<ng-template #sending>\n <div class=\"sending\">\n <mat-spinner [diameter]=\"12\"></mat-spinner> Sending\n </div>\n</ng-template>\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { ResendComponent } from './components/resend';\n\n\n@NgModule({\n imports: [\n CommonModule,\n\n MatProgressSpinnerModule,\n ],\n declarations: [\n ResendComponent,\n ],\n exports: [\n ResendComponent,\n ],\n})\nexport class ResendModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\n\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsPhoneModule } from '@firestitch/phone';\nimport { FsCountryModule } from '@firestitch/country';\n\nimport { VerificationMethodsComponent } from './components/verification-methods/verification-methods.component';\nimport { DefautledModule } from '../defaulted/defaulted.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatIconModule,\n\n FsListModule,\n FsPhoneModule,\n FsCountryModule,\n\n DefautledModule,\n ],\n declarations: [\n VerificationMethodsComponent,\n ],\n exports: [VerificationMethodsComponent],\n})\nexport class Fs2faVerificationMethodsModule { }\n","import { Directive, HostListener, inject, Input } from '@angular/core';\n\nimport { MatButton } from '@angular/material/button';\n\nimport { finalize } from 'rxjs/operators';\n\nimport { Fs2faVerificationComponent } from '../components/2fa-verification/2fa-verification.component';\n\n@Directive({\n selector: '[fs2faVerificationResend]',\n})\nexport class Fs2faVerificationResendDirective { \n \n @Input('fs2faVerificationResend') public verification: Fs2faVerificationComponent;\n\n private _button = inject(MatButton);\n \n @HostListener('click')\n public click() {\n this._button.disabled = true;\n this.verification.resendCode()\n .pipe(\n finalize(() => this._button.disabled = false),\n )\n .subscribe();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { FsFormModule } from '@firestitch/form';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsRadioGroupModule } from '@firestitch/radiogroup';\nimport { FsDialogModule } from '@firestitch/dialog';\n\nimport { Fs2faVerificationComponent } from './components/2fa-verification/2fa-verification.component';\nimport { Fs2faVerificationCodeComponent } from './components/2fa-verification-code/2fa-verification-code.component';\nimport { Fs2faVerificationMethodsComponent } from './components/2fa-verification-methods/2fa-verification-methods.component';\n\nimport { CodeInputModule } from '../code-input';\nimport { ResendModule } from '../resend/resend.module';\nimport { Fs2faVerificationResendDirective } from './directives';\nimport { FsPhoneModule } from '@firestitch/phone';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatFormFieldModule,\n MatInputModule,\n MatButtonModule,\n MatIconModule,\n MatRadioModule,\n MatCheckboxModule,\n\n FsFormModule,\n FsRadioGroupModule,\n FsDialogModule,\n FsSkeletonModule,\n FsPhoneModule,\n FsSkeletonModule,\n\n ResendModule,\n CodeInputModule,\n ],\n declarations: [\n Fs2faVerificationComponent,\n Fs2faVerificationCodeComponent,\n Fs2faVerificationMethodsComponent,\n Fs2faVerificationResendDirective,\n ],\n exports: [\n Fs2faVerificationComponent,\n Fs2faVerificationResendDirective,\n ],\n providers: [],\n})\nexport class Fs2faVerificationModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { FsChipModule } from '@firestitch/chip';\nimport { FsCountryModule } from '@firestitch/country';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsListModule } from '@firestitch/list';\nimport { FsPhoneModule } from '@firestitch/phone';\nimport { FsQrcodeModule } from '@firestitch/qrcode';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\n\nimport { CodeInputModule } from '../code-input';\nimport { DefautledModule } from '../defaulted/defaulted.module';\nimport { ResendModule } from '../resend/resend.module';\nimport { Fs2faVerificationMethodsModule } from '../verification-methods';\nimport { Fs2faVerificationModule } from '../verification/fs-2fa-verification.module';\n\nimport { Fs2faManageComponent } from './components/2fa-manage';\nimport { AppComponent } from './components/app';\nimport { EmailComponent } from './components/email';\nimport { EmailsComponent } from './components/emails';\nimport { ManageMethodsComponent } from './components/manage-methods';\nimport { NumberComponent } from './components/number';\nimport { NumbersComponent } from './components/numbers';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatButtonModule,\n MatDialogModule,\n MatInputModule,\n MatIconModule,\n MatCheckboxModule,\n\n FsDialogModule,\n FsListModule,\n FsChipModule,\n FsFormModule,\n FsLabelModule,\n FsPhoneModule,\n FsSkeletonModule,\n FsCountryModule,\n FsQrcodeModule,\n\n CodeInputModule,\n\n ResendModule,\n DefautledModule,\n Fs2faVerificationModule,\n Fs2faVerificationMethodsModule,\n ],\n declarations: [\n Fs2faManageComponent,\n ManageMethodsComponent,\n NumbersComponent,\n AppComponent,\n EmailComponent,\n NumberComponent,\n EmailsComponent,\n ],\n exports: [Fs2faManageComponent],\n})\nexport class Fs2faManageModule { }\n","import { Injectable } from '@angular/core';\n\nimport { FsApi, RequestConfig } from '@firestitch/api';\n\nimport { Observable } from 'rxjs';\n\n\n@Injectable()\nexport class VerificationMethodData<T = any> {\n\n constructor(\n private _api: FsApi,\n ) {}\n\n public verify(code: any, trustDevice: boolean, config: RequestConfig = {}): Observable<T> {\n return this._api.post(\n 'verifications/methods/verify',\n { code, trustDevice },\n {\n key: 'verificationMethod',\n ...config,\n },\n );\n }\n\n public resend(config: RequestConfig = {}): Observable<T> {\n return this._api.post(\n 'verifications/methods/resend',\n {},\n {\n key: '',\n ...config,\n },\n );\n }\n\n public account(config: RequestConfig = {}): Observable<T> {\n return this._api.post(\n 'verifications/methods/account',\n {},\n {\n key: 'verificationMethod',\n ...config,\n },\n );\n }\n\n\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { FsApi } from '@firestitch/api';\n\nimport { finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class VerificationSetupService {\n\n private _api = inject(FsApi);\n private _router = inject(Router);\n\n public signout() {\n return this._api\n .post('auth/signout')\n .pipe(\n finalize(() => {\n this._router.navigateByUrl('/signin');\n }),\n );\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, OnInit,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { FsApi } from '@firestitch/api';\n\nimport { from } from 'rxjs';\n\nimport { VerificationSetupService } from '../../services';\n\n\n@Component({\n templateUrl: './email.component.html',\n styleUrls: ['./email.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmailComponent implements OnInit {\n\n public email = null;\n\n private _api = inject(FsApi);\n private _router = inject(Router);\n private _route = inject(ActivatedRoute);\n private _cdRef = inject(ChangeDetectorRef);\n private _verificationSetupService = inject(VerificationSetupService);\n\n public ngOnInit(): void {\n this._api.get('account', {}, { key: 'account' })\n .subscribe(({ email }) => {\n this.email = email;\n this._cdRef.markForCheck();\n });\n }\n\n public next = () => {\n const redirect = this._route.snapshot.queryParams.redirect || '/';\n\n return from(this._router\n .navigate(['verify'], {\n relativeTo: this._route, \n queryParams: { redirect }, \n }));\n };\n\n public cancel() {\n this._verificationSetupService\n .signout()\n .subscribe();\n }\n\n}\n","<form\r\n fsForm\r\n [submit]=\"next\"\r\n [dirtySubmitButton]=\"false\"\r\n *fsSkeleton=\"email\">\r\n <mat-card>\r\n <mat-card-header>\r\n <mat-card-title>\r\n Enable 2-Step Verification\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <p>\r\n Please enable two factor authentication to protect your account.\r\n The app will use this email for verifying your account\r\n </p>\r\n <fs-label-field>\r\n <fs-label>\r\n Email\r\n </fs-label>\r\n {{ email }}\r\n </fs-label-field>\r\n <div class=\"buttons\">\r\n <button\r\n mat-flat-button\r\n type=\"submit\"\r\n color=\"primary\">\r\n Next\r\n </button>\r\n <button\r\n mat-button\r\n (click)=\"cancel()\"\r\n type=\"button\">\r\n Cancel\r\n </button>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n</form>","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n\nimport { FsCookie } from '@firestitch/cookie';\nimport { FsMessage } from '@firestitch/message';\n\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { IFsVerificationMethod } from '../../../../interfaces';\nimport { Fs2faVerificationComponent } from '../../../verification/components/2fa-verification';\nimport { VerificationMethodData } from '../../data';\nimport { VerificationSetupService } from '../../services';\n\n\n@Component({\n templateUrl: './verify.component.html',\n styleUrls: ['./verify.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VerifyComponent implements OnInit {\n\n @ViewChild(Fs2faVerificationComponent)\n public verification: Fs2faVerificationComponent;\n\n public code = null;\n public verificationMethod: IFsVerificationMethod;\n\n private _cookie = inject(FsCookie);\n private _router = inject(Router);\n private _route = inject(ActivatedRoute);\n private _message = inject(FsMessage);\n private _verificationMethodData = inject(VerificationMethodData);\n private _cdRef = inject(ChangeDetectorRef);\n private _verificationSetupService = inject(VerificationSetupService);\n\n public ngOnInit(): void {\n this._verificationMethodData.account()\n .pipe(\n tap((verificationMethod) => {\n this.verificationMethod = verificationMethod;\n this._cdRef.markForCheck();\n }),\n )\n .subscribe();\n }\n\n public verify = (): Observable<any> => {\n return this._verificationMethodData\n .verify(this.code, this.verification.trustDevice)\n .pipe(\n tap(() => {\n const redirect = this._route.snapshot.queryParams.redirect || '/';\n this._message.success('Two factor verification successfully setup');\n this._router.navigateByUrl(redirect);\n this._cookie.delete('Token-Force2fa');\n }),\n );\n };\n\n public resend = (): Observable<void> => {\n return this._verificationMethodData.resend();\n };\n\n public cancel() {\n this._verificationSetupService\n .signout()\n .subscribe();\n }\n\n}\n","<form\n fsForm\n [submit]=\"verify\"\n [dirtySubmitButton]=\"false\"\n *fsSkeleton=\"verificationMethod\">\n <mat-card>\n <mat-card-header>\n <mat-card-title>\n Enable 2-Step Verification\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <fs-2fa-verification\n #verification\n [verificationMethod]=\"verificationMethod\"\n [showTrustedDevice]=\"true\"\n [(code)]=\"code\"\n [resend]=\"resend\">\n </fs-2fa-verification>\n <div class=\"buttons\">\n <button\n mat-flat-button\n type=\"submit\"\n color=\"primary\">\n Verify\n </button>\n <button\n mat-button\n [fs2faVerificationResend]=\"verification\"\n type=\"button\">\n Resend\n </button>\n <button\n mat-button\n (click)=\"cancel()\"\n type=\"button\">\n Cancel\n </button>\n </div>\n </mat-card-content>\n </mat-card>\n</form>","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { EmailComponent, VerifyComponent } from './views';\n\n\nconst routes: Routes = [\n { path: '', component: EmailComponent, pathMatch: 'full' },\n { path: 'verify', component: VerifyComponent },\n];\n\n@NgModule({\n imports: [\n RouterModule.forChild(routes),\n ],\n exports: [\n RouterModule,\n ],\n})\nexport class VerificationSetupRoutingModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { FsFormModule } from '@firestitch/form';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\n\nimport { Fs2faVerificationModule } from '../verification';\nimport { Fs2faVerificationMethodsModule } from '../verification-methods';\n\nimport { VerificationMethodData } from './data';\nimport { VerificationSetupService } from './services';\nimport { VerificationSetupRoutingModule } from './verification-setup-routing.module';\nimport { EmailComponent, VerifyComponent } from './views';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatButtonModule,\n MatCardModule,\n MatInputModule,\n MatFormFieldModule,\n\n FsFormModule,\n FsSkeletonModule,\n FsLabelModule,\n Fs2faVerificationMethodsModule,\n Fs2faVerificationModule,\n\n VerificationSetupRoutingModule,\n ],\n declarations: [\n EmailComponent,\n VerifyComponent,\n ],\n providers: [\n VerificationMethodData,\n VerificationSetupService,\n ],\n})\nexport class FsVerificationSetupModule { }\n","import { inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\n\nimport { FsCookie } from '@firestitch/cookie';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ForceVerificationSetupGuard {\n\n private _cookie = inject(FsCookie);\n private _router = inject(Router);\n\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree {\n if (this._cookie.get('Token-Force2fa')) {\n const redirect = window.location.pathname + window.location.search;\n\n return this._router\n .createUrlTree(['/verification'], { queryParams: { redirect } });\n }\n\n return true;\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i6","i7","i8","i9","i10","i11.CodeInputComponent","i3.CodeInputComponent","i3","i4","i5","i11.Fs2faVerificationComponent","EmailComponent","i11","i12.Fs2faVerificationComponent","i6.DefaultedComponent","i6.VerificationMethodsComponent","i9.DefaultedComponent","i2.TwoFactorManageService","i6.Fs2faVerificationComponent","i7.Fs2faVerificationResendDirective"],"mappings":"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"}
|