@firestitch/2fa 12.11.7 → 13.0.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 (71) hide show
  1. package/app/modules/code-input/code-input.module.d.ts +4 -2
  2. package/esm2020/app/modules/code-input/code-input.module.mjs +38 -0
  3. package/esm2020/app/modules/code-input/components/code-input/code-input.component.mjs +37 -0
  4. package/esm2020/app/modules/defaulted/components/defaulted/defaulted.component.mjs +11 -0
  5. package/{esm2015/app/modules/defaulted/defaulted.module.js → esm2020/app/modules/defaulted/defaulted.module.mjs} +5 -5
  6. package/esm2020/app/modules/manage/components/2fa-manage/2fa-manage.component.mjs +98 -0
  7. package/esm2020/app/modules/manage/components/app/app.component.mjs +84 -0
  8. package/esm2020/app/modules/manage/components/email/email.component.mjs +79 -0
  9. package/esm2020/app/modules/manage/components/emails/emails.component.mjs +47 -0
  10. package/esm2020/app/modules/manage/components/manage-methods/manage-methods.component.mjs +125 -0
  11. package/esm2020/app/modules/manage/components/number/number.component.mjs +83 -0
  12. package/esm2020/app/modules/manage/components/numbers/numbers.component.mjs +48 -0
  13. package/esm2020/app/modules/manage/components/qr-code/qr-code.component.mjs +32 -0
  14. package/{esm2015/app/modules/manage/fs-2f-manage.module.js → esm2020/app/modules/manage/fs-2f-manage.module.mjs} +5 -5
  15. package/{esm2015/app/modules/manage/services/two-factor-manage.service.js → esm2020/app/modules/manage/services/two-factor-manage.service.mjs} +4 -4
  16. package/esm2020/app/modules/resend/components/resend/resend.component.mjs +35 -0
  17. package/{esm2015/app/modules/resend/resend.module.js → esm2020/app/modules/resend/resend.module.mjs} +5 -5
  18. package/esm2020/app/modules/verification/components/2fa-verification/2fa-verification.component.mjs +124 -0
  19. package/esm2020/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.mjs +57 -0
  20. package/esm2020/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.mjs +56 -0
  21. package/{esm2015/app/modules/verification/directives/2fa-verification-resend.directive.js → esm2020/app/modules/verification/directives/2fa-verification-resend.directive.mjs} +4 -4
  22. package/{esm2015/app/modules/verification/fs-2fa-verification.module.js → esm2020/app/modules/verification/fs-2fa-verification.module.mjs} +5 -5
  23. package/esm2020/app/modules/verification-methods/components/verification-methods/verification-methods.component.mjs +117 -0
  24. package/{esm2015/app/modules/verification-methods/fs-2f-verification-methods.module.js → esm2020/app/modules/verification-methods/fs-2f-verification-methods.module.mjs} +5 -5
  25. package/fesm2015/firestitch-2fa.mjs +1370 -0
  26. package/fesm2015/firestitch-2fa.mjs.map +1 -0
  27. package/fesm2020/firestitch-2fa.mjs +1356 -0
  28. package/fesm2020/firestitch-2fa.mjs.map +1 -0
  29. package/package.json +21 -8
  30. package/bundles/firestitch-2fa.umd.js +0 -1586
  31. package/bundles/firestitch-2fa.umd.js.map +0 -1
  32. package/esm2015/app/modules/code-input/code-input.module.js +0 -30
  33. package/esm2015/app/modules/code-input/components/code-input/code-input.component.js +0 -42
  34. package/esm2015/app/modules/defaulted/components/defaulted/defaulted.component.js +0 -16
  35. package/esm2015/app/modules/manage/components/2fa-manage/2fa-manage.component.js +0 -104
  36. package/esm2015/app/modules/manage/components/app/app.component.js +0 -88
  37. package/esm2015/app/modules/manage/components/email/email.component.js +0 -83
  38. package/esm2015/app/modules/manage/components/emails/emails.component.js +0 -50
  39. package/esm2015/app/modules/manage/components/manage-methods/manage-methods.component.js +0 -128
  40. package/esm2015/app/modules/manage/components/number/number.component.js +0 -87
  41. package/esm2015/app/modules/manage/components/numbers/numbers.component.js +0 -51
  42. package/esm2015/app/modules/manage/components/qr-code/qr-code.component.js +0 -37
  43. package/esm2015/app/modules/resend/components/resend/resend.component.js +0 -40
  44. package/esm2015/app/modules/verification/components/2fa-verification/2fa-verification.component.js +0 -130
  45. package/esm2015/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.js +0 -63
  46. package/esm2015/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.js +0 -61
  47. package/esm2015/app/modules/verification-methods/components/verification-methods/verification-methods.component.js +0 -121
  48. package/fesm2015/firestitch-2fa.js +0 -1421
  49. package/fesm2015/firestitch-2fa.js.map +0 -1
  50. /package/{esm2015/app/enums/index.js → esm2020/app/enums/index.mjs} +0 -0
  51. /package/{esm2015/app/enums/verification-method-type.enum.js → esm2020/app/enums/verification-method-type.enum.mjs} +0 -0
  52. /package/{esm2015/app/interfaces/index.js → esm2020/app/interfaces/index.mjs} +0 -0
  53. /package/{esm2015/app/interfaces/verification-method.interface.js → esm2020/app/interfaces/verification-method.interface.mjs} +0 -0
  54. /package/{esm2015/app/modules/code-input/components/code-input/index.js → esm2020/app/modules/code-input/components/code-input/index.mjs} +0 -0
  55. /package/{esm2015/app/modules/code-input/index.js → esm2020/app/modules/code-input/index.mjs} +0 -0
  56. /package/{esm2015/app/modules/defaulted/components/defaulted/index.js → esm2020/app/modules/defaulted/components/defaulted/index.mjs} +0 -0
  57. /package/{esm2015/app/modules/manage/components/2fa-manage/index.js → esm2020/app/modules/manage/components/2fa-manage/index.mjs} +0 -0
  58. /package/{esm2015/app/modules/manage/components/app/index.js → esm2020/app/modules/manage/components/app/index.mjs} +0 -0
  59. /package/{esm2015/app/modules/manage/components/email/index.js → esm2020/app/modules/manage/components/email/index.mjs} +0 -0
  60. /package/{esm2015/app/modules/manage/components/emails/index.js → esm2020/app/modules/manage/components/emails/index.mjs} +0 -0
  61. /package/{esm2015/app/modules/manage/components/manage-methods/index.js → esm2020/app/modules/manage/components/manage-methods/index.mjs} +0 -0
  62. /package/{esm2015/app/modules/manage/components/number/index.js → esm2020/app/modules/manage/components/number/index.mjs} +0 -0
  63. /package/{esm2015/app/modules/manage/components/numbers/index.js → esm2020/app/modules/manage/components/numbers/index.mjs} +0 -0
  64. /package/{esm2015/app/modules/manage/components/qr-code/index.js → esm2020/app/modules/manage/components/qr-code/index.mjs} +0 -0
  65. /package/{esm2015/app/modules/manage/services/index.js → esm2020/app/modules/manage/services/index.mjs} +0 -0
  66. /package/{esm2015/app/modules/resend/components/resend/index.js → esm2020/app/modules/resend/components/resend/index.mjs} +0 -0
  67. /package/{esm2015/app/modules/verification/directives/index.js → esm2020/app/modules/verification/directives/index.mjs} +0 -0
  68. /package/{esm2015/app/modules/verification-methods/components/verification-methods/index.js → esm2020/app/modules/verification-methods/components/verification-methods/index.mjs} +0 -0
  69. /package/{esm2015/app/modules/verification-methods/index.js → esm2020/app/modules/verification-methods/index.mjs} +0 -0
  70. /package/{esm2015/firestitch-2fa.js → esm2020/firestitch-2fa.mjs} +0 -0
  71. /package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
@@ -1,128 +0,0 @@
1
- import { Component, Inject, ChangeDetectionStrategy, ChangeDetectorRef, } from '@angular/core';
2
- import { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
3
- import { Subject } from 'rxjs';
4
- import { NumbersComponent } from '../numbers';
5
- import { EmailsComponent } from '../emails';
6
- import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
7
- import { FsMessage } from '@firestitch/message';
8
- import { switchMap } from 'rxjs/operators';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/material/dialog";
11
- import * as i2 from "@firestitch/message";
12
- import * as i3 from "@firestitch/dialog";
13
- import * as i4 from "@angular/material/icon";
14
- import * as i5 from "../../../defaulted/components/defaulted/defaulted.component";
15
- import * as i6 from "@angular/material/button";
16
- import * as i7 from "@angular/common";
17
- import * as i8 from "@firestitch/phone";
18
- export class ManageMethodsComponent {
19
- constructor(_data, _cdRef, _dialog, _message) {
20
- this._data = _data;
21
- this._cdRef = _cdRef;
22
- this._dialog = _dialog;
23
- this._message = _message;
24
- this.verificationMethodTypes = {};
25
- this.VerificationMethodType = VerificationMethodType;
26
- this._destroy$ = new Subject();
27
- }
28
- ngOnInit() {
29
- this._defaultCountry = this._data.defaultCountry;
30
- this.twoFactorManageService = this._data.twoFactorManageService;
31
- this.verificationMethodTypes = this._data.verificationMethodTypes
32
- .reduce((verificationMethodTypes, verificationMethodType) => {
33
- verificationMethodTypes[verificationMethodType] = true;
34
- return verificationMethodTypes;
35
- }, {});
36
- this.twoFactorManageService.verificationMethods$
37
- .subscribe((verificationMethods) => {
38
- this.verificationMethods = verificationMethods;
39
- this._cdRef.markForCheck();
40
- });
41
- }
42
- get defaultSms() {
43
- return this.twoFactorManageService.smsVerificationMethods
44
- .some((verificationMethod) => {
45
- return verificationMethod.default;
46
- });
47
- }
48
- get defaultApp() {
49
- return this.twoFactorManageService.appVerificationMethods
50
- .some((verificationMethod) => {
51
- return verificationMethod.default;
52
- });
53
- }
54
- get defaultEmail() {
55
- return this.twoFactorManageService.emailVerificationMethods
56
- .some((verificationMethod) => {
57
- return verificationMethod.default;
58
- });
59
- }
60
- get textHasVerificationMethod() {
61
- return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Sms);
62
- }
63
- get appHasVerificationMethod() {
64
- return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.App);
65
- }
66
- get emailHasVerificationMethod() {
67
- return this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Email);
68
- }
69
- textMessageManage() {
70
- this._dialog.open(NumbersComponent, {
71
- data: {
72
- twoFactorManageService: this.twoFactorManageService,
73
- defaultCountry: this._defaultCountry,
74
- },
75
- });
76
- }
77
- textMessageAdd() {
78
- this.twoFactorManageService.addSms$(this._defaultCountry)
79
- .subscribe();
80
- }
81
- emailMessageManage() {
82
- this._dialog.open(EmailsComponent, {
83
- data: {
84
- twoFactorManageService: this.twoFactorManageService,
85
- },
86
- });
87
- }
88
- emailMessageAdd() {
89
- this.twoFactorManageService.addEmail$()
90
- .subscribe();
91
- }
92
- appRemove() {
93
- const verificationMethod = this.verificationMethods
94
- .find((_verificationMethod) => {
95
- return _verificationMethod.type === VerificationMethodType.App;
96
- });
97
- if (verificationMethod) {
98
- this.twoFactorManageService.accountVerify$()
99
- .pipe(switchMap(() => this.twoFactorManageService.verificationMethodDelete$(verificationMethod)))
100
- .subscribe(() => {
101
- this._message.success('Removed App Authenticator verification method');
102
- this._cdRef.markForCheck();
103
- });
104
- }
105
- }
106
- appAdd() {
107
- this.twoFactorManageService.addApp$()
108
- .subscribe();
109
- }
110
- ngOnDestroy() {
111
- this._destroy$.next();
112
- this._destroy$.complete();
113
- }
114
- }
115
- ManageMethodsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ManageMethodsComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i0.ChangeDetectorRef }, { token: i1.MatDialog }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
116
- ManageMethodsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ManageMethodsComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog>\n <h1 mat-dialog-title>2-Step Verification</h1>\n <mat-dialog-content>\n <table>\n <tr *ngIf=\"verificationMethodTypes[VerificationMethodType.Sms]\">\n <td>\n <mat-icon>textsms</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Text Message</span>\n <span *ngIf=\"textHasVerificationMethod\" class=\"enabled\"></span>\n <app-defaulted *ngIf=\"defaultSms\"></app-defaulted>\n </div>\n <div class=\"small\">\n Verification codes are sent by text message\n <ng-container *ngIf=\"textHasVerificationMethod\">\n to <span class=\"items\">\n <span *ngFor=\"let item of twoFactorManageService.smsVerificationMethods\">{{item.phoneNumber | fsPhone}}</span>\n </span>\n </ng-container>\n </div>\n </td>\n <td>\n <button \n *ngIf=\"textHasVerificationMethod; else textMessageManageButton\"\n mat-raised-button \n type=\"button\"\n (click)=\"textMessageManage()\">\n Manage\n </button>\n <ng-template #textMessageManageButton>\n <button \n mat-raised-button \n color=\"primary\"\n type=\"button\"\n (click)=\"textMessageAdd()\">\n Turn On\n </button>\n </ng-template>\n </td>\n </tr>\n <tr *ngIf=\"verificationMethodTypes[VerificationMethodType.Email]\">\n <td>\n <mat-icon>email</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Email</span> \n <span *ngIf=\"emailHasVerificationMethod\" class=\"enabled\"></span>\n <app-defaulted *ngIf=\"defaultEmail\"></app-defaulted>\n </div>\n <div class=\"small\">\n Verification codes are sent by email\n <ng-container *ngIf=\"emailHasVerificationMethod\">\n to <span class=\"items\">\n <span *ngFor=\"let item of twoFactorManageService.emailVerificationMethods\">{{item.email}}</span>\n </span>\n </ng-container>\n </div>\n </td>\n <td>\n <button \n *ngIf=\"emailHasVerificationMethod; else emailMessageManageButton\"\n mat-raised-button \n type=\"button\"\n (click)=\"emailMessageManage()\">\n Manage\n </button>\n <ng-template #emailMessageManageButton>\n <button \n mat-raised-button \n color=\"primary\"\n type=\"button\"\n (click)=\"emailMessageAdd()\">\n Turn On\n </button>\n </ng-template>\n </td>\n </tr>\n <tr *ngIf=\"verificationMethodTypes[VerificationMethodType.App]\">\n <td>\n <mat-icon>phone_iphone</mat-icon>\n </td>\n <td>\n <div class=\"type\">\n <span>Authenticator App</span>\n <span *ngIf=\"appHasVerificationMethod\" class=\"enabled\"></span>\n <app-defaulted *ngIf=\"defaultApp\"></app-defaulted>\n </div>\n <div class=\"small\">Verification code is generated by an authenticator app such as Authy or Google Authenticator</div>\n </td>\n <td>\n <button \n *ngIf=\"appHasVerificationMethod; else appMessageManageButton\"\n mat-raised-button \n type=\"button\"\n (click)=\"appRemove()\">\n Remove\n </button>\n <ng-template #appMessageManageButton>\n <button \n mat-raised-button \n color=\"primary\"\n type=\"button\"\n (click)=\"appAdd()\">\n Turn On\n </button>\n </ng-template>\n </td>\n </tr> \n </table> \n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"button\"\n [mat-dialog-close]=\"undefined\">\n Close\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: ["mat-dialog-content{max-width:500px}.enabled{font-size:75%;background-color:#70b601;padding:2px 4px;border-radius:4px;color:#fff;margin-left:4px}.enabled:after{content:\"Enabled\"}table tr td:first-child,table tr td:last-child{width:1%}table tr td:first-child mat-icon,table tr td:last-child mat-icon{display:flex}table tr td{padding:6px;vertical-align:middle}table tr .type{display:flex;align-items:center}table tr .type app-defaulted{margin-left:4px}.items span+span:not(:last-child):before{content:\", \"}.items span+span:last-child:before{content:\" and \"}\n"], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.DefaultedComponent, selector: "app-defaulted" }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "fsPhone": i8.FsPhonePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ManageMethodsComponent, decorators: [{
118
- type: Component,
119
- args: [{
120
- templateUrl: './manage-methods.component.html',
121
- styleUrls: ['./manage-methods.component.scss'],
122
- changeDetection: ChangeDetectionStrategy.OnPush,
123
- }]
124
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
125
- type: Inject,
126
- args: [MAT_DIALOG_DATA]
127
- }] }, { type: i0.ChangeDetectorRef }, { type: i1.MatDialog }, { type: i2.FsMessage }]; } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLW1ldGhvZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21hbmFnZS9jb21wb25lbnRzL21hbmFnZS1tZXRob2RzL21hbmFnZS1tZXRob2RzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9tYW5hZ2UtbWV0aG9kcy9tYW5hZ2UtbWV0aG9kcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsR0FDOUQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFRM0MsTUFBTSxPQUFPLHNCQUFzQjtJQVVqQyxZQUNtQyxLQUFVLEVBQ25DLE1BQXlCLEVBQ3pCLE9BQWtCLEVBQ2xCLFFBQW1CO1FBSE0sVUFBSyxHQUFMLEtBQUssQ0FBSztRQUNuQyxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN6QixZQUFPLEdBQVAsT0FBTyxDQUFXO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFWdEIsNEJBQXVCLEdBQUcsRUFBRSxD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QkFDaEQ7OzBCQVlJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgSW5qZWN0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCwgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE51bWJlcnNDb21wb25lbnQgfSBmcm9tICcuLi9udW1iZXJzJztcbmltcG9ydCB7IEVtYWlsc0NvbXBvbmVudCB9IGZyb20gJy4uL2VtYWlscyc7XG5pbXBvcnQgeyBUd29GYWN0b3JNYW5hZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgVmVyaWZpY2F0aW9uTWV0aG9kVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2VudW1zL3ZlcmlmaWNhdGlvbi1tZXRob2QtdHlwZS5lbnVtJztcbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vbWFuYWdlLW1ldGhvZHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYW5hZ2UtbWV0aG9kcy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTWFuYWdlTWV0aG9kc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgdHdvRmFjdG9yTWFuYWdlU2VydmljZTogVHdvRmFjdG9yTWFuYWdlU2VydmljZTtcbiAgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZHM7XG4gIHB1YmxpYyB2ZXJpZmljYXRpb25NZXRob2RUeXBlcyA9IHt9O1xuICBwdWJsaWMgVmVyaWZpY2F0aW9uTWV0aG9kVHlwZSA9IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGU7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIF9kZWZhdWx0Q291bnRyeTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIF9kYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgX21lc3NhZ2U6IEZzTWVzc2FnZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZWZhdWx0Q291bnRyeSA9IHRoaXMuX2RhdGEuZGVmYXVsdENvdW50cnk7XG4gICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlID0gdGhpcy5fZGF0YS50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlO1xuICAgIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kVHlwZXMgPSB0aGlzLl9kYXRhLnZlcmlmaWNhdGlvbk1ldGhvZFR5cGVzXG4gICAgLnJlZHVjZSgodmVyaWZpY2F0aW9uTWV0aG9kVHlwZXMsIHZlcmlmaWNhdGlvbk1ldGhvZFR5cGUpID0+IHtcbiAgICAgIHZlcmlmaWNhdGlvbk1ldGhvZFR5cGVzW3ZlcmlmaWNhdGlvbk1ldGhvZFR5cGVdID0gdHJ1ZTtcblxuICAgICAgcmV0dXJuIHZlcmlmaWNhdGlvbk1ldGhvZFR5cGVzO1xuICAgIH0sIHt9KTtcblxuICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS52ZXJpZmljYXRpb25NZXRob2RzJFxuICAgICAgLnN1YnNjcmliZSgodmVyaWZpY2F0aW9uTWV0aG9kcykgPT4ge1xuICAgICAgICB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZHMgPSB2ZXJpZmljYXRpb25NZXRob2RzO1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBkZWZhdWx0U21zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2Uuc21zVmVyaWZpY2F0aW9uTWV0aG9kc1xuICAgIC5zb21lKCh2ZXJpZmljYXRpb25NZXRob2QpID0+IHtcbiAgICAgIHJldHVybiB2ZXJpZmljYXRpb25NZXRob2QuZGVmYXVsdDtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVmYXVsdEFwcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmFwcFZlcmlmaWNhdGlvbk1ldGhvZHNcbiAgICAuc29tZSgodmVyaWZpY2F0aW9uTWV0aG9kKSA9PiB7XG4gICAgICByZXR1cm4gdmVyaWZpY2F0aW9uTWV0aG9kLmRlZmF1bHQ7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlZmF1bHRFbWFpbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmVtYWlsVmVyaWZpY2F0aW9uTWV0aG9kc1xuICAgIC5zb21lKCh2ZXJpZmljYXRpb25NZXRob2QpID0+IHtcbiAgICAgIHJldHVybiB2ZXJpZmljYXRpb25NZXRob2QuZGVmYXVsdDtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGV4dEhhc1ZlcmlmaWNhdGlvbk1ldGhvZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmhhc1ZlcmlmaWNhdGlvbk1ldGhvZChWZXJpZmljYXRpb25NZXRob2RUeXBlLlNtcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFwcEhhc1ZlcmlmaWNhdGlvbk1ldGhvZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmhhc1ZlcmlmaWNhdGlvbk1ldGhvZChWZXJpZmljYXRpb25NZXRob2RUeXBlLkFwcCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVtYWlsSGFzVmVyaWZpY2F0aW9uTWV0aG9kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UuaGFzVmVyaWZpY2F0aW9uTWV0aG9kKFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuRW1haWwpO1xuICB9XG5cbiAgcHVibGljIHRleHRNZXNzYWdlTWFuYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuX2RpYWxvZy5vcGVuKE51bWJlcnNDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdHdvRmFjdG9yTWFuYWdlU2VydmljZTogdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLFxuICAgICAgICBkZWZhdWx0Q291bnRyeTogdGhpcy5fZGVmYXVsdENvdW50cnksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHRleHRNZXNzYWdlQWRkKCk6IHZvaWQge1xuICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS5hZGRTbXMkKHRoaXMuX2RlZmF1bHRDb3VudHJ5KVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGVtYWlsTWVzc2FnZU1hbmFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kaWFsb2cub3BlbihFbWFpbHNDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdHdvRmFjdG9yTWFuYWdlU2VydmljZTogdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWFpbE1lc3NhZ2VBZGQoKTogdm9pZCB7XG4gICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmFkZEVtYWlsJCgpXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYXBwUmVtb3ZlKCk6IHZvaWQge1xuICAgIGNvbnN0IHZlcmlmaWNhdGlvbk1ldGhvZCA9IHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kc1xuICAgICAgLmZpbmQoKF92ZXJpZmljYXRpb25NZXRob2QpID0+IHtcbiAgICAgICAgcmV0dXJuIF92ZXJpZmljYXRpb25NZXRob2QudHlwZSA9PT0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5BcHA7XG4gICAgICB9KTtcblxuICAgIGlmKHZlcmlmaWNhdGlvbk1ldGhvZCkge1xuICAgICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmFjY291bnRWZXJpZnkkKClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLnZlcmlmaWNhdGlvbk1ldGhvZERlbGV0ZSQodmVyaWZpY2F0aW9uTWV0aG9kKSksXG4gICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnUmVtb3ZlZCBBcHAgQXV0aGVudGljYXRvciB2ZXJpZmljYXRpb24gbWV0aG9kJyk7XG4gICAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhcHBBZGQoKTogdm9pZCB7XG4gICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmFkZEFwcCQoKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZnMtZGlhbG9nPlxuICA8aDEgbWF0LWRpYWxvZy10aXRsZT4yLVN0ZXAgVmVyaWZpY2F0aW9uPC9oMT5cbiAgPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8dGFibGU+XG4gICAgICA8dHIgKm5nSWY9XCJ2ZXJpZmljYXRpb25NZXRob2RUeXBlc1tWZXJpZmljYXRpb25NZXRob2RUeXBlLlNtc11cIj5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIDxtYXQtaWNvbj50ZXh0c21zPC9tYXQtaWNvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eXBlXCI+XG4gICAgICAgICAgICA8c3Bhbj5UZXh0IE1lc3NhZ2U8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRleHRIYXNWZXJpZmljYXRpb25NZXRob2RcIiBjbGFzcz1cImVuYWJsZWRcIj48L3NwYW4+XG4gICAgICAgICAgICA8YXBwLWRlZmF1bHRlZCAqbmdJZj1cImRlZmF1bHRTbXNcIj48L2FwcC1kZWZhdWx0ZWQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+XG4gICAgICAgICAgICBWZXJpZmljYXRpb24gY29kZXMgYXJlIHNlbnQgYnkgdGV4dCBtZXNzYWdlXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGV4dEhhc1ZlcmlmaWNhdGlvbk1ldGhvZFwiPlxuICAgICAgICAgICAgICB0byA8c3BhbiBjbGFzcz1cIml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGl0ZW0gb2YgdHdvRmFjdG9yTWFuYWdlU2VydmljZS5zbXNWZXJpZmljYXRpb25NZXRob2RzXCI+e3tpdGVtLnBob25lTnVtYmVyIHwgZnNQaG9uZX19PC9zcGFuPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIDxidXR0b24gXG4gICAgICAgICAgICAgICpuZ0lmPVwidGV4dEhhc1ZlcmlmaWNhdGlvbk1ldGhvZDsgZWxzZSB0ZXh0TWVzc2FnZU1hbmFnZUJ1dHRvblwiXG4gICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRleHRNZXNzYWdlTWFuYWdlKClcIj5cbiAgICAgICAgICAgICAgTWFuYWdlXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RleHRNZXNzYWdlTWFuYWdlQnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxuICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRleHRNZXNzYWdlQWRkKClcIj5cbiAgICAgICAgICAgICAgVHVybiBPblxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgKm5nSWY9XCJ2ZXJpZmljYXRpb25NZXRob2RUeXBlc1tWZXJpZmljYXRpb25NZXRob2RUeXBlLkVtYWlsXVwiPlxuICAgICAgICA8dGQ+XG4gICAgICAgICAgPG1hdC1pY29uPmVtYWlsPC9tYXQtaWNvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eXBlXCI+XG4gICAgICAgICAgICA8c3Bhbj5FbWFpbDwvc3Bhbj4gXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImVtYWlsSGFzVmVyaWZpY2F0aW9uTWV0aG9kXCIgY2xhc3M9XCJlbmFibGVkXCI+PC9zcGFuPlxuICAgICAgICAgICAgPGFwcC1kZWZhdWx0ZWQgKm5nSWY9XCJkZWZhdWx0RW1haWxcIj48L2FwcC1kZWZhdWx0ZWQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+XG4gICAgICAgICAgICBWZXJpZmljYXRpb24gY29kZXMgYXJlIHNlbnQgYnkgZW1haWxcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbWFpbEhhc1ZlcmlmaWNhdGlvbk1ldGhvZFwiPlxuICAgICAgICAgICAgICB0byA8c3BhbiBjbGFzcz1cIml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGl0ZW0gb2YgdHdvRmFjdG9yTWFuYWdlU2VydmljZS5lbWFpbFZlcmlmaWNhdGlvbk1ldGhvZHNcIj57e2l0ZW0uZW1haWx9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICAgICAqbmdJZj1cImVtYWlsSGFzVmVyaWZpY2F0aW9uTWV0aG9kOyBlbHNlIGVtYWlsTWVzc2FnZU1hbmFnZUJ1dHRvblwiXG4gICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImVtYWlsTWVzc2FnZU1hbmFnZSgpXCI+XG4gICAgICAgICAgICBNYW5hZ2VcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNlbWFpbE1lc3NhZ2VNYW5hZ2VCdXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbiBcbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJlbWFpbE1lc3NhZ2VBZGQoKVwiPlxuICAgICAgICAgICAgVHVybiBPblxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0ciAqbmdJZj1cInZlcmlmaWNhdGlvbk1ldGhvZFR5cGVzW1ZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuQXBwXVwiPlxuICAgICAgICA8dGQ+XG4gICAgICAgICAgPG1hdC1pY29uPnBob25lX2lwaG9uZTwvbWF0LWljb24+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHlwZVwiPlxuICAgICAgICAgICAgPHNwYW4+QXV0aGVudGljYXRvciBBcHA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImFwcEhhc1ZlcmlmaWNhdGlvbk1ldGhvZFwiIGNsYXNzPVwiZW5hYmxlZFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxhcHAtZGVmYXVsdGVkICpuZ0lmPVwiZGVmYXVsdEFwcFwiPjwvYXBwLWRlZmF1bHRlZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGxcIj5WZXJpZmljYXRpb24gY29kZSBpcyBnZW5lcmF0ZWQgYnkgYW4gYXV0aGVudGljYXRvciBhcHAgc3VjaCBhcyBBdXRoeSBvciBHb29nbGUgQXV0aGVudGljYXRvcjwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQ+XG4gICAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAgICAgKm5nSWY9XCJhcHBIYXNWZXJpZmljYXRpb25NZXRob2Q7IGVsc2UgYXBwTWVzc2FnZU1hbmFnZUJ1dHRvblwiXG4gICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcFJlbW92ZSgpXCI+XG4gICAgICAgICAgICBSZW1vdmVcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhcHBNZXNzYWdlTWFuYWdlQnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b24gXG4gICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwQWRkKClcIj5cbiAgICAgICAgICAgIFR1cm4gT25cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+IFxuICAgIDwvdGFibGU+ICAgICAgXG4gIDwvbWF0LWRpYWxvZy1jb250ZW50PlxuICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxidXR0b25cbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW21hdC1kaWFsb2ctY2xvc2VdPVwidW5kZWZpbmVkXCI+XG4gICAgICBDbG9zZVxuICAgIDwvYnV0dG9uPlxuICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbjwvZnMtZGlhbG9nPlxuIl19
@@ -1,87 +0,0 @@
1
- import { Component, Inject, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, } from '@angular/core';
2
- import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
3
- import { FsMessage } from '@firestitch/message';
4
- import { FsFormDirective } from '@firestitch/form';
5
- import { of } from 'rxjs';
6
- import { switchMap, tap } from 'rxjs/operators';
7
- import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/material/dialog";
10
- import * as i2 from "@firestitch/message";
11
- import * as i3 from "@firestitch/dialog";
12
- import * as i4 from "../../../verification/components/2fa-verification/2fa-verification.component";
13
- import * as i5 from "@angular/material/form-field";
14
- import * as i6 from "@firestitch/phone";
15
- import * as i7 from "@angular/material/checkbox";
16
- import * as i8 from "@angular/material/button";
17
- import * as i9 from "@angular/forms";
18
- import * as i10 from "@firestitch/form";
19
- import * as i11 from "@angular/common";
20
- import * as i12 from "@angular/material/input";
21
- export class NumberComponent {
22
- constructor(_data, _dialogRef, _cdRef, _message) {
23
- this._data = _data;
24
- this._dialogRef = _dialogRef;
25
- this._cdRef = _cdRef;
26
- this._message = _message;
27
- this.trustDevice = true;
28
- this.verificationMethod = null;
29
- this.resend = () => {
30
- return this.twoFactorManageService.verificationMethodResend()
31
- .pipe(tap(() => {
32
- this._message.success('Resent verification code');
33
- }));
34
- };
35
- this.submit = () => {
36
- return of(true)
37
- .pipe(switchMap(() => {
38
- return this.verificationMethod ?
39
- this.twoFactorManageService.verificationMethodVerify$(this.code, this.trustDevice)
40
- .pipe(tap((verificationMethod) => {
41
- this._message.success('Created text message verification method');
42
- this._dialogRef.close(verificationMethod);
43
- })) :
44
- this.twoFactorManageService.verificationMethodCreate$({
45
- type: VerificationMethodType.Sms,
46
- phoneNumber: this.phone.number,
47
- phoneCode: this.phone.countryCode,
48
- phoneCountry: this.phone.isoCode,
49
- default: this.default,
50
- })
51
- .pipe(tap((verificationMethod) => {
52
- this.verificationMethod = verificationMethod;
53
- this.form.clear();
54
- this._cdRef.markForCheck();
55
- }));
56
- }));
57
- };
58
- this.twoFactorManageService = _data.twoFactorManageService;
59
- this.defaultCountry = _data.defaultCountry;
60
- this.default = !this.twoFactorManageService.hasVerificationMethods;
61
- }
62
- codeCompleted() {
63
- if (!this.form.submitting) {
64
- this.form.triggerSubmit();
65
- }
66
- }
67
- codeChanged(code) {
68
- this.code = code;
69
- }
70
- }
71
- NumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NumberComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i0.ChangeDetectorRef }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
72
- NumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NumberComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: FsFormDirective, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"submit\" [autocomplete]=\"false\">\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 <fs-2fa-verification\n [verificationMethod]=\"verificationMethod\"\n (codeChanged)=\"codeChanged($event)\"\n [resend]=\"resend\"\n [formatRecipient]=\"true\"\n [(trustDevice)]=\"trustDevice\">\n </fs-2fa-verification>\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 <input \n matInput\n fsPhoneField\n [(ngModel)]=\"phone\"\n [required]=\"true\"\n [country]=\"defaultCountry\"\n [mode]=\"'object'\"\n autocomplete=\"off\"\n name=\"phone\">\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:5px;display:block}mat-form-field{width:100%}mat-dialog-content{width:400px}p{margin-top:0}h1{display:flex;align-items:center}h1 mat-icon{margin-right:5px}\n"], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4.Fs2faVerificationComponent, selector: "fs-2fa-verification", inputs: ["verificationMethod", "resend", "showTrustedDevice", "trustDevice", "codeLength", "trustDays", "formatRecipient", "getVerificationMethods", "selectVerificationMethod"], outputs: ["verified", "codeChanged", "codeCompleted", "trustDeviceChange"] }, { type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i6.FsPhoneFieldComponent, selector: "[fsPhoneField]", inputs: ["allowNumberExt", "placeholder", "required", "disabled", "mode", "country", "autocomplete"] }, { type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i10.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.MatLabel, selector: "mat-label" }, { type: i12.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: i9.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: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i10.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i9.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i10.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i10.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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NumberComponent, decorators: [{
74
- type: Component,
75
- args: [{
76
- templateUrl: './number.component.html',
77
- styleUrls: ['./number.component.scss'],
78
- changeDetection: ChangeDetectionStrategy.OnPush,
79
- }]
80
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
81
- type: Inject,
82
- args: [MAT_DIALOG_DATA]
83
- }] }, { type: i1.MatDialogRef }, { type: i0.ChangeDetectorRef }, { type: i2.FsMessage }]; }, propDecorators: { form: [{
84
- type: ViewChild,
85
- args: [FsFormDirective, { static: false }]
86
- }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsR0FDekUsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRekYsTUFBTSxPQUFPLGVBQWU7SUFhMUIsWUFDbUMsS0FBVSxFQUNuQyxVQUF5QyxFQUN6QyxNQUF5QixFQUN6QixRQUFtQjtRQUhNLFVBQUssR0FBTCxLQUFLLENBQUs7UUFDbkMsZUFBVSxHQUFWLFVBQVUsQ0FBK0I7UUFDekMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVR0QixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFlMUIsV0FBTSxHQUFHLEdBQXFCLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsd0JBQXdCLEVBQUU7aUJBQzFELElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFDcEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNOLENBQUMsQ0FBQTtRQUVNLFdBQU0sR0FBRyxHQUFHLEVBQUU7WUFDbkIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDO2lCQUNaLElBQUksQ0FDSCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNiLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7b0JBQzlCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUM7eUJBQy9FLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO3dCQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO3dCQUNsRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO29CQUM1QyxDQUFDLENBQUMsQ0FDSCxDQUFDLENBQUM7b0JBQ0wsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHlCQUF5QixDQUFDO3dCQUNwRCxJQUFJLEVBQUUsc0JBQXNCLENBQUMsR0FBRzt3QkFDaEMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTt3QkFDOUIsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVzt3QkFDakMsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTzt3QkFDaEMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO3FCQUN0QixDQUFDO3lCQUNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO3dCQUN6QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7d0JBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzdCLENBQUMsQ0FBQyxDQUNILENBQUM7WUFDTixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ04sQ0FBQyxDQUFDO1FBMUNBLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUMsc0JBQXNCLENBQUM7UUFDM0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQUM7SUFDckUsQ0FBQztJQXlDTSxhQUFhO1FBQ2xCLElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFJO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7OzZHQXZFVSxlQUFlLGtCQWNoQixlQUFlO2lHQWRkLGVBQWUsMEZBRWYsZUFBZSxnREN0QjVCLDZyREFzREE7NEZEbENhLGVBQWU7a0JBTDNCLFNBQVM7bUJBQUM7b0JBQ1QsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3RDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs7MEJBZUksTUFBTTsyQkFBQyxlQUFlOytIQVhsQixJQUFJO3NCQURWLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgSW5qZWN0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBGc0Zvcm1EaXJlY3RpdmUgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVHdvRmFjdG9yTWFuYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcy92ZXJpZmljYXRpb24tbWV0aG9kLXR5cGUuZW51bSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9udW1iZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlckNvbXBvbmVudCB7XG5cbiAgQFZpZXdDaGlsZChGc0Zvcm1EaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgZm9ybTogRnNGb3JtRGlyZWN0aXZlO1xuXG4gIHB1YmxpYyBwaG9uZTtcbiAgcHVibGljIGNvZGU7XG4gIHB1YmxpYyBkZWZhdWx0O1xuICBwdWJsaWMgdHJ1c3REZXZpY2UgPSB0cnVlO1xuICBwdWJsaWMgdmVyaWZpY2F0aW9uTWV0aG9kID0gbnVsbDtcbiAgcHVibGljIGRlZmF1bHRDb3VudHJ5O1xuICBwdWJsaWMgdHdvRmFjdG9yTWFuYWdlU2VydmljZTogVHdvRmFjdG9yTWFuYWdlU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBfZGF0YTogYW55LFxuICAgIHByaXZhdGUgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE51bWJlckNvbXBvbmVudD4sXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX21lc3NhZ2U6IEZzTWVzc2FnZSxcbiAgKSB7XG4gICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlID0gX2RhdGEudHdvRmFjdG9yTWFuYWdlU2VydmljZTtcbiAgICB0aGlzLmRlZmF1bHRDb3VudHJ5ID0gX2RhdGEuZGVmYXVsdENvdW50cnk7XG4gICAgdGhpcy5kZWZhdWx0ID0gIXRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS5oYXNWZXJpZmljYXRpb25NZXRob2RzO1xuICB9XG5cbiAgcHVibGljIHJlc2VuZCA9ICgpOiBPYnNlcnZhYmxlPHZvaWQ+ID0+IHtcbiAgICByZXR1cm4gdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLnZlcmlmaWNhdGlvbk1ldGhvZFJlc2VuZCgpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ1Jlc2VudCB2ZXJpZmljYXRpb24gY29kZScpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0ID0gKCkgPT4ge1xuICAgIHJldHVybiBvZih0cnVlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kID9cbiAgICAgICAgICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS52ZXJpZmljYXRpb25NZXRob2RWZXJpZnkkKHRoaXMuY29kZSwgdGhpcy50cnVzdERldmljZSlcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKCh2ZXJpZmljYXRpb25NZXRob2QpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnQ3JlYXRlZCB0ZXh0IG1lc3NhZ2UgdmVyaWZpY2F0aW9uIG1ldGhvZCcpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKHZlcmlmaWNhdGlvbk1ldGhvZCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICkgOlxuICAgICAgICAgICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLnZlcmlmaWNhdGlvbk1ldGhvZENyZWF0ZSQoe1xuICAgICAgICAgICAgICB0eXBlOiBWZXJpZmljYXRpb25NZXRob2RUeXBlLlNtcyxcbiAgICAgICAgICAgICAgcGhvbmVOdW1iZXI6IHRoaXMucGhvbmUubnVtYmVyLFxuICAgICAgICAgICAgICBwaG9uZUNvZGU6IHRoaXMucGhvbmUuY291bnRyeUNvZGUsXG4gICAgICAgICAgICAgIHBob25lQ291bnRyeTogdGhpcy5waG9uZS5pc29Db2RlLFxuICAgICAgICAgICAgICBkZWZhdWx0OiB0aGlzLmRlZmF1bHQsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCgodmVyaWZpY2F0aW9uTWV0aG9kKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy52ZXJpZmljYXRpb25NZXRob2QgPSB2ZXJpZmljYXRpb25NZXRob2Q7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9O1xuXG4gIHB1YmxpYyBjb2RlQ29tcGxldGVkKCk6IHZvaWQge1xuICAgIGlmKCF0aGlzLmZvcm0uc3VibWl0dGluZykge1xuICAgICAgdGhpcy5mb3JtLnRyaWdnZXJTdWJtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY29kZUNoYW5nZWQoY29kZSk6IHZvaWQge1xuICAgIHRoaXMuY29kZSA9IGNvZGU7XG4gIH1cblxufVxuIiwiPGZvcm0gZnNGb3JtIFtzdWJtaXRdPVwic3VibWl0XCIgW2F1dG9jb21wbGV0ZV09XCJmYWxzZVwiPlxuICA8ZnMtZGlhbG9nPlxuICAgIDxoMSBtYXQtZGlhbG9nLXRpdGxlPlxuICAgICAgVGV4dCBNZXNzYWdlIFNldHVwXG4gICAgPC9oMT5cbiAgICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZlcmlmaWNhdGlvbk1ldGhvZDsgZWxzZSBub3RWZXJpZmljYXRpb25NZXRob2RcIj5cbiAgICAgICAgPGZzLTJmYS12ZXJpZmljYXRpb25cbiAgICAgICAgICBbdmVyaWZpY2F0aW9uTWV0aG9kXT1cInZlcmlmaWNhdGlvbk1ldGhvZFwiXG4gICAgICAgICAgKGNvZGVDaGFuZ2VkKT1cImNvZGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIFtyZXNlbmRdPVwicmVzZW5kXCJcbiAgICAgICAgICBbZm9ybWF0UmVjaXBpZW50XT1cInRydWVcIlxuICAgICAgICAgIFsodHJ1c3REZXZpY2UpXT1cInRydXN0RGV2aWNlXCI+XG4gICAgICAgIDwvZnMtMmZhLXZlcmlmaWNhdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI25vdFZlcmlmaWNhdGlvbk1ldGhvZD5cbiAgICAgICAgPHA+VGhlIGFwcCB3aWxsIG9ubHkgdXNlIHRoaXMgbnVtYmVyIGZvciB2ZXJpZnlpbmcgeW91ciBhY2NvdW50IHNlY3VyaXR5LiBNZXNzYWdlIGFuZCBkYXRhIHJhdGVzIG1heSBhcHBseSBieSB5b3VyIGNlbGwgcGhvbmUgcHJvdmlkZXIuPC9wPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1sYWJlbD5QaG9uZSBudW1iZXI8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgXG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgZnNQaG9uZUZpZWxkXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBob25lXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtjb3VudHJ5XT1cImRlZmF1bHRDb3VudHJ5XCJcbiAgICAgICAgICAgIFttb2RlXT1cIidvYmplY3QnXCJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICBuYW1lPVwicGhvbmVcIj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1jaGVja2JveCBcbiAgICAgICAgICAgIG5hbWU9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgTWFrZSB0aGlzIHRoZSBkZWZhdWx0IDItc3RlcCB2ZXJpZmljYXRpb24gbWV0aG9kXG4gICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L21hdC1kaWFsb2ctY29udGVudD5cbiAgICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIj5cbiAgICAgICAgTmV4dFxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFttYXQtZGlhbG9nLWNsb3NlXT1cInVuZGVmaW5lZFwiPlxuICAgICAgICBDYW5jZWxcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuICA8L2ZzLWRpYWxvZz5cbjwvZm9ybT5cbiJdfQ==
@@ -1,51 +0,0 @@
1
- import { Component, Inject, ChangeDetectionStrategy, ViewChild, } from '@angular/core';
2
- import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import { FsMessage } from '@firestitch/message';
4
- import { VerificationMethodsComponent } from '../../../../modules/verification-methods/components/verification-methods';
5
- import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/material/dialog";
8
- import * as i2 from "@firestitch/message";
9
- import * as i3 from "@firestitch/dialog";
10
- import * as i4 from "@angular/material/icon";
11
- import * as i5 from "../../../verification-methods/components/verification-methods/verification-methods.component";
12
- import * as i6 from "@angular/material/button";
13
- export class NumbersComponent {
14
- constructor(_data, _dialogRef, _message) {
15
- this._data = _data;
16
- this._dialogRef = _dialogRef;
17
- this._message = _message;
18
- this.VerificationMethodType = VerificationMethodType;
19
- this.twoFactorManageService = _data.twoFactorManageService;
20
- this.defaultCountry = _data.defaultCountry;
21
- }
22
- add() {
23
- this.twoFactorManageService.addSms$(this.defaultCountry)
24
- .subscribe(() => {
25
- this.verificationMethods.reload();
26
- });
27
- }
28
- deleted() {
29
- this._message.success('Deleted text message verification method');
30
- if (!this.twoFactorManageService.hasVerificationMethod(VerificationMethodType.Sms)) {
31
- this._dialogRef.close();
32
- }
33
- }
34
- }
35
- NumbersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NumbersComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
36
- NumbersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NumbersComponent, selector: "ng-component", viewQueries: [{ propertyName: "verificationMethods", first: true, predicate: VerificationMethodsComponent, descendants: true }], ngImport: i0, template: "<fs-dialog>\n <h1 mat-dialog-title>\n <mat-icon>textsms</mat-icon> Text Message Numbers\n </h1>\n <mat-dialog-content>\n <fs-2fa-verification-methods\n [type]=\"VerificationMethodType.Sms\"\n [twoFactorManageService]=\"twoFactorManageService\"\n (deleted)=\"deleted()\">\n </fs-2fa-verification-methods> \n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n type=\"button\"\n color=\"primary\"\n [mat-dialog-close]=\"undefined\">\n Close\n </button>\n <button\n mat-button\n (click)=\"add()\"\n type=\"button\">\n Add Number\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: [""], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.VerificationMethodsComponent, selector: "fs-2fa-verification-methods", inputs: ["type", "accountVerify", "verificationMethodsFetch", "verificationMethodDelete", "verificationMethodDefault", "twoFactorManageService"], outputs: ["deleted"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NumbersComponent, decorators: [{
38
- type: Component,
39
- args: [{
40
- templateUrl: './numbers.component.html',
41
- styleUrls: ['./numbers.component.scss'],
42
- changeDetection: ChangeDetectionStrategy.OnPush,
43
- }]
44
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
45
- type: Inject,
46
- args: [MAT_DIALOG_DATA]
47
- }] }, { type: i1.MatDialogRef }, { type: i2.FsMessage }]; }, propDecorators: { verificationMethods: [{
48
- type: ViewChild,
49
- args: [VerificationMethodsComponent]
50
- }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbWFuYWdlL2NvbXBvbmVudHMvbnVtYmVycy9udW1iZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9udW1iZXJzL251bWJlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFBRSxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxHQUN0RCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7Ozs7QUFTekYsTUFBTSxPQUFPLGdCQUFnQjtJQVMzQixZQUNtQyxLQUFVLEVBQ25DLFVBQTBDLEVBQzFDLFFBQW1CO1FBRk0sVUFBSyxHQUFMLEtBQUssQ0FBSztRQUNuQyxlQUFVLEdBQVYsVUFBVSxDQUFnQztRQUMxQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBTHRCLDJCQUFzQixHQUFHLHNCQUFzQixDQUFDO1FBT3JELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUMsc0JBQXNCLENBQUM7UUFDM0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO0lBQzdDLENBQUM7SUFFTSxHQUFHO1FBQ1IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQ3JELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDbEUsSUFBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqRixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7OEdBOUJVLGdCQUFnQixrQkFVakIsZUFBZTtrR0FWZCxnQkFBZ0IseUdBRWhCLDRCQUE0QixnRENsQnpDLDByQkEyQkE7NEZEWGEsZ0JBQWdCO2tCQUw1QixTQUFTO21CQUFDO29CQUNULFdBQVcsRUFBRSwwQkFBMEI7b0JBQ3ZDLFNBQVMsRUFBRSxDQUFDLDBCQUEwQixDQUFDO29CQUN2QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQVdJLE1BQU07MkJBQUMsZUFBZTsrRkFQbEIsbUJBQW1CO3NCQUR6QixTQUFTO3VCQUFDLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgSW5qZWN0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBWZXJpZmljYXRpb25NZXRob2RzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kdWxlcy92ZXJpZmljYXRpb24tbWV0aG9kcy9jb21wb25lbnRzL3ZlcmlmaWNhdGlvbi1tZXRob2RzJztcbmltcG9ydCB7IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcy92ZXJpZmljYXRpb24tbWV0aG9kLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBUd29GYWN0b3JNYW5hZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL251bWJlcnMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlcnNDb21wb25lbnQge1xuXG4gIEBWaWV3Q2hpbGQoVmVyaWZpY2F0aW9uTWV0aG9kc0NvbXBvbmVudCkgXG4gIHB1YmxpYyB2ZXJpZmljYXRpb25NZXRob2RzOiBWZXJpZmljYXRpb25NZXRob2RzQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBkZWZhdWx0Q291bnRyeTtcbiAgcHVibGljIHR3b0ZhY3Rvck1hbmFnZVNlcnZpY2U6IFR3b0ZhY3Rvck1hbmFnZVNlcnZpY2U7XG4gIHB1YmxpYyBWZXJpZmljYXRpb25NZXRob2RUeXBlID0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBfZGF0YTogYW55LCAgIFxuICAgIHByaXZhdGUgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE51bWJlcnNDb21wb25lbnQ+LFxuICAgIHByaXZhdGUgX21lc3NhZ2U6IEZzTWVzc2FnZSxcbiAgKSB7XG4gICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlID0gX2RhdGEudHdvRmFjdG9yTWFuYWdlU2VydmljZTtcbiAgICB0aGlzLmRlZmF1bHRDb3VudHJ5ID0gX2RhdGEuZGVmYXVsdENvdW50cnk7XG4gIH1cblxuICBwdWJsaWMgYWRkKCk6IHZvaWQge1xuICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS5hZGRTbXMkKHRoaXMuZGVmYXVsdENvdW50cnkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy52ZXJpZmljYXRpb25NZXRob2RzLnJlbG9hZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0RlbGV0ZWQgdGV4dCBtZXNzYWdlIHZlcmlmaWNhdGlvbiBtZXRob2QnKTtcbiAgICBpZighdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLmhhc1ZlcmlmaWNhdGlvbk1ldGhvZChWZXJpZmljYXRpb25NZXRob2RUeXBlLlNtcykpIHtcbiAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZnMtZGlhbG9nPlxuICA8aDEgbWF0LWRpYWxvZy10aXRsZT5cbiAgICA8bWF0LWljb24+dGV4dHNtczwvbWF0LWljb24+IFRleHQgTWVzc2FnZSBOdW1iZXJzXG4gIDwvaDE+XG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPGZzLTJmYS12ZXJpZmljYXRpb24tbWV0aG9kc1xuICAgICAgW3R5cGVdPVwiVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5TbXNcIlxuICAgICAgW3R3b0ZhY3Rvck1hbmFnZVNlcnZpY2VdPVwidHdvRmFjdG9yTWFuYWdlU2VydmljZVwiXG4gICAgICAoZGVsZXRlZCk9XCJkZWxldGVkKClcIj5cbiAgICA8L2ZzLTJmYS12ZXJpZmljYXRpb24tbWV0aG9kcz4gXG4gIDwvbWF0LWRpYWxvZy1jb250ZW50PlxuICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxidXR0b25cbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgW21hdC1kaWFsb2ctY2xvc2VdPVwidW5kZWZpbmVkXCI+XG4gICAgICBDbG9zZVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAoY2xpY2spPVwiYWRkKClcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICBBZGQgTnVtYmVyXG4gICAgPC9idXR0b24+XG4gIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuPC9mcy1kaWFsb2c+XG4iXX0=
@@ -1,37 +0,0 @@
1
- import { Component, ChangeDetectorRef, Input, ChangeDetectionStrategy, } from '@angular/core';
2
- import QRCode from 'qrcode';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- export class QrCodeComponent {
6
- constructor(_cdRef) {
7
- this._cdRef = _cdRef;
8
- }
9
- ngOnInit() {
10
- QRCode.toDataURL(this.value, {
11
- errorCorrectionLevel: 'H',
12
- width: 300,
13
- height: 300,
14
- })
15
- .then((url) => {
16
- this.image = url;
17
- this._cdRef.markForCheck();
18
- })
19
- .catch((err) => {
20
- console.error(err);
21
- });
22
- }
23
- }
24
- QrCodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: QrCodeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
25
- QrCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: QrCodeComponent, selector: "app-qr-code", inputs: { value: "value" }, ngImport: i0, template: "<ng-container *ngIf=\"image\">\n <img [src]=\"image\">\n</ng-container>", styles: ["img{display:flex;margin:auto}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: QrCodeComponent, decorators: [{
27
- type: Component,
28
- args: [{
29
- selector: 'app-qr-code',
30
- templateUrl: './qr-code.component.html',
31
- styleUrls: ['./qr-code.component.scss'],
32
- changeDetection: ChangeDetectionStrategy.OnPush,
33
- }]
34
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { value: [{
35
- type: Input
36
- }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbWFuYWdlL2NvbXBvbmVudHMvcXItY29kZS9xci1jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9xci1jb2RlL3FyLWNvZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEdBQ3JFLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7O0FBUTVCLE1BQU0sT0FBTyxlQUFlO0lBTTFCLFlBQ1UsTUFBeUI7UUFBekIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7SUFDaEMsQ0FBQztJQUVHLFFBQVE7UUFDYixNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDM0Isb0JBQW9CLEVBQUUsR0FBRztZQUN6QixLQUFLLEVBQUUsR0FBRztZQUNWLE1BQU0sRUFBRSxHQUFHO1NBQ1osQ0FBQzthQUNELElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs2R0F2QlUsZUFBZTtpR0FBZixlQUFlLCtFQ1o1QiwwRUFFZTs0RkRVRixlQUFlO2tCQU4zQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixXQUFXLEVBQUUsMEJBQTBCO29CQUN2QyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEO3dHQUdpQixLQUFLO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdG9yUmVmLCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgUVJDb2RlIGZyb20gJ3FyY29kZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1xci1jb2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3FyLWNvZGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9xci1jb2RlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBRckNvZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWx1ZTtcblxuICBwdWJsaWMgaW1hZ2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIFFSQ29kZS50b0RhdGFVUkwodGhpcy52YWx1ZSwgeyBcbiAgICAgIGVycm9yQ29ycmVjdGlvbkxldmVsOiAnSCcsXG4gICAgICB3aWR0aDogMzAwLFxuICAgICAgaGVpZ2h0OiAzMDAsXG4gICAgfSlcbiAgICAudGhlbigodXJsKSA9PiB7XG4gICAgICB0aGlzLmltYWdlID0gdXJsO1xuICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgfSk7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImltYWdlXCI+XG4gIDxpbWcgW3NyY109XCJpbWFnZVwiPlxuPC9uZy1jb250YWluZXI+Il19
@@ -1,40 +0,0 @@
1
- import { Component, ChangeDetectionStrategy, Input, ChangeDetectorRef } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { finalize, takeUntil } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/material/progress-spinner";
6
- import * as i2 from "@angular/common";
7
- export class ResendComponent {
8
- constructor(_cdRef) {
9
- this._cdRef = _cdRef;
10
- this.resendInProgress = false;
11
- this._destroy$ = new Subject();
12
- }
13
- resendClick() {
14
- this.resendInProgress = true;
15
- this.resend()
16
- .pipe(finalize(() => {
17
- this.resendInProgress = false;
18
- this._cdRef.markForCheck();
19
- }), takeUntil(this._destroy$))
20
- .subscribe();
21
- }
22
- ngOnDestroy() {
23
- this._destroy$.next();
24
- this._destroy$.complete();
25
- }
26
- }
27
- ResendComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
28
- ResendComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ResendComponent, selector: "app-resend", inputs: { resend: "resend" }, ngImport: i0, template: "<ng-container *ngIf=\"!resendInProgress else sending\">\n Didn't receive a code? <a (click)=\"resendClick()\">Resend</a>\n</ng-container>\n<ng-template #sending>\n <div class=\"sending\">\n <mat-spinner [diameter]=\"12\"></mat-spinner> Sending\n </div>\n</ng-template>\n\n", styles: ["small{color:inherit}.sending{display:inline-flex;align-items:center}.sending mat-spinner{margin-right:2px}\n"], components: [{ type: i1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendComponent, decorators: [{
30
- type: Component,
31
- args: [{
32
- selector: 'app-resend',
33
- templateUrl: './resend.component.html',
34
- styleUrls: ['./resend.component.scss'],
35
- changeDetection: ChangeDetectionStrategy.OnPush,
36
- }]
37
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { resend: [{
38
- type: Input
39
- }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9yZXNlbmQvY29tcG9uZW50cy9yZXNlbmQvcmVzZW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9yZXNlbmQvY29tcG9uZW50cy9yZXNlbmQvcmVzZW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQXdCLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFTckQsTUFBTSxPQUFPLGVBQWU7SUFRMUIsWUFDVSxNQUF5QjtRQUF6QixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUw1QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFeEIsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFJL0IsQ0FBQztJQUVHLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxFQUFFO2FBQ1YsSUFBSSxDQUNILFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7NkdBNUJVLGVBQWU7aUdBQWYsZUFBZSxnRkNYNUIsd1JBU0E7NEZERWEsZUFBZTtrQkFOM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3RDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDt3R0FHaUIsTUFBTTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJlc2VuZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXNlbmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXNlbmQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFJlc2VuZENvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgcHVibGljIHJlc2VuZDogKCkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuICBcbiAgcHVibGljIHJlc2VuZEluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBwdWJsaWMgcmVzZW5kQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5yZXNlbmRJblByb2dyZXNzID0gdHJ1ZTtcbiAgICB0aGlzLnJlc2VuZCgpXG4gICAgICAucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVzZW5kSW5Qcm9ncmVzcyA9IGZhbHNlOyAgXG4gICAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7ICBcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuXG59IiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFyZXNlbmRJblByb2dyZXNzIGVsc2Ugc2VuZGluZ1wiPlxuICBEaWRuJ3QgcmVjZWl2ZSBhIGNvZGU/IDxhIChjbGljayk9XCJyZXNlbmRDbGljaygpXCI+UmVzZW5kPC9hPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI3NlbmRpbmc+XG4gIDxkaXYgY2xhc3M9XCJzZW5kaW5nXCI+XG4gICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCIxMlwiPjwvbWF0LXNwaW5uZXI+IFNlbmRpbmdcbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG4iXX0=
@@ -1,130 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
- import { ControlContainer, NgForm } from '@angular/forms';
3
- import { Subject } from 'rxjs';
4
- import { FsMessage } from '@firestitch/message';
5
- import { FsDialog } from '@firestitch/dialog';
6
- import { filter, finalize, takeUntil, tap } from 'rxjs/operators';
7
- import { Fs2faVerificationMethodsComponent } from '../2fa-verification-methods/2fa-verification-methods.component';
8
- import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
9
- import { Fs2faVerificationCodeComponent } from '../2fa-verification-code/2fa-verification-code.component';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@firestitch/dialog";
12
- import * as i2 from "@firestitch/message";
13
- import * as i3 from "../2fa-verification-code/2fa-verification-code.component";
14
- import * as i4 from "@angular/material/checkbox";
15
- import * as i5 from "@angular/common";
16
- import * as i6 from "@angular/forms";
17
- import * as i7 from "@firestitch/form";
18
- import * as i8 from "@firestitch/phone";
19
- export class Fs2faVerificationComponent {
20
- constructor(_cdRef, _dialog, _message) {
21
- this._cdRef = _cdRef;
22
- this._dialog = _dialog;
23
- this._message = _message;
24
- this.showTrustedDevice = true;
25
- this.trustDevice = true;
26
- this.formatRecipient = false;
27
- this.verified = new EventEmitter();
28
- this.codeChanged = new EventEmitter();
29
- this.codeCompleted = new EventEmitter();
30
- this.trustDeviceChange = new EventEmitter();
31
- this.code = '';
32
- this.VerificationMethodType = VerificationMethodType;
33
- this._destroy$ = new Subject();
34
- }
35
- get recipient() {
36
- if (this.verificationMethod.type === VerificationMethodType.Email) {
37
- return this.verificationMethod.email;
38
- }
39
- if (this.verificationMethod.type === VerificationMethodType.Sms) {
40
- return this.verificationMethod.phoneNumber;
41
- }
42
- }
43
- ngOnInit() {
44
- this.codeChanged
45
- .pipe(takeUntil(this._destroy$))
46
- .subscribe((code) => {
47
- this.code = code;
48
- });
49
- }
50
- ngOnDestroy() {
51
- this._destroy$.next();
52
- this._destroy$.complete();
53
- }
54
- ngAfterViewInit() {
55
- this.verificationCodeComponent.focus();
56
- }
57
- resendCode() {
58
- return this.resend()
59
- .pipe(tap(() => {
60
- this.code = '';
61
- this._message.success('Resent Code');
62
- }), finalize(() => {
63
- this.verificationCodeComponent.focus();
64
- }));
65
- }
66
- showVerificationMethods() {
67
- this.getVerificationMethods()
68
- .subscribe((verificationMethods) => {
69
- this._dialog.open(Fs2faVerificationMethodsComponent, {
70
- data: {
71
- verificationMethod: this.verificationMethod,
72
- verificationMethods,
73
- selectVerificationMethod: this.selectVerificationMethod,
74
- }
75
- })
76
- .afterClosed()
77
- .pipe(filter((verificationMethod) => !!verificationMethod))
78
- .subscribe((verificationMethod) => {
79
- this.verificationMethod = verificationMethod;
80
- this.code = '';
81
- this._cdRef.markForCheck();
82
- setTimeout(() => {
83
- this.verificationCodeComponent.focus();
84
- });
85
- });
86
- });
87
- }
88
- }
89
- Fs2faVerificationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FsDialog }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
90
- Fs2faVerificationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: Fs2faVerificationComponent, selector: "fs-2fa-verification", inputs: { verificationMethod: "verificationMethod", resend: "resend", showTrustedDevice: "showTrustedDevice", trustDevice: "trustDevice", codeLength: "codeLength", trustDays: "trustDays", formatRecipient: "formatRecipient", getVerificationMethods: "getVerificationMethods", selectVerificationMethod: "selectVerificationMethod" }, outputs: { verified: "verified", codeChanged: "codeChanged", codeCompleted: "codeCompleted", trustDeviceChange: "trustDeviceChange" }, viewQueries: [{ propertyName: "verificationCodeComponent", first: true, predicate: Fs2faVerificationCodeComponent, descendants: true }], ngImport: i0, template: "<div class=\"code-container\">\n <fs-2fa-verification-code\n [recipient]=\"(formatRecipient && verificationMethod.type === VerificationMethodType.Sms) ? (recipient | fsPhone) : recipient\"\n [type]=\"verificationMethod.type\"\n [code]=\"code\"\n [codeLength]=\"codeLength\"\n (codeChanged)=\"codeChanged.emit($event)\"\n (codeCompleted)=\"codeCompleted.emit()\">\n </fs-2fa-verification-code>\n</div>\n\n<div class=\"additional\">\n <div \n class=\"trust-device\"\n *ngIf=\"showTrustedDevice\">\n <mat-checkbox\n name=\"trust-device\"\n [(ngModel)]=\"trustDevice\"\n (ngModelChange)=\"trustDeviceChange.emit($event)\">\n <div class=\"small\">\n Bypass verification \n <ng-container *ngIf=\"trustDays\">for {{trustDays}} days</ng-container> \n <ng-container *ngIf=\"!trustDays\">for future signins</ng-container> \n unless cookies are cleared\n </div>\n </mat-checkbox>\n </div>\n</div>", styles: [":host ::ng-deep .mat-checkbox{margin:2px 0}:host ::ng-deep .mat-checkbox .mat-checkbox-label{line-height:normal}:host ::ng-deep .mat-checkbox .mat-checkbox-layout{white-space:normal}.code-container{text-align:center}.additional{display:flex;justify-content:space-between;align-items:center;margin:4px 0 5px}.additional small{color:inherit}.additional .resend{cursor:pointer;text-transform:none}.additional .resend mat-spinner{display:inline-block;vertical-align:middle}\n"], components: [{ type: i3.Fs2faVerificationCodeComponent, selector: "fs-2fa-verification-code", inputs: ["type", "recipient", "codeLength", "code"], outputs: ["codeChanged", "codeCompleted"] }, { type: i4.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"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }], pipes: { "fsPhone": i8.FsPhonePipe }, viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: Fs2faVerificationComponent, decorators: [{
92
- type: Component,
93
- args: [{
94
- selector: 'fs-2fa-verification',
95
- templateUrl: './2fa-verification.component.html',
96
- styleUrls: ['./2fa-verification.component.scss'],
97
- changeDetection: ChangeDetectionStrategy.OnPush,
98
- viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],
99
- }]
100
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.FsDialog }, { type: i2.FsMessage }]; }, propDecorators: { verificationCodeComponent: [{
101
- type: ViewChild,
102
- args: [Fs2faVerificationCodeComponent]
103
- }], verificationMethod: [{
104
- type: Input
105
- }], resend: [{
106
- type: Input
107
- }], showTrustedDevice: [{
108
- type: Input
109
- }], trustDevice: [{
110
- type: Input
111
- }], codeLength: [{
112
- type: Input
113
- }], trustDays: [{
114
- type: Input
115
- }], formatRecipient: [{
116
- type: Input
117
- }], getVerificationMethods: [{
118
- type: Input
119
- }], selectVerificationMethod: [{
120
- type: Input
121
- }], verified: [{
122
- type: Output
123
- }], codeChanged: [{
124
- type: Output
125
- }], codeCompleted: [{
126
- type: Output
127
- }], trustDeviceChange: [{
128
- type: Output
129
- }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMmZhLXZlcmlmaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvdmVyaWZpY2F0aW9uL2NvbXBvbmVudHMvMmZhLXZlcmlmaWNhdGlvbi8yZmEtdmVyaWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy92ZXJpZmljYXRpb24vY29tcG9uZW50cy8yZmEtdmVyaWZpY2F0aW9uLzJmYS12ZXJpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNuSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7Ozs7Ozs7OztBQVUxRyxNQUFNLE9BQU8sMEJBQTBCO0lBaURyQyxZQUNVLE1BQXlCLEVBQ3pCLE9BQWlCLEVBQ2pCLFFBQW1CO1FBRm5C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Q0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN6QyxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt3SEE1SFUsMEJBQTBCOzRHQUExQiwwQkFBMEIsdWtCQUUxQiw4QkFBOEIsZ0RDcEMzQywrOUJBMkJNLGcxRERLVyxDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQzs0RkFFeEQsMEJBQTBCO2tCQVB0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSxtQ0FBbUM7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO29CQUNoRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO2lCQUNwRTt1SkFJUSx5QkFBeUI7c0JBRC9CLFNBQVM7dUJBQUMsOEJBQThCO2dCQUlsQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsc0JBQXNCO3NCQUQ1QixLQUFLO2dCQUlDLHdCQUF3QjtzQkFEOUIsS0FBSztnQkFJQyxRQUFRO3NCQURkLE1BQU07Z0JBSUEsV0FBVztzQkFEakIsTUFBTTtnQkFJQSxhQUFhO3NCQURuQixNQUFNO2dCQUlBLGlCQUFpQjtzQkFEdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuaW1wb3J0IHsgRnNEaWFsb2cgfSBmcm9tICdAZmlyZXN0aXRjaC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBmaWx0ZXIsIGZpbmFsaXplLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSUZzVmVyaWZpY2F0aW9uTWV0aG9kIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy92ZXJpZmljYXRpb24tbWV0aG9kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGczJmYVZlcmlmaWNhdGlvbk1ldGhvZHNDb21wb25lbnQgfSBmcm9tICcuLi8yZmEtdmVyaWZpY2F0aW9uLW1ldGhvZHMvMmZhLXZlcmlmaWNhdGlvbi1tZXRob2RzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWZXJpZmljYXRpb25NZXRob2RUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMvdmVyaWZpY2F0aW9uLW1ldGhvZC10eXBlLmVudW0nO1xuaW1wb3J0IHsgRnMyZmFWZXJpZmljYXRpb25Db2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vMmZhLXZlcmlmaWNhdGlvbi1jb2RlLzJmYS12ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLTJmYS12ZXJpZmljYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vMmZhLXZlcmlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLzJmYS12ZXJpZmljYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsICBcbiAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgRnMyZmFWZXJpZmljYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XG5cbiAgQFZpZXdDaGlsZChGczJmYVZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQpXG4gIHB1YmxpYyB2ZXJpZmljYXRpb25Db2RlQ29tcG9uZW50OiBGczJmYVZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZDogSUZzVmVyaWZpY2F0aW9uTWV0aG9kO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXNlbmQ6ICgpID0+IE9ic2VydmFibGU8dm9pZD47XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dUcnVzdGVkRGV2aWNlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdHJ1c3REZXZpY2UgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb2RlTGVuZ3RoO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0cnVzdERheXM7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZvcm1hdFJlY2lwaWVudCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXRWZXJpZmljYXRpb25NZXRob2RzOiAoKSA9PiBPYnNlcnZhYmxlPElGc1ZlcmlmaWNhdGlvbk1ldGhvZFtdPjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0VmVyaWZpY2F0aW9uTWV0aG9kOiAodmVyaWZpY2F0aW9uTWV0aG9kOiBJRnNWZXJpZmljYXRpb25NZXRob2QpID0+IE9ic2VydmFibGU8SUZzVmVyaWZpY2F0aW9uTWV0aG9kPjtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHZlcmlmaWVkID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY29kZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd24+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjb2RlQ29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgdHJ1c3REZXZpY2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHVibGljIGNvZGUgPSAnJztcbiAgcHVibGljIFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUgPSBWZXJpZmljYXRpb25NZXRob2RUeXBlO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBGc0RpYWxvZyxcbiAgICBwcml2YXRlIF9tZXNzYWdlOiBGc01lc3NhZ2UsXG4gICkge31cblxuICBwdWJsaWMgZ2V0IHJlY2lwaWVudCgpOiBzdHJpbmcge1xuICAgIGlmKHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kLnR5cGUgPT09IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuRW1haWwpIHtcbiAgICAgIHJldHVybiB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZC5lbWFpbDtcbiAgICB9XG5cbiAgICBpZih0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZC50eXBlID09PSBWZXJpZmljYXRpb25NZXRob2RUeXBlLlNtcykge1xuICAgICAgcmV0dXJuIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kLnBob25lTnVtYmVyO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvZGVDaGFuZ2VkXG4gICAgLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgIClcbiAgICAuc3Vic2NyaWJlKChjb2RlOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuY29kZSA9IGNvZGU7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmVyaWZpY2F0aW9uQ29kZUNvbXBvbmVudC5mb2N1cygpOyAgICBcbiAgfVxuXG4gIHB1YmxpYyByZXNlbmRDb2RlKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucmVzZW5kKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY29kZSA9ICcnO1xuICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnUmVzZW50IENvZGUnKTtcbiAgICAgICAgfSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQuZm9jdXMoKTsgIFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2hvd1ZlcmlmaWNhdGlvbk1ldGhvZHMoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRWZXJpZmljYXRpb25NZXRob2RzKClcbiAgICAuc3Vic2NyaWJlKCh2ZXJpZmljYXRpb25NZXRob2RzKSA9PiB7XG4gICAgICB0aGlzLl9kaWFsb2cub3BlbihcbiAgICAgICAgRnMyZmFWZXJpZmljYXRpb25NZXRob2RzQ29tcG9uZW50LFxuICAgICAgICB7XG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdmVyaWZpY2F0aW9uTWV0aG9kOiB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZCxcbiAgICAgICAgICAgIHZlcmlmaWNhdGlvbk1ldGhvZHMsXG4gICAgICAgICAgICBzZWxlY3RWZXJpZmljYXRpb25NZXRob2Q6IHRoaXMuc2VsZWN0VmVyaWZpY2F0aW9uTWV0aG9kLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4gISF2ZXJpZmljYXRpb25NZXRob2QpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4ge1xuICAgICAgICAgIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kID0gdmVyaWZpY2F0aW9uTWV0aG9kO1xuICAgICAgICAgIHRoaXMuY29kZSA9ICcnO1xuICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQuZm9jdXMoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNvZGUtY29udGFpbmVyXCI+XG4gIDxmcy0yZmEtdmVyaWZpY2F0aW9uLWNvZGVcbiAgICBbcmVjaXBpZW50XT1cIihmb3JtYXRSZWNpcGllbnQgJiYgdmVyaWZpY2F0aW9uTWV0aG9kLnR5cGUgPT09IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuU21zKSA/IChyZWNpcGllbnQgfCBmc1Bob25lKSA6IHJlY2lwaWVudFwiXG4gICAgW3R5cGVdPVwidmVyaWZpY2F0aW9uTWV0aG9kLnR5cGVcIlxuICAgIFtjb2RlXT1cImNvZGVcIlxuICAgIFtjb2RlTGVuZ3RoXT1cImNvZGVMZW5ndGhcIlxuICAgIChjb2RlQ2hhbmdlZCk9XCJjb2RlQ2hhbmdlZC5lbWl0KCRldmVudClcIlxuICAgIChjb2RlQ29tcGxldGVkKT1cImNvZGVDb21wbGV0ZWQuZW1pdCgpXCI+XG4gIDwvZnMtMmZhLXZlcmlmaWNhdGlvbi1jb2RlPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJhZGRpdGlvbmFsXCI+XG4gIDxkaXYgXG4gICAgICBjbGFzcz1cInRydXN0LWRldmljZVwiXG4gICAgICAqbmdJZj1cInNob3dUcnVzdGVkRGV2aWNlXCI+XG4gICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgIG5hbWU9XCJ0cnVzdC1kZXZpY2VcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwidHJ1c3REZXZpY2VcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRydXN0RGV2aWNlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+XG4gICAgICAgIEJ5cGFzcyB2ZXJpZmljYXRpb24gXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0cnVzdERheXNcIj5mb3Ige3t0cnVzdERheXN9fSBkYXlzPC9uZy1jb250YWluZXI+ICBcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0cnVzdERheXNcIj5mb3IgZnV0dXJlIHNpZ25pbnM8L25nLWNvbnRhaW5lcj4gXG4gICAgICAgIHVubGVzcyBjb29raWVzIGFyZSBjbGVhcmVkXG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1jaGVja2JveD5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=