@firestitch/2fa 12.11.4 → 12.11.5
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/index.d.ts +1 -1
- package/app/enums/verification-method-type.enum.d.ts +5 -5
- package/app/interfaces/index.d.ts +1 -1
- package/app/interfaces/verification-method.interface.d.ts +11 -11
- package/app/modules/code-input/code-input.module.d.ts +9 -9
- 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/defaulted/components/defaulted/defaulted.component.d.ts +5 -5
- package/app/modules/defaulted/components/defaulted/index.d.ts +1 -1
- package/app/modules/defaulted/defaulted.module.d.ts +7 -7
- package/app/modules/manage/components/2fa-manage/2fa-manage.component.d.ts +30 -30
- package/app/modules/manage/components/2fa-manage/index.d.ts +1 -1
- package/app/modules/manage/components/app/app.component.d.ts +32 -32
- package/app/modules/manage/components/app/index.d.ts +1 -1
- package/app/modules/manage/components/email/email.component.d.ts +27 -27
- package/app/modules/manage/components/email/index.d.ts +1 -1
- package/app/modules/manage/components/emails/emails.component.d.ts +19 -19
- 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 +35 -35
- package/app/modules/manage/components/number/index.d.ts +1 -1
- package/app/modules/manage/components/number/number.component.d.ts +28 -28
- package/app/modules/manage/components/numbers/index.d.ts +1 -1
- package/app/modules/manage/components/numbers/numbers.component.d.ts +20 -20
- package/app/modules/manage/components/qr-code/index.d.ts +1 -1
- package/app/modules/manage/components/qr-code/qr-code.component.d.ts +11 -11
- package/app/modules/manage/fs-2f-manage.module.d.ts +33 -33
- package/app/modules/manage/services/index.d.ts +1 -1
- package/app/modules/manage/services/two-factor-manage.service.d.ts +52 -52
- package/app/modules/resend/components/resend/index.d.ts +1 -1
- package/app/modules/resend/components/resend/resend.component.d.ts +14 -14
- package/app/modules/resend/resend.module.d.ts +9 -9
- package/app/modules/verification/components/2fa-verification/2fa-verification.component.d.ts +38 -38
- package/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.d.ts +20 -20
- package/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.d.ts +22 -22
- package/app/modules/verification/directives/2fa-verification-resend.directive.d.ts +11 -11
- package/app/modules/verification/directives/index.d.ts +1 -1
- package/app/modules/verification/fs-2fa-verification.module.d.ts +25 -25
- package/app/modules/verification-methods/components/verification-methods/index.d.ts +1 -1
- package/app/modules/verification-methods/components/verification-methods/verification-methods.component.d.ts +26 -26
- package/app/modules/verification-methods/fs-2f-verification-methods.module.d.ts +14 -14
- package/app/modules/verification-methods/index.d.ts +1 -1
- package/bundles/firestitch-2fa.umd.js +1465 -1464
- package/bundles/firestitch-2fa.umd.js.map +1 -1
- package/esm2015/app/enums/index.js +1 -1
- package/esm2015/app/enums/verification-method-type.enum.js +6 -6
- package/esm2015/app/interfaces/index.js +1 -1
- package/esm2015/app/interfaces/verification-method.interface.js +1 -1
- package/esm2015/app/modules/code-input/code-input.module.js +29 -29
- 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/defaulted/components/defaulted/defaulted.component.js +15 -15
- package/esm2015/app/modules/defaulted/components/defaulted/index.js +1 -1
- package/esm2015/app/modules/defaulted/defaulted.module.js +17 -17
- package/esm2015/app/modules/manage/components/2fa-manage/2fa-manage.component.js +103 -103
- package/esm2015/app/modules/manage/components/2fa-manage/index.js +1 -1
- package/esm2015/app/modules/manage/components/app/app.component.js +87 -87
- package/esm2015/app/modules/manage/components/app/index.js +1 -1
- package/esm2015/app/modules/manage/components/email/email.component.js +82 -82
- package/esm2015/app/modules/manage/components/email/index.js +1 -1
- package/esm2015/app/modules/manage/components/emails/emails.component.js +49 -49
- 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 +127 -127
- package/esm2015/app/modules/manage/components/number/index.js +1 -1
- package/esm2015/app/modules/manage/components/number/number.component.js +85 -85
- package/esm2015/app/modules/manage/components/numbers/index.js +1 -1
- package/esm2015/app/modules/manage/components/numbers/numbers.component.js +50 -50
- package/esm2015/app/modules/manage/components/qr-code/index.js +1 -1
- package/esm2015/app/modules/manage/components/qr-code/qr-code.component.js +37 -36
- package/esm2015/app/modules/manage/fs-2f-manage.module.js +116 -116
- package/esm2015/app/modules/manage/services/index.js +1 -1
- package/esm2015/app/modules/manage/services/two-factor-manage.service.js +160 -160
- package/esm2015/app/modules/resend/components/resend/index.js +1 -1
- package/esm2015/app/modules/resend/components/resend/resend.component.js +39 -39
- package/esm2015/app/modules/resend/resend.module.js +29 -29
- package/esm2015/app/modules/verification/components/2fa-verification/2fa-verification.component.js +128 -128
- package/esm2015/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.js +60 -60
- package/esm2015/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.js +60 -60
- package/esm2015/app/modules/verification/directives/2fa-verification-resend.directive.js +31 -31
- package/esm2015/app/modules/verification/directives/index.js +1 -1
- package/esm2015/app/modules/verification/fs-2fa-verification.module.js +96 -96
- package/esm2015/app/modules/verification-methods/components/verification-methods/index.js +1 -1
- package/esm2015/app/modules/verification-methods/components/verification-methods/verification-methods.component.js +120 -120
- package/esm2015/app/modules/verification-methods/fs-2f-verification-methods.module.js +47 -47
- package/esm2015/app/modules/verification-methods/index.js +1 -1
- package/esm2015/firestitch-2fa.js +4 -4
- package/esm2015/public_api.js +8 -8
- package/fesm2015/firestitch-2fa.js +1314 -1313
- 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 +9 -9
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import { Component, Inject, ChangeDetectionStrategy, ViewChild, } from '@angular/core';
|
|
2
|
-
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
-
import { FsMessage } from '@firestitch/message';
|
|
4
|
-
import { VerificationMethodsComponent } from '../../../../modules/verification-methods/components/verification-methods';
|
|
5
|
-
import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/material/dialog";
|
|
8
|
-
import * as i2 from "@firestitch/message";
|
|
9
|
-
import * as i3 from "@firestitch/dialog";
|
|
10
|
-
import * as i4 from "@angular/material/icon";
|
|
11
|
-
import * as i5 from "../../../verification-methods/components/verification-methods/verification-methods.component";
|
|
12
|
-
import * as i6 from "@angular/material/button";
|
|
13
|
-
export class EmailsComponent {
|
|
14
|
-
constructor(_data, _dialogRef, _message) {
|
|
15
|
-
this._data = _data;
|
|
16
|
-
this._dialogRef = _dialogRef;
|
|
17
|
-
this._message = _message;
|
|
18
|
-
this.VerificationMethodType = VerificationMethodType;
|
|
19
|
-
this.twoFactorManageService = _data.twoFactorManageService;
|
|
20
|
-
}
|
|
21
|
-
add() {
|
|
22
|
-
this.twoFactorManageService.addEmail$()
|
|
23
|
-
.subscribe(() => {
|
|
24
|
-
this.verificationMethods.reload();
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
deleted() {
|
|
28
|
-
this._message.success('Deleted email verification method');
|
|
29
|
-
if (!this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Email)) {
|
|
30
|
-
this._dialogRef.close();
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
EmailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EmailsComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
EmailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: EmailsComponent, selector: "ng-component", viewQueries: [{ propertyName: "verificationMethods", first: true, predicate: VerificationMethodsComponent, descendants: true }], ngImport: i0, template: "<fs-dialog>\n <h1 mat-dialog-title>\n <mat-icon>email</mat-icon> Emails\n </h1>\n <mat-dialog-content>\n <fs-2fa-verification-methods\n [type]=\"VerificationMethodType.Email\"\n [twoFactorManageService]=\"twoFactorManageService\"\n (deleted)=\"deleted()\">\n </fs-2fa-verification-methods>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n type=\"button\"\n color=\"primary\"\n [mat-dialog-close]=\"undefined\">\n Close\n </button>\n <button\n mat-button\n (click)=\"add()\"\n type=\"button\">\n Add Email\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: ["h1{display:flex;align-items:center}h1 mat-icon{margin-right:5px}\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.VerificationMethodsComponent, selector: "fs-2fa-verification-methods", inputs: ["type", "accountVerify", "verificationMethodsFetch", "verificationMethodDelete", "verificationMethodDefault", "twoFactorManageService"], outputs: ["deleted"] }, { 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: 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EmailsComponent, decorators: [{
|
|
37
|
-
type: Component,
|
|
38
|
-
args: [{
|
|
39
|
-
templateUrl: './emails.component.html',
|
|
40
|
-
styleUrls: ['./emails.component.scss'],
|
|
41
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
42
|
-
}]
|
|
43
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
44
|
-
type: Inject,
|
|
45
|
-
args: [MAT_DIALOG_DATA]
|
|
46
|
-
}] }, { type: i1.MatDialogRef }, { type: i2.FsMessage }]; }, propDecorators: { verificationMethods: [{
|
|
47
|
-
type: ViewChild,
|
|
48
|
-
args: [VerificationMethodsComponent]
|
|
49
|
-
}] } });
|
|
1
|
+
import { Component, Inject, ChangeDetectionStrategy, ViewChild, } from '@angular/core';
|
|
2
|
+
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
import { FsMessage } from '@firestitch/message';
|
|
4
|
+
import { VerificationMethodsComponent } from '../../../../modules/verification-methods/components/verification-methods';
|
|
5
|
+
import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/material/dialog";
|
|
8
|
+
import * as i2 from "@firestitch/message";
|
|
9
|
+
import * as i3 from "@firestitch/dialog";
|
|
10
|
+
import * as i4 from "@angular/material/icon";
|
|
11
|
+
import * as i5 from "../../../verification-methods/components/verification-methods/verification-methods.component";
|
|
12
|
+
import * as i6 from "@angular/material/button";
|
|
13
|
+
export class EmailsComponent {
|
|
14
|
+
constructor(_data, _dialogRef, _message) {
|
|
15
|
+
this._data = _data;
|
|
16
|
+
this._dialogRef = _dialogRef;
|
|
17
|
+
this._message = _message;
|
|
18
|
+
this.VerificationMethodType = VerificationMethodType;
|
|
19
|
+
this.twoFactorManageService = _data.twoFactorManageService;
|
|
20
|
+
}
|
|
21
|
+
add() {
|
|
22
|
+
this.twoFactorManageService.addEmail$()
|
|
23
|
+
.subscribe(() => {
|
|
24
|
+
this.verificationMethods.reload();
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
deleted() {
|
|
28
|
+
this._message.success('Deleted email verification method');
|
|
29
|
+
if (!this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Email)) {
|
|
30
|
+
this._dialogRef.close();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
EmailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EmailsComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
EmailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: EmailsComponent, selector: "ng-component", viewQueries: [{ propertyName: "verificationMethods", first: true, predicate: VerificationMethodsComponent, descendants: true }], ngImport: i0, template: "<fs-dialog>\n <h1 mat-dialog-title>\n <mat-icon>email</mat-icon> Emails\n </h1>\n <mat-dialog-content>\n <fs-2fa-verification-methods\n [type]=\"VerificationMethodType.Email\"\n [twoFactorManageService]=\"twoFactorManageService\"\n (deleted)=\"deleted()\">\n </fs-2fa-verification-methods>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n type=\"button\"\n color=\"primary\"\n [mat-dialog-close]=\"undefined\">\n Close\n </button>\n <button\n mat-button\n (click)=\"add()\"\n type=\"button\">\n Add Email\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: ["h1{display:flex;align-items:center}h1 mat-icon{margin-right:5px}\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.VerificationMethodsComponent, selector: "fs-2fa-verification-methods", inputs: ["type", "accountVerify", "verificationMethodsFetch", "verificationMethodDelete", "verificationMethodDefault", "twoFactorManageService"], outputs: ["deleted"] }, { 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: 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EmailsComponent, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{
|
|
39
|
+
templateUrl: './emails.component.html',
|
|
40
|
+
styleUrls: ['./emails.component.scss'],
|
|
41
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
42
|
+
}]
|
|
43
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
44
|
+
type: Inject,
|
|
45
|
+
args: [MAT_DIALOG_DATA]
|
|
46
|
+
}] }, { type: i1.MatDialogRef }, { type: i2.FsMessage }]; }, propDecorators: { verificationMethods: [{
|
|
47
|
+
type: ViewChild,
|
|
48
|
+
args: [VerificationMethodsComponent]
|
|
49
|
+
}] } });
|
|
50
50
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9lbWFpbHMvZW1haWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9lbWFpbHMvZW1haWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixFQUFFLFNBQVMsR0FDdEQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFhLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFFeEgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7Ozs7O0FBU3pGLE1BQU0sT0FBTyxlQUFlO0lBUTFCLFlBQ21DLEtBQVUsRUFDbkMsVUFBeUMsRUFDekMsUUFBbUI7UUFGTSxVQUFLLEdBQUwsS0FBSyxDQUFLO1FBQ25DLGVBQVUsR0FBVixVQUFVLENBQStCO1FBQ3pDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFMdEIsMkJBQXNCLEdBQUcsc0JBQXNCLENBQUM7UUFPckQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQztJQUM3RCxDQUFDO0lBRU0sR0FBRztRQUNSLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUU7YUFDcEMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUMzRCxJQUFHLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25GLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDOzs2R0E1QlUsZUFBZSxrQkFTaEIsZUFBZTtpR0FUZCxlQUFlLHlHQUVmLDRCQUE0QixnRENuQnpDLDBxQkEyQkE7NEZEVmEsZUFBZTtrQkFMM0IsU0FBUzttQkFBQztvQkFDVCxXQUFXLEVBQUUseUJBQXlCO29CQUN0QyxTQUFTLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDdEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzswQkFVSSxNQUFNOzJCQUFDLGVBQWU7K0ZBTmxCLG1CQUFtQjtzQkFEekIsU0FBUzt1QkFBQyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsIEluamVjdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBWZXJpZmljYXRpb25NZXRob2RzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kdWxlcy92ZXJpZmljYXRpb24tbWV0aG9kcy9jb21wb25lbnRzL3ZlcmlmaWNhdGlvbi1tZXRob2RzJztcblxuaW1wb3J0IHsgVmVyaWZpY2F0aW9uTWV0aG9kVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2VudW1zL3ZlcmlmaWNhdGlvbi1tZXRob2QtdHlwZS5lbnVtJztcbmltcG9ydCB7IFR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9lbWFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbWFpbHMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEVtYWlsc0NvbXBvbmVudCB7XG5cbiAgQFZpZXdDaGlsZChWZXJpZmljYXRpb25NZXRob2RzQ29tcG9uZW50KSBcbiAgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZHM6IFZlcmlmaWNhdGlvbk1ldGhvZHNDb21wb25lbnQ7XG5cbiAgcHVibGljIHR3b0ZhY3Rvck1hbmFnZVNlcnZpY2U6IFR3b0ZhY3Rvck1hbmFnZVNlcnZpY2U7XG4gIHB1YmxpYyBWZXJpZmljYXRpb25NZXRob2RUeXBlID0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBfZGF0YTogYW55LFxuICAgIHByaXZhdGUgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEVtYWlsc0NvbXBvbmVudD4sXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogRnNNZXNzYWdlLFxuICApIHtcbiAgICB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UgPSBfZGF0YS50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlO1xuICB9XG5cbiAgcHVibGljIGFkZCgpOiB2b2lkIHtcbiAgICB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UuYWRkRW1haWwkKClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT57XG4gICAgICAgIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kcy5yZWxvYWQoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdEZWxldGVkIGVtYWlsIHZlcmlmaWNhdGlvbiBtZXRob2QnKTtcbiAgICBpZighdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmhhc1ZlcmlmaWNhdGlvbk1ldGhvZChWZXJpZmljYXRpb25NZXRob2RUeXBlLkVtYWlsKSkge1xuICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxmcy1kaWFsb2c+XG4gIDxoMSBtYXQtZGlhbG9nLXRpdGxlPlxuICAgIDxtYXQtaWNvbj5lbWFpbDwvbWF0LWljb24+IEVtYWlsc1xuICA8L2gxPlxuICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxmcy0yZmEtdmVyaWZpY2F0aW9uLW1ldGhvZHNcbiAgICAgIFt0eXBlXT1cIlZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuRW1haWxcIlxuICAgICAgW3R3b0ZhY3Rvck1hbmFnZVNlcnZpY2VdPVwidHdvRmFjdG9yTWFuYWdlU2VydmljZVwiXG4gICAgICAoZGVsZXRlZCk9XCJkZWxldGVkKClcIj5cbiAgICA8L2ZzLTJmYS12ZXJpZmljYXRpb24tbWV0aG9kcz5cbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPGJ1dHRvblxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICBbbWF0LWRpYWxvZy1jbG9zZV09XCJ1bmRlZmluZWRcIj5cbiAgICAgIENsb3NlXG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgIChjbGljayk9XCJhZGQoKVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgIEFkZCBFbWFpbFxuICAgIDwvYnV0dG9uPlxuICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbjwvZnMtZGlhbG9nPlxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './emails.component';
|
|
1
|
+
export * from './emails.component';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbWFuYWdlL2NvbXBvbmVudHMvZW1haWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VtYWlscy5jb21wb25lbnQnO1xuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './manage-methods.component';
|
|
1
|
+
export * from './manage-methods.component';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbWFuYWdlL2NvbXBvbmVudHMvbWFuYWdlLW1ldGhvZHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWFuYWdlLW1ldGhvZHMuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -1,128 +1,128 @@
|
|
|
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 { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
|
|
7
|
-
import { FsMessage } from '@firestitch/message';
|
|
8
|
-
import { switchMap } from 'rxjs/operators';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/material/dialog";
|
|
11
|
-
import * as i2 from "@firestitch/message";
|
|
12
|
-
import * as i3 from "@firestitch/dialog";
|
|
13
|
-
import * as i4 from "@angular/material/icon";
|
|
14
|
-
import * as i5 from "../../../defaulted/components/defaulted/defaulted.component";
|
|
15
|
-
import * as i6 from "@angular/material/button";
|
|
16
|
-
import * as i7 from "@angular/common";
|
|
17
|
-
import * as i8 from "@firestitch/phone";
|
|
18
|
-
export class ManageMethodsComponent {
|
|
19
|
-
constructor(_data, _cdRef, _dialog, _message) {
|
|
20
|
-
this._data = _data;
|
|
21
|
-
this._cdRef = _cdRef;
|
|
22
|
-
this._dialog = _dialog;
|
|
23
|
-
this._message = _message;
|
|
24
|
-
this.verificationMethodTypes = {};
|
|
25
|
-
this.VerificationMethodType = VerificationMethodType;
|
|
26
|
-
this._destroy$ = new Subject();
|
|
27
|
-
}
|
|
28
|
-
ngOnInit() {
|
|
29
|
-
this._defaultCountry = this._data.defaultCountry;
|
|
30
|
-
this.twoFactorManageService = this._data.twoFactorManageService;
|
|
31
|
-
this.verificationMethodTypes = this._data.verificationMethodTypes
|
|
32
|
-
.reduce((verificationMethodTypes, verificationMethodType) => {
|
|
33
|
-
verificationMethodTypes[verificationMethodType] = true;
|
|
34
|
-
return verificationMethodTypes;
|
|
35
|
-
}, {});
|
|
36
|
-
this.twoFactorManageService.verificationMethods$
|
|
37
|
-
.subscribe((verificationMethods) => {
|
|
38
|
-
this.verificationMethods = verificationMethods;
|
|
39
|
-
this._cdRef.markForCheck();
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
get defaultSms() {
|
|
43
|
-
return this.twoFactorManageService.smsVerificationMethods
|
|
44
|
-
.some((verificationMethod) => {
|
|
45
|
-
return verificationMethod.default;
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
get defaultApp() {
|
|
49
|
-
return this.twoFactorManageService.appVerificationMethods
|
|
50
|
-
.some((verificationMethod) => {
|
|
51
|
-
return verificationMethod.default;
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
get defaultEmail() {
|
|
55
|
-
return this.twoFactorManageService.emailVerificationMethods
|
|
56
|
-
.some((verificationMethod) => {
|
|
57
|
-
return verificationMethod.default;
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
get textHasVerificationMethod() {
|
|
61
|
-
return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Sms);
|
|
62
|
-
}
|
|
63
|
-
get appHasVerificationMethod() {
|
|
64
|
-
return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.App);
|
|
65
|
-
}
|
|
66
|
-
get emailHasVerificationMethod() {
|
|
67
|
-
return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Email);
|
|
68
|
-
}
|
|
69
|
-
textMessageManage() {
|
|
70
|
-
this._dialog.open(NumbersComponent, {
|
|
71
|
-
data: {
|
|
72
|
-
twoFactorManageService: this.twoFactorManageService,
|
|
73
|
-
defaultCountry: this._defaultCountry,
|
|
74
|
-
},
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
textMessageAdd() {
|
|
78
|
-
this.twoFactorManageService.addSms$(this._defaultCountry)
|
|
79
|
-
.subscribe();
|
|
80
|
-
}
|
|
81
|
-
emailMessageManage() {
|
|
82
|
-
this._dialog.open(EmailsComponent, {
|
|
83
|
-
data: {
|
|
84
|
-
twoFactorManageService: this.twoFactorManageService,
|
|
85
|
-
},
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
emailMessageAdd() {
|
|
89
|
-
this.twoFactorManageService.addEmail$()
|
|
90
|
-
.subscribe();
|
|
91
|
-
}
|
|
92
|
-
appRemove() {
|
|
93
|
-
const verificationMethod = this.verificationMethods
|
|
94
|
-
.find((_verificationMethod) => {
|
|
95
|
-
return _verificationMethod.type === VerificationMethodType.App;
|
|
96
|
-
});
|
|
97
|
-
if (verificationMethod) {
|
|
98
|
-
this.twoFactorManageService.accountVerify$()
|
|
99
|
-
.pipe(switchMap(() => this.twoFactorManageService.verificationMethodDelete$(verificationMethod)))
|
|
100
|
-
.subscribe(() => {
|
|
101
|
-
this._message.success('Removed App Authenticator verification method');
|
|
102
|
-
this._cdRef.markForCheck();
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
appAdd() {
|
|
107
|
-
this.twoFactorManageService.addApp$()
|
|
108
|
-
.subscribe();
|
|
109
|
-
}
|
|
110
|
-
ngOnDestroy() {
|
|
111
|
-
this._destroy$.next();
|
|
112
|
-
this._destroy$.complete();
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
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 });
|
|
116
|
-
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 *ngIf=\"verificationMethodTypes[VerificationMethodType.Sms]\">\n <td>\n <mat-icon>textsms</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Text Message</span>\n <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 *ngIf=\"verificationMethodTypes[VerificationMethodType.Email]\">\n <td>\n <mat-icon>email</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Email</span> \n <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 *ngIf=\"verificationMethodTypes[VerificationMethodType.App]\">\n <td>\n <mat-icon>phone_iphone</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Authenticator App</span>\n <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 });
|
|
117
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ManageMethodsComponent, decorators: [{
|
|
118
|
-
type: Component,
|
|
119
|
-
args: [{
|
|
120
|
-
templateUrl: './manage-methods.component.html',
|
|
121
|
-
styleUrls: ['./manage-methods.component.scss'],
|
|
122
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
123
|
-
}]
|
|
124
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
125
|
-
type: Inject,
|
|
126
|
-
args: [MAT_DIALOG_DATA]
|
|
127
|
-
}] }, { 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 { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
|
|
7
|
+
import { FsMessage } from '@firestitch/message';
|
|
8
|
+
import { switchMap } from 'rxjs/operators';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/material/dialog";
|
|
11
|
+
import * as i2 from "@firestitch/message";
|
|
12
|
+
import * as i3 from "@firestitch/dialog";
|
|
13
|
+
import * as i4 from "@angular/material/icon";
|
|
14
|
+
import * as i5 from "../../../defaulted/components/defaulted/defaulted.component";
|
|
15
|
+
import * as i6 from "@angular/material/button";
|
|
16
|
+
import * as i7 from "@angular/common";
|
|
17
|
+
import * as i8 from "@firestitch/phone";
|
|
18
|
+
export class ManageMethodsComponent {
|
|
19
|
+
constructor(_data, _cdRef, _dialog, _message) {
|
|
20
|
+
this._data = _data;
|
|
21
|
+
this._cdRef = _cdRef;
|
|
22
|
+
this._dialog = _dialog;
|
|
23
|
+
this._message = _message;
|
|
24
|
+
this.verificationMethodTypes = {};
|
|
25
|
+
this.VerificationMethodType = VerificationMethodType;
|
|
26
|
+
this._destroy$ = new Subject();
|
|
27
|
+
}
|
|
28
|
+
ngOnInit() {
|
|
29
|
+
this._defaultCountry = this._data.defaultCountry;
|
|
30
|
+
this.twoFactorManageService = this._data.twoFactorManageService;
|
|
31
|
+
this.verificationMethodTypes = this._data.verificationMethodTypes
|
|
32
|
+
.reduce((verificationMethodTypes, verificationMethodType) => {
|
|
33
|
+
verificationMethodTypes[verificationMethodType] = true;
|
|
34
|
+
return verificationMethodTypes;
|
|
35
|
+
}, {});
|
|
36
|
+
this.twoFactorManageService.verificationMethods$
|
|
37
|
+
.subscribe((verificationMethods) => {
|
|
38
|
+
this.verificationMethods = verificationMethods;
|
|
39
|
+
this._cdRef.markForCheck();
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
get defaultSms() {
|
|
43
|
+
return this.twoFactorManageService.smsVerificationMethods
|
|
44
|
+
.some((verificationMethod) => {
|
|
45
|
+
return verificationMethod.default;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
get defaultApp() {
|
|
49
|
+
return this.twoFactorManageService.appVerificationMethods
|
|
50
|
+
.some((verificationMethod) => {
|
|
51
|
+
return verificationMethod.default;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
get defaultEmail() {
|
|
55
|
+
return this.twoFactorManageService.emailVerificationMethods
|
|
56
|
+
.some((verificationMethod) => {
|
|
57
|
+
return verificationMethod.default;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
get textHasVerificationMethod() {
|
|
61
|
+
return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Sms);
|
|
62
|
+
}
|
|
63
|
+
get appHasVerificationMethod() {
|
|
64
|
+
return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.App);
|
|
65
|
+
}
|
|
66
|
+
get emailHasVerificationMethod() {
|
|
67
|
+
return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Email);
|
|
68
|
+
}
|
|
69
|
+
textMessageManage() {
|
|
70
|
+
this._dialog.open(NumbersComponent, {
|
|
71
|
+
data: {
|
|
72
|
+
twoFactorManageService: this.twoFactorManageService,
|
|
73
|
+
defaultCountry: this._defaultCountry,
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
textMessageAdd() {
|
|
78
|
+
this.twoFactorManageService.addSms$(this._defaultCountry)
|
|
79
|
+
.subscribe();
|
|
80
|
+
}
|
|
81
|
+
emailMessageManage() {
|
|
82
|
+
this._dialog.open(EmailsComponent, {
|
|
83
|
+
data: {
|
|
84
|
+
twoFactorManageService: this.twoFactorManageService,
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
emailMessageAdd() {
|
|
89
|
+
this.twoFactorManageService.addEmail$()
|
|
90
|
+
.subscribe();
|
|
91
|
+
}
|
|
92
|
+
appRemove() {
|
|
93
|
+
const verificationMethod = this.verificationMethods
|
|
94
|
+
.find((_verificationMethod) => {
|
|
95
|
+
return _verificationMethod.type === VerificationMethodType.App;
|
|
96
|
+
});
|
|
97
|
+
if (verificationMethod) {
|
|
98
|
+
this.twoFactorManageService.accountVerify$()
|
|
99
|
+
.pipe(switchMap(() => this.twoFactorManageService.verificationMethodDelete$(verificationMethod)))
|
|
100
|
+
.subscribe(() => {
|
|
101
|
+
this._message.success('Removed App Authenticator verification method');
|
|
102
|
+
this._cdRef.markForCheck();
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
appAdd() {
|
|
107
|
+
this.twoFactorManageService.addApp$()
|
|
108
|
+
.subscribe();
|
|
109
|
+
}
|
|
110
|
+
ngOnDestroy() {
|
|
111
|
+
this._destroy$.next();
|
|
112
|
+
this._destroy$.complete();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
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 });
|
|
116
|
+
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 *ngIf=\"verificationMethodTypes[VerificationMethodType.Sms]\">\n <td>\n <mat-icon>textsms</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Text Message</span>\n <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 *ngIf=\"verificationMethodTypes[VerificationMethodType.Email]\">\n <td>\n <mat-icon>email</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Email</span> \n <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 *ngIf=\"verificationMethodTypes[VerificationMethodType.App]\">\n <td>\n <mat-icon>phone_iphone</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Authenticator App</span>\n <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 });
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ManageMethodsComponent, decorators: [{
|
|
118
|
+
type: Component,
|
|
119
|
+
args: [{
|
|
120
|
+
templateUrl: './manage-methods.component.html',
|
|
121
|
+
styleUrls: ['./manage-methods.component.scss'],
|
|
122
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
123
|
+
}]
|
|
124
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
125
|
+
type: Inject,
|
|
126
|
+
args: [MAT_DIALOG_DATA]
|
|
127
|
+
}] }, { type: i0.ChangeDetectorRef }, { type: i1.MatDialog }, { type: i2.FsMessage }]; } });
|
|
128
128
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLW1ldGhvZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21hbmFnZS9jb21wb25lbnRzL21hbmFnZS1tZXRob2RzL21hbmFnZS1tZXRob2RzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9tYW5hZ2UtbWV0aG9kcy9tYW5hZ2UtbWV0aG9kcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsR0FDOUQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFRM0MsTUFBTSxPQUFPLHNCQUFzQjtJQVVqQyxZQUNtQyxLQUFVLEVBQ25DLE1BQXlCLEVBQ3pCLE9BQWtCLEVBQ2xCLFFBQW1CO1FBSE0sVUFBSyxHQUFMLEtBQUssQ0FBSztRQUNuQyxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN6QixZQUFPLEdBQVAsT0FBTyxDQUFXO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFWdEIsNEJBQXVCLEdBQUcsRUFBRSxD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QkFDaEQ7OzBCQVlJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgSW5qZWN0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCwgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE51bWJlcnNDb21wb25lbnQgfSBmcm9tICcuLi9udW1iZXJzJztcbmltcG9ydCB7IEVtYWlsc0NvbXBvbmVudCB9IGZyb20gJy4uL2VtYWlscyc7XG5pbXBvcnQgeyBUd29GYWN0b3JNYW5hZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgVmVyaWZpY2F0aW9uTWV0aG9kVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2VudW1zL3ZlcmlmaWNhdGlvbi1tZXRob2QtdHlwZS5lbnVtJztcbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vbWFuYWdlLW1ldGhvZHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYW5hZ2UtbWV0aG9kcy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTWFuYWdlTWV0aG9kc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgdHdvRmFjdG9yTWFuYWdlU2VydmljZTogVHdvRmFjdG9yTWFuYWdlU2VydmljZTtcbiAgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZHM7XG4gIHB1YmxpYyB2ZXJpZmljYXRpb25NZXRob2RUeXBlcyA9IHt9O1xuICBwdWJsaWMgVmVyaWZpY2F0aW9uTWV0aG9kVHlwZSA9IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGU7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIF9kZWZhdWx0Q291bnRyeTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIF9kYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgX21lc3NhZ2U6IEZzTWVzc2FnZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZWZhdWx0Q291bnRyeSA9IHRoaXMuX2RhdGEuZGVmYXVsdENvdW50cnk7XG4gICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlID0gdGhpcy5fZGF0YS50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlO1xuICAgIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kVHlwZXMgPSB0aGlzLl9kYXRhLnZlcmlmaWNhdGlvbk1ldGhvZFR5cGVzXG4gICAgLnJlZHVjZSgodmVyaWZpY2F0aW9uTWV0aG9kVHlwZXMsIHZlcmlmaWNhdGlvbk1ldGhvZFR5cGUpID0+IHtcbiAgICAgIHZlcmlmaWNhdGlvbk1ldGhvZFR5cGVzW3ZlcmlmaWNhdGlvbk1ldGhvZFR5cGVdID0gdHJ1ZTtcblxuICAgICAgcmV0dXJuIHZlcmlmaWNhdGlvbk1ldGhvZFR5cGVzO1xuICAgIH0sIHt9KTtcblxuICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS52ZXJpZmljYXRpb25NZXRob2RzJFxuICAgICAgLnN1YnNjcmliZSgodmVyaWZpY2F0aW9uTWV0aG9kcykgPT4ge1xuICAgICAgICB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZHMgPSB2ZXJpZmljYXRpb25NZXRob2RzO1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBkZWZhdWx0U21zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2Uuc21zVmVyaWZpY2F0aW9uTWV0aG9kc1xuICAgIC5zb21lKCh2ZXJpZmljYXRpb25NZXRob2QpID0+IHtcbiAgICAgIHJldHVybiB2ZXJpZmljYXRpb25NZXRob2QuZGVmYXVsdDtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVmYXVsdEFwcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmFwcFZlcmlmaWNhdGlvbk1ldGhvZHNcbiAgICAuc29tZSgodmVyaWZpY2F0aW9uTWV0aG9kKSA9PiB7XG4gICAgICByZXR1cm4gdmVyaWZpY2F0aW9uTWV0aG9kLmRlZmF1bHQ7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlZmF1bHRFbWFpbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmVtYWlsVmVyaWZpY2F0aW9uTWV0aG9kc1xuICAgIC5zb21lKCh2ZXJpZmljYXRpb25NZXRob2QpID0+IHtcbiAgICAgIHJldHVybiB2ZXJpZmljYXRpb25NZXRob2QuZGVmYXVsdDtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGV4dEhhc1ZlcmlmaWNhdGlvbk1ldGhvZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmhhc1ZlcmlmaWNhdGlvbk1ldGhvZChWZXJpZmljYXRpb25NZXRob2RUeXBlLlNtcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFwcEhhc1ZlcmlmaWNhdGlvbk1ldGhvZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmhhc1ZlcmlmaWNhdGlvbk1ldGhvZChWZXJpZmljYXRpb25NZXRob2RUeXBlLkFwcCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVtYWlsSGFzVmVyaWZpY2F0aW9uTWV0aG9kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UuaGFzVmVyaWZpY2F0aW9uTWV0aG9kKFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuRW1haWwpO1xuICB9XG5cbiAgcHVibGljIHRleHRNZXNzYWdlTWFuYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuX2RpYWxvZy5vcGVuKE51bWJlcnNDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdHdvRmFjdG9yTWFuYWdlU2VydmljZTogdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLFxuICAgICAgICBkZWZhdWx0Q291bnRyeTogdGhpcy5fZGVmYXVsdENvdW50cnksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHRleHRNZXNzYWdlQWRkKCk6IHZvaWQge1xuICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS5hZGRTbXMkKHRoaXMuX2RlZmF1bHRDb3VudHJ5KVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGVtYWlsTWVzc2FnZU1hbmFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kaWFsb2cub3BlbihFbWFpbHNDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdHdvRmFjdG9yTWFuYWdlU2VydmljZTogdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWFpbE1lc3NhZ2VBZGQoKTogdm9pZCB7XG4gICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmFkZEVtYWlsJCgpXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYXBwUmVtb3ZlKCk6IHZvaWQge1xuICAgIGNvbnN0IHZlcmlmaWNhdGlvbk1ldGhvZCA9IHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kc1xuICAgICAgLmZpbmQoKF92ZXJpZmljYXRpb25NZXRob2QpID0+IHtcbiAgICAgICAgcmV0dXJuIF92ZXJpZmljYXRpb25NZXRob2QudHlwZSA9PT0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5BcHA7XG4gICAgICB9KTtcblxuICAgIGlmKHZlcmlmaWNhdGlvbk1ldGhvZCkge1xuICAgICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmFjY291bnRWZXJpZnkkKClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLnZlcmlmaWNhdGlvbk1ldGhvZERlbGV0ZSQodmVyaWZpY2F0aW9uTWV0aG9kKSksXG4gICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnUmVtb3ZlZCBBcHAgQXV0aGVudGljYXRvciB2ZXJpZmljYXRpb24gbWV0aG9kJyk7XG4gICAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhcHBBZGQoKTogdm9pZCB7XG4gICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmFkZEFwcCQoKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZnMtZGlhbG9nPlxuICA8aDEgbWF0LWRpYWxvZy10aXRsZT4yLVN0ZXAgVmVyaWZpY2F0aW9uPC9oMT5cbiAgPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8dGFibGU+XG4gICAgICA8dHIgKm5nSWY9XCJ2ZXJpZmljYXRpb25NZXRob2RUeXBlc1tWZXJpZmljYXRpb25NZXRob2RUeXBlLlNtc11cIj5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIDxtYXQtaWNvbj50ZXh0c21zPC9tYXQtaWNvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eXBlXCI+XG4gICAgICAgICAgICA8c3Bhbj5UZXh0IE1lc3NhZ2U8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRleHRIYXNWZXJpZmljYXRpb25NZXRob2RcIiBjbGFzcz1cImVuYWJsZWRcIj48L3NwYW4+XG4gICAgICAgICAgICA8YXBwLWRlZmF1bHRlZCAqbmdJZj1cImRlZmF1bHRTbXNcIj48L2FwcC1kZWZhdWx0ZWQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+XG4gICAgICAgICAgICBWZXJpZmljYXRpb24gY29kZXMgYXJlIHNlbnQgYnkgdGV4dCBtZXNzYWdlXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGV4dEhhc1ZlcmlmaWNhdGlvbk1ldGhvZFwiPlxuICAgICAgICAgICAgICB0byA8c3BhbiBjbGFzcz1cIml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGl0ZW0gb2YgdHdvRmFjdG9yTWFuYWdlU2VydmljZS5zbXNWZXJpZmljYXRpb25NZXRob2RzXCI+e3tpdGVtLnBob25lTnVtYmVyIHwgZnNQaG9uZX19PC9zcGFuPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIDxidXR0b24gXG4gICAgICAgICAgICAgICpuZ0lmPVwidGV4dEhhc1ZlcmlmaWNhdGlvbk1ldGhvZDsgZWxzZSB0ZXh0TWVzc2FnZU1hbmFnZUJ1dHRvblwiXG4gICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRleHRNZXNzYWdlTWFuYWdlKClcIj5cbiAgICAgICAgICAgICAgTWFuYWdlXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RleHRNZXNzYWdlTWFuYWdlQnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxuICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRleHRNZXNzYWdlQWRkKClcIj5cbiAgICAgICAgICAgICAgVHVybiBPblxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgKm5nSWY9XCJ2ZXJpZmljYXRpb25NZXRob2RUeXBlc1tWZXJpZmljYXRpb25NZXRob2RUeXBlLkVtYWlsXVwiPlxuICAgICAgICA8dGQ+XG4gICAgICAgICAgPG1hdC1pY29uPmVtYWlsPC9tYXQtaWNvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eXBlXCI+XG4gICAgICAgICAgICA8c3Bhbj5FbWFpbDwvc3Bhbj4gXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImVtYWlsSGFzVmVyaWZpY2F0aW9uTWV0aG9kXCIgY2xhc3M9XCJlbmFibGVkXCI+PC9zcGFuPlxuICAgICAgICAgICAgPGFwcC1kZWZhdWx0ZWQgKm5nSWY9XCJkZWZhdWx0RW1haWxcIj48L2FwcC1kZWZhdWx0ZWQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+XG4gICAgICAgICAgICBWZXJpZmljYXRpb24gY29kZXMgYXJlIHNlbnQgYnkgZW1haWxcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbWFpbEhhc1ZlcmlmaWNhdGlvbk1ldGhvZFwiPlxuICAgICAgICAgICAgICB0byA8c3BhbiBjbGFzcz1cIml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGl0ZW0gb2YgdHdvRmFjdG9yTWFuYWdlU2VydmljZS5lbWFpbFZlcmlmaWNhdGlvbk1ldGhvZHNcIj57e2l0ZW0uZW1haWx9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICAgICAqbmdJZj1cImVtYWlsSGFzVmVyaWZpY2F0aW9uTWV0aG9kOyBlbHNlIGVtYWlsTWVzc2FnZU1hbmFnZUJ1dHRvblwiXG4gICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImVtYWlsTWVzc2FnZU1hbmFnZSgpXCI+XG4gICAgICAgICAgICBNYW5hZ2VcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNlbWFpbE1lc3NhZ2VNYW5hZ2VCdXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbiBcbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJlbWFpbE1lc3NhZ2VBZGQoKVwiPlxuICAgICAgICAgICAgVHVybiBPblxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0ciAqbmdJZj1cInZlcmlmaWNhdGlvbk1ldGhvZFR5cGVzW1ZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuQXBwXVwiPlxuICAgICAgICA8dGQ+XG4gICAgICAgICAgPG1hdC1pY29uPnBob25lX2lwaG9uZTwvbWF0LWljb24+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHlwZVwiPlxuICAgICAgICAgICAgPHNwYW4+QXV0aGVudGljYXRvciBBcHA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImFwcEhhc1ZlcmlmaWNhdGlvbk1ldGhvZFwiIGNsYXNzPVwiZW5hYmxlZFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxhcHAtZGVmYXVsdGVkICpuZ0lmPVwiZGVmYXVsdEFwcFwiPjwvYXBwLWRlZmF1bHRlZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGxcIj5WZXJpZmljYXRpb24gY29kZSBpcyBnZW5lcmF0ZWQgYnkgYW4gYXV0aGVudGljYXRvciBhcHAgc3VjaCBhcyBBdXRoeSBvciBHb29nbGUgQXV0aGVudGljYXRvcjwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQ+XG4gICAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAgICAgKm5nSWY9XCJhcHBIYXNWZXJpZmljYXRpb25NZXRob2Q7IGVsc2UgYXBwTWVzc2FnZU1hbmFnZUJ1dHRvblwiXG4gICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcFJlbW92ZSgpXCI+XG4gICAgICAgICAgICBSZW1vdmVcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhcHBNZXNzYWdlTWFuYWdlQnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b24gXG4gICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwQWRkKClcIj5cbiAgICAgICAgICAgIFR1cm4gT25cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+IFxuICAgIDwvdGFibGU+ICAgICAgXG4gIDwvbWF0LWRpYWxvZy1jb250ZW50PlxuICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxidXR0b25cbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW21hdC1kaWFsb2ctY2xvc2VdPVwidW5kZWZpbmVkXCI+XG4gICAgICBDbG9zZVxuICAgIDwvYnV0dG9uPlxuICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbjwvZnMtZGlhbG9nPlxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './number.component';
|
|
1
|
+
export * from './number.component';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbWFuYWdlL2NvbXBvbmVudHMvbnVtYmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL251bWJlci5jb21wb25lbnQnO1xuIl19
|