@rsuci/shared-form-components 1.0.142 → 1.0.143
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/form-renderer/FormRenderer.d.ts.map +1 -1
- package/dist/components/form-renderer/FormRenderer.js +11 -2
- package/dist/hooks/useConditionValidation.d.ts +3 -3
- package/dist/hooks/useConditionValidation.d.ts.map +1 -1
- package/dist/hooks/useConditionValidation.js +7 -6
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-renderer/FormRenderer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,cAAc,EAIf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EAEtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAuBlF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAClD,oCAAoC;IACpC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,iCAAiC;IACjC,SAAS,EAAE,qBAAqB,CAAC;IACjC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,wCAAwC;IACxC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"FormRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-renderer/FormRenderer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,cAAc,EAIf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EAEtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAuBlF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAClD,oCAAoC;IACpC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,iCAAiC;IACjC,SAAS,EAAE,qBAAqB,CAAC;IACjC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,wCAAwC;IACxC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAooCD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAgBpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -649,14 +649,23 @@ const FormRendererInner = () => {
|
|
|
649
649
|
}
|
|
650
650
|
return;
|
|
651
651
|
}
|
|
652
|
-
// Valider les conditions de validation (ConditionEval)
|
|
652
|
+
// Valider les conditions de validation (ConditionEval) uniquement sur les variables visibles
|
|
653
653
|
const instancesMap = new Map();
|
|
654
|
+
const visibleCodes = new Set();
|
|
654
655
|
for (const groupe of groupes) {
|
|
655
656
|
if (groupe.estMultiple && groupe.instances) {
|
|
656
657
|
instancesMap.set(groupe.code, groupe.instances.map(i => i.numeroInstance));
|
|
658
|
+
for (const inst of groupe.instances) {
|
|
659
|
+
const vars = getVisibleVariablesForInstance(groupe.code, inst.numeroInstance);
|
|
660
|
+
vars.forEach(v => visibleCodes.add(v.code));
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
else {
|
|
664
|
+
const vars = getVisibleVariables(groupe.code);
|
|
665
|
+
vars.forEach(v => visibleCodes.add(v.code));
|
|
657
666
|
}
|
|
658
667
|
}
|
|
659
|
-
const conditionErrors = validateAllConditions(groupes, instancesMap);
|
|
668
|
+
const conditionErrors = validateAllConditions(groupes, instancesMap, visibleCodes);
|
|
660
669
|
if (conditionErrors.length > 0) {
|
|
661
670
|
if (callbacks.onValidationError) {
|
|
662
671
|
// Convertir les erreurs de condition en erreurs de validation standard
|
|
@@ -19,9 +19,9 @@ export interface UseConditionValidationResult {
|
|
|
19
19
|
/** Valide une variable individuelle et retourne l'erreur ou null */
|
|
20
20
|
validateVariable: (variable: VariableFormulaire, numeroMembre?: number) => ConditionValidationError | null;
|
|
21
21
|
/** Valide toutes les variables d'un groupe et retourne les erreurs */
|
|
22
|
-
validateGroup: (groupe: GroupeFormulaire, numeroMembre?: number) => ConditionValidationError[];
|
|
23
|
-
/** Valide toutes les variables de tous les groupes */
|
|
24
|
-
validateAll: (groupes: GroupeFormulaire[], instances?: Map<string, number[]>) => ConditionValidationError[];
|
|
22
|
+
validateGroup: (groupe: GroupeFormulaire, numeroMembre?: number, visibleVariableCodes?: Set<string>) => ConditionValidationError[];
|
|
23
|
+
/** Valide toutes les variables de tous les groupes (seules les variables visibles sont validées si visibleVariableCodes est fourni) */
|
|
24
|
+
validateAll: (groupes: GroupeFormulaire[], instances?: Map<string, number[]>, visibleVariableCodes?: Set<string>) => ConditionValidationError[];
|
|
25
25
|
/** Efface l'erreur pour une variable */
|
|
26
26
|
clearError: (variableCode: string, numeroMembre?: number) => void;
|
|
27
27
|
/** Efface toutes les erreurs */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConditionValidation.d.ts","sourceRoot":"","sources":["../../src/hooks/useConditionValidation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EAEzB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,6BAA6B;IAC5C,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,kGAAkG;IAClG,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAExD,oEAAoE;IACpE,gBAAgB,EAAE,CAChB,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,CAAC,EAAE,MAAM,KAClB,wBAAwB,GAAG,IAAI,CAAC;IAErC,sEAAsE;IACtE,aAAa,EAAE,CACb,MAAM,EAAE,gBAAgB,EACxB,YAAY,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"useConditionValidation.d.ts","sourceRoot":"","sources":["../../src/hooks/useConditionValidation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EAEzB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,6BAA6B;IAC5C,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,kGAAkG;IAClG,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAExD,oEAAoE;IACpE,gBAAgB,EAAE,CAChB,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,CAAC,EAAE,MAAM,KAClB,wBAAwB,GAAG,IAAI,CAAC;IAErC,sEAAsE;IACtE,aAAa,EAAE,CACb,MAAM,EAAE,gBAAgB,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAC/B,wBAAwB,EAAE,CAAC;IAEhC,uIAAuI;IACvI,WAAW,EAAE,CACX,OAAO,EAAE,gBAAgB,EAAE,EAC3B,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACjC,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAC/B,wBAAwB,EAAE,CAAC;IAEhC,wCAAwC;IACxC,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAElE,gCAAgC;IAChC,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IAEnB,+DAA+D;IAC/D,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAEpF,sFAAsF;IACtF,oBAAoB,EAAE,CACpB,mBAAmB,EAAE,MAAM,EAC3B,OAAO,EAAE,gBAAgB,EAAE,EAC3B,YAAY,CAAC,EAAE,MAAM,KAClB,IAAI,CAAC;CACX;AASD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,eAAe,GAAG,IAAI,EACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACzC,OAAO,GAAE,6BAAkC,GAC1C,4BAA4B,CAkO9B;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -100,9 +100,12 @@ export function useConditionValidation(conditionEngine, responses, options = {})
|
|
|
100
100
|
/**
|
|
101
101
|
* Valide toutes les variables d'un groupe
|
|
102
102
|
*/
|
|
103
|
-
const validateGroup = useCallback((groupe, numeroMembre) => {
|
|
103
|
+
const validateGroup = useCallback((groupe, numeroMembre, visibleVariableCodes) => {
|
|
104
104
|
const errors = [];
|
|
105
105
|
for (const variable of groupe.variables) {
|
|
106
|
+
// Ignorer les variables non visibles si un filtre est fourni
|
|
107
|
+
if (visibleVariableCodes && !visibleVariableCodes.has(variable.code))
|
|
108
|
+
continue;
|
|
106
109
|
const error = validateVariable(variable, numeroMembre);
|
|
107
110
|
if (error) {
|
|
108
111
|
errors.push(error);
|
|
@@ -118,20 +121,18 @@ export function useConditionValidation(conditionEngine, responses, options = {})
|
|
|
118
121
|
/**
|
|
119
122
|
* Valide toutes les variables de tous les groupes
|
|
120
123
|
*/
|
|
121
|
-
const validateAll = useCallback((groupes, instances) => {
|
|
124
|
+
const validateAll = useCallback((groupes, instances, visibleVariableCodes) => {
|
|
122
125
|
const allErrors = [];
|
|
123
126
|
for (const groupe of groupes) {
|
|
124
127
|
if (groupe.estMultiple && instances?.has(groupe.code)) {
|
|
125
|
-
// Groupe multiple: valider chaque instance
|
|
126
128
|
const instanceNumbers = instances.get(groupe.code) || [];
|
|
127
129
|
for (const instanceNum of instanceNumbers) {
|
|
128
|
-
const errors = validateGroup(groupe, instanceNum);
|
|
130
|
+
const errors = validateGroup(groupe, instanceNum, visibleVariableCodes);
|
|
129
131
|
allErrors.push(...errors);
|
|
130
132
|
}
|
|
131
133
|
}
|
|
132
134
|
else {
|
|
133
|
-
|
|
134
|
-
const errors = validateGroup(groupe);
|
|
135
|
+
const errors = validateGroup(groupe, undefined, visibleVariableCodes);
|
|
135
136
|
allErrors.push(...errors);
|
|
136
137
|
}
|
|
137
138
|
}
|
package/package.json
CHANGED