@if (isLoading$ | async) { } @switch (state()) { @case (ForceTwoFAState.SETUP) { {{ (config ? 'login.two-fa' :'login.two-fa-required') | translate }}

{{ (config ? 'login.set-up-verification-method-login' :'login.set-up-verification-method') | translate }}

@for (provider of allowProviders; track provider) { } @if (config) { }
} @case (ForceTwoFAState.AUTHENTICATOR_APP) { @switch (appState()) { @case (ProvidersState.INPUT) { {{ 'login.enable-authenticator-app' | translate }}

login.scan-qr-code

login.enter-key-manually

{{ totpAuthURLSecret }}
} @case (ProvidersState.ENTER_CODE) { } @case (ProvidersState.SUCCESS) { } } } @case (ForceTwoFAState.SMS) { @switch (smsState()) { @case (ProvidersState.INPUT) { {{ 'login.enable-authenticator-sms' | translate }}

login.sms-description

} @case (ProvidersState.ENTER_CODE) { } @case (ProvidersState.SUCCESS) { } } } @case (ForceTwoFAState.EMAIL) { @switch (emailState()) { @case (ProvidersState.INPUT) { {{ 'login.enable-authenticator-email' | translate }}

login.email-description

@if (emailConfigForm.get('email').hasError('required')) { {{ 'login.email-required' | translate }} } @if (emailConfigForm.get('email').hasError('email')) { {{ 'login.invalid-email-format' | translate }} }
} @case (ProvidersState.ENTER_CODE) { } @case (ProvidersState.SUCCESS) { } } } @case (ForceTwoFAState.BACKUP_CODE) { @switch (backupCodeState()) { @case (BackupCodeState.CODE) { {{ 'login.get-backup-code' | translate }}

login.backup-code-description

@for (code of backupCode?.codes; track code) {
{{ code }}
}

login.backup-code-warn

} @case (BackupCodeState.SUCCESS) { } } } }
{{ twoFactorAuthProvidersEnterCodeCardTranslate.get(providerType).name | translate }}

{{ twoFactorAuthProvidersEnterCodeCardTranslate.get(providerType).description | translate }} @if (providerType === TwoFactorAuthProviderType.SMS) { {{ smsConfigForm.get('phone').value }} } @if (providerType === TwoFactorAuthProviderType.EMAIL) { {{ emailConfigForm.get('email').value }} }

@if (configForm.get('verificationCode').getError('required') || configForm.get('verificationCode').getError('minlength') || configForm.get('verificationCode').getError('maxlength') || configForm.get('verificationCode').getError('pattern')) { {{ 'login.verification-code-invalid' | translate }} } @if (configForm.get('verificationCode').getError('incorrectCode')) { {{ 'login.verification-code-incorrect' | translate }} } @if (configForm.get('verificationCode').getError('tooManyRequest')) { {{ 'login.verification-code-many-request' | translate }} }
{{ twoFactorAuthProvidersSuccessCardTranslate.get(providerType).name | translate }}

{{ twoFactorAuthProvidersSuccessCardTranslate.get(providerType).description | translate }}

@if (isAnyProviderAvailable) { }