@firestitch/2fa 12.5.0 → 12.5.1

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.
Files changed (84) hide show
  1. package/app/enums/verification-method-type.enum.d.ts +5 -5
  2. package/app/interfaces/verification-method.interface.d.ts +11 -11
  3. package/app/modules/code-input/code-input.module.d.ts +8 -8
  4. package/app/modules/code-input/components/code-input/code-input.component.d.ts +13 -13
  5. package/app/modules/code-input/components/code-input/index.d.ts +1 -1
  6. package/app/modules/code-input/index.d.ts +1 -1
  7. package/app/modules/defaulted/components/defaulted/defaulted.component.d.ts +5 -5
  8. package/app/modules/defaulted/components/defaulted/index.d.ts +1 -1
  9. package/app/modules/defaulted/defaulted.module.d.ts +7 -7
  10. package/app/modules/manage/components/2fa-manage/2fa-manage.component.d.ts +28 -28
  11. package/app/modules/manage/components/2fa-manage/index.d.ts +1 -1
  12. package/app/modules/manage/components/app/app.component.d.ts +31 -31
  13. package/app/modules/manage/components/app/index.d.ts +1 -1
  14. package/app/modules/manage/components/email/email.component.d.ts +26 -26
  15. package/app/modules/manage/components/email/index.d.ts +1 -1
  16. package/app/modules/manage/components/emails/emails.component.d.ts +17 -17
  17. package/app/modules/manage/components/emails/index.d.ts +1 -1
  18. package/app/modules/manage/components/manage-methods/index.d.ts +1 -1
  19. package/app/modules/manage/components/manage-methods/manage-methods.component.d.ts +35 -35
  20. package/app/modules/manage/components/number/index.d.ts +1 -1
  21. package/app/modules/manage/components/number/number.component.d.ts +27 -27
  22. package/app/modules/manage/components/numbers/index.d.ts +1 -1
  23. package/app/modules/manage/components/numbers/numbers.component.d.ts +18 -18
  24. package/app/modules/manage/components/verification-methods/index.d.ts +1 -1
  25. package/app/modules/manage/components/verification-methods/verification-methods.component.d.ts +20 -20
  26. package/app/modules/manage/fs-2f-manage.module.d.ts +32 -32
  27. package/app/modules/manage/services/index.d.ts +1 -1
  28. package/app/modules/manage/services/two-factor-manage.service.d.ts +42 -42
  29. package/app/modules/resend/components/resend/index.d.ts +1 -1
  30. package/app/modules/resend/components/resend/resend.component.d.ts +14 -14
  31. package/app/modules/resend/resend.module.d.ts +9 -9
  32. package/app/modules/verification/components/2fa-verification/2fa-verification.component.d.ts +33 -33
  33. package/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.d.ts +17 -17
  34. package/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.d.ts +22 -22
  35. package/app/modules/verification/fs-2fa-verification.module.d.ts +23 -23
  36. package/app/modules/verification-methods/components/verification-methods/verification-methods.component.d.ts +21 -21
  37. package/app/modules/verification-methods/fs-2f-verification-methods.module.d.ts +14 -14
  38. package/bundles/firestitch-2fa.umd.js +1308 -1308
  39. package/bundles/firestitch-2fa.umd.js.map +1 -1
  40. package/esm2015/app/enums/verification-method-type.enum.js +6 -6
  41. package/esm2015/app/interfaces/verification-method.interface.js +1 -1
  42. package/esm2015/app/modules/code-input/code-input.module.js +25 -25
  43. package/esm2015/app/modules/code-input/components/code-input/code-input.component.js +36 -36
  44. package/esm2015/app/modules/code-input/components/code-input/index.js +1 -1
  45. package/esm2015/app/modules/code-input/index.js +1 -1
  46. package/esm2015/app/modules/defaulted/components/defaulted/defaulted.component.js +15 -15
  47. package/esm2015/app/modules/defaulted/components/defaulted/index.js +1 -1
  48. package/esm2015/app/modules/defaulted/defaulted.module.js +17 -17
  49. package/esm2015/app/modules/manage/components/2fa-manage/2fa-manage.component.js +100 -100
  50. package/esm2015/app/modules/manage/components/2fa-manage/index.js +1 -1
  51. package/esm2015/app/modules/manage/components/app/app.component.js +82 -82
  52. package/esm2015/app/modules/manage/components/app/index.js +1 -1
  53. package/esm2015/app/modules/manage/components/email/email.component.js +82 -82
  54. package/esm2015/app/modules/manage/components/email/index.js +1 -1
  55. package/esm2015/app/modules/manage/components/emails/emails.component.js +42 -42
  56. package/esm2015/app/modules/manage/components/emails/index.js +1 -1
  57. package/esm2015/app/modules/manage/components/manage-methods/index.js +1 -1
  58. package/esm2015/app/modules/manage/components/manage-methods/manage-methods.component.js +125 -125
  59. package/esm2015/app/modules/manage/components/number/index.js +1 -1
  60. package/esm2015/app/modules/manage/components/number/number.component.js +84 -84
  61. package/esm2015/app/modules/manage/components/numbers/index.js +1 -1
  62. package/esm2015/app/modules/manage/components/numbers/numbers.component.js +43 -43
  63. package/esm2015/app/modules/manage/components/verification-methods/index.js +1 -1
  64. package/esm2015/app/modules/manage/components/verification-methods/verification-methods.component.js +64 -64
  65. package/esm2015/app/modules/manage/fs-2f-manage.module.js +112 -112
  66. package/esm2015/app/modules/manage/services/index.js +1 -1
  67. package/esm2015/app/modules/manage/services/two-factor-manage.service.js +132 -132
  68. package/esm2015/app/modules/resend/components/resend/index.js +1 -1
  69. package/esm2015/app/modules/resend/components/resend/resend.component.js +39 -39
  70. package/esm2015/app/modules/resend/resend.module.js +29 -29
  71. package/esm2015/app/modules/verification/components/2fa-verification/2fa-verification.component.js +112 -112
  72. package/esm2015/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.js +58 -58
  73. package/esm2015/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.js +62 -62
  74. package/esm2015/app/modules/verification/fs-2fa-verification.module.js +87 -87
  75. package/esm2015/app/modules/verification-methods/components/verification-methods/verification-methods.component.js +65 -65
  76. package/esm2015/app/modules/verification-methods/fs-2f-verification-methods.module.js +47 -47
  77. package/esm2015/firestitch-2fa.js +4 -4
  78. package/esm2015/public_api.js +7 -7
  79. package/fesm2015/firestitch-2fa.js +1185 -1185
  80. package/fesm2015/firestitch-2fa.js.map +1 -1
  81. package/firestitch-2fa.d.ts +5 -5
  82. package/package.json +1 -1
  83. package/public_api.d.ts +8 -8
  84. package/styles.scss +0 -0
@@ -1,30 +1,30 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
4
- import { ResendComponent } from './components/resend';
5
- import * as i0 from "@angular/core";
6
- export class ResendModule {
7
- }
8
- ResendModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- ResendModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, declarations: [ResendComponent], imports: [CommonModule,
10
- MatProgressSpinnerModule], exports: [ResendComponent] });
11
- ResendModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, imports: [[
12
- CommonModule,
13
- MatProgressSpinnerModule,
14
- ]] });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, decorators: [{
16
- type: NgModule,
17
- args: [{
18
- imports: [
19
- CommonModule,
20
- MatProgressSpinnerModule,
21
- ],
22
- declarations: [
23
- ResendComponent,
24
- ],
25
- exports: [
26
- ResendComponent,
27
- ],
28
- }]
29
- }] });
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
4
+ import { ResendComponent } from './components/resend';
5
+ import * as i0 from "@angular/core";
6
+ export class ResendModule {
7
+ }
8
+ ResendModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ ResendModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, declarations: [ResendComponent], imports: [CommonModule,
10
+ MatProgressSpinnerModule], exports: [ResendComponent] });
11
+ ResendModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, imports: [[
12
+ CommonModule,
13
+ MatProgressSpinnerModule,
14
+ ]] });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ imports: [
19
+ CommonModule,
20
+ MatProgressSpinnerModule,
21
+ ],
22
+ declarations: [
23
+ ResendComponent,
24
+ ],
25
+ exports: [
26
+ ResendComponent,
27
+ ],
28
+ }]
29
+ }] });
30
30
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZW5kLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9yZXNlbmQvcmVzZW5kLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBZ0J0RCxNQUFNLE9BQU8sWUFBWTs7MEdBQVosWUFBWTsyR0FBWixZQUFZLGlCQU5yQixlQUFlLGFBTGYsWUFBWTtRQUVaLHdCQUF3QixhQU14QixlQUFlOzJHQUdOLFlBQVksWUFaZDtZQUNQLFlBQVk7WUFFWix3QkFBd0I7U0FDekI7NEZBUVUsWUFBWTtrQkFieEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFFWix3QkFBd0I7cUJBQ3pCO29CQUNELFlBQVksRUFBRTt3QkFDWixlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5cbmltcG9ydCB7IFJlc2VuZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXNlbmQnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG5cbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFJlc2VuZENvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJlc2VuZENvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVzZW5kTW9kdWxlIHtcbn1cbiJdfQ==
@@ -1,113 +1,113 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
- import { FsDialog } from '@firestitch/dialog';
3
- import { filter, finalize, takeUntil, tap } from 'rxjs/operators';
4
- import { Fs2faVerificationMethodsComponent } from '../2fa-verification-methods/2fa-verification-methods.component';
5
- import { Subject } from 'rxjs';
6
- import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
7
- import { Fs2faVerificationCodeComponent } from '../2fa-verification-code/2fa-verification-code.component';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@firestitch/dialog";
10
- import * as i2 from "../2fa-verification-code/2fa-verification-code.component";
11
- import * as i3 from "@angular/material/checkbox";
12
- import * as i4 from "../../../resend/components/resend/resend.component";
13
- import * as i5 from "@angular/common";
14
- import * as i6 from "@angular/forms";
15
- export class Fs2faVerificationComponent {
16
- constructor(_cdRef, _dialog) {
17
- this._cdRef = _cdRef;
18
- this._dialog = _dialog;
19
- this.showTrustedDevice = true;
20
- this.verified = new EventEmitter();
21
- this.codeChanged = new EventEmitter();
22
- this.codeCompleted = new EventEmitter();
23
- this.code = '';
24
- this.trustedDevice = true;
25
- this.VerificationMethodType = VerificationMethodType;
26
- this._destroy$ = new Subject();
27
- this.resendCode = () => {
28
- return this.resend()
29
- .pipe(tap(() => {
30
- this.code = '';
31
- }), finalize(() => {
32
- this.verificationCodeComponent.focus();
33
- }));
34
- };
35
- }
36
- get recipient() {
37
- if (this.verificationMethod.type === VerificationMethodType.Email) {
38
- return this.verificationMethod.email;
39
- }
40
- if (this.verificationMethod.type === VerificationMethodType.Sms) {
41
- return this.verificationMethod.phoneNumber;
42
- }
43
- }
44
- ngOnInit() {
45
- this.codeChanged
46
- .pipe(takeUntil(this._destroy$))
47
- .subscribe((code) => {
48
- this.code = code;
49
- });
50
- }
51
- ngOnDestroy() {
52
- this._destroy$.next();
53
- this._destroy$.complete();
54
- }
55
- ngAfterViewInit() {
56
- this.verificationCodeComponent.focus();
57
- }
58
- showVerificationMethods() {
59
- this.getVerificationMethods()
60
- .subscribe((verificationMethods) => {
61
- this._dialog.open(Fs2faVerificationMethodsComponent, {
62
- data: {
63
- verificationMethod: this.verificationMethod,
64
- verificationMethods,
65
- selectVerificationMethod: this.selectVerificationMethod,
66
- }
67
- })
68
- .afterClosed()
69
- .pipe(filter((verificationMethod) => !!verificationMethod))
70
- .subscribe((verificationMethod) => {
71
- this.verificationMethod = verificationMethod;
72
- this.code = '';
73
- this._cdRef.markForCheck();
74
- setTimeout(() => {
75
- this.verificationCodeComponent.focus();
76
- });
77
- });
78
- });
79
- }
80
- }
81
- Fs2faVerificationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FsDialog }], target: i0.ɵɵFactoryTarget.Component });
82
- Fs2faVerificationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faVerificationComponent, selector: "fs-2fa-verification", inputs: { verificationMethod: "verificationMethod", resend: "resend", showTrustedDevice: "showTrustedDevice", getVerificationMethods: "getVerificationMethods", selectVerificationMethod: "selectVerificationMethod" }, outputs: { verified: "verified", codeChanged: "codeChanged", codeCompleted: "codeCompleted" }, viewQueries: [{ propertyName: "verificationCodeComponent", first: true, predicate: Fs2faVerificationCodeComponent, descendants: true }], ngImport: i0, template: "<div class=\"code-container\">\n <fs-2fa-verification-code\n [recipient]=\"recipient\"\n [type]=\"verificationMethod.type\"\n [code]=\"code\"\n (codeChanged)=\"codeChanged.emit($event)\"\n (codeCompleted)=\"codeCompleted.emit()\">\n </fs-2fa-verification-code>\n</div>\n\n<div class=\"additional\">\n <div \n class=\"trust-device\"\n *ngIf=\"showTrustedDevice\">\n <mat-checkbox\n name=\"trust-device\"\n [(ngModel)]=\"trustedDevice\">\n Trust this device\n </mat-checkbox>\n </div>\n\n <span class=\"resend\">\n <app-resend [resend]=\"resendCode\"></app-resend>\n </span>\n</div>", styles: [".code-container{text-align:center}.additional{display:flex;justify-content:space-between;align-items:center;margin:4px 0 5px}.additional small{color:inherit}.additional .resend{cursor:pointer;text-transform:none}.additional .resend mat-spinner{display:inline-block;vertical-align:middle}\n"], components: [{ type: i2.Fs2faVerificationCodeComponent, selector: "fs-2fa-verification-code", inputs: ["type", "recipient", "code"], outputs: ["codeChanged", "codeCompleted"] }, { type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i4.ResendComponent, selector: "app-resend", inputs: ["resend"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationComponent, decorators: [{
84
- type: Component,
85
- args: [{
86
- selector: 'fs-2fa-verification',
87
- templateUrl: './2fa-verification.component.html',
88
- styleUrls: [
89
- './2fa-verification.component.scss',
90
- ],
91
- changeDetection: ChangeDetectionStrategy.OnPush,
92
- }]
93
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.FsDialog }]; }, propDecorators: { verificationCodeComponent: [{
94
- type: ViewChild,
95
- args: [Fs2faVerificationCodeComponent]
96
- }], verificationMethod: [{
97
- type: Input
98
- }], resend: [{
99
- type: Input
100
- }], showTrustedDevice: [{
101
- type: Input
102
- }], getVerificationMethods: [{
103
- type: Input
104
- }], selectVerificationMethod: [{
105
- type: Input
106
- }], verified: [{
107
- type: Output
108
- }], codeChanged: [{
109
- type: Output
110
- }], codeCompleted: [{
111
- type: Output
112
- }] } });
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
+ import { FsDialog } from '@firestitch/dialog';
3
+ import { filter, finalize, takeUntil, tap } from 'rxjs/operators';
4
+ import { Fs2faVerificationMethodsComponent } from '../2fa-verification-methods/2fa-verification-methods.component';
5
+ import { Subject } from 'rxjs';
6
+ import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
7
+ import { Fs2faVerificationCodeComponent } from '../2fa-verification-code/2fa-verification-code.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@firestitch/dialog";
10
+ import * as i2 from "../2fa-verification-code/2fa-verification-code.component";
11
+ import * as i3 from "@angular/material/checkbox";
12
+ import * as i4 from "../../../resend/components/resend/resend.component";
13
+ import * as i5 from "@angular/common";
14
+ import * as i6 from "@angular/forms";
15
+ export class Fs2faVerificationComponent {
16
+ constructor(_cdRef, _dialog) {
17
+ this._cdRef = _cdRef;
18
+ this._dialog = _dialog;
19
+ this.showTrustedDevice = true;
20
+ this.verified = new EventEmitter();
21
+ this.codeChanged = new EventEmitter();
22
+ this.codeCompleted = new EventEmitter();
23
+ this.code = '';
24
+ this.trustedDevice = true;
25
+ this.VerificationMethodType = VerificationMethodType;
26
+ this._destroy$ = new Subject();
27
+ this.resendCode = () => {
28
+ return this.resend()
29
+ .pipe(tap(() => {
30
+ this.code = '';
31
+ }), finalize(() => {
32
+ this.verificationCodeComponent.focus();
33
+ }));
34
+ };
35
+ }
36
+ get recipient() {
37
+ if (this.verificationMethod.type === VerificationMethodType.Email) {
38
+ return this.verificationMethod.email;
39
+ }
40
+ if (this.verificationMethod.type === VerificationMethodType.Sms) {
41
+ return this.verificationMethod.phoneNumber;
42
+ }
43
+ }
44
+ ngOnInit() {
45
+ this.codeChanged
46
+ .pipe(takeUntil(this._destroy$))
47
+ .subscribe((code) => {
48
+ this.code = code;
49
+ });
50
+ }
51
+ ngOnDestroy() {
52
+ this._destroy$.next();
53
+ this._destroy$.complete();
54
+ }
55
+ ngAfterViewInit() {
56
+ this.verificationCodeComponent.focus();
57
+ }
58
+ showVerificationMethods() {
59
+ this.getVerificationMethods()
60
+ .subscribe((verificationMethods) => {
61
+ this._dialog.open(Fs2faVerificationMethodsComponent, {
62
+ data: {
63
+ verificationMethod: this.verificationMethod,
64
+ verificationMethods,
65
+ selectVerificationMethod: this.selectVerificationMethod,
66
+ }
67
+ })
68
+ .afterClosed()
69
+ .pipe(filter((verificationMethod) => !!verificationMethod))
70
+ .subscribe((verificationMethod) => {
71
+ this.verificationMethod = verificationMethod;
72
+ this.code = '';
73
+ this._cdRef.markForCheck();
74
+ setTimeout(() => {
75
+ this.verificationCodeComponent.focus();
76
+ });
77
+ });
78
+ });
79
+ }
80
+ }
81
+ Fs2faVerificationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FsDialog }], target: i0.ɵɵFactoryTarget.Component });
82
+ Fs2faVerificationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faVerificationComponent, selector: "fs-2fa-verification", inputs: { verificationMethod: "verificationMethod", resend: "resend", showTrustedDevice: "showTrustedDevice", getVerificationMethods: "getVerificationMethods", selectVerificationMethod: "selectVerificationMethod" }, outputs: { verified: "verified", codeChanged: "codeChanged", codeCompleted: "codeCompleted" }, viewQueries: [{ propertyName: "verificationCodeComponent", first: true, predicate: Fs2faVerificationCodeComponent, descendants: true }], ngImport: i0, template: "<div class=\"code-container\">\n <fs-2fa-verification-code\n [recipient]=\"recipient\"\n [type]=\"verificationMethod.type\"\n [code]=\"code\"\n (codeChanged)=\"codeChanged.emit($event)\"\n (codeCompleted)=\"codeCompleted.emit()\">\n </fs-2fa-verification-code>\n</div>\n\n<div class=\"additional\">\n <div \n class=\"trust-device\"\n *ngIf=\"showTrustedDevice\">\n <mat-checkbox\n name=\"trust-device\"\n [(ngModel)]=\"trustedDevice\">\n Trust this device\n </mat-checkbox>\n </div>\n\n <span class=\"resend\">\n <app-resend [resend]=\"resendCode\"></app-resend>\n </span>\n</div>", styles: [".code-container{text-align:center}.additional{display:flex;justify-content:space-between;align-items:center;margin:4px 0 5px}.additional small{color:inherit}.additional .resend{cursor:pointer;text-transform:none}.additional .resend mat-spinner{display:inline-block;vertical-align:middle}\n"], components: [{ type: i2.Fs2faVerificationCodeComponent, selector: "fs-2fa-verification-code", inputs: ["type", "recipient", "code"], outputs: ["codeChanged", "codeCompleted"] }, { type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i4.ResendComponent, selector: "app-resend", inputs: ["resend"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationComponent, decorators: [{
84
+ type: Component,
85
+ args: [{
86
+ selector: 'fs-2fa-verification',
87
+ templateUrl: './2fa-verification.component.html',
88
+ styleUrls: [
89
+ './2fa-verification.component.scss',
90
+ ],
91
+ changeDetection: ChangeDetectionStrategy.OnPush,
92
+ }]
93
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.FsDialog }]; }, propDecorators: { verificationCodeComponent: [{
94
+ type: ViewChild,
95
+ args: [Fs2faVerificationCodeComponent]
96
+ }], verificationMethod: [{
97
+ type: Input
98
+ }], resend: [{
99
+ type: Input
100
+ }], showTrustedDevice: [{
101
+ type: Input
102
+ }], getVerificationMethods: [{
103
+ type: Input
104
+ }], selectVerificationMethod: [{
105
+ type: Input
106
+ }], verified: [{
107
+ type: Output
108
+ }], codeChanged: [{
109
+ type: Output
110
+ }], codeCompleted: [{
111
+ type: Output
112
+ }] } });
113
113
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMmZhLXZlcmlmaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvdmVyaWZpY2F0aW9uL2NvbXBvbmVudHMvMmZhLXZlcmlmaWNhdGlvbi8yZmEtdmVyaWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy92ZXJpZmljYXRpb24vY29tcG9uZW50cy8yZmEtdmVyaWZpY2F0aW9uLzJmYS12ZXJpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2xFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ25ILE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDekYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7Ozs7O0FBVzFHLE1BQU0sT0FBTywwQkFBMEI7SUFtQ3JDLFlBQ1UsTUFBeUIsRUFDekIsT0FBaUI7UUFEakIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQXpCcEIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBU3pCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFD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UUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsV0FBVyxFQUFFLG1DQUFtQztvQkFDaEQsU0FBUyxFQUFFO3dCQUNULG1DQUFtQztxQkFDcEM7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOytIQUlRLHlCQUF5QjtzQkFEL0IsU0FBUzt1QkFBQyw4QkFBOEI7Z0JBSWxDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUlDLHNCQUFzQjtzQkFENUIsS0FBSztnQkFJQyx3QkFBd0I7c0JBRDlCLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxNQUFNO2dCQUlBLFdBQVc7c0JBRGpCLE1BQU07Z0JBSUEsYUFBYTtzQkFEbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGc0RpYWxvZyB9IGZyb20gJ0BmaXJlc3RpdGNoL2RpYWxvZyc7XG5cbmltcG9ydCB7IGZpbHRlciwgZmluYWxpemUsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBJRnNWZXJpZmljYXRpb25NZXRob2QgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL3ZlcmlmaWNhdGlvbi1tZXRob2QuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZzMmZhVmVyaWZpY2F0aW9uTWV0aG9kc0NvbXBvbmVudCB9IGZyb20gJy4uLzJmYS12ZXJpZmljYXRpb24tbWV0aG9kcy8yZmEtdmVyaWZpY2F0aW9uLW1ldGhvZHMuY29tcG9uZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcy92ZXJpZmljYXRpb24tbWV0aG9kLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBGczJmYVZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQgfSBmcm9tICcuLi8yZmEtdmVyaWZpY2F0aW9uLWNvZGUvMmZhLXZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtMmZhLXZlcmlmaWNhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi8yZmEtdmVyaWZpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vMmZhLXZlcmlmaWNhdGlvbi5jb21wb25lbnQuc2NzcycsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGczJmYVZlcmlmaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKEZzMmZhVmVyaWZpY2F0aW9uQ29kZUNvbXBvbmVudClcbiAgcHVibGljIHZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQ6IEZzMmZhVmVyaWZpY2F0aW9uQ29kZUNvbXBvbmVudDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdmVyaWZpY2F0aW9uTWV0aG9kOiBJRnNWZXJpZmljYXRpb25NZXRob2Q7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc2VuZDogKCkgPT4gT2JzZXJ2YWJsZTx2b2lkPjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1RydXN0ZWREZXZpY2UgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXRWZXJpZmljYXRpb25NZXRob2RzOiAoKSA9PiBPYnNlcnZhYmxlPElGc1ZlcmlmaWNhdGlvbk1ldGhvZFtdPjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0VmVyaWZpY2F0aW9uTWV0aG9kOiAodmVyaWZpY2F0aW9uTWV0aG9kOiBJRnNWZXJpZmljYXRpb25NZXRob2QpID0+IE9ic2VydmFibGU8SUZzVmVyaWZpY2F0aW9uTWV0aG9kPjtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHZlcmlmaWVkID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY29kZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd24+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjb2RlQ29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuXG4gIHB1YmxpYyBjb2RlID0gJyc7XG4gIHB1YmxpYyB0cnVzdGVkRGV2aWNlID0gdHJ1ZTtcbiAgcHVibGljIFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUgPSBWZXJpZmljYXRpb25NZXRob2RUeXBlO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBGc0RpYWxvZyxcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgcmVjaXBpZW50KCk6IHN0cmluZyB7XG4gICAgaWYodGhpcy52ZXJpZmljYXRpb25NZXRob2QudHlwZSA9PT0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5FbWFpbCkge1xuICAgICAgcmV0dXJuIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kLmVtYWlsO1xuICAgIH1cblxuICAgIGlmKHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kLnR5cGUgPT09IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuU21zKSB7XG4gICAgICByZXR1cm4gdGhpcy52ZXJpZmljYXRpb25NZXRob2QucGhvbmVOdW1iZXI7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29kZUNoYW5nZWRcbiAgICAucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgKVxuICAgIC5zdWJzY3JpYmUoKGNvZGU6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy52ZXJpZmljYXRpb25Db2RlQ29tcG9uZW50LmZvY3VzKCk7ICAgIFxuICB9XG5cbiAgcHVibGljIHJlc2VuZENvZGUgPSAoKTogT2JzZXJ2YWJsZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMucmVzZW5kKClcbiAgICAucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY29kZSA9ICcnO1xuICAgICAgfSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudmVyaWZpY2F0aW9uQ29kZUNvbXBvbmVudC5mb2N1cygpOyAgXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNob3dWZXJpZmljYXRpb25NZXRob2RzKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0VmVyaWZpY2F0aW9uTWV0aG9kcygpXG4gICAgLnN1YnNjcmliZSgodmVyaWZpY2F0aW9uTWV0aG9kcykgPT4ge1xuICAgICAgdGhpcy5fZGlhbG9nLm9wZW4oXG4gICAgICAgIEZzMmZhVmVyaWZpY2F0aW9uTWV0aG9kc0NvbXBvbmVudCxcbiAgICAgICAge1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHZlcmlmaWNhdGlvbk1ldGhvZDogdGhpcy52ZXJpZmljYXRpb25NZXRob2QsXG4gICAgICAgICAgICB2ZXJpZmljYXRpb25NZXRob2RzLFxuICAgICAgICAgICAgc2VsZWN0VmVyaWZpY2F0aW9uTWV0aG9kOiB0aGlzLnNlbGVjdFZlcmlmaWNhdGlvbk1ldGhvZCxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKCh2ZXJpZmljYXRpb25NZXRob2QpID0+ICEhdmVyaWZpY2F0aW9uTWV0aG9kKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCh2ZXJpZmljYXRpb25NZXRob2QpID0+IHtcbiAgICAgICAgICB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZCA9IHZlcmlmaWNhdGlvbk1ldGhvZDtcbiAgICAgICAgICB0aGlzLmNvZGUgPSAnJztcblxuICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQuZm9jdXMoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNvZGUtY29udGFpbmVyXCI+XG4gIDxmcy0yZmEtdmVyaWZpY2F0aW9uLWNvZGVcbiAgICBbcmVjaXBpZW50XT1cInJlY2lwaWVudFwiXG4gICAgW3R5cGVdPVwidmVyaWZpY2F0aW9uTWV0aG9kLnR5cGVcIlxuICAgIFtjb2RlXT1cImNvZGVcIlxuICAgIChjb2RlQ2hhbmdlZCk9XCJjb2RlQ2hhbmdlZC5lbWl0KCRldmVudClcIlxuICAgIChjb2RlQ29tcGxldGVkKT1cImNvZGVDb21wbGV0ZWQuZW1pdCgpXCI+XG4gIDwvZnMtMmZhLXZlcmlmaWNhdGlvbi1jb2RlPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJhZGRpdGlvbmFsXCI+XG4gIDxkaXYgXG4gICAgICBjbGFzcz1cInRydXN0LWRldmljZVwiXG4gICAgICAqbmdJZj1cInNob3dUcnVzdGVkRGV2aWNlXCI+XG4gICAgPG1hdC1jaGVja2JveFxuICAgICAgbmFtZT1cInRydXN0LWRldmljZVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInRydXN0ZWREZXZpY2VcIj5cbiAgICAgIFRydXN0IHRoaXMgZGV2aWNlXG4gICAgPC9tYXQtY2hlY2tib3g+XG4gIDwvZGl2PlxuXG4gIDxzcGFuIGNsYXNzPVwicmVzZW5kXCI+XG4gICAgPGFwcC1yZXNlbmQgW3Jlc2VuZF09XCJyZXNlbmRDb2RlXCI+PC9hcHAtcmVzZW5kPlxuICA8L3NwYW4+XG48L2Rpdj4iXX0=
@@ -1,59 +1,59 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
- import { ControlContainer, NgForm } from '@angular/forms';
3
- import { CodeInputComponent } from '../../../../modules/code-input/components/code-input';
4
- import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../../code-input/components/code-input/code-input.component";
7
- import * as i2 from "@angular/common";
8
- export class Fs2faVerificationCodeComponent {
9
- constructor() {
10
- this.codeChanged = new EventEmitter();
11
- this.codeCompleted = new EventEmitter();
12
- this.VerificationMethodType = VerificationMethodType;
13
- }
14
- codeChange(code) {
15
- this.code = code;
16
- this.codeChanged.emit(this.code);
17
- }
18
- focus() {
19
- this.codeInputComponent.focus();
20
- }
21
- }
22
- Fs2faVerificationCodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- Fs2faVerificationCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faVerificationCodeComponent, selector: "fs-2fa-verification-code", inputs: { type: "type", recipient: "recipient", code: "code" }, outputs: { codeChanged: "codeChanged", codeCompleted: "codeCompleted" }, viewQueries: [{ propertyName: "codeInputComponent", first: true, predicate: CodeInputComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"type === VerificationMethodType.Sms\">\n <p class=\"description\">\n A text message with a verification code was just\n sent to <span style=\"white-space: nowrap;\">{{ recipient }}</span> to verify it's you.\n </p>\n\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n</ng-container>\n\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\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\n<ng-template #input> \n <app-code-input \n [code]=\"code\"\n (codeChanged)=\"codeChange($event)\"\n (codeCompleted)=\"codeCompleted.emit()\">\n </app-code-input> \n</ng-template> ", styles: ["mat-form-field{width:100%}mat-form-field ::ng-deep .mat-form-field-subscript-wrapper{min-height:unset!important}mat-form-field ::ng-deep .mat-form-field-subscript-wrapper .fs-form-error{padding-bottom:5px}app-code-input{margin-bottom:5px}\n"], components: [{ type: i1.CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], viewProviders: [
24
- {
25
- provide: ControlContainer,
26
- useExisting: NgForm,
27
- },
28
- ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationCodeComponent, decorators: [{
30
- type: Component,
31
- args: [{
32
- selector: 'fs-2fa-verification-code',
33
- templateUrl: './2fa-verification-code.component.html',
34
- styleUrls: [
35
- './2fa-verification-code.component.scss',
36
- ],
37
- changeDetection: ChangeDetectionStrategy.OnPush,
38
- viewProviders: [
39
- {
40
- provide: ControlContainer,
41
- useExisting: NgForm,
42
- },
43
- ],
44
- }]
45
- }], propDecorators: { codeInputComponent: [{
46
- type: ViewChild,
47
- args: [CodeInputComponent]
48
- }], type: [{
49
- type: Input
50
- }], recipient: [{
51
- type: Input
52
- }], code: [{
53
- type: Input
54
- }], codeChanged: [{
55
- type: Output
56
- }], codeCompleted: [{
57
- type: Output
58
- }] } });
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
+ import { ControlContainer, NgForm } from '@angular/forms';
3
+ import { CodeInputComponent } from '../../../../modules/code-input/components/code-input';
4
+ import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../../code-input/components/code-input/code-input.component";
7
+ import * as i2 from "@angular/common";
8
+ export class Fs2faVerificationCodeComponent {
9
+ constructor() {
10
+ this.codeChanged = new EventEmitter();
11
+ this.codeCompleted = new EventEmitter();
12
+ this.VerificationMethodType = VerificationMethodType;
13
+ }
14
+ codeChange(code) {
15
+ this.code = code;
16
+ this.codeChanged.emit(this.code);
17
+ }
18
+ focus() {
19
+ this.codeInputComponent.focus();
20
+ }
21
+ }
22
+ Fs2faVerificationCodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ Fs2faVerificationCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faVerificationCodeComponent, selector: "fs-2fa-verification-code", inputs: { type: "type", recipient: "recipient", code: "code" }, outputs: { codeChanged: "codeChanged", codeCompleted: "codeCompleted" }, viewQueries: [{ propertyName: "codeInputComponent", first: true, predicate: CodeInputComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"type === VerificationMethodType.Sms\">\n <p class=\"description\">\n A text message with a verification code was just\n sent to <span style=\"white-space: nowrap;\">{{ recipient }}</span> to verify it's you.\n </p>\n\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n</ng-container>\n\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\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\n<ng-template #input> \n <app-code-input \n [code]=\"code\"\n (codeChanged)=\"codeChange($event)\"\n (codeCompleted)=\"codeCompleted.emit()\">\n </app-code-input> \n</ng-template> ", styles: ["mat-form-field{width:100%}mat-form-field ::ng-deep .mat-form-field-subscript-wrapper{min-height:unset!important}mat-form-field ::ng-deep .mat-form-field-subscript-wrapper .fs-form-error{padding-bottom:5px}app-code-input{margin-bottom:5px}\n"], components: [{ type: i1.CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], viewProviders: [
24
+ {
25
+ provide: ControlContainer,
26
+ useExisting: NgForm,
27
+ },
28
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationCodeComponent, decorators: [{
30
+ type: Component,
31
+ args: [{
32
+ selector: 'fs-2fa-verification-code',
33
+ templateUrl: './2fa-verification-code.component.html',
34
+ styleUrls: [
35
+ './2fa-verification-code.component.scss',
36
+ ],
37
+ changeDetection: ChangeDetectionStrategy.OnPush,
38
+ viewProviders: [
39
+ {
40
+ provide: ControlContainer,
41
+ useExisting: NgForm,
42
+ },
43
+ ],
44
+ }]
45
+ }], propDecorators: { codeInputComponent: [{
46
+ type: ViewChild,
47
+ args: [CodeInputComponent]
48
+ }], type: [{
49
+ type: Input
50
+ }], recipient: [{
51
+ type: Input
52
+ }], code: [{
53
+ type: Input
54
+ }], codeChanged: [{
55
+ type: Output
56
+ }], codeCompleted: [{
57
+ type: Output
58
+ }] } });
59
59
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMmZhLXZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy92ZXJpZmljYXRpb24vY29tcG9uZW50cy8yZmEtdmVyaWZpY2F0aW9uLWNvZGUvMmZhLXZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy92ZXJpZmljYXRpb24vY29tcG9uZW50cy8yZmEtdmVyaWZpY2F0aW9uLWNvZGUvMmZhLXZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7QUFtQnpGLE1BQU0sT0FBTyw4QkFBOEI7SUFkM0M7UUE2QlMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBR3pDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6QywyQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQztLQVd4RDtJQVRRLFVBQVUsQ0FBQyxJQUFJO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzs0SEE3QlUsOEJBQThCO2dIQUE5Qiw4QkFBOEIsNlBBRTlCLGtCQUFrQixnREMvQi9CLDhpQ0E2QmUsNG5CRFBFO1FBQ2I7WUFDRSxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLFdBQVcsRUFBRSxNQUFNO1NBQ3BCO0tBQ0Y7NEZBRVUsOEJBQThCO2tCQWQxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFdBQVcsRUFBRSx3Q0FBd0M7b0JBQ3JELFNBQVMsRUFBRTt3QkFDVCx3Q0FBd0M7cUJBQ3pDO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUU7d0JBQ2I7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsV0FBVyxFQUFFLE1BQU07eUJBQ3BCO3FCQUNGO2lCQUNGOzhCQUlRLGtCQUFrQjtzQkFEeEIsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBSXRCLElBQUk7c0JBRFYsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLE1BQU07Z0JBSUEsYUFBYTtzQkFEbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvZGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZHVsZXMvY29kZS1pbnB1dC9jb21wb25lbnRzL2NvZGUtaW5wdXQnO1xuaW1wb3J0IHsgVmVyaWZpY2F0aW9uTWV0aG9kVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2VudW1zL3ZlcmlmaWNhdGlvbi1tZXRob2QtdHlwZS5lbnVtJztcblxuaW1wb3J0IHsgSUZzVmVyaWZpY2F0aW9uTWV0aG9kIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy92ZXJpZmljYXRpb24tbWV0aG9kLmludGVyZmFjZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtMmZhLXZlcmlmaWNhdGlvbi1jb2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuLzJmYS12ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuLzJmYS12ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQuc2NzcycsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcbiAgICAgIHVzZUV4aXN0aW5nOiBOZ0Zvcm0sXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnMyZmFWZXJpZmljYXRpb25Db2RlQ29tcG9uZW50IHtcblxuICBAVmlld0NoaWxkKENvZGVJbnB1dENvbXBvbmVudClcbiAgcHVibGljIGNvZGVJbnB1dENvbXBvbmVudDogQ29kZUlucHV0Q29tcG9uZW50O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0eXBlOiBWZXJpZmljYXRpb25NZXRob2RUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZWNpcGllbnQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29kZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNvZGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjb2RlQ29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHB1YmxpYyBWZXJpZmljYXRpb25NZXRob2RUeXBlID0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZTtcblxuICBwdWJsaWMgY29kZUNoYW5nZShjb2RlKTogdm9pZCB7XG4gICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICB0aGlzLmNvZGVDaGFuZ2VkLmVtaXQodGhpcy5jb2RlKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmNvZGVJbnB1dENvbXBvbmVudC5mb2N1cygpO1xuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSBWZXJpZmljYXRpb25NZXRob2RUeXBlLlNtc1wiPlxuICA8cCBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgQSB0ZXh0IG1lc3NhZ2Ugd2l0aCBhIHZlcmlmaWNhdGlvbiBjb2RlIHdhcyBqdXN0XG4gICAgc2VudCB0byA8c3BhbiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCI+e3sgcmVjaXBpZW50IH19PC9zcGFuPiB0byB2ZXJpZnkgaXQncyB5b3UuXG4gIDwvcD5cblxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwidHlwZSA9PT0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5FbWFpbFwiPlxuICA8cCBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgQW4gZW1haWwgd2l0aCBhIHZlcmlmaWNhdGlvbiBjb2RlIHdhcyBqdXN0IHNlbnQgdG8ge3sgcmVjaXBpZW50IH19IHRvIHZlcmlmeSBpdCdzIHlvdS5cbiAgPC9wPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwidHlwZSA9PT0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5BcHBcIj5cbiAgPHAgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxuICAgIEVudGVyIHRoZSB2ZXJpZmljYXRpb24gY29kZSBnZW5lcmF0ZWQgYnkgeW91ciAyIGZhY3RvciBhdXRoZW50aWNhdG9yIGFwcCB0byB2ZXJpZnkgaXQncyB5b3UuXG4gIDwvcD5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0XCI+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNpbnB1dD4gXG4gPGFwcC1jb2RlLWlucHV0ICBcbiAgICBbY29kZV09XCJjb2RlXCJcbiAgICAoY29kZUNoYW5nZWQpPVwiY29kZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAoY29kZUNvbXBsZXRlZCk9XCJjb2RlQ29tcGxldGVkLmVtaXQoKVwiPlxuICA8L2FwcC1jb2RlLWlucHV0PiBcbjwvbmctdGVtcGxhdGU+ICJdfQ==