@firestitch/2fa 12.6.0 → 12.6.1

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 (83) 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/defaulted/components/defaulted/defaulted.component.d.ts +5 -5
  8. package/app/modules/defaulted/components/defaulted/index.d.ts +1 -1
  9. package/app/modules/defaulted/defaulted.module.d.ts +7 -7
  10. package/app/modules/manage/components/2fa-manage/2fa-manage.component.d.ts +28 -28
  11. package/app/modules/manage/components/2fa-manage/index.d.ts +1 -1
  12. package/app/modules/manage/components/app/app.component.d.ts +31 -31
  13. package/app/modules/manage/components/app/index.d.ts +1 -1
  14. package/app/modules/manage/components/email/email.component.d.ts +26 -26
  15. package/app/modules/manage/components/email/index.d.ts +1 -1
  16. package/app/modules/manage/components/emails/emails.component.d.ts +17 -17
  17. package/app/modules/manage/components/emails/index.d.ts +1 -1
  18. package/app/modules/manage/components/manage-methods/index.d.ts +1 -1
  19. package/app/modules/manage/components/manage-methods/manage-methods.component.d.ts +35 -35
  20. package/app/modules/manage/components/number/index.d.ts +1 -1
  21. package/app/modules/manage/components/number/number.component.d.ts +27 -27
  22. package/app/modules/manage/components/numbers/index.d.ts +1 -1
  23. package/app/modules/manage/components/numbers/numbers.component.d.ts +18 -18
  24. package/app/modules/manage/components/verification-methods/index.d.ts +1 -1
  25. package/app/modules/manage/components/verification-methods/verification-methods.component.d.ts +20 -20
  26. package/app/modules/manage/fs-2f-manage.module.d.ts +32 -32
  27. package/app/modules/manage/services/index.d.ts +1 -1
  28. package/app/modules/manage/services/two-factor-manage.service.d.ts +42 -42
  29. package/app/modules/resend/components/resend/index.d.ts +1 -1
  30. package/app/modules/resend/components/resend/resend.component.d.ts +14 -14
  31. package/app/modules/resend/resend.module.d.ts +9 -9
  32. package/app/modules/verification/components/2fa-verification/2fa-verification.component.d.ts +33 -33
  33. package/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.d.ts +17 -17
  34. package/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.d.ts +22 -22
  35. package/app/modules/verification/fs-2fa-verification.module.d.ts +23 -23
  36. package/app/modules/verification-methods/components/verification-methods/verification-methods.component.d.ts +21 -21
  37. package/app/modules/verification-methods/fs-2f-verification-methods.module.d.ts +14 -14
  38. package/bundles/firestitch-2fa.umd.js +1308 -1308
  39. package/bundles/firestitch-2fa.umd.js.map +1 -1
  40. package/esm2015/app/enums/verification-method-type.enum.js +6 -6
  41. package/esm2015/app/interfaces/verification-method.interface.js +1 -1
  42. package/esm2015/app/modules/code-input/code-input.module.js +25 -25
  43. package/esm2015/app/modules/code-input/components/code-input/code-input.component.js +35 -35
  44. package/esm2015/app/modules/code-input/components/code-input/index.js +1 -1
  45. package/esm2015/app/modules/code-input/index.js +1 -1
  46. package/esm2015/app/modules/defaulted/components/defaulted/defaulted.component.js +15 -15
  47. package/esm2015/app/modules/defaulted/components/defaulted/index.js +1 -1
  48. package/esm2015/app/modules/defaulted/defaulted.module.js +17 -17
  49. package/esm2015/app/modules/manage/components/2fa-manage/2fa-manage.component.js +100 -100
  50. package/esm2015/app/modules/manage/components/2fa-manage/index.js +1 -1
  51. package/esm2015/app/modules/manage/components/app/app.component.js +82 -82
  52. package/esm2015/app/modules/manage/components/app/index.js +1 -1
  53. package/esm2015/app/modules/manage/components/email/email.component.js +82 -82
  54. package/esm2015/app/modules/manage/components/email/index.js +1 -1
  55. package/esm2015/app/modules/manage/components/emails/emails.component.js +42 -42
  56. package/esm2015/app/modules/manage/components/emails/index.js +1 -1
  57. package/esm2015/app/modules/manage/components/manage-methods/index.js +1 -1
  58. package/esm2015/app/modules/manage/components/manage-methods/manage-methods.component.js +125 -125
  59. package/esm2015/app/modules/manage/components/number/index.js +1 -1
  60. package/esm2015/app/modules/manage/components/number/number.component.js +85 -85
  61. package/esm2015/app/modules/manage/components/numbers/index.js +1 -1
  62. package/esm2015/app/modules/manage/components/numbers/numbers.component.js +43 -43
  63. package/esm2015/app/modules/manage/components/verification-methods/index.js +1 -1
  64. package/esm2015/app/modules/manage/components/verification-methods/verification-methods.component.js +64 -64
  65. package/esm2015/app/modules/manage/fs-2f-manage.module.js +112 -112
  66. package/esm2015/app/modules/manage/services/index.js +1 -1
  67. package/esm2015/app/modules/manage/services/two-factor-manage.service.js +132 -132
  68. package/esm2015/app/modules/resend/components/resend/index.js +1 -1
  69. package/esm2015/app/modules/resend/components/resend/resend.component.js +39 -39
  70. package/esm2015/app/modules/resend/resend.module.js +29 -29
  71. package/esm2015/app/modules/verification/components/2fa-verification/2fa-verification.component.js +112 -112
  72. package/esm2015/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.js +58 -58
  73. package/esm2015/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.js +62 -62
  74. package/esm2015/app/modules/verification/fs-2fa-verification.module.js +87 -87
  75. package/esm2015/app/modules/verification-methods/components/verification-methods/verification-methods.component.js +65 -65
  76. package/esm2015/app/modules/verification-methods/fs-2f-verification-methods.module.js +47 -47
  77. package/esm2015/firestitch-2fa.js +4 -4
  78. package/esm2015/public_api.js +7 -7
  79. package/fesm2015/firestitch-2fa.js +1185 -1185
  80. package/fesm2015/firestitch-2fa.js.map +1 -1
  81. package/firestitch-2fa.d.ts +5 -5
  82. package/package.json +1 -1
  83. package/public_api.d.ts +8 -8
@@ -1,63 +1,63 @@
1
- import { ChangeDetectionStrategy, Component, Inject, } from '@angular/core';
2
- import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
3
- import { tap } from 'rxjs/operators';
4
- import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/material/dialog";
7
- import * as i2 from "@firestitch/dialog";
8
- import * as i3 from "@firestitch/radiogroup";
9
- import * as i4 from "@angular/material/icon";
10
- import * as i5 from "@angular/material/radio";
11
- import * as i6 from "@angular/material/button";
12
- import * as i7 from "@angular/forms";
13
- import * as i8 from "@firestitch/form";
14
- import * as i9 from "@angular/common";
15
- export class Fs2faVerificationMethodsComponent {
16
- constructor(_dialogData, _dialogRef) {
17
- this._dialogData = _dialogData;
18
- this._dialogRef = _dialogRef;
19
- this.verificationMethodType = VerificationMethodType;
20
- this.setVerificationMethod = () => {
21
- return this._selectVerificationMethod(this.verificationMethod)
22
- .pipe(tap((method) => {
23
- this._dialogRef.close(method);
24
- }));
25
- };
26
- this._selectVerificationMethod = _dialogData.selectVerificationMethod;
27
- this._setActiveMethod();
28
- this._initMethods(_dialogData.verificationMethods);
29
- }
30
- compareWith(o1, o2) {
31
- return o1 && o2 && o1.id === o2.id;
32
- }
33
- _setActiveMethod() {
34
- var _a;
35
- this.verificationMethod = (_a = this._dialogData) === null || _a === void 0 ? void 0 : _a.verificationMethod;
36
- }
37
- _initMethods(verificationMethods) {
38
- this.verificationMethods = verificationMethods
39
- .reduce((acc, method) => {
40
- if (!acc[method.type]) {
41
- acc[method.type] = [];
42
- }
43
- acc[method.type].push(method);
44
- return acc;
45
- }, {});
46
- }
47
- }
48
- Fs2faVerificationMethodsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationMethodsComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
49
- Fs2faVerificationMethodsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faVerificationMethodsComponent, selector: "ng-component", ngImport: i0, 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)]=\"verificationMethod\" 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: i2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i3.FsRadioGroupComponent, selector: "fs-radio-group", inputs: ["orientation", "label", "name", "disabled", "radioPosition", "compareWith", "required"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.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.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i8.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "keyvalue": i9.KeyValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationMethodsComponent, decorators: [{
51
- type: Component,
52
- args: [{
53
- templateUrl: './2fa-verification-methods.component.html',
54
- styleUrls: [
55
- './2fa-verification-methods.component.scss',
56
- ],
57
- changeDetection: ChangeDetectionStrategy.OnPush,
58
- }]
59
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
60
- type: Inject,
61
- args: [MAT_DIALOG_DATA]
62
- }] }, { type: i1.MatDialogRef }]; } });
1
+ import { ChangeDetectionStrategy, Component, Inject, } from '@angular/core';
2
+ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
3
+ import { tap } from 'rxjs/operators';
4
+ import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/dialog";
7
+ import * as i2 from "@firestitch/dialog";
8
+ import * as i3 from "@firestitch/radiogroup";
9
+ import * as i4 from "@angular/material/icon";
10
+ import * as i5 from "@angular/material/radio";
11
+ import * as i6 from "@angular/material/button";
12
+ import * as i7 from "@angular/forms";
13
+ import * as i8 from "@firestitch/form";
14
+ import * as i9 from "@angular/common";
15
+ export class Fs2faVerificationMethodsComponent {
16
+ constructor(_dialogData, _dialogRef) {
17
+ this._dialogData = _dialogData;
18
+ this._dialogRef = _dialogRef;
19
+ this.verificationMethodType = VerificationMethodType;
20
+ this.setVerificationMethod = () => {
21
+ return this._selectVerificationMethod(this.verificationMethod)
22
+ .pipe(tap((method) => {
23
+ this._dialogRef.close(method);
24
+ }));
25
+ };
26
+ this._selectVerificationMethod = _dialogData.selectVerificationMethod;
27
+ this._setActiveMethod();
28
+ this._initMethods(_dialogData.verificationMethods);
29
+ }
30
+ compareWith(o1, o2) {
31
+ return o1 && o2 && o1.id === o2.id;
32
+ }
33
+ _setActiveMethod() {
34
+ var _a;
35
+ this.verificationMethod = (_a = this._dialogData) === null || _a === void 0 ? void 0 : _a.verificationMethod;
36
+ }
37
+ _initMethods(verificationMethods) {
38
+ this.verificationMethods = verificationMethods
39
+ .reduce((acc, method) => {
40
+ if (!acc[method.type]) {
41
+ acc[method.type] = [];
42
+ }
43
+ acc[method.type].push(method);
44
+ return acc;
45
+ }, {});
46
+ }
47
+ }
48
+ Fs2faVerificationMethodsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationMethodsComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
49
+ Fs2faVerificationMethodsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faVerificationMethodsComponent, selector: "ng-component", ngImport: i0, 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)]=\"verificationMethod\" 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: i2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i3.FsRadioGroupComponent, selector: "fs-radio-group", inputs: ["orientation", "label", "name", "disabled", "radioPosition", "compareWith", "required"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.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.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i8.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "keyvalue": i9.KeyValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationMethodsComponent, decorators: [{
51
+ type: Component,
52
+ args: [{
53
+ templateUrl: './2fa-verification-methods.component.html',
54
+ styleUrls: [
55
+ './2fa-verification-methods.component.scss',
56
+ ],
57
+ changeDetection: ChangeDetectionStrategy.OnPush,
58
+ }]
59
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
60
+ type: Inject,
61
+ args: [MAT_DIALOG_DATA]
62
+ }] }, { type: i1.MatDialogRef }]; } });
63
63
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMmZhLXZlcmlmaWNhdGlvbi1tZXRob2RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy92ZXJpZmljYXRpb24vY29tcG9uZW50cy8yZmEtdmVyaWZpY2F0aW9uLW1ldGhvZHMvMmZhLXZlcmlmaWNhdGlvbi1tZXRob2RzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy92ZXJpZmljYXRpb24vY29tcG9uZW50cy8yZmEtdmVyaWZpY2F0aW9uLW1ldGhvZHMvMmZhLXZlcmlmaWNhdGlvbi1tZXRob2RzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7Ozs7Ozs7QUFXekYsTUFBTSxPQUFPLGlDQUFpQztJQVU1QyxZQUVVLFdBQWdCLEVBQ2hCLFVBQTJEO1FBRDNELGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQWlEO1FBUHJELDJCQUFzQixHQUFHLHNCQUFzQixDQUFDO1FBa0J6RCwwQkFBcUIsR0FBRyxHQUFHLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2lCQUMzRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsTUFBNkIsRUFBRSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ04sQ0FBQyxDQUFDO1FBaEJBLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxXQUFXLENBQUMsd0JBQXdCLENBQUM7UUFDdEUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sV0FBVyxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUE7SUFDcEMsQ0FBQztJQVdPLGdCQUFnQjs7UUFDdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsa0JBQWtCLENBQUM7SUFDakUsQ0FBQztJQUVPLFlBQVksQ0FBQyxtQkFBbUI7UUFDdEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQjthQUMzQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3JCLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ3ZCO1lBRUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFOUIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDOzsrSEFoRFUsaUNBQWlDLGtCQVdsQyxlQUFlO21IQVhkLGlDQUFpQyxvREN0QjlDLG1vSEFzRkE7NEZEaEVhLGlDQUFpQztrQkFQN0MsU0FBUzttQkFBQztvQkFDVCxXQUFXLEVBQUUsMkNBQTJDO29CQUN4RCxTQUFTLEVBQUU7d0JBQ1QsMkNBQTJDO3FCQUM1QztvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQVlJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBWZXJpZmljYXRpb25NZXRob2RUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMvdmVyaWZpY2F0aW9uLW1ldGhvZC10eXBlLmVudW0nO1xuaW1wb3J0IHsgSUZzVmVyaWZpY2F0aW9uTWV0aG9kIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy92ZXJpZmljYXRpb24tbWV0aG9kLmludGVyZmFjZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi8yZmEtdmVyaWZpY2F0aW9uLW1ldGhvZHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi8yZmEtdmVyaWZpY2F0aW9uLW1ldGhvZHMuY29tcG9uZW50LnNjc3MnLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRnMyZmFWZXJpZmljYXRpb25NZXRob2RzQ29tcG9uZW50IHtcblxuICBwdWJsaWMgdmVyaWZpY2F0aW9uTWV0aG9kOiBJRnNWZXJpZmljYXRpb25NZXRob2Q7XG4gIHB1YmxpYyBwaG9uZTogc3RyaW5nO1xuICBwdWJsaWMgY29kZTogc3RyaW5nO1xuICBwdWJsaWMgdmVyaWZpY2F0aW9uTWV0aG9kczogUmVjb3JkPHN0cmluZywgSUZzVmVyaWZpY2F0aW9uTWV0aG9kW10+O1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyaWZpY2F0aW9uTWV0aG9kVHlwZSA9IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGU7XG5cbiAgcHJpdmF0ZSBfc2VsZWN0VmVyaWZpY2F0aW9uTWV0aG9kOiAoSUZzVmVyaWZpY2F0aW9uTWV0aG9kKSA9PiBPYnNlcnZhYmxlPElGc1ZlcmlmaWNhdGlvbk1ldGhvZD47ICBcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSlcbiAgICBwcml2YXRlIF9kaWFsb2dEYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RnMyZmFWZXJpZmljYXRpb25NZXRob2RzQ29tcG9uZW50PixcbiAgKSB7XG4gICAgdGhpcy5fc2VsZWN0VmVyaWZpY2F0aW9uTWV0aG9kID0gX2RpYWxvZ0RhdGEuc2VsZWN0VmVyaWZpY2F0aW9uTWV0aG9kO1xuICAgIHRoaXMuX3NldEFjdGl2ZU1ldGhvZCgpO1xuICAgIHRoaXMuX2luaXRNZXRob2RzKF9kaWFsb2dEYXRhLnZlcmlmaWNhdGlvbk1ldGhvZHMpO1xuICB9XG5cbiAgcHVibGljIGNvbXBhcmVXaXRoKG8xLCBvMikge1xuICAgIHJldHVybiBvMSAmJiBvMiAmJiBvMS5pZCA9PT0gbzIuaWRcbiAgfVxuXG4gIHB1YmxpYyBzZXRWZXJpZmljYXRpb25NZXRob2QgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdFZlcmlmaWNhdGlvbk1ldGhvZCh0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKG1ldGhvZDogSUZzVmVyaWZpY2F0aW9uTWV0aG9kKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKG1ldGhvZCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9O1xuXG4gIHByaXZhdGUgX3NldEFjdGl2ZU1ldGhvZCgpOiB2b2lkIHtcbiAgICB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZCA9IHRoaXMuX2RpYWxvZ0RhdGE/LnZlcmlmaWNhdGlvbk1ldGhvZDtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRNZXRob2RzKHZlcmlmaWNhdGlvbk1ldGhvZHMpOiB2b2lkIHtcbiAgICB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZHMgPSB2ZXJpZmljYXRpb25NZXRob2RzXG4gICAgICAucmVkdWNlKChhY2MsIG1ldGhvZCkgPT4ge1xuICAgICAgICBpZiAoIWFjY1ttZXRob2QudHlwZV0pIHtcbiAgICAgICAgICBhY2NbbWV0aG9kLnR5cGVdID0gW107XG4gICAgICAgIH1cblxuICAgICAgICBhY2NbbWV0aG9kLnR5cGVdLnB1c2gobWV0aG9kKTtcblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30pO1xuICB9XG59XG4iLCI8ZnMtZGlhbG9nPlxuICA8aDEgbWF0LWRpYWxvZy10aXRsZT5cbiAgICBWZXJpZmljYXRpb24gTWV0aG9kc1xuICA8L2gxPlxuICA8Zm9ybSBmc0Zvcm0gW3N1Ym1pdF09XCJzZXRWZXJpZmljYXRpb25NZXRob2RcIiBbZGlydHlTdWJtaXRCdXR0b25dPVwiZmFsc2VcIj5cbiAgICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgPGZzLXJhZGlvLWdyb3VwIFsobmdNb2RlbCldPVwidmVyaWZpY2F0aW9uTWV0aG9kXCIgbmFtZT1cIm1ldGhvZFwiIFtjb21wYXJlV2l0aF09XCJjb21wYXJlV2l0aFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1ldGhvZE1hcCBvZiB2ZXJpZmljYXRpb25NZXRob2RzIHwga2V5dmFsdWVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRob2RcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwibWV0aG9kTWFwLmtleVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuU21zXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0c21zXG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRob2QtbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRob2QtdGl0bGVcIj5UZXh0IE1lc3NhZ2U8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb24gY29kZSBzZW5kIHRvIG9uZSBvZiBmb2xsb3dpbmcgbW9iaWxlIG51bWJlclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5FbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgbWFpbFxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLXRpdGxlXCI+RW1haWw8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb24gY29kZSBzZW5kIHRvIG9uZSBvZiBmb2xsb3dpbmcgZW1haWxcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuQXBwXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0aG9kLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICBwaG9uZV9pcGhvbmVcbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC10aXRsZVwiPkF1dGhlbnRpY2F0b3IgQXBwPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGhvZC1zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uIGNvZGUgZ2VuZXJhdGVkIGJ5IGFuIGF1dGhlbnRpY2F0b3IgYXBwXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cIm1ldGhvZC1pdGVtXCIgKm5nRm9yPVwibGV0IG1ldGhvZCBvZiBtZXRob2RNYXAudmFsdWVcIiBbdmFsdWVdPVwibWV0aG9kXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwibWV0aG9kTWFwLmtleVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5TbXNcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbWV0aG9kLnBob25lTnVtYmVyIH19XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuRW1haWxcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbWV0aG9kLmVtYWlsIH19XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuQXBwXCI+XG4gICAgICAgICAgICAgICAgICAgIEF1dGhlbnRpY2F0b3IgQXBwXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZzLXJhZGlvLWdyb3VwPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY29sb3I9XCJwcmltYXJ5XCI+TmV4dDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuICA8L2Zvcm0+XG48L2ZzLWRpYWxvZz5cbiJdfQ==
@@ -1,88 +1,88 @@
1
- import { NgModule } from '@angular/core';
2
- import { FormsModule } from '@angular/forms';
3
- import { CommonModule } from '@angular/common';
4
- import { MatIconModule } from '@angular/material/icon';
5
- import { MatRadioModule } from '@angular/material/radio';
6
- import { MatButtonModule } from '@angular/material/button';
7
- import { MatFormFieldModule } from '@angular/material/form-field';
8
- import { MatInputModule } from '@angular/material/input';
9
- import { MatCheckboxModule } from '@angular/material/checkbox';
10
- import { FsFormModule } from '@firestitch/form';
11
- import { FsSkeletonModule } from '@firestitch/skeleton';
12
- import { FsRadioGroupModule } from '@firestitch/radiogroup';
13
- import { FsDialogModule } from '@firestitch/dialog';
14
- import { Fs2faVerificationComponent } from './components/2fa-verification/2fa-verification.component';
15
- import { Fs2faVerificationCodeComponent } from './components/2fa-verification-code/2fa-verification-code.component';
16
- import { Fs2faVerificationMethodsComponent } from './components/2fa-verification-methods/2fa-verification-methods.component';
17
- import { CodeInputModule } from '../code-input';
18
- import { ResendModule } from '../resend/resend.module';
19
- import * as i0 from "@angular/core";
20
- export class Fs2faVerificationModule {
21
- }
22
- Fs2faVerificationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
23
- Fs2faVerificationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationModule, declarations: [Fs2faVerificationComponent,
24
- Fs2faVerificationCodeComponent,
25
- Fs2faVerificationMethodsComponent], imports: [CommonModule,
26
- FormsModule,
27
- MatFormFieldModule,
28
- MatInputModule,
29
- MatButtonModule,
30
- MatIconModule,
31
- MatRadioModule,
32
- MatCheckboxModule,
33
- FsFormModule,
34
- FsRadioGroupModule,
35
- FsDialogModule,
36
- FsSkeletonModule,
37
- FsSkeletonModule,
38
- ResendModule,
39
- CodeInputModule], exports: [Fs2faVerificationComponent] });
40
- Fs2faVerificationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationModule, providers: [], imports: [[
41
- CommonModule,
42
- FormsModule,
43
- MatFormFieldModule,
44
- MatInputModule,
45
- MatButtonModule,
46
- MatIconModule,
47
- MatRadioModule,
48
- MatCheckboxModule,
49
- FsFormModule,
50
- FsRadioGroupModule,
51
- FsDialogModule,
52
- FsSkeletonModule,
53
- FsSkeletonModule,
54
- ResendModule,
55
- CodeInputModule,
56
- ]] });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationModule, decorators: [{
58
- type: NgModule,
59
- args: [{
60
- imports: [
61
- CommonModule,
62
- FormsModule,
63
- MatFormFieldModule,
64
- MatInputModule,
65
- MatButtonModule,
66
- MatIconModule,
67
- MatRadioModule,
68
- MatCheckboxModule,
69
- FsFormModule,
70
- FsRadioGroupModule,
71
- FsDialogModule,
72
- FsSkeletonModule,
73
- FsSkeletonModule,
74
- ResendModule,
75
- CodeInputModule,
76
- ],
77
- declarations: [
78
- Fs2faVerificationComponent,
79
- Fs2faVerificationCodeComponent,
80
- Fs2faVerificationMethodsComponent,
81
- ],
82
- exports: [
83
- Fs2faVerificationComponent,
84
- ],
85
- providers: [],
86
- }]
87
- }] });
1
+ import { NgModule } from '@angular/core';
2
+ import { FormsModule } from '@angular/forms';
3
+ import { CommonModule } from '@angular/common';
4
+ import { MatIconModule } from '@angular/material/icon';
5
+ import { MatRadioModule } from '@angular/material/radio';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import { MatFormFieldModule } from '@angular/material/form-field';
8
+ import { MatInputModule } from '@angular/material/input';
9
+ import { MatCheckboxModule } from '@angular/material/checkbox';
10
+ import { FsFormModule } from '@firestitch/form';
11
+ import { FsSkeletonModule } from '@firestitch/skeleton';
12
+ import { FsRadioGroupModule } from '@firestitch/radiogroup';
13
+ import { FsDialogModule } from '@firestitch/dialog';
14
+ import { Fs2faVerificationComponent } from './components/2fa-verification/2fa-verification.component';
15
+ import { Fs2faVerificationCodeComponent } from './components/2fa-verification-code/2fa-verification-code.component';
16
+ import { Fs2faVerificationMethodsComponent } from './components/2fa-verification-methods/2fa-verification-methods.component';
17
+ import { CodeInputModule } from '../code-input';
18
+ import { ResendModule } from '../resend/resend.module';
19
+ import * as i0 from "@angular/core";
20
+ export class Fs2faVerificationModule {
21
+ }
22
+ Fs2faVerificationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
23
+ Fs2faVerificationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationModule, declarations: [Fs2faVerificationComponent,
24
+ Fs2faVerificationCodeComponent,
25
+ Fs2faVerificationMethodsComponent], imports: [CommonModule,
26
+ FormsModule,
27
+ MatFormFieldModule,
28
+ MatInputModule,
29
+ MatButtonModule,
30
+ MatIconModule,
31
+ MatRadioModule,
32
+ MatCheckboxModule,
33
+ FsFormModule,
34
+ FsRadioGroupModule,
35
+ FsDialogModule,
36
+ FsSkeletonModule,
37
+ FsSkeletonModule,
38
+ ResendModule,
39
+ CodeInputModule], exports: [Fs2faVerificationComponent] });
40
+ Fs2faVerificationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationModule, providers: [], imports: [[
41
+ CommonModule,
42
+ FormsModule,
43
+ MatFormFieldModule,
44
+ MatInputModule,
45
+ MatButtonModule,
46
+ MatIconModule,
47
+ MatRadioModule,
48
+ MatCheckboxModule,
49
+ FsFormModule,
50
+ FsRadioGroupModule,
51
+ FsDialogModule,
52
+ FsSkeletonModule,
53
+ FsSkeletonModule,
54
+ ResendModule,
55
+ CodeInputModule,
56
+ ]] });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationModule, decorators: [{
58
+ type: NgModule,
59
+ args: [{
60
+ imports: [
61
+ CommonModule,
62
+ FormsModule,
63
+ MatFormFieldModule,
64
+ MatInputModule,
65
+ MatButtonModule,
66
+ MatIconModule,
67
+ MatRadioModule,
68
+ MatCheckboxModule,
69
+ FsFormModule,
70
+ FsRadioGroupModule,
71
+ FsDialogModule,
72
+ FsSkeletonModule,
73
+ FsSkeletonModule,
74
+ ResendModule,
75
+ CodeInputModule,
76
+ ],
77
+ declarations: [
78
+ Fs2faVerificationComponent,
79
+ Fs2faVerificationCodeComponent,
80
+ Fs2faVerificationMethodsComponent,
81
+ ],
82
+ exports: [
83
+ Fs2faVerificationComponent,
84
+ ],
85
+ providers: [],
86
+ }]
87
+ }] });
88
88
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtMmZhLXZlcmlmaWNhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvdmVyaWZpY2F0aW9uL2ZzLTJmYS12ZXJpZmljYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNwSCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUU3SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFrQ3ZELE1BQU0sT0FBTyx1QkFBdUI7O3FIQUF2Qix1QkFBdUI7c0hBQXZCLHVCQUF1QixpQkFUaEMsMEJBQTBCO1FBQzFCLDhCQUE4QjtRQUM5QixpQ0FBaUMsYUF0QmpDLFlBQVk7UUFDWixXQUFXO1FBRVgsa0JBQWtCO1FBQ2xCLGNBQWM7UUFDZCxlQUFlO1FBQ2YsYUFBYTtRQUNiLGNBQWM7UUFDZCxpQkFBaUI7UUFFakIsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQixjQUFjO1FBQ2QsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUVoQixZQUFZO1FBQ1osZUFBZSxhQVFmLDBCQUEwQjtzSEFJakIsdUJBQXVCLGFBRnZCLEVBQUUsWUE1Qko7WUFDUCxZQUFZO1lBQ1osV0FBVztZQUVYLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsZUFBZTtZQUNmLGFBQWE7WUFDYixjQUFjO1lBQ2QsaUJBQWlCO1lBRWpCLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFFaEIsWUFBWTtZQUNaLGVBQWU7U0FDaEI7NEZBV1UsdUJBQXVCO2tCQS9CbkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUVYLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxpQkFBaUI7d0JBRWpCLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUVoQixZQUFZO3dCQUNaLGVBQWU7cUJBQ2hCO29CQUNELFlBQVksRUFBRTt3QkFDWiwwQkFBMEI7d0JBQzFCLDhCQUE4Qjt3QkFDOUIsaUNBQWlDO3FCQUNsQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMEJBQTBCO3FCQUMzQjtvQkFDRCxTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuXG5pbXBvcnQgeyBGc0Zvcm1Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcbmltcG9ydCB7IEZzU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9za2VsZXRvbic7XG5pbXBvcnQgeyBGc1JhZGlvR3JvdXBNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9yYWRpb2dyb3VwJztcbmltcG9ydCB7IEZzRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZGlhbG9nJztcblxuaW1wb3J0IHsgRnMyZmFWZXJpZmljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvMmZhLXZlcmlmaWNhdGlvbi8yZmEtdmVyaWZpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGczJmYVZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvMmZhLXZlcmlmaWNhdGlvbi1jb2RlLzJmYS12ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRnMyZmFWZXJpZmljYXRpb25NZXRob2RzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzLzJmYS12ZXJpZmljYXRpb24tbWV0aG9kcy8yZmEtdmVyaWZpY2F0aW9uLW1ldGhvZHMuY29tcG9uZW50JztcblxuaW1wb3J0IHsgQ29kZUlucHV0TW9kdWxlIH0gZnJvbSAnLi4vY29kZS1pbnB1dCc7XG5pbXBvcnQgeyBSZXNlbmRNb2R1bGUgfSBmcm9tICcuLi9yZXNlbmQvcmVzZW5kLm1vZHVsZSc7XG5cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcblxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRSYWRpb01vZHVsZSxcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcblxuICAgIEZzRm9ybU1vZHVsZSxcbiAgICBGc1JhZGlvR3JvdXBNb2R1bGUsXG4gICAgRnNEaWFsb2dNb2R1bGUsXG4gICAgRnNTa2VsZXRvbk1vZHVsZSxcbiAgICBGc1NrZWxldG9uTW9kdWxlLFxuXG4gICAgUmVzZW5kTW9kdWxlLFxuICAgIENvZGVJbnB1dE1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRnMyZmFWZXJpZmljYXRpb25Db21wb25lbnQsXG4gICAgRnMyZmFWZXJpZmljYXRpb25Db2RlQ29tcG9uZW50LFxuICAgIEZzMmZhVmVyaWZpY2F0aW9uTWV0aG9kc0NvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEZzMmZhVmVyaWZpY2F0aW9uQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBGczJmYVZlcmlmaWNhdGlvbk1vZHVsZSB7fVxuIl19
@@ -1,66 +1,66 @@
1
- import { Component, ChangeDetectionStrategy, Input, ViewChild, } from '@angular/core';
2
- import { FsListComponent } from '@firestitch/list';
3
- import { FsPrompt } from '@firestitch/prompt';
4
- import { map, switchMap } from 'rxjs/operators';
5
- import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@firestitch/prompt";
8
- import * as i2 from "@firestitch/list";
9
- import * as i3 from "@angular/material/icon";
10
- import * as i4 from "@firestitch/country";
11
- import * as i5 from "../../../defaulted/components/defaulted/defaulted.component";
12
- import * as i6 from "@angular/common";
13
- import * as i7 from "@firestitch/phone";
14
- export class VerificationMethodsComponent {
15
- constructor(_prompt) {
16
- this._prompt = _prompt;
17
- this.VerificationMethodType = VerificationMethodType;
18
- }
19
- ngOnInit() {
20
- this.listConfig = {
21
- paging: false,
22
- rowActions: [
23
- {
24
- click: (verificationMethod) => {
25
- this._prompt.confirm({
26
- title: 'Confirm',
27
- template: 'Would you like to delete this verification method?',
28
- })
29
- .pipe(switchMap(() => this.accountVerify()), switchMap(() => this.verificationMethodDelete(verificationMethod)))
30
- .subscribe(() => {
31
- this.list.reload();
32
- });
33
- },
34
- label: 'Delete',
35
- },
36
- ],
37
- fetch: (query) => {
38
- return this.verificationMethodsFetch(query)
39
- .pipe(map((verificationMethods) => ({
40
- data: verificationMethods,
41
- })));
42
- },
43
- };
44
- }
45
- }
46
- VerificationMethodsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: VerificationMethodsComponent, deps: [{ token: i1.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
47
- VerificationMethodsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: VerificationMethodsComponent, selector: "fs-2fa-verification-methods", inputs: { accountVerify: "accountVerify", verificationMethodsFetch: "verificationMethodsFetch", verificationMethodDelete: "verificationMethodDelete" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true }], ngImport: i0, template: "<fs-list [config]=\"listConfig\">\n <fs-list-column class=\"col-icon\" width=\"1%\">\n <ng-template fs-list-cell let-row=\"row\">\n <ng-container *ngIf=\"row.type === VerificationMethodType.Sms\">\n <mat-icon>textsms</mat-icon>\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.Email\">\n <mat-icon>email</mat-icon>\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.App\">\n <mat-icon>phone_iphone</mat-icon>\n </ng-container>\n </ng-template>\n </fs-list-column>\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 === VerificationMethodType.Sms\">\n <div class=\"row\">\n <fs-country [code]=\"row.phoneCountry\" [showName]=\"false\"></fs-country> \n <span>{{row.phoneNumber | fsPhone}}</span>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.Email\">\n {{row.email}}\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.App\">\n App\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}:host ::ng-deep .col-name fs-country img{display:flex}fs-country{margin-right:5px}app-defaulted{margin-left:5px}\n"], components: [{ type: i2.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.FsCountryComponent, selector: "fs-country", inputs: ["code", "showIcon", "showName", "region", "width"] }, { type: i5.DefaultedComponent, selector: "app-defaulted" }], directives: [{ type: i2.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fsPhone": i7.FsPhonePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: VerificationMethodsComponent, decorators: [{
49
- type: Component,
50
- args: [{
51
- selector: 'fs-2fa-verification-methods',
52
- templateUrl: './verification-methods.component.html',
53
- styleUrls: ['./verification-methods.component.scss'],
54
- changeDetection: ChangeDetectionStrategy.OnPush,
55
- }]
56
- }], ctorParameters: function () { return [{ type: i1.FsPrompt }]; }, propDecorators: { list: [{
57
- type: ViewChild,
58
- args: [FsListComponent]
59
- }], accountVerify: [{
60
- type: Input
61
- }], verificationMethodsFetch: [{
62
- type: Input
63
- }], verificationMethodDelete: [{
64
- type: Input
65
- }] } });
1
+ import { Component, ChangeDetectionStrategy, Input, ViewChild, } from '@angular/core';
2
+ import { FsListComponent } from '@firestitch/list';
3
+ import { FsPrompt } from '@firestitch/prompt';
4
+ import { map, switchMap } from 'rxjs/operators';
5
+ import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@firestitch/prompt";
8
+ import * as i2 from "@firestitch/list";
9
+ import * as i3 from "@angular/material/icon";
10
+ import * as i4 from "@firestitch/country";
11
+ import * as i5 from "../../../defaulted/components/defaulted/defaulted.component";
12
+ import * as i6 from "@angular/common";
13
+ import * as i7 from "@firestitch/phone";
14
+ export class VerificationMethodsComponent {
15
+ constructor(_prompt) {
16
+ this._prompt = _prompt;
17
+ this.VerificationMethodType = VerificationMethodType;
18
+ }
19
+ ngOnInit() {
20
+ this.listConfig = {
21
+ paging: false,
22
+ rowActions: [
23
+ {
24
+ click: (verificationMethod) => {
25
+ this._prompt.confirm({
26
+ title: 'Confirm',
27
+ template: 'Would you like to delete this verification method?',
28
+ })
29
+ .pipe(switchMap(() => this.accountVerify()), switchMap(() => this.verificationMethodDelete(verificationMethod)))
30
+ .subscribe(() => {
31
+ this.list.reload();
32
+ });
33
+ },
34
+ label: 'Delete',
35
+ },
36
+ ],
37
+ fetch: (query) => {
38
+ return this.verificationMethodsFetch(query)
39
+ .pipe(map((verificationMethods) => ({
40
+ data: verificationMethods,
41
+ })));
42
+ },
43
+ };
44
+ }
45
+ }
46
+ VerificationMethodsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: VerificationMethodsComponent, deps: [{ token: i1.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
47
+ VerificationMethodsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: VerificationMethodsComponent, selector: "fs-2fa-verification-methods", inputs: { accountVerify: "accountVerify", verificationMethodsFetch: "verificationMethodsFetch", verificationMethodDelete: "verificationMethodDelete" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true }], ngImport: i0, template: "<fs-list [config]=\"listConfig\">\n <fs-list-column class=\"col-icon\" width=\"1%\">\n <ng-template fs-list-cell let-row=\"row\">\n <ng-container *ngIf=\"row.type === VerificationMethodType.Sms\">\n <mat-icon>textsms</mat-icon>\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.Email\">\n <mat-icon>email</mat-icon>\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.App\">\n <mat-icon>phone_iphone</mat-icon>\n </ng-container>\n </ng-template>\n </fs-list-column>\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 === VerificationMethodType.Sms\">\n <div class=\"row\">\n <fs-country [code]=\"row.phoneCountry\" [showName]=\"false\"></fs-country> \n <span>{{row.phoneNumber | fsPhone}}</span>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.Email\">\n {{row.email}}\n </ng-container>\n\n <ng-container *ngIf=\"row.type === VerificationMethodType.App\">\n App\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}:host ::ng-deep .col-name fs-country img{display:flex}fs-country{margin-right:5px}app-defaulted{margin-left:5px}\n"], components: [{ type: i2.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.FsCountryComponent, selector: "fs-country", inputs: ["code", "showIcon", "showName", "region", "width"] }, { type: i5.DefaultedComponent, selector: "app-defaulted" }], directives: [{ type: i2.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fsPhone": i7.FsPhonePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: VerificationMethodsComponent, decorators: [{
49
+ type: Component,
50
+ args: [{
51
+ selector: 'fs-2fa-verification-methods',
52
+ templateUrl: './verification-methods.component.html',
53
+ styleUrls: ['./verification-methods.component.scss'],
54
+ changeDetection: ChangeDetectionStrategy.OnPush,
55
+ }]
56
+ }], ctorParameters: function () { return [{ type: i1.FsPrompt }]; }, propDecorators: { list: [{
57
+ type: ViewChild,
58
+ args: [FsListComponent]
59
+ }], accountVerify: [{
60
+ type: Input
61
+ }], verificationMethodsFetch: [{
62
+ type: Input
63
+ }], verificationMethodDelete: [{
64
+ type: Input
65
+ }] } });
66
66
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLW1ldGhvZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3ZlcmlmaWNhdGlvbi1tZXRob2RzL2NvbXBvbmVudHMvdmVyaWZpY2F0aW9uLW1ldGhvZHMvdmVyaWZpY2F0aW9uLW1ldGhvZHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3ZlcmlmaWNhdGlvbi1tZXRob2RzL2NvbXBvbmVudHMvdmVyaWZpY2F0aW9uLW1ldGhvZHMvdmVyaWZpY2F0aW9uLW1ldGhvZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFBRSx1QkFBdUIsRUFBVSxLQUFLLEVBQUUsU0FBUyxHQUM3RCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLGtCQUFrQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWhELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7Ozs7QUFTekYsTUFBTSxPQUFPLDRCQUE0QjtJQWF2QyxZQUNVLE9BQWlCO1FBQWpCLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFKcEIsMkJBQXNCLEdBQUcsc0JBQXNCLENBQUM7SUFNdkQsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsVUFBVSxFQUFFO2dCQUNWO29CQUNFLEtBQUssRUFBRSxDQUFDLGtCQUFrQixFQUFFLEVBQUU7d0JBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDOzRCQUNuQixLQUFLLEVBQUUsU0FBUzs0QkFDaEIsUUFBUSxFQUFFLG9EQUFvRDt5QkFDL0QsQ0FBQzs2QkFDQyxJQUFJLENBQ0gsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUNyQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FDbkU7NkJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTs0QkFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNyQixDQUFDLENBQUMsQ0FBQztvQkFDUCxDQUFDO29CQUNELEtBQUssRUFBRSxRQUFRO2lCQUNoQjthQUNGO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDO3FCQUN4QyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzVCLElBQUksRUFBRSxtQkFBbUI7aUJBQzFCLENBQUMsQ0FDRCxDQUNGLENBQUM7WUFDTixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7OzBIQWpEVSw0QkFBNEI7OEdBQTVCLDRCQUE0QixpUUFFNUIsZUFBZSxnREN0QjVCLHUxQ0FzQ1U7NEZEbEJHLDRCQUE0QjtrQkFOeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxXQUFXLEVBQUUsdUNBQXVDO29CQUNwRCxTQUFTLEVBQUUsQ0FBQyx1Q0FBdUMsQ0FBQztvQkFDcEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOytGQUlRLElBQUk7c0JBRFYsU0FBUzt1QkFBQyxlQUFlO2dCQUdWLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1Usd0JBQXdCO3NCQUF2QyxLQUFLO2dCQUNVLHdCQUF3QjtzQkFBdkMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZzTGlzdENvbXBvbmVudCwgRnNMaXN0Q29uZmlnIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGlzdCc7XG5pbXBvcnQgeyBGc1Byb21wdCB9IGZyb20gJ0BmaXJlc3RpdGNoL3Byb21wdCc7XG5cbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJRnNWZXJpZmljYXRpb25NZXRob2QgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL3ZlcmlmaWNhdGlvbi1tZXRob2QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcy92ZXJpZmljYXRpb24tbWV0aG9kLXR5cGUuZW51bSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtMmZhLXZlcmlmaWNhdGlvbi1tZXRob2RzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZlcmlmaWNhdGlvbi1tZXRob2RzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmVyaWZpY2F0aW9uLW1ldGhvZHMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFZlcmlmaWNhdGlvbk1ldGhvZHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoRnNMaXN0Q29tcG9uZW50KVxuICBwdWJsaWMgbGlzdDogRnNMaXN0Q29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBhY2NvdW50VmVyaWZ5OiAoKSA9PiBPYnNlcnZhYmxlPGFueT47XG4gIEBJbnB1dCgpIHB1YmxpYyB2ZXJpZmljYXRpb25NZXRob2RzRmV0Y2g6IChxdWVyeTogYW55KSA9PiBPYnNlcnZhYmxlPElGc1ZlcmlmaWNhdGlvbk1ldGhvZFtdPjtcbiAgQElucHV0KCkgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZERlbGV0ZTogKHZlcmlmaWNhdGlvbk1ldGhvZDogSUZzVmVyaWZpY2F0aW9uTWV0aG9kKSA9PiBPYnNlcnZhYmxlPGFueT47XG4gIFxuICBwdWJsaWMgbGlzdENvbmZpZzogRnNMaXN0Q29uZmlnO1xuICBwdWJsaWMgVmVyaWZpY2F0aW9uTWV0aG9kVHlwZSA9IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGU7XG4gIHB1YmxpYyB0ZXh0TWVzc2FnZUFkZDogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9wcm9tcHQ6IEZzUHJvbXB0LFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RDb25maWcgPSB7XG4gICAgICBwYWdpbmc6IGZhbHNlLFxuICAgICAgcm93QWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgY2xpY2s6ICh2ZXJpZmljYXRpb25NZXRob2QpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Byb21wdC5jb25maXJtKHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdDb25maXJtJyxcbiAgICAgICAgICAgICAgdGVtcGxhdGU6ICdXb3VsZCB5b3UgbGlrZSB0byBkZWxldGUgdGhpcyB2ZXJpZmljYXRpb24gbWV0aG9kPycsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5hY2NvdW50VmVyaWZ5KCkpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZERlbGV0ZSh2ZXJpZmljYXRpb25NZXRob2QpKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgbGFiZWw6ICdEZWxldGUnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGZldGNoOiAocXVlcnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kc0ZldGNoKHF1ZXJ5KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKCh2ZXJpZmljYXRpb25NZXRob2RzKSA9PiAoe1xuICAgICAgICAgICAgICBkYXRhOiB2ZXJpZmljYXRpb25NZXRob2RzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiIsIjxmcy1saXN0IFtjb25maWddPVwibGlzdENvbmZpZ1wiPlxuICA8ZnMtbGlzdC1jb2x1bW4gY2xhc3M9XCJjb2wtaWNvblwiIHdpZHRoPVwiMSVcIj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cudHlwZSA9PT0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5TbXNcIj5cbiAgICAgICAgPG1hdC1pY29uPnRleHRzbXM8L21hdC1pY29uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cudHlwZSA9PT0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5FbWFpbFwiPlxuICAgICAgICA8bWF0LWljb24+ZW1haWw8L21hdC1pY29uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cudHlwZSA9PT0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5BcHBcIj5cbiAgICAgICAgPG1hdC1pY29uPnBob25lX2lwaG9uZTwvbWF0LWljb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW4gY2xhc3M9XCJjb2wtbmFtZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LnR5cGUgPT09IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuU21zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGZzLWNvdW50cnkgW2NvZGVdPVwicm93LnBob25lQ291bnRyeVwiIFtzaG93TmFtZV09XCJmYWxzZVwiPjwvZnMtY291bnRyeT4gXG4gICAgICAgICAgICA8c3Bhbj57e3Jvdy5waG9uZU51bWJlciB8IGZzUGhvbmV9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvdy50eXBlID09PSBWZXJpZmljYXRpb25NZXRob2RUeXBlLkVtYWlsXCI+XG4gICAgICAgICAge3tyb3cuZW1haWx9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LnR5cGUgPT09IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuQXBwXCI+XG4gICAgICAgICAgQXBwXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxhcHAtZGVmYXVsdGVkICpuZ0lmPVwicm93LmRlZmF1bHRcIj48L2FwcC1kZWZhdWx0ZWQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuPC9mcy1saXN0PiJdfQ==