@firestitch/2fa 12.1.3 → 12.2.0
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/enums/verification-method-type.enum.d.ts +5 -5
- package/app/interfaces/verification-method.interface.d.ts +11 -11
- package/app/interfaces/verification-provider.interface.d.ts +8 -8
- package/app/modules/code-input/code-input.module.d.ts +8 -8
- package/app/modules/code-input/components/code-input/code-input.component.d.ts +13 -13
- package/app/modules/code-input/components/code-input/index.d.ts +1 -1
- package/app/modules/code-input/index.d.ts +1 -1
- package/app/modules/manage/components/2fa-manage/2fa-manage.component.d.ts +26 -26
- package/app/modules/manage/components/2fa-manage/index.d.ts +1 -1
- package/app/modules/manage/components/app/app.component.d.ts +31 -31
- package/app/modules/manage/components/app/index.d.ts +1 -1
- package/app/modules/manage/components/defaulted/defaulted.component.d.ts +5 -5
- package/app/modules/manage/components/defaulted/index.d.ts +1 -1
- package/app/modules/manage/components/email/email.component.d.ts +25 -25
- package/app/modules/manage/components/email/index.d.ts +1 -1
- package/app/modules/manage/components/emails/emails.component.d.ts +17 -17
- package/app/modules/manage/components/emails/index.d.ts +1 -1
- package/app/modules/manage/components/manage-methods/index.d.ts +1 -1
- package/app/modules/manage/components/manage-methods/manage-methods.component.d.ts +32 -32
- package/app/modules/manage/components/number/index.d.ts +1 -1
- package/app/modules/manage/components/number/number.component.d.ts +26 -26
- package/app/modules/manage/components/numbers/index.d.ts +1 -1
- package/app/modules/manage/components/numbers/numbers.component.d.ts +18 -18
- package/app/modules/manage/components/verification-methods/index.d.ts +1 -1
- package/app/modules/manage/components/verification-methods/verification-methods.component.d.ts +18 -18
- package/app/modules/manage/fs-2f-manage.module.d.ts +31 -31
- package/app/modules/manage/services/index.d.ts +1 -1
- package/app/modules/manage/services/two-factor-manage.service.d.ts +42 -42
- package/app/modules/verification/components/2fa-verification/2fa-verification.component.d.ts +31 -31
- package/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.d.ts +17 -17
- package/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.d.ts +23 -23
- package/app/modules/verification/fs-2fa-verification.module.d.ts +23 -23
- package/app/tokens/verification.token.d.ts +3 -3
- package/bundles/firestitch-2fa.umd.js +1122 -1122
- package/bundles/firestitch-2fa.umd.js.map +1 -1
- package/esm2015/app/enums/verification-method-type.enum.js +6 -6
- package/esm2015/app/interfaces/verification-method.interface.js +1 -1
- package/esm2015/app/interfaces/verification-provider.interface.js +1 -1
- package/esm2015/app/modules/code-input/code-input.module.js +25 -25
- package/esm2015/app/modules/code-input/components/code-input/code-input.component.js +36 -36
- package/esm2015/app/modules/code-input/components/code-input/index.js +1 -1
- package/esm2015/app/modules/code-input/index.js +1 -1
- package/esm2015/app/modules/manage/components/2fa-manage/2fa-manage.component.js +91 -91
- package/esm2015/app/modules/manage/components/2fa-manage/index.js +1 -1
- package/esm2015/app/modules/manage/components/app/app.component.js +81 -81
- package/esm2015/app/modules/manage/components/app/index.js +1 -1
- package/esm2015/app/modules/manage/components/defaulted/defaulted.component.js +15 -15
- package/esm2015/app/modules/manage/components/defaulted/index.js +1 -1
- package/esm2015/app/modules/manage/components/email/email.component.js +80 -80
- package/esm2015/app/modules/manage/components/email/index.js +1 -1
- package/esm2015/app/modules/manage/components/emails/emails.component.js +42 -42
- package/esm2015/app/modules/manage/components/emails/index.js +1 -1
- package/esm2015/app/modules/manage/components/manage-methods/index.js +1 -1
- package/esm2015/app/modules/manage/components/manage-methods/manage-methods.component.js +118 -118
- package/esm2015/app/modules/manage/components/number/index.js +1 -1
- package/esm2015/app/modules/manage/components/number/number.component.js +82 -82
- package/esm2015/app/modules/manage/components/numbers/index.js +1 -1
- package/esm2015/app/modules/manage/components/numbers/numbers.component.js +43 -43
- package/esm2015/app/modules/manage/components/verification-methods/index.js +1 -1
- package/esm2015/app/modules/manage/components/verification-methods/verification-methods.component.js +62 -62
- package/esm2015/app/modules/manage/fs-2f-manage.module.js +107 -107
- package/esm2015/app/modules/manage/services/index.js +1 -1
- package/esm2015/app/modules/manage/services/two-factor-manage.service.js +132 -132
- package/esm2015/app/modules/verification/components/2fa-verification/2fa-verification.component.js +108 -108
- package/esm2015/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.js +56 -56
- package/esm2015/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.js +72 -72
- package/esm2015/app/modules/verification/fs-2fa-verification.module.js +87 -87
- package/esm2015/app/tokens/verification.token.js +2 -2
- package/esm2015/firestitch-2fa.js +4 -4
- package/esm2015/public_api.js +6 -6
- package/fesm2015/firestitch-2fa.js +1011 -1011
- package/fesm2015/firestitch-2fa.js.map +1 -1
- package/firestitch-2fa.d.ts +5 -5
- package/package.json +1 -1
- package/public_api.d.ts +8 -8
|
@@ -1,119 +1,119 @@
|
|
|
1
|
-
import { Component, Inject, ChangeDetectionStrategy, ChangeDetectorRef, } from '@angular/core';
|
|
2
|
-
import { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { NumbersComponent } from '../numbers';
|
|
5
|
-
import { EmailsComponent } from '../emails';
|
|
6
|
-
import { FsVerificationMethodType } from '../../../../enums/verification-method-type.enum';
|
|
7
|
-
import { FsMessage } from '@firestitch/message';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/material/dialog";
|
|
10
|
-
import * as i2 from "@firestitch/message";
|
|
11
|
-
import * as i3 from "@firestitch/dialog";
|
|
12
|
-
import * as i4 from "@angular/material/icon";
|
|
13
|
-
import * as i5 from "../defaulted/defaulted.component";
|
|
14
|
-
import * as i6 from "@angular/material/button";
|
|
15
|
-
import * as i7 from "@angular/common";
|
|
16
|
-
import * as i8 from "@firestitch/phone";
|
|
17
|
-
export class ManageMethodsComponent {
|
|
18
|
-
constructor(_data, _cdRef, _dialog, _message) {
|
|
19
|
-
this._data = _data;
|
|
20
|
-
this._cdRef = _cdRef;
|
|
21
|
-
this._dialog = _dialog;
|
|
22
|
-
this._message = _message;
|
|
23
|
-
this._destroy$ = new Subject();
|
|
24
|
-
}
|
|
25
|
-
ngOnInit() {
|
|
26
|
-
this._defaultCountry = this._data.defaultCountry;
|
|
27
|
-
this.twoFactorManageService = this._data.twoFactorManageService;
|
|
28
|
-
this.twoFactorManageService.verificationMethods$
|
|
29
|
-
.subscribe((verificationMethods) => {
|
|
30
|
-
this.verificationMethods = verificationMethods;
|
|
31
|
-
this._cdRef.markForCheck();
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
get defaultSms() {
|
|
35
|
-
return this.twoFactorManageService.smsVerificationMethods
|
|
36
|
-
.some((verificationMethod) => {
|
|
37
|
-
return verificationMethod.default;
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
get defaultApp() {
|
|
41
|
-
return this.twoFactorManageService.appVerificationMethods
|
|
42
|
-
.some((verificationMethod) => {
|
|
43
|
-
return verificationMethod.default;
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
get defaultEmail() {
|
|
47
|
-
return this.twoFactorManageService.emailVerificationMethods
|
|
48
|
-
.some((verificationMethod) => {
|
|
49
|
-
return verificationMethod.default;
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
get textHasVerificationMethod() {
|
|
53
|
-
return this.twoFactorManageService.hasVerificationMethod(FsVerificationMethodType.Sms);
|
|
54
|
-
}
|
|
55
|
-
get appHasVerificationMethod() {
|
|
56
|
-
return this.twoFactorManageService.hasVerificationMethod(FsVerificationMethodType.App);
|
|
57
|
-
}
|
|
58
|
-
get emailHasVerificationMethod() {
|
|
59
|
-
return this.twoFactorManageService.hasVerificationMethod(FsVerificationMethodType.Email);
|
|
60
|
-
}
|
|
61
|
-
textMessageManage() {
|
|
62
|
-
this._dialog.open(NumbersComponent, {
|
|
63
|
-
data: {
|
|
64
|
-
twoFactorManageService: this.twoFactorManageService,
|
|
65
|
-
defaultCountry: this._defaultCountry,
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
textMessageAdd() {
|
|
70
|
-
this.twoFactorManageService.addSms(this._defaultCountry)
|
|
71
|
-
.subscribe();
|
|
72
|
-
}
|
|
73
|
-
emailMessageManage() {
|
|
74
|
-
this._dialog.open(EmailsComponent, {
|
|
75
|
-
data: {
|
|
76
|
-
twoFactorManageService: this.twoFactorManageService,
|
|
77
|
-
},
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
emailMessageAdd() {
|
|
81
|
-
this.twoFactorManageService.addEmail()
|
|
82
|
-
.subscribe();
|
|
83
|
-
}
|
|
84
|
-
appRemove() {
|
|
85
|
-
this._message.success('Removed App Authenticator verification method');
|
|
86
|
-
const verificationMethod = this.verificationMethods
|
|
87
|
-
.find((_verificationMethod) => {
|
|
88
|
-
return _verificationMethod.type === FsVerificationMethodType.App;
|
|
89
|
-
});
|
|
90
|
-
if (verificationMethod) {
|
|
91
|
-
this.twoFactorManageService.verificationMethodDelete(verificationMethod)
|
|
92
|
-
.subscribe(() => {
|
|
93
|
-
this._cdRef.markForCheck();
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
appAdd() {
|
|
98
|
-
this.twoFactorManageService.addApp()
|
|
99
|
-
.subscribe();
|
|
100
|
-
}
|
|
101
|
-
ngOnDestroy() {
|
|
102
|
-
this._destroy$.next();
|
|
103
|
-
this._destroy$.complete();
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
ManageMethodsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ManageMethodsComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i0.ChangeDetectorRef }, { token: i1.MatDialog }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
|
|
107
|
-
ManageMethodsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ManageMethodsComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog>\n <h1 mat-dialog-title>2-Step Verification</h1>\n <mat-dialog-content>\n <table>\n <tr>\n <td>\n <mat-icon>textsms</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Text Message</span>\n <span *ngIf=\"textHasVerificationMethod\" class=\"enabled\"></span>\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 <button \n *ngIf=\"textHasVerificationMethod; else textMessageManageButton\"\n mat-raised-button \n type=\"button\"\n (click)=\"textMessageManage()\">\n Manage\n </button>\n <ng-template #textMessageManageButton>\n <button \n mat-raised-button \n color=\"primary\"\n type=\"button\"\n (click)=\"textMessageAdd()\">\n Turn On\n </button>\n </ng-template>\n </td>\n </tr>\n <tr>\n <td>\n <mat-icon>email</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Email</span> \n <span *ngIf=\"emailHasVerificationMethod\" class=\"enabled\"></span>\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 <button \n *ngIf=\"emailHasVerificationMethod; else emailMessageManageButton\"\n mat-raised-button \n type=\"button\"\n (click)=\"emailMessageManage()\">\n Manage\n </button>\n <ng-template #emailMessageManageButton>\n <button \n mat-raised-button \n color=\"primary\"\n type=\"button\"\n (click)=\"emailMessageAdd()\">\n Turn On\n </button>\n </ng-template>\n </td>\n </tr>\n <tr>\n <td>\n <mat-icon>phone_iphone</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Authenticator App</span>\n <span *ngIf=\"appHasVerificationMethod\" class=\"enabled\"></span>\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 <button \n *ngIf=\"appHasVerificationMethod; else appMessageManageButton\"\n mat-raised-button \n type=\"button\"\n (click)=\"appRemove()\">\n Remove\n </button>\n <ng-template #appMessageManageButton>\n <button \n mat-raised-button \n color=\"primary\"\n type=\"button\"\n (click)=\"appAdd()\">\n Turn On\n </button>\n </ng-template>\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", styles: ["mat-dialog-content{max-width:500px}.enabled{font-size:75%;background-color:#70b601;padding:2px 4px;border-radius:4px;color:#fff;margin-left:4px}.enabled:after{content:\"Enabled\"}table tr td:first-child,table tr td:last-child{width:1%}table tr td:first-child mat-icon,table tr td:last-child mat-icon{display:flex}table tr td{padding:6px;vertical-align:middle}table tr .type{display:flex;align-items:center}table tr .type app-defaulted{margin-left:4px}.items span+span:not(:last-child):before{content:\", \"}.items span+span:last-child:before{content:\" and \"}\n"], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.DefaultedComponent, selector: "app-defaulted" }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "fsPhone": i8.FsPhonePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ManageMethodsComponent, decorators: [{
|
|
109
|
-
type: Component,
|
|
110
|
-
args: [{
|
|
111
|
-
templateUrl: './manage-methods.component.html',
|
|
112
|
-
styleUrls: ['./manage-methods.component.scss'],
|
|
113
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
114
|
-
}]
|
|
115
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
116
|
-
type: Inject,
|
|
117
|
-
args: [MAT_DIALOG_DATA]
|
|
118
|
-
}] }, { type: i0.ChangeDetectorRef }, { type: i1.MatDialog }, { type: i2.FsMessage }]; } });
|
|
1
|
+
import { Component, Inject, ChangeDetectionStrategy, ChangeDetectorRef, } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { NumbersComponent } from '../numbers';
|
|
5
|
+
import { EmailsComponent } from '../emails';
|
|
6
|
+
import { FsVerificationMethodType } from '../../../../enums/verification-method-type.enum';
|
|
7
|
+
import { FsMessage } from '@firestitch/message';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/material/dialog";
|
|
10
|
+
import * as i2 from "@firestitch/message";
|
|
11
|
+
import * as i3 from "@firestitch/dialog";
|
|
12
|
+
import * as i4 from "@angular/material/icon";
|
|
13
|
+
import * as i5 from "../defaulted/defaulted.component";
|
|
14
|
+
import * as i6 from "@angular/material/button";
|
|
15
|
+
import * as i7 from "@angular/common";
|
|
16
|
+
import * as i8 from "@firestitch/phone";
|
|
17
|
+
export class ManageMethodsComponent {
|
|
18
|
+
constructor(_data, _cdRef, _dialog, _message) {
|
|
19
|
+
this._data = _data;
|
|
20
|
+
this._cdRef = _cdRef;
|
|
21
|
+
this._dialog = _dialog;
|
|
22
|
+
this._message = _message;
|
|
23
|
+
this._destroy$ = new Subject();
|
|
24
|
+
}
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
this._defaultCountry = this._data.defaultCountry;
|
|
27
|
+
this.twoFactorManageService = this._data.twoFactorManageService;
|
|
28
|
+
this.twoFactorManageService.verificationMethods$
|
|
29
|
+
.subscribe((verificationMethods) => {
|
|
30
|
+
this.verificationMethods = verificationMethods;
|
|
31
|
+
this._cdRef.markForCheck();
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
get defaultSms() {
|
|
35
|
+
return this.twoFactorManageService.smsVerificationMethods
|
|
36
|
+
.some((verificationMethod) => {
|
|
37
|
+
return verificationMethod.default;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
get defaultApp() {
|
|
41
|
+
return this.twoFactorManageService.appVerificationMethods
|
|
42
|
+
.some((verificationMethod) => {
|
|
43
|
+
return verificationMethod.default;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
get defaultEmail() {
|
|
47
|
+
return this.twoFactorManageService.emailVerificationMethods
|
|
48
|
+
.some((verificationMethod) => {
|
|
49
|
+
return verificationMethod.default;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
get textHasVerificationMethod() {
|
|
53
|
+
return this.twoFactorManageService.hasVerificationMethod(FsVerificationMethodType.Sms);
|
|
54
|
+
}
|
|
55
|
+
get appHasVerificationMethod() {
|
|
56
|
+
return this.twoFactorManageService.hasVerificationMethod(FsVerificationMethodType.App);
|
|
57
|
+
}
|
|
58
|
+
get emailHasVerificationMethod() {
|
|
59
|
+
return this.twoFactorManageService.hasVerificationMethod(FsVerificationMethodType.Email);
|
|
60
|
+
}
|
|
61
|
+
textMessageManage() {
|
|
62
|
+
this._dialog.open(NumbersComponent, {
|
|
63
|
+
data: {
|
|
64
|
+
twoFactorManageService: this.twoFactorManageService,
|
|
65
|
+
defaultCountry: this._defaultCountry,
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
textMessageAdd() {
|
|
70
|
+
this.twoFactorManageService.addSms(this._defaultCountry)
|
|
71
|
+
.subscribe();
|
|
72
|
+
}
|
|
73
|
+
emailMessageManage() {
|
|
74
|
+
this._dialog.open(EmailsComponent, {
|
|
75
|
+
data: {
|
|
76
|
+
twoFactorManageService: this.twoFactorManageService,
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
emailMessageAdd() {
|
|
81
|
+
this.twoFactorManageService.addEmail()
|
|
82
|
+
.subscribe();
|
|
83
|
+
}
|
|
84
|
+
appRemove() {
|
|
85
|
+
this._message.success('Removed App Authenticator verification method');
|
|
86
|
+
const verificationMethod = this.verificationMethods
|
|
87
|
+
.find((_verificationMethod) => {
|
|
88
|
+
return _verificationMethod.type === FsVerificationMethodType.App;
|
|
89
|
+
});
|
|
90
|
+
if (verificationMethod) {
|
|
91
|
+
this.twoFactorManageService.verificationMethodDelete(verificationMethod)
|
|
92
|
+
.subscribe(() => {
|
|
93
|
+
this._cdRef.markForCheck();
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
appAdd() {
|
|
98
|
+
this.twoFactorManageService.addApp()
|
|
99
|
+
.subscribe();
|
|
100
|
+
}
|
|
101
|
+
ngOnDestroy() {
|
|
102
|
+
this._destroy$.next();
|
|
103
|
+
this._destroy$.complete();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
ManageMethodsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ManageMethodsComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i0.ChangeDetectorRef }, { token: i1.MatDialog }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
|
|
107
|
+
ManageMethodsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ManageMethodsComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog>\n <h1 mat-dialog-title>2-Step Verification</h1>\n <mat-dialog-content>\n <table>\n <tr>\n <td>\n <mat-icon>textsms</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Text Message</span>\n <span *ngIf=\"textHasVerificationMethod\" class=\"enabled\"></span>\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 <button \n *ngIf=\"textHasVerificationMethod; else textMessageManageButton\"\n mat-raised-button \n type=\"button\"\n (click)=\"textMessageManage()\">\n Manage\n </button>\n <ng-template #textMessageManageButton>\n <button \n mat-raised-button \n color=\"primary\"\n type=\"button\"\n (click)=\"textMessageAdd()\">\n Turn On\n </button>\n </ng-template>\n </td>\n </tr>\n <tr>\n <td>\n <mat-icon>email</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Email</span> \n <span *ngIf=\"emailHasVerificationMethod\" class=\"enabled\"></span>\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 <button \n *ngIf=\"emailHasVerificationMethod; else emailMessageManageButton\"\n mat-raised-button \n type=\"button\"\n (click)=\"emailMessageManage()\">\n Manage\n </button>\n <ng-template #emailMessageManageButton>\n <button \n mat-raised-button \n color=\"primary\"\n type=\"button\"\n (click)=\"emailMessageAdd()\">\n Turn On\n </button>\n </ng-template>\n </td>\n </tr>\n <tr>\n <td>\n <mat-icon>phone_iphone</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Authenticator App</span>\n <span *ngIf=\"appHasVerificationMethod\" class=\"enabled\"></span>\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 <button \n *ngIf=\"appHasVerificationMethod; else appMessageManageButton\"\n mat-raised-button \n type=\"button\"\n (click)=\"appRemove()\">\n Remove\n </button>\n <ng-template #appMessageManageButton>\n <button \n mat-raised-button \n color=\"primary\"\n type=\"button\"\n (click)=\"appAdd()\">\n Turn On\n </button>\n </ng-template>\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", styles: ["mat-dialog-content{max-width:500px}.enabled{font-size:75%;background-color:#70b601;padding:2px 4px;border-radius:4px;color:#fff;margin-left:4px}.enabled:after{content:\"Enabled\"}table tr td:first-child,table tr td:last-child{width:1%}table tr td:first-child mat-icon,table tr td:last-child mat-icon{display:flex}table tr td{padding:6px;vertical-align:middle}table tr .type{display:flex;align-items:center}table tr .type app-defaulted{margin-left:4px}.items span+span:not(:last-child):before{content:\", \"}.items span+span:last-child:before{content:\" and \"}\n"], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.DefaultedComponent, selector: "app-defaulted" }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "fsPhone": i8.FsPhonePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ManageMethodsComponent, decorators: [{
|
|
109
|
+
type: Component,
|
|
110
|
+
args: [{
|
|
111
|
+
templateUrl: './manage-methods.component.html',
|
|
112
|
+
styleUrls: ['./manage-methods.component.scss'],
|
|
113
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
114
|
+
}]
|
|
115
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
116
|
+
type: Inject,
|
|
117
|
+
args: [MAT_DIALOG_DATA]
|
|
118
|
+
}] }, { type: i0.ChangeDetectorRef }, { type: i1.MatDialog }, { type: i2.FsMessage }]; } });
|
|
119
119
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLW1ldGhvZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21hbmFnZS9jb21wb25lbnRzL21hbmFnZS1tZXRob2RzL21hbmFnZS1tZXRob2RzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9tYW5hZ2UtbWV0aG9kcy9tYW5hZ2UtbWV0aG9kcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsR0FDOUQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7OztBQVFoRCxNQUFNLE9BQU8sc0JBQXNCO0lBUWpDLFlBQ21DLEtBQVUsRUFDbkMsTUFBeUIsRUFDekIsT0FBa0IsRUFDbEIsUUFBbUI7UUFITSxVQUFLLEdBQUwsS0FBSyxDQUFLO1FBQ25DLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVByQixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQVEvQixDQUFDO0lBRUcsUUFBUTtRQUNiLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDakQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUM7UUFFaEUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLG9CQUFvQjthQUM3QyxTQUFTLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztZQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0I7YUFDeEQsSUFBSSxDQUFDLENBQUMsa0JBQWtCLEVBQUUsRUFBRTtZQUMzQixPQUFPLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCO2FBQ3hELElBQUksQ0FBQyxDQUFDLGtCQUFrQixFQUFFLEVBQUU7WUFDM0IsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QjthQUMxRCxJQUFJLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO1lBQzNCLE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQVcseUJBQXlCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFXLHdCQUF3QjtRQUNqQyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsSUFBVywwQkFBMEI7UUFDbkMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMscUJBQXFCLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNsQyxJQUFJLEVBQUU7Z0JBQ0osc0JBQXNCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQjtnQkFDbkQsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlO2FBQ3JDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO2FBQ3JELFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ2pDLElBQUksRUFBRTtnQkFDSixzQkFBc0IsRUFBRSxJQUFJLENBQUMsc0JBQXNCO2FBQ3BEO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRTthQUNuQyxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFFdkUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CO2FBQ2hELElBQUksQ0FBQyxDQUFDLG1CQUFtQixFQUFFLEVBQUU7WUFDNUIsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLEtBQUssd0JBQXdCLENBQUMsR0FBRyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBRyxrQkFBa0IsRUFBRTtZQUNyQixJQUFJLENBQUMsc0JBQXNCLENBQUMsd0JBQXdCLENBQUMsa0JBQWtCLENBQUM7aUJBQ3JFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFO2FBQ2pDLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDOztvSEE5R1Usc0JBQXNCLGtCQVN2QixlQUFlO3dHQVRkLHNCQUFzQixvRENwQm5DLGkvSEEySEE7NEZEdkdhLHNCQUFzQjtrQkFMbEMsU0FBUzttQkFBQztvQkFDVCxXQUFXLEVBQUUsaUNBQWlDO29CQUM5QyxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztvQkFDOUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzswQkFVSSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsIEluamVjdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBPbkluaXQsIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBOdW1iZXJzQ29tcG9uZW50IH0gZnJvbSAnLi4vbnVtYmVycyc7XG5pbXBvcnQgeyBFbWFpbHNDb21wb25lbnQgfSBmcm9tICcuLi9lbWFpbHMnO1xuaW1wb3J0IHsgVHdvRmFjdG9yTWFuYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEZzVmVyaWZpY2F0aW9uTWV0aG9kVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2VudW1zL3ZlcmlmaWNhdGlvbi1tZXRob2QtdHlwZS5lbnVtJztcbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vbWFuYWdlLW1ldGhvZHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYW5hZ2UtbWV0aG9kcy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTWFuYWdlTWV0aG9kc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgdHdvRmFjdG9yTWFuYWdlU2VydmljZTogVHdvRmFjdG9yTWFuYWdlU2VydmljZTtcbiAgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZHM7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIF9kZWZhdWx0Q291bnRyeTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIF9kYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgX21lc3NhZ2U6IEZzTWVzc2FnZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZWZhdWx0Q291bnRyeSA9IHRoaXMuX2RhdGEuZGVmYXVsdENvdW50cnk7XG4gICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlID0gdGhpcy5fZGF0YS50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlO1xuXG4gICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLnZlcmlmaWNhdGlvbk1ldGhvZHMkXG4gICAgICAuc3Vic2NyaWJlKCh2ZXJpZmljYXRpb25NZXRob2RzKSA9PiB7XG4gICAgICAgIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kcyA9IHZlcmlmaWNhdGlvbk1ldGhvZHM7XG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlZmF1bHRTbXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS5zbXNWZXJpZmljYXRpb25NZXRob2RzXG4gICAgLnNvbWUoKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4ge1xuICAgICAgcmV0dXJuIHZlcmlmaWNhdGlvbk1ldGhvZC5kZWZhdWx0O1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBkZWZhdWx0QXBwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UuYXBwVmVyaWZpY2F0aW9uTWV0aG9kc1xuICAgIC5zb21lKCh2ZXJpZmljYXRpb25NZXRob2QpID0+IHtcbiAgICAgIHJldHVybiB2ZXJpZmljYXRpb25NZXRob2QuZGVmYXVsdDtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVmYXVsdEVtYWlsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UuZW1haWxWZXJpZmljYXRpb25NZXRob2RzXG4gICAgLnNvbWUoKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4ge1xuICAgICAgcmV0dXJuIHZlcmlmaWNhdGlvbk1ldGhvZC5kZWZhdWx0O1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCB0ZXh0SGFzVmVyaWZpY2F0aW9uTWV0aG9kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UuaGFzVmVyaWZpY2F0aW9uTWV0aG9kKEZzVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5TbXMpO1xuICB9XG5cbiAgcHVibGljIGdldCBhcHBIYXNWZXJpZmljYXRpb25NZXRob2QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS5oYXNWZXJpZmljYXRpb25NZXRob2QoRnNWZXJpZmljYXRpb25NZXRob2RUeXBlLkFwcCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVtYWlsSGFzVmVyaWZpY2F0aW9uTWV0aG9kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UuaGFzVmVyaWZpY2F0aW9uTWV0aG9kKEZzVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5FbWFpbCk7XG4gIH1cblxuICBwdWJsaWMgdGV4dE1lc3NhZ2VNYW5hZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5fZGlhbG9nLm9wZW4oTnVtYmVyc0NvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICB0d29GYWN0b3JNYW5hZ2VTZXJ2aWNlOiB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UsXG4gICAgICAgIGRlZmF1bHRDb3VudHJ5OiB0aGlzLl9kZWZhdWx0Q291bnRyeSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdGV4dE1lc3NhZ2VBZGQoKTogdm9pZCB7XG4gICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmFkZFNtcyh0aGlzLl9kZWZhdWx0Q291bnRyeSlcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWFpbE1lc3NhZ2VNYW5hZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5fZGlhbG9nLm9wZW4oRW1haWxzQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIHR3b0ZhY3Rvck1hbmFnZVNlcnZpY2U6IHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZW1haWxNZXNzYWdlQWRkKCk6IHZvaWQge1xuICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS5hZGRFbWFpbCgpXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYXBwUmVtb3ZlKCk6IHZvaWQge1xuICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnUmVtb3ZlZCBBcHAgQXV0aGVudGljYXRvciB2ZXJpZmljYXRpb24gbWV0aG9kJyk7XG5cbiAgICBjb25zdCB2ZXJpZmljYXRpb25NZXRob2QgPSB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZHNcbiAgICAgIC5maW5kKChfdmVyaWZpY2F0aW9uTWV0aG9kKSA9PiB7XG4gICAgICAgIHJldHVybiBfdmVyaWZpY2F0aW9uTWV0aG9kLnR5cGUgPT09IEZzVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5BcHA7XG4gICAgICB9KTtcblxuICAgIGlmKHZlcmlmaWNhdGlvbk1ldGhvZCkge1xuICAgICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLnZlcmlmaWNhdGlvbk1ldGhvZERlbGV0ZSh2ZXJpZmljYXRpb25NZXRob2QpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXBwQWRkKCk6IHZvaWQge1xuICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS5hZGRBcHAoKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZnMtZGlhbG9nPlxuICA8aDEgbWF0LWRpYWxvZy10aXRsZT4yLVN0ZXAgVmVyaWZpY2F0aW9uPC9oMT5cbiAgPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8dGFibGU+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICA8bWF0LWljb24+dGV4dHNtczwvbWF0LWljb24+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHlwZVwiPlxuICAgICAgICAgICAgPHNwYW4+VGV4dCBNZXNzYWdlPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ0ZXh0SGFzVmVyaWZpY2F0aW9uTWV0aG9kXCIgY2xhc3M9XCJlbmFibGVkXCI+PC9zcGFuPlxuICAgICAgICAgICAgPGFwcC1kZWZhdWx0ZWQgKm5nSWY9XCJkZWZhdWx0U21zXCI+PC9hcHAtZGVmYXVsdGVkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbFwiPlxuICAgICAgICAgICAgVmVyaWZpY2F0aW9uIGNvZGVzIGFyZSBzZW50IGJ5IHRleHQgbWVzc2FnZVxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRleHRIYXNWZXJpZmljYXRpb25NZXRob2RcIj5cbiAgICAgICAgICAgICAgdG8gPHNwYW4gY2xhc3M9XCJpdGVtc1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBpdGVtIG9mIHR3b0ZhY3Rvck1hbmFnZVNlcnZpY2Uuc21zVmVyaWZpY2F0aW9uTWV0aG9kc1wiPnt7aXRlbS5waG9uZU51bWJlciB8IGZzUGhvbmV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICAgICAqbmdJZj1cInRleHRIYXNWZXJpZmljYXRpb25NZXRob2Q7IGVsc2UgdGV4dE1lc3NhZ2VNYW5hZ2VCdXR0b25cIlxuICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbiBcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0ZXh0TWVzc2FnZU1hbmFnZSgpXCI+XG4gICAgICAgICAgICAgIE1hbmFnZVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0TWVzc2FnZU1hbmFnZUJ1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbiBcbiAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ0ZXh0TWVzc2FnZUFkZCgpXCI+XG4gICAgICAgICAgICAgIFR1cm4gT25cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyPlxuICAgICAgICA8dGQ+XG4gICAgICAgICAgPG1hdC1pY29uPmVtYWlsPC9tYXQtaWNvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eXBlXCI+XG4gICAgICAgICAgICA8c3Bhbj5FbWFpbDwvc3Bhbj4gXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImVtYWlsSGFzVmVyaWZpY2F0aW9uTWV0aG9kXCIgY2xhc3M9XCJlbmFibGVkXCI+PC9zcGFuPlxuICAgICAgICAgICAgPGFwcC1kZWZhdWx0ZWQgKm5nSWY9XCJkZWZhdWx0RW1haWxcIj48L2FwcC1kZWZhdWx0ZWQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+XG4gICAgICAgICAgICBWZXJpZmljYXRpb24gY29kZXMgYXJlIHNlbnQgYnkgZW1haWxcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbWFpbEhhc1ZlcmlmaWNhdGlvbk1ldGhvZFwiPlxuICAgICAgICAgICAgICB0byA8c3BhbiBjbGFzcz1cIml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGl0ZW0gb2YgdHdvRmFjdG9yTWFuYWdlU2VydmljZS5lbWFpbFZlcmlmaWNhdGlvbk1ldGhvZHNcIj57e2l0ZW0uZW1haWx9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICAgICAqbmdJZj1cImVtYWlsSGFzVmVyaWZpY2F0aW9uTWV0aG9kOyBlbHNlIGVtYWlsTWVzc2FnZU1hbmFnZUJ1dHRvblwiXG4gICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImVtYWlsTWVzc2FnZU1hbmFnZSgpXCI+XG4gICAgICAgICAgICBNYW5hZ2VcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNlbWFpbE1lc3NhZ2VNYW5hZ2VCdXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbiBcbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJlbWFpbE1lc3NhZ2VBZGQoKVwiPlxuICAgICAgICAgICAgVHVybiBPblxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIDxtYXQtaWNvbj5waG9uZV9pcGhvbmU8L21hdC1pY29uPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInR5cGVcIj5cbiAgICAgICAgICAgIDxzcGFuPkF1dGhlbnRpY2F0b3IgQXBwPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJhcHBIYXNWZXJpZmljYXRpb25NZXRob2RcIiBjbGFzcz1cImVuYWJsZWRcIj48L3NwYW4+XG4gICAgICAgICAgICA8YXBwLWRlZmF1bHRlZCAqbmdJZj1cImRlZmF1bHRBcHBcIj48L2FwcC1kZWZhdWx0ZWQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+VmVyaWZpY2F0aW9uIGNvZGUgaXMgZ2VuZXJhdGVkIGJ5IGFuIGF1dGhlbnRpY2F0b3IgYXBwIHN1Y2ggYXMgQXV0aHkgb3IgR29vZ2xlIEF1dGhlbnRpY2F0b3I8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIDxidXR0b24gXG4gICAgICAgICAgICAgICpuZ0lmPVwiYXBwSGFzVmVyaWZpY2F0aW9uTWV0aG9kOyBlbHNlIGFwcE1lc3NhZ2VNYW5hZ2VCdXR0b25cIlxuICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbiBcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJhcHBSZW1vdmUoKVwiPlxuICAgICAgICAgICAgUmVtb3ZlXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjYXBwTWVzc2FnZU1hbmFnZUJ1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxuICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcEFkZCgpXCI+XG4gICAgICAgICAgICBUdXJuIE9uXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPiBcbiAgICA8L3RhYmxlPiAgICAgIFxuICA8L21hdC1kaWFsb2ctY29udGVudD5cbiAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFttYXQtZGlhbG9nLWNsb3NlXT1cInVuZGVmaW5lZFwiPlxuICAgICAgQ2xvc2VcbiAgICA8L2J1dHRvbj5cbiAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG48L2ZzLWRpYWxvZz5cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './number.component';
|
|
1
|
+
export * from './number.component';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbWFuYWdlL2NvbXBvbmVudHMvbnVtYmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL251bWJlci5jb21wb25lbnQnO1xuIl19
|
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
import { Component, Inject, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, } from '@angular/core';
|
|
2
|
-
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
3
|
-
import { FsMessage } from '@firestitch/message';
|
|
4
|
-
import { FsFormDirective } from '@firestitch/form';
|
|
5
|
-
import { of } from 'rxjs';
|
|
6
|
-
import { switchMap, tap } from 'rxjs/operators';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/material/dialog";
|
|
9
|
-
import * as i2 from "@firestitch/message";
|
|
10
|
-
import * as i3 from "@firestitch/dialog";
|
|
11
|
-
import * as i4 from "../../../code-input/components/code-input/code-input.component";
|
|
12
|
-
import * as i5 from "@angular/material/form-field";
|
|
13
|
-
import * as i6 from "@firestitch/phone";
|
|
14
|
-
import * as i7 from "@angular/material/checkbox";
|
|
15
|
-
import * as i8 from "@angular/material/button";
|
|
16
|
-
import * as i9 from "@angular/forms";
|
|
17
|
-
import * as i10 from "@firestitch/form";
|
|
18
|
-
import * as i11 from "@angular/common";
|
|
19
|
-
export class NumberComponent {
|
|
20
|
-
constructor(_data, _dialogRef, _cdRef, _message) {
|
|
21
|
-
this._data = _data;
|
|
22
|
-
this._dialogRef = _dialogRef;
|
|
23
|
-
this._cdRef = _cdRef;
|
|
24
|
-
this._message = _message;
|
|
25
|
-
this.verificationMethod = null;
|
|
26
|
-
this.submit = () => {
|
|
27
|
-
return of(true)
|
|
28
|
-
.pipe(switchMap(() => {
|
|
29
|
-
return this.verificationMethod ?
|
|
30
|
-
this.twoFactorManageService.verificationMethodVerify(this.code)
|
|
31
|
-
.pipe(tap((verificationMethod) => {
|
|
32
|
-
this._message.success('Created text message verification method');
|
|
33
|
-
this._dialogRef.close(verificationMethod);
|
|
34
|
-
})) :
|
|
35
|
-
this.twoFactorManageService.verificationMethodCreate({
|
|
36
|
-
type: 'sms',
|
|
37
|
-
phoneNumber: this.phone.number,
|
|
38
|
-
phoneCode: this.phone.countryCode,
|
|
39
|
-
phoneCountry: this.phone.isoCode,
|
|
40
|
-
default: this.default,
|
|
41
|
-
}).pipe(tap((verificationMethod) => {
|
|
42
|
-
this.verificationMethod = verificationMethod;
|
|
43
|
-
this.form.clear();
|
|
44
|
-
this._cdRef.markForCheck();
|
|
45
|
-
}));
|
|
46
|
-
}));
|
|
47
|
-
};
|
|
48
|
-
this.twoFactorManageService = _data.twoFactorManageService;
|
|
49
|
-
this.defaultCountry = _data.defaultCountry;
|
|
50
|
-
this.default = !this.twoFactorManageService.hasVerificationMethods;
|
|
51
|
-
}
|
|
52
|
-
resend() {
|
|
53
|
-
this.twoFactorManageService.verificationMethodResend()
|
|
54
|
-
.subscribe(() => {
|
|
55
|
-
this._message.success('Resent verification code');
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
codeCompleted() {
|
|
59
|
-
if (!this.form.submitting) {
|
|
60
|
-
this.form.triggerSubmit();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
codeChanged(code) {
|
|
64
|
-
this.code = code;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
NumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NumberComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i0.ChangeDetectorRef }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
-
NumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NumberComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: FsFormDirective, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"submit\" autocomplete=\"off\">\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 <p>The app just sent you a text message with a verification code.</p>\n\n <app-code-input \n [code]=\"code\"\n (codeChanged)=\"codeChanged($event)\"\n (codeCompleted)=\"codeCompleted()\">\n </app-code-input> \n \n <div>Did't get the code? <a (click)=\"resend()\">Resend Code</a></div>\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 <fs-phone-field\n [(ngModel)]=\"phone\"\n [country]=\"defaultCountry\"\n name=\"phone\"\n autocomplete=\"off\"\n [required]=\"true\">\n </fs-phone-field>\n </mat-form-field>\n <mat-checkbox \n name=\"default\"\n [(ngModel)]=\"default\"\n [disableRipple]=\"true\">\n Make this the default 2-step 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", styles: [":host ::ng-deep mat-checkbox .mat-ripple{display:none}app-code-input{margin-bottom:10px;display:block}mat-form-field{width:100%}mat-dialog-content{width:400px}p{margin-top:0}\n"], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4.CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }, { type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i6.FsPhoneFieldComponent, selector: "fs-phone-field", inputs: ["allowNumberExt", "
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NumberComponent, decorators: [{
|
|
70
|
-
type: Component,
|
|
71
|
-
args: [{
|
|
72
|
-
templateUrl: './number.component.html',
|
|
73
|
-
styleUrls: ['./number.component.scss'],
|
|
74
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
75
|
-
}]
|
|
76
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
77
|
-
type: Inject,
|
|
78
|
-
args: [MAT_DIALOG_DATA]
|
|
79
|
-
}] }, { type: i1.MatDialogRef }, { type: i0.ChangeDetectorRef }, { type: i2.FsMessage }]; }, propDecorators: { form: [{
|
|
80
|
-
type: ViewChild,
|
|
81
|
-
args: [FsFormDirective, { static: false }]
|
|
82
|
-
}] } });
|
|
1
|
+
import { Component, Inject, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
3
|
+
import { FsMessage } from '@firestitch/message';
|
|
4
|
+
import { FsFormDirective } from '@firestitch/form';
|
|
5
|
+
import { of } from 'rxjs';
|
|
6
|
+
import { switchMap, tap } from 'rxjs/operators';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/material/dialog";
|
|
9
|
+
import * as i2 from "@firestitch/message";
|
|
10
|
+
import * as i3 from "@firestitch/dialog";
|
|
11
|
+
import * as i4 from "../../../code-input/components/code-input/code-input.component";
|
|
12
|
+
import * as i5 from "@angular/material/form-field";
|
|
13
|
+
import * as i6 from "@firestitch/phone";
|
|
14
|
+
import * as i7 from "@angular/material/checkbox";
|
|
15
|
+
import * as i8 from "@angular/material/button";
|
|
16
|
+
import * as i9 from "@angular/forms";
|
|
17
|
+
import * as i10 from "@firestitch/form";
|
|
18
|
+
import * as i11 from "@angular/common";
|
|
19
|
+
export class NumberComponent {
|
|
20
|
+
constructor(_data, _dialogRef, _cdRef, _message) {
|
|
21
|
+
this._data = _data;
|
|
22
|
+
this._dialogRef = _dialogRef;
|
|
23
|
+
this._cdRef = _cdRef;
|
|
24
|
+
this._message = _message;
|
|
25
|
+
this.verificationMethod = null;
|
|
26
|
+
this.submit = () => {
|
|
27
|
+
return of(true)
|
|
28
|
+
.pipe(switchMap(() => {
|
|
29
|
+
return this.verificationMethod ?
|
|
30
|
+
this.twoFactorManageService.verificationMethodVerify(this.code)
|
|
31
|
+
.pipe(tap((verificationMethod) => {
|
|
32
|
+
this._message.success('Created text message verification method');
|
|
33
|
+
this._dialogRef.close(verificationMethod);
|
|
34
|
+
})) :
|
|
35
|
+
this.twoFactorManageService.verificationMethodCreate({
|
|
36
|
+
type: 'sms',
|
|
37
|
+
phoneNumber: this.phone.number,
|
|
38
|
+
phoneCode: this.phone.countryCode,
|
|
39
|
+
phoneCountry: this.phone.isoCode,
|
|
40
|
+
default: this.default,
|
|
41
|
+
}).pipe(tap((verificationMethod) => {
|
|
42
|
+
this.verificationMethod = verificationMethod;
|
|
43
|
+
this.form.clear();
|
|
44
|
+
this._cdRef.markForCheck();
|
|
45
|
+
}));
|
|
46
|
+
}));
|
|
47
|
+
};
|
|
48
|
+
this.twoFactorManageService = _data.twoFactorManageService;
|
|
49
|
+
this.defaultCountry = _data.defaultCountry;
|
|
50
|
+
this.default = !this.twoFactorManageService.hasVerificationMethods;
|
|
51
|
+
}
|
|
52
|
+
resend() {
|
|
53
|
+
this.twoFactorManageService.verificationMethodResend()
|
|
54
|
+
.subscribe(() => {
|
|
55
|
+
this._message.success('Resent verification code');
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
codeCompleted() {
|
|
59
|
+
if (!this.form.submitting) {
|
|
60
|
+
this.form.triggerSubmit();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
codeChanged(code) {
|
|
64
|
+
this.code = code;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
NumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NumberComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i0.ChangeDetectorRef }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
+
NumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NumberComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: FsFormDirective, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"submit\" autocomplete=\"off\">\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 <p>The app just sent you a text message with a verification code.</p>\n\n <app-code-input \n [code]=\"code\"\n (codeChanged)=\"codeChanged($event)\"\n (codeCompleted)=\"codeCompleted()\">\n </app-code-input> \n \n <div>Did't get the code? <a (click)=\"resend()\">Resend Code</a></div>\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 <fs-phone-field\n [(ngModel)]=\"phone\"\n [country]=\"defaultCountry\"\n name=\"phone\"\n autocomplete=\"off\"\n [required]=\"true\">\n </fs-phone-field>\n </mat-form-field>\n <mat-checkbox \n name=\"default\"\n [(ngModel)]=\"default\"\n [disableRipple]=\"true\">\n Make this the default 2-step 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", styles: [":host ::ng-deep mat-checkbox .mat-ripple{display:none}app-code-input{margin-bottom:10px;display:block}mat-form-field{width:100%}mat-dialog-content{width:400px}p{margin-top:0}\n"], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4.CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }, { type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i6.FsPhoneFieldComponent, selector: "fs-phone-field", inputs: ["allowNumberExt", "placeholder", "required", "disabled", "mode", "country"] }, { type: i7.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: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i10.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.MatLabel, selector: "mat-label" }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i10.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i9.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i10.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NumberComponent, decorators: [{
|
|
70
|
+
type: Component,
|
|
71
|
+
args: [{
|
|
72
|
+
templateUrl: './number.component.html',
|
|
73
|
+
styleUrls: ['./number.component.scss'],
|
|
74
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
75
|
+
}]
|
|
76
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
77
|
+
type: Inject,
|
|
78
|
+
args: [MAT_DIALOG_DATA]
|
|
79
|
+
}] }, { type: i1.MatDialogRef }, { type: i0.ChangeDetectorRef }, { type: i2.FsMessage }]; }, propDecorators: { form: [{
|
|
80
|
+
type: ViewChild,
|
|
81
|
+
args: [FsFormDirective, { static: false }]
|
|
82
|
+
}] } });
|
|
83
83
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsR0FDekUsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVNoRCxNQUFNLE9BQU8sZUFBZTtJQVkxQixZQUNtQyxLQUFVLEVBQ25DLFVBQXlDLEVBQ3pDLE1BQXlCLEVBQ3pCLFFBQW1CO1FBSE0sVUFBSyxHQUFMLEtBQUssQ0FBSztRQUNuQyxlQUFVLEdBQVYsVUFBVSxDQUErQjtRQUN6QyxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBUnRCLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQXNCMUIsV0FBTSxHQUFHLEdBQUcsRUFBRTtZQUNuQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7aUJBQ1osSUFBSSxDQUNILFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7eUJBQzVELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO3dCQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO3dCQUNsRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO29CQUM1QyxDQUFDLENBQUMsQ0FDSCxDQUFDLENBQUM7b0JBQ0wsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDO3dCQUNuRCxJQUFJLEVBQUUsS0FBSzt3QkFDWCxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO3dCQUM5QixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO3dCQUNqQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO3dCQUNoQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87cUJBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsRUFBRTt3QkFDekIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO3dCQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUM3QixDQUFDLENBQUMsQ0FDSCxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNOLENBQUMsQ0FBQztRQXZDQSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDLHNCQUFzQixDQUFDO1FBQzNELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFDO0lBQ3JFLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixFQUFFO2FBQ25ELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQStCTSxhQUFhO1FBQ2xCLElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFJO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7OzZHQW5FVSxlQUFlLGtCQWFoQixlQUFlO2lHQWJkLGVBQWUsMEZBRWYsZUFBZSxnRENyQjVCLG90REFzREE7NEZEbkNhLGVBQWU7a0JBTDNCLFNBQVM7bUJBQUM7b0JBQ1QsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3RDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs7MEJBY0ksTUFBTTsyQkFBQyxlQUFlOytIQVZsQixJQUFJO3NCQURWLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgSW5qZWN0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBGc0Zvcm1EaXJlY3RpdmUgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcblxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVHdvRmFjdG9yTWFuYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL251bWJlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVyQ29tcG9uZW50IHtcblxuICBAVmlld0NoaWxkKEZzRm9ybURpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBmb3JtOiBGc0Zvcm1EaXJlY3RpdmU7XG5cbiAgcHVibGljIHBob25lO1xuICBwdWJsaWMgY29kZTtcbiAgcHVibGljIGRlZmF1bHQ7XG4gIHB1YmxpYyB2ZXJpZmljYXRpb25NZXRob2QgPSBudWxsO1xuICBwdWJsaWMgZGVmYXVsdENvdW50cnk7XG4gIHB1YmxpYyB0d29GYWN0b3JNYW5hZ2VTZXJ2aWNlOiBUd29GYWN0b3JNYW5hZ2VTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIF9kYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8TnVtYmVyQ29tcG9uZW50PixcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogRnNNZXNzYWdlLFxuICApIHtcbiAgICB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UgPSBfZGF0YS50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlO1xuICAgIHRoaXMuZGVmYXVsdENvdW50cnkgPSBfZGF0YS5kZWZhdWx0Q291bnRyeTtcbiAgICB0aGlzLmRlZmF1bHQgPSAhdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmhhc1ZlcmlmaWNhdGlvbk1ldGhvZHM7XG4gIH1cblxuICBwdWJsaWMgcmVzZW5kKCk6IHZvaWQge1xuICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS52ZXJpZmljYXRpb25NZXRob2RSZXNlbmQoKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnUmVzZW50IHZlcmlmaWNhdGlvbiBjb2RlJyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXQgPSAoKSA9PiB7XG4gICAgcmV0dXJuIG9mKHRydWUpXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy52ZXJpZmljYXRpb25NZXRob2QgP1xuICAgICAgICAgICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLnZlcmlmaWNhdGlvbk1ldGhvZFZlcmlmeSh0aGlzLmNvZGUpXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgodmVyaWZpY2F0aW9uTWV0aG9kKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0NyZWF0ZWQgdGV4dCBtZXNzYWdlIHZlcmlmaWNhdGlvbiBtZXRob2QnKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh2ZXJpZmljYXRpb25NZXRob2QpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApIDpcbiAgICAgICAgICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS52ZXJpZmljYXRpb25NZXRob2RDcmVhdGUoe1xuICAgICAgICAgICAgICB0eXBlOiAnc21zJyxcbiAgICAgICAgICAgICAgcGhvbmVOdW1iZXI6IHRoaXMucGhvbmUubnVtYmVyLFxuICAgICAgICAgICAgICBwaG9uZUNvZGU6IHRoaXMucGhvbmUuY291bnRyeUNvZGUsXG4gICAgICAgICAgICAgIHBob25lQ291bnRyeTogdGhpcy5waG9uZS5pc29Db2RlLFxuICAgICAgICAgICAgICBkZWZhdWx0OiB0aGlzLmRlZmF1bHQsXG4gICAgICAgICAgICB9KS5waXBlKFxuICAgICAgICAgICAgICB0YXAoKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kID0gdmVyaWZpY2F0aW9uTWV0aG9kO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jbGVhcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfTtcblxuICBwdWJsaWMgY29kZUNvbXBsZXRlZCgpOiB2b2lkIHtcbiAgICBpZighdGhpcy5mb3JtLnN1Ym1pdHRpbmcpIHtcbiAgICAgIHRoaXMuZm9ybS50cmlnZ2VyU3VibWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNvZGVDaGFuZ2VkKGNvZGUpOiB2b2lkIHtcbiAgICB0aGlzLmNvZGUgPSBjb2RlO1xuICB9XG5cbn1cbiIsIjxmb3JtIGZzRm9ybSBbc3VibWl0XT1cInN1Ym1pdFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuICA8ZnMtZGlhbG9nPlxuICAgIDxoMSBtYXQtZGlhbG9nLXRpdGxlPlxuICAgICAgVGV4dCBNZXNzYWdlIFNldHVwXG4gICAgPC9oMT5cbiAgICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZlcmlmaWNhdGlvbk1ldGhvZDsgZWxzZSBub3RWZXJpZmljYXRpb25NZXRob2RcIj5cbiAgICAgICAgPHA+VGhlIGFwcCBqdXN0IHNlbnQgeW91IGEgdGV4dCBtZXNzYWdlIHdpdGggYSB2ZXJpZmljYXRpb24gY29kZS48L3A+XG5cbiAgICAgICAgPGFwcC1jb2RlLWlucHV0ICBcbiAgICAgICAgICBbY29kZV09XCJjb2RlXCJcbiAgICAgICAgICAoY29kZUNoYW5nZWQpPVwiY29kZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKGNvZGVDb21wbGV0ZWQpPVwiY29kZUNvbXBsZXRlZCgpXCI+XG4gICAgICAgIDwvYXBwLWNvZGUtaW5wdXQ+IFxuICAgICAgICBcbiAgICAgICAgPGRpdj5EaWQndCBnZXQgdGhlIGNvZGU/IDxhIChjbGljayk9XCJyZXNlbmQoKVwiPlJlc2VuZCBDb2RlPC9hPjwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm90VmVyaWZpY2F0aW9uTWV0aG9kPlxuICAgICAgICA8cD5UaGUgYXBwIHdpbGwgb25seSB1c2UgdGhpcyBudW1iZXIgZm9yIHZlcmlmeWluZyB5b3VyIGFjY291bnQgc2VjdXJpdHkuIE1lc3NhZ2UgYW5kIGRhdGEgcmF0ZXMgbWF5IGFwcGx5IGJ5IHlvdXIgY2VsbCBwaG9uZSBwcm92aWRlci48L3A+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWxhYmVsPlBob25lIG51bWJlcjwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxmcy1waG9uZS1maWVsZFxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwaG9uZVwiXG4gICAgICAgICAgICBbY291bnRyeV09XCJkZWZhdWx0Q291bnRyeVwiXG4gICAgICAgICAgICBuYW1lPVwicGhvbmVcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCI+XG4gICAgICAgICAgPC9mcy1waG9uZS1maWVsZD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1jaGVja2JveCBcbiAgICAgICAgICAgIG5hbWU9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgTWFrZSB0aGlzIHRoZSBkZWZhdWx0IDItc3RlcCB2ZXJpZmljYXRpb24gbWV0aG9kXG4gICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L21hdC1kaWFsb2ctY29udGVudD5cbiAgICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIj5cbiAgICAgICAgTmV4dFxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFttYXQtZGlhbG9nLWNsb3NlXT1cInVuZGVmaW5lZFwiPlxuICAgICAgICBDYW5jZWxcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuICA8L2ZzLWRpYWxvZz5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './numbers.component';
|
|
1
|
+
export * from './numbers.component';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbWFuYWdlL2NvbXBvbmVudHMvbnVtYmVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9udW1iZXJzLmNvbXBvbmVudCc7XG4iXX0=
|