@inseefr/lunatic 3.0.0-rc.31 → 3.0.0-rc.33
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/README.fr.md +15 -15
- package/README.md +13 -13
- package/lib/components/CheckboxBoolean/CheckboxBoolean.d.ts +2 -2
- package/lib/components/CheckboxBoolean/CheckboxBoolean.js +7 -2
- package/lib/components/CheckboxBoolean/CheckboxBoolean.js.map +1 -1
- package/lib/components/CheckboxBoolean/CheckboxBoolean.spec.js +7 -7
- package/lib/components/CheckboxBoolean/CheckboxBoolean.spec.js.map +1 -1
- package/lib/components/CheckboxGroup/CheckboxGroup.d.ts +1 -1
- package/lib/components/CheckboxGroup/CheckboxGroup.js +3 -3
- package/lib/components/CheckboxGroup/CheckboxGroup.js.map +1 -1
- package/lib/components/CheckboxGroup/CustomCheckboxGroup.d.ts +2 -0
- package/lib/components/CheckboxGroup/CustomCheckboxGroup.js +2 -2
- package/lib/components/CheckboxGroup/CustomCheckboxGroup.js.map +1 -1
- package/lib/components/CheckboxOne/CheckboxOne.d.ts +1 -1
- package/lib/components/CheckboxOne/CheckboxOne.js +2 -2
- package/lib/components/CheckboxOne/CheckboxOne.js.map +1 -1
- package/lib/components/CheckboxOne/CheckboxOne.spec.js +5 -3
- package/lib/components/CheckboxOne/CheckboxOne.spec.js.map +1 -1
- package/lib/components/Datepicker/Datepicker.d.ts +2 -2
- package/lib/components/Datepicker/Datepicker.js +2 -2
- package/lib/components/Datepicker/Datepicker.js.map +1 -1
- package/lib/components/Datepicker/Datepicker.spec.js +28 -9
- package/lib/components/Datepicker/Datepicker.spec.js.map +1 -1
- package/lib/components/Dropdown/Dropdown.d.ts +2 -2
- package/lib/components/Dropdown/Dropdown.js +2 -2
- package/lib/components/Dropdown/Dropdown.js.map +1 -1
- package/lib/components/Dropdown/Dropdown.spec.js +1 -1
- package/lib/components/Dropdown/Dropdown.spec.js.map +1 -1
- package/lib/components/Duration/Duration.d.ts +2 -2
- package/lib/components/Duration/Duration.js +2 -2
- package/lib/components/Duration/Duration.js.map +1 -1
- package/lib/components/Input/Input.d.ts +2 -2
- package/lib/components/Input/Input.js +2 -2
- package/lib/components/Input/Input.js.map +1 -1
- package/lib/components/Input/Input.spec.js +4 -2
- package/lib/components/Input/Input.spec.js.map +1 -1
- package/lib/components/InputNumber/InputNumber.d.ts +2 -2
- package/lib/components/InputNumber/InputNumber.js +2 -2
- package/lib/components/InputNumber/InputNumber.js.map +1 -1
- package/lib/components/InputNumber/InputNumber.spec.js +8 -3
- package/lib/components/InputNumber/InputNumber.spec.js.map +1 -1
- package/lib/components/Loop/Loop.d.ts +2 -2
- package/lib/components/Loop/Loop.js +9 -5
- package/lib/components/Loop/Loop.js.map +1 -1
- package/lib/components/Radio/Radio.js +2 -2
- package/lib/components/Radio/Radio.js.map +1 -1
- package/lib/components/RosterForLoop/RosterForLoop.js +10 -5
- package/lib/components/RosterForLoop/RosterForLoop.js.map +1 -1
- package/lib/components/RosterForLoop/RosterForLoop.spec.js +1 -1
- package/lib/components/RosterForLoop/RosterForLoop.spec.js.map +1 -1
- package/lib/components/Suggester/Suggester.d.ts +1 -1
- package/lib/components/Suggester/Suggester.js +24 -8
- package/lib/components/Suggester/Suggester.js.map +1 -1
- package/lib/components/Suggester/useSuggestions.js +30 -18
- package/lib/components/Suggester/useSuggestions.js.map +1 -1
- package/lib/components/Switch/Switch.d.ts +1 -1
- package/lib/components/Switch/Switch.js +2 -2
- package/lib/components/Switch/Switch.js.map +1 -1
- package/lib/components/Text/Text.d.ts +3 -0
- package/lib/components/Text/Text.js +4 -0
- package/lib/components/Text/Text.js.map +1 -0
- package/lib/components/Textarea/Textarea.d.ts +2 -2
- package/lib/components/Textarea/Textarea.js +2 -2
- package/lib/components/Textarea/Textarea.js.map +1 -1
- package/lib/components/Textarea/Textarea.spec.js +1 -1
- package/lib/components/Textarea/Textarea.spec.js.map +1 -1
- package/lib/components/library.d.ts +4 -2
- package/lib/components/library.js +2 -0
- package/lib/components/library.js.map +1 -1
- package/lib/components/shared/Button/Button.d.ts +1 -0
- package/lib/components/shared/Button/Button.js +3 -3
- package/lib/components/shared/Button/Button.js.map +1 -1
- package/lib/components/shared/Checkbox/CheckboxOption.d.ts +2 -1
- package/lib/components/shared/Checkbox/CheckboxOption.js +14 -18
- package/lib/components/shared/Checkbox/CheckboxOption.js.map +1 -1
- package/lib/components/shared/Combobox/Combobox.js +1 -1
- package/lib/components/shared/Combobox/Combobox.js.map +1 -1
- package/lib/components/shared/Combobox/Selection/ComboboxClearButton.d.ts +1 -1
- package/lib/components/shared/Combobox/Selection/ComboboxClearButton.js.map +1 -1
- package/lib/components/shared/ComponentWrapper.d.ts +2 -3
- package/lib/components/shared/ComponentWrapper.js +2 -2
- package/lib/components/shared/ComponentWrapper.js.map +1 -1
- package/lib/components/shared/Icons/checkbox-disabled-icon.d.ts +2 -0
- package/lib/components/shared/Icons/checkbox-disabled-icon.js +7 -0
- package/lib/components/shared/Icons/checkbox-disabled-icon.js.map +1 -0
- package/lib/components/shared/Missing/Missing.d.ts +2 -2
- package/lib/components/shared/Missing/Missing.js +6 -5
- package/lib/components/shared/Missing/Missing.js.map +1 -1
- package/lib/components/shared/Missing/Missing.spec.js +13 -9
- package/lib/components/shared/Missing/Missing.spec.js.map +1 -1
- package/lib/components/shared/Radio/RadioOption.js +20 -39
- package/lib/components/shared/Radio/RadioOption.js.map +1 -1
- package/lib/components/shared/Radio/RadioOption.spec.js +4 -4
- package/lib/components/shared/Radio/RadioOption.spec.js.map +1 -1
- package/lib/components/type.d.ts +6 -8
- package/lib/hooks/useKeyboardKey.js +1 -1
- package/lib/hooks/useKeyboardKey.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/main.css +77 -26
- package/lib/main.css.map +1 -1
- package/lib/use-lunatic/actions.d.ts +13 -11
- package/lib/use-lunatic/actions.js +10 -7
- package/lib/use-lunatic/actions.js.map +1 -1
- package/lib/use-lunatic/commons/compile-controls.js +6 -3
- package/lib/use-lunatic/commons/compile-controls.js.map +1 -1
- package/lib/use-lunatic/commons/execute-condition-filter.js +1 -2
- package/lib/use-lunatic/commons/execute-condition-filter.js.map +1 -1
- package/lib/use-lunatic/commons/fill-components/fill-component-expressions.d.ts +3 -1
- package/lib/use-lunatic/commons/fill-components/fill-component-expressions.js +15 -1
- package/lib/use-lunatic/commons/fill-components/fill-component-expressions.js.map +1 -1
- package/lib/use-lunatic/commons/fill-components/fill-components.d.ts +2 -2
- package/lib/use-lunatic/commons/fill-components/fill-components.js +1 -1
- package/lib/use-lunatic/commons/fill-components/fill-components.js.map +1 -1
- package/lib/use-lunatic/hooks/use-page-has-response.js +2 -1
- package/lib/use-lunatic/hooks/use-page-has-response.js.map +1 -1
- package/lib/use-lunatic/hooks/useOverview.js +5 -3
- package/lib/use-lunatic/hooks/useOverview.js.map +1 -1
- package/lib/use-lunatic/props/propComponentType.js +35 -16
- package/lib/use-lunatic/props/propComponentType.js.map +1 -1
- package/lib/use-lunatic/reducer/controls/check-roundabout-control.js +2 -8
- package/lib/use-lunatic/reducer/controls/check-roundabout-control.js.map +1 -1
- package/lib/use-lunatic/reducer/reduce-go-to-page.js +1 -1
- package/lib/use-lunatic/reducer/reduce-go-to-page.js.map +1 -1
- package/lib/use-lunatic/reducer/reduce-handle-changes.d.ts +6 -0
- package/lib/use-lunatic/reducer/reduce-handle-changes.js +24 -0
- package/lib/use-lunatic/reducer/reduce-handle-changes.js.map +1 -0
- package/lib/use-lunatic/reducer/reducer.js +3 -3
- package/lib/use-lunatic/reducer/reducer.js.map +1 -1
- package/lib/use-lunatic/type.d.ts +8 -8
- package/lib/use-lunatic/use-lunatic.d.ts +4 -4
- package/lib/use-lunatic/use-lunatic.js +9 -9
- package/lib/use-lunatic/use-lunatic.js.map +1 -1
- package/lib/utils/search/SuggestersDatabase.d.ts +5 -0
- package/lib/utils/search/SuggestersDatabase.js +7 -1
- package/lib/utils/search/SuggestersDatabase.js.map +1 -1
- package/package.json +1 -1
- package/lib/use-lunatic/reducer/reduce-handle-change.d.ts +0 -6
- package/lib/use-lunatic/reducer/reduce-handle-change.js +0 -20
- package/lib/use-lunatic/reducer/reduce-handle-change.js.map +0 -1
|
@@ -9,7 +9,7 @@ import { fillComponent, fillComponents, } from '../commons/fill-components/fill-
|
|
|
9
9
|
function getRoundaboutProps(component, state) {
|
|
10
10
|
const iterations = component.iterations; // iterations is the result of an expression but we know it's a number
|
|
11
11
|
const compiled = Object.entries(component.expressions).reduce(function (result, [name, expression]) {
|
|
12
|
-
const values =
|
|
12
|
+
const values = Array.from({ length: iterations }, (_, iteration) => {
|
|
13
13
|
return state.executeExpression(expression, {
|
|
14
14
|
iteration,
|
|
15
15
|
});
|
|
@@ -33,7 +33,7 @@ function getChildComponentsWithIteration(component, state) {
|
|
|
33
33
|
return {
|
|
34
34
|
getComponents: (iteration) => fillComponents(component.components, {
|
|
35
35
|
...state,
|
|
36
|
-
|
|
36
|
+
handleChanges: createChangeHandlerForIteration(state.handleChanges, iteration),
|
|
37
37
|
pager: {
|
|
38
38
|
...state.pager,
|
|
39
39
|
iteration: iteration,
|
|
@@ -45,17 +45,18 @@ function getChildComponentsWithIteration(component, state) {
|
|
|
45
45
|
// Create change handler memoized for every iteration
|
|
46
46
|
let changeHandler = null;
|
|
47
47
|
const changeHandlerMap = new Map();
|
|
48
|
-
function createChangeHandlerForIteration(
|
|
49
|
-
if (
|
|
50
|
-
changeHandler =
|
|
48
|
+
function createChangeHandlerForIteration(handleChanges, iteration) {
|
|
49
|
+
if (handleChanges !== changeHandler) {
|
|
50
|
+
changeHandler = handleChanges;
|
|
51
51
|
changeHandlerMap.clear();
|
|
52
52
|
}
|
|
53
53
|
let handler = changeHandlerMap.get(iteration);
|
|
54
54
|
if (handler) {
|
|
55
55
|
return handler;
|
|
56
56
|
}
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
// Inject iteration in the child components
|
|
58
|
+
handler = (responses) => {
|
|
59
|
+
handleChanges(responses.map((r) => ({ ...r, iteration: [iteration] })));
|
|
59
60
|
};
|
|
60
61
|
changeHandlerMap.set(iteration, handler);
|
|
61
62
|
return handler;
|
|
@@ -71,13 +72,29 @@ function getPairwiseProps(component, state) {
|
|
|
71
72
|
}
|
|
72
73
|
return fillComponents(component.components, {
|
|
73
74
|
...state,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
75
|
+
handleChanges: (responses) => {
|
|
76
|
+
// Add iteration on each response
|
|
77
|
+
state.handleChanges(responses.reduce((acc, r) => {
|
|
78
|
+
if (r.name in component.symLinks &&
|
|
79
|
+
r.value in component.symLinks[r.name]) {
|
|
80
|
+
return [
|
|
81
|
+
...acc,
|
|
82
|
+
// Add iteration to the response
|
|
83
|
+
{ ...r, iteration: [x, y] },
|
|
84
|
+
// Add linked response (symetrical iteration)
|
|
85
|
+
{
|
|
86
|
+
name: r.name,
|
|
87
|
+
value: component.symLinks[r.name][r.value],
|
|
88
|
+
iteration: [y, x],
|
|
89
|
+
},
|
|
90
|
+
];
|
|
91
|
+
}
|
|
92
|
+
return [
|
|
93
|
+
...acc,
|
|
94
|
+
// Add iteration to the response
|
|
95
|
+
{ ...r, iteration: [x, y] },
|
|
96
|
+
];
|
|
97
|
+
}, []));
|
|
81
98
|
},
|
|
82
99
|
pager: {
|
|
83
100
|
...state.pager,
|
|
@@ -100,7 +117,9 @@ function getTableProps(component, state) {
|
|
|
100
117
|
// We can have a non typed component with extra attributes (colspan, rowspan)
|
|
101
118
|
return {
|
|
102
119
|
...component,
|
|
103
|
-
label: state.executeExpression(
|
|
120
|
+
label: state.executeExpression(component.label, {
|
|
121
|
+
iteration: state.pager.iteration,
|
|
122
|
+
}),
|
|
104
123
|
};
|
|
105
124
|
})),
|
|
106
125
|
};
|
|
@@ -113,7 +132,7 @@ function getSuggesterProps(component, state) {
|
|
|
113
132
|
return component;
|
|
114
133
|
}
|
|
115
134
|
return {
|
|
116
|
-
arbitraryValue: state.executeExpression(component.arbitrary.response.name, {
|
|
135
|
+
arbitraryValue: state.executeExpression({ type: 'VTL', value: component.arbitrary.response.name }, {
|
|
117
136
|
iteration: state.pager.iteration,
|
|
118
137
|
}),
|
|
119
138
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propComponentType.js","sourceRoot":"","sources":["../../../src/use-lunatic/props/propComponentType.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"propComponentType.js","sourceRoot":"","sources":["../../../src/use-lunatic/props/propComponentType.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,18 +8,12 @@ import {} from 'react';
|
|
|
8
8
|
*/
|
|
9
9
|
export function checkRoundaboutControl(control, executeExpression) {
|
|
10
10
|
const { criticality, errorMessage, id, typeOfControl, iterations } = control;
|
|
11
|
-
const value = control?.control?.value ?? 'true';
|
|
12
11
|
if (!iterations || iterations <= 0) {
|
|
13
12
|
return undefined;
|
|
14
13
|
}
|
|
15
14
|
const errors = Array.from({ length: iterations }, (_, k) => k)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
* An evolution is planned on the questionnaire generation side (Eno) to come back to a more coherent logic (i.e. lift the control when the condition is true)
|
|
19
|
-
*
|
|
20
|
-
* After this change, we have to change the next line to `.filter((iteration) => executeExpression(value, { iteration }))`
|
|
21
|
-
*/
|
|
22
|
-
.filter((iteration) => !executeExpression(value, { iteration }))
|
|
15
|
+
// There is an error if the control is evaluated to "true"
|
|
16
|
+
.filter((iteration) => control.control && !executeExpression(control.control, { iteration }))
|
|
23
17
|
.map((iteration) => executeExpression(errorMessage, { iteration }));
|
|
24
18
|
if (errors.length) {
|
|
25
19
|
return { criticality, errorMessage: errors, id, typeOfControl };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-roundabout-control.js","sourceRoot":"","sources":["../../../../src/use-lunatic/reducer/controls/check-roundabout-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,OAAO,CAAC;AAIvC;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACrC,OAAuB,EACvB,iBAA2D;IAE3D,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"check-roundabout-control.js","sourceRoot":"","sources":["../../../../src/use-lunatic/reducer/controls/check-roundabout-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,OAAO,CAAC;AAIvC;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACrC,OAAuB,EACvB,iBAA2D;IAE3D,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAE7E,IAAI,CAAC,UAAU,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7D,0DAA0D;SACzD,MAAM,CACN,CAAC,SAAS,EAAE,EAAE,CACb,OAAO,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CACtE;SACA,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAClB,iBAAiB,CAAY,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,CACzD,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC;IACjE,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -30,7 +30,7 @@ export function reduceGoToPage(state, action) {
|
|
|
30
30
|
}
|
|
31
31
|
// Find the number of subPages and iteration
|
|
32
32
|
const parentPage = state.pages[action.payload.page];
|
|
33
|
-
if (action.payload.subPage !== undefined) {
|
|
33
|
+
if (action.payload.subPage !== undefined && parentPage.iterations) {
|
|
34
34
|
newPager.nbSubPages = parentPage.subPages?.length;
|
|
35
35
|
newPager.nbIterations = state.executeExpression(parentPage.iterations);
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reduce-go-to-page.js","sourceRoot":"","sources":["../../../src/use-lunatic/reducer/reduce-go-to-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,UAAU,cAAc,CAC7B,KAA0B,EAC1B,MAAsB;IAEtB,2DAA2D;IAC3D,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,sBAAsB,MAAM,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,CAAC;YAC1E,OAAO,KAAK,CAAC;QACd,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,MAAM,QAAQ,GAAiC;QAC9C,GAAG,KAAK,CAAC,KAAK;QACd,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;QAC/B,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;QACnC,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,SAAS;KACrB,CAAC;IAEF,4BAA4B;IAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,SAAS,MAAM,yCAAyC,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC;IACd,CAAC;IAED,4CAA4C;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"reduce-go-to-page.js","sourceRoot":"","sources":["../../../src/use-lunatic/reducer/reduce-go-to-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,UAAU,cAAc,CAC7B,KAA0B,EAC1B,MAAsB;IAEtB,2DAA2D;IAC3D,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,sBAAsB,MAAM,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,CAAC;YAC1E,OAAO,KAAK,CAAC;QACd,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,MAAM,QAAQ,GAAiC;QAC9C,GAAG,KAAK,CAAC,KAAK;QACd,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;QAC/B,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;QACnC,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,SAAS;KACrB,CAAC;IAEF,4BAA4B;IAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,SAAS,MAAM,yCAAyC,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC;IACd,CAAC;IAED,4CAA4C;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;QACnE,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;QAClD,QAAQ,CAAC,YAAY,GAAG,KAAK,CAAC,iBAAiB,CAC9C,UAAU,CAAC,UAAU,CACrB,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,IACC,QAAQ,CAAC,SAAS,KAAK,SAAS;QAChC,QAAQ,CAAC,YAAY,KAAK,SAAS;QACnC,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,YAAY,EAC1C,CAAC;QACF,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,oCAAoC;IACpC,MAAM,QAAQ,GAAG;QAChB,GAAG,KAAK;QACR,QAAQ,EAAE,QAAQ,CAAC,YAAY,KAAK,SAAS;QAC7C,KAAK,EAAE,QAAQ;KACf,CAAC;IACF,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { LunaticReducerState } from '../type';
|
|
2
|
+
import type { ActionHandleChanges } from '../actions';
|
|
3
|
+
/**
|
|
4
|
+
* Update collected variables
|
|
5
|
+
*/
|
|
6
|
+
export declare function reduceHandleChanges(state: LunaticReducerState, action: ActionHandleChanges): LunaticReducerState;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { isNumber } from '../../utils/number';
|
|
2
|
+
/**
|
|
3
|
+
* Update collected variables
|
|
4
|
+
*/
|
|
5
|
+
export function reduceHandleChanges(state, action) {
|
|
6
|
+
const getIteration = (iteration) => {
|
|
7
|
+
// Resolve iteration from pager when it's not available in the payload
|
|
8
|
+
if (!iteration && isNumber(state.pager.iteration)) {
|
|
9
|
+
return [state.pager.iteration];
|
|
10
|
+
}
|
|
11
|
+
return iteration;
|
|
12
|
+
};
|
|
13
|
+
// Update all variables in the store
|
|
14
|
+
for (const response of action.payload.responses) {
|
|
15
|
+
state.updateBindings(response.name, response.value, {
|
|
16
|
+
iteration: getIteration(response.iteration),
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
...state,
|
|
21
|
+
updatedAt: Date.now(),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=reduce-handle-changes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reduce-handle-changes.js","sourceRoot":"","sources":["../../../src/use-lunatic/reducer/reduce-handle-changes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAClC,KAA0B,EAC1B,MAA2B;IAE3B,MAAM,YAAY,GAAG,CAAC,SAAoB,EAAE,EAAE;QAC7C,sEAAsE;QACtE,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC;IAEF,oCAAoC;IACpC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACjD,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE;YACnD,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;SAC3C,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACN,GAAG,KAAK;QACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACrB,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionKind } from '../actions';
|
|
2
2
|
import { reduceGoNextPage } from './reduce-go-next-page';
|
|
3
|
-
import {
|
|
3
|
+
import { reduceHandleChanges } from './reduce-handle-changes';
|
|
4
4
|
import { reduceGoPreviousPage } from './reduce-go-previous-page';
|
|
5
5
|
import { reduceGoToPage } from './reduce-go-to-page';
|
|
6
6
|
export function reducer(state, action) {
|
|
@@ -11,8 +11,8 @@ export function reducer(state, action) {
|
|
|
11
11
|
return reduceGoNextPage(state);
|
|
12
12
|
case ActionKind.GO_TO_PAGE:
|
|
13
13
|
return reduceGoToPage(state, action);
|
|
14
|
-
case ActionKind.
|
|
15
|
-
return
|
|
14
|
+
case ActionKind.HANDLE_CHANGES:
|
|
15
|
+
return reduceHandleChanges(state, action);
|
|
16
16
|
default:
|
|
17
17
|
return state;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../../src/use-lunatic/reducer/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../../src/use-lunatic/reducer/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,UAAU,OAAO,CACtB,KAA0B,EAC1B,MAAc;IAEd,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,UAAU,CAAC,gBAAgB;YAC/B,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACpC,KAAK,UAAU,CAAC,YAAY;YAC3B,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,UAAU,CAAC,UAAU;YACzB,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,KAAK,UAAU,CAAC,cAAc;YAC7B,OAAO,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3C;YACC,OAAO,KAAK,CAAC;IACf,CAAC;AACF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FunctionComponent, PropsWithChildren, ReactNode } from 'react';
|
|
2
|
-
import type { ComponentType, ControlType, Variable } from './type-source';
|
|
2
|
+
import type { ComponentType, ControlType, LabelType, Variable } from './type-source';
|
|
3
3
|
import type { LunaticVariablesStore } from './commons/variables/lunatic-variables-store';
|
|
4
4
|
import type { IndexEntry } from '../utils/search/SearchInterface';
|
|
5
5
|
import type { InterpretedLunaticOverviewItem } from './hooks/useOverview';
|
|
@@ -81,12 +81,12 @@ export type LunaticReducerState = {
|
|
|
81
81
|
} | {
|
|
82
82
|
components: ComponentType[];
|
|
83
83
|
isLoop: true;
|
|
84
|
-
iterations:
|
|
84
|
+
iterations: LabelType<'VTL'>;
|
|
85
85
|
loopDependencies: string[];
|
|
86
86
|
subPages: string[];
|
|
87
87
|
};
|
|
88
88
|
};
|
|
89
|
-
executeExpression: <T extends unknown = unknown>(expression:
|
|
89
|
+
executeExpression: <T extends unknown = unknown>(expression: LabelType, args?: {
|
|
90
90
|
iteration?: number | number[];
|
|
91
91
|
bindingDependencies?: string[];
|
|
92
92
|
deps?: string[];
|
|
@@ -101,7 +101,7 @@ export type LunaticOptions = {
|
|
|
101
101
|
features?: ('MD' | 'VTL')[];
|
|
102
102
|
preferences?: ['COLLECTED'];
|
|
103
103
|
savingType?: 'COLLECTED';
|
|
104
|
-
onChange?:
|
|
104
|
+
onChange?: LunaticChangesHandler;
|
|
105
105
|
management?: boolean;
|
|
106
106
|
shortcut?: boolean;
|
|
107
107
|
initialPage?: PageTag;
|
|
@@ -160,11 +160,11 @@ export type LunaticState = {
|
|
|
160
160
|
resetChangedData: () => void;
|
|
161
161
|
hasPageResponse: () => boolean;
|
|
162
162
|
testing: {
|
|
163
|
-
|
|
163
|
+
handleChanges: LunaticChangesHandler;
|
|
164
164
|
};
|
|
165
165
|
};
|
|
166
|
-
export type
|
|
166
|
+
export type LunaticChangesHandler = (args: {
|
|
167
167
|
name: string;
|
|
168
|
-
|
|
168
|
+
value: any;
|
|
169
169
|
iteration?: number[];
|
|
170
|
-
}) => void;
|
|
170
|
+
}[]) => void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import type {
|
|
2
|
+
import type { LunaticChangesHandler, LunaticData, LunaticOptions, PageTag } from './type';
|
|
3
3
|
import type { LunaticSource } from './type-source';
|
|
4
4
|
declare function useLunatic(source: LunaticSource, data?: LunaticData, argOptions?: LunaticOptions): {
|
|
5
5
|
pageTag: PageTag;
|
|
@@ -11,8 +11,8 @@ declare function useLunatic(source: LunaticSource, data?: LunaticData, argOption
|
|
|
11
11
|
overview: import("./hooks/useOverview").InterpretedLunaticOverviewItem[];
|
|
12
12
|
loopVariables: string[];
|
|
13
13
|
getComponents: (params?: {
|
|
14
|
-
only?: "Sequence" | "Subsequence" | "RosterForLoop" | "Loop" | "Table" | "InputNumber" | "Datepicker" | "Duration" | "CheckboxGroup" | "CheckboxBoolean" | "Radio" | "FilterDescription" | "Dropdown" | "PairwiseLinks" | "Roundabout" | "Suggester" | "Input" | "Textarea" | "CheckboxOne" | "Question" | "Switch" | "Summary" | undefined;
|
|
15
|
-
except?: "Sequence" | "Subsequence" | "RosterForLoop" | "Loop" | "Table" | "InputNumber" | "Datepicker" | "Duration" | "CheckboxGroup" | "CheckboxBoolean" | "Radio" | "FilterDescription" | "Dropdown" | "PairwiseLinks" | "Roundabout" | "Suggester" | "Input" | "Textarea" | "CheckboxOne" | "Question" | "Switch" | "Summary" | undefined;
|
|
14
|
+
only?: "Sequence" | "Subsequence" | "RosterForLoop" | "Loop" | "Table" | "InputNumber" | "Datepicker" | "Duration" | "CheckboxGroup" | "CheckboxBoolean" | "Radio" | "FilterDescription" | "Dropdown" | "PairwiseLinks" | "Roundabout" | "Suggester" | "Input" | "Textarea" | "CheckboxOne" | "Question" | "Text" | "Switch" | "Summary" | undefined;
|
|
15
|
+
except?: "Sequence" | "Subsequence" | "RosterForLoop" | "Loop" | "Table" | "InputNumber" | "Datepicker" | "Duration" | "CheckboxGroup" | "CheckboxBoolean" | "Radio" | "FilterDescription" | "Dropdown" | "PairwiseLinks" | "Roundabout" | "Suggester" | "Input" | "Textarea" | "CheckboxOne" | "Question" | "Text" | "Switch" | "Summary" | undefined;
|
|
16
16
|
} | undefined) => import("..").LunaticComponentProps[];
|
|
17
17
|
goPreviousPage: () => void;
|
|
18
18
|
goNextPage: () => void;
|
|
@@ -50,7 +50,7 @@ declare function useLunatic(source: LunaticSource, data?: LunaticData, argOption
|
|
|
50
50
|
children?: import("react").ReactNode;
|
|
51
51
|
}>;
|
|
52
52
|
testing: {
|
|
53
|
-
|
|
53
|
+
handleChanges: LunaticChangesHandler;
|
|
54
54
|
};
|
|
55
55
|
};
|
|
56
56
|
export default useLunatic;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useCallback, useMemo, useReducer } from 'react';
|
|
2
|
-
import
|
|
2
|
+
import { goToPageAction, goNextPageAction, goPreviousPageAction, handleChangesAction, } from './actions';
|
|
3
3
|
import { getPageTag, isFirstLastPage } from './commons';
|
|
4
4
|
import D from '../i18n';
|
|
5
5
|
import { COLLECTED } from '../utils/constants';
|
|
@@ -68,17 +68,17 @@ function useLunatic(source, data = DEFAULT_DATA, argOptions = empty) {
|
|
|
68
68
|
return compileControlsLib(state);
|
|
69
69
|
};
|
|
70
70
|
const goPreviousPage = useCallback(function () {
|
|
71
|
-
dispatch(
|
|
71
|
+
dispatch(goPreviousPageAction());
|
|
72
72
|
}, [dispatch]);
|
|
73
73
|
const goNextPage = useCallback(function (payload = {}) {
|
|
74
|
-
dispatch(
|
|
74
|
+
dispatch(goNextPageAction(payload));
|
|
75
75
|
}, [dispatch]);
|
|
76
76
|
const goToPage = useCallback(function (payload) {
|
|
77
|
-
dispatch(
|
|
77
|
+
dispatch(goToPageAction(payload));
|
|
78
78
|
}, [dispatch]);
|
|
79
|
-
const
|
|
80
|
-
dispatch(
|
|
81
|
-
onChange(
|
|
79
|
+
const handleChanges = useCallback((responses) => {
|
|
80
|
+
dispatch(handleChangesAction(responses));
|
|
81
|
+
onChange(responses);
|
|
82
82
|
}, [dispatch, onChange]);
|
|
83
83
|
const getData = (withRefreshedCalculated, variableNames) => {
|
|
84
84
|
return getQuestionnaireData(state.variables, source.variables, withRefreshedCalculated, variableNames);
|
|
@@ -87,7 +87,7 @@ function useLunatic(source, data = DEFAULT_DATA, argOptions = empty) {
|
|
|
87
87
|
const pageTag = getPageTag(state.pager);
|
|
88
88
|
const { isFirstPage, isLastPage } = isFirstLastPage(state.pager);
|
|
89
89
|
const components = fillComponents(getComponentsFromState(state), {
|
|
90
|
-
|
|
90
|
+
handleChanges,
|
|
91
91
|
preferences,
|
|
92
92
|
goToPage,
|
|
93
93
|
shortcut,
|
|
@@ -130,7 +130,7 @@ function useLunatic(source, data = DEFAULT_DATA, argOptions = empty) {
|
|
|
130
130
|
// Components
|
|
131
131
|
Provider,
|
|
132
132
|
testing: {
|
|
133
|
-
|
|
133
|
+
handleChanges,
|
|
134
134
|
},
|
|
135
135
|
};
|
|
136
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-lunatic.js","sourceRoot":"","sources":["../../src/use-lunatic/use-lunatic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"use-lunatic.js","sourceRoot":"","sources":["../../src/use-lunatic/use-lunatic.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,11 @@ import type { IndexEntry, SearchInterface } from './SearchInterface';
|
|
|
5
5
|
*/
|
|
6
6
|
export declare function registerSuggesters(infos: SuggesterType[], fetcher: (name: string) => Promise<Array<IndexEntry>>): void;
|
|
7
7
|
export declare function getSearchForStore(storeName: string): {
|
|
8
|
+
error: string;
|
|
9
|
+
search?: undefined;
|
|
10
|
+
index?: undefined;
|
|
11
|
+
} | {
|
|
12
|
+
error: null;
|
|
8
13
|
search: SearchInterface<IndexEntry>;
|
|
9
14
|
index: () => Promise<void>;
|
|
10
15
|
};
|
|
@@ -13,11 +13,17 @@ export function registerSuggesters(infos, fetcher) {
|
|
|
13
13
|
export function getSearchForStore(storeName) {
|
|
14
14
|
const search = suggesters.get(storeName);
|
|
15
15
|
if (!search) {
|
|
16
|
-
|
|
16
|
+
return {
|
|
17
|
+
error: 'Cannot find search for store : ' + storeName,
|
|
18
|
+
};
|
|
17
19
|
}
|
|
18
20
|
return {
|
|
21
|
+
error: null,
|
|
19
22
|
search,
|
|
20
23
|
index: () => {
|
|
24
|
+
if (!search) {
|
|
25
|
+
return Promise.reject();
|
|
26
|
+
}
|
|
21
27
|
if (search.isIndexed()) {
|
|
22
28
|
return Promise.resolve();
|
|
23
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuggestersDatabase.js","sourceRoot":"","sources":["../../../src/utils/search/SuggestersDatabase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuC,CAAC;AAClE,IAAI,WAAW,GAAG,CAAC,CAAS,EAA8B,EAAE,CAC3D,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAErB;;GAEG;AACH,MAAM,UAAU,kBAAkB,CACjC,KAAsB,EACtB,OAAqD;IAErD,WAAW,GAAG,OAAO,CAAC;IACtB,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC/B,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,gBAAgB,CAAa,SAAS,CAAC,CAAC,CAAC;IAC7E,CAAC;AACF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IAClD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,
|
|
1
|
+
{"version":3,"file":"SuggestersDatabase.js","sourceRoot":"","sources":["../../../src/utils/search/SuggestersDatabase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuC,CAAC;AAClE,IAAI,WAAW,GAAG,CAAC,CAAS,EAA8B,EAAE,CAC3D,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAErB;;GAEG;AACH,MAAM,UAAU,kBAAkB,CACjC,KAAsB,EACtB,OAAqD;IAErD,WAAW,GAAG,OAAO,CAAC;IACtB,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC/B,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,gBAAgB,CAAa,SAAS,CAAC,CAAC,CAAC;IAC7E,CAAC;AACF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IAClD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO;YACN,KAAK,EAAE,iCAAiC,GAAG,SAAS;SACpD,CAAC;IACH,CAAC;IACD,OAAO;QACN,KAAK,EAAE,IAAI;QACX,MAAM;QACN,KAAK,EAAE,GAAG,EAAE;YACX,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YACzB,CAAC;YACD,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;gBACxB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC;YACD,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC;KACD,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { type ActionHandleChange } from '../actions';
|
|
2
|
-
import type { LunaticReducerState } from '../type';
|
|
3
|
-
/**
|
|
4
|
-
* Update collected variables
|
|
5
|
-
*/
|
|
6
|
-
export declare function reduceHandleChange(state: LunaticReducerState, action: ActionHandleChange): LunaticReducerState;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import {} from '../actions';
|
|
2
|
-
import { isNumber } from '../../utils/number';
|
|
3
|
-
/**
|
|
4
|
-
* Update collected variables
|
|
5
|
-
*/
|
|
6
|
-
export function reduceHandleChange(state, action) {
|
|
7
|
-
let iteration = action.payload.iteration;
|
|
8
|
-
// Resolve iteration from pager for loops
|
|
9
|
-
if (!iteration && isNumber(state.pager.iteration)) {
|
|
10
|
-
iteration = [state.pager.iteration];
|
|
11
|
-
}
|
|
12
|
-
state.updateBindings(action.payload.name, action.payload.value, {
|
|
13
|
-
iteration,
|
|
14
|
-
});
|
|
15
|
-
return {
|
|
16
|
-
...state,
|
|
17
|
-
updatedAt: Date.now(),
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=reduce-handle-change.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reduce-handle-change.js","sourceRoot":"","sources":["../../../src/use-lunatic/reducer/reduce-handle-change.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;GAEG;AACH,MAAM,UAAU,kBAAkB,CACjC,KAA0B,EAC1B,MAA0B;IAE1B,IAAI,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;IACzC,yCAAyC;IACzC,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACnD,SAAS,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;QAC/D,SAAS;KACT,CAAC,CAAC;IAEH,OAAO;QACN,GAAG,KAAK;QACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACrB,CAAC;AACH,CAAC"}
|