import { Component, Input, OnInit } from '@angular/core'; import { AbstractControl, FormControl, FormGroup } from '@angular/forms'; import { Calendar, CircleAlert } from 'lucide-angular'; @Component({ selector: 'kit-daterange-picker', templateUrl: './daterange-picker.component.html', styleUrls: ['../styles/index.scss'], }) export class DateRangePickerComponent implements OnInit { @Input() controlStart!: AbstractControl | any; @Input() controlEnd!: AbstractControl | any; @Input() placeholderStart: string = 'DD/MM/AAAA'; @Input() placeholderEnd: string = 'DD/MM/AAAA'; @Input() minDate?: Date | any; @Input() maxDate?: Date | any; @Input() label: string = ''; @Input() messageErrorCustom?: string = ''; @Input() descriptionTooltip: string = ''; @Input() separator: string = '-'; readonly calendarIcon = Calendar; readonly infoCircle = CircleAlert; rangeFormGroup!: FormGroup; ngOnInit(): void { this.rangeFormGroup = new FormGroup({ start: this.controlStart as FormControl, end: this.controlEnd as FormControl }); } isControlRequired(): boolean { if (this.controlStart && this.controlStart.validator) { const validator = this.controlStart.validator({} as any); return !!(validator && validator['required']); } return false; } hasStartError(errorName: string): boolean { return this.controlStart?.hasError(errorName) ?? false; } hasEndError(errorName: string): boolean { return this.controlEnd?.hasError(errorName) ?? false; } }