// DateRangePicker component
class DateRangePicker {
constructor() {
this.state = {
startDate: new Date(),
endDate: new Date()
};
this.element = document.createElement('div');
this.element.className = 'date-range-picker';
this.render();
this.bindEvents();
}
render() {
this.element.innerHTML = `
to
`;
}
bindEvents() {
this.element.querySelector('.start-date-btn').addEventListener('click', () => {
this.setStartDate();
});
this.element.querySelector('.end-date-btn').addEventListener('click', () => {
this.setEndDate();
});
}
setStartDate() {
const input = prompt("Enter start date (YYYY-MM-DD)");
if (input) {
this.state.startDate = new Date(input);
this.render();
this.onDateChange();
}
}
setEndDate() {
const input = prompt("Enter end date (YYYY-MM-DD)");
if (input) {
this.state.endDate = new Date(input);
this.render();
this.onDateChange();
}
}
formatDate(date) {
return date.toLocaleDateString('en-US', {
month: 'short',
day: '2-digit',
year: 'numeric'
});
}
onDateChange() {
// To be implemented by parent
}
}
// Initialize and mount the component
document.addEventListener('DOMContentLoaded', () => {
const picker = new DateRangePicker();
document.querySelector('.date-range-picker').replaceWith(picker.element);
});