@inseefr/lunatic 2.4.4 → 2.4.5-mvp-eap

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 (77) hide show
  1. package/lib/components/commons/components/combo-box/combo-box-content.js +2 -5
  2. package/lib/components/commons/components/combo-box/combo-box.js +16 -16
  3. package/lib/components/commons/components/combo-box/panel/panel.js +2 -4
  4. package/lib/components/commons/components/combo-box/state-management/reduce-on-init.js +4 -1
  5. package/lib/components/commons/components/orchestrated-component.js +2 -0
  6. package/lib/components/commons/create-row-orchestrator.js +2 -2
  7. package/lib/components/dropdown/lunatic-dropdown.js +1 -0
  8. package/lib/components/input-number/html/__snapshots__/input-number.spec.tsx.snap +4 -4
  9. package/lib/components/input-number/html/input-number-thousand.js +21 -8
  10. package/lib/components/input-number/html/input-number.js +4 -24
  11. package/lib/components/input-number/html/input-number.scss +1 -1
  12. package/lib/components/input-number/html/input-number.spec.js +21 -27
  13. package/lib/components/input-number/lunatic-input-number.js +2 -0
  14. package/lib/components/loop/loop.js +6 -4
  15. package/lib/components/loop/roster-for-loop/roster-for-loop-orchestrator.js +1 -0
  16. package/lib/components/loop/roster-for-loop/roster-for-loop.js +45 -33
  17. package/lib/components/loop/roster-for-loop/roster-table.js +22 -18
  18. package/lib/components/loop/roster-for-loop/roster.scss +30 -37
  19. package/lib/components/loop/roster-for-loop/row.js +84 -31
  20. package/lib/components/pairwise-links/pairwise-links.js +2 -4
  21. package/lib/components/pairwise-links/row.js +1 -0
  22. package/lib/components/suggester/html/suggester.js +31 -12
  23. package/lib/components/suggester/idb-suggester/idb-suggester.js +10 -7
  24. package/lib/components/suggester/lunatic-suggester.js +31 -4
  25. package/lib/hooks/use-did-change.js +19 -0
  26. package/lib/src/components/commons/components/combo-box/combo-box.d.ts +4 -4
  27. package/lib/src/components/commons/components/combo-box/combo-box.stories.d.ts +2 -2
  28. package/lib/src/components/commons/components/combo-box/panel/panel.d.ts +1 -1
  29. package/lib/src/components/commons/components/combo-box/state-management/actions.d.ts +4 -4
  30. package/lib/src/components/commons/components/orchestrated-component.d.ts +3 -3
  31. package/lib/src/components/commons/create-row-orchestrator.d.ts +4 -3
  32. package/lib/src/components/dropdown/html/dropdown-writable/dropdown-writable.d.ts +1 -1
  33. package/lib/src/components/dropdown/html/dropdown.d.ts +2 -1
  34. package/lib/src/components/input-number/html/input-number-thousand.d.ts +1 -1
  35. package/lib/src/components/input-number/html/input-number.d.ts +2 -1
  36. package/lib/src/components/loop/block-for-loop/block-for-loop-ochestrator.d.ts +11 -3
  37. package/lib/src/components/loop/block-for-loop/block-for-loop.d.ts +5 -1
  38. package/lib/src/components/loop/roster-for-loop/roster-for-loop-orchestrator.d.ts +11 -3
  39. package/lib/src/components/loop/roster-for-loop/roster-for-loop.d.ts +8 -4
  40. package/lib/src/components/loop/roster-for-loop/roster-table.d.ts +3 -3
  41. package/lib/src/components/loop/roster-for-loop/row.d.ts +3 -2
  42. package/lib/src/components/suggester/html/suggester.d.ts +6 -4
  43. package/lib/src/components/suggester/idb-suggester/idb-suggester.d.ts +4 -3
  44. package/lib/src/components/suggester/lunatic-suggester.d.ts +1 -1
  45. package/lib/src/components/type.d.ts +25 -5
  46. package/lib/src/hooks/use-did-change.d.ts +4 -0
  47. package/lib/src/use-lunatic/commons/fill-components/fill-from-state.d.ts +61 -16
  48. package/lib/src/use-lunatic/commons/fill-components/fill-specific-expression.d.ts +36 -0
  49. package/lib/src/use-lunatic/reducer/commons/is-loop-component.d.ts +2 -2
  50. package/lib/src/use-lunatic/reducer/overview/overview-on-init.d.ts +1 -1
  51. package/lib/src/use-lunatic/reducer/reduce-update-state.d.ts +106 -1
  52. package/lib/src/use-lunatic/replace-component-sequence.d.ts +1 -1
  53. package/lib/src/use-lunatic/type-source.d.ts +11 -1
  54. package/lib/src/use-lunatic/type.d.ts +1 -1
  55. package/lib/stories/input-number/input-number.stories.js +9 -2
  56. package/lib/stories/input-number/source-dynamic.json +41 -0
  57. package/lib/stories/loop/block-for-loop.stories.js +1 -8
  58. package/lib/stories/loop/roster-for-loop.stories.js +8 -1
  59. package/lib/stories/loop/source-with-header.json +15 -3
  60. package/lib/stories/questionnaires/EAP/data-eap.json +46 -0
  61. package/lib/stories/questionnaires/EAP/eap.stories.js +71 -0
  62. package/lib/stories/questionnaires/EAP/source-eap.json +433 -0
  63. package/lib/stories/suggester/multipleResponses.json +100 -0
  64. package/lib/stories/suggester/suggester-workers.stories.js +1 -1
  65. package/lib/stories/suggester/suggester.stories.js +18 -6
  66. package/lib/use-lunatic/commons/fill-components/fill-component-expressions.js +1 -1
  67. package/lib/use-lunatic/commons/get-component-value/get-component-value.js +8 -0
  68. package/lib/use-lunatic/initial-state.js +1 -0
  69. package/lib/use-lunatic/reducer/reducer.js +1 -0
  70. package/package.json +1 -1
  71. package/lib/components/input-number/html/__snapshots__/inpute-number.spec.jsx.snap +0 -92
  72. package/lib/components/input-number/html/input-number-default.js +0 -57
  73. package/lib/components/loop/roster-for-loop/body.js +0 -52
  74. package/lib/components/loop/roster-for-loop/header.js +0 -34
  75. package/lib/src/components/input-number/html/input-number-default.d.ts +0 -13
  76. package/lib/src/components/loop/roster-for-loop/body.d.ts +0 -12
  77. package/lib/src/components/loop/roster-for-loop/header.d.ts +0 -9
@@ -27,7 +27,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
27
27
  } | undefined;
28
28
  }) => void;
29
29
  shortcut: boolean | undefined;
30
- getSuggesterStatus: (name: string) => {
30
+ getSuggesterStatus: (name: string | undefined) => {
31
31
  status: import("../../use-suggesters").SuggesterStatus;
32
32
  timestamp: number;
33
33
  };
@@ -64,7 +64,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
64
64
  } | undefined;
65
65
  }) => void;
66
66
  shortcut: boolean | undefined;
67
- getSuggesterStatus: (name: string) => {
67
+ getSuggesterStatus: (name: string | undefined) => {
68
68
  status: import("../../use-suggesters").SuggesterStatus;
69
69
  timestamp: number;
70
70
  };
@@ -102,7 +102,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
102
102
  } | undefined;
103
103
  }) => void;
104
104
  shortcut: boolean | undefined;
105
- getSuggesterStatus: (name: string) => {
105
+ getSuggesterStatus: (name: string | undefined) => {
106
106
  status: import("../../use-suggesters").SuggesterStatus;
107
107
  timestamp: number;
108
108
  };
@@ -139,6 +139,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
139
139
  format?: string | undefined;
140
140
  dateFormat?: string | undefined;
141
141
  unit?: string | undefined;
142
+ dynamicUnit?: import("../../type-source").LabelType | undefined;
142
143
  options: {
143
144
  value: string;
144
145
  label: import("../../type-source").LabelType;
@@ -176,7 +177,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
176
177
  } | undefined;
177
178
  }) => void;
178
179
  shortcut: boolean | undefined;
179
- getSuggesterStatus: (name: string) => {
180
+ getSuggesterStatus: (name: string | undefined) => {
180
181
  status: import("../../use-suggesters").SuggesterStatus;
181
182
  timestamp: number;
182
183
  };
@@ -223,7 +224,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
223
224
  } | undefined;
224
225
  }) => void;
225
226
  shortcut: boolean | undefined;
226
- getSuggesterStatus: (name: string) => {
227
+ getSuggesterStatus: (name: string | undefined) => {
227
228
  status: import("../../use-suggesters").SuggesterStatus;
228
229
  timestamp: number;
229
230
  };
@@ -259,6 +260,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
259
260
  format?: string | undefined;
260
261
  dateFormat?: string | undefined;
261
262
  unit?: string | undefined;
263
+ dynamicUnit?: import("../../type-source").LabelType | undefined;
262
264
  options: {
263
265
  value: string;
264
266
  label: import("../../type-source").LabelType;
@@ -296,7 +298,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
296
298
  } | undefined;
297
299
  }) => void;
298
300
  shortcut: boolean | undefined;
299
- getSuggesterStatus: (name: string) => {
301
+ getSuggesterStatus: (name: string | undefined) => {
300
302
  status: import("../../use-suggesters").SuggesterStatus;
301
303
  timestamp: number;
302
304
  };
@@ -313,6 +315,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
313
315
  page: string;
314
316
  componentType: "InputNumber";
315
317
  unit: string;
318
+ dynamicUnit?: import("../../type-source").LabelType | undefined;
316
319
  response: import("../../type-source").ResponseType;
317
320
  min?: number | undefined;
318
321
  max?: number | undefined;
@@ -338,7 +341,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
338
341
  } | undefined;
339
342
  }) => void;
340
343
  shortcut: boolean | undefined;
341
- getSuggesterStatus: (name: string) => {
344
+ getSuggesterStatus: (name: string | undefined) => {
342
345
  status: import("../../use-suggesters").SuggesterStatus;
343
346
  timestamp: number;
344
347
  };
@@ -379,7 +382,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
379
382
  } | undefined;
380
383
  }) => void;
381
384
  shortcut: boolean | undefined;
382
- getSuggesterStatus: (name: string) => {
385
+ getSuggesterStatus: (name: string | undefined) => {
383
386
  status: import("../../use-suggesters").SuggesterStatus;
384
387
  timestamp: number;
385
388
  };
@@ -421,7 +424,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
421
424
  } | undefined;
422
425
  }) => void;
423
426
  shortcut: boolean | undefined;
424
- getSuggesterStatus: (name: string) => {
427
+ getSuggesterStatus: (name: string | undefined) => {
425
428
  status: import("../../use-suggesters").SuggesterStatus;
426
429
  timestamp: number;
427
430
  };
@@ -459,7 +462,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
459
462
  } | undefined;
460
463
  }) => void;
461
464
  shortcut: boolean | undefined;
462
- getSuggesterStatus: (name: string) => {
465
+ getSuggesterStatus: (name: string | undefined) => {
463
466
  status: import("../../use-suggesters").SuggesterStatus;
464
467
  timestamp: number;
465
468
  };
@@ -501,7 +504,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
501
504
  } | undefined;
502
505
  }) => void;
503
506
  shortcut: boolean | undefined;
504
- getSuggesterStatus: (name: string) => {
507
+ getSuggesterStatus: (name: string | undefined) => {
505
508
  status: import("../../use-suggesters").SuggesterStatus;
506
509
  timestamp: number;
507
510
  };
@@ -539,7 +542,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
539
542
  } | undefined;
540
543
  }) => void;
541
544
  shortcut: boolean | undefined;
542
- getSuggesterStatus: (name: string) => {
545
+ getSuggesterStatus: (name: string | undefined) => {
543
546
  status: import("../../use-suggesters").SuggesterStatus;
544
547
  timestamp: number;
545
548
  };
@@ -581,7 +584,49 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
581
584
  } | undefined;
582
585
  }) => void;
583
586
  shortcut: boolean | undefined;
584
- getSuggesterStatus: (name: string) => {
587
+ getSuggesterStatus: (name: string | undefined) => {
588
+ status: import("../../use-suggesters").SuggesterStatus;
589
+ timestamp: number;
590
+ };
591
+ label: import("../../type-source").LabelType;
592
+ declarations: import("../../type-source").DeclarationType[];
593
+ conditionFilter: import("../../type-source").ConditionFilterType;
594
+ controls?: import("../../type-source").ControlType[] | undefined;
595
+ id: string;
596
+ storeName: string;
597
+ bindingDependencies: string[];
598
+ hierarchy: import("../../type-source").Hierarchy;
599
+ missingResponse: import("../../type-source").ResponseType;
600
+ mandatory?: boolean | undefined;
601
+ page: string;
602
+ componentType: "Suggester";
603
+ response?: import("../../type-source").ResponseType | undefined;
604
+ responses?: {
605
+ id: string;
606
+ response: import("../../type-source").ResponseType;
607
+ }[] | undefined;
608
+ } | {
609
+ handleChange: (response: {
610
+ name: string;
611
+ }, value: any, args?: Record<string, unknown> | undefined) => void;
612
+ executeExpression: <T extends unknown = unknown>(expression: unknown, args?: {
613
+ iteration?: number | undefined;
614
+ linksIterations?: number[] | undefined;
615
+ logging?: import("../execute-expression/create-execute-expression").ExpressionLogger | undefined;
616
+ bindingDependencies?: string[] | undefined;
617
+ } | undefined) => T;
618
+ preferences: ["COLLECTED"];
619
+ goToPage: (page: {
620
+ page: string;
621
+ iteration?: number | undefined;
622
+ nbIterations?: number | undefined;
623
+ subPage?: number | undefined;
624
+ roundabout?: {
625
+ page: string;
626
+ } | undefined;
627
+ }) => void;
628
+ shortcut: boolean | undefined;
629
+ getSuggesterStatus: (name: string | undefined) => {
585
630
  status: import("../../use-suggesters").SuggesterStatus;
586
631
  timestamp: number;
587
632
  };
@@ -623,7 +668,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
623
668
  } | undefined;
624
669
  }) => void;
625
670
  shortcut: boolean | undefined;
626
- getSuggesterStatus: (name: string) => {
671
+ getSuggesterStatus: (name: string | undefined) => {
627
672
  status: import("../../use-suggesters").SuggesterStatus;
628
673
  timestamp: number;
629
674
  };
@@ -664,7 +709,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
664
709
  } | undefined;
665
710
  }) => void;
666
711
  shortcut: boolean | undefined;
667
- getSuggesterStatus: (name: string) => {
712
+ getSuggesterStatus: (name: string | undefined) => {
668
713
  status: import("../../use-suggesters").SuggesterStatus;
669
714
  timestamp: number;
670
715
  };
@@ -701,7 +746,7 @@ declare function fillFromState(component: LunaticComponentDefinition, state: Lun
701
746
  } | undefined;
702
747
  }) => void;
703
748
  shortcut: boolean | undefined;
704
- getSuggesterStatus: (name: string) => {
749
+ getSuggesterStatus: (name: string | undefined) => {
705
750
  status: import("../../use-suggesters").SuggesterStatus;
706
751
  timestamp: number;
707
752
  };
@@ -101,6 +101,7 @@ declare function fillSpecificExpressions(component: DeepTranslateExpression<Luna
101
101
  format?: string | undefined;
102
102
  dateFormat?: string | undefined;
103
103
  unit?: string | undefined;
104
+ dynamicUnit?: import("../../type-source").LabelType | undefined;
104
105
  options: {
105
106
  value: string;
106
107
  label: import("../../type-source").LabelType;
@@ -199,6 +200,7 @@ declare function fillSpecificExpressions(component: DeepTranslateExpression<Luna
199
200
  format?: string | undefined;
200
201
  dateFormat?: string | undefined;
201
202
  unit?: string | undefined;
203
+ dynamicUnit?: import("../../type-source").LabelType | undefined;
202
204
  options: {
203
205
  value: string;
204
206
  label: import("../../type-source").LabelType;
@@ -242,6 +244,7 @@ declare function fillSpecificExpressions(component: DeepTranslateExpression<Luna
242
244
  page: string;
243
245
  componentType: "InputNumber";
244
246
  unit: string;
247
+ dynamicUnit?: import("react").ReactNode;
245
248
  response: {
246
249
  name: string;
247
250
  };
@@ -433,6 +436,39 @@ declare function fillSpecificExpressions(component: DeepTranslateExpression<Luna
433
436
  response: {
434
437
  name: string;
435
438
  };
439
+ } | {
440
+ label: import("react").ReactNode;
441
+ declarations: import("../../type-source").DeclarationType[];
442
+ conditionFilter: import("react").ReactNode;
443
+ controls?: import("../../type-source").ControlType[] | undefined;
444
+ id: string;
445
+ storeName: string;
446
+ bindingDependencies: string[];
447
+ hierarchy: {
448
+ sequence: {
449
+ label: import("react").ReactNode;
450
+ id: string;
451
+ page: string;
452
+ };
453
+ subSequence?: {
454
+ label: import("react").ReactNode;
455
+ id: string;
456
+ page: string;
457
+ } | undefined;
458
+ };
459
+ missingResponse: {
460
+ name: string;
461
+ };
462
+ mandatory?: boolean | undefined;
463
+ page: string;
464
+ componentType: "Suggester";
465
+ response?: {
466
+ name: string;
467
+ } | undefined;
468
+ responses?: {
469
+ id: string;
470
+ response: import("../../type-source").ResponseType;
471
+ }[] | undefined;
436
472
  } | {
437
473
  label: import("react").ReactNode;
438
474
  declarations: import("../../type-source").DeclarationType[];
@@ -1,10 +1,10 @@
1
1
  import { LunaticComponentDefinition } from '../../type';
2
2
  export declare const isLoopComponent: (component: LunaticComponentDefinition) => component is (import("../../type-source").ComponentTypeBase & import("../../type-source").ComponentRosterForLoopType & {
3
- componentType: "Sequence" | "Subsequence" | "RosterForLoop" | "Loop" | "Table" | "Input" | "InputNumber" | "Datepicker" | "CheckboxGroup" | "CheckboxOne" | "CheckboxBoolean" | "Radio" | "Dropdown" | "Textarea" | "FilterDescription" | "PairwiseLinks" | "ComponentSet" | "Roundabout";
3
+ componentType: "Sequence" | "Subsequence" | "RosterForLoop" | "Loop" | "Table" | "Input" | "InputNumber" | "Datepicker" | "CheckboxGroup" | "CheckboxOne" | "CheckboxBoolean" | "Radio" | "Dropdown" | "Textarea" | "FilterDescription" | "PairwiseLinks" | "Suggester" | "ComponentSet" | "Roundabout";
4
4
  } & {
5
5
  componentType: 'Loop' | 'RosterForLoop';
6
6
  }) | (import("../../type-source").ComponentTypeBase & import("../../type-source").ComponentLoopType & {
7
- componentType: "Sequence" | "Subsequence" | "RosterForLoop" | "Loop" | "Table" | "Input" | "InputNumber" | "Datepicker" | "CheckboxGroup" | "CheckboxOne" | "CheckboxBoolean" | "Radio" | "Dropdown" | "Textarea" | "FilterDescription" | "PairwiseLinks" | "ComponentSet" | "Roundabout";
7
+ componentType: "Sequence" | "Subsequence" | "RosterForLoop" | "Loop" | "Table" | "Input" | "InputNumber" | "Datepicker" | "CheckboxGroup" | "CheckboxOne" | "CheckboxBoolean" | "Radio" | "Dropdown" | "Textarea" | "FilterDescription" | "PairwiseLinks" | "Suggester" | "ComponentSet" | "Roundabout";
8
8
  } & {
9
9
  componentType: 'Loop' | 'RosterForLoop';
10
10
  });
@@ -101,7 +101,7 @@ export declare function reduceOverviewOnInit(state: LunaticState, action: Action
101
101
  page: string;
102
102
  } | undefined;
103
103
  }) => void;
104
- getSuggesterStatus: (name: string) => {
104
+ getSuggesterStatus: (name: string | undefined) => {
105
105
  status: import("../../use-suggesters").SuggesterStatus;
106
106
  timestamp: number;
107
107
  };
@@ -1,3 +1,108 @@
1
1
  import { ActionUpdateState } from '../actions';
2
2
  import { LunaticState } from '../type';
3
- export declare function reduceUpdateState(state: LunaticState, action: ActionUpdateState): LunaticState;
3
+ export declare function reduceUpdateState(state: LunaticState, action: ActionUpdateState): {
4
+ getSuggesterStatus: (name: string) => {
5
+ status: import("../use-suggesters").SuggesterStatus;
6
+ timestamp: number;
7
+ };
8
+ variables: {
9
+ [variableName: string]: import("../type").LunaticStateVariable;
10
+ };
11
+ pages: {
12
+ [key: string]: {
13
+ components: import("../type-source").ComponentType[];
14
+ isLoop: false;
15
+ iterations?: undefined;
16
+ loopDependencies?: undefined;
17
+ subPages?: undefined;
18
+ } | {
19
+ components: import("../type-source").ComponentType[];
20
+ isLoop: true;
21
+ iterations: import("../type").ExpressionType;
22
+ loopDependencies: string[];
23
+ subPages: string[];
24
+ };
25
+ [key: number]: {
26
+ components: import("../type-source").ComponentType[];
27
+ isLoop: false;
28
+ iterations?: undefined;
29
+ loopDependencies?: undefined;
30
+ subPages?: undefined;
31
+ } | {
32
+ components: import("../type-source").ComponentType[];
33
+ isLoop: true;
34
+ iterations: import("../type").ExpressionType;
35
+ loopDependencies: string[];
36
+ subPages: string[];
37
+ };
38
+ };
39
+ isInLoop: boolean;
40
+ isFirstPage: boolean;
41
+ isLastPage: boolean;
42
+ features: "VTL"[];
43
+ preferences: ["COLLECTED"];
44
+ savingType: "COLLECTED";
45
+ cleaning: {
46
+ [variableName: string]: {
47
+ [variableName: string]: string;
48
+ };
49
+ };
50
+ missingBlock: {
51
+ [variable: string]: string[];
52
+ };
53
+ resizing: {
54
+ [variable: string]: {
55
+ size: string;
56
+ variables: string[];
57
+ sizeForLinksVariables?: unknown;
58
+ linksVariables?: string[] | undefined;
59
+ };
60
+ };
61
+ overview: import("../type").LunaticOverviewItem[];
62
+ pager: {
63
+ lastReachedPage?: string | undefined;
64
+ maxPage: string;
65
+ nbSubPages?: number | undefined;
66
+ page: string;
67
+ subPage?: number | undefined;
68
+ iteration?: number | undefined;
69
+ nbIterations?: number | undefined;
70
+ shallowIteration?: number | undefined;
71
+ linksIterations?: number[] | undefined;
72
+ roundabout?: {
73
+ page: string;
74
+ } | undefined;
75
+ };
76
+ waiting: boolean;
77
+ errors?: {
78
+ [page: string]: {
79
+ [id: string]: import("../type").LunaticError[];
80
+ };
81
+ } | undefined;
82
+ currentErrors?: {
83
+ [id: string]: import("../type").LunaticError[];
84
+ } | undefined;
85
+ modalErrors?: Record<string, import("../type").LunaticError[]> | undefined;
86
+ handleChange: (response: {
87
+ name: string;
88
+ }, value: any, args?: Record<string, unknown> | undefined) => void;
89
+ executeExpression: <T extends unknown = unknown>(expression: unknown, args?: {
90
+ iteration?: number | undefined;
91
+ linksIterations?: number[] | undefined;
92
+ logging?: import("../commons/execute-expression/create-execute-expression").ExpressionLogger | undefined;
93
+ bindingDependencies?: string[] | undefined;
94
+ } | undefined) => T;
95
+ updateBindings: (variableName: string, value: unknown) => unknown;
96
+ activeControls: boolean;
97
+ shortcut?: boolean | undefined;
98
+ management?: boolean | undefined;
99
+ goToPage: (page: {
100
+ page: string;
101
+ iteration?: number | undefined;
102
+ nbIterations?: number | undefined;
103
+ subPage?: number | undefined;
104
+ roundabout?: {
105
+ page: string;
106
+ } | undefined;
107
+ }) => void;
108
+ };
@@ -6,6 +6,6 @@ import { LunaticComponentDefinition } from './type';
6
6
  * des composant à part entière.
7
7
  * D'autres composant pourraient un jour figurer ici.
8
8
  */
9
- export declare function replaceComponentSequence(components: Array<LunaticComponentDefinition>): ((import("./type-source").ComponentTypeBase & import("./type-source").ComponentSequenceType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentSubSequenceType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentRosterForLoopType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentLoopType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentTableType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentNumberType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentDatePickerType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentCheckboxGroupType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentCheckboxBooleanType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentRadioType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentFilterDescriptionType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentDropdownType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentPairWiseLinksType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentRoundaboutType) | (import("./type-source").ComponentTypeBase & {
9
+ export declare function replaceComponentSequence(components: Array<LunaticComponentDefinition>): ((import("./type-source").ComponentTypeBase & import("./type-source").ComponentSequenceType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentSubSequenceType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentRosterForLoopType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentLoopType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentTableType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentNumberType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentDatePickerType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentCheckboxGroupType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentCheckboxBooleanType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentRadioType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentFilterDescriptionType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentDropdownType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentSuggesterType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentPairWiseLinksType) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentRoundaboutType) | (import("./type-source").ComponentTypeBase & {
10
10
  componentType: "Input" | "CheckboxOne" | "Textarea";
11
11
  }) | (import("./type-source").ComponentTypeBase & import("./type-source").ComponentComponentSet))[];
@@ -79,7 +79,7 @@ export type ComponentTypeBase = {
79
79
  mandatory?: boolean;
80
80
  page: string;
81
81
  };
82
- export type ComponentType = (ComponentTypeBase & ComponentSequenceType) | (ComponentTypeBase & ComponentSubSequenceType) | (ComponentTypeBase & ComponentRosterForLoopType) | (ComponentTypeBase & ComponentLoopType) | (ComponentTypeBase & ComponentTableType) | (ComponentTypeBase & ComponentNumberType) | (ComponentTypeBase & ComponentDatePickerType) | (ComponentTypeBase & ComponentCheckboxGroupType) | (ComponentTypeBase & ComponentCheckboxBooleanType) | (ComponentTypeBase & ComponentRadioType) | (ComponentTypeBase & ComponentFilterDescriptionType) | (ComponentTypeBase & ComponentDropdownType) | (ComponentTypeBase & ComponentPairWiseLinksType) | (ComponentTypeBase & ComponentRoundaboutType) | (ComponentTypeBase & {
82
+ export type ComponentType = (ComponentTypeBase & ComponentSequenceType) | (ComponentTypeBase & ComponentSubSequenceType) | (ComponentTypeBase & ComponentRosterForLoopType) | (ComponentTypeBase & ComponentLoopType) | (ComponentTypeBase & ComponentTableType) | (ComponentTypeBase & ComponentNumberType) | (ComponentTypeBase & ComponentDatePickerType) | (ComponentTypeBase & ComponentCheckboxGroupType) | (ComponentTypeBase & ComponentCheckboxBooleanType) | (ComponentTypeBase & ComponentRadioType) | (ComponentTypeBase & ComponentFilterDescriptionType) | (ComponentTypeBase & ComponentDropdownType) | (ComponentTypeBase & ComponentSuggesterType) | (ComponentTypeBase & ComponentPairWiseLinksType) | (ComponentTypeBase & ComponentRoundaboutType) | (ComponentTypeBase & {
83
83
  componentType: 'Input' | 'CheckboxOne' | 'Textarea';
84
84
  }) | (ComponentTypeBase & ComponentComponentSet);
85
85
  export type ComponentSequenceType = {
@@ -119,6 +119,7 @@ export type ComponentRosterForLoopType = {
119
119
  format?: string;
120
120
  dateFormat?: string;
121
121
  unit?: string;
122
+ dynamicUnit?: LabelType;
122
123
  options: {
123
124
  value: string;
124
125
  label: LabelType;
@@ -159,6 +160,7 @@ export type ComponentTableType = {
159
160
  export type ComponentNumberType = {
160
161
  componentType: 'InputNumber';
161
162
  unit: string;
163
+ dynamicUnit?: LabelType;
162
164
  response: ResponseType;
163
165
  min?: number;
164
166
  max?: number;
@@ -199,6 +201,14 @@ export type ComponentDropdownType = {
199
201
  }[];
200
202
  response: ResponseType;
201
203
  };
204
+ export type ComponentSuggesterType = {
205
+ componentType: 'Suggester';
206
+ response?: ResponseType;
207
+ responses?: Array<{
208
+ id: string;
209
+ response: ResponseType;
210
+ }>;
211
+ };
202
212
  export type ComponentFilterDescriptionType = {
203
213
  componentType: 'FilterDescription';
204
214
  filterDescription: boolean;
@@ -144,7 +144,7 @@ export type LunaticState = {
144
144
  page: string;
145
145
  };
146
146
  }) => void;
147
- getSuggesterStatus: (name: string) => {
147
+ getSuggesterStatus: (name: string | undefined) => {
148
148
  status: SuggesterStatus;
149
149
  timestamp: number;
150
150
  };
@@ -3,11 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = exports.UnitEuros = exports.ThousandSeparator = exports.Default = void 0;
6
+ exports["default"] = exports.UnitEuros = exports.ThousandSeparator = exports.DynamicUnit = exports.Default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _defaultArgTypes = _interopRequireDefault(require("../utils/default-arg-types"));
9
9
  var _orchestrator = _interopRequireDefault(require("../utils/orchestrator"));
10
10
  var _source = _interopRequireDefault(require("./source"));
11
+ var _sourceDynamic = _interopRequireDefault(require("./source-dynamic"));
11
12
  var _sourceEuros = _interopRequireDefault(require("./source-euros"));
12
13
  var _sourceThansand = _interopRequireDefault(require("./source-thansand"));
13
14
  var _jsxRuntime = require("react/jsx-runtime");
@@ -44,12 +45,18 @@ UnitEuros.args = {
44
45
  source: _sourceEuros["default"],
45
46
  unit: '€'
46
47
  };
48
+ var DynamicUnit = Template.bind({});
49
+ exports.DynamicUnit = DynamicUnit;
50
+ DynamicUnit.args = {
51
+ id: 'input-number-dynamic',
52
+ source: _sourceDynamic["default"]
53
+ };
47
54
  var ThousandSeparator = Template.bind({});
48
55
  exports.ThousandSeparator = ThousandSeparator;
49
56
  ThousandSeparator.args = {
50
57
  id: 'input-number-thousand',
51
58
  source: _sourceThansand["default"],
52
- min: 0,
59
+ min: 10,
53
60
  max: 1000000,
54
61
  decimals: 0,
55
62
  thousandSeparator: true
@@ -0,0 +1,41 @@
1
+ {
2
+ "components": [
3
+ {
4
+ "id": "kze792d8",
5
+ "componentType": "InputNumber",
6
+ "mandatory": false,
7
+ "page": "2",
8
+ "min": 0,
9
+ "max": 10,
10
+ "decimals": 0,
11
+ "label": { "value": "\"➡ 1. \" || \"NB \"", "type": "VTL|MD" },
12
+ "conditionFilter": { "value": "true", "type": "VTL" },
13
+ "hierarchy": {
14
+ "sequence": {
15
+ "id": "ksyjs7vy",
16
+ "page": "1",
17
+ "label": { "value": "S0", "type": "VTL|MD" }
18
+ }
19
+ },
20
+ "bindingDependencies": ["NB"],
21
+ "response": { "name": "NB" },
22
+ "dynamicUnit": {
23
+ "type": "VTL|MD",
24
+ "value": "\"kilo \" || cast(2+2, string) || \" tonnes\""
25
+ }
26
+ }
27
+ ],
28
+ "variables": [
29
+ {
30
+ "variableType": "COLLECTED",
31
+ "name": "NB",
32
+ "values": {
33
+ "PREVIOUS": null,
34
+ "COLLECTED": null,
35
+ "FORCED": null,
36
+ "EDITED": null,
37
+ "INPUTED": null
38
+ }
39
+ }
40
+ ]
41
+ }
@@ -3,11 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = exports.WithHeader = exports.Default = void 0;
6
+ exports["default"] = exports.Default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _orchestrator = _interopRequireDefault(require("../utils/orchestrator"));
9
9
  var _sourceBloc = _interopRequireDefault(require("./source-bloc.json"));
10
- var _sourceWithHeader = _interopRequireDefault(require("./source-with-header.json"));
11
10
  var _defaultArgTypes = _interopRequireDefault(require("../utils/default-arg-types"));
12
11
  var _jsxRuntime = require("react/jsx-runtime");
13
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -32,10 +31,4 @@ exports.Default = Default;
32
31
  Default.args = {
33
32
  id: 'bloc-for-loop',
34
33
  source: _sourceBloc["default"]
35
- };
36
- var WithHeader = Template.bind({});
37
- exports.WithHeader = WithHeader;
38
- WithHeader.args = {
39
- id: 'bloc-for-loop-headers',
40
- source: _sourceWithHeader["default"]
41
34
  };
@@ -3,11 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = exports.Default = void 0;
6
+ exports["default"] = exports.WithHeader = exports.Default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _orchestrator = _interopRequireDefault(require("../utils/orchestrator"));
9
9
  var _sourceRoster = _interopRequireDefault(require("./source-roster"));
10
10
  var _defaultArgTypes = _interopRequireDefault(require("../utils/default-arg-types"));
11
+ var _sourceWithHeader = _interopRequireDefault(require("./source-with-header.json"));
11
12
  var _jsxRuntime = require("react/jsx-runtime");
12
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
14
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
@@ -31,4 +32,10 @@ exports.Default = Default;
31
32
  Default.args = {
32
33
  id: 'roster-for-loop',
33
34
  source: _sourceRoster["default"]
35
+ };
36
+ var WithHeader = Template.bind({});
37
+ exports.WithHeader = WithHeader;
38
+ WithHeader.args = {
39
+ id: 'roster-for-loop-headers',
40
+ source: _sourceWithHeader["default"]
34
41
  };
@@ -14,9 +14,21 @@
14
14
  {
15
15
  "id": "loop-prenom",
16
16
  "componentType": "RosterForLoop",
17
- "headers": [
18
- { "headerCell": true, "label": "Prénom" },
19
- { "headerCell": true, "label": "Age" }
17
+ "header": [
18
+ {
19
+ "headerCell": true,
20
+ "label": {
21
+ "value": "Prénom",
22
+ "type": "VTL|MD"
23
+ }
24
+ },
25
+ {
26
+ "headerCell": true,
27
+ "label": {
28
+ "value": "Age",
29
+ "type": "VTL|MD"
30
+ }
31
+ }
20
32
  ],
21
33
  "label": { "value": "\"Ajouter un individu\"", "type": "VTL|MD" },
22
34
  "conditionFilter": { "value": "true", "type": "VTL" },
@@ -0,0 +1,46 @@
1
+ {
2
+ "COLLECTED": {
3
+ "ID": {
4
+ "COLLECTED": [
5
+ "05101000H0",
6
+ "05201000H0",
7
+ "06100000H0",
8
+ "06200000H0",
9
+ "0710101000",
10
+ "0710102000"
11
+ ]
12
+ },
13
+ "LABEL": {
14
+ "COLLECTED": [
15
+ "Houille",
16
+ "Lignite",
17
+ "Pétrole brut",
18
+ "Gaz naturel, liquéfié ou gazeux",
19
+ "Minerais de fer et leurs concentrés, non agglomérés (à l'exclusion des pyrites de fer grillées)",
20
+ "Minerais de fer et leurs concentrés, agglomérés (à l'exclusion des pyrites de fer grillées)"
21
+ ]
22
+ },
23
+ "UNIT_SIMPLE": {
24
+ "COLLECTED": []
25
+ },
26
+ "ID_SIMPLE": {
27
+ "COLLECTED": []
28
+ },
29
+ "LABEL_SIMPLE": {
30
+ "COLLECTED": []
31
+ },
32
+ "UNIT": {
33
+ "COLLECTED": ["", "", "", "", "tonnes", "tonnes"]
34
+ },
35
+ "FACTURATION": {
36
+ "COLLECTED": [null, null, null, null, null, null]
37
+ },
38
+ "QUANTITE_PRODUITE": {
39
+ "COLLECTED": [null, null, null, null, null, null]
40
+ },
41
+ "QUANTITE_FACTUREE": {
42
+ "COLLECTED": [null, null, null, null, null, null]
43
+ },
44
+ "COMMENT_QE": { "COLLECTED": null }
45
+ }
46
+ }