@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.
Files changed (51) hide show
  1. package/dist/components/inputs/CheckboxInput.d.ts +1 -0
  2. package/dist/components/inputs/CheckboxInput.d.ts.map +1 -1
  3. package/dist/components/inputs/CheckboxInput.js +7 -3
  4. package/dist/components/inputs/ComboboxInput.d.ts +1 -0
  5. package/dist/components/inputs/ComboboxInput.d.ts.map +1 -1
  6. package/dist/components/inputs/ComboboxInput.js +6 -2
  7. package/dist/components/inputs/DatePicker.d.ts +1 -0
  8. package/dist/components/inputs/DatePicker.d.ts.map +1 -1
  9. package/dist/components/inputs/DatePicker.js +15 -2
  10. package/dist/components/inputs/EmailInput.d.ts +1 -0
  11. package/dist/components/inputs/EmailInput.d.ts.map +1 -1
  12. package/dist/components/inputs/EmailInput.js +15 -2
  13. package/dist/components/inputs/GPSInput.d.ts +1 -0
  14. package/dist/components/inputs/GPSInput.d.ts.map +1 -1
  15. package/dist/components/inputs/GPSInput.js +7 -3
  16. package/dist/components/inputs/GeographicCascadeInput.d.ts +1 -0
  17. package/dist/components/inputs/GeographicCascadeInput.d.ts.map +1 -1
  18. package/dist/components/inputs/GeographicCascadeInput.js +5 -3
  19. package/dist/components/inputs/HourInput.d.ts +1 -0
  20. package/dist/components/inputs/HourInput.d.ts.map +1 -1
  21. package/dist/components/inputs/HourInput.js +15 -2
  22. package/dist/components/inputs/NumberInput.d.ts +1 -0
  23. package/dist/components/inputs/NumberInput.d.ts.map +1 -1
  24. package/dist/components/inputs/NumberInput.js +18 -3
  25. package/dist/components/inputs/PhoneInput.d.ts +1 -0
  26. package/dist/components/inputs/PhoneInput.d.ts.map +1 -1
  27. package/dist/components/inputs/PhoneInput.js +15 -2
  28. package/dist/components/inputs/RadioInput.d.ts +1 -0
  29. package/dist/components/inputs/RadioInput.d.ts.map +1 -1
  30. package/dist/components/inputs/RadioInput.js +6 -2
  31. package/dist/components/inputs/SelectInput.d.ts +1 -0
  32. package/dist/components/inputs/SelectInput.d.ts.map +1 -1
  33. package/dist/components/inputs/SelectInput.js +7 -3
  34. package/dist/components/inputs/StringInput.d.ts +1 -0
  35. package/dist/components/inputs/StringInput.d.ts.map +1 -1
  36. package/dist/components/inputs/StringInput.js +18 -3
  37. package/dist/index.d.ts +1 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +5 -0
  40. package/dist/lib/condition-engine.d.ts +19 -0
  41. package/dist/lib/condition-engine.d.ts.map +1 -1
  42. package/dist/lib/condition-engine.js +169 -2
  43. package/dist/lib/utils/date-functions.d.ts +35 -0
  44. package/dist/lib/utils/date-functions.d.ts.map +1 -0
  45. package/dist/lib/utils/date-functions.js +107 -0
  46. package/dist/types/enquete.d.ts +1 -0
  47. package/dist/types/enquete.d.ts.map +1 -1
  48. package/dist/utils/componentStateUtils.d.ts +57 -0
  49. package/dist/utils/componentStateUtils.d.ts.map +1 -0
  50. package/dist/utils/componentStateUtils.js +93 -0
  51. 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
@@ -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;AAGjE,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;IAmClB;;OAEG;IACH,cAAc,IAAI,UAAU,EAAE;IAI9B;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,uCAAuC;IA2B/C;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAuDnC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;OAEG;IACH,OAAO,CAAC,YAAY;IAsCpB;;OAEG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IA6EhF;;OAEG;IACH,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE;CA2D5D;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,WAAW,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,oBAS3E,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
+ }
@@ -106,6 +106,7 @@ export interface VariableFormulaire {
106
106
  estObligatoire: boolean;
107
107
  estVisible: boolean;
108
108
  estCommun?: boolean;
109
+ isReadonly?: boolean;
109
110
  conditionsAffichage?: string;
110
111
  proprietes?: VariableProperties;
111
112
  componentStyle?: ComponentStyle;
@@ -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":"AAAA;;;GAGG;AAGH,MAAM,MAAM,YAAY,GACpB,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAChE,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GACvE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,GAAG,UAAU,GAClE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,gBAAgB,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAC5F,aAAa,GAAG,YAAY,GAAG,OAAO,GACtC,WAAW,GAAG,iBAAiB,GAAG,qBAAqB,CAAC;AAG5D,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,kBAAkB,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC;AAGnH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AAG7E,MAAM,WAAW,kBAAkB;IAEjC,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IAGH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,CAAC;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAGD,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;AAGD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IAEH,gBAAgB,CAAC,EAAE,KAAK,CAAC;QACvB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;QACxC,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;CACJ;AAGD,MAAM,WAAW,oBAAoB;IAEnC,gBAAgB,EAAE,MAAM,CAAC;IAGzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAGD,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC1C;AAGD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAGD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,uBAAuB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,0BAA2B,SAAQ,gBAAgB;IAClE,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,UAAU,EAAE,OAAO,CAAC;CACrB;AAGD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IAKpB,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAGhC,cAAc,CAAC,EAAE,cAAc,CAAC;IAGhC,YAAY,CAAC,EAAE,aAAa,CAAC;IAG7B,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAGD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IAGrB,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAGhC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAGtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAGD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,IAAI,CAAC;IAGnB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAG5B,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAGhC,MAAM,CAAC,EAAE,GAAG,CAAC;IAGb,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAGD,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,IAAI,CAAC;IAGvB,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,CAAC;QAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,gBAAgB,CAAC,EAAE;YACjB,UAAU,EAAE,MAAM,CAAC;YACnB,eAAe,EAAE,MAAM,CAAC;YACxB,eAAe,EAAE,MAAM,CAAC;SACzB,CAAC;QAEF,UAAU,CAAC,EAAE;YACX,gBAAgB,EAAE,MAAM,CAAC;YACzB,UAAU,EAAE,IAAI,CAAC;YACjB,cAAc,CAAC,EAAE,MAAM,CAAC;SACzB,CAAC;KACH,CAAC;CACH;AAGD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,IAAI,CAAC;IAC3B,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;CACzC;AAGD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAGD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,aAAa,CAAC;IAGtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,IAAI,CAAC;IACnB,uBAAuB,CAAC,EAAE,IAAI,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAGzC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAGjC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAGD,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;CACnD;AAGD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAGD,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,cAAc,EAAE,MAAM,CAAC;CACxB;AAGD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;CAC5B;AAGD,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB;AAGD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAGD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrC,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB;AAGD,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGvC,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;CACtB;AAGD,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAGD,MAAM,WAAW,4BAA4B;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;CACxE;AAGD,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACxB"}
@@ -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
+ }