{"version":3,"file":"ngx-gilmapi-forgot-password.mjs","sources":["../../../projects/ui-angular-components/forgot-password/src/forgot-password.component.ts","../../../projects/ui-angular-components/forgot-password/src/forgot-password.component.html","../../../projects/ui-angular-components/forgot-password/src/forgot-password.module.ts","../../../projects/ui-angular-components/forgot-password/ngx-gilmapi-forgot-password.ts"],"sourcesContent":["import { HttpErrorResponse } from '@angular/common/http';\nimport {\n  Component,\n  inject,\n  Inject,\n  Optional,\n  signal,\n  Type,\n} from '@angular/core';\nimport {\n  FormBuilder,\n  Validators,\n} from '@angular/forms';\nimport {\n  ActivatedRoute,\n  Router,\n} from '@angular/router';\n\nimport { MessageService } from 'primeng/api';\n\nimport {\n  ForgotPasswordConfig,\n  ForgotPasswordRequest,\n  ForgotPasswordServiceInterface,\n} from './interfaces/forgot-password.interface';\n\n@Component({\n  selector: 'ngx-gmp-forgot-password',\n  templateUrl: './forgot-password.component.html',\n  styleUrls: ['./forgot-password.component.scss'],\n  standalone: false,\n})\nexport class GmpForgotPasswordComponent {\n  fb = inject(FormBuilder);\n  router = inject(Router);\n  messageService = inject(MessageService);\n  activatedRoute = inject(ActivatedRoute);\n\n  private authService: ForgotPasswordServiceInterface | null = null;\n  public welcomeContentComponent: Type<any> | null = null;\n  forgotPasswordConfig: ForgotPasswordConfig | null = null;\n\n  isLoading = signal<boolean>(false);\n\n  forgotPasswordForm = this.fb.group({\n    email: ['', [Validators.required, Validators.email]],\n  });\n\n  constructor(\n    @Optional() @Inject('AUTH_SERVICE') authService: ForgotPasswordServiceInterface,\n    @Optional() @Inject('WELCOME_CONTENT_COMPONENT') welcomeContentComponent: Type<any>,\n    @Optional() @Inject('FORGOT_PASSWORD_CONFIG') forgotPasswordConfig: ForgotPasswordConfig,\n  ) {\n    this.authService = authService;\n    this.welcomeContentComponent = welcomeContentComponent;\n    this.forgotPasswordConfig = forgotPasswordConfig;\n  }\n\n  goToLogin() {\n    if (this.forgotPasswordConfig?.loginRoute) {\n      const currentParams = this.activatedRoute.snapshot.queryParams;\n      this.router.navigate([this.forgotPasswordConfig.loginRoute], {\n        queryParams: currentParams,\n      });\n    }\n  }\n\n  submit() {\n    this.isLoading.set(true);\n\n    if (!this.authService) {\n      this.messageService.add({\n        severity: 'error',\n        summary: 'Error',\n        detail: 'No se encontró el servicio de recuperación de contraseña.',\n        life: 5000,\n      });\n      this.isLoading.set(false);\n      return;\n    }\n\n    if (!this.forgotPasswordForm.valid) {\n      this.messageService.add({\n        severity: 'error',\n        summary: 'Error',\n        detail: 'Por favor ingrese un email válido.',\n        life: 5000,\n      });\n      this.isLoading.set(false);\n      return;\n    }\n\n    const payload: ForgotPasswordRequest = {\n      email: this.forgotPasswordForm.value.email ?? '',\n    };\n\n    this.authService.forgotPassword(payload).subscribe({\n      next: () => {\n        this.isLoading.set(false);\n        this.messageService.add({\n          severity: 'success',\n          summary: 'Solicitud enviada',\n          detail: 'Si el correo existe, recibirá instrucciones para restablecer su contraseña.',\n          life: 5000,\n        });\n      },\n      error: (error: HttpErrorResponse) => {\n        this.isLoading.set(false);\n        this.messageService.add({\n          severity: 'error',\n          summary: 'Error',\n          detail: error?.error?.message || 'No fue posible procesar la solicitud. Intente nuevamente.',\n          life: 5000,\n        });\n        console.error('Forgot password error:', error);\n      },\n    });\n  }\n}\n","<p-toast></p-toast>\n\n<div class=\"forgot-page\">\n  <div class=\"forgot-card\">\n    <div class=\"forgot-panel forgot-panel-form\">\n      @if (forgotPasswordConfig?.logoUrl) {\n        <div class=\"forgot-logo-wrap\">\n          <img [src]=\"forgotPasswordConfig?.logoUrl\" class=\"forgot-logo\" alt=\"logo\" />\n        </div>\n      }\n\n      <h1 class=\"forgot-title\">{{ forgotPasswordConfig?.title || 'Recuperar contraseña' }}</h1>\n      <p class=\"forgot-subtitle\">\n        {{ forgotPasswordConfig?.subtitle || 'Ingrese su correo para enviarle las instrucciones de recuperación.' }}\n      </p>\n\n      <form [formGroup]=\"forgotPasswordForm\" class=\"forgot-form fade-in\" (ngSubmit)=\"submit()\">\n        <div class=\"form-group form-group-spaced\">\n          <label for=\"email\" class=\"forgot-label\">Email *</label>\n          <input\n            id=\"email\"\n            pInputText\n            type=\"email\"\n            class=\"input-field forgot-input\"\n            placeholder=\"Ingrese su email\"\n            formControlName=\"email\"\n          />\n        </div>\n\n        <button\n          type=\"submit\"\n          [class]=\"\n            'forgot-submit-button ' +\n            (isLoading() || !forgotPasswordForm.valid\n              ? 'forgot-submit-button-disabled'\n              : 'forgot-submit-button-enabled')\n          \"\n          [disabled]=\"isLoading() || !forgotPasswordForm.valid\"\n        >\n          @if (isLoading()) {\n            <span class=\"loading-inline\">\n              <i class=\"pi pi-spin pi-spinner loading-inline-icon\"></i>\n              Enviando...\n            </span>\n          } @else {\n            <span>{{ forgotPasswordConfig?.submitLabel || 'Enviar instrucciones' }}</span>\n          }\n        </button>\n\n        @if (forgotPasswordConfig?.loginRoute) {\n          <div class=\"forgot-login-row\">\n            <a (click)=\"goToLogin()\" class=\"forgot-login-link\">Volver al inicio de sesión</a>\n          </div>\n        }\n      </form>\n    </div>\n\n    @if (welcomeContentComponent) {\n      <div class=\"forgot-panel forgot-panel-welcome welcome-content\">\n        <ng-container *ngComponentOutlet=\"welcomeContentComponent\"></ng-container>\n      </div>\n    }\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n  CUSTOM_ELEMENTS_SCHEMA,\n  NgModule,\n} from '@angular/core';\nimport {\n  FormsModule,\n  ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { RouterModule } from '@angular/router';\n\nimport { MessageService } from 'primeng/api';\nimport { ButtonModule } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { MessageModule } from 'primeng/message';\nimport { RippleModule } from 'primeng/ripple';\nimport { ToastModule } from 'primeng/toast';\n\nimport { GmpForgotPasswordComponent } from './forgot-password.component';\n\n@NgModule({\n  declarations: [GmpForgotPasswordComponent],\n  imports: [\n    CommonModule,\n    FormsModule,\n    ReactiveFormsModule,\n    RouterModule.forChild([{ path: '', component: GmpForgotPasswordComponent }]),\n    MatButtonModule,\n    MatInputModule,\n    ButtonModule,\n    InputTextModule,\n    RippleModule,\n    ToastModule,\n    MessageModule,\n  ],\n  providers: [MessageService],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\n  exports: [GmpForgotPasswordComponent],\n})\nexport class GmpForgotPasswordModule {\n  constructor() {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}