08/03/26 - 20h

branche_01062025
Cherif 2026-03-08 20:14:55 +01:00
parent 8d785eed51
commit 6cde7925a4
9 changed files with 3105 additions and 2686 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -112,7 +112,7 @@ const useStyles = makeStyles((theme) => ({
color: 'gray',
},
}));
const Jurys_Admission = (props) => {
registerLocale('fr', fr);

View File

@ -1037,7 +1037,7 @@ const Module_Absence = (props) => {
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> MySy Information</DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_1_message}
{Dialog_1_message}
</DialogContentText>
<nav style={{ "float": "left", "width": "100%" }}>
@ -1118,7 +1118,7 @@ const Module_Absence = (props) => {
</div>
<nav style={{ "float": "left", "width": "100%" }}>
<div className="session_caract_Dialog" style={{ width: '50%' }}> Debut
<div className="session_caract_Dialog" style={{ width: '50%' }}> Debut <br/>
<DatePicker
name="event_dialog_start"
id="event_dialog_start"
@ -1143,7 +1143,7 @@ const Module_Absence = (props) => {
</div>
<div className="session_caract_Dialog" style={{ width: '50%' }}> Fin
<div className="session_caract_Dialog" style={{ width: '50%' }}> Fin <br/>
<DatePicker
name="event_dialog_end"
id="event_dialog_end"
@ -1443,10 +1443,17 @@ const Module_Absence = (props) => {
</div>}
<style>{local_css}</style>
</div>
)
}
export default Module_Absence;
export default Module_Absence;
const local_css = `
.react-datepicker-wrapper{
width: 100%;
}
`;

View File

@ -29,6 +29,7 @@ import allLocales from '@fullcalendar/core/locales-all'
import ToggleSwitch from "./ToggleSwitch";
import ToggleSwitch_v2_mysy from "./ToggleSwitch_v2_mysy";
import Autocomplete from '@mui/material/Autocomplete';
import FullCalendar, { formatDate } from "@fullcalendar/react";
@ -98,7 +99,7 @@ const useStyles = makeStyles((theme) => ({
}));
const Module_Agenda = (props) => {
registerLocale('fr', fr);
registerLocale('fr', fr);
const myconntected_employee_id = props.conntected_employee_id;
const classes = useStyles();
const [selected_employee_id, setselected_employee_id] = useState(props.conntected_employee_id);
@ -1381,59 +1382,61 @@ registerLocale('fr', fr);
{Dialog_1_message}
</DialogContentText>
<div className="session_caract_Dialog" >
<nav style={{ "float": "left", "width": "100%" }}>
<div className="session_caract_Dialog" style={{ width: '50%' }}>
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Type </nav>
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Type </nav>
<nav style={{ "float": "right", "width": "65%" }}>
<Autocomplete
disablePortal
name="event_dialog_type"
id="event_dialog_type"
value={p_detail_event_type}
fullWidth
options={New_Option_Type_Event}
onChange={(event, value) => {
if (String(props.write_access) === "1") {
<nav style={{ "float": "right", "width": "65%" }}>
<Autocomplete
disablePortal
name="event_dialog_type"
id="event_dialog_type"
value={p_detail_event_type}
fullWidth
options={New_Option_Type_Event}
onChange={(event, value) => {
if (String(props.write_access) === "1") {
if (value && value.value) {
setp_detail_event_type(value.value);
if (value && value.value) {
setp_detail_event_type(value.value);
}
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</nav>
</div>
{String(p_detail_event_type) !== "planning" && <div className="session_caract_Dialog" style={{ width: '50%' }}>
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Justifié ? </nav>
<nav style={{ "float": "right", "width": "50%" }}
onClick={(e) => {
if (p_detail_justified === true)
setp_detail_justified(false);
else
setp_detail_justified(true);
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
id="toggleSwitchNav" name="toggleSwitchNav">
< ToggleSwitch_v2_mysy id="toggleSwitch" name="toggleSwitch" checked={p_detail_justified}
/>
}
/>
</nav>
</div>}
</nav>
</div>
{String(p_detail_event_type) !== "planning" && <div className="session_caract_Dialog" >
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Justifié ? </nav>
<nav style={{ "float": "right", "width": "65%" }}
onClick={(e) => {
if (p_detail_justified === true)
setp_detail_justified(false);
else
setp_detail_justified(true);
}}
id="toggleSwitchNav" name="toggleSwitchNav">
<ToggleSwitch id="toggleSwitch" name="toggleSwitch" checked={p_detail_justified}
/>
</nav>
</div>}
</nav>
<div className="session_caract_Dialog" > Titre
<TextField
@ -1455,56 +1458,58 @@ registerLocale('fr', fr);
/>
</div>
<div className="session_caract_Dialog" > Debut
<DatePicker
name="event_dialog_start"
id="event_dialog_start"
selected={startDate}
onChange={(date) => {
if (String(props.write_access) === "1" && String(p_detail_sequence_session_id) === "")
return setStartDate(date);
}
}
<nav style={{ "float": "left", "width": "100%" }}>
<div className="session_caract_Dialog" style={{ width: '50%' }}> Debut <br/>
<DatePicker
name="event_dialog_start"
id="event_dialog_start"
selected={startDate}
onChange={(date) => {
if (String(props.write_access) === "1" && String(p_detail_sequence_session_id) === "")
return setStartDate(date);
}
}
className="disabled_style session_caract_Dialog_DatePicker"
locale={'fr'}
showTimeSelect
timeFormat="HH:mm"
timeIntervals={15}
dateFormat="dd/MM/yyyy HH:mm"
is24Hour
className="disabled_style session_caract_Dialog_DatePicker"
locale={'fr'}
showTimeSelect
timeFormat="HH:mm"
timeIntervals={15}
dateFormat="dd/MM/yyyy HH:mm"
is24Hour
/>
/>
</div>
</div>
<div className="session_caract_Dialog" > Fin
<DatePicker
name="event_dialog_end"
id="event_dialog_end"
selected={endDate}
<div className="session_caract_Dialog" style={{ width: '50%' }}> Fin <br/>
<DatePicker
name="event_dialog_end"
id="event_dialog_end"
selected={endDate}
onChange={(date) => {
if (String(props.write_access) === "1" && String(p_detail_sequence_session_id) === "")
return setendDate(date);
}
}
onChange={(date) => {
if (String(props.write_access) === "1" && String(p_detail_sequence_session_id) === "")
return setendDate(date);
}
}
className="disabled_style session_caract_Dialog_DatePicker"
locale={'fr'}
showTimeSelect
timeFormat="HH:mm"
timeIntervals={15}
dateFormat="dd/MM/yyyy HH:mm"
is24Hour
className="disabled_style session_caract_Dialog_DatePicker"
locale={'fr'}
showTimeSelect
timeFormat="HH:mm"
timeIntervals={15}
dateFormat="dd/MM/yyyy HH:mm"
is24Hour
/>
/>
</div>
</div>
</nav>
<div className="session_caract_Dialog_comment_2_lines" > Commentaire
<TextField
@ -1980,9 +1985,18 @@ registerLocale('fr', fr);
</Box>
</div >}
<style>{local_css}</style>
</div >
)
}
export default Module_Agenda;
export default Module_Agenda;
const local_css = `
.react-datepicker-wrapper{
width: 100%;
}
`;

View File

@ -16,6 +16,7 @@ import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import ent_studend_img from "../mysy_img/ent_studend_img.jpg";
import { getCookie } from 'react-use-cookie';
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
function Module_Connexion_Ent_Student_V2() {
const [isconnected, setisconnected] = useState("");
@ -161,12 +162,20 @@ function Module_Connexion_Ent_Student_V2() {
var re = /\S+@\S+\.\S+/;
if (re.test(mymail) === false) {
alert("l'adresse email est incorrecte");
// alert("l'adresse email est incorrecte");
setdisplay_alert_mysy("1");
setalert_message(" L'adresse email est invalide");
setalert_type("error");
return;
}
if (mypwd.length <= 0) {
alert("Vous n'avez pas saisi de mot de passe");
// alert("Vous n'avez pas saisi de mot de passe");
setdisplay_alert_mysy("1");
setalert_message(" Vous n'avez pas saisi de mot de passe");
setalert_type("error");
return;
}
@ -233,12 +242,19 @@ function Module_Connexion_Ent_Student_V2() {
else {
setisconnected("false");
setmyApimyApiMessage(result['message']);
setdisplay_alert_mysy("1");
setalert_message(result['message']);
setalert_type("error");
}
})
.catch((error) => {
console.error('Error:', error);
//console.error('Error:', error);
setisconnected("false");
setmyApimyApiMessage("Le service est momentanément indisponible, merci de ressayer plus tard. ");
// setmyApimyApiMessage("Le service est momentanément indisponible, merci de ressayer plus tard. ");
setdisplay_alert_mysy("1");
setalert_message(" Le service est momentanément indisponible, merci de ressayer plus tard. ");
setalert_type("error");
});
}
@ -334,7 +350,11 @@ function Module_Connexion_Ent_Student_V2() {
if (parseInt(total) != parseInt(calcaul_total)) {
document.getElementsByName("pasrobot")[0].style.backgroundColor = "red";
alert(" Le total dans la zone 'je ne suis pas un robot' est incohérent. Recommencez svp :) !!!");
// alert(" Le total dans la zone 'je ne suis pas un robot' est incohérent. Recommencez svp :) !!!");
setdisplay_alert_mysy("1");
setalert_message(" Le total dans la zone 'je ne suis pas un robot' est incohérent. Recommencez svp :) !!!");
setalert_type("error");
return;
}
@ -344,7 +364,10 @@ function Module_Connexion_Ent_Student_V2() {
//alert(" le mail de reset = "+mymail);
var re = /\S+@\S+\.\S+/;
if (re.test(mymail) === false) {
alert("l'adresse email est incorrecte");
//alert("l'adresse email est incorrecte");
setdisplay_alert_mysy("1");
setalert_message("L'adresse email est invalide");
setalert_type("error");
return;
}
@ -466,9 +489,34 @@ function Module_Connexion_Ent_Student_V2() {
}
};
const [display_alert_mysy, setdisplay_alert_mysy] = useState("");
const [alert_message, setalert_message] = useState("");
const [alert_type, setalert_type] = useState("");
function clear_alert_message() {
setalert_message("");
}
function clear_alert_type() {
setalert_type("");
}
function clear_display_alert_mysy() {
setdisplay_alert_mysy("");
}
return (
<div className="ent-page">
{/*** Affichage des messages d'alerte*/}
{display_alert_mysy && String(display_alert_mysy) === "1" &&
<Module_Alert_Confirmation alert_message={alert_message}
alert_type={alert_type}
clear_alert_message={clear_alert_message}
clear_alert_type={clear_alert_type}
clear_display_alert_mysy={clear_display_alert_mysy}
/>
}
{/*** FIN Affichage des messages d'alerte*/}
<div className="ent-bg-shape ent-bg-shape-1"></div>
<div className="ent-bg-shape ent-bg-shape-2"></div>
@ -513,7 +561,7 @@ function Module_Connexion_Ent_Student_V2() {
id="email"
name="email"
type="email"
placeholder="nom@etablissement.fr"
/>
</div>
@ -581,7 +629,7 @@ function Module_Connexion_Ent_Student_V2() {
id="pwd"
name="pwd"
type="password"
placeholder="••••••••••••"
/>
</div>

View File

@ -115,7 +115,7 @@ const useStyles = makeStyles((theme) => ({
color: 'gray',
},
}));
const Module_Ent_Mes_Formations = (props) => {
registerLocale('fr', fr);
const classes = useStyles();
@ -1889,7 +1889,8 @@ const Module_Ent_Mes_Formations = (props) => {
{Dialog_DIALOG_AGENDA_message}
</DialogContentText>
<div className="session_caract_Dialog" >
<nav style={{ "float": "left", "width": "100%" }}>
<div className="session_caract_Dialog" style={{ width: '50%' }}>
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Type </nav>
<nav style={{ "float": "right", "width": "65%" }}>
@ -1906,7 +1907,7 @@ const Module_Ent_Mes_Formations = (props) => {
</nav>
</div>
<div className="session_caract_Dialog" >
<div className="session_caract_Dialog" style={{ width: '50%' }}>
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Animation </nav>
<nav style={{ "float": "right", "width": "65%" }}>
@ -1923,7 +1924,7 @@ const Module_Ent_Mes_Formations = (props) => {
</nav>
</div>
</nav>
<div className="session_caract_Dialog" > Titre
<TextField
@ -1939,7 +1940,8 @@ const Module_Ent_Mes_Formations = (props) => {
</div>
<div className="session_caract_Dialog" > Debut
<nav style={{ "float": "left", "width": "100%" }}>
<div className="session_caract_Dialog" style={{ width: '50%' }}> Debut <br/>
<DatePicker
name="event_dialog_start"
id="event_dialog_start"
@ -1959,7 +1961,7 @@ const Module_Ent_Mes_Formations = (props) => {
</div>
<div className="session_caract_Dialog" > Fin
<div className="session_caract_Dialog" style={{ width: '50%' }}> Fin <br/>
<DatePicker
name="event_dialog_end"
id="event_dialog_end"
@ -1978,6 +1980,7 @@ const Module_Ent_Mes_Formations = (props) => {
</div>
</nav>
<div className="session_caract_Dialog_comment_2_lines" > Agenda
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
@ -2910,4 +2913,9 @@ width: 100%;
border: unset;
border-radius: 10px;
}
.react-datepicker-wrapper{
width: 100%;
}
`;

View File

@ -747,41 +747,42 @@ const Module_Ent_Mon_Planning = (props) => {
{Dialog_DIALOG_AGENDA_message}
</DialogContentText>
<div className="session_caract_Dialog" >
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Type </nav>
<nav style={{ "float": "left", "width": "100%" }}>
<div className="session_caract_Dialog" style={{ width: '50%' }} >
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Type </nav>
<nav style={{ "float": "right", "width": "65%" }}>
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
<nav style={{ "float": "right", "width": "65%" }}>
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_event_type"
id="event_dialog_event_type"
fullWidth
value={p_detail_event_type}
disabled={true}
/>
name="event_dialog_event_type"
id="event_dialog_event_type"
fullWidth
value={p_detail_event_type}
disabled={true}
/>
</nav>
</div>
</nav>
</div>
<div className="session_caract_Dialog" >
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Animation </nav>
<div className="session_caract_Dialog" style={{ width: '50%' }}>
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Animation </nav>
<nav style={{ "float": "right", "width": "65%" }}>
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
<nav style={{ "float": "right", "width": "65%" }}>
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_event_type"
id="event_dialog_event_type"
fullWidth
value={p_detail_mode_animation_label}
disabled={true}
/>
</nav>
</div>
name="event_dialog_event_type"
id="event_dialog_event_type"
fullWidth
value={p_detail_mode_animation_label}
disabled={true}
/>
</nav>
</div>
</nav>
<div className="session_caract_Dialog" > Titre
<TextField
@ -797,44 +798,47 @@ const Module_Ent_Mon_Planning = (props) => {
</div>
<div className="session_caract_Dialog" > Debut
<DatePicker
name="event_dialog_start"
id="event_dialog_start"
selected={sequence_startDate}
className="disabled_style session_caract_Dialog_DatePicker"
style={{ width: "99%" }}
locale={'fr'}
showTimeSelect
timeFormat="HH:mm"
timeIntervals={15}
dateFormat="dd/MM/yyyy HH:mm"
is24Hour
readOnly={true}
<nav style={{ "float": "left", "width": "100%" }}>
<div className="session_caract_Dialog" style={{ width: '50%' }}> Debut <br />
<DatePicker
name="event_dialog_start"
id="event_dialog_start"
selected={sequence_startDate}
className="disabled_style session_caract_Dialog_DatePicker"
style={{ width: "99%" }}
locale={'fr'}
showTimeSelect
timeFormat="HH:mm"
timeIntervals={15}
dateFormat="dd/MM/yyyy HH:mm"
is24Hour
readOnly={true}
/>
/>
</div>
</div>
<div className="session_caract_Dialog" > Fin
<DatePicker
name="event_dialog_end"
id="event_dialog_end"
selected={sequence_endDate}
className="disabled_style session_caract_Dialog_DatePicker"
style={{ width: "99%" }}
locale={'fr'}
showTimeSelect
timeFormat="HH:mm"
timeIntervals={15}
dateFormat="dd/MM/yyyy HH:mm"
is24Hour
readOnly={true}
<div className="session_caract_Dialog" style={{ width: '50%' }}> Fin <br />
<DatePicker
name="event_dialog_end"
id="event_dialog_end"
selected={sequence_endDate}
className="disabled_style session_caract_Dialog_DatePicker"
style={{ width: "99%" }}
locale={'fr'}
showTimeSelect
timeFormat="HH:mm"
timeIntervals={15}
dateFormat="dd/MM/yyyy HH:mm"
is24Hour
readOnly={true}
/>
/>
</div>
</div>
</nav>
<div className="session_caract_Dialog_comment_2_lines" > Agenda
<TextField
@ -954,15 +958,15 @@ const Module_Ent_Mon_Planning = (props) => {
</div>
{selected_session_id && selected_session_id.length > 5 &&
Getall_Sequence_Of_Session_result_planning_view && Getall_Sequence_Of_Session_result_planning_view.length > 0 && <div className="div_row">
<nav style={{ "border": "None", "fontSize": "18px", "fontWeight": "600", color:'#16274F' }}> Planning </nav>
<nav style={{ "border": "None", "fontSize": "18px", "fontWeight": "600", color: '#16274F' }}> Planning </nav>
<div className="div_row" style={{ "border": "None" }}></div>
&nbsp;
<div className="bloc_planning" style={{fontSize:'12px'}}>
<div className="bloc_planning" style={{ fontSize: '12px' }}>
<FullCalendar
height={550}
locales={allLocales}
@ -999,12 +1003,20 @@ const Module_Ent_Mon_Planning = (props) => {
{selected_session_id && selected_session_id.length > 5 &&
Getall_Sequence_Of_Session_result_planning_view && Getall_Sequence_Of_Session_result_planning_view.length <= 0 &&
<div style={{color:'darkorange', marginTop:'5rem', fontFamily:'DM Sans', fontSize:'20px'}}>
Aucun planning n'est disponible pour le moment.
<div style={{ color: 'darkorange', marginTop: '5rem', fontFamily: 'DM Sans', fontSize: '20px' }}>
Aucun planning n'est disponible pour le moment.
</div>}
<style>{local_css}</style>
</div >
);
}
}
export default Module_Ent_Mon_Planning;
export default Module_Ent_Mon_Planning;
const local_css = `
.react-datepicker-wrapper{
width: 100%;
}
`;

View File

@ -2234,7 +2234,7 @@ const Module_Session_Notes_Classement = (props) => {
var local_eu_id = tab_selected_list_ue[i]._id;
tab_eu_ids.push(local_eu_id);
}
var liste_apprenant = GetSelectedRowsSession();
var form = new FormData();
@ -2715,26 +2715,26 @@ const Module_Session_Notes_Classement = (props) => {
"& .MuiDataGrid-columnHeaders": {
backgroundColor: "#dfe8f2",
color: "#0a2a4d",
fontSize: '14px',
fontFamily:'DM Sans',
color: "#0a2a4d",
fontSize: '14px',
fontFamily: 'DM Sans',
},
'& .line--statut--selected': {
backgroundColor: '#e9f7f1',
color: "#0a2a4d",
color: "#0a2a4d",
},
'& .line--statut--pair': {
backgroundColor: 'rgba(235, 235, 235, .7)',
color: "#0a2a4d",
color: "#0a2a4d",
},
'& .line--statut--impair': {
backgroundColor: '#FFFFFF',
color: "#0a2a4d",
color: "#0a2a4d",
},
'& .line--statut--isvalide': {
backgroundColor: '#ABEBC6',
color: "#0a2a4d",
color: "#0a2a4d",
fontWeight: '600',
},
@ -3258,12 +3258,12 @@ const Module_Session_Notes_Classement = (props) => {
// Gestion des cellule a distance ou presentiel
'& .cell--distantiel': {
backgroundColor: '#AFE1AF',
color: "#0a2a4d",
color: "#0a2a4d",
},
'& .cell--presentiel': {
backgroundColor: '#AFE1AF',
color: "#0a2a4d",
color: "#0a2a4d",
},
@ -3275,11 +3275,11 @@ const Module_Session_Notes_Classement = (props) => {
'& .line--statut--inscrit': {
backgroundColor: '#CEF6D8',
color: "#0a2a4d",
color: "#0a2a4d",
},
'& .line--statut--preinscrit': {
backgroundColor: '#F7F2E0',
color: "#0a2a4d",
color: "#0a2a4d",
},
@ -3290,26 +3290,26 @@ const Module_Session_Notes_Classement = (props) => {
},*/
"& .MuiDataGrid-columnHeaders": {
backgroundColor: "#dfe8f2",
color: "#0a2a4d",
fontSize: '14px',
fontFamily:'DM Sans',
color: "#0a2a4d",
fontSize: '14px',
fontFamily: 'DM Sans',
},
'& .line--statut--selected': {
backgroundColor: '#e9f7f1',
color: "#0a2a4d",
color: "#0a2a4d",
},
'& .line--statut--pair': {
backgroundColor: 'rgba(235, 235, 235, .7)',
color: "#0a2a4d",
color: "#0a2a4d",
},
'& .line--statut--impair': {
backgroundColor: '#FFFFFF',
color: "#0a2a4d",
color: "#0a2a4d",
},
'& .line--statut--isvalide': {
backgroundColor: '#ABEBC6',
color: "#0a2a4d",
color: "#0a2a4d",
fontWeight: '600',
},
@ -3459,12 +3459,12 @@ const Module_Session_Notes_Classement = (props) => {
// Gestion des cellule a distance ou presentiel
'& .cell--distantiel': {
backgroundColor: '#AFE1AF',
color: "#0a2a4d",
color: "#0a2a4d",
},
'& .cell--presentiel': {
backgroundColor: '#AFE1AF',
color: "#0a2a4d",
color: "#0a2a4d",
},
@ -3476,11 +3476,11 @@ const Module_Session_Notes_Classement = (props) => {
'& .line--statut--inscrit': {
backgroundColor: '#CEF6D8',
color: "#0a2a4d",
color: "#0a2a4d",
},
'& .line--statut--preinscrit': {
backgroundColor: '#F7F2E0',
color: "#0a2a4d",
color: "#0a2a4d",
},
@ -3491,22 +3491,22 @@ const Module_Session_Notes_Classement = (props) => {
},*/
"& .MuiDataGrid-columnHeaders": {
backgroundColor: "#dfe8f2",
color: "#0a2a4d",
fontSize: '14px',
fontFamily:'DM Sans',
color: "#0a2a4d",
fontSize: '14px',
fontFamily: 'DM Sans',
},
'& .line--statut--selected': {
backgroundColor: '#e9f7f1',
color: "#0a2a4d",
color: "#0a2a4d",
},
'& .line--statut--pair': {
backgroundColor: 'rgba(235, 235, 235, .7)',
color: "#0a2a4d",
color: "#0a2a4d",
},
'& .line--statut--impair': {
backgroundColor: '#FFFFFF',
color: "#0a2a4d",
color: "#0a2a4d",
},
[`& .${gridClasses.cell}`]: {
py: 1,