Listen to the article
`;
}
}
return html;
});
const previous_x = {};
for (let type_vote of listeVotes) {
groupes
.append(« rect »)
.attr(« class », « votes_rect » + type_vote)
.attr(« data-vote », type_vote)
.attr(« data-groupe », ([key, val]) => key)
.attr(« data-nombre », function ([key, val]) {
return val[type_vote].length;
})
/* EDIT : suppression du fill, remplacé par du CSS */
.attr(« stroke », function ([key, val]) {
return « #000 »;
})
.attr(« stroke-width », 0)
.attr(« x », function ([key, val]) {
return previous_x[key];
})
.attr(« width », function ([key, val]) {
const depts = val[type_vote].length;
if (previous_x.hasOwnProperty(key)) previous_x[key] += xScale(depts);
else previous_x[key] = xScale(depts);
return xScale(depts);
})
.attr(« height », yScale.bandwidth())
/* EDIT : suppression du contenu du tooltip, rappatrié sur le group plutôt que le rect */
.on(« mouseover », function (e, d) {
const selection = d3.select(this);
selection.style(« stroke-width », 1);
if (display_hemicycle) {
const classe = `circle.seat.${selection.attr(« data-vote »)}[data-groupe= »${selection.attr(« data-groupe »)} »]`;
d3.selectAll(classe).style(« stroke-width », 1).style(« stroke-dasharray », « none »);
}
})
.on(« mouseout », function (d) {
const selection = d3.select(this);
selection.style(« stroke-width », 0);
if (display_hemicycle) {
d3.selectAll(« circle.seat »).style(« stroke-width », null).style(« stroke-dasharray », null);
}
});
}
/* l’axe des ordonnées */
axesAssNat
.append(« g »)
.attr(« class », « axes x passelect »)
.call(
d3
.axisTop(xScale)
.ticks(nbrTicksAssNat)
.tickSizeOuter(0)
.tickFormat((d) => (d > 0 ? d : « »))
);
/* l’axe des abscisses */
axesAssNat
.append(« g »)
.attr(« class », « axes y passelect »)
.call(d3.axisLeft(yScale).tickFormat((d) => (dicoGroupes[d] ? (isMobile ? dicoGroupes[d].nom_court : dicoGroupes[d].nom_moyen) : d)));
grilleAssNat.append(« g »).attr(« class », « grid »).call(make_x_gridlines().tickSizeOuter(nbrTicksAssNat).tickSize(heightHistogram).tickFormat(« »));
/* la légende */
/* EDIT : Modification de la génération de la légende (avec plus de CSS pour les couleurs et une différenciation entre la légende groupes et hémicycle) */
let html_legende = « »;
for (let type_vote of listeVotes) {
const nb_votes = type_vote == « nonVotants » ? ceVote.nonVotantsVolontaires + ceVote.nonVotants : ceVote[type_vote];
if (voteClassique || type_vote === « pours » || type_vote === « nonVotants ») {
html_legende += `
${label_votes_short[type_vote]}
(${nb_votes ? nb_votes : « 0 »})
`;
} else {
console.log(type_vote);
}
}
contenant.select(`.d_legende_hemicycle`).html(html_legende);
contenant.select(`.d_legende_groupes`).html(html_legende);
}
Dans la course de fond pour doter la France d’un budget d’ici le 1er janvier 2026, les députés s’apprêtent à franchir une étape importante, en bouclant l’examen du projet de loi de financement de la Sécurité sociale (PLFSS). Après avoir voté les « recettes » de la « Sécu » le 8 novembre, ils doivent finaliser ce mercredi 12 novembre la partie « dépenses » du texte, qui porte notamment sur la suspension de la réforme des retraites.
Taxes, cotisations sociales, santé publique, alimentation… Tour d’horizon des principales mesures du PLFSS adoptées et rejetées à ce stade par les députés, et des positions prises par les différents groupes.
Il vous reste 93.46% de cet article à lire. La suite est réservée aux abonnés.









