import { api } from '../../lib/api.mjs'; const COLUMNS = [ { key: 'draft', label: 'Draft', color: 'var(--status-draft)' }, { key: 'assigned', label: 'Assigned', color: 'var(--status-assigned)' }, { key: 'scheduled', label: 'Scheduled', color: 'var(--status-scheduled)' }, { key: 'in_progress', label: 'In Progress', color: 'var(--status-in_progress)' }, { key: 'pending_review', label: 'Pending Review', color: 'var(--status-pending_review)' }, { key: 'closed', label: 'Closed', color: 'var(--status-closed)' }, ]; const PRI_COLOR = { low:'var(--priority-low)', normal:'var(--priority-normal)', high:'var(--priority-high)', urgent:'var(--priority-urgent)' }; class WoKanban extends HTMLElement { #data = []; #dragging = null; connectedCallback() { this.attachShadow({ mode: 'open' }); this.#load(); } async #load() { try { this.#data = await api.get('/work-orders') ?? []; } catch { this.#data = []; } this.#render(); } #render() { const s = this.shadowRoot; const byStatus = Object.fromEntries(COLUMNS.map(c => [c.key, this.#data.filter(w => w.status === c.key)])); s.innerHTML = `