@firestitch/2fa 12.2.0 → 12.3.2

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 (75) hide show
  1. package/app/enums/verification-method-type.enum.d.ts +5 -5
  2. package/app/interfaces/verification-method.interface.d.ts +11 -11
  3. package/app/modules/code-input/code-input.module.d.ts +8 -8
  4. package/app/modules/code-input/components/code-input/code-input.component.d.ts +13 -13
  5. package/app/modules/code-input/components/code-input/index.d.ts +1 -1
  6. package/app/modules/code-input/index.d.ts +1 -1
  7. package/app/modules/manage/components/2fa-manage/2fa-manage.component.d.ts +26 -26
  8. package/app/modules/manage/components/2fa-manage/index.d.ts +1 -1
  9. package/app/modules/manage/components/app/app.component.d.ts +31 -31
  10. package/app/modules/manage/components/app/index.d.ts +1 -1
  11. package/app/modules/manage/components/defaulted/defaulted.component.d.ts +5 -5
  12. package/app/modules/manage/components/defaulted/index.d.ts +1 -1
  13. package/app/modules/manage/components/email/email.component.d.ts +25 -25
  14. package/app/modules/manage/components/email/index.d.ts +1 -1
  15. package/app/modules/manage/components/emails/emails.component.d.ts +17 -17
  16. package/app/modules/manage/components/emails/index.d.ts +1 -1
  17. package/app/modules/manage/components/manage-methods/index.d.ts +1 -1
  18. package/app/modules/manage/components/manage-methods/manage-methods.component.d.ts +32 -32
  19. package/app/modules/manage/components/number/index.d.ts +1 -1
  20. package/app/modules/manage/components/number/number.component.d.ts +26 -26
  21. package/app/modules/manage/components/numbers/index.d.ts +1 -1
  22. package/app/modules/manage/components/numbers/numbers.component.d.ts +18 -18
  23. package/app/modules/manage/components/verification-methods/index.d.ts +1 -1
  24. package/app/modules/manage/components/verification-methods/verification-methods.component.d.ts +18 -18
  25. package/app/modules/manage/fs-2f-manage.module.d.ts +31 -31
  26. package/app/modules/manage/services/index.d.ts +1 -1
  27. package/app/modules/manage/services/two-factor-manage.service.d.ts +42 -42
  28. package/app/modules/verification/components/2fa-verification/2fa-verification.component.d.ts +32 -31
  29. package/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.d.ts +17 -17
  30. package/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.d.ts +22 -23
  31. package/app/modules/verification/fs-2fa-verification.module.d.ts +23 -23
  32. package/bundles/firestitch-2fa.umd.js +1114 -1130
  33. package/bundles/firestitch-2fa.umd.js.map +1 -1
  34. package/esm2015/app/enums/verification-method-type.enum.js +6 -6
  35. package/esm2015/app/interfaces/verification-method.interface.js +1 -1
  36. package/esm2015/app/modules/code-input/code-input.module.js +25 -25
  37. package/esm2015/app/modules/code-input/components/code-input/code-input.component.js +36 -36
  38. package/esm2015/app/modules/code-input/components/code-input/index.js +1 -1
  39. package/esm2015/app/modules/code-input/index.js +1 -1
  40. package/esm2015/app/modules/manage/components/2fa-manage/2fa-manage.component.js +91 -91
  41. package/esm2015/app/modules/manage/components/2fa-manage/index.js +1 -1
  42. package/esm2015/app/modules/manage/components/app/app.component.js +81 -81
  43. package/esm2015/app/modules/manage/components/app/index.js +1 -1
  44. package/esm2015/app/modules/manage/components/defaulted/defaulted.component.js +15 -15
  45. package/esm2015/app/modules/manage/components/defaulted/index.js +1 -1
  46. package/esm2015/app/modules/manage/components/email/email.component.js +80 -80
  47. package/esm2015/app/modules/manage/components/email/index.js +1 -1
  48. package/esm2015/app/modules/manage/components/emails/emails.component.js +42 -42
  49. package/esm2015/app/modules/manage/components/emails/index.js +1 -1
  50. package/esm2015/app/modules/manage/components/manage-methods/index.js +1 -1
  51. package/esm2015/app/modules/manage/components/manage-methods/manage-methods.component.js +118 -118
  52. package/esm2015/app/modules/manage/components/number/index.js +1 -1
  53. package/esm2015/app/modules/manage/components/number/number.component.js +82 -82
  54. package/esm2015/app/modules/manage/components/numbers/index.js +1 -1
  55. package/esm2015/app/modules/manage/components/numbers/numbers.component.js +43 -43
  56. package/esm2015/app/modules/manage/components/verification-methods/index.js +1 -1
  57. package/esm2015/app/modules/manage/components/verification-methods/verification-methods.component.js +62 -62
  58. package/esm2015/app/modules/manage/fs-2f-manage.module.js +107 -107
  59. package/esm2015/app/modules/manage/services/index.js +1 -1
  60. package/esm2015/app/modules/manage/services/two-factor-manage.service.js +132 -132
  61. package/esm2015/app/modules/verification/components/2fa-verification/2fa-verification.component.js +106 -109
  62. package/esm2015/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.js +56 -56
  63. package/esm2015/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.js +63 -73
  64. package/esm2015/app/modules/verification/fs-2fa-verification.module.js +87 -87
  65. package/esm2015/firestitch-2fa.js +4 -4
  66. package/esm2015/public_api.js +6 -7
  67. package/fesm2015/firestitch-2fa.js +1007 -1019
  68. package/fesm2015/firestitch-2fa.js.map +1 -1
  69. package/firestitch-2fa.d.ts +5 -5
  70. package/package.json +1 -1
  71. package/public_api.d.ts +6 -8
  72. package/app/interfaces/verification-provider.interface.d.ts +0 -8
  73. package/app/tokens/verification.token.d.ts +0 -3
  74. package/esm2015/app/interfaces/verification-provider.interface.js +0 -2
  75. package/esm2015/app/tokens/verification.token.js +0 -3
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/forms'), require('@angular/common'), require('@angular/material/icon'), require('@angular/material/radio'), require('@angular/material/button'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/checkbox'), require('@angular/material/progress-spinner'), require('@firestitch/form'), require('@firestitch/skeleton'), require('@firestitch/radiogroup'), require('@firestitch/dialog'), require('rxjs/operators'), require('@angular/material/dialog'), require('rxjs'), require('angular-code-input'), require('@firestitch/list'), require('@firestitch/label'), require('@firestitch/phone'), require('@firestitch/country'), require('ng-qrcode'), require('@firestitch/message'), require('@firestitch/prompt')) :
3
3
  typeof define === 'function' && define.amd ? define('@firestitch/2fa', ['exports', '@angular/core', '@angular/forms', '@angular/common', '@angular/material/icon', '@angular/material/radio', '@angular/material/button', '@angular/material/form-field', '@angular/material/input', '@angular/material/checkbox', '@angular/material/progress-spinner', '@firestitch/form', '@firestitch/skeleton', '@firestitch/radiogroup', '@firestitch/dialog', 'rxjs/operators', '@angular/material/dialog', 'rxjs', 'angular-code-input', '@firestitch/list', '@firestitch/label', '@firestitch/phone', '@firestitch/country', 'ng-qrcode', '@firestitch/message', '@firestitch/prompt'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.firestitch = global.firestitch || {}, global.firestitch["2fa"] = {}), global.ng.core, global.ng.forms, global.ng.common, global.ng.material.icon, global.ng.material.radio, global.ng.material.button, global.ng.material.formField, global.ng.material.input, global.ng.material.checkbox, global.ng.material.progressSpinner, global.i9, global.i9$1, global.i3$1, global.i3, global.rxjs.operators, global.ng.material.dialog, global.rxjs, global.i1$1, global.i2$1, global.i3$4, global.i6, global.i3$3, global.i4$2, global.i2, global.i1$2));
5
- })(this, (function (exports, i0, i8, i10, i4, i5, i7, i5$1, i11, i3$2, i4$1, i9, i9$1, i3$1, i3, operators, i1, rxjs, i1$1, i2$1, i3$4, i6, i3$3, i4$2, i2, i1$2) { 'use strict';
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.firestitch = global.firestitch || {}, global.firestitch["2fa"] = {}), global.ng.core, global.ng.forms, global.ng.common, global.ng.material.icon, global.ng.material.radio, global.ng.material.button, global.ng.material.formField, global.ng.material.input, global.ng.material.checkbox, global.ng.material.progressSpinner, global.i9, global.i11$1, global.i3$1, global.i3, global.rxjs.operators, global.ng.material.dialog, global.rxjs, global.i1$1, global.i2$1, global.i3$4, global.i6, global.i3$3, global.i4$2, global.i2, global.i1$2));
5
+ })(this, (function (exports, i0, i8, i9$1, i4, i5, i7, i5$1, i11, i3$2, i4$1, i9, i11$1, i3$1, i3, operators, i1, rxjs, i1$1, i2$1, i3$4, i6, i3$3, i4$2, i2, i1$2) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -24,16 +24,16 @@
24
24
 
25
25
  var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
26
26
  var i8__namespace = /*#__PURE__*/_interopNamespace(i8);
27
- var i10__namespace = /*#__PURE__*/_interopNamespace(i10);
27
+ var i9__namespace$1 = /*#__PURE__*/_interopNamespace(i9$1);
28
28
  var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
29
29
  var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
30
30
  var i7__namespace = /*#__PURE__*/_interopNamespace(i7);
31
31
  var i5__namespace$1 = /*#__PURE__*/_interopNamespace(i5$1);
32
- var i11__namespace = /*#__PURE__*/_interopNamespace(i11);
32
+ var i11__namespace$1 = /*#__PURE__*/_interopNamespace(i11);
33
33
  var i3__namespace$2 = /*#__PURE__*/_interopNamespace(i3$2);
34
34
  var i4__namespace$1 = /*#__PURE__*/_interopNamespace(i4$1);
35
35
  var i9__namespace = /*#__PURE__*/_interopNamespace(i9);
36
- var i9__namespace$1 = /*#__PURE__*/_interopNamespace(i9$1);
36
+ var i11__namespace = /*#__PURE__*/_interopNamespace(i11$1);
37
37
  var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
38
38
  var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
39
39
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
@@ -46,1169 +46,1153 @@
46
46
  var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
47
47
  var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
48
48
 
49
- var FS_2FA_VERIFICATION_PROVIDER = new i0.InjectionToken('Provider for Verification service');
50
-
51
- exports.FsVerificationMethodType = void 0;
52
- (function (FsVerificationMethodType) {
53
- FsVerificationMethodType["Sms"] = "sms";
54
- FsVerificationMethodType["Email"] = "email";
55
- FsVerificationMethodType["App"] = "app";
49
+ exports.FsVerificationMethodType = void 0;
50
+ (function (FsVerificationMethodType) {
51
+ FsVerificationMethodType["Sms"] = "sms";
52
+ FsVerificationMethodType["Email"] = "email";
53
+ FsVerificationMethodType["App"] = "app";
56
54
  })(exports.FsVerificationMethodType || (exports.FsVerificationMethodType = {}));
57
55
 
58
- var Fs2faVerificationMethodsComponent = /** @class */ (function () {
59
- function Fs2faVerificationMethodsComponent(_verificationProvider, _dialogData, _dialogRef) {
60
- var _this = this;
61
- this._verificationProvider = _verificationProvider;
62
- this._dialogData = _dialogData;
63
- this._dialogRef = _dialogRef;
64
- this.verificationMethodType = exports.FsVerificationMethodType;
65
- this.setVerificationMethod = function () {
66
- return _this._verificationProvider
67
- .updateVerificationMethod(_this.method.id)
68
- .pipe(operators.tap(function (method) {
69
- _this._dialogRef.close(method);
70
- }));
71
- };
72
- this._setActiveMethod();
73
- this._initMethods();
74
- }
75
- Fs2faVerificationMethodsComponent.prototype.compareWith = function (o1, o2) {
76
- return o1 && o2 && o1.id === o2.id;
77
- };
78
- Fs2faVerificationMethodsComponent.prototype._setActiveMethod = function () {
79
- var _a;
80
- this.method = (_a = this._dialogData) === null || _a === void 0 ? void 0 : _a.method;
81
- };
82
- Fs2faVerificationMethodsComponent.prototype._initMethods = function () {
83
- this.methods$ = this._verificationProvider
84
- .methods()
85
- .pipe(operators.map(function (methods) {
86
- return methods
87
- .reduce(function (acc, method) {
88
- if (!acc[method.type]) {
89
- acc[method.type] = [];
90
- }
91
- acc[method.type].push(method);
92
- return acc;
93
- }, {});
94
- }), operators.shareReplay(1));
95
- };
96
- return Fs2faVerificationMethodsComponent;
97
- }());
98
- Fs2faVerificationMethodsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationMethodsComponent, deps: [{ token: FS_2FA_VERIFICATION_PROVIDER }, { token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
99
- Fs2faVerificationMethodsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faVerificationMethodsComponent, selector: "ng-component", ngImport: i0__namespace, template: "<fs-dialog>\n <h1 mat-dialog-title>\n Verification Methods\n </h1>\n <form fsForm [submit]=\"setVerificationMethod\" [dirtySubmitButton]=\"false\">\n <mat-dialog-content>\n <ng-container *fsSkeleton=\"methods$ | async as methods\">\n <fs-radio-group [(ngModel)]=\"method\" name=\"method\" [compareWith]=\"compareWith\">\n <ng-container *ngFor=\"let methodMap of methods | keyvalue\">\n <div class=\"method\">\n <ng-container [ngSwitch]=\"methodMap.key\">\n <ng-container *ngSwitchCase=\"verificationMethodType.Sms\">\n <div class=\"method-header\">\n <div class=\"method-icon\">\n <mat-icon>\n textsms\n </mat-icon>\n </div>\n <div class=\"method-name\">\n <div class=\"method-title\">Text Message</div>\n <div class=\"method-subtitle\">\n Verification code send to one of following mobile number\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"verificationMethodType.Email\">\n <div class=\"method-header\">\n <div class=\"method-icon\">\n <mat-icon>\n mail\n </mat-icon>\n </div>\n <div class=\"method-name\">\n <div class=\"method-title\">Email</div>\n <div class=\"method-subtitle\">\n Verification code send to one of following email\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"verificationMethodType.App\">\n <div class=\"method-header\">\n <div class=\"method-icon\">\n <mat-icon>\n phone_iphone\n </mat-icon>\n </div>\n <div class=\"method-name\">\n <div class=\"method-title\">Authenticator App</div>\n <div class=\"method-subtitle\">\n Verification code generated by an authenticator app\n </div>\n </div>\n </div>\n </ng-container> \n </ng-container>\n\n <mat-radio-button class=\"method-item\" *ngFor=\"let method of methodMap.value\" [value]=\"method\">\n <ng-container [ngSwitch]=\"methodMap.key\">\n <ng-container *ngSwitchCase=\"verificationMethodType.Sms\">\n {{ method.phoneNumber }}\n </ng-container>\n <ng-container *ngSwitchCase=\"verificationMethodType.Email\">\n {{ method.email }}\n </ng-container>\n <ng-container *ngSwitchCase=\"verificationMethodType.App\">\n Authenticator App\n </ng-container> \n </ng-container>\n </mat-radio-button>\n </div>\n </ng-container>\n </fs-radio-group>\n </ng-container>\n </mat-dialog-content>\n <mat-dialog-actions>\n <div class=\"actions\">\n <ng-container *ngIf=\"methods$ | async\">\n <button mat-button type=\"submit\" color=\"primary\">Next</button>\n </ng-container>\n <button mat-button type=\"button\" [mat-dialog-close]=\"null\">Cancel</button>\n </div>\n </mat-dialog-actions>\n </form>\n</fs-dialog>\n", styles: [".method{display:block;margin-bottom:20px}.method .method-header{display:flex;align-items:flex-start}.method .method-header .method-name{margin-left:10px}.method .method-header .method-name .method-title{font-size:14px;font-weight:400}.method .method-header .method-name .method-subtitle{font-size:12px;color:#a3a3a3}.method .method-item{display:block;margin:10px 0 0 35px}\n"], components: [{ type: i3__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i3__namespace$1.FsRadioGroupComponent, selector: "fs-radio-group", inputs: ["orientation", "label", "name", "disabled", "radioPosition", "compareWith", "required"] }, { type: i4__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5__namespace.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { type: i7__namespace.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__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i8__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8__namespace.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9__namespace.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9__namespace$1.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i8__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i10__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i10__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9__namespace.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i1__namespace.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "async": i10__namespace.AsyncPipe, "keyvalue": i10__namespace.KeyValuePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
100
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationMethodsComponent, decorators: [{
101
- type: i0.Component,
102
- args: [{
103
- templateUrl: './2fa-verification-methods.component.html',
104
- styleUrls: [
105
- './2fa-verification-methods.component.scss',
106
- ],
107
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
108
- }]
109
- }], ctorParameters: function () {
110
- return [{ type: undefined, decorators: [{
111
- type: i0.Inject,
112
- args: [FS_2FA_VERIFICATION_PROVIDER]
113
- }] }, { type: undefined, decorators: [{
114
- type: i0.Inject,
115
- args: [i1.MAT_DIALOG_DATA]
116
- }] }, { type: i1__namespace.MatDialogRef }];
56
+ var Fs2faVerificationMethodsComponent = /** @class */ (function () {
57
+ function Fs2faVerificationMethodsComponent(_dialogData, _dialogRef) {
58
+ var _this = this;
59
+ this._dialogData = _dialogData;
60
+ this._dialogRef = _dialogRef;
61
+ this.verificationMethodType = exports.FsVerificationMethodType;
62
+ this.setVerificationMethod = function () {
63
+ return _this._selectVerificationMethod(_this.method)
64
+ .pipe(operators.tap(function (method) {
65
+ _this._dialogRef.close(method);
66
+ }));
67
+ };
68
+ this._selectVerificationMethod = _dialogData.selectVerificationMethod;
69
+ this._setActiveMethod();
70
+ this._initMethods(_dialogData.verificationMethods);
71
+ }
72
+ Fs2faVerificationMethodsComponent.prototype.compareWith = function (o1, o2) {
73
+ return o1 && o2 && o1.id === o2.id;
74
+ };
75
+ Fs2faVerificationMethodsComponent.prototype._setActiveMethod = function () {
76
+ var _a;
77
+ this.method = (_a = this._dialogData) === null || _a === void 0 ? void 0 : _a.method;
78
+ };
79
+ Fs2faVerificationMethodsComponent.prototype._initMethods = function (verificationMethods) {
80
+ this.verificationMethods = verificationMethods
81
+ .reduce(function (acc, method) {
82
+ if (!acc[method.type]) {
83
+ acc[method.type] = [];
84
+ }
85
+ acc[method.type].push(method);
86
+ return acc;
87
+ }, {});
88
+ };
89
+ return Fs2faVerificationMethodsComponent;
90
+ }());
91
+ Fs2faVerificationMethodsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationMethodsComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
92
+ Fs2faVerificationMethodsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faVerificationMethodsComponent, selector: "ng-component", ngImport: i0__namespace, template: "<fs-dialog>\n <h1 mat-dialog-title>\n Verification Methods\n </h1>\n <form fsForm [submit]=\"setVerificationMethod\" [dirtySubmitButton]=\"false\">\n <mat-dialog-content>\n <ng-container>\n <fs-radio-group [(ngModel)]=\"method\" name=\"method\" [compareWith]=\"compareWith\">\n <ng-container *ngFor=\"let methodMap of verificationMethods | keyvalue\">\n <div class=\"method\">\n <ng-container [ngSwitch]=\"methodMap.key\">\n <ng-container *ngSwitchCase=\"verificationMethodType.Sms\">\n <div class=\"method-header\">\n <div class=\"method-icon\">\n <mat-icon>\n textsms\n </mat-icon>\n </div>\n <div class=\"method-name\">\n <div class=\"method-title\">Text Message</div>\n <div class=\"method-subtitle\">\n Verification code send to one of following mobile number\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"verificationMethodType.Email\">\n <div class=\"method-header\">\n <div class=\"method-icon\">\n <mat-icon>\n mail\n </mat-icon>\n </div>\n <div class=\"method-name\">\n <div class=\"method-title\">Email</div>\n <div class=\"method-subtitle\">\n Verification code send to one of following email\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"verificationMethodType.App\">\n <div class=\"method-header\">\n <div class=\"method-icon\">\n <mat-icon>\n phone_iphone\n </mat-icon>\n </div>\n <div class=\"method-name\">\n <div class=\"method-title\">Authenticator App</div>\n <div class=\"method-subtitle\">\n Verification code generated by an authenticator app\n </div>\n </div>\n </div>\n </ng-container> \n </ng-container>\n\n <mat-radio-button class=\"method-item\" *ngFor=\"let method of methodMap.value\" [value]=\"method\">\n <ng-container [ngSwitch]=\"methodMap.key\">\n <ng-container *ngSwitchCase=\"verificationMethodType.Sms\">\n {{ method.phoneNumber }}\n </ng-container>\n <ng-container *ngSwitchCase=\"verificationMethodType.Email\">\n {{ method.email }}\n </ng-container>\n <ng-container *ngSwitchCase=\"verificationMethodType.App\">\n Authenticator App\n </ng-container> \n </ng-container>\n </mat-radio-button>\n </div>\n </ng-container>\n </fs-radio-group>\n </ng-container>\n </mat-dialog-content>\n <mat-dialog-actions>\n <div class=\"actions\">\n <button mat-button type=\"submit\" color=\"primary\">Next</button>\n <button mat-button type=\"button\" [mat-dialog-close]=\"null\">Cancel</button>\n </div>\n </mat-dialog-actions>\n </form>\n</fs-dialog>\n", styles: [".method{display:block;margin-bottom:20px}.method .method-header{display:flex;align-items:flex-start}.method .method-header .method-name{margin-left:10px}.method .method-header .method-name .method-title{font-size:14px;font-weight:400}.method .method-header .method-name .method-subtitle{font-size:12px;color:#a3a3a3}.method .method-item{display:block;margin:10px 0 0 35px}\n"], components: [{ type: i3__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i3__namespace$1.FsRadioGroupComponent, selector: "fs-radio-group", inputs: ["orientation", "label", "name", "disabled", "radioPosition", "compareWith", "required"] }, { type: i4__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5__namespace.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { type: i7__namespace.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__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i8__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8__namespace.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9__namespace.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i8__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9__namespace$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9__namespace$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i9__namespace.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i1__namespace.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "keyvalue": i9__namespace$1.KeyValuePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
93
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationMethodsComponent, decorators: [{
94
+ type: i0.Component,
95
+ args: [{
96
+ templateUrl: './2fa-verification-methods.component.html',
97
+ styleUrls: [
98
+ './2fa-verification-methods.component.scss',
99
+ ],
100
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
101
+ }]
102
+ }], ctorParameters: function () {
103
+ return [{ type: undefined, decorators: [{
104
+ type: i0.Inject,
105
+ args: [i1.MAT_DIALOG_DATA]
106
+ }] }, { type: i1__namespace.MatDialogRef }];
117
107
  } });
118
108
 
119
- var CodeInputComponent = /** @class */ (function () {
120
- function CodeInputComponent() {
121
- this.codeCompleted = new i0.EventEmitter();
122
- this.codeChanged = new i0.EventEmitter();
123
- }
124
- CodeInputComponent.prototype.focus = function () {
125
- this.angularCodeInputComponent.focusOnField(0);
126
- };
127
- return CodeInputComponent;
128
- }());
129
- CodeInputComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CodeInputComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
130
- CodeInputComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CodeInputComponent, selector: "app-code-input", inputs: { codeLength: "codeLength", code: "code" }, outputs: { codeCompleted: "codeCompleted", codeChanged: "codeChanged" }, viewQueries: [{ propertyName: "angularCodeInputComponent", first: true, predicate: i1$1.CodeInputComponent, descendants: true }], ngImport: i0__namespace, template: "<code-input\n [initialFocusField]=\"0\"\n [codeLength]=\"6\"\n [code]=\"code\"\n (codeCompleted)=\"codeCompleted.emit($event)\"\n (codeChanged)=\"codeChanged.emit($event)\">\n</code-input>", styles: ["code-input{--item-spacing: 10px;--item-height: 20px;--item-border: none;--item-border-bottom: 2px solid #949494;--item-border-has-value: none;--item-border-bottom-has-value: 2px solid #949494;--item-border-focused: none;--item-border-bottom-focused: 2px solid #0061AF;--item-shadow-focused: none;--item-border-radius: 0px}code-input ::ng-deep span:first-child{padding-left:0!important}code-input ::ng-deep span:last-child{padding-right:0!important}code-input ::ng-deep input{font-size:20px!important;height:40px!important;padding:0!important}\n"], components: [{ type: i1__namespace$1.CodeInputComponent, selector: "code-input", inputs: ["isNonDigitsCode", "codeLength", "inputType", "initialFocusField", "isCharsCode", "isCodeHidden", "isPrevFocusableAfterClearing", "isFocusingOnLastByClickIfFilled", "code", "disabled", "autocapitalize"], outputs: ["codeChanged", "codeCompleted"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
131
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CodeInputComponent, decorators: [{
132
- type: i0.Component,
133
- args: [{
134
- selector: 'app-code-input',
135
- templateUrl: './code-input.component.html',
136
- styleUrls: ['./code-input.component.scss'],
137
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
138
- }]
139
- }], propDecorators: { angularCodeInputComponent: [{
140
- type: i0.ViewChild,
141
- args: [i1$1.CodeInputComponent]
142
- }], codeLength: [{
143
- type: i0.Input
144
- }], code: [{
145
- type: i0.Input
146
- }], codeCompleted: [{
147
- type: i0.Output
148
- }], codeChanged: [{
149
- type: i0.Output
109
+ var CodeInputComponent = /** @class */ (function () {
110
+ function CodeInputComponent() {
111
+ this.codeCompleted = new i0.EventEmitter();
112
+ this.codeChanged = new i0.EventEmitter();
113
+ }
114
+ CodeInputComponent.prototype.focus = function () {
115
+ this.angularCodeInputComponent.focusOnField(0);
116
+ };
117
+ return CodeInputComponent;
118
+ }());
119
+ CodeInputComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CodeInputComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
120
+ CodeInputComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CodeInputComponent, selector: "app-code-input", inputs: { codeLength: "codeLength", code: "code" }, outputs: { codeCompleted: "codeCompleted", codeChanged: "codeChanged" }, viewQueries: [{ propertyName: "angularCodeInputComponent", first: true, predicate: i1$1.CodeInputComponent, descendants: true }], ngImport: i0__namespace, template: "<code-input\r\n [initialFocusField]=\"0\"\r\n [codeLength]=\"6\"\r\n [code]=\"code\"\r\n (codeCompleted)=\"codeCompleted.emit($event)\"\r\n (codeChanged)=\"codeChanged.emit($event)\">\r\n</code-input>", styles: ["code-input{--item-spacing: 10px;--item-height: 20px;--item-border: none;--item-border-bottom: 2px solid #949494;--item-border-has-value: none;--item-border-bottom-has-value: 2px solid #949494;--item-border-focused: none;--item-border-bottom-focused: 2px solid #0061AF;--item-shadow-focused: none;--item-border-radius: 0px}code-input ::ng-deep span:first-child{padding-left:0!important}code-input ::ng-deep span:last-child{padding-right:0!important}code-input ::ng-deep input{font-size:20px!important;height:40px!important;padding:0!important}\n"], components: [{ type: i1__namespace$1.CodeInputComponent, selector: "code-input", inputs: ["isNonDigitsCode", "codeLength", "inputType", "initialFocusField", "isCharsCode", "isCodeHidden", "isPrevFocusableAfterClearing", "isFocusingOnLastByClickIfFilled", "code", "disabled", "autocapitalize"], outputs: ["codeChanged", "codeCompleted"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
121
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CodeInputComponent, decorators: [{
122
+ type: i0.Component,
123
+ args: [{
124
+ selector: 'app-code-input',
125
+ templateUrl: './code-input.component.html',
126
+ styleUrls: ['./code-input.component.scss'],
127
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
128
+ }]
129
+ }], propDecorators: { angularCodeInputComponent: [{
130
+ type: i0.ViewChild,
131
+ args: [i1$1.CodeInputComponent]
132
+ }], codeLength: [{
133
+ type: i0.Input
134
+ }], code: [{
135
+ type: i0.Input
136
+ }], codeCompleted: [{
137
+ type: i0.Output
138
+ }], codeChanged: [{
139
+ type: i0.Output
150
140
  }] } });
151
141
 
152
- var Fs2faVerificationCodeComponent = /** @class */ (function () {
153
- function Fs2faVerificationCodeComponent() {
154
- this.codeChanged = new i0.EventEmitter();
155
- this.codeCompleted = new i0.EventEmitter();
156
- this.FsVerificationMethodType = exports.FsVerificationMethodType;
157
- }
158
- Fs2faVerificationCodeComponent.prototype.codeChange = function (code) {
159
- this.code = code;
160
- this.codeChanged.emit(this.code);
161
- };
162
- Fs2faVerificationCodeComponent.prototype.focus = function () {
163
- this.codeInputComponent.focus();
164
- };
165
- return Fs2faVerificationCodeComponent;
166
- }());
167
- Fs2faVerificationCodeComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationCodeComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
168
- Fs2faVerificationCodeComponent.ɵcmp = i0__namespace.ɵɵ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__namespace, template: "<ng-container *ngIf=\"method.phoneNumber && method.type === FsVerificationMethodType.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 === FsVerificationMethodType.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 === FsVerificationMethodType.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: i10__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], viewProviders: [
169
- {
170
- provide: i8.ControlContainer,
171
- useExisting: i8.NgForm,
172
- },
173
- ], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
174
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationCodeComponent, decorators: [{
175
- type: i0.Component,
176
- args: [{
177
- selector: 'fs-2fa-verification-code',
178
- templateUrl: './2fa-verification-code.component.html',
179
- styleUrls: [
180
- './2fa-verification-code.component.scss',
181
- ],
182
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
183
- viewProviders: [
184
- {
185
- provide: i8.ControlContainer,
186
- useExisting: i8.NgForm,
187
- },
188
- ],
189
- }]
190
- }], propDecorators: { codeInputComponent: [{
191
- type: i0.ViewChild,
192
- args: [CodeInputComponent]
193
- }], method: [{
194
- type: i0.Input
195
- }], code: [{
196
- type: i0.Input
197
- }], codeChanged: [{
198
- type: i0.Output
199
- }], codeCompleted: [{
200
- type: i0.Output
142
+ var Fs2faVerificationCodeComponent = /** @class */ (function () {
143
+ function Fs2faVerificationCodeComponent() {
144
+ this.codeChanged = new i0.EventEmitter();
145
+ this.codeCompleted = new i0.EventEmitter();
146
+ this.FsVerificationMethodType = exports.FsVerificationMethodType;
147
+ }
148
+ Fs2faVerificationCodeComponent.prototype.codeChange = function (code) {
149
+ this.code = code;
150
+ this.codeChanged.emit(this.code);
151
+ };
152
+ Fs2faVerificationCodeComponent.prototype.focus = function () {
153
+ this.codeInputComponent.focus();
154
+ };
155
+ return Fs2faVerificationCodeComponent;
156
+ }());
157
+ Fs2faVerificationCodeComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationCodeComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
158
+ Fs2faVerificationCodeComponent.ɵcmp = i0__namespace.ɵɵ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__namespace, template: "<ng-container *ngIf=\"method.phoneNumber && method.type === FsVerificationMethodType.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 === FsVerificationMethodType.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 === FsVerificationMethodType.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__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], viewProviders: [
159
+ {
160
+ provide: i8.ControlContainer,
161
+ useExisting: i8.NgForm,
162
+ },
163
+ ], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
164
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationCodeComponent, decorators: [{
165
+ type: i0.Component,
166
+ args: [{
167
+ selector: 'fs-2fa-verification-code',
168
+ templateUrl: './2fa-verification-code.component.html',
169
+ styleUrls: [
170
+ './2fa-verification-code.component.scss',
171
+ ],
172
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
173
+ viewProviders: [
174
+ {
175
+ provide: i8.ControlContainer,
176
+ useExisting: i8.NgForm,
177
+ },
178
+ ],
179
+ }]
180
+ }], propDecorators: { codeInputComponent: [{
181
+ type: i0.ViewChild,
182
+ args: [CodeInputComponent]
183
+ }], method: [{
184
+ type: i0.Input
185
+ }], code: [{
186
+ type: i0.Input
187
+ }], codeChanged: [{
188
+ type: i0.Output
189
+ }], codeCompleted: [{
190
+ type: i0.Output
201
191
  }] } });
202
192
 
203
- var Fs2faVerificationComponent = /** @class */ (function () {
204
- function Fs2faVerificationComponent(verificationProvider, _cdRef, _dialog) {
205
- this.verificationProvider = verificationProvider;
206
- this._cdRef = _cdRef;
207
- this._dialog = _dialog;
208
- this.verified = new i0.EventEmitter();
209
- this.codeChanged = new i0.EventEmitter();
210
- this.codeCompleted = new i0.EventEmitter();
211
- this.resendInProgress = false;
212
- this.code = '';
213
- this.trustedDevice = true;
214
- this.FsVerificationMethodType = exports.FsVerificationMethodType;
215
- this._destroy$ = new rxjs.Subject();
216
- }
217
- Fs2faVerificationComponent.prototype.ngOnInit = function () {
218
- var _this = this;
219
- this.codeChanged
220
- .pipe(operators.takeUntil(this._destroy$))
221
- .subscribe(function (code) {
222
- _this.code = code;
223
- });
224
- };
225
- Fs2faVerificationComponent.prototype.ngOnDestroy = function () {
226
- this._destroy$.next();
227
- this._destroy$.complete();
228
- };
229
- Fs2faVerificationComponent.prototype.verify = function () {
230
- var _this = this;
231
- this.verificationProvider
232
- .verify(this.code, this.trustedDevice)
233
- .subscribe(function (response) {
234
- _this.verified.emit(response);
235
- });
236
- };
237
- ;
238
- Fs2faVerificationComponent.prototype.ngAfterViewInit = function () {
239
- this.verificationCodeComponent.focus();
240
- };
241
- Fs2faVerificationComponent.prototype.resend = function () {
242
- var _this = this;
243
- this.resendInProgress = true;
244
- this.code = '';
245
- this.verificationProvider
246
- .resend()
247
- .pipe(operators.takeUntil(this._destroy$))
248
- .subscribe(function () {
249
- _this.resendInProgress = false;
250
- _this.verificationCodeComponent.focus();
251
- _this._cdRef.markForCheck();
252
- });
253
- };
254
- Fs2faVerificationComponent.prototype.showVerificationMethods = function () {
255
- var _this = this;
256
- this._dialog.open(Fs2faVerificationMethodsComponent, {
257
- data: {
258
- method: this.method,
259
- }
260
- })
261
- .afterClosed()
262
- .pipe(operators.filter(function (method) { return !!method; }))
263
- .subscribe(function (method) {
264
- _this.method = method;
265
- _this.code = '';
266
- _this._cdRef.markForCheck();
267
- setTimeout(function () {
268
- _this.verificationCodeComponent.focus();
269
- });
270
- });
271
- };
272
- return Fs2faVerificationComponent;
273
- }());
274
- Fs2faVerificationComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationComponent, deps: [{ token: FS_2FA_VERIFICATION_PROVIDER }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace.FsDialog }], target: i0__namespace.ɵɵFactoryTarget.Component });
275
- Fs2faVerificationComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faVerificationComponent, selector: "fs-2fa-verification", inputs: { method: "method" }, outputs: { verified: "verified", codeChanged: "codeChanged", codeCompleted: "codeCompleted" }, viewQueries: [{ propertyName: "verificationCodeComponent", first: true, predicate: Fs2faVerificationCodeComponent, descendants: true }], ngImport: i0__namespace, template: "<div class=\"code-container\">\n <fs-2fa-verification-code\n [method]=\"method\"\n [code]=\"code\"\n (codeChanged)=\"codeChanged.emit($event)\"\n (codeCompleted)=\"codeCompleted.emit()\">\n </fs-2fa-verification-code>\n</div>\n\n<div class=\"additional\">\n <mat-checkbox\n name=\"trust-device\"\n [(ngModel)]=\"trustedDevice\">\n Trust this device\n </mat-checkbox>\n\n <span class=\"resend-code-btn\">\n <ng-container *ngIf=\"!resendInProgress else sending\">\n <a (click)=\"resend()\">\n Resend Code\n </a>\n </ng-container>\n <ng-template #sending>\n <mat-spinner [diameter]=\"12\"></mat-spinner> Sending\n </ng-template>\n </span>\n</div>", styles: [".code-container{text-align:center}.additional{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.additional .resend-code-btn{cursor:pointer;text-transform:none}.additional .resend-code-btn mat-spinner{display:inline-block;vertical-align:middle}\n"], components: [{ type: Fs2faVerificationCodeComponent, selector: "fs-2fa-verification-code", inputs: ["method", "code"], outputs: ["codeChanged", "codeCompleted"] }, { type: i3__namespace$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i4__namespace$1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i8__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i10__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
276
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationComponent, decorators: [{
277
- type: i0.Component,
278
- args: [{
279
- selector: 'fs-2fa-verification',
280
- templateUrl: './2fa-verification.component.html',
281
- styleUrls: [
282
- './2fa-verification.component.scss',
283
- ],
284
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
285
- }]
286
- }], ctorParameters: function () {
287
- return [{ type: undefined, decorators: [{
288
- type: i0.Inject,
289
- args: [FS_2FA_VERIFICATION_PROVIDER]
290
- }] }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.FsDialog }];
291
- }, propDecorators: { verificationCodeComponent: [{
292
- type: i0.ViewChild,
293
- args: [Fs2faVerificationCodeComponent]
294
- }], method: [{
295
- type: i0.Input
296
- }], verified: [{
297
- type: i0.Output
298
- }], codeChanged: [{
299
- type: i0.Output
300
- }], codeCompleted: [{
301
- type: i0.Output
193
+ var Fs2faVerificationComponent = /** @class */ (function () {
194
+ function Fs2faVerificationComponent(_cdRef, _dialog) {
195
+ this._cdRef = _cdRef;
196
+ this._dialog = _dialog;
197
+ this.verified = new i0.EventEmitter();
198
+ this.codeChanged = new i0.EventEmitter();
199
+ this.codeCompleted = new i0.EventEmitter();
200
+ this.resendInProgress = false;
201
+ this.code = '';
202
+ this.trustedDevice = true;
203
+ this.FsVerificationMethodType = exports.FsVerificationMethodType;
204
+ this._destroy$ = new rxjs.Subject();
205
+ }
206
+ Fs2faVerificationComponent.prototype.ngOnInit = function () {
207
+ var _this = this;
208
+ this.codeChanged
209
+ .pipe(operators.takeUntil(this._destroy$))
210
+ .subscribe(function (code) {
211
+ _this.code = code;
212
+ });
213
+ };
214
+ Fs2faVerificationComponent.prototype.ngOnDestroy = function () {
215
+ this._destroy$.next();
216
+ this._destroy$.complete();
217
+ };
218
+ Fs2faVerificationComponent.prototype.ngAfterViewInit = function () {
219
+ this.verificationCodeComponent.focus();
220
+ };
221
+ Fs2faVerificationComponent.prototype.resendCode = function () {
222
+ var _this = this;
223
+ this.resendInProgress = true;
224
+ this.code = '';
225
+ this.resend()
226
+ .pipe(operators.takeUntil(this._destroy$))
227
+ .subscribe(function () {
228
+ _this.resendInProgress = false;
229
+ _this.verificationCodeComponent.focus();
230
+ _this._cdRef.markForCheck();
231
+ });
232
+ };
233
+ Fs2faVerificationComponent.prototype.showVerificationMethods = function () {
234
+ var _this = this;
235
+ this.getVerificationMethods()
236
+ .subscribe(function (verificationMethods) {
237
+ _this._dialog.open(Fs2faVerificationMethodsComponent, {
238
+ data: {
239
+ method: _this.method,
240
+ verificationMethods: verificationMethods,
241
+ selectVerificationMethod: _this.selectVerificationMethod,
242
+ }
243
+ })
244
+ .afterClosed()
245
+ .pipe(operators.filter(function (method) { return !!method; }))
246
+ .subscribe(function (method) {
247
+ _this.method = method;
248
+ _this.code = '';
249
+ _this._cdRef.markForCheck();
250
+ setTimeout(function () {
251
+ _this.verificationCodeComponent.focus();
252
+ });
253
+ });
254
+ });
255
+ };
256
+ return Fs2faVerificationComponent;
257
+ }());
258
+ Fs2faVerificationComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationComponent, deps: [{ token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace.FsDialog }], target: i0__namespace.ɵɵFactoryTarget.Component });
259
+ Fs2faVerificationComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faVerificationComponent, selector: "fs-2fa-verification", inputs: { method: "method", resend: "resend", getVerificationMethods: "getVerificationMethods", selectVerificationMethod: "selectVerificationMethod" }, outputs: { verified: "verified", codeChanged: "codeChanged", codeCompleted: "codeCompleted" }, viewQueries: [{ propertyName: "verificationCodeComponent", first: true, predicate: Fs2faVerificationCodeComponent, descendants: true }], ngImport: i0__namespace, template: "<div class=\"code-container\">\n <fs-2fa-verification-code\n [method]=\"method\"\n [code]=\"code\"\n (codeChanged)=\"codeChanged.emit($event)\"\n (codeCompleted)=\"codeCompleted.emit()\">\n </fs-2fa-verification-code>\n</div>\n\n<div class=\"additional\">\n <mat-checkbox\n name=\"trust-device\"\n [(ngModel)]=\"trustedDevice\">\n Trust this device\n </mat-checkbox>\n\n <span class=\"resend-code-btn\">\n <ng-container *ngIf=\"!resendInProgress else sending\">\n <a (click)=\"resendCode()\">\n Resend Code\n </a>\n </ng-container>\n <ng-template #sending>\n <mat-spinner [diameter]=\"12\"></mat-spinner> Sending\n </ng-template>\n </span>\n</div>", styles: [".code-container{text-align:center}.additional{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.additional .resend-code-btn{cursor:pointer;text-transform:none}.additional .resend-code-btn mat-spinner{display:inline-block;vertical-align:middle}\n"], components: [{ type: Fs2faVerificationCodeComponent, selector: "fs-2fa-verification-code", inputs: ["method", "code"], outputs: ["codeChanged", "codeCompleted"] }, { type: i3__namespace$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i4__namespace$1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i8__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
260
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationComponent, decorators: [{
261
+ type: i0.Component,
262
+ args: [{
263
+ selector: 'fs-2fa-verification',
264
+ templateUrl: './2fa-verification.component.html',
265
+ styleUrls: [
266
+ './2fa-verification.component.scss',
267
+ ],
268
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
269
+ }]
270
+ }], ctorParameters: function () { return [{ type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.FsDialog }]; }, propDecorators: { verificationCodeComponent: [{
271
+ type: i0.ViewChild,
272
+ args: [Fs2faVerificationCodeComponent]
273
+ }], method: [{
274
+ type: i0.Input
275
+ }], resend: [{
276
+ type: i0.Input
277
+ }], getVerificationMethods: [{
278
+ type: i0.Input
279
+ }], selectVerificationMethod: [{
280
+ type: i0.Input
281
+ }], verified: [{
282
+ type: i0.Output
283
+ }], codeChanged: [{
284
+ type: i0.Output
285
+ }], codeCompleted: [{
286
+ type: i0.Output
302
287
  }] } });
303
288
 
304
- var CodeInputModule = /** @class */ (function () {
305
- function CodeInputModule() {
306
- }
307
- return CodeInputModule;
308
- }());
309
- CodeInputModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CodeInputModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
310
- CodeInputModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CodeInputModule, declarations: [CodeInputComponent], imports: [i1$1.CodeInputModule], exports: [CodeInputComponent] });
311
- CodeInputModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CodeInputModule, imports: [[
312
- i1$1.CodeInputModule,
313
- ]] });
314
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CodeInputModule, decorators: [{
315
- type: i0.NgModule,
316
- args: [{
317
- imports: [
318
- i1$1.CodeInputModule,
319
- ],
320
- declarations: [
321
- CodeInputComponent,
322
- ],
323
- exports: [
324
- CodeInputComponent,
325
- ],
326
- }]
289
+ var CodeInputModule = /** @class */ (function () {
290
+ function CodeInputModule() {
291
+ }
292
+ return CodeInputModule;
293
+ }());
294
+ CodeInputModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CodeInputModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
295
+ CodeInputModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CodeInputModule, declarations: [CodeInputComponent], imports: [i1$1.CodeInputModule], exports: [CodeInputComponent] });
296
+ CodeInputModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CodeInputModule, imports: [[
297
+ i1$1.CodeInputModule,
298
+ ]] });
299
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CodeInputModule, decorators: [{
300
+ type: i0.NgModule,
301
+ args: [{
302
+ imports: [
303
+ i1$1.CodeInputModule,
304
+ ],
305
+ declarations: [
306
+ CodeInputComponent,
307
+ ],
308
+ exports: [
309
+ CodeInputComponent,
310
+ ],
311
+ }]
327
312
  }] });
328
313
 
329
- var Fs2faVerificationModule = /** @class */ (function () {
330
- function Fs2faVerificationModule() {
331
- }
332
- return Fs2faVerificationModule;
333
- }());
334
- Fs2faVerificationModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
335
- Fs2faVerificationModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationModule, declarations: [Fs2faVerificationComponent,
336
- Fs2faVerificationCodeComponent,
337
- Fs2faVerificationMethodsComponent], imports: [i10.CommonModule,
338
- i8.FormsModule,
339
- i5$1.MatFormFieldModule,
340
- i11.MatInputModule,
341
- i7.MatButtonModule,
342
- i9.FsFormModule,
343
- i3$1.FsRadioGroupModule,
344
- i3.FsDialogModule,
345
- CodeInputModule,
346
- i3$2.MatCheckboxModule,
347
- i4$1.MatProgressSpinnerModule,
348
- i9$1.FsSkeletonModule,
349
- i9$1.FsSkeletonModule,
350
- i4.MatIconModule,
351
- i5.MatRadioModule], exports: [Fs2faVerificationComponent] });
352
- Fs2faVerificationModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationModule, providers: [], imports: [[
353
- i10.CommonModule,
354
- i8.FormsModule,
355
- i5$1.MatFormFieldModule,
356
- i11.MatInputModule,
357
- i7.MatButtonModule,
358
- i9.FsFormModule,
359
- i3$1.FsRadioGroupModule,
360
- i3.FsDialogModule,
361
- CodeInputModule,
362
- i3$2.MatCheckboxModule,
363
- i4$1.MatProgressSpinnerModule,
364
- i9$1.FsSkeletonModule,
365
- i9$1.FsSkeletonModule,
366
- i4.MatIconModule,
367
- i5.MatRadioModule,
368
- ]] });
369
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationModule, decorators: [{
370
- type: i0.NgModule,
371
- args: [{
372
- imports: [
373
- i10.CommonModule,
374
- i8.FormsModule,
375
- i5$1.MatFormFieldModule,
376
- i11.MatInputModule,
377
- i7.MatButtonModule,
378
- i9.FsFormModule,
379
- i3$1.FsRadioGroupModule,
380
- i3.FsDialogModule,
381
- CodeInputModule,
382
- i3$2.MatCheckboxModule,
383
- i4$1.MatProgressSpinnerModule,
384
- i9$1.FsSkeletonModule,
385
- i9$1.FsSkeletonModule,
386
- i4.MatIconModule,
387
- i5.MatRadioModule,
388
- ],
389
- declarations: [
390
- Fs2faVerificationComponent,
391
- Fs2faVerificationCodeComponent,
392
- Fs2faVerificationMethodsComponent,
393
- ],
394
- exports: [
395
- Fs2faVerificationComponent,
396
- ],
397
- providers: [],
398
- }]
314
+ var Fs2faVerificationModule = /** @class */ (function () {
315
+ function Fs2faVerificationModule() {
316
+ }
317
+ return Fs2faVerificationModule;
318
+ }());
319
+ Fs2faVerificationModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
320
+ Fs2faVerificationModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationModule, declarations: [Fs2faVerificationComponent,
321
+ Fs2faVerificationCodeComponent,
322
+ Fs2faVerificationMethodsComponent], imports: [i9$1.CommonModule,
323
+ i8.FormsModule,
324
+ i5$1.MatFormFieldModule,
325
+ i11.MatInputModule,
326
+ i7.MatButtonModule,
327
+ i9.FsFormModule,
328
+ i3$1.FsRadioGroupModule,
329
+ i3.FsDialogModule,
330
+ CodeInputModule,
331
+ i3$2.MatCheckboxModule,
332
+ i4$1.MatProgressSpinnerModule,
333
+ i11$1.FsSkeletonModule,
334
+ i11$1.FsSkeletonModule,
335
+ i4.MatIconModule,
336
+ i5.MatRadioModule], exports: [Fs2faVerificationComponent] });
337
+ Fs2faVerificationModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationModule, providers: [], imports: [[
338
+ i9$1.CommonModule,
339
+ i8.FormsModule,
340
+ i5$1.MatFormFieldModule,
341
+ i11.MatInputModule,
342
+ i7.MatButtonModule,
343
+ i9.FsFormModule,
344
+ i3$1.FsRadioGroupModule,
345
+ i3.FsDialogModule,
346
+ CodeInputModule,
347
+ i3$2.MatCheckboxModule,
348
+ i4$1.MatProgressSpinnerModule,
349
+ i11$1.FsSkeletonModule,
350
+ i11$1.FsSkeletonModule,
351
+ i4.MatIconModule,
352
+ i5.MatRadioModule,
353
+ ]] });
354
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faVerificationModule, decorators: [{
355
+ type: i0.NgModule,
356
+ args: [{
357
+ imports: [
358
+ i9$1.CommonModule,
359
+ i8.FormsModule,
360
+ i5$1.MatFormFieldModule,
361
+ i11.MatInputModule,
362
+ i7.MatButtonModule,
363
+ i9.FsFormModule,
364
+ i3$1.FsRadioGroupModule,
365
+ i3.FsDialogModule,
366
+ CodeInputModule,
367
+ i3$2.MatCheckboxModule,
368
+ i4$1.MatProgressSpinnerModule,
369
+ i11$1.FsSkeletonModule,
370
+ i11$1.FsSkeletonModule,
371
+ i4.MatIconModule,
372
+ i5.MatRadioModule,
373
+ ],
374
+ declarations: [
375
+ Fs2faVerificationComponent,
376
+ Fs2faVerificationCodeComponent,
377
+ Fs2faVerificationMethodsComponent,
378
+ ],
379
+ exports: [
380
+ Fs2faVerificationComponent,
381
+ ],
382
+ providers: [],
383
+ }]
399
384
  }] });
400
385
 
401
- var AppComponent = /** @class */ (function () {
402
- function AppComponent(_data, _dialogRef, _cdRef, _message) {
403
- var _this = this;
404
- this._data = _data;
405
- this._dialogRef = _dialogRef;
406
- this._cdRef = _cdRef;
407
- this._message = _message;
408
- this.mode = 'qr-code';
409
- this.verify = function () {
410
- return _this.twoFactorManageService.verificationMethodVerify(_this.code)
411
- .pipe(operators.tap(function () {
412
- _this._message.success('Created app authenticator verification method');
413
- _this._dialogRef.close(true);
414
- }));
415
- };
416
- }
417
- AppComponent.prototype.ngOnInit = function () {
418
- this.twoFactorManageService = this._data.twoFactorManageService;
419
- this.accountId = this._data.accountId;
420
- this.default = !this.twoFactorManageService.hasVerificationMethods;
421
- };
422
- AppComponent.prototype.appTypeGoogle = function () {
423
- this.appTypeSelect('google');
424
- };
425
- AppComponent.prototype.appTypeAuthy = function () {
426
- this.appTypeSelect('authy');
427
- };
428
- AppComponent.prototype.appTypeSelect = function (appType) {
429
- var _this = this;
430
- this.appType = appType;
431
- this.twoFactorManageService.verificationMethodCreate({
432
- type: 'app',
433
- default: this.default,
434
- })
435
- .subscribe(function (response) {
436
- _this.qrCodeUrl = response.qrCodeUrl;
437
- _this._cdRef.markForCheck();
438
- });
439
- };
440
- AppComponent.prototype.codeCompleted = function () {
441
- this.form.triggerSubmit();
442
- };
443
- AppComponent.prototype.codeChanged = function (code) {
444
- this.code = code;
445
- this.form.dirty();
446
- };
447
- AppComponent.prototype.next = function () {
448
- this.mode = 'code-input';
449
- };
450
- return AppComponent;
451
- }());
452
- AppComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: AppComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }, { token: i0__namespace.ChangeDetectorRef }, { token: i2__namespace.FsMessage }], target: i0__namespace.ɵɵFactoryTarget.Component });
453
- AppComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AppComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: i9.FsFormDirective, descendants: true }], ngImport: i0__namespace, template: "<form fsForm [submit]=\"verify\">\n <fs-dialog>\n <h1 mat-dialog-title>Authenticator App Setup</h1>\n <mat-dialog-content>\n\n <div *ngIf=\"mode === 'qr-code'\" class=\"qr-code\">\n <ng-container *ngIf=\"appType\">\n <ol>\n <li>\n <ng-container *ngIf=\"appType === 'authy'\">\n Install the Authy Authenticator App from the <a href=\"https://apps.apple.com/us/app/authy/id494168017\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.authy.authy\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n\n <ng-container *ngIf=\"appType === 'google'\">\n Install the Google Authenticator App from the <a href=\"https://apps.apple.com/us/app/google-authenticator/id388497605\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en_US&gl=US\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n </li>\n <ng-container *ngIf=\"appType === 'authy'\">\n <li>\n Open the Authy app and select <b>Add Account</b>.\n </li>\n <li>\n Select <b>Scan QR Code</b> and scan the QR code below.\n </li>\n </ng-container> \n <ng-container *ngIf=\"appType === 'google'\">\n <li>\n Open the Google Authentictor app and click the <b>Plus icon</b> in the lower right corner.\n </li>\n <li>\n Select <b>Scan a QR code</b> and scan the QR code below.\n </li>\n </ng-container>\n </ol>\n\n <qr-code \n *fsSkeleton=\"qrCodeUrl\"\n [value]=\"qrCodeUrl\"\n size=\"200\"\n errorCorrectionLevel=\"H\"\n [margin]=\"0\">\n </qr-code> \n </ng-container>\n\n <div class=\"app-types\" *ngIf=\"!appType\">\n <p>Select the Authenticator App you prefer</p>\n\n <div class=\"row\">\n <span>\n <a (click)=\"appTypeAuthy()\">\n <svg width=\"50\" height=\"50\" viewBox=\"0 0 256 256\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMidYMid\"><path d=\"M256 127.998C256 198.696 198.694 256 127.997 256 57.304 256 0 198.696 0 127.998 0 57.305 57.304 0 127.997 0 198.694 0 256 57.305 256 127.998z\" fill=\"#EC1C24\"/><path d=\"M117.024 100.89l30.691 30.68c4.43 4.436 11.623 4.436 16.064 0 4.431-4.435 4.441-11.622 0-16.058L133.086 84.82C111.125 62.854 75.631 62.5 53.204 83.704a9.536 9.536 0 0 0-.605.548c-.098.098-.178.202-.275.29-.1.096-.202.182-.297.278-.194.193-.371.396-.54.597-21.215 22.437-20.85 57.932 1.113 79.897L83.292 196c4.44 4.433 11.623 4.433 16.062 0 4.442-4.437 4.442-11.633.011-16.06l-30.693-30.691c-13.398-13.393-13.488-35.129-.278-48.637 13.506-13.21 35.23-13.114 48.63.279zm39.612-40.873c-4.435 4.437-4.435 11.623.012 16.059l30.681 30.693c13.39 13.392 13.477 35.125.268 48.636-13.51 13.2-35.227 13.112-48.623-.282l-30.692-30.689c-4.438-4.437-11.633-4.437-16.066 0-4.443 4.433-4.443 11.642 0 16.065l30.682 30.694c21.968 21.965 57.458 22.322 79.889 1.116.208-.184.404-.355.61-.549.094-.095.182-.192.273-.29.1-.095.197-.183.29-.289.197-.183.365-.384.54-.594 21.215-22.428 20.86-57.911-1.102-79.889l-30.692-30.682c-4.436-4.443-11.638-4.443-16.07.001z\" fill=\"#FFF\"/></svg>\n </a>\n Authy\n </span>\n \n <span>\n <a (click)=\"appTypeGoogle()\"> \n <svg width=\"50\" height=\"50\" viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m457.07 45.92c73.67-8.62 149.41.22 218.93 26.24 62.75 23.47 120.59 60.41 167.72 108.09-40.31 39.97-80.25 80.31-120.51 120.33-25.95-25.45-56.19-46.65-89.47-61.37-44.22-19.82-93.39-28.54-141.72-25.2-54.6 3.52-108.11 22.49-152.63 54.3-55.24 38.95-96.61 97.22-114.8 162.35-13.64 47.78-14.77 98.97-3.76 147.4 8.85 39.61 26.09 77.29 50.05 110.03 22.24 30.45 50.3 56.64 82.22 76.71 36.79 23.24 78.76 38.22 121.96 43.48 37.02 4.65 74.9 2.23 111.05-7 3.97-1.91 6.24 2.61 8.73 4.86 40.74 40.95 81.68 81.7 122.43 122.63-73.31 35.6-155.99 51.86-237.3 46.12-68.05-4.51-135.07-24.08-194.71-57.18-24.87-13.6-48.23-29.82-70.33-47.54-17.46-14.81-34.71-30.01-49.72-47.35-25.41-27.39-47.21-58.11-65.17-90.87-4-7.72-8.64-15.12-11.9-23.2-4.47-9.05-8.37-18.36-12.25-27.67-4.96-13.27-10.26-26.44-13.88-40.15-.43-1.81-1.53-3.33-2.52-4.85-8.3-28.66-12.95-58.33-15.44-88.04-2.62-37.36-1.33-75.05 4.78-112.03 12.18-75.48 43.41-147.74 89.86-208.44 30.12-39.5 66.53-74.21 107.46-102.35 62.44-43.11 135.53-70.69 210.92-79.3m49.18 50.48c-5.7.99-10.96 3.76-15.38 7.43-10.4 8.93-14.14 24.81-8.17 37.28 6.33 15.02 25.16 23.1 40.36 17 15.43-5.24 24.78-23.51 19.74-39.06-4.1-15.43-20.92-25.79-36.55-22.65m-267.96 111.99c-5.33.28-10.59 1.92-15.16 4.68-11.47 7.03-17.88 21.74-14.36 34.86 3.09 14.08 16.78 25.06 31.26 24.61 15.03.41 29.08-11.39 31.54-26.17 2.24-10.33-1.61-21.55-9.14-28.85-6.24-6.33-15.3-9.62-24.14-9.13m-115.96 272c-6.62 1.23-12.84 4.58-17.54 9.4-9.45 9.72-11.72 25.57-5.02 37.42 7.16 13.96 25.48 20.86 39.98 14.62 15.02-5.51 23.99-23.42 19.06-38.71-4.04-15.41-20.86-25.96-36.48-22.73m111.98 272.05c-11.49 1.95-21.48 10.72-24.84 21.88-3.87 11.63-.13 25.16 8.9 33.36 6.15 5.48 14.4 8.7 22.67 8.32 11.16-.25 21.98-6.87 27.12-16.8 4.93-8.83 5.15-20.02.71-29.1-5.82-12.78-20.81-20.33-34.56-17.66m272.06 112.03c-11.76 2.02-21.92 11.07-25.09 22.6-3.87 12.57 1.13 27.25 11.91 34.79 7.86 5.79 18.42 7.67 27.77 4.86 9.61-2.77 17.7-10.24 21.07-19.68 4.97-12.74.36-28.32-10.58-36.46-7.02-5.45-16.35-7.67-25.08-6.11z\" fill=\"#a0a0a0\"/>\n <g fill=\"#c1c1c1\">\n <path d=\"m506.25 96.4c15.63-3.14 32.45 7.22 36.55 22.65 5.04 15.55-4.31 33.82-19.74 39.06-15.2 6.1-34.03-1.98-40.36-17-5.97-12.47-2.23-28.35 8.17-37.28 4.42-3.67 9.68-6.44 15.38-7.43z\"/>\n <path d=\"m122.33 480.39c15.62-3.23 32.44 7.32 36.48 22.73 4.93 15.29-4.04 33.2-19.06 38.71-14.5 6.24-32.82-.66-39.98-14.62-6.7-11.85-4.43-27.7 5.02-37.42 4.7-4.82 10.92-8.17 17.54-9.4z\"/>\n </g>\n <path d=\"m843.72 180.25.11-.11c24.64 25.12 46.96 52.6 65.61 82.47 36.01 57.16 59.38 122.22 67.87 189.25 5.67 44.88 5.27 90.6-2.05 135.27-12.7 80.01-46.94 156.41-97.9 219.36-42.3 52.48-95.87 96.04-156.41 125.76l-.63-.26c-1.01-1.1-2.03-2.16-3.05-3.22-40.75-40.93-81.69-81.68-122.43-122.63-2.49-2.25-4.76-6.77-8.73-4.86-36.15 9.23-74.03 11.65-111.05 7-43.2-5.26-85.17-20.24-121.96-43.48-31.92-20.07-59.98-46.26-82.22-76.71-23.96-32.74-41.2-70.42-50.05-110.03-11.01-48.43-9.88-99.62 3.76-147.4 18.19-65.13 59.56-123.4 114.8-162.35 44.52-31.81 98.03-50.78 152.63-54.3 48.33-3.34 97.5 5.38 141.72 25.2 33.28 14.72 63.52 35.92 89.47 61.37 40.26-40.02 80.2-80.36 120.51-120.33m-351.75 183.97c-21.23 2.85-41.89 10.28-59.88 21.94-23.08 14.45-41.76 35.58-53.9 59.91-14.58 29.2-18.64 63.21-12.5 95.17 3.93 19.85 12.03 38.88 23.56 55.51 7.93 11.52 17.65 21.66 27.65 31.38 57.33 57.41 114.61 114.86 171.99 172.21 49.09-13.07 94.67-38.94 131.05-74.4 45.11-43.34 75.66-101.44 86.31-163.06.24-1.04.22-2.91 1.85-2.6 29.63.04 59.26-.01 88.9.05 19.04-.3 36.87-14.77 40.76-33.46.22-1.21 0-2.32-.67-3.35 1.22-5.71 2.08-11.58 1.38-17.43l-.24.4c-2.05-20.34-20.84-37.12-41.25-37.17-80.64-.07-161.28-.01-241.93-.07-6.44-22.08-18.5-42.33-34.03-59.23-25.8-27.5-62.26-45.01-100.02-46.82-9.68.02-19.44-.54-29.03 1.02m286.37 388.31c-12.64 2.06-23.37 12.59-25.7 25.18-1.48 8.14-.14 17.02 4.73 23.85 5.76 9.2 16.8 14.76 27.61 14.25 8.32.03 16.28-3.95 22.16-9.66 4.87-5.6 8.45-12.67 8.67-20.2.86-11.37-5.06-23.1-14.87-28.96-6.52-4.46-14.89-5.75-22.6-4.46z\" fill=\"#686868\"/>\n <path d=\"m238.29 208.39c8.84-.49 17.9 2.8 24.14 9.13 7.53 7.3 11.38 18.52 9.14 28.85-2.46 14.78-16.51 26.58-31.54 26.17-14.48.45-28.17-10.53-31.26-24.61-3.52-13.12 2.89-27.83 14.36-34.86 4.57-2.76 9.83-4.4 15.16-4.68z\" fill=\"#c3c3c3\"/>\n <path d=\"m491.97 364.22c9.59-1.56 19.35-1 29.03-1.02 37.76 1.81 74.22 19.32 100.02 46.82 15.53 16.9 27.59 37.15 34.03 59.23-47.67-.01-95.35-.01-143.03-.01-12.19-.11-24.23 5.42-32.21 14.61-6.01 6.85-9.74 15.65-10.44 24.74-1.19 14.17 5.36 28.7 16.69 37.28 7.62 5.91 17.28 9 26.92 8.8 126.69-.04 253.39-.06 380.08.03 4.76.04 9.59-.15 14.2-1.48 14.21-3.82 26.02-15.47 29.83-29.7.67 1.03.89 2.14.67 3.35-3.89 18.69-21.72 33.16-40.76 33.46-29.64-.06-59.27-.01-88.9-.05-1.63-.31-1.61 1.56-1.85 2.6-10.65 61.62-41.2 119.72-86.31 163.06-36.38 35.46-81.96 61.33-131.05 74.4-57.38-57.35-114.66-114.8-171.99-172.21-10-9.72-19.72-19.86-27.65-31.38-11.53-16.63-19.63-35.66-23.56-55.51-6.14-31.96-2.08-65.97 12.5-95.17 12.14-24.33 30.82-45.46 53.9-59.91 17.99-11.66 38.65-19.09 59.88-21.94z\" fill=\"#474747\"/>\n <g fill=\"#bfbfbf\">\n <path d=\"m479.81 483.85c7.98-9.19 20.02-14.72 32.21-14.61 47.68 0 95.36 0 143.03.01 80.65.06 161.29 0 241.93.07 20.41.05 39.2 16.83 41.25 37.17-.19.33-.58.97-.78 1.29-3.68-18.51-21.57-33.16-40.47-33.05-124.97.1-249.94.12-374.91.17-7.73.13-15.74-.8-23.15 1.96-9.06 2.84-16.73 9.1-22.27 16.7-3.34 4.55-4.39 10.24-7.28 15.03.7-9.09 4.43-17.89 10.44-24.74z\"/>\n <path d=\"m234.31 752.44c13.75-2.67 28.74 4.88 34.56 17.66 4.44 9.08 4.22 20.27-.71 29.1-5.14 9.93-15.96 16.55-27.12 16.8-8.27.38-16.52-2.84-22.67-8.32-9.03-8.2-12.77-21.73-8.9-33.36 3.36-11.16 13.35-19.93 24.84-21.88z\"/>\n </g>\n <path d=\"m498.92 476.86c7.41-2.76 15.42-1.83 23.15-1.96 124.97-.05 249.94-.07 374.91-.17 18.9-.11 36.79 14.54 40.47 33.05.2-.32.59-.96.78-1.29l.24-.4c.7 5.85-.16 11.72-1.38 17.43-3.81 14.23-15.62 25.88-29.83 29.7-4.61 1.33-9.44 1.52-14.2 1.48-126.69-.09-253.39-.07-380.08-.03-9.64.2-19.3-2.89-26.92-8.8-11.33-8.58-17.88-23.11-16.69-37.28 2.89-4.79 3.94-10.48 7.28-15.03 5.54-7.6 13.21-13.86 22.27-16.7z\" fill=\"#b0b0b0\"/>\n <path d=\"m59.49 636.08c.99 1.52 2.09 3.04 2.52 4.85 3.62 13.71 8.92 26.88 13.88 40.15 3.88 9.31 7.78 18.62 12.25 27.67 3.26 8.08 7.9 15.48 11.9 23.2 17.96 32.76 39.76 63.48 65.17 90.87 15.01 17.34 32.26 32.54 49.72 47.35 22.1 17.72 45.46 33.94 70.33 47.54 59.64 33.1 126.66 52.67 194.71 57.18 81.31 5.74 163.99-10.52 237.3-46.12 1.02 1.06 2.04 2.12 3.05 3.22l.03.61c-42.32 21.03-87.88 35.53-134.56 42.91-56.91 8.9-115.46 7.49-171.82-4.5-67.89-14.35-132.42-44.21-187.42-86.51-63.52-48.63-114.32-113.73-145.86-187.27-8.42-19.87-15.93-40.22-21.2-61.15z\" fill=\"#939393\"/>\n <path d=\"m778.34 752.53c7.71-1.29 16.08 0 22.6 4.46 9.81 5.86 15.73 17.59 14.87 28.96-.22 7.53-3.8 14.6-8.67 20.2-5.88 5.71-13.84 9.69-22.16 9.66-10.81.51-21.85-5.05-27.61-14.25-4.87-6.83-6.21-15.71-4.73-23.85 2.33-12.59 13.06-23.12 25.7-25.18z\" fill=\"#767676\"/>\n <path d=\"m506.37 864.47c8.73-1.56 18.06.66 25.08 6.11 10.94 8.14 15.55 23.72 10.58 36.46-3.37 9.44-11.46 16.91-21.07 19.68-9.35 2.81-19.91.93-27.77-4.86-10.78-7.54-15.78-22.22-11.91-34.79 3.17-11.53 13.33-20.58 25.09-22.6z\" fill=\"#bebebe\"/>\n </svg>\n </a>\n Google Authenticator\n </span>\n </div>\n\n <mat-checkbox \n name=\"default\"\n [(ngModel)]=\"default\"\n [disableRipple]=\"true\">\n Make this the default 2-step verification method\n </mat-checkbox>\n </div>\n \n </div>\n\n <div *ngIf=\"mode === 'code-input'\" class=\"code-input\">\n <div>\n Enter the 6-digit code you see in the App.\n </div>\n\n <app-code-input\n [codeLength]=\"6\"\n (codeChanged)=\"codeChanged($event)\"\n (codeCompleted)=\"codeCompleted()\">\n </app-code-input>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <ng-container *ngIf=\"appType\">\n <button\n *ngIf=\"mode === 'qr-code'\"\n type=\"button\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Next\n </button>\n <button\n *ngIf=\"mode === 'code-input'\"\n type=\"submit\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Verify\n </button> \n </ng-container>\n <button\n type=\"button\"\n mat-button\n [mat-dialog-close]=\"null\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: ["ul{margin:0;padding-left:24px}qr-code{display:flex;justify-content:center;margin:30px}app-code-input{margin-top:10px}.code-input{width:400px}.app-types{text-align:center;padding:0 40px}.app-types .row{display:flex;justify-content:center}.app-types .row span{display:flex;flex-direction:column;text-align:center;max-width:100px}.app-types .row span+span{margin-left:40px}.app-types mat-checkbox{margin-top:20px}.app-types mat-checkbox ::ng-deep .mat-ripple{display:none}\n"], components: [{ type: i3__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4__namespace$2.QrCodeComponent, selector: "qr-code", inputs: ["value", "size", "darkColor", "lightColor", "errorCorrectionLevel", "centerImageSrc", "centerImageSize", "margin"] }, { type: i3__namespace$2.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: CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }, { type: i7__namespace.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: i8__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8__namespace.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9__namespace.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i1__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i10__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9__namespace$1.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i8__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i9__namespace.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i1__namespace.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
454
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: AppComponent, decorators: [{
455
- type: i0.Component,
456
- args: [{
457
- templateUrl: './app.component.html',
458
- styleUrls: ['./app.component.scss'],
459
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
460
- }]
461
- }], ctorParameters: function () {
462
- return [{ type: undefined, decorators: [{
463
- type: i0.Inject,
464
- args: [i1.MAT_DIALOG_DATA]
465
- }] }, { type: i1__namespace.MatDialogRef }, { type: i0__namespace.ChangeDetectorRef }, { type: i2__namespace.FsMessage }];
466
- }, propDecorators: { form: [{
467
- type: i0.ViewChild,
468
- args: [i9.FsFormDirective]
386
+ var AppComponent = /** @class */ (function () {
387
+ function AppComponent(_data, _dialogRef, _cdRef, _message) {
388
+ var _this = this;
389
+ this._data = _data;
390
+ this._dialogRef = _dialogRef;
391
+ this._cdRef = _cdRef;
392
+ this._message = _message;
393
+ this.mode = 'qr-code';
394
+ this.verify = function () {
395
+ return _this.twoFactorManageService.verificationMethodVerify(_this.code)
396
+ .pipe(operators.tap(function () {
397
+ _this._message.success('Created app authenticator verification method');
398
+ _this._dialogRef.close(true);
399
+ }));
400
+ };
401
+ }
402
+ AppComponent.prototype.ngOnInit = function () {
403
+ this.twoFactorManageService = this._data.twoFactorManageService;
404
+ this.accountId = this._data.accountId;
405
+ this.default = !this.twoFactorManageService.hasVerificationMethods;
406
+ };
407
+ AppComponent.prototype.appTypeGoogle = function () {
408
+ this.appTypeSelect('google');
409
+ };
410
+ AppComponent.prototype.appTypeAuthy = function () {
411
+ this.appTypeSelect('authy');
412
+ };
413
+ AppComponent.prototype.appTypeSelect = function (appType) {
414
+ var _this = this;
415
+ this.appType = appType;
416
+ this.twoFactorManageService.verificationMethodCreate({
417
+ type: 'app',
418
+ default: this.default,
419
+ })
420
+ .subscribe(function (response) {
421
+ _this.qrCodeUrl = response.qrCodeUrl;
422
+ _this._cdRef.markForCheck();
423
+ });
424
+ };
425
+ AppComponent.prototype.codeCompleted = function () {
426
+ this.form.triggerSubmit();
427
+ };
428
+ AppComponent.prototype.codeChanged = function (code) {
429
+ this.code = code;
430
+ this.form.dirty();
431
+ };
432
+ AppComponent.prototype.next = function () {
433
+ this.mode = 'code-input';
434
+ };
435
+ return AppComponent;
436
+ }());
437
+ AppComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: AppComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }, { token: i0__namespace.ChangeDetectorRef }, { token: i2__namespace.FsMessage }], target: i0__namespace.ɵɵFactoryTarget.Component });
438
+ AppComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AppComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: i9.FsFormDirective, descendants: true }], ngImport: i0__namespace, template: "<form fsForm [submit]=\"verify\">\n <fs-dialog>\n <h1 mat-dialog-title>Authenticator App Setup</h1>\n <mat-dialog-content>\n\n <div *ngIf=\"mode === 'qr-code'\" class=\"qr-code\">\n <ng-container *ngIf=\"appType\">\n <ol>\n <li>\n <ng-container *ngIf=\"appType === 'authy'\">\n Install the Authy Authenticator App from the <a href=\"https://apps.apple.com/us/app/authy/id494168017\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.authy.authy\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n\n <ng-container *ngIf=\"appType === 'google'\">\n Install the Google Authenticator App from the <a href=\"https://apps.apple.com/us/app/google-authenticator/id388497605\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en_US&gl=US\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n </li>\n <ng-container *ngIf=\"appType === 'authy'\">\n <li>\n Open the Authy app and select <b>Add Account</b>.\n </li>\n <li>\n Select <b>Scan QR Code</b> and scan the QR code below.\n </li>\n </ng-container> \n <ng-container *ngIf=\"appType === 'google'\">\n <li>\n Open the Google Authentictor app and click the <b>Plus icon</b> in the lower right corner.\n </li>\n <li>\n Select <b>Scan a QR code</b> and scan the QR code below.\n </li>\n </ng-container>\n </ol>\n\n <qr-code \n *fsSkeleton=\"qrCodeUrl\"\n [value]=\"qrCodeUrl\"\n size=\"200\"\n errorCorrectionLevel=\"H\"\n [margin]=\"0\">\n </qr-code> \n </ng-container>\n\n <div class=\"app-types\" *ngIf=\"!appType\">\n <p>Select the Authenticator App you prefer</p>\n\n <div class=\"row\">\n <span>\n <a (click)=\"appTypeAuthy()\">\n <svg width=\"50\" height=\"50\" viewBox=\"0 0 256 256\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMidYMid\"><path d=\"M256 127.998C256 198.696 198.694 256 127.997 256 57.304 256 0 198.696 0 127.998 0 57.305 57.304 0 127.997 0 198.694 0 256 57.305 256 127.998z\" fill=\"#EC1C24\"/><path d=\"M117.024 100.89l30.691 30.68c4.43 4.436 11.623 4.436 16.064 0 4.431-4.435 4.441-11.622 0-16.058L133.086 84.82C111.125 62.854 75.631 62.5 53.204 83.704a9.536 9.536 0 0 0-.605.548c-.098.098-.178.202-.275.29-.1.096-.202.182-.297.278-.194.193-.371.396-.54.597-21.215 22.437-20.85 57.932 1.113 79.897L83.292 196c4.44 4.433 11.623 4.433 16.062 0 4.442-4.437 4.442-11.633.011-16.06l-30.693-30.691c-13.398-13.393-13.488-35.129-.278-48.637 13.506-13.21 35.23-13.114 48.63.279zm39.612-40.873c-4.435 4.437-4.435 11.623.012 16.059l30.681 30.693c13.39 13.392 13.477 35.125.268 48.636-13.51 13.2-35.227 13.112-48.623-.282l-30.692-30.689c-4.438-4.437-11.633-4.437-16.066 0-4.443 4.433-4.443 11.642 0 16.065l30.682 30.694c21.968 21.965 57.458 22.322 79.889 1.116.208-.184.404-.355.61-.549.094-.095.182-.192.273-.29.1-.095.197-.183.29-.289.197-.183.365-.384.54-.594 21.215-22.428 20.86-57.911-1.102-79.889l-30.692-30.682c-4.436-4.443-11.638-4.443-16.07.001z\" fill=\"#FFF\"/></svg>\n </a>\n Authy\n </span>\n \n <span>\n <a (click)=\"appTypeGoogle()\"> \n <svg width=\"50\" height=\"50\" viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m457.07 45.92c73.67-8.62 149.41.22 218.93 26.24 62.75 23.47 120.59 60.41 167.72 108.09-40.31 39.97-80.25 80.31-120.51 120.33-25.95-25.45-56.19-46.65-89.47-61.37-44.22-19.82-93.39-28.54-141.72-25.2-54.6 3.52-108.11 22.49-152.63 54.3-55.24 38.95-96.61 97.22-114.8 162.35-13.64 47.78-14.77 98.97-3.76 147.4 8.85 39.61 26.09 77.29 50.05 110.03 22.24 30.45 50.3 56.64 82.22 76.71 36.79 23.24 78.76 38.22 121.96 43.48 37.02 4.65 74.9 2.23 111.05-7 3.97-1.91 6.24 2.61 8.73 4.86 40.74 40.95 81.68 81.7 122.43 122.63-73.31 35.6-155.99 51.86-237.3 46.12-68.05-4.51-135.07-24.08-194.71-57.18-24.87-13.6-48.23-29.82-70.33-47.54-17.46-14.81-34.71-30.01-49.72-47.35-25.41-27.39-47.21-58.11-65.17-90.87-4-7.72-8.64-15.12-11.9-23.2-4.47-9.05-8.37-18.36-12.25-27.67-4.96-13.27-10.26-26.44-13.88-40.15-.43-1.81-1.53-3.33-2.52-4.85-8.3-28.66-12.95-58.33-15.44-88.04-2.62-37.36-1.33-75.05 4.78-112.03 12.18-75.48 43.41-147.74 89.86-208.44 30.12-39.5 66.53-74.21 107.46-102.35 62.44-43.11 135.53-70.69 210.92-79.3m49.18 50.48c-5.7.99-10.96 3.76-15.38 7.43-10.4 8.93-14.14 24.81-8.17 37.28 6.33 15.02 25.16 23.1 40.36 17 15.43-5.24 24.78-23.51 19.74-39.06-4.1-15.43-20.92-25.79-36.55-22.65m-267.96 111.99c-5.33.28-10.59 1.92-15.16 4.68-11.47 7.03-17.88 21.74-14.36 34.86 3.09 14.08 16.78 25.06 31.26 24.61 15.03.41 29.08-11.39 31.54-26.17 2.24-10.33-1.61-21.55-9.14-28.85-6.24-6.33-15.3-9.62-24.14-9.13m-115.96 272c-6.62 1.23-12.84 4.58-17.54 9.4-9.45 9.72-11.72 25.57-5.02 37.42 7.16 13.96 25.48 20.86 39.98 14.62 15.02-5.51 23.99-23.42 19.06-38.71-4.04-15.41-20.86-25.96-36.48-22.73m111.98 272.05c-11.49 1.95-21.48 10.72-24.84 21.88-3.87 11.63-.13 25.16 8.9 33.36 6.15 5.48 14.4 8.7 22.67 8.32 11.16-.25 21.98-6.87 27.12-16.8 4.93-8.83 5.15-20.02.71-29.1-5.82-12.78-20.81-20.33-34.56-17.66m272.06 112.03c-11.76 2.02-21.92 11.07-25.09 22.6-3.87 12.57 1.13 27.25 11.91 34.79 7.86 5.79 18.42 7.67 27.77 4.86 9.61-2.77 17.7-10.24 21.07-19.68 4.97-12.74.36-28.32-10.58-36.46-7.02-5.45-16.35-7.67-25.08-6.11z\" fill=\"#a0a0a0\"/>\n <g fill=\"#c1c1c1\">\n <path d=\"m506.25 96.4c15.63-3.14 32.45 7.22 36.55 22.65 5.04 15.55-4.31 33.82-19.74 39.06-15.2 6.1-34.03-1.98-40.36-17-5.97-12.47-2.23-28.35 8.17-37.28 4.42-3.67 9.68-6.44 15.38-7.43z\"/>\n <path d=\"m122.33 480.39c15.62-3.23 32.44 7.32 36.48 22.73 4.93 15.29-4.04 33.2-19.06 38.71-14.5 6.24-32.82-.66-39.98-14.62-6.7-11.85-4.43-27.7 5.02-37.42 4.7-4.82 10.92-8.17 17.54-9.4z\"/>\n </g>\n <path d=\"m843.72 180.25.11-.11c24.64 25.12 46.96 52.6 65.61 82.47 36.01 57.16 59.38 122.22 67.87 189.25 5.67 44.88 5.27 90.6-2.05 135.27-12.7 80.01-46.94 156.41-97.9 219.36-42.3 52.48-95.87 96.04-156.41 125.76l-.63-.26c-1.01-1.1-2.03-2.16-3.05-3.22-40.75-40.93-81.69-81.68-122.43-122.63-2.49-2.25-4.76-6.77-8.73-4.86-36.15 9.23-74.03 11.65-111.05 7-43.2-5.26-85.17-20.24-121.96-43.48-31.92-20.07-59.98-46.26-82.22-76.71-23.96-32.74-41.2-70.42-50.05-110.03-11.01-48.43-9.88-99.62 3.76-147.4 18.19-65.13 59.56-123.4 114.8-162.35 44.52-31.81 98.03-50.78 152.63-54.3 48.33-3.34 97.5 5.38 141.72 25.2 33.28 14.72 63.52 35.92 89.47 61.37 40.26-40.02 80.2-80.36 120.51-120.33m-351.75 183.97c-21.23 2.85-41.89 10.28-59.88 21.94-23.08 14.45-41.76 35.58-53.9 59.91-14.58 29.2-18.64 63.21-12.5 95.17 3.93 19.85 12.03 38.88 23.56 55.51 7.93 11.52 17.65 21.66 27.65 31.38 57.33 57.41 114.61 114.86 171.99 172.21 49.09-13.07 94.67-38.94 131.05-74.4 45.11-43.34 75.66-101.44 86.31-163.06.24-1.04.22-2.91 1.85-2.6 29.63.04 59.26-.01 88.9.05 19.04-.3 36.87-14.77 40.76-33.46.22-1.21 0-2.32-.67-3.35 1.22-5.71 2.08-11.58 1.38-17.43l-.24.4c-2.05-20.34-20.84-37.12-41.25-37.17-80.64-.07-161.28-.01-241.93-.07-6.44-22.08-18.5-42.33-34.03-59.23-25.8-27.5-62.26-45.01-100.02-46.82-9.68.02-19.44-.54-29.03 1.02m286.37 388.31c-12.64 2.06-23.37 12.59-25.7 25.18-1.48 8.14-.14 17.02 4.73 23.85 5.76 9.2 16.8 14.76 27.61 14.25 8.32.03 16.28-3.95 22.16-9.66 4.87-5.6 8.45-12.67 8.67-20.2.86-11.37-5.06-23.1-14.87-28.96-6.52-4.46-14.89-5.75-22.6-4.46z\" fill=\"#686868\"/>\n <path d=\"m238.29 208.39c8.84-.49 17.9 2.8 24.14 9.13 7.53 7.3 11.38 18.52 9.14 28.85-2.46 14.78-16.51 26.58-31.54 26.17-14.48.45-28.17-10.53-31.26-24.61-3.52-13.12 2.89-27.83 14.36-34.86 4.57-2.76 9.83-4.4 15.16-4.68z\" fill=\"#c3c3c3\"/>\n <path d=\"m491.97 364.22c9.59-1.56 19.35-1 29.03-1.02 37.76 1.81 74.22 19.32 100.02 46.82 15.53 16.9 27.59 37.15 34.03 59.23-47.67-.01-95.35-.01-143.03-.01-12.19-.11-24.23 5.42-32.21 14.61-6.01 6.85-9.74 15.65-10.44 24.74-1.19 14.17 5.36 28.7 16.69 37.28 7.62 5.91 17.28 9 26.92 8.8 126.69-.04 253.39-.06 380.08.03 4.76.04 9.59-.15 14.2-1.48 14.21-3.82 26.02-15.47 29.83-29.7.67 1.03.89 2.14.67 3.35-3.89 18.69-21.72 33.16-40.76 33.46-29.64-.06-59.27-.01-88.9-.05-1.63-.31-1.61 1.56-1.85 2.6-10.65 61.62-41.2 119.72-86.31 163.06-36.38 35.46-81.96 61.33-131.05 74.4-57.38-57.35-114.66-114.8-171.99-172.21-10-9.72-19.72-19.86-27.65-31.38-11.53-16.63-19.63-35.66-23.56-55.51-6.14-31.96-2.08-65.97 12.5-95.17 12.14-24.33 30.82-45.46 53.9-59.91 17.99-11.66 38.65-19.09 59.88-21.94z\" fill=\"#474747\"/>\n <g fill=\"#bfbfbf\">\n <path d=\"m479.81 483.85c7.98-9.19 20.02-14.72 32.21-14.61 47.68 0 95.36 0 143.03.01 80.65.06 161.29 0 241.93.07 20.41.05 39.2 16.83 41.25 37.17-.19.33-.58.97-.78 1.29-3.68-18.51-21.57-33.16-40.47-33.05-124.97.1-249.94.12-374.91.17-7.73.13-15.74-.8-23.15 1.96-9.06 2.84-16.73 9.1-22.27 16.7-3.34 4.55-4.39 10.24-7.28 15.03.7-9.09 4.43-17.89 10.44-24.74z\"/>\n <path d=\"m234.31 752.44c13.75-2.67 28.74 4.88 34.56 17.66 4.44 9.08 4.22 20.27-.71 29.1-5.14 9.93-15.96 16.55-27.12 16.8-8.27.38-16.52-2.84-22.67-8.32-9.03-8.2-12.77-21.73-8.9-33.36 3.36-11.16 13.35-19.93 24.84-21.88z\"/>\n </g>\n <path d=\"m498.92 476.86c7.41-2.76 15.42-1.83 23.15-1.96 124.97-.05 249.94-.07 374.91-.17 18.9-.11 36.79 14.54 40.47 33.05.2-.32.59-.96.78-1.29l.24-.4c.7 5.85-.16 11.72-1.38 17.43-3.81 14.23-15.62 25.88-29.83 29.7-4.61 1.33-9.44 1.52-14.2 1.48-126.69-.09-253.39-.07-380.08-.03-9.64.2-19.3-2.89-26.92-8.8-11.33-8.58-17.88-23.11-16.69-37.28 2.89-4.79 3.94-10.48 7.28-15.03 5.54-7.6 13.21-13.86 22.27-16.7z\" fill=\"#b0b0b0\"/>\n <path d=\"m59.49 636.08c.99 1.52 2.09 3.04 2.52 4.85 3.62 13.71 8.92 26.88 13.88 40.15 3.88 9.31 7.78 18.62 12.25 27.67 3.26 8.08 7.9 15.48 11.9 23.2 17.96 32.76 39.76 63.48 65.17 90.87 15.01 17.34 32.26 32.54 49.72 47.35 22.1 17.72 45.46 33.94 70.33 47.54 59.64 33.1 126.66 52.67 194.71 57.18 81.31 5.74 163.99-10.52 237.3-46.12 1.02 1.06 2.04 2.12 3.05 3.22l.03.61c-42.32 21.03-87.88 35.53-134.56 42.91-56.91 8.9-115.46 7.49-171.82-4.5-67.89-14.35-132.42-44.21-187.42-86.51-63.52-48.63-114.32-113.73-145.86-187.27-8.42-19.87-15.93-40.22-21.2-61.15z\" fill=\"#939393\"/>\n <path d=\"m778.34 752.53c7.71-1.29 16.08 0 22.6 4.46 9.81 5.86 15.73 17.59 14.87 28.96-.22 7.53-3.8 14.6-8.67 20.2-5.88 5.71-13.84 9.69-22.16 9.66-10.81.51-21.85-5.05-27.61-14.25-4.87-6.83-6.21-15.71-4.73-23.85 2.33-12.59 13.06-23.12 25.7-25.18z\" fill=\"#767676\"/>\n <path d=\"m506.37 864.47c8.73-1.56 18.06.66 25.08 6.11 10.94 8.14 15.55 23.72 10.58 36.46-3.37 9.44-11.46 16.91-21.07 19.68-9.35 2.81-19.91.93-27.77-4.86-10.78-7.54-15.78-22.22-11.91-34.79 3.17-11.53 13.33-20.58 25.09-22.6z\" fill=\"#bebebe\"/>\n </svg>\n </a>\n Google Authenticator\n </span>\n </div>\n\n <mat-checkbox \n name=\"default\"\n [(ngModel)]=\"default\"\n [disableRipple]=\"true\">\n Make this the default 2-step verification method\n </mat-checkbox>\n </div>\n \n </div>\n\n <div *ngIf=\"mode === 'code-input'\" class=\"code-input\">\n <div>\n Enter the 6-digit code you see in the App.\n </div>\n\n <app-code-input\n [codeLength]=\"6\"\n (codeChanged)=\"codeChanged($event)\"\n (codeCompleted)=\"codeCompleted()\">\n </app-code-input>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <ng-container *ngIf=\"appType\">\n <button\n *ngIf=\"mode === 'qr-code'\"\n type=\"button\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Next\n </button>\n <button\n *ngIf=\"mode === 'code-input'\"\n type=\"submit\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Verify\n </button> \n </ng-container>\n <button\n type=\"button\"\n mat-button\n [mat-dialog-close]=\"null\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: ["ul{margin:0;padding-left:24px}qr-code{display:flex;justify-content:center;margin:30px}app-code-input{margin-top:10px}.code-input{width:400px}.app-types{text-align:center;padding:0 40px}.app-types .row{display:flex;justify-content:center}.app-types .row span{display:flex;flex-direction:column;text-align:center;max-width:100px}.app-types .row span+span{margin-left:40px}.app-types mat-checkbox{margin-top:20px}.app-types mat-checkbox ::ng-deep .mat-ripple{display:none}\n"], components: [{ type: i3__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4__namespace$2.QrCodeComponent, selector: "qr-code", inputs: ["value", "size", "darkColor", "lightColor", "errorCorrectionLevel", "centerImageSrc", "centerImageSize", "margin"] }, { type: i3__namespace$2.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: CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }, { type: i7__namespace.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: i8__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8__namespace.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9__namespace.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i1__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11__namespace.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i8__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i9__namespace.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i1__namespace.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
439
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: AppComponent, decorators: [{
440
+ type: i0.Component,
441
+ args: [{
442
+ templateUrl: './app.component.html',
443
+ styleUrls: ['./app.component.scss'],
444
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
445
+ }]
446
+ }], ctorParameters: function () {
447
+ return [{ type: undefined, decorators: [{
448
+ type: i0.Inject,
449
+ args: [i1.MAT_DIALOG_DATA]
450
+ }] }, { type: i1__namespace.MatDialogRef }, { type: i0__namespace.ChangeDetectorRef }, { type: i2__namespace.FsMessage }];
451
+ }, propDecorators: { form: [{
452
+ type: i0.ViewChild,
453
+ args: [i9.FsFormDirective]
469
454
  }] } });
470
455
 
471
- var EmailComponent = /** @class */ (function () {
472
- function EmailComponent(_data, _dialogRef, _cdRef, _message) {
473
- var _this = this;
474
- this._data = _data;
475
- this._dialogRef = _dialogRef;
476
- this._cdRef = _cdRef;
477
- this._message = _message;
478
- this.verificationMethod = null;
479
- this.submit = function () {
480
- return rxjs.of(true)
481
- .pipe(operators.switchMap(function () {
482
- return _this.verificationMethod ?
483
- _this.twoFactorManageService.verificationMethodVerify(_this.code)
484
- .pipe(operators.tap(function (verificationMethod) {
485
- _this._message.success('Created email verification method');
486
- _this._dialogRef.close(verificationMethod);
487
- })) :
488
- _this.twoFactorManageService.verificationMethodCreate({
489
- type: 'email',
490
- email: _this.email,
491
- default: _this.default,
492
- })
493
- .pipe(operators.tap(function (verificationMethod) {
494
- _this.verificationMethod = verificationMethod;
495
- _this.form.clear();
496
- _this._cdRef.markForCheck();
497
- }));
498
- }));
499
- };
500
- this.twoFactorManageService = _data.twoFactorManageService;
501
- this.default = !this.twoFactorManageService.hasVerificationMethods;
502
- }
503
- EmailComponent.prototype.resend = function () {
504
- var _this = this;
505
- this.twoFactorManageService.verificationMethodResend()
506
- .subscribe(function () {
507
- _this._message.success('Resent verification code');
508
- });
509
- };
510
- EmailComponent.prototype.codeCompleted = function () {
511
- if (!this.form.submitting) {
512
- this.form.triggerSubmit();
513
- }
514
- };
515
- EmailComponent.prototype.codeChanged = function (code) {
516
- this.code = code;
517
- };
518
- return EmailComponent;
519
- }());
520
- EmailComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: EmailComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }, { token: i0__namespace.ChangeDetectorRef }, { token: i2__namespace.FsMessage }], target: i0__namespace.ɵɵFactoryTarget.Component });
521
- EmailComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: EmailComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: i9.FsFormDirective, descendants: true }], ngImport: i0__namespace, template: "<form fsForm [submit]=\"submit\">\n <fs-dialog>\n <h1 mat-dialog-title>\n Email Setup\n </h1>\n <mat-dialog-content>\n <ng-container *ngIf=\"verificationMethod; else notVerificationMethod\">\n <p>The app just sent you an email 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 email for verifying your account security. </p>\n <mat-form-field>\n <mat-label>Email</mat-label>\n <input\n matInput\n [required]=\"true\"\n [(ngModel)]=\"email\"\n [fsFormEmail]=\"true\"\n name=\"email\">\n </mat-form-field>\n <mat-checkbox \n name=\"default\"\n [(ngModel)]=\"default\"\n [disableRipple]=\"true\">\n Make this the default 2-step verification method\n </mat-checkbox>\n </ng-template>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"submit\">\n Next\n </button>\n <button\n mat-button\n type=\"button\"\n [mat-dialog-close]=\"undefined\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: [":host ::ng-deep mat-checkbox .mat-ripple{display:none}mat-form-field{width:100%}mat-dialog-content{width:400px}p{margin-top:0}app-code-input{margin-bottom:10px;display:block}\n"], components: [{ type: i3__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }, { type: i5__namespace$1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i3__namespace$2.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: i7__namespace.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: i8__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8__namespace.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9__namespace.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i1__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i10__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace$1.MatLabel, selector: "mat-label" }, { type: i11__namespace.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i8__namespace.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i8__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9__namespace.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i9__namespace.FsFormEmailDirective, selector: "[fsFormEmail]", inputs: ["fsFormEmail", "fsFormEmailMessage"] }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i9__namespace.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i1__namespace.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
522
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: EmailComponent, decorators: [{
523
- type: i0.Component,
524
- args: [{
525
- templateUrl: './email.component.html',
526
- styleUrls: ['./email.component.scss'],
527
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
528
- }]
529
- }], ctorParameters: function () {
530
- return [{ type: undefined, decorators: [{
531
- type: i0.Inject,
532
- args: [i1.MAT_DIALOG_DATA]
533
- }] }, { type: i1__namespace.MatDialogRef }, { type: i0__namespace.ChangeDetectorRef }, { type: i2__namespace.FsMessage }];
534
- }, propDecorators: { form: [{
535
- type: i0.ViewChild,
536
- args: [i9.FsFormDirective, { static: false }]
456
+ var EmailComponent = /** @class */ (function () {
457
+ function EmailComponent(_data, _dialogRef, _cdRef, _message) {
458
+ var _this = this;
459
+ this._data = _data;
460
+ this._dialogRef = _dialogRef;
461
+ this._cdRef = _cdRef;
462
+ this._message = _message;
463
+ this.verificationMethod = null;
464
+ this.submit = function () {
465
+ return rxjs.of(true)
466
+ .pipe(operators.switchMap(function () {
467
+ return _this.verificationMethod ?
468
+ _this.twoFactorManageService.verificationMethodVerify(_this.code)
469
+ .pipe(operators.tap(function (verificationMethod) {
470
+ _this._message.success('Created email verification method');
471
+ _this._dialogRef.close(verificationMethod);
472
+ })) :
473
+ _this.twoFactorManageService.verificationMethodCreate({
474
+ type: 'email',
475
+ email: _this.email,
476
+ default: _this.default,
477
+ })
478
+ .pipe(operators.tap(function (verificationMethod) {
479
+ _this.verificationMethod = verificationMethod;
480
+ _this.form.clear();
481
+ _this._cdRef.markForCheck();
482
+ }));
483
+ }));
484
+ };
485
+ this.twoFactorManageService = _data.twoFactorManageService;
486
+ this.default = !this.twoFactorManageService.hasVerificationMethods;
487
+ }
488
+ EmailComponent.prototype.resend = function () {
489
+ var _this = this;
490
+ this.twoFactorManageService.verificationMethodResend()
491
+ .subscribe(function () {
492
+ _this._message.success('Resent verification code');
493
+ });
494
+ };
495
+ EmailComponent.prototype.codeCompleted = function () {
496
+ if (!this.form.submitting) {
497
+ this.form.triggerSubmit();
498
+ }
499
+ };
500
+ EmailComponent.prototype.codeChanged = function (code) {
501
+ this.code = code;
502
+ };
503
+ return EmailComponent;
504
+ }());
505
+ EmailComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: EmailComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }, { token: i0__namespace.ChangeDetectorRef }, { token: i2__namespace.FsMessage }], target: i0__namespace.ɵɵFactoryTarget.Component });
506
+ EmailComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: EmailComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: i9.FsFormDirective, descendants: true }], ngImport: i0__namespace, template: "<form fsForm [submit]=\"submit\">\n <fs-dialog>\n <h1 mat-dialog-title>\n Email Setup\n </h1>\n <mat-dialog-content>\n <ng-container *ngIf=\"verificationMethod; else notVerificationMethod\">\n <p>The app just sent you an email 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 email for verifying your account security. </p>\n <mat-form-field>\n <mat-label>Email</mat-label>\n <input\n matInput\n [required]=\"true\"\n [(ngModel)]=\"email\"\n [fsFormEmail]=\"true\"\n name=\"email\">\n </mat-form-field>\n <mat-checkbox \n name=\"default\"\n [(ngModel)]=\"default\"\n [disableRipple]=\"true\">\n Make this the default 2-step verification method\n </mat-checkbox>\n </ng-template>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"submit\">\n Next\n </button>\n <button\n mat-button\n type=\"button\"\n [mat-dialog-close]=\"undefined\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: [":host ::ng-deep mat-checkbox .mat-ripple{display:none}mat-form-field{width:100%}mat-dialog-content{width:400px}p{margin-top:0}app-code-input{margin-bottom:10px;display:block}\n"], components: [{ type: i3__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }, { type: i5__namespace$1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i3__namespace$2.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: i7__namespace.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: i8__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8__namespace.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9__namespace.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i1__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace$1.MatLabel, selector: "mat-label" }, { type: i11__namespace$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i8__namespace.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i8__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9__namespace.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i9__namespace.FsFormEmailDirective, selector: "[fsFormEmail]", inputs: ["fsFormEmail", "fsFormEmailMessage"] }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i9__namespace.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i1__namespace.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
507
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: EmailComponent, decorators: [{
508
+ type: i0.Component,
509
+ args: [{
510
+ templateUrl: './email.component.html',
511
+ styleUrls: ['./email.component.scss'],
512
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
513
+ }]
514
+ }], ctorParameters: function () {
515
+ return [{ type: undefined, decorators: [{
516
+ type: i0.Inject,
517
+ args: [i1.MAT_DIALOG_DATA]
518
+ }] }, { type: i1__namespace.MatDialogRef }, { type: i0__namespace.ChangeDetectorRef }, { type: i2__namespace.FsMessage }];
519
+ }, propDecorators: { form: [{
520
+ type: i0.ViewChild,
521
+ args: [i9.FsFormDirective, { static: false }]
537
522
  }] } });
538
523
 
539
- var NumberComponent = /** @class */ (function () {
540
- function NumberComponent(_data, _dialogRef, _cdRef, _message) {
541
- var _this = this;
542
- this._data = _data;
543
- this._dialogRef = _dialogRef;
544
- this._cdRef = _cdRef;
545
- this._message = _message;
546
- this.verificationMethod = null;
547
- this.submit = function () {
548
- return rxjs.of(true)
549
- .pipe(operators.switchMap(function () {
550
- return _this.verificationMethod ?
551
- _this.twoFactorManageService.verificationMethodVerify(_this.code)
552
- .pipe(operators.tap(function (verificationMethod) {
553
- _this._message.success('Created text message verification method');
554
- _this._dialogRef.close(verificationMethod);
555
- })) :
556
- _this.twoFactorManageService.verificationMethodCreate({
557
- type: 'sms',
558
- phoneNumber: _this.phone.number,
559
- phoneCode: _this.phone.countryCode,
560
- phoneCountry: _this.phone.isoCode,
561
- default: _this.default,
562
- }).pipe(operators.tap(function (verificationMethod) {
563
- _this.verificationMethod = verificationMethod;
564
- _this.form.clear();
565
- _this._cdRef.markForCheck();
566
- }));
567
- }));
568
- };
569
- this.twoFactorManageService = _data.twoFactorManageService;
570
- this.defaultCountry = _data.defaultCountry;
571
- this.default = !this.twoFactorManageService.hasVerificationMethods;
572
- }
573
- NumberComponent.prototype.resend = function () {
574
- var _this = this;
575
- this.twoFactorManageService.verificationMethodResend()
576
- .subscribe(function () {
577
- _this._message.success('Resent verification code');
578
- });
579
- };
580
- NumberComponent.prototype.codeCompleted = function () {
581
- if (!this.form.submitting) {
582
- this.form.triggerSubmit();
583
- }
584
- };
585
- NumberComponent.prototype.codeChanged = function (code) {
586
- this.code = code;
587
- };
588
- return NumberComponent;
589
- }());
590
- NumberComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: NumberComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }, { token: i0__namespace.ChangeDetectorRef }, { token: i2__namespace.FsMessage }], target: i0__namespace.ɵɵFactoryTarget.Component });
591
- NumberComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NumberComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: i9.FsFormDirective, descendants: true }], ngImport: i0__namespace, template: "<form fsForm [submit]=\"submit\" autocomplete=\"off\">\n <fs-dialog>\n <h1 mat-dialog-title>\n Text Message Setup\n </h1>\n <mat-dialog-content>\n <ng-container *ngIf=\"verificationMethod; else notVerificationMethod\">\n <p>The app just sent you a text message with a verification code.</p>\n\n <app-code-input \n [code]=\"code\"\n (codeChanged)=\"codeChanged($event)\"\n (codeCompleted)=\"codeCompleted()\">\n </app-code-input> \n \n <div>Did't get the code? <a (click)=\"resend()\">Resend Code</a></div>\n </ng-container>\n\n <ng-template #notVerificationMethod>\n <p>The app will only use this number for verifying your account security. Message and data rates may apply by your cell phone provider.</p>\n <mat-form-field>\n <mat-label>Phone number</mat-label>\n <fs-phone-field\n [(ngModel)]=\"phone\"\n [country]=\"defaultCountry\"\n name=\"phone\"\n autocomplete=\"off\"\n [required]=\"true\">\n </fs-phone-field>\n </mat-form-field>\n <mat-checkbox \n name=\"default\"\n [(ngModel)]=\"default\"\n [disableRipple]=\"true\">\n Make this the default 2-step verification method\n </mat-checkbox>\n </ng-template>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"submit\">\n Next\n </button>\n <button\n mat-button\n type=\"button\"\n [mat-dialog-close]=\"undefined\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: [":host ::ng-deep mat-checkbox .mat-ripple{display:none}app-code-input{margin-bottom:10px;display:block}mat-form-field{width:100%}mat-dialog-content{width:400px}p{margin-top:0}\n"], components: [{ type: i3__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }, { type: i5__namespace$1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i6__namespace.FsPhoneFieldComponent, selector: "fs-phone-field", inputs: ["allowNumberExt", "placeholder", "required", "disabled", "mode", "country"] }, { type: i3__namespace$2.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: i7__namespace.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: i8__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8__namespace.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9__namespace.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i1__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i10__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace$1.MatLabel, selector: "mat-label" }, { type: i8__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9__namespace.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i8__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i9__namespace.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i1__namespace.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
592
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: NumberComponent, decorators: [{
593
- type: i0.Component,
594
- args: [{
595
- templateUrl: './number.component.html',
596
- styleUrls: ['./number.component.scss'],
597
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
598
- }]
599
- }], ctorParameters: function () {
600
- return [{ type: undefined, decorators: [{
601
- type: i0.Inject,
602
- args: [i1.MAT_DIALOG_DATA]
603
- }] }, { type: i1__namespace.MatDialogRef }, { type: i0__namespace.ChangeDetectorRef }, { type: i2__namespace.FsMessage }];
604
- }, propDecorators: { form: [{
605
- type: i0.ViewChild,
606
- args: [i9.FsFormDirective, { static: false }]
524
+ var NumberComponent = /** @class */ (function () {
525
+ function NumberComponent(_data, _dialogRef, _cdRef, _message) {
526
+ var _this = this;
527
+ this._data = _data;
528
+ this._dialogRef = _dialogRef;
529
+ this._cdRef = _cdRef;
530
+ this._message = _message;
531
+ this.verificationMethod = null;
532
+ this.submit = function () {
533
+ return rxjs.of(true)
534
+ .pipe(operators.switchMap(function () {
535
+ return _this.verificationMethod ?
536
+ _this.twoFactorManageService.verificationMethodVerify(_this.code)
537
+ .pipe(operators.tap(function (verificationMethod) {
538
+ _this._message.success('Created text message verification method');
539
+ _this._dialogRef.close(verificationMethod);
540
+ })) :
541
+ _this.twoFactorManageService.verificationMethodCreate({
542
+ type: 'sms',
543
+ phoneNumber: _this.phone.number,
544
+ phoneCode: _this.phone.countryCode,
545
+ phoneCountry: _this.phone.isoCode,
546
+ default: _this.default,
547
+ }).pipe(operators.tap(function (verificationMethod) {
548
+ _this.verificationMethod = verificationMethod;
549
+ _this.form.clear();
550
+ _this._cdRef.markForCheck();
551
+ }));
552
+ }));
553
+ };
554
+ this.twoFactorManageService = _data.twoFactorManageService;
555
+ this.defaultCountry = _data.defaultCountry;
556
+ this.default = !this.twoFactorManageService.hasVerificationMethods;
557
+ }
558
+ NumberComponent.prototype.resend = function () {
559
+ var _this = this;
560
+ this.twoFactorManageService.verificationMethodResend()
561
+ .subscribe(function () {
562
+ _this._message.success('Resent verification code');
563
+ });
564
+ };
565
+ NumberComponent.prototype.codeCompleted = function () {
566
+ if (!this.form.submitting) {
567
+ this.form.triggerSubmit();
568
+ }
569
+ };
570
+ NumberComponent.prototype.codeChanged = function (code) {
571
+ this.code = code;
572
+ };
573
+ return NumberComponent;
574
+ }());
575
+ NumberComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: NumberComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }, { token: i0__namespace.ChangeDetectorRef }, { token: i2__namespace.FsMessage }], target: i0__namespace.ɵɵFactoryTarget.Component });
576
+ NumberComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NumberComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: i9.FsFormDirective, descendants: true }], ngImport: i0__namespace, template: "<form fsForm [submit]=\"submit\" autocomplete=\"off\">\n <fs-dialog>\n <h1 mat-dialog-title>\n Text Message Setup\n </h1>\n <mat-dialog-content>\n <ng-container *ngIf=\"verificationMethod; else notVerificationMethod\">\n <p>The app just sent you a text message with a verification code.</p>\n\n <app-code-input \n [code]=\"code\"\n (codeChanged)=\"codeChanged($event)\"\n (codeCompleted)=\"codeCompleted()\">\n </app-code-input> \n \n <div>Did't get the code? <a (click)=\"resend()\">Resend Code</a></div>\n </ng-container>\n\n <ng-template #notVerificationMethod>\n <p>The app will only use this number for verifying your account security. Message and data rates may apply by your cell phone provider.</p>\n <mat-form-field>\n <mat-label>Phone number</mat-label>\n <fs-phone-field\n [(ngModel)]=\"phone\"\n [country]=\"defaultCountry\"\n name=\"phone\"\n autocomplete=\"off\"\n [required]=\"true\">\n </fs-phone-field>\n </mat-form-field>\n <mat-checkbox \n name=\"default\"\n [(ngModel)]=\"default\"\n [disableRipple]=\"true\">\n Make this the default 2-step verification method\n </mat-checkbox>\n </ng-template>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"submit\">\n Next\n </button>\n <button\n mat-button\n type=\"button\"\n [mat-dialog-close]=\"undefined\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: [":host ::ng-deep mat-checkbox .mat-ripple{display:none}app-code-input{margin-bottom:10px;display:block}mat-form-field{width:100%}mat-dialog-content{width:400px}p{margin-top:0}\n"], components: [{ type: i3__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }, { type: i5__namespace$1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i6__namespace.FsPhoneFieldComponent, selector: "fs-phone-field", inputs: ["allowNumberExt", "placeholder", "required", "disabled", "mode", "country"] }, { type: i3__namespace$2.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: i7__namespace.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: i8__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8__namespace.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9__namespace.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i1__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace$1.MatLabel, selector: "mat-label" }, { type: i8__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9__namespace.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i8__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i9__namespace.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i1__namespace.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
577
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: NumberComponent, decorators: [{
578
+ type: i0.Component,
579
+ args: [{
580
+ templateUrl: './number.component.html',
581
+ styleUrls: ['./number.component.scss'],
582
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
583
+ }]
584
+ }], ctorParameters: function () {
585
+ return [{ type: undefined, decorators: [{
586
+ type: i0.Inject,
587
+ args: [i1.MAT_DIALOG_DATA]
588
+ }] }, { type: i1__namespace.MatDialogRef }, { type: i0__namespace.ChangeDetectorRef }, { type: i2__namespace.FsMessage }];
589
+ }, propDecorators: { form: [{
590
+ type: i0.ViewChild,
591
+ args: [i9.FsFormDirective, { static: false }]
607
592
  }] } });
608
593
 
609
- var TwoFactorManageService = /** @class */ (function () {
610
- function TwoFactorManageService(_dialog) {
611
- this._dialog = _dialog;
612
- this._destroy$ = new rxjs.Subject();
613
- this._verificationMethods$ = new rxjs.BehaviorSubject([]);
614
- }
615
- Object.defineProperty(TwoFactorManageService.prototype, "verificationMethods$", {
616
- get: function () {
617
- return this._verificationMethods$
618
- .pipe(operators.takeUntil(this._destroy$));
619
- },
620
- enumerable: false,
621
- configurable: true
622
- });
623
- Object.defineProperty(TwoFactorManageService.prototype, "verificationMethods", {
624
- get: function () {
625
- return this._verificationMethods$.getValue();
626
- },
627
- enumerable: false,
628
- configurable: true
629
- });
630
- Object.defineProperty(TwoFactorManageService.prototype, "hasVerificationMethods", {
631
- get: function () {
632
- return !!this._verificationMethods$.getValue().length;
633
- },
634
- enumerable: false,
635
- configurable: true
636
- });
637
- Object.defineProperty(TwoFactorManageService.prototype, "emailVerificationMethods", {
638
- get: function () {
639
- return this.getVerificationMethods(exports.FsVerificationMethodType.Email);
640
- },
641
- enumerable: false,
642
- configurable: true
643
- });
644
- Object.defineProperty(TwoFactorManageService.prototype, "smsVerificationMethods", {
645
- get: function () {
646
- return this.getVerificationMethods(exports.FsVerificationMethodType.Sms);
647
- },
648
- enumerable: false,
649
- configurable: true
650
- });
651
- Object.defineProperty(TwoFactorManageService.prototype, "appVerificationMethods", {
652
- get: function () {
653
- return this.getVerificationMethods(exports.FsVerificationMethodType.App);
654
- },
655
- enumerable: false,
656
- configurable: true
657
- });
658
- TwoFactorManageService.prototype.getVerificationMethods = function (type) {
659
- return this.verificationMethods
660
- .filter(function (verificationMethod) {
661
- return verificationMethod.type === type;
662
- });
663
- };
664
- TwoFactorManageService.prototype.hasVerificationMethod = function (type) {
665
- return this.verificationMethods
666
- .some(function (verificationMethod) {
667
- return verificationMethod.type === type;
668
- });
669
- };
670
- TwoFactorManageService.prototype.registerVerificationMethodResend = function (value) {
671
- this._verificationMethodResend = value;
672
- };
673
- TwoFactorManageService.prototype.registerVerificationMethodFetch = function (value) {
674
- this._verificationMethodFetch = value;
675
- };
676
- TwoFactorManageService.prototype.registerVerificationMethodDelete = function (value) {
677
- this._verificationMethodDelete = value;
678
- };
679
- TwoFactorManageService.prototype.registerVerificationMethodCreate = function (value) {
680
- this._verificationMethodCreate = value;
681
- };
682
- TwoFactorManageService.prototype.registerVerificationMethodVerify = function (value) {
683
- this._verificationMethodVerify = value;
684
- };
685
- TwoFactorManageService.prototype.registerAccountVerify = function (value) {
686
- this._accountVerify = value;
687
- };
688
- TwoFactorManageService.prototype.verificationMethodDelete = function (verificationMethod) {
689
- var _this = this;
690
- return this._verificationMethodDelete(verificationMethod)
691
- .pipe(operators.tap(function () {
692
- _this.verificationMethodFetch();
693
- }));
694
- };
695
- TwoFactorManageService.prototype.verificationMethodVerify = function (verificationMethod) {
696
- var _this = this;
697
- return this._verificationMethodVerify(verificationMethod)
698
- .pipe(operators.tap(function () {
699
- _this.verificationMethodFetch();
700
- }));
701
- };
702
- TwoFactorManageService.prototype.verificationMethodCreate = function (verificationMethod) {
703
- return this._verificationMethodCreate(verificationMethod);
704
- };
705
- TwoFactorManageService.prototype.verificationMethodResend = function () {
706
- return this._verificationMethodResend();
707
- };
708
- TwoFactorManageService.prototype.verificationMethodFetch = function () {
709
- var _this = this;
710
- this._verificationMethodFetch()
711
- .subscribe(function (verificationMethods) {
712
- _this._verificationMethods$.next(verificationMethods);
713
- });
714
- };
715
- TwoFactorManageService.prototype.accountVerify = function () {
716
- return this._accountVerify();
717
- };
718
- TwoFactorManageService.prototype.ngOnDestroy = function () {
719
- this._destroy$.next();
720
- this._destroy$.complete();
721
- };
722
- TwoFactorManageService.prototype.addSms = function (defaultCountry) {
723
- var _this = this;
724
- return this.accountVerify()
725
- .pipe(operators.switchMap(function () { return _this._dialog.open(NumberComponent, {
726
- data: {
727
- defaultCountry: defaultCountry,
728
- twoFactorManageService: _this,
729
- },
730
- })
731
- .afterClosed(); }), operators.tap(function () {
732
- _this.verificationMethodFetch();
733
- }), operators.takeUntil(this._destroy$));
734
- };
735
- TwoFactorManageService.prototype.addEmail = function () {
736
- var _this = this;
737
- return this.accountVerify()
738
- .pipe(operators.switchMap(function () { return _this._dialog.open(EmailComponent, {
739
- data: { twoFactorManageService: _this },
740
- })
741
- .afterClosed(); }), operators.tap(function () {
742
- _this.verificationMethodFetch();
743
- }), operators.takeUntil(this._destroy$));
744
- };
745
- TwoFactorManageService.prototype.addApp = function () {
746
- var _this = this;
747
- return this.accountVerify()
748
- .pipe(operators.switchMap(function () { return _this._dialog.open(AppComponent, {
749
- data: { twoFactorManageService: _this },
750
- })
751
- .afterClosed(); }), operators.tap(function () {
752
- _this.verificationMethodFetch();
753
- }), operators.takeUntil(this._destroy$));
754
- };
755
- return TwoFactorManageService;
756
- }());
757
- TwoFactorManageService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TwoFactorManageService, deps: [{ token: i1__namespace.MatDialog }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
758
- TwoFactorManageService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TwoFactorManageService });
759
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TwoFactorManageService, decorators: [{
760
- type: i0.Injectable
594
+ var TwoFactorManageService = /** @class */ (function () {
595
+ function TwoFactorManageService(_dialog) {
596
+ this._dialog = _dialog;
597
+ this._destroy$ = new rxjs.Subject();
598
+ this._verificationMethods$ = new rxjs.BehaviorSubject([]);
599
+ }
600
+ Object.defineProperty(TwoFactorManageService.prototype, "verificationMethods$", {
601
+ get: function () {
602
+ return this._verificationMethods$
603
+ .pipe(operators.takeUntil(this._destroy$));
604
+ },
605
+ enumerable: false,
606
+ configurable: true
607
+ });
608
+ Object.defineProperty(TwoFactorManageService.prototype, "verificationMethods", {
609
+ get: function () {
610
+ return this._verificationMethods$.getValue();
611
+ },
612
+ enumerable: false,
613
+ configurable: true
614
+ });
615
+ Object.defineProperty(TwoFactorManageService.prototype, "hasVerificationMethods", {
616
+ get: function () {
617
+ return !!this._verificationMethods$.getValue().length;
618
+ },
619
+ enumerable: false,
620
+ configurable: true
621
+ });
622
+ Object.defineProperty(TwoFactorManageService.prototype, "emailVerificationMethods", {
623
+ get: function () {
624
+ return this.getVerificationMethods(exports.FsVerificationMethodType.Email);
625
+ },
626
+ enumerable: false,
627
+ configurable: true
628
+ });
629
+ Object.defineProperty(TwoFactorManageService.prototype, "smsVerificationMethods", {
630
+ get: function () {
631
+ return this.getVerificationMethods(exports.FsVerificationMethodType.Sms);
632
+ },
633
+ enumerable: false,
634
+ configurable: true
635
+ });
636
+ Object.defineProperty(TwoFactorManageService.prototype, "appVerificationMethods", {
637
+ get: function () {
638
+ return this.getVerificationMethods(exports.FsVerificationMethodType.App);
639
+ },
640
+ enumerable: false,
641
+ configurable: true
642
+ });
643
+ TwoFactorManageService.prototype.getVerificationMethods = function (type) {
644
+ return this.verificationMethods
645
+ .filter(function (verificationMethod) {
646
+ return verificationMethod.type === type;
647
+ });
648
+ };
649
+ TwoFactorManageService.prototype.hasVerificationMethod = function (type) {
650
+ return this.verificationMethods
651
+ .some(function (verificationMethod) {
652
+ return verificationMethod.type === type;
653
+ });
654
+ };
655
+ TwoFactorManageService.prototype.registerVerificationMethodResend = function (value) {
656
+ this._verificationMethodResend = value;
657
+ };
658
+ TwoFactorManageService.prototype.registerVerificationMethodFetch = function (value) {
659
+ this._verificationMethodFetch = value;
660
+ };
661
+ TwoFactorManageService.prototype.registerVerificationMethodDelete = function (value) {
662
+ this._verificationMethodDelete = value;
663
+ };
664
+ TwoFactorManageService.prototype.registerVerificationMethodCreate = function (value) {
665
+ this._verificationMethodCreate = value;
666
+ };
667
+ TwoFactorManageService.prototype.registerVerificationMethodVerify = function (value) {
668
+ this._verificationMethodVerify = value;
669
+ };
670
+ TwoFactorManageService.prototype.registerAccountVerify = function (value) {
671
+ this._accountVerify = value;
672
+ };
673
+ TwoFactorManageService.prototype.verificationMethodDelete = function (verificationMethod) {
674
+ var _this = this;
675
+ return this._verificationMethodDelete(verificationMethod)
676
+ .pipe(operators.tap(function () {
677
+ _this.verificationMethodFetch();
678
+ }));
679
+ };
680
+ TwoFactorManageService.prototype.verificationMethodVerify = function (verificationMethod) {
681
+ var _this = this;
682
+ return this._verificationMethodVerify(verificationMethod)
683
+ .pipe(operators.tap(function () {
684
+ _this.verificationMethodFetch();
685
+ }));
686
+ };
687
+ TwoFactorManageService.prototype.verificationMethodCreate = function (verificationMethod) {
688
+ return this._verificationMethodCreate(verificationMethod);
689
+ };
690
+ TwoFactorManageService.prototype.verificationMethodResend = function () {
691
+ return this._verificationMethodResend();
692
+ };
693
+ TwoFactorManageService.prototype.verificationMethodFetch = function () {
694
+ var _this = this;
695
+ this._verificationMethodFetch()
696
+ .subscribe(function (verificationMethods) {
697
+ _this._verificationMethods$.next(verificationMethods);
698
+ });
699
+ };
700
+ TwoFactorManageService.prototype.accountVerify = function () {
701
+ return this._accountVerify();
702
+ };
703
+ TwoFactorManageService.prototype.ngOnDestroy = function () {
704
+ this._destroy$.next();
705
+ this._destroy$.complete();
706
+ };
707
+ TwoFactorManageService.prototype.addSms = function (defaultCountry) {
708
+ var _this = this;
709
+ return this.accountVerify()
710
+ .pipe(operators.switchMap(function () { return _this._dialog.open(NumberComponent, {
711
+ data: {
712
+ defaultCountry: defaultCountry,
713
+ twoFactorManageService: _this,
714
+ },
715
+ })
716
+ .afterClosed(); }), operators.tap(function () {
717
+ _this.verificationMethodFetch();
718
+ }), operators.takeUntil(this._destroy$));
719
+ };
720
+ TwoFactorManageService.prototype.addEmail = function () {
721
+ var _this = this;
722
+ return this.accountVerify()
723
+ .pipe(operators.switchMap(function () { return _this._dialog.open(EmailComponent, {
724
+ data: { twoFactorManageService: _this },
725
+ })
726
+ .afterClosed(); }), operators.tap(function () {
727
+ _this.verificationMethodFetch();
728
+ }), operators.takeUntil(this._destroy$));
729
+ };
730
+ TwoFactorManageService.prototype.addApp = function () {
731
+ var _this = this;
732
+ return this.accountVerify()
733
+ .pipe(operators.switchMap(function () { return _this._dialog.open(AppComponent, {
734
+ data: { twoFactorManageService: _this },
735
+ })
736
+ .afterClosed(); }), operators.tap(function () {
737
+ _this.verificationMethodFetch();
738
+ }), operators.takeUntil(this._destroy$));
739
+ };
740
+ return TwoFactorManageService;
741
+ }());
742
+ TwoFactorManageService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TwoFactorManageService, deps: [{ token: i1__namespace.MatDialog }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
743
+ TwoFactorManageService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TwoFactorManageService });
744
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TwoFactorManageService, decorators: [{
745
+ type: i0.Injectable
761
746
  }], ctorParameters: function () { return [{ type: i1__namespace.MatDialog }]; } });
762
747
 
763
- var DefaultedComponent = /** @class */ (function () {
764
- function DefaultedComponent() {
765
- }
766
- return DefaultedComponent;
767
- }());
768
- DefaultedComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: DefaultedComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
769
- DefaultedComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DefaultedComponent, selector: "app-defaulted", ngImport: i0__namespace, template: "<span>Default</span>", styles: ["span{font-size:75%;background-color:#02a7f0;padding:2px 4px;border-radius:4px;color:#fff}:host{display:flex}\n"], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
770
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: DefaultedComponent, decorators: [{
771
- type: i0.Component,
772
- args: [{
773
- selector: 'app-defaulted',
774
- templateUrl: './defaulted.component.html',
775
- styleUrls: ['./defaulted.component.scss'],
776
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
777
- }]
748
+ var DefaultedComponent = /** @class */ (function () {
749
+ function DefaultedComponent() {
750
+ }
751
+ return DefaultedComponent;
752
+ }());
753
+ DefaultedComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: DefaultedComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
754
+ DefaultedComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DefaultedComponent, selector: "app-defaulted", ngImport: i0__namespace, template: "<span>Default</span>", styles: ["span{font-size:75%;background-color:#02a7f0;padding:2px 4px;border-radius:4px;color:#fff}:host{display:flex}\n"], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
755
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: DefaultedComponent, decorators: [{
756
+ type: i0.Component,
757
+ args: [{
758
+ selector: 'app-defaulted',
759
+ templateUrl: './defaulted.component.html',
760
+ styleUrls: ['./defaulted.component.scss'],
761
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
762
+ }]
778
763
  }] });
779
764
 
780
- var VerificationMethodsComponent = /** @class */ (function () {
781
- function VerificationMethodsComponent(_prompt) {
782
- this._prompt = _prompt;
783
- this.deleted = new i0.EventEmitter();
784
- }
785
- VerificationMethodsComponent.prototype.ngOnInit = function () {
786
- var _this = this;
787
- this.listConfig = {
788
- rowActions: [
789
- {
790
- click: function (verificationMethod) {
791
- _this._prompt.confirm({
792
- title: 'Confirm',
793
- template: 'Would you like to delete this verification method?',
794
- })
795
- .pipe(operators.switchMap(function () { return _this.twoFactorManageService
796
- .verificationMethodDelete(verificationMethod); }))
797
- .subscribe(function () {
798
- _this.deleted.emit(verificationMethod);
799
- });
800
- },
801
- label: 'Delete',
802
- },
803
- ],
804
- fetch: function () {
805
- return _this.twoFactorManageService.verificationMethods$
806
- .pipe(operators.map(function (verificationMethods) { return ({
807
- data: verificationMethods.filter(function (verificationMethod) {
808
- return verificationMethod.type === _this.type;
809
- }),
810
- }); }));
811
- },
812
- };
813
- };
814
- return VerificationMethodsComponent;
815
- }());
816
- VerificationMethodsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: VerificationMethodsComponent, deps: [{ token: i1__namespace$2.FsPrompt }], target: i0__namespace.ɵɵFactoryTarget.Component });
817
- VerificationMethodsComponent.ɵcmp = i0__namespace.ɵɵ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__namespace, 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__namespace$1.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i3__namespace$3.FsCountryComponent, selector: "fs-country", inputs: ["code", "showIcon", "showName", "region", "width"] }, { type: DefaultedComponent, selector: "app-defaulted" }], directives: [{ type: i2__namespace$1.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i10__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fsPhone": i6__namespace.FsPhonePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
818
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: VerificationMethodsComponent, decorators: [{
819
- type: i0.Component,
820
- args: [{
821
- selector: 'app-verification-methods',
822
- templateUrl: './verification-methods.component.html',
823
- styleUrls: ['./verification-methods.component.scss'],
824
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
825
- }]
826
- }], ctorParameters: function () { return [{ type: i1__namespace$2.FsPrompt }]; }, propDecorators: { twoFactorManageService: [{
827
- type: i0.Input
828
- }], type: [{
829
- type: i0.Input
830
- }], deleted: [{
831
- type: i0.Output
765
+ var VerificationMethodsComponent = /** @class */ (function () {
766
+ function VerificationMethodsComponent(_prompt) {
767
+ this._prompt = _prompt;
768
+ this.deleted = new i0.EventEmitter();
769
+ }
770
+ VerificationMethodsComponent.prototype.ngOnInit = function () {
771
+ var _this = this;
772
+ this.listConfig = {
773
+ rowActions: [
774
+ {
775
+ click: function (verificationMethod) {
776
+ _this._prompt.confirm({
777
+ title: 'Confirm',
778
+ template: 'Would you like to delete this verification method?',
779
+ })
780
+ .pipe(operators.switchMap(function () { return _this.twoFactorManageService
781
+ .verificationMethodDelete(verificationMethod); }))
782
+ .subscribe(function () {
783
+ _this.deleted.emit(verificationMethod);
784
+ });
785
+ },
786
+ label: 'Delete',
787
+ },
788
+ ],
789
+ fetch: function () {
790
+ return _this.twoFactorManageService.verificationMethods$
791
+ .pipe(operators.map(function (verificationMethods) { return ({
792
+ data: verificationMethods.filter(function (verificationMethod) {
793
+ return verificationMethod.type === _this.type;
794
+ }),
795
+ }); }));
796
+ },
797
+ };
798
+ };
799
+ return VerificationMethodsComponent;
800
+ }());
801
+ VerificationMethodsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: VerificationMethodsComponent, deps: [{ token: i1__namespace$2.FsPrompt }], target: i0__namespace.ɵɵFactoryTarget.Component });
802
+ VerificationMethodsComponent.ɵcmp = i0__namespace.ɵɵ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__namespace, 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__namespace$1.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i3__namespace$3.FsCountryComponent, selector: "fs-country", inputs: ["code", "showIcon", "showName", "region", "width"] }, { type: DefaultedComponent, selector: "app-defaulted" }], directives: [{ type: i2__namespace$1.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i9__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fsPhone": i6__namespace.FsPhonePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
803
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: VerificationMethodsComponent, decorators: [{
804
+ type: i0.Component,
805
+ args: [{
806
+ selector: 'app-verification-methods',
807
+ templateUrl: './verification-methods.component.html',
808
+ styleUrls: ['./verification-methods.component.scss'],
809
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
810
+ }]
811
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.FsPrompt }]; }, propDecorators: { twoFactorManageService: [{
812
+ type: i0.Input
813
+ }], type: [{
814
+ type: i0.Input
815
+ }], deleted: [{
816
+ type: i0.Output
832
817
  }] } });
833
818
 
834
- var NumbersComponent = /** @class */ (function () {
835
- function NumbersComponent(_data, _dialogRef, _message) {
836
- this._data = _data;
837
- this._dialogRef = _dialogRef;
838
- this._message = _message;
839
- this.FsVerificationMethodType = exports.FsVerificationMethodType;
840
- this.twoFactorManageService = _data.twoFactorManageService;
841
- this.defaultCountry = _data.defaultCountry;
842
- }
843
- NumbersComponent.prototype.add = function () {
844
- this.twoFactorManageService.addSms(this.defaultCountry)
845
- .subscribe();
846
- };
847
- NumbersComponent.prototype.deleted = function () {
848
- this._message.success('Deleted text message verification method');
849
- if (!this.twoFactorManageService.hasVerificationMethod(exports.FsVerificationMethodType.Sms)) {
850
- this._dialogRef.close();
851
- }
852
- };
853
- return NumbersComponent;
854
- }());
855
- NumbersComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: NumbersComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }, { token: i2__namespace.FsMessage }], target: i0__namespace.ɵɵFactoryTarget.Component });
856
- NumbersComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NumbersComponent, selector: "ng-component", ngImport: i0__namespace, 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__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: VerificationMethodsComponent, selector: "app-verification-methods", inputs: ["twoFactorManageService", "type"], outputs: ["deleted"] }, { type: i7__namespace.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__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
857
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: NumbersComponent, decorators: [{
858
- type: i0.Component,
859
- args: [{
860
- templateUrl: './numbers.component.html',
861
- styleUrls: ['./numbers.component.scss'],
862
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
863
- }]
864
- }], ctorParameters: function () {
865
- return [{ type: undefined, decorators: [{
866
- type: i0.Inject,
867
- args: [i1.MAT_DIALOG_DATA]
868
- }] }, { type: i1__namespace.MatDialogRef }, { type: i2__namespace.FsMessage }];
819
+ var NumbersComponent = /** @class */ (function () {
820
+ function NumbersComponent(_data, _dialogRef, _message) {
821
+ this._data = _data;
822
+ this._dialogRef = _dialogRef;
823
+ this._message = _message;
824
+ this.FsVerificationMethodType = exports.FsVerificationMethodType;
825
+ this.twoFactorManageService = _data.twoFactorManageService;
826
+ this.defaultCountry = _data.defaultCountry;
827
+ }
828
+ NumbersComponent.prototype.add = function () {
829
+ this.twoFactorManageService.addSms(this.defaultCountry)
830
+ .subscribe();
831
+ };
832
+ NumbersComponent.prototype.deleted = function () {
833
+ this._message.success('Deleted text message verification method');
834
+ if (!this.twoFactorManageService.hasVerificationMethod(exports.FsVerificationMethodType.Sms)) {
835
+ this._dialogRef.close();
836
+ }
837
+ };
838
+ return NumbersComponent;
839
+ }());
840
+ NumbersComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: NumbersComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }, { token: i2__namespace.FsMessage }], target: i0__namespace.ɵɵFactoryTarget.Component });
841
+ NumbersComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NumbersComponent, selector: "ng-component", ngImport: i0__namespace, 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__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: VerificationMethodsComponent, selector: "app-verification-methods", inputs: ["twoFactorManageService", "type"], outputs: ["deleted"] }, { type: i7__namespace.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__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
842
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: NumbersComponent, decorators: [{
843
+ type: i0.Component,
844
+ args: [{
845
+ templateUrl: './numbers.component.html',
846
+ styleUrls: ['./numbers.component.scss'],
847
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
848
+ }]
849
+ }], ctorParameters: function () {
850
+ return [{ type: undefined, decorators: [{
851
+ type: i0.Inject,
852
+ args: [i1.MAT_DIALOG_DATA]
853
+ }] }, { type: i1__namespace.MatDialogRef }, { type: i2__namespace.FsMessage }];
869
854
  } });
870
855
 
871
- var EmailsComponent = /** @class */ (function () {
872
- function EmailsComponent(_data, _dialogRef, _message) {
873
- this._data = _data;
874
- this._dialogRef = _dialogRef;
875
- this._message = _message;
876
- this.FsVerificationMethodType = exports.FsVerificationMethodType;
877
- this.twoFactorManageService = _data.twoFactorManageService;
878
- }
879
- EmailsComponent.prototype.add = function () {
880
- this.twoFactorManageService.addEmail()
881
- .subscribe();
882
- };
883
- EmailsComponent.prototype.deleted = function () {
884
- this._message.success('Deleted email verification method');
885
- if (!this.twoFactorManageService.hasVerificationMethod(exports.FsVerificationMethodType.Email)) {
886
- this._dialogRef.close();
887
- }
888
- };
889
- return EmailsComponent;
890
- }());
891
- EmailsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: EmailsComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }, { token: i2__namespace.FsMessage }], target: i0__namespace.ɵɵFactoryTarget.Component });
892
- EmailsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: EmailsComponent, selector: "ng-component", ngImport: i0__namespace, template: "<fs-dialog>\n <h1 mat-dialog-title>\n Emails\n </h1>\n <mat-dialog-content>\n <app-verification-methods\n [type]=\"FsVerificationMethodType.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__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: VerificationMethodsComponent, selector: "app-verification-methods", inputs: ["twoFactorManageService", "type"], outputs: ["deleted"] }, { type: i7__namespace.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__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
893
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: EmailsComponent, decorators: [{
894
- type: i0.Component,
895
- args: [{
896
- templateUrl: './emails.component.html',
897
- styleUrls: ['./emails.component.scss'],
898
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
899
- }]
900
- }], ctorParameters: function () {
901
- return [{ type: undefined, decorators: [{
902
- type: i0.Inject,
903
- args: [i1.MAT_DIALOG_DATA]
904
- }] }, { type: i1__namespace.MatDialogRef }, { type: i2__namespace.FsMessage }];
856
+ var EmailsComponent = /** @class */ (function () {
857
+ function EmailsComponent(_data, _dialogRef, _message) {
858
+ this._data = _data;
859
+ this._dialogRef = _dialogRef;
860
+ this._message = _message;
861
+ this.FsVerificationMethodType = exports.FsVerificationMethodType;
862
+ this.twoFactorManageService = _data.twoFactorManageService;
863
+ }
864
+ EmailsComponent.prototype.add = function () {
865
+ this.twoFactorManageService.addEmail()
866
+ .subscribe();
867
+ };
868
+ EmailsComponent.prototype.deleted = function () {
869
+ this._message.success('Deleted email verification method');
870
+ if (!this.twoFactorManageService.hasVerificationMethod(exports.FsVerificationMethodType.Email)) {
871
+ this._dialogRef.close();
872
+ }
873
+ };
874
+ return EmailsComponent;
875
+ }());
876
+ EmailsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: EmailsComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }, { token: i2__namespace.FsMessage }], target: i0__namespace.ɵɵFactoryTarget.Component });
877
+ EmailsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: EmailsComponent, selector: "ng-component", ngImport: i0__namespace, template: "<fs-dialog>\n <h1 mat-dialog-title>\n Emails\n </h1>\n <mat-dialog-content>\n <app-verification-methods\n [type]=\"FsVerificationMethodType.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__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: VerificationMethodsComponent, selector: "app-verification-methods", inputs: ["twoFactorManageService", "type"], outputs: ["deleted"] }, { type: i7__namespace.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__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
878
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: EmailsComponent, decorators: [{
879
+ type: i0.Component,
880
+ args: [{
881
+ templateUrl: './emails.component.html',
882
+ styleUrls: ['./emails.component.scss'],
883
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
884
+ }]
885
+ }], ctorParameters: function () {
886
+ return [{ type: undefined, decorators: [{
887
+ type: i0.Inject,
888
+ args: [i1.MAT_DIALOG_DATA]
889
+ }] }, { type: i1__namespace.MatDialogRef }, { type: i2__namespace.FsMessage }];
905
890
  } });
906
891
 
907
- var ManageMethodsComponent = /** @class */ (function () {
908
- function ManageMethodsComponent(_data, _cdRef, _dialog, _message) {
909
- this._data = _data;
910
- this._cdRef = _cdRef;
911
- this._dialog = _dialog;
912
- this._message = _message;
913
- this._destroy$ = new rxjs.Subject();
914
- }
915
- ManageMethodsComponent.prototype.ngOnInit = function () {
916
- var _this = this;
917
- this._defaultCountry = this._data.defaultCountry;
918
- this.twoFactorManageService = this._data.twoFactorManageService;
919
- this.twoFactorManageService.verificationMethods$
920
- .subscribe(function (verificationMethods) {
921
- _this.verificationMethods = verificationMethods;
922
- _this._cdRef.markForCheck();
923
- });
924
- };
925
- Object.defineProperty(ManageMethodsComponent.prototype, "defaultSms", {
926
- get: function () {
927
- return this.twoFactorManageService.smsVerificationMethods
928
- .some(function (verificationMethod) {
929
- return verificationMethod.default;
930
- });
931
- },
932
- enumerable: false,
933
- configurable: true
934
- });
935
- Object.defineProperty(ManageMethodsComponent.prototype, "defaultApp", {
936
- get: function () {
937
- return this.twoFactorManageService.appVerificationMethods
938
- .some(function (verificationMethod) {
939
- return verificationMethod.default;
940
- });
941
- },
942
- enumerable: false,
943
- configurable: true
944
- });
945
- Object.defineProperty(ManageMethodsComponent.prototype, "defaultEmail", {
946
- get: function () {
947
- return this.twoFactorManageService.emailVerificationMethods
948
- .some(function (verificationMethod) {
949
- return verificationMethod.default;
950
- });
951
- },
952
- enumerable: false,
953
- configurable: true
954
- });
955
- Object.defineProperty(ManageMethodsComponent.prototype, "textHasVerificationMethod", {
956
- get: function () {
957
- return this.twoFactorManageService.hasVerificationMethod(exports.FsVerificationMethodType.Sms);
958
- },
959
- enumerable: false,
960
- configurable: true
961
- });
962
- Object.defineProperty(ManageMethodsComponent.prototype, "appHasVerificationMethod", {
963
- get: function () {
964
- return this.twoFactorManageService.hasVerificationMethod(exports.FsVerificationMethodType.App);
965
- },
966
- enumerable: false,
967
- configurable: true
968
- });
969
- Object.defineProperty(ManageMethodsComponent.prototype, "emailHasVerificationMethod", {
970
- get: function () {
971
- return this.twoFactorManageService.hasVerificationMethod(exports.FsVerificationMethodType.Email);
972
- },
973
- enumerable: false,
974
- configurable: true
975
- });
976
- ManageMethodsComponent.prototype.textMessageManage = function () {
977
- this._dialog.open(NumbersComponent, {
978
- data: {
979
- twoFactorManageService: this.twoFactorManageService,
980
- defaultCountry: this._defaultCountry,
981
- },
982
- });
983
- };
984
- ManageMethodsComponent.prototype.textMessageAdd = function () {
985
- this.twoFactorManageService.addSms(this._defaultCountry)
986
- .subscribe();
987
- };
988
- ManageMethodsComponent.prototype.emailMessageManage = function () {
989
- this._dialog.open(EmailsComponent, {
990
- data: {
991
- twoFactorManageService: this.twoFactorManageService,
992
- },
993
- });
994
- };
995
- ManageMethodsComponent.prototype.emailMessageAdd = function () {
996
- this.twoFactorManageService.addEmail()
997
- .subscribe();
998
- };
999
- ManageMethodsComponent.prototype.appRemove = function () {
1000
- var _this = this;
1001
- this._message.success('Removed App Authenticator verification method');
1002
- var verificationMethod = this.verificationMethods
1003
- .find(function (_verificationMethod) {
1004
- return _verificationMethod.type === exports.FsVerificationMethodType.App;
1005
- });
1006
- if (verificationMethod) {
1007
- this.twoFactorManageService.verificationMethodDelete(verificationMethod)
1008
- .subscribe(function () {
1009
- _this._cdRef.markForCheck();
1010
- });
1011
- }
1012
- };
1013
- ManageMethodsComponent.prototype.appAdd = function () {
1014
- this.twoFactorManageService.addApp()
1015
- .subscribe();
1016
- };
1017
- ManageMethodsComponent.prototype.ngOnDestroy = function () {
1018
- this._destroy$.next();
1019
- this._destroy$.complete();
1020
- };
1021
- return ManageMethodsComponent;
1022
- }());
1023
- ManageMethodsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ManageMethodsComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i0__namespace.ChangeDetectorRef }, { token: i1__namespace.MatDialog }, { token: i2__namespace.FsMessage }], target: i0__namespace.ɵɵFactoryTarget.Component });
1024
- ManageMethodsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ManageMethodsComponent, selector: "ng-component", ngImport: i0__namespace, 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__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: DefaultedComponent, selector: "app-defaulted" }, { type: i7__namespace.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__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i10__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "fsPhone": i6__namespace.FsPhonePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1025
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ManageMethodsComponent, decorators: [{
1026
- type: i0.Component,
1027
- args: [{
1028
- templateUrl: './manage-methods.component.html',
1029
- styleUrls: ['./manage-methods.component.scss'],
1030
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
1031
- }]
1032
- }], ctorParameters: function () {
1033
- return [{ type: undefined, decorators: [{
1034
- type: i0.Inject,
1035
- args: [i1.MAT_DIALOG_DATA]
1036
- }] }, { type: i0__namespace.ChangeDetectorRef }, { type: i1__namespace.MatDialog }, { type: i2__namespace.FsMessage }];
892
+ var ManageMethodsComponent = /** @class */ (function () {
893
+ function ManageMethodsComponent(_data, _cdRef, _dialog, _message) {
894
+ this._data = _data;
895
+ this._cdRef = _cdRef;
896
+ this._dialog = _dialog;
897
+ this._message = _message;
898
+ this._destroy$ = new rxjs.Subject();
899
+ }
900
+ ManageMethodsComponent.prototype.ngOnInit = function () {
901
+ var _this = this;
902
+ this._defaultCountry = this._data.defaultCountry;
903
+ this.twoFactorManageService = this._data.twoFactorManageService;
904
+ this.twoFactorManageService.verificationMethods$
905
+ .subscribe(function (verificationMethods) {
906
+ _this.verificationMethods = verificationMethods;
907
+ _this._cdRef.markForCheck();
908
+ });
909
+ };
910
+ Object.defineProperty(ManageMethodsComponent.prototype, "defaultSms", {
911
+ get: function () {
912
+ return this.twoFactorManageService.smsVerificationMethods
913
+ .some(function (verificationMethod) {
914
+ return verificationMethod.default;
915
+ });
916
+ },
917
+ enumerable: false,
918
+ configurable: true
919
+ });
920
+ Object.defineProperty(ManageMethodsComponent.prototype, "defaultApp", {
921
+ get: function () {
922
+ return this.twoFactorManageService.appVerificationMethods
923
+ .some(function (verificationMethod) {
924
+ return verificationMethod.default;
925
+ });
926
+ },
927
+ enumerable: false,
928
+ configurable: true
929
+ });
930
+ Object.defineProperty(ManageMethodsComponent.prototype, "defaultEmail", {
931
+ get: function () {
932
+ return this.twoFactorManageService.emailVerificationMethods
933
+ .some(function (verificationMethod) {
934
+ return verificationMethod.default;
935
+ });
936
+ },
937
+ enumerable: false,
938
+ configurable: true
939
+ });
940
+ Object.defineProperty(ManageMethodsComponent.prototype, "textHasVerificationMethod", {
941
+ get: function () {
942
+ return this.twoFactorManageService.hasVerificationMethod(exports.FsVerificationMethodType.Sms);
943
+ },
944
+ enumerable: false,
945
+ configurable: true
946
+ });
947
+ Object.defineProperty(ManageMethodsComponent.prototype, "appHasVerificationMethod", {
948
+ get: function () {
949
+ return this.twoFactorManageService.hasVerificationMethod(exports.FsVerificationMethodType.App);
950
+ },
951
+ enumerable: false,
952
+ configurable: true
953
+ });
954
+ Object.defineProperty(ManageMethodsComponent.prototype, "emailHasVerificationMethod", {
955
+ get: function () {
956
+ return this.twoFactorManageService.hasVerificationMethod(exports.FsVerificationMethodType.Email);
957
+ },
958
+ enumerable: false,
959
+ configurable: true
960
+ });
961
+ ManageMethodsComponent.prototype.textMessageManage = function () {
962
+ this._dialog.open(NumbersComponent, {
963
+ data: {
964
+ twoFactorManageService: this.twoFactorManageService,
965
+ defaultCountry: this._defaultCountry,
966
+ },
967
+ });
968
+ };
969
+ ManageMethodsComponent.prototype.textMessageAdd = function () {
970
+ this.twoFactorManageService.addSms(this._defaultCountry)
971
+ .subscribe();
972
+ };
973
+ ManageMethodsComponent.prototype.emailMessageManage = function () {
974
+ this._dialog.open(EmailsComponent, {
975
+ data: {
976
+ twoFactorManageService: this.twoFactorManageService,
977
+ },
978
+ });
979
+ };
980
+ ManageMethodsComponent.prototype.emailMessageAdd = function () {
981
+ this.twoFactorManageService.addEmail()
982
+ .subscribe();
983
+ };
984
+ ManageMethodsComponent.prototype.appRemove = function () {
985
+ var _this = this;
986
+ this._message.success('Removed App Authenticator verification method');
987
+ var verificationMethod = this.verificationMethods
988
+ .find(function (_verificationMethod) {
989
+ return _verificationMethod.type === exports.FsVerificationMethodType.App;
990
+ });
991
+ if (verificationMethod) {
992
+ this.twoFactorManageService.verificationMethodDelete(verificationMethod)
993
+ .subscribe(function () {
994
+ _this._cdRef.markForCheck();
995
+ });
996
+ }
997
+ };
998
+ ManageMethodsComponent.prototype.appAdd = function () {
999
+ this.twoFactorManageService.addApp()
1000
+ .subscribe();
1001
+ };
1002
+ ManageMethodsComponent.prototype.ngOnDestroy = function () {
1003
+ this._destroy$.next();
1004
+ this._destroy$.complete();
1005
+ };
1006
+ return ManageMethodsComponent;
1007
+ }());
1008
+ ManageMethodsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ManageMethodsComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i0__namespace.ChangeDetectorRef }, { token: i1__namespace.MatDialog }, { token: i2__namespace.FsMessage }], target: i0__namespace.ɵɵFactoryTarget.Component });
1009
+ ManageMethodsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ManageMethodsComponent, selector: "ng-component", ngImport: i0__namespace, 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__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: DefaultedComponent, selector: "app-defaulted" }, { type: i7__namespace.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__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "fsPhone": i6__namespace.FsPhonePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1010
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ManageMethodsComponent, decorators: [{
1011
+ type: i0.Component,
1012
+ args: [{
1013
+ templateUrl: './manage-methods.component.html',
1014
+ styleUrls: ['./manage-methods.component.scss'],
1015
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
1016
+ }]
1017
+ }], ctorParameters: function () {
1018
+ return [{ type: undefined, decorators: [{
1019
+ type: i0.Inject,
1020
+ args: [i1.MAT_DIALOG_DATA]
1021
+ }] }, { type: i0__namespace.ChangeDetectorRef }, { type: i1__namespace.MatDialog }, { type: i2__namespace.FsMessage }];
1037
1022
  } });
1038
1023
 
1039
- var Fs2faManageComponent = /** @class */ (function () {
1040
- function Fs2faManageComponent(_cdRef, _dialog, _twoFactorManageService) {
1041
- this._cdRef = _cdRef;
1042
- this._dialog = _dialog;
1043
- this._twoFactorManageService = _twoFactorManageService;
1044
- this._destroy$ = new rxjs.Subject();
1045
- }
1046
- Fs2faManageComponent.prototype.ngOnInit = function () {
1047
- var _this = this;
1048
- this._twoFactorManageService.registerVerificationMethodFetch(this.verificationMethodsFetch);
1049
- this._twoFactorManageService.registerVerificationMethodDelete(this.verificationMethodDelete);
1050
- this._twoFactorManageService.registerVerificationMethodCreate(this.verificationMethodCreate);
1051
- this._twoFactorManageService.registerVerificationMethodVerify(this.verificationMethodVerify);
1052
- this._twoFactorManageService.registerVerificationMethodResend(this.verificationMethodResend);
1053
- this._twoFactorManageService.registerAccountVerify(this.accountVerify);
1054
- this._twoFactorManageService.verificationMethods$
1055
- .subscribe(function (verificationMethods) {
1056
- var types = {
1057
- sms: 'Text Message',
1058
- email: 'Email',
1059
- app: 'Authenticator App',
1060
- };
1061
- _this.statuses = Object.keys(verificationMethods.reduce(function (accum, verificationMethod) {
1062
- accum[verificationMethod.type] = true;
1063
- return accum;
1064
- }, {}))
1065
- .map(function (type) {
1066
- return types[type];
1067
- });
1068
- _this._cdRef.markForCheck();
1069
- });
1070
- this._twoFactorManageService.verificationMethodFetch();
1071
- };
1072
- Fs2faManageComponent.prototype.manage = function () {
1073
- var _this = this;
1074
- var dialogRef = this._dialog.open(ManageMethodsComponent, {
1075
- autoFocus: false,
1076
- data: {
1077
- defaultCountry: this.defaultCountry,
1078
- twoFactorManageService: this._twoFactorManageService,
1079
- },
1080
- });
1081
- dialogRef.afterClosed()
1082
- .pipe(operators.takeUntil(this._destroy$))
1083
- .subscribe(function () {
1084
- _this._cdRef.markForCheck();
1085
- });
1086
- };
1087
- Fs2faManageComponent.prototype.reload = function () {
1088
- this._twoFactorManageService.verificationMethodFetch();
1089
- };
1090
- Fs2faManageComponent.prototype.ngOnDestroy = function () {
1091
- this._destroy$.next();
1092
- this._destroy$.complete();
1093
- };
1094
- return Fs2faManageComponent;
1095
- }());
1096
- Fs2faManageComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faManageComponent, deps: [{ token: i0__namespace.ChangeDetectorRef }, { token: i1__namespace.MatDialog }, { token: TwoFactorManageService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1097
- Fs2faManageComponent.ɵcmp = i0__namespace.ɵɵ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__namespace, 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__namespace$4.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i3__namespace$4.FsLabelComponent, selector: "fs-label" }], directives: [{ type: i10__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1098
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faManageComponent, decorators: [{
1099
- type: i0.Component,
1100
- args: [{
1101
- selector: 'fs-2fa-manage',
1102
- templateUrl: './2fa-manage.component.html',
1103
- styleUrls: ['./2fa-manage.component.scss'],
1104
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
1105
- providers: [TwoFactorManageService],
1106
- }]
1107
- }], ctorParameters: function () { return [{ type: i0__namespace.ChangeDetectorRef }, { type: i1__namespace.MatDialog }, { type: TwoFactorManageService }]; }, propDecorators: { accountVerify: [{
1108
- type: i0.Input
1109
- }], defaultCountry: [{
1110
- type: i0.Input
1111
- }], verificationMethodsFetch: [{
1112
- type: i0.Input
1113
- }], verificationMethodDelete: [{
1114
- type: i0.Input
1115
- }], verificationMethodCreate: [{
1116
- type: i0.Input
1117
- }], verificationMethodVerify: [{
1118
- type: i0.Input
1119
- }], verificationMethodResend: [{
1120
- type: i0.Input
1024
+ var Fs2faManageComponent = /** @class */ (function () {
1025
+ function Fs2faManageComponent(_cdRef, _dialog, _twoFactorManageService) {
1026
+ this._cdRef = _cdRef;
1027
+ this._dialog = _dialog;
1028
+ this._twoFactorManageService = _twoFactorManageService;
1029
+ this._destroy$ = new rxjs.Subject();
1030
+ }
1031
+ Fs2faManageComponent.prototype.ngOnInit = function () {
1032
+ var _this = this;
1033
+ this._twoFactorManageService.registerVerificationMethodFetch(this.verificationMethodsFetch);
1034
+ this._twoFactorManageService.registerVerificationMethodDelete(this.verificationMethodDelete);
1035
+ this._twoFactorManageService.registerVerificationMethodCreate(this.verificationMethodCreate);
1036
+ this._twoFactorManageService.registerVerificationMethodVerify(this.verificationMethodVerify);
1037
+ this._twoFactorManageService.registerVerificationMethodResend(this.verificationMethodResend);
1038
+ this._twoFactorManageService.registerAccountVerify(this.accountVerify);
1039
+ this._twoFactorManageService.verificationMethods$
1040
+ .subscribe(function (verificationMethods) {
1041
+ var types = {
1042
+ sms: 'Text Message',
1043
+ email: 'Email',
1044
+ app: 'Authenticator App',
1045
+ };
1046
+ _this.statuses = Object.keys(verificationMethods.reduce(function (accum, verificationMethod) {
1047
+ accum[verificationMethod.type] = true;
1048
+ return accum;
1049
+ }, {}))
1050
+ .map(function (type) {
1051
+ return types[type];
1052
+ });
1053
+ _this._cdRef.markForCheck();
1054
+ });
1055
+ this._twoFactorManageService.verificationMethodFetch();
1056
+ };
1057
+ Fs2faManageComponent.prototype.manage = function () {
1058
+ var _this = this;
1059
+ var dialogRef = this._dialog.open(ManageMethodsComponent, {
1060
+ autoFocus: false,
1061
+ data: {
1062
+ defaultCountry: this.defaultCountry,
1063
+ twoFactorManageService: this._twoFactorManageService,
1064
+ },
1065
+ });
1066
+ dialogRef.afterClosed()
1067
+ .pipe(operators.takeUntil(this._destroy$))
1068
+ .subscribe(function () {
1069
+ _this._cdRef.markForCheck();
1070
+ });
1071
+ };
1072
+ Fs2faManageComponent.prototype.reload = function () {
1073
+ this._twoFactorManageService.verificationMethodFetch();
1074
+ };
1075
+ Fs2faManageComponent.prototype.ngOnDestroy = function () {
1076
+ this._destroy$.next();
1077
+ this._destroy$.complete();
1078
+ };
1079
+ return Fs2faManageComponent;
1080
+ }());
1081
+ Fs2faManageComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faManageComponent, deps: [{ token: i0__namespace.ChangeDetectorRef }, { token: i1__namespace.MatDialog }, { token: TwoFactorManageService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1082
+ Fs2faManageComponent.ɵcmp = i0__namespace.ɵɵ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__namespace, 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__namespace$4.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i3__namespace$4.FsLabelComponent, selector: "fs-label" }], directives: [{ type: i9__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1083
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faManageComponent, decorators: [{
1084
+ type: i0.Component,
1085
+ args: [{
1086
+ selector: 'fs-2fa-manage',
1087
+ templateUrl: './2fa-manage.component.html',
1088
+ styleUrls: ['./2fa-manage.component.scss'],
1089
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
1090
+ providers: [TwoFactorManageService],
1091
+ }]
1092
+ }], ctorParameters: function () { return [{ type: i0__namespace.ChangeDetectorRef }, { type: i1__namespace.MatDialog }, { type: TwoFactorManageService }]; }, propDecorators: { accountVerify: [{
1093
+ type: i0.Input
1094
+ }], defaultCountry: [{
1095
+ type: i0.Input
1096
+ }], verificationMethodsFetch: [{
1097
+ type: i0.Input
1098
+ }], verificationMethodDelete: [{
1099
+ type: i0.Input
1100
+ }], verificationMethodCreate: [{
1101
+ type: i0.Input
1102
+ }], verificationMethodVerify: [{
1103
+ type: i0.Input
1104
+ }], verificationMethodResend: [{
1105
+ type: i0.Input
1121
1106
  }] } });
1122
1107
 
1123
- var Fs2faManageModule = /** @class */ (function () {
1124
- function Fs2faManageModule() {
1125
- }
1126
- return Fs2faManageModule;
1127
- }());
1128
- Fs2faManageModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faManageModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1129
- Fs2faManageModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faManageModule, declarations: [Fs2faManageComponent,
1130
- ManageMethodsComponent,
1131
- NumbersComponent,
1132
- AppComponent,
1133
- EmailComponent,
1134
- VerificationMethodsComponent,
1135
- NumberComponent,
1136
- EmailsComponent,
1137
- DefaultedComponent], imports: [i10.CommonModule,
1138
- i8.FormsModule,
1139
- i7.MatButtonModule,
1140
- i1.MatDialogModule,
1141
- i11.MatInputModule,
1142
- i4.MatIconModule,
1143
- i3$2.MatCheckboxModule,
1144
- i3.FsDialogModule,
1145
- i2$1.FsListModule,
1146
- i9.FsFormModule,
1147
- i3$4.FsLabelModule,
1148
- i6.FsPhoneModule,
1149
- i9$1.FsSkeletonModule,
1150
- i3$3.FsCountryModule,
1151
- CodeInputModule,
1152
- i4$2.QrCodeModule], exports: [Fs2faManageComponent] });
1153
- Fs2faManageModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faManageModule, imports: [[
1154
- i10.CommonModule,
1155
- i8.FormsModule,
1156
- i7.MatButtonModule,
1157
- i1.MatDialogModule,
1158
- i11.MatInputModule,
1159
- i4.MatIconModule,
1160
- i3$2.MatCheckboxModule,
1161
- i3.FsDialogModule,
1162
- i2$1.FsListModule,
1163
- i9.FsFormModule,
1164
- i3$4.FsLabelModule,
1165
- i6.FsPhoneModule,
1166
- i9$1.FsSkeletonModule,
1167
- i3$3.FsCountryModule,
1168
- CodeInputModule,
1169
- i4$2.QrCodeModule,
1170
- ]] });
1171
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faManageModule, decorators: [{
1172
- type: i0.NgModule,
1173
- args: [{
1174
- imports: [
1175
- i10.CommonModule,
1176
- i8.FormsModule,
1177
- i7.MatButtonModule,
1178
- i1.MatDialogModule,
1179
- i11.MatInputModule,
1180
- i4.MatIconModule,
1181
- i3$2.MatCheckboxModule,
1182
- i3.FsDialogModule,
1183
- i2$1.FsListModule,
1184
- i9.FsFormModule,
1185
- i3$4.FsLabelModule,
1186
- i6.FsPhoneModule,
1187
- i9$1.FsSkeletonModule,
1188
- i3$3.FsCountryModule,
1189
- CodeInputModule,
1190
- i4$2.QrCodeModule,
1191
- ],
1192
- declarations: [
1193
- Fs2faManageComponent,
1194
- ManageMethodsComponent,
1195
- NumbersComponent,
1196
- AppComponent,
1197
- EmailComponent,
1198
- VerificationMethodsComponent,
1199
- NumberComponent,
1200
- EmailsComponent,
1201
- DefaultedComponent,
1202
- ],
1203
- exports: [Fs2faManageComponent],
1204
- }]
1108
+ var Fs2faManageModule = /** @class */ (function () {
1109
+ function Fs2faManageModule() {
1110
+ }
1111
+ return Fs2faManageModule;
1112
+ }());
1113
+ Fs2faManageModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faManageModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1114
+ Fs2faManageModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faManageModule, declarations: [Fs2faManageComponent,
1115
+ ManageMethodsComponent,
1116
+ NumbersComponent,
1117
+ AppComponent,
1118
+ EmailComponent,
1119
+ VerificationMethodsComponent,
1120
+ NumberComponent,
1121
+ EmailsComponent,
1122
+ DefaultedComponent], imports: [i9$1.CommonModule,
1123
+ i8.FormsModule,
1124
+ i7.MatButtonModule,
1125
+ i1.MatDialogModule,
1126
+ i11.MatInputModule,
1127
+ i4.MatIconModule,
1128
+ i3$2.MatCheckboxModule,
1129
+ i3.FsDialogModule,
1130
+ i2$1.FsListModule,
1131
+ i9.FsFormModule,
1132
+ i3$4.FsLabelModule,
1133
+ i6.FsPhoneModule,
1134
+ i11$1.FsSkeletonModule,
1135
+ i3$3.FsCountryModule,
1136
+ CodeInputModule,
1137
+ i4$2.QrCodeModule], exports: [Fs2faManageComponent] });
1138
+ Fs2faManageModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faManageModule, imports: [[
1139
+ i9$1.CommonModule,
1140
+ i8.FormsModule,
1141
+ i7.MatButtonModule,
1142
+ i1.MatDialogModule,
1143
+ i11.MatInputModule,
1144
+ i4.MatIconModule,
1145
+ i3$2.MatCheckboxModule,
1146
+ i3.FsDialogModule,
1147
+ i2$1.FsListModule,
1148
+ i9.FsFormModule,
1149
+ i3$4.FsLabelModule,
1150
+ i6.FsPhoneModule,
1151
+ i11$1.FsSkeletonModule,
1152
+ i3$3.FsCountryModule,
1153
+ CodeInputModule,
1154
+ i4$2.QrCodeModule,
1155
+ ]] });
1156
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: Fs2faManageModule, decorators: [{
1157
+ type: i0.NgModule,
1158
+ args: [{
1159
+ imports: [
1160
+ i9$1.CommonModule,
1161
+ i8.FormsModule,
1162
+ i7.MatButtonModule,
1163
+ i1.MatDialogModule,
1164
+ i11.MatInputModule,
1165
+ i4.MatIconModule,
1166
+ i3$2.MatCheckboxModule,
1167
+ i3.FsDialogModule,
1168
+ i2$1.FsListModule,
1169
+ i9.FsFormModule,
1170
+ i3$4.FsLabelModule,
1171
+ i6.FsPhoneModule,
1172
+ i11$1.FsSkeletonModule,
1173
+ i3$3.FsCountryModule,
1174
+ CodeInputModule,
1175
+ i4$2.QrCodeModule,
1176
+ ],
1177
+ declarations: [
1178
+ Fs2faManageComponent,
1179
+ ManageMethodsComponent,
1180
+ NumbersComponent,
1181
+ AppComponent,
1182
+ EmailComponent,
1183
+ VerificationMethodsComponent,
1184
+ NumberComponent,
1185
+ EmailsComponent,
1186
+ DefaultedComponent,
1187
+ ],
1188
+ exports: [Fs2faManageComponent],
1189
+ }]
1205
1190
  }] });
1206
1191
 
1207
- /**
1208
- * Generated bundle index. Do not edit.
1192
+ /**
1193
+ * Generated bundle index. Do not edit.
1209
1194
  */
1210
1195
 
1211
- exports.FS_2FA_VERIFICATION_PROVIDER = FS_2FA_VERIFICATION_PROVIDER;
1212
1196
  exports.Fs2faManageComponent = Fs2faManageComponent;
1213
1197
  exports.Fs2faManageModule = Fs2faManageModule;
1214
1198
  exports.Fs2faVerificationComponent = Fs2faVerificationComponent;