@rsuci/shared-form-components 1.0.24 → 1.0.25
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/GroupRenderer.d.ts.map +1 -1
- package/dist/components/GroupRenderer.js +19 -0
- package/dist/components/VariableRenderer.d.ts.map +1 -1
- package/dist/components/VariableRenderer.js +14 -0
- package/dist/lib/utils/interpolateVariableLabel.d.ts.map +1 -1
- package/dist/lib/utils/interpolateVariableLabel.js +35 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupRenderer.d.ts","sourceRoot":"","sources":["../../src/components/GroupRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,eAAe,EACf,UAAU,EAEX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,UAAU,kBAAkB;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,+CAA+C;IAC/C,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnF,YAAY,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IAClD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9C,wBAAwB,CAAC,EAAE,CACzB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACzC,YAAY,CAAC,EAAE,MAAM,KAClB,MAAM,CAAC;IACZ,gBAAgB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5C,eAAe,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CAC5C;
|
|
1
|
+
{"version":3,"file":"GroupRenderer.d.ts","sourceRoot":"","sources":["../../src/components/GroupRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,eAAe,EACf,UAAU,EAEX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,UAAU,kBAAkB;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,+CAA+C;IAC/C,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnF,YAAY,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IAClD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9C,wBAAwB,CAAC,EAAE,CACzB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACzC,YAAY,CAAC,EAAE,MAAM,KAClB,MAAM,CAAC;IACZ,gBAAgB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5C,eAAe,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CAC5C;AAgKD,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA0V/C,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -21,6 +21,15 @@ const MultipleGroupManager = ({ groupe, entries, onAddEntry, onRemoveEntry, chil
|
|
|
21
21
|
};
|
|
22
22
|
// Composant pour une entrée individuelle dans un groupe multiple
|
|
23
23
|
const MultipleGroupEntry = ({ groupe, iterationNumber, totalIterations, visibleVariables, responses, onChange, onRemove, canRemove, disabled, allResponses, interpolateVariableLabel, RosterCheckInput, RosterListInput }) => {
|
|
24
|
+
console.log('🔢 [MultipleGroupEntry] Rendu de l\'entrée', {
|
|
25
|
+
groupeCode: groupe.code,
|
|
26
|
+
iterationNumber,
|
|
27
|
+
hasAllResponses: !!allResponses,
|
|
28
|
+
allResponsesKeys: allResponses ? Object.keys(allResponses) : [],
|
|
29
|
+
allResponsesCount: allResponses ? Object.keys(allResponses).length : 0,
|
|
30
|
+
hasInterpolateFunction: !!interpolateVariableLabel,
|
|
31
|
+
visibleVariablesCount: visibleVariables.length
|
|
32
|
+
});
|
|
24
33
|
const entryTitle = groupe.configMultiple?.labelTemplate?.replace('{index}', iterationNumber.toString()) ||
|
|
25
34
|
`${groupe.designation} ${iterationNumber}`;
|
|
26
35
|
return (_jsxs("div", { className: "iteration-card bg-white border border-gray-200 rounded-lg p-4 shadow-sm", children: [_jsxs("div", { className: "flex items-center justify-between mb-4", children: [_jsxs("h4", { className: "text-lg font-medium text-gray-800 flex items-center", children: [_jsx("span", { className: "w-6 h-6 bg-blue-100 text-blue-800 rounded-full flex items-center justify-center text-sm font-semibold mr-2", children: iterationNumber }), entryTitle] }), groupe.configMultiple?.allowManualControl && canRemove && onRemove && (_jsx("button", { onClick: onRemove, disabled: disabled, className: "p-2 text-red-500 hover:text-red-700 hover:bg-red-50 rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed", title: "Supprimer cette entr\u00E9e", children: _jsx(Trash2, { className: "h-4 w-4" }) }))] }), _jsx("div", { className: "variables-grid grid grid-cols-1 md:grid-cols-2 gap-4", children: visibleVariables.map(variable => {
|
|
@@ -34,6 +43,16 @@ const MultipleGroupEntry = ({ groupe, iterationNumber, totalIterations, visibleV
|
|
|
34
43
|
};
|
|
35
44
|
// Composant principal GroupRenderer
|
|
36
45
|
const GroupRenderer = ({ groupe, responses, conditionEngine, formTree, onChange, onValidation, onAutoAction, disabled = false, allResponses, interpolateVariableLabel, RosterCheckInput, RosterListInput }) => {
|
|
46
|
+
console.log('📦 [GroupRenderer] Rendu du groupe', {
|
|
47
|
+
groupeCode: groupe.code,
|
|
48
|
+
groupeDesignation: groupe.designation,
|
|
49
|
+
estMultiple: groupe.estMultiple,
|
|
50
|
+
hasAllResponses: !!allResponses,
|
|
51
|
+
allResponsesKeys: allResponses ? Object.keys(allResponses) : [],
|
|
52
|
+
allResponsesCount: allResponses ? Object.keys(allResponses).length : 0,
|
|
53
|
+
hasInterpolateFunction: !!interpolateVariableLabel,
|
|
54
|
+
variablesCount: groupe.variables.length
|
|
55
|
+
});
|
|
37
56
|
const [multipleEntries, setMultipleEntries] = useState([1]);
|
|
38
57
|
const [validationErrors, setValidationErrors] = useState([]);
|
|
39
58
|
// Déterminer le mode d'utilisation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariableRenderer.d.ts","sourceRoot":"","sources":["../../src/components/VariableRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AA+BxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,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,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC9D,qBAAqB,CAAC,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjE,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC3C,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1L,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAG/B,gBAAgB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC9D,eAAe,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC7D,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAGvH,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,oBAAoB,CAAC,EAAE,GAAG,CAAC;CAC5B;AAGD,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAQvD,CAAC;AAGF,QAAA,MAAM,mBAAmB,GACvB,UAAU,MAAM,EAChB,mBAAmB,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAC7D,kBAAkB,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,KAC3D,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAsD3C,CAAC;AAGF,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,
|
|
1
|
+
{"version":3,"file":"VariableRenderer.d.ts","sourceRoot":"","sources":["../../src/components/VariableRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AA+BxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,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,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC9D,qBAAqB,CAAC,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjE,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC3C,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1L,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAG/B,gBAAgB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC9D,eAAe,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC7D,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAGvH,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,oBAAoB,CAAC,EAAE,GAAG,CAAC;CAC5B;AAGD,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAQvD,CAAC;AAGF,QAAA,MAAM,mBAAmB,GACvB,UAAU,MAAM,EAChB,mBAAmB,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAC7D,kBAAkB,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,KAC3D,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAsD3C,CAAC;AAGF,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAmHrD,CAAC;AAEF,eAAe,gBAAgB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -59,11 +59,25 @@ const getVariableRenderer = (typeCode, RosterCheckInput, RosterListInput) => {
|
|
|
59
59
|
};
|
|
60
60
|
// Composant principal VariableRenderer
|
|
61
61
|
const VariableRenderer = ({ variable, value, onChange, onBlur, error, disabled, numeroMembre, valeurMin, onFillFormFromMenage, onFillFormFromEnquete, formulaireVariables, rosterVariables, allResponses = {}, RosterCheckInput, RosterListInput, interpolateVariableLabel, reponses = {}, services }) => {
|
|
62
|
+
console.log('🎨 [VariableRenderer] Rendu de variable', {
|
|
63
|
+
code: variable.code,
|
|
64
|
+
designation: variable.designation,
|
|
65
|
+
numeroMembre,
|
|
66
|
+
hasInterpolateFunction: !!interpolateVariableLabel,
|
|
67
|
+
allResponsesKeys: Object.keys(allResponses),
|
|
68
|
+
allResponsesCount: Object.keys(allResponses).length
|
|
69
|
+
});
|
|
62
70
|
const RendererComponent = getVariableRenderer(variable.typeCode, RosterCheckInput, RosterListInput);
|
|
63
71
|
// Interpoler le libellé avec les valeurs des autres variables (si fonction fournie)
|
|
64
72
|
const interpolatedDesignation = interpolateVariableLabel
|
|
65
73
|
? interpolateVariableLabel(variable.designation, allResponses, numeroMembre)
|
|
66
74
|
: variable.designation;
|
|
75
|
+
console.log('🎨 [VariableRenderer] Après interpolation', {
|
|
76
|
+
code: variable.code,
|
|
77
|
+
original: variable.designation,
|
|
78
|
+
interpolated: interpolatedDesignation,
|
|
79
|
+
changed: variable.designation !== interpolatedDesignation
|
|
80
|
+
});
|
|
67
81
|
// Ne pas afficher les labels et panneaux avec le wrapper standard (ils sont gérés séparément)
|
|
68
82
|
if (variable.typeCode === 'LABEL' || variable.typeCode === 'PANEL') {
|
|
69
83
|
// Pour LABEL et PANEL, créer une variable avec le libellé interpolé
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpolateVariableLabel.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/interpolateVariableLabel.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,qBAAqB,CAAC,EAAE,MAAM,GAC7B,MAAM,
|
|
1
|
+
{"version":3,"file":"interpolateVariableLabel.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/interpolateVariableLabel.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,qBAAqB,CAAC,EAAE,MAAM,GAC7B,MAAM,CA6ER;AA2DD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAG5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAcjE;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -31,18 +31,31 @@
|
|
|
31
31
|
* // Cherchera MEMBRE_NOM_2 → "Nom: Pierre"
|
|
32
32
|
*/
|
|
33
33
|
export function interpolateVariableLabel(label, allResponses, currentInstanceNumber) {
|
|
34
|
+
console.log('🔍 [interpolateVariableLabel] DEBUT', {
|
|
35
|
+
label,
|
|
36
|
+
currentInstanceNumber,
|
|
37
|
+
allResponsesKeys: Object.keys(allResponses),
|
|
38
|
+
allResponsesCount: Object.keys(allResponses).length
|
|
39
|
+
});
|
|
34
40
|
// Si pas de label ou pas de pattern ${}, retourner tel quel
|
|
35
41
|
if (!label || !label.includes('${')) {
|
|
42
|
+
console.log('🔍 [interpolateVariableLabel] Pas de pattern ${} trouvé, retour direct');
|
|
36
43
|
return label;
|
|
37
44
|
}
|
|
38
45
|
// Regex pour capturer ${CODE} - le code peut contenir lettres, chiffres, underscores
|
|
39
46
|
const regex = /\$\{([A-Za-z0-9_]+)\}/g;
|
|
40
|
-
|
|
47
|
+
const result = label.replace(regex, (match, variableCode) => {
|
|
48
|
+
console.log('🔍 [interpolateVariableLabel] Traitement de', { match, variableCode });
|
|
41
49
|
let response;
|
|
42
50
|
// Stratégie de recherche de la valeur
|
|
43
51
|
// 1. Essayer avec le code exact tel quel
|
|
44
52
|
// Cela couvre le cas ${CODE_N} où N est explicite
|
|
45
53
|
response = allResponses[variableCode];
|
|
54
|
+
console.log('🔍 [interpolateVariableLabel] Stratégie 1 - Code exact', {
|
|
55
|
+
variableCode,
|
|
56
|
+
found: !!response,
|
|
57
|
+
value: response?.valeur
|
|
58
|
+
});
|
|
46
59
|
// 2. Si pas trouvé, essayer avec l'instance courante
|
|
47
60
|
// La stratégie de recherche en étapes garantit le bon fonctionnement :
|
|
48
61
|
// - Les références explicites (${CODE_1}) sont trouvées à l'étape 1
|
|
@@ -51,19 +64,39 @@ export function interpolateVariableLabel(label, allResponses, currentInstanceNum
|
|
|
51
64
|
// Essayer CODE_instanceNumber
|
|
52
65
|
const keyWithInstance = `${variableCode}_${currentInstanceNumber}`;
|
|
53
66
|
response = allResponses[keyWithInstance];
|
|
67
|
+
console.log('🔍 [interpolateVariableLabel] Stratégie 2 - Avec instance', {
|
|
68
|
+
keyWithInstance,
|
|
69
|
+
found: !!response,
|
|
70
|
+
value: response?.valeur
|
|
71
|
+
});
|
|
54
72
|
}
|
|
55
73
|
// 3. Si toujours pas trouvé, chercher dans les réponses par variableCode
|
|
56
74
|
// (pour le cas où la clé est juste le code sans suffix)
|
|
57
75
|
if (!response) {
|
|
58
76
|
response = Object.values(allResponses).find(r => r.variableCode === variableCode);
|
|
77
|
+
console.log('🔍 [interpolateVariableLabel] Stratégie 3 - Par variableCode', {
|
|
78
|
+
variableCode,
|
|
79
|
+
found: !!response,
|
|
80
|
+
value: response?.valeur
|
|
81
|
+
});
|
|
59
82
|
}
|
|
60
83
|
// 4. Formater et retourner la valeur si trouvée
|
|
61
84
|
if (response?.valeur !== undefined && response?.valeur !== null && response?.valeur !== '') {
|
|
62
|
-
|
|
85
|
+
const formatted = formatValue(response.valeur);
|
|
86
|
+
console.log('🔍 [interpolateVariableLabel] Valeur trouvée et formatée', {
|
|
87
|
+
match,
|
|
88
|
+
variableCode,
|
|
89
|
+
rawValue: response.valeur,
|
|
90
|
+
formatted
|
|
91
|
+
});
|
|
92
|
+
return formatted;
|
|
63
93
|
}
|
|
64
94
|
// 5. Pas de valeur trouvée → garder le placeholder pour indiquer le champ à remplir
|
|
95
|
+
console.log('⚠️ [interpolateVariableLabel] Aucune valeur trouvée, garder le placeholder', { match, variableCode });
|
|
65
96
|
return match;
|
|
66
97
|
});
|
|
98
|
+
console.log('🔍 [interpolateVariableLabel] RESULTAT', { original: label, result });
|
|
99
|
+
return result;
|
|
67
100
|
}
|
|
68
101
|
/**
|
|
69
102
|
* Formate une valeur pour l'affichage dans le libellé
|
package/package.json
CHANGED