@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;AAydD;;;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;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
- const canGoNext = validation.validateCurrentGroupRequiredFields(currentGroup, responses);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsuci/shared-form-components",
3
- "version": "1.0.40",
3
+ "version": "1.0.42",
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",