import {trierCandidats} from "../utils" import TableContainer from "@mui/material/TableContainer" import Paper from "@mui/material/Paper" import Table from "@mui/material/Table" import TableHead from "@mui/material/TableHead" import TableRow from "@mui/material/TableRow" import TableCell from "@mui/material/TableCell" import TableBody from "@mui/material/TableBody" export function TableauResultatsCandidatsLegislatives({blocs, candidats, nuances, donnees_t1, donnees_t2}) { const voixCandidats_t1 = donnees_t1?.voix ?? {} const voixCandidats_t2 = donnees_t2?.voix ?? {} const candidatsTriees = trierCandidats(candidats, voixCandidats_t1) const cellules_t1 = <> Voix tour 1 % Inscrit⋅es tour 1 % Exprimé⋅es tour 1 const cellules_t2 = Math.max(...Object.values(voixCandidats_t2)) === 0 ? <> : <> Voix tour 2 % Inscrit⋅es tour 2 % Exprimé⋅es tour 2 return <> Numéro Candidat Nuance Bloc {cellules_t1} {cellules_t2} {candidatsTriees.map((candidat) => ( ))}
} function LigneCandidat({candidat, voix_t1, voix_t2, donnees_t1, donnees_t2, nuances, blocs}) { const nuance = nuances.filter(nuance => nuance.code === candidat.nuance)[0] const bloc = blocs.filter(bloc => bloc.nom === candidat.bloc)[0] const gagnant = (voix_t2 > 0 && voix_t2 === Math.max(...Object.values(donnees_t2.voix))) || (voix_t1 === Math.max(...Object.values(donnees_t1.voix)) && voix_t1 / donnees_t1.exprimes >= 0.5 && voix_t1 / donnees_t1.inscrits >= 0.25) const cellules_t1 = <> {voix_t1} {(100 * voix_t1 / donnees_t1.inscrits).toFixed(2)} % {(100 * voix_t1 / donnees_t1.exprimes).toFixed(2)} % const cellules_t2 = !voix_t2 ? <> : <> {voix_t2} {(100 * voix_t2 / donnees_t2.inscrits).toFixed(2)} % {(100 * voix_t2 / donnees_t2.exprimes).toFixed(2)} % return {candidat.numero} {candidat.prenom} {candidat.nom} {nuance.nom} ({nuance.code}) {bloc.nom} {cellules_t1} {cellules_t2} } /** * Composant pour le tableau des résultats des élections législatives * @param blocs * @param nuances * @param donnees * @return {JSX.Element} * @constructor */ export function TableauResultatsNuancesLegislatives({blocs, nuances, donnees}) { const voixNuances = donnees?.voix ?? {} const nuancesTriees = trierCandidats(nuances, voixNuances, "code") return <> Nuance Bloc Voix % Inscrit⋅es % Exprimé⋅es {nuancesTriees.map((nuance) => ( ))}
} function LigneNuance({nuance, voix, donnees, blocs}) { const bloc = blocs.filter(bloc => bloc.nom === nuance.bloc)[0] return {nuance.nom} ({nuance.code}) {bloc.nom} {voix} {(100 * voix / donnees.inscrits).toFixed(2)} % {(100 * voix / donnees.exprimes).toFixed(2)} % }