@firestitch/2fa 15.0.0 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/app/modules/code-input/components/code-input/code-input.component.d.ts +1 -1
  2. package/app/modules/manage/components/2fa-manage/2fa-manage.component.d.ts +1 -1
  3. package/app/modules/resend/components/resend/resend.component.d.ts +1 -1
  4. package/app/modules/verification/components/2fa-verification/2fa-verification.component.d.ts +1 -1
  5. package/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.d.ts +1 -1
  6. package/app/modules/verification/directives/2fa-verification-resend.directive.d.ts +1 -1
  7. package/app/modules/verification-methods/components/verification-methods/verification-methods.component.d.ts +1 -1
  8. package/{esm2020 → esm2022}/app/modules/code-input/code-input.module.mjs +11 -11
  9. package/esm2022/app/modules/code-input/components/code-input/code-input.component.mjs +41 -0
  10. package/{esm2020 → esm2022}/app/modules/defaulted/components/defaulted/defaulted.component.mjs +4 -4
  11. package/{esm2020 → esm2022}/app/modules/defaulted/defaulted.module.mjs +5 -5
  12. package/esm2022/app/modules/manage/components/2fa-manage/2fa-manage.component.mjs +111 -0
  13. package/esm2022/app/modules/manage/components/app/app.component.mjs +96 -0
  14. package/esm2022/app/modules/manage/components/email/email.component.mjs +92 -0
  15. package/esm2022/app/modules/manage/components/emails/emails.component.mjs +52 -0
  16. package/esm2022/app/modules/manage/components/manage-methods/manage-methods.component.mjs +132 -0
  17. package/esm2022/app/modules/manage/components/number/number.component.mjs +97 -0
  18. package/esm2022/app/modules/manage/components/numbers/numbers.component.mjs +54 -0
  19. package/{esm2020 → esm2022}/app/modules/manage/fs-2f-manage.module.mjs +49 -49
  20. package/esm2022/app/modules/manage/services/two-factor-manage.service.mjs +169 -0
  21. package/esm2022/app/modules/resend/components/resend/resend.component.mjs +37 -0
  22. package/{esm2020 → esm2022}/app/modules/resend/resend.module.mjs +7 -7
  23. package/esm2022/app/modules/verification/components/2fa-verification/2fa-verification.component.mjs +131 -0
  24. package/esm2022/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.mjs +66 -0
  25. package/esm2022/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.mjs +63 -0
  26. package/esm2022/app/modules/verification/directives/2fa-verification-resend.directive.mjs +34 -0
  27. package/{esm2020 → esm2022}/app/modules/verification/fs-2fa-verification.module.mjs +39 -39
  28. package/esm2022/app/modules/verification-methods/components/verification-methods/verification-methods.component.mjs +126 -0
  29. package/{esm2020 → esm2022}/app/modules/verification-methods/fs-2f-verification-methods.module.mjs +17 -17
  30. package/fesm2022/firestitch-2fa.mjs +1438 -0
  31. package/{fesm2020 → fesm2022}/firestitch-2fa.mjs.map +1 -1
  32. package/package.json +5 -11
  33. package/esm2020/app/modules/code-input/components/code-input/code-input.component.mjs +0 -40
  34. package/esm2020/app/modules/manage/components/2fa-manage/2fa-manage.component.mjs +0 -98
  35. package/esm2020/app/modules/manage/components/app/app.component.mjs +0 -84
  36. package/esm2020/app/modules/manage/components/email/email.component.mjs +0 -83
  37. package/esm2020/app/modules/manage/components/emails/emails.component.mjs +0 -47
  38. package/esm2020/app/modules/manage/components/manage-methods/manage-methods.component.mjs +0 -125
  39. package/esm2020/app/modules/manage/components/number/number.component.mjs +0 -87
  40. package/esm2020/app/modules/manage/components/numbers/numbers.component.mjs +0 -48
  41. package/esm2020/app/modules/manage/services/two-factor-manage.service.mjs +0 -161
  42. package/esm2020/app/modules/resend/components/resend/resend.component.mjs +0 -35
  43. package/esm2020/app/modules/verification/components/2fa-verification/2fa-verification.component.mjs +0 -121
  44. package/esm2020/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.mjs +0 -60
  45. package/esm2020/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.mjs +0 -56
  46. package/esm2020/app/modules/verification/directives/2fa-verification-resend.directive.mjs +0 -32
  47. package/esm2020/app/modules/verification-methods/components/verification-methods/verification-methods.component.mjs +0 -117
  48. package/fesm2015/firestitch-2fa.mjs +0 -1345
  49. package/fesm2015/firestitch-2fa.mjs.map +0 -1
  50. package/fesm2020/firestitch-2fa.mjs +0 -1331
  51. /package/{esm2020 → esm2022}/app/enums/index.mjs +0 -0
  52. /package/{esm2020 → esm2022}/app/enums/verification-method-type.enum.mjs +0 -0
  53. /package/{esm2020 → esm2022}/app/interfaces/index.mjs +0 -0
  54. /package/{esm2020 → esm2022}/app/interfaces/verification-method.interface.mjs +0 -0
  55. /package/{esm2020 → esm2022}/app/modules/code-input/components/code-input/index.mjs +0 -0
  56. /package/{esm2020 → esm2022}/app/modules/code-input/index.mjs +0 -0
  57. /package/{esm2020 → esm2022}/app/modules/defaulted/components/defaulted/index.mjs +0 -0
  58. /package/{esm2020 → esm2022}/app/modules/manage/components/2fa-manage/index.mjs +0 -0
  59. /package/{esm2020 → esm2022}/app/modules/manage/components/app/index.mjs +0 -0
  60. /package/{esm2020 → esm2022}/app/modules/manage/components/email/index.mjs +0 -0
  61. /package/{esm2020 → esm2022}/app/modules/manage/components/emails/index.mjs +0 -0
  62. /package/{esm2020 → esm2022}/app/modules/manage/components/manage-methods/index.mjs +0 -0
  63. /package/{esm2020 → esm2022}/app/modules/manage/components/number/index.mjs +0 -0
  64. /package/{esm2020 → esm2022}/app/modules/manage/components/numbers/index.mjs +0 -0
  65. /package/{esm2020 → esm2022}/app/modules/manage/services/index.mjs +0 -0
  66. /package/{esm2020 → esm2022}/app/modules/resend/components/resend/index.mjs +0 -0
  67. /package/{esm2020 → esm2022}/app/modules/verification/directives/index.mjs +0 -0
  68. /package/{esm2020 → esm2022}/app/modules/verification-methods/components/verification-methods/index.mjs +0 -0
  69. /package/{esm2020 → esm2022}/app/modules/verification-methods/index.mjs +0 -0
  70. /package/{esm2020 → esm2022}/firestitch-2fa.mjs +0 -0
  71. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -28,55 +28,55 @@ import { NumberComponent } from './components/number';
28
28
  import { NumbersComponent } from './components/numbers';
29
29
  import * as i0 from "@angular/core";
30
30
  export class Fs2faManageModule {
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Fs2faManageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
32
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: Fs2faManageModule, declarations: [Fs2faManageComponent,
33
+ ManageMethodsComponent,
34
+ NumbersComponent,
35
+ AppComponent,
36
+ EmailComponent,
37
+ NumberComponent,
38
+ EmailsComponent], imports: [CommonModule,
39
+ FormsModule,
40
+ MatButtonModule,
41
+ MatDialogModule,
42
+ MatInputModule,
43
+ MatIconModule,
44
+ MatCheckboxModule,
45
+ FsDialogModule,
46
+ FsListModule,
47
+ FsFormModule,
48
+ FsLabelModule,
49
+ FsPhoneModule,
50
+ FsSkeletonModule,
51
+ FsCountryModule,
52
+ FsQrcodeModule,
53
+ CodeInputModule,
54
+ ResendModule,
55
+ DefautledModule,
56
+ Fs2faVerificationModule,
57
+ Fs2faVerificationMethodsModule], exports: [Fs2faManageComponent] });
58
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Fs2faManageModule, imports: [CommonModule,
59
+ FormsModule,
60
+ MatButtonModule,
61
+ MatDialogModule,
62
+ MatInputModule,
63
+ MatIconModule,
64
+ MatCheckboxModule,
65
+ FsDialogModule,
66
+ FsListModule,
67
+ FsFormModule,
68
+ FsLabelModule,
69
+ FsPhoneModule,
70
+ FsSkeletonModule,
71
+ FsCountryModule,
72
+ FsQrcodeModule,
73
+ CodeInputModule,
74
+ ResendModule,
75
+ DefautledModule,
76
+ Fs2faVerificationModule,
77
+ Fs2faVerificationMethodsModule] });
31
78
  }
32
- Fs2faManageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Fs2faManageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
33
- Fs2faManageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: Fs2faManageModule, declarations: [Fs2faManageComponent,
34
- ManageMethodsComponent,
35
- NumbersComponent,
36
- AppComponent,
37
- EmailComponent,
38
- NumberComponent,
39
- EmailsComponent], imports: [CommonModule,
40
- FormsModule,
41
- MatButtonModule,
42
- MatDialogModule,
43
- MatInputModule,
44
- MatIconModule,
45
- MatCheckboxModule,
46
- FsDialogModule,
47
- FsListModule,
48
- FsFormModule,
49
- FsLabelModule,
50
- FsPhoneModule,
51
- FsSkeletonModule,
52
- FsCountryModule,
53
- FsQrcodeModule,
54
- CodeInputModule,
55
- ResendModule,
56
- DefautledModule,
57
- Fs2faVerificationModule,
58
- Fs2faVerificationMethodsModule], exports: [Fs2faManageComponent] });
59
- Fs2faManageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Fs2faManageModule, imports: [CommonModule,
60
- FormsModule,
61
- MatButtonModule,
62
- MatDialogModule,
63
- MatInputModule,
64
- MatIconModule,
65
- MatCheckboxModule,
66
- FsDialogModule,
67
- FsListModule,
68
- FsFormModule,
69
- FsLabelModule,
70
- FsPhoneModule,
71
- FsSkeletonModule,
72
- FsCountryModule,
73
- FsQrcodeModule,
74
- CodeInputModule,
75
- ResendModule,
76
- DefautledModule,
77
- Fs2faVerificationModule,
78
- Fs2faVerificationMethodsModule] });
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Fs2faManageModule, decorators: [{
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Fs2faManageModule, decorators: [{
80
80
  type: NgModule,
81
81
  args: [{
82
82
  imports: [
@@ -113,4 +113,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
113
113
  exports: [Fs2faManageComponent],
114
114
  }]
115
115
  }] });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtMmYtbWFuYWdlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvZnMtMmYtbWFuYWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQXlDeEQsTUFBTSxPQUFPLGlCQUFpQjs7K0dBQWpCLGlCQUFpQjtnSEFBakIsaUJBQWlCLGlCQVYxQixvQkFBb0I7UUFDcEIsc0JBQXNCO1FBQ3RCLGdCQUFnQjtRQUNoQixZQUFZO1FBQ1osY0FBYztRQUNkLGVBQWU7UUFDZixlQUFlLGFBaENmLFlBQVk7UUFDWixXQUFXO1FBRVgsZUFBZTtRQUNmLGVBQWU7UUFDZixjQUFjO1FBQ2QsYUFBYTtRQUNiLGlCQUFpQjtRQUVqQixjQUFjO1FBQ2QsWUFBWTtRQUNaLFlBQVk7UUFDWixhQUFhO1FBQ2IsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsY0FBYztRQUVkLGVBQWU7UUFFZixZQUFZO1FBQ1osZUFBZTtRQUNmLHVCQUF1QjtRQUN2Qiw4QkFBOEIsYUFXdEIsb0JBQW9CO2dIQUVuQixpQkFBaUIsWUFwQzFCLFlBQVk7UUFDWixXQUFXO1FBRVgsZUFBZTtRQUNmLGVBQWU7UUFDZixjQUFjO1FBQ2QsYUFBYTtRQUNiLGlCQUFpQjtRQUVqQixjQUFjO1FBQ2QsWUFBWTtRQUNaLFlBQVk7UUFDWixhQUFhO1FBQ2IsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsY0FBYztRQUVkLGVBQWU7UUFFZixZQUFZO1FBQ1osZUFBZTtRQUNmLHVCQUF1QjtRQUN2Qiw4QkFBOEI7NEZBYXJCLGlCQUFpQjtrQkF0QzdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFFWCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGlCQUFpQjt3QkFFakIsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixjQUFjO3dCQUVkLGVBQWU7d0JBRWYsWUFBWTt3QkFDWixlQUFlO3dCQUNmLHVCQUF1Qjt3QkFDdkIsOEJBQThCO3FCQUMvQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuXG5pbXBvcnQgeyBGc0NvdW50cnlNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9jb3VudHJ5JztcbmltcG9ydCB7IEZzRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZGlhbG9nJztcbmltcG9ydCB7IEZzRm9ybU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2Zvcm0nO1xuaW1wb3J0IHsgRnNMYWJlbE1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2xhYmVsJztcbmltcG9ydCB7IEZzTGlzdE1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2xpc3QnO1xuaW1wb3J0IHsgRnNQaG9uZU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3Bob25lJztcbmltcG9ydCB7IEZzUXJjb2RlTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvcXJjb2RlJztcbmltcG9ydCB7IEZzU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9za2VsZXRvbic7XG5cblxuaW1wb3J0IHsgQ29kZUlucHV0TW9kdWxlIH0gZnJvbSAnLi4vY29kZS1pbnB1dCc7XG5pbXBvcnQgeyBEZWZhdXRsZWRNb2R1bGUgfSBmcm9tICcuLi9kZWZhdWx0ZWQvZGVmYXVsdGVkLm1vZHVsZSc7XG5pbXBvcnQgeyBSZXNlbmRNb2R1bGUgfSBmcm9tICcuLi9yZXNlbmQvcmVzZW5kLm1vZHVsZSc7XG5pbXBvcnQgeyBGczJmYVZlcmlmaWNhdGlvbk1ldGhvZHNNb2R1bGUgfSBmcm9tICcuLi92ZXJpZmljYXRpb24tbWV0aG9kcyc7XG5pbXBvcnQgeyBGczJmYVZlcmlmaWNhdGlvbk1vZHVsZSB9IGZyb20gJy4uL3ZlcmlmaWNhdGlvbi9mcy0yZmEtdmVyaWZpY2F0aW9uLm1vZHVsZSc7XG5cbmltcG9ydCB7IEZzMmZhTWFuYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzLzJmYS1tYW5hZ2UnO1xuaW1wb3J0IHsgQXBwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FwcCc7XG5pbXBvcnQgeyBFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbWFpbCc7XG5pbXBvcnQgeyBFbWFpbHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZW1haWxzJztcbmltcG9ydCB7IE1hbmFnZU1ldGhvZHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWFuYWdlLW1ldGhvZHMnO1xuaW1wb3J0IHsgTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL251bWJlcic7XG5pbXBvcnQgeyBOdW1iZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL251bWJlcnMnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG5cbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG5cbiAgICBGc0RpYWxvZ01vZHVsZSxcbiAgICBGc0xpc3RNb2R1bGUsXG4gICAgRnNGb3JtTW9kdWxlLFxuICAgIEZzTGFiZWxNb2R1bGUsXG4gICAgRnNQaG9uZU1vZHVsZSxcbiAgICBGc1NrZWxldG9uTW9kdWxlLFxuICAgIEZzQ291bnRyeU1vZHVsZSxcbiAgICBGc1FyY29kZU1vZHVsZSxcblxuICAgIENvZGVJbnB1dE1vZHVsZSxcblxuICAgIFJlc2VuZE1vZHVsZSxcbiAgICBEZWZhdXRsZWRNb2R1bGUsXG4gICAgRnMyZmFWZXJpZmljYXRpb25Nb2R1bGUsXG4gICAgRnMyZmFWZXJpZmljYXRpb25NZXRob2RzTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGczJmYU1hbmFnZUNvbXBvbmVudCxcbiAgICBNYW5hZ2VNZXRob2RzQ29tcG9uZW50LFxuICAgIE51bWJlcnNDb21wb25lbnQsXG4gICAgQXBwQ29tcG9uZW50LFxuICAgIEVtYWlsQ29tcG9uZW50LFxuICAgIE51bWJlckNvbXBvbmVudCxcbiAgICBFbWFpbHNDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtGczJmYU1hbmFnZUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEZzMmZhTWFuYWdlTW9kdWxlIHsgfVxuIl19
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtMmYtbWFuYWdlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvZnMtMmYtbWFuYWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQXlDeEQsTUFBTSxPQUFPLGlCQUFpQjt3R0FBakIsaUJBQWlCO3lHQUFqQixpQkFBaUIsaUJBVjFCLG9CQUFvQjtZQUNwQixzQkFBc0I7WUFDdEIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixjQUFjO1lBQ2QsZUFBZTtZQUNmLGVBQWUsYUFoQ2YsWUFBWTtZQUNaLFdBQVc7WUFFWCxlQUFlO1lBQ2YsZUFBZTtZQUNmLGNBQWM7WUFDZCxhQUFhO1lBQ2IsaUJBQWlCO1lBRWpCLGNBQWM7WUFDZCxZQUFZO1lBQ1osWUFBWTtZQUNaLGFBQWE7WUFDYixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixjQUFjO1lBRWQsZUFBZTtZQUVmLFlBQVk7WUFDWixlQUFlO1lBQ2YsdUJBQXVCO1lBQ3ZCLDhCQUE4QixhQVd0QixvQkFBb0I7eUdBRW5CLGlCQUFpQixZQXBDMUIsWUFBWTtZQUNaLFdBQVc7WUFFWCxlQUFlO1lBQ2YsZUFBZTtZQUNmLGNBQWM7WUFDZCxhQUFhO1lBQ2IsaUJBQWlCO1lBRWpCLGNBQWM7WUFDZCxZQUFZO1lBQ1osWUFBWTtZQUNaLGFBQWE7WUFDYixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixjQUFjO1lBRWQsZUFBZTtZQUVmLFlBQVk7WUFDWixlQUFlO1lBQ2YsdUJBQXVCO1lBQ3ZCLDhCQUE4Qjs7NEZBYXJCLGlCQUFpQjtrQkF0QzdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFFWCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGlCQUFpQjt3QkFFakIsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixjQUFjO3dCQUVkLGVBQWU7d0JBRWYsWUFBWTt3QkFDWixlQUFlO3dCQUNmLHVCQUF1Qjt3QkFDdkIsOEJBQThCO3FCQUMvQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuXG5pbXBvcnQgeyBGc0NvdW50cnlNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9jb3VudHJ5JztcbmltcG9ydCB7IEZzRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZGlhbG9nJztcbmltcG9ydCB7IEZzRm9ybU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2Zvcm0nO1xuaW1wb3J0IHsgRnNMYWJlbE1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2xhYmVsJztcbmltcG9ydCB7IEZzTGlzdE1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2xpc3QnO1xuaW1wb3J0IHsgRnNQaG9uZU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3Bob25lJztcbmltcG9ydCB7IEZzUXJjb2RlTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvcXJjb2RlJztcbmltcG9ydCB7IEZzU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9za2VsZXRvbic7XG5cblxuaW1wb3J0IHsgQ29kZUlucHV0TW9kdWxlIH0gZnJvbSAnLi4vY29kZS1pbnB1dCc7XG5pbXBvcnQgeyBEZWZhdXRsZWRNb2R1bGUgfSBmcm9tICcuLi9kZWZhdWx0ZWQvZGVmYXVsdGVkLm1vZHVsZSc7XG5pbXBvcnQgeyBSZXNlbmRNb2R1bGUgfSBmcm9tICcuLi9yZXNlbmQvcmVzZW5kLm1vZHVsZSc7XG5pbXBvcnQgeyBGczJmYVZlcmlmaWNhdGlvbk1ldGhvZHNNb2R1bGUgfSBmcm9tICcuLi92ZXJpZmljYXRpb24tbWV0aG9kcyc7XG5pbXBvcnQgeyBGczJmYVZlcmlmaWNhdGlvbk1vZHVsZSB9IGZyb20gJy4uL3ZlcmlmaWNhdGlvbi9mcy0yZmEtdmVyaWZpY2F0aW9uLm1vZHVsZSc7XG5cbmltcG9ydCB7IEZzMmZhTWFuYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzLzJmYS1tYW5hZ2UnO1xuaW1wb3J0IHsgQXBwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FwcCc7XG5pbXBvcnQgeyBFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbWFpbCc7XG5pbXBvcnQgeyBFbWFpbHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZW1haWxzJztcbmltcG9ydCB7IE1hbmFnZU1ldGhvZHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWFuYWdlLW1ldGhvZHMnO1xuaW1wb3J0IHsgTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL251bWJlcic7XG5pbXBvcnQgeyBOdW1iZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL251bWJlcnMnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG5cbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG5cbiAgICBGc0RpYWxvZ01vZHVsZSxcbiAgICBGc0xpc3RNb2R1bGUsXG4gICAgRnNGb3JtTW9kdWxlLFxuICAgIEZzTGFiZWxNb2R1bGUsXG4gICAgRnNQaG9uZU1vZHVsZSxcbiAgICBGc1NrZWxldG9uTW9kdWxlLFxuICAgIEZzQ291bnRyeU1vZHVsZSxcbiAgICBGc1FyY29kZU1vZHVsZSxcblxuICAgIENvZGVJbnB1dE1vZHVsZSxcblxuICAgIFJlc2VuZE1vZHVsZSxcbiAgICBEZWZhdXRsZWRNb2R1bGUsXG4gICAgRnMyZmFWZXJpZmljYXRpb25Nb2R1bGUsXG4gICAgRnMyZmFWZXJpZmljYXRpb25NZXRob2RzTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGczJmYU1hbmFnZUNvbXBvbmVudCxcbiAgICBNYW5hZ2VNZXRob2RzQ29tcG9uZW50LFxuICAgIE51bWJlcnNDb21wb25lbnQsXG4gICAgQXBwQ29tcG9uZW50LFxuICAgIEVtYWlsQ29tcG9uZW50LFxuICAgIE51bWJlckNvbXBvbmVudCxcbiAgICBFbWFpbHNDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtGczJmYU1hbmFnZUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEZzMmZhTWFuYWdlTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,169 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { MatDialog } from '@angular/material/dialog';
3
+ import { BehaviorSubject, of, Subject } from 'rxjs';
4
+ import { switchMap, takeUntil, tap } from 'rxjs/operators';
5
+ import { AppComponent } from '../components/app';
6
+ import { VerificationMethodType } from '../../../enums/verification-method-type.enum';
7
+ import { EmailComponent } from '../components/email';
8
+ import { NumberComponent } from '../components/number';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/material/dialog";
11
+ export class TwoFactorManageService {
12
+ _dialog;
13
+ _destroy$ = new Subject();
14
+ _verificationMethodsFetch;
15
+ _verificationMethodCreate;
16
+ _verificationMethodDelete;
17
+ _verificationMethodDefault;
18
+ _verificationMethodVerify;
19
+ _verificationMethodResend;
20
+ _accountVerify;
21
+ _verificationMethods$ = new BehaviorSubject([]);
22
+ constructor(_dialog) {
23
+ this._dialog = _dialog;
24
+ }
25
+ get verificationMethods$() {
26
+ return this._verificationMethods$
27
+ .pipe(takeUntil(this._destroy$));
28
+ }
29
+ get verificationMethods() {
30
+ return this._verificationMethods$.getValue();
31
+ }
32
+ get hasVerificationMethods() {
33
+ return !!this._verificationMethods$.getValue().length;
34
+ }
35
+ get emailVerificationMethods() {
36
+ return this.getVerificationMethods(VerificationMethodType.Email);
37
+ }
38
+ get smsVerificationMethods() {
39
+ return this.getVerificationMethods(VerificationMethodType.Sms);
40
+ }
41
+ get appVerificationMethods() {
42
+ return this.getVerificationMethods(VerificationMethodType.App);
43
+ }
44
+ getVerificationMethods(type) {
45
+ return this.verificationMethods
46
+ .filter((verificationMethod) => {
47
+ return verificationMethod.type === type;
48
+ });
49
+ }
50
+ hasVerificationMethod(type) {
51
+ return this.verificationMethods
52
+ .some((verificationMethod) => {
53
+ return verificationMethod.type === type;
54
+ });
55
+ }
56
+ registerVerificationMethodDefault(value) {
57
+ this._verificationMethodDefault = value;
58
+ }
59
+ registerVerificationMethodResend(value) {
60
+ this._verificationMethodResend = value;
61
+ }
62
+ registerVerificationMethodsFetch(value) {
63
+ this._verificationMethodsFetch = value;
64
+ }
65
+ registerVerificationMethodDelete(value) {
66
+ this._verificationMethodDelete = value;
67
+ }
68
+ registerVerificationMethodCreate(value) {
69
+ this._verificationMethodCreate = value;
70
+ }
71
+ registerVerificationMethodVerify(value) {
72
+ this._verificationMethodVerify = value;
73
+ }
74
+ registerAccountVerify(value) {
75
+ this._accountVerify = value;
76
+ }
77
+ get hasVerificationMethodResend() {
78
+ return !!this._verificationMethodResend;
79
+ }
80
+ get hasVerificationMethodDefault() {
81
+ return !!this._verificationMethodDefault;
82
+ }
83
+ get hasVerificationMethodsFetch() {
84
+ return !!this._verificationMethodsFetch;
85
+ }
86
+ get hasVerificationMethodDelete() {
87
+ return !!this._verificationMethodDelete;
88
+ }
89
+ get hasVerificationMethodCreate() {
90
+ return !!this._verificationMethodCreate;
91
+ }
92
+ get hasVerificationMethodVerify() {
93
+ return !!this._verificationMethodVerify;
94
+ }
95
+ verificationMethodDelete$(verificationMethod) {
96
+ return this._verificationMethodDelete(verificationMethod)
97
+ .pipe(tap(() => {
98
+ this.verificationMethodsFetch();
99
+ }));
100
+ }
101
+ verificationMethodVerify$(code, trustDevice) {
102
+ return this._verificationMethodVerify(code, trustDevice)
103
+ .pipe(tap(() => {
104
+ this.verificationMethodsFetch();
105
+ }));
106
+ }
107
+ verificationMethodCreate$(verificationMethod) {
108
+ return this._verificationMethodCreate(verificationMethod);
109
+ }
110
+ verificationMethodDefault$(verificationMethod) {
111
+ return this._verificationMethodDefault(verificationMethod);
112
+ }
113
+ verificationMethodResend() {
114
+ return this._verificationMethodResend();
115
+ }
116
+ verificationMethodsFetch(query) {
117
+ this.verificationMethodsFetch$(query)
118
+ .subscribe();
119
+ }
120
+ verificationMethodsFetch$(query) {
121
+ return this._verificationMethodsFetch(query)
122
+ .pipe(tap((verificationMethods) => {
123
+ this._verificationMethods$.next(verificationMethods);
124
+ }));
125
+ }
126
+ accountVerify$() {
127
+ return this._accountVerify ? this._accountVerify() : of(true);
128
+ }
129
+ ngOnDestroy() {
130
+ this._destroy$.next();
131
+ this._destroy$.complete();
132
+ }
133
+ addSms$(defaultCountry) {
134
+ return this.accountVerify$()
135
+ .pipe(switchMap(() => this._dialog.open(NumberComponent, {
136
+ data: {
137
+ defaultCountry,
138
+ twoFactorManageService: this,
139
+ },
140
+ })
141
+ .afterClosed()), tap(() => {
142
+ this.verificationMethodsFetch();
143
+ }), takeUntil(this._destroy$));
144
+ }
145
+ addEmail$() {
146
+ return this.accountVerify$()
147
+ .pipe(switchMap(() => this._dialog.open(EmailComponent, {
148
+ data: { twoFactorManageService: this },
149
+ })
150
+ .afterClosed()), tap(() => {
151
+ this.verificationMethodsFetch();
152
+ }), takeUntil(this._destroy$));
153
+ }
154
+ addApp$() {
155
+ return this.accountVerify$()
156
+ .pipe(switchMap(() => this._dialog.open(AppComponent, {
157
+ data: { twoFactorManageService: this },
158
+ })
159
+ .afterClosed()), tap(() => {
160
+ this.verificationMethodsFetch();
161
+ }), takeUntil(this._destroy$));
162
+ }
163
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TwoFactorManageService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
164
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TwoFactorManageService });
165
+ }
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TwoFactorManageService, decorators: [{
167
+ type: Injectable
168
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWZhY3Rvci1tYW5hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2Uvc2VydmljZXMvdHdvLWZhY3Rvci1tYW5hZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUt2RCxNQUFNLE9BQU8sc0JBQXNCO0lBY3ZCO0lBWkYsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFMUIseUJBQXlCLENBQW9DO0lBQzdELHlCQUF5QixDQUFtRjtJQUM1Ryx5QkFBeUIsQ0FBbUY7SUFDNUcsMEJBQTBCLENBQW1GO0lBQzdHLHlCQUF5QixDQUFrRDtJQUMzRSx5QkFBeUIsQ0FBd0I7SUFDakQsY0FBYyxDQUEwQjtJQUN4QyxxQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLENBQUMsQ0FBQztJQUUvRCxZQUNVLE9BQWtCO1FBQWxCLFlBQU8sR0FBUCxPQUFPLENBQVc7SUFDekIsQ0FBQztJQUVKLElBQVcsb0JBQW9CO1FBQzdCLE9BQU8sSUFBSSxDQUFD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UyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUM5QyxJQUFJLEVBQUUsRUFBRSxzQkFBc0IsRUFBRSxJQUFJLEVBQUc7U0FDeEMsQ0FBQzthQUNDLFdBQVcsRUFBRSxDQUNmLEVBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCLENBQUM7SUFDTixDQUFDO3dHQWpOVSxzQkFBc0I7NEdBQXRCLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBcHBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2FwcCc7XG5pbXBvcnQgeyBWZXJpZmljYXRpb25NZXRob2RUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvdmVyaWZpY2F0aW9uLW1ldGhvZC10eXBlLmVudW0nO1xuaW1wb3J0IHsgRW1haWxDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2VtYWlsJztcbmltcG9ydCB7IE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbnVtYmVyJztcbmltcG9ydCB7IElGc1ZlcmlmaWNhdGlvbk1ldGhvZCB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUd29GYWN0b3JNYW5hZ2VTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfdmVyaWZpY2F0aW9uTWV0aG9kc0ZldGNoOiAocXVlcnk6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnlbXT47XG4gIHByaXZhdGUgX3ZlcmlmaWNhdGlvbk1ldGhvZENyZWF0ZTogKHZlcmlmaWNhdGlvbk1ldGhvZDogSUZzVmVyaWZpY2F0aW9uTWV0aG9kKSA9PiBPYnNlcnZhYmxlPElGc1ZlcmlmaWNhdGlvbk1ldGhvZD47XG4gIHByaXZhdGUgX3ZlcmlmaWNhdGlvbk1ldGhvZERlbGV0ZTogKHZlcmlmaWNhdGlvbk1ldGhvZDogSUZzVmVyaWZpY2F0aW9uTWV0aG9kKSA9PiBPYnNlcnZhYmxlPElGc1ZlcmlmaWNhdGlvbk1ldGhvZD47XG4gIHByaXZhdGUgX3ZlcmlmaWNhdGlvbk1ldGhvZERlZmF1bHQ6ICh2ZXJpZmljYXRpb25NZXRob2Q6IElGc1ZlcmlmaWNhdGlvbk1ldGhvZCkgPT4gT2JzZXJ2YWJsZTxJRnNWZXJpZmljYXRpb25NZXRob2Q+O1xuICBwcml2YXRlIF92ZXJpZmljYXRpb25NZXRob2RWZXJpZnk6IChjb2RlLCB0cnVzdERldmljZTogYm9vbGVhbikgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuICBwcml2YXRlIF92ZXJpZmljYXRpb25NZXRob2RSZXNlbmQ6ICgpID0+IE9ic2VydmFibGU8YW55PjtcbiAgcHJpdmF0ZSBfYWNjb3VudFZlcmlmeTogKCkgPT4gT2JzZXJ2YWJsZTxhbnlbXT47XG4gIHByaXZhdGUgX3ZlcmlmaWNhdGlvbk1ldGhvZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxuICApIHt9XG5cbiAgcHVibGljIGdldCB2ZXJpZmljYXRpb25NZXRob2RzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kcyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKTtcbiAgfVxuICBcbiAgcHVibGljIGdldCB2ZXJpZmljYXRpb25NZXRob2RzKCkge1xuICAgIHJldHVybiB0aGlzLl92ZXJpZmljYXRpb25NZXRob2RzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNWZXJpZmljYXRpb25NZXRob2RzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZHMkLmdldFZhbHVlKCkubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldCBlbWFpbFZlcmlmaWNhdGlvbk1ldGhvZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VmVyaWZpY2F0aW9uTWV0aG9kcyhWZXJpZmljYXRpb25NZXRob2RUeXBlLkVtYWlsKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc21zVmVyaWZpY2F0aW9uTWV0aG9kcygpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWZXJpZmljYXRpb25NZXRob2RzKFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuU21zKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXBwVmVyaWZpY2F0aW9uTWV0aG9kcygpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWZXJpZmljYXRpb25NZXRob2RzKFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuQXBwKTtcbiAgfVxuICBcbiAgcHVibGljIGdldFZlcmlmaWNhdGlvbk1ldGhvZHModHlwZSkge1xuICAgIHJldHVybiB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZHNcbiAgICAuZmlsdGVyKCh2ZXJpZmljYXRpb25NZXRob2QpID0+IHtcbiAgICAgIHJldHVybiB2ZXJpZmljYXRpb25NZXRob2QudHlwZSA9PT0gdHlwZTtcbiAgICB9KTtcbiAgfVxuICBcbiAgcHVibGljIGhhc1ZlcmlmaWNhdGlvbk1ldGhvZCh0eXBlKSB7XG4gICAgcmV0dXJuIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kc1xuICAgIC5zb21lKCh2ZXJpZmljYXRpb25NZXRob2QpID0+IHtcbiAgICAgIHJldHVybiB2ZXJpZmljYXRpb25NZXRob2QudHlwZSA9PT0gdHlwZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlclZlcmlmaWNhdGlvbk1ldGhvZERlZmF1bHQodmFsdWUpIHtcbiAgICB0aGlzLl92ZXJpZmljYXRpb25NZXRob2REZWZhdWx0ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJWZXJpZmljYXRpb25NZXRob2RSZXNlbmQodmFsdWUpIHtcbiAgICB0aGlzLl92ZXJpZmljYXRpb25NZXRob2RSZXNlbmQgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlclZlcmlmaWNhdGlvbk1ldGhvZHNGZXRjaCh2YWx1ZSkge1xuICAgIHRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZHNGZXRjaCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyVmVyaWZpY2F0aW9uTWV0aG9kRGVsZXRlKHZhbHVlKSB7XG4gICAgdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kRGVsZXRlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJWZXJpZmljYXRpb25NZXRob2RDcmVhdGUodmFsdWUpIHtcbiAgICB0aGlzLl92ZXJpZmljYXRpb25NZXRob2RDcmVhdGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlclZlcmlmaWNhdGlvbk1ldGhvZFZlcmlmeSh2YWx1ZSkge1xuICAgIHRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZFZlcmlmeSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyQWNjb3VudFZlcmlmeSh2YWx1ZSkge1xuICAgIHRoaXMuX2FjY291bnRWZXJpZnkgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzVmVyaWZpY2F0aW9uTWV0aG9kUmVzZW5kKCkge1xuICAgIHJldHVybiAhIXRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZFJlc2VuZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzVmVyaWZpY2F0aW9uTWV0aG9kRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gISF0aGlzLl92ZXJpZmljYXRpb25NZXRob2REZWZhdWx0O1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNWZXJpZmljYXRpb25NZXRob2RzRmV0Y2goKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kc0ZldGNoO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNWZXJpZmljYXRpb25NZXRob2REZWxldGUoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kRGVsZXRlO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNWZXJpZmljYXRpb25NZXRob2RDcmVhdGUoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kQ3JlYXRlO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNWZXJpZmljYXRpb25NZXRob2RWZXJpZnkoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kVmVyaWZ5O1xuICB9XG5cbiAgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZERlbGV0ZSQodmVyaWZpY2F0aW9uTWV0aG9kKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kRGVsZXRlKHZlcmlmaWNhdGlvbk1ldGhvZClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kc0ZldGNoKCk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB2ZXJpZmljYXRpb25NZXRob2RWZXJpZnkkKGNvZGUsIHRydXN0RGV2aWNlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kVmVyaWZ5KGNvZGUsIHRydXN0RGV2aWNlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy52ZXJpZmljYXRpb25NZXRob2RzRmV0Y2goKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZENyZWF0ZSQodmVyaWZpY2F0aW9uTWV0aG9kKTogT2JzZXJ2YWJsZTxhbnk+ICB7XG4gICAgcmV0dXJuIHRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZENyZWF0ZSh2ZXJpZmljYXRpb25NZXRob2QpO1xuICB9XG5cbiAgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZERlZmF1bHQkKHZlcmlmaWNhdGlvbk1ldGhvZCk6IE9ic2VydmFibGU8YW55PiAge1xuICAgIHJldHVybiB0aGlzLl92ZXJpZmljYXRpb25NZXRob2REZWZhdWx0KHZlcmlmaWNhdGlvbk1ldGhvZCk7XG4gIH1cblxuICBwdWJsaWMgdmVyaWZpY2F0aW9uTWV0aG9kUmVzZW5kKCk6IE9ic2VydmFibGU8YW55PiAge1xuICAgIHJldHVybiB0aGlzLl92ZXJpZmljYXRpb25NZXRob2RSZXNlbmQoKTtcbiAgfVxuXG4gIHB1YmxpYyB2ZXJpZmljYXRpb25NZXRob2RzRmV0Y2gocXVlcnk/OiBhbnkpIHtcbiAgICB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZHNGZXRjaCQocXVlcnkpXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgdmVyaWZpY2F0aW9uTWV0aG9kc0ZldGNoJChxdWVyeT86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZHNGZXRjaChxdWVyeSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKHZlcmlmaWNhdGlvbk1ldGhvZHMpID0+IHtcbiAgICAgICAgICB0aGlzLl92ZXJpZmljYXRpb25NZXRob2RzJC5uZXh0KHZlcmlmaWNhdGlvbk1ldGhvZHMpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhY2NvdW50VmVyaWZ5JCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9hY2NvdW50VmVyaWZ5ID8gdGhpcy5fYWNjb3VudFZlcmlmeSgpIDogb2YodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkU21zJChkZWZhdWx0Q291bnRyeSk6IE9ic2VydmFibGU8YW55PntcbiAgICByZXR1cm4gdGhpcy5hY2NvdW50VmVyaWZ5JCgpXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuX2RpYWxvZy5vcGVuKE51bWJlckNvbXBvbmVudCwge1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGRlZmF1bHRDb3VudHJ5LFxuICAgICAgICAgICAgdHdvRmFjdG9yTWFuYWdlU2VydmljZTogdGhpcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICAgIC5hZnRlckNsb3NlZCgpLFxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kc0ZldGNoKCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRFbWFpbCQoKTogT2JzZXJ2YWJsZTxhbnk+e1xuICAgIHJldHVybiB0aGlzLmFjY291bnRWZXJpZnkkKClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fZGlhbG9nLm9wZW4oRW1haWxDb21wb25lbnQsIHtcbiAgICAgICAgICBkYXRhOiB7IHR3b0ZhY3Rvck1hbmFnZVNlcnZpY2U6IHRoaXMgfSxcbiAgICAgICAgfSlcbiAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKSxcbiAgICAgICAgKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZHNGZXRjaCgpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkQXBwJCgpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgcmV0dXJuIHRoaXMuYWNjb3VudFZlcmlmeSQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9kaWFsb2cub3BlbihBcHBDb21wb25lbnQsIHtcbiAgICAgICAgICBkYXRhOiB7IHR3b0ZhY3Rvck1hbmFnZVNlcnZpY2U6IHRoaXMgIH0sXG4gICAgICAgIH0pXG4gICAgICAgICAgLmFmdGVyQ2xvc2VkKCksXG4gICAgICAgICksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy52ZXJpZmljYXRpb25NZXRob2RzRmV0Y2goKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,37 @@
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/common";
6
+ import * as i2 from "@angular/material/progress-spinner";
7
+ export class ResendComponent {
8
+ _cdRef;
9
+ resend;
10
+ resendInProgress = false;
11
+ _destroy$ = new Subject();
12
+ constructor(_cdRef) {
13
+ this._cdRef = _cdRef;
14
+ }
15
+ resendClick() {
16
+ this.resendInProgress = true;
17
+ this.resend()
18
+ .pipe(finalize(() => {
19
+ this.resendInProgress = false;
20
+ this._cdRef.markForCheck();
21
+ }), takeUntil(this._destroy$))
22
+ .subscribe();
23
+ }
24
+ ngOnDestroy() {
25
+ this._destroy$.next();
26
+ this._destroy$.complete();
27
+ }
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResendComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResendComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ selector: 'app-resend', changeDetection: ChangeDetectionStrategy.OnPush, 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"] }]
34
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { resend: [{
35
+ type: Input
36
+ }] } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9yZXNlbmQvY29tcG9uZW50cy9yZXNlbmQvcmVzZW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9yZXNlbmQvY29tcG9uZW50cy9yZXNlbmQvcmVzZW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQXdCLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFTckQsTUFBTSxPQUFPLGVBQWU7SUFTaEI7SUFQTSxNQUFNLENBQXdCO0lBRXZDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUV4QixTQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVsQyxZQUNVLE1BQXlCO1FBQXpCLFdBQU0sR0FBTixNQUFNLENBQW1CO0lBQ2hDLENBQUM7SUFFRyxXQUFXO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sRUFBRTthQUNWLElBQUksQ0FDSCxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztZQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7d0dBNUJVLGVBQWU7NEZBQWYsZUFBZSxnRkNYNUIsd1JBU0E7OzRGREVhLGVBQWU7a0JBTjNCLFNBQVM7K0JBQ0UsWUFBWSxtQkFHTCx1QkFBdUIsQ0FBQyxNQUFNO3dHQUkvQixNQUFNO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcmVzZW5kJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc2VuZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jlc2VuZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUmVzZW5kQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBwdWJsaWMgcmVzZW5kOiAoKSA9PiBPYnNlcnZhYmxlPGFueT47XG4gIFxuICBwdWJsaWMgcmVzZW5kSW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcbiAgXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIHB1YmxpYyByZXNlbmRDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2VuZEluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgIHRoaXMucmVzZW5kKClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZXNlbmRJblByb2dyZXNzID0gZmFsc2U7ICBcbiAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTsgIFxuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG5cbn0iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIXJlc2VuZEluUHJvZ3Jlc3MgZWxzZSBzZW5kaW5nXCI+XG4gIERpZG4ndCByZWNlaXZlIGEgY29kZT8gPGEgKGNsaWNrKT1cInJlc2VuZENsaWNrKClcIj5SZXNlbmQ8L2E+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjc2VuZGluZz5cbiAgPGRpdiBjbGFzcz1cInNlbmRpbmdcIj5cbiAgICA8bWF0LXNwaW5uZXIgW2RpYW1ldGVyXT1cIjEyXCI+PC9tYXQtc3Bpbm5lcj4gU2VuZGluZ1xuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbiJdfQ==
@@ -4,13 +4,13 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
4
4
  import { ResendComponent } from './components/resend';
5
5
  import * as i0 from "@angular/core";
6
6
  export class ResendModule {
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResendModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ResendModule, declarations: [ResendComponent], imports: [CommonModule,
9
+ MatProgressSpinnerModule], exports: [ResendComponent] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResendModule, imports: [CommonModule,
11
+ MatProgressSpinnerModule] });
7
12
  }
8
- ResendModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ResendModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- ResendModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ResendModule, declarations: [ResendComponent], imports: [CommonModule,
10
- MatProgressSpinnerModule], exports: [ResendComponent] });
11
- ResendModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ResendModule, imports: [CommonModule,
12
- MatProgressSpinnerModule] });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ResendModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResendModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  imports: [
@@ -25,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
25
25
  ],
26
26
  }]
27
27
  }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZW5kLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9yZXNlbmQvcmVzZW5kLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBZ0J0RCxNQUFNLE9BQU8sWUFBWTs7MEdBQVosWUFBWTsyR0FBWixZQUFZLGlCQU5yQixlQUFlLGFBTGYsWUFBWTtRQUVaLHdCQUF3QixhQU14QixlQUFlOzJHQUdOLFlBQVksWUFYckIsWUFBWTtRQUVaLHdCQUF3Qjs0RkFTZixZQUFZO2tCQWJ4QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUVaLHdCQUF3QjtxQkFDekI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3FCQUNoQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcblxuaW1wb3J0IHsgUmVzZW5kQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Jlc2VuZCc7XG5cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcblxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUmVzZW5kQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUmVzZW5kQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSZXNlbmRNb2R1bGUge1xufVxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZW5kLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9yZXNlbmQvcmVzZW5kLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBZ0J0RCxNQUFNLE9BQU8sWUFBWTt3R0FBWixZQUFZO3lHQUFaLFlBQVksaUJBTnJCLGVBQWUsYUFMZixZQUFZO1lBRVosd0JBQXdCLGFBTXhCLGVBQWU7eUdBR04sWUFBWSxZQVhyQixZQUFZO1lBRVosd0JBQXdCOzs0RkFTZixZQUFZO2tCQWJ4QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUVaLHdCQUF3QjtxQkFDekI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3FCQUNoQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcblxuaW1wb3J0IHsgUmVzZW5kQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Jlc2VuZCc7XG5cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcblxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUmVzZW5kQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUmVzZW5kQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSZXNlbmRNb2R1bGUge1xufVxuIl19
@@ -0,0 +1,131 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
+ import { ControlContainer, NgForm } from '@angular/forms';
3
+ import { FsDialog } from '@firestitch/dialog';
4
+ import { FsMessage } from '@firestitch/message';
5
+ import { Subject } from 'rxjs';
6
+ import { filter, finalize, switchMap, tap } from 'rxjs/operators';
7
+ import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
8
+ import { Fs2faVerificationCodeComponent } from '../2fa-verification-code/2fa-verification-code.component';
9
+ import { Fs2faVerificationMethodsComponent } from '../2fa-verification-methods/2fa-verification-methods.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 "@angular/common";
14
+ import * as i4 from "@angular/forms";
15
+ import * as i5 from "@angular/material/checkbox";
16
+ import * as i6 from "@firestitch/form";
17
+ import * as i7 from "../2fa-verification-code/2fa-verification-code.component";
18
+ import * as i8 from "@firestitch/phone";
19
+ export class Fs2faVerificationComponent {
20
+ _cdRef;
21
+ _dialog;
22
+ _message;
23
+ verificationCodeComponent;
24
+ verificationMethod;
25
+ resend;
26
+ showTrustedDevice = true;
27
+ trustDevice = true;
28
+ codeLength;
29
+ trustDays;
30
+ formatRecipient = false;
31
+ getVerificationMethods;
32
+ selectVerificationMethod;
33
+ verified = new EventEmitter();
34
+ codeChanged = new EventEmitter();
35
+ codeCompleted = new EventEmitter();
36
+ trustDeviceChange = new EventEmitter();
37
+ code = '';
38
+ VerificationMethodType = VerificationMethodType;
39
+ _destroy$ = new Subject();
40
+ constructor(_cdRef, _dialog, _message) {
41
+ this._cdRef = _cdRef;
42
+ this._dialog = _dialog;
43
+ this._message = _message;
44
+ }
45
+ get recipient() {
46
+ if (this.verificationMethod.type === VerificationMethodType.Email) {
47
+ return this.verificationMethod.email;
48
+ }
49
+ if (this.verificationMethod.type === VerificationMethodType.Sms) {
50
+ return this.verificationMethod.phoneNumber;
51
+ }
52
+ }
53
+ codeComplete(code) {
54
+ this.code = code;
55
+ this.codeCompleted.emit(this.code);
56
+ }
57
+ ngOnDestroy() {
58
+ this._destroy$.next();
59
+ this._destroy$.complete();
60
+ }
61
+ ngAfterViewInit() {
62
+ this.verificationCodeComponent.focus();
63
+ }
64
+ resendCode() {
65
+ return this.resend()
66
+ .pipe(tap(() => {
67
+ this.code = '';
68
+ this._message.success('Resent Code');
69
+ }), finalize(() => {
70
+ this.verificationCodeComponent.focus();
71
+ }));
72
+ }
73
+ showVerificationMethods() {
74
+ this.getVerificationMethods()
75
+ .pipe(switchMap((verificationMethods) => {
76
+ return this._dialog.open(Fs2faVerificationMethodsComponent, {
77
+ data: {
78
+ verificationMethod: this.verificationMethod,
79
+ verificationMethods,
80
+ selectVerificationMethod: this.selectVerificationMethod,
81
+ },
82
+ })
83
+ .afterClosed()
84
+ .pipe(filter((verificationMethod) => !!verificationMethod));
85
+ }))
86
+ .subscribe((verificationMethod) => {
87
+ this.verificationMethod = verificationMethod;
88
+ this.code = '';
89
+ this._cdRef.markForCheck();
90
+ setTimeout(() => {
91
+ this.verificationCodeComponent.focus();
92
+ });
93
+ });
94
+ }
95
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Fs2faVerificationComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FsDialog }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
96
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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)=\"codeComplete($event)\">\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"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i6.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { kind: "component", type: i7.Fs2faVerificationCodeComponent, selector: "fs-2fa-verification-code", inputs: ["type", "recipient", "codeLength", "code"], outputs: ["codeChanged", "codeCompleted"] }, { kind: "pipe", type: i8.FsPhonePipe, name: "fsPhone" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Fs2faVerificationComponent, decorators: [{
99
+ type: Component,
100
+ args: [{ selector: 'fs-2fa-verification', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], 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)=\"codeComplete($event)\">\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"] }]
101
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.FsDialog }, { type: i2.FsMessage }]; }, propDecorators: { verificationCodeComponent: [{
102
+ type: ViewChild,
103
+ args: [Fs2faVerificationCodeComponent]
104
+ }], verificationMethod: [{
105
+ type: Input
106
+ }], resend: [{
107
+ type: Input
108
+ }], showTrustedDevice: [{
109
+ type: Input
110
+ }], trustDevice: [{
111
+ type: Input
112
+ }], codeLength: [{
113
+ type: Input
114
+ }], trustDays: [{
115
+ type: Input
116
+ }], formatRecipient: [{
117
+ type: Input
118
+ }], getVerificationMethods: [{
119
+ type: Input
120
+ }], selectVerificationMethod: [{
121
+ type: Input
122
+ }], verified: [{
123
+ type: Output
124
+ }], codeChanged: [{
125
+ type: Output
126
+ }], codeCompleted: [{
127
+ type: Output
128
+ }], trustDeviceChange: [{
129
+ type: Output
130
+ }] } });
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMmZhLXZlcmlmaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvdmVyaWZpY2F0aW9uL2NvbXBvbmVudHMvMmZhLXZlcmlmaWNhdGlvbi8yZmEtdmVyaWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy92ZXJpZmljYXRpb24vY29tcG9uZW50cy8yZmEtdmVyaWZpY2F0aW9uLzJmYS12ZXJpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUV6RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7OztBQVVuSCxNQUFNLE9BQU8sMEJBQTBCO0lBa0QzQjtJQUNBO0lBQ0E7SUFqREgseUJBQXlCLENBQWlDO0lBRzFELGtCQUFr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QUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO1lBQzdDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUUzQixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt3R0F6SFUsMEJBQTBCOzRGQUExQiwwQkFBMEIsdWtCQUUxQiw4QkFBOEIsZ0RDbkMzQywrOUJBMkJNLHN5RERJVyxDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQzs7NEZBRXhELDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7dUpBSzVELHlCQUF5QjtzQkFEL0IsU0FBUzt1QkFBQyw4QkFBOEI7Z0JBSWxDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsS0FBSztnQkFJQyxzQkFBc0I7c0JBRDVCLEtBQUs7Z0JBSUMsd0JBQXdCO3NCQUQ5QixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsTUFBTTtnQkFJQSxXQUFXO3NCQURqQixNQUFNO2dCQUlBLGFBQWE7c0JBRG5CLE1BQU07Z0JBSUEsaUJBQWlCO3NCQUR2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5cbmltcG9ydCB7IEZzRGlhbG9nIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZGlhbG9nJztcbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpbmFsaXplLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgVmVyaWZpY2F0aW9uTWV0aG9kVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2VudW1zL3ZlcmlmaWNhdGlvbi1tZXRob2QtdHlwZS5lbnVtJztcbmltcG9ydCB7IElGc1ZlcmlmaWNhdGlvbk1ldGhvZCB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvdmVyaWZpY2F0aW9uLW1ldGhvZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRnMyZmFWZXJpZmljYXRpb25Db2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vMmZhLXZlcmlmaWNhdGlvbi1jb2RlLzJmYS12ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRnMyZmFWZXJpZmljYXRpb25NZXRob2RzQ29tcG9uZW50IH0gZnJvbSAnLi4vMmZhLXZlcmlmaWNhdGlvbi1tZXRob2RzLzJmYS12ZXJpZmljYXRpb24tbWV0aG9kcy5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLTJmYS12ZXJpZmljYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vMmZhLXZlcmlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLzJmYS12ZXJpZmljYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsICBcbiAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgRnMyZmFWZXJpZmljYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gIEBWaWV3Q2hpbGQoRnMyZmFWZXJpZmljYXRpb25Db2RlQ29tcG9uZW50KVxuICBwdWJsaWMgdmVyaWZpY2F0aW9uQ29kZUNvbXBvbmVudDogRnMyZmFWZXJpZmljYXRpb25Db2RlQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2ZXJpZmljYXRpb25NZXRob2Q6IElGc1ZlcmlmaWNhdGlvbk1ldGhvZDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVzZW5kOiAoKSA9PiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93VHJ1c3RlZERldmljZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRydXN0RGV2aWNlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29kZUxlbmd0aDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdHJ1c3REYXlzO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb3JtYXRSZWNpcGllbnQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0VmVyaWZpY2F0aW9uTWV0aG9kczogKCkgPT4gT2JzZXJ2YWJsZTxJRnNWZXJpZmljYXRpb25NZXRob2RbXT47XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdFZlcmlmaWNhdGlvbk1ldGhvZDogKHZlcmlmaWNhdGlvbk1ldGhvZDogSUZzVmVyaWZpY2F0aW9uTWV0aG9kKSA9PiBPYnNlcnZhYmxlPElGc1ZlcmlmaWNhdGlvbk1ldGhvZD47XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyB2ZXJpZmllZCA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bj4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNvZGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY29kZUNvbXBsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bj4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHRydXN0RGV2aWNlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHB1YmxpYyBjb2RlID0gJyc7XG4gIHB1YmxpYyBWZXJpZmljYXRpb25NZXRob2RUeXBlID0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX2RpYWxvZzogRnNEaWFsb2csXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogRnNNZXNzYWdlLFxuICApIHt9XG5cbiAgcHVibGljIGdldCByZWNpcGllbnQoKTogc3RyaW5nIHtcbiAgICBpZih0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZC50eXBlID09PSBWZXJpZmljYXRpb25NZXRob2RUeXBlLkVtYWlsKSB7XG4gICAgICByZXR1cm4gdGhpcy52ZXJpZmljYXRpb25NZXRob2QuZW1haWw7XG4gICAgfVxuXG4gICAgaWYodGhpcy52ZXJpZmljYXRpb25NZXRob2QudHlwZSA9PT0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5TbXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZC5waG9uZU51bWJlcjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY29kZUNvbXBsZXRlKGNvZGUpOiB2b2lkIHtcbiAgICB0aGlzLmNvZGUgPSBjb2RlO1xuICAgIHRoaXMuY29kZUNvbXBsZXRlZC5lbWl0KHRoaXMuY29kZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmVyaWZpY2F0aW9uQ29kZUNvbXBvbmVudC5mb2N1cygpOyAgICBcbiAgfVxuXG4gIHB1YmxpYyByZXNlbmRDb2RlKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucmVzZW5kKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY29kZSA9ICcnO1xuICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnUmVzZW50IENvZGUnKTtcbiAgICAgICAgfSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQuZm9jdXMoKTsgIFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2hvd1ZlcmlmaWNhdGlvbk1ldGhvZHMoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRWZXJpZmljYXRpb25NZXRob2RzKClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHZlcmlmaWNhdGlvbk1ldGhvZHMpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fZGlhbG9nLm9wZW4oXG4gICAgICAgICAgICBGczJmYVZlcmlmaWNhdGlvbk1ldGhvZHNDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICB2ZXJpZmljYXRpb25NZXRob2Q6IHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kLFxuICAgICAgICAgICAgICAgIHZlcmlmaWNhdGlvbk1ldGhvZHMsXG4gICAgICAgICAgICAgICAgc2VsZWN0VmVyaWZpY2F0aW9uTWV0aG9kOiB0aGlzLnNlbGVjdFZlcmlmaWNhdGlvbk1ldGhvZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICBmaWx0ZXIoKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4gISF2ZXJpZmljYXRpb25NZXRob2QpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2ZXJpZmljYXRpb25NZXRob2QpID0+IHtcbiAgICAgICAgdGhpcy52ZXJpZmljYXRpb25NZXRob2QgPSB2ZXJpZmljYXRpb25NZXRob2Q7XG4gICAgICAgIHRoaXMuY29kZSA9ICcnO1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQuZm9jdXMoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiY29kZS1jb250YWluZXJcIj5cbiAgPGZzLTJmYS12ZXJpZmljYXRpb24tY29kZVxuICAgIFtyZWNpcGllbnRdPVwiKGZvcm1hdFJlY2lwaWVudCAmJiB2ZXJpZmljYXRpb25NZXRob2QudHlwZSA9PT0gVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5TbXMpID8gKHJlY2lwaWVudCB8IGZzUGhvbmUpIDogcmVjaXBpZW50XCJcbiAgICBbdHlwZV09XCJ2ZXJpZmljYXRpb25NZXRob2QudHlwZVwiXG4gICAgW2NvZGVdPVwiY29kZVwiXG4gICAgW2NvZGVMZW5ndGhdPVwiY29kZUxlbmd0aFwiXG4gICAgKGNvZGVDaGFuZ2VkKT1cImNvZGVDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgKGNvZGVDb21wbGV0ZWQpPVwiY29kZUNvbXBsZXRlKCRldmVudClcIj5cbiAgPC9mcy0yZmEtdmVyaWZpY2F0aW9uLWNvZGU+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImFkZGl0aW9uYWxcIj5cbiAgPGRpdiBcbiAgICAgIGNsYXNzPVwidHJ1c3QtZGV2aWNlXCJcbiAgICAgICpuZ0lmPVwic2hvd1RydXN0ZWREZXZpY2VcIj5cbiAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgbmFtZT1cInRydXN0LWRldmljZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJ0cnVzdERldmljZVwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidHJ1c3REZXZpY2VDaGFuZ2UuZW1pdCgkZXZlbnQpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic21hbGxcIj5cbiAgICAgICAgQnlwYXNzIHZlcmlmaWNhdGlvbiBcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRydXN0RGF5c1wiPmZvciB7e3RydXN0RGF5c319IGRheXM8L25nLWNvbnRhaW5lcj4gIFxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRydXN0RGF5c1wiPmZvciBmdXR1cmUgc2lnbmluczwvbmctY29udGFpbmVyPiBcbiAgICAgICAgdW5sZXNzIGNvb2tpZXMgYXJlIGNsZWFyZWRcbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWNoZWNrYm94PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==