data = d3
.rollups(
t1_resultats.filter((d) =>
["NFP", "ENS", "RN"].includes(groupes[d.CodNuaCand])
),
(d) => ({
c:
d3.greatest(
d.filter((d2) => groupes[d2.CodNuaCand] == "NFP"),
(d2) => d2.NbVoix
) || 0,
b:
d3.greatest(
d.filter((d2) => groupes[d2.CodNuaCand] == "ENS"),
(d2) => d2.NbVoix
) || 0,
a:
d3.greatest(
d.filter((d2) => groupes[d2.CodNuaCand] == "RN"),
(d2) => d2.NbVoix
) || 0,
candidats: d,
top_t1: groupes[d3.greatest(d, (d2) => d2.NbVoix).CodNuaCand] || "Autres",
top_t2: !t1_resultats
.filter((d2) => d2.CodCirc2 == d[0].CodCirc2)
.some((c) => c.Elu == "OUI")
? groupes[
d3.greatest(
t2_resultats.filter((d2) => d2.CodCirc2 == d[0].CodCirc2),
(d2) => d2.NbVoix
).CodNuaCand
] || "Autres"
: null,
exprimes: d3.sum(d, (d) => d.NbVoix),
desistement: desistements.find((d2) => d2[0] == d[0].CodCirc2)
}),
(d) => d.CodCirc2
)
.filter((d) => d[1].candidats.length == 3)