@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
|
|
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
|
|
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
|
|
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 (/[
|
|
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 (/[
|
|
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 (/[
|
|
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
|
|
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
|
|
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":"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;IAgBd,OAAO,CAAC,SAAS;IAf7B,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,cAAc,CAAoE;IAC1F,OAAO,CAAC,YAAY,CAAO;IAG3B,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":"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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
|
-
//
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
//
|
|
54
|
-
|
|
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