* ✨ Simplifie la lecture de l’action SET_SIMULATION - “return early”
* ✨ Make automatic translation more fail-safe
* 🎨 Fix visuals for Overlay component
* ✨ Make Banner component more versatile
* Share simulation banner
* Ajout des identifiants courts pour les objectifs
* Dé/sérialisation search params <-> situation & targetUnit, basée sur
une logique générique (typeof)
* Suppression dans l'URL des search params correspondant à des
noms de règles ou identifiant courts
* Banner de partage, avec modale ou Navigator.share si disponible.
Co-authored-by: Alexandre Hajjar <alexandre.hajjar@gmail.com>
* URL with state: remove targetUnit
* serializeEvaluation for url sharing
* serializeEvaluation for number, boolean, string
* use this serialization in url search params
* for now, no support for Objects (like localisation)
Co-authored-by: Johan Girod <dev@johangirod.com>
* 🖋️ Quelques légères modifications de nom pour les identifiants courts
Co-authored-by: Paul Chavard <github@paul.chavard.net>
Co-authored-by: Johan Girod <dev@johangirod.com>
close#552
J'avais pourtant executé la commande `yarn run test:regressions` après
chaque commit, mais il semble que les snapshots n'étaient pas mis à
jour (problème de cache suite au déplacement des règles dans leur
propre paquet ?)
- Tranches du barème
- Tranches des barèmes taux neutre
- Décote
- Plancher et plafond de l'abattement de 10% pour frais pro
- Montant des parts du quotient familial
Déplace:
mon-entreprise/source/sites/publi.codes → publicodes/site
mon-entreprise/source/sites/mon-entreprise.fr → mon-entreprise/source/site
La config Webpack du site publicodes reste encore liée à celle de
mon-entreprise.fr, il faudra la dissocier quand nous déplacerons le
projet publicodes dans son propre dépôt.
Lorsque l'on cherche un nom de règle, on laisse la possibilité à
une règle de se référencer elle même, mais alors cette résolution
est la dernière à être envisagée.
Dans l'exemple :
```yaml
b: 5
a . b: b
```
`a . b` référence bien `b` qui vaut `5`
Et dans celui ci :
```
a: 0
a . b:
remplace:a
par: b * 5
valeur: 2
```
`a . b` remplace `a` en la multipliant par sa propre valeur (ici 2)
fix#1081, fix#1083
- Introduction de nouveaux mécanismes
- Réecriture de l'evaluation et du parsing des règles.
- Les règles peuvent apparaître dans les formules de calcul
- Introduction d'un AST en bonne et due forme
- Réecriture de buildRuleDependancies.
- Ajout d'une passe pour la désambiguation des références
- Réecriture de rendNonApplicable et de remplace
- Réimplémentation de parentDependancy
Voir #1191
La fonction `uniroot` prend 2 paramètres d'amorçage "min" et "max" qui
nous définissions jusqu'alors comme des minimums et maximum absolus
-10^8 et +10^8. Vu que nous sommes obligés de calculer au moins une
première valeur à l'extérieur de `uniroot` notamment pour calculer les
variables manquantes, ce commit permet de ré-utiliser ce calcul dans
l'amorçage d' `uniroot`.
Les gains de performances sont détaillés dans la PR associée.
Par ailleurs supprime l'option "valeurs négatives possibles" rendue
obsolète.
Il y a des légers décalages d'1€ sur une dizaine de snapshots qui liés à
des arrondis à l'euro. On calcule en effet les inversions à 10 centimes
près et on peut donc tomber sur une valeur de xx,54€ là où la vraie
valeur est xx,48€ ce qui donne 1€ de différence avec l'arrondi alors que
la différence initialement calculée est inférieure à 10 centimes.
Par curiosité j'ai rejoué les tests de non-régressions en changeant les
paramètres d'`uniroot` pour avoir une précision au centime près (en
augmentant le nombre max d'itération à 50) et il se trouve que sur la
dizaine de tests différents entre ce commit et la version d'avant une
moitié des arrondis à l'euro étaient faux avant et corrects maintenant
et inversement pour l'autre moitié.
Utilisation d'un fork en attendant que React 17 soit supporté par
Enzyme.
J'ai essayé rapidement la librairie
https://testing-library.com/docs/react-testing-library/migrate-from-enzyme
vers laquelle certains utilisateurs d'Enzyme semblent maintenant se
tourner, mais la migration est non triviale (alors même que nous n'avons
qu'un seul fichier qui utilise les tests Enzyme !)
Si une inversion n'est pas trouvée à 0,1 près, fallback à 1 près.
Utile pour les cotisations des avocats, et permet de réaliser certaines
inversions qui étaient impossibles jusqu'à lors (cf. snapshots).