@oneluiz/dual-datepicker 2.6.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.angular/cache/18.2.21/demo/angular-compiler.db +0 -0
- package/.angular/cache/18.2.21/demo/angular-compiler.db-lock +0 -0
- package/.nojekyll +0 -0
- package/CHANGELOG.md +254 -0
- package/GITHUB_PAGES.md +82 -0
- package/MIGRATION_V3.md +210 -0
- package/README.md +180 -89
- package/angular.json +75 -0
- package/dist/LICENSE +21 -0
- package/dist/README.md +925 -0
- package/dist/dual-datepicker.component.d.ts +101 -0
- package/dist/esm2022/dual-datepicker.component.mjs +448 -0
- package/{esm2022 → dist/esm2022}/public-api.mjs +1 -1
- package/dist/fesm2022/oneluiz-dual-datepicker.mjs +853 -0
- package/dist/fesm2022/oneluiz-dual-datepicker.mjs.map +1 -0
- package/{public-api.d.ts → dist/public-api.d.ts} +1 -1
- package/ng-package.json +7 -0
- package/package.json +24 -20
- package/dual-datepicker.component.d.ts +0 -91
- package/esm2022/dual-datepicker.component.mjs +0 -362
- package/fesm2022/oneluiz-dual-datepicker.mjs +0 -767
- package/fesm2022/oneluiz-dual-datepicker.mjs.map +0 -1
- /package/{date-adapter.d.ts → dist/date-adapter.d.ts} +0 -0
- /package/{esm2022 → dist/esm2022}/date-adapter.mjs +0 -0
- /package/{esm2022 → dist/esm2022}/native-date-adapter.mjs +0 -0
- /package/{esm2022 → dist/esm2022}/oneluiz-dual-datepicker.mjs +0 -0
- /package/{esm2022 → dist/esm2022}/preset-utils.mjs +0 -0
- /package/{index.d.ts → dist/index.d.ts} +0 -0
- /package/{native-date-adapter.d.ts → dist/native-date-adapter.d.ts} +0 -0
- /package/{preset-utils.d.ts → dist/preset-utils.d.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oneluiz-dual-datepicker.mjs","sources":["../../src/date-adapter.ts","../../src/native-date-adapter.ts","../../src/dual-datepicker.component.ts","../../src/dual-datepicker.component.html","../../src/preset-utils.ts","../../src/public-api.ts","../../src/oneluiz-dual-datepicker.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/**\n * Abstract class for date adapters.\n * Allows the component to work with different date libraries (Date, DayJS, date-fns, Luxon, etc.)\n */\nexport abstract class DateAdapter<T = any> {\n /**\n * Parses a value into a date object\n * @param value - Value to parse (string, number, or date object)\n * @returns Parsed date object\n */\n abstract parse(value: any): T | null;\n\n /**\n * Formats a date object into a string\n * @param date - Date object to format\n * @param format - Optional format string\n * @returns Formatted date string\n */\n abstract format(date: T, format?: string): string;\n\n /**\n * Adds days to a date\n * @param date - Date object\n * @param days - Number of days to add (can be negative)\n * @returns New date object\n */\n abstract addDays(date: T, days: number): T;\n\n /**\n * Adds months to a date\n * @param date - Date object\n * @param months - Number of months to add (can be negative)\n * @returns New date object\n */\n abstract addMonths(date: T, months: number): T;\n\n /**\n * Gets the year from a date\n * @param date - Date object\n * @returns Year number\n */\n abstract getYear(date: T): number;\n\n /**\n * Gets the month from a date (0-11)\n * @param date - Date object\n * @returns Month number (0-11)\n */\n abstract getMonth(date: T): number;\n\n /**\n * Gets the day of month from a date\n * @param date - Date object\n * @returns Day of month (1-31)\n */\n abstract getDate(date: T): number;\n\n /**\n * Gets the day of week from a date (0-6, Sunday = 0)\n * @param date - Date object\n * @returns Day of week (0-6)\n */\n abstract getDay(date: T): number;\n\n /**\n * Creates a new date object\n * @param year - Year\n * @param month - Month (0-11)\n * @param date - Day of month (1-31)\n * @returns New date object\n */\n abstract createDate(year: number, month: number, date: number): T;\n\n /**\n * Gets today's date\n * @returns Today's date object\n */\n abstract today(): T;\n\n /**\n * Checks if two dates are the same day\n * @param a - First date\n * @param b - Second date\n * @returns True if same day\n */\n abstract isSameDay(a: T | null, b: T | null): boolean;\n\n /**\n * Checks if a date is before another\n * @param a - First date\n * @param b - Second date\n * @returns True if a is before b\n */\n abstract isBefore(a: T | null, b: T | null): boolean;\n\n /**\n * Checks if a date is after another\n * @param a - First date\n * @param b - Second date\n * @returns True if a is after b\n */\n abstract isAfter(a: T | null, b: T | null): boolean;\n\n /**\n * Checks if a date is between two other dates\n * @param date - Date to check\n * @param start - Start date\n * @param end - End date\n * @returns True if date is between start and end\n */\n abstract isBetween(date: T | null, start: T | null, end: T | null): boolean;\n\n /**\n * Clones a date object\n * @param date - Date to clone\n * @returns Cloned date object\n */\n abstract clone(date: T): T;\n\n /**\n * Checks if a value is a valid date\n * @param date - Value to check\n * @returns True if valid date\n */\n abstract isValid(date: any): boolean;\n}\n\n/**\n * Injection token for DateAdapter\n */\nexport const DATE_ADAPTER = new InjectionToken<DateAdapter>('DATE_ADAPTER');\n","import { Injectable } from '@angular/core';\nimport { DateAdapter } from './date-adapter';\n\n/**\n * Date adapter implementation for native JavaScript Date objects\n * This is the default adapter used by the component\n */\n@Injectable()\nexport class NativeDateAdapter extends DateAdapter<Date> {\n parse(value: any): Date | null {\n if (!value) return null;\n \n if (value instanceof Date) {\n return new Date(value);\n }\n \n if (typeof value === 'string' || typeof value === 'number') {\n const date = new Date(value);\n return this.isValid(date) ? date : null;\n }\n \n return null;\n }\n\n format(date: Date, format: string = 'YYYY-MM-DD'): string {\n if (!this.isValid(date)) return '';\n \n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n \n // Simple format implementation\n switch (format) {\n case 'YYYY-MM-DD':\n return `${year}-${month}-${day}`;\n case 'MM/DD/YYYY':\n return `${month}/${day}/${year}`;\n case 'DD/MM/YYYY':\n return `${day}/${month}/${year}`;\n default:\n return `${year}-${month}-${day}`;\n }\n }\n\n addDays(date: Date, days: number): Date {\n const result = this.clone(date);\n result.setDate(result.getDate() + days);\n return result;\n }\n\n addMonths(date: Date, months: number): Date {\n const result = this.clone(date);\n result.setMonth(result.getMonth() + months);\n return result;\n }\n\n getYear(date: Date): number {\n return date.getFullYear();\n }\n\n getMonth(date: Date): number {\n return date.getMonth();\n }\n\n getDate(date: Date): number {\n return date.getDate();\n }\n\n getDay(date: Date): number {\n return date.getDay();\n }\n\n createDate(year: number, month: number, date: number): Date {\n return new Date(year, month, date);\n }\n\n today(): Date {\n return new Date();\n }\n\n isSameDay(a: Date | null, b: Date | null): boolean {\n if (!a || !b) return false;\n if (!this.isValid(a) || !this.isValid(b)) return false;\n \n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n }\n\n isBefore(a: Date | null, b: Date | null): boolean {\n if (!a || !b) return false;\n if (!this.isValid(a) || !this.isValid(b)) return false;\n \n return a.getTime() < b.getTime();\n }\n\n isAfter(a: Date | null, b: Date | null): boolean {\n if (!a || !b) return false;\n if (!this.isValid(a) || !this.isValid(b)) return false;\n \n return a.getTime() > b.getTime();\n }\n\n isBetween(date: Date | null, start: Date | null, end: Date | null): boolean {\n if (!date || !start || !end) return false;\n if (!this.isValid(date) || !this.isValid(start) || !this.isValid(end)) return false;\n \n const dateTime = date.getTime();\n const startTime = start.getTime();\n const endTime = end.getTime();\n \n return dateTime >= startTime && dateTime <= endTime;\n }\n\n clone(date: Date): Date {\n return new Date(date.getTime());\n }\n\n isValid(date: any): boolean {\n return date instanceof Date && !isNaN(date.getTime());\n }\n}\n","import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges, HostListener, ElementRef, forwardRef, signal, computed, effect, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DateAdapter, DATE_ADAPTER } from './date-adapter';\nimport { NativeDateAdapter } from './native-date-adapter';\n\nexport interface DateRange {\n fechaInicio: string;\n fechaFin: string;\n rangoTexto: string;\n}\n\nexport interface PresetRange {\n start: string;\n end: string;\n}\n\nexport interface PresetConfig {\n label: string;\n /** @deprecated Use getValue() instead for more flexibility */\n daysAgo?: number;\n getValue?: () => PresetRange;\n}\n\nexport interface LocaleConfig {\n monthNames?: string[];\n monthNamesShort?: string[];\n dayNames?: string[];\n dayNamesShort?: string[];\n firstDayOfWeek?: number; // 0 = Sunday, 1 = Monday, etc.\n}\n\n@Component({\n selector: 'ngx-dual-datepicker',\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n templateUrl: './dual-datepicker.component.html',\n styleUrl: './dual-datepicker.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DualDatepickerComponent),\n multi: true\n },\n {\n provide: DATE_ADAPTER,\n useClass: NativeDateAdapter\n }\n ]\n})\nexport class DualDatepickerComponent implements OnInit, OnChanges, ControlValueAccessor {\n @Input() placeholder: string = 'Select date range';\n @Input() fechaInicio: string = '';\n @Input() fechaFin: string = '';\n @Input() showPresets: boolean = true;\n @Input() showClearButton: boolean = false;\n @Input() closeOnSelection: boolean = true;\n @Input() closeOnPresetSelection: boolean = true;\n @Input() closeOnClickOutside: boolean = true;\n @Input() presets: PresetConfig[] = [\n { label: 'Last month', daysAgo: 30 },\n { label: 'Last 6 months', daysAgo: 180 },\n { label: 'Last year', daysAgo: 365 }\n ];\n @Input() inputBackgroundColor: string = '#fff';\n @Input() inputTextColor: string = '#495057';\n @Input() inputBorderColor: string = '#ced4da';\n @Input() inputBorderColorHover: string = '#ced4da';\n @Input() inputBorderColorFocus: string = '#80bdff';\n @Input() inputPadding: string = '0.375rem 0.75rem';\n @Input() locale: LocaleConfig = {};\n\n @Output() dateRangeChange = new EventEmitter<DateRange>();\n @Output() dateRangeSelected = new EventEmitter<DateRange>();\n\n // Date adapter injection\n private dateAdapter = inject<DateAdapter>(DATE_ADAPTER);\n\n // Signals for reactive state\n mostrarDatePicker = signal(false);\n rangoFechas = signal('');\n fechaSeleccionandoInicio = signal(true);\n mesActual = signal(this.dateAdapter.today());\n mesAnterior = signal(this.dateAdapter.today());\n diasMesActual = signal<any[]>([]);\n diasMesAnterior = signal<any[]>([]);\n isDisabled = signal(false);\n\n // Computed values\n nombreMesActual = computed(() => this.getNombreMes(this.mesActual()));\n nombreMesAnterior = computed(() => this.getNombreMes(this.mesAnterior()));\n diasSemana = computed(() => this.getDayNames());\n\n private readonly defaultMonthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n private readonly defaultMonthNamesShort = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n private readonly defaultDayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n private readonly defaultDayNamesShort = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];\n\n // ControlValueAccessor callbacks\n private onChange: (value: DateRange | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor(private elementRef: ElementRef) {\n // Effect to emit changes when dates change\n effect(() => {\n const rango = this.rangoFechas();\n if (this.fechaInicio || this.fechaFin) {\n this.onChange(this.getDateRangeValue());\n }\n });\n }\n\n @HostListener('document:click', ['$event'])\n onClickOutside(event: MouseEvent): void {\n if (this.mostrarDatePicker() && this.closeOnClickOutside) {\n const clickedInside = this.elementRef.nativeElement.contains(event.target);\n if (!clickedInside) {\n this.cerrarDatePicker();\n }\n }\n }\n\n ngOnInit(): void {\n if (this.fechaInicio && this.fechaFin) {\n this.actualizarRangoFechasTexto();\n this.generarCalendarios();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['fechaInicio'] || changes['fechaFin']) {\n if (this.fechaInicio && this.fechaFin) {\n this.actualizarRangoFechasTexto();\n this.generarCalendarios();\n } else if (!this.fechaInicio && !this.fechaFin) {\n this.rangoFechas.set('');\n }\n }\n }\n\n formatearFecha(fecha: Date): string {\n const year = this.dateAdapter.getYear(fecha);\n const month = String(this.dateAdapter.getMonth(fecha) + 1).padStart(2, '0');\n const day = String(this.dateAdapter.getDate(fecha)).padStart(2, '0');\n return `${year}-${month}-${day}`;\n }\n\n formatearFechaDisplay(fechaStr: string): string {\n if (!fechaStr) return '';\n const fecha = this.dateAdapter.parse(fechaStr);\n if (!fecha) return '';\n const monthNames = this.locale.monthNamesShort || this.defaultMonthNamesShort;\n return `${this.dateAdapter.getDate(fecha)} ${monthNames[this.dateAdapter.getMonth(fecha)]}`;\n }\n\n actualizarRangoFechasTexto(): void {\n if (this.fechaInicio && this.fechaFin) {\n const inicio = this.formatearFechaDisplay(this.fechaInicio);\n const fin = this.formatearFechaDisplay(this.fechaFin);\n this.rangoFechas.set(`${inicio} - ${fin}`);\n } else {\n this.rangoFechas.set('');\n }\n }\n\n toggleDatePicker(): void {\n this.mostrarDatePicker.update(value => !value);\n if (this.mostrarDatePicker()) {\n this.fechaSeleccionandoInicio.set(true);\n const mesActualValue = this.mesActual();\n const año = this.dateAdapter.getYear(mesActualValue);\n const mes = this.dateAdapter.getMonth(mesActualValue);\n const mesAnteriorDate = this.dateAdapter.createDate(año, mes - 1, 1);\n this.mesAnterior.set(mesAnteriorDate);\n this.generarCalendarios();\n }\n this.onTouched();\n }\n\n cerrarDatePicker(): void {\n this.mostrarDatePicker.set(false);\n this.onTouched();\n }\n\n generarCalendarios(): void {\n this.diasMesAnterior.set(this.generarCalendarioMes(this.mesAnterior()));\n this.diasMesActual.set(this.generarCalendarioMes(this.mesActual()));\n }\n\n generarCalendarioMes(fecha: Date): any[] {\n const año = this.dateAdapter.getYear(fecha);\n const mes = this.dateAdapter.getMonth(fecha);\n const primerDia = this.dateAdapter.createDate(año, mes, 1);\n const ultimoDia = this.dateAdapter.createDate(año, mes + 1, 0);\n const diasEnMes = this.dateAdapter.getDate(ultimoDia);\n const primerDiaSemana = this.dateAdapter.getDay(primerDia);\n\n const diasMes = [];\n\n for (let i = 0; i < primerDiaSemana; i++) {\n diasMes.push({ dia: null, esMesActual: false });\n }\n\n for (let dia = 1; dia <= diasEnMes; dia++) {\n const fechaDia = this.dateAdapter.createDate(año, mes, dia);\n const fechaStr = this.formatearFecha(fechaDia);\n diasMes.push({\n dia: dia,\n fecha: fechaStr,\n esMesActual: true,\n esInicio: this.fechaInicio === fechaStr,\n esFin: this.fechaFin === fechaStr,\n enRango: this.estaEnRango(fechaStr)\n });\n }\n\n return diasMes;\n }\n\n estaEnRango(fechaStr: string): boolean {\n if (!this.fechaInicio || !this.fechaFin) return false;\n return fechaStr >= this.fechaInicio && fechaStr <= this.fechaFin;\n }\n\n seleccionarDia(diaObj: any): void {\n if (!diaObj.esMesActual || this.isDisabled()) return;\n\n if (this.fechaSeleccionandoInicio()) {\n this.fechaInicio = diaObj.fecha;\n this.fechaFin = '';\n this.rangoFechas.set('');\n this.fechaSeleccionandoInicio.set(false);\n this.emitirCambio();\n } else {\n if (diaObj.fecha < this.fechaInicio) {\n this.fechaFin = this.fechaInicio;\n this.fechaInicio = diaObj.fecha;\n } else {\n this.fechaFin = diaObj.fecha;\n }\n this.actualizarRangoFechasTexto();\n if (this.closeOnSelection) {\n this.mostrarDatePicker.set(false);\n }\n this.fechaSeleccionandoInicio.set(true);\n this.emitirCambio();\n this.emitirSeleccion();\n }\n this.generarCalendarios();\n }\n\n cambiarMes(direccion: number): void {\n const mesActualValue = this.mesActual();\n const año = this.dateAdapter.getYear(mesActualValue);\n const mes = this.dateAdapter.getMonth(mesActualValue);\n const nuevoMesActual = this.dateAdapter.createDate(año, mes + direccion, 1);\n this.mesActual.set(nuevoMesActual);\n \n const añoNuevo = this.dateAdapter.getYear(nuevoMesActual);\n const mesNuevo = this.dateAdapter.getMonth(nuevoMesActual);\n const mesAnteriorNuevo = this.dateAdapter.createDate(añoNuevo, mesNuevo - 1, 1);\n this.mesAnterior.set(mesAnteriorNuevo);\n this.generarCalendarios();\n }\n\n getNombreMes(fecha: Date): string {\n const monthNames = this.locale.monthNames || this.defaultMonthNames;\n return `${monthNames[this.dateAdapter.getMonth(fecha)]} ${this.dateAdapter.getYear(fecha)}`;\n }\n\n getDayNames(): string[] {\n return this.locale.dayNamesShort || this.defaultDayNamesShort;\n }\n\n seleccionarRangoPredefinido(preset: PresetConfig): void {\n let start: string;\n let end: string;\n\n // New flexible pattern with getValue()\n if (preset.getValue) {\n const range = preset.getValue();\n start = range.start;\n end = range.end;\n }\n // Backward compatibility with daysAgo pattern\n else if (preset.daysAgo !== undefined) {\n const hoy = this.dateAdapter.today();\n const fechaInicio = this.dateAdapter.addDays(hoy, -preset.daysAgo);\n start = this.formatearFecha(fechaInicio);\n end = this.formatearFecha(hoy);\n }\n else {\n console.error('PresetConfig must have either getValue() or daysAgo');\n return;\n }\n\n this.fechaInicio = start;\n this.fechaFin = end;\n this.actualizarRangoFechasTexto();\n this.generarCalendarios();\n if (this.closeOnPresetSelection) {\n this.mostrarDatePicker.set(false);\n }\n this.emitirSeleccion();\n }\n\n limpiar(): void {\n this.fechaInicio = '';\n this.fechaFin = '';\n this.rangoFechas.set('');\n this.mostrarDatePicker.set(false);\n this.fechaSeleccionandoInicio.set(true);\n this.emitirCambio();\n this.onTouched();\n }\n\n private emitirCambio(): void {\n this.dateRangeChange.emit({\n fechaInicio: this.fechaInicio,\n fechaFin: this.fechaFin,\n rangoTexto: this.rangoFechas()\n });\n }\n\n private emitirSeleccion(): void {\n this.dateRangeSelected.emit({\n fechaInicio: this.fechaInicio,\n fechaFin: this.fechaFin,\n rangoTexto: this.rangoFechas()\n });\n }\n\n private getDateRangeValue(): DateRange {\n return {\n fechaInicio: this.fechaInicio,\n fechaFin: this.fechaFin,\n rangoTexto: this.rangoFechas()\n };\n }\n\n // ControlValueAccessor implementation\n writeValue(value: DateRange | null): void {\n if (value) {\n this.fechaInicio = value.fechaInicio || '';\n this.fechaFin = value.fechaFin || '';\n if (this.fechaInicio && this.fechaFin) {\n this.actualizarRangoFechasTexto();\n this.generarCalendarios();\n }\n } else {\n this.fechaInicio = '';\n this.fechaFin = '';\n this.rangoFechas.set('');\n }\n }\n\n registerOnChange(fn: (value: DateRange | null) => 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.isDisabled.set(isDisabled);\n }\n}\n","<div class=\"datepicker-wrapper\" \n [style.--input-border-hover]=\"inputBorderColorHover\"\n [style.--input-border-focus]=\"inputBorderColorFocus\">\n <input \n type=\"text\" \n class=\"datepicker-input\" \n [value]=\"rangoFechas()\" \n (click)=\"toggleDatePicker()\" \n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled()\"\n [ngStyle]=\"{\n 'background-color': inputBackgroundColor,\n 'color': inputTextColor,\n 'border-color': inputBorderColor,\n 'padding': inputPadding\n }\"\n readonly>\n\n @if (mostrarDatePicker()) {\n <div class=\"date-picker-dropdown\">\n @if (showPresets) {\n <div class=\"date-picker-presets\">\n @for (preset of presets; track preset.label) {\n <button type=\"button\" (click)=\"seleccionarRangoPredefinido(preset)\">{{ preset.label }}</button>\n }\n <button type=\"button\" class=\"btn-close-calendar\" (click)=\"cerrarDatePicker()\" title=\"Close\">\n ×\n </button>\n </div>\n }\n\n @if (!showPresets) {\n <div class=\"date-picker-header-only-close\">\n <button type=\"button\" class=\"btn-close-calendar\" (click)=\"cerrarDatePicker()\" title=\"Close\">\n ×\n </button>\n </div>\n }\n\n <!-- Calendars -->\n <div class=\"date-picker-calendars\">\n <!-- Previous month calendar -->\n <div class=\"date-picker-calendar\">\n <div class=\"date-picker-header\">\n <button type=\"button\" (click)=\"cambiarMes(-1)\">\n <svg width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" 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\"/>\n </svg>\n </button>\n <span>{{ nombreMesAnterior() }}</span>\n <button type=\"button\" style=\"visibility: hidden;\">\n <svg width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" 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\"/>\n </svg>\n </button>\n </div>\n <div class=\"date-picker-weekdays\">\n @for (dayName of diasSemana(); track $index) {\n <span>{{ dayName }}</span>\n }\n </div>\n <div class=\"date-picker-days\">\n @for (diaObj of diasMesAnterior(); track diaObj.fecha || $index) {\n <button \n type=\"button\"\n class=\"date-picker-day\" \n [class.empty]=\"!diaObj.esMesActual\"\n [class.selected]=\"diaObj.esInicio || diaObj.esFin\"\n [class.in-range]=\"diaObj.enRango && !diaObj.esInicio && !diaObj.esFin\"\n (click)=\"seleccionarDia(diaObj)\"\n [disabled]=\"!diaObj.esMesActual\">\n {{ diaObj.dia }}\n </button>\n }\n </div>\n </div>\n\n <!-- Current month calendar -->\n <div class=\"date-picker-calendar\">\n <div class=\"date-picker-header\">\n <button type=\"button\" style=\"visibility: hidden;\">\n <svg width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" 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\"/>\n </svg>\n </button>\n <span>{{ nombreMesActual() }}</span>\n <button type=\"button\" (click)=\"cambiarMes(1)\">\n <svg width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" 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\"/>\n </svg>\n </button>\n </div>\n <div class=\"date-picker-weekdays\">\n @for (dayName of diasSemana(); track $index) {\n <span>{{ dayName }}</span>\n }\n </div>\n <div class=\"date-picker-days\">\n @for (diaObj of diasMesActual(); track diaObj.fecha || $index) {\n <button \n type=\"button\"\n class=\"date-picker-day\" \n [class.empty]=\"!diaObj.esMesActual\"\n [class.selected]=\"diaObj.esInicio || diaObj.esFin\"\n [class.in-range]=\"diaObj.enRango && !diaObj.esInicio && !diaObj.esFin\"\n (click)=\"seleccionarDia(diaObj)\"\n [disabled]=\"!diaObj.esMesActual\">\n {{ diaObj.dia }}\n </button>\n }\n </div>\n </div>\n </div>\n\n <!-- Footer with clear button -->\n @if (showClearButton) {\n <div class=\"date-picker-footer\">\n <button type=\"button\" class=\"btn-clear\" (click)=\"limpiar()\" title=\"Clear selection\">\n Clear\n </button>\n </div>\n }\n </div>\n }\n</div>\n","import { PresetConfig, PresetRange } from './dual-datepicker.component';\n\n/**\n * Utility functions for creating common date range presets\n * Perfect for dashboards, reporting, POS, BI apps, and ERP systems\n */\n\n/**\n * Format a date as YYYY-MM-DD string\n */\nfunction formatDate(date: Date): string {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}`;\n}\n\n/**\n * Get the start of today\n */\nexport function getToday(): PresetRange {\n const today = new Date();\n return {\n start: formatDate(today),\n end: formatDate(today)\n };\n}\n\n/**\n * Get yesterday's date range\n */\nexport function getYesterday(): PresetRange {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n return {\n start: formatDate(yesterday),\n end: formatDate(yesterday)\n };\n}\n\n/**\n * Get last N days (including today)\n */\nexport function getLastNDays(days: number): PresetRange {\n const end = new Date();\n const start = new Date();\n start.setDate(start.getDate() - days + 1);\n return {\n start: formatDate(start),\n end: formatDate(end)\n };\n}\n\n/**\n * Get this week (Monday to Sunday)\n */\nexport function getThisWeek(): PresetRange {\n const today = new Date();\n const dayOfWeek = today.getDay();\n const start = new Date(today);\n // Adjust to Monday (1) as first day of week\n const daysToMonday = dayOfWeek === 0 ? 6 : dayOfWeek - 1;\n start.setDate(start.getDate() - daysToMonday);\n \n const end = new Date(start);\n end.setDate(end.getDate() + 6);\n \n return {\n start: formatDate(start),\n end: formatDate(end)\n };\n}\n\n/**\n * Get last week (Monday to Sunday)\n */\nexport function getLastWeek(): PresetRange {\n const today = new Date();\n const dayOfWeek = today.getDay();\n const daysToMonday = dayOfWeek === 0 ? 6 : dayOfWeek - 1;\n \n const lastMonday = new Date(today);\n lastMonday.setDate(lastMonday.getDate() - daysToMonday - 7);\n \n const lastSunday = new Date(lastMonday);\n lastSunday.setDate(lastSunday.getDate() + 6);\n \n return {\n start: formatDate(lastMonday),\n end: formatDate(lastSunday)\n };\n}\n\n/**\n * Get this month (1st to last day)\n */\nexport function getThisMonth(): PresetRange {\n const today = new Date();\n const start = new Date(today.getFullYear(), today.getMonth(), 1);\n const end = new Date(today.getFullYear(), today.getMonth() + 1, 0);\n \n return {\n start: formatDate(start),\n end: formatDate(end)\n };\n}\n\n/**\n * Get last month (1st to last day)\n */\nexport function getLastMonth(): PresetRange {\n const today = new Date();\n const start = new Date(today.getFullYear(), today.getMonth() - 1, 1);\n const end = new Date(today.getFullYear(), today.getMonth(), 0);\n \n return {\n start: formatDate(start),\n end: formatDate(end)\n };\n}\n\n/**\n * Get month to date (1st of current month to today)\n */\nexport function getMonthToDate(): PresetRange {\n const today = new Date();\n const start = new Date(today.getFullYear(), today.getMonth(), 1);\n \n return {\n start: formatDate(start),\n end: formatDate(today)\n };\n}\n\n/**\n * Get this quarter (Q1, Q2, Q3, or Q4)\n */\nexport function getThisQuarter(): PresetRange {\n const today = new Date();\n const currentMonth = today.getMonth();\n const quarterStartMonth = Math.floor(currentMonth / 3) * 3;\n \n const start = new Date(today.getFullYear(), quarterStartMonth, 1);\n const end = new Date(today.getFullYear(), quarterStartMonth + 3, 0);\n \n return {\n start: formatDate(start),\n end: formatDate(end)\n };\n}\n\n/**\n * Get last quarter\n */\nexport function getLastQuarter(): PresetRange {\n const today = new Date();\n const currentMonth = today.getMonth();\n const lastQuarterStartMonth = Math.floor(currentMonth / 3) * 3 - 3;\n \n const start = new Date(today.getFullYear(), lastQuarterStartMonth, 1);\n const end = new Date(today.getFullYear(), lastQuarterStartMonth + 3, 0);\n \n return {\n start: formatDate(start),\n end: formatDate(end)\n };\n}\n\n/**\n * Get quarter to date (start of current quarter to today)\n */\nexport function getQuarterToDate(): PresetRange {\n const today = new Date();\n const currentMonth = today.getMonth();\n const quarterStartMonth = Math.floor(currentMonth / 3) * 3;\n \n const start = new Date(today.getFullYear(), quarterStartMonth, 1);\n \n return {\n start: formatDate(start),\n end: formatDate(today)\n };\n}\n\n/**\n * Get this year (January 1 to December 31)\n */\nexport function getThisYear(): PresetRange {\n const today = new Date();\n const start = new Date(today.getFullYear(), 0, 1);\n const end = new Date(today.getFullYear(), 11, 31);\n \n return {\n start: formatDate(start),\n end: formatDate(end)\n };\n}\n\n/**\n * Get last year\n */\nexport function getLastYear(): PresetRange {\n const today = new Date();\n const start = new Date(today.getFullYear() - 1, 0, 1);\n const end = new Date(today.getFullYear() - 1, 11, 31);\n \n return {\n start: formatDate(start),\n end: formatDate(end)\n };\n}\n\n/**\n * Get year to date (January 1 to today)\n */\nexport function getYearToDate(): PresetRange {\n const today = new Date();\n const start = new Date(today.getFullYear(), 0, 1);\n \n return {\n start: formatDate(start),\n end: formatDate(today)\n };\n}\n\n/**\n * Get last N months (including current partial month)\n */\nexport function getLastNMonths(months: number): PresetRange {\n const today = new Date();\n const start = new Date(today);\n start.setMonth(start.getMonth() - months);\n \n return {\n start: formatDate(start),\n end: formatDate(today)\n };\n}\n\n/**\n * Get last N years\n */\nexport function getLastNYears(years: number): PresetRange {\n const today = new Date();\n const start = new Date(today);\n start.setFullYear(start.getFullYear() - years);\n \n return {\n start: formatDate(start),\n end: formatDate(today)\n };\n}\n\n/**\n * Pre-built preset configurations for common use cases\n * Import and use these directly in your component\n */\nexport const CommonPresets = {\n /**\n * Dashboard presets - Perfect for analytics dashboards\n */\n dashboard: [\n { label: 'Today', getValue: getToday },\n { label: 'Yesterday', getValue: getYesterday },\n { label: 'Last 7 days', getValue: () => getLastNDays(7) },\n { label: 'Last 30 days', getValue: () => getLastNDays(30) },\n { label: 'This month', getValue: getThisMonth },\n { label: 'Last month', getValue: getLastMonth }\n ] as PresetConfig[],\n\n /**\n * Reporting presets - Perfect for business reporting\n */\n reporting: [\n { label: 'Today', getValue: getToday },\n { label: 'This week', getValue: getThisWeek },\n { label: 'Last week', getValue: getLastWeek },\n { label: 'This month', getValue: getThisMonth },\n { label: 'Last month', getValue: getLastMonth },\n { label: 'This quarter', getValue: getThisQuarter },\n { label: 'Last quarter', getValue: getLastQuarter }\n ] as PresetConfig[],\n\n /**\n * Financial presets - Perfect for ERP and accounting systems\n */\n financial: [\n { label: 'Month to date', getValue: getMonthToDate },\n { label: 'Quarter to date', getValue: getQuarterToDate },\n { label: 'Year to date', getValue: getYearToDate },\n { label: 'Last month', getValue: getLastMonth },\n { label: 'Last quarter', getValue: getLastQuarter },\n { label: 'Last year', getValue: getLastYear }\n ] as PresetConfig[],\n\n /**\n * Analytics presets - Perfect for BI and data analysis\n */\n analytics: [\n { label: 'Last 7 days', getValue: () => getLastNDays(7) },\n { label: 'Last 14 days', getValue: () => getLastNDays(14) },\n { label: 'Last 30 days', getValue: () => getLastNDays(30) },\n { label: 'Last 60 days', getValue: () => getLastNDays(60) },\n { label: 'Last 90 days', getValue: () => getLastNDays(90) },\n { label: 'Last 180 days', getValue: () => getLastNDays(180) },\n { label: 'Last 365 days', getValue: () => getLastNDays(365) }\n ] as PresetConfig[],\n\n /**\n * Simple presets - Basic common ranges\n */\n simple: [\n { label: 'Today', getValue: getToday },\n { label: 'Last 7 days', getValue: () => getLastNDays(7) },\n { label: 'Last 30 days', getValue: () => getLastNDays(30) },\n { label: 'This year', getValue: getThisYear }\n ] as PresetConfig[]\n};\n","/**\n * Public API Surface of @oneluiz/dual-datepicker\n */\n\nexport { DualDatepickerComponent } from './dual-datepicker.component';\nexport type { DateRange, PresetConfig, PresetRange, LocaleConfig } from './dual-datepicker.component';\n\n// Date Adapter System\nexport { DateAdapter, DATE_ADAPTER } from './date-adapter';\nexport { NativeDateAdapter } from './native-date-adapter';\n\n// Preset Utilities\nexport * from './preset-utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|