@rsuci/shared-form-components 1.0.91 → 1.0.93

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.
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Formats acceptés :
6
6
  * - Nouveau format : CI00xxxxxxx (CI00 + 7 chiffres) = 11 caractères
7
- * - Ancien format : C 00XX XXXXXX (C + espace + 00 + 2 alphanum + espace + 6 alphanum) = 14 caractères
7
+ * - Ancien format : C 00XX XXXXXX (C + espace + 00 + 2 chiffres + espace + 6 chiffres) = 13 caractères
8
8
  */
9
9
  import React from 'react';
10
10
  import { VariableFormulaire, VariableValue } from '../../types/enquete';
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Formats acceptés :
6
6
  * - Nouveau format : CI00xxxxxxx (CI00 + 7 chiffres) = 11 caractères
7
- * - Ancien format : C 00XX XXXXXX (C + espace + 00 + 2 alphanum + espace + 6 alphanum) = 14 caractères
7
+ * - Ancien format : C 00XX XXXXXX (C + espace + 00 + 2 chiffres + espace + 6 chiffres) = 13 caractères
8
8
  */
9
9
  'use client';
10
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -12,7 +12,7 @@ import { useState, useCallback } from 'react';
12
12
  import { applyComponentStyle } from '../../utils/styleUtils';
13
13
  import { isComponentReadonly, readonlyClasses } from '../../utils/componentStateUtils';
14
14
  const CNI_NEW_REGEX = /^CI00\d{7}$/;
15
- const CNI_OLD_REGEX = /^C 00[A-Z0-9]{2} [A-Z0-9]{6}$/;
15
+ const CNI_OLD_REGEX = /^C 00\d{2} \d{6}$/;
16
16
  const applyNewFormatMask = (value) => {
17
17
  let result = value.toUpperCase();
18
18
  result = result.replace(/[^CI0-9]/g, '');
@@ -53,18 +53,18 @@ const applyOldFormatMask = (value) => {
53
53
  chars.push(char);
54
54
  }
55
55
  else if (pos === 4 || pos === 5) {
56
- if (/[A-Z0-9]/.test(char))
56
+ if (/[0-9]/.test(char))
57
57
  chars.push(char);
58
58
  }
59
59
  else if (pos === 6) {
60
60
  chars.push(' ');
61
- if (/[A-Z0-9]/.test(char))
61
+ if (/[0-9]/.test(char))
62
62
  chars.push(char);
63
63
  else
64
64
  i--;
65
65
  }
66
66
  else if (pos >= 7 && pos <= 13) {
67
- if (/[A-Z0-9]/.test(char))
67
+ if (/[0-9]/.test(char))
68
68
  chars.push(char);
69
69
  }
70
70
  }
@@ -130,7 +130,7 @@ const CNIInput = ({ variable, value, onChange, onBlur, error, disabled, isConsul
130
130
  setLocalError('Format attendu : CI00 suivi de 7 chiffres (ex: CI001234567)');
131
131
  }
132
132
  else if (format === 'old') {
133
- setLocalError('Format attendu : C 00XX XXXXXX (ex: C 00AB 123456)');
133
+ setLocalError('Format attendu : C 00XX XXXXXX (ex: C 0012 345678)');
134
134
  }
135
135
  else {
136
136
  setLocalError('Format CNI invalide');
@@ -152,7 +152,7 @@ const CNIInput = ({ variable, value, onChange, onBlur, error, disabled, isConsul
152
152
  return `${baseClasses} ${errorClasses} bg-white`;
153
153
  };
154
154
  const displayError = error || localError;
155
- const placeholder = 'CI001234567 ou C 00AB 123456';
155
+ const placeholder = 'CI001234567 ou C 0012 345678';
156
156
  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
157
  };
158
158
  export default CNIInput;
@@ -1 +1 @@
1
- {"version":3,"file":"condition-engine.d.ts","sourceRoot":"","sources":["../../src/lib/condition-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"condition-engine.d.ts","sourceRoot":"","sources":["../../src/lib/condition-engine.ts"],"names":[],"mappings":"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"}
@@ -39,19 +39,27 @@ export class ConditionEngine {
39
39
  const cacheKey = currentIteration !== undefined
40
40
  ? `${condition}::iter${currentIteration}`
41
41
  : condition;
42
- // Vérifier le cache (CORRIGÉ: hash sensible à l'itération)
43
- const cached = this.conditionCache.get(cacheKey);
44
- if (cached) {
45
- const currentHash = this.getContextHashForCondition(condition, currentIteration);
46
- if (cached.contextHash === currentHash) {
47
- return cached.result;
42
+ // setValeur() a des effets de bord (création d'AutoActions) :
43
+ // ne PAS utiliser le cache pour ces conditions, sinon les AutoActions
44
+ // ne sont jamais re-créées après un clearAutoActions()
45
+ const isSetValeurCondition = condition.trim().startsWith('setValeur(');
46
+ // Vérifier le cache (MAIS PAS pour setValeur qui a des effets de bord)
47
+ if (!isSetValeurCondition) {
48
+ const cached = this.conditionCache.get(cacheKey);
49
+ if (cached) {
50
+ const currentHash = this.getContextHashForCondition(condition, currentIteration);
51
+ if (cached.contextHash === currentHash) {
52
+ return cached.result;
53
+ }
48
54
  }
49
55
  }
50
56
  // Vérifier si c'est une fonction utilitaire
51
57
  if (this.isUtilityFunction(condition)) {
52
58
  const result = this.evaluateUtilityFunction(condition, currentIteration);
53
- // Mettre en cache le résultat
54
- this.cacheResult(cacheKey, condition, result, currentIteration);
59
+ // Ne pas cacher setValeur (effets de bord)
60
+ if (!isSetValeurCondition) {
61
+ this.cacheResult(cacheKey, condition, result, currentIteration);
62
+ }
55
63
  return result;
56
64
  }
57
65
  // Remplacer les références aux variables avec support des itérations
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsuci/shared-form-components",
3
- "version": "1.0.91",
3
+ "version": "1.0.93",
4
4
  "description": "Composants partagés de rendu de formulaires RSU v2 - Package local pour frontend Admin et Public",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",