From 080f59b10189aec385886eaf35acee1c6d066064 Mon Sep 17 00:00:00 2001
From: jimmys-box <89916651+jimmys-box@users.noreply.github.com>
Date: Mon, 7 Feb 2022 10:30:12 +0100
Subject: [PATCH] new:
---
components/Bulles.jsx | 166 +++++
components/Chart.tsx | 41 ++
components/ChartWrapper.js | 21 +
components/CopyField.jsx | 69 ++
components/D3Chart.js | 38 ++
components/Error.jsx | 40 ++
components/LoadingScreen.js | 75 +++
components/Modal.jsx | 62 ++
components/SystemeVote.jsx | 37 ++
components/banner/Facebook.jsx | 29 +
components/banner/Gform.jsx | 25 +
components/banner/Helloasso.jsx | 24 +
components/banner/Paypal.jsx | 44 ++
components/flag.js | 4 +
components/form/AddPicture.jsx | 37 ++
components/form/AlertButton.jsx | 24 +
components/form/ButtonWithConfirm.jsx | 57 ++
components/form/CandidateField.jsx | 143 ++++
components/form/CandidatesField.jsx | 124 ++++
components/form/ConfirmModal.jsx | 164 +++++
components/form/HelpButton.jsx | 75 +++
components/layouts/Footer.jsx | 83 +++
components/layouts/Header.jsx | 125 ++++
components/layouts/HeaderMobile.jsx | 61 ++
components/layouts/LanguageSelector.jsx | 33 +
.../layouts/result/HeaderDesktopResult.jsx | 47 ++
.../layouts/result/HeaderMobileResult.jsx | 38 ++
components/layouts/result/HeaderResult.jsx | 14 +
components/layouts/useBbox.jsx | 20 +
components/loader/index.jsx | 14 +
components/plot.js | 18 +
components/wait/index.jsx | 8 +
components/wait/loader-pulse-2-alpha.gif | Bin 0 -> 26560 bytes
components/wait/loader-pulse-2.gif | Bin 0 -> 32793 bytes
config/env.js | 93 +++
config/jest/cssTransform.js | 14 +
config/jest/fileTransform.js | 40 ++
config/modules.js | 84 +++
config/paths.js | 90 +++
config/pnpTs.js | 35 +
config/webpack.config.js | 628 ++++++++++++++++++
config/webpackDevServer.config.js | 104 +++
functions/send-invite-email/invite-en.html | 218 ++++++
functions/send-invite-email/invite-en.txt | 19 +
functions/send-invite-email/invite-fr.html | 203 ++++++
functions/send-invite-email/invite-fr.txt | 17 +
functions/send-invite-email/invite.html | 218 ++++++
functions/send-invite-email/invite.txt | 19 +
.../send-invite-email/send-invite-email.js | 150 +++++
49 files changed, 3692 insertions(+)
create mode 100644 components/Bulles.jsx
create mode 100644 components/Chart.tsx
create mode 100644 components/ChartWrapper.js
create mode 100644 components/CopyField.jsx
create mode 100644 components/D3Chart.js
create mode 100644 components/Error.jsx
create mode 100644 components/LoadingScreen.js
create mode 100644 components/Modal.jsx
create mode 100644 components/SystemeVote.jsx
create mode 100644 components/banner/Facebook.jsx
create mode 100644 components/banner/Gform.jsx
create mode 100644 components/banner/Helloasso.jsx
create mode 100644 components/banner/Paypal.jsx
create mode 100644 components/flag.js
create mode 100644 components/form/AddPicture.jsx
create mode 100644 components/form/AlertButton.jsx
create mode 100644 components/form/ButtonWithConfirm.jsx
create mode 100644 components/form/CandidateField.jsx
create mode 100644 components/form/CandidatesField.jsx
create mode 100644 components/form/ConfirmModal.jsx
create mode 100644 components/form/HelpButton.jsx
create mode 100644 components/layouts/Footer.jsx
create mode 100644 components/layouts/Header.jsx
create mode 100644 components/layouts/HeaderMobile.jsx
create mode 100644 components/layouts/LanguageSelector.jsx
create mode 100644 components/layouts/result/HeaderDesktopResult.jsx
create mode 100644 components/layouts/result/HeaderMobileResult.jsx
create mode 100644 components/layouts/result/HeaderResult.jsx
create mode 100644 components/layouts/useBbox.jsx
create mode 100644 components/loader/index.jsx
create mode 100644 components/plot.js
create mode 100644 components/wait/index.jsx
create mode 100644 components/wait/loader-pulse-2-alpha.gif
create mode 100644 components/wait/loader-pulse-2.gif
create mode 100644 config/env.js
create mode 100644 config/jest/cssTransform.js
create mode 100644 config/jest/fileTransform.js
create mode 100644 config/modules.js
create mode 100644 config/paths.js
create mode 100644 config/pnpTs.js
create mode 100644 config/webpack.config.js
create mode 100644 config/webpackDevServer.config.js
create mode 100644 functions/send-invite-email/invite-en.html
create mode 100644 functions/send-invite-email/invite-en.txt
create mode 100644 functions/send-invite-email/invite-fr.html
create mode 100644 functions/send-invite-email/invite-fr.txt
create mode 100644 functions/send-invite-email/invite.html
create mode 100644 functions/send-invite-email/invite.txt
create mode 100644 functions/send-invite-email/send-invite-email.js
diff --git a/components/Bulles.jsx b/components/Bulles.jsx
new file mode 100644
index 0000000..5e5d23d
--- /dev/null
+++ b/components/Bulles.jsx
@@ -0,0 +1,166 @@
+import React from 'react';
+import plotly from 'plotly.js/dist/plotly';
+import createPlotComponent from 'react-plotly.js/factory';
+import LoadingScreen from "./LoadingScreen";
+
+function Bulles (props) {
+
+// récupération des résultats de l'élection et stockage en tableau
+const votesBrut = (Object.values(props))[0];
+
+// déclaration et initialisation des mentions et couleurs
+const mentionsBrut = ['Passable', 'Assez bien', 'Bien', 'Très bien', 'Excellent'];
+const couleursBrut = ['#BB9C42', '#AABA44', '#DCDF44', '#B3D849', '#61AD45'];
+
+//----------- Traitement des données -----------//
+
+// fonction d'inversement des éléments de tableau
+function inverse(obj){
+ var retobj = {};
+ for(var key in obj){
+ retobj[obj[key]] = key;
+ }
+ return retobj;
+ }
+
+// fonction de réduction d'amplitude permettant de conserver une représentation ordinale du nombre de votes sans décalage visuel trop important
+/*
+Pattern de calcul :
+
+Soient Ai, Bi, Ci, Di, Ei les nombres de votes initiaux fournis dans le tableau classé par ordre mélioratif de mention (de Passable à Excellent). Il vient :
+A = 1
+B = <{[1 + (Bi/Ai)] / 40} * A>
+C = <{[1 + (Ci/Bi)] / 40} * B>
+D = <{[1 + (Di/Ci)] / 40} * C>
+E = <{[1 + (Ei/Di)] / 40} * D>
+*/
+function redAmpli(tab) {
+ var nvTab = [];
+ nvTab[0] = 100;
+
+ for(i = 1; i < tab.length; i++) {
+ nvTab[i] = ( (1 + ((tab[i]/tab[(i-1)]) / 40 ) ) * nvTab[(i-1)]);
+ }
+ return nvTab;
+}
+
+
+// déclaration de l'objet votes-mention et votes-couleur
+var votesMentionNonOrdonnes = {};
+var votesCouleurNonOrdonnes = {};
+
+// initialisation votes-mention ordonnés croissants
+for (var i = 0; i < mentionsBrut.length; i++) {
+ votesMentionNonOrdonnes[votesBrut[i]] = mentionsBrut[i];
+ votesCouleurNonOrdonnes[votesBrut[i]] = couleursBrut[i];
+}
+
+// déclaration des mentions-votes par ordre croissant
+var votesMentionOrdonnes = inverse(votesMentionNonOrdonnes);
+var votesCouleurOrdonnes = inverse(votesCouleurNonOrdonnes);
+
+// vérification du nombre de votes classés par ordre croissant et passés initialement en propriétés au composant
+console.log("Les données transmises au composant concernant le nombre de votes par mention sont : ");
+console.log(votesBrut);
+
+// vérification des mentions destinées à être associées aux votes et ordonnées initialement par ordre mélioratif
+console.log("Les mentions des votes sont classées initialement par ordre mélioratif de la façon suivante :");
+console.log(mentionsBrut);
+
+// vérification du nombre de votes classés par ordre croissant
+console.log("Les mentions-votes classées par ordre croissant de votes sont : ");
+console.log(votesMentionOrdonnes);
+
+// séparation des mentions et des votes
+const mentions = Object.keys(votesMentionOrdonnes);
+const votes = Object.values(votesMentionOrdonnes);
+const couleurs = Object.keys(votesCouleurOrdonnes);
+
+// vérification des mentions et des votes prêts à être traités pour la représentation graphique
+console.log('La liste des mentions issue du classement par ordre croissant de votes est :');
+console.log(mentions);
+console.log('La liste du nombre de votes correspondant, classée par ordre croissant, est :');
+console.log(votes);
+
+// déclaration et initialisation des rayons de bulle pour la représentation graphique
+var rayons = [];
+rayons = redAmpli(votes)
+
+// vérification des rayons
+console.log('La liste des rayons à représenter graphiquement est la suivante :');
+console.log(rayons);
+
+// déclaration et initialisation des textes des bulles
+const texteBulle1 = (mentions[0] + "
" + votes[0] + " votes").toString();
+const texteBulle2 = (mentions[1] + "
" + votes[1] + " votes").toString();
+const texteBulle3 = (mentions[2] + "
" + votes[2] + " votes").toString();
+const texteBulle4 = (mentions[3] + "
" + votes[3] + " votes").toString();
+const texteBulle5 = (mentions[4] + "
" + votes[4] + " votes").toString();
+
+// déclaration et initialisation d'une instance de graphique en bulles
+// const Plot = createPlotComponent(plotly);
+const Plot = require('react-plotly.js').default;
+
+//---------------------------------------------//
+
+
+
+//----------- Affichage des données -----------//
+const [loading, setLoading] = React.useState(true);
+ React.useEffect(() =>{
+ setTimeout(() => setLoading(false), 3000);
+ })
+return (
+
+ //
Le total des votes est de {totalVotes}.
+ +Importer une photo.
format : jpg, png, pdf
Ajoutez une photo, le nom et une description au candidat.
+Importer une photo.
format : jpg, png, pdf
+ {t("The form contains no address.")}
+
+
+ {t(
+ "The election will be opened to anyone with the link"
+ )}
+
+
+ + {t( + "The results page will not be accessible until the end date is reached." + )}{" "} + ({finish.toLocaleDateString()} {t("at")}{" "} + {finish.toLocaleTimeString()}) + +
+Clos il y a 2 jours
+14 votants
+Télécharger les résultats
+Partagez les résultats
+Clos il y a 2 jours
+ + +14 votants
+ +V_+
zcV*Dk)ChMuA}gv6eW4IKUZ{MT1G%5Ov3y-9yv7xDLRbx@3^*;6_Y9q+LU@4m7Y&Du
zdVK2LO(0!d8j?JHLfRDS;NP6p2?gndbZ5FjmfBM+WkigO-T`Q?w7GD5-u=YiCx$fU
zJmJ=3teH9D#>;N*AZJ}`=Y<=}&6O39Cu?w4%?x$>Gfjl0!4*09rdS D66dP*`Y4?zwBL@w*hCEr|W9K;UE@=RA{#` )+g`9HWd6bb-f!~MH81iif}j(%`{ak+ *cn4_-R7Bg79ICK`Ww*^;4iAvW}bX
z8;jiMS6Hd;T)eZ#ixHtFSX>9juZIM+$Zc__VzPdm?Y^=I;>7aG-{wKRceAeA{qJ=!
zzJoZWS |SdyjeV|Qahym)3U2i}PvF5h^EU~!pz?D5>Q
zQuDB$)#87^gVCpcvXVo_%qf*4$hrOnV@Io)#RuEGZ1&ysPbC)y`ur9(F@4m6>E#UZ
zV@!4EIsdCJeZK3MFCCu+Zi@%QKH+snqr;x6_E3J>2M+N!ylR-l4hn_GCNSPrBrVI5
zxq*jU%G*|3xwUg+lhcU+f2|4|$=I2*DL+I{^4%YF)3iGLVrvkXWv@*;LQ0eo3%9%YR@4OFLk(Sah}Rt|c0Ry-H+DX9JV%l~
zai_bGx)HA`NIl5L4N|YrN968ju`!qbGwHHt!;AkKVW>3#cE&GkQDJ#~d!3PSZBrVy
z`)lXuXctNrJ^;clYEgACP%iRuJ8oM>h0}4KcxDLUh#^$Grc+Wv7Scg51yY^R&W-bl
zaP;Yix^0bOwGc)Y=Rg&-r9>R!;o5y)jrsn(b^Ia?$SX?=r@W&Wm|njsO0AH6VmpDv
z59i%X#;_5nsK^<{`QH+@>qE)bZru*H3u@@|bG-Dx7&%d-fQS4}(CF%LVf#R`Xj?zjf
zUAE?Vos6<5`kE7%ZuA2)w&oHy`34*y6uhSDsv`mPX$_p`3jnx3njLc2VAz;D+!!Bl
z7dCVyNI!c&>>8Kgm=U^9LTt3ZQG}lNV5E?~l)nx-0uJ$2IAr;kUA*`r2u3G~Jq>Xl
zT(&T$G9S%)vfGD+VrTW0ARx%L5?E)GHx(Os>MsQj1zTl|2aRMRz>!sZ3SR;dB}Qs-
zG{jE^F@hhgM?-kD$H(LTfc(luH$XEB<9n`^asQz%L77cHf<-N)=n;|u@e
w3B*ZZe3n
zL0@(#bxRtoQ^>Q=Pl}zc_$#3r65UvFuY5H9B@4osVYb$eKU8J73H{hkWx-0PT&Q~S
z<6zLT%AJO}`3~ome{~CWAb1otX<-0)>Y-T29k!yHR=s0LpW+|TAEw8>O8vZIkjA$a
zh5Cd1s9&Gml%({Cy7=B3cfDAF&!QX8I25S-qFeHmB}uEb&fI8d0CgTqhRq_&9VXL`
z!AyKV%o~F*|GiFnX*gAvEVC4^)PAp5pqxnMy_UcW>MQ({^wy`rfmFj3luxQzxA7Je
zlP9^r^{D=32mo)abp7UzrOdDqk$^17gr}#Q`E?6@|1^f!P~AeEPIY5ZXfw`9NzEFF
z&wfoAk6+b=j8W!ccxlNCVS|l)gcx}_D8iWeQWksf2fcMslH`
2|?}Hq+}(cQ=t8sjOyya>V#Ql}kqS
zy*R>Bativw*5K2R=KV@D>YuRpqGzXHlKxtOoD^zTYo2tE*S0;ooUZ0~93B3laB@ul
zL}_kh#ry8rclB7p;?ly8yXR~6tZm23g`XZyaN_=&oO-`K>Xeen@w&KrUis#}bQZ$O
z-p8cj`Xf;ghx5`lvlH5TecZq7#S$YUeY|EFCNL~1Z;1~|1`e`*5e{2qB+1Bz=!!~n
z7=~PNNdn%WJejl1ZESYaNsx>sVZ!>WQq(G)m06xrvf$-A&~xA)n(!bWudlZ2Q)SOn
z4~Sxa#j=WVc2aG7Jw5e_BT
KI$8lRx
zKkaG9K7A&>2eFm(u-D5fpmqSSyb_c3nvGW9YfVipU#bf!C0lo79bVXHJ0^d`i!&L0
zq}@%=@O6W2m5X~%biryjs``*?eU}A{yY=eX&g1eg{qfqg6q3+Do;nqgLcrcoraKR{
zShTzwd?>D@qfS&!o(et|J1p_LmOVf6XpGQ9aTz5ho%b8NLZI8gEQ0%IqW0eNbyn6t
z?=}j%yni7SXHz6?kGj%{_TP%C!;2hQQ>c(}LzUq<&PLhKcr%|f*R+00kbJqmQs9==
zkQ*)AMvLf4qRsmJgI)MfR7&{IJ;havQf`qIwl$yG&q?S9dhJZ=)E8zKj!dGr8j1PW
zFTT+u=ybL-Se{Vs!0Pz;t!R&3D_mv6iRY%{Z0Pi+f96zqYUjQYe5@h+Q8&x9?)?b7
z#}>TZZk^XrncUWy`?t}!Bw`{Z|4QVx=T~D~out9a8)lX{4d;oG6MKq>K+O_E-=v%D
zmII2-m_nqlX5cE`+8~qELjzL2)ZPAD_i0Jk{Oczrh#%_FuE2IqUJ7W1VzvrDvN7}_
zjC@ZKsCa}7t7Hn`%Vhxb%!}&MPIA-G%7DVAyEV2*xy9OZ^?+iKnfaiQwx>TAR0N);
z6A8EmEgN&Z1yMkHU-L=`510>9ri_fO1Zf8<5$kC5^29$2nl#OW8^@>J8iE`n8^dzB
zi$dk6mk+~V6_`GJjCdXz=|uUq!d&`50eZF_2SBys)7%cni5{E91_p*uMEL^*nlymV
zPl8^MZ$~%r