Composables
Mappa composables
| Composable | Stato gestito | Service dipendente |
|---|---|---|
usePzetaFogliOptions | Opzioni risolte dal plugin | — |
useFogliList | Lista fogli + filtri + paginazione | FogliPostgrestService |
useSpreadsheet | Stato foglio aperto (FoglioState) + snapshot + lock | FogliPostgrestService, LockService, FortuneSheetAdapter |
useSpreadsheetERP | Catalogo + sorgenti attive + refresh | FogliPostgrestService, ErpDataService |
useSpreadsheetVersioni | Storico versioni + ripristino | FogliPostgrestService |
useFogliAcl | ACL foglio (lettura/scrittura) | FogliPostgrestService |
useGlobalFilters | Filtri globali del foglio + autosave | FogliPostgrestService |
useTheme | Stato tema (light/dark/system) globale | — |
Quando usare un composable invece di SpreadsheetEditor
Usa direttamente i composables quando vuoi:
- UI custom: layout completamente diverso dall'editor di default
- Solo lista: pagina dashboard che mostra solo metadati fogli senza editor
- Solo backend: scripting/batch che usa i service senza UI
- Test/Storybook: stato controllato manualmente
Per la maggior parte dei casi però, SpreadsheetEditor e FogliListView sono sufficienti — usano questi composables internamente.
Esempio composto: editor custom
<script setup lang="ts">
import { ref } from 'vue'
import {
useSpreadsheet,
useSpreadsheetERP,
useGlobalFilters,
useSpreadsheetVersioni,
} from '@pzeta/vue-foglidicalcolo'
const foglioId = ref<number | null>(42)
const mode = ref<'edit' | 'view'>('edit')
const spreadsheet = useSpreadsheet({
foglioId,
mode,
autosaveInterval: ref(60),
onSave: (e) => console.log('Saved rev.', e.revisione),
onError: (e) => console.error('Editor error:', e),
})
const globalFilters = useGlobalFilters({
idfolio: foglioId,
})
const erp = useSpreadsheetERP({
idfolio: foglioId,
filtriGlobali: globalFilters.filtri,
sorgentiConfig: computed(() => erp.sorgentiAttive.value.map((s) => s.config)),
})
const versioni = useSpreadsheetVersioni()
// Carica al mount, monta l'adapter su un container DOM custom
// ...
</script>
Sotto-pagine
useFogliAcl
ACL foglio. CRUD permessi lettura/scrittura per utente.
useFogliList
Lista fogli con ricerca full-text debounced, filtri tipo (all/mine/shared/templates), paginazione e CRUD veloce.
useGlobalFilters
Filtri globali del foglio (periodo, idcliente, idreparto, testoLibero) con autosave debounced su PostgREST.
usePzetaFogliOptions
Accesso alle opzioni risolte del plugin PzetaFogliDiCalcolo iniettate via provide. Throw se il plugin non è installato.
useSpreadsheet
Composable principale dell'editor. Gestisce load/save snapshot, lock pessimistico con heartbeat, autosave, undo/redo e cella API.
useSpreadsheetERP
Catalogo sorgenti ERP, gestione sorgenti attive sul foglio, refresh debounced sui filtri globali, auto-refresh interval.
useSpreadsheetVersioni
Storico versioni di un foglio. Lista summary ordinata desc + ripristino come nuova revisione.
useTheme
Gestione tema chiaro/scuro/sistema con persistenza localStorage e sincronizzazione MediaQuery del SO.