@rsuci/shared-form-components 1.0.41 → 1.0.43

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;AA6fD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAgBpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
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;AAohBD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAgBpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -98,7 +98,15 @@ const FormRendererInner = () => {
98
98
  };
99
99
  // Navigation - Validation avant navigation
100
100
  const groupes = groupesWithInstances.length > 0 ? groupesWithInstances : formulaire?.groupes || [];
101
- // Validation locale utilisant isVariableVisible du formTree
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
102
110
  const validateCurrentGroupWithVisibility = useCallback(() => {
103
111
  if (!currentGroup || !currentGroup.variables)
104
112
  return true;
@@ -108,11 +116,19 @@ const FormRendererInner = () => {
108
116
  }
109
117
  // Pour les groupes normaux, valider uniquement les variables visibles et obligatoires
110
118
  const requiredVariables = currentGroup.variables.filter(v => v.estObligatoire);
119
+ console.log('🔍 [Validation] Mode:', mode, 'Groupe:', currentGroup.code);
120
+ console.log('🔍 [Validation] Variables obligatoires:', requiredVariables.length);
111
121
  for (const variable of requiredVariables) {
122
+ // Vérifier si la variable est filtrée par le mode (MENAGE/ENQUETE en mode public)
123
+ const isFilteredByMode = isVariableFilteredByMode(variable);
124
+ if (isFilteredByMode) {
125
+ console.log('🔍 [Validation] Variable filtrée par mode:', variable.code, 'typeCode:', variable.typeCode);
126
+ continue;
127
+ }
112
128
  // Vérifier si la variable est visible via le formTree
113
129
  const isVisible = isVariableVisible(variable);
114
130
  if (!isVisible) {
115
- // Variable masquée = pas de validation
131
+ console.log('🔍 [Validation] Variable masquée par formTree:', variable.code);
116
132
  continue;
117
133
  }
118
134
  // Vérifier si la variable a une valeur
@@ -121,12 +137,15 @@ const FormRendererInner = () => {
121
137
  : variable.code;
122
138
  const response = responses[responseKey];
123
139
  const hasValue = response && response.valeur != null && response.valeur !== '';
140
+ console.log('🔍 [Validation] Variable:', variable.code, 'hasValue:', hasValue, 'valeur:', response?.valeur);
124
141
  if (!hasValue) {
142
+ console.log('❌ [Validation] ECHEC - Variable sans valeur:', variable.code);
125
143
  return false;
126
144
  }
127
145
  }
146
+ console.log('✅ [Validation] Toutes les variables obligatoires sont remplies');
128
147
  return true;
129
- }, [currentGroup, currentInstance, responses, isVariableVisible, validation]);
148
+ }, [currentGroup, currentInstance, responses, isVariableVisible, isVariableFilteredByMode, validation, mode]);
130
149
  const canGoNext = validateCurrentGroupWithVisibility();
131
150
  const isFormValid = validation.validateAllGroups(groupes, responses).isValid;
132
151
  const handleNext = () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsuci/shared-form-components",
3
- "version": "1.0.41",
3
+ "version": "1.0.43",
4
4
  "description": "Composants partagés de rendu de formulaires RSU v2 - Package local pour frontend Admin et Public",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",