{"version":3,"file":"vericheck-utils.mjs","sources":["../../../projects/utils/src/lib/core/enums/doucment-type-code.enum.ts","../../../projects/utils/src/lib/core/enums/doucment-type-id.enum.ts","../../../projects/utils/src/lib/core/enums/provider.enum.ts","../../../projects/utils/src/lib/core/interceptors/error.interceptor.ts","../../../projects/utils/src/lib/core/interceptors/response.interceptor.ts","../../../projects/utils/src/lib/core/providers/crypto.service.ts","../../../projects/utils/src/lib/core/providers/storage.service.ts","../../../projects/utils/src/lib/core/providers/logger.service.ts","../../../projects/utils/src/lib/core/providers/translation.service.ts","../../../projects/utils/src/lib/core/providers/bucket-s3.service.ts","../../../projects/utils/src/lib/core/providers/network.service.ts","../../../projects/utils/src/lib/core/interceptors/auth.interceptor.ts","../../../projects/utils/src/lib/core/utils/form.presenter.ts","../../../projects/utils/src/lib/core/validators/email.validator.ts","../../../projects/utils/src/lib/core/validators/phone.validator.ts","../../../projects/utils/src/lib/core/validators/ruc.validator.ts","../../../projects/utils/src/lib/core/constants/messages-validators.ts","../../../projects/utils/src/lib/core/functions/create-file.ts","../../../projects/utils/src/lib/core/functions/create-new-filename.ts","../../../projects/utils/src/lib/shared/controls/email.control.ts","../../../projects/utils/src/lib/shared/controls/match.control.ts","../../../projects/utils/src/lib/shared/controls/phone.control.ts","../../../projects/utils/src/lib/shared/controls/required.control.ts","../../../projects/utils/src/lib/shared/controls/ruc.control.ts","../../../projects/utils/src/lib/shared/directives/click-outside.directive.ts","../../../projects/utils/src/lib/shared/directives/reactive-document-validate.directive.ts","../../../projects/utils/src/lib/shared/directives/reactive-form-selection.directive.ts","../../../projects/utils/src/lib/shared/directives/reactive-form.directive.ts","../../../projects/utils/src/lib/shared/directives/sticky-shadow.directive.ts","../../../projects/utils/src/lib/shared/guards/auth.guard.ts","../../../projects/utils/src/lib/shared/guards/no-auth.guard.ts","../../../projects/utils/src/lib/shared/components/dialog/directives/dialog.directive.ts","../../../projects/utils/src/lib/shared/components/dialog/core/dialog-config.ts","../../../projects/utils/src/lib/shared/components/dialog/core/dialog-injector.ts","../../../projects/utils/src/lib/shared/components/dialog/core/dialog-ref.ts","../../../projects/utils/src/lib/shared/components/dialog-content/dialog-content.component.ts","../../../projects/utils/src/lib/shared/components/dialog-content/dialog-content.component.html","../../../projects/utils/src/lib/shared/components/dialog/dialog.component.ts","../../../projects/utils/src/lib/shared/components/dialog/dialog.component.html","../../../projects/utils/src/lib/shared/components/dialog/providers/dialog.service.ts","../../../projects/utils/src/lib/shared/components/dialog/enums/dialog-size.enum.ts","../../../projects/utils/src/lib/shared/components/toast/toast.component.ts","../../../projects/utils/src/lib/shared/components/toast/toast.component.html","../../../projects/utils/src/lib/shared/components/toast/providers/toat.service.ts","../../../projects/utils/src/lib/shared/pipes/bypass-security-trust-html.pipe.ts","../../../projects/utils/src/lib/shared/pipes/translate.pipe.ts","../../../projects/utils/src/lib/shared/pipes/time-ago.pipe.ts","../../../projects/utils/src/lib/shared/pipes/document-type.pipe.ts","../../../projects/utils/src/public-api.ts","../../../projects/utils/src/vericheck-utils.ts"],"sourcesContent":["export enum DocumentTypeCode {\n    DNI = 'DNI',\n    CEX = 'CEX'\n}","export enum DocumentTypeId {\n    DNI = 1,\n    CEX = 4\n}","export enum ProviderType {\n  web = 'web',\n  backoffice = 'backoffice',\n}\n","import { HttpErrorResponse, HttpEvent, HttpHandlerFn, HttpRequest } from '@angular/common/http';\nimport { catchError, Observable, throwError } from 'rxjs';\n\nexport function errorInterceptor(\n  req: HttpRequest<unknown>,\n  next: HttpHandlerFn\n): Observable<HttpEvent<unknown>> {\n  return next(req).pipe(\n    catchError((error: HttpErrorResponse) => {\n        \n        return throwError(() => error.error);\n    })\n  );\n}\n","import {\n  HttpEvent,\n  HttpHandlerFn,\n  HttpRequest,\n  HttpResponse,\n} from '@angular/common/http';\nimport { map, Observable } from 'rxjs';\n\nexport function responseInterceptor(\n  req: HttpRequest<unknown>,\n  next: HttpHandlerFn\n): Observable<HttpEvent<unknown>> {\n  return next(req).pipe(\n    map((event: HttpEvent<any>) => {\n      // Interceptar solo respuestas exitosas del tipo HttpResponse\n      if (event instanceof HttpResponse) {\n        // Aquí puedes mapear o transformar la respuesta\n        const mappedBody = event.body.body ?? event.body;\n\n        // Retorna una nueva respuesta con el cuerpo transformado\n        return event.clone({ body: mappedBody });\n      }\n      return event;\n    })\n  );\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport * as CryptoJS from 'crypto-js';\n\nexport interface ICryptoData {\n  key: string;\n}\n\nexport const ENCRYPT_DATA = new InjectionToken<ICryptoData>('encryptData', {\n  providedIn: 'root',\n  factory: () => ({} as ICryptoData),\n});\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CryptoService {\n  /**\n   * Creates an instance of CryptoService.\n   * @param {ICryptoData | undefined} encryptData\n   */\n  public constructor(\n    @Optional()\n    @Inject(ENCRYPT_DATA)\n    public encryptData: ICryptoData | undefined\n  ) {}\n\n  /**\n   * Encrypts crypto service\n   * @param {string} data\n   * @returns CryptoJS.lib.CipherParams | string\n   */\n  public encrypt(data: string): CryptoJS.lib.CipherParams | string {\n    if (this.encryptData) {\n      return CryptoJS.AES.encrypt(data, this.encryptData.key);\n    }\n    return data;\n  }\n\n  /**\n   * Decrypts crypto service\n   * @param {string} data\n   * @returns string\n   */\n  public decrypt(data: string): string {\n    if (this.encryptData) {\n      return CryptoJS.AES.decrypt(data, this.encryptData.key).toString(\n        CryptoJS.enc.Utf8\n      );\n    }\n\n    return data;\n  }\n}\n","import { Inject, inject, Injectable } from '@angular/core';\nimport { CryptoService } from './crypto.service';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class StorageService {\n  /**\n   * Storage  of storage service\n   */\n  storage?: Storage;\n\n  /**\n   * Crypto service of storage service\n   */\n  cryptoService = inject(CryptoService);\n\n  constructor(@Inject(DOCUMENT) private document: Document) {\n    const window = this.document.defaultView;\n    if (window) {\n      this.storage = window.sessionStorage;\n    }\n  }\n\n  /**\n   * Sets storage service\n   * @template T\n   * @param {string} key\n   * @param {T} value\n   */\n  set<T>(key: string, value: T) {\n    const encryptMessage = this.cryptoService.encrypt(\n      typeof value !== 'string' ? JSON.stringify(value) : value\n    );\n\n    this.storage?.setItem(key, encryptMessage.toString());\n  }\n\n  /**\n   * Gets storage service\n   * @template T\n   * @param {StorageNameType | string} key\n   * @returns T | null\n   */\n  get<T>(key: string): T | null {\n    const sessionStorageData = this.storage?.getItem(key);\n\n    if (sessionStorageData) {\n      const value = this.cryptoService.decrypt(sessionStorageData);\n      try {\n        const decryptMessage = JSON.parse(value);\n        return decryptMessage as T;\n      } catch (error) {\n        return value as T;\n      }\n    }\n\n    return null;\n  }\n\n  /**\n   * Removes storage service\n   * @param {string} key\n   */\n  remove(key: string) {\n    this.storage?.removeItem(key);\n  }\n\n  /**\n   * Clears storage service\n   */\n  clear() {\n    this.storage?.clear();\n  }\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\n/**\n * Configuración para el LoggerService.\n * @interface\n */\nexport interface ILoggerConfig {\n  /** Indica si el logger está habilitado. */\n  isEnabled: boolean;\n  /** Prefijo opcional para los mensajes del logger. */\n  prefix?: string;\n}\n\n/**\n * Token de inyección para la configuración del logger.\n */\nexport const LOGGER_CONFIG = new InjectionToken<ILoggerConfig>('loggerConfig', {\n  providedIn: 'root',\n  factory: () => ({ isEnabled: true }),\n});\n\n/**\n * Servicio para el registro de logs en la aplicación.\n * Permite controlar el nivel y formato de los mensajes de log.\n * @export\n */\n@Injectable({\n  providedIn: 'root',\n})\nexport class LoggerService {\n  /**\n   * Indica si el logger está habilitado.\n   * @private\n   */\n  private isEnabled: boolean;\n\n  /**\n   * Prefijo para los mensajes del logger.\n   * @private\n   */\n  private prefix: string;\n\n  /**\n   * Crea una nueva instancia de LoggerService.\n   * @param {ILoggerConfig} config Configuración opcional para el logger.\n   */\n  constructor(\n    @Optional()\n    @Inject(LOGGER_CONFIG)\n    config: ILoggerConfig\n  ) {\n    this.isEnabled = config?.isEnabled ?? true;\n    this.prefix = config?.prefix ?? 'Logger';\n  }\n\n  /**\n   * Habilita el logger.\n   * @public\n   */\n  enable(): void {\n    this.isEnabled = true;\n  }\n\n  /**\n   * Deshabilita el logger.\n   * @public\n   */\n  disable(): void {\n    this.isEnabled = false;\n  }\n\n  /**\n   * Registra un mensaje de tipo log.\n   * @param {...unknown[]} args Argumentos a registrar.\n   * @public\n   */\n  log(...args: unknown[]): void {\n    if (this.isEnabled) {\n      console.log(...this.formatMessage('LOG', ...args));\n    }\n  }\n\n  /**\n   * Registra un mensaje de tipo error.\n   * @param {...unknown[]} args Argumentos a registrar.\n   * @public\n   */\n  error(...args: unknown[]): void {\n    if (this.isEnabled) {\n      console.error(...this.formatMessage('ERROR', ...args));\n    }\n  }\n\n  /**\n   * Registra un mensaje de tipo advertencia.\n   * @param {...unknown[]} args Argumentos a registrar.\n   * @public\n   */\n  warn(...args: unknown[]): void {\n    if (this.isEnabled) {\n      console.warn(...this.formatMessage('WARN', ...args));\n    }\n  }\n\n  /**\n   * Registra un mensaje de tipo información.\n   * @param {...unknown[]} args Argumentos a registrar.\n   * @public\n   */\n  info(...args: unknown[]): void {\n    if (this.isEnabled) {\n      console.info(...this.formatMessage('INFO', ...args));\n    }\n  }\n\n  /**\n   * Registra un mensaje de tipo debug.\n   * @param {...unknown[]} args Argumentos a registrar.\n   * @public\n   */\n  debug(...args: unknown[]): void {\n    if (this.isEnabled) {\n      console.debug(...this.formatMessage('DEBUG', ...args));\n    }\n  }\n\n  /**\n   * Da formato a los mensajes de log.\n   * @param {string} level Nivel del mensaje.\n   * @param {...unknown[]} args Argumentos a formatear.\n   * @returns {unknown[]} Mensaje formateado.\n   * @private\n   */\n  private formatMessage(level: string, ...args: unknown[]): unknown[] {\n    const color = this.getColor(level);\n    return [`%c[${this.prefix} - ${level}]`, `color: ${color}; font-weight: bold;`, ...args];\n  }\n\n  /**\n   * Obtiene el color correspondiente al nivel del mensaje.\n   * @param {string} level Nivel del mensaje.\n   * @returns {string} Color CSS.\n   * @private\n   */\n  private getColor(level: string): string {\n    switch (level) {\n      case 'ERROR':\n        return 'red';\n      case 'WARN':\n        return 'orange';\n      case 'INFO':\n        return 'blue';\n      case 'DEBUG':\n        return 'purple';\n      default:\n        return 'black';\n    }\n  }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable, signal, WritableSignal } from '@angular/core';\nimport { Observable, tap } from 'rxjs';\n\nexport interface Translation {\n  [key: string]: any;\n}\n@Injectable({\n  providedIn: 'root',\n})\nexport class TranslationService {\n  /**\n   * Http  of translation service\n   */\n  http = inject(HttpClient);\n  /**\n   * Translations  of translation service\n   */\n  translations: WritableSignal<Translation> = signal({});\n  /**\n   * Loads translations\n   * @returns Observable<Translation>\n   */\n  loadTranslations(): Observable<Translation> {\n    return this.http.get<Translation>('/i18n/es.json').pipe(\n      tap((data) => {\n        this.translations.set(data);\n      })\n    );\n  }\n  /**\n   * Gets translation\n   * @template T\n   * @param {string} key\n   * @returns T\n   */\n  getTranslation<T = string | string[]>(key: string): T {\n    const value = key\n      .split('.')\n      .reduce((obj, keyPart) => obj?.[keyPart], this.translations());\n\n    return value as T;\n  }\n}\n","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport {\n  PutObjectCommand,\n  PutObjectCommandInput,\n  S3Client,\n} from '@aws-sdk/client-s3';\nimport { from } from 'rxjs';\nimport { LoggerService } from './logger.service';\n\nexport interface IBucketS3Config {\n  accessKeyId: string;\n  secretAccessKey: string;\n  region: string;\n  bucket: string;\n}\n\nexport const BUCKET_S3_CONFIG = new InjectionToken<IBucketS3Config>(\n  'bucketS3Config',\n  {\n    providedIn: 'root',\n    factory: () => ({} as IBucketS3Config),\n  }\n);\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class BucketS3Service {\n  /**\n   * Bucket s3 config of bucket s3 service\n   */\n  bucketS3Config = inject(BUCKET_S3_CONFIG);\n  /**\n   * Logger  of bucket s3 service\n   */\n  logger = inject(LoggerService);\n  /**\n   * Bucket  of bucket s3 service\n   */\n  bucket: S3Client;\n  /**\n   * Creates an instance of bucket s3 service.\n   */\n  constructor() {\n    this.logger.debug('bucketS3Config', this.bucketS3Config);\n    this.bucket = new S3Client({\n      credentials: {\n        accessKeyId: this.bucketS3Config.accessKeyId,\n        secretAccessKey: this.bucketS3Config.secretAccessKey,\n      },\n      region: this.bucketS3Config.region,\n    });\n    this.logger.debug('bucket', this.bucket);\n  }\n  /**\n   * Uploads bucket s3 service\n   * @param {File} file\n   * @param {string} folder\n   */\n  upload(file: File, folder: string) {\n    // Crear el comando para subir el archivo\n    const command = new PutObjectCommand({\n      Bucket: this.bucketS3Config.bucket,\n      Key: file.name, // El nombre del archivo en S3\n      Body: file, // El archivo que se va a subir\n      ContentType: file.type, // Tipo de contenido\n    });\n\n    this.logger.debug('command', command);\n\n    return from(this.bucket.send(command));\n  }\n}\n","import { inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { isPlatformBrowser } from '@angular/common';\nimport { BehaviorSubject, fromEvent, map, merge, startWith } from 'rxjs';\n\n/**\n * Servicio para gestionar el estado de la red y la navegación basada en la conectividad.\n * @class NetworkService\n * @description Escucha los cambios en el estado de la red y navega a rutas específicas según la conectividad.\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class NetworkService {\n  /** @private {PLATFORM_ID} Identificador del entorno de ejecución */\n  private readonly platformId = inject(PLATFORM_ID);\n\n  /** @private {BehaviorSubject<boolean>} Sujeto para el estado de conexión en línea */\n  private readonly onlineSubject = new BehaviorSubject<boolean>(true);\n\n  /** @public {Observable<boolean>} Observable para el estado de conexión en línea */\n  public readonly online$ = this.onlineSubject.asObservable();\n\n  /** @private {Router} Servicio de enrutamiento para navegar entre rutas */\n  private router = inject(Router);\n\n  /**\n   * Constructor de la clase NetworkService.\n   * Inicializa la escucha de cambios en el estado de la red solo en el navegador.\n   */\n  constructor() {\n    if (isPlatformBrowser(this.platformId)) {\n      this.listenToNetwork();\n      this.listenToVisibility();\n    }\n  }\n\n  /**\n   * Escucha los eventos de cambio de estado de la red y actualiza el sujeto online.\n   * Solo se activa si la página está visible.\n   * @private\n   */\n  private listenToNetwork() {\n    const offline$ = fromEvent(window, 'offline').pipe(map(() => false));\n    const online$ = fromEvent(window, 'online').pipe(map(() => true));\n\n    merge(offline$, online$)\n      .pipe(startWith(navigator.onLine))\n      .subscribe((isOnline) => {\n        if (document.visibilityState === 'visible') {\n          this.handleNetworkChange(isOnline);\n        }\n      });\n  }\n\n  /**\n   * Monitorea la visibilidad de la pestaña y verifica el estado de la red.\n   * @private\n   */\n  private listenToVisibility() {\n    document.addEventListener('visibilitychange', () => {\n      if (document.visibilityState === 'visible') {\n        this.checkConnection();\n      }\n    });\n  }\n\n  /**\n   * Verifica manualmente el estado de la conexión y navega si es necesario.\n   * @private\n   */\n  private checkConnection() {\n    const isOnline = navigator.onLine;\n    this.handleNetworkChange(isOnline);\n  }\n\n  /**\n   * Maneja el cambio de estado de la red.\n   * @private\n   * @param isOnline Estado de la conexión (true: conectado, false: desconectado).\n   */\n  private handleNetworkChange(isOnline: boolean) {\n    this.onlineSubject.next(isOnline);\n    if (!isOnline) {\n      this.router.navigate(['/without-internet-connection']);\n    } else {\n      if (this.router.url === '/without-internet-connection') {\n        this.router.navigate(['/']);\n      }\n    }\n  }\n}\n","import { HttpEvent, HttpHandlerFn, HttpRequest } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { LoggerService, StorageService } from '../providers';\n\nexport function authInterceptor(\n  req: HttpRequest<unknown>,\n  next: HttpHandlerFn\n): Observable<HttpEvent<unknown>> {\n  const logger = inject(LoggerService);\n  const storage = inject(StorageService);\n  const { token } =\n    storage.get<{ token: string }>('guest') ??\n    storage.get<{ token: string }>('auth') ??\n    {};\n  \n  if (token) {\n    const clonedReq = req.clone({\n      headers: req.headers.set('Authorization', `Bearer ${token}`),\n    });\n    return next(clonedReq);\n  }\n\n  return next(req);\n}\n","import { FormBuilder, FormGroup } from '@angular/forms';\n\nexport class FormPresenter<T extends { [key: string]: any; }> {\n  /**\n   * Form  of form presenter\n   */\n  form!: FormGroup;\n  /**\n   * Determines whether inalid is\n   * @returns boolean\n   */\n  get isInvalid(): boolean {\n    return this.form.invalid;\n  }\n  /**\n   * Determines whether valid is\n   * @returns boolean\n   */\n  get isValid(): boolean {\n    return this.form.valid;\n  }\n  /**\n   * Gets value\n   * @returns T\n   */\n  get value(): T {\n    return this.form.value;\n  }\n\n  set value(value: T) {\n    this.form.patchValue({ ...value });\n  }\n  /**\n   * Creates an instance of form presenter.\n   * @param {FormBuilder} fb\n   */\n  constructor(private fb: FormBuilder) {}\n  /**\n   * Initializes form presenter\n   * @template A\n   * @param {A} controls\n   */\n  initialize<A extends {}>(controls: A) {\n    this.form = this.fb.group(controls);\n  }\n  /**\n   * Resets form presenter\n   * @param {any} [value]\n   * @param {{ onlySelf?: boolean;emitEvent?: boolean; }} [options]\n   */\n  reset(\n    value?: any,\n    options?: {\n      onlySelf?: boolean;\n      emitEvent?: boolean;\n    }\n  ) {\n    this.form.reset(value, options);\n  }\n  /**\n   * Gets raw value\n   * @returns T\n   */\n  get rawValue(): T {\n    return this.form.getRawValue();\n  }\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport const EmailValidator = (\n  control: AbstractControl\n): ValidationErrors | null => {\n  const value = control.value;\n\n  if (\n    !value ||\n    /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/.test(value)\n  ) {\n    return null;\n  }\n\n  return { email: true };\n};\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\nexport const PhoneValidator = (\n  control: AbstractControl\n): ValidationErrors | null => {\n  if (!control.value) {\n    return null;\n  }\n\n  const phoneRegex = /^9\\d{8}$/;\n  const isValid = phoneRegex.test(control.value);\n\n  return isValid ? null : { invalidPhone: { value: control.value } };\n};\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\n/**\n * Rucs validator\n * @returns ValidatorFn\n */\nexport function rucValidator(): ValidatorFn {\n  const getInvalid = (idx: number, iaux: Array<number>) => {\n    let invalid = true;\n\n    if (idx === 10 && iaux[11] === 0) {\n      invalid = false;\n    }\n    if (idx === 11 && iaux[11] === 1) {\n      invalid = false;\n    }\n    if (idx === iaux[11]) {\n      invalid = false;\n    }\n\n    return invalid;\n  };\n\n  return (control: AbstractControl) => {\n    if (control.value) {\n      const iaux = new Array<number>();\n\n      for (let iContA = 1; iContA <= 11; ++iContA) {\n        iaux[iContA] = +control.value.substr(iContA - 1, 1);\n      }\n\n      iaux[1] = iaux[1] * 5;\n      iaux[2] = iaux[2] * 4;\n      iaux[3] = iaux[3] * 3;\n      iaux[4] = iaux[4] * 2;\n      iaux[5] = iaux[5] * 7;\n      iaux[6] = iaux[6] * 6;\n      iaux[7] = iaux[7] * 5;\n      iaux[8] = iaux[8] * 4;\n      iaux[9] = iaux[9] * 3;\n      iaux[10] = iaux[10] * 2;\n\n      let iA = 0;\n      for (let iContB = 1; iContB <= 10; ++iContB) {\n        iA = iA + iaux[iContB];\n      }\n\n      const ibx: number = parseInt((iA / 11).toString());\n      const icx: number = iA - ibx * 11;\n      const idx: number = 11 - icx;\n\n      if (getInvalid(idx, iaux)) {\n        return { rucInvalid: true };\n      }\n    }\n\n    return null;\n  };\n}\n","export const MessagesValidators = {\n  required: () => 'Campo obligatorio.',\n  email: () => 'El correo electrónico no es válido.',\n  minlength: (validatorValue?: { requiredLength: number }) =>\n    `Este campo debe tener al menos ${validatorValue?.requiredLength} caracteres.`,\n  maxlength: (validatorValue?: { requiredLength: number }) =>\n    `Este campo no puede exceder los ${validatorValue?.requiredLength} caracteres.`,\n  min: (validatorValue?: { min: number }) =>\n    `El valor debe ser mayor o igual a ${validatorValue?.min}.`,\n  max: (validatorValue?: { max: number }) =>\n    `El valor debe ser menor o igual a ${validatorValue?.max}.`,\n  pattern: () => 'El formato del campo no es válido.',\n  customError: (validatorValue?: { name: string; type: string }) =>\n    `Error personalizado: ${validatorValue?.name} (${validatorValue?.type}).`,\n  maxAmount: (validatorValue?: { maxAmount: number }) =>\n    `El monto no puede exceder ${validatorValue?.maxAmount}.`,\n  rucInvalid: () => 'El número de RUC ingresado no es válido.',\n  invalidPhone: () => 'El número de celular ingresado no es correcto.',\n  invalidDNI: () => 'Número de DNI inválido.',\n  invalidCE: () => 'Número de carné de extranjería inválido.',\n};\n","export function createFile(bits: any, name: string, typeFile: string): any {\n  try {\n    // If this call fails, we go for Blob\n    return new File(bits, name, {\n      lastModified: new Date().getTime(),\n      type: typeFile,\n    });\n  } catch (e) {\n    // If we reach this point a new File could not be constructed\n    const myBlob: any = new Blob(bits);\n    // eslint-disable-next-line\n    myBlob['lastModified'] = new Date();\n    // tslint:disable-next-line\n    myBlob['name'] = name;\n\n    return myBlob;\n  }\n}\n","export function createNewFilename(file: File, uuid: string) {\n  const ext = file?.name?.split('.').pop();\n\n  return {\n    id: uuid,\n    name: `${uuid}.${ext}`,\n  };\n}\n","import { FormControl, Validators } from '@angular/forms';\nimport { EmailValidator } from '../../core/validators';\n\nexport class EmailControl extends FormControl {\n  public constructor(maxLength: number | null = 40, required: boolean = true) {\n    super('', []);\n\n    this.createValidators(required, maxLength);\n  }\n\n  private createValidators(required: boolean, maxLength: number | null) {\n    const validators = [\n        EmailValidator,\n    ];\n\n    if (required) {\n      validators.push(Validators.required);\n    }\n\n    if (maxLength) {\n      validators.push(Validators.maxLength(maxLength));\n    }\n\n    this.setValidators(Validators.compose(validators));\n  }\n}\n","import { FormControl, ValidatorFn, AbstractControl, ValidationErrors } from '@angular/forms';\n\n/**\n * Control que valida que su valor coincida con el de otro control.\n * Útil para casos como \"Repetir contraseña\".\n */\nexport class MatchControl extends FormControl {\n  /**\n   * \n   * @param matchToControl El control con el que debe coincidir el valor.\n   * @param errorMessage Mensaje de error personalizado (opcional).\n   * @param formState Estado inicial del control (opcional).\n   */\n  constructor(\n    private matchToControl: AbstractControl,\n    private errorMessage: string = 'Los valores no coinciden',\n    formState: any = ''\n  ) {\n    super(formState, []);\n    this.setValidators(this.matchValidator());\n    // Escuchar cambios en el control de referencia para revalidar\n    this.matchToControl.valueChanges.subscribe(() => {\n      this.updateValueAndValidity();\n    });\n  }\n\n  /**\n   * Validador que compara el valor de este control con el de matchToControl.\n   */\n  private matchValidator(): ValidatorFn {\n    return (control: AbstractControl): ValidationErrors | null => {\n      if (control.value !== this.matchToControl.value) {\n        return { match: this.errorMessage };\n      }\n      return null;\n    };\n  }\n}","import { FormControl, Validators } from \"@angular/forms\";\nimport { PhoneValidator } from \"../../core\";\n\nexport class PhoneControl extends FormControl {\n    public constructor(maxLength: number | null = 15, required: boolean = true) {\n      super('', []);\n  \n      this.createValidators(required, maxLength);\n    }\n  \n    private createValidators(required: boolean, maxLength: number | null) {\n      const validators = [\n        PhoneValidator,\n      ];\n  \n      if (required) {\n        validators.push(Validators.required);\n      }\n  \n      if (maxLength) {\n        validators.push(Validators.maxLength(maxLength));\n      }\n  \n      this.setValidators(Validators.compose(validators));\n    }\n  }\n  ","import { FormControl, Validators } from '@angular/forms';\n\nexport class RequiredControl extends FormControl {\n  public constructor(value?: any) {\n    super(value ?? '', []);\n\n    this.createValidators();\n  }\n\n  private createValidators() {\n    this.setValidators(Validators.required);\n  }\n}\n","import { FormControl, ValidatorFn, Validators } from '@angular/forms';\nimport { rucValidator } from '../../core';\n\n/**\n * Get Validators\n * @param {boolean} required\n * @returns Array<ValidatorFn>\n */\nfunction validators(required: boolean): Array<ValidatorFn> {\n  const validators = [];\n\n  validators.push(rucValidator());\n  validators.push(Validators.maxLength(11));\n  validators.push(Validators.minLength(11));\n\n  if (required) {\n    validators.push(Validators.required);\n  }\n\n  return validators;\n}\n/**\n * Controlador para un formulario que espera validar un número de RUC.\n * Por defecto, añade los validadores de Maxlength = 11 y Minlength = 11, más\n * el validador de RUC.\n *\n */\nexport class RucControl extends FormControl {\n  /**\n   * Creates an instance of ruc control.\n   * @param [required] boolean\n   */\n  constructor(required = true) {\n    super('', validators(required));\n  }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n  Directive,\n  ElementRef,\n  HostListener,\n  Inject,\n  inject,\n  OnDestroy,\n  output,\n  PLATFORM_ID,\n} from '@angular/core';\n\n@Directive({\n  selector: '[clickOutside]',\n  standalone: true,\n})\nexport class ClickOutsideDirective implements OnDestroy {\n  /**\n   * Outside  of click outside directive\n   */\n  clickOutside = output<void>();\n  /**\n   * Element ref of click outside directive\n   */\n  elementRef = inject(ElementRef);\n  /**\n   * Observer  of click outside directive\n   */\n  private observer?: IntersectionObserver;\n  /**\n   * Determines whether visible is\n   */\n  private isVisible = false;\n  /**\n   * Creates an instance of click outside directive.\n   */\n  constructor(@Inject(PLATFORM_ID) private platformId: Object) {\n    if (isPlatformBrowser(this.platformId)) {\n      // Configuramos el Intersection Observer para observar la visibilidad del elemento\n      this.observer = new IntersectionObserver((entries) => {\n        entries.forEach((entry) => {\n          this.isVisible = entry.isIntersecting; // Almacena el estado de visibilidad\n        });\n      });\n\n      // Inicia la observación del elemento\n      this.observer.observe(this.elementRef.nativeElement);\n    }\n  }\n  /**\n   * Hosts listener\n   * @param {HTMLElement} targetElement\n   */\n  @HostListener('document:click', ['$event.target'])\n  onClick(targetElement: HTMLElement): void {\n    const clickedInside = this.elementRef.nativeElement.contains(targetElement);\n\n    if (!clickedInside && this.isVisible) {\n      this.clickOutside.emit();\n    }\n  }\n  /**\n   * on destroy\n   */\n  ngOnDestroy(): void {\n    // Desconecta el observador cuando la directiva se destruye\n    this.observer?.disconnect();\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  forwardRef,\n  Injector,\n  input,\n  OnChanges,\n  Renderer2,\n  SimpleChanges,\n} from '@angular/core';\nimport {\n  AbstractControl,\n  NG_VALIDATORS,\n  ValidationErrors,\n} from '@angular/forms';\nimport { DocumentTypeId } from '../../core/enums';\n\n@Directive({\n  selector: '[vcpReactiveDocumentValidate]',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => ReactiveDocumentValidateDirective),\n      multi: true,\n    },\n  ],\n})\nexport class ReactiveDocumentValidateDirective implements OnChanges {\n  set hostMaxlength(value: any) {\n    this.renderer.setProperty(\n      this.elementRef.nativeElement,\n      'maxlength',\n      value\n    );\n  }\n\n  set hostType(value: 'numeric' | 'alphanumeric') {\n    this.renderer.setProperty(this.elementRef.nativeElement, 'type', value);\n  }\n\n  documentType = input<DocumentTypeId>();\n\n  constructor(private renderer: Renderer2, private elementRef: ElementRef) {\n    //\n  }\n  ngOnChanges(changes: SimpleChanges): void {\n    const value = changes['documentType'].currentValue;\n    \n    if (value === DocumentTypeId.DNI) {\n      this.hostMaxlength = 8;\n      this.hostType = 'numeric';\n    } else if (value === DocumentTypeId.CEX) {\n      this.hostMaxlength = 9;\n      this.hostType = 'alphanumeric';\n    }\n  }\n\n  validate(control: AbstractControl): ValidationErrors | null {\n    const type = this.documentType();\n\n    if (type) {\n      const validatorFn = this.getValidator(type);\n\n      return validatorFn ? validatorFn(control) : null;\n    }\n\n    return null;\n  }\n\n  getValidator(documentType: DocumentTypeId) {\n    switch (documentType) {\n      case DocumentTypeId.DNI:\n        this.hostMaxlength = 8;\n        this.hostType = 'numeric';\n        return this.dniValidator;\n      case DocumentTypeId.CEX:\n        this.hostMaxlength = 9;\n        this.hostType = 'alphanumeric';\n        return this.ceValidator;\n      default:\n        return null;\n    }\n  }\n\n  dniValidator(control: AbstractControl): ValidationErrors | null {\n    const value = control.value || '';\n    const isValid = /^[0-9]{8}$/.test(value); // DNI: 8 dígitos\n    return isValid ? null : { invalidDNI: true };\n  }\n\n  ceValidator(control: AbstractControl): ValidationErrors | null {\n    const value = control.value || '';\n    const isValid = /^[A-Z0-9]{9}$/.test(value); // Carnet de extranjería: 9 alfanuméricos\n    return isValid ? null : { invalidCE: true };\n  }\n}\n","import {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  forwardRef,\n  HostListener,\n  Injector,\n  input,\n  OnDestroy,\n  OnInit,\n  Renderer2,\n} from '@angular/core';\nimport {\n  AbstractControl,\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR,\n  NgControl,\n} from '@angular/forms';\n\ntype ElementType = 'vcp-checkbox' | 'vcp-radio' | 'vcp-checkbox-card' | 'vcp-radio-card';\ninterface ValueChangeEvent {\n  detail: {\n    value: any;\n    checked?: boolean;\n  };\n}\n\n@Directive({\n  selector: '[vcpReactiveSelectionForm]',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => ReactiveSelectionFormDirective),\n      multi: true,\n    },\n  ],\n})\nexport class ReactiveSelectionFormDirective\n  implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor\n{\n  multiple = input<boolean>(false);\n\n  private control: AbstractControl | null = null;\n  private elementType: ElementType | null = null;\n  private initialized = false;\n  private isCheckbox = false;\n\n  onChange: (value: any) => void = () => {};\n  onTouched: () => void = () => {};\n\n  constructor(\n    private renderer: Renderer2,\n    private elementRef: ElementRef<any>,\n    private injector: Injector\n  ) {}\n\n  @HostListener('valueChange', ['$event'])\n  onValueChange(event: ValueChangeEvent): void {\n    if (!this.elementType || !this.initialized || !this.control) return;\n\n    const value = event.detail.value;\n    const checked = event.detail.checked ?? false;\n\n    if (this.isCheckbox && this.multiple()) {\n      const currentValues = Array.isArray(this.control.value) ? this.control.value : [];\n      if (checked) {\n        this.onChange([...currentValues, value]);\n      } else {\n        this.onChange(currentValues.filter(v => v !== value));\n      }\n    } else if (this.isCheckbox) {\n      this.onChange(value ?? checked);\n    } else {\n      this.onChange(value ?? null);\n    }\n    \n    this.onTouched();\n  }\n\n  ngOnInit(): void {\n    const element = this.elementRef.nativeElement;\n    const tagName = element.tagName.toLowerCase();\n\n    if (\n      [\n        'vcp-radio-card',\n        'vcp-checkbox-card',\n        'vcp-checkbox',\n        'vcp-radio',\n      ].includes(tagName)\n    ) {\n      this.elementType = tagName as ElementType;\n      this.isCheckbox = tagName === 'vcp-checkbox' || tagName === 'vcp-checkbox-card';\n    }\n  }\n\n  writeValue(value: any): void {\n    if (!this.elementType) return;\n\n    const element = this.elementRef.nativeElement;\n    \n    if (this.isCheckbox && this.multiple()) {\n      const values = Array.isArray(value) ? value : [];\n      element.checked = values.includes(element.value);\n    } else if (this.isCheckbox) {\n      if (typeof value === 'boolean') {\n        element.checked = value;\n      } else {\n        element.checked = element.value === value;\n      }\n    } else {\n      element.checked = element.value === value;\n    }\n  }\n\n  ngAfterViewInit(): void {\n    if (!this.elementType) return;\n\n    const ngControl = this.injector.get(NgControl, null);\n    if (ngControl) {\n      this.control = ngControl.control;\n      this.setHostName(ngControl.name);\n      this.writeValue(this.control?.value);\n      this.initialized = true;\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.onChange = () => {};\n    this.onTouched = () => {};\n  }\n\n  registerOnChange(fn: (value: any) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.renderer.setProperty(\n      this.elementRef.nativeElement,\n      'disabled',\n      isDisabled\n    );\n  }\n\n  private setHostName(name: any | null): void {\n    if (name) {\n      this.renderer.setProperty(this.elementRef.nativeElement, 'name', name);\n    }\n  }\n}\n","import {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  forwardRef,\n  HostListener,\n  Injector,\n  Renderer2,\n} from '@angular/core';\nimport {\n  AbstractControl,\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR,\n  NgControl,\n} from '@angular/forms';\nimport { MessagesValidators } from '../../core';\n\n@Directive({\n  selector: '[vcpReactiveForm]',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => ReactiveFormDirective),\n      multi: true,\n    },\n  ],\n})\nexport class ReactiveFormDirective\n  implements ControlValueAccessor, AfterViewInit\n{\n  set hostValue(value: any) {\n    this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\n  }\n\n  set hostDisabled(value: boolean) {\n    this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', value);\n  }\n\n  set hostTextError(value: string | null) {\n    this.renderer.setProperty(\n      this.elementRef.nativeElement,\n      'textError',\n      value\n    );\n  }\n\n  onChange?: (value: unknown) => void;\n  onTouched = () => {\n    //\n  };\n\n  messages: { [validatorName: string]: (validatorValue?: any) => string } =\n    MessagesValidators;\n\n  private control: AbstractControl | null = null;\n\n  constructor(\n    private renderer: Renderer2,\n    private elementRef: ElementRef,\n    private injector: Injector\n  ) {\n    //\n  }\n\n  @HostListener('blurChange')\n  onBlurChange() {\n    this.onTouched();\n  }\n\n  @HostListener('valueChange', ['$event.detail'])\n  onValueChange(value: any) {\n    this.setValue(value);\n  }\n\n  ngAfterViewInit(): void {\n    const ngControl = this.injector.get(NgControl, null);\n    if (ngControl) {\n      this.control = ngControl.control;\n\n      this.control?.statusChanges?.subscribe(() => {\n        this.updateErrorState();\n      });\n\n      // Verificar el estado inicial\n      this.updateErrorState();\n    }\n  }\n\n  /**\n   * Actualiza el mensaje de error basado en el estado del control\n   * Solo se mostrará si el campo ha sido tocado o modificado\n   */\n  updateErrorState() {\n    if (this.control?.invalid && (this.control.touched || this.control.dirty)) {\n      const firstErrorKey = Object.keys(this.control.errors || {})[0];\n      const errorValue = this.control.errors?.[firstErrorKey];\n\n      // Si el valor del error es un string, úsalo directamente como mensaje\n      let errorMessage: string;\n      if (typeof errorValue === 'string') {\n        errorMessage = errorValue;\n      } else if (this.messages[firstErrorKey]) {\n        errorMessage = this.messages[firstErrorKey](errorValue);\n      } else {\n        errorMessage = 'Error desconocido';\n      }\n\n      this.hostTextError = errorMessage;\n    } else {\n      this.hostTextError = null;\n    }\n  }\n\n  writeValue(value: any): void {\n    this.hostValue = value === null ? '' : value;\n    if (this.onChange) {\n      this.onChange(value);\n    }\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState?(isDisabled: boolean): void {\n    this.hostDisabled = isDisabled;\n  }\n\n  setValue(value: any) {\n    this.hostValue = value;\n    this.onChange?.(value);\n    this.onTouched();\n  }\n}\n","import { AfterViewInit, Directive, ElementRef, HostListener, inject, Renderer2 } from '@angular/core';\n\n@Directive({\n  selector: '[appStickyShadow]'\n})\nexport class StickyShadowDirective implements AfterViewInit {\n  private stickyOffsetTop: number = 0;\n  private el = inject(ElementRef);\n  private renderer = inject(Renderer2);\n\n  ngAfterViewInit() {\n    const element = this.el.nativeElement as HTMLElement;\n    this.stickyOffsetTop = element.offsetTop;\n  }\n\n  @HostListener('window:scroll', [])\n  onWindowScroll() {\n    const element = this.el.nativeElement as HTMLElement;\n    const currentScroll = window.pageYOffset || document.documentElement.scrollTop;\n\n    if (currentScroll > this.stickyOffsetTop) {\n      this.renderer.addClass(element, 'sticky-shadow-active');\n    } else {\n      this.renderer.removeClass(element, 'sticky-shadow-active');\n    }\n  }\n\n}\n","import { inject } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\nimport { StorageService } from '../../core';\n\nexport const authGuard: CanActivateFn = (route, state) => {\n  const router = inject(Router);\n  const storage = inject(StorageService);\n\n  if (storage.get('auth')) {\n    router.navigate(['/portal']);\n    return false;\n  }\n\n  return true;\n};\n","import { inject } from '@angular/core';\nimport { CanMatchFn, Router } from '@angular/router';\nimport { StorageService } from '../../core';\n\nexport const noAuthGuard: CanMatchFn = () => {\n  const storage = inject(StorageService);\n  const router = inject(Router);\n\n  if (!storage.get('auth')) {\n    router.navigate(['/login/auth']);\n    return false;\n  }\n\n  return true;\n};\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n  selector: '[dialog]',\n  standalone: true,\n})\nexport class DialogDirective {\n  constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import { DialogSize } from '../enums';\n\nexport class DialogConfig<D = unknown> {\n  backdrop?: boolean;\n  type?: 'custom' | 'warning' | 'error' | 'success' | 'info';\n  img?: string;\n  title?: string;\n  message?: string;\n  data?: D;\n  classname?: DialogSize | string;\n  isClosed?: boolean;\n  buttons?: {\n    accept?: string;\n    isAccept?: boolean;\n    exit?: string;\n    isExit?: boolean;\n  }\n}\n","import { Injector } from '@angular/core';\n\nexport class DialogInjector {\n  /**\n   * Creates an instance of roblex injector.\n   * @param _parentInjector Injector\n   * @param _additionalTokens WeakMap<any, any>\n   */\n  public constructor(\n    public _parentInjector: Injector,\n    public _additionalTokens: WeakMap<any, any>\n  ) {}\n  /**\n   * Gets neyhaz modal injector\n   * @param {any} token\n   * @param {any | undefined} notFoundValue\n   * @returns any\n   */\n  public get(token: any, notFoundValue?: any) {\n    const value = this._additionalTokens.get(token);\n\n    if (value) {\n      return value;\n    }\n\n    return this._parentInjector.get<any>(token, notFoundValue);\n  }\n}\n","  import { Observable, Subject } from 'rxjs';\n  import { LoggerService } from '../../../../core';\n\n  export class DialogRef<T = unknown> {\n    /**\n     * After closed of neyhaz modal ref\n     */\n    public afterClosed: Observable<T | undefined>;\n\n    public logger: LoggerService;\n    /**\n     * After closed of neyhaz modal ref\n     */\n    private readonly _afterClosed = new Subject<T | undefined>();\n    /**\n     * Creates an instance of neyhaz modal ref.\n     */\n    public constructor(public name: string, logger: LoggerService) {\n      this.logger = logger;\n      logger.debug('DialogRef creado:', name, this);\n      this.afterClosed = this._afterClosed.asObservable();\n    }\n    /**\n     * Closes janus alert ref\n     * @template T\n     * @param [result] T\n     */\n    public close(result?: T) {\n      this.logger.debug('DialogRef.close() llamado:', this.name, this);\n      this._afterClosed.next(result);\n    }\n  }\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-dialog-content',\n  standalone: true,\n  imports: [],\n  templateUrl: './dialog-content.component.html',\n  styleUrl: './dialog-content.component.scss'\n})\nexport class DialogContentComponent {\n\n}\n","<div class=\"p-6\">\n  <ng-content />\n</div>\n","import {\n  AfterViewInit,\n  Component,\n  ComponentRef,\n  CUSTOM_ELEMENTS_SCHEMA,\n  inject,\n  input,\n  OnDestroy,\n  Type,\n  ViewChild,\n} from '@angular/core';\nimport { DialogDirective } from './directives';\nimport { DialogConfig, DialogRef } from './core';\nimport { LoggerService } from '../../../core';\nimport { DialogContentComponent } from '../dialog-content';\nimport { NgClass } from '@angular/common';\nimport { ClickOutsideDirective } from '../../directives';\n\n@Component({\n  selector: 'app-dialog',\n  imports: [\n    DialogContentComponent,\n    NgClass,\n    DialogDirective,\n    ClickOutsideDirective,\n  ],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\n  templateUrl: './dialog.component.html',\n  styleUrls: ['./dialog.component.scss'],\n})\nexport class DialogComponent implements OnDestroy, AfterViewInit {\n  @ViewChild(DialogDirective, { static: true }) insertion!: DialogDirective;\n\n  uniqueKey = input<number>();\n  component = input<Type<unknown>>();\n  config = input<DialogConfig<unknown>>();\n  dialogRef = inject(DialogRef);\n  logger = inject(LoggerService);\n\n  public componentRef?: ComponentRef<unknown>;\n\n  private static modalStack: DialogComponent[] = [];\n\n  ngOnDestroy(): void {\n    this.logger.debug('DialogComponent destroyed:', [this, this.uniqueKey]);\n    this.destroyComponent();\n    \n    this.removeFromStack();\n  }\n\n  ngAfterViewInit(): void {\n    this.logger.debug('DialogComponent modalStack:', [\n      DialogComponent.modalStack,\n    ]);\n    this.loadChildComponent(this.component());\n    this.addToStack();\n  }\n\n  onClickOutside(): void {\n    if (this.shouldCloseOnBackdropClick()) {\n      this.dialogRef.close();\n    }\n  }\n\n  private loadChildComponent(componentType?: Type<unknown>): void {\n    if (componentType) {\n      const viewContainerRef = this.insertion.viewContainerRef;\n      viewContainerRef.clear();\n      this.componentRef = viewContainerRef.createComponent(componentType);\n    }\n  }\n\n  private destroyComponent(): void {\n    if (this.componentRef) {\n      this.componentRef.destroy();\n    }\n  }\n\n  private addToStack(): void {\n    DialogComponent.modalStack.push(this);\n  }\n\n  private removeFromStack(): void {\n    const index = DialogComponent.modalStack.indexOf(this);\n    if (index > -1) {\n      DialogComponent.modalStack.splice(index, 1);\n    }\n  }\n\n  private shouldCloseOnBackdropClick(): boolean | undefined {\n    const { backdrop } = this.config() ?? {};\n    return (\n      backdrop && DialogComponent.modalStack.length > 0 && this.isTopModal()\n    );\n  }\n\n  private isTopModal(): boolean {\n    return (\n      DialogComponent.modalStack[DialogComponent.modalStack.length - 1] === this\n    );\n  }\n}\n","<div\n  class=\"dialog-wrapper\"\n  aria-labelledby=\"modal-title\"\n  role=\"dialog\"\n  aria-modal=\"true\"\n  [ngClass]=\"config()?.classname ?? {}\"\n>\n  <div class=\"dialog-backdrop\" aria-hidden=\"true\"></div>\n  <div class=\"dialog-container\">\n    <div class=\"dialog-content\">\n      <div class=\"dialog-box\" (clickOutside)=\"onClickOutside()\">\n        <ng-template dialog></ng-template>\n        @if (config()?.type) {\n        <div class=\"dialog-body\">\n          @if (config()?.isClosed) {\n          <button type=\"button\" class=\"dialog-body-closed\">\n            <i class=\"vectofy-close\"></i>\n          </button>\n          } @if(config()?.img) {\n          <div class=\"image-container\">\n            <img [src]=\"config()?.img\" />\n          </div>\n          }\n          <div class=\"icon-container\">\n            @if (config()?.type === 'warning') {\n            <div class=\"icon-wrapper warning\">\n              <i class=\"vectofy-warning\"></i>\n            </div>\n            } @if (config()?.type === 'error') {\n            <div class=\"icon-wrapper error\">\n              <i class=\"vectofy-info\"></i>\n            </div>\n            } @if (config()?.type === 'info') {\n            <div class=\"icon-wrapper info\">\n              <i class=\"vectofy-info\"></i>\n            </div>\n            } @if (config()?.type === 'success') {\n            <div class=\"icon-wrapper success\">\n              <i class=\"vectofy-check-circle\"></i>\n            </div>\n            }\n          </div>\n          <h1 class=\"dialog-title\">{{ config()?.title }}</h1>\n          <p class=\"dialog-message\" [innerHTML]=\"config()?.message\"></p>\n          <div class=\"dialog-actions\">\n            @if (config()?.buttons?.isAccept) {\n            <vcp-button\n              type=\"primary\"\n              [label]=\"config()?.buttons?.accept ?? 'Aceptar'\"\n              size=\"xlg\"\n              (clicked)=\"dialogRef.close(true)\"\n            />\n            } @if (config()?.buttons?.isExit) {\n            <vcp-button\n              [label]=\"config()?.buttons?.exit ?? 'Salir'\"\n              type=\"secondary\"\n              size=\"xlg\"\n              (clicked)=\"dialogRef.close(false)\"\n            />\n            }\n          </div>\n        </div>\n        }\n      </div>\n    </div>\n  </div>\n</div>\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n  ApplicationRef,\n  ComponentRef,\n  createComponent,\n  EmbeddedViewRef,\n  inject,\n  Inject,\n  Injectable,\n  Injector,\n  PLATFORM_ID,\n} from '@angular/core';\nimport { DialogComponent } from '../dialog.component';\nimport { DialogData } from '../interfaces';\nimport { DialogConfig, DialogInjector, DialogRef } from '../core';\nimport { LoggerService } from '../../../../core';\nimport { delay } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class DialogService {\n  /**\n   * Logger  of dialog service\n   */\n  logger = inject(LoggerService);\n  /**\n   * Create  of dialog service\n   */\n  create = createComponent;\n\n  /**\n   * Child unique key of dialog service\n   */\n  childUniqueKey = 0;\n\n  /**\n   * Components references of dialog service\n   */\n  private componentMap = new Map<\n    DialogRef<any>,\n    ComponentRef<DialogComponent>\n  >();\n\n  /**\n   * Creates an instance of dialog service.\n   * @param injector Injector\n   * @param appRef ApplicationRef\n   * @param document\n   */\n  constructor(\n    private injector: Injector,\n    private appRef: ApplicationRef,\n    @Inject(PLATFORM_ID) private platformId: Object,\n    @Inject(DOCUMENT) private document?: Document\n  ) {}\n\n  /**\n   * Shows dialog service\n   * @template T\n   * @param {DialogData<T>} data\n   * @returns DialogRef<unknown>\n   */\n  show<T, U = unknown>(data: DialogData<T>): DialogRef<U> {\n    data = {\n      ...data,\n      config: Object.assign(\n        { backdrop: true, buttons: { isAccept: true, isExit: true } },\n        data.config\n      ),\n    };\n\n    const dialogRef = this.appendComponent<T, U>(data);\n\n    return dialogRef;\n  }\n\n  /**\n   * Appends component\n   * @template T\n   * @param config DialogConfig\n   * @param [componentType] Type<T>\n   * @returns DialogRef<unknown>\n   */\n  appendComponent<T, U>(data: DialogData<T>) {\n    const { dialogRef, componentRef } = this.componentRef<U>(\n      data.config as DialogConfig<U>\n    );\n\n    this.childComponentType<T>(componentRef, data);\n\n    this.appRef.attachView(componentRef.hostView);\n    // Relación única\n    this.componentMap.set(dialogRef, componentRef);\n\n    if (isPlatformBrowser(this.platformId)) {\n      this.document?.body?.append(\n        (<EmbeddedViewRef<any>>componentRef.hostView).rootNodes[0]\n      );\n    }\n\n    dialogRef.afterClosed.pipe(delay(10)).subscribe(() => {\n      this.logger.debug('DialogService removeElement', [\n        componentRef,\n        this.componentMap,\n      ]);\n      const ref = this.componentMap.get(dialogRef);\n      this.removeElement(ref);\n      this.componentMap.delete(dialogRef);\n    });\n\n    return dialogRef;\n  }\n\n  /**\n   * Components ref\n   * @template T\n   * @param config DialogConfig<T>\n   * @returns ref ComponentRef<DialogMainComponent>\n   */\n  componentRef<T>(config: DialogConfig<T>): {\n    dialogRef: DialogRef<T>;\n    componentRef: ComponentRef<DialogComponent>;\n  } {\n    const map = new WeakMap();\n\n    map.set(DialogConfig<T>, config);\n\n    const dialogName = `Modal-${++this.childUniqueKey}`;\n    const dialogRef = new DialogRef<T>(dialogName, this.logger);\n\n    map.set(DialogRef<T>, dialogRef);\n\n    const componentRef = this.create(DialogComponent, {\n      elementInjector: new DialogInjector(this.injector, map),\n      environmentInjector: this.appRef.injector,\n    });\n\n    return { dialogRef, componentRef };\n  }\n\n  /**\n   * Childs component type\n   * @template T\n   * @param componentRef ComponentRef<DialogMainComponent>\n   * @param [componentType] Type<T>\n   * @returns DialogMainComponent\n   */\n  childComponentType<T>(\n    componentRef: ComponentRef<DialogComponent>,\n    data: DialogData<T>\n  ): DialogComponent {\n    const { component, config } = data;\n\n    componentRef.setInput('uniqueKey', ++this.childUniqueKey);\n    componentRef.setInput('config', config);\n\n    if (component) {\n      componentRef.setInput('component', component);\n    }\n\n    return componentRef.instance;\n  }\n\n  /**\n   * Removes element\n   * @param componentRef ComponentRef<DialogMainComponent> | undefined\n   */\n  removeElement(componentRef: ComponentRef<DialogComponent> | undefined): void {\n    if (componentRef) {\n      this.logger.debug(\n        'removeElement',\n        <EmbeddedViewRef<any>>componentRef.hostView\n      );\n      const modalViewRef = (<EmbeddedViewRef<any>>componentRef.hostView)\n        .rootNodes[0] as HTMLElement | undefined;\n\n      if (modalViewRef) {\n        this.appRef.detachView(componentRef.hostView);\n        componentRef.destroy();\n\n        modalViewRef.remove();\n      }\n    }\n  }\n}\n","export enum DialogSize {\n    XL = 'dialog-wrapper--xl',\n    LG = 'dialog-wrapper--lg',\n    MD = 'dialog-wrapper--md',\n  }\n  ","import {\n  Component,\n  CUSTOM_ELEMENTS_SCHEMA,\n  input,\n  signal,\n} from '@angular/core';\n\n@Component({\n  selector: 'app-toast',\n  imports: [],\n  templateUrl: './toast.component.html',\n  styleUrl: './toast.component.scss',\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class ToastComponent {\n  message = input<string>('');\n  title = input<string>('');\n  type = input<'danger-light' | 'success-light' | 'info-light'>(\n    'success-light'\n  );\n}\n","<vcp-toast\n  [type]=\"type()\"\n  [label]=\"title()\"\n  [description]=\"message()\"\n></vcp-toast>\n","import {\n  Injectable,\n  ApplicationRef,\n  ComponentRef,\n  createComponent,\n  EmbeddedViewRef,\n  Inject,\n  Injector,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ToastComponent } from '../toast.component';\nimport { ToastConfig } from '../core';\n\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n  private currentToasts: ComponentRef<ToastComponent>[] = [];\n  private container: HTMLElement | null = null;\n\n  constructor(\n    private appRef: ApplicationRef,\n    private injector: Injector,\n    @Inject(DOCUMENT) private document: Document\n  ) {}\n\n  private ensureContainer() {\n    if (!this.container) {\n      this.container = this.document.createElement('div');\n      this.container.classList.add('toast-container');\n      Object.assign(this.container.style, {\n        position: 'fixed',\n        top: '20px',\n        left: '50%',\n        transform: 'translateX(-50%)',\n        display: 'flex',\n        flexDirection: 'column',\n        gap: '10px',\n        zIndex: '9999',\n        pointerEvents: 'none',\n        width: 'fit-content',\n        minWidth: '343px',\n        maxWidth: '90%',\n        boxSizing: 'border-box',\n      });\n      this.document.body.appendChild(this.container);\n    }\n  }\n\n  show(message: string, config: Partial<ToastConfig> = {}) {\n    this.ensureContainer();\n\n    const toastRef = createComponent(ToastComponent, {\n      elementInjector: this.injector,\n      environmentInjector: this.appRef.injector,\n    });\n\n    toastRef.setInput('message', message);\n    // toastRef.setInput('config', config);\n\n    this.appRef.attachView(toastRef.hostView);\n\n    const domElem = (toastRef.hostView as EmbeddedViewRef<any>)\n      .rootNodes[0] as HTMLElement;\n    domElem.style.pointerEvents = 'auto';\n    this.container?.appendChild(domElem);\n\n    this.currentToasts.push(toastRef);\n\n    setTimeout(() => {\n      const firstToast = this.currentToasts[0]; // NO shift aún\n      if (firstToast) {\n        this.dismiss(firstToast);\n      }\n    }, config.duration ?? 3000);\n  }\n\n  clearAll() {\n    this.currentToasts.forEach((toast) => this.dismiss(toast));\n    this.currentToasts = [];\n  }\n\n  private dismiss(toastRef: ComponentRef<ToastComponent>) {\n    this.appRef.detachView(toastRef.hostView);\n    toastRef.destroy();\n\n    const domElem = (toastRef.hostView as EmbeddedViewRef<any>)\n      .rootNodes[0] as HTMLElement;\n    if (this.container?.contains(domElem)) {\n      this.container.removeChild(domElem);\n    }\n\n    this.currentToasts = this.currentToasts.filter((t) => t !== toastRef);\n\n    if (this.currentToasts.length === 0 && this.container) {\n      this.container.remove();\n      this.container = null;\n    }\n  }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n  name: 'bypassSecurityTrustHtml',\n})\nexport class BypassSecurityTrustHtmlPipe implements PipeTransform {\n  /**\n   * Sanitizer  of bypass security trust html pipe\n   */\n  sanitizer = inject(DomSanitizer);\n\n  /**\n   * Transforms bypass security trust html pipe\n   * @param {string} value\n   * @returns SafeHtml\n   */\n  transform(value?: string): SafeHtml {\n    if (!value) return '';\n\n    return this.sanitizer.bypassSecurityTrustHtml(value);\n  }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { TranslationService } from '../../core';\n\n@Pipe({\n  name: 'translate',\n  standalone: true,\n  pure: false,\n})\nexport class TranslatePipe implements PipeTransform {\n  translationService = inject(TranslationService);\n\n  transform(value: string, params?: Record<string, string | number>): string {\n    let translation = this.translationService.getTranslation(value) as string;\n\n    if (params) {\n      Object.entries(params).forEach(([key, val]) => {\n        translation = translation.replace(`{{${key}}}`, String(val));\n      });\n    }\n\n    return translation;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'timeAgo',\n  standalone: true,\n})\nexport class TimeAgoPipe implements PipeTransform {\n  /**\n   * Transforms time ago pipe\n   * @param {Date | string | number} value\n   * @returns string\n   */\n  transform(value: Date | string | number): string {\n    if (!value) return '';\n\n    const now = new Date();\n    const past = new Date(value);\n    const seconds = Math.floor((now.getTime() - past.getTime()) / 1000);\n\n    if (seconds < 60) return `hace ${seconds} segundos`;\n    const minutes = Math.floor(seconds / 60);\n    if (minutes < 60) return `hace ${minutes} minutos`;\n    const hours = Math.floor(minutes / 60);\n    if (hours < 24) return `hace ${hours} horas`;\n    const days = Math.floor(hours / 24);\n    if (days < 30) return `hace ${days} días`;\n    const months = Math.floor(days / 30);\n    if (months < 12) return `hace ${months} meses`;\n    const years = Math.floor(months / 12);\n    return `hace ${years} años`;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\ninterface DocumentType {\n  id: number;\n  description: string;\n  code: string;\n}\n\n@Pipe({\n  name: 'documentType',\n  standalone: true,\n})\nexport class DocumentTypePipe implements PipeTransform {\n  /**\n   * Document types of document type pipe\n   */\n  documentTypes: DocumentType[] = [\n    {\n      id: 1,\n      description: 'DNI',\n      code: 'DNI',\n    },\n    {\n      id: 2,\n      description: 'RUC',\n      code: 'RUC',\n    },\n    {\n      id: 3,\n      description: 'PASAPORTE',\n      code: 'PAS',\n    },\n    {\n      id: 4,\n      description: 'CARNET DE EXTRANJERIA',\n      code: 'CEX',\n    },\n  ];\n  /**\n   * Transforms document type pipe\n   * @param {number} id\n   * @returns string\n   */\n  transform(id: number): string {\n    const document = this.documentTypes.find((doc) => doc.id === id);\n    return document?.description || 'Unknown Document Type';\n  }\n}\n","/*\n * Public API Surface of utils\n */\n\nexport * from './lib/core';\nexport * from './lib/shared';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}