Composant · Données
GanttChart
DocumentéGanttChart visualise un planning : une ligne par tâche, une barre horizontale couvrant `start → end` sur un axe temporel commun (positions numériques : jours, semaines ou index). La couleur suit la catégorie de chaque tâche (jusqu'à huit teintes) ou reste unie. Un marqueur vertical optionnel matérialise « aujourd'hui ».
Exemples
Planning de projet
Quatre tâches réparties en deux lots (Étude, Build). Chaque barre démarre à son `start` et s'étend jusqu'à `end` ; le trait pointillé rouge repère le jour courant.
Planning de projet
- Étude
- Build
- Cadrage: 0 → 3
- Conception: 3 → 8
- Développement: 6 → 16
- Recette: 14 → 20
Voir le code (Svelte)
<div class="chart-wrapper">
<GanttChart
label="Planning projet : semaines"
data={[{"task":"Cadrage","start":0,"end":3,"category":"Étude"},{"task":"Conception","start":3,"end":8,"category":"Étude"},{"task":"Développement","start":6,"end":16,"category":"Build"},{"task":"Recette","start":14,"end":20,"category":"Build"}]}
marker={10}
/>
</div>API du composant
| Prop | Type | Par défaut |
|---|---|---|
data | GanttChartTask[] | requis |
label | string | requis |
width | number | 640 |
height | number | 320 |
marker | number | optionnel |
class | string | optionnel |
GanttChartTask = { task: string; start: number; end: number; category?: string }
Accessibilité
`label` alimente le conteneur `role="img"`. Chaque tâche expose `tâche → start → end` dans une liste accessible hors SVG ; la légende des catégories est une vraie liste HTML.
Notes d'usage
`start` et `end` sont des positions numériques sur un même axe (jours, semaines, index). Le composant normalise les bornes inversées (`start ≤ end`), ignore les tâches non finies ou sans libellé, et tronque les libellés longs à gauche.
Tokens
--st-semantic-data-category1…--st-semantic-data-category8--st-semantic-feedback-error--st-semantic-border-subtle--st-semantic-text-secondary--st-semantic-surface-inverse--st-semantic-text-inverse--st-radius-sm
Piloté par store
La version adaptateur (@sentropic/dataviz-svelte, -react, -vue, -angular) dérive les barres
d’un DashboardStore partagé : task, start et end désignent les champs de ligne, le reste
du contrat est inchangé.
Planning (store)
Voir le code (Svelte)
<div class="chart-wrapper">
<GanttChart
store={store}
viewId="store"
task="task"
start="start"
end="end"
label="Planning (store)"
/>
</div>| Prop | Type | Par défaut |
|---|---|---|
store | DashboardStore | requis |
viewId | string | requis |
task / start / end | string | requis |
category | string | non défini |
width / height | number | natif |
marker | number | non défini |
label | string | requis (a11y) |
Props du natif non reprises par la version store : data (dérivé
du store via task / start / end).