Componenti

SpreadsheetErpPanel

Pannello laterale per gestire le sorgenti ERP collegate al foglio. Aggiunta, rimozione, refresh, filtri specifici.

Scopo

Pannello laterale (Splitter destro) di SpreadsheetEditor che permette all'utente di:

  • consultare il catalogo sorgenti ERP disponibili
  • aggiungere una sorgente al foglio configurando cella destinazione + filtri
  • rimuovere una sorgente attiva
  • refresh singolo o globale dei dati
  • modificare i filtri specifici per istanza
  • abilitare/disabilitare ereditarietà dai filtri globali
  • visualizzare stato (loading/error/totale righe/ultima sync)

Props (interfaccia tipica)

PropTipoDescrizione
catalogoSorgenteCatalogo[]Catalogo sorgenti disponibili
sorgentiAttiveErpDataSource[]Sorgenti già configurate sul foglio
filtriGlobaliGlobalFiltersFiltri globali correnti del foglio
isRefreshingbooleanRefresh in corso
permessoEffettivo'proprietario' | 'scrittura' | 'lettura'Limita azioni se lettura

Eventi

EventoPayloadQuando
add-sourceDataSourceConfigAggiunta nuova sorgente
remove-sourcestring (codice)Rimozione sorgente
refresh-sourcestring (codice)Refresh sorgente singola
refresh-allRefresh tutte le sorgenti
update-filtri-sorgente{ codice: string, filtri: Record<string, unknown> }Modifica filtri specifici
update-global-filtersGlobalFiltersModifica filtri globali

Layout

┌──────────────────────────────────────────┐
│ ► Sorgenti attive          [Refresh All] │
│                                          │
│  📊 fatture_riepilogo                    │
│     A1, sheet 0 — 4231 righe             │
│     [filtri ▸] [refresh] [×]             │
│                                          │
│  📋 ordini_riepilogo                     │
│     A1, sheet 1 — 892 righe              │
│     [filtri ▸] [refresh] [×]             │
│                                          │
├──────────────────────────────────────────┤
│ ► Catalogo sorgenti                      │
│                                          │
│  + Riepilogo fatture                     │
│  + Riepilogo ordini                      │
│  + Riepilogo DDT                         │
│  + Anagrafica clienti                    │
│  + Scadenze                              │
│  + ...                                   │
└──────────────────────────────────────────┘

Flusso aggiunta sorgente

  1. Utente clicca + su una voce del catalogo
  2. Si apre un mini-form per:
    • selezionare tab/sheet di destinazione
    • inserire cella di partenza (es. A1, C5)
    • compilare i filtri (tipo dichiarato in SorgenteCatalogo.parametri)
    • flag usaFiltriGlobali per ereditare i filtri del foglio
    • limitRighe (default 100)
  3. Submit → emit add-source con DataSourceConfig completo
  4. useSpreadsheetERP.addSource(config) lo aggiunge a sorgentiAttive
  5. Automaticamente parte un refreshSource(codice)

Schema filtri

Lo schema di filtri è dichiarato in SorgenteCatalogo.parametri:

interface FiltroSorgenteSchema {
  tipo: 'daterange' | 'integer' | 'string' | 'boolean' | 'select'
  label?: string
  required?: boolean
  options?: Array<{ value: string | number; label: string }>
}

Il pannello renderizza dinamicamente i controlli appropriati:

tipoControllo UI
daterangeDate range picker (due DatePicker o CalendarRange)
integerInputNumber
stringInputText
booleanCheckbox o ToggleSwitch
selectSelect con options dichiarate

Stati delle sorgenti

StatoUI
isLoading === trueSpinner sulla card sorgente
error !== nullBordo rosso + messaggio inline
CaricataNumero righe + timestamp ultima sync

Permessi

Se permessoEffettivo === 'lettura', il pannello è in modalità sola-consultazione: catalogo non navigabile, no add/remove/edit filtri. Solo refresh consentito.

Quando usarlo da solo

Il pannello è progettato per essere usato dentro SpreadsheetEditor. Per scenari custom (es. configurazione sorgenti senza editor), riusa direttamente useSpreadsheetERP e costruisci la tua UI.

Tipi correlati