Aller au contenu

Composant · Données

DashboardGrid

WP20

DashboardGrid compose un canvas de tuiles analytiques par coordonnées de grille. Le mode éditable expose des contrôles accessibles pour déplacer et redimensionner les tuiles sans dépendance drag-and-drop.

Grille statique

Grille statique

Voir le code (Svelte)
<DashboardGrid
  label="Static grid"
  tiles={[{"id":"revenue","x":0,"y":0,"w":4,"h":2,"title":"Revenue","value":"$1.8M","description":"+12% vs previous period"},{"id":"conversion","x":4,"y":0,"w":4,"h":2,"title":"Conversion","value":"8.4%","description":"Qualified funnel"},{"id":"latency","x":8,"y":0,"w":4,"h":2,"title":"Latency","value":"124 ms","description":"P95 API response"},{"id":"pipeline","x":0,"y":2,"w":8,"h":2,"title":"Pipeline","value":"47 deals","description":"Open opportunities"},{"id":"risk","x":8,"y":2,"w":4,"h":2,"title":"Risk","value":"Low","description":"No critical alerts"}]}
/>

Mode édition

Mode édition

Voir le code (Svelte)
<DashboardGrid
  label="Edit mode"
  editable
  tiles={[{"id":"revenue","x":0,"y":0,"w":4,"h":2,"title":"Revenue","value":"$1.8M","description":"+12% vs previous period"},{"id":"conversion","x":4,"y":0,"w":4,"h":2,"title":"Conversion","value":"8.4%","description":"Qualified funnel"},{"id":"latency","x":8,"y":0,"w":4,"h":2,"title":"Latency","value":"124 ms","description":"P95 API response"},{"id":"pipeline","x":0,"y":2,"w":8,"h":2,"title":"Pipeline","value":"47 deals","description":"Open opportunities"},{"id":"risk","x":8,"y":2,"w":4,"h":2,"title":"Risk","value":"Low","description":"No critical alerts"}]}
/>

API du composant

PropTypePar défaut
tilesDashboardGridTile[]requis
columnsnumber12
rowHeightnumber88
gapnumber16
editablebooleanfalse
labelstring"Dashboard grid"
onLayout(tiles) => voidoptionnel

DashboardGridTile = { id: string; x: number; y: number; w: number; h: number; title?: string; description?: string; value?: string }

Notes d'usage

Les collisions sont autorisées dans cette première version et se superposent dans la grille CSS. Le callback reçoit toujours le layout complet normalisé, dans l'ordre d'entrée.