République
française
dsfr-data
Documentation — Web Components DSFR pour la dataviz
Composant intermediaire de normalisation et nettoyage des données.
Se place entre <dsfr-data-source> et <dsfr-data-query>
pour nettoyer les données avant traitement.
Invisible : Ce composant ne rend rien visuellement. Il normalise les données et les redistribue aux composants en aval via le systeme d'événements.
dsfr-data-source → dsfr-data-normalize → dsfr-data-query → dsfr-data-chart
Normaliser avant dsfr-data-query permet aux filtres et agrégations de travailler
sur des données propres (evite les comparaisons string vs number).
"1234" au lieu de 1234)"12,5" vs "12.5")N/A, n.d., - par des valeurs exploitables32073247.269999996 a 32073247| Attribut | Type | Défaut | Description |
|---|---|---|---|
id | String | - | Requis. Identifiant de la sortie. |
source | String | "" | Requis. ID de la source a ecouter. |
numeric | String | "" | Champs a forcer en nombre (virgule-separes). |
numeric-auto | Boolean | false | Detection et conversion automatique des champs numériques. |
rename | String | "" | Renommage de clés : "ancien:nouveau | ancien2:nouveau2" |
trim | Boolean | false | Supprime les espaces en debut/fin des valeurs string. |
strip-html | Boolean | false | Supprime les balises HTML des valeurs string. |
replace | String | "" | Remplacement global de valeurs : "N/A: | n.d.: | -:0" |
replace-fields | String | "" | Remplacement cible par champ : "CHAMP:ancien:nouveau | CHAMP2:a:n". Ne remplace que dans le champ specifie. Combinable avec replace. |
flatten | String | "" | Clé du sous-objet a aplatir au premier niveau. Supporte la dot notation ("data.attributes"). |
round | String | "" | Arrondit les champs numériques. Format : "champ1, champ2" (0 decimales) ou "champ1:2, champ2:0" (N decimales). |
lowercase-keys | Boolean | false | Met toutes les clés en minuscules. |
compute | String | "" | Colonnes calculees (ligne a ligne, en dernier). Format : "cible = expression; cible2 = expr2". Supporte l'arithmetique + - * /, la concatenation texte (+ avec litteraux 'entre quotes') et les parentheses. Ex : "pct = valeur * 100; série = Indicateurs + ' / ' + Sous_theme". Hors perimetre : conditions, fonctions, calculs sur valeurs agregees. |
Separateurs : rename et replace utilisent le pipe |
pour separer les paires, et : pour separer la clé de la valeur.
replace-fields utilise le format CHAMP:pattern:remplacement (les 2 premiers : sont des delimiteurs).
numeric utilise la virgule.
Les données brutes RappelConso contiennent des noms de colonnes longs et techniques. On renomme les colonnes pour la lisibilite et on nettoie les espaces superflus.
{
"modeles_ou_references": " Lot 2024-ABC ",
"categorie_produit": "Alimentation",
"marque_produit": "Ma Marque",
"date_publication": "2024-06-15",
"motif_rappel": "Presence de Listeria"
}
{
"Produit": "Lot 2024-ABC", // trim + rename
"Catégorie": "Alimentation", // rename
"Marque": "Ma Marque", // rename
"Date": "2024-06-15", // rename
"Motif": "Presence de Listeria" // rename
}
<dsfr-data-source id="raw" api-type="opendatasoft"
dataset-id="rappelconso-v2-gtin-trie"
base-url="https://data.economie.gouv.fr"
server-side page-size="50">
</dsfr-data-source>
<dsfr-data-normalize id="clean" source="raw"
trim
rename="modeles_ou_references:Produit | categorie_produit:Catégorie | marque_produit:Marque | date_publication:Date | motif_rappel:Motif">
</dsfr-data-normalize>
<!-- Les données normalisees sont pretes pour query/chart -->
<dsfr-data-list source="clean" pagination="5"></dsfr-data-list>
Source → Normalize → Query → Chart
<dsfr-data-source id="raw" url="..." transform="results"></dsfr-data-source>
<dsfr-data-normalize id="clean" source="raw"
numeric="population, budget"
rename="pop_tot:Population totale | lib_dep:Departement"
trim
replace="N/A: | n.d.:">
</dsfr-data-normalize>
<dsfr-data-query id="stats" source="clean"
group-by="Departement"
aggregate="population:sum"
order-by="population__sum:desc"
limit="10">
</dsfr-data-query>
<dsfr-data-chart source="stats" type="bar"
label-field="Departement"
value-field="population__sum">
</dsfr-data-chart>
L'API INSEE Melodi retourne des codes de dimension (AGE: "Y30T39", PCS: "3").
replace-fields permet de les decoder sans affecter les autres champs
qui pourraient contenir les mêmes valeurs.
<dsfr-data-source id="raw" api-type="insee"
base-url="https://api.insee.fr/melodi"
dataset-id="DS_POPULATIONS_REFERENCE"
where="POPREF_MEASURE:eq:PMUN, TIME_PERIOD:eq:2023">
</dsfr-data-source>
<dsfr-data-normalize id="decoded" source="raw"
replace-fields="AGE:Y30T39:30-39 ans | AGE:Y_LT30:Moins de 30 ans | PCS:3:Cadres | PCS:5:Employes"
replace="N/A:">
</dsfr-data-normalize>
<dsfr-data-chart source="decoded" type="bar"
label-field="AGE" value-field="OBS_VALUE">
</dsfr-data-chart>