SpreadsheetErpPanel
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)
| Prop | Tipo | Descrizione |
|---|---|---|
catalogo | SorgenteCatalogo[] | Catalogo sorgenti disponibili |
sorgentiAttive | ErpDataSource[] | Sorgenti già configurate sul foglio |
filtriGlobali | GlobalFilters | Filtri globali correnti del foglio |
isRefreshing | boolean | Refresh in corso |
permessoEffettivo | 'proprietario' | 'scrittura' | 'lettura' | Limita azioni se lettura |
Eventi
| Evento | Payload | Quando |
|---|---|---|
add-source | DataSourceConfig | Aggiunta nuova sorgente |
remove-source | string (codice) | Rimozione sorgente |
refresh-source | string (codice) | Refresh sorgente singola |
refresh-all | — | Refresh tutte le sorgenti |
update-filtri-sorgente | { codice: string, filtri: Record<string, unknown> } | Modifica filtri specifici |
update-global-filters | GlobalFilters | Modifica 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
- Utente clicca
+su una voce del catalogo - 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
usaFiltriGlobaliper ereditare i filtri del foglio limitRighe(default 100)
- Submit → emit
add-sourceconDataSourceConfigcompleto useSpreadsheetERP.addSource(config)lo aggiunge asorgentiAttive- 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:
tipo | Controllo UI |
|---|---|
daterange | Date range picker (due DatePicker o CalendarRange) |
integer | InputNumber |
string | InputText |
boolean | Checkbox o ToggleSwitch |
select | Select con options dichiarate |
Stati delle sorgenti
| Stato | UI |
|---|---|
isLoading === true | Spinner sulla card sorgente |
error !== null | Bordo rosso + messaggio inline |
| Caricata | Numero 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
SorgenteCatalogo— voci del catalogoErpDataSource— sorgenti attive con datiDataSourceConfig— configurazione di una sorgente attivauseSpreadsheetERP
SpreadsheetEditor
Componente orchestratore dell'editor foglio. Carica metadati + snapshot + lock, monta Fortune Sheet, gestisce panel ERP/versioni/ACL, autosave e refresh interval.
SpreadsheetLockIndicator
Badge inline che mostra lo stato del lock del foglio. Visualizza owner, scadenza e azione di rilascio per il lock owner.