@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.
- package/app/modules/code-input/components/code-input/code-input.component.d.ts +1 -1
- package/app/modules/manage/components/2fa-manage/2fa-manage.component.d.ts +1 -1
- package/app/modules/resend/components/resend/resend.component.d.ts +1 -1
- package/app/modules/verification/components/2fa-verification/2fa-verification.component.d.ts +1 -1
- package/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.d.ts +1 -1
- package/app/modules/verification/directives/2fa-verification-resend.directive.d.ts +1 -1
- package/app/modules/verification-methods/components/verification-methods/verification-methods.component.d.ts +1 -1
- package/{esm2020 → esm2022}/app/modules/code-input/code-input.module.mjs +11 -11
- package/esm2022/app/modules/code-input/components/code-input/code-input.component.mjs +41 -0
- package/{esm2020 → esm2022}/app/modules/defaulted/components/defaulted/defaulted.component.mjs +4 -4
- package/{esm2020 → esm2022}/app/modules/defaulted/defaulted.module.mjs +5 -5
- package/esm2022/app/modules/manage/components/2fa-manage/2fa-manage.component.mjs +111 -0
- package/esm2022/app/modules/manage/components/app/app.component.mjs +96 -0
- package/esm2022/app/modules/manage/components/email/email.component.mjs +92 -0
- package/esm2022/app/modules/manage/components/emails/emails.component.mjs +52 -0
- package/esm2022/app/modules/manage/components/manage-methods/manage-methods.component.mjs +132 -0
- package/esm2022/app/modules/manage/components/number/number.component.mjs +97 -0
- package/esm2022/app/modules/manage/components/numbers/numbers.component.mjs +54 -0
- package/{esm2020 → esm2022}/app/modules/manage/fs-2f-manage.module.mjs +49 -49
- package/esm2022/app/modules/manage/services/two-factor-manage.service.mjs +169 -0
- package/esm2022/app/modules/resend/components/resend/resend.component.mjs +37 -0
- package/{esm2020 → esm2022}/app/modules/resend/resend.module.mjs +7 -7
- package/esm2022/app/modules/verification/components/2fa-verification/2fa-verification.component.mjs +131 -0
- package/esm2022/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.mjs +66 -0
- package/esm2022/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.mjs +63 -0
- package/esm2022/app/modules/verification/directives/2fa-verification-resend.directive.mjs +34 -0
- package/{esm2020 → esm2022}/app/modules/verification/fs-2fa-verification.module.mjs +39 -39
- package/esm2022/app/modules/verification-methods/components/verification-methods/verification-methods.component.mjs +126 -0
- package/{esm2020 → esm2022}/app/modules/verification-methods/fs-2f-verification-methods.module.mjs +17 -17
- package/fesm2022/firestitch-2fa.mjs +1438 -0
- package/{fesm2020 → fesm2022}/firestitch-2fa.mjs.map +1 -1
- package/package.json +5 -11
- package/esm2020/app/modules/code-input/components/code-input/code-input.component.mjs +0 -40
- package/esm2020/app/modules/manage/components/2fa-manage/2fa-manage.component.mjs +0 -98
- package/esm2020/app/modules/manage/components/app/app.component.mjs +0 -84
- package/esm2020/app/modules/manage/components/email/email.component.mjs +0 -83
- package/esm2020/app/modules/manage/components/emails/emails.component.mjs +0 -47
- package/esm2020/app/modules/manage/components/manage-methods/manage-methods.component.mjs +0 -125
- package/esm2020/app/modules/manage/components/number/number.component.mjs +0 -87
- package/esm2020/app/modules/manage/components/numbers/numbers.component.mjs +0 -48
- package/esm2020/app/modules/manage/services/two-factor-manage.service.mjs +0 -161
- package/esm2020/app/modules/resend/components/resend/resend.component.mjs +0 -35
- package/esm2020/app/modules/verification/components/2fa-verification/2fa-verification.component.mjs +0 -121
- package/esm2020/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.mjs +0 -60
- package/esm2020/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.mjs +0 -56
- package/esm2020/app/modules/verification/directives/2fa-verification-resend.directive.mjs +0 -32
- package/esm2020/app/modules/verification-methods/components/verification-methods/verification-methods.component.mjs +0 -117
- package/fesm2015/firestitch-2fa.mjs +0 -1345
- package/fesm2015/firestitch-2fa.mjs.map +0 -1
- package/fesm2020/firestitch-2fa.mjs +0 -1331
- /package/{esm2020 → esm2022}/app/enums/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/enums/verification-method-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/app/interfaces/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/interfaces/verification-method.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/code-input/components/code-input/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/code-input/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/defaulted/components/defaulted/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/manage/components/2fa-manage/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/manage/components/app/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/manage/components/email/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/manage/components/emails/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/manage/components/manage-methods/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/manage/components/number/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/manage/components/numbers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/manage/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/resend/components/resend/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/verification/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/verification-methods/components/verification-methods/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/verification-methods/index.mjs +0 -0
- /package/{esm2020 → esm2022}/firestitch-2fa.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
|
@@ -11,5 +11,5 @@ export declare class CodeInputComponent implements OnInit {
|
|
|
11
11
|
codeComplete(code: any): void;
|
|
12
12
|
focus(): void;
|
|
13
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<CodeInputComponent, never>;
|
|
14
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CodeInputComponent, "app-code-input", never, { "codeLength": "codeLength"; "code": "code"; }, { "codeCompleted": "codeCompleted"; "codeChanged": "codeChanged"; }, never, never, false, never>;
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CodeInputComponent, "app-code-input", never, { "codeLength": { "alias": "codeLength"; "required": false; }; "code": { "alias": "code"; "required": false; }; }, { "codeCompleted": "codeCompleted"; "codeChanged": "codeChanged"; }, never, never, false, never>;
|
|
15
15
|
}
|
|
@@ -26,5 +26,5 @@ export declare class Fs2faManageComponent implements OnDestroy, OnInit {
|
|
|
26
26
|
reload(): void;
|
|
27
27
|
ngOnDestroy(): void;
|
|
28
28
|
static ɵfac: i0.ɵɵFactoryDeclaration<Fs2faManageComponent, never>;
|
|
29
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<Fs2faManageComponent, "fs-2fa-manage", never, { "accountVerify": "accountVerify"; "defaultCountry": "defaultCountry"; "verificationMethodTypes": "verificationMethodTypes"; "verificationMethodsFetch": "verificationMethodsFetch"; "verificationMethodDelete": "verificationMethodDelete"; "verificationMethodCreate": "verificationMethodCreate"; "verificationMethodDefault": "verificationMethodDefault"; "verificationMethodVerify": "verificationMethodVerify"; "verificationMethodResend": "verificationMethodResend"; }, {}, never, never, false, never>;
|
|
29
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<Fs2faManageComponent, "fs-2fa-manage", never, { "accountVerify": { "alias": "accountVerify"; "required": false; }; "defaultCountry": { "alias": "defaultCountry"; "required": false; }; "verificationMethodTypes": { "alias": "verificationMethodTypes"; "required": false; }; "verificationMethodsFetch": { "alias": "verificationMethodsFetch"; "required": false; }; "verificationMethodDelete": { "alias": "verificationMethodDelete"; "required": false; }; "verificationMethodCreate": { "alias": "verificationMethodCreate"; "required": false; }; "verificationMethodDefault": { "alias": "verificationMethodDefault"; "required": false; }; "verificationMethodVerify": { "alias": "verificationMethodVerify"; "required": false; }; "verificationMethodResend": { "alias": "verificationMethodResend"; "required": false; }; }, {}, never, never, false, never>;
|
|
30
30
|
}
|
|
@@ -10,5 +10,5 @@ export declare class ResendComponent {
|
|
|
10
10
|
resendClick(): void;
|
|
11
11
|
ngOnDestroy(): void;
|
|
12
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<ResendComponent, never>;
|
|
13
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ResendComponent, "app-resend", never, { "resend": "resend"; }, {}, never, never, false, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ResendComponent, "app-resend", never, { "resend": { "alias": "resend"; "required": false; }; }, {}, never, never, false, never>;
|
|
14
14
|
}
|
package/app/modules/verification/components/2fa-verification/2fa-verification.component.d.ts
CHANGED
|
@@ -35,5 +35,5 @@ export declare class Fs2faVerificationComponent implements OnDestroy, AfterViewI
|
|
|
35
35
|
resendCode(): Observable<any>;
|
|
36
36
|
showVerificationMethods(): void;
|
|
37
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<Fs2faVerificationComponent, never>;
|
|
38
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<Fs2faVerificationComponent, "fs-2fa-verification", never, { "verificationMethod": "verificationMethod"; "resend": "resend"; "showTrustedDevice": "showTrustedDevice"; "trustDevice": "trustDevice"; "codeLength": "codeLength"; "trustDays": "trustDays"; "formatRecipient": "formatRecipient"; "getVerificationMethods": "getVerificationMethods"; "selectVerificationMethod": "selectVerificationMethod"; }, { "verified": "verified"; "codeChanged": "codeChanged"; "codeCompleted": "codeCompleted"; "trustDeviceChange": "trustDeviceChange"; }, never, never, false, never>;
|
|
38
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<Fs2faVerificationComponent, "fs-2fa-verification", never, { "verificationMethod": { "alias": "verificationMethod"; "required": false; }; "resend": { "alias": "resend"; "required": false; }; "showTrustedDevice": { "alias": "showTrustedDevice"; "required": false; }; "trustDevice": { "alias": "trustDevice"; "required": false; }; "codeLength": { "alias": "codeLength"; "required": false; }; "trustDays": { "alias": "trustDays"; "required": false; }; "formatRecipient": { "alias": "formatRecipient"; "required": false; }; "getVerificationMethods": { "alias": "getVerificationMethods"; "required": false; }; "selectVerificationMethod": { "alias": "selectVerificationMethod"; "required": false; }; }, { "verified": "verified"; "codeChanged": "codeChanged"; "codeCompleted": "codeCompleted"; "trustDeviceChange": "trustDeviceChange"; }, never, never, false, never>;
|
|
39
39
|
}
|
|
@@ -18,5 +18,5 @@ export declare class Fs2faVerificationCodeComponent {
|
|
|
18
18
|
codeChange(code: any): void;
|
|
19
19
|
focus(): void;
|
|
20
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<Fs2faVerificationCodeComponent, never>;
|
|
21
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<Fs2faVerificationCodeComponent, "fs-2fa-verification-code", never, { "type": "type"; "recipient": "recipient"; "codeLength": "codeLength"; "code": "code"; }, { "codeChanged": "codeChanged"; "codeCompleted": "codeCompleted"; }, never, never, false, never>;
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<Fs2faVerificationCodeComponent, "fs-2fa-verification-code", never, { "type": { "alias": "type"; "required": false; }; "recipient": { "alias": "recipient"; "required": false; }; "codeLength": { "alias": "codeLength"; "required": false; }; "code": { "alias": "code"; "required": false; }; }, { "codeChanged": "codeChanged"; "codeCompleted": "codeCompleted"; }, never, never, false, never>;
|
|
22
22
|
}
|
|
@@ -7,5 +7,5 @@ export declare class Fs2faVerificationResendDirective {
|
|
|
7
7
|
click(): void;
|
|
8
8
|
constructor(_button: MatButton);
|
|
9
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<Fs2faVerificationResendDirective, never>;
|
|
10
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<Fs2faVerificationResendDirective, "[fs2faVerificationResend]", never, { "verification": "fs2faVerificationResend"; }, {}, never, never, false, never>;
|
|
10
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<Fs2faVerificationResendDirective, "[fs2faVerificationResend]", never, { "verification": { "alias": "fs2faVerificationResend"; "required": false; }; }, {}, never, never, false, never>;
|
|
11
11
|
}
|
|
@@ -22,5 +22,5 @@ export declare class VerificationMethodsComponent implements OnInit {
|
|
|
22
22
|
ngOnInit(): void;
|
|
23
23
|
reload(): void;
|
|
24
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<VerificationMethodsComponent, never>;
|
|
25
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<VerificationMethodsComponent, "fs-2fa-verification-methods", never, { "type": "type"; "accountVerify": "accountVerify"; "verificationMethodsFetch": "verificationMethodsFetch"; "verificationMethodDelete": "verificationMethodDelete"; "verificationMethodDefault": "verificationMethodDefault"; "twoFactorManageService": "twoFactorManageService"; }, { "deleted": "deleted"; }, never, never, false, never>;
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VerificationMethodsComponent, "fs-2fa-verification-methods", never, { "type": { "alias": "type"; "required": false; }; "accountVerify": { "alias": "accountVerify"; "required": false; }; "verificationMethodsFetch": { "alias": "verificationMethodsFetch"; "required": false; }; "verificationMethodDelete": { "alias": "verificationMethodDelete"; "required": false; }; "verificationMethodDefault": { "alias": "verificationMethodDefault"; "required": false; }; "twoFactorManageService": { "alias": "twoFactorManageService"; "required": false; }; }, { "deleted": "deleted"; }, never, never, false, never>;
|
|
26
26
|
}
|
|
@@ -6,17 +6,17 @@ import { MatInputModule } from '@angular/material/input';
|
|
|
6
6
|
import { CodeInputComponent } from './components/code-input';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class CodeInputModule {
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CodeInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: CodeInputModule, declarations: [CodeInputComponent], imports: [FormsModule,
|
|
11
|
+
MatFormFieldModule,
|
|
12
|
+
MatInputModule,
|
|
13
|
+
FsCodeInputModule], exports: [CodeInputComponent] });
|
|
14
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CodeInputModule, imports: [FormsModule,
|
|
15
|
+
MatFormFieldModule,
|
|
16
|
+
MatInputModule,
|
|
17
|
+
FsCodeInputModule] });
|
|
9
18
|
}
|
|
10
|
-
|
|
11
|
-
CodeInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: CodeInputModule, declarations: [CodeInputComponent], imports: [FormsModule,
|
|
12
|
-
MatFormFieldModule,
|
|
13
|
-
MatInputModule,
|
|
14
|
-
FsCodeInputModule], exports: [CodeInputComponent] });
|
|
15
|
-
CodeInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CodeInputModule, imports: [FormsModule,
|
|
16
|
-
MatFormFieldModule,
|
|
17
|
-
MatInputModule,
|
|
18
|
-
FsCodeInputModule] });
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CodeInputModule, decorators: [{
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CodeInputModule, decorators: [{
|
|
20
20
|
type: NgModule,
|
|
21
21
|
args: [{
|
|
22
22
|
imports: [
|
|
@@ -33,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
33
33
|
],
|
|
34
34
|
}]
|
|
35
35
|
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29kZS1pbnB1dC9jb2RlLWlucHV0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBbUI3RCxNQUFNLE9BQU8sZUFBZTt3R0FBZixlQUFlO3lHQUFmLGVBQWUsaUJBTnhCLGtCQUFrQixhQVJsQixXQUFXO1lBRVgsa0JBQWtCO1lBQ2xCLGNBQWM7WUFFZCxpQkFBaUIsYUFNakIsa0JBQWtCO3lHQUdULGVBQWUsWUFkeEIsV0FBVztZQUVYLGtCQUFrQjtZQUNsQixjQUFjO1lBRWQsaUJBQWlCOzs0RkFTUixlQUFlO2tCQWhCM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFFWCxrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBRWQsaUJBQWlCO3FCQUNsQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCO3FCQUNuQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgRnNDb2RlSW5wdXRNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9jb2RlLWlucHV0JztcblxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IENvZGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2RlLWlucHV0JztcblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG5cbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG5cbiAgICBGc0NvZGVJbnB1dE1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQ29kZUlucHV0Q29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ29kZUlucHV0Q29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RlSW5wdXRNb2R1bGUge1xufVxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { FsCodeInputComponent } from '@firestitch/code-input';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/forms";
|
|
5
|
+
import * as i2 from "@firestitch/code-input";
|
|
6
|
+
export class CodeInputComponent {
|
|
7
|
+
codeInput;
|
|
8
|
+
codeLength;
|
|
9
|
+
code;
|
|
10
|
+
codeCompleted = new EventEmitter();
|
|
11
|
+
codeChanged = new EventEmitter();
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
if (!this.codeLength) {
|
|
14
|
+
this.codeLength = 6;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
codeComplete(code) {
|
|
18
|
+
this.codeCompleted.emit(code);
|
|
19
|
+
}
|
|
20
|
+
focus() {
|
|
21
|
+
this.codeInput.focusOnField(0);
|
|
22
|
+
}
|
|
23
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CodeInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CodeInputComponent, selector: "app-code-input", inputs: { codeLength: "codeLength", code: "code" }, outputs: { codeCompleted: "codeCompleted", codeChanged: "codeChanged" }, viewQueries: [{ propertyName: "codeInput", first: true, predicate: FsCodeInputComponent, descendants: true }], ngImport: i0, template: "<fs-code-input\n [codeLength]=\"codeLength\"\n [ngModel]=\"code\"\n name=\"code\"\n [isPrevFocusableAfterClearing]=\"false\"\n (completedLast)=\"codeComplete($event)\"\n (ngModelChange)=\"codeChanged.emit($event)\">\n</fs-code-input>\n", styles: ["code-input{--item-spacing: 10px;--item-height: 20px;--item-border: none;--item-border-bottom: 2px solid #949494;--item-border-has-value: none;--item-border-bottom-has-value: 2px solid #949494;--item-border-focused: none;--item-border-bottom-focused: 2px solid #0061AF;--item-shadow-focused: none;--item-border-radius: 0px}code-input ::ng-deep span:first-child{padding-left:0!important}code-input ::ng-deep span:last-child{padding-right:0!important}code-input ::ng-deep input{font-size:20px!important;height:40px!important;padding:0!important}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.FsCodeInputComponent, selector: "fs-code-input", inputs: ["codeLength", "inputType", "inputMode", "initialFocusField", "isCharsCode", "isCodeHidden", "isPrevFocusableAfterClearing", "isFocusingOnLastByClickIfFilled", "disabled", "autocapitalize"], outputs: ["changed", "completed", "completedLast"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CodeInputComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{ selector: 'app-code-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fs-code-input\n [codeLength]=\"codeLength\"\n [ngModel]=\"code\"\n name=\"code\"\n [isPrevFocusableAfterClearing]=\"false\"\n (completedLast)=\"codeComplete($event)\"\n (ngModelChange)=\"codeChanged.emit($event)\">\n</fs-code-input>\n", styles: ["code-input{--item-spacing: 10px;--item-height: 20px;--item-border: none;--item-border-bottom: 2px solid #949494;--item-border-has-value: none;--item-border-bottom-has-value: 2px solid #949494;--item-border-focused: none;--item-border-bottom-focused: 2px solid #0061AF;--item-shadow-focused: none;--item-border-radius: 0px}code-input ::ng-deep span:first-child{padding-left:0!important}code-input ::ng-deep span:last-child{padding-right:0!important}code-input ::ng-deep input{font-size:20px!important;height:40px!important;padding:0!important}\n"] }]
|
|
29
|
+
}], propDecorators: { codeInput: [{
|
|
30
|
+
type: ViewChild,
|
|
31
|
+
args: [FsCodeInputComponent]
|
|
32
|
+
}], codeLength: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], code: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], codeCompleted: [{
|
|
37
|
+
type: Output
|
|
38
|
+
}], codeChanged: [{
|
|
39
|
+
type: Output
|
|
40
|
+
}] } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29kZS1pbnB1dC9jb21wb25lbnRzL2NvZGUtaW5wdXQvY29kZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29kZS1pbnB1dC9jb21wb25lbnRzL2NvZGUtaW5wdXQvY29kZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQVM5RCxNQUFNLE9BQU8sa0JBQWtCO0lBR3RCLFNBQVMsQ0FBdUI7SUFFdkIsVUFBVSxDQUFTO0lBQ25CLElBQUksQ0FBQztJQUVKLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ25DLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRTNDLFFBQVE7UUFDYixJQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFTSxZQUFZLENBQUMsSUFBSTtRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7d0dBdkJVLGtCQUFrQjs0RkFBbEIsa0JBQWtCLDhOQUVsQixvQkFBb0IsZ0RDYmpDLG1QQVFBOzs0RkRHYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU07OEJBS3hDLFNBQVM7c0JBRGYsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBR2YsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUVXLGFBQWE7c0JBQTdCLE1BQU07Z0JBQ1UsV0FBVztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRnNDb2RlSW5wdXRDb21wb25lbnQgfSBmcm9tICdAZmlyZXN0aXRjaC9jb2RlLWlucHV0JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29kZS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2RlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29kZS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ29kZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKEZzQ29kZUlucHV0Q29tcG9uZW50KVxuICBwdWJsaWMgY29kZUlucHV0OiBGc0NvZGVJbnB1dENvbXBvbmVudDtcblxuICBASW5wdXQoKSBwdWJsaWMgY29kZUxlbmd0aDogbnVtYmVyO1xuICBASW5wdXQoKSBwdWJsaWMgY29kZTtcblxuICBAT3V0cHV0KCkgcHVibGljIGNvZGVDb21wbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY29kZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmKCF0aGlzLmNvZGVMZW5ndGgpIHtcbiAgICAgIHRoaXMuY29kZUxlbmd0aCA9IDY7XG4gICAgfVxuICB9IFxuXG4gIHB1YmxpYyBjb2RlQ29tcGxldGUoY29kZSk6IHZvaWQge1xuICAgIHRoaXMuY29kZUNvbXBsZXRlZC5lbWl0KGNvZGUpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuY29kZUlucHV0LmZvY3VzT25GaWVsZCgwKTtcbiAgfVxufVxuIiwiPGZzLWNvZGUtaW5wdXRcbiAgW2NvZGVMZW5ndGhdPVwiY29kZUxlbmd0aFwiXG4gIFtuZ01vZGVsXT1cImNvZGVcIlxuICBuYW1lPVwiY29kZVwiXG4gIFtpc1ByZXZGb2N1c2FibGVBZnRlckNsZWFyaW5nXT1cImZhbHNlXCJcbiAgKGNvbXBsZXRlZExhc3QpPVwiY29kZUNvbXBsZXRlKCRldmVudClcIlxuICAobmdNb2RlbENoYW5nZSk9XCJjb2RlQ2hhbmdlZC5lbWl0KCRldmVudClcIj5cbjwvZnMtY29kZS1pbnB1dD5cbiJdfQ==
|
package/{esm2020 → esm2022}/app/modules/defaulted/components/defaulted/defaulted.component.mjs
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Component, ChangeDetectionStrategy, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class DefaultedComponent {
|
|
4
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DefaultedComponent, selector: "app-defaulted", ngImport: i0, template: "<span>Default</span>", styles: ["span{font-size:75%;background-color:#02a7f0;padding:2px 4px;border-radius:4px;color:#fff}:host{display:flex}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4
6
|
}
|
|
5
|
-
|
|
6
|
-
DefaultedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DefaultedComponent, selector: "app-defaulted", ngImport: i0, template: "<span>Default</span>", styles: ["span{font-size:75%;background-color:#02a7f0;padding:2px 4px;border-radius:4px;color:#fff}:host{display:flex}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DefaultedComponent, decorators: [{
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultedComponent, decorators: [{
|
|
8
8
|
type: Component,
|
|
9
9
|
args: [{ selector: 'app-defaulted', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span>Default</span>", styles: ["span{font-size:75%;background-color:#02a7f0;padding:2px 4px;border-radius:4px;color:#fff}:host{display:flex}\n"] }]
|
|
10
10
|
}] });
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdGVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9kZWZhdWx0ZWQvY29tcG9uZW50cy9kZWZhdWx0ZWQvZGVmYXVsdGVkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9kZWZhdWx0ZWQvY29tcG9uZW50cy9kZWZhdWx0ZWQvZGVmYXVsdGVkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsdUJBQXVCLEdBQ25DLE1BQU0sZUFBZSxDQUFDOztBQVN2QixNQUFNLE9BQU8sa0JBQWtCO3dHQUFsQixrQkFBa0I7NEZBQWxCLGtCQUFrQixxRENYL0Isc0JBQW9COzs0RkRXUCxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRlZmF1bHRlZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0ZWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kZWZhdWx0ZWQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERlZmF1bHRlZENvbXBvbmVudCB7XG5cbn1cbiIsIjxzcGFuPkRlZmF1bHQ8L3NwYW4+Il19
|
|
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
|
|
|
2
2
|
import { DefaultedComponent } from './components/defaulted';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class DefautledModule {
|
|
5
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefautledModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
6
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DefautledModule, declarations: [DefaultedComponent], exports: [DefaultedComponent] });
|
|
7
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefautledModule });
|
|
5
8
|
}
|
|
6
|
-
|
|
7
|
-
DefautledModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: DefautledModule, declarations: [DefaultedComponent], exports: [DefaultedComponent] });
|
|
8
|
-
DefautledModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DefautledModule });
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DefautledModule, decorators: [{
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefautledModule, decorators: [{
|
|
10
10
|
type: NgModule,
|
|
11
11
|
args: [{
|
|
12
12
|
declarations: [
|
|
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
15
15
|
exports: [DefaultedComponent],
|
|
16
16
|
}]
|
|
17
17
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdGVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9kZWZhdWx0ZWQvZGVmYXVsdGVkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQVM1RCxNQUFNLE9BQU8sZUFBZTt3R0FBZixlQUFlO3lHQUFmLGVBQWUsaUJBSnhCLGtCQUFrQixhQUVWLGtCQUFrQjt5R0FFakIsZUFBZTs7NEZBQWYsZUFBZTtrQkFOM0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEZWZhdWx0ZWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGVmYXVsdGVkJztcblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEZWZhdWx0ZWRDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtEZWZhdWx0ZWRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBEZWZhdXRsZWRNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, ChangeDetectorRef, Input, } from '@angular/core';
|
|
2
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
|
5
|
+
import { TwoFactorManageService } from '../../services';
|
|
6
|
+
import { ManageMethodsComponent } from '../manage-methods';
|
|
7
|
+
import { VerificationMethodType } from '../../../../enums';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/material/dialog";
|
|
10
|
+
import * as i2 from "../../services";
|
|
11
|
+
import * as i3 from "@angular/common";
|
|
12
|
+
import * as i4 from "@firestitch/label";
|
|
13
|
+
export class Fs2faManageComponent {
|
|
14
|
+
_cdRef;
|
|
15
|
+
_dialog;
|
|
16
|
+
_twoFactorManageService;
|
|
17
|
+
accountVerify;
|
|
18
|
+
defaultCountry;
|
|
19
|
+
verificationMethodTypes;
|
|
20
|
+
verificationMethodsFetch;
|
|
21
|
+
verificationMethodDelete;
|
|
22
|
+
verificationMethodCreate;
|
|
23
|
+
verificationMethodDefault;
|
|
24
|
+
verificationMethodVerify;
|
|
25
|
+
verificationMethodResend;
|
|
26
|
+
statuses;
|
|
27
|
+
_destroy$ = new Subject();
|
|
28
|
+
constructor(_cdRef, _dialog, _twoFactorManageService) {
|
|
29
|
+
this._cdRef = _cdRef;
|
|
30
|
+
this._dialog = _dialog;
|
|
31
|
+
this._twoFactorManageService = _twoFactorManageService;
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
this.verificationMethodTypes = this.verificationMethodTypes || [
|
|
35
|
+
VerificationMethodType.Sms,
|
|
36
|
+
VerificationMethodType.Email,
|
|
37
|
+
VerificationMethodType.App
|
|
38
|
+
];
|
|
39
|
+
this._twoFactorManageService.registerVerificationMethodsFetch(this.verificationMethodsFetch);
|
|
40
|
+
this._twoFactorManageService.registerVerificationMethodDelete(this.verificationMethodDelete);
|
|
41
|
+
this._twoFactorManageService.registerVerificationMethodCreate(this.verificationMethodCreate);
|
|
42
|
+
this._twoFactorManageService.registerVerificationMethodVerify(this.verificationMethodVerify);
|
|
43
|
+
this._twoFactorManageService.registerVerificationMethodResend(this.verificationMethodResend);
|
|
44
|
+
this._twoFactorManageService.registerVerificationMethodDefault(this.verificationMethodDefault);
|
|
45
|
+
this._twoFactorManageService.registerAccountVerify(this.accountVerify);
|
|
46
|
+
this._twoFactorManageService.verificationMethods$
|
|
47
|
+
.subscribe((verificationMethods) => {
|
|
48
|
+
const types = {
|
|
49
|
+
sms: 'Text Message',
|
|
50
|
+
email: 'Email',
|
|
51
|
+
app: 'Authenticator App',
|
|
52
|
+
};
|
|
53
|
+
this.statuses = Object.keys(verificationMethods.reduce((accum, verificationMethod) => {
|
|
54
|
+
accum[verificationMethod.type] = true;
|
|
55
|
+
return accum;
|
|
56
|
+
}, {}))
|
|
57
|
+
.map((type) => {
|
|
58
|
+
return types[type];
|
|
59
|
+
});
|
|
60
|
+
this._cdRef.markForCheck();
|
|
61
|
+
});
|
|
62
|
+
this._twoFactorManageService.verificationMethodsFetch();
|
|
63
|
+
}
|
|
64
|
+
manage() {
|
|
65
|
+
const dialogRef = this._dialog.open(ManageMethodsComponent, {
|
|
66
|
+
autoFocus: false,
|
|
67
|
+
data: {
|
|
68
|
+
defaultCountry: this.defaultCountry,
|
|
69
|
+
twoFactorManageService: this._twoFactorManageService,
|
|
70
|
+
verificationMethodTypes: this.verificationMethodTypes,
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
dialogRef.afterClosed()
|
|
74
|
+
.pipe(takeUntil(this._destroy$))
|
|
75
|
+
.subscribe(() => {
|
|
76
|
+
this._cdRef.markForCheck();
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
reload() {
|
|
80
|
+
this._twoFactorManageService.verificationMethodsFetch();
|
|
81
|
+
}
|
|
82
|
+
ngOnDestroy() {
|
|
83
|
+
this._destroy$.next();
|
|
84
|
+
this._destroy$.complete();
|
|
85
|
+
}
|
|
86
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Fs2faManageComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.MatDialog }, { token: i2.TwoFactorManageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
87
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: Fs2faManageComponent, selector: "fs-2fa-manage", inputs: { accountVerify: "accountVerify", defaultCountry: "defaultCountry", verificationMethodTypes: "verificationMethodTypes", verificationMethodsFetch: "verificationMethodsFetch", verificationMethodDelete: "verificationMethodDelete", verificationMethodCreate: "verificationMethodCreate", verificationMethodDefault: "verificationMethodDefault", verificationMethodVerify: "verificationMethodVerify", verificationMethodResend: "verificationMethodResend" }, providers: [TwoFactorManageService], ngImport: i0, template: "<fs-label-field>\n <fs-label>Status</fs-label>\n <ng-container *ngIf=\"statuses\">\n <ng-container *ngIf=\"statuses.length === 1\">\n {{statuses[0]}} verification is enabled\n </ng-container>\n\n <ng-container *ngIf=\"statuses.length > 1\">\n {{statuses.join(', ')}} verifications are enabled\n </ng-container>\n\n <ng-container *ngIf=\"statuses.length === 0\">\n No verification methods are enabled\n </ng-container>\n </ng-container>\n</fs-label-field>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.FsLabelComponent, selector: "fs-label" }, { kind: "component", type: i4.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
88
|
+
}
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Fs2faManageComponent, decorators: [{
|
|
90
|
+
type: Component,
|
|
91
|
+
args: [{ selector: 'fs-2fa-manage', changeDetection: ChangeDetectionStrategy.OnPush, providers: [TwoFactorManageService], template: "<fs-label-field>\n <fs-label>Status</fs-label>\n <ng-container *ngIf=\"statuses\">\n <ng-container *ngIf=\"statuses.length === 1\">\n {{statuses[0]}} verification is enabled\n </ng-container>\n\n <ng-container *ngIf=\"statuses.length > 1\">\n {{statuses.join(', ')}} verifications are enabled\n </ng-container>\n\n <ng-container *ngIf=\"statuses.length === 0\">\n No verification methods are enabled\n </ng-container>\n </ng-container>\n</fs-label-field>" }]
|
|
92
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.MatDialog }, { type: i2.TwoFactorManageService }]; }, propDecorators: { accountVerify: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], defaultCountry: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], verificationMethodTypes: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], verificationMethodsFetch: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], verificationMethodDelete: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], verificationMethodCreate: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], verificationMethodDefault: [{
|
|
105
|
+
type: Input
|
|
106
|
+
}], verificationMethodVerify: [{
|
|
107
|
+
type: Input
|
|
108
|
+
}], verificationMethodResend: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}] } });
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMmZhLW1hbmFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbWFuYWdlL2NvbXBvbmVudHMvMmZhLW1hbmFnZS8yZmEtbWFuYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy8yZmEtbWFuYWdlLzJmYS1tYW5hZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBRWpCLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7OztBQVUzRCxNQUFNLE9BQU8sb0JBQW9CO0lBaUJyQjtJQUNBO0lBQ0E7SUFqQk0sYUFBYSxDQUF3QjtJQUNyQyxjQUFjLENBQVM7SUFDdkIsdUJBQXVCLENBQTJCO0lBQ2xELHdCQUF3QixDQUE0QztJQUNwRSx3QkFBd0IsQ0FBbUY7SUFDM0csd0JBQXdCLENBQW1GO0lBQzNHLHlCQUF5QixDQUFtRjtJQUM1Ryx3QkFBd0IsQ0FBaUQ7SUFDekUsd0JBQXdCLENBQXdCO0lBRXpELFFBQVEsQ0FBQztJQUVSLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRWxDLFlBQ1UsTUFBeUIsRUFDekIsT0FBa0IsRUFDbEIsdUJBQStDO1FBRi9DLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFDbEIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF3QjtJQUN0RCxDQUFDO0lBRUcsUUFBUTtRQUNiLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLElBQUk7WUFDN0Qsc0JBQXNCLENBQUMsR0FBRztZQUMxQixzQkFBc0IsQ0FBQyxLQUFLO1lBQzVCLHNCQUFzQixDQUFDLEdBQUc7U0FDM0IsQ0FBQztRQUVGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM3RixJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM3RixJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQy9GLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFHdkUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLG9CQUFvQjthQUM5QyxTQUFTLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sS0FBSyxHQUFHO2dCQUNaLEdBQUcsRUFBRSxjQUFjO2dCQUNuQixLQUFLLEVBQUUsT0FBTztnQkFDZCxHQUFHLEVBQUUsbUJBQW1CO2FBQ3pCLENBQUM7WUFFRixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ3pCLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxFQUFFO2dCQUN2RCxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUV0QyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDUDtpQkFDRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDWixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQixDQUFDLENBQUMsQ0FBQztZQUVMLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsdUJBQXVCLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRU0sTUFBTTtRQUNYLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQzFELFNBQVMsRUFBRSxLQUFLO1lBQ2hCLElBQUksRUFBRTtnQkFDSixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQ25DLHNCQUFzQixFQUFFLElBQUksQ0FBQyx1QkFBdUI7Z0JBQ3BELHVCQUF1QixFQUFFLElBQUksQ0FBQyx1QkFBdUI7YUFDdEQ7U0FDRixDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsV0FBVyxFQUFFO2FBQ3BCLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsdUJBQXVCLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQzt3R0F6RlUsb0JBQW9COzRGQUFwQixvQkFBb0IsZ2ZBRnBCLENBQUMsc0JBQXNCLENBQUMsMEJDekJyQyw2ZUFlaUI7OzRGRFlKLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxzQkFBc0IsQ0FBQztxS0FJbkIsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLHVCQUF1QjtzQkFBdEMsS0FBSztnQkFDVSx3QkFBd0I7c0JBQXZDLEtBQUs7Z0JBQ1Usd0JBQXdCO3NCQUF2QyxLQUFLO2dCQUNVLHdCQUF3QjtzQkFBdkMsS0FBSztnQkFDVSx5QkFBeUI7c0JBQXhDLEtBQUs7Z0JBQ1Usd0JBQXdCO3NCQUF2QyxLQUFLO2dCQUNVLHdCQUF3QjtzQkFBdkMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPbkRlc3Ryb3ksXG4gIElucHV0LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBNYW5hZ2VNZXRob2RzQ29tcG9uZW50IH0gZnJvbSAnLi4vbWFuYWdlLW1ldGhvZHMnO1xuaW1wb3J0IHsgSUZzVmVyaWZpY2F0aW9uTWV0aG9kIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBWZXJpZmljYXRpb25NZXRob2RUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLTJmYS1tYW5hZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vMmZhLW1hbmFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLzJmYS1tYW5hZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1R3b0ZhY3Rvck1hbmFnZVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBGczJmYU1hbmFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcblxuICBASW5wdXQoKSBwdWJsaWMgYWNjb3VudFZlcmlmeTogKCkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuICBASW5wdXQoKSBwdWJsaWMgZGVmYXVsdENvdW50cnk6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZFR5cGVzOiBWZXJpZmljYXRpb25NZXRob2RUeXBlW107XG4gIEBJbnB1dCgpIHB1YmxpYyB2ZXJpZmljYXRpb25NZXRob2RzRmV0Y2g6ICgpID0+IE9ic2VydmFibGU8SUZzVmVyaWZpY2F0aW9uTWV0aG9kW10+O1xuICBASW5wdXQoKSBwdWJsaWMgdmVyaWZpY2F0aW9uTWV0aG9kRGVsZXRlOiAodmVyaWZpY2F0aW9uTWV0aG9kOiBJRnNWZXJpZmljYXRpb25NZXRob2QpID0+IE9ic2VydmFibGU8SUZzVmVyaWZpY2F0aW9uTWV0aG9kPjtcbiAgQElucHV0KCkgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZENyZWF0ZTogKHZlcmlmaWNhdGlvbk1ldGhvZDogSUZzVmVyaWZpY2F0aW9uTWV0aG9kKSA9PiBPYnNlcnZhYmxlPElGc1ZlcmlmaWNhdGlvbk1ldGhvZD47XG4gIEBJbnB1dCgpIHB1YmxpYyB2ZXJpZmljYXRpb25NZXRob2REZWZhdWx0OiAodmVyaWZpY2F0aW9uTWV0aG9kOiBJRnNWZXJpZmljYXRpb25NZXRob2QpID0+IE9ic2VydmFibGU8SUZzVmVyaWZpY2F0aW9uTWV0aG9kPjtcbiAgQElucHV0KCkgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZFZlcmlmeTogKGNvZGU6IHN0cmluZywgdHJ1c3REZXZpY2UpID0+IE9ic2VydmFibGU8YW55PjtcbiAgQElucHV0KCkgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZFJlc2VuZDogKCkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIHB1YmxpYyBzdGF0dXNlcztcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgX3R3b0ZhY3Rvck1hbmFnZVNlcnZpY2U6IFR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UsXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy52ZXJpZmljYXRpb25NZXRob2RUeXBlcyA9IHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kVHlwZXMgfHwgW1xuICAgICAgVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5TbXMsXG4gICAgICBWZXJpZmljYXRpb25NZXRob2RUeXBlLkVtYWlsLFxuICAgICAgVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5BcHBcbiAgICBdO1xuXG4gICAgdGhpcy5fdHdvRmFjdG9yTWFuYWdlU2VydmljZS5yZWdpc3RlclZlcmlmaWNhdGlvbk1ldGhvZHNGZXRjaCh0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZHNGZXRjaCk7XG4gICAgdGhpcy5fdHdvRmFjdG9yTWFuYWdlU2VydmljZS5yZWdpc3RlclZlcmlmaWNhdGlvbk1ldGhvZERlbGV0ZSh0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZERlbGV0ZSk7XG4gICAgdGhpcy5fdHdvRmFjdG9yTWFuYWdlU2VydmljZS5yZWdpc3RlclZlcmlmaWNhdGlvbk1ldGhvZENyZWF0ZSh0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZENyZWF0ZSk7XG4gICAgdGhpcy5fdHdvRmFjdG9yTWFuYWdlU2VydmljZS5yZWdpc3RlclZlcmlmaWNhdGlvbk1ldGhvZFZlcmlmeSh0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZFZlcmlmeSk7XG4gICAgdGhpcy5fdHdvRmFjdG9yTWFuYWdlU2VydmljZS5yZWdpc3RlclZlcmlmaWNhdGlvbk1ldGhvZFJlc2VuZCh0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZFJlc2VuZCk7XG4gICAgdGhpcy5fdHdvRmFjdG9yTWFuYWdlU2VydmljZS5yZWdpc3RlclZlcmlmaWNhdGlvbk1ldGhvZERlZmF1bHQodGhpcy52ZXJpZmljYXRpb25NZXRob2REZWZhdWx0KTtcbiAgICB0aGlzLl90d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLnJlZ2lzdGVyQWNjb3VudFZlcmlmeSh0aGlzLmFjY291bnRWZXJpZnkpO1xuXG5cbiAgICB0aGlzLl90d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLnZlcmlmaWNhdGlvbk1ldGhvZHMkXG4gICAgICAuc3Vic2NyaWJlKCh2ZXJpZmljYXRpb25NZXRob2RzKSA9PiB7XG4gICAgICAgIGNvbnN0IHR5cGVzID0ge1xuICAgICAgICAgIHNtczogJ1RleHQgTWVzc2FnZScsXG4gICAgICAgICAgZW1haWw6ICdFbWFpbCcsXG4gICAgICAgICAgYXBwOiAnQXV0aGVudGljYXRvciBBcHAnLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc3RhdHVzZXMgPSBPYmplY3Qua2V5cyhcbiAgICAgICAgICB2ZXJpZmljYXRpb25NZXRob2RzLnJlZHVjZSgoYWNjdW0sIHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4ge1xuICAgICAgICAgICAgYWNjdW1bdmVyaWZpY2F0aW9uTWV0aG9kLnR5cGVdID0gdHJ1ZTtcblxuICAgICAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgICAgIH0sIHt9KSxcbiAgICAgICAgKVxuICAgICAgICAgIC5tYXAoKHR5cGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0eXBlc1t0eXBlXTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fdHdvRmFjdG9yTWFuYWdlU2VydmljZS52ZXJpZmljYXRpb25NZXRob2RzRmV0Y2goKTtcbiAgfVxuXG4gIHB1YmxpYyBtYW5hZ2UoKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nLm9wZW4oTWFuYWdlTWV0aG9kc0NvbXBvbmVudCwge1xuICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZGVmYXVsdENvdW50cnk6IHRoaXMuZGVmYXVsdENvdW50cnksXG4gICAgICAgIHR3b0ZhY3Rvck1hbmFnZVNlcnZpY2U6IHRoaXMuX3R3b0ZhY3Rvck1hbmFnZVNlcnZpY2UsXG4gICAgICAgIHZlcmlmaWNhdGlvbk1ldGhvZFR5cGVzOiB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZFR5cGVzLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLl90d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLnZlcmlmaWNhdGlvbk1ldGhvZHNGZXRjaCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cblxufVxuIiwiPGZzLWxhYmVsLWZpZWxkPlxuICA8ZnMtbGFiZWw+U3RhdHVzPC9mcy1sYWJlbD5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXR1c2VzXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXR1c2VzLmxlbmd0aCA9PT0gMVwiPlxuICAgICAge3tzdGF0dXNlc1swXX19IHZlcmlmaWNhdGlvbiBpcyBlbmFibGVkXG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RhdHVzZXMubGVuZ3RoID4gMVwiPlxuICAgICAge3tzdGF0dXNlcy5qb2luKCcsICcpfX0gdmVyaWZpY2F0aW9ucyBhcmUgZW5hYmxlZFxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXR1c2VzLmxlbmd0aCAgPT09IDBcIj5cbiAgICAgIE5vIHZlcmlmaWNhdGlvbiBtZXRob2RzIGFyZSBlbmFibGVkXG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9mcy1sYWJlbC1maWVsZD4iXX0=
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Component, Inject, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
3
|
+
import { FsFormDirective } from '@firestitch/form';
|
|
4
|
+
import { FsMessage } from '@firestitch/message';
|
|
5
|
+
import { VerificationMethodType } from '../../../../enums/verification-method-type.enum';
|
|
6
|
+
import { switchMap, tap } from 'rxjs/operators';
|
|
7
|
+
import { of } from 'rxjs';
|
|
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 "@angular/common";
|
|
12
|
+
import * as i4 from "@angular/forms";
|
|
13
|
+
import * as i5 from "@angular/material/button";
|
|
14
|
+
import * as i6 from "@angular/material/checkbox";
|
|
15
|
+
import * as i7 from "@firestitch/dialog";
|
|
16
|
+
import * as i8 from "@firestitch/form";
|
|
17
|
+
import * as i9 from "@firestitch/skeleton";
|
|
18
|
+
import * as i10 from "@firestitch/qrcode";
|
|
19
|
+
import * as i11 from "../../../code-input/components/code-input/code-input.component";
|
|
20
|
+
export class AppComponent {
|
|
21
|
+
_data;
|
|
22
|
+
_dialogRef;
|
|
23
|
+
_cdRef;
|
|
24
|
+
_message;
|
|
25
|
+
form;
|
|
26
|
+
twoFactorManageService;
|
|
27
|
+
mode = 'qr-code';
|
|
28
|
+
accountId;
|
|
29
|
+
verificationMethod;
|
|
30
|
+
qrCodeUrl;
|
|
31
|
+
code;
|
|
32
|
+
default;
|
|
33
|
+
appType;
|
|
34
|
+
constructor(_data, _dialogRef, _cdRef, _message) {
|
|
35
|
+
this._data = _data;
|
|
36
|
+
this._dialogRef = _dialogRef;
|
|
37
|
+
this._cdRef = _cdRef;
|
|
38
|
+
this._message = _message;
|
|
39
|
+
}
|
|
40
|
+
ngOnInit() {
|
|
41
|
+
this.twoFactorManageService = this._data.twoFactorManageService;
|
|
42
|
+
this.accountId = this._data.accountId;
|
|
43
|
+
this.default = !this.twoFactorManageService.hasVerificationMethods;
|
|
44
|
+
}
|
|
45
|
+
appTypeGoogle() {
|
|
46
|
+
this.appTypeSelect('google');
|
|
47
|
+
}
|
|
48
|
+
appTypeAuthy() {
|
|
49
|
+
this.appTypeSelect('authy');
|
|
50
|
+
}
|
|
51
|
+
appTypeSelect(appType) {
|
|
52
|
+
this.appType = appType;
|
|
53
|
+
this.twoFactorManageService.verificationMethodCreate$({
|
|
54
|
+
type: VerificationMethodType.App,
|
|
55
|
+
})
|
|
56
|
+
.subscribe((verificationMethod) => {
|
|
57
|
+
this.verificationMethod = verificationMethod;
|
|
58
|
+
this.qrCodeUrl = verificationMethod.qrCodeUrl;
|
|
59
|
+
this._cdRef.markForCheck();
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
codeCompleted() {
|
|
63
|
+
this.form.triggerSubmit();
|
|
64
|
+
}
|
|
65
|
+
codeChanged(code) {
|
|
66
|
+
this.code = code;
|
|
67
|
+
this.form.dirty();
|
|
68
|
+
}
|
|
69
|
+
next() {
|
|
70
|
+
this.mode = 'code-input';
|
|
71
|
+
}
|
|
72
|
+
verify = () => {
|
|
73
|
+
return this.twoFactorManageService.verificationMethodVerify$(this.code, true)
|
|
74
|
+
.pipe(switchMap(() => {
|
|
75
|
+
return this.default && this.twoFactorManageService.verificationMethodDefault$ ?
|
|
76
|
+
this.twoFactorManageService.verificationMethodDefault$(this.verificationMethod) :
|
|
77
|
+
of(true);
|
|
78
|
+
}), tap(() => {
|
|
79
|
+
this._message.success('Created app authenticator verification method');
|
|
80
|
+
this._dialogRef.close(true);
|
|
81
|
+
}));
|
|
82
|
+
};
|
|
83
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i0.ChangeDetectorRef }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AppComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: FsFormDirective, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"verify\">\n <fs-dialog>\n <h1 mat-dialog-title>Authenticator App Setup</h1>\n <mat-dialog-content>\n\n <div *ngIf=\"mode === 'qr-code'\" class=\"qr-code\">\n <ng-container *ngIf=\"appType\">\n <ol>\n <li>\n <ng-container *ngIf=\"appType === 'authy'\">\n Install the Authy Authenticator App from the <a href=\"https://apps.apple.com/us/app/authy/id494168017\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.authy.authy\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n\n <ng-container *ngIf=\"appType === 'google'\">\n Install the Google Authenticator App from the <a href=\"https://apps.apple.com/us/app/google-authenticator/id388497605\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en_US&gl=US\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n </li>\n <ng-container *ngIf=\"appType === 'authy'\">\n <li>\n Open the Authy app and select <b>Add Account</b>.\n </li>\n <li>\n Select <b>Scan QR Code</b> and scan the QR code below.\n </li>\n </ng-container> \n <ng-container *ngIf=\"appType === 'google'\">\n <li>\n Open the Google Authentictor app and click the <b>Plus icon</b> in the lower right corner.\n </li>\n <li>\n Select <b>Scan a QR code</b> and scan the QR code below.\n </li>\n </ng-container>\n </ol>\n\n <ng-container *fsSkeleton=\"qrCodeUrl\">\n <fs-qrcode\n [value]=\"qrCodeUrl\"\n [width]=\"300\"\n [height]=\"300\">\n </fs-qrcode>\n </ng-container>\n </ng-container>\n\n <div class=\"app-types\" *ngIf=\"!appType\">\n <p>Select the Authenticator App you prefer</p>\n\n <div class=\"row\">\n <span>\n <a (click)=\"appTypeAuthy()\">\n <svg width=\"50\" height=\"50\" viewBox=\"0 0 256 256\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMidYMid\"><path d=\"M256 127.998C256 198.696 198.694 256 127.997 256 57.304 256 0 198.696 0 127.998 0 57.305 57.304 0 127.997 0 198.694 0 256 57.305 256 127.998z\" fill=\"#EC1C24\"/><path d=\"M117.024 100.89l30.691 30.68c4.43 4.436 11.623 4.436 16.064 0 4.431-4.435 4.441-11.622 0-16.058L133.086 84.82C111.125 62.854 75.631 62.5 53.204 83.704a9.536 9.536 0 0 0-.605.548c-.098.098-.178.202-.275.29-.1.096-.202.182-.297.278-.194.193-.371.396-.54.597-21.215 22.437-20.85 57.932 1.113 79.897L83.292 196c4.44 4.433 11.623 4.433 16.062 0 4.442-4.437 4.442-11.633.011-16.06l-30.693-30.691c-13.398-13.393-13.488-35.129-.278-48.637 13.506-13.21 35.23-13.114 48.63.279zm39.612-40.873c-4.435 4.437-4.435 11.623.012 16.059l30.681 30.693c13.39 13.392 13.477 35.125.268 48.636-13.51 13.2-35.227 13.112-48.623-.282l-30.692-30.689c-4.438-4.437-11.633-4.437-16.066 0-4.443 4.433-4.443 11.642 0 16.065l30.682 30.694c21.968 21.965 57.458 22.322 79.889 1.116.208-.184.404-.355.61-.549.094-.095.182-.192.273-.29.1-.095.197-.183.29-.289.197-.183.365-.384.54-.594 21.215-22.428 20.86-57.911-1.102-79.889l-30.692-30.682c-4.436-4.443-11.638-4.443-16.07.001z\" fill=\"#FFF\"/></svg>\n </a>\n Authy\n </span>\n \n <span>\n <a (click)=\"appTypeGoogle()\"> \n <svg width=\"50\" height=\"50\" viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m457.07 45.92c73.67-8.62 149.41.22 218.93 26.24 62.75 23.47 120.59 60.41 167.72 108.09-40.31 39.97-80.25 80.31-120.51 120.33-25.95-25.45-56.19-46.65-89.47-61.37-44.22-19.82-93.39-28.54-141.72-25.2-54.6 3.52-108.11 22.49-152.63 54.3-55.24 38.95-96.61 97.22-114.8 162.35-13.64 47.78-14.77 98.97-3.76 147.4 8.85 39.61 26.09 77.29 50.05 110.03 22.24 30.45 50.3 56.64 82.22 76.71 36.79 23.24 78.76 38.22 121.96 43.48 37.02 4.65 74.9 2.23 111.05-7 3.97-1.91 6.24 2.61 8.73 4.86 40.74 40.95 81.68 81.7 122.43 122.63-73.31 35.6-155.99 51.86-237.3 46.12-68.05-4.51-135.07-24.08-194.71-57.18-24.87-13.6-48.23-29.82-70.33-47.54-17.46-14.81-34.71-30.01-49.72-47.35-25.41-27.39-47.21-58.11-65.17-90.87-4-7.72-8.64-15.12-11.9-23.2-4.47-9.05-8.37-18.36-12.25-27.67-4.96-13.27-10.26-26.44-13.88-40.15-.43-1.81-1.53-3.33-2.52-4.85-8.3-28.66-12.95-58.33-15.44-88.04-2.62-37.36-1.33-75.05 4.78-112.03 12.18-75.48 43.41-147.74 89.86-208.44 30.12-39.5 66.53-74.21 107.46-102.35 62.44-43.11 135.53-70.69 210.92-79.3m49.18 50.48c-5.7.99-10.96 3.76-15.38 7.43-10.4 8.93-14.14 24.81-8.17 37.28 6.33 15.02 25.16 23.1 40.36 17 15.43-5.24 24.78-23.51 19.74-39.06-4.1-15.43-20.92-25.79-36.55-22.65m-267.96 111.99c-5.33.28-10.59 1.92-15.16 4.68-11.47 7.03-17.88 21.74-14.36 34.86 3.09 14.08 16.78 25.06 31.26 24.61 15.03.41 29.08-11.39 31.54-26.17 2.24-10.33-1.61-21.55-9.14-28.85-6.24-6.33-15.3-9.62-24.14-9.13m-115.96 272c-6.62 1.23-12.84 4.58-17.54 9.4-9.45 9.72-11.72 25.57-5.02 37.42 7.16 13.96 25.48 20.86 39.98 14.62 15.02-5.51 23.99-23.42 19.06-38.71-4.04-15.41-20.86-25.96-36.48-22.73m111.98 272.05c-11.49 1.95-21.48 10.72-24.84 21.88-3.87 11.63-.13 25.16 8.9 33.36 6.15 5.48 14.4 8.7 22.67 8.32 11.16-.25 21.98-6.87 27.12-16.8 4.93-8.83 5.15-20.02.71-29.1-5.82-12.78-20.81-20.33-34.56-17.66m272.06 112.03c-11.76 2.02-21.92 11.07-25.09 22.6-3.87 12.57 1.13 27.25 11.91 34.79 7.86 5.79 18.42 7.67 27.77 4.86 9.61-2.77 17.7-10.24 21.07-19.68 4.97-12.74.36-28.32-10.58-36.46-7.02-5.45-16.35-7.67-25.08-6.11z\" fill=\"#a0a0a0\"/>\n <g fill=\"#c1c1c1\">\n <path d=\"m506.25 96.4c15.63-3.14 32.45 7.22 36.55 22.65 5.04 15.55-4.31 33.82-19.74 39.06-15.2 6.1-34.03-1.98-40.36-17-5.97-12.47-2.23-28.35 8.17-37.28 4.42-3.67 9.68-6.44 15.38-7.43z\"/>\n <path d=\"m122.33 480.39c15.62-3.23 32.44 7.32 36.48 22.73 4.93 15.29-4.04 33.2-19.06 38.71-14.5 6.24-32.82-.66-39.98-14.62-6.7-11.85-4.43-27.7 5.02-37.42 4.7-4.82 10.92-8.17 17.54-9.4z\"/>\n </g>\n <path d=\"m843.72 180.25.11-.11c24.64 25.12 46.96 52.6 65.61 82.47 36.01 57.16 59.38 122.22 67.87 189.25 5.67 44.88 5.27 90.6-2.05 135.27-12.7 80.01-46.94 156.41-97.9 219.36-42.3 52.48-95.87 96.04-156.41 125.76l-.63-.26c-1.01-1.1-2.03-2.16-3.05-3.22-40.75-40.93-81.69-81.68-122.43-122.63-2.49-2.25-4.76-6.77-8.73-4.86-36.15 9.23-74.03 11.65-111.05 7-43.2-5.26-85.17-20.24-121.96-43.48-31.92-20.07-59.98-46.26-82.22-76.71-23.96-32.74-41.2-70.42-50.05-110.03-11.01-48.43-9.88-99.62 3.76-147.4 18.19-65.13 59.56-123.4 114.8-162.35 44.52-31.81 98.03-50.78 152.63-54.3 48.33-3.34 97.5 5.38 141.72 25.2 33.28 14.72 63.52 35.92 89.47 61.37 40.26-40.02 80.2-80.36 120.51-120.33m-351.75 183.97c-21.23 2.85-41.89 10.28-59.88 21.94-23.08 14.45-41.76 35.58-53.9 59.91-14.58 29.2-18.64 63.21-12.5 95.17 3.93 19.85 12.03 38.88 23.56 55.51 7.93 11.52 17.65 21.66 27.65 31.38 57.33 57.41 114.61 114.86 171.99 172.21 49.09-13.07 94.67-38.94 131.05-74.4 45.11-43.34 75.66-101.44 86.31-163.06.24-1.04.22-2.91 1.85-2.6 29.63.04 59.26-.01 88.9.05 19.04-.3 36.87-14.77 40.76-33.46.22-1.21 0-2.32-.67-3.35 1.22-5.71 2.08-11.58 1.38-17.43l-.24.4c-2.05-20.34-20.84-37.12-41.25-37.17-80.64-.07-161.28-.01-241.93-.07-6.44-22.08-18.5-42.33-34.03-59.23-25.8-27.5-62.26-45.01-100.02-46.82-9.68.02-19.44-.54-29.03 1.02m286.37 388.31c-12.64 2.06-23.37 12.59-25.7 25.18-1.48 8.14-.14 17.02 4.73 23.85 5.76 9.2 16.8 14.76 27.61 14.25 8.32.03 16.28-3.95 22.16-9.66 4.87-5.6 8.45-12.67 8.67-20.2.86-11.37-5.06-23.1-14.87-28.96-6.52-4.46-14.89-5.75-22.6-4.46z\" fill=\"#686868\"/>\n <path d=\"m238.29 208.39c8.84-.49 17.9 2.8 24.14 9.13 7.53 7.3 11.38 18.52 9.14 28.85-2.46 14.78-16.51 26.58-31.54 26.17-14.48.45-28.17-10.53-31.26-24.61-3.52-13.12 2.89-27.83 14.36-34.86 4.57-2.76 9.83-4.4 15.16-4.68z\" fill=\"#c3c3c3\"/>\n <path d=\"m491.97 364.22c9.59-1.56 19.35-1 29.03-1.02 37.76 1.81 74.22 19.32 100.02 46.82 15.53 16.9 27.59 37.15 34.03 59.23-47.67-.01-95.35-.01-143.03-.01-12.19-.11-24.23 5.42-32.21 14.61-6.01 6.85-9.74 15.65-10.44 24.74-1.19 14.17 5.36 28.7 16.69 37.28 7.62 5.91 17.28 9 26.92 8.8 126.69-.04 253.39-.06 380.08.03 4.76.04 9.59-.15 14.2-1.48 14.21-3.82 26.02-15.47 29.83-29.7.67 1.03.89 2.14.67 3.35-3.89 18.69-21.72 33.16-40.76 33.46-29.64-.06-59.27-.01-88.9-.05-1.63-.31-1.61 1.56-1.85 2.6-10.65 61.62-41.2 119.72-86.31 163.06-36.38 35.46-81.96 61.33-131.05 74.4-57.38-57.35-114.66-114.8-171.99-172.21-10-9.72-19.72-19.86-27.65-31.38-11.53-16.63-19.63-35.66-23.56-55.51-6.14-31.96-2.08-65.97 12.5-95.17 12.14-24.33 30.82-45.46 53.9-59.91 17.99-11.66 38.65-19.09 59.88-21.94z\" fill=\"#474747\"/>\n <g fill=\"#bfbfbf\">\n <path d=\"m479.81 483.85c7.98-9.19 20.02-14.72 32.21-14.61 47.68 0 95.36 0 143.03.01 80.65.06 161.29 0 241.93.07 20.41.05 39.2 16.83 41.25 37.17-.19.33-.58.97-.78 1.29-3.68-18.51-21.57-33.16-40.47-33.05-124.97.1-249.94.12-374.91.17-7.73.13-15.74-.8-23.15 1.96-9.06 2.84-16.73 9.1-22.27 16.7-3.34 4.55-4.39 10.24-7.28 15.03.7-9.09 4.43-17.89 10.44-24.74z\"/>\n <path d=\"m234.31 752.44c13.75-2.67 28.74 4.88 34.56 17.66 4.44 9.08 4.22 20.27-.71 29.1-5.14 9.93-15.96 16.55-27.12 16.8-8.27.38-16.52-2.84-22.67-8.32-9.03-8.2-12.77-21.73-8.9-33.36 3.36-11.16 13.35-19.93 24.84-21.88z\"/>\n </g>\n <path d=\"m498.92 476.86c7.41-2.76 15.42-1.83 23.15-1.96 124.97-.05 249.94-.07 374.91-.17 18.9-.11 36.79 14.54 40.47 33.05.2-.32.59-.96.78-1.29l.24-.4c.7 5.85-.16 11.72-1.38 17.43-3.81 14.23-15.62 25.88-29.83 29.7-4.61 1.33-9.44 1.52-14.2 1.48-126.69-.09-253.39-.07-380.08-.03-9.64.2-19.3-2.89-26.92-8.8-11.33-8.58-17.88-23.11-16.69-37.28 2.89-4.79 3.94-10.48 7.28-15.03 5.54-7.6 13.21-13.86 22.27-16.7z\" fill=\"#b0b0b0\"/>\n <path d=\"m59.49 636.08c.99 1.52 2.09 3.04 2.52 4.85 3.62 13.71 8.92 26.88 13.88 40.15 3.88 9.31 7.78 18.62 12.25 27.67 3.26 8.08 7.9 15.48 11.9 23.2 17.96 32.76 39.76 63.48 65.17 90.87 15.01 17.34 32.26 32.54 49.72 47.35 22.1 17.72 45.46 33.94 70.33 47.54 59.64 33.1 126.66 52.67 194.71 57.18 81.31 5.74 163.99-10.52 237.3-46.12 1.02 1.06 2.04 2.12 3.05 3.22l.03.61c-42.32 21.03-87.88 35.53-134.56 42.91-56.91 8.9-115.46 7.49-171.82-4.5-67.89-14.35-132.42-44.21-187.42-86.51-63.52-48.63-114.32-113.73-145.86-187.27-8.42-19.87-15.93-40.22-21.2-61.15z\" fill=\"#939393\"/>\n <path d=\"m778.34 752.53c7.71-1.29 16.08 0 22.6 4.46 9.81 5.86 15.73 17.59 14.87 28.96-.22 7.53-3.8 14.6-8.67 20.2-5.88 5.71-13.84 9.69-22.16 9.66-10.81.51-21.85-5.05-27.61-14.25-4.87-6.83-6.21-15.71-4.73-23.85 2.33-12.59 13.06-23.12 25.7-25.18z\" fill=\"#767676\"/>\n <path d=\"m506.37 864.47c8.73-1.56 18.06.66 25.08 6.11 10.94 8.14 15.55 23.72 10.58 36.46-3.37 9.44-11.46 16.91-21.07 19.68-9.35 2.81-19.91.93-27.77-4.86-10.78-7.54-15.78-22.22-11.91-34.79 3.17-11.53 13.33-20.58 25.09-22.6z\" fill=\"#bebebe\"/>\n </svg>\n </a>\n Google Authenticator\n </span>\n </div>\n </div>\n \n </div>\n\n <div *ngIf=\"mode === 'code-input'\" class=\"code-input\">\n <div>\n Enter the 6-digit code you see in the App.\n </div>\n\n <app-code-input\n (codeChanged)=\"codeChanged($event)\">\n </app-code-input>\n \n <div class=\"checkboxes\">\n <mat-checkbox name=\"default\" [(ngModel)]=\"default\" [disableRipple]=\"true\">\n Make this the default verification method\n </mat-checkbox>\n </div>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <ng-container *ngIf=\"appType\">\n <button\n *ngIf=\"mode === 'qr-code'\"\n type=\"button\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Next\n </button>\n <button\n *ngIf=\"mode === 'code-input'\"\n type=\"submit\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Verify\n </button> \n </ng-container>\n <button\n type=\"button\"\n mat-button\n [mat-dialog-close]=\"null\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: ["ul{margin:0;padding-left:24px}fs-qrcode{display:flex;justify-content:center;margin:30px}app-code-input{margin-top:10px}.code-input{width:400px}.app-types{text-align:center;padding:0 40px}.app-types .row{display:flex;justify-content:center}.app-types .row span{display:flex;flex-direction:column;text-align:center;max-width:100px}.app-types .row span+span{margin-left:40px}.checkboxes{margin:8px 0}.checkboxes mat-checkbox{display:block}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i7.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout", "dock", "dockable", "fullscreenPercent"] }, { kind: "directive", type: i8.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup", "deactivationGuard"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"], exportAs: ["fsForm"] }, { kind: "directive", type: i8.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: "directive", type: i8.FsButtonDirective, selector: "[mat-raised-button]:not([fsFormButtonStandalone]),[mat-button]:not([fsFormButtonStandalone]),[mat-flat-button]:not([fsFormButtonStandalone]),[mat-stroked-button]:not([fsFormButtonStandalone])", inputs: ["name", "dirtySubmit", "form"] }, { kind: "directive", type: i9.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { kind: "component", type: i10.FsClipboardComponent, selector: "fs-qrcode", inputs: ["value", "width", "height"] }, { kind: "component", type: i11.CodeInputComponent, selector: "app-code-input", inputs: ["codeLength", "code"], outputs: ["codeCompleted", "codeChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
85
|
+
}
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppComponent, decorators: [{
|
|
87
|
+
type: Component,
|
|
88
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<form fsForm [submit]=\"verify\">\n <fs-dialog>\n <h1 mat-dialog-title>Authenticator App Setup</h1>\n <mat-dialog-content>\n\n <div *ngIf=\"mode === 'qr-code'\" class=\"qr-code\">\n <ng-container *ngIf=\"appType\">\n <ol>\n <li>\n <ng-container *ngIf=\"appType === 'authy'\">\n Install the Authy Authenticator App from the <a href=\"https://apps.apple.com/us/app/authy/id494168017\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.authy.authy\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n\n <ng-container *ngIf=\"appType === 'google'\">\n Install the Google Authenticator App from the <a href=\"https://apps.apple.com/us/app/google-authenticator/id388497605\" target=\"_blank\">App Store</a> or\n the <a href=\"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en_US&gl=US\" target=\"_blank\">Google Play Store</a>.\n </ng-container>\n </li>\n <ng-container *ngIf=\"appType === 'authy'\">\n <li>\n Open the Authy app and select <b>Add Account</b>.\n </li>\n <li>\n Select <b>Scan QR Code</b> and scan the QR code below.\n </li>\n </ng-container> \n <ng-container *ngIf=\"appType === 'google'\">\n <li>\n Open the Google Authentictor app and click the <b>Plus icon</b> in the lower right corner.\n </li>\n <li>\n Select <b>Scan a QR code</b> and scan the QR code below.\n </li>\n </ng-container>\n </ol>\n\n <ng-container *fsSkeleton=\"qrCodeUrl\">\n <fs-qrcode\n [value]=\"qrCodeUrl\"\n [width]=\"300\"\n [height]=\"300\">\n </fs-qrcode>\n </ng-container>\n </ng-container>\n\n <div class=\"app-types\" *ngIf=\"!appType\">\n <p>Select the Authenticator App you prefer</p>\n\n <div class=\"row\">\n <span>\n <a (click)=\"appTypeAuthy()\">\n <svg width=\"50\" height=\"50\" viewBox=\"0 0 256 256\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMidYMid\"><path d=\"M256 127.998C256 198.696 198.694 256 127.997 256 57.304 256 0 198.696 0 127.998 0 57.305 57.304 0 127.997 0 198.694 0 256 57.305 256 127.998z\" fill=\"#EC1C24\"/><path d=\"M117.024 100.89l30.691 30.68c4.43 4.436 11.623 4.436 16.064 0 4.431-4.435 4.441-11.622 0-16.058L133.086 84.82C111.125 62.854 75.631 62.5 53.204 83.704a9.536 9.536 0 0 0-.605.548c-.098.098-.178.202-.275.29-.1.096-.202.182-.297.278-.194.193-.371.396-.54.597-21.215 22.437-20.85 57.932 1.113 79.897L83.292 196c4.44 4.433 11.623 4.433 16.062 0 4.442-4.437 4.442-11.633.011-16.06l-30.693-30.691c-13.398-13.393-13.488-35.129-.278-48.637 13.506-13.21 35.23-13.114 48.63.279zm39.612-40.873c-4.435 4.437-4.435 11.623.012 16.059l30.681 30.693c13.39 13.392 13.477 35.125.268 48.636-13.51 13.2-35.227 13.112-48.623-.282l-30.692-30.689c-4.438-4.437-11.633-4.437-16.066 0-4.443 4.433-4.443 11.642 0 16.065l30.682 30.694c21.968 21.965 57.458 22.322 79.889 1.116.208-.184.404-.355.61-.549.094-.095.182-.192.273-.29.1-.095.197-.183.29-.289.197-.183.365-.384.54-.594 21.215-22.428 20.86-57.911-1.102-79.889l-30.692-30.682c-4.436-4.443-11.638-4.443-16.07.001z\" fill=\"#FFF\"/></svg>\n </a>\n Authy\n </span>\n \n <span>\n <a (click)=\"appTypeGoogle()\"> \n <svg width=\"50\" height=\"50\" viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m457.07 45.92c73.67-8.62 149.41.22 218.93 26.24 62.75 23.47 120.59 60.41 167.72 108.09-40.31 39.97-80.25 80.31-120.51 120.33-25.95-25.45-56.19-46.65-89.47-61.37-44.22-19.82-93.39-28.54-141.72-25.2-54.6 3.52-108.11 22.49-152.63 54.3-55.24 38.95-96.61 97.22-114.8 162.35-13.64 47.78-14.77 98.97-3.76 147.4 8.85 39.61 26.09 77.29 50.05 110.03 22.24 30.45 50.3 56.64 82.22 76.71 36.79 23.24 78.76 38.22 121.96 43.48 37.02 4.65 74.9 2.23 111.05-7 3.97-1.91 6.24 2.61 8.73 4.86 40.74 40.95 81.68 81.7 122.43 122.63-73.31 35.6-155.99 51.86-237.3 46.12-68.05-4.51-135.07-24.08-194.71-57.18-24.87-13.6-48.23-29.82-70.33-47.54-17.46-14.81-34.71-30.01-49.72-47.35-25.41-27.39-47.21-58.11-65.17-90.87-4-7.72-8.64-15.12-11.9-23.2-4.47-9.05-8.37-18.36-12.25-27.67-4.96-13.27-10.26-26.44-13.88-40.15-.43-1.81-1.53-3.33-2.52-4.85-8.3-28.66-12.95-58.33-15.44-88.04-2.62-37.36-1.33-75.05 4.78-112.03 12.18-75.48 43.41-147.74 89.86-208.44 30.12-39.5 66.53-74.21 107.46-102.35 62.44-43.11 135.53-70.69 210.92-79.3m49.18 50.48c-5.7.99-10.96 3.76-15.38 7.43-10.4 8.93-14.14 24.81-8.17 37.28 6.33 15.02 25.16 23.1 40.36 17 15.43-5.24 24.78-23.51 19.74-39.06-4.1-15.43-20.92-25.79-36.55-22.65m-267.96 111.99c-5.33.28-10.59 1.92-15.16 4.68-11.47 7.03-17.88 21.74-14.36 34.86 3.09 14.08 16.78 25.06 31.26 24.61 15.03.41 29.08-11.39 31.54-26.17 2.24-10.33-1.61-21.55-9.14-28.85-6.24-6.33-15.3-9.62-24.14-9.13m-115.96 272c-6.62 1.23-12.84 4.58-17.54 9.4-9.45 9.72-11.72 25.57-5.02 37.42 7.16 13.96 25.48 20.86 39.98 14.62 15.02-5.51 23.99-23.42 19.06-38.71-4.04-15.41-20.86-25.96-36.48-22.73m111.98 272.05c-11.49 1.95-21.48 10.72-24.84 21.88-3.87 11.63-.13 25.16 8.9 33.36 6.15 5.48 14.4 8.7 22.67 8.32 11.16-.25 21.98-6.87 27.12-16.8 4.93-8.83 5.15-20.02.71-29.1-5.82-12.78-20.81-20.33-34.56-17.66m272.06 112.03c-11.76 2.02-21.92 11.07-25.09 22.6-3.87 12.57 1.13 27.25 11.91 34.79 7.86 5.79 18.42 7.67 27.77 4.86 9.61-2.77 17.7-10.24 21.07-19.68 4.97-12.74.36-28.32-10.58-36.46-7.02-5.45-16.35-7.67-25.08-6.11z\" fill=\"#a0a0a0\"/>\n <g fill=\"#c1c1c1\">\n <path d=\"m506.25 96.4c15.63-3.14 32.45 7.22 36.55 22.65 5.04 15.55-4.31 33.82-19.74 39.06-15.2 6.1-34.03-1.98-40.36-17-5.97-12.47-2.23-28.35 8.17-37.28 4.42-3.67 9.68-6.44 15.38-7.43z\"/>\n <path d=\"m122.33 480.39c15.62-3.23 32.44 7.32 36.48 22.73 4.93 15.29-4.04 33.2-19.06 38.71-14.5 6.24-32.82-.66-39.98-14.62-6.7-11.85-4.43-27.7 5.02-37.42 4.7-4.82 10.92-8.17 17.54-9.4z\"/>\n </g>\n <path d=\"m843.72 180.25.11-.11c24.64 25.12 46.96 52.6 65.61 82.47 36.01 57.16 59.38 122.22 67.87 189.25 5.67 44.88 5.27 90.6-2.05 135.27-12.7 80.01-46.94 156.41-97.9 219.36-42.3 52.48-95.87 96.04-156.41 125.76l-.63-.26c-1.01-1.1-2.03-2.16-3.05-3.22-40.75-40.93-81.69-81.68-122.43-122.63-2.49-2.25-4.76-6.77-8.73-4.86-36.15 9.23-74.03 11.65-111.05 7-43.2-5.26-85.17-20.24-121.96-43.48-31.92-20.07-59.98-46.26-82.22-76.71-23.96-32.74-41.2-70.42-50.05-110.03-11.01-48.43-9.88-99.62 3.76-147.4 18.19-65.13 59.56-123.4 114.8-162.35 44.52-31.81 98.03-50.78 152.63-54.3 48.33-3.34 97.5 5.38 141.72 25.2 33.28 14.72 63.52 35.92 89.47 61.37 40.26-40.02 80.2-80.36 120.51-120.33m-351.75 183.97c-21.23 2.85-41.89 10.28-59.88 21.94-23.08 14.45-41.76 35.58-53.9 59.91-14.58 29.2-18.64 63.21-12.5 95.17 3.93 19.85 12.03 38.88 23.56 55.51 7.93 11.52 17.65 21.66 27.65 31.38 57.33 57.41 114.61 114.86 171.99 172.21 49.09-13.07 94.67-38.94 131.05-74.4 45.11-43.34 75.66-101.44 86.31-163.06.24-1.04.22-2.91 1.85-2.6 29.63.04 59.26-.01 88.9.05 19.04-.3 36.87-14.77 40.76-33.46.22-1.21 0-2.32-.67-3.35 1.22-5.71 2.08-11.58 1.38-17.43l-.24.4c-2.05-20.34-20.84-37.12-41.25-37.17-80.64-.07-161.28-.01-241.93-.07-6.44-22.08-18.5-42.33-34.03-59.23-25.8-27.5-62.26-45.01-100.02-46.82-9.68.02-19.44-.54-29.03 1.02m286.37 388.31c-12.64 2.06-23.37 12.59-25.7 25.18-1.48 8.14-.14 17.02 4.73 23.85 5.76 9.2 16.8 14.76 27.61 14.25 8.32.03 16.28-3.95 22.16-9.66 4.87-5.6 8.45-12.67 8.67-20.2.86-11.37-5.06-23.1-14.87-28.96-6.52-4.46-14.89-5.75-22.6-4.46z\" fill=\"#686868\"/>\n <path d=\"m238.29 208.39c8.84-.49 17.9 2.8 24.14 9.13 7.53 7.3 11.38 18.52 9.14 28.85-2.46 14.78-16.51 26.58-31.54 26.17-14.48.45-28.17-10.53-31.26-24.61-3.52-13.12 2.89-27.83 14.36-34.86 4.57-2.76 9.83-4.4 15.16-4.68z\" fill=\"#c3c3c3\"/>\n <path d=\"m491.97 364.22c9.59-1.56 19.35-1 29.03-1.02 37.76 1.81 74.22 19.32 100.02 46.82 15.53 16.9 27.59 37.15 34.03 59.23-47.67-.01-95.35-.01-143.03-.01-12.19-.11-24.23 5.42-32.21 14.61-6.01 6.85-9.74 15.65-10.44 24.74-1.19 14.17 5.36 28.7 16.69 37.28 7.62 5.91 17.28 9 26.92 8.8 126.69-.04 253.39-.06 380.08.03 4.76.04 9.59-.15 14.2-1.48 14.21-3.82 26.02-15.47 29.83-29.7.67 1.03.89 2.14.67 3.35-3.89 18.69-21.72 33.16-40.76 33.46-29.64-.06-59.27-.01-88.9-.05-1.63-.31-1.61 1.56-1.85 2.6-10.65 61.62-41.2 119.72-86.31 163.06-36.38 35.46-81.96 61.33-131.05 74.4-57.38-57.35-114.66-114.8-171.99-172.21-10-9.72-19.72-19.86-27.65-31.38-11.53-16.63-19.63-35.66-23.56-55.51-6.14-31.96-2.08-65.97 12.5-95.17 12.14-24.33 30.82-45.46 53.9-59.91 17.99-11.66 38.65-19.09 59.88-21.94z\" fill=\"#474747\"/>\n <g fill=\"#bfbfbf\">\n <path d=\"m479.81 483.85c7.98-9.19 20.02-14.72 32.21-14.61 47.68 0 95.36 0 143.03.01 80.65.06 161.29 0 241.93.07 20.41.05 39.2 16.83 41.25 37.17-.19.33-.58.97-.78 1.29-3.68-18.51-21.57-33.16-40.47-33.05-124.97.1-249.94.12-374.91.17-7.73.13-15.74-.8-23.15 1.96-9.06 2.84-16.73 9.1-22.27 16.7-3.34 4.55-4.39 10.24-7.28 15.03.7-9.09 4.43-17.89 10.44-24.74z\"/>\n <path d=\"m234.31 752.44c13.75-2.67 28.74 4.88 34.56 17.66 4.44 9.08 4.22 20.27-.71 29.1-5.14 9.93-15.96 16.55-27.12 16.8-8.27.38-16.52-2.84-22.67-8.32-9.03-8.2-12.77-21.73-8.9-33.36 3.36-11.16 13.35-19.93 24.84-21.88z\"/>\n </g>\n <path d=\"m498.92 476.86c7.41-2.76 15.42-1.83 23.15-1.96 124.97-.05 249.94-.07 374.91-.17 18.9-.11 36.79 14.54 40.47 33.05.2-.32.59-.96.78-1.29l.24-.4c.7 5.85-.16 11.72-1.38 17.43-3.81 14.23-15.62 25.88-29.83 29.7-4.61 1.33-9.44 1.52-14.2 1.48-126.69-.09-253.39-.07-380.08-.03-9.64.2-19.3-2.89-26.92-8.8-11.33-8.58-17.88-23.11-16.69-37.28 2.89-4.79 3.94-10.48 7.28-15.03 5.54-7.6 13.21-13.86 22.27-16.7z\" fill=\"#b0b0b0\"/>\n <path d=\"m59.49 636.08c.99 1.52 2.09 3.04 2.52 4.85 3.62 13.71 8.92 26.88 13.88 40.15 3.88 9.31 7.78 18.62 12.25 27.67 3.26 8.08 7.9 15.48 11.9 23.2 17.96 32.76 39.76 63.48 65.17 90.87 15.01 17.34 32.26 32.54 49.72 47.35 22.1 17.72 45.46 33.94 70.33 47.54 59.64 33.1 126.66 52.67 194.71 57.18 81.31 5.74 163.99-10.52 237.3-46.12 1.02 1.06 2.04 2.12 3.05 3.22l.03.61c-42.32 21.03-87.88 35.53-134.56 42.91-56.91 8.9-115.46 7.49-171.82-4.5-67.89-14.35-132.42-44.21-187.42-86.51-63.52-48.63-114.32-113.73-145.86-187.27-8.42-19.87-15.93-40.22-21.2-61.15z\" fill=\"#939393\"/>\n <path d=\"m778.34 752.53c7.71-1.29 16.08 0 22.6 4.46 9.81 5.86 15.73 17.59 14.87 28.96-.22 7.53-3.8 14.6-8.67 20.2-5.88 5.71-13.84 9.69-22.16 9.66-10.81.51-21.85-5.05-27.61-14.25-4.87-6.83-6.21-15.71-4.73-23.85 2.33-12.59 13.06-23.12 25.7-25.18z\" fill=\"#767676\"/>\n <path d=\"m506.37 864.47c8.73-1.56 18.06.66 25.08 6.11 10.94 8.14 15.55 23.72 10.58 36.46-3.37 9.44-11.46 16.91-21.07 19.68-9.35 2.81-19.91.93-27.77-4.86-10.78-7.54-15.78-22.22-11.91-34.79 3.17-11.53 13.33-20.58 25.09-22.6z\" fill=\"#bebebe\"/>\n </svg>\n </a>\n Google Authenticator\n </span>\n </div>\n </div>\n \n </div>\n\n <div *ngIf=\"mode === 'code-input'\" class=\"code-input\">\n <div>\n Enter the 6-digit code you see in the App.\n </div>\n\n <app-code-input\n (codeChanged)=\"codeChanged($event)\">\n </app-code-input>\n \n <div class=\"checkboxes\">\n <mat-checkbox name=\"default\" [(ngModel)]=\"default\" [disableRipple]=\"true\">\n Make this the default verification method\n </mat-checkbox>\n </div>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <ng-container *ngIf=\"appType\">\n <button\n *ngIf=\"mode === 'qr-code'\"\n type=\"button\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Next\n </button>\n <button\n *ngIf=\"mode === 'code-input'\"\n type=\"submit\"\n mat-button\n color=\"primary\"\n (click)=\"next()\">\n Verify\n </button> \n </ng-container>\n <button\n type=\"button\"\n mat-button\n [mat-dialog-close]=\"null\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: ["ul{margin:0;padding-left:24px}fs-qrcode{display:flex;justify-content:center;margin:30px}app-code-input{margin-top:10px}.code-input{width:400px}.app-types{text-align:center;padding:0 40px}.app-types .row{display:flex;justify-content:center}.app-types .row span{display:flex;flex-direction:column;text-align:center;max-width:100px}.app-types .row span+span{margin-left:40px}.checkboxes{margin:8px 0}.checkboxes mat-checkbox{display:block}\n"] }]
|
|
89
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
90
|
+
type: Inject,
|
|
91
|
+
args: [MAT_DIALOG_DATA]
|
|
92
|
+
}] }, { type: i1.MatDialogRef }, { type: i0.ChangeDetectorRef }, { type: i2.FsMessage }]; }, propDecorators: { form: [{
|
|
93
|
+
type: ViewChild,
|
|
94
|
+
args: [FsFormDirective]
|
|
95
|
+
}] } });
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9hcHAvYXBwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2UvY29tcG9uZW50cy9hcHAvYXBwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFVLFNBQVMsR0FDakYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHaEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7OztBQVExQixNQUFNLE9BQU8sWUFBWTtJQWVZO0lBQ3pCO0lBQ0E7SUFDQTtJQWZILElBQUksQ0FBa0I7SUFFdEIsc0JBQXNCLENBQXlCO0lBQy9DLElBQUksR0FBNkIsU0FBUyxDQUFDO0lBQzNDLFNBQVMsQ0FBQztJQUNWLGtCQUFrQixDQUFDO0lBQ25CLFNBQVMsQ0FBQztJQUNWLElBQUksQ0FBQztJQUNMLE9BQU8sQ0FBQztJQUNSLE9BQU8sQ0FBcUI7SUFFbkMsWUFDbUMsS0FBVSxFQUNuQyxVQUFzQyxFQUN0QyxNQUF5QixFQUN6QixRQUFtQjtRQUhNLFVBQUssR0FBTCxLQUFLLENBQUs7UUFDbkMsZUFBVSxHQUFWLFVBQVUsQ0FBNEI7UUFDdEMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUMxQixDQUFDO0lBRUcsUUFBUTtRQUNiLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDO1FBQ2hFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQztJQUNyRSxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUFPO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx5QkFBeUIsQ0FBQztZQUNwRCxJQUFJLEVBQUUsc0JBQXNCLENBQUMsR0FBRztTQUNqQyxDQUFDO2FBQ0MsU0FBUyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7WUFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLENBQUM7WUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFJO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRU0sTUFBTSxHQUFHLEdBQUcsRUFBRTtRQUNuQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQzthQUMxRSxJQUFJLENBQ0gsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztnQkFDN0UsSUFBSSxDQUFDLHNCQUFzQixDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pGLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxFQUNKLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDLENBQUM7d0dBekVTLFlBQVksa0JBZWIsZUFBZTs0RkFmZCxZQUFZLDBGQUVaLGVBQWUsZ0RDdkI1QixtM1lBaUlBOzs0RkQ1R2EsWUFBWTtrQkFMeEIsU0FBUztzQ0FHUyx1QkFBdUIsQ0FBQyxNQUFNOzswQkFpQjVDLE1BQU07MkJBQUMsZUFBZTsrSEFabEIsSUFBSTtzQkFEVixTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsIEluamVjdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBPbkluaXQsIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRnNGb3JtRGlyZWN0aXZlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZm9ybSc7XG5pbXBvcnQgeyBGc01lc3NhZ2UgfSBmcm9tICdAZmlyZXN0aXRjaC9tZXNzYWdlJztcbmltcG9ydCB7IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcy92ZXJpZmljYXRpb24tbWV0aG9kLXR5cGUuZW51bSc7XG5cbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBUd29GYWN0b3JNYW5hZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKEZzRm9ybURpcmVjdGl2ZSlcbiAgcHVibGljIGZvcm06IEZzRm9ybURpcmVjdGl2ZTtcblxuICBwdWJsaWMgdHdvRmFjdG9yTWFuYWdlU2VydmljZTogVHdvRmFjdG9yTWFuYWdlU2VydmljZTtcbiAgcHVibGljIG1vZGU6ICdxci1jb2RlJyB8ICdjb2RlLWlucHV0JyA9ICdxci1jb2RlJztcbiAgcHVibGljIGFjY291bnRJZDtcbiAgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZDtcbiAgcHVibGljIHFyQ29kZVVybDtcbiAgcHVibGljIGNvZGU7XG4gIHB1YmxpYyBkZWZhdWx0OyAgXG4gIHB1YmxpYyBhcHBUeXBlOiAnZ29vZ2xlJyB8ICdhdXRoeSc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgX2RhdGE6IGFueSxcbiAgICBwcml2YXRlIF9kaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxBcHBDb21wb25lbnQ+LFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9tZXNzYWdlOiBGc01lc3NhZ2UsXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlID0gdGhpcy5fZGF0YS50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlO1xuICAgIHRoaXMuYWNjb3VudElkID0gdGhpcy5fZGF0YS5hY2NvdW50SWQ7XG4gICAgdGhpcy5kZWZhdWx0ID0gIXRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS5oYXNWZXJpZmljYXRpb25NZXRob2RzO1xuICB9XG5cbiAgcHVibGljIGFwcFR5cGVHb29nbGUoKTogdm9pZCB7XG4gICAgdGhpcy5hcHBUeXBlU2VsZWN0KCdnb29nbGUnKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBUeXBlQXV0aHkoKTogdm9pZCB7XG4gICAgdGhpcy5hcHBUeXBlU2VsZWN0KCdhdXRoeScpO1xuICB9XG5cbiAgcHVibGljIGFwcFR5cGVTZWxlY3QoYXBwVHlwZSk6IHZvaWQge1xuICAgIHRoaXMuYXBwVHlwZSA9IGFwcFR5cGU7XG4gICAgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLnZlcmlmaWNhdGlvbk1ldGhvZENyZWF0ZSQoe1xuICAgICAgdHlwZTogVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5BcHAsXG4gICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4ge1xuICAgICAgICB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZCA9IHZlcmlmaWNhdGlvbk1ldGhvZDtcbiAgICAgICAgdGhpcy5xckNvZGVVcmwgPSB2ZXJpZmljYXRpb25NZXRob2QucXJDb2RlVXJsO1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNvZGVDb21wbGV0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtLnRyaWdnZXJTdWJtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb2RlQ2hhbmdlZChjb2RlKTogdm9pZCB7XG4gICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICB0aGlzLmZvcm0uZGlydHkoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZXh0KCk6IHZvaWQge1xuICAgIHRoaXMubW9kZSA9ICdjb2RlLWlucHV0JztcbiAgfVxuXG4gIHB1YmxpYyB2ZXJpZnkgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS52ZXJpZmljYXRpb25NZXRob2RWZXJpZnkkKHRoaXMuY29kZSwgdHJ1ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHQgJiYgdGhpcy50d29GYWN0b3JNYW5hZ2VTZXJ2aWNlLnZlcmlmaWNhdGlvbk1ldGhvZERlZmF1bHQkID9cbiAgICAgICAgICAgIHRoaXMudHdvRmFjdG9yTWFuYWdlU2VydmljZS52ZXJpZmljYXRpb25NZXRob2REZWZhdWx0JCh0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZCkgOlxuICAgICAgICAgICAgb2YodHJ1ZSk7XG4gICAgICAgICAgfSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdDcmVhdGVkIGFwcCBhdXRoZW50aWNhdG9yIHZlcmlmaWNhdGlvbiBtZXRob2QnKTtcbiAgICAgICAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UodHJ1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfTtcblxufVxuIiwiPGZvcm0gZnNGb3JtIFtzdWJtaXRdPVwidmVyaWZ5XCI+XG4gIDxmcy1kaWFsb2c+XG4gICAgPGgxIG1hdC1kaWFsb2ctdGl0bGU+QXV0aGVudGljYXRvciBBcHAgU2V0dXA8L2gxPlxuICAgIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJtb2RlID09PSAncXItY29kZSdcIiBjbGFzcz1cInFyLWNvZGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcFR5cGVcIj5cbiAgICAgICAgICA8b2w+XG4gICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcHBUeXBlID09PSAnYXV0aHknXCI+XG4gICAgICAgICAgICAgICAgSW5zdGFsbCB0aGUgQXV0aHkgQXV0aGVudGljYXRvciBBcHAgZnJvbSB0aGUgPGEgaHJlZj1cImh0dHBzOi8vYXBwcy5hcHBsZS5jb20vdXMvYXBwL2F1dGh5L2lkNDk0MTY4MDE3XCIgdGFyZ2V0PVwiX2JsYW5rXCI+QXBwIFN0b3JlPC9hPiBvclxuICAgICAgICAgICAgICAgIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vc3RvcmUvYXBwcy9kZXRhaWxzP2lkPWNvbS5hdXRoeS5hdXRoeVwiIHRhcmdldD1cIl9ibGFua1wiPkdvb2dsZSBQbGF5IFN0b3JlPC9hPi5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcFR5cGUgPT09ICdnb29nbGUnXCI+XG4gICAgICAgICAgICAgICAgSW5zdGFsbCB0aGUgR29vZ2xlIEF1dGhlbnRpY2F0b3IgQXBwIGZyb20gdGhlIDxhIGhyZWY9XCJodHRwczovL2FwcHMuYXBwbGUuY29tL3VzL2FwcC9nb29nbGUtYXV0aGVudGljYXRvci9pZDM4ODQ5NzYwNVwiIHRhcmdldD1cIl9ibGFua1wiPkFwcCBTdG9yZTwvYT4gb3JcbiAgICAgICAgICAgICAgICB0aGUgPGEgaHJlZj1cImh0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1jb20uZ29vZ2xlLmFuZHJvaWQuYXBwcy5hdXRoZW50aWNhdG9yMiZobD1lbl9VUyZnbD1VU1wiIHRhcmdldD1cIl9ibGFua1wiPkdvb2dsZSBQbGF5IFN0b3JlPC9hPi5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcFR5cGUgPT09ICdhdXRoeSdcIj5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIE9wZW4gdGhlIEF1dGh5IGFwcCBhbmQgc2VsZWN0IDxiPkFkZCBBY2NvdW50PC9iPi5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIFNlbGVjdCA8Yj5TY2FuIFFSIENvZGU8L2I+IGFuZCBzY2FuIHRoZSBRUiBjb2RlIGJlbG93LlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+ICAgICAgICAgXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwVHlwZSA9PT0gJ2dvb2dsZSdcIj5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIE9wZW4gdGhlIEdvb2dsZSBBdXRoZW50aWN0b3IgYXBwIGFuZCBjbGljayB0aGUgPGI+UGx1cyBpY29uPC9iPiBpbiB0aGUgbG93ZXIgcmlnaHQgY29ybmVyLlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgU2VsZWN0IDxiPlNjYW4gYSBRUiBjb2RlPC9iPiBhbmQgc2NhbiB0aGUgUVIgY29kZSBiZWxvdy5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvb2w+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpmc1NrZWxldG9uPVwicXJDb2RlVXJsXCI+XG4gICAgICAgICAgICA8ZnMtcXJjb2RlXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJxckNvZGVVcmxcIlxuICAgICAgICAgICAgICBbd2lkdGhdPVwiMzAwXCJcbiAgICAgICAgICAgICAgW2hlaWdodF09XCIzMDBcIj5cbiAgICAgICAgICAgIDwvZnMtcXJjb2RlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLXR5cGVzXCIgKm5nSWY9XCIhYXBwVHlwZVwiPlxuICAgICAgICAgIDxwPlNlbGVjdCB0aGUgQXV0aGVudGljYXRvciBBcHAgeW91IHByZWZlcjwvcD5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICA8YSAoY2xpY2spPVwiYXBwVHlwZUF1dGh5KClcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNTBcIiBoZWlnaHQ9XCI1MFwiIHZpZXdCb3g9XCIwIDAgMjU2IDI1NlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWRcIj48cGF0aCBkPVwiTTI1NiAxMjcuOTk4QzI1NiAxOTguNjk2IDE5OC42OTQgMjU2IDEyNy45OTcgMjU2IDU3LjMwNCAyNTYgMCAxOTguNjk2IDAgMTI3Ljk5OCAwIDU3LjMwNSA1Ny4zMDQgMCAxMjcuOTk3IDAgMTk4LjY5NCAwIDI1NiA1Ny4zMDUgMjU2IDEyNy45OTh6XCIgZmlsbD1cIiNFQzFDMjRcIi8+PHBhdGggZD1cIk0xMTcuMDI0IDEwMC44OWwzMC42OTEgMzAuNjhjNC40MyA0LjQzNiAxMS42MjMgNC40MzYgMTYuMDY0IDAgNC40MzEtNC40MzUgNC40NDEtMTEuNjIyIDAtMTYuMDU4TDEzMy4wODYgODQuODJDMTExLjEyNSA2Mi44NTQgNzUuNjMxIDYyLjUgNTMuMjA0IDgzLjcwNGE5LjUzNiA5LjUzNiAwIDAgMC0uNjA1LjU0OGMtLjA5OC4wOTgtLjE3OC4yMDItLjI3NS4yOS0uMS4wOTYtLjIwMi4xODItLjI5Ny4yNzgtLjE5NC4xOTMtLjM3MS4zOTYtLjU0LjU5Ny0yMS4yMTUgMjIuNDM3LTIwLjg1IDU3LjkzMiAxLjExMyA3OS44OTdMODMuMjkyIDE5NmM0LjQ0IDQuNDMzIDExLjYyMyA0LjQzMyAxNi4wNjIgMCA0LjQ0Mi00LjQzNyA0LjQ0Mi0xMS42MzMuMDExLTE2LjA2bC0zMC42OTMtMzAuNjkxYy0xMy4zOTgtMTMuMzkzLTEzLjQ4OC0zNS4xMjktLjI3OC00OC42MzcgMTMuNTA2LTEzLjIxIDM1LjIzLTEzLjExNCA0OC42My4yNzl6bTM5LjYxMi00MC44NzNjLTQuNDM1IDQuNDM3LTQuNDM1IDExLjYyMy4wMTIgMTYuMDU5bDMwLjY4MSAzMC42OTNjMTMuMzkgMTMuMzkyIDEzLjQ3NyAzNS4xMjUuMjY4IDQ4LjYzNi0xMy41MSAxMy4yLTM1LjIyNyAxMy4xMTItNDguNjIzLS4yODJsLTMwLjY5Mi0zMC42ODljLTQuNDM4LTQuNDM3LTExLjYzMy00LjQzNy0xNi4wNjYgMC00LjQ0MyA0LjQzMy00LjQ0MyAxMS42NDIgMCAxNi4wNjVsMzAuNjgyIDMwLjY5NGMyMS45NjggMjEuOTY1IDU3LjQ1OCAyMi4zMjIgNzkuODg5IDEuMTE2LjIwOC0uMTg0LjQwNC0uMzU1LjYxLS41NDkuMDk0LS4wOTUuMTgyLS4xOTIuMjczLS4yOS4xLS4wOTUuMTk3LS4xODMuMjktLjI4OS4xOTctLjE4My4zNjUtLjM4NC41NC0uNTk0IDIxLjIxNS0yMi40MjggMjAuODYtNTcuOTExLTEuMTAyLTc5Ljg4OWwtMzAuNjkyLTMwLjY4MmMtNC40MzYtNC40NDMtMTEuNjM4LTQuNDQzLTE2LjA3LjAwMXpcIiBmaWxsPVwiI0ZGRlwiLz48L3N2Zz5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICBBdXRoeVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cImFwcFR5cGVHb29nbGUoKVwiPiAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNTBcIiAgaGVpZ2h0PVwiNTBcIiB2aWV3Qm94PVwiMCAwIDEwMjQgMTAyNFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtNDU3LjA3IDQ1LjkyYzczLjY3LTguNjIgMTQ5LjQxLjIyIDIxOC45MyAyNi4yNCA2Mi43NSAyMy40NyAxMjAuNTkgNjAuNDEgMTY3LjcyIDEwOC4wOS00MC4zMSAzOS45Ny04MC4yNSA4MC4zMS0xMjAuNTEgMTIwLjMzLTI1Ljk1LTI1LjQ1LTU2LjE5LTQ2LjY1LTg5LjQ3LTYxLjM3LTQ0LjIyLTE5LjgyLTkzLjM5LTI4LjU0LTE0MS43Mi0yNS4yLTU0LjYgMy41Mi0xMDguMTEgMjIuNDktMTUyLjYzIDU0LjMtNTUuMjQgMzguOTUtOTYuNjEgOTcuMjItMTE0LjggMTYyLjM1LTEzLjY0IDQ3Ljc4LTE0Ljc3IDk4Ljk3LTMuNzYgMTQ3LjQgOC44NSAzOS42MSAyNi4wOSA3Ny4yOSA1MC4wNSAxMTAuMDMgMjIuMjQgMzAuNDUgNTAuMyA1Ni42NCA4Mi4yMiA3Ni43MSAzNi43OSAyMy4yNCA3OC43NiAzOC4yMiAxMjEuOTYgNDMuNDggMzcuMDIgNC42NSA3NC45IDIuMjMgMTExLjA1LTcgMy45Ny0xLjkxIDYuMjQgMi42MSA4LjczIDQuODYgNDAuNzQgNDAuOTUgODEuNjggODEuNyAxMjIuNDMgMTIyLjYzLTczLjMxIDM1LjYtMTU1Ljk5IDUxLjg2LTIzNy4zIDQ2LjEyLTY4LjA1LTQuNTEtMTM1LjA3LTI0LjA4LTE5NC43MS01Ny4xOC0yNC44Ny0xMy42LTQ4LjIzLTI5LjgyLTcwLjMzLTQ3LjU0LTE3LjQ2LTE0LjgxLTM0LjcxLTMwLjAxLTQ5LjcyLTQ3LjM1LTI1LjQxLTI3LjM5LTQ3LjIxLTU4LjExLTY1LjE3LTkwLjg3LTQtNy43Mi04LjY0LTE1LjEyLTExLjktMjMuMi00LjQ3LTkuMDUtOC4zNy0xOC4zNi0xMi4yNS0yNy42Ny00Ljk2LTEzLjI3LTEwLjI2LTI2LjQ0LTEzLjg4LTQwLjE1LS40My0xLjgxLTEuNTMtMy4zMy0yLjUyLTQuODUtOC4zLTI4LjY2LTEyLjk1LTU4LjMzLTE1LjQ0LTg4LjA0LTIuNjItMzcuMzYtMS4zMy03NS4wNSA0Ljc4LTExMi4wMyAxMi4xOC03NS40OCA0My40MS0xNDcuNzQgODkuODYtMjA4LjQ0IDMwLjEyLTM5LjUgNjYuNTMtNzQuMjEgMTA3LjQ2LTEwMi4zNSA2Mi40NC00My4xMSAxMzUuNTMtNzAuNjkgMjEwLjkyLTc5LjNtNDkuMTggNTAuNDhjLTUuNy45OS0xMC45NiAzLjc2LTE1LjM4IDcuNDMtMTAuNCA4LjkzLTE0LjE0IDI0LjgxLTguMTcgMzcuMjggNi4zMyAxNS4wMiAyNS4xNiAyMy4xIDQwLjM2IDE3IDE1LjQzLTUuMjQgMjQuNzgtMjMuNTEgMTkuNzQtMzkuMDYtNC4xLTE1LjQzLTIwLjkyLTI1Ljc5LTM2LjU1LTIyLjY1bS0yNjcuOTYgMTExLjk5Yy01LjMzLjI4LTEwLjU5IDEuOTItMTUuMTYgNC42OC0xMS40NyA3LjAzLTE3Ljg4IDIxLjc0LTE0LjM2IDM0Ljg2IDMuMDkgMTQuMDggMTYuNzggMjUuMDYgMzEuMjYgMjQuNjEgMTUuMDMuNDEgMjkuMDgtMTEuMzkgMzEuNTQtMjYuMTcgMi4yNC0xMC4zMy0xLjYxLTIxLjU1LTkuMTQtMjguODUtNi4yNC02LjMzLTE1LjMtOS42Mi0yNC4xNC05LjEzbS0xMTUuOTYgMjcyYy02LjYyIDEuMjMtMTIuODQgNC41OC0xNy41NCA5LjQtOS40NSA5LjcyLTExLjcyIDI1LjU3LTUuMDIgMzcuNDIgNy4xNiAxMy45NiAyNS40OCAyMC44NiAzOS45OCAxNC42MiAxNS4wMi01LjUxIDIzLjk5LTIzLjQyIDE5LjA2LTM4LjcxLTQuMDQtMTUuNDEtMjAuODYtMjUuOTYtMzYuNDgtMjIuNzNtMTExLjk4IDI3Mi4wNWMtMTEuNDkgMS45NS0yMS40OCAxMC43Mi0yNC44NCAyMS44OC0zLjg3IDExLjYzLS4xMyAyNS4xNiA4LjkgMzMuMzYgNi4xNSA1LjQ4IDE0LjQgOC43IDIyLjY3IDguMzIgMTEuMTYtLjI1IDIxLjk4LTYuODcgMjcuMTItMTYuOCA0LjkzLTguODMgNS4xNS0yMC4wMi43MS0yOS4xLTUuODItMTIuNzgtMjAuODEtMjAuMzMtMzQuNTYtMTcuNjZtMjcyLjA2IDExMi4wM2MtMTEuNzYgMi4wMi0yMS45MiAxMS4wNy0yNS4wOSAyMi42LTMuODcgMTIuNTcgMS4xMyAyNy4yNSAxMS45MSAzNC43OSA3Ljg2IDUuNzkgMTguNDIgNy42NyAyNy43NyA0Ljg2IDkuNjEtMi43NyAxNy43LTEwLjI0IDIxLjA3LTE5LjY4IDQuOTctMTIuNzQuMzYtMjguMzItMTAuNTgtMzYuNDYtNy4wMi01LjQ1LTE2LjM1LTcuNjctMjUuMDgtNi4xMXpcIiBmaWxsPVwiI2EwYTBhMFwiLz5cbiAgICAgICAgICAgICAgICAgIDxnIGZpbGw9XCIjYzFjMWMxXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtNTA2LjI1IDk2LjRjMTUuNjMtMy4xNCAzMi40NSA3LjIyIDM2LjU1IDIyLjY1IDUuMDQgMTUuNTUtNC4zMSAzMy44Mi0xOS43NCAzOS4wNi0xNS4yIDYuMS0zNC4wMy0xLjk4LTQwLjM2LTE3LTUuOTctMTIuNDctMi4yMy0yOC4zNSA4LjE3LTM3LjI4IDQuNDItMy42NyA5LjY4LTYuNDQgMTUuMzgtNy40M3pcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtMTIyLjMzIDQ4MC4zOWMxNS42Mi0zLjIzIDMyLjQ0IDcuMzIgMzYuNDggMjIuNzMgNC45MyAxNS4yOS00LjA0IDMzLjItMTkuMDYgMzguNzEtMTQuNSA2LjI0LTMyLjgyLS42Ni0zOS45OC0xNC42Mi02LjctMTEuODUtNC40My0yNy43IDUuMDItMzcuNDIgNC43LTQuODIgMTAuOTItOC4xNyAxNy41NC05LjR6XCIvPlxuICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIm04NDMuNzIgMTgwLjI1LjExLS4xMWMyNC42NCAyNS4xMiA0Ni45NiA1Mi42IDY1LjYxIDgyLjQ3IDM2LjAxIDU3LjE2IDU5LjM4IDEyMi4yMiA2Ny44NyAxODkuMjUgNS42NyA0NC44OCA1LjI3IDkwLjYtMi4wNSAxMzUuMjctMTIuNyA4MC4wMS00Ni45NCAxNTYuNDEtOTcuOSAyMTkuMzYtNDIuMyA1Mi40OC05NS44NyA5Ni4wNC0xNTYuNDEgMTI1Ljc2bC0uNjMtLjI2Yy0xLjAxLTEuMS0yLjAzLTIuMTYtMy4wNS0zLjIyLTQwLjc1LTQwLjkzLTgxLjY5LTgxLjY4LTEyMi40My0xMjIuNjMtMi40OS0yLjI1LTQuNzYtNi43Ny04LjczLTQuODYtMzYuMTUgOS4yMy03NC4wMyAxMS42NS0xMTEuMDUgNy00My4yLTUuMjYtODUuMTctMjAuMjQtMTIxLjk2LTQzLjQ4LTMxLjkyLTIwLjA3LTU5Ljk4LTQ2LjI2LTgyLjIyLTc2LjcxLTIzLjk2LTMyLjc0LTQxLjItNzAuNDItNTAuMDUtMTEwLjAzLTExLjAxLTQ4LjQzLTkuODgtOTkuNjIgMy43Ni0xNDcuNCAxOC4xOS02NS4xMyA1OS41Ni0xMjMuNCAxMTQuOC0xNjIuMzUgNDQuNTItMzEuODEgOTguMDMtNTAuNzggMTUyLjYzLTU0LjMgNDguMzMtMy4zNCA5Ny41IDUuMzggMTQxLjcyIDI1LjIgMzMuMjggMTQuNzIgNjMuNTIgMzUuOTIgODkuNDcgNjEuMzcgNDAuMjYtNDAuMDIgODAuMi04MC4zNiAxMjAuNTEtMTIwLjMzbS0zNTEuNzUgMTgzLjk3Yy0yMS4yMyAyLjg1LTQxLjg5IDEwLjI4LTU5Ljg4IDIxLjk0LTIzLjA4IDE0LjQ1LTQxLjc2IDM1LjU4LTUzLjkgNTkuOTEtMTQuNTggMjkuMi0xOC42NCA2My4yMS0xMi41IDk1LjE3IDMuOTMgMTkuODUgMTIuMDMgMzguODggMjMuNTYgNTUuNTEgNy45MyAxMS41MiAxNy42NSAyMS42NiAyNy42NSAzMS4zOCA1Ny4zMyA1Ny40MSAxMTQuNjEgMTE0Ljg2IDE3MS45OSAxNzIuMjEgNDkuMDktMTMuMDcgOTQuNjctMzguOTQgMTMxLjA1LTc0LjQgNDUuMTEtNDMuMzQgNzUuNjYtMTAxLjQ0IDg2LjMxLTE2My4wNi4yNC0xLjA0LjIyLTIuOTEgMS44NS0yLjYgMjkuNjMuMDQgNTkuMjYtLjAxIDg4LjkuMDUgMTkuMDQtLjMgMzYuODctMTQuNzcgNDAuNzYtMzMuNDYuMjItMS4yMSAwLTIuMzItLjY3LTMuMzUgMS4yMi01LjcxIDIuMDgtMTEuNTggMS4zOC0xNy40M2wtLjI0LjRjLTIuMDUtMjAuMzQtMjAuODQtMzcuMTItNDEuMjUtMzcuMTctODAuNjQtLjA3LTE2MS4yOC0uMDEtMjQxLjkzLS4wNy02LjQ0LTIyLjA4LTE4LjUtNDIuMzMtMzQuMDMtNTkuMjMtMjUuOC0yNy41LTYyLjI2LTQ1LjAxLTEwMC4wMi00Ni44Mi05LjY4LjAyLTE5LjQ0LS41NC0yOS4wMyAxLjAybTI4Ni4zNyAzODguMzFjLTEyLjY0IDIuMDYtMjMuMzcgMTIuNTktMjUuNyAyNS4xOC0xLjQ4IDguMTQtLjE0IDE3LjAyIDQuNzMgMjMuODUgNS43NiA5LjIgMTYuOCAxNC43NiAyNy42MSAxNC4yNSA4LjMyLjAzIDE2LjI4LTMuOTUgMjIuMTYtOS42NiA0Ljg3LTUuNiA4LjQ1LTEyLjY3IDguNjctMjAuMi44Ni0xMS4zNy01LjA2LTIzLjEtMTQuODctMjguOTYtNi41Mi00LjQ2LTE0Ljg5LTUuNzUtMjIuNi00LjQ2elwiIGZpbGw9XCIjNjg2ODY4XCIvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIm0yMzguMjkgMjA4LjM5YzguODQtLjQ5IDE3LjkgMi44IDI0LjE0IDkuMTMgNy41MyA3LjMgMTEuMzggMTguNTIgOS4xNCAyOC44NS0yLjQ2IDE0Ljc4LTE2LjUxIDI2LjU4LTMxLjU0IDI2LjE3LTE0LjQ4LjQ1LTI4LjE3LTEwLjUzLTMxLjI2LTI0LjYxLTMuNTItMTMuMTIgMi44OS0yNy44MyAxNC4zNi0zNC44NiA0LjU3LTIuNzYgOS44My00LjQgMTUuMTYtNC42OHpcIiBmaWxsPVwiI2MzYzNjM1wiLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtNDkxLjk3IDM2NC4yMmM5LjU5LTEuNTYgMTkuMzUtMSAyOS4wMy0xLjAyIDM3Ljc2IDEuODEgNzQuMjIgMTkuMzIgMTAwLjAyIDQ2LjgyIDE1LjUzIDE2LjkgMjcuNTkgMzcuMTUgMzQuMDMgNTkuMjMtNDcuNjctLjAxLTk1LjM1LS4wMS0xNDMuMDMtLjAxLTEyLjE5LS4xMS0yNC4yMyA1LjQyLTMyLjIxIDE0LjYxLTYuMDEgNi44NS05Ljc0IDE1LjY1LTEwLjQ0IDI0Ljc0LTEuMTkgMTQuMTcgNS4zNiAyOC43IDE2LjY5IDM3LjI4IDcuNjIgNS45MSAxNy4yOCA5IDI2LjkyIDguOCAxMjYuNjktLjA0IDI1My4zOS0uMDYgMzgwLjA4LjAzIDQuNzYuMDQgOS41OS0uMTUgMTQuMi0xLjQ4IDE0LjIxLTMuODIgMjYuMDItMTUuNDcgMjkuODMtMjkuNy42NyAxLjAzLjg5IDIuMTQuNjcgMy4zNS0zLjg5IDE4LjY5LTIxLjcyIDMzLjE2LTQwLjc2IDMzLjQ2LTI5LjY0LS4wNi01OS4yNy0uMDEtODguOS0uMDUtMS42My0uMzEtMS42MSAxLjU2LTEuODUgMi42LTEwLjY1IDYxLjYyLTQxLjIgMTE5LjcyLTg2LjMxIDE2My4wNi0zNi4zOCAzNS40Ni04MS45NiA2MS4zMy0xMzEuMDUgNzQuNC01Ny4zOC01Ny4zNS0xMTQuNjYtMTE0LjgtMTcxLjk5LTE3Mi4yMS0xMC05LjcyLTE5LjcyLTE5Ljg2LTI3LjY1LTMxLjM4LTExLjUzLTE2LjYzLTE5LjYzLTM1LjY2LTIzLjU2LTU1LjUxLTYuMTQtMzEuOTYtMi4wOC02NS45NyAxMi41LTk1LjE3IDEyLjE0LTI0LjMzIDMwLjgyLTQ1LjQ2IDUzLjktNTkuOTEgMTcuOTktMTEuNjYgMzguNjUtMTkuMDkgNTkuODgtMjEuOTR6XCIgZmlsbD1cIiM0NzQ3NDdcIi8+XG4gICAgICAgICAgICAgICAgICA8ZyBmaWxsPVwiI2JmYmZiZlwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTQ3OS44MSA0ODMuODVjNy45OC05LjE5IDIwLjAyLTE0LjcyIDMyLjIxLTE0LjYxIDQ3LjY4IDAgOTUuMzYgMCAxNDMuMDMuMDEgODAuNjUuMDYgMTYxLjI5IDAgMjQxLjkzLjA3IDIwLjQxLjA1IDM5LjIgMTYuODMgNDEuMjUgMzcuMTctLjE5LjMzLS41OC45Ny0uNzggMS4yOS0zLjY4LTE4LjUxLTIxLjU3LTMzLjE2LTQwLjQ3LTMzLjA1LTEyNC45Ny4xLTI0OS45NC4xMi0zNzQuOTEuMTctNy43My4xMy0xNS43NC0uOC0yMy4xNSAxLjk2LTkuMDYgMi44NC0xNi43MyA5LjEtMjIuMjcgMTYuNy0zLjM0IDQuNTUtNC4zOSAxMC4yNC03LjI4IDE1LjAzLjctOS4wOSA0LjQzLTE3Ljg5IDEwLjQ0LTI0Ljc0elwiLz5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIm0yMzQuMzEgNzUyLjQ0YzEzLjc1LTIuNjcgMjguNzQgNC44OCAzNC41NiAxNy42NiA0LjQ0IDkuMDggNC4yMiAyMC4yNy0uNzEgMjkuMS01LjE0IDkuOTMtMTUuOTYgMTYuNTUtMjcuMTIgMTYuOC04LjI3LjM4LTE2LjUyLTIuODQtMjIuNjctOC4zMi05LjAzLTguMi0xMi43Ny0yMS43My04LjktMzMuMzYgMy4zNi0xMS4xNiAxMy4zNS0xOS45MyAyNC44NC0yMS44OHpcIi8+XG4gICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTQ5OC45MiA0NzYuODZjNy40MS0yLjc2IDE1LjQyLTEuODMgMjMuMTUtMS45NiAxMjQuOTctLjA1IDI0OS45NC0uMDcgMzc0LjkxLS4xNyAxOC45LS4xMSAzNi43OSAxNC41NCA0MC40NyAzMy4wNS4yLS4zMi41OS0uOTYuNzgtMS4yOWwuMjQtLjRjLjcgNS44NS0uMTYgMTEuNzItMS4zOCAxNy40My0zLjgxIDE0LjIzLTE1LjYyIDI1Ljg4LTI5LjgzIDI5LjctNC42MSAxLjMzLTkuNDQgMS41Mi0xNC4yIDEuNDgtMTI2LjY5LS4wOS0yNTMuMzktLjA3LTM4MC4wOC0uMDMtOS42NC4yLTE5LjMtMi44OS0yNi45Mi04LjgtMTEuMzMtOC41OC0xNy44OC0yMy4xMS0xNi42OS0zNy4yOCAyLjg5LTQuNzkgMy45NC0xMC40OCA3LjI4LTE1LjAzIDUuNTQtNy42IDEzLjIxLTEzLjg2IDIyLjI3LTE2Ljd6XCIgZmlsbD1cIiNiMGIwYjBcIi8+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTU5LjQ5IDYzNi4wOGMuOTkgMS41MiAyLjA5IDMuMDQgMi41MiA0Ljg1IDMuNjIgMTMuNzEgOC45MiAyNi44OCAxMy44OCA0MC4xNSAzLjg4IDkuMzEgNy43OCAxOC42MiAxMi4yNSAyNy42NyAzLjI2IDguMDggNy45IDE1LjQ4IDExLjkgMjMuMiAxNy45NiAzMi43NiAzOS43NiA2My40OCA2NS4xNyA5MC44NyAxNS4wMSAxNy4zNCAzMi4yNiAzMi41NCA0OS43MiA0Ny4zNSAyMi4xIDE3LjcyIDQ1LjQ2IDMzLjk0IDcwLjMzIDQ3LjU0IDU5LjY0IDMzLjEgMTI2LjY2IDUyLjY3IDE5NC43MSA1Ny4xOCA4MS4zMSA1Ljc0IDE2My45OS0xMC41MiAyMzcuMy00Ni4xMiAxLjAyIDEuMDYgMi4wNCAyLjEyIDMuMDUgMy4yMmwuMDMuNjFjLTQyLjMyIDIxLjAzLTg3Ljg4IDM1LjUzLTEzNC41NiA0Mi45MS01Ni45MSA4LjktMTE1LjQ2IDcuNDktMTcxLjgyLTQuNS02Ny44OS0xNC4zNS0xMzIuNDItNDQuMjEtMTg3LjQyLTg2LjUxLTYzLjUyLTQ4LjYzLTExNC4zMi0xMTMuNzMtMTQ1Ljg2LTE4Ny4yNy04LjQyLTE5Ljg3LTE1LjkzLTQwLjIyLTIxLjItNjEuMTV6XCIgZmlsbD1cIiM5MzkzOTNcIi8+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTc3OC4zNCA3NTIuNTNjNy43MS0xLjI5IDE2LjA4IDAgMjIuNiA0LjQ2IDkuODEgNS44NiAxNS43MyAxNy41OSAxNC44NyAyOC45Ni0uMjIgNy41My0zLjggMTQuNi04LjY3IDIwLjItNS44OCA1LjcxLTEzLjg0IDkuNjktMjIuMTYgOS42Ni0xMC44MS41MS0yMS44NS01LjA1LTI3LjYxLTE0LjI1LTQuODctNi44My02LjIxLTE1LjcxLTQuNzMtMjMuODUgMi4zMy0xMi41OSAxMy4wNi0yMy4xMiAyNS43LTI1LjE4elwiIGZpbGw9XCIjNzY3Njc2XCIvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIm01MDYuMzcgODY0LjQ3YzguNzMtMS41NiAxOC4wNi42NiAyNS4wOCA2LjExIDEwLjk0IDguMTQgMTUuNTUgMjMuNzIgMTAuNTggMzYuNDYtMy4zNyA5LjQ0LTExLjQ2IDE2LjkxLTIxLjA3IDE5LjY4LTkuMzUgMi44MS0xOS45MS45My0yNy43Ny00Ljg2LTEwLjc4LTcuNTQtMTUuNzgtMjIuMjItMTEuOTEtMzQuNzkgMy4xNy0xMS41MyAxMy4zMy0yMC41OCAyNS4wOS0yMi42elwiIGZpbGw9XCIjYmViZWJlXCIvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIEdvb2dsZSBBdXRoZW50aWNhdG9yXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICBcbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwibW9kZSA9PT0gJ2NvZGUtaW5wdXQnXCIgY2xhc3M9XCJjb2RlLWlucHV0XCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgRW50ZXIgdGhlIDYtZGlnaXQgY29kZSB5b3Ugc2VlIGluIHRoZSBBcHAuXG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxhcHAtY29kZS1pbnB1dFxuICAgICAgICAgIChjb2RlQ2hhbmdlZCk9XCJjb2RlQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgIDwvYXBwLWNvZGUtaW5wdXQ+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3hlc1wiPlxuICAgICAgICAgIDxtYXQtY2hlY2tib3ggbmFtZT1cImRlZmF1bHRcIiBbKG5nTW9kZWwpXT1cImRlZmF1bHRcIiBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICBNYWtlIHRoaXMgdGhlIGRlZmF1bHQgdmVyaWZpY2F0aW9uIG1ldGhvZFxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwVHlwZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIm1vZGUgPT09ICdxci1jb2RlJ1wiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAoY2xpY2spPVwibmV4dCgpXCI+XG4gICAgICAgICAgTmV4dFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJtb2RlID09PSAnY29kZS1pbnB1dCdcIlxuICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm5leHQoKVwiPlxuICAgICAgICAgIFZlcmlmeVxuICAgICAgICA8L2J1dHRvbj4gICAgICBcbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICBbbWF0LWRpYWxvZy1jbG9zZV09XCJudWxsXCI+XG4gICAgICAgIENhbmNlbFxuICAgICAgPC9idXR0b24+XG4gICAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4gIDwvZnMtZGlhbG9nPlxuPC9mb3JtPlxuIl19
|