<div>
  <div class="d-flex justify-content-center">
    <div class="col-md-4">
      <h1 jhiTranslate="reset.finish.title">Reposição da palavra-passe</h1>

      @if (initialized() && !key()) {
        <div class="alert alert-danger" jhiTranslate="reset.finish.messages.keymissing">Chave de reposição em falta.</div>
      }

      @if (key() && !success()) {
        <div class="alert alert-warning">
          <span jhiTranslate="reset.finish.messages.info">Escolha uma nova palavra-passe</span>
        </div>
      }

      @if (error()) {
        <div class="alert alert-danger">
          <span jhiTranslate="reset.finish.messages.error"
            >A sua palavra-passe não pode ser reposta. O pedido de reposição da palavra-passe é válido apenas por 24 horas.</span
          >
        </div>
      }

      @if (success()) {
        <div class="alert alert-success">
          <span jhiTranslate="reset.finish.messages.success"><strong>A sua palavra-passe foi reposta.</strong> Por favor </span>
          <a class="alert-link" routerLink="/login" jhiTranslate="global.messages.info.authenticated.link">entrar</a>.
        </div>
      }

      @if (doNotMatch()) {
        <div class="alert alert-danger" jhiTranslate="global.messages.error.dontmatch">
          A palavra-passe e a sua confirmação devem ser iguais!
        </div>
      }

      @if (key() && !success()) {
        <div>
          <form name="form" (ngSubmit)="finishReset()" [formGroup]="passwordForm">
            <div class="mb-3">
              <label class="form-label" for="newPassword" jhiTranslate="global.form.newpassword.label">Nova palavra-passe</label>
              <input
                type="password"
                class="form-control"
                id="newPassword"
                name="newPassword"
                placeholder="{{ 'global.form.newpassword.placeholder' | translate }}"
                formControlName="newPassword"
                data-cy="resetPassword"
                #newPassword
              />

              @if (
                passwordForm.get('newPassword')!.invalid &&
                (passwordForm.get('newPassword')!.dirty || passwordForm.get('newPassword')!.touched)
              ) {
                <div>
                  @if (passwordForm.get('newPassword')?.errors?.required) {
                    <small class="form-text text-danger" jhiTranslate="global.messages.validate.newpassword.required"
                      >A palavra-passe é obrigatória.</small
                    >
                  }

                  @if (passwordForm.get('newPassword')?.errors?.minlength) {
                    <small class="form-text text-danger" jhiTranslate="global.messages.validate.newpassword.minlength"
                      >A palavra-passe deve ter pelo menos 4 caracteres</small
                    >
                  }

                  @if (passwordForm.get('newPassword')?.errors?.maxlength) {
                    <small class="form-text text-danger" jhiTranslate="global.messages.validate.newpassword.maxlength"
                      >A palavra-passe não pode ter mais de 50 caracteres</small
                    >
                  }
                </div>
              }

              <jhi-password-strength-bar [passwordToCheck]="passwordForm.get('newPassword')!.value"></jhi-password-strength-bar>
            </div>

            <div class="mb-3">
              <label class="form-label" for="confirmPassword" jhiTranslate="global.form.confirmpassword.label"
                >Confirmação de nova palavra-passe</label
              >
              <input
                type="password"
                class="form-control"
                id="confirmPassword"
                name="confirmPassword"
                placeholder="{{ 'global.form.confirmpassword.placeholder' | translate }}"
                formControlName="confirmPassword"
                data-cy="confirmResetPassword"
              />

              @if (
                passwordForm.get('confirmPassword')!.invalid &&
                (passwordForm.get('confirmPassword')!.dirty || passwordForm.get('confirmPassword')!.touched)
              ) {
                <div>
                  @if (passwordForm.get('confirmPassword')?.errors?.required) {
                    <small class="form-text text-danger" jhiTranslate="global.messages.validate.confirmpassword.required"
                      >A confirmação da palavra-passe é obrigatória.</small
                    >
                  }

                  @if (passwordForm.get('confirmPassword')?.errors?.minlength) {
                    <small class="form-text text-danger" jhiTranslate="global.messages.validate.confirmpassword.minlength"
                      >A confirmação da palavra-passe deve ter pelo menos 4 caracteres</small
                    >
                  }

                  @if (passwordForm.get('confirmPassword')?.errors?.maxlength) {
                    <small class="form-text text-danger" jhiTranslate="global.messages.validate.confirmpassword.maxlength"
                      >A confirmação da palavra-passe não pode ter mais de 50 caracteres</small
                    >
                  }
                </div>
              }
            </div>

            <button
              type="submit"
              [disabled]="passwordForm.invalid"
              class="btn btn-primary"
              data-cy="submit"
              jhiTranslate="reset.finish.form.button"
            >
              Repor a palavra-passe
            </button>
          </form>
        </div>
      }
    </div>
  </div>
</div>
