@rsuci/shared-form-components 1.0.139 → 1.0.141
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 +0 -20
- package/dist/components/IdDocInput.d.ts.map +1 -1
- package/dist/components/IdDocInput.js +0 -1
- package/dist/components/VariableRenderer.d.ts.map +1 -1
- package/dist/components/VariableRenderer.js +1 -35
- package/dist/components/form-renderer/FormActions.d.ts.map +1 -1
- package/dist/components/form-renderer/FormActions.js +0 -1
- package/dist/components/form-renderer/FormRenderer.d.ts.map +1 -1
- package/dist/components/form-renderer/FormRenderer.js +0 -2
- package/dist/components/form-renderer/GroupeInstanceTabs.d.ts.map +1 -1
- package/dist/components/form-renderer/GroupeInstanceTabs.js +0 -2
- package/dist/components/inputs/NumberInput.d.ts.map +1 -1
- package/dist/components/inputs/NumberInput.js +0 -13
- package/dist/components/inputs/StringInput.d.ts.map +1 -1
- package/dist/components/inputs/StringInput.js +1 -22
- package/dist/components/roster/RosterCheckInput.d.ts.map +1 -1
- package/dist/components/roster/RosterCheckInput.js +0 -8
- package/dist/components/roster/RosterListInput.d.ts.map +1 -1
- package/dist/components/roster/RosterListInput.js +0 -8
- package/dist/components/roster/RosterPanel.d.ts.map +1 -1
- package/dist/components/roster/RosterPanel.js +0 -15
- package/dist/components/wrappers/PhotoCapture.d.ts.map +1 -1
- package/dist/components/wrappers/PhotoCapture.js +0 -1
- package/dist/hooks/useFormRenderer.d.ts.map +1 -1
- package/dist/hooks/useFormRenderer.js +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -4
- package/dist/lib/__tests__/condition-engine-index.test.d.ts +6 -0
- package/dist/lib/__tests__/condition-engine-index.test.d.ts.map +1 -0
- package/dist/lib/__tests__/condition-engine-index.test.js +132 -0
- package/dist/lib/__tests__/groupeInstanceManager.test.js +1 -1
- package/dist/lib/condition-engine.d.ts.map +1 -1
- package/dist/lib/condition-engine.js +12 -23
- package/dist/lib/roster-condition-engine.d.ts.map +1 -1
- package/dist/lib/roster-condition-engine.js +2 -5
- package/dist/lib/utils/variableValueConverter.d.ts.map +1 -1
- package/dist/lib/utils/variableValueConverter.js +0 -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;AA6JD,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAwV/C,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -24,16 +24,6 @@ const MultipleGroupEntry = ({ groupe, iterationNumber, totalIterations, visibleV
|
|
|
24
24
|
// Utiliser les variables visibles spécifiques à l'instance si disponibles
|
|
25
25
|
// Sinon, fallback sur les variables visibles globales (rétrocompatibilité)
|
|
26
26
|
const effectiveVisibleVariables = instanceVisibleVariables || visibleVariables;
|
|
27
|
-
console.log('🔢 [MultipleGroupEntry] Rendu de l\'entrée', {
|
|
28
|
-
groupeCode: groupe.code,
|
|
29
|
-
iterationNumber,
|
|
30
|
-
hasAllResponses: !!allResponses,
|
|
31
|
-
allResponsesKeys: allResponses ? Object.keys(allResponses) : [],
|
|
32
|
-
allResponsesCount: allResponses ? Object.keys(allResponses).length : 0,
|
|
33
|
-
hasInterpolateFunction: !!interpolateVariableLabel,
|
|
34
|
-
visibleVariablesCount: effectiveVisibleVariables.length,
|
|
35
|
-
hasInstanceVisibleVariables: !!instanceVisibleVariables
|
|
36
|
-
});
|
|
37
27
|
const entryTitle = groupe.configMultiple?.labelTemplate?.replace('{index}', iterationNumber.toString()) ||
|
|
38
28
|
`${groupe.designation} ${iterationNumber}`;
|
|
39
29
|
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: effectiveVisibleVariables.map(variable => {
|
|
@@ -47,16 +37,6 @@ const MultipleGroupEntry = ({ groupe, iterationNumber, totalIterations, visibleV
|
|
|
47
37
|
};
|
|
48
38
|
// Composant principal GroupRenderer
|
|
49
39
|
const GroupRenderer = ({ groupe, responses, conditionEngine, formTree, onChange, onValidation, onAutoAction, disabled = false, allResponses, interpolateVariableLabel, RosterCheckInput, RosterListInput }) => {
|
|
50
|
-
console.log('📦 [GroupRenderer] Rendu du groupe', {
|
|
51
|
-
groupeCode: groupe.code,
|
|
52
|
-
groupeDesignation: groupe.designation,
|
|
53
|
-
estMultiple: groupe.estMultiple,
|
|
54
|
-
hasAllResponses: !!allResponses,
|
|
55
|
-
allResponsesKeys: allResponses ? Object.keys(allResponses) : [],
|
|
56
|
-
allResponsesCount: allResponses ? Object.keys(allResponses).length : 0,
|
|
57
|
-
hasInterpolateFunction: !!interpolateVariableLabel,
|
|
58
|
-
variablesCount: groupe.variables.length
|
|
59
|
-
});
|
|
60
40
|
const [multipleEntries, setMultipleEntries] = useState([1]);
|
|
61
41
|
const [validationErrors, setValidationErrors] = useState([]);
|
|
62
42
|
// Déterminer le mode d'utilisation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdDocInput.d.ts","sourceRoot":"","sources":["../../src/components/IdDocInput.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKrE,MAAM,WAAW,eAAe;IAC9B,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;CACpB;AAuBD,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"IdDocInput.d.ts","sourceRoot":"","sources":["../../src/components/IdDocInput.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKrE,MAAM,WAAW,eAAe;IAC9B,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;CACpB;AAuBD,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA8XzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -123,7 +123,6 @@ const IdDocInput = ({ variable, value, onChange, onBlur, error, disabled }) => {
|
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
catch (error) {
|
|
126
|
-
console.error('Erreur accès caméra:', error);
|
|
127
126
|
alert('Impossible d\'accéder à la caméra. Vérifiez les permissions.');
|
|
128
127
|
setIsCapturing(false);
|
|
129
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariableRenderer.d.ts","sourceRoot":"","sources":["../../src/components/VariableRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AA0CxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5G,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;IAG3B,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAGvC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAG7B,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;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,CAwE3C,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;AA0CxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5G,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;IAG3B,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAGvC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAG7B,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;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,CAwE3C,CAAC;AAGF,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA0GrD,CAAC;AAEF,eAAe,gBAAgB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -74,36 +74,11 @@ const getVariableRenderer = (typeCode, RosterCheckInput, RosterListInput) => {
|
|
|
74
74
|
};
|
|
75
75
|
// Composant principal VariableRenderer
|
|
76
76
|
const VariableRenderer = ({ variable, value, onChange, onBlur, error, disabled, numeroMembre, valeurMin, onFillFormFromMenage, onFillFormFromEnquete, formulaireVariables, rosterVariables, allResponses = {}, RosterCheckInput, RosterListInput, interpolateVariableLabel, reponses = {}, services, formulaireGroupes, isConsultationMode = false, conditionValidationError }) => {
|
|
77
|
-
console.log('🎨 [VariableRenderer] Rendu de variable', {
|
|
78
|
-
code: variable.code,
|
|
79
|
-
designation: variable.designation,
|
|
80
|
-
numeroMembre,
|
|
81
|
-
hasInterpolateFunction: !!interpolateVariableLabel,
|
|
82
|
-
allResponsesKeys: Object.keys(allResponses),
|
|
83
|
-
allResponsesCount: Object.keys(allResponses).length
|
|
84
|
-
});
|
|
85
77
|
const RendererComponent = getVariableRenderer(variable.typeCode, RosterCheckInput, RosterListInput);
|
|
86
78
|
// Interpoler le libellé avec les valeurs des autres variables (si fonction fournie)
|
|
87
79
|
const interpolatedDesignation = interpolateVariableLabel
|
|
88
80
|
? interpolateVariableLabel(variable.designation, allResponses, numeroMembre)
|
|
89
81
|
: variable.designation;
|
|
90
|
-
console.log('🎨 [VariableRenderer] Après interpolation', {
|
|
91
|
-
code: variable.code,
|
|
92
|
-
original: variable.designation,
|
|
93
|
-
interpolated: interpolatedDesignation,
|
|
94
|
-
changed: variable.designation !== interpolatedDesignation
|
|
95
|
-
});
|
|
96
|
-
// Debug log pour les types géographiques - tracer le flux de données
|
|
97
|
-
if (['DISTRICT', 'REGION', 'DEPARTEMENT', 'SOUSPREFECTURE', 'QUARTIER'].includes(variable.typeCode)) {
|
|
98
|
-
console.log('🌍 [VariableRenderer] Passage value à GeographicCascade:', {
|
|
99
|
-
variableCode: variable.code,
|
|
100
|
-
typeCode: variable.typeCode,
|
|
101
|
-
valueProp: value,
|
|
102
|
-
valueType: typeof value,
|
|
103
|
-
valueStringified: JSON.stringify(value),
|
|
104
|
-
reponsesKeys: Object.keys(reponses || {})
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
82
|
// Ne pas afficher les labels, panneaux et richtext avec le wrapper standard (ils sont gérés séparément)
|
|
108
83
|
if (variable.typeCode === 'LABEL' || variable.typeCode === 'PANEL' || variable.typeCode === 'RICHTEXT') {
|
|
109
84
|
// Pour LABEL, PANEL et RICHTEXT, créer une variable avec le libellé interpolé
|
|
@@ -118,16 +93,7 @@ const VariableRenderer = ({ variable, value, onChange, onBlur, error, disabled,
|
|
|
118
93
|
};
|
|
119
94
|
return _jsx(RendererComponent, { variable: variableWithInterpolatedLabel, value, onChange, onBlur, error, disabled, numeroMembre, valeurMin, onFillFormFromMenage, formulaireVariables, rosterVariables, isConsultationMode });
|
|
120
95
|
}
|
|
121
|
-
return (_jsxs("div", { className: "variable-container space-y-2", children: [_jsxs("label", { className: "block text-sm font-medium text-gray-700", children: [variable.typeCode !== 'LABEL' && variable.code && (_jsxs("span", { className: "text-blue-600 font-mono text-xs mr-2", children: ["(", variable.code, ")"] })), interpolatedDesignation, variable.estObligatoire && _jsx("span", { className: "text-red-500 ml-1", children: "*" }), variable.proprietes?.tooltip && (_jsx("button", { type: "button", className: "ml-2 text-gray-400 hover:text-gray-600", title: variable.proprietes.tooltip, children: _jsx(HelpCircle, { className: "h-4 w-4 inline" }) }))] }),
|
|
122
|
-
console.log(`🔍 [VariableRenderer] Variable ${variable.code} - Avant rendu:`, {
|
|
123
|
-
typeCode: variable.typeCode,
|
|
124
|
-
rosterVariables: rosterVariables,
|
|
125
|
-
rosterVariablesType: typeof rosterVariables,
|
|
126
|
-
isArray: Array.isArray(rosterVariables),
|
|
127
|
-
length: Array.isArray(rosterVariables) ? rosterVariables.length : 'N/A'
|
|
128
|
-
});
|
|
129
|
-
return null;
|
|
130
|
-
})(), _jsx(RendererComponent, { variable: variable, value: value, onChange: onChange, onBlur: onBlur, error: error, disabled: disabled, numeroMembre: numeroMembre, valeurMin: valeurMin, onFillFormFromMenage: onFillFormFromMenage, onFillFormFromEnquete: onFillFormFromEnquete, formulaireVariables: formulaireVariables, rosterVariables: rosterVariables, allResponses: allResponses, reponses: reponses, services: services, formulaireGroupes: formulaireGroupes, isConsultationMode: isConsultationMode })] }), variable.proprietes?.helpText && (_jsx("p", { className: "text-xs text-gray-500", children: variable.proprietes.helpText })), error && (_jsxs("div", { className: "flex items-center space-x-1 text-red-600 text-sm", children: [_jsx(AlertCircle, { className: "h-4 w-4" }), _jsx("span", { children: error })] })), conditionValidationError && (_jsxs("div", { className: "flex items-center space-x-1 text-red-600 text-sm mt-1", children: [_jsx(AlertCircle, { className: "h-4 w-4 flex-shrink-0" }), _jsx("span", { children: conditionValidationError })] }))] }));
|
|
96
|
+
return (_jsxs("div", { className: "variable-container space-y-2", children: [_jsxs("label", { className: "block text-sm font-medium text-gray-700", children: [variable.typeCode !== 'LABEL' && variable.code && (_jsxs("span", { className: "text-blue-600 font-mono text-xs mr-2", children: ["(", variable.code, ")"] })), interpolatedDesignation, variable.estObligatoire && _jsx("span", { className: "text-red-500 ml-1", children: "*" }), variable.proprietes?.tooltip && (_jsx("button", { type: "button", className: "ml-2 text-gray-400 hover:text-gray-600", title: variable.proprietes.tooltip, children: _jsx(HelpCircle, { className: "h-4 w-4 inline" }) }))] }), _jsx(Suspense, { fallback: _jsx("div", { className: "animate-pulse bg-gray-200 h-10 rounded" }), children: _jsx(RendererComponent, { variable: variable, value: value, onChange: onChange, onBlur: onBlur, error: error, disabled: disabled, numeroMembre: numeroMembre, valeurMin: valeurMin, onFillFormFromMenage: onFillFormFromMenage, onFillFormFromEnquete: onFillFormFromEnquete, formulaireVariables: formulaireVariables, rosterVariables: rosterVariables, allResponses: allResponses, reponses: reponses, services: services, formulaireGroupes: formulaireGroupes, isConsultationMode: isConsultationMode }) }), variable.proprietes?.helpText && (_jsx("p", { className: "text-xs text-gray-500", children: variable.proprietes.helpText })), error && (_jsxs("div", { className: "flex items-center space-x-1 text-red-600 text-sm", children: [_jsx(AlertCircle, { className: "h-4 w-4" }), _jsx("span", { children: error })] })), conditionValidationError && (_jsxs("div", { className: "flex items-center space-x-1 text-red-600 text-sm mt-1", children: [_jsx(AlertCircle, { className: "h-4 w-4 flex-shrink-0" }), _jsx("span", { children: conditionValidationError })] }))] }));
|
|
131
97
|
};
|
|
132
98
|
export default VariableRenderer;
|
|
133
99
|
export { getVariableRenderer, GeographicFallback };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormActions.d.ts","sourceRoot":"","sources":["../../../src/components/form-renderer/FormActions.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qCAAqC;IACrC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvF;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"FormActions.d.ts","sourceRoot":"","sources":["../../../src/components/form-renderer/FormActions.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qCAAqC;IACrC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvF;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA6OlD,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -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;AAulCD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAgBpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -205,7 +205,6 @@ const FormRendererInner = () => {
|
|
|
205
205
|
// Pour les groupes multiples, ne PAS continuer sans instance résolue
|
|
206
206
|
// (évite de stocker les réponses sans suffixe _N)
|
|
207
207
|
if (currentGroup?.estMultiple && numeroMembre === undefined) {
|
|
208
|
-
console.warn('[FormRenderer] handleVariableChange: groupe multiple sans currentInstance, rejet');
|
|
209
208
|
return;
|
|
210
209
|
}
|
|
211
210
|
// Pour les groupes non-multiples, préserver le numeroMembre existant du backend
|
|
@@ -672,7 +671,6 @@ const FormRendererInner = () => {
|
|
|
672
671
|
setShowValidationModal(false);
|
|
673
672
|
}
|
|
674
673
|
catch (error) {
|
|
675
|
-
console.error('Erreur lors de la validation DR:', error);
|
|
676
674
|
throw error;
|
|
677
675
|
}
|
|
678
676
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupeInstanceTabs.d.ts","sourceRoot":"","sources":["../../../src/components/form-renderer/GroupeInstanceTabs.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIvF,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,gBAAgB,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,gBAAgB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,eAAe,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrF,iBAAiB,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,IAAI,CAAC;IACvI,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC3G;AAED,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"GroupeInstanceTabs.d.ts","sourceRoot":"","sources":["../../../src/components/form-renderer/GroupeInstanceTabs.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIvF,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,gBAAgB,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,gBAAgB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,eAAe,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrF,iBAAiB,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,IAAI,CAAC;IACvI,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC3G;AAED,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAwRzD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -106,7 +106,6 @@ const GroupeInstanceTabs = ({ groupe, currentInstanceIndex, responses, onInstanc
|
|
|
106
106
|
}
|
|
107
107
|
catch (err) {
|
|
108
108
|
setError('Erreur inattendue lors de l\'ajout de l\'instance');
|
|
109
|
-
console.error('Erreur ajout instance:', err);
|
|
110
109
|
}
|
|
111
110
|
finally {
|
|
112
111
|
setIsProcessing(false);
|
|
@@ -140,7 +139,6 @@ const GroupeInstanceTabs = ({ groupe, currentInstanceIndex, responses, onInstanc
|
|
|
140
139
|
}
|
|
141
140
|
catch (err) {
|
|
142
141
|
setError('Erreur inattendue lors de la suppression de l\'instance');
|
|
143
|
-
console.error('Erreur suppression instance:', err);
|
|
144
142
|
}
|
|
145
143
|
finally {
|
|
146
144
|
setIsProcessing(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/NumberInput.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIxE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,kBAAkB,GAAG;QAAE,QAAQ,EAAE,WAAW,CAAA;KAAE,CAAC;IACzD,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,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/NumberInput.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIxE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,kBAAkB,GAAG;QAAE,QAAQ,EAAE,WAAW,CAAA;KAAE,CAAC;IACzD,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,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgF3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -14,13 +14,6 @@ const NumberInput = ({ variable, value, onChange, onBlur, error, disabled, valeu
|
|
|
14
14
|
const isReadonly = isComponentReadonly(variable, isConsultationMode);
|
|
15
15
|
// Calculer la valeur minimale effective : utiliser valeurMin si définie, sinon props.min
|
|
16
16
|
const effectiveMin = valeurMin !== undefined ? valeurMin : props?.min;
|
|
17
|
-
console.log('NumberInput - Contrainte de valeur minimale:', {
|
|
18
|
-
variableCode: variable.code,
|
|
19
|
-
valeurMin,
|
|
20
|
-
propsMin: props?.min,
|
|
21
|
-
effectiveMin,
|
|
22
|
-
currentValue: numericValue
|
|
23
|
-
});
|
|
24
17
|
const handleKeyDown = (e) => {
|
|
25
18
|
// Bloquer e, E, +, - (autorisés par type="number" en HTML5 mais non voulus)
|
|
26
19
|
if (['e', 'E', '+', '-'].includes(e.key)) {
|
|
@@ -48,12 +41,6 @@ const NumberInput = ({ variable, value, onChange, onBlur, error, disabled, valeu
|
|
|
48
41
|
}
|
|
49
42
|
// Vérifier la contrainte de valeur minimale pour la saisie directe
|
|
50
43
|
if (effectiveMin !== undefined && parsedValue < effectiveMin) {
|
|
51
|
-
console.log('NumberInput - Valeur saisie inférieure au minimum:', {
|
|
52
|
-
variableCode: variable.code,
|
|
53
|
-
saisie: parsedValue,
|
|
54
|
-
minimum: effectiveMin,
|
|
55
|
-
action: 'Correction automatique'
|
|
56
|
-
});
|
|
57
44
|
// Corriger automatiquement la valeur au minimum autorisé
|
|
58
45
|
onChange(effectiveMin);
|
|
59
46
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/StringInput.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAI5D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,kBAAkB,GAAG;QAAE,QAAQ,EAAE,QAAQ,CAAA;KAAE,CAAC;IACtD,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,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"StringInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/StringInput.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAI5D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,kBAAkB,GAAG;QAAE,QAAQ,EAAE,QAAQ,CAAA;KAAE,CAAC;IACtD,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,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA4D3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -13,31 +13,10 @@ const StringInput = ({ variable, value, onChange, onBlur, error, disabled, servi
|
|
|
13
13
|
const { textStyle, containerStyle } = applyComponentStyle(variable.componentStyle);
|
|
14
14
|
// Déterminer si le composant est en lecture seule
|
|
15
15
|
const isReadonly = isComponentReadonly(variable, isConsultationMode);
|
|
16
|
-
// 🔍 DEBUG: Log pour tracer le problème des STRING dans les rosters
|
|
17
|
-
console.log('[StringInput] État du composant', {
|
|
18
|
-
code: variable.code,
|
|
19
|
-
typeCode: variable.typeCode,
|
|
20
|
-
value,
|
|
21
|
-
stringValue,
|
|
22
|
-
isReadonly,
|
|
23
|
-
isConsultationMode,
|
|
24
|
-
variableIsReadonly: variable.isReadonly,
|
|
25
|
-
disabled,
|
|
26
|
-
hasOnChange: !!onChange
|
|
27
|
-
});
|
|
28
16
|
const handleChange = (newValue) => {
|
|
29
|
-
|
|
30
|
-
code: variable.code,
|
|
31
|
-
newValue,
|
|
32
|
-
isReadonly,
|
|
33
|
-
willProcess: !isReadonly
|
|
34
|
-
});
|
|
35
|
-
if (isReadonly) {
|
|
36
|
-
console.log('[StringInput] ⚠️ Changement bloqué car isReadonly=true');
|
|
17
|
+
if (isReadonly)
|
|
37
18
|
return;
|
|
38
|
-
}
|
|
39
19
|
const transformed = forceUppercase ? newValue.toLocaleUpperCase('fr-FR') : newValue;
|
|
40
|
-
console.log('[StringInput] Appel onChange avec:', transformed);
|
|
41
20
|
onChange(transformed);
|
|
42
21
|
};
|
|
43
22
|
// Générer les classes CSS
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RosterCheckInput.d.ts","sourceRoot":"","sources":["../../../src/components/roster/RosterCheckInput.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAuC,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIxE,OAAoB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,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,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IAEnC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5G,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAYD,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,
|
|
1
|
+
{"version":3,"file":"RosterCheckInput.d.ts","sourceRoot":"","sources":["../../../src/components/roster/RosterCheckInput.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAuC,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIxE,OAAoB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,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,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IAEnC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5G,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAYD,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA0LrD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -75,13 +75,6 @@ const RosterCheckInput = ({ variable, value, onChange, onBlur, error, disabled,
|
|
|
75
75
|
}, [rosterVariables]);
|
|
76
76
|
// Gérer le changement d'une variable dans une option
|
|
77
77
|
const handleVariableChange = (optionCode, variableCode, variableValue) => {
|
|
78
|
-
console.log('[RosterCheckInput] handleVariableChange appelé', {
|
|
79
|
-
optionCode,
|
|
80
|
-
variableCode,
|
|
81
|
-
variableValue,
|
|
82
|
-
variableValueType: typeof variableValue,
|
|
83
|
-
currentDataBefore: JSON.stringify(currentData)
|
|
84
|
-
});
|
|
85
78
|
const newData = { ...currentData };
|
|
86
79
|
if (!newData[optionCode]) {
|
|
87
80
|
newData[optionCode] = {};
|
|
@@ -98,7 +91,6 @@ const RosterCheckInput = ({ variable, value, onChange, onBlur, error, disabled,
|
|
|
98
91
|
}
|
|
99
92
|
}
|
|
100
93
|
const serializedData = JSON.stringify(newData);
|
|
101
|
-
console.log('[RosterCheckInput] Nouvelle valeur sérialisée:', serializedData);
|
|
102
94
|
// Sérialiser en JSON pour le stockage
|
|
103
95
|
onChange(serializedData);
|
|
104
96
|
if (onBlur) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RosterListInput.d.ts","sourceRoot":"","sources":["../../../src/components/roster/RosterListInput.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIxE,OAAoB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,MAAM,WAAW,oBAAoB;IACnC,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,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IAEnC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5G,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAYD,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"RosterListInput.d.ts","sourceRoot":"","sources":["../../../src/components/roster/RosterListInput.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIxE,OAAoB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,MAAM,WAAW,oBAAoB;IACnC,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,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IAEnC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5G,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAYD,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA6InD,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -44,13 +44,6 @@ const RosterListInput = ({ variable, value, onChange, onBlur, error, disabled, r
|
|
|
44
44
|
}, [rosterVariables]);
|
|
45
45
|
// Gérer le changement d'une variable dans un panel
|
|
46
46
|
const handleVariableChange = (optionCode, variableCode, newValue) => {
|
|
47
|
-
console.log('[RosterListInput] handleVariableChange appelé', {
|
|
48
|
-
optionCode,
|
|
49
|
-
variableCode,
|
|
50
|
-
newValue,
|
|
51
|
-
newValueType: typeof newValue,
|
|
52
|
-
currentDataBefore: JSON.stringify(currentData)
|
|
53
|
-
});
|
|
54
47
|
const newData = { ...currentData };
|
|
55
48
|
if (!newData[optionCode]) {
|
|
56
49
|
newData[optionCode] = {};
|
|
@@ -66,7 +59,6 @@ const RosterListInput = ({ variable, value, onChange, onBlur, error, disabled, r
|
|
|
66
59
|
}
|
|
67
60
|
}
|
|
68
61
|
const serializedData = JSON.stringify(newData);
|
|
69
|
-
console.log('[RosterListInput] Nouvelle valeur sérialisée:', serializedData);
|
|
70
62
|
// Sérialiser en JSON pour le stockage
|
|
71
63
|
onChange(serializedData);
|
|
72
64
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RosterPanel.d.ts","sourceRoot":"","sources":["../../../src/components/roster/RosterPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAsB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAM5D,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAGD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,CAAC;IACrB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAE3C,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"RosterPanel.d.ts","sourceRoot":"","sources":["../../../src/components/roster/RosterPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAsB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAM5D,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAGD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,CAAC;IACrB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAE3C,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAyL3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -90,26 +90,11 @@ const RosterPanel = ({ option, rosterVariables, value, onChange, disabled, showC
|
|
|
90
90
|
};
|
|
91
91
|
// Récupérer la valeur actuelle pour cette variable dans cette option
|
|
92
92
|
const currentValue = value[rosterVar.code] || null;
|
|
93
|
-
// 🔍 DEBUG: Log pour tracer le problème des STRING dans les rosters
|
|
94
|
-
console.log('[RosterPanel] Rendu variable', {
|
|
95
|
-
code: rosterVar.code,
|
|
96
|
-
uniqueCode,
|
|
97
|
-
typeCode: effectiveTypeCode,
|
|
98
|
-
currentValue,
|
|
99
|
-
currentValueType: typeof currentValue,
|
|
100
|
-
isDisabled: disabled,
|
|
101
|
-
variableIsReadonly: variable.isReadonly
|
|
102
|
-
});
|
|
103
93
|
// Évaluer la condition de validation scopée au roster
|
|
104
94
|
const validationResult = rosterVar.conditionsValidation
|
|
105
95
|
? RosterConditionEngine.evaluateValidation(rosterVar.conditionsValidation, value)
|
|
106
96
|
: null;
|
|
107
97
|
return (_jsx("div", { className: "roster-variable", children: _jsx(VariableRenderer, { variable: variable, value: currentValue, onChange: (newValue) => {
|
|
108
|
-
console.log('[RosterPanel] onChange appelé', {
|
|
109
|
-
variableCode: rosterVar.code,
|
|
110
|
-
newValue,
|
|
111
|
-
newValueType: typeof newValue
|
|
112
|
-
});
|
|
113
98
|
onChange(rosterVar.code, newValue);
|
|
114
99
|
}, disabled: disabled, services: services, isConsultationMode: isConsultationMode, interpolateVariableLabel: interpolateVariableLabel, allResponses: allResponses, numeroMembre: numeroMembre, conditionValidationError: validationResult && !validationResult.isValid
|
|
115
100
|
? validationResult.errorMessage
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhotoCapture.d.ts","sourceRoot":"","sources":["../../../src/components/wrappers/PhotoCapture.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,UAAU,CAAC,EAAE;YACX,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IACF,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,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;CACpB;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"PhotoCapture.d.ts","sourceRoot":"","sources":["../../../src/components/wrappers/PhotoCapture.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,UAAU,CAAC,EAAE;YACX,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IACF,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,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;CACpB;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAiQ7C,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,eAAe,YAAY,CAAC"}
|
|
@@ -97,7 +97,6 @@ const PhotoCapture = ({ variable, value, onChange, error, disabled }) => {
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
catch (error) {
|
|
100
|
-
console.error('Erreur accès caméra:', error);
|
|
101
100
|
alert('Impossible d\'accéder à la caméra. Vérifiez les permissions.');
|
|
102
101
|
setIsCapturing(false);
|
|
103
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormRenderer.d.ts","sourceRoot":"","sources":["../../src/hooks/useFormRenderer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useFormRenderer.d.ts","sourceRoot":"","sources":["../../src/hooks/useFormRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -100,7 +100,6 @@ export function useFormRenderer(formulaire, enquete, options = { config: { mode:
|
|
|
100
100
|
: formulaire?.groupes || []).filter(g => g.estMultiple);
|
|
101
101
|
const validation = GroupeInstanceManager.canModifyControlVariable(variableCode, numericValue, groupesMultiples, responses);
|
|
102
102
|
if (!validation.canProceed) {
|
|
103
|
-
console.warn('[FormRenderer] Variable de contrôle rejetée:', validation.constraints[0]?.message);
|
|
104
103
|
return; // Rejeter le changement - l'input revient à la valeur précédente
|
|
105
104
|
}
|
|
106
105
|
}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,10 +2,6 @@
|
|
|
2
2
|
* Point d'entrée principal du package @rsu/shared-form-components
|
|
3
3
|
* RSU v2 - Package Partagé de Formulaires
|
|
4
4
|
*/
|
|
5
|
-
// Log de version pour débogage du déploiement
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
7
|
-
const _pkg = require('../package.json');
|
|
8
|
-
console.log(`[shared-form-components] v${_pkg.version} - loaded`);
|
|
9
5
|
// ========================================
|
|
10
6
|
// COMPOSANTS PRINCIPAUX
|
|
11
7
|
// ========================================
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition-engine-index.test.d.ts","sourceRoot":"","sources":["../../../src/lib/__tests__/condition-engine-index.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests unitaires pour la pseudo-variable ${_INDEX_} dans le ConditionEngine
|
|
3
|
+
* Permet de référencer le numéro d'instance courant dans les groupes multiples
|
|
4
|
+
*/
|
|
5
|
+
import { ConditionEngine } from '../condition-engine';
|
|
6
|
+
function makeResponse(variableCode, valeur, numeroMembre) {
|
|
7
|
+
const key = numeroMembre ? `${variableCode}_${numeroMembre}` : variableCode;
|
|
8
|
+
return {
|
|
9
|
+
variableId: 1,
|
|
10
|
+
variableCode,
|
|
11
|
+
valeur,
|
|
12
|
+
numeroMembre,
|
|
13
|
+
dateModification: new Date(),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function buildResponses(entries) {
|
|
17
|
+
const responses = {};
|
|
18
|
+
for (const entry of entries) {
|
|
19
|
+
const key = entry.numeroMembre
|
|
20
|
+
? `${entry.variableCode}_${entry.numeroMembre}`
|
|
21
|
+
: entry.variableCode;
|
|
22
|
+
responses[key] = entry;
|
|
23
|
+
}
|
|
24
|
+
return responses;
|
|
25
|
+
}
|
|
26
|
+
describe('ConditionEngine - ${_INDEX_} pseudo-variable', () => {
|
|
27
|
+
describe('showMe avec _INDEX_', () => {
|
|
28
|
+
it('devrait retourner true quand _INDEX_ == instance courante', () => {
|
|
29
|
+
const engine = new ConditionEngine({});
|
|
30
|
+
expect(engine.evaluate('showMe(${_INDEX_} == 1)', 1)).toBe(true);
|
|
31
|
+
});
|
|
32
|
+
it('devrait retourner false quand _INDEX_ != instance courante', () => {
|
|
33
|
+
const engine = new ConditionEngine({});
|
|
34
|
+
expect(engine.evaluate('showMe(${_INDEX_} == 1)', 2)).toBe(false);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
describe('hideMe avec _INDEX_', () => {
|
|
38
|
+
it('devrait retourner true (visible) quand la condition hideMe est fausse', () => {
|
|
39
|
+
const engine = new ConditionEngine({});
|
|
40
|
+
expect(engine.evaluate('hideMe(${_INDEX_} > 2)', 1)).toBe(true);
|
|
41
|
+
});
|
|
42
|
+
it('devrait retourner false (masqué) quand la condition hideMe est vraie', () => {
|
|
43
|
+
const engine = new ConditionEngine({});
|
|
44
|
+
expect(engine.evaluate('hideMe(${_INDEX_} > 2)', 3)).toBe(false);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe('mix avec auto-suffixage', () => {
|
|
48
|
+
it('devrait combiner _INDEX_ et variables itératives', () => {
|
|
49
|
+
const responses = buildResponses([
|
|
50
|
+
makeResponse('AGE', 25, 1),
|
|
51
|
+
makeResponse('AGE', 15, 2),
|
|
52
|
+
]);
|
|
53
|
+
const engine = new ConditionEngine(responses);
|
|
54
|
+
engine.setMultipleGroupVariables(new Set(['AGE']));
|
|
55
|
+
// Instance 1 : _INDEX_ == 1 && AGE_1 (25) >= 18 → true
|
|
56
|
+
expect(engine.evaluate('showMe(${_INDEX_} == 1 && ${AGE} >= 18)', 1)).toBe(true);
|
|
57
|
+
// Instance 2 : _INDEX_ == 1 → false (court-circuit)
|
|
58
|
+
expect(engine.evaluate('showMe(${_INDEX_} == 1 && ${AGE} >= 18)', 2)).toBe(false);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
describe('sans itération (currentIteration undefined)', () => {
|
|
62
|
+
it('devrait utiliser 1 par défaut', () => {
|
|
63
|
+
const engine = new ConditionEngine({});
|
|
64
|
+
expect(engine.evaluate('showMe(${_INDEX_} == 1)')).toBe(true);
|
|
65
|
+
});
|
|
66
|
+
it('devrait retourner false pour _INDEX_ != 1 sans itération', () => {
|
|
67
|
+
const engine = new ConditionEngine({});
|
|
68
|
+
expect(engine.evaluate('showMe(${_INDEX_} == 2)')).toBe(false);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe('opérateurs de comparaison', () => {
|
|
72
|
+
it('devrait supporter >=', () => {
|
|
73
|
+
const engine = new ConditionEngine({});
|
|
74
|
+
expect(engine.evaluate('${_INDEX_} >= 2', 2)).toBe(true);
|
|
75
|
+
expect(engine.evaluate('${_INDEX_} >= 2', 1)).toBe(false);
|
|
76
|
+
});
|
|
77
|
+
it('devrait supporter <', () => {
|
|
78
|
+
const engine = new ConditionEngine({});
|
|
79
|
+
expect(engine.evaluate('${_INDEX_} < 4', 3)).toBe(true);
|
|
80
|
+
expect(engine.evaluate('${_INDEX_} < 4', 4)).toBe(false);
|
|
81
|
+
});
|
|
82
|
+
it('devrait supporter !=', () => {
|
|
83
|
+
const engine = new ConditionEngine({});
|
|
84
|
+
expect(engine.evaluate('${_INDEX_} != 1', 2)).toBe(true);
|
|
85
|
+
expect(engine.evaluate('${_INDEX_} != 1', 1)).toBe(false);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
describe('isolation du cache', () => {
|
|
89
|
+
it('devrait retourner des résultats différents pour des instances différentes', () => {
|
|
90
|
+
const engine = new ConditionEngine({});
|
|
91
|
+
const condition = 'showMe(${_INDEX_} == 1)';
|
|
92
|
+
expect(engine.evaluate(condition, 1)).toBe(true);
|
|
93
|
+
expect(engine.evaluate(condition, 2)).toBe(false);
|
|
94
|
+
// Re-évaluer pour vérifier que le cache ne contamine pas
|
|
95
|
+
expect(engine.evaluate(condition, 1)).toBe(true);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
describe('pas de suffixage de _INDEX_', () => {
|
|
99
|
+
it('ne devrait pas transformer _INDEX_ en _INDEX__2', () => {
|
|
100
|
+
const responses = buildResponses([
|
|
101
|
+
makeResponse('NOM', 'Jean', 1),
|
|
102
|
+
makeResponse('NOM', 'Marie', 2),
|
|
103
|
+
]);
|
|
104
|
+
const engine = new ConditionEngine(responses);
|
|
105
|
+
engine.setMultipleGroupVariables(new Set(['NOM']));
|
|
106
|
+
// Si _INDEX_ était suffixé, il deviendrait _INDEX__2 et l'évaluation échouerait
|
|
107
|
+
expect(engine.evaluate('showMe(${_INDEX_} == 2)', 2)).toBe(true);
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
describe('condition croisée avec index explicite', () => {
|
|
111
|
+
it('devrait évaluer la valeur du membre 1 depuis une autre instance', () => {
|
|
112
|
+
const responses = buildResponses([
|
|
113
|
+
makeResponse('C0_02', 'oui', 1),
|
|
114
|
+
makeResponse('C0_02', 'non', 2),
|
|
115
|
+
]);
|
|
116
|
+
const engine = new ConditionEngine(responses);
|
|
117
|
+
engine.setMultipleGroupVariables(new Set(['C0_02']));
|
|
118
|
+
// Depuis l'instance 2, référencer explicitement le membre 1
|
|
119
|
+
expect(engine.evaluate("showMe(${C0_02_1} == 'oui')", 2)).toBe(true);
|
|
120
|
+
// Depuis l'instance 1, la valeur du membre 2 est 'non'
|
|
121
|
+
expect(engine.evaluate("showMe(${C0_02_2} == 'oui')", 1)).toBe(false);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
describe('_INDEX_ exclu de getReferencedVariables', () => {
|
|
125
|
+
it('ne devrait pas inclure _INDEX_ dans les variables référencées', () => {
|
|
126
|
+
const engine = new ConditionEngine({});
|
|
127
|
+
const refs = engine.getReferencedVariables('showMe(${_INDEX_} == 1 && ${AGE} >= 18)');
|
|
128
|
+
expect(refs).not.toContain('_INDEX_');
|
|
129
|
+
expect(refs).toContain('AGE');
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
});
|
|
@@ -154,7 +154,7 @@ describe('GroupeInstanceManager', () => {
|
|
|
154
154
|
it('devrait creer des instances basees sur les reponses existantes avec numeroMembre', () => {
|
|
155
155
|
const groupe = createMultipleGroupe();
|
|
156
156
|
const responses = {
|
|
157
|
-
...createControlResponse(
|
|
157
|
+
...createControlResponse(2),
|
|
158
158
|
'S1_01_1': createResponse('S1_01', 'Alice', 1),
|
|
159
159
|
'S1_02_1': createResponse('S1_02', '25', 1),
|
|
160
160
|
'S1_01_2': createResponse('S1_01', 'Bob', 2),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition-engine.d.ts","sourceRoot":"","sources":["../../src/lib/condition-engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIvF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IACxC,MAAM,EAAE,OAAO,GAAG,UAAU,EAAE,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,eAAe;IAiBd,OAAO,CAAC,SAAS;IAhB7B,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,cAAc,CAAoE;IAC1F,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,sBAAsB,CAA0B;IAGxD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAIpD;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAuB;gBAEnD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAI7D;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"condition-engine.d.ts","sourceRoot":"","sources":["../../src/lib/condition-engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIvF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IACxC,MAAM,EAAE,OAAO,GAAG,UAAU,EAAE,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,eAAe;IAiBd,OAAO,CAAC,SAAS;IAhB7B,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,cAAc,CAAoE;IAC1F,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,sBAAsB,CAA0B;IAGxD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAIpD;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAuB;gBAEnD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAI7D;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO;IAuD/D;;;OAGG;IACH,OAAO,CAAC,WAAW;IAYnB;;OAEG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI;IAOjE;;;OAGG;IACH,yBAAyB,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI;IAIvD;;OAEG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAKnD;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IAgBlC;;OAEG;IACH,2BAA2B,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI;IAa1D;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAwBtB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAsBtB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IA8CzB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;OAEG;IACH,OAAO,CAAC,UAAU;IA0ClB;;;OAGG;IACH,OAAO,CAAC,UAAU;IA8FlB;;OAEG;IACH,cAAc,IAAI,UAAU,EAAE;IAI9B;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;;;;;;;OAQG;IACH,kBAAkB,CAChB,mBAAmB,EAAE,MAAM,EAC3B,YAAY,EAAE,MAAM,EACpB,gBAAgB,CAAC,EAAE,MAAM,GACxB,oBAAoB;IA4CvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwE7B;;OAEG;IACH,OAAO,CAAC,mCAAmC;IAS3C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IA8BpB;;;OAGG;IACH,OAAO,CAAC,uCAAuC;IA6C/C;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAahC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAuDnC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;OAGG;IACH,OAAO,CAAC,cAAc;IA8BtB;;OAEG;IACH,OAAO,CAAC,eAAe;IA6BvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA2CzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA8ChC;;OAEG;IACH,OAAO,CAAC,YAAY;IAiGpB;;OAEG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAwGhF;;OAEG;IACH,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE;CAgF5D;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,WAAW,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,oBAS3E,CAAC"}
|
|
@@ -72,7 +72,6 @@ export class ConditionEngine {
|
|
|
72
72
|
return result;
|
|
73
73
|
}
|
|
74
74
|
catch (error) {
|
|
75
|
-
console.warn('Erreur lors de l\'évaluation de la condition:', condition, error);
|
|
76
75
|
return true; // En cas d'erreur, on affiche la variable
|
|
77
76
|
}
|
|
78
77
|
}
|
|
@@ -111,7 +110,7 @@ export class ConditionEngine {
|
|
|
111
110
|
*/
|
|
112
111
|
getReferencedVariables(condition) {
|
|
113
112
|
const matches = condition.match(/\$\{([A-Z_][A-Z0-9_]*(?:_\d+)?)\}/g);
|
|
114
|
-
return matches ? matches.map(match => match.slice(2, -1)) : [];
|
|
113
|
+
return matches ? matches.map(match => match.slice(2, -1)).filter(v => v !== '_INDEX_') : [];
|
|
115
114
|
}
|
|
116
115
|
/**
|
|
117
116
|
* Génère un hash du contexte pour les variables référencées dans une condition
|
|
@@ -174,30 +173,20 @@ export class ConditionEngine {
|
|
|
174
173
|
* Retourne true si la condition est vraie (afficher), false sinon (masquer)
|
|
175
174
|
*/
|
|
176
175
|
evaluateShowMe(expression, currentIteration) {
|
|
177
|
-
console.log('🎯 [ConditionEngine] Evaluating showMe:', expression);
|
|
178
176
|
try {
|
|
179
|
-
// Extraire la condition entre parenthèses
|
|
180
177
|
const match = expression.match(/^showMe\s*\((.+)\)$/);
|
|
181
178
|
if (!match) {
|
|
182
|
-
console.log('🎯 [ConditionEngine] No match found, returning true');
|
|
183
179
|
return true;
|
|
184
180
|
}
|
|
185
181
|
const innerCondition = match[1].trim();
|
|
186
|
-
console.log('🎯 [ConditionEngine] Inner condition:', innerCondition);
|
|
187
182
|
if (!innerCondition) {
|
|
188
|
-
|
|
189
|
-
return true; // Condition vide = afficher
|
|
183
|
+
return true;
|
|
190
184
|
}
|
|
191
|
-
// Évaluer la condition interne
|
|
192
185
|
const processedCondition = this.replaceVariableReferencesWithIterations(innerCondition, currentIteration);
|
|
193
|
-
|
|
194
|
-
const result = this.safeEvaluate(processedCondition);
|
|
195
|
-
console.log('🎯 [ConditionEngine] ShowMe result:', result);
|
|
196
|
-
return result;
|
|
186
|
+
return this.safeEvaluate(processedCondition);
|
|
197
187
|
}
|
|
198
188
|
catch (error) {
|
|
199
|
-
|
|
200
|
-
return true; // En cas d'erreur, afficher par défaut
|
|
189
|
+
return true;
|
|
201
190
|
}
|
|
202
191
|
}
|
|
203
192
|
/**
|
|
@@ -219,8 +208,7 @@ export class ConditionEngine {
|
|
|
219
208
|
return !this.safeEvaluate(processedCondition);
|
|
220
209
|
}
|
|
221
210
|
catch (error) {
|
|
222
|
-
|
|
223
|
-
return true; // En cas d'erreur, afficher par défaut
|
|
211
|
+
return true;
|
|
224
212
|
}
|
|
225
213
|
}
|
|
226
214
|
/**
|
|
@@ -264,7 +252,6 @@ export class ConditionEngine {
|
|
|
264
252
|
return true; // setValeur n'affecte pas la visibilité
|
|
265
253
|
}
|
|
266
254
|
catch (error) {
|
|
267
|
-
console.warn('Erreur lors de l\'évaluation de setValeur:', expression, error);
|
|
268
255
|
return true;
|
|
269
256
|
}
|
|
270
257
|
}
|
|
@@ -473,7 +460,6 @@ export class ConditionEngine {
|
|
|
473
460
|
};
|
|
474
461
|
}
|
|
475
462
|
catch (error) {
|
|
476
|
-
console.warn('Erreur lors de l\'évaluation de la validation:', conditionValidation, error);
|
|
477
463
|
return {
|
|
478
464
|
isValid: false,
|
|
479
465
|
errorMessage: ConditionEngine.DEFAULT_VALIDATION_ERROR,
|
|
@@ -516,7 +502,6 @@ export class ConditionEngine {
|
|
|
516
502
|
}
|
|
517
503
|
// Vérifier les fonctions interdites
|
|
518
504
|
if (this.containsForbiddenValidationFunction(conditionStr)) {
|
|
519
|
-
console.warn('ConditionEval contient une fonction interdite:', conditionStr);
|
|
520
505
|
return {
|
|
521
506
|
isValid: false,
|
|
522
507
|
errorMessage: 'Fonction non autorisée dans la validation',
|
|
@@ -535,7 +520,6 @@ export class ConditionEngine {
|
|
|
535
520
|
};
|
|
536
521
|
}
|
|
537
522
|
catch (error) {
|
|
538
|
-
console.warn('Erreur lors de l\'évaluation de ConditionEval:', expression, error);
|
|
539
523
|
return {
|
|
540
524
|
isValid: false,
|
|
541
525
|
errorMessage: ConditionEngine.DEFAULT_VALIDATION_ERROR,
|
|
@@ -604,7 +588,9 @@ export class ConditionEngine {
|
|
|
604
588
|
* ORDRE CORRIGÉ: suffixer d'abord, puis traiter les fonctions de date
|
|
605
589
|
*/
|
|
606
590
|
replaceVariableReferencesWithIterations(condition, currentIteration) {
|
|
607
|
-
// ÉTAPE
|
|
591
|
+
// ÉTAPE 0: Remplacer ${_INDEX_} par le numéro d'instance courant
|
|
592
|
+
condition = condition.replace(/\$\{_INDEX_\}/g, String(currentIteration ?? 1));
|
|
593
|
+
// ÉTAPE 1: Suffixer les références ${VAR} → ${VAR_index} AVANT les fonctions de date
|
|
608
594
|
if (currentIteration !== undefined) {
|
|
609
595
|
condition = this.suffixVariableReferences(condition, currentIteration);
|
|
610
596
|
}
|
|
@@ -648,6 +634,8 @@ export class ConditionEngine {
|
|
|
648
634
|
suffixVariableReferences(condition, iteration) {
|
|
649
635
|
// Regex pour capturer ${VAR} mais pas ${VAR_N} (déjà suffixé)
|
|
650
636
|
return condition.replace(/\$\{([A-Z_][A-Z0-9_]*)(?!_\d)\}/g, (match, varCode) => {
|
|
637
|
+
if (varCode === '_INDEX_')
|
|
638
|
+
return match;
|
|
651
639
|
// Si au moins une version itérative existe (ex: VAR_1), TOUJOURS suffixer
|
|
652
640
|
if (this.isIterativeVariable(varCode)) {
|
|
653
641
|
return `\${${varCode}_${iteration}}`;
|
|
@@ -660,6 +648,8 @@ export class ConditionEngine {
|
|
|
660
648
|
* Vérifie si une variable est de type itératif (groupe multiple)
|
|
661
649
|
*/
|
|
662
650
|
isIterativeVariable(varCode) {
|
|
651
|
+
if (varCode === '_INDEX_')
|
|
652
|
+
return false;
|
|
663
653
|
// Utiliser la connaissance structurelle des groupes multiples
|
|
664
654
|
// plutôt que de deviner depuis le contexte (fragile si _1 n'existe pas)
|
|
665
655
|
if (this.multipleGroupVariables.size > 0) {
|
|
@@ -989,7 +979,6 @@ export class ConditionEngine {
|
|
|
989
979
|
return Boolean(result);
|
|
990
980
|
}
|
|
991
981
|
catch (error) {
|
|
992
|
-
console.warn('Erreur lors de l\'évaluation sécurisée:', expression, error);
|
|
993
982
|
return false;
|
|
994
983
|
}
|
|
995
984
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roster-condition-engine.d.ts","sourceRoot":"","sources":["../../src/lib/roster-condition-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,MAAM,wBAAwB,GAChC,uBAAuB,GACvB,mBAAmB,GACnB,eAAe,GACf,gBAAgB,GAChB,cAAc,CAAC;AAEnB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CACtB,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,iBAAiB,EAAE,EACvC,mBAAmB,EAAE,MAAM,EAC3B,oBAAoB,EAAE,MAAM,GAC3B,+BAA+B;IA6ElC;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"roster-condition-engine.d.ts","sourceRoot":"","sources":["../../src/lib/roster-condition-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,MAAM,wBAAwB,GAChC,uBAAuB,GACvB,mBAAmB,GACnB,eAAe,GACf,gBAAgB,GAChB,cAAc,CAAC;AAEnB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CACtB,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,iBAAiB,EAAE,EACvC,mBAAmB,EAAE,MAAM,EAC3B,oBAAoB,EAAE,MAAM,GAC3B,+BAA+B;IA6ElC;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO;IAwB5E;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CACvB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,oBAAoB;IA6BvB;;;OAGG;IACH,MAAM,CAAC,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAO7D;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAO1D;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;QAC/C,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAoBF;;;;;;OAMG;IACH,MAAM,CAAC,sBAAsB,CAC3B,eAAe,EAAE,iBAAiB,EAAE,EACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,GAAG,CAAC,MAAM,CAAC;IAyCd;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IA6BrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAsD9B"}
|
|
@@ -111,8 +111,7 @@ export class RosterConditionEngine {
|
|
|
111
111
|
return engine.evaluate(condition);
|
|
112
112
|
}
|
|
113
113
|
catch (error) {
|
|
114
|
-
|
|
115
|
-
return true; // En cas d'erreur, afficher par défaut
|
|
114
|
+
return true;
|
|
116
115
|
}
|
|
117
116
|
}
|
|
118
117
|
/**
|
|
@@ -139,7 +138,6 @@ export class RosterConditionEngine {
|
|
|
139
138
|
return engine.evaluateValidation(condition, '');
|
|
140
139
|
}
|
|
141
140
|
catch (error) {
|
|
142
|
-
console.warn('[RosterConditionEngine] Erreur évaluation validation:', condition, error);
|
|
143
141
|
return {
|
|
144
142
|
isValid: false,
|
|
145
143
|
errorMessage: 'Erreur de validation',
|
|
@@ -156,7 +154,7 @@ export class RosterConditionEngine {
|
|
|
156
154
|
if (!condition)
|
|
157
155
|
return [];
|
|
158
156
|
const matches = condition.match(/\$\{([A-Z_][A-Z0-9_]*)\}/g) || [];
|
|
159
|
-
return matches.map(m => m.slice(2, -1));
|
|
157
|
+
return matches.map(m => m.slice(2, -1)).filter(v => v !== '_INDEX_');
|
|
160
158
|
}
|
|
161
159
|
/**
|
|
162
160
|
* Extrait la cible d'un jump s'il existe dans la condition (premier match uniquement)
|
|
@@ -260,7 +258,6 @@ export class RosterConditionEngine {
|
|
|
260
258
|
return engine.evaluate(`showMe(${innerCondition})`);
|
|
261
259
|
}
|
|
262
260
|
catch (error) {
|
|
263
|
-
console.warn('[RosterConditionEngine] Erreur évaluation condition interne:', innerCondition, error);
|
|
264
261
|
return false;
|
|
265
262
|
}
|
|
266
263
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variableValueConverter.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/variableValueConverter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIlE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,sBAAsB;IAEjC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,YAAY,GAAG,aAAa;
|
|
1
|
+
{"version":3,"file":"variableValueConverter.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/variableValueConverter.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,7 +69,6 @@ export class VariableValueConverter {
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
catch (error) {
|
|
72
|
-
console.warn(`Erreur lors du parsing de la valeur "${value}" pour le type ${type}:`, error);
|
|
73
72
|
return null;
|
|
74
73
|
}
|
|
75
74
|
}
|
|
@@ -127,7 +126,6 @@ export class VariableValueConverter {
|
|
|
127
126
|
}
|
|
128
127
|
}
|
|
129
128
|
catch (error) {
|
|
130
|
-
console.warn(`Erreur lors de la sérialisation de la valeur pour le type ${type}:`, error);
|
|
131
129
|
return '';
|
|
132
130
|
}
|
|
133
131
|
}
|
package/package.json
CHANGED