@rsuci/shared-form-components 1.0.98 → 1.0.100

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,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;AAo3BD;;;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,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;AA+6BD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAgBpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -23,6 +23,10 @@ import { useConditionValidation } from '../../hooks/useConditionValidation';
23
23
  import { GroupeInstanceManager } from '../../lib/utils/groupeInstanceManager';
24
24
  import { interpolateVariableLabel } from '../../lib/utils/interpolateVariableLabel';
25
25
  import { VariableValueConverter } from '../../lib/utils/variableValueConverter';
26
+ // Types de variables en lecture seule qui ne possèdent pas de valeur à effacer
27
+ const READ_ONLY_TYPES = new Set([
28
+ 'LABEL', 'PANEL', 'ENQUETEUR', 'EMAIL_ENQUETEUR', 'TELEPHONE_ENQUETEUR'
29
+ ]);
26
30
  /**
27
31
  * Composant interne qui utilise le contexte
28
32
  */
@@ -61,6 +65,8 @@ const FormRendererInner = () => {
61
65
  // Refs pour éviter les boucles infinies lors de l'application des autoactions
62
66
  const isApplyingAutoActions = useRef(false);
63
67
  const lastProcessedResponsesKey = useRef('');
68
+ // Ref pour éviter les boucles infinies lors du nettoyage des variables masquées
69
+ const isClearingHiddenRef = useRef(false);
64
70
  // useEffect pour évaluer et appliquer les autoactions (calculs automatiques comme setValeur)
65
71
  useEffect(() => {
66
72
  // Éviter les boucles infinies: ne pas exécuter si on est déjà en train d'appliquer des autoactions
@@ -110,6 +116,55 @@ const FormRendererInner = () => {
110
116
  });
111
117
  }
112
118
  }, [responses, currentGroup, currentInstance, evaluateAutoActionsForInstance, updateResponse]);
119
+ // useEffect pour effacer les valeurs des variables masquées par showMe/hideMe
120
+ // Quand une variable devient invisible (condition non satisfaite), sa valeur est supprimée
121
+ useEffect(() => {
122
+ if (!currentGroup?.variables || isClearingHiddenRef.current)
123
+ return;
124
+ const variablesToClear = [];
125
+ for (const variable of currentGroup.variables) {
126
+ if (READ_ONLY_TYPES.has(variable.typeCode))
127
+ continue;
128
+ if (!variable.estVisible)
129
+ continue; // Ignorer les variables masquées statiquement par l'admin
130
+ if (currentGroup.estMultiple && currentGroup.instances) {
131
+ // Groupes multiples : vérifier par instance
132
+ for (const instance of currentGroup.instances) {
133
+ const visibleVars = getVisibleVariablesForInstance(currentGroup.code, instance.numeroInstance);
134
+ if (!visibleVars.some(v => v.code === variable.code)) {
135
+ const responseKey = `${variable.code}_${instance.numeroInstance}`;
136
+ const response = responses[responseKey];
137
+ if (response && response.valeur != null && response.valeur !== '') {
138
+ variablesToClear.push({ variable, instanceNumber: instance.numeroInstance });
139
+ }
140
+ }
141
+ }
142
+ }
143
+ else {
144
+ // Groupes simples : utiliser la visibilité FormTree
145
+ const visibleVars = getVisibleVariables(currentGroup.code);
146
+ if (!visibleVars.some(v => v.code === variable.code)) {
147
+ const response = responses[variable.code]
148
+ || responsesByVariableCode.get(variable.code);
149
+ if (response && response.valeur != null && response.valeur !== '') {
150
+ variablesToClear.push({
151
+ variable,
152
+ instanceNumber: response.numeroMembre
153
+ });
154
+ }
155
+ }
156
+ }
157
+ }
158
+ if (variablesToClear.length > 0) {
159
+ isClearingHiddenRef.current = true;
160
+ for (const { variable, instanceNumber } of variablesToClear) {
161
+ updateResponse(variable.code, null, variable, instanceNumber);
162
+ }
163
+ requestAnimationFrame(() => {
164
+ isClearingHiddenRef.current = false;
165
+ });
166
+ }
167
+ }, [responses, currentGroup, getVisibleVariables, getVisibleVariablesForInstance, updateResponse, responsesByVariableCode]);
113
168
  // Vérifier si une variable est visible
114
169
  const isVariableVisible = useCallback((variable) => {
115
170
  if (!currentGroup?.code)
@@ -3,8 +3,8 @@
3
3
  * RSU v2 - Moteur de Rendu des Formulaires d'Enquête
4
4
  *
5
5
  * Formats acceptés :
6
- * - Nouveau format : CI00xxxxxxx (CI00 + 7 chiffres) = 11 caractères
7
- * - Ancien format : C 00XX XXXXXX (C + espace + 00 + 2 chiffres + espace + 6 chiffres) = 13 caractères
6
+ * - Nouveau format : CI00XXXXXXX (CI00 + 7 chiffres) = 11 caractères
7
+ * - Ancien format : C XXXX XXXX XX (C + espace + 4 chiffres + espace + 4 chiffres + espace + 2 chiffres) = 14 caractères
8
8
  */
9
9
  import React from 'react';
10
10
  import { VariableFormulaire, VariableValue } from '../../types/enquete';
@@ -1 +1 @@
1
- {"version":3,"file":"CNIInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/CNIInput.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAgC,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIxE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,kBAAkB,GAAG;QAAE,QAAQ,EAAE,KAAK,CAAA;KAAE,CAAC;IACnD,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAwDD,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAgHrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"CNIInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/CNIInput.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAgC,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIxE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,kBAAkB,GAAG;QAAE,QAAQ,EAAE,KAAK,CAAA;KAAE,CAAC;IACnD,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAiED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAgHrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -3,8 +3,8 @@
3
3
  * RSU v2 - Moteur de Rendu des Formulaires d'Enquête
4
4
  *
5
5
  * Formats acceptés :
6
- * - Nouveau format : CI00xxxxxxx (CI00 + 7 chiffres) = 11 caractères
7
- * - Ancien format : C 00XX XXXXXX (C + espace + 00 + 2 chiffres + espace + 6 chiffres) = 13 caractères
6
+ * - Nouveau format : CI00XXXXXXX (CI00 + 7 chiffres) = 11 caractères
7
+ * - Ancien format : C XXXX XXXX XX (C + espace + 4 chiffres + espace + 4 chiffres + espace + 2 chiffres) = 14 caractères
8
8
  */
9
9
  'use client';
10
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -12,7 +12,7 @@ import { useState, useCallback } from 'react';
12
12
  import { applyComponentStyle } from '../../utils/styleUtils';
13
13
  import { isComponentReadonly, readonlyClasses } from '../../utils/componentStateUtils';
14
14
  const CNI_NEW_REGEX = /^CI00\d{7}$/;
15
- const CNI_OLD_REGEX = /^C 00\d{2} \d{6}$/;
15
+ const CNI_OLD_REGEX = /^C \d{4} \d{4} \d{2}$/;
16
16
  const applyNewFormatMask = (value) => {
17
17
  let result = value.toUpperCase();
18
18
  result = result.replace(/[^CI0-9]/g, '');
@@ -33,7 +33,6 @@ const applyNewFormatMask = (value) => {
33
33
  const applyOldFormatMask = (value) => {
34
34
  let result = value.toUpperCase();
35
35
  const chars = [];
36
- let rawIndex = 0;
37
36
  for (let i = 0; i < result.length && chars.length < 14; i++) {
38
37
  const char = result[i];
39
38
  const pos = chars.length;
@@ -42,28 +41,41 @@ const applyOldFormatMask = (value) => {
42
41
  chars.push(char);
43
42
  }
44
43
  else if (pos === 1) {
44
+ // Auto-insérer espace après C
45
45
  chars.push(' ');
46
46
  if (/[0-9]/.test(char))
47
47
  chars.push(char);
48
48
  else
49
49
  i--;
50
50
  }
51
- else if (pos === 2 || pos === 3) {
52
- if (char === '0')
51
+ else if (pos >= 2 && pos <= 5) {
52
+ // 4 chiffres libres
53
+ if (/[0-9]/.test(char))
53
54
  chars.push(char);
54
55
  }
55
- else if (pos === 4 || pos === 5) {
56
+ else if (pos === 6) {
57
+ // Auto-insérer espace après les 4 premiers chiffres
58
+ chars.push(' ');
56
59
  if (/[0-9]/.test(char))
57
60
  chars.push(char);
61
+ else
62
+ i--;
58
63
  }
59
- else if (pos === 6) {
64
+ else if (pos >= 7 && pos <= 10) {
65
+ // 4 chiffres libres
66
+ if (/[0-9]/.test(char))
67
+ chars.push(char);
68
+ }
69
+ else if (pos === 11) {
70
+ // Auto-insérer espace après les 4 seconds chiffres
60
71
  chars.push(' ');
61
72
  if (/[0-9]/.test(char))
62
73
  chars.push(char);
63
74
  else
64
75
  i--;
65
76
  }
66
- else if (pos >= 7 && pos <= 13) {
77
+ else if (pos >= 12 && pos <= 13) {
78
+ // 2 derniers chiffres
67
79
  if (/[0-9]/.test(char))
68
80
  chars.push(char);
69
81
  }
@@ -130,7 +142,7 @@ const CNIInput = ({ variable, value, onChange, onBlur, error, disabled, isConsul
130
142
  setLocalError('Format attendu : CI00 suivi de 7 chiffres (ex: CI001234567)');
131
143
  }
132
144
  else if (format === 'old') {
133
- setLocalError('Format attendu : C 00XX XXXXXX (ex: C 0012 345678)');
145
+ setLocalError('Format attendu : C XXXX XXXX XX (ex: C 1234 5678 90)');
134
146
  }
135
147
  else {
136
148
  setLocalError('Format CNI invalide');
@@ -152,7 +164,7 @@ const CNIInput = ({ variable, value, onChange, onBlur, error, disabled, isConsul
152
164
  return `${baseClasses} ${errorClasses} bg-white`;
153
165
  };
154
166
  const displayError = error || localError;
155
- const placeholder = 'CI001234567 ou C 0012 345678';
167
+ const placeholder = 'CI001234567 ou C 1234 5678 90';
156
168
  return (_jsxs("div", { style: containerStyle, children: [_jsx("input", { type: "text", value: stringValue, onChange: handleChange, onBlur: handleBlur, placeholder: disabled ? '' : placeholder, disabled: disabled, readOnly: isReadonly, style: textStyle, className: getInputClasses(), maxLength: 14, autoComplete: "off", spellCheck: false }), displayError && (_jsx("p", { className: "mt-1 text-sm text-red-500", children: displayError }))] }));
157
169
  };
158
170
  export default CNIInput;
@@ -1 +1 @@
1
- {"version":3,"file":"form-tree.d.ts","sourceRoot":"","sources":["../../src/lib/form-tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-tree.d.ts","sourceRoot":"","sources":["../../src/lib/form-tree.ts"],"names":[],"mappings":"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"}
@@ -305,6 +305,10 @@ export class FormTree {
305
305
  state.variable.estVisible &&
306
306
  state.isConditionMet &&
307
307
  !state.isJumpedOver;
308
+ // Marquer les variables masquées par condition (showMe/hideMe) pour nettoyage
309
+ if (state.variable.estVisible && !state.isConditionMet) {
310
+ state.shouldClearOnSave = true;
311
+ }
308
312
  }
309
313
  }
310
314
  // ============ REQUÊTES ============
@@ -397,6 +401,10 @@ export class FormTree {
397
401
  state.variable.estVisible &&
398
402
  state.isConditionMet &&
399
403
  !state.isJumpedOver;
404
+ // Marquer les variables masquées par condition (showMe/hideMe) pour nettoyage
405
+ if (state.variable.estVisible && !state.isConditionMet) {
406
+ state.shouldClearOnSave = true;
407
+ }
400
408
  }
401
409
  // Stocker les jumps de cette instance pour référence
402
410
  const instanceKey = `${groupeCode}_${instanceNumber}`;
@@ -823,6 +831,10 @@ export class FormTree {
823
831
  state.variable.estVisible &&
824
832
  state.isConditionMet &&
825
833
  !state.isJumpedOver;
834
+ // Marquer les variables masquées par condition (showMe/hideMe) pour nettoyage
835
+ if (state.variable.estVisible && !state.isConditionMet) {
836
+ state.shouldClearOnSave = true;
837
+ }
826
838
  }
827
839
  }
828
840
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsuci/shared-form-components",
3
- "version": "1.0.98",
3
+ "version": "1.0.100",
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",