{"version":3,"file":"obelisco-angular-calendar.mjs","sources":["../../../projects/obelisco-angular/calendar/o-calendar.component.ts","../../../projects/obelisco-angular/calendar/o-calendar.component.html","../../../projects/obelisco-angular/calendar/o-calendar.module.ts","../../../projects/obelisco-angular/calendar/obelisco-angular-calendar.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { ActiveDay, CalendarDate } from 'obelisco-angular/core/models';\n\n@Component({\n  selector: 'o-calendar',\n  templateUrl: './o-calendar.component.html',\n  styleUrls: ['./o-calendar.component.scss'],\n})\nexport class OCalendarComponent implements OnInit {\n  @Input() public date!: CalendarDate;\n  @Input() public activeDays: ActiveDay[] = [];\n  @Input() public isCollapsed: boolean = false;\n  @Input() public hasList: boolean = true;\n  @Input() public customClasses: string = '';\n\n  public month: number | null = null;\n  public year: number | null = null;\n  public start: number = 0;\n  public MONTH_TITLE = [\n    'Enero',\n    'Febrero',\n    'Marzo',\n    'Abril',\n    'Mayo',\n    'Junio',\n    'Julio',\n    'Agosto',\n    'Septiembre',\n    'Octubre',\n    'Noviembre',\n    'Diciembre',\n  ];\n  public DAYS_HEADER_TABLE = ['D', 'L', 'M', 'M', 'J', 'V', 'S'];\n  public daysArray: number[] = [];\n  public emptyDaysArray: any[] = [];\n  public firstWeekDays: number = 0;\n  public firstWeekDaysArray: number[] = [];\n  public weekDaysArray: number[] = [];\n  public analizedActiveDays: ActiveDay[] = [];\n\n  //Determina el dia de la semana en que empieza del mes de determinado año\n  getStartDayOfMonth(year: number, month: number): number {\n    const firstDayOfMonth = new Date(year, month - 1, 1);\n    const dayOfWeek = firstDayOfMonth.getDay();\n    this.start = dayOfWeek;\n    return this.start;\n  }\n\n  //Define número de días por mes\n  public monthAmountOfDays = (month: number, year?: number): number => {\n    if (typeof month !== 'number' || month < 1 || month > 12) {\n      return 0;\n    }\n\n    if (month === 4 || month === 6 || month === 9 || month === 11) {\n      return 30;\n    } else if (month === 2) {\n      return (year ? year : 2024) % 4 === 0 ? 29 : 28;\n    } else {\n      return 31;\n    }\n  };\n\n  //Define texto del mes\n  public monthsTitles = (month?: number) => {\n    if (month && month >= 1 && month <= 12) {\n      return this.MONTH_TITLE[month - 1];\n    } else {\n      return 'Mes inválido';\n    }\n  };\n\n  // Genera filas de 7 días cada una\n  get weekDaysArrayRows(): { rows: number[][]; counter: number } {\n    const rows: number[][] = [];\n    const rowSize = 7;\n    const arrayLength = this.weekDaysArray.length;\n    let counter: number = 0;\n\n    for (let i = 0; i < arrayLength; i += rowSize) {\n      rows.push(this.weekDaysArray.slice(i, i + rowSize));\n      counter += 1;\n    }\n\n    // Se añaden elementos vacios si es necesario para completar la última fila\n    const lastChunkLength = rows[rows.length - 1].length;\n    if (lastChunkLength < rowSize) {\n      const remainingSpecials = rowSize - lastChunkLength;\n      for (let i = 0; i < remainingSpecials; i++) {\n        rows[rows.length - 1].push(-1);\n      }\n    }\n    return { rows, counter };\n  }\n\n  //Evalua si hay numeros de activeDays que coincidan\n  isActiveDay(day: number): boolean {\n    return !!this.analizedActiveDays?.find(\n      (activeDay) => activeDay.day === day\n    );\n  }\n\n  getActiveDay(day: number): ActiveDay | undefined {\n    return this.analizedActiveDays?.find((activeDay) => activeDay.day === day);\n  }\n\n  //Convierte array de days en objetos\n  convertArrayIntoObject(objeto: any): any[] {\n    const dayArray = objeto.day;\n    if (Array.isArray(dayArray)) {\n      return dayArray.map((day) => ({\n        ...objeto,\n        day: day,\n      }));\n    } else {\n      return [objeto];\n    }\n  }\n\n  //Evalua cada activeDay\n  generateArrayActiveDays(activeDays: ActiveDay[]): ActiveDay[] | undefined {\n    for (const key in activeDays) {\n      if (Object.prototype.hasOwnProperty.call(activeDays, key)) {\n        const element = activeDays[key];\n        if (typeof element.day == 'number') {\n          this.analizedActiveDays.push(element);\n        } else {\n          for (const obj of this.convertArrayIntoObject(element)) {\n            this.analizedActiveDays.push(obj);\n          }\n        }\n      }\n    }\n    return this.analizedActiveDays;\n  }\n\n  //Obtiene clase de cada activeDay acorde al type\n  getClassByType(type: string | undefined): string {\n    if (type == undefined) {\n      return 'active';\n    } else if (type == 'secondary') {\n      return 'active-secondary';\n    } else {\n      return `active bg-${type}`;\n    }\n  }\n\n  //Obtiene el tipo de day y lo asigna a la lista\n  typeOfDays(day: number | number[] | undefined): string {\n    if (!day) {\n      return '';\n    } else if (typeof day === 'number') {\n      return `${day}.`;\n    } else {\n      if (day.length > 2) {\n        return `${day[0]} al ${day[day.length - 1]}.`;\n      } else {\n        return `${day[0]}, ${day[day.length - 1]}.`;\n      }\n    }\n  }\n\n  constructor() {}\n\n  ngOnInit(): void {\n    if (this.date) {\n      this.month = this.date.month;\n      this.year = this.date.year;\n    }\n\n    this.getStartDayOfMonth(this.year!, this.month!);\n\n    this.daysArray = Array.from(\n      { length: this.monthAmountOfDays(this.month!, this.year!) },\n      (_, index) => index + 1\n    );\n\n    this.emptyDaysArray =\n      this.start < 7\n        ? Array.from({ length: this.start }, (_, index) => ({ key: index }))\n        : [];\n\n    this.firstWeekDays = 7 - this.start;\n\n    this.firstWeekDaysArray = this.daysArray.slice(0, this.firstWeekDays);\n\n    this.weekDaysArray = this.daysArray.slice(this.firstWeekDays);\n\n    if (this.activeDays) {\n      this.generateArrayActiveDays(this.activeDays);\n    }\n  }\n}\n","<div class=\"calendar\" [ngClass]=\"customClasses\">\n  <div class=\"calendar-header\">\n    <h2 class=\"calendar-title\">{{ monthsTitles(month!) }}</h2>\n    <span class=\"calendar-year\">{{ year }}</span>\n  </div>\n  <div class=\"calendar-body\">\n    <table>\n      <thead>\n        <tr class=\"calendar-week-header\">\n          <th *ngFor=\"let day of DAYS_HEADER_TABLE\">\n            <span>{{ day }}</span>\n          </th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr class=\"calendar-week\">\n          <ng-container *ngIf=\"emptyDaysArray.length != 0\">\n            <td *ngFor=\"let empatyDay of emptyDaysArray\"></td>\n          </ng-container>\n          <td *ngFor=\"let day of firstWeekDaysArray\">\n            <ng-container *ngTemplateOutlet=\"activeDay; context: { day: day }\"></ng-container>\n          </td>\n        </tr>\n\n        <tr class=\"calendar-week\" *ngFor=\"let chunkObject of weekDaysArrayRows.rows\">\n          <ng-container *ngFor=\"let day of chunkObject; let i = index\">\n            <td>\n              <ng-container *ngIf=\"day >= 0\">\n                <ng-container *ngTemplateOutlet=\"activeDay; context: { day: day }\"></ng-container>\n              </ng-container>\n              <ng-container *ngIf=\"day < 0\">\n                <span></span>\n              </ng-container>\n            </td>\n          </ng-container>\n        </tr>\n        <tr class=\"calendar-week\" *ngIf=\"weekDaysArrayRows.counter === 4\">\n          <td *ngFor=\"let _ of [1, 2, 3, 4, 5, 6, 7]\">\n            <span></span>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n  <div class=\"calendar-footer\" *ngIf=\"activeDays && hasList\">\n    <ng-container *ngIf=\"isCollapsed; else calendarList\">\n      <div class=\"accordion\">\n        <div class=\"card\">\n          <button\n            class=\"card-header collapsed\"\n            data-toggle=\"collapse\"\n            [attr.data-target]=\"'#collapse' + monthsTitles(month!)\"\n          >\n            <i class=\"bx bx-calendar\"></i>\n            <span class=\"collapse-title\">Referencias</span>\n          </button>\n          <div id=\"collapse{{ monthsTitles(month!) }}\" class=\"collapse\">\n            <div class=\"card-body\">\n              <ng-container *ngTemplateOutlet=\"calendarList\"></ng-container>\n            </div>\n          </div>\n        </div>\n      </div>\n    </ng-container>\n  </div>\n</div>\n\n<ng-template #calendarList>\n  <ul class=\"calendar-footer-list\">\n    <li *ngFor=\"let activeDay of activeDays\">\n      <strong>\n        {{ typeOfDays(activeDay.day) }}\n      </strong>\n      {{ activeDay.title }}\n    </li>\n  </ul>\n</ng-template>\n\n<ng-template #activeDay let-day=\"day\">\n  <ng-container *ngIf=\"isActiveDay(day); else notActive\">\n    <a\n      *ngIf=\"getActiveDay(day)?.url != undefined; else activeNoLink\"\n      href=\"{{ getActiveDay(day)?.url }}\"\n      class=\"calendar-link\"\n      title=\"{{ getActiveDay(day)?.title }}\"\n      [class.disabled]=\"getActiveDay(day)?.isDisabled\"\n      (click)=\"getActiveDay(day)?.isDisabled && $event.preventDefault()\"\n    >\n      <span [ngClass]=\"getClassByType(getActiveDay(day)?.type)\">{{ day }}</span>\n    </a>\n    <ng-template #activeNoLink>\n      <span title=\"{{ getActiveDay(day)?.title }}\" [class.disabled]=\"getActiveDay(day)?.isDisabled\">\n        <span [ngClass]=\"getClassByType(getActiveDay(day)?.type)\">{{ day }}</span>\n      </span>\n    </ng-template>\n  </ng-container>\n  <ng-template #notActive>\n    <span>{{ day }}</span>\n  </ng-template>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OCalendarComponent } from './o-calendar.component';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n  declarations: [OCalendarComponent],\n  imports: [CommonModule, RouterModule],\n  exports: [OCalendarComponent]\n})\nexport class OCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}