Ce mécanisme permet d'activer le calcul itératif pour trouver la
valeur de la règle qui résout la référence circulaire.
Il est possible pour une règle de se référencer elle-même. Par défaut, le
moteur considère qu'il s'agit d'un cycle non voulu, et renvoie 'null' comme valeur
pour la règle en question, en affichant un avertissement.
Mais dans certains cas, la formule est bonne et le cycle est voulu. La valeur de la
règle attendue est donc celle qui résout l'équation obtenue via la référence cyclique.
Lorsque l'on active cette fonctionnalité, le moteur va procéder par essaie erreur jusqu'à
trouver cette valeur.
Note : la résolution de cycle est coûteuse en temps de calcul. Il faut donc veiller à
ne pas la cumuler avec l'évaluation d'un autre mécanisme coûteux comme l'inversion numérique
par exemple.
* remove ParsedRules argument to constructor (was undocumented, so no
harm for Publicodes users)
* replace by Engine.shallowCopy()
* simplify EngineContext in mon-entreprise.
* Ajout de tags meta aux pages /documentation
Pour les moteurs de recherche, et pour les partages sur réseaux sociaux.
A utiliser avec un module de type prerender.io dans le cas de ces
derniers, qui ne font pas tourner le javascript, contrairement à Google.
* Meta description : si pas de description, la question
* MAJ react-helmet dans mon-entreprise
Cela aboutissait à certaines question non posées dans le simulateur auto-entrepreneur
Par ailleurs, ajoute une visualisation des données manquantes sur la page règles (pour un debuggage plus facile)
De toute façon, cette api n'était pas documentée, et elle ne devrait pas être disponible, mais plutôt intervenir comme une étape de vérification du parsing
* ✨ 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
C'est parfois pratique de pousser sur master, mais il faudrait ajouter
une étape de confirmation pour éviter ce type d'erreur...
---
Revert "🔥 Supprime Ramda du moteur"
This reverts commit 269027a6a1.
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.
Afin de résoudre rapidement un problème lié au build de ce paquet. Il
faudrait faire un travail plus approfondi pour :
- séparer les styles de mon-entreprise des styles de publicodes-react
- choisir une convention unique pour la gestion du CSS de
publicodes-react, en y intégrant la possibilité de personnaliser les
styles pour un intégrateur (actuellement on fait un mixte de classes
CSS "classiques", de styled-component, et de prop `style={{}}`).
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