@rsuci/shared-form-components 1.0.26 → 1.0.29
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/inputs/CheckboxInput.d.ts +1 -0
- package/dist/components/inputs/CheckboxInput.d.ts.map +1 -1
- package/dist/components/inputs/CheckboxInput.js +7 -3
- package/dist/components/inputs/ComboboxInput.d.ts +1 -0
- package/dist/components/inputs/ComboboxInput.d.ts.map +1 -1
- package/dist/components/inputs/ComboboxInput.js +6 -2
- package/dist/components/inputs/DatePicker.d.ts +1 -0
- package/dist/components/inputs/DatePicker.d.ts.map +1 -1
- package/dist/components/inputs/DatePicker.js +15 -2
- package/dist/components/inputs/EmailInput.d.ts +1 -0
- package/dist/components/inputs/EmailInput.d.ts.map +1 -1
- package/dist/components/inputs/EmailInput.js +15 -2
- package/dist/components/inputs/GPSInput.d.ts +1 -0
- package/dist/components/inputs/GPSInput.d.ts.map +1 -1
- package/dist/components/inputs/GPSInput.js +7 -3
- package/dist/components/inputs/GeographicCascadeInput.d.ts +1 -0
- package/dist/components/inputs/GeographicCascadeInput.d.ts.map +1 -1
- package/dist/components/inputs/GeographicCascadeInput.js +5 -3
- package/dist/components/inputs/HourInput.d.ts +1 -0
- package/dist/components/inputs/HourInput.d.ts.map +1 -1
- package/dist/components/inputs/HourInput.js +15 -2
- package/dist/components/inputs/NumberInput.d.ts +1 -0
- package/dist/components/inputs/NumberInput.d.ts.map +1 -1
- package/dist/components/inputs/NumberInput.js +18 -3
- package/dist/components/inputs/PhoneInput.d.ts +1 -0
- package/dist/components/inputs/PhoneInput.d.ts.map +1 -1
- package/dist/components/inputs/PhoneInput.js +15 -2
- package/dist/components/inputs/RadioInput.d.ts +1 -0
- package/dist/components/inputs/RadioInput.d.ts.map +1 -1
- package/dist/components/inputs/RadioInput.js +6 -2
- package/dist/components/inputs/SelectInput.d.ts +1 -0
- package/dist/components/inputs/SelectInput.d.ts.map +1 -1
- package/dist/components/inputs/SelectInput.js +7 -3
- package/dist/components/inputs/StringInput.d.ts +1 -0
- package/dist/components/inputs/StringInput.d.ts.map +1 -1
- package/dist/components/inputs/StringInput.js +18 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/lib/condition-engine.d.ts +19 -0
- package/dist/lib/condition-engine.d.ts.map +1 -1
- package/dist/lib/condition-engine.js +169 -2
- package/dist/lib/utils/date-functions.d.ts +35 -0
- package/dist/lib/utils/date-functions.d.ts.map +1 -0
- package/dist/lib/utils/date-functions.js +107 -0
- package/dist/types/enquete.d.ts +1 -0
- package/dist/types/enquete.d.ts.map +1 -1
- package/dist/utils/componentStateUtils.d.ts +57 -0
- package/dist/utils/componentStateUtils.d.ts.map +1 -0
- package/dist/utils/componentStateUtils.js +93 -0
- package/package.json +13 -11
package/dist/index.d.ts
CHANGED
|
@@ -43,4 +43,5 @@ export { FormTree } from './lib/form-tree';
|
|
|
43
43
|
export { useFormTree, type UseFormTreeOptions, type UseFormTreeReturn } from './hooks/useFormTree';
|
|
44
44
|
export { cn } from './lib/utils/cn';
|
|
45
45
|
export { getStyleObject, getContainerStyle, applyComponentStyle } from './utils/styleUtils';
|
|
46
|
+
export { isComponentReadonly, isComponentDisabled, getReadonlyAttributes, getReadonlyClasses, readonlyClasses } from './utils/componentStateUtils';
|
|
46
47
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -74,3 +74,8 @@ export { cn } from './lib/utils/cn';
|
|
|
74
74
|
// ========================================
|
|
75
75
|
// Utilitaires pour appliquer les styles personnalisés des composants
|
|
76
76
|
export { getStyleObject, getContainerStyle, applyComponentStyle } from './utils/styleUtils';
|
|
77
|
+
// ========================================
|
|
78
|
+
// UTILITAIRES D'ÉTAT DES COMPOSANTS
|
|
79
|
+
// ========================================
|
|
80
|
+
// Utilitaires pour la gestion de l'état readonly/disabled des composants
|
|
81
|
+
export { isComponentReadonly, isComponentDisabled, getReadonlyAttributes, getReadonlyClasses, readonlyClasses } from './utils/componentStateUtils';
|
|
@@ -103,6 +103,25 @@ export declare class ConditionEngine {
|
|
|
103
103
|
* Remplace les fonctions d'agrégation pour les groupes multiples
|
|
104
104
|
*/
|
|
105
105
|
private replaceAggregationFunctions;
|
|
106
|
+
/**
|
|
107
|
+
* Remplace les fonctions de date (dateDiff, dateAdd) par leurs résultats
|
|
108
|
+
* Gère les appels imbriqués en traitant de l'intérieur vers l'extérieur
|
|
109
|
+
*/
|
|
110
|
+
private replaceDateFunctions;
|
|
111
|
+
/**
|
|
112
|
+
* Traite les appels dateAdd() et les remplace par leurs résultats
|
|
113
|
+
* Gère les appels imbriqués avec une boucle
|
|
114
|
+
*/
|
|
115
|
+
private processDateAdd;
|
|
116
|
+
/**
|
|
117
|
+
* Traite les appels dateDiff() et les remplace par leurs résultats
|
|
118
|
+
*/
|
|
119
|
+
private processDateDiff;
|
|
120
|
+
/**
|
|
121
|
+
* Parse un argument de date depuis différentes sources
|
|
122
|
+
* Supporte: today(), now(), new Date("..."), "YYYY-MM-DD", ${VARIABLE}
|
|
123
|
+
*/
|
|
124
|
+
private parseDateArgument;
|
|
106
125
|
/**
|
|
107
126
|
* Obtient toutes les valeurs itératives pour une variable donnée
|
|
108
127
|
*/
|
|
@@ -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,MAAM,kBAAkB,CAAC;
|
|
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,MAAM,kBAAkB,CAAC;AAIjE,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;IAId,OAAO,CAAC,SAAS;IAH7B,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,WAAW,CAAoB;gBAEnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAI7D;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO;IAuB/D;;OAEG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI;IAMjE;;OAEG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAKnD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAoCtB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAuBtB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAwCzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;OAEG;IACH,OAAO,CAAC,UAAU;IA0ClB;;OAEG;IACH,OAAO,CAAC,UAAU;IA8ClB;;OAEG;IACH,cAAc,IAAI,UAAU,EAAE;IAI9B;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,uCAAuC;IA8B/C;;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;IA0CzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;OAEG;IACH,OAAO,CAAC,YAAY;IA6CpB;;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;CAwE5D;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,WAAW,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,oBAS3E,CAAC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* RSU v2 - Moteur de Rendu des Formulaires d'Enquête
|
|
4
4
|
*/
|
|
5
5
|
import { useState, useEffect } from 'react';
|
|
6
|
+
import { calculateDateDiff, calculateDateAdd, parseDateString, isValidDateUnit } from './utils/date-functions';
|
|
6
7
|
export class ConditionEngine {
|
|
7
8
|
constructor(responses) {
|
|
8
9
|
this.responses = responses;
|
|
@@ -255,11 +256,21 @@ export class ConditionEngine {
|
|
|
255
256
|
if (/^-?\d+(\.\d+)?$/.test(trimmed)) {
|
|
256
257
|
return parseFloat(trimmed);
|
|
257
258
|
}
|
|
258
|
-
// Fonctions spéciales
|
|
259
|
+
// Fonctions spéciales de date
|
|
259
260
|
if (trimmed === 'today()')
|
|
260
261
|
return new Date();
|
|
261
262
|
if (trimmed === 'now()')
|
|
262
263
|
return new Date();
|
|
264
|
+
// Fonction dateAdd() - traiter et retourner la date calculée
|
|
265
|
+
if (trimmed.startsWith('dateAdd(')) {
|
|
266
|
+
const processed = this.processDateAdd(trimmed);
|
|
267
|
+
// Si le traitement a réussi, processed contient "new Date("ISO_STRING")"
|
|
268
|
+
const dateMatch = processed.match(/^new Date\(["']([^"']+)["']\)$/);
|
|
269
|
+
if (dateMatch) {
|
|
270
|
+
return new Date(dateMatch[1]);
|
|
271
|
+
}
|
|
272
|
+
return null;
|
|
273
|
+
}
|
|
263
274
|
// Variable référence
|
|
264
275
|
if (trimmed.startsWith('${') && trimmed.endsWith('}')) {
|
|
265
276
|
const varCode = trimmed.slice(2, -1);
|
|
@@ -299,6 +310,8 @@ export class ConditionEngine {
|
|
|
299
310
|
* Remplace les références aux variables en tenant compte des itérations
|
|
300
311
|
*/
|
|
301
312
|
replaceVariableReferencesWithIterations(condition, currentIteration) {
|
|
313
|
+
// Gérer les fonctions de date EN PREMIER (avant les variables)
|
|
314
|
+
condition = this.replaceDateFunctions(condition);
|
|
302
315
|
// Gérer les fonctions d'agrégation pour les groupes multiples
|
|
303
316
|
condition = this.replaceAggregationFunctions(condition);
|
|
304
317
|
// Remplacer les références aux variables normales et itératives
|
|
@@ -358,6 +371,116 @@ export class ConditionEngine {
|
|
|
358
371
|
});
|
|
359
372
|
return condition;
|
|
360
373
|
}
|
|
374
|
+
/**
|
|
375
|
+
* Remplace les fonctions de date (dateDiff, dateAdd) par leurs résultats
|
|
376
|
+
* Gère les appels imbriqués en traitant de l'intérieur vers l'extérieur
|
|
377
|
+
*/
|
|
378
|
+
replaceDateFunctions(condition) {
|
|
379
|
+
// 1. Traiter dateAdd() d'abord (peut être imbriqué dans dateDiff)
|
|
380
|
+
condition = this.processDateAdd(condition);
|
|
381
|
+
// 2. Traiter dateDiff() (peut contenir dateAdd déjà traité)
|
|
382
|
+
condition = this.processDateDiff(condition);
|
|
383
|
+
return condition;
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Traite les appels dateAdd() et les remplace par leurs résultats
|
|
387
|
+
* Gère les appels imbriqués avec une boucle
|
|
388
|
+
*/
|
|
389
|
+
processDateAdd(condition) {
|
|
390
|
+
let maxIterations = 10; // Sécurité contre boucle infinie
|
|
391
|
+
while (condition.includes('dateAdd(') && maxIterations-- > 0) {
|
|
392
|
+
// Regex pour capturer dateAdd(date, valeur, 'type')
|
|
393
|
+
// Le premier groupe capture la date (peut contenir des parenthèses pour new Date())
|
|
394
|
+
const regex = /dateAdd\(\s*([^,]+(?:new Date\([^)]*\))?[^,]*)\s*,\s*(-?\d+)\s*,\s*['"]([dmy])['"]\s*\)/;
|
|
395
|
+
const match = condition.match(regex);
|
|
396
|
+
if (!match)
|
|
397
|
+
break;
|
|
398
|
+
const [fullMatch, dateStr, valueStr, unit] = match;
|
|
399
|
+
const date = this.parseDateArgument(dateStr.trim());
|
|
400
|
+
const value = parseInt(valueStr, 10);
|
|
401
|
+
if (date && !isNaN(value) && isValidDateUnit(unit)) {
|
|
402
|
+
const result = calculateDateAdd(date, value, unit);
|
|
403
|
+
if (result) {
|
|
404
|
+
condition = condition.replace(fullMatch, `new Date("${result.toISOString()}")`);
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
condition = condition.replace(fullMatch, 'null');
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
else {
|
|
411
|
+
condition = condition.replace(fullMatch, 'null');
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
return condition;
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Traite les appels dateDiff() et les remplace par leurs résultats
|
|
418
|
+
*/
|
|
419
|
+
processDateDiff(condition) {
|
|
420
|
+
let maxIterations = 10; // Sécurité contre boucle infinie
|
|
421
|
+
while (condition.includes('dateDiff(') && maxIterations-- > 0) {
|
|
422
|
+
// Regex pour capturer dateDiff(date1, date2, 'type')
|
|
423
|
+
const regex = /dateDiff\(\s*([^,]+(?:new Date\([^)]*\))?[^,]*)\s*,\s*([^,]+(?:new Date\([^)]*\))?[^,]*)\s*,\s*['"]([dmy])['"]\s*\)/;
|
|
424
|
+
const match = condition.match(regex);
|
|
425
|
+
if (!match)
|
|
426
|
+
break;
|
|
427
|
+
const [fullMatch, date1Str, date2Str, unit] = match;
|
|
428
|
+
const date1 = this.parseDateArgument(date1Str.trim());
|
|
429
|
+
const date2 = this.parseDateArgument(date2Str.trim());
|
|
430
|
+
if (date1 && date2 && isValidDateUnit(unit)) {
|
|
431
|
+
const result = calculateDateDiff(date1, date2, unit);
|
|
432
|
+
if (result !== null) {
|
|
433
|
+
condition = condition.replace(fullMatch, result.toString());
|
|
434
|
+
}
|
|
435
|
+
else {
|
|
436
|
+
condition = condition.replace(fullMatch, 'null');
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
else {
|
|
440
|
+
condition = condition.replace(fullMatch, 'null');
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
return condition;
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* Parse un argument de date depuis différentes sources
|
|
447
|
+
* Supporte: today(), now(), new Date("..."), "YYYY-MM-DD", ${VARIABLE}
|
|
448
|
+
*/
|
|
449
|
+
parseDateArgument(dateStr) {
|
|
450
|
+
const trimmed = dateStr.trim();
|
|
451
|
+
// Fonction today()
|
|
452
|
+
if (trimmed === 'today()') {
|
|
453
|
+
return new Date();
|
|
454
|
+
}
|
|
455
|
+
// Fonction now()
|
|
456
|
+
if (trimmed === 'now()') {
|
|
457
|
+
return new Date();
|
|
458
|
+
}
|
|
459
|
+
// new Date("ISO_STRING")
|
|
460
|
+
const newDateMatch = trimmed.match(/^new Date\(["']([^"']+)["']\)$/);
|
|
461
|
+
if (newDateMatch) {
|
|
462
|
+
return parseDateString(newDateMatch[1]);
|
|
463
|
+
}
|
|
464
|
+
// Date littérale entre guillemets: "2024-01-15" ou '2024-01-15'
|
|
465
|
+
const quotedMatch = trimmed.match(/^["']([^"']+)["']$/);
|
|
466
|
+
if (quotedMatch) {
|
|
467
|
+
return parseDateString(quotedMatch[1]);
|
|
468
|
+
}
|
|
469
|
+
// Référence de variable ${CODE} - récupérer la valeur du contexte
|
|
470
|
+
const varMatch = trimmed.match(/^\$\{([A-Z_][A-Z0-9_]*)\}$/);
|
|
471
|
+
if (varMatch) {
|
|
472
|
+
const value = this.context[varMatch[1]];
|
|
473
|
+
if (value instanceof Date) {
|
|
474
|
+
return value;
|
|
475
|
+
}
|
|
476
|
+
if (typeof value === 'string') {
|
|
477
|
+
return parseDateString(value);
|
|
478
|
+
}
|
|
479
|
+
return null;
|
|
480
|
+
}
|
|
481
|
+
// Essayer de parser directement comme date
|
|
482
|
+
return parseDateString(trimmed);
|
|
483
|
+
}
|
|
361
484
|
/**
|
|
362
485
|
* Obtient toutes les valeurs itératives pour une variable donnée
|
|
363
486
|
*/
|
|
@@ -429,6 +552,13 @@ export class ConditionEngine {
|
|
|
429
552
|
ceil: (num) => typeof num === 'number' ? Math.ceil(num) : 0,
|
|
430
553
|
min: (...args) => Math.min(...args.filter(n => typeof n === 'number')),
|
|
431
554
|
max: (...args) => Math.max(...args.filter(n => typeof n === 'number')),
|
|
555
|
+
// Fonctions de date
|
|
556
|
+
dateDiff: (date1, date2, unit) => {
|
|
557
|
+
return calculateDateDiff(date1, date2, unit);
|
|
558
|
+
},
|
|
559
|
+
dateAdd: (date, value, unit) => {
|
|
560
|
+
return calculateDateAdd(date, value, unit);
|
|
561
|
+
},
|
|
432
562
|
};
|
|
433
563
|
try {
|
|
434
564
|
// Créer une fonction sécurisée pour l'évaluation
|
|
@@ -475,6 +605,31 @@ export class ConditionEngine {
|
|
|
475
605
|
}
|
|
476
606
|
}
|
|
477
607
|
}
|
|
608
|
+
// Vérifier les fonctions de date
|
|
609
|
+
const dateDiffMatches = condition.match(/dateDiff\s*\([^)]+\)/g);
|
|
610
|
+
if (dateDiffMatches) {
|
|
611
|
+
for (const match of dateDiffMatches) {
|
|
612
|
+
// Vérifier que l'unité est valide ('d', 'm', 'y')
|
|
613
|
+
if (!match.match(/['"][dmy]['"]\s*\)$/)) {
|
|
614
|
+
return {
|
|
615
|
+
isValid: false,
|
|
616
|
+
error: `dateDiff() nécessite une unité valide: 'd', 'm', ou 'y'`
|
|
617
|
+
};
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
const dateAddMatches = condition.match(/dateAdd\s*\([^)]+\)/g);
|
|
622
|
+
if (dateAddMatches) {
|
|
623
|
+
for (const match of dateAddMatches) {
|
|
624
|
+
// Vérifier que l'unité est valide ('d', 'm', 'y')
|
|
625
|
+
if (!match.match(/['"][dmy]['"]\s*\)$/)) {
|
|
626
|
+
return {
|
|
627
|
+
isValid: false,
|
|
628
|
+
error: `dateAdd() nécessite une unité valide: 'd', 'm', ou 'y'`
|
|
629
|
+
};
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
}
|
|
478
633
|
// Vérifier les nouvelles fonctions utilitaires
|
|
479
634
|
const utilityFunctions = condition.match(/(showMe|hideMe|setValeur)\(/g);
|
|
480
635
|
if (utilityFunctions) {
|
|
@@ -554,8 +709,20 @@ export class ConditionEngine {
|
|
|
554
709
|
'endsWith(${VARIABLE}, "suffix")',
|
|
555
710
|
'includes(${VARIABLE}, "substring")'
|
|
556
711
|
];
|
|
712
|
+
// Suggestions de fonctions de date
|
|
713
|
+
const dateFunctions = [
|
|
714
|
+
"dateDiff(${DATE_NAISSANCE}, today(), 'y')",
|
|
715
|
+
"dateDiff(${DATE1}, ${DATE2}, 'd')",
|
|
716
|
+
"dateDiff(${DATE1}, ${DATE2}, 'm')",
|
|
717
|
+
"dateAdd(${DATE}, 30, 'd')",
|
|
718
|
+
"dateAdd(${DATE}, 6, 'm')",
|
|
719
|
+
"dateAdd(${DATE}, 1, 'y')",
|
|
720
|
+
"dateAdd(today(), -7, 'd')",
|
|
721
|
+
"dateDiff(${DATE_NAISSANCE}, today(), 'y') >= 18",
|
|
722
|
+
"today() > dateAdd(${DATE_ECHEANCE}, 30, 'd')"
|
|
723
|
+
];
|
|
557
724
|
// Combiner toutes les fonctions
|
|
558
|
-
const allFunctions = [...utilityFunctions, ...functions];
|
|
725
|
+
const allFunctions = [...utilityFunctions, ...functions, ...dateFunctions];
|
|
559
726
|
allFunctions.forEach(func => {
|
|
560
727
|
if (func.toLowerCase().includes(partialCondition.toLowerCase())) {
|
|
561
728
|
suggestions.push(func);
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fonctions utilitaires pour la manipulation des dates
|
|
3
|
+
* Utilisées par le conditionEngine pour dateDiff et dateAdd
|
|
4
|
+
*/
|
|
5
|
+
export type DateUnit = 'd' | 'm' | 'y';
|
|
6
|
+
/**
|
|
7
|
+
* Calcule la différence entre deux dates
|
|
8
|
+
* @param date1 - Première date
|
|
9
|
+
* @param date2 - Deuxième date
|
|
10
|
+
* @param unit - Unité de retour: 'd' (jours), 'm' (mois), 'y' (années)
|
|
11
|
+
* @returns Différence en entier (arrondi inférieur), ou null si dates invalides
|
|
12
|
+
*/
|
|
13
|
+
export declare function calculateDateDiff(date1: Date | null | undefined, date2: Date | null | undefined, unit: DateUnit): number | null;
|
|
14
|
+
/**
|
|
15
|
+
* Ajoute une durée à une date
|
|
16
|
+
* @param date - Date de base
|
|
17
|
+
* @param value - Valeur à ajouter (peut être négative)
|
|
18
|
+
* @param unit - Unité: 'd' (jours), 'm' (mois), 'y' (années)
|
|
19
|
+
* @returns Nouvelle date, ou null si date invalide
|
|
20
|
+
*/
|
|
21
|
+
export declare function calculateDateAdd(date: Date | null | undefined, value: number, unit: DateUnit): Date | null;
|
|
22
|
+
/**
|
|
23
|
+
* Parse une chaîne de date en objet Date
|
|
24
|
+
* Supporte les formats: ISO 8601, timestamp
|
|
25
|
+
* @param value - Chaîne à parser
|
|
26
|
+
* @returns Date ou null si invalide
|
|
27
|
+
*/
|
|
28
|
+
export declare function parseDateString(value: string): Date | null;
|
|
29
|
+
/**
|
|
30
|
+
* Vérifie si une unité de date est valide
|
|
31
|
+
* @param unit - Unité à vérifier
|
|
32
|
+
* @returns true si valide
|
|
33
|
+
*/
|
|
34
|
+
export declare function isValidDateUnit(unit: string): unit is DateUnit;
|
|
35
|
+
//# sourceMappingURL=date-functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-functions.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/date-functions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEvC;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,EAC9B,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,EAC9B,IAAI,EAAE,QAAQ,GACb,MAAM,GAAG,IAAI,CA2Cf;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,EAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,QAAQ,GACb,IAAI,GAAG,IAAI,CA6Bb;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAiB1D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,QAAQ,CAE9D"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fonctions utilitaires pour la manipulation des dates
|
|
3
|
+
* Utilisées par le conditionEngine pour dateDiff et dateAdd
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Calcule la différence entre deux dates
|
|
7
|
+
* @param date1 - Première date
|
|
8
|
+
* @param date2 - Deuxième date
|
|
9
|
+
* @param unit - Unité de retour: 'd' (jours), 'm' (mois), 'y' (années)
|
|
10
|
+
* @returns Différence en entier (arrondi inférieur), ou null si dates invalides
|
|
11
|
+
*/
|
|
12
|
+
export function calculateDateDiff(date1, date2, unit) {
|
|
13
|
+
if (!date1 || !date2 || !(date1 instanceof Date) || !(date2 instanceof Date)) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
if (isNaN(date1.getTime()) || isNaN(date2.getTime())) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
switch (unit) {
|
|
20
|
+
case 'd': {
|
|
21
|
+
// Différence en jours
|
|
22
|
+
const diffMs = date2.getTime() - date1.getTime();
|
|
23
|
+
return Math.floor(diffMs / (1000 * 60 * 60 * 24));
|
|
24
|
+
}
|
|
25
|
+
case 'm': {
|
|
26
|
+
// Différence en mois calendaires
|
|
27
|
+
let months = (date2.getFullYear() - date1.getFullYear()) * 12
|
|
28
|
+
+ (date2.getMonth() - date1.getMonth());
|
|
29
|
+
// Ajuster si le jour du mois n'est pas encore atteint
|
|
30
|
+
if (date2.getDate() < date1.getDate()) {
|
|
31
|
+
months--;
|
|
32
|
+
}
|
|
33
|
+
return months;
|
|
34
|
+
}
|
|
35
|
+
case 'y': {
|
|
36
|
+
// Différence en années calendaires
|
|
37
|
+
let years = date2.getFullYear() - date1.getFullYear();
|
|
38
|
+
// Vérifier si l'anniversaire est passé
|
|
39
|
+
const monthDiff = date2.getMonth() - date1.getMonth();
|
|
40
|
+
if (monthDiff < 0 || (monthDiff === 0 && date2.getDate() < date1.getDate())) {
|
|
41
|
+
years--;
|
|
42
|
+
}
|
|
43
|
+
return years;
|
|
44
|
+
}
|
|
45
|
+
default:
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Ajoute une durée à une date
|
|
51
|
+
* @param date - Date de base
|
|
52
|
+
* @param value - Valeur à ajouter (peut être négative)
|
|
53
|
+
* @param unit - Unité: 'd' (jours), 'm' (mois), 'y' (années)
|
|
54
|
+
* @returns Nouvelle date, ou null si date invalide
|
|
55
|
+
*/
|
|
56
|
+
export function calculateDateAdd(date, value, unit) {
|
|
57
|
+
if (!date || !(date instanceof Date) || isNaN(date.getTime())) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
if (typeof value !== 'number' || isNaN(value)) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const result = new Date(date);
|
|
64
|
+
switch (unit) {
|
|
65
|
+
case 'd':
|
|
66
|
+
result.setDate(result.getDate() + value);
|
|
67
|
+
break;
|
|
68
|
+
case 'm':
|
|
69
|
+
result.setMonth(result.getMonth() + value);
|
|
70
|
+
break;
|
|
71
|
+
case 'y':
|
|
72
|
+
result.setFullYear(result.getFullYear() + value);
|
|
73
|
+
break;
|
|
74
|
+
default:
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Parse une chaîne de date en objet Date
|
|
81
|
+
* Supporte les formats: ISO 8601, timestamp
|
|
82
|
+
* @param value - Chaîne à parser
|
|
83
|
+
* @returns Date ou null si invalide
|
|
84
|
+
*/
|
|
85
|
+
export function parseDateString(value) {
|
|
86
|
+
if (!value || typeof value !== 'string') {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
const trimmed = value.trim();
|
|
90
|
+
// Vérifier si c'est un timestamp numérique
|
|
91
|
+
if (/^\d+$/.test(trimmed)) {
|
|
92
|
+
const timestamp = parseInt(trimmed, 10);
|
|
93
|
+
const date = new Date(timestamp);
|
|
94
|
+
return isNaN(date.getTime()) ? null : date;
|
|
95
|
+
}
|
|
96
|
+
// Parser comme date ISO ou autre format
|
|
97
|
+
const date = new Date(trimmed);
|
|
98
|
+
return isNaN(date.getTime()) ? null : date;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Vérifie si une unité de date est valide
|
|
102
|
+
* @param unit - Unité à vérifier
|
|
103
|
+
* @returns true si valide
|
|
104
|
+
*/
|
|
105
|
+
export function isValidDateUnit(unit) {
|
|
106
|
+
return unit === 'd' || unit === 'm' || unit === 'y';
|
|
107
|
+
}
|
package/dist/types/enquete.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enquete.d.ts","sourceRoot":"","sources":["../../src/types/enquete.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"enquete.d.ts","sourceRoot":"","sources":["../../src/types/enquete.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilitaires pour la gestion de l'état des composants de formulaire
|
|
3
|
+
* RSU v2 - Moteur de Rendu des Formulaires d'Enquête
|
|
4
|
+
*/
|
|
5
|
+
import { VariableFormulaire } from '../types/enquete';
|
|
6
|
+
/**
|
|
7
|
+
* Détermine si un composant doit être en lecture seule
|
|
8
|
+
*
|
|
9
|
+
* Règle de priorité: Mode Consultation > isReadonly
|
|
10
|
+
* - Si le formulaire est en mode consultation (isConsultationMode = true),
|
|
11
|
+
* tous les composants sont en lecture seule
|
|
12
|
+
* - Sinon, on utilise la propriété isReadonly de la variable
|
|
13
|
+
*
|
|
14
|
+
* @param variable - La variable de formulaire
|
|
15
|
+
* @param isConsultationMode - Indique si le formulaire est en mode consultation
|
|
16
|
+
* @returns true si le composant doit être en lecture seule
|
|
17
|
+
*/
|
|
18
|
+
export declare function isComponentReadonly(variable: VariableFormulaire, isConsultationMode?: boolean): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Détermine si un composant doit être désactivé (disabled)
|
|
21
|
+
* Un composant disabled ne peut pas recevoir le focus et est visuellement grisé
|
|
22
|
+
*
|
|
23
|
+
* @param disabled - Propriété disabled passée au composant
|
|
24
|
+
* @param variable - La variable de formulaire
|
|
25
|
+
* @param isConsultationMode - Indique si le formulaire est en mode consultation
|
|
26
|
+
* @returns true si le composant doit être désactivé
|
|
27
|
+
*/
|
|
28
|
+
export declare function isComponentDisabled(disabled: boolean, variable: VariableFormulaire, isConsultationMode?: boolean): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Retourne les attributs HTML appropriés pour le mode lecture seule
|
|
31
|
+
*
|
|
32
|
+
* @param variable - La variable de formulaire
|
|
33
|
+
* @param isConsultationMode - Indique si le formulaire est en mode consultation
|
|
34
|
+
* @param componentSupportsReadonly - Indique si le composant HTML supporte l'attribut readonly
|
|
35
|
+
* @returns Un objet avec les attributs readonly et/ou disabled
|
|
36
|
+
*/
|
|
37
|
+
export declare function getReadonlyAttributes(variable: VariableFormulaire, isConsultationMode?: boolean, componentSupportsReadonly?: boolean): {
|
|
38
|
+
readOnly?: boolean;
|
|
39
|
+
disabled?: boolean;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Classes CSS pour les composants en lecture seule
|
|
43
|
+
*/
|
|
44
|
+
export declare const readonlyClasses: {
|
|
45
|
+
readonly: string;
|
|
46
|
+
disabled: string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Retourne les classes CSS appropriées pour l'état du composant
|
|
50
|
+
*
|
|
51
|
+
* @param variable - La variable de formulaire
|
|
52
|
+
* @param isConsultationMode - Indique si le formulaire est en mode consultation
|
|
53
|
+
* @param isDisabled - Indique si le composant est explicitement désactivé
|
|
54
|
+
* @returns Les classes CSS à appliquer
|
|
55
|
+
*/
|
|
56
|
+
export declare function getReadonlyClasses(variable: VariableFormulaire, isConsultationMode?: boolean, isDisabled?: boolean): string;
|
|
57
|
+
//# sourceMappingURL=componentStateUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"componentStateUtils.d.ts","sourceRoot":"","sources":["../../src/utils/componentStateUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,kBAAkB,EAC5B,kBAAkB,GAAE,OAAe,GAClC,OAAO,CAQT;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,OAAe,EACzB,QAAQ,EAAE,kBAAkB,EAC5B,kBAAkB,GAAE,OAAe,GAClC,OAAO,CAaT;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,kBAAkB,EAC5B,kBAAkB,GAAE,OAAe,EACnC,yBAAyB,GAAE,OAAc,GACxC;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAc5C;AAED;;GAEG;AACH,eAAO,MAAM,eAAe;;;CAM3B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,kBAAkB,EAC5B,kBAAkB,GAAE,OAAe,EACnC,UAAU,GAAE,OAAe,GAC1B,MAAM,CAUR"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilitaires pour la gestion de l'état des composants de formulaire
|
|
3
|
+
* RSU v2 - Moteur de Rendu des Formulaires d'Enquête
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Détermine si un composant doit être en lecture seule
|
|
7
|
+
*
|
|
8
|
+
* Règle de priorité: Mode Consultation > isReadonly
|
|
9
|
+
* - Si le formulaire est en mode consultation (isConsultationMode = true),
|
|
10
|
+
* tous les composants sont en lecture seule
|
|
11
|
+
* - Sinon, on utilise la propriété isReadonly de la variable
|
|
12
|
+
*
|
|
13
|
+
* @param variable - La variable de formulaire
|
|
14
|
+
* @param isConsultationMode - Indique si le formulaire est en mode consultation
|
|
15
|
+
* @returns true si le composant doit être en lecture seule
|
|
16
|
+
*/
|
|
17
|
+
export function isComponentReadonly(variable, isConsultationMode = false) {
|
|
18
|
+
// Mode consultation prioritaire: tout est readonly
|
|
19
|
+
if (isConsultationMode) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
// Sinon, on utilise la propriété isReadonly de la variable
|
|
23
|
+
return variable.isReadonly === true;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Détermine si un composant doit être désactivé (disabled)
|
|
27
|
+
* Un composant disabled ne peut pas recevoir le focus et est visuellement grisé
|
|
28
|
+
*
|
|
29
|
+
* @param disabled - Propriété disabled passée au composant
|
|
30
|
+
* @param variable - La variable de formulaire
|
|
31
|
+
* @param isConsultationMode - Indique si le formulaire est en mode consultation
|
|
32
|
+
* @returns true si le composant doit être désactivé
|
|
33
|
+
*/
|
|
34
|
+
export function isComponentDisabled(disabled = false, variable, isConsultationMode = false) {
|
|
35
|
+
// Si explicitement disabled, retourner true
|
|
36
|
+
if (disabled) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
// Pour certains composants qui ne supportent pas readonly,
|
|
40
|
+
// on utilise disabled à la place
|
|
41
|
+
if (isConsultationMode || variable.isReadonly === true) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Retourne les attributs HTML appropriés pour le mode lecture seule
|
|
48
|
+
*
|
|
49
|
+
* @param variable - La variable de formulaire
|
|
50
|
+
* @param isConsultationMode - Indique si le formulaire est en mode consultation
|
|
51
|
+
* @param componentSupportsReadonly - Indique si le composant HTML supporte l'attribut readonly
|
|
52
|
+
* @returns Un objet avec les attributs readonly et/ou disabled
|
|
53
|
+
*/
|
|
54
|
+
export function getReadonlyAttributes(variable, isConsultationMode = false, componentSupportsReadonly = true) {
|
|
55
|
+
const shouldBeReadonly = isComponentReadonly(variable, isConsultationMode);
|
|
56
|
+
if (!shouldBeReadonly) {
|
|
57
|
+
return {};
|
|
58
|
+
}
|
|
59
|
+
// Si le composant supporte readonly (input, textarea), on utilise readonly
|
|
60
|
+
// Sinon (select, checkbox, radio), on utilise disabled
|
|
61
|
+
if (componentSupportsReadonly) {
|
|
62
|
+
return { readOnly: true };
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
return { disabled: true };
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Classes CSS pour les composants en lecture seule
|
|
70
|
+
*/
|
|
71
|
+
export const readonlyClasses = {
|
|
72
|
+
// Style pour un composant readonly (focusable mais non modifiable)
|
|
73
|
+
readonly: 'bg-gray-50 cursor-default text-gray-700',
|
|
74
|
+
// Style pour un composant disabled (non focusable, grisé)
|
|
75
|
+
disabled: 'bg-gray-100 cursor-not-allowed text-gray-500',
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Retourne les classes CSS appropriées pour l'état du composant
|
|
79
|
+
*
|
|
80
|
+
* @param variable - La variable de formulaire
|
|
81
|
+
* @param isConsultationMode - Indique si le formulaire est en mode consultation
|
|
82
|
+
* @param isDisabled - Indique si le composant est explicitement désactivé
|
|
83
|
+
* @returns Les classes CSS à appliquer
|
|
84
|
+
*/
|
|
85
|
+
export function getReadonlyClasses(variable, isConsultationMode = false, isDisabled = false) {
|
|
86
|
+
if (isDisabled) {
|
|
87
|
+
return readonlyClasses.disabled;
|
|
88
|
+
}
|
|
89
|
+
if (isComponentReadonly(variable, isConsultationMode)) {
|
|
90
|
+
return readonlyClasses.readonly;
|
|
91
|
+
}
|
|
92
|
+
return '';
|
|
93
|
+
}
|