@inseefr/lunatic 3.6.5 → 3.6.7

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 (69) hide show
  1. package/README.md +25 -0
  2. package/components/CheckboxGroup/CustomCheckboxGroup.d.ts +1 -1
  3. package/components/CheckboxGroup/CustomCheckboxGroup.js.map +1 -1
  4. package/components/Loop/Loop.d.ts +1 -1
  5. package/components/Loop/Loop.js +5 -27
  6. package/components/Loop/Loop.js.map +1 -1
  7. package/components/Loop/utils.d.ts +8 -0
  8. package/components/Loop/utils.js +65 -0
  9. package/components/Loop/utils.js.map +1 -0
  10. package/components/RosterForLoop/RosterForLoop.js +4 -27
  11. package/components/RosterForLoop/RosterForLoop.js.map +1 -1
  12. package/components/Roundabout/CustomRoundabout.js +2 -2
  13. package/components/Roundabout/CustomRoundabout.js.map +1 -1
  14. package/components/Roundabout/roundabout.spec.js +22 -0
  15. package/components/Roundabout/roundabout.spec.js.map +1 -1
  16. package/components/shared/Checkbox/CheckboxOption.d.ts +4 -2
  17. package/components/shared/Checkbox/CheckboxOption.js.map +1 -1
  18. package/components/shared/Radio/RadioGroup.d.ts +1 -1
  19. package/components/shared/Radio/RadioGroup.js.map +1 -1
  20. package/esm/components/CheckboxGroup/CustomCheckboxGroup.d.ts +1 -1
  21. package/esm/components/CheckboxGroup/CustomCheckboxGroup.js.map +1 -1
  22. package/esm/components/Loop/Loop.d.ts +1 -1
  23. package/esm/components/Loop/Loop.js +5 -28
  24. package/esm/components/Loop/Loop.js.map +1 -1
  25. package/esm/components/Loop/utils.d.ts +8 -0
  26. package/esm/components/Loop/utils.js +62 -0
  27. package/esm/components/Loop/utils.js.map +1 -0
  28. package/esm/components/RosterForLoop/RosterForLoop.js +5 -29
  29. package/esm/components/RosterForLoop/RosterForLoop.js.map +1 -1
  30. package/esm/components/Roundabout/CustomRoundabout.js +2 -2
  31. package/esm/components/Roundabout/CustomRoundabout.js.map +1 -1
  32. package/esm/components/Roundabout/roundabout.spec.js +22 -0
  33. package/esm/components/Roundabout/roundabout.spec.js.map +1 -1
  34. package/esm/components/shared/Checkbox/CheckboxOption.d.ts +4 -2
  35. package/esm/components/shared/Checkbox/CheckboxOption.js.map +1 -1
  36. package/esm/components/shared/Radio/RadioGroup.d.ts +1 -1
  37. package/esm/components/shared/Radio/RadioGroup.js.map +1 -1
  38. package/esm/use-lunatic/commons/compile-controls.js +33 -7
  39. package/esm/use-lunatic/commons/compile-controls.js.map +1 -1
  40. package/esm/use-lunatic/props/propIterations.js +12 -1
  41. package/esm/use-lunatic/props/propIterations.js.map +1 -1
  42. package/esm/use-lunatic/reducer/controls/check-base-control.js.map +1 -1
  43. package/package.json +16 -3
  44. package/src/components/CheckboxGroup/CustomCheckboxGroup.tsx +1 -0
  45. package/src/components/Loop/Loop.tsx +6 -35
  46. package/src/components/Loop/utils.test.ts +39 -0
  47. package/src/components/Loop/utils.ts +73 -0
  48. package/src/components/RosterForLoop/RosterForLoop.tsx +3 -33
  49. package/src/components/Roundabout/CustomRoundabout.tsx +11 -1
  50. package/src/components/Roundabout/roundabout.spec.tsx +38 -0
  51. package/src/components/shared/Checkbox/CheckboxOption.tsx +3 -2
  52. package/src/components/shared/Radio/RadioGroup.tsx +1 -0
  53. package/src/stories/behaviour/controls/controls.stories.tsx +12 -3
  54. package/src/stories/behaviour/controls/data-standalone-loop.json +17 -0
  55. package/src/stories/behaviour/controls/source-standalone-loop.json +5503 -0
  56. package/src/stories/loop/source-paginated.json +1 -1
  57. package/src/stories/roundabout/roundabout.stories.tsx +13 -0
  58. package/src/stories/roundabout/sourceWithControl.json +613 -0
  59. package/src/use-lunatic/commons/compile-controls.ts +60 -11
  60. package/src/use-lunatic/props/propIterations.ts +30 -15
  61. package/src/use-lunatic/reducer/controls/check-base-control.ts +0 -1
  62. package/src/use-lunatic/use-lunatic-bug.test.ts +42 -0
  63. package/tsconfig.build.tsbuildinfo +1 -1
  64. package/use-lunatic/commons/compile-controls.js +31 -7
  65. package/use-lunatic/commons/compile-controls.js.map +1 -1
  66. package/use-lunatic/props/propIterations.js +12 -1
  67. package/use-lunatic/props/propIterations.js.map +1 -1
  68. package/use-lunatic/reducer/controls/check-base-control.js.map +1 -1
  69. /package/src/stories/behaviour/controls/{source-loop.json → source-roster-for-loop.json} +0 -0
@@ -93,7 +93,7 @@
93
93
  "variableType": "COLLECTED",
94
94
  "name": "PRENOM",
95
95
  "values": {
96
- "COLLECTED": ["John", "Jane"]
96
+ "COLLECTED": []
97
97
  }
98
98
  },
99
99
  {
@@ -1,5 +1,6 @@
1
1
  import { Orchestrator } from '../utils/Orchestrator';
2
2
  import source from './source.json';
3
+ import sourceWithControl from './sourceWithControl.json';
3
4
 
4
5
  import { Meta, StoryObj } from '@storybook/react';
5
6
 
@@ -35,3 +36,15 @@ export const OneIteration: Story = {
35
36
  }),
36
37
  },
37
38
  };
39
+
40
+ export const WithControl: Story = {
41
+ args: {
42
+ source: sourceWithControl,
43
+ data: dataFromObject({
44
+ NBHAB: 3,
45
+ PRENOM: ['Pierre', 'Paul', 'Patrick'],
46
+ AGE: [55, null, null],
47
+ BOUCLE1_PROGRESS: [1],
48
+ }),
49
+ },
50
+ };
@@ -0,0 +1,613 @@
1
+ {
2
+ "$schema": "../../../lunatic-schema.json",
3
+ "maxPage": "6",
4
+ "cleaning": {
5
+ "PRENOM": {
6
+ "AGE": [
7
+ {
8
+ "shapeFrom": "PRENOM",
9
+ "expression": "not(not(PRENOM = \"Paul\"))",
10
+ "isAggregatorUsed": false
11
+ }
12
+ ],
13
+ "QUESTIONAV": [
14
+ {
15
+ "shapeFrom": "PRENOM",
16
+ "expression": "not(not(PRENOM = \"Paul\"))",
17
+ "isAggregatorUsed": false
18
+ }
19
+ ]
20
+ }
21
+ },
22
+ "resizing": {
23
+ "NBHAB": {
24
+ "size": "nvl(NBHAB,1)",
25
+ "variables": ["PRENOM"]
26
+ },
27
+ "PRENOM": {
28
+ "size": "count(PRENOM)",
29
+ "variables": ["AGE", "QUESTIONAV"]
30
+ }
31
+ },
32
+ "variables": [
33
+ {
34
+ "name": "SUM_AGE",
35
+ "dimension": 0,
36
+ "expression": {
37
+ "type": "VTL",
38
+ "value": "sum(AGE_N)"
39
+ },
40
+ "variableType": "CALCULATED",
41
+ "bindingDependencies": ["AGE_N", "AGE"]
42
+ },
43
+ {
44
+ "name": "AGE_N",
45
+ "dimension": 1,
46
+ "shapeFrom": ["PRENOM"],
47
+ "expression": {
48
+ "type": "VTL",
49
+ "value": "nvl(AGE,0)"
50
+ },
51
+ "variableType": "CALCULATED",
52
+ "iterationReference": "lyoigdda",
53
+ "bindingDependencies": ["AGE"]
54
+ },
55
+ {
56
+ "name": "ADR",
57
+ "variableType": "EXTERNAL"
58
+ },
59
+ {
60
+ "name": "NBHAB",
61
+ "values": {
62
+ "COLLECTED": null
63
+ },
64
+ "dimension": 0,
65
+ "variableType": "COLLECTED"
66
+ },
67
+ {
68
+ "name": "PRENOM",
69
+ "values": {
70
+ "COLLECTED": []
71
+ },
72
+ "dimension": 1,
73
+ "variableType": "COLLECTED",
74
+ "iterationReference": "lyoigdda"
75
+ },
76
+ {
77
+ "name": "AGE",
78
+ "values": {
79
+ "COLLECTED": []
80
+ },
81
+ "dimension": 1,
82
+ "variableType": "COLLECTED",
83
+ "iterationReference": "lyoigdda"
84
+ },
85
+ {
86
+ "name": "QUESTIONAV",
87
+ "values": {
88
+ "COLLECTED": []
89
+ },
90
+ "dimension": 1,
91
+ "variableType": "COLLECTED",
92
+ "iterationReference": "lyoigdda"
93
+ },
94
+ {
95
+ "name": "TESTCONTRO",
96
+ "values": {
97
+ "COLLECTED": null
98
+ },
99
+ "dimension": 0,
100
+ "variableType": "COLLECTED"
101
+ },
102
+ {
103
+ "name": "FILTER_RESULT_NBHAB",
104
+ "dimension": 0,
105
+ "expression": {
106
+ "type": "VTL",
107
+ "value": "true"
108
+ },
109
+ "variableType": "CALCULATED",
110
+ "isIgnoredByLunatic": true
111
+ },
112
+ {
113
+ "name": "FILTER_RESULT_PRENOM",
114
+ "dimension": 1,
115
+ "shapeFrom": ["PRENOM"],
116
+ "expression": {
117
+ "type": "VTL",
118
+ "value": "true"
119
+ },
120
+ "variableType": "CALCULATED",
121
+ "isIgnoredByLunatic": true,
122
+ "iterationReference": "lyoigdda"
123
+ },
124
+ {
125
+ "name": "FILTER_RESULT_AGE",
126
+ "dimension": 1,
127
+ "shapeFrom": ["PRENOM"],
128
+ "expression": {
129
+ "type": "VTL",
130
+ "value": "true"
131
+ },
132
+ "variableType": "CALCULATED",
133
+ "isIgnoredByLunatic": true,
134
+ "iterationReference": "lyoigdda"
135
+ },
136
+ {
137
+ "name": "FILTER_RESULT_QUESTIONAV",
138
+ "dimension": 1,
139
+ "shapeFrom": ["PRENOM"],
140
+ "expression": {
141
+ "type": "VTL",
142
+ "value": "true"
143
+ },
144
+ "variableType": "CALCULATED",
145
+ "isIgnoredByLunatic": true,
146
+ "iterationReference": "lyoigdda"
147
+ },
148
+ {
149
+ "name": "FILTER_RESULT_TESTCONTRO",
150
+ "dimension": 0,
151
+ "expression": {
152
+ "type": "VTL",
153
+ "value": "true"
154
+ },
155
+ "variableType": "CALCULATED",
156
+ "isIgnoredByLunatic": true
157
+ },
158
+ {
159
+ "name": "BOUCLE1_PROGRESS",
160
+ "values": {
161
+ "COLLECTED": []
162
+ },
163
+ "dimension": 1,
164
+ "variableType": "COLLECTED",
165
+ "iterationReference": "lyoigdda"
166
+ }
167
+ ],
168
+ "components": [
169
+ {
170
+ "id": "lst6jn38",
171
+ "page": "1",
172
+ "label": {
173
+ "type": "VTL",
174
+ "value": "\"I - \" || \"S1\""
175
+ },
176
+ "componentType": "Sequence",
177
+ "conditionFilter": {
178
+ "type": "VTL",
179
+ "value": "true"
180
+ }
181
+ },
182
+ {
183
+ "id": "question-lst71avf",
184
+ "page": "2",
185
+ "label": {
186
+ "type": "VTL|MD",
187
+ "value": "\"Combien de personnes ?\""
188
+ },
189
+ "components": [
190
+ {
191
+ "id": "lst71avf",
192
+ "max": 10,
193
+ "min": 1,
194
+ "page": "2",
195
+ "controls": [
196
+ {
197
+ "id": "lst71avf-format-borne-inf-sup",
198
+ "type": "SIMPLE",
199
+ "control": {
200
+ "type": "VTL",
201
+ "value": "not(not(isnull(NBHAB)) and (1>NBHAB or 10<NBHAB))"
202
+ },
203
+ "criticality": "ERROR",
204
+ "errorMessage": {
205
+ "type": "VTL|MD",
206
+ "value": "\" La valeur doit être comprise entre 1 et 10\""
207
+ },
208
+ "typeOfControl": "FORMAT"
209
+ },
210
+ {
211
+ "id": "lst71avf-format-decimal",
212
+ "type": "SIMPLE",
213
+ "control": {
214
+ "type": "VTL",
215
+ "value": "not(not(isnull(NBHAB)) and round(NBHAB,0)<>NBHAB)"
216
+ },
217
+ "criticality": "ERROR",
218
+ "errorMessage": {
219
+ "type": "VTL|MD",
220
+ "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule\""
221
+ },
222
+ "typeOfControl": "FORMAT"
223
+ },
224
+ {
225
+ "id": "lst71avf-CI-0",
226
+ "type": "ROW",
227
+ "control": {
228
+ "type": "VTL",
229
+ "value": "not(nvl($TAB13$,0) > 0 and nvl($TAB12$,0) > 0 and nvl($TAB13$,0) > nvl($TAB12$,0))"
230
+ },
231
+ "criticality": "WARN",
232
+ "errorMessage": {
233
+ "type": "VTL|MD",
234
+ "value": "\"Le CA export doit être inférieur au CA\""
235
+ },
236
+ "typeOfControl": "CONSISTENCY"
237
+ }
238
+ ],
239
+ "decimals": 0,
240
+ "response": {
241
+ "name": "NBHAB"
242
+ },
243
+ "description": {
244
+ "type": "TXT",
245
+ "value": "Format attendu : un nombre entre 1 et 10"
246
+ },
247
+ "isMandatory": false,
248
+ "componentType": "InputNumber"
249
+ }
250
+ ],
251
+ "componentType": "Question",
252
+ "conditionFilter": {
253
+ "type": "VTL",
254
+ "value": "true"
255
+ }
256
+ },
257
+ {
258
+ "id": "lyoigdda",
259
+ "page": "3",
260
+ "depth": 1,
261
+ "lines": {
262
+ "max": {
263
+ "type": "VTL",
264
+ "value": "nvl(NBHAB,1)"
265
+ },
266
+ "min": {
267
+ "type": "VTL",
268
+ "value": "nvl(NBHAB,1)"
269
+ }
270
+ },
271
+ "components": [
272
+ {
273
+ "id": "lt72wmbk",
274
+ "page": "3",
275
+ "label": {
276
+ "type": "VTL|MD",
277
+ "value": "\"Lister les prénoms\""
278
+ },
279
+ "description": {
280
+ "type": "VTL|MD",
281
+ "value": "\"On n'interrogera pas les prénoms AA\""
282
+ },
283
+ "componentType": "Subsequence",
284
+ "conditionFilter": {
285
+ "type": "VTL",
286
+ "value": "true"
287
+ }
288
+ },
289
+ {
290
+ "id": "question-lt72y80j",
291
+ "page": "3",
292
+ "label": {
293
+ "type": "VTL|MD",
294
+ "value": "\"Prénom de l'individu \" || cast(GLOBAL_ITERATION_INDEX,string) || \" qui habite à \" || ADR "
295
+ },
296
+ "components": [
297
+ {
298
+ "id": "lt72y80j",
299
+ "page": "3",
300
+ "response": {
301
+ "name": "PRENOM"
302
+ },
303
+ "maxLength": 249,
304
+ "isMandatory": false,
305
+ "componentType": "Input"
306
+ }
307
+ ],
308
+ "componentType": "Question",
309
+ "conditionFilter": {
310
+ "type": "VTL",
311
+ "value": "true"
312
+ }
313
+ }
314
+ ],
315
+ "iterations": {
316
+ "type": "VTL",
317
+ "value": "count(PRENOM)"
318
+ },
319
+ "componentType": "Loop",
320
+ "paginatedLoop": false,
321
+ "conditionFilter": {
322
+ "type": "VTL",
323
+ "value": "true"
324
+ },
325
+ "loopDependencies": ["NBHAB", "PRENOM"]
326
+ },
327
+ {
328
+ "id": "lypxwut2",
329
+ "item": {
330
+ "label": {
331
+ "type": "VTL|MD",
332
+ "value": "PRENOM || \", qui est l'individu n°\" || cast(GLOBAL_ITERATION_INDEX,string) || \" \" "
333
+ },
334
+ "disabled": {
335
+ "type": "VTL",
336
+ "value": "not(not(PRENOM = \"Paul\"))"
337
+ },
338
+ "description": {
339
+ "type": "VTL|MD",
340
+ "value": "if PRENOM=\"Paul\" then \"Individu non interrogé car s'appelle Paul\" else \"\" "
341
+ }
342
+ },
343
+ "page": "4",
344
+ "label": {
345
+ "type": "VTL|MD",
346
+ "value": "\"Test de rond point\""
347
+ },
348
+ "locked": false,
349
+ "controls": [
350
+ {
351
+ "id": "lypxwut2-CI-3",
352
+ "type": "ROW",
353
+ "control": {
354
+ "type": "VTL",
355
+ "value": "not(AGE = \"null\")"
356
+ },
357
+ "criticality": "WARN",
358
+ "errorMessage": {
359
+ "type": "VTL|MD",
360
+ "value": "\"Vous n'avez pas renseigné l'âge de \" || PRENOM || \".\" "
361
+ },
362
+ "typeOfControl": "CONSISTENCY"
363
+ },
364
+ {
365
+ "id": "lypxwut2-CI-1",
366
+ "type": "SIMPLE",
367
+ "control": {
368
+ "type": "VTL",
369
+ "value": "not(5 in AGE_N)"
370
+ },
371
+ "criticality": "WARN",
372
+ "errorMessage": {
373
+ "type": "VTL|MD",
374
+ "value": "\"quelqu'un a 5 ans !!!\""
375
+ },
376
+ "typeOfControl": "CONSISTENCY"
377
+ },
378
+ {
379
+ "id": "lypxwut2-CI-2",
380
+ "type": "SIMPLE",
381
+ "control": {
382
+ "type": "VTL",
383
+ "value": "not(SUM_AGE > 20)"
384
+ },
385
+ "criticality": "WARN",
386
+ "errorMessage": {
387
+ "type": "VTL|MD",
388
+ "value": "\"la somme des ages des individus est supérieure à 20 ans.\""
389
+ },
390
+ "typeOfControl": "CONSISTENCY"
391
+ },
392
+ {
393
+ "id": "lypxwut2-CI-0",
394
+ "type": "ROW",
395
+ "control": {
396
+ "type": "VTL",
397
+ "value": "not(AGE_N > 35)"
398
+ },
399
+ "criticality": "WARN",
400
+ "errorMessage": {
401
+ "type": "VTL|MD",
402
+ "value": "\"L'individu \" || PRENOM || \" a plus de 35 ans.\" "
403
+ },
404
+ "typeOfControl": "CONSISTENCY"
405
+ }
406
+ ],
407
+ "components": [
408
+ {
409
+ "id": "lyoiu1hr",
410
+ "page": "4.1",
411
+ "label": {
412
+ "type": "VTL",
413
+ "value": "\"II - \" || \"S2 \" || PRENOM "
414
+ },
415
+ "componentType": "Sequence",
416
+ "conditionFilter": {
417
+ "type": "VTL",
418
+ "value": "true"
419
+ }
420
+ },
421
+ {
422
+ "id": "question-lyoir96l",
423
+ "page": "4.2",
424
+ "label": {
425
+ "type": "VTL|MD",
426
+ "value": "\"Age de \" || nvl(PRENOM,\"cet individu sans prénom\") "
427
+ },
428
+ "components": [
429
+ {
430
+ "id": "lyoir96l",
431
+ "max": 99,
432
+ "min": 1,
433
+ "page": "4.2",
434
+ "controls": [
435
+ {
436
+ "id": "lyoir96l-mandatory-check",
437
+ "type": "SIMPLE",
438
+ "control": {
439
+ "type": "VTL",
440
+ "value": "not(isnull(AGE))"
441
+ },
442
+ "criticality": "ERROR",
443
+ "errorMessage": {
444
+ "type": "TXT",
445
+ "value": "La réponse à cette question est obligatoire."
446
+ },
447
+ "typeOfControl": "MANDATORY"
448
+ },
449
+ {
450
+ "id": "lyoir96l-format-borne-inf-sup",
451
+ "type": "SIMPLE",
452
+ "control": {
453
+ "type": "VTL",
454
+ "value": "not(not(isnull(AGE)) and (1>AGE or 99<AGE))"
455
+ },
456
+ "criticality": "ERROR",
457
+ "errorMessage": {
458
+ "type": "VTL|MD",
459
+ "value": "\" La valeur doit être comprise entre 1 et 99\""
460
+ },
461
+ "typeOfControl": "FORMAT"
462
+ },
463
+ {
464
+ "id": "lyoir96l-format-decimal",
465
+ "type": "SIMPLE",
466
+ "control": {
467
+ "type": "VTL",
468
+ "value": "not(not(isnull(AGE)) and round(AGE,0)<>AGE)"
469
+ },
470
+ "criticality": "ERROR",
471
+ "errorMessage": {
472
+ "type": "VTL|MD",
473
+ "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule\""
474
+ },
475
+ "typeOfControl": "FORMAT"
476
+ }
477
+ ],
478
+ "decimals": 0,
479
+ "response": {
480
+ "name": "AGE"
481
+ },
482
+ "description": {
483
+ "type": "TXT",
484
+ "value": "Format attendu : un nombre entre 1 et 99"
485
+ },
486
+ "isMandatory": true,
487
+ "componentType": "InputNumber"
488
+ }
489
+ ],
490
+ "componentType": "Question",
491
+ "conditionFilter": {
492
+ "type": "VTL",
493
+ "value": "true"
494
+ }
495
+ },
496
+ {
497
+ "id": "question-mcd3qlyd",
498
+ "page": "4.3",
499
+ "label": {
500
+ "type": "VTL|MD",
501
+ "value": "\"question avec contrôle non bloquant\""
502
+ },
503
+ "components": [
504
+ {
505
+ "id": "mcd3qlyd",
506
+ "page": "4.3",
507
+ "controls": [
508
+ {
509
+ "id": "mcd3qlyd-CI-0",
510
+ "type": "SIMPLE",
511
+ "control": {
512
+ "type": "VTL",
513
+ "value": "not(true)"
514
+ },
515
+ "criticality": "WARN",
516
+ "errorMessage": {
517
+ "type": "VTL|MD",
518
+ "value": "\"contrôle non bloquant\""
519
+ },
520
+ "typeOfControl": "CONSISTENCY"
521
+ }
522
+ ],
523
+ "response": {
524
+ "name": "QUESTIONAV"
525
+ },
526
+ "maxLength": 249,
527
+ "isMandatory": false,
528
+ "componentType": "Input"
529
+ }
530
+ ],
531
+ "componentType": "Question",
532
+ "conditionFilter": {
533
+ "type": "VTL",
534
+ "value": "true"
535
+ }
536
+ }
537
+ ],
538
+ "iterations": {
539
+ "type": "VTL",
540
+ "value": "count(PRENOM)"
541
+ },
542
+ "description": {
543
+ "type": "VTL|MD",
544
+ "value": "\"On n'interroge pas les prénoms A\""
545
+ },
546
+ "componentType": "Roundabout",
547
+ "conditionFilter": {
548
+ "type": "VTL",
549
+ "value": "true"
550
+ },
551
+ "progressVariable": "BOUCLE1_PROGRESS"
552
+ },
553
+ {
554
+ "id": "m4qtvjda",
555
+ "page": "5",
556
+ "label": {
557
+ "type": "VTL",
558
+ "value": "\"III - \" || \"FIN\""
559
+ },
560
+ "componentType": "Sequence",
561
+ "conditionFilter": {
562
+ "type": "VTL",
563
+ "value": "true"
564
+ }
565
+ },
566
+ {
567
+ "id": "question-m4qtkzve",
568
+ "page": "6",
569
+ "label": {
570
+ "type": "VTL|MD",
571
+ "value": "\"test Controle - \" || cast(SUM_AGE,string) "
572
+ },
573
+ "components": [
574
+ {
575
+ "id": "m4qtkzve",
576
+ "page": "6",
577
+ "controls": [
578
+ {
579
+ "id": "m4qtkzve-CI-0",
580
+ "type": "SIMPLE",
581
+ "control": {
582
+ "type": "VTL",
583
+ "value": "not(sum(AGE) > 10)"
584
+ },
585
+ "criticality": "WARN",
586
+ "errorMessage": {
587
+ "type": "VTL|MD",
588
+ "value": "\"la somme des ages des individus est supérieure à 10 ans.\""
589
+ },
590
+ "typeOfControl": "CONSISTENCY"
591
+ }
592
+ ],
593
+ "response": {
594
+ "name": "TESTCONTRO"
595
+ },
596
+ "maxLength": 249,
597
+ "isMandatory": false,
598
+ "componentType": "Input"
599
+ }
600
+ ],
601
+ "componentType": "Question",
602
+ "conditionFilter": {
603
+ "type": "VTL",
604
+ "value": "true"
605
+ }
606
+ }
607
+ ],
608
+ "pagination": "question",
609
+ "componentType": "Questionnaire",
610
+ "enoCoreVersion": "3.52.1",
611
+ "generatingDate": "26-06-2025 08:45:40",
612
+ "lunaticModelVersion": "5.5.0"
613
+ }