{"version":3,"file":"ngx-gilmapi-change-password.mjs","sources":["../../../projects/ui-angular-components/change-password/src/change-password.component.ts","../../../projects/ui-angular-components/change-password/src/change-password.component.html","../../../projects/ui-angular-components/change-password/src/change-password.module.ts","../../../projects/ui-angular-components/change-password/ngx-gilmapi-change-password.ts"],"sourcesContent":["import { HttpErrorResponse } from '@angular/common/http';\nimport {\n  AbstractControl,\n  FormBuilder,\n  ValidationErrors,\n  Validators,\n} from '@angular/forms';\nimport {\n  Component,\n  inject,\n  Inject,\n  Optional,\n  signal,\n  Type,\n} from '@angular/core';\nimport {\n  ActivatedRoute,\n  Router,\n} from '@angular/router';\n\nimport { MessageService } from 'primeng/api';\n\nimport {\n  ChangePasswordConfig,\n  ChangePasswordRequest,\n  ChangePasswordServiceInterface,\n} from './interfaces/change-password.interface';\n\n@Component({\n  selector: 'ngx-gmp-change-password',\n  templateUrl: './change-password.component.html',\n  styleUrls: ['./change-password.component.scss'],\n  standalone: false,\n})\nexport class GmpChangePasswordComponent {\n  fb = inject(FormBuilder);\n  router = inject(Router);\n  messageService = inject(MessageService);\n  activatedRoute = inject(ActivatedRoute);\n\n  private authService: ChangePasswordServiceInterface | null = null;\n  public welcomeContentComponent: Type<any> | null = null;\n  changePasswordConfig: ChangePasswordConfig | null = null;\n\n  isLoading = signal<boolean>(false);\n  showPassword = signal<boolean>(false);\n  showConfirmPassword = signal<boolean>(false);\n\n  changePasswordForm = this.fb.group(\n    {\n      password: ['', [Validators.required, Validators.minLength(6)]],\n      confirmPassword: ['', [Validators.required]],\n    },\n    { validators: this.passwordMatchValidator },\n  );\n\n  constructor(\n    @Optional() @Inject('AUTH_SERVICE') authService: ChangePasswordServiceInterface,\n    @Optional() @Inject('WELCOME_CONTENT_COMPONENT') welcomeContentComponent: Type<any>,\n    @Optional() @Inject('CHANGE_PASSWORD_CONFIG') changePasswordConfig: ChangePasswordConfig,\n  ) {\n    this.authService = authService;\n    this.welcomeContentComponent = welcomeContentComponent;\n    this.changePasswordConfig = changePasswordConfig;\n  }\n\n  passwordMatchValidator(control: AbstractControl): ValidationErrors | null {\n    const password = control.get('password');\n    const confirmPassword = control.get('confirmPassword');\n    if (password && confirmPassword && password.value !== confirmPassword.value) {\n      return { passwordMismatch: true };\n    }\n    return null;\n  }\n\n  togglePasswordVisibility() {\n    this.showPassword.update(current => !current);\n  }\n\n  toggleConfirmPasswordVisibility() {\n    this.showConfirmPassword.update(current => !current);\n  }\n\n  goToLogin() {\n    if (this.changePasswordConfig?.loginRoute) {\n      const currentParams = this.activatedRoute.snapshot.queryParams;\n      this.router.navigate([this.changePasswordConfig.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 para cambiar contraseña.',\n        life: 5000,\n      });\n      this.isLoading.set(false);\n      return;\n    }\n\n    if (!this.changePasswordForm.valid) {\n      this.messageService.add({\n        severity: 'error',\n        summary: 'Error',\n        detail: 'Por favor complete correctamente el formulario.',\n        life: 5000,\n      });\n      this.isLoading.set(false);\n      return;\n    }\n\n    const queryParamName = this.changePasswordConfig?.securityCodeQueryParamName || 'code';\n    const securityCode = this.activatedRoute.snapshot.queryParamMap.get(queryParamName) || '';\n\n    if (!securityCode) {\n      this.messageService.add({\n        severity: 'error',\n        summary: 'Código inválido',\n        detail: `No se encontró el código de seguridad en el parámetro \"${queryParamName}\".`,\n        life: 5000,\n      });\n      this.isLoading.set(false);\n      return;\n    }\n\n    const payload: ChangePasswordRequest = {\n      securityCode,\n      password: this.changePasswordForm.value.password ?? '',\n      confirmPassword: this.changePasswordForm.value.confirmPassword ?? '',\n    };\n\n    this.authService.changePassword(payload).subscribe({\n      next: () => {\n        this.isLoading.set(false);\n        this.messageService.add({\n          severity: 'success',\n          summary: 'Contraseña actualizada',\n          detail: 'La contraseña se actualizó correctamente.',\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 cambiar la contraseña. Intente nuevamente.',\n          life: 5000,\n        });\n        console.error('Change password error:', error);\n      },\n    });\n  }\n}\n","<p-toast></p-toast>\n\n<div class=\"change-page\">\n  <div class=\"change-card\">\n    <div class=\"change-panel change-panel-form\">\n      @if (changePasswordConfig?.logoUrl) {\n        <div class=\"change-logo-wrap\">\n          <img [src]=\"changePasswordConfig?.logoUrl\" class=\"change-logo\" alt=\"logo\" />\n        </div>\n      }\n\n      <h1 class=\"change-title\">{{ changePasswordConfig?.title || 'Cambiar contraseña' }}</h1>\n      <p class=\"change-subtitle\">\n        {{ changePasswordConfig?.subtitle || 'Ingrese y confirme su nueva contraseña.' }}\n      </p>\n\n      <form [formGroup]=\"changePasswordForm\" class=\"change-form fade-in\" (ngSubmit)=\"submit()\">\n        <div class=\"form-group form-group-spaced\">\n          <label for=\"password\" class=\"change-label\">Nueva contraseña *</label>\n          <div class=\"password-field-wrap\">\n            <input\n              id=\"password\"\n              pInputText\n              [type]=\"showPassword() ? 'text' : 'password'\"\n              class=\"input-field change-input change-input-password\"\n              placeholder=\"Ingrese su nueva contraseña\"\n              formControlName=\"password\"\n            />\n            <button type=\"button\" class=\"password-toggle password-toggle-button\" (click)=\"togglePasswordVisibility()\">\n              <i [class]=\"showPassword() ? 'pi pi-eye-slash' : 'pi pi-eye'\"></i>\n            </button>\n          </div>\n        </div>\n\n        <div class=\"form-group form-group-spaced\">\n          <label for=\"confirmPassword\" class=\"change-label\">Repetir contraseña *</label>\n          <div class=\"password-field-wrap\">\n            <input\n              id=\"confirmPassword\"\n              pInputText\n              [type]=\"showConfirmPassword() ? 'text' : 'password'\"\n              class=\"input-field change-input change-input-password\"\n              placeholder=\"Repita su nueva contraseña\"\n              formControlName=\"confirmPassword\"\n            />\n            <button type=\"button\" class=\"password-toggle password-toggle-button\" (click)=\"toggleConfirmPasswordVisibility()\">\n              <i [class]=\"showConfirmPassword() ? 'pi pi-eye-slash' : 'pi pi-eye'\"></i>\n            </button>\n          </div>\n        </div>\n\n        <button\n          type=\"submit\"\n          [class]=\"\n            'change-submit-button ' +\n            (isLoading() || !changePasswordForm.valid\n              ? 'change-submit-button-disabled'\n              : 'change-submit-button-enabled')\n          \"\n          [disabled]=\"isLoading() || !changePasswordForm.valid\"\n        >\n          @if (isLoading()) {\n            <span class=\"loading-inline\">\n              <i class=\"pi pi-spin pi-spinner loading-inline-icon\"></i>\n              Guardando...\n            </span>\n          } @else {\n            <span>{{ changePasswordConfig?.submitLabel || 'Actualizar contraseña' }}</span>\n          }\n        </button>\n\n        @if (changePasswordConfig?.loginRoute) {\n          <div class=\"change-login-row\">\n            <a (click)=\"goToLogin()\" class=\"change-login-link\">Volver al inicio de sesión</a>\n          </div>\n        }\n      </form>\n    </div>\n\n    @if (welcomeContentComponent) {\n      <div class=\"change-panel change-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 { GmpChangePasswordComponent } from './change-password.component';\n\n@NgModule({\n  declarations: [GmpChangePasswordComponent],\n  imports: [\n    CommonModule,\n    FormsModule,\n    ReactiveFormsModule,\n    RouterModule.forChild([{ path: '', component: GmpChangePasswordComponent }]),\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: [GmpChangePasswordComponent],\n})\nexport class GmpChangePasswordModule {\n  constructor() {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}