@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.
- package/dist/components/form-renderer/FormRenderer.d.ts.map +1 -1
- package/dist/components/form-renderer/FormRenderer.js +55 -0
- package/dist/components/inputs/CNIInput.d.ts +2 -2
- package/dist/components/inputs/CNIInput.d.ts.map +1 -1
- package/dist/components/inputs/CNIInput.js +23 -11
- package/dist/lib/form-tree.d.ts.map +1 -1
- package/dist/lib/form-tree.js +12 -0
- 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;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 :
|
|
7
|
-
* - Ancien format : C
|
|
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;
|
|
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 :
|
|
7
|
-
* - Ancien format : C
|
|
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
|
|
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
|
|
52
|
-
|
|
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 ===
|
|
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
|
|
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 >=
|
|
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
|
|
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
|
|
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":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,SAAS,EACT,eAAe,EAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAc,MAAM,oBAAoB,CAAC;AAGjE,qBAAa,QAAS,YAAW,SAAS;IACxC,OAAO,CAAC,UAAU,CAA0C;IAC5D,OAAO,CAAC,aAAa,CAA6C;IAClE,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,KAAK,CAAU;IAIvB,OAAO,CAAC,cAAc,CAA0D;IAGhF,OAAO,CAAC,kBAAkB,CAAuC;IAIjE,OAAO,CAAC,sBAAsB,CAAuC;IAE9D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;gBAG9C,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAM,EAC9C,OAAO,GAAE,eAAoB;IAU/B,OAAO,CAAC,GAAG;IAQX,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAsDtD,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI;IAkBhE;;;OAGG;IACH,uBAAuB,CACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACzC,eAAe,EAAE,MAAM,EACvB,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAC9B,IAAI;IA4BP,WAAW,IAAI,IAAI;IA+BnB,OAAO,CAAC,uBAAuB;IAkC/B,OAAO,CAAC,YAAY;IAIpB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,oBAAoB;IA6C5B,OAAO,CAAC,YAAY;IA+DpB,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,sBAAsB;
|
|
1
|
+
{"version":3,"file":"form-tree.d.ts","sourceRoot":"","sources":["../../src/lib/form-tree.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/form-tree.js
CHANGED
|
@@ -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