{"version":3,"file":"year-picker.mjs","sources":["../../../projects/year-picker/src/lib/year-picker.service.ts","../../../projects/year-picker/src/lib/year-picker.component.ts","../../../projects/year-picker/src/lib/year-picker.module.ts","../../../projects/year-picker/src/public-api.ts","../../../projects/year-picker/src/year-picker.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class YearPickerService {\r\n\r\n  constructor() { }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-year-picker',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  template: `\r\n   <div class=\"year-picker-container position-relative\" (keydown)=\"onKeyDown($event)\">\r\n    <div class=\"input-group\">\r\n        <input type=\"text\" [value]=\"selectedYear || ''\" readonly [disabled]=\"disabled\"\r\n            class=\"form-control rounded-pill rounded-end-0 custom-year-picker\" placeholder=\"Select Year\"\r\n            (click)=\"togglePicker()\" aria-haspopup=\"true\" [attr.aria-expanded]=\"isOpen\" tabindex=\"0\"\r\n             />\r\n\r\n        <span class=\"input-group-text rounded-pill rounded-start-0 text-secondary\" [class.disabled]=\"disabled\"\r\n            (click)=\"disabled? null:togglePicker()\">\r\n            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-calendar\"\r\n                viewBox=\"0 0 16 16\">\r\n                <path\r\n                    d=\"M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z\" />\r\n            </svg>\r\n        </span>\r\n    </div>\r\n\r\n    <div class=\"dropdown-menu w-100 p-0 shadow\" [class.show]=\"isOpen\" style=\"min-width: 16rem;\">\r\n        <div class=\"d-flex align-items-center justify-content-between p-2 border-bottom\">\r\n            <button type=\"button\" class=\"btn btn-sm btn-link text-decoration-none\" (click)=\"navigateToPreviousYears()\"\r\n                [disabled]=\"minYear >= yearRows[0]?.[0]\" aria-label=\"Previous years\">\r\n                <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\"\r\n                    class=\"bi bi-chevron-left\" viewBox=\"0 0 16 16\">\r\n                    <path fill-rule=\"evenodd\"\r\n                        d=\"M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z\" />\r\n                </svg>\r\n            </button>\r\n            <span class=\"fw-bold\">\r\n                {{ (yearRows[0]?.[0] >= minYear && yearRows[0]?.[0] <= maxYear) ? yearRows[0]?.[0] : minYear }} - \r\n                {{ (yearRows[yearRows.length - 1]?.[yearRows[yearRows.length - 1].length - 1] <= maxYear && yearRows[yearRows.length - 1]?.[yearRows[yearRows.length - 1].length - 1] >= minYear) ? yearRows[yearRows.length - 1]?.[yearRows[yearRows.length - 1].length - 1] : maxYear }}\r\n            </span>\r\n            <button type=\"button\" class=\"btn btn-sm btn-link text-decoration-none\" (click)=\"navigateToNextYears()\"\r\n                [disabled]=\"maxYear <= yearRows[yearRows.length - 1]?.[yearRows[yearRows.length - 1].length - 1]\"\r\n                aria-label=\"Next years\">\r\n                <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\"\r\n                    class=\"bi bi-chevron-right\" viewBox=\"0 0 16 16\">\r\n                    <path fill-rule=\"evenodd\"\r\n                        d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\" />\r\n                </svg>\r\n            </button>\r\n        </div>\r\n        <div class=\"p-2\">\r\n            <div class=\"row g-1\" *ngFor=\"let row of yearRows\">\r\n                <div class=\"col-4\" *ngFor=\"let year of row\">\r\n                    <button type=\"button\" class=\"btn btn-sm w-100\" [class.btn-primary]=\"isYearSelected(year)\"\r\n                        [class.btn-outline-secondary]=\"!isYearSelected(year) && !isYearDisabled(year)\"\r\n                        [class.disabled]=\"isYearDisabled(year)\" [disabled]=\"isYearDisabled(year)\"\r\n                        (click)=\"selectYear(year)\" tabindex=\"0\">\r\n                        {{ year }}\r\n                    </button>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>\r\n  `,\r\n  styles: ``\r\n})\r\nexport class YearPickerComponent {\r\n  @Input() customClass: string = '';\r\n  @Input() minYear = 1900\r\n  @Input() maxYear :number = new Date().getFullYear();\r\n  @Input() selectedYear: number | null = null\r\n  @Output() yearSelected = new EventEmitter<number>()\r\n\r\n  currentYearView: number = new Date().getFullYear()\r\n  yearRows: number[][] = []\r\n  yearsPerPage = 9\r\n  isOpen = false\r\n  @Input() disabled = false\r\n\r\n  @HostListener('document:click', ['$event'])\r\n  onDocumentClick(event: MouseEvent): void {\r\n    if (this.isOpen && !this.elementRef.nativeElement.contains(event.target)) {\r\n      this.isOpen = false;\r\n    }\r\n  }\r\n  // ControlValueAccessor methods\r\n  onChange: any = () => {}\r\n  onTouched: any = () => {}\r\n\r\n  constructor(private elementRef: ElementRef) {\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.currentYearView = this.selectedYear || new Date().getFullYear();\r\n    this.clampCurrentYearView();\r\n    this.generateYearGrid()\r\n  }\r\n\r\n  togglePicker(): void {\r\n    if (!this.disabled) {\r\n      this.isOpen = !this.isOpen;\r\n      if (this.isOpen) {\r\n        this.currentYearView = this.selectedYear || new Date().getFullYear();\r\n        this.clampCurrentYearView(); // Ensure currentYearView is valid\r\n        this.generateYearGrid();\r\n      }\r\n    }\r\n  }\r\n\r\n  generateYearGrid(): void {\r\n    // Calculate the start year for the grid\r\n    const startYear = Math.floor(this.currentYearView / this.yearsPerPage) * this.yearsPerPage;\r\n    this.yearRows = [];\r\n    let years: number[] = [];\r\n\r\n    // Generate years within the minYear and maxYear boundaries\r\n    for (let i = 0; i < this.yearsPerPage; i++) {\r\n      const year = startYear + i;\r\n\r\n      // Only include years within the valid range\r\n      if (year >= this.minYear && year <= this.maxYear) {\r\n        years.push(year);\r\n      }\r\n\r\n      // Group years into rows of 3\r\n      if (years.length === 3 || i === this.yearsPerPage - 1) {\r\n        if (years.length > 0) {\r\n          this.yearRows.push([...years]);\r\n          years = [];\r\n        }\r\n      }\r\n    }\r\n\r\n    // If no years were added (e.g., startYear is way off), reset to a valid range\r\n    if (this.yearRows.length === 0) {\r\n      this.currentYearView = this.maxYear;\r\n      this.generateYearGrid(); // Recursively call to regenerate with a valid currentYearView\r\n    }\r\n  }\r\n\r\n  private clampCurrentYearView(): void {\r\n    if (this.currentYearView < this.minYear) {\r\n      this.currentYearView = this.minYear;\r\n    } else if (this.currentYearView > this.maxYear) {\r\n      this.currentYearView = this.maxYear;\r\n    }\r\n  }\r\n\r\n  selectYear(year: number): void {\r\n    this.selectedYear = year\r\n    this.onChange(year)\r\n    this.onTouched()\r\n    this.yearSelected.emit(year)\r\n    this.isOpen = false\r\n  }\r\n\r\n  navigateToPreviousYears(): void {\r\n    this.currentYearView -= this.yearsPerPage\r\n    this.clampCurrentYearView();\r\n    this.generateYearGrid()\r\n  }\r\n\r\n  navigateToNextYears(): void {\r\n    this.currentYearView = Number(this.currentYearView);\r\n    this.currentYearView += this.yearsPerPage;\r\n    this.clampCurrentYearView();\r\n    this.generateYearGrid()\r\n  }\r\n\r\n  isYearDisabled(year: number): boolean {\r\n    return year < this.minYear || year > this.maxYear\r\n  }\r\n\r\n  isYearSelected(year: number): boolean {\r\n    return this.selectedYear === year\r\n  }\r\n\r\n  // ControlValueAccessor interface implementation\r\n  writeValue(value: number): void {\r\n    this.selectedYear = value;\r\n    if (value) {\r\n      this.currentYearView = value;\r\n      this.clampCurrentYearView();\r\n      this.generateYearGrid();\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = 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    this.disabled = isDisabled;\r\n    if (!isDisabled) {\r\n      // When re-enabled, reset currentYearView to a valid value\r\n      this.currentYearView = this.selectedYear || new Date().getFullYear();\r\n      this.clampCurrentYearView();\r\n      this.generateYearGrid();\r\n    }\r\n  }\r\n\r\n  // Keyboard navigation\r\n  onKeyDown(event: KeyboardEvent): void {\r\n    if (!this.isOpen) {\r\n      if (event.key === \"Enter\" || event.key === \" \") {\r\n        this.togglePicker()\r\n        event.preventDefault()\r\n      }\r\n      return\r\n    }\r\n\r\n    switch (event.key) {\r\n      case \"Escape\":\r\n        this.isOpen = false\r\n        event.preventDefault()\r\n        break\r\n      case \"ArrowLeft\":\r\n        this.handleArrowLeft()\r\n        event.preventDefault()\r\n        break\r\n      case \"ArrowRight\":\r\n        this.handleArrowRight()\r\n        event.preventDefault()\r\n        break\r\n      case \"ArrowUp\":\r\n        this.handleArrowUp()\r\n        event.preventDefault()\r\n        break\r\n      case \"ArrowDown\":\r\n        this.handleArrowDown()\r\n        event.preventDefault()\r\n        break\r\n      case \"Enter\":\r\n      case \" \":\r\n        if (this.currentYearView >= this.minYear && this.currentYearView <= this.maxYear) {\r\n          this.selectYear(this.currentYearView)\r\n        }\r\n        event.preventDefault()\r\n        break\r\n      case \"Home\":\r\n        this.currentYearView = this.minYear\r\n        this.generateYearGrid()\r\n        event.preventDefault()\r\n        break\r\n      case \"End\":\r\n        this.currentYearView = this.maxYear\r\n        this.generateYearGrid()\r\n        event.preventDefault()\r\n        break\r\n      case \"PageUp\":\r\n        this.navigateToPreviousYears()\r\n        event.preventDefault()\r\n        break\r\n      case \"PageDown\":\r\n        this.navigateToNextYears()\r\n        event.preventDefault()\r\n        break\r\n    }\r\n  }\r\n\r\n  private handleArrowLeft(): void {\r\n    if (this.currentYearView > this.minYear) {\r\n      this.currentYearView--\r\n      this.generateYearGrid()\r\n    }\r\n  }\r\n\r\n  private handleArrowRight(): void {\r\n    if (this.currentYearView < this.maxYear) {\r\n      this.currentYearView++\r\n      this.generateYearGrid()\r\n    }\r\n  }\r\n\r\n  private handleArrowUp(): void {\r\n    if (this.currentYearView - 4 >= this.minYear) {\r\n      this.currentYearView -= 4\r\n      this.generateYearGrid()\r\n    }\r\n  }\r\n\r\n  private handleArrowDown(): void {\r\n    if (this.currentYearView + 4 <= this.maxYear) {\r\n      this.currentYearView += 4\r\n      this.generateYearGrid()\r\n    }\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { YearPickerComponent } from './year-picker.component';\r\n\r\n@NgModule({\r\n  imports: [CommonModule,YearPickerComponent],\r\n  exports: [YearPickerComponent]\r\n})\r\nexport class YearPickerModule { }\r\n","/*\r\n * Public API Surface of year-picker\r\n */\r\n\r\nexport * from './lib/year-picker.service';\r\nexport * from './lib/year-picker.component';\r\nexport * from './lib/year-picker.module';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}