Fix list of radio button

pull/2494/head
Jérémy Rialland 2023-01-26 16:36:45 +01:00 committed by Johan Girod
parent 4bf56e7bc5
commit 4c0e3776e7
2 changed files with 18 additions and 2 deletions

View File

@ -45,6 +45,8 @@ entreprise . catégorie juridique . EI . auto-entrepreneur:
par: "'micro-entreprise'"
- règle: entreprise . imposition
par: "'IR'"
meta:
visible si non applicable: oui
### (niveau 1 code 5) Société commerciale ###
@ -63,6 +65,8 @@ entreprise . catégorie juridique . SARL . unipersonnelle:
question: Votre entreprise est-elle une EURL ?
# par défaut: oui
valeur: catégorie juridique = 'SARL . unipersonnelle'
meta:
visible si non applicable: oui
entreprise . catégorie juridique . SA à conseil d'administration:
titre: Société Anonyme à conseil d'administration
@ -89,6 +93,8 @@ entreprise . catégorie juridique . SAS . unipersonnelle:
question: Votre entreprise est-elle une SASU ?
# par défaut: oui
valeur: catégorie juridique = 'SAS . unipersonnelle'
meta:
visible si non applicable: oui
### (niveau 1 code 6) Autre personne morale immatriculée au RCS ###

View File

@ -234,6 +234,12 @@ export const getOnePossibilityOptions = <Name extends string>(
variant &&
(!variant['choix obligatoire'] || variant['choix obligatoire'] === 'non')
const isVisibleSiNonApplicable = (dottedName: Name) =>
getMeta<{ 'visible si non applicable'?: string } | null>(
engine.getRule(dottedName).rawNode,
null
)?.['visible si non applicable'] === 'oui'
return Object.assign(
node,
variant
@ -244,7 +250,11 @@ export const getOnePossibilityOptions = <Name extends string>(
nodeKind: 'reference'
})[]
)
.filter((node) => engine.evaluate(node).nodeValue !== null)
.filter(
(explanation) =>
isVisibleSiNonApplicable(explanation.dottedName as Name) ||
engine.evaluate(explanation).nodeValue !== null
)
.map(({ dottedName }) =>
getOnePossibilityOptions(engine, dottedName as Name)
),
@ -269,7 +279,7 @@ function isMultiplePossibilities<Name extends string>(
function getMultiplePossibilitiesOptions<Name extends string>(
engine: Engine<Name>,
dottedName: Name
): Array<RuleNode> {
): RuleNode<Name>[] {
return (
(engine.getRule(dottedName) as RuleWithMultiplePossibilities).rawNode[
'plusieurs possibilités'