@rsuci/shared-form-components 1.0.40 → 1.0.42
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/form-renderer/FormRenderer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,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;AAmBlF;;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,KAAyC,MAAM,OAAO,CAAC;AAC9D,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;AAmBlF;;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;AA4gBD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAgBpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -98,7 +98,49 @@ const FormRendererInner = () => {
|
|
|
98
98
|
};
|
|
99
99
|
// Navigation - Validation avant navigation
|
|
100
100
|
const groupes = groupesWithInstances.length > 0 ? groupesWithInstances : formulaire?.groupes || [];
|
|
101
|
-
|
|
101
|
+
// Vérifier si une variable est filtrée par le mode (exclue du rendu)
|
|
102
|
+
const isVariableFilteredByMode = useCallback((variable) => {
|
|
103
|
+
// En mode public, les variables MENAGE et ENQUETE sont filtrées
|
|
104
|
+
if (mode === 'public' && !features?.showMenageVariables && !features?.showEnqueteVariables) {
|
|
105
|
+
return variable.typeCode === 'MENAGE' || variable.typeCode === 'ENQUETE';
|
|
106
|
+
}
|
|
107
|
+
return false;
|
|
108
|
+
}, [mode, features]);
|
|
109
|
+
// Validation locale utilisant isVariableVisible du formTree ET le filtrage par mode
|
|
110
|
+
const validateCurrentGroupWithVisibility = useCallback(() => {
|
|
111
|
+
if (!currentGroup || !currentGroup.variables)
|
|
112
|
+
return true;
|
|
113
|
+
// Pour les groupes multiples, vérifier si toutes les instances sont complètes
|
|
114
|
+
if (currentGroup.estMultiple && currentGroup.instances) {
|
|
115
|
+
return validation.validateAllInstancesComplete(currentGroup);
|
|
116
|
+
}
|
|
117
|
+
// Pour les groupes normaux, valider uniquement les variables visibles et obligatoires
|
|
118
|
+
const requiredVariables = currentGroup.variables.filter(v => v.estObligatoire);
|
|
119
|
+
for (const variable of requiredVariables) {
|
|
120
|
+
// Vérifier si la variable est filtrée par le mode (MENAGE/ENQUETE en mode public)
|
|
121
|
+
if (isVariableFilteredByMode(variable)) {
|
|
122
|
+
// Variable filtrée par mode = pas de validation
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
// Vérifier si la variable est visible via le formTree
|
|
126
|
+
const isVisible = isVariableVisible(variable);
|
|
127
|
+
if (!isVisible) {
|
|
128
|
+
// Variable masquée = pas de validation
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
// Vérifier si la variable a une valeur
|
|
132
|
+
const responseKey = currentGroup.estMultiple && currentInstance?.numeroInstance
|
|
133
|
+
? `${variable.code}_${currentInstance.numeroInstance}`
|
|
134
|
+
: variable.code;
|
|
135
|
+
const response = responses[responseKey];
|
|
136
|
+
const hasValue = response && response.valeur != null && response.valeur !== '';
|
|
137
|
+
if (!hasValue) {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return true;
|
|
142
|
+
}, [currentGroup, currentInstance, responses, isVariableVisible, isVariableFilteredByMode, validation]);
|
|
143
|
+
const canGoNext = validateCurrentGroupWithVisibility();
|
|
102
144
|
const isFormValid = validation.validateAllGroups(groupes, responses).isValid;
|
|
103
145
|
const handleNext = () => {
|
|
104
146
|
if (canGoNext && !navigation.isLastGroup) {
|
package/package.json
CHANGED