Sauvegardes personnelles — lot public phase 1
Avec un compte, Enregistrer conserve explicitement les séries dans le compte, accessibles depuis un autre appareil. Un conflit propose de garder une copie distincte ; le stockage sans compte n’est ni mélangé ni importé automatiquement. Exporter les changements en attente avant de quitter. Gestion des comptes et périmètre (../COMPTES_PUBLIC_PHASE1.md).
Page : boite-a-moustaches.astro (../../src/pages/outils/boite-a-moustaches.astro).
Modules : état/transfert (../../src/lib/boxplot-state.mjs), export PDF (../../src/lib/boxplot-pdf.ts).
Plusieurs séries sont affichées avec une échelle commune. Chaque série a un titre modifiable, un dessin, un tableau de paramètres et une saisie de données pour calcul automatique. Les flèches changent l’ordre des séries. Les réglages globaux contrôlent axe, graduations et aspect des boîtes.
Le calcul automatique emploie des quartiles interpolés et l’écart-type d’échantillon, avec valeurs arrondies à deux décimales. La saisie manuelle des paramètres reste possible. Vérifier Min ≤ Q1 ≤ Médiane ≤ Q3 ≤ Max et un écart-type positif ou nul.
Le PDF est généré côté navigateur avec jsPDF/svg2pdf : titres et graphiques dans l’ordre choisi, sans les tableaux. L’export ne lance pas un calcul serveur.
Persistance et barème
esuong-boxplots-v1 contient les séries et réglages. Le transfert depuis le barème utilise esuong-boxplot-transfer-<jeton>, consommé lors de l’import ; une compatibilité sessionStorage existe. L’échelle choisie dans le barème fixe l’axe même si des notes dépassent ce maximum. Ne pas modifier les notes pour les faire entrer dans l’axe.
Les données sont validées par validateSnapshot et validateTransfer (version 1). La suppression depuis Connexion efface aussi les transferts locaux ; les fichiers PDF déjà exportés restent intacts.
Tests : tests/boxplot-state.test.mjs. Recette : deux séries, renommage, réordonnancement, rechargement, import depuis barème et vérification visuelle du PDF.