{"version":3,"file":"nworld-components.mjs","sources":["../../../projects/nworld-components/src/lib/services/icon.service.ts","../../../projects/nworld-components/src/lib/components/badge/badge.component.ts","../../../projects/nworld-components/src/lib/components/badge/badge.component.html","../../../projects/nworld-components/src/lib/components/input/input.component.ts","../../../projects/nworld-components/src/lib/components/input/input.component.html","../../../projects/nworld-components/src/lib/components/dropdown/dropdown.component.ts","../../../projects/nworld-components/src/lib/components/dropdown/dropdown.component.html","../../../projects/nworld-components/src/lib/components/alert/alert.component.ts","../../../projects/nworld-components/src/lib/components/alert/alert.component.html","../../../projects/nworld-components/src/lib/components/paginator/paginator.component.ts","../../../projects/nworld-components/src/lib/components/paginator/paginator.component.html","../../../projects/nworld-components/src/lib/components/table/table.component.ts","../../../projects/nworld-components/src/lib/components/table/table.component.html","../../../projects/nworld-components/src/lib/components/calendar/calendar.component.ts","../../../projects/nworld-components/src/lib/components/calendar/calendar.component.html","../../../projects/nworld-components/src/lib/components/modal/modal.component.ts","../../../projects/nworld-components/src/lib/components/modal/modal.component.html","../../../projects/nworld-components/src/lib/components/progress-bar/progress-bar.component.ts","../../../projects/nworld-components/src/lib/components/progress-bar/progress-bar.component.html","../../../projects/nworld-components/src/public-api.ts","../../../projects/nworld-components/src/nworld-components.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class IconService {\r\n  constructor(private http: HttpClient, private sanitizer: DomSanitizer) {}\r\n\r\n  getIcon(\r\n    category: string,\r\n    name: string,\r\n    color?: string\r\n  ): Observable<SafeHtml> {\r\n    const url = `assets/icons/${category}/${name}.svg`;\r\n    return this.http.get(url, { responseType: 'text' }).pipe(\r\n      map((svg) => (color ? this.setIconColor(svg, color) : svg)),\r\n      map((svg) => this.sanitizer.bypassSecurityTrustHtml(svg)),\r\n      catchError((error) => {\r\n        console.error('Error fetching icon:', error);\r\n        return of('');\r\n      })\r\n    );\r\n  }\r\n\r\n  setIconColor(svg: string, color: string): string {\r\n    const parser = new DOMParser();\r\n    const doc = parser.parseFromString(svg, 'image/svg+xml');\r\n    const svgElement = doc.querySelector('svg');\r\n\r\n    if (svgElement) {\r\n      svgElement.setAttribute('width', '100%');\r\n      svgElement.setAttribute('height', '100%');\r\n\r\n      // Find all shape elements\r\n      const elements = svgElement.querySelectorAll(\r\n        'path, circle, rect, ellipse, line, polyline, polygon'\r\n      );\r\n\r\n      elements.forEach((el) => {\r\n        if (el.getAttribute('fill') && el.getAttribute('fill') !== 'none') {\r\n          // If the element has a fill attribute and it's not 'none', update the fill\r\n          el.setAttribute('fill', color);\r\n        } else {\r\n          // Otherwise, update the stroke\r\n          el.setAttribute('stroke', color);\r\n\r\n          // Set a default stroke-width if it's not already set\r\n          if (!el.getAttribute('stroke-width')) {\r\n            el.setAttribute('stroke-width', '2');\r\n          }\r\n        }\r\n      });\r\n\r\n      // Remove any top-level stroke attribute from the SVG element itself\r\n      svgElement.removeAttribute('stroke');\r\n    }\r\n\r\n    return new XMLSerializer().serializeToString(doc);\r\n  }\r\n}\r\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { IconService } from '../../services/icon.service';\n\ntype mode =\n  | 'info'\n  | 'info-light'\n  | 'info-dark'\n  | 'success'\n  | 'warning'\n  | 'error';\n\ntype alignment = 'start' | 'end';\n\n@Component({\n  selector: 'n-badge',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './badge.component.html',\n  styleUrls: ['./badge.component.css'],\n})\nexport class BadgeComponent implements OnInit {\n  @Input() content: any;\n  @Input() mode: mode = 'info';\n  @Input() icon?: string;\n  @Input() position: alignment = 'end';\n  @Input() image?: string;\n\n  displayIcon: SafeHtml;\n\n  constructor(private iconservice: IconService) {}\n\n  ngOnInit(): void {\n    this.getIcon();\n  }\n\n  private getColorForMode(mode: mode): string {\n    switch (mode) {\n      case 'info':\n      case 'info-light':\n      case 'info-dark':\n        return '#ABACD6';\n      case 'success':\n        return '#47CD89';\n      case 'warning':\n        return '#E79453';\n      case 'error':\n        return '#D26167';\n      default:\n        return '#98A2B3';\n    }\n  }\n\n  get badgeClasses(): string {\n    return `container ${this.mode}`;\n  }\n\n  get messageClasses(): string {\n    return `container__content--message ${this.mode}`;\n  }\n\n  getIcon() {\n    if (this.icon) {\n      const iconCategory = this.icon.split(' ')[0];\n      const iconName = this.icon.split(' ')[1];\n      this.iconservice\n        .getIcon(iconCategory, iconName, this.getColorForMode(this.mode))\n        .subscribe((icon) => {\n          this.displayIcon = icon;\n        });\n    }\n  }\n}\n","<div [class]=\"badgeClasses\">\n  <div class=\"container__content\">\n    @if(icon && position === 'start') {\n      <div class=\"container__content--icon-wrapper\">\n      <div class=\"container__content--dot-icon\" [innerHTML]=\"displayIcon\"></div>\n    </div>\n    } @else if(image) {\n      <div class=\"container__content--image-wrapper\">\n        <img [src]=\"image\">\n      </div>\n    }\n    <p [class]=\"messageClasses\">{{ content }}</p>\n    @if(icon && position === 'end') {\n    <div class=\"container__content--icon-wrapper\">\n      <div class=\"container__content--icon\" [innerHTML]=\"displayIcon\"></div>\n    </div>\n    }\n  </div>\n</div>","import { NgClass, NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { IconService } from '../../services/icon.service';\n\n@Component({\n  selector: 'n-input',\n  standalone: true,\n  imports: [NgIf, NgClass, ReactiveFormsModule],\n  templateUrl: './input.component.html',\n  styleUrls: ['./input.component.css'],\n})\nexport class InputComponent implements OnInit, ControlValueAccessor {\n  @Input() type: 'text' | 'email' | 'tel' | 'password' | 'number' = 'text';\n  @Input() placeholder: string = '';\n  @Input() label: string = '';\n  @Input() icon: string = '';\n  @Input() disabled: boolean = false;\n  @Input() pattern: string | RegExp = '';\n  @Output() inputChange = new EventEmitter<string>();\n  private _control: FormControl = new FormControl('');\n  errorIconSvg: SafeHtml = '';\n  displayIcon: SafeHtml;\n\n  @Input() set control(value: AbstractControl | null) {\n    if (value instanceof FormControl) {\n      this._control = value;\n    } else if (value === null) {\n      this._control = new FormControl('');\n    } else {\n      throw new Error('Input must be a FormControl or null');\n    }\n  }\n\n  constructor(\n    private sanitizer: DomSanitizer,\n    private iconService: IconService\n  ) {}\n\n  get control(): FormControl {\n    return this._control;\n  }\n\n  ngOnInit() {\n    if (!this._control) {\n      this._control = new FormControl('');\n    }\n    if (this.pattern) {\n      this._control.addValidators(Validators.pattern(this.pattern));\n    }\n    this.getIcon()\n    this.loadErrorIcon();\n  }\n\n  writeValue(value: any): void {\n    this.control.setValue(value, { emitEvent: false });\n  }\n\n  registerOnChange(fn: any): void {\n    this.control.valueChanges.subscribe(fn);\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    isDisabled ? this.control.disable() : this.control.enable();\n  }\n\n  onTouched: () => void = () => {};\n\n  onInputChange(event: Event): void {\n    const value = (event.target as HTMLInputElement).value;\n    this.inputChange.emit(value);\n    this.onTouched();\n  }\n\n  onBlur() {\n    this.control.markAsTouched();\n    this.onTouched();\n  }\n\n  getIcon() {\n    if (this.icon) {\n      const iconCategory = this.icon.split(' ')[0];\n      const iconName = this.icon.split(' ')[1];\n      this.iconService\n        .getIcon(iconCategory, iconName, '#667085')\n        .subscribe((icon) => {\n          this.displayIcon = icon;\n        });\n    }\n  }\n\n  loadErrorIcon(): void {\n    const errorIconUrl = 'assets/icons/alerts/alert-circle.svg';\n    fetch(errorIconUrl)\n      .then((response) => response.text())\n      .then((svg) => {\n        this.errorIconSvg = this.sanitizer.bypassSecurityTrustHtml(\n          this.iconService.setIconColor(svg, '#C9434B')\n        );\n      })\n      .catch((error) => {\n        console.error('Error loading close icon:', error);\n        this.errorIconSvg = ''; // Fallback to empty if there's an error\n      });\n  }\n\n  getErrorMessage(): string {\n    if (this.control.hasError('required')) {\n      return 'El campo es requerido.';\n    }\n    if (this.control.hasError('email')) {\n      return 'Formato de email no válido.';\n    }\n    if (this.control.hasError('minlength')) {\n      return `El campo debe tener ${this.control.errors?.['minlength'].requiredLength} caracteres o más.`;\n    }\n    if (this.control.hasError('pattern')) {\n      return 'El valor no cumple con el formato requerido.';\n    }\n    return 'Campo no válido';\n  }\n}\n","<div class=\"input-container\" *ngIf=\"type === 'text' || type === 'password'\">\n  <label class=\"text-input-label\" *ngIf=\"label\">{{ label }}</label>\n  <div\n    class=\"input-wrapper\"\n    [ngClass]=\"{ error: control.invalid && (control.dirty || control.touched) }\"\n  >\n    <i *ngIf=\"icon\" class=\"input-icon\" [innerHTML]=\"displayIcon\"></i>\n    <input\n      [ngClass]=\"{\n        error: control.invalid && (control.dirty || control.touched),\n        'has-icon': icon\n      }\"\n      class=\"text-input\"\n      [type]=\"type\"\n      [placeholder]=\"placeholder\"\n      [formControl]=\"control\"\n      (blur)=\"onBlur()\"\n      (input)=\"onInputChange($event)\"\n    />\n    <i\n      *ngIf=\"control.invalid && (control.dirty || control.touched)\"\n      class=\"error-icon\"\n      [innerHTML]=\"errorIconSvg\"\n    ></i>\n  </div>\n  <small\n    *ngIf=\"control.invalid && (control.dirty || control.touched)\"\n    class=\"error-message\"\n  >\n    {{ getErrorMessage() }}\n  </small>\n</div>\n\n<div class=\"input-container\" *ngIf=\"type === 'number'\">\n  <label class=\"number-input-label\" *ngIf=\"label\">{{ label }}</label>\n  <div\n    class=\"input-wrapper\"\n    [ngClass]=\"{ error: control.invalid && (control.dirty || control.touched) }\"\n  >\n    <i *ngIf=\"icon\" class=\"input-icon\" [innerHTML]=\"displayIcon\"></i>\n    <input\n      [ngClass]=\"{\n        error: control.invalid && (control.dirty || control.touched),\n        'has-icon': icon\n      }\"\n      class=\"number-input\"\n      [type]=\"type\"\n      [placeholder]=\"placeholder\"\n      [formControl]=\"control\"\n      (blur)=\"onBlur()\"\n      (input)=\"onInputChange($event)\"\n    />\n    <i\n      *ngIf=\"control.invalid && (control.dirty || control.touched)\"\n      class=\"error-icon\"\n      [innerHTML]=\"errorIconSvg\"\n    ></i>\n  </div>\n  <small\n    *ngIf=\"control.invalid && (control.dirty || control.touched)\"\n    class=\"error-message\"\n  >\n    {{ getErrorMessage() }}\n  </small>\n</div>\n\n<div class=\"email-input-container\" *ngIf=\"type === 'email'\">\n  <label class=\"email-input-label\" *ngIf=\"label\">{{ label }}</label>\n  <div class=\"input-wrapper\">\n    <i *ngIf=\"icon\" class=\"input-icon\" [innerHTML]=\"displayIcon\"></i>\n    <input\n      [ngClass]=\"{\n        error: control.invalid && (control.dirty || control.touched),\n        'has-icon': icon\n      }\"\n      class=\"email-input\"\n      [type]=\"'email'\"\n      [placeholder]=\"placeholder\"\n      (blur)=\"onBlur()\"\n      [formControl]=\"control\"\n      (input)=\"onInputChange($event)\"\n    />\n    <i\n      *ngIf=\"control.invalid && (control.dirty || control.touched)\"\n      class=\"error-icon\"\n      [innerHTML]=\"errorIconSvg\"\n    ></i>\n  </div>\n  <small\n    *ngIf=\"control.invalid && (control.dirty || control.touched)\"\n    class=\"error-message\"\n  >\n    {{ getErrorMessage() }}\n  </small>\n</div>\n\n<div class=\"phone-input-container\" *ngIf=\"type === 'tel'\">\n  <label *ngIf=\"label\">{{ label }}</label>\n  <div\n    class=\"phone-input-wrapper\"\n    [ngClass]=\"{ error: control.invalid && (control.dirty || control.touched) }\"\n  >\n    <select class=\"country-code\">\n      <option value=\"us\">US</option>\n      <option value=\"ca\">CA</option>\n      <option value=\"mx\">MX</option>\n      <option value=\"us\">AR</option>\n      <option value=\"ca\">BR</option>\n      <option value=\"mx\">CL</option>\n      <option value=\"us\">DE</option>\n      <option value=\"ca\">ES</option>\n      <option value=\"mx\">FR</option>\n    </select>\n    <input\n      class=\"phone-input\"\n      [type]=\"'tel'\"\n      [placeholder]=\"placeholder\"\n      [formControl]=\"control\"\n      (blur)=\"onBlur()\"\n      (input)=\"onInputChange($event)\"\n    />\n    <i\n      *ngIf=\"control.invalid && (control.dirty || control.touched)\"\n      class=\"error-icon\"\n      [innerHTML]=\"errorIconSvg\"\n    ></i>\n  </div>\n  <small\n    *ngIf=\"control.invalid && (control.dirty || control.touched)\"\n    class=\"error-message\"\n  >\n    {{ getErrorMessage() }}\n  </small>\n</div>\n","import { CommonModule } from '@angular/common';\r\nimport { Component, forwardRef, Input, OnInit } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { IconService } from '../../services/icon.service';\r\nimport {\r\n  AbstractControl,\r\n  ControlValueAccessor,\r\n  FormControl,\r\n  NG_VALUE_ACCESSOR,\r\n  ReactiveFormsModule,\r\n} from '@angular/forms';\r\n\r\ntype mode = 'default' | 'input';\r\n\r\n@Component({\r\n  selector: 'n-dropdown',\r\n  standalone: true,\r\n  imports: [CommonModule, ReactiveFormsModule],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => DropdownComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n  templateUrl: './dropdown.component.html',\r\n  styleUrl: './dropdown.component.css',\r\n})\r\nexport class DropdownComponent implements OnInit, ControlValueAccessor {\r\n  @Input() mode: mode = 'default';\r\n  @Input() icon?: string;\r\n  @Input() image?: string;\r\n  @Input() options: any[] = [];\r\n  @Input() optionLabel: 'id' | 'label' = 'label';\r\n  @Input() placeholder: string = 'Seleccione una opción';\r\n  @Input() set control(value: AbstractControl | null) {\r\n    if (value instanceof FormControl) {\r\n      this._control = value;\r\n    } else if (value === null) {\r\n      this._control = new FormControl('');\r\n    } else {\r\n      throw new Error('Input must be a FormControl or null');\r\n    }\r\n  }\r\n\r\n  public isDropdownOpen: boolean = false;\r\n  public displayIcon: SafeHtml;\r\n  errorIconSvg: SafeHtml = '';\r\n  public value: any = null;\r\n  public filteredOptions: any[] = [];\r\n  public noResults: string = 'No hay coincidencias';\r\n  private _control: FormControl = new FormControl('');\r\n  private onChange: (value: any) => void = () => {}; // Notify changes to the form\r\n  private onTouched: () => void = () => {};\r\n\r\n  constructor(\r\n    private iconService: IconService,\r\n    private sanitizer: DomSanitizer\r\n  ) {}\r\n\r\n  ngOnInit(): void {\r\n    if (!this._control) {\r\n      this._control = new FormControl('');\r\n    }\r\n    this.getIcon();\r\n    this.loadErrorIcon();\r\n    this.filteredOptions = [...this.options];\r\n  }\r\n\r\n  get dropdownClasses(): string {\r\n    return `container ${this.mode}`;\r\n  }\r\n\r\n  get control(): FormControl {\r\n    return this._control;\r\n  }\r\n\r\n  getIcon() {\r\n    if (this.icon) {\r\n      const iconCategory = this.icon.split(' ')[0];\r\n      const iconName = this.icon.split(' ')[1];\r\n      this.iconService.getIcon(iconCategory, iconName).subscribe((icon) => {\r\n        this.displayIcon = icon;\r\n      });\r\n    }\r\n  }\r\n\r\n  loadErrorIcon(): void {\r\n    const errorIconUrl = 'assets/icons/alerts/alert-circle.svg';\r\n    fetch(errorIconUrl)\r\n      .then((response) => response.text())\r\n      .then((svg) => {\r\n        this.errorIconSvg = this.sanitizer.bypassSecurityTrustHtml(\r\n          this.iconService.setIconColor(svg, '#C9434B')\r\n        );\r\n      })\r\n      .catch((error) => {\r\n        console.error('Error loading close icon:', error);\r\n        this.errorIconSvg = ''; // Fallback to empty if there's an error\r\n      });\r\n  }\r\n\r\n  toggleDropdown(): void {\r\n    this.isDropdownOpen = !this.isDropdownOpen;\r\n  }\r\n\r\n  getPlaceholder(): string {\r\n    return this.value ? this.value[this.optionLabel] : this.placeholder;\r\n  }\r\n\r\n  onFilter(event: Event): void {\r\n    const inputValue = (event.target as HTMLInputElement).value.toLowerCase();\r\n\r\n    // Function to remove accents and convert to lowercase\r\n    const normalizeString = (str: string): string => {\r\n      return str\r\n        .normalize('NFD')\r\n        .replace(/[\\u0300-\\u036f]/g, '')\r\n        .toLowerCase();\r\n    };\r\n\r\n    const normalizedInput = normalizeString(inputValue);\r\n\r\n    this.filteredOptions = this.options.filter((option) =>\r\n      normalizeString(option[this.optionLabel]).includes(normalizedInput)\r\n    );\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    this.value = value;\r\n    if (value) {\r\n      this.filteredOptions = this.filteredOptions.map((option) => ({\r\n        ...option,\r\n        isSelected: option.id === value.id,\r\n      }));\r\n    } else {\r\n      this.filteredOptions = this.filteredOptions.map((option) => ({\r\n        ...option,\r\n        isSelected: false,\r\n      }));\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: (value: any) => void): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: () => void): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  selectOption(option: any): void {\r\n    this.isDropdownOpen = false;\r\n\r\n    const index = this.filteredOptions.findIndex(\r\n      (item) => item.id === option.id\r\n    );\r\n    if (index !== -1) {\r\n      if (this.value && this.value.id === option.id) {\r\n        // Deselect the option if it's already selected\r\n        this.value = null;\r\n        this.filteredOptions[index] = {\r\n          ...option,\r\n          isSelected: false,\r\n        };\r\n      } else {\r\n        // Deselect all options\r\n        this.filteredOptions = this.filteredOptions.map((item) => ({\r\n          ...item,\r\n          isSelected: false,\r\n        }));\r\n\r\n        // Select the chosen option\r\n        this.value = option;\r\n        this.filteredOptions[index] = {\r\n          ...option,\r\n          isSelected: true,\r\n        };\r\n      }\r\n    }\r\n\r\n    this.filteredOptions = [...this.filteredOptions];\r\n    this.onChange(this.value);\r\n    this.onTouched();\r\n  }\r\n\r\n  getErrorMessage(): string {\r\n    if (this.control.hasError('required')) {\r\n      return 'El campo es requerido.';\r\n    }\r\n    return 'Campo no válido';\r\n  }\r\n}\r\n","<div [class]=\"dropdownClasses\">\r\n  <div class=\"container__content\">\r\n    <button\r\n      class=\"dropdown-toggle\"\r\n      [ngClass]=\"{ error: control.invalid && (control.dirty || control.touched)}\"\r\n      [class.is-open]=\"isDropdownOpen\"\r\n      (click)=\"toggleDropdown()\"\r\n    >\r\n      <div class=\"dropdown-icon\">\r\n        @if(icon) {\r\n\r\n        <span [innerHTML]=\"displayIcon\"></span>\r\n\r\n        } @else if (image ) {\r\n\r\n        <img [src]=\"image\" />\r\n        }\r\n      </div>\r\n\r\n      {{ getPlaceholder() }}\r\n\r\n      <div class=\"dropdown-toggle__icon-wrapper\">\r\n        <i\r\n          *ngIf=\"control.invalid && (control.dirty || control.touched)\"\r\n          class=\"error-icon\"\r\n          [innerHTML]=\"errorIconSvg\"\r\n        ></i>\r\n        <svg\r\n          width=\"20\"\r\n          height=\"20\"\r\n          viewBox=\"0 0 24 24\"\r\n          fill=\"none\"\r\n          xmlns=\"http://www.w3.org/2000/svg\"\r\n        >\r\n          <g id=\"chevron-down\">\r\n            <path\r\n              id=\"Icon\"\r\n              d=\"M6 9L12 15L18 9\"\r\n              stroke=\"#1D1E3C\"\r\n              stroke-width=\"2\"\r\n              stroke-linecap=\"round\"\r\n              stroke-linejoin=\"round\"\r\n            />\r\n          </g>\r\n        </svg>\r\n      </div>\r\n    </button>\r\n\r\n    <small\r\n      *ngIf=\"control.invalid && (control.dirty || control.touched)\"\r\n      class=\"error-message\"\r\n    >\r\n      {{ getErrorMessage() }}\r\n    </small>\r\n\r\n    @if(isDropdownOpen) {\r\n    <div class=\"dropdown-option__container\">\r\n      <!-- Mostrar el input solo si el modo es \"option-input\" -->\r\n      @if(mode === 'input') {\r\n      <div class=\"dropdown-filter__wrapper\">\r\n        <input\r\n          type=\"text\"\r\n          class=\"dropdown-filter\"\r\n          placeholder=\"Buscar...\"\r\n          (input)=\"onFilter($event)\"\r\n        />\r\n      </div>\r\n      }\r\n\r\n      <!-- Opciones disponibles -->\r\n      @if(filteredOptions.length > 0) { @for(option of filteredOptions; track\r\n      option.id) {\r\n      <div class=\"dropdown-option\" (click)=\"selectOption(option)\">\r\n        <span>{{ option[optionLabel] }}</span>\r\n        <span *ngIf=\"option.isSelected\">\r\n          <svg\r\n            width=\"20\"\r\n            height=\"20\"\r\n            viewBox=\"0 0 24 24\"\r\n            fill=\"none\"\r\n            xmlns=\"http://www.w3.org/2000/svg\"\r\n          >\r\n            <g id=\"chevron-down\">\r\n              <path\r\n                id=\"Icon\"\r\n                d=\"M20 6L9 17L4 12\"\r\n                stroke=\"#F7B27A\"\r\n                stroke-width=\"2\"\r\n                stroke-linecap=\"round\"\r\n                stroke-linejoin=\"round\"\r\n              />\r\n            </g>\r\n          </svg>\r\n        </span>\r\n      </div>\r\n      } } @else {\r\n      <div class=\"dropdown-placeholder\">{{ noResults }}</div>\r\n      }\r\n    </div>\r\n    }\r\n  </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IconService } from '../../services/icon.service';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { NgIf } from '@angular/common';\n\ntype AlertType = 'info' | 'success' | 'warning' | 'error';\n\n@Component({\n  selector: 'n-alert',\n  standalone: true,\n  imports: [NgIf],\n  templateUrl: 'alert.component.html',\n  styleUrls: ['./alert.component.css'],\n})\nexport class AlertComponent implements OnInit {\n  @Input() type: AlertType = 'info';\n  @Input() title: string = '';\n  @Input() message: string = '';\n  @Input() customIconColor?: string;\n  @Output() closed = new EventEmitter<void>();\n  iconSvg: SafeHtml = '';\n  closeIconSvg: SafeHtml = '';\n\n  constructor(\n    private iconService: IconService,\n    private sanitizer: DomSanitizer\n  ) {}\n\n  ngOnInit(): void {\n    if (this.type) {\n      this.iconService\n        .getIcon(this.getIconCategory(), this.getIconClass(), this.getIconColor())\n        .subscribe((svg) => (this.iconSvg = svg));\n    }\n\n    this.loadCloseIcon();\n  }\n\n  get alertClasses(): string {\n    return `alert-container ${this.type}`;\n  }\n\n  getIconClass(): string {\n    switch (this.type) {\n      case 'success':\n        return 'check-circle';\n\n      case 'warning':\n        return 'alert-circle';\n      case 'error':\n        return 'alert-circle';\n\n      default:\n        return 'info-circle';\n    }\n  }\n\n  getIconColor(): string {\n    // Use customIconColor if provided, otherwise determine based on type\n    if (this.customIconColor) {\n      return this.customIconColor;\n    }\n\n    switch (this.type) {\n      case 'success':\n        return '#17B26A'; // Green\n      case 'warning':\n        return '#E28033'; // Orange\n      case 'error':\n        return '#C9434B'; // Red\n      case 'info':\n      default:\n        return '#667085'; // Grey\n    }\n  }\n\n  getIconCategory(): string {\n\n    switch (this.type) {\n      case 'success':\n        return 'general'; \n      case 'warning':\n        return 'alerts'; \n      case 'error':\n        return 'alerts'; \n      case 'info':\n      default:\n        return 'general'; \n    }\n  }\n\n  loadCloseIcon(): void {\n    const closeIconUrl = 'assets/icons/general/x-close.svg';\n    fetch(closeIconUrl)\n      .then((response) => response.text()) \n      .then((svg) => {\n        this.closeIconSvg = this.sanitizer.bypassSecurityTrustHtml(\n          this.iconService.setIconColor(svg, '#98A2B3')\n        );\n      })\n      .catch((error) => {\n        console.error('Error loading close icon:', error);\n        this.closeIconSvg = ''; // Fallback to empty if there's an error\n      });\n  }\n\n  closeAlert(): void {\n    this.closed.emit();\n  }\n}\n","<div [class]=\"alertClasses\">\n  <ng-container *ngIf=\"type !== 'info'; else infoAlert\">\n    <div class=\"alert-icon-container\">\n      <div class=\"alert-background-secondary\">\n        <div class=\"alert-background\">\n          <div class=\"alert-icon\" [innerHTML]=\"iconSvg\"></div>\n        </div>\n      </div>\n    </div>\n  </ng-container>\n  <ng-template #infoAlert>\n    <div class=\"alert-info-background\">\n      <div class=\"alert-icon\" [innerHTML]=\"iconSvg\"></div>\n    </div>\n  </ng-template>\n  <div class=\"alert-content\">\n    <p class=\"alert-title\">{{ title }}</p>\n    <p class=\"alert-message\">{{ message }}</p>\n  </div>\n\n  <div\n    class=\"alert-options\"\n    [innerHTML]=\"closeIconSvg\"\n    (click)=\"closeAlert()\"\n  ></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { IconService } from '../../services/icon.service';\n\n@Component({\n  selector: 'n-paginator',\n  standalone: true,\n  templateUrl: './paginator.component.html',\n  styleUrls: ['./paginator.component.css'],\n  imports: [CommonModule],\n})\nexport class PaginatorComponent implements OnInit {\n  @Input() totalItems: number = 0;\n  @Input() itemsPerPage: number = 10;\n  @Output() pageChange = new EventEmitter<number>();\n\n  currentPage: number = 1;\n  totalPages: number = 0;\n  displayedPages: number[] = [];\n  previousIcon: SafeHtml;\n  nextIcon: SafeHtml;\n\n  constructor(private iconService: IconService) {}\n\n  ngOnInit(): void {\n    this.loadIcons();\n  }\n  ngOnChanges() {\n    this.calculateTotalPages();\n    this.updateCurrentPage();\n    this.updateDisplayedPages();\n  }\n\n  private calculateTotalPages() {\n    this.totalPages = Math.ceil(this.totalItems / this.itemsPerPage);\n    if (this.currentPage > this.totalPages) {\n      this.currentPage = this.totalPages;\n    }\n  }\n\n  private updateCurrentPage() {\n    this.pageChange.emit(this.currentPage);\n  }\n\n  private updateDisplayedPages() {\n    const firstThree = Array.from(\n      { length: Math.min(3, this.totalPages) },\n      (_, i) => i + 1\n    );\n    const lastThree = Array.from(\n      { length: Math.min(3, this.totalPages) },\n      (_, i) => this.totalPages - i\n    ).reverse();\n\n    if (this.totalPages <= 6) {\n      // If total pages are less than or equal to six, show all pages\n      this.displayedPages = Array.from(\n        { length: this.totalPages },\n        (_, i) => i + 1\n      );\n    } else {\n      this.displayedPages = [...firstThree];\n\n      if (this.currentPage > 4) {\n        this.displayedPages.push(-1); \n      }\n\n      if (this.currentPage > 3 && this.currentPage < this.totalPages - 2) {\n        this.displayedPages.push(this.currentPage);\n      }\n\n      // Add separator if needed\n      if (this.currentPage < this.totalPages - 3) {\n        this.displayedPages.push(-1); \n      }\n\n      this.displayedPages.push(...lastThree);\n\n      // Remove duplicates while maintaining order\n      this.displayedPages = Array.from(new Set(this.displayedPages));\n    }\n  }\n\n  previousPage() {\n    if (this.currentPage > 1) {\n      this.currentPage--;\n      this.updateCurrentPage();\n      this.updateDisplayedPages();\n    }\n  }\n\n  nextPage() {\n    if (this.currentPage < this.totalPages) {\n      this.currentPage++;\n      this.updateCurrentPage();\n      this.updateDisplayedPages();\n    }\n  }\n\n  goToPage(page: number) {\n    if (page > 0 && page <= this.totalPages) {\n      this.currentPage = page;\n      this.updateDisplayedPages();\n      this.updateCurrentPage();\n    }\n  }\n\n  loadIcons() {\n    this.iconService\n      .getIcon('arrows', 'arrow-left', '#344054')\n      .subscribe((icon: any) => {\n        this.previousIcon = icon;\n      });\n\n    this.iconService\n      .getIcon('arrows', 'arrow-right', '#344054')\n      .subscribe((icon: any) => {\n        this.nextIcon = icon;\n      });\n  }\n}\n","<div class=\"paginator\">\n  <button\n    class=\"button1 paginator__button\"\n    (click)=\"previousPage()\"\n    [disabled]=\"currentPage === 1\"\n  >\n    <i class=\"icon--wrapper\" [innerHTML]=\"previousIcon\"></i> Previous\n  </button>\n\n  <div class=\"page-button__wrapper\">\n    <ng-container *ngFor=\"let page of displayedPages\">\n      <ng-container *ngIf=\"page !== -1; else separator\">\n        <button\n          *ngIf=\"page !== currentPage\"\n          (click)=\"goToPage(page)\"\n          class=\"page-button\"\n        >\n          {{ page }}\n        </button>\n        <span *ngIf=\"page === currentPage\">{{ page }}</span>\n      </ng-container>\n      <ng-template #separator>\n        <span>...</span>\n      </ng-template>\n    </ng-container>\n  </div>\n\n  <button\n    class=\"button1 paginator__button\"\n    (click)=\"nextPage()\"\n    [disabled]=\"currentPage === totalPages\"\n  >\n    Next <i class=\"icon--wrapper\" [innerHTML]=\"nextIcon\"></i>\n  </button>\n</div>\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { ITableColumn } from './ITableColumns';\r\nimport { SafeHtml } from '@angular/platform-browser';\r\nimport { IconService } from '../../services/icon.service';\r\nimport { PaginatorComponent } from '../paginator/paginator.component';\r\n\r\n@Component({\r\n  selector: 'n-table',\r\n  standalone: true,\r\n  imports: [CommonModule, PaginatorComponent],\r\n  templateUrl: './table.component.html',\r\n  styleUrls: ['./table.component.css'],\r\n})\r\nexport class TableComponent implements OnInit, OnChanges {\r\n  @Input() columns: ITableColumn[];\r\n  @Input() data: any[];\r\n  @Input() isLoading: boolean = false;\r\n  @Input() panelTitle: string;\r\n  @Input() panelMessage: string;\r\n  @Input() totalItems?: number;\r\n  @Input() pageSize: number = 10;\r\n  @Input() errorPanel: boolean = false;\r\n\r\n  currentPage: number = 1;\r\n  sortIcons: { [key: string]: SafeHtml } = {};\r\n  searchIcon: SafeHtml;\r\n  errorIcon: SafeHtml;\r\n  sortColumn: string | null = null;\r\n  sortDirection: 'asc' | 'desc' = 'asc';\r\n  paginatedData: any[] = [];\r\n\r\n  constructor(private iconService: IconService) {}\r\n\r\n  ngOnInit() {\r\n    this.loadIcons();\r\n    this.updatePaginatedData();\r\n  }\r\n\r\n  ngOnChanges() {\r\n    this.updatePaginatedData(); // Update paginated data when inputs change\r\n  }\r\n\r\n  loadIcons() {\r\n    this.iconService\r\n      .getIcon('arrows', 'arrow-up', '#98A2B3')\r\n      .subscribe((icon) => {\r\n        this.sortIcons['asc'] = icon;\r\n      });\r\n    this.iconService\r\n      .getIcon('arrows', 'arrow-down', '#98A2B3')\r\n      .subscribe((icon) => {\r\n        this.sortIcons['desc'] = icon;\r\n      });\r\n    this.iconService.getIcon('general', 'search-lg').subscribe((icon) => {\r\n      this.searchIcon = icon;\r\n    });\r\n    this.iconService\r\n      .getIcon('alerts', 'alert-circle', '#dc3545')\r\n      .subscribe((icon) => {\r\n        this.errorIcon = icon;\r\n    });\r\n  }\r\n\r\n  updatePaginatedData() {\r\n    const startIndex = (this.currentPage - 1) * this.pageSize;\r\n    const endIndex = startIndex + this.pageSize;\r\n    this.paginatedData = this.data.slice(startIndex, endIndex);\r\n  }\r\n\r\n  onPageChange(page: number) {\r\n    this.currentPage = page;\r\n    this.updatePaginatedData();\r\n  }\r\n\r\n  onSort(col: any) {\r\n    if (this.sortColumn === col.id) {\r\n      this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\r\n    } else {\r\n      this.sortColumn = col.id;\r\n      this.sortDirection = 'asc';\r\n    }\r\n\r\n    this.data.sort((a, b) => {\r\n      const valueA = a[col.id];\r\n      const valueB = b[col.id];\r\n      if (valueA < valueB) return this.sortDirection === 'asc' ? -1 : 1;\r\n      if (valueA > valueB) return this.sortDirection === 'asc' ? 1 : -1;\r\n      return 0;\r\n    });\r\n\r\n    this.updatePaginatedData();\r\n  }\r\n\r\n  getSortIcon(colId: string): SafeHtml | null {\r\n    if (this.sortColumn === colId) {\r\n      return this.sortIcons[this.sortDirection];\r\n    }\r\n    return null;\r\n  }\r\n}\r\n","<div class=\"tableContainer\">\r\n  <table *ngIf=\"!errorPanel && data.length\">\r\n    <th\r\n      *ngFor=\"let col of columns; let first = first; let last = last\"\r\n      (click)=\"onSort(col)\"\r\n      class=\"header\"\r\n      [ngClass]=\"{ 'first-header': first, 'last-header': last }\"\r\n    >\r\n      <div class=\"header-content\">\r\n        {{ col.name }}\r\n        <div class=\"sort-icon-container\">\r\n          <span\r\n            class=\"sort-icon\"\r\n            *ngIf=\"sortColumn === col.id\"\r\n            [innerHTML]=\"getSortIcon(col.id)\"\r\n          ></span>\r\n        </div>\r\n      </div>\r\n    </th>\r\n    <tbody>\r\n      <tr *ngFor=\"let row of paginatedData\">\r\n        <td *ngFor=\"let col of columns\">{{ row[col.id] }}</td>\r\n      </tr>\r\n    </tbody>\r\n  </table>\r\n\r\n  <!-- Panel de error -->\r\n  <div class=\"errorPanel\" *ngIf=\"errorPanel\">\r\n    <div class=\"emptyPanel__error-wrapper\">\r\n      <div class=\"emptyPanel__error-container--background-4\">\r\n        <div class=\"emptyPanel__error-container--background-3\">\r\n          <div class=\"emptyPanel__error-container--background-2\">\r\n            <div class=\"emptyPanel__error-container--background\">\r\n              <div class=\"errorPanel__icon-container\">\r\n                <i class=\"errorPanel__icon\" [innerHTML]=\"errorIcon\"></i>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div class=\"errorPanel__description\">\r\n        <p class=\"errorPanel__panelTitle\">{{ panelTitle }}</p>\r\n        <p class=\"errorPanel__panelMessage\">{{ panelMessage }}</p>\r\n      </div>\r\n    </div>\r\n  </div>\r\n\r\n  <!-- Panel vacío -->\r\n  <div class=\"emptyPanel\" *ngIf=\"!errorPanel && !data.length\">\r\n    <div class=\"emptyPanel__error-wrapper\">\r\n      <div class=\"emptyPanel__error-container--background-4\">\r\n        <div class=\"emptyPanel__error-container--background-3\">\r\n          <div class=\"emptyPanel__error-container--background-2\">\r\n            <div class=\"emptyPanel__error-container--background\">\r\n              <div class=\"emptyPanel__icon-container\">\r\n                <i class=\"emptyPanel__icon\" [innerHTML]=\"searchIcon\"></i>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div class=\"emptyPanel__description\">\r\n        <p class=\"emptyPanel__panelTitle\">{{ panelTitle }}</p>\r\n        <p class=\"emptyPanel__panelMessage\">{{ panelMessage }}</p>\r\n      </div>\r\n    </div>\r\n  </div>\r\n\r\n  <!-- Paginador -->\r\n  <n-paginator\r\n    *ngIf=\"totalItems && data.length\"\r\n    [totalItems]=\"totalItems\"\r\n    [itemsPerPage]=\"pageSize\"\r\n    (pageChange)=\"onPageChange($event)\"\r\n  ></n-paginator>\r\n</div>\r\n","import { NgClass, NgFor, NgIf } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport {\r\n  AbstractControl,\r\n  ControlValueAccessor,\r\n  FormControl,\r\n} from '@angular/forms';\r\nimport {\r\n  format,\r\n  startOfMonth,\r\n  endOfMonth,\r\n  isSameDay,\r\n  eachDayOfInterval,\r\n  subDays,\r\n  addDays,\r\n  startOfWeek,\r\n  isWithinInterval,\r\n} from 'date-fns';\r\nimport { InputComponent } from '../input/input.component';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { IconService } from '../../services/icon.service';\r\n\r\n@Component({\r\n  selector: 'n-calendar',\r\n  standalone: true,\r\n  templateUrl: './calendar.component.html',\r\n  styleUrls: ['./calendar.component.css'],\r\n  imports: [NgIf, NgFor, NgClass],\r\n})\r\nexport class CalendarComponent implements OnInit, ControlValueAccessor {\r\n  @Input() label?: string;\r\n  @Input() selectedDate: Date | null = null;\r\n  @Input() placeholder: string = 'Seleccione una fecha';\r\n  @Input() selectionMode: 'single' | 'week' = 'single';\r\n  @Output() dateChange = new EventEmitter<Date>();\r\n\r\n  currentMonth: number = new Date().getMonth();\r\n  currentYear: number = new Date().getFullYear();\r\n  isCalendarVisible: boolean = false;\r\n  private _control: FormControl = new FormControl('');\r\n  errorIconSvg: SafeHtml = '';\r\n  public hoveredDate: Date | null = null;\r\n\r\n  @Input() set control(value: AbstractControl | null) {\r\n    if (value instanceof FormControl) {\r\n      this._control = value;\r\n    } else if (value === null) {\r\n      this._control = new FormControl('');\r\n    } else {\r\n      throw new Error('Input must be a FormControl or null');\r\n    }\r\n  }\r\n\r\n  monthNames: string[] = [\r\n    'Enero',\r\n    'Febrero',\r\n    'Marzo',\r\n    'Abril',\r\n    'Mayo',\r\n    'Junio',\r\n    'Julio',\r\n    'Agosto',\r\n    'Septiembre',\r\n    'Octubre',\r\n    'Noviembre',\r\n    'Diciembre',\r\n  ];\r\n\r\n  daysOfWeek: string[] = ['L', 'M', 'X', 'J', 'V'];\r\n\r\n  constructor(\r\n    private iconService: IconService,\r\n    private sanitizer: DomSanitizer\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    if (!this._control) {\r\n      this._control = new FormControl('');\r\n    }\r\n    this.loadErrorIcon();\r\n  }\r\n\r\n  get control(): FormControl {\r\n    return this._control;\r\n  }\r\n\r\n  changeMonths() {}\r\n\r\n  writeValue(value: any): void {\r\n    this.control.setValue(value, { emitEvent: false });\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.control.valueChanges.subscribe(fn);\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    isDisabled ? this.control.disable() : this.control.enable();\r\n  }\r\n\r\n  onTouched: () => void = () => {};\r\n\r\n  loadErrorIcon(): void {\r\n    const errorIconUrl = 'assets/icons/alerts/alert-circle.svg';\r\n    fetch(errorIconUrl)\r\n      .then((response) => response.text())\r\n      .then((svg) => {\r\n        this.errorIconSvg = this.sanitizer.bypassSecurityTrustHtml(\r\n          this.iconService.setIconColor(svg, '#C9434B')\r\n        );\r\n      })\r\n      .catch((error) => {\r\n        console.error('Error loading close icon:', error);\r\n        this.errorIconSvg = ''; // Fallback to empty if there's an error\r\n      });\r\n  }\r\n\r\n  toggleCalendar() {\r\n    this.isCalendarVisible = !this.isCalendarVisible;\r\n    this.onTouched();\r\n  }\r\n\r\n  changeMonth(delta: number) {\r\n    this.currentMonth += delta;\r\n\r\n    if (this.isCalendarVisible) {\r\n      if (this.currentMonth < 0) {\r\n        this.currentMonth = 11;\r\n        this.currentYear--;\r\n      } else if (this.currentMonth > 11) {\r\n        this.currentMonth = 0;\r\n        this.currentYear++;\r\n      }\r\n    } else {\r\n      this.toggleCalendar();\r\n    }\r\n  }\r\n\r\n  getDaysInMonth(): Date[] {\r\n    const start = startOfMonth(new Date(this.currentYear, this.currentMonth));\r\n    const end = endOfMonth(start);\r\n\r\n    const prevMonthDays = this.getPreviousMonthDays(start);\r\n    const currentMonthDays = eachDayOfInterval({ start, end }).filter(\r\n      (d) => d.getDay() !== 0 && d.getDay() !== 6\r\n    );\r\n    const nextMonthDays = this.getNextMonthDays(end);\r\n\r\n    return [...prevMonthDays, ...currentMonthDays, ...nextMonthDays];\r\n  }\r\n\r\n  getPreviousMonthDays(start: Date): Date[] {\r\n    const daysToAdd = (start.getDay() + 6) % 7; // Adjust for Monday start\r\n    if (daysToAdd === 0) return [];\r\n\r\n    const prevMonthEnd = subDays(start, 1);\r\n    const prevMonthStart = subDays(prevMonthEnd, daysToAdd - 1);\r\n\r\n    return eachDayOfInterval({\r\n      start: prevMonthStart,\r\n      end: prevMonthEnd,\r\n    }).filter((d) => d.getDay() !== 0 && d.getDay() !== 6);\r\n  }\r\n\r\n  getNextMonthDays(end: Date): Date[] {\r\n    const daysToAdd = 5 - ((end.getDay() + 6) % 7); // Adjust for Monday start\r\n    if (daysToAdd === 0) return [];\r\n\r\n    const nextMonthStart = addDays(end, 1);\r\n    const nextMonthEnd = addDays(nextMonthStart, daysToAdd - 1);\r\n\r\n    return eachDayOfInterval({\r\n      start: nextMonthStart,\r\n      end: nextMonthEnd,\r\n    }).filter((d) => d.getDay() !== 0 && d.getDay() !== 6);\r\n  }\r\n\r\n  selectDate(date: Date) {\r\n    if (date.getMonth() !== this.currentMonth) {\r\n      return;\r\n    }\r\n\r\n    if (this.selectionMode === 'single') {\r\n      this.selectedDate = date;\r\n      this.dateChange.emit(this.selectedDate);\r\n      this.isCalendarVisible = false;\r\n    } else if (this.selectionMode === 'week') {\r\n      const dayOfWeek = date.getDay();\r\n      const startOfWeek = new Date(date);\r\n\r\n      startOfWeek.setDate(date.getDate() - ((dayOfWeek + 6) % 7));\r\n\r\n      const endOfWeek = new Date(startOfWeek);\r\n      endOfWeek.setDate(startOfWeek.getDate() + 4);\r\n\r\n      this.selectedDate = date;\r\n\r\n      this.dateChange.emit(this.selectedDate);\r\n      this.isCalendarVisible = false;\r\n    }\r\n\r\n    this.onTouched();\r\n  }\r\n\r\n  isSelected(day: Date): boolean {\r\n    if (this.selectionMode === 'single') {\r\n      return !!this.selectedDate && isSameDay(day, this.selectedDate);\r\n    } else if (this.selectionMode === 'week') {\r\n      const startOfWeekDate = startOfWeek(this.selectedDate!, {\r\n        weekStartsOn: 1,\r\n      });\r\n      const endOfWeekDate = addDays(startOfWeekDate, 4); // Friday\r\n\r\n      return isWithinInterval(day, {\r\n        start: startOfWeekDate,\r\n        end: endOfWeekDate,\r\n      });\r\n    }\r\n\r\n    return false;\r\n  }\r\n\r\n  get formattedDate(): string {\r\n    if (!this.selectedDate) return '';\r\n\r\n    if (this.selectionMode === 'single') {\r\n      return format(this.selectedDate, 'dd/MM/yyyy'); // Keep this if you want to use date-fns for single dates\r\n    } else if (this.selectionMode === 'week') {\r\n      const startOfWeekDate = startOfWeek(this.selectedDate, {\r\n        weekStartsOn: 1,\r\n      });\r\n      const endOfWeekDate = addDays(startOfWeekDate, 4);\r\n\r\n      // Custom formatting logic\r\n      const startDay = startOfWeekDate.getDate();\r\n      const endDay = endOfWeekDate.getDate();\r\n     \r\n      const month = this.monthNames[startOfWeekDate.getMonth()].slice(0, 3).toLowerCase();\r\n      const year = startOfWeekDate.getFullYear();\r\n\r\n      return `Semana ${startDay}-${endDay} ${month}, ${year}`;\r\n    }\r\n\r\n    return '';\r\n  }\r\n\r\n  getErrorMessage(): string {\r\n    if (this.control.hasError('required')) {\r\n      return 'El campo es requerido.';\r\n    }\r\n\r\n    return 'Campo no válido';\r\n  }\r\n\r\n  onHoverDay(day: Date): void {\r\n    if (this.selectionMode === 'single') {\r\n      this.hoveredDate = day;\r\n    } else if (this.selectionMode === 'week') {\r\n      const dayOfWeek = day.getDay();\r\n      const startOfWeek = new Date(day);\r\n      startOfWeek.setDate(day.getDate() - ((dayOfWeek + 6) % 7));\r\n\r\n      const endOfWeek = new Date(startOfWeek);\r\n      endOfWeek.setDate(startOfWeek.getDate() + 4);\r\n\r\n      this.hoveredDate = startOfWeek;\r\n    }\r\n  }\r\n\r\n  isHoveredDay(day: Date): boolean {\r\n    return (\r\n      this.selectionMode === 'single' &&\r\n      !!this.hoveredDate &&\r\n      isSameDay(day, this.hoveredDate)\r\n    );\r\n  }\r\n\r\n  clearHover(): void {\r\n    this.hoveredDate = null;\r\n  }\r\n\r\n  isHoveredWeek(day: Date): boolean {\r\n    if (this.selectionMode !== 'week' || !this.hoveredDate) {\r\n      return false;\r\n    }\r\n\r\n    const startOfWeekHovered = startOfWeek(this.hoveredDate, {\r\n      weekStartsOn: 1,\r\n    });\r\n    const endOfWeekHovered = addDays(startOfWeekHovered, 4);\r\n\r\n    return isWithinInterval(day, {\r\n      start: startOfWeekHovered,\r\n      end: endOfWeekHovered,\r\n    });\r\n  }\r\n\r\n  isStartOfHoveredWeek(day: Date): boolean {\r\n    if (this.selectionMode !== 'week' || !this.hoveredDate) return false;\r\n    const startOfWeekDate = startOfWeek(this.hoveredDate, { weekStartsOn: 1 });\r\n    return isSameDay(day, startOfWeekDate);\r\n  }\r\n\r\n  isEndOfHoveredWeek(day: Date): boolean {\r\n    if (this.selectionMode !== 'week' || !this.hoveredDate) return false;\r\n    const endOfWeekDate = addDays(\r\n      startOfWeek(this.hoveredDate, { weekStartsOn: 1 }),\r\n      4\r\n    );\r\n    return isSameDay(day, endOfWeekDate);\r\n  }\r\n}\r\n","<div\r\n  class=\"calendar__dropdown\"\r\n  [ngClass]=\"{ 'calendar--active': isCalendarVisible }\"\r\n>\r\n  <label class=\"calendar__input--label\" *ngIf=\"label\">{{ label }}</label>\r\n\r\n  <button\r\n    type=\"text\"\r\n    class=\"calendar__input\"\r\n    [ngClass]=\"{ 'calendar__input--active': isCalendarVisible }\"\r\n    readonly\r\n  >\r\n    <div class=\"calendar-toggle__icon-wrapper\">\r\n      <svg\r\n        width=\"20\"\r\n        height=\"20\"\r\n        viewBox=\"0 0 24 24\"\r\n        fill=\"none\"\r\n        xmlns=\"http://www.w3.org/2000/svg\"\r\n        (click)=\"isCalendarVisible ? changeMonth(-1) : toggleCalendar()\"\r\n      >\r\n        <path\r\n          id=\"Icon\"\r\n          d=\"M15 18L9 12L15 6\"\r\n          stroke=\"#1D1E3C\"\r\n          stroke-width=\"2\"\r\n          stroke-linecap=\"round\"\r\n          stroke-linejoin=\"round\"\r\n        />\r\n      </svg>\r\n\r\n      <div class=\"calendar-toggle__placeholder\">\r\n        <svg\r\n          width=\"20\"\r\n          height=\"20\"\r\n          viewBox=\"0 0 24 24\"\r\n          fill=\"none\"\r\n          xmlns=\"http://www.w3.org/2000/svg\"\r\n        >\r\n          <path\r\n            id=\"Icon\"\r\n            d=\"M21 10H3M16 2V6M8 2V6M7.8 22H16.2C17.8802 22 18.7202 22 19.362 21.673C19.9265 21.3854 20.3854 20.9265 20.673 20.362C21 19.7202 21 18.8802 21 17.2V8.8C21 7.11984 21 6.27976 20.673 5.63803C20.3854 5.07354 19.9265 4.6146 19.362 4.32698C18.7202 4 17.8802 4 16.2 4H7.8C6.11984 4 5.27976 4 4.63803 4.32698C4.07354 4.6146 3.6146 5.07354 3.32698 5.63803C3 6.27976 3 7.11984 3 8.8V17.2C3 18.8802 3 19.7202 3.32698 20.362C3.6146 20.9265 4.07354 21.3854 4.63803 21.673C5.27976 22 6.11984 22 7.8 22Z\"\r\n            stroke=\"#667085\"\r\n            stroke-width=\"2\"\r\n            stroke-linecap=\"round\"\r\n            stroke-linejoin=\"round\"\r\n          />\r\n        </svg>\r\n\r\n        <div (click)=\"toggleCalendar()\">\r\n          {{ formattedDate ? formattedDate : placeholder }}\r\n        </div>\r\n      </div>\r\n      <svg\r\n        width=\"20\"\r\n        height=\"20\"\r\n        viewBox=\"0 0 24 24\"\r\n        fill=\"none\"\r\n        xmlns=\"http://www.w3.org/2000/svg\"\r\n        (click)=\"isCalendarVisible ? changeMonth(1) : toggleCalendar()\"\r\n      >\r\n        <path\r\n          id=\"Icon\"\r\n          d=\"M9 18L15 12L9 6\"\r\n          stroke=\"#1D1E3C\"\r\n          stroke-width=\"2\"\r\n          stroke-linecap=\"round\"\r\n          stroke-linejoin=\"round\"\r\n        />\r\n      </svg>\r\n\r\n      <i\r\n        *ngIf=\"control.invalid && (control.dirty || control.touched)\"\r\n        class=\"error-icon\"\r\n        [innerHTML]=\"errorIconSvg\"\r\n      ></i>\r\n    </div>\r\n  </button>\r\n\r\n  <small\r\n    *ngIf=\"control.invalid && (control.dirty || control.touched)\"\r\n    class=\"error-message\"\r\n  >\r\n    {{ getErrorMessage() }}\r\n  </small>\r\n\r\n  <div *ngIf=\"isCalendarVisible\" class=\"calendar\" [ngClass]=\"{ 'calendar--active': isCalendarVisible }\">\r\n    <div class=\"calendar__header\">\r\n      <span>{{ monthNames[currentMonth] }}, {{ currentYear }}</span>\r\n    </div>\r\n\r\n    <div class=\"calendar__grid\">\r\n      <div class=\"header-day\" *ngFor=\"let day of daysOfWeek\">{{ day }}</div>\r\n\r\n      <div\r\n        class=\"day\"\r\n        *ngFor=\"let day of getDaysInMonth()\"\r\n        [ngClass]=\"{\r\n          'other-month': day.getMonth() !== currentMonth,\r\n          selected: isSelected(day)\r\n        }\"\r\n        (click)=\"selectDate(day)\"\r\n      >\r\n        {{ day.getDate() }}\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { IconService } from '../../services/icon.service';\n\n@Component({\n  selector: 'n-modal',\n  standalone: true,\n  templateUrl: './modal.component.html',\n  styleUrls: ['./modal.component.css'],\n  imports: [CommonModule],\n})\nexport class ModalComponent implements OnInit {\n  @Input() visible: boolean = false;\n  @Input() header: string = '';\n  @Input() width: string = '500px';\n  @Input() closable: boolean = true;\n  @Input() closeOnEscape: boolean = true;\n  @Output() onClose = new EventEmitter<boolean>();\n\n  closeIcon: SafeHtml;\n\n  constructor(private sanitizer: DomSanitizer, private iconService: IconService) { }\n  \n  ngOnInit(): void {\n    this.loadCloseIcon()\n  }\n\n  close() {\n    this.visible = false;\n    this.onClose.emit(this.visible);\n  }\n\n  onOverlayClick(event: MouseEvent) {\n    if (event.target === event.currentTarget) {\n      this.close();\n    }\n  }\n\n  loadCloseIcon(): void {\n    const closeIconUrl = 'assets/icons/general/x-close.svg';\n    fetch(closeIconUrl)\n      .then((response) => response.text())\n      .then((svg) => {\n        this.closeIcon = this.sanitizer.bypassSecurityTrustHtml(\n          this.iconService.setIconColor(svg, '#98A2B3')\n        );\n      })\n      .catch((error) => {\n        console.error('Error loading close icon:', error);\n        this.closeIcon = '';\n      });\n  }\n}\n","<div class=\"modal__overlay\" *ngIf=\"visible\" (click)=\"onOverlayClick($event)\">\n  <div class=\"modal__content\" [style.width]=\"width\">\n    <div class=\"modal__content--icons\">\n      <i *ngIf=\"closable\" (click)=\"close()\" [innerHTML]=\"closeIcon\" class=\"icon\"></i>\n    </div>\n    <div class=\"modal__content--header\">\n      <p>{{ header }}</p>\n    </div>\n    <div class=\"modal__content--body\">\n      <ng-content></ng-content>\n    </div>\n  </div>\n</div>\n","import { NgClass } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'n-progress-bar',\n  standalone: true,\n  imports: [NgClass],\n  templateUrl: './progress-bar.component.html',\n  styleUrls: ['./progress-bar.component.css'],\n})\nexport class ProgressBarComponent {\n  @Input() progress: number = 0;\n  @Input() color: string = '#C9434B';\n}\n","<div class=\"progress-bar\">\n  <div class=\"progress-bar__background\">\n    <div class=\"progress-bar__fill\" [style.width.%]=\"progress\" [style.backgroundColor]=\"color\"></div>\n  </div>\n</div>","/*\r\n * Public API Surface of nworld-components\r\n */\r\n\r\nexport * from './lib/components/badge/badge.component';\r\nexport * from './lib/components/input/input.component';\r\nexport * from './lib/components/dropdown/dropdown.component';\r\nexport * from './lib/components/alert/alert.component';\r\nexport * from './lib/components/table/table.component';\r\nexport * from './lib/components/calendar/calendar.component';\r\nexport * from './lib/components/table/ITableColumns';\r\nexport * from './lib/services/icon.service';\r\nexport * from './lib/components/modal/modal.component';\r\nexport * from './lib/components/progress-bar/progress-bar.component';\r\nexport * from './lib/components/paginator/paginator.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.IconService","i1","i2.IconService","i3","i2"],"mappings":"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"}