@inseefr/lunatic 2.6.2 → 2.6.3-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/index.js +4 -4
- package/lib/components/loop/block-for-loop.js +6 -10
- package/lib/components/loop/roster-for-loop/roster-for-loop.js +27 -35
- package/lib/components/lunatic-components.js +16 -5
- package/lib/components/pairwise-links/pairwise-links.js +27 -30
- package/lib/components/table/lunatic-table.js +22 -13
- package/lib/components/table/{header.js → table-header.js} +3 -5
- package/lib/hooks/use-track-changes.js +50 -0
- package/lib/src/components/index.d.ts +2 -2
- package/lib/src/components/loop/block-for-loop.d.ts +3 -4
- package/lib/src/components/loop/roster-for-loop/roster-for-loop.d.ts +3 -4
- package/lib/src/components/lunatic-components.d.ts +5 -3
- package/lib/src/components/pairwise-links/pairwise-links.d.ts +1 -2
- package/lib/src/components/table/lunatic-table.d.ts +1 -1
- package/lib/src/components/table/{header.d.ts → table-header.d.ts} +2 -2
- package/lib/src/components/type.d.ts +5 -6
- package/lib/src/hooks/use-track-changes.d.ts +9 -0
- package/lib/src/use-lunatic/actions.d.ts +3 -16
- package/lib/src/use-lunatic/commons/compile-controls.d.ts +3 -2
- package/lib/src/use-lunatic/commons/component.d.ts +22 -0
- package/lib/src/use-lunatic/commons/fill-components/fill-component-value.d.ts +2 -3
- package/lib/src/use-lunatic/commons/fill-components/fill-components.d.ts +6 -0
- package/lib/src/use-lunatic/commons/fill-components/fill-from-state.d.ts +107 -122
- package/lib/src/use-lunatic/commons/fill-components/fill-iterations.d.ts +112 -0
- package/lib/src/use-lunatic/commons/fill-components/fill-specific-expression.d.ts +53 -89
- package/lib/src/use-lunatic/commons/get-compatible-vtl-expression.d.ts +1 -0
- package/lib/src/use-lunatic/commons/index.d.ts +0 -3
- package/lib/src/use-lunatic/commons/variables/behaviours/cleaning-behaviour.d.ts +7 -0
- package/lib/src/use-lunatic/commons/variables/behaviours/missing-behaviour.d.ts +7 -0
- package/lib/src/use-lunatic/commons/variables/behaviours/resizing-behaviour.d.ts +7 -0
- package/lib/src/use-lunatic/commons/variables/get-questionnaire-data.d.ts +4 -0
- package/lib/src/use-lunatic/commons/variables/lunatic-variables-store.d.ts +77 -0
- package/lib/src/use-lunatic/reducer/overview/overview-on-init.d.ts +10 -8
- package/lib/src/use-lunatic/reducer/reduce-handle-change.d.ts +6 -0
- package/lib/src/use-lunatic/reducer/reduce-on-init.d.ts +1 -12
- package/lib/src/use-lunatic/type-source.d.ts +7 -21
- package/lib/src/use-lunatic/type.d.ts +13 -11
- package/lib/src/use-lunatic/use-lunatic.d.ts +33 -56
- package/lib/src/utils/array.d.ts +6 -1
- package/lib/src/utils/env.d.ts +1 -0
- package/lib/src/utils/number.d.ts +4 -0
- package/lib/src/utils/variables.d.ts +5 -0
- package/lib/src/utils/vtl.d.ts +14 -0
- package/lib/use-lunatic/actions.js +3 -3
- package/lib/use-lunatic/commons/compile-controls.js +3 -5
- package/lib/use-lunatic/commons/component.js +22 -0
- package/lib/use-lunatic/commons/execute-condition-filter.js +1 -9
- package/lib/use-lunatic/commons/fill-components/fill-component-expressions.js +2 -3
- package/lib/use-lunatic/commons/fill-components/fill-component-value.js +21 -7
- package/lib/use-lunatic/commons/fill-components/fill-components.js +5 -3
- package/lib/use-lunatic/commons/{execute-expression/get-safety-expression.js → fill-components/fill-iterations.js} +30 -20
- package/lib/use-lunatic/commons/fill-components/fill-missing-response.js +6 -13
- package/lib/use-lunatic/commons/fill-components/fill-specific-expression.js +58 -5
- package/lib/use-lunatic/commons/get-compatible-vtl-expression.js +1 -0
- package/lib/use-lunatic/commons/index.js +0 -21
- package/lib/use-lunatic/commons/variables/behaviours/cleaning-behaviour.js +39 -0
- package/lib/use-lunatic/commons/variables/behaviours/missing-behaviour.js +47 -0
- package/lib/use-lunatic/commons/variables/behaviours/resizing-behaviour.js +78 -0
- package/lib/use-lunatic/{reducer/reduce-handle-change/reduce-variables-array.js → commons/variables/get-questionnaire-data.js} +53 -32
- package/lib/use-lunatic/commons/variables/lunatic-variables-store.js +330 -0
- package/lib/use-lunatic/commons/variables/lunatic-variables-store.spec.js +216 -0
- package/lib/use-lunatic/initial-state.js +5 -2
- package/lib/use-lunatic/reducer/overview/overview-on-change.js +1 -1
- package/lib/use-lunatic/reducer/{reduce-handle-change/reduce-variables-simple.js → reduce-handle-change.js} +15 -14
- package/lib/use-lunatic/reducer/reduce-on-init.js +89 -181
- package/lib/use-lunatic/reducer/reducer.js +2 -2
- package/lib/use-lunatic/reducer/resolve-component-controls/resolve-simple-control.js +2 -4
- package/lib/use-lunatic/use-lunatic.js +18 -14
- package/lib/use-lunatic/use-lunatic.test.js +131 -2
- package/lib/utils/array.js +57 -6
- package/lib/utils/array.spec.js +30 -0
- package/lib/utils/env.js +10 -0
- package/lib/utils/get-component-value.js +3 -9
- package/lib/utils/number.js +13 -1
- package/lib/utils/variables.js +37 -0
- package/lib/utils/vtl.js +100 -0
- package/package.json +1 -1
- package/lib/components/loop/utils/get-initial-nb-rows.js +0 -17
- package/lib/components/pairwise-links/index.js +0 -13
- package/lib/components/pairwise-links/orchestrator.js +0 -71
- package/lib/components/pairwise-links/row.js +0 -74
- package/lib/components/table/cell.js +0 -89
- package/lib/components/table/index.js +0 -13
- package/lib/components/table/row.js +0 -40
- package/lib/components/table/table-orchestrator.js +0 -35
- package/lib/src/components/loop/utils/get-initial-nb-rows.d.ts +0 -4
- package/lib/src/components/pairwise-links/index.d.ts +0 -1
- package/lib/src/components/pairwise-links/orchestrator.d.ts +0 -6
- package/lib/src/components/pairwise-links/row.d.ts +0 -7
- package/lib/src/components/table/cell.d.ts +0 -19
- package/lib/src/components/table/index.d.ts +0 -1
- package/lib/src/components/table/row.d.ts +0 -18
- package/lib/src/components/table/table-orchestrator.d.ts +0 -4
- package/lib/src/use-lunatic/commons/calculated-variables.d.ts +0 -8
- package/lib/src/use-lunatic/commons/execute-expression/create-execute-expression.d.ts +0 -9
- package/lib/src/use-lunatic/commons/execute-expression/create-memoizer.d.ts +0 -8
- package/lib/src/use-lunatic/commons/execute-expression/create-refresh-calculated.d.ts +0 -24
- package/lib/src/use-lunatic/commons/execute-expression/execute-expression.d.ts +0 -11
- package/lib/src/use-lunatic/commons/execute-expression/get-expressions-variables.d.ts +0 -7
- package/lib/src/use-lunatic/commons/execute-expression/get-expressions-variables.spec.d.ts +0 -1
- package/lib/src/use-lunatic/commons/execute-expression/get-safety-expression.d.ts +0 -6
- package/lib/src/use-lunatic/commons/execute-expression/index.d.ts +0 -1
- package/lib/src/use-lunatic/commons/get-component-value/get-component-value.d.ts +0 -6
- package/lib/src/use-lunatic/commons/get-component-value/index.d.ts +0 -1
- package/lib/src/use-lunatic/commons/get-data.d.ts +0 -26
- package/lib/src/use-lunatic/reducer/reduce-handle-change/index.d.ts +0 -1
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-cleaning.d.ts +0 -7
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-cleaning.spec.d.ts +0 -1
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-handle-change.d.ts +0 -4
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-links-variable.d.ts +0 -15
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-missing.d.ts +0 -7
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-resizing.d.ts +0 -4
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-variables-array.d.ts +0 -14
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-variables-simple.d.ts +0 -9
- package/lib/src/use-lunatic/reducer/reduce-on-init.spec.d.ts +0 -1
- package/lib/src/utils/vtl/dataset-builder.d.ts +0 -5
- package/lib/src/utils/vtl/index.d.ts +0 -1
- package/lib/use-lunatic/commons/calculated-variables.js +0 -104
- package/lib/use-lunatic/commons/execute-expression/create-execute-expression.js +0 -233
- package/lib/use-lunatic/commons/execute-expression/create-execute-expression.spec.js +0 -155
- package/lib/use-lunatic/commons/execute-expression/create-memoizer.js +0 -63
- package/lib/use-lunatic/commons/execute-expression/create-refresh-calculated.js +0 -149
- package/lib/use-lunatic/commons/execute-expression/create-refresh-calculated.spec.js +0 -130
- package/lib/use-lunatic/commons/execute-expression/execute-expression.js +0 -90
- package/lib/use-lunatic/commons/execute-expression/execute-expression.spec.js +0 -38
- package/lib/use-lunatic/commons/execute-expression/get-expressions-variables.js +0 -40
- package/lib/use-lunatic/commons/execute-expression/get-expressions-variables.spec.js +0 -31
- package/lib/use-lunatic/commons/execute-expression/index.js +0 -13
- package/lib/use-lunatic/commons/get-component-value/get-component-value.js +0 -174
- package/lib/use-lunatic/commons/get-component-value/index.js +0 -13
- package/lib/use-lunatic/commons/get-data.js +0 -80
- package/lib/use-lunatic/reducer/reduce-handle-change/__mocks__/source-cleaning-loop.json +0 -792
- package/lib/use-lunatic/reducer/reduce-handle-change/index.js +0 -13
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-cleaning.js +0 -72
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-cleaning.spec.js +0 -46
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-handle-change.js +0 -115
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-links-variable.js +0 -89
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-missing.js +0 -88
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-resizing.js +0 -110
- package/lib/use-lunatic/reducer/reduce-on-init.spec.js +0 -17
- package/lib/utils/vtl/dataset-builder.js +0 -27
- package/lib/utils/vtl/index.js +0 -13
- /package/lib/src/use-lunatic/commons/{execute-expression/create-refresh-calculated.spec.d.ts → variables/lunatic-variables-store.spec.d.ts} +0 -0
- /package/lib/src/{use-lunatic/commons/execute-expression/execute-expression.spec.d.ts → utils/array.spec.d.ts} +0 -0
|
@@ -91,27 +91,9 @@ declare function fillSpecificExpressions(component: DeepTranslateExpression<Luna
|
|
|
91
91
|
colspan?: number | undefined;
|
|
92
92
|
rowspan?: number | undefined;
|
|
93
93
|
}[];
|
|
94
|
-
body: {
|
|
95
|
-
label
|
|
96
|
-
|
|
97
|
-
format?: string | undefined;
|
|
98
|
-
dateFormat?: string | undefined;
|
|
99
|
-
unit?: string | undefined;
|
|
100
|
-
options: {
|
|
101
|
-
value: string;
|
|
102
|
-
label: import("../../type-source").LabelType;
|
|
103
|
-
}[];
|
|
104
|
-
response: import("../../type-source").ResponseType;
|
|
105
|
-
bindingDependencies: string[];
|
|
106
|
-
componentType?: import("../../type-source").ComponentTypeEnum | undefined;
|
|
107
|
-
maxLength?: number | undefined;
|
|
108
|
-
min?: number | undefined;
|
|
109
|
-
max?: number | undefined;
|
|
110
|
-
decimals?: number | undefined;
|
|
111
|
-
colspan?: number | undefined;
|
|
112
|
-
rowspan?: number | undefined;
|
|
113
|
-
id?: string | undefined;
|
|
114
|
-
}[];
|
|
94
|
+
body: (import("../../type-source").ComponentType | {
|
|
95
|
+
label: import("../../type-source").LabelType;
|
|
96
|
+
})[][];
|
|
115
97
|
positioning: "HORIZONTAL";
|
|
116
98
|
value?: Record<string, unknown[]> | undefined;
|
|
117
99
|
} | {
|
|
@@ -149,6 +131,7 @@ declare function fillSpecificExpressions(component: DeepTranslateExpression<Luna
|
|
|
149
131
|
paginatedLoop: boolean;
|
|
150
132
|
value?: Record<string, unknown[]> | undefined;
|
|
151
133
|
} | {
|
|
134
|
+
getComponents: (x: number, y: number) => import("./fill-components").FilledLunaticComponentProps<"Sequence" | "Subsequence" | "RosterForLoop" | "Loop" | "Table" | "Input" | "InputNumber" | "Datepicker" | "CheckboxGroup" | "CheckboxOne" | "CheckboxBoolean" | "Radio" | "Dropdown" | "Textarea" | "FilterDescription" | "PairwiseLinks" | "Suggester" | "ConfirmationModal" | "ComponentSet" | "Roundabout" | "QuestionExplication">[];
|
|
152
135
|
label: import("react").ReactNode;
|
|
153
136
|
declarations?: import("../../type-source").DeclarationType[] | undefined;
|
|
154
137
|
conditionFilter: import("react").ReactNode;
|
|
@@ -169,8 +152,17 @@ declare function fillSpecificExpressions(component: DeepTranslateExpression<Luna
|
|
|
169
152
|
};
|
|
170
153
|
mandatory?: boolean | undefined;
|
|
171
154
|
page: string;
|
|
172
|
-
componentType: "
|
|
155
|
+
componentType: "PairwiseLinks";
|
|
156
|
+
xAxisIterations: import("react").ReactNode;
|
|
157
|
+
yAxisIterations: import("react").ReactNode;
|
|
158
|
+
symLinks: {
|
|
159
|
+
[x: string]: {
|
|
160
|
+
[x: string]: string;
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
components: import("../../type-source").ComponentType[];
|
|
173
164
|
} | {
|
|
165
|
+
body: unknown[][];
|
|
174
166
|
label: import("react").ReactNode;
|
|
175
167
|
declarations?: import("../../type-source").DeclarationType[] | undefined;
|
|
176
168
|
conditionFilter: import("react").ReactNode;
|
|
@@ -191,8 +183,22 @@ declare function fillSpecificExpressions(component: DeepTranslateExpression<Luna
|
|
|
191
183
|
};
|
|
192
184
|
mandatory?: boolean | undefined;
|
|
193
185
|
page: string;
|
|
194
|
-
componentType: "
|
|
195
|
-
|
|
186
|
+
componentType: "Table";
|
|
187
|
+
lines: {
|
|
188
|
+
min: import("react").ReactNode;
|
|
189
|
+
max: import("react").ReactNode;
|
|
190
|
+
};
|
|
191
|
+
header: {
|
|
192
|
+
value: string;
|
|
193
|
+
label: string | import("../../type-source").LabelType;
|
|
194
|
+
options: {
|
|
195
|
+
value: string;
|
|
196
|
+
label: import("../../type-source").LabelType;
|
|
197
|
+
}[];
|
|
198
|
+
colspan?: number | undefined;
|
|
199
|
+
rowspan?: number | undefined;
|
|
200
|
+
}[];
|
|
201
|
+
positioning: "HORIZONTAL";
|
|
196
202
|
} | {
|
|
197
203
|
label: import("react").ReactNode;
|
|
198
204
|
declarations?: import("../../type-source").DeclarationType[] | undefined;
|
|
@@ -214,43 +220,30 @@ declare function fillSpecificExpressions(component: DeepTranslateExpression<Luna
|
|
|
214
220
|
};
|
|
215
221
|
mandatory?: boolean | undefined;
|
|
216
222
|
page: string;
|
|
217
|
-
componentType: "
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
223
|
+
componentType: "Sequence";
|
|
224
|
+
} | {
|
|
225
|
+
label: import("react").ReactNode;
|
|
226
|
+
declarations?: import("../../type-source").DeclarationType[] | undefined;
|
|
227
|
+
conditionFilter: import("react").ReactNode;
|
|
228
|
+
controls?: import("../../type-source").ControlType[] | undefined;
|
|
229
|
+
id: string;
|
|
230
|
+
bindingDependencies?: string[] | undefined;
|
|
231
|
+
hierarchy: {
|
|
232
|
+
sequence: {
|
|
233
|
+
label: import("react").ReactNode;
|
|
234
|
+
id: string;
|
|
235
|
+
page: string;
|
|
236
|
+
};
|
|
237
|
+
subSequence?: {
|
|
238
|
+
label: import("react").ReactNode;
|
|
239
|
+
id: string;
|
|
240
|
+
page: string;
|
|
241
|
+
} | undefined;
|
|
221
242
|
};
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
value: string;
|
|
227
|
-
label: import("../../type-source").LabelType;
|
|
228
|
-
}[];
|
|
229
|
-
colspan?: number | undefined;
|
|
230
|
-
rowspan?: number | undefined;
|
|
231
|
-
}[];
|
|
232
|
-
body: {
|
|
233
|
-
label?: import("../../type-source").LabelType | undefined;
|
|
234
|
-
value?: string | undefined;
|
|
235
|
-
format?: string | undefined;
|
|
236
|
-
dateFormat?: string | undefined;
|
|
237
|
-
unit?: string | undefined;
|
|
238
|
-
options: {
|
|
239
|
-
value: string;
|
|
240
|
-
label: import("../../type-source").LabelType;
|
|
241
|
-
}[];
|
|
242
|
-
response: import("../../type-source").ResponseType;
|
|
243
|
-
bindingDependencies: string[];
|
|
244
|
-
componentType?: import("../../type-source").ComponentTypeEnum | undefined;
|
|
245
|
-
maxLength?: number | undefined;
|
|
246
|
-
min?: number | undefined;
|
|
247
|
-
max?: number | undefined;
|
|
248
|
-
decimals?: number | undefined;
|
|
249
|
-
colspan?: number | undefined;
|
|
250
|
-
rowspan?: number | undefined;
|
|
251
|
-
id?: string | undefined;
|
|
252
|
-
}[];
|
|
253
|
-
positioning: "HORIZONTAL";
|
|
243
|
+
mandatory?: boolean | undefined;
|
|
244
|
+
page: string;
|
|
245
|
+
componentType: "Subsequence";
|
|
246
|
+
gotoPage: string;
|
|
254
247
|
} | {
|
|
255
248
|
label: import("react").ReactNode;
|
|
256
249
|
declarations?: import("../../type-source").DeclarationType[] | undefined;
|
|
@@ -450,35 +443,6 @@ declare function fillSpecificExpressions(component: DeepTranslateExpression<Luna
|
|
|
450
443
|
missingResponse?: {
|
|
451
444
|
name: string;
|
|
452
445
|
} | undefined;
|
|
453
|
-
} | {
|
|
454
|
-
label: import("react").ReactNode;
|
|
455
|
-
declarations?: import("../../type-source").DeclarationType[] | undefined;
|
|
456
|
-
conditionFilter: import("react").ReactNode;
|
|
457
|
-
controls?: import("../../type-source").ControlType[] | undefined;
|
|
458
|
-
id: string;
|
|
459
|
-
bindingDependencies?: string[] | undefined;
|
|
460
|
-
hierarchy: {
|
|
461
|
-
sequence: {
|
|
462
|
-
label: import("react").ReactNode;
|
|
463
|
-
id: string;
|
|
464
|
-
page: string;
|
|
465
|
-
};
|
|
466
|
-
subSequence?: {
|
|
467
|
-
label: import("react").ReactNode;
|
|
468
|
-
id: string;
|
|
469
|
-
page: string;
|
|
470
|
-
} | undefined;
|
|
471
|
-
};
|
|
472
|
-
mandatory?: boolean | undefined;
|
|
473
|
-
page: string;
|
|
474
|
-
componentType: "PairwiseLinks";
|
|
475
|
-
xAxisIterations: import("react").ReactNode;
|
|
476
|
-
yAxisIterations: import("react").ReactNode;
|
|
477
|
-
symLinks: {
|
|
478
|
-
[x: string]: {
|
|
479
|
-
[x: string]: string;
|
|
480
|
-
};
|
|
481
|
-
};
|
|
482
446
|
} | {
|
|
483
447
|
label: import("react").ReactNode;
|
|
484
448
|
declarations?: import("../../type-source").DeclarationType[] | undefined;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { LunaticExpression } from '../type';
|
|
2
2
|
/**
|
|
3
3
|
* Ensure that an expression is compatible with VTL (convert if necessary)
|
|
4
|
+
* @deprecated use getExpressionAsString() instead
|
|
4
5
|
*/
|
|
5
6
|
declare function getCompatibleVTLExpression(expression: LunaticExpression | string): LunaticExpression | undefined;
|
|
6
7
|
export default getCompatibleVTLExpression;
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
export { default as checkLoops } from './check-loops';
|
|
2
2
|
export { default as createMapPages } from './create-map-pages';
|
|
3
3
|
export { default as executeConditionFilter } from './execute-condition-filter';
|
|
4
|
-
export { default as createExecuteExpression } from './execute-expression';
|
|
5
4
|
export { default as fillComponentExpressions } from './fill-components/fill-component-expressions';
|
|
6
5
|
export { default as getCompatibleVTLExpression } from './get-compatible-vtl-expression';
|
|
7
6
|
export { default as getComponentsFromState } from './get-components-from-state';
|
|
8
|
-
export { default as getErrorsWithoutEmptyValue } from './get-errors-without-empty-value';
|
|
9
7
|
export { default as isFirstLastPage } from './is-First-last-page';
|
|
10
|
-
export { default as isPaginatedLoop } from './is-paginated-loop';
|
|
11
8
|
export { getNewReachedPage, getPageTag, isNewReachedPage } from './page-tag';
|
|
12
9
|
export { default as useComponentsFromState } from './use-components-from-state';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { LunaticVariablesStore } from '../lunatic-variables-store';
|
|
2
|
+
import type { LunaticSource } from '../../../type-source';
|
|
3
|
+
/**
|
|
4
|
+
* Cleaning behaviour for the store
|
|
5
|
+
* When a variable changes, other variables can be reset
|
|
6
|
+
*/
|
|
7
|
+
export declare function cleaningBehaviour(store: LunaticVariablesStore, cleaning: LunaticSource['cleaning'], initialValues?: Record<string, unknown>): void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { LunaticVariablesStore } from '../lunatic-variables-store';
|
|
2
|
+
import type { LunaticSource } from '../../../type-source';
|
|
3
|
+
/**
|
|
4
|
+
* Add missing behaviour to the store
|
|
5
|
+
* Missing works as a simplified cleaning that reset a linked variable
|
|
6
|
+
*/
|
|
7
|
+
export declare function missingBehaviour(store: LunaticVariablesStore, missing: LunaticSource['missingBlock']): void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { LunaticVariablesStore } from '../lunatic-variables-store';
|
|
2
|
+
import type { LunaticSource } from '../../../type-source';
|
|
3
|
+
/**
|
|
4
|
+
* Resizing behaviour for the store
|
|
5
|
+
* When a variable changes, multiple other variables can change size (size of the array)
|
|
6
|
+
*/
|
|
7
|
+
export declare function resizingBehaviour(store: LunaticVariablesStore, resizing: LunaticSource['resizing']): void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { LunaticVariablesStore } from './lunatic-variables-store';
|
|
2
|
+
import type { LunaticSource } from '../../type-source';
|
|
3
|
+
import type { LunaticData } from '../../type';
|
|
4
|
+
export declare function getQuestionnaireData(store: LunaticVariablesStore, variables: LunaticSource['variables'], withCalculated?: boolean, variableNames?: string[]): LunaticData;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { LunaticSource } from '../../type-source';
|
|
2
|
+
import type { LunaticData } from '../../type';
|
|
3
|
+
type IterationLevel = number[];
|
|
4
|
+
type EventArgs = {
|
|
5
|
+
change: {
|
|
6
|
+
name: string;
|
|
7
|
+
value: unknown;
|
|
8
|
+
iteration?: IterationLevel | undefined;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export type LunaticVariablesStoreEvent<T extends keyof EventArgs> = {
|
|
12
|
+
detail: EventArgs[T];
|
|
13
|
+
};
|
|
14
|
+
export declare class LunaticVariablesStore {
|
|
15
|
+
private dictionary;
|
|
16
|
+
private eventTarget;
|
|
17
|
+
constructor();
|
|
18
|
+
static makeFromSource(source: LunaticSource, data: LunaticData): LunaticVariablesStore;
|
|
19
|
+
/**
|
|
20
|
+
* Retrieve variable value
|
|
21
|
+
*/
|
|
22
|
+
get<T>(name: string, iteration?: IterationLevel): T | null;
|
|
23
|
+
/**
|
|
24
|
+
* Set variable value
|
|
25
|
+
*/
|
|
26
|
+
set(name: string, value: unknown, args?: Pick<EventArgs['change'], 'iteration'>): LunaticVariable;
|
|
27
|
+
/**
|
|
28
|
+
* Register calculated variable
|
|
29
|
+
*/
|
|
30
|
+
setCalculated(name: string, expression: string, { dependencies, iterationDepth, }?: {
|
|
31
|
+
dependencies?: string[];
|
|
32
|
+
iterationDepth?: number;
|
|
33
|
+
}): LunaticVariable;
|
|
34
|
+
/**
|
|
35
|
+
* Run a VTL expression
|
|
36
|
+
*/
|
|
37
|
+
run(expression: string, args?: {
|
|
38
|
+
iteration?: IterationLevel;
|
|
39
|
+
deps?: string[];
|
|
40
|
+
}): unknown;
|
|
41
|
+
/**
|
|
42
|
+
* Bind event listeners
|
|
43
|
+
*/
|
|
44
|
+
on<T extends keyof EventArgs>(eventName: T, cb: (e: CustomEvent<EventArgs[T]>) => void): void;
|
|
45
|
+
/**
|
|
46
|
+
* Detach a listener
|
|
47
|
+
*/
|
|
48
|
+
off<T extends keyof EventArgs>(eventName: T, cb: (e: CustomEvent<EventArgs[T]>) => void): void;
|
|
49
|
+
get interpretCount(): number;
|
|
50
|
+
}
|
|
51
|
+
declare class LunaticVariable {
|
|
52
|
+
updatedAt: Map<string | undefined, number>;
|
|
53
|
+
private calculatedAt;
|
|
54
|
+
private value;
|
|
55
|
+
private dependencies?;
|
|
56
|
+
private readonly expression?;
|
|
57
|
+
private readonly dictionary?;
|
|
58
|
+
private readonly iterationDepth?;
|
|
59
|
+
private readonly name?;
|
|
60
|
+
constructor(args?: {
|
|
61
|
+
expression?: string;
|
|
62
|
+
dependencies?: string[];
|
|
63
|
+
dictionary?: Map<string, LunaticVariable>;
|
|
64
|
+
iterationDepth?: number;
|
|
65
|
+
name?: string;
|
|
66
|
+
});
|
|
67
|
+
getValue(iteration?: IterationLevel): unknown;
|
|
68
|
+
/**
|
|
69
|
+
* Set the value and returns true if the variable is touched
|
|
70
|
+
*/
|
|
71
|
+
setValue(value: unknown, iteration?: IterationLevel): boolean;
|
|
72
|
+
private getSavedValue;
|
|
73
|
+
private getDependencies;
|
|
74
|
+
private getDependenciesValues;
|
|
75
|
+
private isOutdated;
|
|
76
|
+
}
|
|
77
|
+
export {};
|
|
@@ -2,9 +2,8 @@ import type { LunaticOverviewItem, LunaticState } from '../../type';
|
|
|
2
2
|
import { type ActionInit } from '../../actions';
|
|
3
3
|
export declare function reduceOverviewOnInit(state: LunaticState, action: ActionInit): {
|
|
4
4
|
overview: LunaticOverviewItem[];
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
};
|
|
5
|
+
updatedAt: number;
|
|
6
|
+
variables: import("../../commons/variables/lunatic-variables-store").LunaticVariablesStore;
|
|
8
7
|
pages: {
|
|
9
8
|
[key: string]: {
|
|
10
9
|
components: import("../../type-source").ComponentType[];
|
|
@@ -78,14 +77,17 @@ export declare function reduceOverviewOnInit(state: LunaticState, action: Action
|
|
|
78
77
|
modalErrors?: Record<string, import("../../type").LunaticError[]> | undefined;
|
|
79
78
|
handleChange: (response: {
|
|
80
79
|
name: string;
|
|
81
|
-
}, value: any, args?:
|
|
80
|
+
}, value: any, args?: {
|
|
81
|
+
iteration?: number[] | undefined;
|
|
82
|
+
} | undefined) => void;
|
|
82
83
|
executeExpression: <T extends unknown = unknown>(expression: unknown, args?: {
|
|
83
|
-
iteration?: number | undefined;
|
|
84
|
-
linksIterations?: number[] | undefined;
|
|
85
|
-
logging?: import("../../commons/execute-expression/create-execute-expression").ExpressionLogger | undefined;
|
|
84
|
+
iteration?: number | number[] | undefined;
|
|
86
85
|
bindingDependencies?: string[] | undefined;
|
|
86
|
+
deps?: string[] | undefined;
|
|
87
87
|
} | undefined) => T;
|
|
88
|
-
updateBindings: (variableName: string, value: unknown
|
|
88
|
+
updateBindings: (variableName: string, value: unknown, options: {
|
|
89
|
+
iteration?: number[] | undefined;
|
|
90
|
+
}) => unknown;
|
|
89
91
|
activeControls: boolean;
|
|
90
92
|
shortcut?: boolean | undefined;
|
|
91
93
|
management?: boolean | undefined;
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
import { type ActionInit } from '../actions';
|
|
2
|
-
import type { LunaticState
|
|
3
|
-
export type VariablesByType = {
|
|
4
|
-
EXTERNAL: (LunaticVariable & {
|
|
5
|
-
variableType: 'EXTERNAL';
|
|
6
|
-
})[];
|
|
7
|
-
COLLECTED: (LunaticVariable & {
|
|
8
|
-
variableType: 'COLLECTED';
|
|
9
|
-
})[];
|
|
10
|
-
CALCULATED: (LunaticVariable & {
|
|
11
|
-
variableType: 'CALCULATED';
|
|
12
|
-
})[];
|
|
13
|
-
};
|
|
2
|
+
import type { LunaticState } from '../type';
|
|
14
3
|
declare const reducers: (acc: LunaticState, action: ActionInit) => LunaticState;
|
|
15
4
|
export default reducers;
|
|
@@ -117,27 +117,9 @@ export type ComponentRosterForLoopType = {
|
|
|
117
117
|
colspan?: number;
|
|
118
118
|
rowspan?: number;
|
|
119
119
|
}[];
|
|
120
|
-
body: {
|
|
121
|
-
label
|
|
122
|
-
|
|
123
|
-
format?: string;
|
|
124
|
-
dateFormat?: string;
|
|
125
|
-
unit?: string;
|
|
126
|
-
options: {
|
|
127
|
-
value: string;
|
|
128
|
-
label: LabelType;
|
|
129
|
-
}[];
|
|
130
|
-
response: ResponseType;
|
|
131
|
-
bindingDependencies: string[];
|
|
132
|
-
componentType?: ComponentTypeEnum;
|
|
133
|
-
maxLength?: number;
|
|
134
|
-
min?: number;
|
|
135
|
-
max?: number;
|
|
136
|
-
decimals?: number;
|
|
137
|
-
colspan?: number;
|
|
138
|
-
rowspan?: number;
|
|
139
|
-
id?: string;
|
|
140
|
-
}[];
|
|
120
|
+
body: ({
|
|
121
|
+
label: LabelType;
|
|
122
|
+
} | ComponentType)[][];
|
|
141
123
|
positioning: 'HORIZONTAL';
|
|
142
124
|
};
|
|
143
125
|
export type ComponentLoopType = {
|
|
@@ -217,6 +199,7 @@ export type ComponentPairWiseLinksType = {
|
|
|
217
199
|
symLinks: {
|
|
218
200
|
[variableName: string]: Record<string, string>;
|
|
219
201
|
};
|
|
202
|
+
components: ComponentType[];
|
|
220
203
|
};
|
|
221
204
|
export type ComponentComponentSetType = {
|
|
222
205
|
componentType: 'ComponentSet';
|
|
@@ -298,6 +281,9 @@ export type LunaticSource = {
|
|
|
298
281
|
[variableName: string]: {
|
|
299
282
|
size: string;
|
|
300
283
|
variables: string[];
|
|
284
|
+
} | {
|
|
285
|
+
sizeForLinksVariables: string[];
|
|
286
|
+
linksVariables: string[];
|
|
301
287
|
};
|
|
302
288
|
};
|
|
303
289
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import type { ComponentType, ControlType, LunaticSource, Variable } from './type-source';
|
|
3
|
-
import { type ExpressionLogger } from './commons/execute-expression/create-execute-expression';
|
|
4
3
|
import { SuggesterStatus } from './use-suggesters';
|
|
4
|
+
import type { LunaticVariablesStore } from './commons/variables/lunatic-variables-store';
|
|
5
5
|
export type LunaticComponentDefinition<T extends ComponentType['componentType'] = ComponentType['componentType']> = ComponentType & {
|
|
6
6
|
componentType: T;
|
|
7
7
|
};
|
|
@@ -9,9 +9,9 @@ export type LunaticControl = ControlType;
|
|
|
9
9
|
export type VTLBindings = {
|
|
10
10
|
[variableName: string]: unknown;
|
|
11
11
|
};
|
|
12
|
-
export type LunaticData =
|
|
12
|
+
export type LunaticData = Record<Exclude<VariableType, 'COLLECTED'>, Record<string, unknown>> & {
|
|
13
13
|
COLLECTED: Record<string, LunaticCollectedValue>;
|
|
14
|
-
}
|
|
14
|
+
};
|
|
15
15
|
export type LunaticValues = {
|
|
16
16
|
[variableName: string]: unknown;
|
|
17
17
|
};
|
|
@@ -59,9 +59,8 @@ export type LunaticStateVariable = {
|
|
|
59
59
|
};
|
|
60
60
|
}[LunaticVariable['variableType']];
|
|
61
61
|
export type LunaticState = {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
};
|
|
62
|
+
updatedAt: number;
|
|
63
|
+
variables: LunaticVariablesStore;
|
|
65
64
|
pages: {
|
|
66
65
|
[key: number | string]: {
|
|
67
66
|
components: ComponentType[];
|
|
@@ -119,14 +118,17 @@ export type LunaticState = {
|
|
|
119
118
|
modalErrors?: Record<string, LunaticError[]>;
|
|
120
119
|
handleChange: (response: {
|
|
121
120
|
name: string;
|
|
122
|
-
}, value: any, args?:
|
|
121
|
+
}, value: any, args?: {
|
|
122
|
+
iteration?: number[];
|
|
123
|
+
}) => void;
|
|
123
124
|
executeExpression: <T extends unknown = unknown>(expression: unknown, args?: {
|
|
124
|
-
iteration?: number;
|
|
125
|
-
linksIterations?: number[];
|
|
126
|
-
logging?: ExpressionLogger;
|
|
125
|
+
iteration?: number | number[];
|
|
127
126
|
bindingDependencies?: string[];
|
|
127
|
+
deps?: string[];
|
|
128
128
|
}) => T;
|
|
129
|
-
updateBindings: (variableName: string, value: unknown
|
|
129
|
+
updateBindings: (variableName: string, value: unknown, options: {
|
|
130
|
+
iteration?: number[];
|
|
131
|
+
}) => unknown;
|
|
130
132
|
activeControls: boolean;
|
|
131
133
|
shortcut?: boolean;
|
|
132
134
|
management?: boolean;
|