class TaskFilter extends HTMLElement {
connectedCallback() {
this.attachShadow({ mode: 'open' });
this.shadowRoot.innerHTML = `
`;
this.shadowRoot.getElementById('applyFilter').addEventListener('click', () => {
const filters = {
status: this.shadowRoot.getElementById('statusFilter').value,
priority: this.shadowRoot.getElementById('priorityFilter').value,
date: this.shadowRoot.getElementById('dateFilter').value
};
this.dispatchEvent(new CustomEvent('filter-changed', { detail: filters }));
});
this.shadowRoot.getElementById('resetFilter').addEventListener('click', () => {
this.shadowRoot.getElementById('statusFilter').value = 'all';
this.shadowRoot.getElementById('priorityFilter').value = 'all';
this.shadowRoot.getElementById('dateFilter').value = '';
this.dispatchEvent(new CustomEvent('filter-changed', { detail: {} }));
});
}
}
customElements.define('task-filter', TaskFilter);