@firestitch/2fa 12.3.2 → 12.3.3
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 +1 -1
- package/app/interfaces/verification-method.interface.d.ts +2 -2
- package/app/modules/manage/components/2fa-manage/2fa-manage.component.d.ts +3 -1
- package/app/modules/manage/components/emails/emails.component.d.ts +2 -2
- package/app/modules/manage/components/manage-methods/manage-methods.component.d.ts +3 -0
- package/app/modules/manage/components/numbers/numbers.component.d.ts +2 -2
- package/app/modules/verification/components/2fa-verification/2fa-verification.component.d.ts +2 -2
- package/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.d.ts +2 -2
- package/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.d.ts +2 -2
- package/bundles/firestitch-2fa.umd.js +40 -25
- package/bundles/firestitch-2fa.umd.js.map +1 -1
- package/esm2015/app/enums/verification-method-type.enum.js +7 -7
- package/esm2015/app/interfaces/verification-method.interface.js +1 -1
- package/esm2015/app/modules/manage/components/2fa-manage/2fa-manage.component.js +11 -2
- package/esm2015/app/modules/manage/components/emails/emails.component.js +5 -5
- package/esm2015/app/modules/manage/components/manage-methods/manage-methods.component.js +14 -7
- package/esm2015/app/modules/manage/components/numbers/numbers.component.js +5 -5
- package/esm2015/app/modules/manage/services/two-factor-manage.service.js +5 -5
- package/esm2015/app/modules/verification/components/2fa-verification/2fa-verification.component.js +3 -3
- package/esm2015/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.js +4 -4
- package/esm2015/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.js +3 -3
- package/esm2015/public_api.js +2 -2
- package/fesm2015/firestitch-2fa.js +41 -26
- package/fesm2015/firestitch-2fa.js.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
2
|
import { ControlContainer, NgForm } from '@angular/forms';
|
|
3
3
|
import { CodeInputComponent } from '../../../../modules/code-input/components/code-input';
|
|
4
|
-
import {
|
|
4
|
+
import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../../../code-input/components/code-input/code-input.component";
|
|
7
7
|
import * as i2 from "@angular/common";
|
|
@@ -9,7 +9,7 @@ export class Fs2faVerificationCodeComponent {
|
|
|
9
9
|
constructor() {
|
|
10
10
|
this.codeChanged = new EventEmitter();
|
|
11
11
|
this.codeCompleted = new EventEmitter();
|
|
12
|
-
this.
|
|
12
|
+
this.VerificationMethodType = VerificationMethodType;
|
|
13
13
|
}
|
|
14
14
|
codeChange(code) {
|
|
15
15
|
this.code = code;
|
|
@@ -20,7 +20,7 @@ export class Fs2faVerificationCodeComponent {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
Fs2faVerificationCodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
-
Fs2faVerificationCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faVerificationCodeComponent, selector: "fs-2fa-verification-code", inputs: { method: "method", code: "code" }, outputs: { codeChanged: "codeChanged", codeCompleted: "codeCompleted" }, viewQueries: [{ propertyName: "codeInputComponent", first: true, predicate: CodeInputComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"method.phoneNumber && method.type ===
|
|
23
|
+
Fs2faVerificationCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faVerificationCodeComponent, selector: "fs-2fa-verification-code", inputs: { method: "method", code: "code" }, outputs: { codeChanged: "codeChanged", codeCompleted: "codeCompleted" }, viewQueries: [{ propertyName: "codeInputComponent", first: true, predicate: CodeInputComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"method.phoneNumber && method.type === VerificationMethodType.Sms\">\n <p class=\"description\">\n A text message with a verification code was just\n sent to <span style=\"white-space: nowrap;\">{{ method.phoneNumber }}</span> to verify it's you.\n </p>\n\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"method.type === VerificationMethodType.Email\">\n <p class=\"description\">\n A email with a verification code was just sent to {{ method.email }} to verify it's you.\n </p>\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"method.type === VerificationMethodType.App\">\n <p class=\"description\">\n Enter the verification code generated by your 2 factor authenticator app to verify it's you.\n </p>\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n</ng-container>\n\n<ng-template #input> \n <app-code-input \n [code]=\"code\"\n (codeChanged)=\"codeChange($event)\"\n (codeCompleted)=\"codeCompleted.emit()\">\n </app-code-input> \n</ng-template> ", styles: ["mat-form-field{width:100%}mat-form-field ::ng-deep .mat-form-field-subscript-wrapper{min-height:unset!important}mat-form-field ::ng-deep .mat-form-field-subscript-wrapper .fs-form-error{padding-bottom:5px}app-code-input{margin-bottom:5px}\n"], components: [{ type: i1.CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], viewProviders: [
|
|
24
24
|
{
|
|
25
25
|
provide: ControlContainer,
|
|
26
26
|
useExisting: NgForm,
|
|
@@ -54,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
54
54
|
}], codeCompleted: [{
|
|
55
55
|
type: Output
|
|
56
56
|
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMmZhLXZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy92ZXJpZmljYXRpb24vY29tcG9uZW50cy8yZmEtdmVyaWZpY2F0aW9uLWNvZGUvMmZhLXZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy92ZXJpZmljYXRpb24vY29tcG9uZW50cy8yZmEtdmVyaWZpY2F0aW9uLWNvZGUvMmZhLXZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7QUFtQnpGLE1BQU0sT0FBTyw4QkFBOEI7SUFkM0M7UUEwQlMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBR3pDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6QywyQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQztLQVd4RDtJQVRRLFVBQVUsQ0FBQyxJQUFJO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzs0SEExQlUsOEJBQThCO2dIQUE5Qiw4QkFBOEIseU9BRTlCLGtCQUFrQixnREMvQi9CLG9tQ0E2QmUsNG5CRFBFO1FBQ2I7WUFDRSxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLFdBQVcsRUFBRSxNQUFNO1NBQ3BCO0tBQ0Y7NEZBRVUsOEJBQThCO2tCQWQxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFdBQVcsRUFBRSx3Q0FBd0M7b0JBQ3JELFNBQVMsRUFBRTt3QkFDVCx3Q0FBd0M7cUJBQ3pDO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUU7d0JBQ2I7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsV0FBVyxFQUFFLE1BQU07eUJBQ3BCO3FCQUNGO2lCQUNGOzhCQUlRLGtCQUFrQjtzQkFEeEIsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBSXRCLE1BQU07c0JBRFosS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsTUFBTTtnQkFJQSxhQUFhO3NCQURuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29kZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kdWxlcy9jb2RlLWlucHV0L2NvbXBvbmVudHMvY29kZS1pbnB1dCc7XG5pbXBvcnQgeyBWZXJpZmljYXRpb25NZXRob2RUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMvdmVyaWZpY2F0aW9uLW1ldGhvZC10eXBlLmVudW0nO1xuXG5pbXBvcnQgeyBJRnNWZXJpZmljYXRpb25NZXRob2QgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL3ZlcmlmaWNhdGlvbi1tZXRob2QuaW50ZXJmYWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy0yZmEtdmVyaWZpY2F0aW9uLWNvZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vMmZhLXZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vMmZhLXZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudC5zY3NzJyxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgdXNlRXhpc3Rpbmc6IE5nRm9ybSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGczJmYVZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQge1xuXG4gIEBWaWV3Q2hpbGQoQ29kZUlucHV0Q29tcG9uZW50KVxuICBwdWJsaWMgY29kZUlucHV0Q29tcG9uZW50OiBDb2RlSW5wdXRDb21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1ldGhvZDogSUZzVmVyaWZpY2F0aW9uTWV0aG9kO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb2RlO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY29kZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNvZGVDb21wbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUgPSBWZXJpZmljYXRpb25NZXRob2RUeXBlO1xuXG4gIHB1YmxpYyBjb2RlQ2hhbmdlKGNvZGUpOiB2b2lkIHtcbiAgICB0aGlzLmNvZGUgPSBjb2RlO1xuICAgIHRoaXMuY29kZUNoYW5nZWQuZW1pdCh0aGlzLmNvZGUpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuY29kZUlucHV0Q29tcG9uZW50LmZvY3VzKCk7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1ldGhvZC5waG9uZU51bWJlciAmJiBtZXRob2QudHlwZSA9PT0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5TbXNcIj5cbiAgPHAgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxuICAgIEEgdGV4dCBtZXNzYWdlIHdpdGggYSB2ZXJpZmljYXRpb24gY29kZSB3YXMganVzdFxuICAgIHNlbnQgdG8gPHNwYW4gc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiPnt7IG1ldGhvZC5waG9uZU51bWJlciB9fTwvc3Bhbj4gdG8gdmVyaWZ5IGl0J3MgeW91LlxuICA8L3A+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0XCI+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1ldGhvZC50eXBlID09PSBWZXJpZmljYXRpb25NZXRob2RUeXBlLkVtYWlsXCI+XG4gIDxwIGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cbiAgICBBIGVtYWlsIHdpdGggYSB2ZXJpZmljYXRpb24gY29kZSB3YXMganVzdCBzZW50IHRvIHt7IG1ldGhvZC5lbWFpbCB9fSB0byB2ZXJpZnkgaXQncyB5b3UuXG4gIDwvcD5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0XCI+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1ldGhvZC50eXBlID09PSBWZXJpZmljYXRpb25NZXRob2RUeXBlLkFwcFwiPlxuICA8cCBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgRW50ZXIgdGhlIHZlcmlmaWNhdGlvbiBjb2RlIGdlbmVyYXRlZCBieSB5b3VyIDIgZmFjdG9yIGF1dGhlbnRpY2F0b3IgYXBwIHRvIHZlcmlmeSBpdCdzIHlvdS5cbiAgPC9wPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2lucHV0PiBcbiA8YXBwLWNvZGUtaW5wdXQgIFxuICAgIFtjb2RlXT1cImNvZGVcIlxuICAgIChjb2RlQ2hhbmdlZCk9XCJjb2RlQ2hhbmdlKCRldmVudClcIlxuICAgIChjb2RlQ29tcGxldGVkKT1cImNvZGVDb21wbGV0ZWQuZW1pdCgpXCI+XG4gIDwvYXBwLWNvZGUtaW5wdXQ+IFxuPC9uZy10ZW1wbGF0ZT4gIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, Inject, } from '@angular/core';
|
|
2
2
|
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
3
3
|
import { tap } from 'rxjs/operators';
|
|
4
|
-
import {
|
|
4
|
+
import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/material/dialog";
|
|
7
7
|
import * as i2 from "@firestitch/dialog";
|
|
@@ -16,7 +16,7 @@ export class Fs2faVerificationMethodsComponent {
|
|
|
16
16
|
constructor(_dialogData, _dialogRef) {
|
|
17
17
|
this._dialogData = _dialogData;
|
|
18
18
|
this._dialogRef = _dialogRef;
|
|
19
|
-
this.verificationMethodType =
|
|
19
|
+
this.verificationMethodType = VerificationMethodType;
|
|
20
20
|
this.setVerificationMethod = () => {
|
|
21
21
|
return this._selectVerificationMethod(this.method)
|
|
22
22
|
.pipe(tap((method) => {
|
|
@@ -60,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
60
60
|
type: Inject,
|
|
61
61
|
args: [MAT_DIALOG_DATA]
|
|
62
62
|
}] }, { type: i1.MatDialogRef }]; } });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMmZhLXZlcmlmaWNhdGlvbi1tZXRob2RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy92ZXJpZmljYXRpb24vY29tcG9uZW50cy8yZmEtdmVyaWZpY2F0aW9uLW1ldGhvZHMvMmZhLXZlcmlmaWNhdGlvbi1tZXRob2RzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy92ZXJpZmljYXRpb24vY29tcG9uZW50cy8yZmEtdmVyaWZpY2F0aW9uLW1ldGhvZHMvMmZhLXZlcmlmaWNhdGlvbi1tZXRob2RzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7Ozs7Ozs7QUFXM0YsTUFBTSxPQUFPLGlDQUFpQztJQVU1QyxZQUVVLFdBQWdCLEVBQ2hCLFVBQTJEO1FBRDNELGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQWlEO1FBUHJELDJCQUFzQixHQUFHLHdCQUF3QixDQUFDO1FBa0IzRCwwQkFBcUIsR0FBRyxHQUFHLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztpQkFDL0MsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLE1BQTZCLEVBQUUsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNOLENBQUMsQ0FBQztRQWhCQSxJQUFJLENBQUMseUJBQXlCLEdBQUcsV0FBVyxDQUFDLHdCQUF3QixDQUFDO1FBQ3RFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLFdBQVcsQ0FBQyxFQUFFLEVBQUUsRUFBRTtRQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFBO0lBQ3BDLENBQUM7SUFXTyxnQkFBZ0I7O1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxNQUFNLENBQUM7SUFDekMsQ0FBQztJQUVPLFlBQVksQ0FBQyxtQkFBbUI7UUFDdEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQjthQUMzQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3JCLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ3ZCO1lBRUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFOUIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDOzsrSEFoRFUsaUNBQWlDLGtCQVdsQyxlQUFlO21IQVhkLGlDQUFpQyxvREN0QjlDLHVuSEFzRkE7NEZEaEVhLGlDQUFpQztrQkFQN0MsU0FBUzttQkFBQztvQkFDVCxXQUFXLEVBQUUsMkNBQTJDO29CQUN4RCxTQUFTLEVBQUU7d0JBQ1QsMkNBQTJDO3FCQUM1QztvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQVlJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGc1ZlcmlmaWNhdGlvbk1ldGhvZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcy92ZXJpZmljYXRpb24tbWV0aG9kLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBJRnNWZXJpZmljYXRpb25NZXRob2QgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL3ZlcmlmaWNhdGlvbi1tZXRob2QuaW50ZXJmYWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuLzJmYS12ZXJpZmljYXRpb24tbWV0aG9kcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuLzJmYS12ZXJpZmljYXRpb24tbWV0aG9kcy5jb21wb25lbnQuc2NzcycsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGczJmYVZlcmlmaWNhdGlvbk1ldGhvZHNDb21wb25lbnQge1xuXG4gIHB1YmxpYyBtZXRob2Q6IElGc1ZlcmlmaWNhdGlvbk1ldGhvZDtcbiAgcHVibGljIHBob25lOiBzdHJpbmc7XG4gIHB1YmxpYyBjb2RlOiBzdHJpbmc7XG4gIHB1YmxpYyB2ZXJpZmljYXRpb25NZXRob2RzOiBSZWNvcmQ8c3RyaW5nLCBJRnNWZXJpZmljYXRpb25NZXRob2RbXT47XG4gIHB1YmxpYyByZWFkb25seSB2ZXJpZmljYXRpb25NZXRob2RUeXBlID0gRnNWZXJpZmljYXRpb25NZXRob2RUeXBlO1xuXG4gIHByaXZhdGUgX3NlbGVjdFZlcmlmaWNhdGlvbk1ldGhvZDogKElGc1ZlcmlmaWNhdGlvbk1ldGhvZCkgPT4gT2JzZXJ2YWJsZTxJRnNWZXJpZmljYXRpb25NZXRob2Q+OyAgXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXG4gICAgcHJpdmF0ZSBfZGlhbG9nRGF0YTogYW55LFxuICAgIHByaXZhdGUgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEZzMmZhVmVyaWZpY2F0aW9uTWV0aG9kc0NvbXBvbmVudD4sXG4gICkge1xuICAgIHRoaXMuX3NlbGVjdFZlcmlmaWNhdGlvbk1ldGhvZCA9IF9kaWFsb2dEYXRhLnNlbGVjdFZlcmlmaWNhdGlvbk1ldGhvZDtcbiAgICB0aGlzLl9zZXRBY3RpdmVNZXRob2QoKTtcbiAgICB0aGlzLl9pbml0TWV0aG9kcyhfZGlhbG9nRGF0YS52ZXJpZmljYXRpb25NZXRob2RzKTtcbiAgfVxuXG4gIHB1YmxpYyBjb21wYXJlV2l0aChvMSwgbzIpIHtcbiAgICByZXR1cm4gbzEgJiYgbzIgJiYgbzEuaWQgPT09IG8yLmlkXG4gIH1cblxuICBwdWJsaWMgc2V0VmVyaWZpY2F0aW9uTWV0aG9kID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RWZXJpZmljYXRpb25NZXRob2QodGhpcy5tZXRob2QpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChtZXRob2Q6IElGc1ZlcmlmaWNhdGlvbk1ldGhvZCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZShtZXRob2QpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfTtcblxuICBwcml2YXRlIF9zZXRBY3RpdmVNZXRob2QoKTogdm9pZCB7XG4gICAgdGhpcy5tZXRob2QgPSB0aGlzLl9kaWFsb2dEYXRhPy5tZXRob2Q7XG4gIH1cblxuICBwcml2YXRlIF9pbml0TWV0aG9kcyh2ZXJpZmljYXRpb25NZXRob2RzKTogdm9pZCB7XG4gICAgdGhpcy52ZXJpZmljYXRpb25NZXRob2RzID0gdmVyaWZpY2F0aW9uTWV0aG9kc1xuICAgICAgLnJlZHVjZSgoYWNjLCBtZXRob2QpID0+IHtcbiAgICAgICAgaWYgKCFhY2NbbWV0aG9kLnR5cGVdKSB7XG4gICAgICAgICAgYWNjW21ldGhvZC50eXBlXSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgYWNjW21ldGhvZC50eXBlXS5wdXNoKG1ldGhvZCk7XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KTtcbiAgfVxufVxuIiwiPGZzLWRpYWxvZz5cbiAgPGgxIG1hdC1kaWFsb2ctdGl0bGU+XG4gICAgVmVyaWZpY2F0aW9uIE1ldGhvZHNcbiAgPC9oMT5cbiAgPGZvcm0gZnNGb3JtIFtzdWJtaXRdPVwic2V0VmVyaWZpY2F0aW9uTWV0aG9kXCIgW2RpcnR5U3VibWl0QnV0dG9uXT1cImZhbHNlXCI+XG4gICAgPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgIDxmcy1yYWRpby1ncm91cCBbKG5nTW9kZWwpXT1cIm1ldGhvZFwiIG5hbWU9XCJtZXRob2RcIiBbY29tcGFyZVdpdGhdPVwiY29tcGFyZVdpdGhcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZXRob2RNYXAgb2YgdmVyaWZpY2F0aW9uTWV0aG9kcyB8IGtleXZhbHVlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIm1ldGhvZE1hcC5rZXlcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ2ZXJpZmljYXRpb25NZXRob2RUeXBlLlNtc1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dHNtc1xuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLXRpdGxlXCI+VGV4dCBNZXNzYWdlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC1zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uIGNvZGUgc2VuZCB0byBvbmUgb2YgZm9sbG93aW5nIG1vYmlsZSBudW1iZXJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuRW1haWxcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRob2QtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRob2QtaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1haWxcbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC10aXRsZVwiPkVtYWlsPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC1zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uIGNvZGUgc2VuZCB0byBvbmUgb2YgZm9sbG93aW5nIGVtYWlsXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ2ZXJpZmljYXRpb25NZXRob2RUeXBlLkFwcFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmVfaXBob25lXG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRob2QtbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRob2QtdGl0bGVcIj5BdXRoZW50aWNhdG9yIEFwcDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRob2Qtc3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIFZlcmlmaWNhdGlvbiBjb2RlIGdlbmVyYXRlZCBieSBhbiBhdXRoZW50aWNhdG9yIGFwcFxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJtZXRob2QtaXRlbVwiICpuZ0Zvcj1cImxldCBtZXRob2Qgb2YgbWV0aG9kTWFwLnZhbHVlXCIgW3ZhbHVlXT1cIm1ldGhvZFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIm1ldGhvZE1hcC5rZXlcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuU21zXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG1ldGhvZC5waG9uZU51bWJlciB9fVxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ2ZXJpZmljYXRpb25NZXRob2RUeXBlLkVtYWlsXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG1ldGhvZC5lbWFpbCB9fVxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ2ZXJpZmljYXRpb25NZXRob2RUeXBlLkFwcFwiPlxuICAgICAgICAgICAgICAgICAgICBBdXRoZW50aWNhdG9yIEFwcFxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+ICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mcy1yYWRpby1ncm91cD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cInN1Ym1pdFwiIGNvbG9yPVwicHJpbWFyeVwiPk5leHQ8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJudWxsXCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbiAgPC9mb3JtPlxuPC9mcy1kaWFsb2c+XG4iXX0=
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMmZhLXZlcmlmaWNhdGlvbi1tZXRob2RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy92ZXJpZmljYXRpb24vY29tcG9uZW50cy8yZmEtdmVyaWZpY2F0aW9uLW1ldGhvZHMvMmZhLXZlcmlmaWNhdGlvbi1tZXRob2RzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy92ZXJpZmljYXRpb24vY29tcG9uZW50cy8yZmEtdmVyaWZpY2F0aW9uLW1ldGhvZHMvMmZhLXZlcmlmaWNhdGlvbi1tZXRob2RzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7Ozs7Ozs7QUFXekYsTUFBTSxPQUFPLGlDQUFpQztJQVU1QyxZQUVVLFdBQWdCLEVBQ2hCLFVBQTJEO1FBRDNELGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQWlEO1FBUHJELDJCQUFzQixHQUFHLHNCQUFzQixDQUFDO1FBa0J6RCwwQkFBcUIsR0FBRyxHQUFHLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztpQkFDL0MsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLE1BQTZCLEVBQUUsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNOLENBQUMsQ0FBQztRQWhCQSxJQUFJLENBQUMseUJBQXlCLEdBQUcsV0FBVyxDQUFDLHdCQUF3QixDQUFDO1FBQ3RFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLFdBQVcsQ0FBQyxFQUFFLEVBQUUsRUFBRTtRQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFBO0lBQ3BDLENBQUM7SUFXTyxnQkFBZ0I7O1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxNQUFNLENBQUM7SUFDekMsQ0FBQztJQUVPLFlBQVksQ0FBQyxtQkFBbUI7UUFDdEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQjthQUMzQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3JCLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ3ZCO1lBRUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFOUIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDOzsrSEFoRFUsaUNBQWlDLGtCQVdsQyxlQUFlO21IQVhkLGlDQUFpQyxvREN0QjlDLHVuSEFzRkE7NEZEaEVhLGlDQUFpQztrQkFQN0MsU0FBUzttQkFBQztvQkFDVCxXQUFXLEVBQUUsMkNBQTJDO29CQUN4RCxTQUFTLEVBQUU7d0JBQ1QsMkNBQTJDO3FCQUM1QztvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQVlJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBWZXJpZmljYXRpb25NZXRob2RUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMvdmVyaWZpY2F0aW9uLW1ldGhvZC10eXBlLmVudW0nO1xuaW1wb3J0IHsgSUZzVmVyaWZpY2F0aW9uTWV0aG9kIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy92ZXJpZmljYXRpb24tbWV0aG9kLmludGVyZmFjZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi8yZmEtdmVyaWZpY2F0aW9uLW1ldGhvZHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi8yZmEtdmVyaWZpY2F0aW9uLW1ldGhvZHMuY29tcG9uZW50LnNjc3MnLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRnMyZmFWZXJpZmljYXRpb25NZXRob2RzQ29tcG9uZW50IHtcblxuICBwdWJsaWMgbWV0aG9kOiBJRnNWZXJpZmljYXRpb25NZXRob2Q7XG4gIHB1YmxpYyBwaG9uZTogc3RyaW5nO1xuICBwdWJsaWMgY29kZTogc3RyaW5nO1xuICBwdWJsaWMgdmVyaWZpY2F0aW9uTWV0aG9kczogUmVjb3JkPHN0cmluZywgSUZzVmVyaWZpY2F0aW9uTWV0aG9kW10+O1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyaWZpY2F0aW9uTWV0aG9kVHlwZSA9IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGU7XG5cbiAgcHJpdmF0ZSBfc2VsZWN0VmVyaWZpY2F0aW9uTWV0aG9kOiAoSUZzVmVyaWZpY2F0aW9uTWV0aG9kKSA9PiBPYnNlcnZhYmxlPElGc1ZlcmlmaWNhdGlvbk1ldGhvZD47ICBcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSlcbiAgICBwcml2YXRlIF9kaWFsb2dEYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RnMyZmFWZXJpZmljYXRpb25NZXRob2RzQ29tcG9uZW50PixcbiAgKSB7XG4gICAgdGhpcy5fc2VsZWN0VmVyaWZpY2F0aW9uTWV0aG9kID0gX2RpYWxvZ0RhdGEuc2VsZWN0VmVyaWZpY2F0aW9uTWV0aG9kO1xuICAgIHRoaXMuX3NldEFjdGl2ZU1ldGhvZCgpO1xuICAgIHRoaXMuX2luaXRNZXRob2RzKF9kaWFsb2dEYXRhLnZlcmlmaWNhdGlvbk1ldGhvZHMpO1xuICB9XG5cbiAgcHVibGljIGNvbXBhcmVXaXRoKG8xLCBvMikge1xuICAgIHJldHVybiBvMSAmJiBvMiAmJiBvMS5pZCA9PT0gbzIuaWRcbiAgfVxuXG4gIHB1YmxpYyBzZXRWZXJpZmljYXRpb25NZXRob2QgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdFZlcmlmaWNhdGlvbk1ldGhvZCh0aGlzLm1ldGhvZClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKG1ldGhvZDogSUZzVmVyaWZpY2F0aW9uTWV0aG9kKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKG1ldGhvZCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9O1xuXG4gIHByaXZhdGUgX3NldEFjdGl2ZU1ldGhvZCgpOiB2b2lkIHtcbiAgICB0aGlzLm1ldGhvZCA9IHRoaXMuX2RpYWxvZ0RhdGE/Lm1ldGhvZDtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRNZXRob2RzKHZlcmlmaWNhdGlvbk1ldGhvZHMpOiB2b2lkIHtcbiAgICB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZHMgPSB2ZXJpZmljYXRpb25NZXRob2RzXG4gICAgICAucmVkdWNlKChhY2MsIG1ldGhvZCkgPT4ge1xuICAgICAgICBpZiAoIWFjY1ttZXRob2QudHlwZV0pIHtcbiAgICAgICAgICBhY2NbbWV0aG9kLnR5cGVdID0gW107XG4gICAgICAgIH1cblxuICAgICAgICBhY2NbbWV0aG9kLnR5cGVdLnB1c2gobWV0aG9kKTtcblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30pO1xuICB9XG59XG4iLCI8ZnMtZGlhbG9nPlxuICA8aDEgbWF0LWRpYWxvZy10aXRsZT5cbiAgICBWZXJpZmljYXRpb24gTWV0aG9kc1xuICA8L2gxPlxuICA8Zm9ybSBmc0Zvcm0gW3N1Ym1pdF09XCJzZXRWZXJpZmljYXRpb25NZXRob2RcIiBbZGlydHlTdWJtaXRCdXR0b25dPVwiZmFsc2VcIj5cbiAgICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgPGZzLXJhZGlvLWdyb3VwIFsobmdNb2RlbCldPVwibWV0aG9kXCIgbmFtZT1cIm1ldGhvZFwiIFtjb21wYXJlV2l0aF09XCJjb21wYXJlV2l0aFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1ldGhvZE1hcCBvZiB2ZXJpZmljYXRpb25NZXRob2RzIHwga2V5dmFsdWVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRob2RcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwibWV0aG9kTWFwLmtleVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuU21zXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0c21zXG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRob2QtbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRob2QtdGl0bGVcIj5UZXh0IE1lc3NhZ2U8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb24gY29kZSBzZW5kIHRvIG9uZSBvZiBmb2xsb3dpbmcgbW9iaWxlIG51bWJlclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5FbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgbWFpbFxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLXRpdGxlXCI+RW1haWw8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb24gY29kZSBzZW5kIHRvIG9uZSBvZiBmb2xsb3dpbmcgZW1haWxcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuQXBwXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICBwaG9uZV9pcGhvbmVcbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC10aXRsZVwiPkF1dGhlbnRpY2F0b3IgQXBwPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC1zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uIGNvZGUgZ2VuZXJhdGVkIGJ5IGFuIGF1dGhlbnRpY2F0b3IgYXBwXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cIm1ldGhvZC1pdGVtXCIgKm5nRm9yPVwibGV0IG1ldGhvZCBvZiBtZXRob2RNYXAudmFsdWVcIiBbdmFsdWVdPVwibWV0aG9kXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwibWV0aG9kTWFwLmtleVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5TbXNcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbWV0aG9kLnBob25lTnVtYmVyIH19XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuRW1haWxcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbWV0aG9kLmVtYWlsIH19XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuQXBwXCI+XG4gICAgICAgICAgICAgICAgICAgIEF1dGhlbnRpY2F0b3IgQXBwXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZzLXJhZGlvLWdyb3VwPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY29sb3I9XCJwcmltYXJ5XCI+TmV4dDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuICA8L2Zvcm0+XG48L2ZzLWRpYWxvZz5cbiJdfQ==
|
package/esm2015/public_api.js
CHANGED
|
@@ -2,5 +2,5 @@ export { Fs2faVerificationModule } from './app/modules/verification/fs-2fa-verif
|
|
|
2
2
|
export { Fs2faManageModule } from './app/modules/manage/fs-2f-manage.module';
|
|
3
3
|
export { Fs2faVerificationComponent } from './app/modules/verification/components/2fa-verification/2fa-verification.component';
|
|
4
4
|
export { Fs2faManageComponent } from './app/modules/manage/components/2fa-manage/2fa-manage.component';
|
|
5
|
-
export {
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export { VerificationMethodType } from './app/enums/verification-method-type.enum';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1GQUFtRixDQUFDO0FBQy9ILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBSXZHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgRnMyZmFWZXJpZmljYXRpb25Nb2R1bGUgfSBmcm9tICcuL2FwcC9tb2R1bGVzL3ZlcmlmaWNhdGlvbi9mcy0yZmEtdmVyaWZpY2F0aW9uLm1vZHVsZSc7XG5leHBvcnQgeyBGczJmYU1hbmFnZU1vZHVsZSB9IGZyb20gJy4vYXBwL21vZHVsZXMvbWFuYWdlL2ZzLTJmLW1hbmFnZS5tb2R1bGUnO1xuXG5leHBvcnQgeyBGczJmYVZlcmlmaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vYXBwL21vZHVsZXMvdmVyaWZpY2F0aW9uL2NvbXBvbmVudHMvMmZhLXZlcmlmaWNhdGlvbi8yZmEtdmVyaWZpY2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgeyBGczJmYU1hbmFnZUNvbXBvbmVudCB9IGZyb20gJy4vYXBwL21vZHVsZXMvbWFuYWdlL2NvbXBvbmVudHMvMmZhLW1hbmFnZS8yZmEtbWFuYWdlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7IElGc1ZlcmlmaWNhdGlvbk1ldGhvZCB9IGZyb20gJy4vYXBwL2ludGVyZmFjZXMvdmVyaWZpY2F0aW9uLW1ldGhvZC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgeyBWZXJpZmljYXRpb25NZXRob2RUeXBlIH0gZnJvbSAnLi9hcHAvZW51bXMvdmVyaWZpY2F0aW9uLW1ldGhvZC10eXBlLmVudW0nO1xuIl19
|
|
@@ -45,18 +45,18 @@ import { QrCodeModule } from 'ng-qrcode';
|
|
|
45
45
|
import * as i2 from '@firestitch/message';
|
|
46
46
|
import * as i1$2 from '@firestitch/prompt';
|
|
47
47
|
|
|
48
|
-
var
|
|
49
|
-
(function (
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
})(
|
|
48
|
+
var VerificationMethodType;
|
|
49
|
+
(function (VerificationMethodType) {
|
|
50
|
+
VerificationMethodType["Sms"] = "sms";
|
|
51
|
+
VerificationMethodType["Email"] = "email";
|
|
52
|
+
VerificationMethodType["App"] = "app";
|
|
53
|
+
})(VerificationMethodType || (VerificationMethodType = {}));
|
|
54
54
|
|
|
55
55
|
class Fs2faVerificationMethodsComponent {
|
|
56
56
|
constructor(_dialogData, _dialogRef) {
|
|
57
57
|
this._dialogData = _dialogData;
|
|
58
58
|
this._dialogRef = _dialogRef;
|
|
59
|
-
this.verificationMethodType =
|
|
59
|
+
this.verificationMethodType = VerificationMethodType;
|
|
60
60
|
this.setVerificationMethod = () => {
|
|
61
61
|
return this._selectVerificationMethod(this.method)
|
|
62
62
|
.pipe(tap((method) => {
|
|
@@ -137,7 +137,7 @@ class Fs2faVerificationCodeComponent {
|
|
|
137
137
|
constructor() {
|
|
138
138
|
this.codeChanged = new EventEmitter();
|
|
139
139
|
this.codeCompleted = new EventEmitter();
|
|
140
|
-
this.
|
|
140
|
+
this.VerificationMethodType = VerificationMethodType;
|
|
141
141
|
}
|
|
142
142
|
codeChange(code) {
|
|
143
143
|
this.code = code;
|
|
@@ -148,7 +148,7 @@ class Fs2faVerificationCodeComponent {
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
Fs2faVerificationCodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
151
|
-
Fs2faVerificationCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faVerificationCodeComponent, selector: "fs-2fa-verification-code", inputs: { method: "method", code: "code" }, outputs: { codeChanged: "codeChanged", codeCompleted: "codeCompleted" }, viewQueries: [{ propertyName: "codeInputComponent", first: true, predicate: CodeInputComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"method.phoneNumber && method.type ===
|
|
151
|
+
Fs2faVerificationCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faVerificationCodeComponent, selector: "fs-2fa-verification-code", inputs: { method: "method", code: "code" }, outputs: { codeChanged: "codeChanged", codeCompleted: "codeCompleted" }, viewQueries: [{ propertyName: "codeInputComponent", first: true, predicate: CodeInputComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"method.phoneNumber && method.type === VerificationMethodType.Sms\">\n <p class=\"description\">\n A text message with a verification code was just\n sent to <span style=\"white-space: nowrap;\">{{ method.phoneNumber }}</span> to verify it's you.\n </p>\n\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"method.type === VerificationMethodType.Email\">\n <p class=\"description\">\n A email with a verification code was just sent to {{ method.email }} to verify it's you.\n </p>\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"method.type === VerificationMethodType.App\">\n <p class=\"description\">\n Enter the verification code generated by your 2 factor authenticator app to verify it's you.\n </p>\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n</ng-container>\n\n<ng-template #input> \n <app-code-input \n [code]=\"code\"\n (codeChanged)=\"codeChange($event)\"\n (codeCompleted)=\"codeCompleted.emit()\">\n </app-code-input> \n</ng-template> ", styles: ["mat-form-field{width:100%}mat-form-field ::ng-deep .mat-form-field-subscript-wrapper{min-height:unset!important}mat-form-field ::ng-deep .mat-form-field-subscript-wrapper .fs-form-error{padding-bottom:5px}app-code-input{margin-bottom:5px}\n"], components: [{ type: CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }], directives: [{ type: i9$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], viewProviders: [
|
|
152
152
|
{
|
|
153
153
|
provide: ControlContainer,
|
|
154
154
|
useExisting: NgForm,
|
|
@@ -193,7 +193,7 @@ class Fs2faVerificationComponent {
|
|
|
193
193
|
this.resendInProgress = false;
|
|
194
194
|
this.code = '';
|
|
195
195
|
this.trustedDevice = true;
|
|
196
|
-
this.
|
|
196
|
+
this.VerificationMethodType = VerificationMethodType;
|
|
197
197
|
this._destroy$ = new Subject();
|
|
198
198
|
}
|
|
199
199
|
ngOnInit() {
|
|
@@ -576,13 +576,13 @@ class TwoFactorManageService {
|
|
|
576
576
|
return !!this._verificationMethods$.getValue().length;
|
|
577
577
|
}
|
|
578
578
|
get emailVerificationMethods() {
|
|
579
|
-
return this.getVerificationMethods(
|
|
579
|
+
return this.getVerificationMethods(VerificationMethodType.Email);
|
|
580
580
|
}
|
|
581
581
|
get smsVerificationMethods() {
|
|
582
|
-
return this.getVerificationMethods(
|
|
582
|
+
return this.getVerificationMethods(VerificationMethodType.Sms);
|
|
583
583
|
}
|
|
584
584
|
get appVerificationMethods() {
|
|
585
|
-
return this.getVerificationMethods(
|
|
585
|
+
return this.getVerificationMethods(VerificationMethodType.App);
|
|
586
586
|
}
|
|
587
587
|
getVerificationMethods(type) {
|
|
588
588
|
return this.verificationMethods
|
|
@@ -753,7 +753,7 @@ class NumbersComponent {
|
|
|
753
753
|
this._data = _data;
|
|
754
754
|
this._dialogRef = _dialogRef;
|
|
755
755
|
this._message = _message;
|
|
756
|
-
this.
|
|
756
|
+
this.VerificationMethodType = VerificationMethodType;
|
|
757
757
|
this.twoFactorManageService = _data.twoFactorManageService;
|
|
758
758
|
this.defaultCountry = _data.defaultCountry;
|
|
759
759
|
}
|
|
@@ -763,13 +763,13 @@ class NumbersComponent {
|
|
|
763
763
|
}
|
|
764
764
|
deleted() {
|
|
765
765
|
this._message.success('Deleted text message verification method');
|
|
766
|
-
if (!this.twoFactorManageService.hasVerificationMethod(
|
|
766
|
+
if (!this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Sms)) {
|
|
767
767
|
this._dialogRef.close();
|
|
768
768
|
}
|
|
769
769
|
}
|
|
770
770
|
}
|
|
771
771
|
NumbersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NumbersComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
|
|
772
|
-
NumbersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NumbersComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog>\n <h1 mat-dialog-title>\n Text Message Numbers\n </h1>\n <mat-dialog-content>\n <app-verification-methods\n [type]=\"
|
|
772
|
+
NumbersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NumbersComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog>\n <h1 mat-dialog-title>\n Text Message Numbers\n </h1>\n <mat-dialog-content>\n <app-verification-methods\n [type]=\"VerificationMethodType.Sms\"\n [twoFactorManageService]=\"twoFactorManageService\"\n (deleted)=\"deleted()\">\n </app-verification-methods>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n type=\"button\"\n color=\"primary\"\n [mat-dialog-close]=\"undefined\">\n Close\n </button>\n <button\n mat-button\n (click)=\"add()\"\n type=\"button\">\n Add Number\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: [""], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: VerificationMethodsComponent, selector: "app-verification-methods", inputs: ["twoFactorManageService", "type"], outputs: ["deleted"] }, { type: i7.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 });
|
|
773
773
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NumbersComponent, decorators: [{
|
|
774
774
|
type: Component,
|
|
775
775
|
args: [{
|
|
@@ -787,7 +787,7 @@ class EmailsComponent {
|
|
|
787
787
|
this._data = _data;
|
|
788
788
|
this._dialogRef = _dialogRef;
|
|
789
789
|
this._message = _message;
|
|
790
|
-
this.
|
|
790
|
+
this.VerificationMethodType = VerificationMethodType;
|
|
791
791
|
this.twoFactorManageService = _data.twoFactorManageService;
|
|
792
792
|
}
|
|
793
793
|
add() {
|
|
@@ -796,13 +796,13 @@ class EmailsComponent {
|
|
|
796
796
|
}
|
|
797
797
|
deleted() {
|
|
798
798
|
this._message.success('Deleted email verification method');
|
|
799
|
-
if (!this.twoFactorManageService.hasVerificationMethod(
|
|
799
|
+
if (!this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Email)) {
|
|
800
800
|
this._dialogRef.close();
|
|
801
801
|
}
|
|
802
802
|
}
|
|
803
803
|
}
|
|
804
804
|
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 });
|
|
805
|
-
EmailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: EmailsComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog>\n <h1 mat-dialog-title>\n Emails\n </h1>\n <mat-dialog-content>\n <app-verification-methods\n [type]=\"
|
|
805
|
+
EmailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: EmailsComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog>\n <h1 mat-dialog-title>\n Emails\n </h1>\n <mat-dialog-content>\n <app-verification-methods\n [type]=\"VerificationMethodType.Email\"\n [twoFactorManageService]=\"twoFactorManageService\"\n (deleted)=\"deleted()\">\n </app-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: [""], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: VerificationMethodsComponent, selector: "app-verification-methods", inputs: ["twoFactorManageService", "type"], outputs: ["deleted"] }, { type: i7.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 });
|
|
806
806
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EmailsComponent, decorators: [{
|
|
807
807
|
type: Component,
|
|
808
808
|
args: [{
|
|
@@ -821,11 +821,18 @@ class ManageMethodsComponent {
|
|
|
821
821
|
this._cdRef = _cdRef;
|
|
822
822
|
this._dialog = _dialog;
|
|
823
823
|
this._message = _message;
|
|
824
|
+
this.verificationMethodTypes = {};
|
|
825
|
+
this.VerificationMethodType = VerificationMethodType;
|
|
824
826
|
this._destroy$ = new Subject();
|
|
825
827
|
}
|
|
826
828
|
ngOnInit() {
|
|
827
829
|
this._defaultCountry = this._data.defaultCountry;
|
|
828
830
|
this.twoFactorManageService = this._data.twoFactorManageService;
|
|
831
|
+
this.verificationMethodTypes = this._data.verificationMethodTypes
|
|
832
|
+
.reduce((verificationMethodTypes, verificationMethodType) => {
|
|
833
|
+
verificationMethodTypes[verificationMethodType] = true;
|
|
834
|
+
return verificationMethodTypes;
|
|
835
|
+
}, {});
|
|
829
836
|
this.twoFactorManageService.verificationMethods$
|
|
830
837
|
.subscribe((verificationMethods) => {
|
|
831
838
|
this.verificationMethods = verificationMethods;
|
|
@@ -851,13 +858,13 @@ class ManageMethodsComponent {
|
|
|
851
858
|
});
|
|
852
859
|
}
|
|
853
860
|
get textHasVerificationMethod() {
|
|
854
|
-
return this.twoFactorManageService.hasVerificationMethod(
|
|
861
|
+
return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Sms);
|
|
855
862
|
}
|
|
856
863
|
get appHasVerificationMethod() {
|
|
857
|
-
return this.twoFactorManageService.hasVerificationMethod(
|
|
864
|
+
return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.App);
|
|
858
865
|
}
|
|
859
866
|
get emailHasVerificationMethod() {
|
|
860
|
-
return this.twoFactorManageService.hasVerificationMethod(
|
|
867
|
+
return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Email);
|
|
861
868
|
}
|
|
862
869
|
textMessageManage() {
|
|
863
870
|
this._dialog.open(NumbersComponent, {
|
|
@@ -886,7 +893,7 @@ class ManageMethodsComponent {
|
|
|
886
893
|
this._message.success('Removed App Authenticator verification method');
|
|
887
894
|
const verificationMethod = this.verificationMethods
|
|
888
895
|
.find((_verificationMethod) => {
|
|
889
|
-
return _verificationMethod.type ===
|
|
896
|
+
return _verificationMethod.type === VerificationMethodType.App;
|
|
890
897
|
});
|
|
891
898
|
if (verificationMethod) {
|
|
892
899
|
this.twoFactorManageService.verificationMethodDelete(verificationMethod)
|
|
@@ -905,7 +912,7 @@ class ManageMethodsComponent {
|
|
|
905
912
|
}
|
|
906
913
|
}
|
|
907
914
|
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 });
|
|
908
|
-
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: DefaultedComponent, selector: "app-defaulted" }, { type: i7.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: i9$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9$1.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": i6.FsPhonePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
915
|
+
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: DefaultedComponent, selector: "app-defaulted" }, { type: i7.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: i9$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9$1.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": i6.FsPhonePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
909
916
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ManageMethodsComponent, decorators: [{
|
|
910
917
|
type: Component,
|
|
911
918
|
args: [{
|
|
@@ -926,6 +933,11 @@ class Fs2faManageComponent {
|
|
|
926
933
|
this._destroy$ = new Subject();
|
|
927
934
|
}
|
|
928
935
|
ngOnInit() {
|
|
936
|
+
this.verificationMethodTypes = this.verificationMethodTypes || [
|
|
937
|
+
VerificationMethodType.Sms,
|
|
938
|
+
VerificationMethodType.Email,
|
|
939
|
+
VerificationMethodType.App
|
|
940
|
+
];
|
|
929
941
|
this._twoFactorManageService.registerVerificationMethodFetch(this.verificationMethodsFetch);
|
|
930
942
|
this._twoFactorManageService.registerVerificationMethodDelete(this.verificationMethodDelete);
|
|
931
943
|
this._twoFactorManageService.registerVerificationMethodCreate(this.verificationMethodCreate);
|
|
@@ -956,6 +968,7 @@ class Fs2faManageComponent {
|
|
|
956
968
|
data: {
|
|
957
969
|
defaultCountry: this.defaultCountry,
|
|
958
970
|
twoFactorManageService: this._twoFactorManageService,
|
|
971
|
+
verificationMethodTypes: this.verificationMethodTypes,
|
|
959
972
|
},
|
|
960
973
|
});
|
|
961
974
|
dialogRef.afterClosed()
|
|
@@ -973,7 +986,7 @@ class Fs2faManageComponent {
|
|
|
973
986
|
}
|
|
974
987
|
}
|
|
975
988
|
Fs2faManageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faManageComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.MatDialog }, { token: TwoFactorManageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
976
|
-
Fs2faManageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faManageComponent, selector: "fs-2fa-manage", inputs: { accountVerify: "accountVerify", defaultCountry: "defaultCountry", verificationMethodsFetch: "verificationMethodsFetch", verificationMethodDelete: "verificationMethodDelete", verificationMethodCreate: "verificationMethodCreate", verificationMethodVerify: "verificationMethodVerify", verificationMethodResend: "verificationMethodResend" }, providers: [TwoFactorManageService], ngImport: i0, template: "<fs-label-field>\n <fs-label>Status</fs-label>\n <ng-container *ngIf=\"statuses\">\n <ng-container *ngIf=\"statuses.length === 1\">\n {{statuses[0]}} verification is enabled\n </ng-container>\n\n <ng-container *ngIf=\"statuses.length > 1\">\n {{statuses.join(', ')}} verifications are enabled\n </ng-container>\n\n <ng-container *ngIf=\"statuses.length === 0\">\n No verification methods are enabled\n </ng-container>\n </ng-container>\n</fs-label-field>", styles: [""], components: [{ type: i3$4.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i3$4.FsLabelComponent, selector: "fs-label" }], directives: [{ type: i9$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
989
|
+
Fs2faManageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faManageComponent, selector: "fs-2fa-manage", inputs: { accountVerify: "accountVerify", defaultCountry: "defaultCountry", verificationMethodTypes: "verificationMethodTypes", verificationMethodsFetch: "verificationMethodsFetch", verificationMethodDelete: "verificationMethodDelete", verificationMethodCreate: "verificationMethodCreate", verificationMethodVerify: "verificationMethodVerify", verificationMethodResend: "verificationMethodResend" }, providers: [TwoFactorManageService], ngImport: i0, template: "<fs-label-field>\n <fs-label>Status</fs-label>\n <ng-container *ngIf=\"statuses\">\n <ng-container *ngIf=\"statuses.length === 1\">\n {{statuses[0]}} verification is enabled\n </ng-container>\n\n <ng-container *ngIf=\"statuses.length > 1\">\n {{statuses.join(', ')}} verifications are enabled\n </ng-container>\n\n <ng-container *ngIf=\"statuses.length === 0\">\n No verification methods are enabled\n </ng-container>\n </ng-container>\n</fs-label-field>", styles: [""], components: [{ type: i3$4.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i3$4.FsLabelComponent, selector: "fs-label" }], directives: [{ type: i9$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
977
990
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faManageComponent, decorators: [{
|
|
978
991
|
type: Component,
|
|
979
992
|
args: [{
|
|
@@ -987,6 +1000,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
987
1000
|
type: Input
|
|
988
1001
|
}], defaultCountry: [{
|
|
989
1002
|
type: Input
|
|
1003
|
+
}], verificationMethodTypes: [{
|
|
1004
|
+
type: Input
|
|
990
1005
|
}], verificationMethodsFetch: [{
|
|
991
1006
|
type: Input
|
|
992
1007
|
}], verificationMethodDelete: [{
|
|
@@ -1084,5 +1099,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
1084
1099
|
* Generated bundle index. Do not edit.
|
|
1085
1100
|
*/
|
|
1086
1101
|
|
|
1087
|
-
export { Fs2faManageComponent, Fs2faManageModule, Fs2faVerificationComponent, Fs2faVerificationModule,
|
|
1102
|
+
export { Fs2faManageComponent, Fs2faManageModule, Fs2faVerificationComponent, Fs2faVerificationModule, VerificationMethodType };
|
|
1088
1103
|
//# sourceMappingURL=firestitch-2fa.js.map
|