@firestitch/2fa 12.0.8 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/app/modules/code-input/code-input.module.d.ts +8 -0
  2. package/app/modules/code-input/components/code-input/code-input.component.d.ts +13 -0
  3. package/app/modules/code-input/components/code-input/index.d.ts +1 -0
  4. package/app/modules/code-input/index.d.ts +1 -0
  5. package/app/modules/manage/components/2fa-manage/2fa-manage.component.d.ts +26 -0
  6. package/app/modules/manage/components/2fa-manage/index.d.ts +1 -0
  7. package/app/modules/manage/components/app/app.component.d.ts +31 -0
  8. package/app/modules/manage/components/app/index.d.ts +1 -0
  9. package/app/modules/manage/components/defaulted/defaulted.component.d.ts +5 -0
  10. package/app/modules/manage/components/defaulted/index.d.ts +1 -0
  11. package/app/modules/manage/components/email/email.component.d.ts +25 -0
  12. package/app/modules/manage/components/email/index.d.ts +1 -0
  13. package/app/modules/manage/components/emails/emails.component.d.ts +17 -0
  14. package/app/modules/manage/components/emails/index.d.ts +1 -0
  15. package/app/modules/manage/components/manage-methods/index.d.ts +1 -0
  16. package/app/modules/manage/components/manage-methods/manage-methods.component.d.ts +31 -0
  17. package/app/modules/manage/components/number/index.d.ts +1 -0
  18. package/app/modules/manage/components/number/number.component.d.ts +26 -0
  19. package/app/modules/manage/components/numbers/index.d.ts +1 -0
  20. package/app/modules/manage/components/numbers/numbers.component.d.ts +18 -0
  21. package/app/modules/manage/components/verification-methods/index.d.ts +1 -0
  22. package/app/modules/manage/components/verification-methods/verification-methods.component.d.ts +18 -0
  23. package/app/modules/manage/fs-2f-manage.module.d.ts +31 -0
  24. package/app/modules/manage/services/index.d.ts +1 -0
  25. package/app/modules/manage/services/two-factor-manage.service.d.ts +39 -0
  26. package/app/modules/verification/components/2fa-verification/2fa-verification.component.d.ts +31 -0
  27. package/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.d.ts +17 -0
  28. package/app/{components → modules/verification/components}/2fa-verification-methods/2fa-verification-methods.component.d.ts +7 -7
  29. package/app/modules/verification/fs-2fa-verification.module.d.ts +23 -0
  30. package/bundles/firestitch-2fa.umd.js +975 -127
  31. package/bundles/firestitch-2fa.umd.js.map +1 -1
  32. package/esm2015/app/modules/code-input/code-input.module.js +26 -0
  33. package/esm2015/app/modules/code-input/components/code-input/code-input.component.js +36 -0
  34. package/esm2015/app/modules/code-input/components/code-input/index.js +2 -0
  35. package/esm2015/app/modules/code-input/index.js +2 -0
  36. package/esm2015/app/modules/manage/components/2fa-manage/2fa-manage.component.js +92 -0
  37. package/esm2015/app/modules/manage/components/2fa-manage/index.js +2 -0
  38. package/esm2015/app/modules/manage/components/app/app.component.js +82 -0
  39. package/esm2015/app/modules/manage/components/app/index.js +2 -0
  40. package/esm2015/app/modules/manage/components/defaulted/defaulted.component.js +16 -0
  41. package/esm2015/app/modules/manage/components/defaulted/index.js +2 -0
  42. package/esm2015/app/modules/manage/components/email/email.component.js +79 -0
  43. package/esm2015/app/modules/manage/components/email/index.js +2 -0
  44. package/esm2015/app/modules/manage/components/emails/emails.component.js +43 -0
  45. package/esm2015/app/modules/manage/components/emails/index.js +2 -0
  46. package/esm2015/app/modules/manage/components/manage-methods/index.js +2 -0
  47. package/esm2015/app/modules/manage/components/manage-methods/manage-methods.component.js +118 -0
  48. package/esm2015/app/modules/manage/components/number/index.js +2 -0
  49. package/esm2015/app/modules/manage/components/number/number.component.js +81 -0
  50. package/esm2015/app/modules/manage/components/numbers/index.js +2 -0
  51. package/esm2015/app/modules/manage/components/numbers/numbers.component.js +44 -0
  52. package/esm2015/app/modules/manage/components/verification-methods/index.js +2 -0
  53. package/esm2015/app/modules/manage/components/verification-methods/verification-methods.component.js +63 -0
  54. package/esm2015/app/modules/manage/fs-2f-manage.module.js +108 -0
  55. package/esm2015/app/modules/manage/services/index.js +2 -0
  56. package/esm2015/app/modules/manage/services/two-factor-manage.service.js +123 -0
  57. package/esm2015/app/modules/verification/components/2fa-verification/2fa-verification.component.js +109 -0
  58. package/esm2015/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.js +57 -0
  59. package/esm2015/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.js +73 -0
  60. package/esm2015/app/modules/verification/fs-2fa-verification.module.js +88 -0
  61. package/esm2015/public_api.js +5 -7
  62. package/fesm2015/firestitch-2fa.js +841 -75
  63. package/fesm2015/firestitch-2fa.js.map +1 -1
  64. package/package.json +1 -1
  65. package/public_api.d.ts +4 -2
  66. package/app/components/2fa-verification/2fa-verification.component.d.ts +0 -32
  67. package/app/components/2fa-verification-code/2fa-verification-code.component.d.ts +0 -18
  68. package/app/fs-2fa.module.d.ts +0 -23
  69. package/esm2015/app/components/2fa-verification/2fa-verification.component.js +0 -106
  70. package/esm2015/app/components/2fa-verification-code/2fa-verification-code.component.js +0 -60
  71. package/esm2015/app/components/2fa-verification-methods/2fa-verification-methods.component.js +0 -73
  72. package/esm2015/app/fs-2fa.module.js +0 -88
@@ -0,0 +1,81 @@
1
+ import { Component, Inject, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, } from '@angular/core';
2
+ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
3
+ import { FsMessage } from '@firestitch/message';
4
+ import { FsFormDirective } from '@firestitch/form';
5
+ import { of } from 'rxjs';
6
+ import { switchMap, tap } from 'rxjs/operators';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/material/dialog";
9
+ import * as i2 from "@firestitch/message";
10
+ import * as i3 from "@firestitch/dialog";
11
+ import * as i4 from "../../../code-input/components/code-input/code-input.component";
12
+ import * as i5 from "@angular/material/form-field";
13
+ import * as i6 from "@firestitch/phone";
14
+ import * as i7 from "@angular/material/checkbox";
15
+ import * as i8 from "@angular/material/button";
16
+ import * as i9 from "@angular/forms";
17
+ import * as i10 from "@firestitch/form";
18
+ import * as i11 from "@angular/common";
19
+ export class NumberComponent {
20
+ constructor(_data, _dialogRef, _cdRef, _message) {
21
+ this._data = _data;
22
+ this._dialogRef = _dialogRef;
23
+ this._cdRef = _cdRef;
24
+ this._message = _message;
25
+ this.verificationMethod = null;
26
+ this.submit = () => {
27
+ return of(true)
28
+ .pipe(switchMap(() => {
29
+ return this.verificationMethod ?
30
+ this.twoFactorManageService.verificationMethodVerify(this.code)
31
+ .pipe(tap((verificationMethod) => {
32
+ this._message.success('Created text message verification method');
33
+ this._dialogRef.close(verificationMethod);
34
+ })) :
35
+ this.twoFactorManageService.verificationMethodCreate({
36
+ type: 'sms',
37
+ phoneNumber: this.phone.number,
38
+ phoneCode: this.phone.countryCode,
39
+ phoneCountry: this.phone.isoCode,
40
+ default: this.default,
41
+ }).pipe(tap((verificationMethod) => {
42
+ this.verificationMethod = verificationMethod;
43
+ this.form.clear();
44
+ this._cdRef.markForCheck();
45
+ }));
46
+ }));
47
+ };
48
+ this.twoFactorManageService = _data.twoFactorManageService;
49
+ this.defaultCountry = _data.defaultCountry;
50
+ this.default = !this.twoFactorManageService.hasVerificationMethods;
51
+ }
52
+ resend() {
53
+ this.twoFactorManageService.verificationMethodResend()
54
+ .subscribe(() => {
55
+ this._message.success('Resent verification code');
56
+ });
57
+ }
58
+ codeCompleted() {
59
+ this.form.triggerSubmit();
60
+ }
61
+ codeChanged(code) {
62
+ this.code = code;
63
+ }
64
+ }
65
+ NumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NumberComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i0.ChangeDetectorRef }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
66
+ NumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NumberComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: FsFormDirective, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"submit\" autocomplete=\"off\">\n <fs-dialog>\n <h1 mat-dialog-title>\n Text Message Setup\n </h1>\n <mat-dialog-content>\n <ng-container *ngIf=\"verificationMethod; else notVerificationMethod\">\n <p>The app just sent you a text message with a verification code.</p>\n\n <app-code-input \n [code]=\"code\"\n (codeChanged)=\"codeChanged($event)\"\n (codeCompleted)=\"codeCompleted()\">\n </app-code-input> \n \n <div>Did't get the code? <a (click)=\"resend()\">Resend Code</a></div>\n </ng-container>\n\n <ng-template #notVerificationMethod>\n <p>The app will only use this number for verifying your account security. Message and data rates may apply by your cell phone provider.</p>\n <mat-form-field>\n <mat-label>Phone number</mat-label>\n <fs-phone-field\n [(ngModel)]=\"phone\"\n [country]=\"defaultCountry\"\n name=\"phone\"\n autocomplete=\"off\"\n [required]=\"true\">\n </fs-phone-field>\n </mat-form-field>\n <mat-checkbox \n name=\"default\"\n [(ngModel)]=\"default\"\n [disableRipple]=\"true\">\n Make this the default 2-step vertification method\n </mat-checkbox>\n </ng-template>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"submit\">\n Next\n </button>\n <button\n mat-button\n type=\"button\"\n [mat-dialog-close]=\"undefined\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: [":host ::ng-deep mat-checkbox .mat-ripple{display:none}app-code-input{margin-bottom:10px;display:block}mat-form-field{width:100%}mat-dialog-content{width:400px}p{margin-top:0}\n"], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4.CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }, { type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i6.FsPhoneFieldComponent, selector: "fs-phone-field", inputs: ["allowNumberExt", "mode", "country", "placeholder", "required", "disabled"] }, { type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i10.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "successDelay", "errorDelay", "submit", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.MatLabel, selector: "mat-label" }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i10.ɵf, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i9.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i10.ɵw, selector: "button[type=\"submit\"]", inputs: ["dirtySubmit", "name"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NumberComponent, decorators: [{
68
+ type: Component,
69
+ args: [{
70
+ templateUrl: './number.component.html',
71
+ styleUrls: ['./number.component.scss'],
72
+ changeDetection: ChangeDetectionStrategy.OnPush,
73
+ }]
74
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
75
+ type: Inject,
76
+ args: [MAT_DIALOG_DATA]
77
+ }] }, { type: i1.MatDialogRef }, { type: i0.ChangeDetectorRef }, { type: i2.FsMessage }]; }, propDecorators: { form: [{
78
+ type: ViewChild,
79
+ args: [FsFormDirective, { static: false }]
80
+ }] } });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsR0FDekUsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVNoRCxNQUFNLE9BQU8sZUFBZTtJQVkxQixZQUNtQyxLQUFVLEVBQ25DLFVBQXlDLEVBQ3pDLE1BQXlCLEVBQ3pCLFFBQW1CO1FBSE0sVUFBSyxHQUFMLEtBQUssQ0FBSztRQUNuQyxlQUFVLEdBQVYsVUFBVSxDQUErQjtRQUN6QyxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBUnRCLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQXNCMUIsV0FBTSxHQUFHLEdBQUcsRUFBRTtZQUNuQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7aUJBQ1osSUFBSSxDQUNILFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7eUJBQzVELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO3dCQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO3dCQUNsRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO29CQUM1QyxDQUFDLENBQUMsQ0FDSCxDQUFDLENBQUM7b0JBQ0wsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDO3dCQUNuRCxJQUFJLEVBQUUsS0FBSzt3QkFDWCxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO3dCQUM5QixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO3dCQUNqQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO3dCQUNoQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87cUJBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsRUFBRTt3QkFDekIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO3dCQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUM3QixDQUFDLENBQUMsQ0FDSCxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNOLENBQUMsQ0FBQztRQXZDQSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDLHNCQUFzQixDQUFDO1FBQzNELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFDO0lBQ3JFLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixFQUFFO2FBQ25ELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQStCTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFJO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7OzZHQWpFVSxlQUFlLGtCQWFoQixlQUFlO2lHQWJkLGVBQWUsMEZBRWYsZUFBZSxnRENyQjVCLHF0REFzREE7NEZEbkNhLGVBQWU7a0JBTDNCLFNBQVM7bUJBQUM7b0JBQ1QsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3RDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs7MEJBY0ksTUFBTTsyQkFBQyxlQUFlOytIQVZsQixJQUFJO3NCQURWLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgSW5qZWN0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBGc0Zvcm1EaXJlY3RpdmUgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcblxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVHdvRmFjdG9yTWFuYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL251bWJlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVyQ29tcG9uZW50IHtcblxuICBAVmlld0NoaWxkKEZzRm9ybURpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBmb3JtOiBGc0Zvcm1EaXJlY3RpdmU7XG5cbiAgcHVibGljIHBob25lO1xuICBwdWJsaWMgY29kZTtcbiAgcHVibGljIGRlZmF1bHQ7XG4gIHB1YmxpYyB2ZXJpZmljYXRpb25NZXRob2QgPSBudWxsO1xuICBwdWJsaWMgZGVmYXVsdENvdW50cnk7XG4gIHB1YmxpYyB0d29GYWN0b3JNYW5hZ2VTZXJ2aWNlOiBUd29GYWN0b3JNYW5hZ2VTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIF9kYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8TnVtYmVyQ29tcG9uZW50PixcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogRnNNZXNzYWdlLFxuICApIHtcbiAgICB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UgPSBfZGF0YS50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlO1xuICAgIHRoaXMuZGVmYXVsdENvdW50cnkgPSBfZGF0YS5kZWZhdWx0Q291bnRyeTtcbiAgICB0aGlzLmRlZmF1bHQgPSAhdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmhhc1ZlcmlmaWNhdGlvbk1ldGhvZHM7XG4gIH1cblxuICBwdWJsaWMgcmVzZW5kKCk6IHZvaWQge1xuICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS52ZXJpZmljYXRpb25NZXRob2RSZXNlbmQoKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnUmVzZW50IHZlcmlmaWNhdGlvbiBjb2RlJyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXQgPSAoKSA9PiB7XG4gICAgcmV0dXJuIG9mKHRydWUpXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy52ZXJpZmljYXRpb25NZXRob2QgP1xuICAgICAgICAgICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLnZlcmlmaWNhdGlvbk1ldGhvZFZlcmlmeSh0aGlzLmNvZGUpXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgodmVyaWZpY2F0aW9uTWV0aG9kKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0NyZWF0ZWQgdGV4dCBtZXNzYWdlIHZlcmlmaWNhdGlvbiBtZXRob2QnKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh2ZXJpZmljYXRpb25NZXRob2QpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApIDpcbiAgICAgICAgICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS52ZXJpZmljYXRpb25NZXRob2RDcmVhdGUoe1xuICAgICAgICAgICAgICB0eXBlOiAnc21zJyxcbiAgICAgICAgICAgICAgcGhvbmVOdW1iZXI6IHRoaXMucGhvbmUubnVtYmVyLFxuICAgICAgICAgICAgICBwaG9uZUNvZGU6IHRoaXMucGhvbmUuY291bnRyeUNvZGUsXG4gICAgICAgICAgICAgIHBob25lQ291bnRyeTogdGhpcy5waG9uZS5pc29Db2RlLFxuICAgICAgICAgICAgICBkZWZhdWx0OiB0aGlzLmRlZmF1bHQsXG4gICAgICAgICAgICB9KS5waXBlKFxuICAgICAgICAgICAgICB0YXAoKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kID0gdmVyaWZpY2F0aW9uTWV0aG9kO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jbGVhcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfTtcblxuICBwdWJsaWMgY29kZUNvbXBsZXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0udHJpZ2dlclN1Ym1pdCgpO1xuICB9XG5cbiAgcHVibGljIGNvZGVDaGFuZ2VkKGNvZGUpOiB2b2lkIHtcbiAgICB0aGlzLmNvZGUgPSBjb2RlO1xuICB9XG5cbn1cbiIsIjxmb3JtIGZzRm9ybSBbc3VibWl0XT1cInN1Ym1pdFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuICA8ZnMtZGlhbG9nPlxuICAgIDxoMSBtYXQtZGlhbG9nLXRpdGxlPlxuICAgICAgVGV4dCBNZXNzYWdlIFNldHVwXG4gICAgPC9oMT5cbiAgICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZlcmlmaWNhdGlvbk1ldGhvZDsgZWxzZSBub3RWZXJpZmljYXRpb25NZXRob2RcIj5cbiAgICAgICAgPHA+VGhlIGFwcCBqdXN0IHNlbnQgeW91IGEgdGV4dCBtZXNzYWdlIHdpdGggYSB2ZXJpZmljYXRpb24gY29kZS48L3A+XG5cbiAgICAgICAgPGFwcC1jb2RlLWlucHV0ICBcbiAgICAgICAgICBbY29kZV09XCJjb2RlXCJcbiAgICAgICAgICAoY29kZUNoYW5nZWQpPVwiY29kZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKGNvZGVDb21wbGV0ZWQpPVwiY29kZUNvbXBsZXRlZCgpXCI+XG4gICAgICAgIDwvYXBwLWNvZGUtaW5wdXQ+IFxuICAgICAgICBcbiAgICAgICAgPGRpdj5EaWQndCBnZXQgdGhlIGNvZGU/IDxhIChjbGljayk9XCJyZXNlbmQoKVwiPlJlc2VuZCBDb2RlPC9hPjwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm90VmVyaWZpY2F0aW9uTWV0aG9kPlxuICAgICAgICA8cD5UaGUgYXBwIHdpbGwgb25seSB1c2UgdGhpcyBudW1iZXIgZm9yIHZlcmlmeWluZyB5b3VyIGFjY291bnQgc2VjdXJpdHkuIE1lc3NhZ2UgYW5kIGRhdGEgcmF0ZXMgbWF5IGFwcGx5IGJ5IHlvdXIgY2VsbCBwaG9uZSBwcm92aWRlci48L3A+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWxhYmVsPlBob25lIG51bWJlcjwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxmcy1waG9uZS1maWVsZFxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwaG9uZVwiXG4gICAgICAgICAgICBbY291bnRyeV09XCJkZWZhdWx0Q291bnRyeVwiXG4gICAgICAgICAgICBuYW1lPVwicGhvbmVcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCI+XG4gICAgICAgICAgPC9mcy1waG9uZS1maWVsZD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1jaGVja2JveCBcbiAgICAgICAgICAgIG5hbWU9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgTWFrZSB0aGlzIHRoZSBkZWZhdWx0IDItc3RlcCB2ZXJ0aWZpY2F0aW9uIG1ldGhvZFxuICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICB0eXBlPVwic3VibWl0XCI+XG4gICAgICAgIE5leHRcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbbWF0LWRpYWxvZy1jbG9zZV09XCJ1bmRlZmluZWRcIj5cbiAgICAgICAgQ2FuY2VsXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbiAgPC9mcy1kaWFsb2c+XG48L2Zvcm0+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './numbers.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbWFuYWdlL2NvbXBvbmVudHMvbnVtYmVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9udW1iZXJzLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,44 @@
1
+ import { Component, Inject, ChangeDetectionStrategy, } from '@angular/core';
2
+ import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import { FsMessage } from '@firestitch/message';
4
+ import { FsVerificationMethodType } from '../../../../enums/verification-method-type.enum';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/dialog";
7
+ import * as i2 from "@firestitch/message";
8
+ import * as i3 from "@firestitch/dialog";
9
+ import * as i4 from "../verification-methods/verification-methods.component";
10
+ import * as i5 from "@angular/material/button";
11
+ export class NumbersComponent {
12
+ constructor(_data, _dialogRef, _message) {
13
+ this._data = _data;
14
+ this._dialogRef = _dialogRef;
15
+ this._message = _message;
16
+ this.FsVerificationMethodType = FsVerificationMethodType;
17
+ this.twoFactorManageService = _data.twoFactorManageService;
18
+ this.defaultCountry = _data.defaultCountry;
19
+ }
20
+ add() {
21
+ this.twoFactorManageService.addSms(this.defaultCountry)
22
+ .subscribe();
23
+ }
24
+ deleted() {
25
+ this._message.success('Deleted text message verification method');
26
+ if (!this.twoFactorManageService.hasVerificationMethod(FsVerificationMethodType.Sms)) {
27
+ this._dialogRef.close();
28
+ }
29
+ }
30
+ }
31
+ 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 });
32
+ 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]=\"FsVerificationMethodType.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: i4.VerificationMethodsComponent, selector: "app-verification-methods", inputs: ["twoFactorManageService", "type"], outputs: ["deleted"] }, { type: i5.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 });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NumbersComponent, decorators: [{
34
+ type: Component,
35
+ args: [{
36
+ templateUrl: './numbers.component.html',
37
+ styleUrls: ['./numbers.component.scss'],
38
+ changeDetection: ChangeDetectionStrategy.OnPush,
39
+ }]
40
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
41
+ type: Inject,
42
+ args: [MAT_DIALOG_DATA]
43
+ }] }, { type: i1.MatDialogRef }, { type: i2.FsMessage }]; } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbWFuYWdlL2NvbXBvbmVudHMvbnVtYmVycy9udW1iZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9udW1iZXJzL251bWJlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFBRSxNQUFNLEVBQUUsdUJBQXVCLEdBQzNDLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7O0FBUzNGLE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0IsWUFDbUMsS0FBVSxFQUNuQyxVQUEwQyxFQUMxQyxRQUFtQjtRQUZNLFVBQUssR0FBTCxLQUFLLENBQUs7UUFDbkMsZUFBVSxHQUFWLFVBQVUsQ0FBZ0M7UUFDMUMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUx0Qiw2QkFBd0IsR0FBRyx3QkFBd0IsQ0FBQztRQU96RCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDLHNCQUFzQixDQUFDO1FBQzNELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sR0FBRztRQUNSLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQzthQUNwRCxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDbEUsSUFBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNuRixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7OEdBekJVLGdCQUFnQixrQkFPakIsZUFBZTtrR0FQZCxnQkFBZ0Isb0RDZjdCLHdwQkEyQkE7NEZEWmEsZ0JBQWdCO2tCQUw1QixTQUFTO21CQUFDO29CQUNULFdBQVcsRUFBRSwwQkFBMEI7b0JBQ3ZDLFNBQVMsRUFBRSxDQUFDLDBCQUEwQixDQUFDO29CQUN2QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQVFJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgSW5qZWN0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuaW1wb3J0IHsgRnNWZXJpZmljYXRpb25NZXRob2RUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMvdmVyaWZpY2F0aW9uLW1ldGhvZC10eXBlLmVudW0nO1xuaW1wb3J0IHsgVHdvRmFjdG9yTWFuYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlcnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9udW1iZXJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOdW1iZXJzQ29tcG9uZW50IHtcblxuICBwdWJsaWMgZGVmYXVsdENvdW50cnk7XG4gIHB1YmxpYyB0d29GYWN0b3JNYW5hZ2VTZXJ2aWNlOiBUd29GYWN0b3JNYW5hZ2VTZXJ2aWNlO1xuICBwdWJsaWMgRnNWZXJpZmljYXRpb25NZXRob2RUeXBlID0gRnNWZXJpZmljYXRpb25NZXRob2RUeXBlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIF9kYXRhOiBhbnksICAgXG4gICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8TnVtYmVyc0NvbXBvbmVudD4sXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogRnNNZXNzYWdlLFxuICApIHtcbiAgICB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UgPSBfZGF0YS50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlO1xuICAgIHRoaXMuZGVmYXVsdENvdW50cnkgPSBfZGF0YS5kZWZhdWx0Q291bnRyeTtcbiAgfVxuXG4gIHB1YmxpYyBhZGQoKTogdm9pZCB7XG4gICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmFkZFNtcyh0aGlzLmRlZmF1bHRDb3VudHJ5KVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdEZWxldGVkIHRleHQgbWVzc2FnZSB2ZXJpZmljYXRpb24gbWV0aG9kJyk7XG4gICAgaWYoIXRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS5oYXNWZXJpZmljYXRpb25NZXRob2QoRnNWZXJpZmljYXRpb25NZXRob2RUeXBlLlNtcykpIHtcbiAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZnMtZGlhbG9nPlxuICA8aDEgbWF0LWRpYWxvZy10aXRsZT5cbiAgICBUZXh0IE1lc3NhZ2UgTnVtYmVyc1xuICA8L2gxPlxuICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxhcHAtdmVyaWZpY2F0aW9uLW1ldGhvZHNcbiAgICAgIFt0eXBlXT1cIkZzVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5TbXNcIlxuICAgICAgW3R3b0ZhY3Rvck1hbmFnZVNlcnZpY2VdPVwidHdvRmFjdG9yTWFuYWdlU2VydmljZVwiXG4gICAgICAoZGVsZXRlZCk9XCJkZWxldGVkKClcIj5cbiAgICA8L2FwcC12ZXJpZmljYXRpb24tbWV0aG9kcz5cbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPGJ1dHRvblxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICBbbWF0LWRpYWxvZy1jbG9zZV09XCJ1bmRlZmluZWRcIj5cbiAgICAgIENsb3NlXG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgIChjbGljayk9XCJhZGQoKVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgIEFkZCBOdW1iZXJcbiAgICA8L2J1dHRvbj5cbiAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG48L2ZzLWRpYWxvZz5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './verification-methods.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbWFuYWdlL2NvbXBvbmVudHMvdmVyaWZpY2F0aW9uLW1ldGhvZHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdmVyaWZpY2F0aW9uLW1ldGhvZHMuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,63 @@
1
+ import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter, } from '@angular/core';
2
+ import { FsPrompt } from '@firestitch/prompt';
3
+ import { map, switchMap } from 'rxjs/operators';
4
+ import { TwoFactorManageService } from '../../services';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@firestitch/prompt";
7
+ import * as i2 from "@firestitch/list";
8
+ import * as i3 from "@firestitch/country";
9
+ import * as i4 from "../defaulted/defaulted.component";
10
+ import * as i5 from "@angular/common";
11
+ import * as i6 from "@firestitch/phone";
12
+ export class VerificationMethodsComponent {
13
+ constructor(_prompt) {
14
+ this._prompt = _prompt;
15
+ this.deleted = new EventEmitter();
16
+ }
17
+ ngOnInit() {
18
+ this.listConfig = {
19
+ rowActions: [
20
+ {
21
+ click: (verificationMethod) => {
22
+ this._prompt.confirm({
23
+ title: 'Confirm',
24
+ template: 'Would you like to delete this verification method?',
25
+ })
26
+ .pipe(switchMap(() => this.twoFactorManageService
27
+ .verificationMethodDelete(verificationMethod)))
28
+ .subscribe(() => {
29
+ this.deleted.emit(verificationMethod);
30
+ });
31
+ },
32
+ label: 'Delete',
33
+ },
34
+ ],
35
+ fetch: () => {
36
+ return this.twoFactorManageService.verificationMethods$
37
+ .pipe(map((verificationMethods) => ({
38
+ data: verificationMethods.filter((verificationMethod) => {
39
+ return verificationMethod.type === this.type;
40
+ }),
41
+ })));
42
+ },
43
+ };
44
+ }
45
+ }
46
+ VerificationMethodsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: VerificationMethodsComponent, deps: [{ token: i1.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
47
+ VerificationMethodsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: VerificationMethodsComponent, selector: "app-verification-methods", inputs: { twoFactorManageService: "twoFactorManageService", type: "type" }, outputs: { deleted: "deleted" }, ngImport: i0, template: "<fs-list [config]=\"listConfig\">\n <fs-list-column class=\"col-name\">\n <ng-template fs-list-cell let-row=\"row\">\n <div class=\"row\">\n <ng-container *ngIf=\"row.type === 'sms'\">\n <fs-country [code]=\"row.phoneCountry\" [showName]=\"false\"></fs-country> {{row.phoneNumber | fsPhone}}\n </ng-container>\n\n <ng-container *ngIf=\"row.type === 'email'\">\n {{row.email}}\n </ng-container>\n \n <app-defaulted *ngIf=\"row.default\"></app-defaulted>\n </div>\n </ng-template>\n </fs-list-column>\n</fs-list>", styles: [":host ::ng-deep .col-name .row{display:flex;align-items:center}fs-country{margin-right:5px}app-defaulted{margin-left:5px}\n"], components: [{ type: i2.FsListComponent, selector: "fs-list", inputs: ["loaderLines", "config"], outputs: ["filtersReady"] }, { type: i3.FsCountryComponent, selector: "fs-country", inputs: ["showIcon", "showName", "width", "code"] }, { type: i4.DefaultedComponent, selector: "app-defaulted" }], directives: [{ type: i2.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "customize", "title", "name", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fsPhone": i6.FsPhonePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: VerificationMethodsComponent, decorators: [{
49
+ type: Component,
50
+ args: [{
51
+ selector: 'app-verification-methods',
52
+ templateUrl: './verification-methods.component.html',
53
+ styleUrls: ['./verification-methods.component.scss'],
54
+ changeDetection: ChangeDetectionStrategy.OnPush,
55
+ }]
56
+ }], ctorParameters: function () { return [{ type: i1.FsPrompt }]; }, propDecorators: { twoFactorManageService: [{
57
+ type: Input
58
+ }], type: [{
59
+ type: Input
60
+ }], deleted: [{
61
+ type: Output
62
+ }] } });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLW1ldGhvZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21hbmFnZS9jb21wb25lbnRzL3ZlcmlmaWNhdGlvbi1tZXRob2RzL3ZlcmlmaWNhdGlvbi1tZXRob2RzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy92ZXJpZmljYXRpb24tbWV0aG9kcy92ZXJpZmljYXRpb24tbWV0aG9kcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLHVCQUF1QixFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxHQUN4RSxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFTeEQsTUFBTSxPQUFPLDRCQUE0QjtJQVV2QyxZQUNVLE9BQWlCO1FBQWpCLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFOVixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7SUFRckUsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLFVBQVUsRUFBRTtnQkFDVjtvQkFDRSxLQUFLLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO3dCQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQzs0QkFDbkIsS0FBSyxFQUFFLFNBQVM7NEJBQ2hCLFFBQVEsRUFBRSxvREFBb0Q7eUJBQy9ELENBQUM7NkJBQ0MsSUFBSSxDQUNILFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCOzZCQUN4Qyx3QkFBd0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQ2pEOzZCQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7NEJBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQzt3QkFDeEMsQ0FBQyxDQUFDLENBQUM7b0JBQ1AsQ0FBQztvQkFDRCxLQUFLLEVBQUUsUUFBUTtpQkFDaEI7YUFDRjtZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CO3FCQUNwRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzVCLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO3dCQUN0RCxPQUFPLGtCQUFrQixDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUMvQyxDQUFDLENBQUM7aUJBQ0gsQ0FBQyxDQUNELENBQ0YsQ0FBQztZQUNOLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQzs7MEhBL0NVLDRCQUE0Qjs4R0FBNUIsNEJBQTRCLDZLQ2xCekMseWtCQWdCVTs0RkRFRyw0QkFBNEI7a0JBTnhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsV0FBVyxFQUFFLHVDQUF1QztvQkFDcEQsU0FBUyxFQUFFLENBQUMsdUNBQXVDLENBQUM7b0JBQ3BELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDsrRkFHaUIsc0JBQXNCO3NCQUFyQyxLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBRVcsT0FBTztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRnNMaXN0Q29uZmlnIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGlzdCc7XG5pbXBvcnQgeyBGc1Byb21wdCB9IGZyb20gJ0BmaXJlc3RpdGNoL3Byb21wdCc7XG5pbXBvcnQgeyBJRnNWZXJpZmljYXRpb25NZXRob2QgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL3ZlcmlmaWNhdGlvbi1tZXRob2QuaW50ZXJmYWNlJztcblxuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUd29GYWN0b3JNYW5hZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC12ZXJpZmljYXRpb24tbWV0aG9kcycsXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJpZmljYXRpb24tbWV0aG9kcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZlcmlmaWNhdGlvbi1tZXRob2RzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBWZXJpZmljYXRpb25NZXRob2RzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBwdWJsaWMgdHdvRmFjdG9yTWFuYWdlU2VydmljZTogVHdvRmFjdG9yTWFuYWdlU2VydmljZTtcbiAgQElucHV0KCkgcHVibGljIHR5cGU7XG4gIFxuICBAT3V0cHV0KCkgcHVibGljIGRlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElGc1ZlcmlmaWNhdGlvbk1ldGhvZD4oKTtcblxuICBwdWJsaWMgbGlzdENvbmZpZzogRnNMaXN0Q29uZmlnO1xuICBwdWJsaWMgdGV4dE1lc3NhZ2VBZGQ6ICgpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfcHJvbXB0OiBGc1Byb21wdCxcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0Q29uZmlnID0ge1xuICAgICAgcm93QWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgY2xpY2s6ICh2ZXJpZmljYXRpb25NZXRob2QpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Byb21wdC5jb25maXJtKHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdDb25maXJtJyxcbiAgICAgICAgICAgICAgdGVtcGxhdGU6ICdXb3VsZCB5b3UgbGlrZSB0byBkZWxldGUgdGhpcyB2ZXJpZmljYXRpb24gbWV0aG9kPycsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAudmVyaWZpY2F0aW9uTWV0aG9kRGVsZXRlKHZlcmlmaWNhdGlvbk1ldGhvZCkpLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlZC5lbWl0KHZlcmlmaWNhdGlvbk1ldGhvZCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgbGFiZWw6ICdEZWxldGUnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGZldGNoOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UudmVyaWZpY2F0aW9uTWV0aG9kcyRcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgodmVyaWZpY2F0aW9uTWV0aG9kcykgPT4gKHtcbiAgICAgICAgICAgICAgZGF0YTogdmVyaWZpY2F0aW9uTWV0aG9kcy5maWx0ZXIoKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB2ZXJpZmljYXRpb25NZXRob2QudHlwZSA9PT0gdGhpcy50eXBlO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iLCI8ZnMtbGlzdCBbY29uZmlnXT1cImxpc3RDb25maWdcIj5cbiAgPGZzLWxpc3QtY29sdW1uIGNsYXNzPVwiY29sLW5hbWVcIj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvdy50eXBlID09PSAnc21zJ1wiPlxuICAgICAgICAgIDxmcy1jb3VudHJ5IFtjb2RlXT1cInJvdy5waG9uZUNvdW50cnlcIiBbc2hvd05hbWVdPVwiZmFsc2VcIj48L2ZzLWNvdW50cnk+IHt7cm93LnBob25lTnVtYmVyIHwgZnNQaG9uZX19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cudHlwZSA9PT0gJ2VtYWlsJ1wiPlxuICAgICAgICAgIHt7cm93LmVtYWlsfX1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICBcbiAgICAgICAgPGFwcC1kZWZhdWx0ZWQgKm5nSWY9XCJyb3cuZGVmYXVsdFwiPjwvYXBwLWRlZmF1bHRlZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG48L2ZzLWxpc3Q+Il19
@@ -0,0 +1,108 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { MatDialogModule } from '@angular/material/dialog';
6
+ import { MatInputModule } from '@angular/material/input';
7
+ import { MatIconModule } from '@angular/material/icon';
8
+ import { MatCheckboxModule } from '@angular/material/checkbox';
9
+ import { FsListModule } from '@firestitch/list';
10
+ import { FsDialogModule } from '@firestitch/dialog';
11
+ import { FsFormModule } from '@firestitch/form';
12
+ import { FsSkeletonModule } from '@firestitch/skeleton';
13
+ import { FsLabelModule } from '@firestitch/label';
14
+ import { FsPhoneModule } from '@firestitch/phone';
15
+ import { FsCountryModule } from '@firestitch/country';
16
+ import { QrCodeModule } from 'ng-qrcode';
17
+ import { CodeInputModule } from '../code-input';
18
+ import { Fs2faManageComponent } from './components/2fa-manage';
19
+ import { ManageMethodsComponent } from './components/manage-methods';
20
+ import { NumbersComponent } from './components/numbers';
21
+ import { AppComponent } from './components/app';
22
+ import { EmailComponent } from './components/email';
23
+ import { VerificationMethodsComponent } from './components/verification-methods';
24
+ import { NumberComponent } from './components/number';
25
+ import { EmailsComponent } from './components/emails';
26
+ import { DefaultedComponent } from './components/defaulted';
27
+ import * as i0 from "@angular/core";
28
+ export class Fs2faManageModule {
29
+ }
30
+ Fs2faManageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faManageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
31
+ Fs2faManageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faManageModule, declarations: [Fs2faManageComponent,
32
+ ManageMethodsComponent,
33
+ NumbersComponent,
34
+ AppComponent,
35
+ EmailComponent,
36
+ VerificationMethodsComponent,
37
+ NumberComponent,
38
+ EmailsComponent,
39
+ DefaultedComponent], imports: [CommonModule,
40
+ FormsModule,
41
+ MatButtonModule,
42
+ MatDialogModule,
43
+ MatInputModule,
44
+ MatIconModule,
45
+ MatCheckboxModule,
46
+ FsDialogModule,
47
+ FsListModule,
48
+ FsFormModule,
49
+ FsLabelModule,
50
+ FsPhoneModule,
51
+ FsSkeletonModule,
52
+ FsCountryModule,
53
+ CodeInputModule,
54
+ QrCodeModule], exports: [Fs2faManageComponent] });
55
+ Fs2faManageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faManageModule, imports: [[
56
+ CommonModule,
57
+ FormsModule,
58
+ MatButtonModule,
59
+ MatDialogModule,
60
+ MatInputModule,
61
+ MatIconModule,
62
+ MatCheckboxModule,
63
+ FsDialogModule,
64
+ FsListModule,
65
+ FsFormModule,
66
+ FsLabelModule,
67
+ FsPhoneModule,
68
+ FsSkeletonModule,
69
+ FsCountryModule,
70
+ CodeInputModule,
71
+ QrCodeModule,
72
+ ]] });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faManageModule, decorators: [{
74
+ type: NgModule,
75
+ args: [{
76
+ imports: [
77
+ CommonModule,
78
+ FormsModule,
79
+ MatButtonModule,
80
+ MatDialogModule,
81
+ MatInputModule,
82
+ MatIconModule,
83
+ MatCheckboxModule,
84
+ FsDialogModule,
85
+ FsListModule,
86
+ FsFormModule,
87
+ FsLabelModule,
88
+ FsPhoneModule,
89
+ FsSkeletonModule,
90
+ FsCountryModule,
91
+ CodeInputModule,
92
+ QrCodeModule,
93
+ ],
94
+ declarations: [
95
+ Fs2faManageComponent,
96
+ ManageMethodsComponent,
97
+ NumbersComponent,
98
+ AppComponent,
99
+ EmailComponent,
100
+ VerificationMethodsComponent,
101
+ NumberComponent,
102
+ EmailsComponent,
103
+ DefaultedComponent,
104
+ ],
105
+ exports: [Fs2faManageComponent],
106
+ }]
107
+ }] });
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtMmYtbWFuYWdlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvZnMtMmYtbWFuYWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBdUM1RCxNQUFNLE9BQU8saUJBQWlCOzsrR0FBakIsaUJBQWlCO2dIQUFqQixpQkFBaUIsaUJBWjFCLG9CQUFvQjtRQUNwQixzQkFBc0I7UUFDdEIsZ0JBQWdCO1FBQ2hCLFlBQVk7UUFDWixjQUFjO1FBQ2QsNEJBQTRCO1FBQzVCLGVBQWU7UUFDZixlQUFlO1FBQ2Ysa0JBQWtCLGFBOUJsQixZQUFZO1FBQ1osV0FBVztRQUVYLGVBQWU7UUFDZixlQUFlO1FBQ2YsY0FBYztRQUNkLGFBQWE7UUFDYixpQkFBaUI7UUFFakIsY0FBYztRQUNkLFlBQVk7UUFDWixZQUFZO1FBQ1osYUFBYTtRQUNiLGFBQWE7UUFDYixnQkFBZ0I7UUFDaEIsZUFBZTtRQUVmLGVBQWU7UUFFZixZQUFZLGFBYUosb0JBQW9CO2dIQUVuQixpQkFBaUIsWUFuQ25CO1lBQ1AsWUFBWTtZQUNaLFdBQVc7WUFFWCxlQUFlO1lBQ2YsZUFBZTtZQUNmLGNBQWM7WUFDZCxhQUFhO1lBQ2IsaUJBQWlCO1lBRWpCLGNBQWM7WUFDZCxZQUFZO1lBQ1osWUFBWTtZQUNaLGFBQWE7WUFDYixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFFZixlQUFlO1lBRWYsWUFBWTtTQUNiOzRGQWNVLGlCQUFpQjtrQkFwQzdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFFWCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGlCQUFpQjt3QkFFakIsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFFZixlQUFlO3dCQUVmLFlBQVk7cUJBQ2I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCw0QkFBNEI7d0JBQzVCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcblxuaW1wb3J0IHsgRnNMaXN0TW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGlzdCc7XG5pbXBvcnQgeyBGc0RpYWxvZ01vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2RpYWxvZyc7XG5pbXBvcnQgeyBGc0Zvcm1Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcbmltcG9ydCB7IEZzU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9za2VsZXRvbic7XG5pbXBvcnQgeyBGc0xhYmVsTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGFiZWwnO1xuaW1wb3J0IHsgRnNQaG9uZU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3Bob25lJztcbmltcG9ydCB7IEZzQ291bnRyeU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvdW50cnknO1xuXG5pbXBvcnQgeyBRckNvZGVNb2R1bGUgfSBmcm9tICduZy1xcmNvZGUnO1xuXG5cbmltcG9ydCB7IENvZGVJbnB1dE1vZHVsZSB9IGZyb20gJy4uL2NvZGUtaW5wdXQnO1xuaW1wb3J0IHsgRnMyZmFNYW5hZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvMmZhLW1hbmFnZSc7XG5pbXBvcnQgeyBNYW5hZ2VNZXRob2RzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21hbmFnZS1tZXRob2RzJztcbmltcG9ydCB7IE51bWJlcnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbnVtYmVycyc7XG5pbXBvcnQgeyBBcHBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXBwJztcbmltcG9ydCB7IEVtYWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VtYWlsJztcbmltcG9ydCB7IFZlcmlmaWNhdGlvbk1ldGhvZHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdmVyaWZpY2F0aW9uLW1ldGhvZHMnO1xuaW1wb3J0IHsgTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL251bWJlcic7XG5pbXBvcnQgeyBFbWFpbHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZW1haWxzJztcbmltcG9ydCB7IERlZmF1bHRlZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kZWZhdWx0ZWQnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG5cbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG5cbiAgICBGc0RpYWxvZ01vZHVsZSxcbiAgICBGc0xpc3RNb2R1bGUsXG4gICAgRnNGb3JtTW9kdWxlLFxuICAgIEZzTGFiZWxNb2R1bGUsXG4gICAgRnNQaG9uZU1vZHVsZSxcbiAgICBGc1NrZWxldG9uTW9kdWxlLFxuICAgIEZzQ291bnRyeU1vZHVsZSxcblxuICAgIENvZGVJbnB1dE1vZHVsZSxcblxuICAgIFFyQ29kZU1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRnMyZmFNYW5hZ2VDb21wb25lbnQsXG4gICAgTWFuYWdlTWV0aG9kc0NvbXBvbmVudCxcbiAgICBOdW1iZXJzQ29tcG9uZW50LFxuICAgIEFwcENvbXBvbmVudCxcbiAgICBFbWFpbENvbXBvbmVudCxcbiAgICBWZXJpZmljYXRpb25NZXRob2RzQ29tcG9uZW50LFxuICAgIE51bWJlckNvbXBvbmVudCxcbiAgICBFbWFpbHNDb21wb25lbnQsXG4gICAgRGVmYXVsdGVkQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbRnMyZmFNYW5hZ2VDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBGczJmYU1hbmFnZU1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './two-factor-manage.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbWFuYWdlL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3R3by1mYWN0b3ItbWFuYWdlLnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,123 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { MatDialog } from '@angular/material/dialog';
3
+ import { BehaviorSubject, Subject } from 'rxjs';
4
+ import { switchMap, takeUntil, tap } from 'rxjs/operators';
5
+ import { AppComponent } from '../components/app';
6
+ import { EmailComponent } from '../components/email';
7
+ import { NumberComponent } from '../components/number';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/material/dialog";
10
+ export class TwoFactorManageService {
11
+ constructor(_dialog) {
12
+ this._dialog = _dialog;
13
+ this._destroy$ = new Subject();
14
+ this._verificationMethods$ = new BehaviorSubject([]);
15
+ }
16
+ get verificationMethods$() {
17
+ return this._verificationMethods$
18
+ .pipe(takeUntil(this._destroy$));
19
+ }
20
+ get verificationMethods() {
21
+ return this._verificationMethods$.getValue();
22
+ }
23
+ get hasVerificationMethods() {
24
+ return !!this._verificationMethods$.getValue().length;
25
+ }
26
+ getVerificationMethods(type) {
27
+ return this.verificationMethods
28
+ .filter((verificationMethod) => {
29
+ return verificationMethod.type === type;
30
+ });
31
+ }
32
+ hasVerificationMethod(type) {
33
+ return this.verificationMethods
34
+ .some((verificationMethod) => {
35
+ return verificationMethod.type === type;
36
+ });
37
+ }
38
+ registerVerificationMethodResend(value) {
39
+ this._verificationMethodResend = value;
40
+ }
41
+ registerVerificationMethodFetch(value) {
42
+ this._verificationMethodFetch = value;
43
+ }
44
+ registerVerificationMethodDelete(value) {
45
+ this._verificationMethodDelete = value;
46
+ }
47
+ registerVerificationMethodCreate(value) {
48
+ this._verificationMethodCreate = value;
49
+ }
50
+ registerVerificationMethodVerify(value) {
51
+ this._verificationMethodVerify = value;
52
+ }
53
+ registerAccountVerify(value) {
54
+ this._accountVerify = value;
55
+ }
56
+ verificationMethodDelete(verificationMethod) {
57
+ return this._verificationMethodDelete(verificationMethod)
58
+ .pipe(tap(() => {
59
+ this.verificationMethodFetch();
60
+ }));
61
+ }
62
+ verificationMethodVerify(verificationMethod) {
63
+ return this._verificationMethodVerify(verificationMethod)
64
+ .pipe(tap(() => {
65
+ this.verificationMethodFetch();
66
+ }));
67
+ }
68
+ verificationMethodCreate(verificationMethod) {
69
+ return this._verificationMethodCreate(verificationMethod);
70
+ }
71
+ verificationMethodResend() {
72
+ return this._verificationMethodResend();
73
+ }
74
+ verificationMethodFetch() {
75
+ this._verificationMethodFetch()
76
+ .subscribe((verificationMethods) => {
77
+ this._verificationMethods$.next(verificationMethods);
78
+ });
79
+ }
80
+ accountVerify() {
81
+ return this._accountVerify();
82
+ }
83
+ ngOnDestroy() {
84
+ this._destroy$.next();
85
+ this._destroy$.complete();
86
+ }
87
+ addSms(defaultCountry) {
88
+ return this.accountVerify()
89
+ .pipe(switchMap(() => this._dialog.open(NumberComponent, {
90
+ data: {
91
+ defaultCountry,
92
+ twoFactorManageService: this,
93
+ },
94
+ })
95
+ .afterClosed()), tap(() => {
96
+ this.verificationMethodFetch();
97
+ }), takeUntil(this._destroy$));
98
+ }
99
+ addEmail() {
100
+ return this.accountVerify()
101
+ .pipe(switchMap(() => this._dialog.open(EmailComponent, {
102
+ data: { twoFactorManageService: this },
103
+ })
104
+ .afterClosed()), tap(() => {
105
+ this.verificationMethodFetch();
106
+ }), takeUntil(this._destroy$));
107
+ }
108
+ addApp() {
109
+ return this.accountVerify()
110
+ .pipe(switchMap(() => this._dialog.open(AppComponent, {
111
+ data: { twoFactorManageService: this },
112
+ })
113
+ .afterClosed()), tap(() => {
114
+ this.verificationMethodFetch();
115
+ }), takeUntil(this._destroy$));
116
+ }
117
+ }
118
+ TwoFactorManageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TwoFactorManageService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
119
+ TwoFactorManageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TwoFactorManageService });
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TwoFactorManageService, decorators: [{
121
+ type: Injectable
122
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWZhY3Rvci1tYW5hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2Uvc2VydmljZXMvdHdvLWZhY3Rvci1tYW5hZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBSXZELE1BQU0sT0FBTyxzQkFBc0I7SUFZakMsWUFDVSxPQUFrQjtRQUFsQixZQUFPLEdBQVAsT0FBTyxDQUFXO1FBWHBCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBUTFCLDBCQUFxQixHQUFHLElBQUksZUFBZSxDQUFRLEVBQUUsQ0FBQyxDQUFDO0lBSTVELENBQUM7SUFFSixJQUFXLG9CQUFvQjtRQUM3QixPQUFPLElBQUksQ0FBQyxxQkFBcUI7YUFDOUIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQVcsc0JBQXNCO1FBQy9CLE9BQU8sQ0FBQyxDQUFDLElB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bmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBcHBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2FwcCc7XG5pbXBvcnQgeyBFbWFpbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZW1haWwnO1xuaW1wb3J0IHsgTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9udW1iZXInO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUd29GYWN0b3JNYW5hZ2VTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfdmVyaWZpY2F0aW9uTWV0aG9kRmV0Y2g6ICgpID0+IE9ic2VydmFibGU8YW55W10+O1xuICBwcml2YXRlIF92ZXJpZmljYXRpb25NZXRob2RDcmVhdGU6ICh2ZXJpZmljYXRpb25NZXRob2QpID0+IE9ic2VydmFibGU8YW55PjtcbiAgcHJpdmF0ZSBfdmVyaWZpY2F0aW9uTWV0aG9kRGVsZXRlOiAodmVyaWZpY2F0aW9uTWV0aG9kKSA9PiBPYnNlcnZhYmxlPGFueT47XG4gIHByaXZhdGUgX3ZlcmlmaWNhdGlvbk1ldGhvZFZlcmlmeTogKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuICBwcml2YXRlIF92ZXJpZmljYXRpb25NZXRob2RSZXNlbmQ6ICgpID0+IE9ic2VydmFibGU8YW55PjtcbiAgcHJpdmF0ZSBfYWNjb3VudFZlcmlmeTogKCkgPT4gT2JzZXJ2YWJsZTxhbnlbXT47XG4gIHByaXZhdGUgX3ZlcmlmaWNhdGlvbk1ldGhvZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxuICApIHt9XG5cbiAgcHVibGljIGdldCB2ZXJpZmljYXRpb25NZXRob2RzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kcyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKTtcbiAgfVxuICBcbiAgcHVibGljIGdldCB2ZXJpZmljYXRpb25NZXRob2RzKCkge1xuICAgIHJldHVybiB0aGlzLl92ZXJpZmljYXRpb25NZXRob2RzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNWZXJpZmljYXRpb25NZXRob2RzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZHMkLmdldFZhbHVlKCkubGVuZ3RoO1xuICB9XG4gIFxuICBwdWJsaWMgZ2V0VmVyaWZpY2F0aW9uTWV0aG9kcyh0eXBlKSB7XG4gICAgcmV0dXJuIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kc1xuICAgIC5maWx0ZXIoKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4ge1xuICAgICAgcmV0dXJuIHZlcmlmaWNhdGlvbk1ldGhvZC50eXBlID09PSB0eXBlO1xuICAgIH0pO1xuICB9XG4gIFxuICBwdWJsaWMgaGFzVmVyaWZpY2F0aW9uTWV0aG9kKHR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy52ZXJpZmljYXRpb25NZXRob2RzXG4gICAgLnNvbWUoKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4ge1xuICAgICAgcmV0dXJuIHZlcmlmaWNhdGlvbk1ldGhvZC50eXBlID09PSB0eXBlO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyVmVyaWZpY2F0aW9uTWV0aG9kUmVzZW5kKHZhbHVlKSB7XG4gICAgdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kUmVzZW5kID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJWZXJpZmljYXRpb25NZXRob2RGZXRjaCh2YWx1ZSkge1xuICAgIHRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZEZldGNoID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJWZXJpZmljYXRpb25NZXRob2REZWxldGUodmFsdWUpIHtcbiAgICB0aGlzLl92ZXJpZmljYXRpb25NZXRob2REZWxldGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlclZlcmlmaWNhdGlvbk1ldGhvZENyZWF0ZSh2YWx1ZSkge1xuICAgIHRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZENyZWF0ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyVmVyaWZpY2F0aW9uTWV0aG9kVmVyaWZ5KHZhbHVlKSB7XG4gICAgdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kVmVyaWZ5ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJBY2NvdW50VmVyaWZ5KHZhbHVlKSB7XG4gICAgdGhpcy5fYWNjb3VudFZlcmlmeSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZERlbGV0ZSh2ZXJpZmljYXRpb25NZXRob2QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl92ZXJpZmljYXRpb25NZXRob2REZWxldGUodmVyaWZpY2F0aW9uTWV0aG9kKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy52ZXJpZmljYXRpb25NZXRob2RGZXRjaCgpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgdmVyaWZpY2F0aW9uTWV0aG9kVmVyaWZ5KHZlcmlmaWNhdGlvbk1ldGhvZCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZFZlcmlmeSh2ZXJpZmljYXRpb25NZXRob2QpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZEZldGNoKCk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB2ZXJpZmljYXRpb25NZXRob2RDcmVhdGUodmVyaWZpY2F0aW9uTWV0aG9kKTogT2JzZXJ2YWJsZTxhbnk+ICB7XG4gICAgcmV0dXJuIHRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZENyZWF0ZSh2ZXJpZmljYXRpb25NZXRob2QpO1xuICB9XG5cbiAgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZFJlc2VuZCgpOiBPYnNlcnZhYmxlPGFueT4gIHtcbiAgICByZXR1cm4gdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kUmVzZW5kKCk7XG4gIH1cblxuICBwdWJsaWMgdmVyaWZpY2F0aW9uTWV0aG9kRmV0Y2goKSB7XG4gICAgdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kRmV0Y2goKVxuICAgICAgLnN1YnNjcmliZSgodmVyaWZpY2F0aW9uTWV0aG9kcykgPT4ge1xuICAgICAgICB0aGlzLl92ZXJpZmljYXRpb25NZXRob2RzJC5uZXh0KHZlcmlmaWNhdGlvbk1ldGhvZHMpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWNjb3VudFZlcmlmeSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9hY2NvdW50VmVyaWZ5KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkU21zKGRlZmF1bHRDb3VudHJ5KTogT2JzZXJ2YWJsZTxhbnk+e1xuICAgIHJldHVybiB0aGlzLmFjY291bnRWZXJpZnkoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9kaWFsb2cub3BlbihOdW1iZXJDb21wb25lbnQsIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBkZWZhdWx0Q291bnRyeSxcbiAgICAgICAgICAgIHR3b0ZhY3Rvck1hbmFnZVNlcnZpY2U6IHRoaXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKSxcbiAgICAgICAgKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZEZldGNoKCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRFbWFpbCgpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgcmV0dXJuIHRoaXMuYWNjb3VudFZlcmlmeSgpXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuX2RpYWxvZy5vcGVuKEVtYWlsQ29tcG9uZW50LCB7XG4gICAgICAgICAgZGF0YTogeyB0d29GYWN0b3JNYW5hZ2VTZXJ2aWNlOiB0aGlzIH0sXG4gICAgICAgIH0pXG4gICAgICAgICAgLmFmdGVyQ2xvc2VkKCksXG4gICAgICAgICksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy52ZXJpZmljYXRpb25NZXRob2RGZXRjaCgpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkQXBwKCk6IE9ic2VydmFibGU8YW55PntcbiAgICByZXR1cm4gdGhpcy5hY2NvdW50VmVyaWZ5KClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fZGlhbG9nLm9wZW4oQXBwQ29tcG9uZW50LCB7XG4gICAgICAgICAgZGF0YTogeyB0d29GYWN0b3JNYW5hZ2VTZXJ2aWNlOiB0aGlzICB9LFxuICAgICAgICB9KVxuICAgICAgICAgIC5hZnRlckNsb3NlZCgpLFxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kRmV0Y2goKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApO1xuICB9XG59XG4iXX0=