@rsuci/shared-form-components 1.0.15 → 1.0.17

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.
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Types et interfaces pour le FormTree (arbre virtuel du formulaire)
3
+ * RSU v2 - Gestion centralisée de l'état de visibilité et des jumps
4
+ */
5
+ import { VariableFormulaire, GroupeFormulaire, EnqueteReponse, VariableValue } from './enquete';
6
+ /**
7
+ * État d'un noeud variable dans l'arbre
8
+ */
9
+ export interface VariableNodeState {
10
+ /** Référence à la variable du formulaire */
11
+ variable: VariableFormulaire;
12
+ /** Résultat final de visibilité (estVisible && conditionMet && !jumpedOver) */
13
+ isVisible: boolean;
14
+ /** Masqué par un jump actif */
15
+ isJumpedOver: boolean;
16
+ /** Condition d'affichage satisfaite */
17
+ isConditionMet: boolean;
18
+ /** Passe la validation */
19
+ isValid: boolean;
20
+ /** Message d'erreur si invalide */
21
+ validationError?: string;
22
+ /** Ignorer validation (jumped over) */
23
+ skipValidation: boolean;
24
+ /** Valeur actuelle de la variable */
25
+ currentValue: VariableValue;
26
+ /** Effacer à la sauvegarde (jumped) */
27
+ shouldClearOnSave: boolean;
28
+ }
29
+ /**
30
+ * État d'un noeud groupe dans l'arbre
31
+ */
32
+ export interface GroupNodeState {
33
+ /** Référence au groupe du formulaire */
34
+ groupe: GroupeFormulaire;
35
+ /** États des variables de ce groupe */
36
+ variables: VariableNodeState[];
37
+ /** Le groupe est visible */
38
+ isVisible: boolean;
39
+ /** Toutes les variables obligatoires sont remplies */
40
+ isComplete: boolean;
41
+ /** Erreurs de validation du groupe */
42
+ validationErrors: string[];
43
+ /** Map des itérations avec leurs états de variables */
44
+ iterations: Map<number, VariableNodeState[]>;
45
+ }
46
+ /**
47
+ * Plage de jump actif
48
+ * Représente un saut conditionnel entre deux variables
49
+ */
50
+ export interface JumpRange {
51
+ /** Code de la variable source du jump */
52
+ sourceCode: string;
53
+ /** Ordre de la variable source */
54
+ sourceOrdre: number;
55
+ /** Code de la variable cible du jump */
56
+ targetCode: string;
57
+ /** Ordre de la variable cible */
58
+ targetOrdre: number;
59
+ /** Code du groupe contenant le jump */
60
+ groupeCode: string;
61
+ /** Condition d'activation du jump */
62
+ condition: string;
63
+ /** Le jump est actuellement actif */
64
+ isActive: boolean;
65
+ }
66
+ /**
67
+ * Erreur de jump pour notification
68
+ */
69
+ export interface JumpError {
70
+ /** Type d'erreur */
71
+ type: 'backward_jump' | 'invalid_target' | 'circular_jump' | 'cross_group_jump';
72
+ /** Code de la variable source */
73
+ sourceVariable: string;
74
+ /** Code de la variable cible */
75
+ targetVariable: string;
76
+ /** Message d'erreur descriptif */
77
+ message: string;
78
+ }
79
+ /**
80
+ * Interface principale du FormTree
81
+ */
82
+ export interface IFormTree {
83
+ /**
84
+ * Construit l'arbre à partir des groupes du formulaire
85
+ * @param groupes Liste des groupes du formulaire
86
+ */
87
+ buildFromFormulaire(groupes: GroupeFormulaire[]): void;
88
+ /**
89
+ * Met à jour les réponses et réévalue toutes les conditions
90
+ * @param responses Dictionnaire des réponses
91
+ */
92
+ updateResponses(responses: Record<string, EnqueteReponse>): void;
93
+ /**
94
+ * Évalue toutes les conditions de visibilité et jumps
95
+ */
96
+ evaluateAll(): void;
97
+ /**
98
+ * Retourne les variables visibles d'un groupe
99
+ * @param groupeCode Code du groupe
100
+ */
101
+ getVisibleVariables(groupeCode: string): VariableFormulaire[];
102
+ /**
103
+ * Retourne l'état d'un groupe
104
+ * @param groupeCode Code du groupe
105
+ */
106
+ getGroupState(groupeCode: string): GroupNodeState | undefined;
107
+ /**
108
+ * Retourne l'état d'une variable
109
+ * @param variableCode Code de la variable
110
+ */
111
+ getVariableState(variableCode: string): VariableNodeState | undefined;
112
+ /**
113
+ * Retourne les codes des variables sautées dans un groupe
114
+ * @param groupeCode Code du groupe
115
+ */
116
+ getJumpedVariableCodes(groupeCode: string): Set<string>;
117
+ /**
118
+ * Retourne tous les jumps actifs
119
+ */
120
+ getActiveJumps(): JumpRange[];
121
+ /**
122
+ * Retourne toutes les erreurs de jump détectées
123
+ */
124
+ getJumpErrors(): JumpError[];
125
+ /**
126
+ * Valide un groupe et retourne les erreurs
127
+ * @param groupeCode Code du groupe
128
+ */
129
+ validateGroup(groupeCode: string): {
130
+ isValid: boolean;
131
+ errors: string[];
132
+ };
133
+ /**
134
+ * Retourne les codes des variables à effacer lors de la sauvegarde
135
+ */
136
+ getVariablesToClearOnSave(): string[];
137
+ /** Callback appelé en cas d'erreur de jump */
138
+ onJumpError?: (error: JumpError) => void;
139
+ }
140
+ /**
141
+ * Options pour la création d'un FormTree
142
+ */
143
+ export interface FormTreeOptions {
144
+ /** Callback en cas d'erreur de jump */
145
+ onJumpError?: (error: JumpError) => void;
146
+ /** Activer le logging de debug */
147
+ debug?: boolean;
148
+ }
149
+ /**
150
+ * Résultat de l'évaluation d'une condition de jump
151
+ */
152
+ export interface JumpEvaluationResult {
153
+ /** La condition est valide syntaxiquement */
154
+ isValidSyntax: boolean;
155
+ /** Le jump peut être exécuté (cible valide, direction correcte) */
156
+ canExecute: boolean;
157
+ /** Le jump doit être activé (condition satisfaite) */
158
+ shouldActivate: boolean;
159
+ /** Code de la variable cible */
160
+ targetCode: string | null;
161
+ /** Erreur éventuelle */
162
+ error?: JumpError;
163
+ }
164
+ //# sourceMappingURL=form-tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-tree.d.ts","sourceRoot":"","sources":["../../src/types/form-tree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Types et interfaces pour le FormTree (arbre virtuel du formulaire)
3
+ * RSU v2 - Gestion centralisée de l'état de visibilité et des jumps
4
+ */
5
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsuci/shared-form-components",
3
- "version": "1.0.15",
3
+ "version": "1.0.17",
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",